aboutsummaryrefslogtreecommitdiffstats
path: root/packages/order-utils/test/abi/evm_data_types.ts
diff options
context:
space:
mode:
Diffstat (limited to 'packages/order-utils/test/abi/evm_data_types.ts')
-rw-r--r--packages/order-utils/test/abi/evm_data_types.ts25
1 files changed, 11 insertions, 14 deletions
diff --git a/packages/order-utils/test/abi/evm_data_types.ts b/packages/order-utils/test/abi/evm_data_types.ts
index a24046664..9504b1a10 100644
--- a/packages/order-utils/test/abi/evm_data_types.ts
+++ b/packages/order-utils/test/abi/evm_data_types.ts
@@ -1,4 +1,6 @@
-import { GenerateValueRules, DataType, DataTypeFactory, DataTypeFactoryImpl, PayloadDataType, DependentDataType, MemberDataType } from './data_type';
+import { DataType, DataTypeFactory, DataTypeFactoryImpl, PayloadDataType, DependentDataType, MemberDataType } from './data_type';
+
+import { DecodingRules, EncodingRules } from './calldata';
import { MethodAbi, DataItem } from 'ethereum-types';
@@ -13,7 +15,7 @@ var _ = require('lodash');
export interface DataTypeStaticInterface {
matchGrammar: (type: string) => boolean;
encodeValue: (value: any) => Buffer;
- // decodeValue: (value: Buffer) => [any, Buffer];
+ decodeValue: (rawCalldata: RawCalldata) => any;
}
export class Address extends PayloadDataType {
@@ -489,21 +491,16 @@ export class Method extends MemberDataType {
return selector;
}
- public encode(value: any[] | object, calldata = new Calldata(), annotate: boolean = false, optimize: boolean = false): string {
- calldata.setSelector(this.methodSelector);
- super.encode(value, calldata);
- return calldata.toHexString(optimize, annotate);
+ public encode(value: any, rules?: EncodingRules): string {
+ const calldata = super.encode(value, rules, this.selector);
+ return calldata;
}
- public decode(calldata: string, decodeStructsAsObjects: boolean = false): any[] | object {
- const calldata_ = new RawCalldata(calldata);
- if (this.selector !== calldata_.getSelector()) {
- throw new Error(`Tried to decode calldata with mismatched selector. Expected '${this.selector}', got '${calldata_.getSelector()}'`);
+ public decode(calldata: string, rules?: DecodingRules): any[] | object {
+ if (!calldata.startsWith(this.selector)) {
+ throw new Error(`Tried to decode calldata, but it was missing the function selector. Expected '${this.selector}'.`);
}
- let rules: GenerateValueRules = {
- structsAsObjects: decodeStructsAsObjects
- };
- const value = super.generateValue(calldata_, rules);
+ const value = super.decode(calldata, rules);
return value;
}