mirror of
https://github.com/status-im/web3.js.git
synced 2025-02-22 19:18:07 +00:00
removed ethjs-abi tests for now
This commit is contained in:
parent
b8030755df
commit
d1f0e1f900
@ -1,407 +0,0 @@
|
||||
var _ = require('underscore');
|
||||
var chai = require('chai');
|
||||
var assert = chai.assert;
|
||||
var utils = require('../packages/web3-utils');
|
||||
var coder = require('ethjs-abi');
|
||||
|
||||
// TODO check line 108 again!
|
||||
|
||||
var convertResult = function (result) {
|
||||
var resultArray = [];
|
||||
_.each(result, function (res, i) {
|
||||
if(isFinite(i))
|
||||
resultArray.push(res);
|
||||
});
|
||||
var convert = function (resultArray) {
|
||||
return _.map(resultArray, function (res) {
|
||||
if(res.constructor.name === 'BN') {
|
||||
res = res.toString(10);
|
||||
} else if(_.isArray(res)) {
|
||||
res = convert(res);
|
||||
} else if(_.isString(res) && utils.isAddress(res)) {
|
||||
res = utils.toChecksumAddress(res);
|
||||
}
|
||||
return res;
|
||||
});
|
||||
};
|
||||
return convert(resultArray);
|
||||
};
|
||||
|
||||
describe('lib/solidity/coder', function () {
|
||||
describe('decodeParam', function () {
|
||||
var test = function (t) {
|
||||
it('should turn ' + t.type +': ' + t.value + ' to ' + t.expected, function () {
|
||||
// assert.deepEqual(coder.decodeParam(t.type, t.value), t.expected);
|
||||
|
||||
var value = (typeof t.value === 'string') ? '0x'+ t.value.replace('0x','') : t.value;
|
||||
var result = coder.decodeMethod({type: 'function', outputs: [{type: t.type, name: 'TestName'}]}, value);
|
||||
|
||||
|
||||
var resultArray = convertResult(result);
|
||||
|
||||
if(resultArray.length === 1)
|
||||
resultArray = resultArray[0];
|
||||
|
||||
|
||||
assert.deepEqual(resultArray, t.expected);
|
||||
});
|
||||
};
|
||||
|
||||
|
||||
test({ type: 'address', expected: '0x407D73d8a49eeb85D32Cf465507dd71d507100c1',
|
||||
value: '000000000000000000000000407d73d8a49eeb85d32cf465507dd71d507100c1'});
|
||||
test({ type: 'address[2]', expected: ['0x407D73d8a49eeb85D32Cf465507dd71d507100c1', '0x407D73d8A49eEB85D32Cf465507Dd71d507100c3'],
|
||||
value: '000000000000000000000000407d73d8a49eeb85d32cf465507dd71d507100c1' +
|
||||
'000000000000000000000000407d73d8a49eeb85d32cf465507dd71d507100c3' });
|
||||
test({ type: 'address[]', expected: ['0x407D73d8a49eeb85D32Cf465507dd71d507100c1', '0x407D73d8A49eEB85D32Cf465507Dd71d507100c3'],
|
||||
value: '0000000000000000000000000000000000000000000000000000000000000020' +
|
||||
'0000000000000000000000000000000000000000000000000000000000000002' +
|
||||
'000000000000000000000000407d73d8a49eeb85d32cf465507dd71d507100c1' +
|
||||
'000000000000000000000000407d73d8a49eeb85d32cf465507dd71d507100c3' });
|
||||
test({ type: 'address[][2]', expected: [['0x407D73d8a49eeb85D32Cf465507dd71d507100c1', '0x407d73d8a49EEB85d32Cf465507dD71D507100c2'],
|
||||
['0x407D73d8A49eEB85D32Cf465507Dd71d507100c3', '0x407D73d8a49eeb85D32CF465507dd71d507100C4']],
|
||||
value: '0000000000000000000000000000000000000000000000000000000000000040' +
|
||||
'00000000000000000000000000000000000000000000000000000000000000a0' +
|
||||
'0000000000000000000000000000000000000000000000000000000000000002' + /* 40 */
|
||||
'000000000000000000000000407d73d8a49eeb85d32cf465507dd71d507100c1' + /* 60 */
|
||||
'000000000000000000000000407d73d8a49eeb85d32cf465507dd71d507100c2' +
|
||||
'0000000000000000000000000000000000000000000000000000000000000002' + /* a0 */
|
||||
'000000000000000000000000407d73d8a49eeb85d32cf465507dd71d507100c3' +
|
||||
'000000000000000000000000407d73d8a49eeb85d32cf465507dd71d507100c4' });
|
||||
test({ type: 'address[2][]', expected: [['0x407D73d8a49eeb85D32Cf465507dd71d507100c1', '0x407d73d8a49EEB85d32Cf465507dD71D507100c2'],
|
||||
['0x407D73d8A49eEB85D32Cf465507Dd71d507100c3', '0x407D73d8a49eeb85D32CF465507dd71d507100C4']],
|
||||
value: '0000000000000000000000000000000000000000000000000000000000000020' +
|
||||
'0000000000000000000000000000000000000000000000000000000000000002' + /* 20 */
|
||||
'000000000000000000000000407d73d8a49eeb85d32cf465507dd71d507100c1' +
|
||||
'000000000000000000000000407d73d8a49eeb85d32cf465507dd71d507100c2' +
|
||||
'000000000000000000000000407d73d8a49eeb85d32cf465507dd71d507100c3' +
|
||||
'000000000000000000000000407d73d8a49eeb85d32cf465507dd71d507100c4' });
|
||||
test({ type: 'address[][]', expected: [['0x407D73d8a49eeb85D32Cf465507dd71d507100c1', '0x407d73d8a49EEB85d32Cf465507dD71D507100c2'],
|
||||
['0x407D73d8A49eEB85D32Cf465507Dd71d507100c3', '0x407D73d8a49eeb85D32CF465507dd71d507100C4']],
|
||||
value: '0000000000000000000000000000000000000000000000000000000000000020' +
|
||||
'0000000000000000000000000000000000000000000000000000000000000002' + /* 20 */
|
||||
'0000000000000000000000000000000000000000000000000000000000000080' +
|
||||
'00000000000000000000000000000000000000000000000000000000000000e0' +
|
||||
'0000000000000000000000000000000000000000000000000000000000000002' + /* 80 */
|
||||
'000000000000000000000000407d73d8a49eeb85d32cf465507dd71d507100c1' + /* a0 */
|
||||
'000000000000000000000000407d73d8a49eeb85d32cf465507dd71d507100c2' +
|
||||
'0000000000000000000000000000000000000000000000000000000000000002' + /* e0 */
|
||||
'000000000000000000000000407d73d8a49eeb85d32cf465507dd71d507100c3' +
|
||||
'000000000000000000000000407d73d8a49eeb85d32cf465507dd71d507100c4' });
|
||||
test({ type: 'bool', expected: true, value: '0000000000000000000000000000000000000000000000000000000000000001'});
|
||||
test({ type: 'bool', expected: false, value: '0000000000000000000000000000000000000000000000000000000000000000'});
|
||||
test({ type: 'bool[2]', expected: [true, false],
|
||||
value: '0000000000000000000000000000000000000000000000000000000000000001' +
|
||||
'0000000000000000000000000000000000000000000000000000000000000000'});
|
||||
test({ type: 'bool[]', expected: [true, true, false],
|
||||
value: '0000000000000000000000000000000000000000000000000000000000000020' +
|
||||
'0000000000000000000000000000000000000000000000000000000000000003' +
|
||||
'0000000000000000000000000000000000000000000000000000000000000001' +
|
||||
'0000000000000000000000000000000000000000000000000000000000000001' +
|
||||
'0000000000000000000000000000000000000000000000000000000000000000'});
|
||||
|
||||
test({ type: 'int', expected: '1', value: '0000000000000000000000000000000000000000000000000000000000000001'});
|
||||
test({ type: 'int', expected: '1', value: '0000000000000000000000000000000000000000000000000000000000000001'});
|
||||
test({ type: 'int', expected: '16', value: '0000000000000000000000000000000000000000000000000000000000000010'});
|
||||
test({ type: 'int', expected: '-1', value: 'ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff'});
|
||||
test({ type: 'int256', expected: '1', value: '0000000000000000000000000000000000000000000000000000000000000001'});
|
||||
test({ type: 'int256', expected: '16', value: '0000000000000000000000000000000000000000000000000000000000000010'});
|
||||
test({ type: 'int256', expected: '-1', value: 'ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff'});
|
||||
test({ type: 'int8', expected: '16', value: '0000000000000000000000000000000000000000000000000000000000000010'});
|
||||
test({ type: 'int8[2]', expected: ['16', '2'],
|
||||
value: '0000000000000000000000000000000000000000000000000000000000000010' +
|
||||
'0000000000000000000000000000000000000000000000000000000000000002'});
|
||||
test({ type: 'int32', expected: '16', value: '0000000000000000000000000000000000000000000000000000000000000010'});
|
||||
test({ type: 'int64', expected: '16', value: '0000000000000000000000000000000000000000000000000000000000000010'});
|
||||
test({ type: 'int128', expected: '16', value: '0000000000000000000000000000000000000000000000000000000000000010'});
|
||||
test({ type: 'int[]', expected: [], value: '0000000000000000000000000000000000000000000000000000000000000020' +
|
||||
'0000000000000000000000000000000000000000000000000000000000000000'});
|
||||
test({ type: 'int[]', expected: ['3'], value: '0000000000000000000000000000000000000000000000000000000000000020' +
|
||||
'0000000000000000000000000000000000000000000000000000000000000001' +
|
||||
'0000000000000000000000000000000000000000000000000000000000000003'});
|
||||
test({ type: 'int256[]', expected: ['3'], value: '0000000000000000000000000000000000000000000000000000000000000020' +
|
||||
'0000000000000000000000000000000000000000000000000000000000000001' +
|
||||
'0000000000000000000000000000000000000000000000000000000000000003'});
|
||||
test({ type: 'int[]', expected: ['1', '2', '3'],
|
||||
value: '0000000000000000000000000000000000000000000000000000000000000020' +
|
||||
'0000000000000000000000000000000000000000000000000000000000000003' +
|
||||
'0000000000000000000000000000000000000000000000000000000000000001' +
|
||||
'0000000000000000000000000000000000000000000000000000000000000002' +
|
||||
'0000000000000000000000000000000000000000000000000000000000000003'});
|
||||
test({ type: 'int[3][]', expected: [['1', '2', '3'], ['4', '5', '6']],
|
||||
value: '0000000000000000000000000000000000000000000000000000000000000020' +
|
||||
'0000000000000000000000000000000000000000000000000000000000000002' +
|
||||
'0000000000000000000000000000000000000000000000000000000000000001' +
|
||||
'0000000000000000000000000000000000000000000000000000000000000002' +
|
||||
'0000000000000000000000000000000000000000000000000000000000000003' +
|
||||
'0000000000000000000000000000000000000000000000000000000000000004' +
|
||||
'0000000000000000000000000000000000000000000000000000000000000005' +
|
||||
'0000000000000000000000000000000000000000000000000000000000000006'});
|
||||
|
||||
test({ type: 'uint', expected: '1', value: '0000000000000000000000000000000000000000000000000000000000000001'});
|
||||
test({ type: 'uint', expected: '1', value: '0000000000000000000000000000000000000000000000000000000000000001'});
|
||||
test({ type: 'uint', expected: '16', value: '0000000000000000000000000000000000000000000000000000000000000010'});
|
||||
test({ type: 'uint', expected: '115792089237316195423570985008687907853269984665640564039457584007913129639935', // old 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
|
||||
value: 'ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff'});
|
||||
test({ type: 'uint256', expected: '1', value: '0000000000000000000000000000000000000000000000000000000000000001'});
|
||||
test({ type: 'uint256', expected: '16', value: '0000000000000000000000000000000000000000000000000000000000000010'});
|
||||
test({ type: 'uint8', expected: '16', value: '0000000000000000000000000000000000000000000000000000000000000010'});
|
||||
test({ type: 'uint32', expected: '16', value: '0000000000000000000000000000000000000000000000000000000000000010'});
|
||||
test({ type: 'uint64', expected: '16', value: '0000000000000000000000000000000000000000000000000000000000000010'});
|
||||
test({ type: 'uint128', expected: '16', value: '0000000000000000000000000000000000000000000000000000000000000010'});
|
||||
test({ type: 'uint[]', expected: [], value: '0000000000000000000000000000000000000000000000000000000000000020' +
|
||||
'0000000000000000000000000000000000000000000000000000000000000000'});
|
||||
test({ type: 'uint[]', expected: ['3'], value: '0000000000000000000000000000000000000000000000000000000000000020' +
|
||||
'0000000000000000000000000000000000000000000000000000000000000001' +
|
||||
'0000000000000000000000000000000000000000000000000000000000000003'});
|
||||
test({ type: 'uint256[]', expected: ['3'], value: '0000000000000000000000000000000000000000000000000000000000000020' +
|
||||
'0000000000000000000000000000000000000000000000000000000000000001' +
|
||||
'0000000000000000000000000000000000000000000000000000000000000003'});
|
||||
test({ type: 'uint[]', expected: ['1', '2', '3'],
|
||||
value: '0000000000000000000000000000000000000000000000000000000000000020' +
|
||||
'0000000000000000000000000000000000000000000000000000000000000003' +
|
||||
'0000000000000000000000000000000000000000000000000000000000000001' +
|
||||
'0000000000000000000000000000000000000000000000000000000000000002' +
|
||||
'0000000000000000000000000000000000000000000000000000000000000003'});
|
||||
test({ type: 'uint[3][]', expected: [['1', '2', '3'], ['4', '5', '6']],
|
||||
value: '0000000000000000000000000000000000000000000000000000000000000020' +
|
||||
'0000000000000000000000000000000000000000000000000000000000000002' +
|
||||
'0000000000000000000000000000000000000000000000000000000000000001' +
|
||||
'0000000000000000000000000000000000000000000000000000000000000002' +
|
||||
'0000000000000000000000000000000000000000000000000000000000000003' +
|
||||
'0000000000000000000000000000000000000000000000000000000000000004' +
|
||||
'0000000000000000000000000000000000000000000000000000000000000005' +
|
||||
'0000000000000000000000000000000000000000000000000000000000000006'});
|
||||
test({ type: 'bytes', expected: '0x6761766f66796f726b',
|
||||
value: '0000000000000000000000000000000000000000000000000000000000000020' +
|
||||
'0000000000000000000000000000000000000000000000000000000000000009' +
|
||||
'6761766f66796f726b0000000000000000000000000000000000000000000000'});
|
||||
test({ type: 'bytes', expected: '0x731a3afc00d1b1e3461b955e53fc866dcf303b3eb9f4c16f89e388930f48134b',
|
||||
value: '0000000000000000000000000000000000000000000000000000000000000020' +
|
||||
'0000000000000000000000000000000000000000000000000000000000000020' +
|
||||
'731a3afc00d1b1e3461b955e53fc866dcf303b3eb9f4c16f89e388930f48134b'});
|
||||
test({ type: 'bytes', expected: '0x131a3afc00d1b1e3461b955e53fc866dcf303b3eb9f4c16f89e388930f48134b' +
|
||||
'231a3afc00d1b1e3461b955e53fc866dcf303b3eb9f4c16f89e388930f48134b' +
|
||||
'331a3afc00d1b1e3461b955e53fc866dcf303b3eb9f4c16f89e388930f48134b',
|
||||
value: '0000000000000000000000000000000000000000000000000000000000000020' +
|
||||
'0000000000000000000000000000000000000000000000000000000000000060' +
|
||||
'131a3afc00d1b1e3461b955e53fc866dcf303b3eb9f4c16f89e388930f48134b' +
|
||||
'231a3afc00d1b1e3461b955e53fc866dcf303b3eb9f4c16f89e388930f48134b' +
|
||||
'331a3afc00d1b1e3461b955e53fc866dcf303b3eb9f4c16f89e388930f48134b'});
|
||||
test({ type: 'bytes', expected: '0x731a3afc00d1b1e3461b955e53fc866dcf303b3eb9f4c16f89e388930f48134b' +
|
||||
'731a3afc00d1b1e3461b955e53fc866dcf303b3eb9f4c16f89e388930f48134b',
|
||||
value: '0000000000000000000000000000000000000000000000000000000000000020' +
|
||||
'0000000000000000000000000000000000000000000000000000000000000040' +
|
||||
'731a3afc00d1b1e3461b955e53fc866dcf303b3eb9f4c16f89e388930f48134b' +
|
||||
'731a3afc00d1b1e3461b955e53fc866dcf303b3eb9f4c16f89e388930f48134b'});
|
||||
test({ type: 'bytes[2]', expected: ['0x731a3afc00d1b1e3461b955e53fc866dcf303b3eb9f4c16f89e388930f48134a',
|
||||
'0x731a3afc00d1b1e3461b955e53fc866dcf303b3eb9f4c16f89e388930f48134b'],
|
||||
value: '0000000000000000000000000000000000000000000000000000000000000040' +
|
||||
'0000000000000000000000000000000000000000000000000000000000000080' +
|
||||
'0000000000000000000000000000000000000000000000000000000000000020' +
|
||||
'731a3afc00d1b1e3461b955e53fc866dcf303b3eb9f4c16f89e388930f48134a' +
|
||||
'0000000000000000000000000000000000000000000000000000000000000020' +
|
||||
'731a3afc00d1b1e3461b955e53fc866dcf303b3eb9f4c16f89e388930f48134b'});
|
||||
test({ type: 'bytes[][2]', expected: [['0x731a3afc00d1b1e3461b955e53fc866dcf303b3eb9f4c16f89e388930f48134a'],
|
||||
['0x731a3afc00d1b1e3461b955e53fc866dcf303b3eb9f4c16f89e388930f48134b' +
|
||||
'731a3afc00d1b1e3461b955e53fc866dcf303b3eb9f4c16f89e388930f48134c',
|
||||
'0x731a3afc00d1b1e3461b955e53fc866dcf303b3eb9f4c16f89e388930f48134d']],
|
||||
value: '0000000000000000000000000000000000000000000000000000000000000040' +
|
||||
'0000000000000000000000000000000000000000000000000000000000000080' +
|
||||
|
||||
'0000000000000000000000000000000000000000000000000000000000000001' + // 40 //
|
||||
'00000000000000000000000000000000000000000000000000000000000000e0' +
|
||||
|
||||
'0000000000000000000000000000000000000000000000000000000000000002' + // 80 //
|
||||
'0000000000000000000000000000000000000000000000000000000000000120' +
|
||||
'0000000000000000000000000000000000000000000000000000000000000180' +
|
||||
|
||||
'0000000000000000000000000000000000000000000000000000000000000020' + // e0 //
|
||||
'731a3afc00d1b1e3461b955e53fc866dcf303b3eb9f4c16f89e388930f48134a' +
|
||||
|
||||
'0000000000000000000000000000000000000000000000000000000000000040' + // 120 //
|
||||
'731a3afc00d1b1e3461b955e53fc866dcf303b3eb9f4c16f89e388930f48134b' +
|
||||
'731a3afc00d1b1e3461b955e53fc866dcf303b3eb9f4c16f89e388930f48134c' +
|
||||
'0000000000000000000000000000000000000000000000000000000000000020' + // 180 //
|
||||
'731a3afc00d1b1e3461b955e53fc866dcf303b3eb9f4c16f89e388930f48134d'});
|
||||
|
||||
test({ type: 'bytes1', expected: '0xcf',
|
||||
value: 'cf00000000000000000000000000000000000000000000000000000000000000'});
|
||||
test({ type: 'bytes1[4]', expected: ['0xcf', '0x68', '0x4d', '0xfb'],
|
||||
value: 'cf00000000000000000000000000000000000000000000000000000000000000' +
|
||||
'6800000000000000000000000000000000000000000000000000000000000000' +
|
||||
'4d00000000000000000000000000000000000000000000000000000000000000' +
|
||||
'fb00000000000000000000000000000000000000000000000000000000000000'});
|
||||
test({ type: 'bytes32', expected: '0x6761766f66796f726b0000000000000000000000000000000000000000000000',
|
||||
value: '6761766f66796f726b0000000000000000000000000000000000000000000000'});
|
||||
|
||||
test({ type: 'string', expected: 'gavofyork', value: '0000000000000000000000000000000000000000000000000000000000000020' +
|
||||
'0000000000000000000000000000000000000000000000000000000000000009' +
|
||||
'6761766f66796f726b0000000000000000000000000000000000000000000000'});
|
||||
test({ type: 'string', expected: 'ää',
|
||||
value: '0000000000000000000000000000000000000000000000000000000000000020' +
|
||||
'0000000000000000000000000000000000000000000000000000000000000008' +
|
||||
'c383c2a4c383c2a4000000000000000000000000000000000000000000000000'});
|
||||
test({ type: 'string', expected: 'ü',
|
||||
value: '0000000000000000000000000000000000000000000000000000000000000020' +
|
||||
'0000000000000000000000000000000000000000000000000000000000000002' +
|
||||
'c3bc000000000000000000000000000000000000000000000000000000000000'});
|
||||
test({ type: 'string', expected: 'Ã',
|
||||
value: '0000000000000000000000000000000000000000000000000000000000000020' +
|
||||
'0000000000000000000000000000000000000000000000000000000000000002' +
|
||||
'c383000000000000000000000000000000000000000000000000000000000000'});
|
||||
test({ type: 'bytes', expected: '0xc3a40000c3a4',
|
||||
value: '0000000000000000000000000000000000000000000000000000000000000020' +
|
||||
'0000000000000000000000000000000000000000000000000000000000000006' +
|
||||
'c3a40000c3a40000000000000000000000000000000000000000000000000000'});
|
||||
test({ type: 'bytes32', expected: '0xc3a40000c3a40000000000000000000000000000000000000000000000000000',
|
||||
value: 'c3a40000c3a40000000000000000000000000000000000000000000000000000'});
|
||||
test({ type: 'address', expected: '0x407D73d8a49eeb85D32Cf465507dd71d507100c1',
|
||||
value: '000000000000000000000000407d73d8a49eeb85d32cf465507dd71d507100c1'});
|
||||
test({ type: 'string', expected: 'welcome to ethereum. welcome to ethereum. welcome to ethereum.',
|
||||
value: '0000000000000000000000000000000000000000000000000000000000000020' +
|
||||
'000000000000000000000000000000000000000000000000000000000000003e' +
|
||||
'77656c636f6d6520746f20657468657265756d2e2077656c636f6d6520746f20' +
|
||||
'657468657265756d2e2077656c636f6d6520746f20657468657265756d2e0000'});
|
||||
test({ type: 'bytes', expected: '0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff' +
|
||||
'ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff' +
|
||||
'ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff' +
|
||||
'ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff' +
|
||||
'fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1',
|
||||
value: '0000000000000000000000000000000000000000000000000000000000000020' +
|
||||
'000000000000000000000000000000000000000000000000000000000000009f' +
|
||||
'ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff' +
|
||||
'ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff' +
|
||||
'ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff' +
|
||||
'ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff' +
|
||||
'fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff100'});
|
||||
});
|
||||
});
|
||||
|
||||
describe('lib/solidity/coder', function () {
|
||||
describe('decodeParams', function () {
|
||||
var test = function (t) {
|
||||
it('should turn ' + t.values + ' to ' + t.expected, function () {
|
||||
// assert.deepEqual(coder.decodeParams(t.types, t.values), t.expected);
|
||||
var outputs = t.types.map(function (type, i) {
|
||||
return {type: type, name: 'TestName'+ i};
|
||||
});
|
||||
|
||||
var value = (typeof t.values === 'string') ? '0x'+ t.values.replace('0x','') : t.values;
|
||||
var result = coder.decodeMethod({type: 'function', outputs: outputs}, value);
|
||||
|
||||
var resultArray = convertResult(result);
|
||||
|
||||
|
||||
assert.deepEqual(resultArray, t.expected);
|
||||
});
|
||||
};
|
||||
|
||||
|
||||
test({ types: ['address'], expected: ['0x407D73d8a49eeb85D32Cf465507dd71d507100c1'],
|
||||
values: '000000000000000000000000407d73d8a49eeb85d32cf465507dd71d507100c1'});
|
||||
test({ types: ['address', 'address'], expected: ['0x407D73d8a49eeb85D32Cf465507dd71d507100c1', '0x407D73d8A49eEB85D32Cf465507Dd71d507100c3'],
|
||||
values: '000000000000000000000000407d73d8a49eeb85d32cf465507dd71d507100c1' +
|
||||
'000000000000000000000000407d73d8a49eeb85d32cf465507dd71d507100c3'});
|
||||
test({ types: ['bool[2]', 'bool[3]'], expected: [[true, false], [false, false, true]],
|
||||
values: '0000000000000000000000000000000000000000000000000000000000000001' +
|
||||
'0000000000000000000000000000000000000000000000000000000000000000' +
|
||||
'0000000000000000000000000000000000000000000000000000000000000000' +
|
||||
'0000000000000000000000000000000000000000000000000000000000000000' +
|
||||
'0000000000000000000000000000000000000000000000000000000000000001'});
|
||||
test({ types: ['int[2]', 'int256[3]'], expected: [['1', '2'], ['3', '4', '5']],
|
||||
values: '0000000000000000000000000000000000000000000000000000000000000001' +
|
||||
'0000000000000000000000000000000000000000000000000000000000000002' +
|
||||
'0000000000000000000000000000000000000000000000000000000000000003' +
|
||||
'0000000000000000000000000000000000000000000000000000000000000004' +
|
||||
'0000000000000000000000000000000000000000000000000000000000000005'});
|
||||
test({ types: ['int'], expected: ['1'], values: '0000000000000000000000000000000000000000000000000000000000000001'});
|
||||
test({ types: ['uint[2]', 'uint256[3]'], expected: [['1', '2'], ['3', '4', '5']],
|
||||
values: '0000000000000000000000000000000000000000000000000000000000000001' +
|
||||
'0000000000000000000000000000000000000000000000000000000000000002' +
|
||||
'0000000000000000000000000000000000000000000000000000000000000003' +
|
||||
'0000000000000000000000000000000000000000000000000000000000000004' +
|
||||
'0000000000000000000000000000000000000000000000000000000000000005'});
|
||||
test({ types: ['uint'], expected: ['1'], values: '0000000000000000000000000000000000000000000000000000000000000001'});
|
||||
test({ types: ['bytes1', 'bytes1'], expected: ['0xaa', '0xbb'],
|
||||
values: 'aa00000000000000000000000000000000000000000000000000000000000000' +
|
||||
'bb00000000000000000000000000000000000000000000000000000000000000'});
|
||||
test({ types: ['bytes1[2]', 'bytes1'], expected: [['0xaa', '0xbb'], '0xcc'],
|
||||
values: 'aa00000000000000000000000000000000000000000000000000000000000000' +
|
||||
'bb00000000000000000000000000000000000000000000000000000000000000' +
|
||||
'cc00000000000000000000000000000000000000000000000000000000000000'});
|
||||
test({ types: ['bytes', 'bytes'], expected: ['0x731a3afc00d1b1e3461b955e53fc866dcf303b3eb9f4c16f89e388930f48134b',
|
||||
'0x731a3afc00d1b1e3461b955e53fc866dcf303b3eb9f4c16f89e388930f48134c'],
|
||||
values: '0000000000000000000000000000000000000000000000000000000000000040' +
|
||||
'0000000000000000000000000000000000000000000000000000000000000080' +
|
||||
'0000000000000000000000000000000000000000000000000000000000000020' +
|
||||
'731a3afc00d1b1e3461b955e53fc866dcf303b3eb9f4c16f89e388930f48134b' +
|
||||
'0000000000000000000000000000000000000000000000000000000000000020' +
|
||||
'731a3afc00d1b1e3461b955e53fc866dcf303b3eb9f4c16f89e388930f48134c'});
|
||||
test({ types: ['int', 'string', 'int'], expected: ['1', 'gavofyork', '5'],
|
||||
values: '0000000000000000000000000000000000000000000000000000000000000001' +
|
||||
'0000000000000000000000000000000000000000000000000000000000000060' +
|
||||
'0000000000000000000000000000000000000000000000000000000000000005' +
|
||||
'0000000000000000000000000000000000000000000000000000000000000009' +
|
||||
'6761766f66796f726b0000000000000000000000000000000000000000000000'});
|
||||
test({ types: ['bytes32', 'int'], expected: ['0x6761766f66796f726b0000000000000000000000000000000000000000000000', '5'],
|
||||
values: '6761766f66796f726b0000000000000000000000000000000000000000000000' +
|
||||
'0000000000000000000000000000000000000000000000000000000000000005'});
|
||||
test({ types: ['int', 'bytes32'], expected: ['5', '0x6761766f66796f726b0000000000000000000000000000000000000000000000'],
|
||||
values: '0000000000000000000000000000000000000000000000000000000000000005' +
|
||||
'6761766f66796f726b0000000000000000000000000000000000000000000000'});
|
||||
test({ types: ['int', 'string', 'int', 'int', 'int', 'int[]'], expected: ['1', 'gavofyork', '2', '3', '4',
|
||||
['5', '6', '7']],
|
||||
values: '0000000000000000000000000000000000000000000000000000000000000001' +
|
||||
'00000000000000000000000000000000000000000000000000000000000000c0' +
|
||||
'0000000000000000000000000000000000000000000000000000000000000002' +
|
||||
'0000000000000000000000000000000000000000000000000000000000000003' +
|
||||
'0000000000000000000000000000000000000000000000000000000000000004' +
|
||||
'0000000000000000000000000000000000000000000000000000000000000100' +
|
||||
'0000000000000000000000000000000000000000000000000000000000000009' +
|
||||
'6761766f66796f726b0000000000000000000000000000000000000000000000' +
|
||||
'0000000000000000000000000000000000000000000000000000000000000003' +
|
||||
'0000000000000000000000000000000000000000000000000000000000000005' +
|
||||
'0000000000000000000000000000000000000000000000000000000000000006' +
|
||||
'0000000000000000000000000000000000000000000000000000000000000007'});
|
||||
test({ types: ['int', 'bytes', 'int', 'bytes'], expected: [
|
||||
'5',
|
||||
'0x131a3afc00d1b1e3461b955e53fc866dcf303b3eb9f4c16f89e388930f48134b' +
|
||||
'231a3afc00d1b1e3461b955e53fc866dcf303b3eb9f4c16f89e388930f48134b',
|
||||
'3',
|
||||
'0x331a3afc00d1b1e3461b955e53fc866dcf303b3eb9f4c16f89e388930f48134b' +
|
||||
'431a3afc00d1b1e3461b955e53fc866dcf303b3eb9f4c16f89e388930f48134b',
|
||||
],
|
||||
values: '0000000000000000000000000000000000000000000000000000000000000005' +
|
||||
'0000000000000000000000000000000000000000000000000000000000000080' +
|
||||
'0000000000000000000000000000000000000000000000000000000000000003' +
|
||||
'00000000000000000000000000000000000000000000000000000000000000e0' +
|
||||
'0000000000000000000000000000000000000000000000000000000000000040' +
|
||||
'131a3afc00d1b1e3461b955e53fc866dcf303b3eb9f4c16f89e388930f48134b' +
|
||||
'231a3afc00d1b1e3461b955e53fc866dcf303b3eb9f4c16f89e388930f48134b' +
|
||||
'0000000000000000000000000000000000000000000000000000000000000040' +
|
||||
'331a3afc00d1b1e3461b955e53fc866dcf303b3eb9f4c16f89e388930f48134b' +
|
||||
'431a3afc00d1b1e3461b955e53fc866dcf303b3eb9f4c16f89e388930f48134b'});
|
||||
test({ types: ['address[2][1]', 'bool'], expected: [[['0x407D73d8a49eeb85D32Cf465507dd71d507100c1',
|
||||
'0x407D73d8A49eEB85D32Cf465507Dd71d507100c3']], false],
|
||||
values: '000000000000000000000000407d73d8a49eeb85d32cf465507dd71d507100c1' +
|
||||
'000000000000000000000000407d73d8a49eeb85d32cf465507dd71d507100c3' +
|
||||
'0000000000000000000000000000000000000000000000000000000000000000'});
|
||||
test({ types: ['bool[2][1]', 'bool'], expected: [[[true, false]], true],
|
||||
values: '0000000000000000000000000000000000000000000000000000000000000001' +
|
||||
'0000000000000000000000000000000000000000000000000000000000000000' +
|
||||
'0000000000000000000000000000000000000000000000000000000000000001'});
|
||||
test({ types: ['bytes1[2][1]', 'bool'], expected: [[['0xaa', '0xbb']], true],
|
||||
values: 'aa00000000000000000000000000000000000000000000000000000000000000' +
|
||||
'bb00000000000000000000000000000000000000000000000000000000000000' +
|
||||
'0000000000000000000000000000000000000000000000000000000000000001'});
|
||||
test({ types: ['int[2][1]', 'bool'], expected: [[['1', '2']], true],
|
||||
values: '0000000000000000000000000000000000000000000000000000000000000001' +
|
||||
'0000000000000000000000000000000000000000000000000000000000000002' +
|
||||
'0000000000000000000000000000000000000000000000000000000000000001'});
|
||||
test({ types: ['uint[2][1]', 'bool'], expected: [[['1', '2']], true],
|
||||
values: '0000000000000000000000000000000000000000000000000000000000000001' +
|
||||
'0000000000000000000000000000000000000000000000000000000000000002' +
|
||||
'0000000000000000000000000000000000000000000000000000000000000001'});
|
||||
});
|
||||
});
|
@ -1,352 +0,0 @@
|
||||
var chai = require('chai');
|
||||
var assert = chai.assert;
|
||||
var coder = require('ethjs-abi');
|
||||
|
||||
|
||||
describe('lib/solidity/coder', function () {
|
||||
describe('encodeParam', function () {
|
||||
var test = function (t) {
|
||||
it('should turn ' + t.value + ' to ' + t.expected, function () {
|
||||
console.log();
|
||||
var result = coder.encodeParams([t.type], [t.value]);
|
||||
|
||||
assert.equal(result, '0x'+ t.expected);
|
||||
});
|
||||
};
|
||||
|
||||
|
||||
test({ type: 'address', value: '0x407d73d8a49eeb85d32cf465507dd71d507100c1',
|
||||
expected: '000000000000000000000000407d73d8a49eeb85d32cf465507dd71d507100c1'});
|
||||
test({ type: 'address[2]', value: ['0x407d73d8a49eeb85d32cf465507dd71d507100c1', '0x407d73d8a49eeb85d32cf465507dd71d507100c3'],
|
||||
expected: '000000000000000000000000407d73d8a49eeb85d32cf465507dd71d507100c1' +
|
||||
'000000000000000000000000407d73d8a49eeb85d32cf465507dd71d507100c3' });
|
||||
test({ type: 'address[]', value: ['0x407d73d8a49eeb85d32cf465507dd71d507100c1', '0x407d73d8a49eeb85d32cf465507dd71d507100c3'],
|
||||
expected: '0000000000000000000000000000000000000000000000000000000000000020' +
|
||||
'0000000000000000000000000000000000000000000000000000000000000002' +
|
||||
'000000000000000000000000407d73d8a49eeb85d32cf465507dd71d507100c1' +
|
||||
'000000000000000000000000407d73d8a49eeb85d32cf465507dd71d507100c3' });
|
||||
test({ type: 'address[][2]', value: [['0x407d73d8a49eeb85d32cf465507dd71d507100c1', '0x407d73d8a49eeb85d32cf465507dd71d507100c2'],
|
||||
['0x407d73d8a49eeb85d32cf465507dd71d507100c3', '0x407d73d8a49eeb85d32cf465507dd71d507100c4']],
|
||||
expected: '0000000000000000000000000000000000000000000000000000000000000040' +
|
||||
'00000000000000000000000000000000000000000000000000000000000000a0' +
|
||||
'0000000000000000000000000000000000000000000000000000000000000002' +
|
||||
'000000000000000000000000407d73d8a49eeb85d32cf465507dd71d507100c1' +
|
||||
'000000000000000000000000407d73d8a49eeb85d32cf465507dd71d507100c2' +
|
||||
'0000000000000000000000000000000000000000000000000000000000000002' +
|
||||
'000000000000000000000000407d73d8a49eeb85d32cf465507dd71d507100c3' +
|
||||
'000000000000000000000000407d73d8a49eeb85d32cf465507dd71d507100c4' });
|
||||
test({ type: 'address[2][]', value: [['0x407d73d8a49eeb85d32cf465507dd71d507100c1', '0x407d73d8a49eeb85d32cf465507dd71d507100c2'],
|
||||
['0x407d73d8a49eeb85d32cf465507dd71d507100c3', '0x407d73d8a49eeb85d32cf465507dd71d507100c4']],
|
||||
expected: '0000000000000000000000000000000000000000000000000000000000000020' +
|
||||
'0000000000000000000000000000000000000000000000000000000000000002' +
|
||||
'000000000000000000000000407d73d8a49eeb85d32cf465507dd71d507100c1' +
|
||||
'000000000000000000000000407d73d8a49eeb85d32cf465507dd71d507100c2' +
|
||||
'000000000000000000000000407d73d8a49eeb85d32cf465507dd71d507100c3' +
|
||||
'000000000000000000000000407d73d8a49eeb85d32cf465507dd71d507100c4' });
|
||||
//test({ type: 'address[][]', value: [['0x407d73d8a49eeb85d32cf465507dd71d507100c5'],
|
||||
//['0x407d73d8a49eeb85d32cf465507dd71d507100c3']],
|
||||
//expected: '0000000000000000000000000000000000000000000000000000000000000020' +
|
||||
//'0000000000000000000000000000000000000000000000000000000000000002' +
|
||||
//'0000000000000000000000000000000000000000000000000000000000000080' +
|
||||
//'00000000000000000000000000000000000000000000000000000000000000c0' +
|
||||
//'0000000000000000000000000000000000000000000000000000000000000001' +
|
||||
//'000000000000000000000000407d73d8a49eeb85d32cf465507dd71d507100c5' +
|
||||
//'0000000000000000000000000000000000000000000000000000000000000001' +
|
||||
//'000000000000000000000000407d73d8a49eeb85d32cf465507dd71d507100c3' });
|
||||
//test({ type: 'address[][]', value: [['0x407d73d8a49eeb85d32cf465507dd71d507100cf', '0x407d73d8a49eeb85d32cf465507dd71d507100c2'],
|
||||
//['0x407d73d8a49eeb85d32cf465507dd71d507100c3', '0x407d73d8a49eeb85d32cf465507dd71d507100c4']],
|
||||
//expected: '0000000000000000000000000000000000000000000000000000000000000020' +
|
||||
//'0000000000000000000000000000000000000000000000000000000000000002' +
|
||||
//'0000000000000000000000000000000000000000000000000000000000000080' +
|
||||
//'00000000000000000000000000000000000000000000000000000000000000e0' +
|
||||
//'0000000000000000000000000000000000000000000000000000000000000002' +
|
||||
//'000000000000000000000000407d73d8a49eeb85d32cf465507dd71d507100cf' +
|
||||
//'000000000000000000000000407d73d8a49eeb85d32cf465507dd71d507100c2' +
|
||||
//'0000000000000000000000000000000000000000000000000000000000000002' +
|
||||
//'000000000000000000000000407d73d8a49eeb85d32cf465507dd71d507100c3' +
|
||||
//'000000000000000000000000407d73d8a49eeb85d32cf465507dd71d507100c4' });
|
||||
test({ type: 'bool', value: true, expected: '0000000000000000000000000000000000000000000000000000000000000001'});
|
||||
test({ type: 'bool', value: false, expected: '0000000000000000000000000000000000000000000000000000000000000000'});
|
||||
test({ type: 'bool[1][2]', value: [[false], [false]],
|
||||
expected: '0000000000000000000000000000000000000000000000000000000000000000' +
|
||||
'0000000000000000000000000000000000000000000000000000000000000000'});
|
||||
test({ type: 'bool[2]', value: [true, false],
|
||||
expected: '0000000000000000000000000000000000000000000000000000000000000001' +
|
||||
'0000000000000000000000000000000000000000000000000000000000000000'});
|
||||
test({ type: 'bool[]', value: [true, true, false],
|
||||
expected: '0000000000000000000000000000000000000000000000000000000000000020' +
|
||||
'0000000000000000000000000000000000000000000000000000000000000003' +
|
||||
'0000000000000000000000000000000000000000000000000000000000000001' +
|
||||
'0000000000000000000000000000000000000000000000000000000000000001' +
|
||||
'0000000000000000000000000000000000000000000000000000000000000000'});
|
||||
|
||||
test({ type: 'int', value: 1, expected: '0000000000000000000000000000000000000000000000000000000000000001'});
|
||||
test({ type: 'int', value: 16, expected: '0000000000000000000000000000000000000000000000000000000000000010'});
|
||||
test({ type: 'int', value: -1, expected: 'ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff'});
|
||||
test({ type: 'int', value: 0.1, expected: '0000000000000000000000000000000000000000000000000000000000000000'});
|
||||
test({ type: 'int', value: 3.9, expected: '0000000000000000000000000000000000000000000000000000000000000003'});
|
||||
test({ type: 'int256', value: 1, expected: '0000000000000000000000000000000000000000000000000000000000000001'});
|
||||
test({ type: 'int256', value: 16, expected: '0000000000000000000000000000000000000000000000000000000000000010'});
|
||||
test({ type: 'int256', value: -1, expected: 'ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff'});
|
||||
|
||||
test({ type: 'uint', value: 1, expected: '0000000000000000000000000000000000000000000000000000000000000001'});
|
||||
test({ type: 'uint', value: 16, expected: '0000000000000000000000000000000000000000000000000000000000000010'});
|
||||
test({ type: 'uint', value: 0.1, expected: '0000000000000000000000000000000000000000000000000000000000000000'});
|
||||
test({ type: 'uint', value: 3.9, expected: '0000000000000000000000000000000000000000000000000000000000000003'});
|
||||
test({ type: 'uint256', value: 1, expected: '0000000000000000000000000000000000000000000000000000000000000001'});
|
||||
test({ type: 'uint256', value: 16, expected: '0000000000000000000000000000000000000000000000000000000000000010'});
|
||||
test({ type: 'uint256', value: '0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff',
|
||||
expected: 'ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff'});
|
||||
test({ type: 'bytes32', value: '0x6761766f66796f726b',
|
||||
expected: '6761766f66796f726b0000000000000000000000000000000000000000000000'});
|
||||
test({ type: 'bytes32', value: '0x731a3afc00d1b1e3461b955e53fc866dcf303b3eb9f4c16f89e388930f48134b',
|
||||
expected: '731a3afc00d1b1e3461b955e53fc866dcf303b3eb9f4c16f89e388930f48134b'});
|
||||
test({ type: 'bytes32', value: '0x02838654a83c213dae3698391eabbd54a5b6e1fb3452bc7fa4ea0dd5c8ce7e29',
|
||||
expected: '02838654a83c213dae3698391eabbd54a5b6e1fb3452bc7fa4ea0dd5c8ce7e29'});
|
||||
test({ type: 'bytes', value: '0x6761766f66796f726b',
|
||||
expected: '0000000000000000000000000000000000000000000000000000000000000020' +
|
||||
'0000000000000000000000000000000000000000000000000000000000000009' +
|
||||
'6761766f66796f726b0000000000000000000000000000000000000000000000'});
|
||||
test({ type: 'bytes', value: '0x731a3afc00d1b1e3461b955e53fc866dcf303b3eb9f4c16f89e388930f48134b',
|
||||
expected: '0000000000000000000000000000000000000000000000000000000000000020' +
|
||||
'0000000000000000000000000000000000000000000000000000000000000020' +
|
||||
'731a3afc00d1b1e3461b955e53fc866dcf303b3eb9f4c16f89e388930f48134b'});
|
||||
test({ type: 'bytes', value: '0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff' +
|
||||
'ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff' +
|
||||
'ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff' +
|
||||
'ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff' +
|
||||
'fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1',
|
||||
expected: '0000000000000000000000000000000000000000000000000000000000000020' +
|
||||
'000000000000000000000000000000000000000000000000000000000000009f' +
|
||||
'ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff' +
|
||||
'ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff' +
|
||||
'ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff' +
|
||||
'ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff' +
|
||||
'fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff100'});
|
||||
test({ type: 'string', value: 'gavofyork', expected: '0000000000000000000000000000000000000000000000000000000000000020' +
|
||||
'0000000000000000000000000000000000000000000000000000000000000009' +
|
||||
'6761766f66796f726b0000000000000000000000000000000000000000000000'});
|
||||
test({ type: 'bytes', value: '0xc3a40000c3a4',
|
||||
expected: '0000000000000000000000000000000000000000000000000000000000000020' +
|
||||
'0000000000000000000000000000000000000000000000000000000000000006' +
|
||||
'c3a40000c3a40000000000000000000000000000000000000000000000000000'});
|
||||
test({ type: 'bytes1', value: '0xc3',
|
||||
expected: 'c300000000000000000000000000000000000000000000000000000000000000'});
|
||||
test({ type: 'bytes24', value: '0xc3a40000c3a4',
|
||||
expected: 'c3a40000c3a40000000000000000000000000000000000000000000000000000'});
|
||||
|
||||
test({ type: 'bytes32', value: '0xc3a40000c3a4',
|
||||
expected: 'c3a40000c3a40000000000000000000000000000000000000000000000000000'});
|
||||
|
||||
test({ type: 'string', value: 'ää',
|
||||
expected: '0000000000000000000000000000000000000000000000000000000000000020' +
|
||||
'0000000000000000000000000000000000000000000000000000000000000008' +
|
||||
'c383c2a4c383c2a4000000000000000000000000000000000000000000000000'});
|
||||
test({ type: 'string', value: 'ü',
|
||||
expected: '0000000000000000000000000000000000000000000000000000000000000020' +
|
||||
'0000000000000000000000000000000000000000000000000000000000000002' +
|
||||
'c3bc000000000000000000000000000000000000000000000000000000000000'});
|
||||
test({ type: 'string', value: 'Ã',
|
||||
expected: '0000000000000000000000000000000000000000000000000000000000000020' +
|
||||
'0000000000000000000000000000000000000000000000000000000000000002' +
|
||||
'c383000000000000000000000000000000000000000000000000000000000000'});
|
||||
test({ type: 'int[]', value: [], expected: '0000000000000000000000000000000000000000000000000000000000000020' +
|
||||
'0000000000000000000000000000000000000000000000000000000000000000'});
|
||||
test({ type: 'int[]', value: [3], expected: '0000000000000000000000000000000000000000000000000000000000000020' +
|
||||
'0000000000000000000000000000000000000000000000000000000000000001' +
|
||||
'0000000000000000000000000000000000000000000000000000000000000003'});
|
||||
test({ type: 'int256[]', value: [3], expected: '0000000000000000000000000000000000000000000000000000000000000020' +
|
||||
'0000000000000000000000000000000000000000000000000000000000000001' +
|
||||
'0000000000000000000000000000000000000000000000000000000000000003'});
|
||||
test({ type: 'int[]', value: [1,2,3], expected: '0000000000000000000000000000000000000000000000000000000000000020' +
|
||||
'0000000000000000000000000000000000000000000000000000000000000003' +
|
||||
'0000000000000000000000000000000000000000000000000000000000000001' +
|
||||
'0000000000000000000000000000000000000000000000000000000000000002' +
|
||||
'0000000000000000000000000000000000000000000000000000000000000003'});
|
||||
test({ type: 'bytes1[4]', value: ['0xcf', '0x68', '0x4d', '0xfb'],
|
||||
expected: 'cf00000000000000000000000000000000000000000000000000000000000000' +
|
||||
'6800000000000000000000000000000000000000000000000000000000000000' +
|
||||
'4d00000000000000000000000000000000000000000000000000000000000000' +
|
||||
'fb00000000000000000000000000000000000000000000000000000000000000'});
|
||||
|
||||
|
||||
|
||||
test({ type: 'bytes', value: '0x131a3afc00d1b1e3461b955e53fc866dcf303b3eb9f4c16f89e388930f48134b' +
|
||||
'231a3afc00d1b1e3461b955e53fc866dcf303b3eb9f4c16f89e388930f48134b',
|
||||
expected: '0000000000000000000000000000000000000000000000000000000000000020' +
|
||||
'0000000000000000000000000000000000000000000000000000000000000040' +
|
||||
'131a3afc00d1b1e3461b955e53fc866dcf303b3eb9f4c16f89e388930f48134b' +
|
||||
'231a3afc00d1b1e3461b955e53fc866dcf303b3eb9f4c16f89e388930f48134b'});
|
||||
test({ type: 'bytes', value: '0x131a3afc00d1b1e3461b955e53fc866dcf303b3eb9f4c16f89e388930f48134b' +
|
||||
'231a3afc00d1b1e3461b955e53fc866dcf303b3eb9f4c16f89e388930f48134b' +
|
||||
'331a3afc00d1b1e3461b955e53fc866dcf303b3eb9f4c16f89e388930f48134b',
|
||||
expected: '0000000000000000000000000000000000000000000000000000000000000020' +
|
||||
'0000000000000000000000000000000000000000000000000000000000000060' +
|
||||
'131a3afc00d1b1e3461b955e53fc866dcf303b3eb9f4c16f89e388930f48134b' +
|
||||
'231a3afc00d1b1e3461b955e53fc866dcf303b3eb9f4c16f89e388930f48134b' +
|
||||
'331a3afc00d1b1e3461b955e53fc866dcf303b3eb9f4c16f89e388930f48134b'});
|
||||
test({ type: 'string', value: 'welcome to ethereum. welcome to ethereum. welcome to ethereum.',
|
||||
expected: '0000000000000000000000000000000000000000000000000000000000000020' +
|
||||
'000000000000000000000000000000000000000000000000000000000000003e' +
|
||||
'77656c636f6d6520746f20657468657265756d2e2077656c636f6d6520746f20' +
|
||||
'657468657265756d2e2077656c636f6d6520746f20657468657265756d2e0000'});
|
||||
});
|
||||
});
|
||||
|
||||
|
||||
describe('lib/solidity/coder', function () {
|
||||
describe('encodeParams', function () {
|
||||
var test = function (t) {
|
||||
it('should turn ' + t.values + ' to ' + t.expected, function () {
|
||||
|
||||
var result = coder.encodeParams(t.types, t.values);
|
||||
assert.equal(result, '0x'+ t.expected);
|
||||
});
|
||||
};
|
||||
|
||||
|
||||
test({ types: ['address', 'address'], values: ['0x407d73d8a49eeb85d32cf465507dd71d507100c1', '0x407d73d8a49eeb85d32cf465507dd71d507100c3'],
|
||||
expected: '000000000000000000000000407d73d8a49eeb85d32cf465507dd71d507100c1' +
|
||||
'000000000000000000000000407d73d8a49eeb85d32cf465507dd71d507100c3'});
|
||||
test({ types: ['bool[2]', 'bool[3]'], values: [[true, false], [false, false, true]],
|
||||
expected: '0000000000000000000000000000000000000000000000000000000000000001' +
|
||||
'0000000000000000000000000000000000000000000000000000000000000000' +
|
||||
'0000000000000000000000000000000000000000000000000000000000000000' +
|
||||
'0000000000000000000000000000000000000000000000000000000000000000' +
|
||||
'0000000000000000000000000000000000000000000000000000000000000001'});
|
||||
test({ types: ['int'], values: [1], expected: '0000000000000000000000000000000000000000000000000000000000000001'});
|
||||
test({ types: ['int'], values: [16], expected: '0000000000000000000000000000000000000000000000000000000000000010'});
|
||||
test({ types: ['int'], values: [-1], expected: 'ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff'});
|
||||
test({ types: ['int256'], values: [1], expected: '0000000000000000000000000000000000000000000000000000000000000001'});
|
||||
test({ types: ['int256'], values: [16], expected: '0000000000000000000000000000000000000000000000000000000000000010'});
|
||||
test({ types: ['int256'], values: [-1], expected: 'ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff'});
|
||||
test({ types: ['int[]'], values: [[3]], expected: '0000000000000000000000000000000000000000000000000000000000000020' +
|
||||
'0000000000000000000000000000000000000000000000000000000000000001' +
|
||||
'0000000000000000000000000000000000000000000000000000000000000003'});
|
||||
test({ types: ['int256[]'], values: [[3]], expected: '0000000000000000000000000000000000000000000000000000000000000020' +
|
||||
'0000000000000000000000000000000000000000000000000000000000000001' +
|
||||
'0000000000000000000000000000000000000000000000000000000000000003'});
|
||||
test({ types: ['int256[]'], values: [[1,2,3]], expected: '0000000000000000000000000000000000000000000000000000000000000020' +
|
||||
'0000000000000000000000000000000000000000000000000000000000000003' +
|
||||
'0000000000000000000000000000000000000000000000000000000000000001' +
|
||||
'0000000000000000000000000000000000000000000000000000000000000002' +
|
||||
'0000000000000000000000000000000000000000000000000000000000000003'});
|
||||
test({ types: ['int[]', 'int[]'], values: [[1,2], [3,4]],
|
||||
expected: '0000000000000000000000000000000000000000000000000000000000000040' +
|
||||
'00000000000000000000000000000000000000000000000000000000000000a0' +
|
||||
'0000000000000000000000000000000000000000000000000000000000000002' +
|
||||
'0000000000000000000000000000000000000000000000000000000000000001' +
|
||||
'0000000000000000000000000000000000000000000000000000000000000002' +
|
||||
'0000000000000000000000000000000000000000000000000000000000000002' +
|
||||
'0000000000000000000000000000000000000000000000000000000000000003' +
|
||||
'0000000000000000000000000000000000000000000000000000000000000004'});
|
||||
test({ types: ['int[]', 'int[]', 'int[]'], values: [[1,2], [3,4], [5,6,7]],
|
||||
expected: '0000000000000000000000000000000000000000000000000000000000000060' +
|
||||
'00000000000000000000000000000000000000000000000000000000000000c0' +
|
||||
'0000000000000000000000000000000000000000000000000000000000000120' +
|
||||
'0000000000000000000000000000000000000000000000000000000000000002' +
|
||||
'0000000000000000000000000000000000000000000000000000000000000001' +
|
||||
'0000000000000000000000000000000000000000000000000000000000000002' +
|
||||
'0000000000000000000000000000000000000000000000000000000000000002' +
|
||||
'0000000000000000000000000000000000000000000000000000000000000003' +
|
||||
'0000000000000000000000000000000000000000000000000000000000000004' +
|
||||
'0000000000000000000000000000000000000000000000000000000000000003' +
|
||||
'0000000000000000000000000000000000000000000000000000000000000005' +
|
||||
'0000000000000000000000000000000000000000000000000000000000000006' +
|
||||
'0000000000000000000000000000000000000000000000000000000000000007'});
|
||||
test({ types: ['bytes32'], values: ['0x6761766f66796f726b'],
|
||||
expected: '6761766f66796f726b0000000000000000000000000000000000000000000000'});
|
||||
test({ types: ['string'], values: ['gavofyork'], expected: '0000000000000000000000000000000000000000000000000000000000000020' +
|
||||
'0000000000000000000000000000000000000000000000000000000000000009' +
|
||||
'6761766f66796f726b0000000000000000000000000000000000000000000000'});
|
||||
test({ types: ['string', 'string'], values: ['gavofyork', 'gavofyork'],
|
||||
expected: '0000000000000000000000000000000000000000000000000000000000000040' +
|
||||
'0000000000000000000000000000000000000000000000000000000000000080' +
|
||||
'0000000000000000000000000000000000000000000000000000000000000009' +
|
||||
'6761766f66796f726b0000000000000000000000000000000000000000000000' +
|
||||
'0000000000000000000000000000000000000000000000000000000000000009' +
|
||||
'6761766f66796f726b0000000000000000000000000000000000000000000000'});
|
||||
|
||||
|
||||
test({ types: ['bytes32', 'int'], values: ['0x6761766f66796f726b', 5],
|
||||
expected: '6761766f66796f726b0000000000000000000000000000000000000000000000' +
|
||||
'0000000000000000000000000000000000000000000000000000000000000005'});
|
||||
test({ types: ['int', 'bytes32'], values: [5, '0x6761766f66796f726b'],
|
||||
expected: '0000000000000000000000000000000000000000000000000000000000000005' +
|
||||
'6761766f66796f726b0000000000000000000000000000000000000000000000'});
|
||||
test({ types: ['int', 'string'], values: [5, 'gavofyork'],
|
||||
expected: '0000000000000000000000000000000000000000000000000000000000000005' +
|
||||
'0000000000000000000000000000000000000000000000000000000000000040' +
|
||||
'0000000000000000000000000000000000000000000000000000000000000009' +
|
||||
'6761766f66796f726b0000000000000000000000000000000000000000000000'});
|
||||
test({ types: ['string', 'int'], values: ['gavofyork', 5],
|
||||
expected: '0000000000000000000000000000000000000000000000000000000000000040' +
|
||||
'0000000000000000000000000000000000000000000000000000000000000005' +
|
||||
'0000000000000000000000000000000000000000000000000000000000000009' +
|
||||
'6761766f66796f726b0000000000000000000000000000000000000000000000'});
|
||||
test({ types: ['string', 'bool', 'int[]'], values: ['gavofyork', true, [1, 2, 3]],
|
||||
expected: '0000000000000000000000000000000000000000000000000000000000000060' +
|
||||
'0000000000000000000000000000000000000000000000000000000000000001' +
|
||||
'00000000000000000000000000000000000000000000000000000000000000a0' +
|
||||
'0000000000000000000000000000000000000000000000000000000000000009' +
|
||||
'6761766f66796f726b0000000000000000000000000000000000000000000000' +
|
||||
'0000000000000000000000000000000000000000000000000000000000000003' +
|
||||
'0000000000000000000000000000000000000000000000000000000000000001' +
|
||||
'0000000000000000000000000000000000000000000000000000000000000002' +
|
||||
'0000000000000000000000000000000000000000000000000000000000000003'});
|
||||
test({ types: ['string', 'int[]'], values: ['gavofyork', [1, 2, 3]],
|
||||
expected: '0000000000000000000000000000000000000000000000000000000000000040' +
|
||||
'0000000000000000000000000000000000000000000000000000000000000080' +
|
||||
'0000000000000000000000000000000000000000000000000000000000000009' +
|
||||
'6761766f66796f726b0000000000000000000000000000000000000000000000' +
|
||||
'0000000000000000000000000000000000000000000000000000000000000003' +
|
||||
'0000000000000000000000000000000000000000000000000000000000000001' +
|
||||
'0000000000000000000000000000000000000000000000000000000000000002' +
|
||||
'0000000000000000000000000000000000000000000000000000000000000003'});
|
||||
test({ types: ['int', 'string'], values: [5, 'gavofyork'],
|
||||
expected: '0000000000000000000000000000000000000000000000000000000000000005' +
|
||||
'0000000000000000000000000000000000000000000000000000000000000040' +
|
||||
'0000000000000000000000000000000000000000000000000000000000000009' +
|
||||
'6761766f66796f726b0000000000000000000000000000000000000000000000'});
|
||||
test({ types: ['int', 'string', 'int', 'int', 'int', 'int[]'], values: [1, 'gavofyork', 2, 3, 4, [5, 6, 7]],
|
||||
expected: '0000000000000000000000000000000000000000000000000000000000000001' +
|
||||
'00000000000000000000000000000000000000000000000000000000000000c0' +
|
||||
'0000000000000000000000000000000000000000000000000000000000000002' +
|
||||
'0000000000000000000000000000000000000000000000000000000000000003' +
|
||||
'0000000000000000000000000000000000000000000000000000000000000004' +
|
||||
'0000000000000000000000000000000000000000000000000000000000000100' +
|
||||
'0000000000000000000000000000000000000000000000000000000000000009' +
|
||||
'6761766f66796f726b0000000000000000000000000000000000000000000000' +
|
||||
'0000000000000000000000000000000000000000000000000000000000000003' +
|
||||
'0000000000000000000000000000000000000000000000000000000000000005' +
|
||||
'0000000000000000000000000000000000000000000000000000000000000006' +
|
||||
'0000000000000000000000000000000000000000000000000000000000000007'});
|
||||
test({ types: ['int', 'bytes', 'int', 'bytes'], values: [
|
||||
5,
|
||||
'0x131a3afc00d1b1e3461b955e53fc866dcf303b3eb9f4c16f89e388930f48134b' +
|
||||
'231a3afc00d1b1e3461b955e53fc866dcf303b3eb9f4c16f89e388930f48134b',
|
||||
3,
|
||||
'0x331a3afc00d1b1e3461b955e53fc866dcf303b3eb9f4c16f89e388930f48134b' +
|
||||
'431a3afc00d1b1e3461b955e53fc866dcf303b3eb9f4c16f89e388930f48134b',
|
||||
],
|
||||
expected: '0000000000000000000000000000000000000000000000000000000000000005' +
|
||||
'0000000000000000000000000000000000000000000000000000000000000080' +
|
||||
'0000000000000000000000000000000000000000000000000000000000000003' +
|
||||
'00000000000000000000000000000000000000000000000000000000000000e0' +
|
||||
'0000000000000000000000000000000000000000000000000000000000000040' +
|
||||
'131a3afc00d1b1e3461b955e53fc866dcf303b3eb9f4c16f89e388930f48134b' +
|
||||
'231a3afc00d1b1e3461b955e53fc866dcf303b3eb9f4c16f89e388930f48134b' +
|
||||
'0000000000000000000000000000000000000000000000000000000000000040' +
|
||||
'331a3afc00d1b1e3461b955e53fc866dcf303b3eb9f4c16f89e388930f48134b' +
|
||||
'431a3afc00d1b1e3461b955e53fc866dcf303b3eb9f4c16f89e388930f48134b'});
|
||||
|
||||
test({ types: ['bytes3', 'bytes'], values: ['0xcf0011', '0x4d00000000000000000000000000000000000000000000000000000000000012'],
|
||||
expected: 'cf00110000000000000000000000000000000000000000000000000000000000' +
|
||||
'0000000000000000000000000000000000000000000000000000000000000040' +
|
||||
'0000000000000000000000000000000000000000000000000000000000000020' +
|
||||
'4d00000000000000000000000000000000000000000000000000000000000012'});
|
||||
|
||||
});
|
||||
});
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user