aboutsummaryrefslogtreecommitdiffstats
path: root/packages/utils/src/abi_utils.ts
diff options
context:
space:
mode:
authorLeonid Logvinov <logvinov.leon@gmail.com>2018-09-13 20:04:13 +0800
committerLeonid Logvinov <logvinov.leon@gmail.com>2018-09-19 23:56:23 +0800
commit5b6c91bb3f0b5a1d0586b7e772ad96f3eab1f911 (patch)
tree5a0c37be4be70f8b603e771cf232d1745b7d5f8a /packages/utils/src/abi_utils.ts
parent6701ec68bdbda91e63ab199510469e3e6a421b57 (diff)
downloaddexon-sol-tools-5b6c91bb3f0b5a1d0586b7e772ad96f3eab1f911.tar
dexon-sol-tools-5b6c91bb3f0b5a1d0586b7e772ad96f3eab1f911.tar.gz
dexon-sol-tools-5b6c91bb3f0b5a1d0586b7e772ad96f3eab1f911.tar.bz2
dexon-sol-tools-5b6c91bb3f0b5a1d0586b7e772ad96f3eab1f911.tar.lz
dexon-sol-tools-5b6c91bb3f0b5a1d0586b7e772ad96f3eab1f911.tar.xz
dexon-sol-tools-5b6c91bb3f0b5a1d0586b7e772ad96f3eab1f911.tar.zst
dexon-sol-tools-5b6c91bb3f0b5a1d0586b7e772ad96f3eab1f911.zip
Fixes for the breaking changes in ethers
Diffstat (limited to 'packages/utils/src/abi_utils.ts')
-rw-r--r--packages/utils/src/abi_utils.ts14
1 files changed, 10 insertions, 4 deletions
diff --git a/packages/utils/src/abi_utils.ts b/packages/utils/src/abi_utils.ts
index c9b70966c..b5ab28ba2 100644
--- a/packages/utils/src/abi_utils.ts
+++ b/packages/utils/src/abi_utils.ts
@@ -4,11 +4,17 @@ import * as _ from 'lodash';
import { BigNumber } from './configured_bignumber';
+type ParamName = null | string | NestedParamName;
+interface NestedParamName {
+ name: string | null;
+ names: ParamName[];
+}
+
// Note(albrow): This function is unexported in ethers.js. Copying it here for
// now.
// Source: https://github.com/ethers-io/ethers.js/blob/884593ab76004a808bf8097e9753fb5f8dcc3067/contracts/interface.js#L30
-function parseEthersParams(params: DataItem[]): { names: ethers.ParamName[]; types: string[] } {
- const names: ethers.ParamName[] = [];
+function parseEthersParams(params: DataItem[]): { names: ParamName[]; types: string[] } {
+ const names: ParamName[] = [];
const types: string[] = [];
params.forEach((param: DataItem) => {
@@ -37,7 +43,7 @@ function parseEthersParams(params: DataItem[]): { names: ethers.ParamName[]; typ
// returns true if x is equal to y and false otherwise. Performs some minimal
// type conversion and data massaging for x and y, depending on type. name and
// type should typically be derived from parseEthersParams.
-function isAbiDataEqual(name: ethers.ParamName, type: string, x: any, y: any): boolean {
+function isAbiDataEqual(name: ParamName, type: string, x: any, y: any): boolean {
if (_.isUndefined(x) && _.isUndefined(y)) {
return true;
} else if (_.isUndefined(x) && !_.isUndefined(y)) {
@@ -89,7 +95,7 @@ function isAbiDataEqual(name: ethers.ParamName, type: string, x: any, y: any): b
//
const nestedName = _.isString(name.names[i])
? (name.names[i] as string)
- : ((name.names[i] as ethers.NestedParamName).name as string);
+ : ((name.names[i] as NestedParamName).name as string);
if (!isAbiDataEqual(name.names[i], types[i], x[nestedName], y[nestedName])) {
return false;
}