aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLeonid Logvinov <logvinov.leon@gmail.com>2017-09-19 20:13:06 +0800
committerLeonid Logvinov <logvinov.leon@gmail.com>2017-09-19 20:13:06 +0800
commit903e2f4f8a1de54bae3863ecbfab1855a2edc55f (patch)
tree3035f198852bc2b1ba6c42f02058241b71ddab8d
parent4aeb6226d557ef924eb2182b383f5e77d7fc8199 (diff)
downloaddexon-0x-contracts-903e2f4f8a1de54bae3863ecbfab1855a2edc55f.tar.gz
dexon-0x-contracts-903e2f4f8a1de54bae3863ecbfab1855a2edc55f.tar.zst
dexon-0x-contracts-903e2f4f8a1de54bae3863ecbfab1855a2edc55f.zip
Verify ZeroExConfig
-rw-r--r--src/0x.ts4
-rw-r--r--src/schemas/zero_ex_config_schema.ts10
2 files changed, 14 insertions, 0 deletions
diff --git a/src/0x.ts b/src/0x.ts
index 70d0c7acf..ce2738a20 100644
--- a/src/0x.ts
+++ b/src/0x.ts
@@ -32,6 +32,7 @@ import {
TransactionReceiptWithDecodedLogs,
LogWithDecodedArgs,
} from './types';
+import {zeroExConfigSchema} from './schemas/zero_ex_config_schema';
// Customize our BigNumber instances
bigNumberConfigs.configure();
@@ -180,6 +181,9 @@ export class ZeroEx {
*/
constructor(provider: Web3Provider, config?: ZeroExConfig) {
assert.isWeb3Provider('provider', provider);
+ if (!_.isUndefined(config)) {
+ assert.doesConformToSchema('config', config, zeroExConfigSchema);
+ }
if (_.isUndefined((provider as any).sendAsync)) {
// Web3@1.0 provider doesn't support synchronous http requests,
// so it only has an async `send` method, instead of a `send` and `sendAsync` in web3@0.x.x`
diff --git a/src/schemas/zero_ex_config_schema.ts b/src/schemas/zero_ex_config_schema.ts
new file mode 100644
index 000000000..179e29c31
--- /dev/null
+++ b/src/schemas/zero_ex_config_schema.ts
@@ -0,0 +1,10 @@
+export const zeroExConfigSchema = {
+ id: '/ZeroExConfig',
+ properties: {
+ gasPrice: {$ref: '/Number'},
+ exchangeContractAddress: {$ref: '/Address'},
+ tokenRegistryContractAddress: {$ref: '/Address'},
+ etherTokenContractAddress: {$ref: '/Address'},
+ },
+ type: 'object',
+};