diff --git a/test-dapp/app/components/body-identity.js b/test-dapp/app/components/body-identity.js
index ff4ce00..0af7bef 100644
--- a/test-dapp/app/components/body-identity.js
+++ b/test-dapp/app/components/body-identity.js
@@ -69,6 +69,10 @@ class Body extends Component {
let relayers = this.state.relayers;
relayers[msgObj.sig] = msgObj.address;
+
+ if(this.state.relayerAddress == '0x0000000000000000000000000000000000000000'){
+ this.setState({relayerAddress: msgObj.address});
+ }
this.setState({relayers});
}
diff --git a/test-dapp/app/components/body-sntcontroller.js b/test-dapp/app/components/body-sntcontroller.js
index 6eba1f2..5376a42 100644
--- a/test-dapp/app/components/body-sntcontroller.js
+++ b/test-dapp/app/components/body-sntcontroller.js
@@ -30,7 +30,8 @@ class Body extends Component {
kid: null,
skid: null,
message: '',
- relayers: []
+ relayerAddress: '0x0000000000000000000000000000000000000000',
+ relayers: {}
};
}
@@ -43,6 +44,14 @@ class Body extends Component {
const web3js = new Web3('ws://localhost:8546');
+
+ // Default for devenv
+ web3js.eth.net.getId().then(netId => {
+ if(netId != 1 && netId != 3){
+ this.setState({relayerAddress: config.relayAccount});
+ }
+ });
+
web3js.shh.newKeyPair()
.then((kid) => {
web3js.shh.addSymKey(config.relaySymKey)
@@ -58,9 +67,14 @@ class Body extends Component {
if(msgObj.message == Messages.available){
// found a relayer
console.log("Relayer available: " + msgObj.sig);
+
let relayers = this.state.relayers;
- relayers.push(msgObj.sig);
- relayers = relayers.filter((value, index, self) => self.indexOf(value) === index);
+ relayers[msgObj.sig] = msgObj.address;
+
+ if(this.state.relayerAddress == '0x0000000000000000000000000000000000000000'){
+ this.setState({relayerAddress: msgObj.address});
+ }
+
this.setState({relayers});
}
@@ -79,7 +93,7 @@ class Body extends Component {
web3.eth.getAccounts()
.then(accounts => {
- this.setState({walletAddress: accounts[2]});
+ this.setState({walletAddress: accounts[0]});
});
});
@@ -89,6 +103,10 @@ class Body extends Component {
this.setState({tab});
};
+ updateRelayer = (relayer) => {
+ this.setState({relayerAddress: this.state.relayers[relayer]});
+ }
+
updateNonce = (newNonce) => {
this.setState({nonce: newNonce});
}
@@ -98,18 +116,18 @@ class Body extends Component {
}
render(){
- const {tab, walletAddress, nonce, web3js, message, kid, skid, relayers} = this.state;
+ const {tab, walletAddress, nonce, web3js, message, kid, skid, relayers, relayerAddress} = this.state;
return
- {tab === 0 && }
- {tab === 1 && }
+ {tab === 0 && }
+ {tab === 1 && }
-
+
;
}
diff --git a/test-dapp/app/components/execute.js b/test-dapp/app/components/execute.js
index 7e335ed..a71ecb0 100644
--- a/test-dapp/app/components/execute.js
+++ b/test-dapp/app/components/execute.js
@@ -51,6 +51,9 @@ class Execute extends Component {
}
handleChange = name => event => {
+ if(name == 'relayer'){
+ this.props.updateRelayer(event.target.value);
+ }
this.setState({
[name]: event.target.value
});
@@ -67,7 +70,7 @@ class Execute extends Component {
try {
const accounts = await web3.eth.getAccounts();
- const s = new StatusGasRelayer.SNTController(SNTController.options.address, accounts[2])
+ const s = new StatusGasRelayer.SNTController(SNTController.options.address, accounts[0])
.execute(this.state.allowedContract, this.state.data)
.setGas(this.state.gasPrice, this.state.gasMinimal);
@@ -104,7 +107,7 @@ class Execute extends Component {
try {
const accounts = await web3.eth.getAccounts();
- const s = new StatusGasRelayer.AvailableRelayers(Contracts.SNT, SNTController.options.address, accounts[2])
+ const s = new StatusGasRelayer.AvailableRelayers(Contracts.SNT, SNTController.options.address, accounts[0])
.setRelayersSymKeyID(skid)
.setAsymmetricKeyID(kid)
.setGas(STT.options.address, this.state.gasPrice);
@@ -124,10 +127,16 @@ class Execute extends Component {
const {web3, kid} = this.props;
let relayer = this.state.relayer;
- if(relayer == '' && this.props.relayers.length == 1){
- relayer = this.props.relayers[0];
- }
+
+ let relayers = [];
+ for (var key in this.props.relayers) {
+ if (this.props.relayers.hasOwnProperty(key)) relayers.push(key);
+ }
+
+ if(relayer == '' && relayers.length == 1){
+ relayer = relayers[0];
+ }
this.setState({
messagingError: '',
@@ -138,7 +147,7 @@ class Execute extends Component {
try {
const accounts = await web3.eth.getAccounts();
- const s = new StatusGasRelayer.SNTController(SNTController.options.address, accounts[2])
+ const s = new StatusGasRelayer.SNTController(SNTController.options.address, accounts[0])
.execute(this.state.allowedContract, this.state.data)
.setGas(this.state.gasPrice, this.state.gasMinimal)
.setRelayer(relayer)
@@ -156,6 +165,12 @@ class Execute extends Component {
render(){
const {classes} = this.props;
+
+ let relayers = [];
+ for (var key in this.props.relayers) {
+ if (this.props.relayers.hasOwnProperty(key)) relayers.push(key);
+ }
+
return
@@ -279,12 +294,7 @@ class Execute extends Component {
native: true
}}
>
- {
- this.props.relayers.length > 0 ?
- this.props.relayers.map((r, i) => )
- :
-
- }
+ { relayers.length > 0 ? relayers.map((r, i) => ) : }
{
+ this.web3BlockRead();
+ }
+
+ web3BlockRead = () => {
+ web3.eth.getBlock('latest').then(block => {
this.setState({block: block.number});
this.readChain();
+ setTimeout(this.web3BlockRead, 10000);
return true;
});
}
diff --git a/test-dapp/app/components/status-sntcontroller.js b/test-dapp/app/components/status-sntcontroller.js
index b49bb6d..8cc5973 100644
--- a/test-dapp/app/components/status-sntcontroller.js
+++ b/test-dapp/app/components/status-sntcontroller.js
@@ -52,9 +52,9 @@ class Status extends Component {
constructor(props){
super(props);
this.state = {
+ 'isDev': true,
'addressETHBalance': 0,
'addressSTTBalance': 0,
- 'relayerAddress': null,
'relayerEthBalance': 0,
'relayerSTTBalance': 0,
'block': 0,
@@ -72,19 +72,25 @@ class Status extends Component {
return;
}
- this.setState({
- relayerAddress: config.relayAccount
- });
-
this.getBlock();
});
}
getBlock = () => {
- web3.eth.subscribe('newBlockHeaders')
- .on('data', (block) => {
+
+ // Default for devenv
+ web3.eth.net.getId().then(netId => {
+ this.setState({isDev: netId != 1 && netId != 3});
+ });
+
+ this.web3BlockRead();
+ }
+
+ web3BlockRead = () => {
+ web3.eth.getBlock('latest').then(block => {
this.setState({block: block.number});
this.readChain();
+ setTimeout(this.web3BlockRead, 10000);
return true;
});
}
@@ -117,12 +123,12 @@ class Status extends Component {
});
}
- web3.eth.getBalance(this.state.relayerAddress)
+ web3.eth.getBalance(this.props.relayerAddress)
.then(relayerEthBalance => {
this.setState({relayerEthBalance});
});
- STT.methods.balanceOf(this.state.relayerAddress)
+ STT.methods.balanceOf(this.props.relayerAddress)
.call()
.then(relayerSTTBalance => {
this.setState({relayerSTTBalance: web3.utils.fromWei(relayerSTTBalance, 'ether')});
@@ -170,7 +176,7 @@ class Status extends Component {
submitState.etherSend = false;
this.setState({submitState});
- web3.eth.sendTransaction({from: web3.eth.defaultAccount, to: this.state.relayerAddress, value: web3.utils.toWei('1', "ether")})
+ web3.eth.sendTransaction({from: web3.eth.defaultAccount, to: this.props.relayerAddress, value: web3.utils.toWei('1', "ether")})
.then((receipt) => {
console.log(receipt);
submitState = this.state.submitState;
@@ -180,8 +186,8 @@ class Status extends Component {
}
render(){
- const {classes, walletAddress, nonce} = this.props;
- const {addressETHBalance, relayerAddress, relayerEthBalance, addressSTTBalance, relayerSTTBalance, submitState, block} = this.state;
+ const {classes, walletAddress, nonce, relayerAddress} = this.props;
+ const {addressETHBalance, relayerEthBalance, addressSTTBalance, relayerSTTBalance, submitState, block, isDev} = this.state;
return
@@ -200,14 +206,14 @@ class Status extends Component {
Address
- }
@@ -247,10 +253,10 @@ class Status extends Component {
Relayer
-
+ { isDev &&
Send ether
-
+ }
@@ -292,7 +298,8 @@ Status.propTypes = {
walletAddress: PropTypes.string,
nonce: PropTypes.string.isRequired,
nonceUpdateFunction: PropTypes.func.isRequired,
- message: PropTypes.string
+ message: PropTypes.string,
+ relayerAddress: PropTypes.string
};
export default withStyles(styles)(Status);
diff --git a/test-dapp/app/components/transfersnt.js b/test-dapp/app/components/transfersnt.js
index d9129c1..5881675 100644
--- a/test-dapp/app/components/transfersnt.js
+++ b/test-dapp/app/components/transfersnt.js
@@ -51,6 +51,9 @@ class TransferSNT extends Component {
}
handleChange = name => event => {
+ if(name == 'relayer'){
+ this.props.updateRelayer(event.target.value);
+ }
this.setState({
[name]: event.target.value
});
@@ -77,7 +80,7 @@ class TransferSNT extends Component {
try {
const accounts = await web3.eth.getAccounts();
- const s = new StatusGasRelayer.SNTController(SNTController.options.address, accounts[2])
+ const s = new StatusGasRelayer.SNTController(SNTController.options.address, accounts[0])
.transferSNT(this.state.to, this.state.amount)
.setGas(this.state.gasPrice);
@@ -105,7 +108,7 @@ class TransferSNT extends Component {
try {
const accounts = await web3.eth.getAccounts();
- const s = new StatusGasRelayer.AvailableRelayers(Contracts.SNT, SNTController.options.address, accounts[2])
+ const s = new StatusGasRelayer.AvailableRelayers(Contracts.SNT, SNTController.options.address, accounts[0])
.setRelayersSymKeyID(skid)
.setAsymmetricKeyID(kid)
.setGas(STT.options.address, this.state.gasPrice);
@@ -125,9 +128,16 @@ class TransferSNT extends Component {
const {web3, kid} = this.props;
let relayer = this.state.relayer;
- if(relayer == '' && this.props.relayers.length == 1){
- relayer = this.props.relayers[0];
- }
+
+
+ let relayers = [];
+ for (var key in this.props.relayers) {
+ if (this.props.relayers.hasOwnProperty(key)) relayers.push(key);
+ }
+
+ if(relayer == '' && relayers.length == 1){
+ relayer = relayers[0];
+ }
this.setState({
messagingError: '',
@@ -138,7 +148,7 @@ class TransferSNT extends Component {
try {
const accounts = await web3.eth.getAccounts();
- const s = new StatusGasRelayer.SNTController(SNTController.options.address, accounts[2])
+ const s = new StatusGasRelayer.SNTController(SNTController.options.address, accounts[0])
.transferSNT(this.state.to, this.state.amount)
.setGas(this.state.gasPrice)
.setRelayer(relayer)
@@ -156,6 +166,12 @@ class TransferSNT extends Component {
render(){
const {classes} = this.props;
+
+ let relayers = [];
+ for (var key in this.props.relayers) {
+ if (this.props.relayers.hasOwnProperty(key)) relayers.push(key);
+ }
+
return
@@ -270,12 +286,8 @@ class TransferSNT extends Component {
native: true
}}
>
- {
- this.props.relayers.length > 0 ?
- this.props.relayers.map((r, i) => )
- :
-
- }
+ { relayers.length > 0 ? relayers.map((r, i) => ) : }
+