embark test dapp
This commit is contained in:
parent
0a4811ce6b
commit
2fc525efd7
|
@ -0,0 +1,8 @@
|
||||||
|
.embark
|
||||||
|
chains.json
|
||||||
|
config/livenet/password
|
||||||
|
config/production/password
|
||||||
|
coverage
|
||||||
|
dist
|
||||||
|
embarkArtifacts
|
||||||
|
node_modules
|
|
@ -0,0 +1,117 @@
|
||||||
|
# Change Log
|
||||||
|
|
||||||
|
All notable changes to this project will be documented in this file.
|
||||||
|
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
||||||
|
|
||||||
|
# [4.1.0](https://github.com/embark-framework/embark/compare/v4.1.0-beta.6...v4.1.0) (2019-08-12)
|
||||||
|
|
||||||
|
**Note:** Version bump only for package embark-dapp-template-boilerplate
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
# [4.1.0-beta.6](https://github.com/embark-framework/embark/compare/v4.1.0-beta.5...v4.1.0-beta.6) (2019-08-09)
|
||||||
|
|
||||||
|
|
||||||
|
### Features
|
||||||
|
|
||||||
|
* **@embark/pipeline:** add minimalContractSize to remove bytecode ([b0cccae](https://github.com/embark-framework/embark/commit/b0cccae))
|
||||||
|
* **@embark/pipeline:** enable choosing which fields to filter out ([b5c81bd](https://github.com/embark-framework/embark/commit/b5c81bd))
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
# [4.1.0-beta.5](https://github.com/embark-framework/embark/compare/v4.1.0-beta.4...v4.1.0-beta.5) (2019-07-10)
|
||||||
|
|
||||||
|
**Note:** Version bump only for package embark-dapp-template-boilerplate
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
# [4.1.0-beta.4](https://github.com/embark-framework/embark/compare/v4.1.0-beta.3...v4.1.0-beta.4) (2019-06-27)
|
||||||
|
|
||||||
|
|
||||||
|
### Bug Fixes
|
||||||
|
|
||||||
|
* **@embark/dapps:** old link updated to the latest documentation at website ([09d7428](https://github.com/embark-framework/embark/commit/09d7428))
|
||||||
|
* **templates:** fix templates because tests don't like empty files ([908aa3b](https://github.com/embark-framework/embark/commit/908aa3b))
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
# [4.1.0-beta.3](https://github.com/embark-framework/embark/compare/v4.1.0-beta.2...v4.1.0-beta.3) (2019-06-07)
|
||||||
|
|
||||||
|
**Note:** Version bump only for package embark-dapp-template-boilerplate
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
# [4.1.0-beta.2](https://github.com/embark-framework/embark/compare/v4.1.0-beta.1...v4.1.0-beta.2) (2019-05-22)
|
||||||
|
|
||||||
|
**Note:** Version bump only for package embark-dapp-template-boilerplate
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
# [4.1.0-beta.1](https://github.com/embark-framework/embark/compare/v4.1.0-beta.0...v4.1.0-beta.1) (2019-05-15)
|
||||||
|
|
||||||
|
**Note:** Version bump only for package embark-dapp-template-boilerplate
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
# [4.1.0-beta.0](https://github.com/embark-framework/embark/compare/v4.0.0...v4.1.0-beta.0) (2019-04-17)
|
||||||
|
|
||||||
|
**Note:** Version bump only for package embark-dapp-template-boilerplate
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
## [4.0.2](https://github.com/embark-framework/embark/compare/v4.0.1...v4.0.2) (2019-04-11)
|
||||||
|
|
||||||
|
**Note:** Version bump only for package embark-dapp-template-boilerplate
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
## [4.0.1](https://github.com/embark-framework/embark/compare/v4.0.0...v4.0.1) (2019-03-26)
|
||||||
|
|
||||||
|
**Note:** Version bump only for package embark-dapp-template-boilerplate
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
# [4.0.0](https://github.com/embark-framework/embark/compare/v4.0.0-beta.2...v4.0.0) (2019-03-18)
|
||||||
|
|
||||||
|
**Note:** Version bump only for package embark-dapp-template-boilerplate
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
# [4.0.0-beta.2](https://github.com/embark-framework/embark/compare/v4.0.0-beta.1...v4.0.0-beta.2) (2019-03-18)
|
||||||
|
|
||||||
|
**Note:** Version bump only for package embark-dapp-template-boilerplate
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
# [4.0.0-beta.1](https://github.com/embark-framework/embark/compare/v4.0.0-beta.0...v4.0.0-beta.1) (2019-03-18)
|
||||||
|
|
||||||
|
|
||||||
|
### Features
|
||||||
|
|
||||||
|
* add repository.directory field to package.json ([a9c5e1a](https://github.com/embark-framework/embark/commit/a9c5e1a))
|
||||||
|
* **@embark/pipeline:** Add `enabled` property to pipeline config ([5ea4807](https://github.com/embark-framework/embark/commit/5ea4807))
|
||||||
|
* normalize README and package.json bugs, homepage, description ([5418f16](https://github.com/embark-framework/embark/commit/5418f16))
|
|
@ -0,0 +1,22 @@
|
||||||
|
The MIT License (MIT)
|
||||||
|
|
||||||
|
Copyright (c) 2015 iuri matias
|
||||||
|
|
||||||
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
of this software and associated documentation files (the "Software"), to deal
|
||||||
|
in the Software without restriction, including without limitation the rights
|
||||||
|
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
copies of the Software, and to permit persons to whom the Software is
|
||||||
|
furnished to do so, subject to the following conditions:
|
||||||
|
|
||||||
|
The above copyright notice and this permission notice shall be included in all
|
||||||
|
copies or substantial portions of the Software.
|
||||||
|
|
||||||
|
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||||
|
SOFTWARE.
|
||||||
|
|
|
@ -0,0 +1,82 @@
|
||||||
|
/* global web3 */
|
||||||
|
import React from 'react';
|
||||||
|
import ReactDOM from 'react-dom';
|
||||||
|
import EmbarkJS from 'Embark/EmbarkJS';
|
||||||
|
import Ranking from '../embarkArtifacts/contracts/Ranking';
|
||||||
|
|
||||||
|
import Phoenix from 'phoenix';
|
||||||
|
import withObservables from '@nozbe/with-observables'
|
||||||
|
|
||||||
|
const {scan} = require('rxjs/operators');
|
||||||
|
import { of } from 'rxjs';
|
||||||
|
|
||||||
|
|
||||||
|
const phoenix = new Phoenix(web3);
|
||||||
|
|
||||||
|
const RankItem = ({votes, onUpvote, onDownvote}) => (
|
||||||
|
<div>
|
||||||
|
<b>1</b> - 0x00000000000000000000000000001<br />
|
||||||
|
Upvotes: {votes.upvotes} - Downvotes: {votes.downvotes}<br />
|
||||||
|
<button onClick={onUpvote}>Upvote</button> | <button onClick={onDownvote}>Downvote</button>
|
||||||
|
</div>
|
||||||
|
);
|
||||||
|
|
||||||
|
|
||||||
|
const enhance = withObservables(['votes'], ({ votes }) => ({votes: votes || of({ /* default empty object */ })}));
|
||||||
|
const EnhancedRankItem = enhance(RankItem)
|
||||||
|
|
||||||
|
const observables = {};
|
||||||
|
|
||||||
|
class App extends React.Component {
|
||||||
|
state = {
|
||||||
|
ready: false,
|
||||||
|
observable: null
|
||||||
|
}
|
||||||
|
|
||||||
|
componentDidMount(){
|
||||||
|
EmbarkJS.onReady((err) => {
|
||||||
|
if(err){
|
||||||
|
console.error(err);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
phoenix.init(() => {
|
||||||
|
observables.votes = phoenix.trackEvent(Ranking, 'Rating', {filter: {}, fromBlock: 1}).pipe(
|
||||||
|
scan((acc, curr) => {
|
||||||
|
if(curr.rating >= 3){
|
||||||
|
acc.upvotes++;
|
||||||
|
} else {
|
||||||
|
acc.downvotes++;
|
||||||
|
}
|
||||||
|
return acc;
|
||||||
|
}, {upvotes: 0, downvotes: 0})
|
||||||
|
);
|
||||||
|
|
||||||
|
this.setState({ready: true});
|
||||||
|
});
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
upvote = () => {
|
||||||
|
Ranking.methods.rate("0x0000000000000000000000000000000000000001", 5).send();
|
||||||
|
}
|
||||||
|
|
||||||
|
downvote = () => {
|
||||||
|
Ranking.methods.rate("0x0000000000000000000000000000000000000001", 1).send();
|
||||||
|
}
|
||||||
|
|
||||||
|
render() {
|
||||||
|
const {ready, observable} = this.state;
|
||||||
|
if(!ready) return <span>Loading...</span>;
|
||||||
|
return <EnhancedRankItem votes={observables.votes} onUpvote={this.upvote} onDownvote={this.downvote} />;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
ReactDOM.render(<App />, document.getElementById('content'));
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,8 @@
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<div id="content"></div>
|
||||||
|
<script type="text/javascript" src="app.js"></script>
|
||||||
|
</body>
|
||||||
|
</html>
|
|
@ -0,0 +1,150 @@
|
||||||
|
module.exports = {
|
||||||
|
// applies to all environments
|
||||||
|
default: {
|
||||||
|
enabled: true,
|
||||||
|
rpcHost: "localhost", // HTTP-RPC server listening interface (default: "localhost")
|
||||||
|
rpcPort: 8545, // HTTP-RPC server listening port (default: 8545)
|
||||||
|
rpcCorsDomain: { // Domains from which to accept cross origin requests (browser enforced). This can also be a comma separated list
|
||||||
|
auto: true, // When "auto" is true, Embark will automatically set the cors to the address of the webserver
|
||||||
|
additionalCors: [] // Additional CORS domains to add to the list. If "auto" is false, only those will be added
|
||||||
|
},
|
||||||
|
wsRPC: true, // Enable the WS-RPC server
|
||||||
|
wsOrigins: { // Same thing as "rpcCorsDomain", but for WS origins
|
||||||
|
auto: true,
|
||||||
|
additionalCors: []
|
||||||
|
},
|
||||||
|
wsHost: "localhost", // WS-RPC server listening interface (default: "localhost")
|
||||||
|
wsPort: 8546 // WS-RPC server listening port (default: 8546)
|
||||||
|
|
||||||
|
// Accounts to use as node accounts
|
||||||
|
// The order here corresponds to the order of `web3.eth.getAccounts`, so the first one is the `defaultAccount`
|
||||||
|
/*,accounts: [
|
||||||
|
{
|
||||||
|
nodeAccounts: true, // Accounts use for the node
|
||||||
|
numAddresses: "1", // Number of addresses/accounts (defaults to 1)
|
||||||
|
password: "config/development/devpassword" // Password file for the accounts
|
||||||
|
},
|
||||||
|
// Below are additional accounts that will count as `nodeAccounts` in the `deployment` section of your contract config
|
||||||
|
// Those will not be unlocked in the node itself
|
||||||
|
{
|
||||||
|
privateKey: "your_private_key"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
privateKeyFile: "path/to/file", // Either a keystore or a list of keys, separated by , or ;
|
||||||
|
password: "passwordForTheKeystore" // Needed to decrypt the keystore file
|
||||||
|
},
|
||||||
|
{
|
||||||
|
mnemonic: "12 word mnemonic",
|
||||||
|
addressIndex: "0", // Optional. The index to start getting the address
|
||||||
|
numAddresses: "1", // Optional. The number of addresses to get
|
||||||
|
hdpath: "m/44'/60'/0'/0/" // Optional. HD derivation path
|
||||||
|
}
|
||||||
|
]*/
|
||||||
|
},
|
||||||
|
|
||||||
|
// default environment, merges with the settings in default
|
||||||
|
// assumed to be the intended environment by `embark run` and `embark blockchain`
|
||||||
|
development: {
|
||||||
|
ethereumClientName: "geth", // Can be geth or parity (default:geth)
|
||||||
|
//ethereumClientBin: "geth", // path to the client binary. Useful if it is not in the global PATH
|
||||||
|
networkType: "custom", // Can be: testnet, rinkeby, livenet or custom, in which case, it will use the specified networkId
|
||||||
|
networkId: 1337, // Network id used when networkType is custom
|
||||||
|
isDev: true, // Uses and ephemeral proof-of-authority network with a pre-funded developer account, mining enabled
|
||||||
|
datadir: ".embark/development/datadir", // Data directory for the databases and keystore (Geth 1.8.15 and Parity 2.0.4 can use the same base folder, till now they does not conflict with each other)
|
||||||
|
mineWhenNeeded: true, // Uses our custom script (if isDev is false) to mine only when needed
|
||||||
|
nodiscover: true, // Disables the peer discovery mechanism (manual peer addition)
|
||||||
|
maxpeers: 0, // Maximum number of network peers (network disabled if set to 0) (default: 25)
|
||||||
|
proxy: true, // Proxy is used to present meaningful information about transactions
|
||||||
|
targetGasLimit: 8000000, // Target gas limit sets the artificial target gas floor for the blocks to mine
|
||||||
|
simulatorBlocktime: 0 // Specify blockTime in seconds for automatic mining. Default is 0 and no auto-mining.
|
||||||
|
},
|
||||||
|
|
||||||
|
// merges with the settings in default
|
||||||
|
// used with "embark run privatenet" and/or "embark blockchain privatenet"
|
||||||
|
privatenet: {
|
||||||
|
networkType: "custom",
|
||||||
|
networkId: 1337,
|
||||||
|
isDev: false,
|
||||||
|
datadir: ".embark/privatenet/datadir",
|
||||||
|
// -- mineWhenNeeded --
|
||||||
|
// This options is only valid when isDev is false.
|
||||||
|
// Enabling this option uses our custom script to mine only when needed.
|
||||||
|
// Embark creates a development account for you (using `geth account new`) and funds the account. This account can be used for
|
||||||
|
// development (and even imported in to MetaMask). To enable correct usage, a password for this account must be specified
|
||||||
|
// in the `account > password` setting below.
|
||||||
|
// NOTE: once `mineWhenNeeded` is enabled, you must run an `embark reset` on your dApp before running
|
||||||
|
// `embark blockchain` or `embark run` for the first time.
|
||||||
|
mineWhenNeeded: true,
|
||||||
|
// -- genesisBlock --
|
||||||
|
// This option is only valid when mineWhenNeeded is true (which is only valid if isDev is false).
|
||||||
|
// When enabled, geth uses POW to mine transactions as it would normally, instead of using POA as it does in --dev mode.
|
||||||
|
// On the first `embark blockchain or embark run` after this option is enabled, geth will create a new chain with a
|
||||||
|
// genesis block, which can be configured using the `genesisBlock` configuration option below.
|
||||||
|
genesisBlock: "config/privatenet/genesis.json", // Genesis block to initiate on first creation of a development node
|
||||||
|
nodiscover: true,
|
||||||
|
maxpeers: 0,
|
||||||
|
proxy: true,
|
||||||
|
accounts: [
|
||||||
|
{
|
||||||
|
nodeAccounts: true,
|
||||||
|
password: "config/privatenet/password" // Password to unlock the account
|
||||||
|
}
|
||||||
|
],
|
||||||
|
targetGasLimit: 8000000,
|
||||||
|
simulatorBlocktime: 0
|
||||||
|
},
|
||||||
|
|
||||||
|
privateparitynet: {
|
||||||
|
ethereumClientName: "parity",
|
||||||
|
networkType: "custom",
|
||||||
|
networkId: 1337,
|
||||||
|
isDev: false,
|
||||||
|
genesisBlock: "config/privatenet/genesis-parity.json", // Genesis block to initiate on first creation of a development node
|
||||||
|
datadir: ".embark/privatenet/datadir",
|
||||||
|
mineWhenNeeded: false,
|
||||||
|
nodiscover: true,
|
||||||
|
maxpeers: 0,
|
||||||
|
proxy: true,
|
||||||
|
accounts: [
|
||||||
|
{
|
||||||
|
nodeAccounts: true,
|
||||||
|
password: "config/privatenet/password"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
targetGasLimit: 8000000,
|
||||||
|
simulatorBlocktime: 0
|
||||||
|
},
|
||||||
|
|
||||||
|
// merges with the settings in default
|
||||||
|
// used with "embark run testnet" and/or "embark blockchain testnet"
|
||||||
|
testnet: {
|
||||||
|
networkType: "testnet",
|
||||||
|
syncMode: "light",
|
||||||
|
accounts: [
|
||||||
|
{
|
||||||
|
nodeAccounts: true,
|
||||||
|
password: "config/testnet/password"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
|
||||||
|
// merges with the settings in default
|
||||||
|
// used with "embark run livenet" and/or "embark blockchain livenet"
|
||||||
|
livenet: {
|
||||||
|
networkType: "livenet",
|
||||||
|
syncMode: "light",
|
||||||
|
rpcCorsDomain: "http://localhost:8000",
|
||||||
|
wsOrigins: "http://localhost:8000",
|
||||||
|
accounts: [
|
||||||
|
{
|
||||||
|
nodeAccounts: true,
|
||||||
|
password: "config/livenet/password"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
|
||||||
|
// you can name an environment with specific settings and then specify with
|
||||||
|
// "embark run custom_name" or "embark blockchain custom_name"
|
||||||
|
//custom_name: {
|
||||||
|
//}
|
||||||
|
};
|
|
@ -0,0 +1,46 @@
|
||||||
|
module.exports = {
|
||||||
|
// default applies to all environments
|
||||||
|
default: {
|
||||||
|
enabled: false,
|
||||||
|
provider: "whisper", // Communication provider. Currently, Embark only supports whisper
|
||||||
|
available_providers: ["whisper"], // Array of available providers
|
||||||
|
},
|
||||||
|
|
||||||
|
// default environment, merges with the settings in default
|
||||||
|
// assumed to be the intended environment by `embark run`
|
||||||
|
development: {
|
||||||
|
connection: {
|
||||||
|
host: "localhost", // Host of the blockchain node
|
||||||
|
port: 8546, // Port of the blockchain node
|
||||||
|
type: "ws" // Type of connection (ws or rpc)
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
// merges with the settings in default
|
||||||
|
// used with "embark run privatenet"
|
||||||
|
privatenet: {
|
||||||
|
},
|
||||||
|
|
||||||
|
// merges with the settings in default
|
||||||
|
// used with "embark run testnet"
|
||||||
|
testnet: {
|
||||||
|
},
|
||||||
|
|
||||||
|
// merges with the settings in default
|
||||||
|
// used with "embark run livenet"
|
||||||
|
livenet: {
|
||||||
|
},
|
||||||
|
|
||||||
|
// you can name an environment with specific settings and then specify with
|
||||||
|
// "embark run custom_name"
|
||||||
|
//custom_name: {
|
||||||
|
//}
|
||||||
|
// Use this section when you need a specific symmetric or private keys in whisper
|
||||||
|
/*
|
||||||
|
,keys: {
|
||||||
|
symmetricKey: "your_symmetric_key",// Symmetric key for message decryption
|
||||||
|
privateKey: "your_private_key" // Private Key to be used as a signing key and for message decryption
|
||||||
|
}
|
||||||
|
*/
|
||||||
|
//}
|
||||||
|
};
|
|
@ -0,0 +1,93 @@
|
||||||
|
module.exports = {
|
||||||
|
// default applies to all environments
|
||||||
|
default: {
|
||||||
|
// Blockchain node to deploy the contracts
|
||||||
|
deployment: {
|
||||||
|
host: "localhost", // Host of the blockchain node
|
||||||
|
port: 8546, // Port of the blockchain node
|
||||||
|
type: "ws" // Type of connection (ws or rpc),
|
||||||
|
// Accounts to use instead of the default account to populate your wallet
|
||||||
|
// The order here corresponds to the order of `web3.eth.getAccounts`, so the first one is the `defaultAccount`
|
||||||
|
/*,accounts: [
|
||||||
|
{
|
||||||
|
privateKey: "your_private_key",
|
||||||
|
balance: "5 ether" // You can set the balance of the account in the dev environment
|
||||||
|
// Balances are in Wei, but you can specify the unit with its name
|
||||||
|
},
|
||||||
|
{
|
||||||
|
privateKeyFile: "path/to/file", // Either a keystore or a list of keys, separated by , or ;
|
||||||
|
password: "passwordForTheKeystore" // Needed to decrypt the keystore file
|
||||||
|
},
|
||||||
|
{
|
||||||
|
mnemonic: "12 word mnemonic",
|
||||||
|
addressIndex: "0", // Optional. The index to start getting the address
|
||||||
|
numAddresses: "1", // Optional. The number of addresses to get
|
||||||
|
hdpath: "m/44'/60'/0'/0/" // Optional. HD derivation path
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"nodeAccounts": true // Uses the Ethereum node's accounts
|
||||||
|
}
|
||||||
|
]*/
|
||||||
|
},
|
||||||
|
// order of connections the dapp should connect to
|
||||||
|
dappConnection: [
|
||||||
|
"$WEB3", // uses pre existing web3 object if available (e.g in Mist)
|
||||||
|
"ws://localhost:8546",
|
||||||
|
"http://localhost:8545"
|
||||||
|
],
|
||||||
|
|
||||||
|
// Automatically call `ethereum.enable` if true.
|
||||||
|
// If false, the following code must run before sending any transaction: `await EmbarkJS.enableEthereum();`
|
||||||
|
// Default value is true.
|
||||||
|
// dappAutoEnable: true,
|
||||||
|
|
||||||
|
gas: "auto",
|
||||||
|
|
||||||
|
// Strategy for the deployment of the contracts:
|
||||||
|
// - implicit will try to deploy all the contracts located inside the contracts directory
|
||||||
|
// or the directory configured for the location of the contracts. This is default one
|
||||||
|
// when not specified
|
||||||
|
// - explicit will only attempt to deploy the contracts that are explicitly specified inside the
|
||||||
|
// contracts section.
|
||||||
|
//strategy: 'implicit',
|
||||||
|
|
||||||
|
// minimalContractSize, when set to true, tells Embark to generate contract files without the heavy bytecodes
|
||||||
|
// Using filteredFields lets you customize which field you want to filter out of the contract file (requires minimalContractSize: true)
|
||||||
|
// minimalContractSize: false,
|
||||||
|
// filteredFields: [],
|
||||||
|
|
||||||
|
contracts: {
|
||||||
|
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
// default environment, merges with the settings in default
|
||||||
|
// assumed to be the intended environment by `embark run`
|
||||||
|
development: {
|
||||||
|
dappConnection: [
|
||||||
|
"ws://localhost:8546",
|
||||||
|
"http://localhost:8545",
|
||||||
|
"$WEB3" // uses pre existing web3 object if available (e.g in Mist)
|
||||||
|
]
|
||||||
|
},
|
||||||
|
|
||||||
|
// merges with the settings in default
|
||||||
|
// used with "embark run privatenet"
|
||||||
|
privatenet: {
|
||||||
|
},
|
||||||
|
|
||||||
|
// merges with the settings in default
|
||||||
|
// used with "embark run testnet"
|
||||||
|
testnet: {
|
||||||
|
},
|
||||||
|
|
||||||
|
// merges with the settings in default
|
||||||
|
// used with "embark run livenet"
|
||||||
|
livenet: {
|
||||||
|
},
|
||||||
|
|
||||||
|
// you can name an environment with specific settings and then specify with
|
||||||
|
// "embark run custom_name" or "embark blockchain custom_name"
|
||||||
|
//custom_name: {
|
||||||
|
//}
|
||||||
|
};
|
|
@ -0,0 +1 @@
|
||||||
|
dev_password
|
|
@ -0,0 +1,39 @@
|
||||||
|
module.exports = {
|
||||||
|
// default applies to all environments
|
||||||
|
default: {
|
||||||
|
enabled: false,
|
||||||
|
available_providers: ["ens"],
|
||||||
|
provider: "ens"
|
||||||
|
},
|
||||||
|
|
||||||
|
// default environment, merges with the settings in default
|
||||||
|
// assumed to be the intended environment by `embark run`
|
||||||
|
development: {
|
||||||
|
register: {
|
||||||
|
rootDomain: "embark.eth",
|
||||||
|
subdomains: {
|
||||||
|
'status': '0x1a2f3b98e434c02363f3dac3174af93c1d690914'
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
// merges with the settings in default
|
||||||
|
// used with "embark run privatenet"
|
||||||
|
privatenet: {
|
||||||
|
},
|
||||||
|
|
||||||
|
// merges with the settings in default
|
||||||
|
// used with "embark run testnet"
|
||||||
|
testnet: {
|
||||||
|
},
|
||||||
|
|
||||||
|
// merges with the settings in default
|
||||||
|
// used with "embark run livenet"
|
||||||
|
livenet: {
|
||||||
|
},
|
||||||
|
|
||||||
|
// you can name an environment with specific settings and then specify with
|
||||||
|
// "embark run custom_name" or "embark blockchain custom_name"
|
||||||
|
//custom_name: {
|
||||||
|
//}
|
||||||
|
};
|
|
@ -0,0 +1,27 @@
|
||||||
|
// Embark has support for Flow enabled by default in its built-in webpack
|
||||||
|
// config: type annotations will automatically be stripped out of DApp sources
|
||||||
|
// without any additional configuration. Note that type checking is not
|
||||||
|
// performed during builds.
|
||||||
|
|
||||||
|
// To enable Flow type checking refer to the preconfigured template:
|
||||||
|
// https://github.com/embark-framework/embark-flow-template
|
||||||
|
// A new DApp can be created from that template with:
|
||||||
|
// embark new --template flow
|
||||||
|
|
||||||
|
module.exports = {
|
||||||
|
typescript: false,
|
||||||
|
// Setting `typescript: true` in this config will disable Flow support in
|
||||||
|
// Embark's default webpack config and enable TypeScript support: .ts and
|
||||||
|
// .tsx sources will automatically be transpiled into JavaScript without any
|
||||||
|
// additional configuration. Note that type checking is not performed during
|
||||||
|
// builds.
|
||||||
|
|
||||||
|
// To enable TypeScript type checking refer to the preconfigured template:
|
||||||
|
// https://github.com/embark-framework/embark-typescript-template
|
||||||
|
// A new DApp can be created from that template with:
|
||||||
|
// embark new --template typescript
|
||||||
|
enabled: true
|
||||||
|
// Setting `enabled: false` in this config will disable Embark's built-in Webpack
|
||||||
|
// pipeline. The developer will need to use a different frontend build tool, such as
|
||||||
|
// `create-react-app` or Angular CLI to build their dapp
|
||||||
|
};
|
File diff suppressed because one or more lines are too long
|
@ -0,0 +1,20 @@
|
||||||
|
{
|
||||||
|
"config": {
|
||||||
|
"homesteadBlock": 0,
|
||||||
|
"byzantiumBlock": 0,
|
||||||
|
"eip155Block": 0,
|
||||||
|
"eip158Block": 0,
|
||||||
|
"daoForkSupport": true
|
||||||
|
},
|
||||||
|
"nonce": "0x0000000000000042",
|
||||||
|
"difficulty": "0x0",
|
||||||
|
"alloc": {
|
||||||
|
"0x3333333333333333333333333333333333333333": {"balance": "15000000000000000000"}
|
||||||
|
},
|
||||||
|
"mixhash": "0x0000000000000000000000000000000000000000000000000000000000000000",
|
||||||
|
"coinbase": "0x3333333333333333333333333333333333333333",
|
||||||
|
"timestamp": "0x00",
|
||||||
|
"parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
|
||||||
|
"extraData": "0x",
|
||||||
|
"gasLimit": "0x7a1200"
|
||||||
|
}
|
|
@ -0,0 +1 @@
|
||||||
|
dev_password
|
|
@ -0,0 +1,59 @@
|
||||||
|
module.exports = {
|
||||||
|
// default applies to all environments
|
||||||
|
default: {
|
||||||
|
enabled: false,
|
||||||
|
ipfs_bin: "ipfs",
|
||||||
|
available_providers: ["ipfs"],
|
||||||
|
upload: {
|
||||||
|
provider: "ipfs",
|
||||||
|
host: "localhost",
|
||||||
|
port: 5001
|
||||||
|
},
|
||||||
|
dappConnection: [
|
||||||
|
{
|
||||||
|
provider: "ipfs",
|
||||||
|
host: "localhost",
|
||||||
|
port: 5001,
|
||||||
|
getUrl: "http://localhost:8080/ipfs/"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
// Configuration to start Swarm in the same terminal as `embark run`
|
||||||
|
/*,account: {
|
||||||
|
address: "YOUR_ACCOUNT_ADDRESS", // Address of account accessing Swarm
|
||||||
|
password: "PATH/TO/PASSWORD/FILE" // File containing the password of the account
|
||||||
|
},
|
||||||
|
swarmPath: "PATH/TO/SWARM/EXECUTABLE" // Path to swarm executable (default: swarm)*/
|
||||||
|
},
|
||||||
|
|
||||||
|
// default environment, merges with the settings in default
|
||||||
|
// assumed to be the intended environment by `embark run`
|
||||||
|
development: {
|
||||||
|
enabled: false,
|
||||||
|
upload: {
|
||||||
|
provider: "ipfs",
|
||||||
|
host: "localhost",
|
||||||
|
port: 5001,
|
||||||
|
getUrl: "http://localhost:8080/ipfs/"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
// merges with the settings in default
|
||||||
|
// used with "embark run privatenet"
|
||||||
|
privatenet: {
|
||||||
|
},
|
||||||
|
|
||||||
|
// merges with the settings in default
|
||||||
|
// used with "embark run testnet"
|
||||||
|
testnet: {
|
||||||
|
},
|
||||||
|
|
||||||
|
// merges with the settings in default
|
||||||
|
// used with "embark run livenet"
|
||||||
|
livenet: {
|
||||||
|
},
|
||||||
|
|
||||||
|
// you can name an environment with specific settings and then specify with
|
||||||
|
// "embark run custom_name"
|
||||||
|
//custom_name: {
|
||||||
|
//}
|
||||||
|
};
|
|
@ -0,0 +1 @@
|
||||||
|
test_password
|
|
@ -0,0 +1,6 @@
|
||||||
|
module.exports = {
|
||||||
|
enabled: true,
|
||||||
|
host: "localhost",
|
||||||
|
openBrowser: true,
|
||||||
|
port: 8000
|
||||||
|
};
|
|
@ -0,0 +1,17 @@
|
||||||
|
pragma solidity ^0.5.0;
|
||||||
|
|
||||||
|
contract Ranking {
|
||||||
|
|
||||||
|
mapping(address => uint[]) public rating;
|
||||||
|
|
||||||
|
event Rating(address sender, address addr, uint rating);
|
||||||
|
|
||||||
|
function rate(address _addr, uint _rate) external {
|
||||||
|
require(_rate >= 1, "Rating needs to be at least 1");
|
||||||
|
require(_rate <= 5, "Rating needs to be at less than or equal to 5");
|
||||||
|
|
||||||
|
rating[msg.sender].push(_rate);
|
||||||
|
|
||||||
|
emit Rating(msg.sender, _addr, _rate);
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,23 @@
|
||||||
|
{
|
||||||
|
"contracts": ["contracts/**"],
|
||||||
|
"app": {
|
||||||
|
"app.js": ["app/app.js"],
|
||||||
|
"index.html": "app/index.html"
|
||||||
|
},
|
||||||
|
"buildDir": "dist/",
|
||||||
|
"config": "config/",
|
||||||
|
"versions": {
|
||||||
|
"web3": "1.2.1",
|
||||||
|
"solc": "0.5.0",
|
||||||
|
"ipfs-api": "17.2.4"
|
||||||
|
},
|
||||||
|
"plugins": {
|
||||||
|
},
|
||||||
|
"options": {
|
||||||
|
"solc": {
|
||||||
|
"optimize": true,
|
||||||
|
"optimize-runs": 200
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"generationDir": "embarkArtifacts"
|
||||||
|
}
|
|
@ -0,0 +1,22 @@
|
||||||
|
{
|
||||||
|
"name": "embark-test",
|
||||||
|
"version": "0.0.1",
|
||||||
|
"description": "",
|
||||||
|
"scripts": {
|
||||||
|
"test": "embark test"
|
||||||
|
},
|
||||||
|
"keywords": [],
|
||||||
|
"author": "",
|
||||||
|
"license": "MIT",
|
||||||
|
"devDependencies": {},
|
||||||
|
"dependencies": {
|
||||||
|
"@nozbe/with-observables": "^1.0.5",
|
||||||
|
"phoenix": "../../",
|
||||||
|
"react": "^16.9.0",
|
||||||
|
"react-dom": "^16.9.0",
|
||||||
|
"rxjs": "^6.5.2",
|
||||||
|
"rxjs-compat": "^6.5.2",
|
||||||
|
"web3": "^1.0.0-beta.37"
|
||||||
|
},
|
||||||
|
"gitHead": "4b4a00bd4d5be0e48a14e38bbdad833668af4ee2"
|
||||||
|
}
|
|
@ -0,0 +1,41 @@
|
||||||
|
/*global contract, it*/
|
||||||
|
/*
|
||||||
|
const SimpleStorage = require('Embark/contracts/SimpleStorage');
|
||||||
|
|
||||||
|
let accounts;
|
||||||
|
|
||||||
|
// For documentation please see https://embark.status.im/docs/contracts_testing.html
|
||||||
|
config({
|
||||||
|
//deployment: {
|
||||||
|
// accounts: [
|
||||||
|
// // you can configure custom accounts with a custom balance
|
||||||
|
// // see https://embark.status.im/docs/contracts_testing.html#Configuring-accounts
|
||||||
|
// ]
|
||||||
|
//},
|
||||||
|
contracts: {
|
||||||
|
"SimpleStorage": {
|
||||||
|
args: [100]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}, (_err, web3_accounts) => {
|
||||||
|
accounts = web3_accounts
|
||||||
|
});*/
|
||||||
|
|
||||||
|
contract.skip("SimpleStorage", function () {
|
||||||
|
|
||||||
|
it("should set constructor value", async function () {
|
||||||
|
let result = await SimpleStorage.methods.storedData().call();
|
||||||
|
assert.strictEqual(parseInt(result, 10), 100);
|
||||||
|
});
|
||||||
|
|
||||||
|
it("set storage value", async function () {
|
||||||
|
await SimpleStorage.methods.set(150).send();
|
||||||
|
let result = await SimpleStorage.methods.get().call();
|
||||||
|
assert.strictEqual(parseInt(result, 10), 150);
|
||||||
|
});
|
||||||
|
|
||||||
|
it("should have account with balance", async function() {
|
||||||
|
let balance = await web3.eth.getBalance(accounts[0]);
|
||||||
|
assert.ok(parseInt(balance, 10) > 0);
|
||||||
|
});
|
||||||
|
});
|
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue