From d4c408d28b237a03a74f9897cccf4603c37176b9 Mon Sep 17 00:00:00 2001 From: Jaco Greeff Date: Thu, 20 Jun 2019 14:06:10 +0200 Subject: [PATCH] Explicity contract encoding tests (non e2e) (#1040) --- packages/api-contract/src/Abi.spec.ts | 19 +++++++++++++++++++ packages/api-contract/test/abi/types.json | 2 +- 2 files changed, 20 insertions(+), 1 deletion(-) diff --git a/packages/api-contract/src/Abi.spec.ts b/packages/api-contract/src/Abi.spec.ts index c62a3e79b0..63a896bdf5 100644 --- a/packages/api-contract/src/Abi.spec.ts +++ b/packages/api-contract/src/Abi.spec.ts @@ -83,6 +83,25 @@ describe('Abi', () => { 'Vec<(u32,u64)>' ); }); + + describe('messages', () => { + it('fails when invalid args are supplied', () => { + expect( + () => abi.messages.primitive(false) + ).toThrow(/Expected 2 arguments to contract messages.primitive, found 1/); + }); + + it('encodes primitives correctly', () => { + expect( + abi.messages.primitive(true, 0x12345678) + ).toEqual(new Uint8Array([ + 9 << 2, // total length (4 + 1 + 4) + 0x67, 0x2b, 0, 0, // 11111 -> hex (LE) + 1, // true + 0x78, 0x56, 0x34, 0x12 // u32 + ])); + }); + }); }); describe('erc20', () => { diff --git a/packages/api-contract/test/abi/types.json b/packages/api-contract/test/abi/types.json index f74cb8a6e1..d0ce138cf2 100644 --- a/packages/api-contract/test/abi/types.json +++ b/packages/api-contract/test/abi/types.json @@ -6,7 +6,7 @@ "messages": [ { "name": "primitive", - "selector": 1111, + "selector": 11111, "mutates": true, "args": [ {