aboutsummaryrefslogtreecommitdiffstats
path: root/packages/abi-gen/src/index.ts
diff options
context:
space:
mode:
authorLeonid Logvinov <logvinov.leon@gmail.com>2018-02-28 06:41:59 +0800
committerGitHub <noreply@github.com>2018-02-28 06:41:59 +0800
commit7aa070f9eaef734274df6e6eaa4590fe30d52899 (patch)
tree454cc4800db190b664d65609c62048a989e2d933 /packages/abi-gen/src/index.ts
parentc2ec2291e8243266f52a3b89f38ba67ce1215c22 (diff)
parentce0b92d681cfb510ede09296b60260637781f875 (diff)
downloaddexon-sol-tools-7aa070f9eaef734274df6e6eaa4590fe30d52899.tar
dexon-sol-tools-7aa070f9eaef734274df6e6eaa4590fe30d52899.tar.gz
dexon-sol-tools-7aa070f9eaef734274df6e6eaa4590fe30d52899.tar.bz2
dexon-sol-tools-7aa070f9eaef734274df6e6eaa4590fe30d52899.tar.lz
dexon-sol-tools-7aa070f9eaef734274df6e6eaa4590fe30d52899.tar.xz
dexon-sol-tools-7aa070f9eaef734274df6e6eaa4590fe30d52899.tar.zst
dexon-sol-tools-7aa070f9eaef734274df6e6eaa4590fe30d52899.zip
Merge pull request #413 from 0xProject/feature/ethers-contracts
abi-gen V2 abi and ethers-contracts
Diffstat (limited to 'packages/abi-gen/src/index.ts')
-rw-r--r--packages/abi-gen/src/index.ts14
1 files changed, 11 insertions, 3 deletions
diff --git a/packages/abi-gen/src/index.ts b/packages/abi-gen/src/index.ts
index bc5a974a9..7c29f7d1d 100644
--- a/packages/abi-gen/src/index.ts
+++ b/packages/abi-gen/src/index.ts
@@ -11,13 +11,14 @@ import * as yargs from 'yargs';
import toSnakeCase = require('to-snake-case');
import * as Web3 from 'web3';
-import { ContextData, ParamKind } from './types';
+import { ContextData, ContractsBackend, ParamKind } from './types';
import { utils } from './utils';
const ABI_TYPE_CONSTRUCTOR = 'constructor';
const ABI_TYPE_METHOD = 'function';
const ABI_TYPE_EVENT = 'event';
const DEFAULT_NETWORK_ID = 50;
+const DEFAULT_BACKEND = 'web3';
const args = yargs
.option('abis', {
@@ -43,6 +44,12 @@ const args = yargs
demandOption: true,
normalize: true,
})
+ .option('backend', {
+ describe: `The backing Ethereum library your app uses. Either 'web3' or 'ethers'. Ethers auto-converts small ints to numbers whereas Web3 doesn't.`,
+ type: 'string',
+ choices: [ContractsBackend.Web3, ContractsBackend.Ethers],
+ default: DEFAULT_BACKEND,
+ })
.option('network-id', {
describe: 'ID of the network where contract ABIs are nested in artifacts',
type: 'number',
@@ -73,8 +80,8 @@ function writeOutputFile(name: string, renderedTsCode: string): void {
utils.log(`Created: ${chalk.bold(filePath)}`);
}
-Handlebars.registerHelper('parameterType', utils.solTypeToTsType.bind(utils, ParamKind.Input));
-Handlebars.registerHelper('returnType', utils.solTypeToTsType.bind(utils, ParamKind.Output));
+Handlebars.registerHelper('parameterType', utils.solTypeToTsType.bind(utils, ParamKind.Input, args.backend));
+Handlebars.registerHelper('returnType', utils.solTypeToTsType.bind(utils, ParamKind.Output, args.backend));
if (args.partials) {
registerPartials(args.partials);
@@ -129,6 +136,7 @@ for (const abiFileName of abiFileNames) {
const methodData = {
...methodAbi,
singleReturnValue: methodAbi.outputs.length === 1,
+ hasReturnValue: methodAbi.outputs.length !== 0,
};
return methodData;
});