aboutsummaryrefslogtreecommitdiffstats
path: root/packages/order-utils/test/abi_encoder_test.ts
diff options
context:
space:
mode:
authorGreg Hysen <greg.hysen@gmail.com>2018-11-13 09:10:32 +0800
committerGreg Hysen <greg.hysen@gmail.com>2018-11-29 08:38:10 +0800
commit9b1f56c9687d3fffb2f59fa98d619ead90c1b910 (patch)
treece8f939d16e15972c8eabe11a678776ee83ae68c /packages/order-utils/test/abi_encoder_test.ts
parent13d456fda1da19c8227acb2bf23106bcbdaf6f12 (diff)
downloaddexon-sol-tools-9b1f56c9687d3fffb2f59fa98d619ead90c1b910.tar
dexon-sol-tools-9b1f56c9687d3fffb2f59fa98d619ead90c1b910.tar.gz
dexon-sol-tools-9b1f56c9687d3fffb2f59fa98d619ead90c1b910.tar.bz2
dexon-sol-tools-9b1f56c9687d3fffb2f59fa98d619ead90c1b910.tar.lz
dexon-sol-tools-9b1f56c9687d3fffb2f59fa98d619ead90c1b910.tar.xz
dexon-sol-tools-9b1f56c9687d3fffb2f59fa98d619ead90c1b910.tar.zst
dexon-sol-tools-9b1f56c9687d3fffb2f59fa98d619ead90c1b910.zip
Decoding works for some basic typs
Diffstat (limited to 'packages/order-utils/test/abi_encoder_test.ts')
-rw-r--r--packages/order-utils/test/abi_encoder_test.ts40
1 files changed, 30 insertions, 10 deletions
diff --git a/packages/order-utils/test/abi_encoder_test.ts b/packages/order-utils/test/abi_encoder_test.ts
index 0db5f4281..e8ebd7b98 100644
--- a/packages/order-utils/test/abi_encoder_test.ts
+++ b/packages/order-utils/test/abi_encoder_test.ts
@@ -310,6 +310,12 @@ describe.only('ABI Encoder', () => {
const expectedCalldata =
'0xf68ade72000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000000e0000000000000000000000000000000000000000000000000000000000000036';
expect(calldata).to.be.equal(expectedCalldata);
+
+ // Test decoding
+ const expectedDecodedValueJson = JSON.stringify(args);
+ const decodedValue = method.decode(calldata);
+ const decodedValueJson = JSON.stringify(decodedValue);
+ expect(decodedValueJson).to.be.equal(expectedDecodedValueJson);
});
@@ -327,38 +333,52 @@ describe.only('ABI Encoder', () => {
const expectedCalldata =
'0x7ac2bd96af000000000000000000000000000000000000000000000000000000000000000001020304050607080911121314151617181920212223242526272829303132000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000047616161616161616161616161616161616161616161616161616161616161616161616161616161611114f3245678384756473829384756774488993384576688990020202020200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000414d79206669727374206e616d65206973204772656720616e64206d79206c617374206e616d6520697320487973656e2c207768617420646f207961206b6e6f772100000000000000000000000000000000000000000000000000000000000000';
expect(calldata).to.be.equal(expectedCalldata);
- });
- it('Yessir', async () => {
- const method = new AbiEncoder.Method(AbiSamples.simpleAbi);
- const calldata = method.encode([new BigNumber(5), 'five']);
- console.log(calldata);
- expect(true).to.be.true();
+ // Test decoding
+ const expectedDecodedValueJson = JSON.stringify(args);
+ const decodedValue = method.decode(calldata);
+ const decodedValueJson = JSON.stringify(decodedValue);
+ expect(decodedValueJson).to.be.equal(expectedDecodedValueJson);
});
- it('Array ABI', async () => {
+ it.only('Array ABI', async () => {
const method = new AbiEncoder.Method(AbiSamples.stringAbi);
console.log(method);
- const calldata = method.encode([['five', 'six', 'seven']]);
+ const args = [['five', 'six', 'seven']];
+ const calldata = method.encode(args);
console.log(method.getSignature());
console.log(method.selector);
+ /*
console.log(calldata);
const expectedCalldata =
'0x13e751a900000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000003000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000e000000000000000000000000000000000000000000000000000000000000000046669766500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000373697800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005736576656e000000000000000000000000000000000000000000000000000000';
- expect(calldata).to.be.equal(expectedCalldata);
+ expect(calldata).to.be.equal(expectedCalldata);*/
+
+ // Test decoding
+ const expectedDecodedValueJson = JSON.stringify(args);
+ const decodedValue = method.decode(calldata);
+ const decodedValueJson = JSON.stringify(decodedValue);
+ expect(decodedValueJson).to.be.equal(expectedDecodedValueJson);
});
it('Static Tuple', async () => {
// This is dynamic because it has dynamic members
const method = new AbiEncoder.Method(AbiSamples.staticTupleAbi);
- const calldata = method.encode([[new BigNumber(5), new BigNumber(10), new BigNumber(15), false]]);
+ const args = [[new BigNumber(5), new BigNumber(10), new BigNumber(15), false]];
+ const calldata = method.encode(args);
console.log(method.getSignature());
console.log(method.selector);
console.log(calldata);
const expectedCalldata = '0xa9125e150000000000000000000000000000000000000000000000000000000000000005000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000f0000000000000000000000000000000000000000000000000000000000000000';
expect(calldata).to.be.equal(expectedCalldata);
+
+ // Test decoding
+ const expectedDecodedValueJson = JSON.stringify(args);
+ const decodedValue = method.decode(calldata);
+ const decodedValueJson = JSON.stringify(decodedValue);
+ expect(decodedValueJson).to.be.equal(expectedDecodedValueJson);
});
it('Dynamic Tuple (Array input)', async () => {