Renamed decode rule structsAsObjects to shouldConvertStructsToObjects
This commit is contained in:
File diff suppressed because one or more lines are too long
@@ -23,7 +23,7 @@ describe('ABI Encoder: Optimized Method Encoding/Decoding', () => {
|
||||
'0x7221063300000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000640000000000000000000000000000000000000000000000000000000000000096';
|
||||
expect(optimizedCalldata).to.be.equal(expectedOptimizedCalldata);
|
||||
// Validate decoding
|
||||
const decodedArgs = method.decode(optimizedCalldata, { structsAsObjects: false });
|
||||
const decodedArgs = method.decode(optimizedCalldata, { shouldConvertStructsToObjects: false });
|
||||
expect(decodedArgs).to.be.deep.equal(args);
|
||||
});
|
||||
it('Duplicate Dynamic Arrays with Dynamic Elements', async () => {
|
||||
@@ -38,7 +38,7 @@ describe('ABI Encoder: Optimized Method Encoding/Decoding', () => {
|
||||
'0xbb4f12e300000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000548656c6c6f0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005576f726c64000000000000000000000000000000000000000000000000000000';
|
||||
expect(optimizedCalldata).to.be.equal(expectedOptimizedCalldata);
|
||||
// Validate decoding
|
||||
const decodedArgs = method.decode(optimizedCalldata, { structsAsObjects: false });
|
||||
const decodedArgs = method.decode(optimizedCalldata, { shouldConvertStructsToObjects: false });
|
||||
expect(decodedArgs).to.be.deep.equal(args);
|
||||
});
|
||||
it('Duplicate Static Arrays with Static Elements (should not optimize)', async () => {
|
||||
@@ -55,7 +55,7 @@ describe('ABI Encoder: Optimized Method Encoding/Decoding', () => {
|
||||
const unoptimizedCalldata = method.encode(args);
|
||||
expect(optimizedCalldata).to.be.equal(unoptimizedCalldata);
|
||||
// Validate decoding
|
||||
const decodedArgs = method.decode(optimizedCalldata, { structsAsObjects: false });
|
||||
const decodedArgs = method.decode(optimizedCalldata, { shouldConvertStructsToObjects: false });
|
||||
expect(decodedArgs).to.be.deep.equal(args);
|
||||
});
|
||||
it('Duplicate Static Arrays with Dynamic Elements', async () => {
|
||||
@@ -70,7 +70,7 @@ describe('ABI Encoder: Optimized Method Encoding/Decoding', () => {
|
||||
'0x9fe31f8e0000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000548656c6c6f0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005576f726c64000000000000000000000000000000000000000000000000000000';
|
||||
expect(optimizedCalldata).to.be.equal(expectedOptimizedCalldata);
|
||||
// Validate decoding
|
||||
const decodedArgs = method.decode(optimizedCalldata, { structsAsObjects: false });
|
||||
const decodedArgs = method.decode(optimizedCalldata, { shouldConvertStructsToObjects: false });
|
||||
expect(decodedArgs).to.be.deep.equal(args);
|
||||
});
|
||||
it('Duplicate Array Elements (should optimize)', async () => {
|
||||
@@ -84,7 +84,7 @@ describe('ABI Encoder: Optimized Method Encoding/Decoding', () => {
|
||||
'0x13e751a900000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000c0000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000c0000000000000000000000000000000000000000000000000000000000000000548656c6c6f0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005576f726c64000000000000000000000000000000000000000000000000000000';
|
||||
expect(optimizedCalldata).to.be.equal(expectedOptimizedCalldata);
|
||||
// Validate decoding
|
||||
const decodedArgs = method.decode(optimizedCalldata, { structsAsObjects: false });
|
||||
const decodedArgs = method.decode(optimizedCalldata, { shouldConvertStructsToObjects: false });
|
||||
expect(decodedArgs).to.be.deep.equal(args);
|
||||
});
|
||||
it('Duplicate Tuple Fields', async () => {
|
||||
@@ -98,7 +98,7 @@ describe('ABI Encoder: Optimized Method Encoding/Decoding', () => {
|
||||
'0x16780a5e000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000548656c6c6f000000000000000000000000000000000000000000000000000000';
|
||||
expect(optimizedCalldata).to.be.equal(expectedOptimizedCalldata);
|
||||
// Validate decoding
|
||||
const decodedArgs = method.decode(optimizedCalldata, { structsAsObjects: false });
|
||||
const decodedArgs = method.decode(optimizedCalldata, { shouldConvertStructsToObjects: false });
|
||||
expect(decodedArgs).to.be.deep.equal(args);
|
||||
});
|
||||
it('Duplicate Strings', async () => {
|
||||
@@ -115,7 +115,7 @@ describe('ABI Encoder: Optimized Method Encoding/Decoding', () => {
|
||||
'0x07370bfa00000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000548656c6c6f000000000000000000000000000000000000000000000000000000';
|
||||
expect(optimizedCalldata).to.be.equal(expectedOptimizedCalldata);
|
||||
// Validate decoding
|
||||
const decodedArgs = method.decode(optimizedCalldata, { structsAsObjects: false });
|
||||
const decodedArgs = method.decode(optimizedCalldata, { shouldConvertStructsToObjects: false });
|
||||
expect(decodedArgs).to.be.deep.equal(args);
|
||||
});
|
||||
it('Duplicate Bytes', async () => {
|
||||
@@ -133,7 +133,7 @@ describe('ABI Encoder: Optimized Method Encoding/Decoding', () => {
|
||||
'0x6045e42900000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000002801020304050607080910111213141516171819202122232425262728293031323334353637383940000000000000000000000000000000000000000000000000';
|
||||
expect(optimizedCalldata).to.be.equal(expectedOptimizedCalldata);
|
||||
// Validate decoding
|
||||
const decodedArgs = method.decode(optimizedCalldata, { structsAsObjects: false });
|
||||
const decodedArgs = method.decode(optimizedCalldata, { shouldConvertStructsToObjects: false });
|
||||
expect(decodedArgs).to.be.deep.equal(args);
|
||||
});
|
||||
it('Duplicate Tuples', async () => {
|
||||
@@ -148,7 +148,7 @@ describe('ABI Encoder: Optimized Method Encoding/Decoding', () => {
|
||||
'0x564f826d000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000006792a000000000000000000000000000000000000000000000000000000000000000d48656c6c6f2c20576f726c642100000000000000000000000000000000000000';
|
||||
expect(optimizedCalldata).to.be.equal(expectedOptimizedCalldata);
|
||||
// Validate decoding
|
||||
const decodedArgs = method.decode(optimizedCalldata, { structsAsObjects: false });
|
||||
const decodedArgs = method.decode(optimizedCalldata, { shouldConvertStructsToObjects: false });
|
||||
expect(decodedArgs).to.be.deep.equal(args);
|
||||
});
|
||||
it('Duplicate Fields Across Two Tuples', async () => {
|
||||
@@ -164,7 +164,7 @@ describe('ABI Encoder: Optimized Method Encoding/Decoding', () => {
|
||||
'0x564f826d000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000d48656c6c6f2c20576f726c642100000000000000000000000000000000000000';
|
||||
expect(optimizedCalldata).to.be.equal(expectedOptimizedCalldata);
|
||||
// Validate decoding
|
||||
const decodedArgs = method.decode(optimizedCalldata, { structsAsObjects: false });
|
||||
const decodedArgs = method.decode(optimizedCalldata, { shouldConvertStructsToObjects: false });
|
||||
expect(decodedArgs).to.be.deep.equal(args);
|
||||
});
|
||||
it('Duplicate Arrays, Nested in Separate Tuples', async () => {
|
||||
@@ -180,7 +180,7 @@ describe('ABI Encoder: Optimized Method Encoding/Decoding', () => {
|
||||
'0x18970a9e000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000030000000000000000000000000000000000000000000000000000000000000064000000000000000000000000000000000000000000000000000000000000009600000000000000000000000000000000000000000000000000000000000000c80000000000000000000000000000000000000000000000000000000000000035657874726120617267756d656e7420746f2070726576656e742065786163746c79206d61746368696e6720746865207475706c65730000000000000000000000';
|
||||
expect(optimizedCalldata).to.be.equal(expectedOptimizedCalldata);
|
||||
// Validate decoding
|
||||
const decodedArgs = method.decode(optimizedCalldata, { structsAsObjects: false });
|
||||
const decodedArgs = method.decode(optimizedCalldata, { shouldConvertStructsToObjects: false });
|
||||
expect(decodedArgs).to.be.deep.equal(args);
|
||||
});
|
||||
it('Duplicate Tuples, Nested in Separate Tuples', async () => {
|
||||
@@ -196,7 +196,7 @@ describe('ABI Encoder: Optimized Method Encoding/Decoding', () => {
|
||||
'0x0b4d2e6a000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000d48656c6c6f2c20576f726c6421000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000035657874726120617267756d656e7420746f2070726576656e742065786163746c79206d61746368696e6720746865207475706c65730000000000000000000000';
|
||||
expect(optimizedCalldata).to.be.equal(expectedOptimizedCalldata);
|
||||
// Validate decoding
|
||||
const decodedArgs = method.decode(optimizedCalldata, { structsAsObjects: false });
|
||||
const decodedArgs = method.decode(optimizedCalldata, { shouldConvertStructsToObjects: false });
|
||||
expect(decodedArgs).to.be.deep.equal(args);
|
||||
});
|
||||
it('Duplicate Two-Dimensional Arrays', async () => {
|
||||
@@ -211,7 +211,7 @@ describe('ABI Encoder: Optimized Method Encoding/Decoding', () => {
|
||||
'0x0d28c4f9000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000002c0000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000120000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000548656c6c6f0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005576f726c640000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000e00000000000000000000000000000000000000000000000000000000000000003466f6f00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003426172000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000035a61610000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000120000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000548656c6c6f0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005576f726c640000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000e00000000000000000000000000000000000000000000000000000000000000003466f6f00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003426172000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000035a61610000000000000000000000000000000000000000000000000000000000';
|
||||
expect(optimizedCalldata).to.be.equal(expectedOptimizedCalldata);
|
||||
// Validate decoding
|
||||
const decodedArgs = method.decode(optimizedCalldata, { structsAsObjects: false });
|
||||
const decodedArgs = method.decode(optimizedCalldata, { shouldConvertStructsToObjects: false });
|
||||
expect(decodedArgs).to.be.deep.equal(args);
|
||||
});
|
||||
it('Duplicate Array, Nested within Separate Two-Dimensional Arrays', async () => {
|
||||
@@ -226,7 +226,7 @@ describe('ABI Encoder: Optimized Method Encoding/Decoding', () => {
|
||||
'0x0d28c4f900000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000120000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000001200000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000003466f6f0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000120000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000548656c6c6f0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005576f726c640000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000034261720000000000000000000000000000000000000000000000000000000000';
|
||||
expect(optimizedCalldata).to.be.equal(expectedOptimizedCalldata);
|
||||
// Validate decoding
|
||||
const decodedArgs = method.decode(optimizedCalldata, { structsAsObjects: false });
|
||||
const decodedArgs = method.decode(optimizedCalldata, { shouldConvertStructsToObjects: false });
|
||||
expect(decodedArgs).to.be.deep.equal(args);
|
||||
});
|
||||
it('Array Elements Duplicated as Tuple Fields', async () => {
|
||||
@@ -248,7 +248,7 @@ describe('ABI Encoder: Optimized Method Encoding/Decoding', () => {
|
||||
'0x5b5c78fd0000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000064000000000000000000000000000000000000000000000000000000000000009600000000000000000000000000000000000000000000000000000000000000c800000000000000000000000000000000000000000000000000000000000000e1';
|
||||
expect(optimizedCalldata).to.be.equal(expectedOptimizedCalldata);
|
||||
// Validate decoding
|
||||
const decodedArgs = method.decode(optimizedCalldata, { structsAsObjects: false });
|
||||
const decodedArgs = method.decode(optimizedCalldata, { shouldConvertStructsToObjects: false });
|
||||
expect(decodedArgs).to.be.deep.equal(args);
|
||||
});
|
||||
it('Array Elements Duplicated as Separate Parameter', async () => {
|
||||
@@ -263,7 +263,7 @@ describe('ABI Encoder: Optimized Method Encoding/Decoding', () => {
|
||||
'0xe0e0d34900000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000120000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000005576f726c64000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000548656c6c6f000000000000000000000000000000000000000000000000000000';
|
||||
expect(optimizedCalldata).to.be.equal(expectedOptimizedCalldata);
|
||||
// Validate decoding
|
||||
const decodedArgs = method.decode(optimizedCalldata, { structsAsObjects: false });
|
||||
const decodedArgs = method.decode(optimizedCalldata, { shouldConvertStructsToObjects: false });
|
||||
expect(decodedArgs).to.be.deep.equal(args);
|
||||
});
|
||||
});
|
||||
|
||||
@@ -15,7 +15,7 @@ describe('ABI Encoder: Return Value Encoding/Decoding', () => {
|
||||
// Decode return value
|
||||
const method = new AbiEncoder.Method(ReturnValueAbis.noReturnValues);
|
||||
const returnValue = '0x';
|
||||
const decodedReturnValue = method.decodeReturnValues(returnValue, { structsAsObjects: false });
|
||||
const decodedReturnValue = method.decodeReturnValues(returnValue, { shouldConvertStructsToObjects: false });
|
||||
const expectedDecodedReturnValue: any[] = [];
|
||||
expect(decodedReturnValue).to.be.deep.equal(expectedDecodedReturnValue);
|
||||
});
|
||||
@@ -24,7 +24,7 @@ describe('ABI Encoder: Return Value Encoding/Decoding', () => {
|
||||
const method = new AbiEncoder.Method(ReturnValueAbis.singleStaticReturnValue);
|
||||
const returnValue = ['0x01020304'];
|
||||
const encodedReturnValue = method.encodeReturnValues(returnValue, encodingRules);
|
||||
const decodedReturnValue = method.decodeReturnValues(encodedReturnValue, { structsAsObjects: false });
|
||||
const decodedReturnValue = method.decodeReturnValues(encodedReturnValue, { shouldConvertStructsToObjects: false });
|
||||
// Validate decoded return value
|
||||
expect(decodedReturnValue).to.be.deep.equal(returnValue);
|
||||
});
|
||||
@@ -33,7 +33,7 @@ describe('ABI Encoder: Return Value Encoding/Decoding', () => {
|
||||
const method = new AbiEncoder.Method(ReturnValueAbis.multipleStaticReturnValues);
|
||||
const returnValue = ['0x01020304', '0x05060708'];
|
||||
const encodedReturnValue = method.encodeReturnValues(returnValue, encodingRules);
|
||||
const decodedReturnValue = method.decodeReturnValues(encodedReturnValue, { structsAsObjects: false });
|
||||
const decodedReturnValue = method.decodeReturnValues(encodedReturnValue, { shouldConvertStructsToObjects: false });
|
||||
// Validate decoded return value
|
||||
expect(decodedReturnValue).to.be.deep.equal(returnValue);
|
||||
});
|
||||
@@ -42,7 +42,7 @@ describe('ABI Encoder: Return Value Encoding/Decoding', () => {
|
||||
const method = new AbiEncoder.Method(ReturnValueAbis.singleDynamicReturnValue);
|
||||
const returnValue = ['0x01020304'];
|
||||
const encodedReturnValue = method.encodeReturnValues(returnValue, encodingRules);
|
||||
const decodedReturnValue = method.decodeReturnValues(encodedReturnValue, { structsAsObjects: false });
|
||||
const decodedReturnValue = method.decodeReturnValues(encodedReturnValue, { shouldConvertStructsToObjects: false });
|
||||
// Validate decoded return value
|
||||
expect(decodedReturnValue).to.be.deep.equal(returnValue);
|
||||
});
|
||||
@@ -51,7 +51,7 @@ describe('ABI Encoder: Return Value Encoding/Decoding', () => {
|
||||
const method = new AbiEncoder.Method(ReturnValueAbis.multipleDynamicReturnValues);
|
||||
const returnValue = ['0x01020304', '0x05060708'];
|
||||
const encodedReturnValue = method.encodeReturnValues(returnValue, encodingRules);
|
||||
const decodedReturnValue = method.decodeReturnValues(encodedReturnValue, { structsAsObjects: false });
|
||||
const decodedReturnValue = method.decodeReturnValues(encodedReturnValue, { shouldConvertStructsToObjects: false });
|
||||
// Validate decoded return value
|
||||
expect(decodedReturnValue).to.be.deep.equal(returnValue);
|
||||
});
|
||||
@@ -60,7 +60,7 @@ describe('ABI Encoder: Return Value Encoding/Decoding', () => {
|
||||
const method = new AbiEncoder.Method(ReturnValueAbis.mixedStaticAndDynamicReturnValues);
|
||||
const returnValue = ['0x01020304', '0x05060708'];
|
||||
const encodedReturnValue = method.encodeReturnValues(returnValue, encodingRules);
|
||||
const decodedReturnValue = method.decodeReturnValues(encodedReturnValue, { structsAsObjects: false });
|
||||
const decodedReturnValue = method.decodeReturnValues(encodedReturnValue, { shouldConvertStructsToObjects: false });
|
||||
// Validate decoded return value
|
||||
expect(decodedReturnValue).to.be.deep.equal(returnValue);
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user