parent
5b3d629d06
commit
8adb25cb51
@ -0,0 +1,40 @@ |
|||||||
|
'use strict' |
||||||
|
var tape = require('tape') |
||||||
|
var txFormat = require('../src/execution/txFormat') |
||||||
|
var compiler = require('solc') |
||||||
|
var compilerInput = require('../src/helpers/compilerHelper').compilerInput |
||||||
|
|
||||||
|
var context |
||||||
|
tape('ContractParameters - (TxFormat.buildData)', function (t) { |
||||||
|
var output = compiler.compileStandardWrapper(compilerInput(uintContract)) |
||||||
|
output = JSON.parse(output) |
||||||
|
var contract = output.contracts['test.sol']['uintContractTest'] |
||||||
|
var udapp = { runTx: () => {} } // fake
|
||||||
|
context = { output, contract, udapp } |
||||||
|
var bytecode = '6060604052341561000f57600080fd5b6101058061001e6000396000f300606060405260043610603f576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680634b521953146044575b600080fd5b3415604e57600080fd5b608a600480803590602001909190803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050608c565b005b8260008190555081600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050505600a165627a7a72305820e2f31aca91b90c01fe46fd2de5b3788ba02f577f9858e6aae48800e29db122670029' |
||||||
|
t.test('(TxFormat.buildData)', function (st) { |
||||||
|
st.plan(3) |
||||||
|
testWithInput(st, '123123, "0xf7a10e525d4b168f45f74db1b61f63d3e7619ea8", "34"', bytecode + '000000000000000000000000000000000000000000000000000000000001e0f3000000000000000000000000f7a10e525d4b168f45f74db1b61f63d3e7619ea80000000000000000000000000000000000000000000000000000000000000022') |
||||||
|
testWithInput(st, '"123123" , 0xf7a10e525d4b168f45f74db1b61f63d3e7619ea8, 654 ', bytecode + '000000000000000000000000000000000000000000000000000000000001e0f3000000000000000000000000f7a10e525d4b168f45f74db1b61f63d3e7619ea8000000000000000000000000000000000000000000000000000000000000028e') |
||||||
|
// parsing this as javascript number should overflow
|
||||||
|
testWithInput(st, '90071992547409910000, 0xf7a10e525d4b168f45f74db1b61f63d3e7619ea8, 0', bytecode + '000000000000000000000000000000000000000000000004e1ffffffffffd8f0000000000000000000000000f7a10e525d4b168f45f74db1b61f63d3e7619ea80000000000000000000000000000000000000000000000000000000000000000') |
||||||
|
}) |
||||||
|
}) |
||||||
|
|
||||||
|
function testWithInput (st, params, expected) { |
||||||
|
txFormat.buildData('uintContractTest', context.contract, context.output.contracts, true, context.contract.abi[0], params, context.udapp |
||||||
|
, (error, data) => { |
||||||
|
if (error) { return st.fails(error) } |
||||||
|
console.log(data) |
||||||
|
st.equal(data.dataHex, expected) |
||||||
|
}, () => {}) |
||||||
|
} |
||||||
|
|
||||||
|
var uintContract = `contract uintContractTest {
|
||||||
|
uint _tp; |
||||||
|
address _ap; |
||||||
|
function test(uint _t, address _a, uint _i) { |
||||||
|
_tp = _t; |
||||||
|
_ap = _a; |
||||||
|
} |
||||||
|
}` |
Loading…
Reference in new issue