aboutsummaryrefslogtreecommitdiffstats
path: root/packages/0x.js/src/schemas
diff options
context:
space:
mode:
authorLeonid Logvinov <logvinov.leon@gmail.com>2018-02-09 01:01:53 +0800
committerLeonid Logvinov <logvinov.leon@gmail.com>2018-02-15 03:22:36 +0800
commitf3e6ef0fa96e2252e41b7ed6f2c3e88a1560153e (patch)
tree0208e1e119e1a6976e8e2332eaca9681b4ae20ed /packages/0x.js/src/schemas
parent18e1c2dea5d3c5387db6f616cd0ebbfe89dc308b (diff)
downloaddexon-sol-tools-f3e6ef0fa96e2252e41b7ed6f2c3e88a1560153e.tar
dexon-sol-tools-f3e6ef0fa96e2252e41b7ed6f2c3e88a1560153e.tar.gz
dexon-sol-tools-f3e6ef0fa96e2252e41b7ed6f2c3e88a1560153e.tar.bz2
dexon-sol-tools-f3e6ef0fa96e2252e41b7ed6f2c3e88a1560153e.tar.lz
dexon-sol-tools-f3e6ef0fa96e2252e41b7ed6f2c3e88a1560153e.tar.xz
dexon-sol-tools-f3e6ef0fa96e2252e41b7ed6f2c3e88a1560153e.tar.zst
dexon-sol-tools-f3e6ef0fa96e2252e41b7ed6f2c3e88a1560153e.zip
Better validate ZeroExConfig on public networks
Diffstat (limited to 'packages/0x.js/src/schemas')
-rw-r--r--packages/0x.js/src/schemas/zero_ex_config_schema.ts24
-rw-r--r--packages/0x.js/src/schemas/zero_ex_private_network_config_schema.ts35
-rw-r--r--packages/0x.js/src/schemas/zero_ex_public_network_config_schema.ts29
3 files changed, 65 insertions, 23 deletions
diff --git a/packages/0x.js/src/schemas/zero_ex_config_schema.ts b/packages/0x.js/src/schemas/zero_ex_config_schema.ts
index 546b1c2d0..a9c3c64fc 100644
--- a/packages/0x.js/src/schemas/zero_ex_config_schema.ts
+++ b/packages/0x.js/src/schemas/zero_ex_config_schema.ts
@@ -1,27 +1,5 @@
export const zeroExConfigSchema = {
id: '/ZeroExConfig',
- properties: {
- networkId: {
- type: 'number',
- minimum: 0,
- },
- gasPrice: { $ref: '/Number' },
- exchangeContractAddress: { $ref: '/Address' },
- tokenRegistryContractAddress: { $ref: '/Address' },
- orderWatcherConfig: {
- type: 'object',
- properties: {
- pollingIntervalMs: {
- type: 'number',
- minimum: 0,
- },
- numConfirmations: {
- type: 'number',
- minimum: 0,
- },
- },
- },
- },
+ oneOf: [{ $ref: '/ZeroExPrivateNetworkConfig' }, { $ref: '/ZeroExPublicNetworkConfig' }],
type: 'object',
- required: ['networkId'],
};
diff --git a/packages/0x.js/src/schemas/zero_ex_private_network_config_schema.ts b/packages/0x.js/src/schemas/zero_ex_private_network_config_schema.ts
new file mode 100644
index 000000000..f7f649a6d
--- /dev/null
+++ b/packages/0x.js/src/schemas/zero_ex_private_network_config_schema.ts
@@ -0,0 +1,35 @@
+export const zeroExPrivateNetworkConfigSchema = {
+ id: '/ZeroExPrivateNetworkConfig',
+ properties: {
+ networkId: {
+ type: 'number',
+ minimum: 1,
+ },
+ gasPrice: { $ref: '/Number' },
+ zrxContractAddress: { $ref: '/Address' },
+ exchangeContractAddress: { $ref: '/Address' },
+ tokenRegistryContractAddress: { $ref: '/Address' },
+ tokenTransferProxyContractAddress: { $ref: '/Address' },
+ orderWatcherConfig: {
+ type: 'object',
+ properties: {
+ pollingIntervalMs: {
+ type: 'number',
+ minimum: 0,
+ },
+ numConfirmations: {
+ type: 'number',
+ minimum: 0,
+ },
+ },
+ },
+ },
+ type: 'object',
+ required: [
+ 'networkId',
+ 'zrxContractAddress',
+ 'exchangeContractAddress',
+ 'tokenRegistryContractAddress',
+ 'tokenTransferProxyContractAddress',
+ ],
+};
diff --git a/packages/0x.js/src/schemas/zero_ex_public_network_config_schema.ts b/packages/0x.js/src/schemas/zero_ex_public_network_config_schema.ts
new file mode 100644
index 000000000..9da31481a
--- /dev/null
+++ b/packages/0x.js/src/schemas/zero_ex_public_network_config_schema.ts
@@ -0,0 +1,29 @@
+export const zeroExPublicNetworkConfigSchema = {
+ id: '/ZeroExPublicNetworkConfig',
+ properties: {
+ networkId: {
+ type: 'number',
+ enum: [1, 3, 4, 42, 50],
+ },
+ gasPrice: { $ref: '/Number' },
+ zrxContractAddress: { $ref: '/Address' },
+ exchangeContractAddress: { $ref: '/Address' },
+ tokenRegistryContractAddress: { $ref: '/Address' },
+ tokenTransferProxyContractAddress: { $ref: '/Address' },
+ orderWatcherConfig: {
+ type: 'object',
+ properties: {
+ pollingIntervalMs: {
+ type: 'number',
+ minimum: 0,
+ },
+ numConfirmations: {
+ type: 'number',
+ minimum: 0,
+ },
+ },
+ },
+ },
+ type: 'object',
+ required: ['networkId'],
+};