diff --git a/src/index.test.ts b/src/index.test.ts index 25e2c9ca..fb320fbd 100644 --- a/src/index.test.ts +++ b/src/index.test.ts @@ -937,6 +937,34 @@ describe('Running @erc725/erc725.js tests...', () => { }); }); }); + + describe('for tuples', () => { + it('encode `(bytes4,uint128)`', () => { + const schema = { + name: 'LSP4CreatorsMap:
', + key: '0x6de85eaf5d982b4e5da00000', + keyType: 'Mapping', + valueType: '(bytes4,uint128)', + valueContent: '(Bytes4,Number)', + }; + + const expectedEncodedValue = + '0xb3c4928f00000000000000000000000000000005'; + + const result = ERC725.encodeData( + [ + { + keyName: 'LSP4CreatorsMap:', + dynamicKeyParts: address, + value: ['0xb3c4928f', 5], + }, + ], + [schema], + ); + + assert.equal(result.values[0], expectedEncodedValue); + }); + }); }); describe('Testing utility encoding & decoding functions', () => { diff --git a/src/types/encodeData/JSONURL.ts b/src/types/encodeData/JSONURL.ts index 440e6f72..6680c39a 100644 --- a/src/types/encodeData/JSONURL.ts +++ b/src/types/encodeData/JSONURL.ts @@ -32,7 +32,8 @@ export type EncodeDataType = | string[] | URLDataToEncode | boolean - | number; + | number + | (string | number)[]; // for tuples such as `(bytes4,uint128)` export interface EncodeDataReturn { keys: string[];