MCPcopy Create free account
hub / github.com/coder5876/simple-multisig / executeSendSuccess

Function executeSendSuccess

test/simplemultisig.js:66–137  ·  view source on GitHub ↗
(owners, threshold, signers, done)

Source from the content-addressed store, hash-verified

64 }
65
66 let executeSendSuccess = async function(owners, threshold, signers, done) {
67
68 let multisig = await SimpleMultiSig.new(threshold, owners, CHAINID, {from: accounts[0]})
69 let randomAddr = web3.sha3(Math.random().toString()).slice(0,42)
70 let executor = accounts[0]
71 let msgSender = accounts[0]
72
73 // Receive funds
74 await web3SendTransaction({from: accounts[0], to: multisig.address, value: web3.toWei(web3.toBigNumber(0.1), 'ether')})
75
76 let nonce = await multisig.nonce.call()
77 assert.equal(nonce.toNumber(), 0)
78
79 let bal = await web3GetBalance(multisig.address)
80 assert.equal(bal, web3.toWei(0.1, 'ether'))
81
82 // check that owners are stored correctly
83 for (var i=0; i<owners.length; i++) {
84 let ownerFromContract = await multisig.ownersArr.call(i)
85 assert.equal(owners[i], ownerFromContract)
86 }
87
88 let value = web3.toWei(web3.toBigNumber(0.01), 'ether')
89
90 let sigs = createSigs(signers, multisig.address, nonce, randomAddr, value, '', executor, 21000)
91
92 await multisig.execute(sigs.sigV, sigs.sigR, sigs.sigS, randomAddr, value, '', executor, 21000, {from: msgSender, gasLimit: 1000000})
93
94 // Check funds sent
95 bal = await web3GetBalance(randomAddr)
96 assert.equal(bal.toString(), value.toString())
97
98 // Check nonce updated
99 nonce = await multisig.nonce.call()
100 assert.equal(nonce.toNumber(), 1)
101
102 // Send again
103 // Check that it succeeds with executor = Zero address
104 sigs = createSigs(signers, multisig.address, nonce, randomAddr, value, '', ZEROADDR, 21000)
105 await multisig.execute(sigs.sigV, sigs.sigR, sigs.sigS, randomAddr, value, '', ZEROADDR, 21000, {from: msgSender, gasLimit: 1000000})
106
107 // Check funds
108 bal = await web3GetBalance(randomAddr)
109 assert.equal(bal.toString(), (value*2).toString())
110
111 // Check nonce updated
112 nonce = await multisig.nonce.call()
113 assert.equal(nonce.toNumber(), 2)
114
115 // Test contract interactions
116 let reg = await TestRegistry.new({from: accounts[0]})
117
118 let number = 12345
119 let data = lightwallet.txutils._encodeFunctionTxData('register', ['uint256'], [number])
120
121 sigs = createSigs(signers, multisig.address, nonce, reg.address, value, data, executor, 100000)
122 await multisig.execute(sigs.sigV, sigs.sigR, sigs.sigS, reg.address, value, data, executor, 100000, {from: msgSender, gasLimit: 1000000})
123

Callers 1

simplemultisig.jsFile · 0.85

Calls 1

createSigsFunction · 0.85

Tested by

no test coverage detected