aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorLeonid <logvinov.leon@gmail.com>2017-06-09 21:53:23 +0800
committerGitHub <noreply@github.com>2017-06-09 21:53:23 +0800
commit389894088d2372e1eb9bf4d39bde2efe8ab38713 (patch)
treef1ff72e8adf01bf75579dc92ce8a37cd46355d94 /src
parentab40123768a3376bd2b36bd0d85a8e476b89dc10 (diff)
parent862685aa41b7ba0a107c20a524dc0769cd353409 (diff)
downloaddexon-sol-tools-389894088d2372e1eb9bf4d39bde2efe8ab38713.tar.gz
dexon-sol-tools-389894088d2372e1eb9bf4d39bde2efe8ab38713.tar.zst
dexon-sol-tools-389894088d2372e1eb9bf4d39bde2efe8ab38713.zip
Merge pull request #50 from 0xProject/schemas
Add orderCancelrequestsSchema and orderFillRequestsSchema
Diffstat (limited to 'src')
-rw-r--r--src/contract_wrappers/exchange_wrapper.ts28
-rw-r--r--src/schemas/order_cancel_schema.ts12
-rw-r--r--src/schemas/order_fill_requests_schema.ts12
3 files changed, 36 insertions, 16 deletions
diff --git a/src/contract_wrappers/exchange_wrapper.ts b/src/contract_wrappers/exchange_wrapper.ts
index 73ec0886c..ed0438372 100644
--- a/src/contract_wrappers/exchange_wrapper.ts
+++ b/src/contract_wrappers/exchange_wrapper.ts
@@ -28,6 +28,8 @@ import {utils} from '../utils/utils';
import {ContractWrapper} from './contract_wrapper';
import * as ExchangeArtifacts from '../artifacts/Exchange.json';
import {ecSignatureSchema} from '../schemas/ec_signature_schema';
+import {orderFillRequestsSchema} from '../schemas/order_fill_requests_schema';
+import {orderCancellationRequestsSchema} from '../schemas/order_cancel_schema';
import {orderFillOrKillRequestsSchema} from '../schemas/order_fill_or_kill_requests_schema';
import {signedOrderSchema, orderSchema} from '../schemas/order_schemas';
import {SchemaValidator} from '../utils/schema_validator';
@@ -170,12 +172,10 @@ export class ExchangeWrapper extends ContractWrapper {
shouldCheckTransfer: boolean, takerAddress: string): Promise<void> {
assert.isBoolean('shouldCheckTransfer', shouldCheckTransfer);
await assert.isSenderAddressAsync('takerAddress', takerAddress, this.web3Wrapper);
- _.forEach(orderFillRequests,
- async (orderFillRequest: OrderFillRequest, i: number) => {
- assert.doesConformToSchema(`orderFillRequests[${i}].signedOrder`,
- SchemaValidator.convertToJSONSchemaCompatibleObject(orderFillRequest.signedOrder as object),
- signedOrderSchema);
- assert.isBigNumber(`orderFillRequests[${i}].takerTokenFillAmount`, orderFillRequest.takerTokenFillAmount);
+ assert.doesConformToSchema('orderFillRequests',
+ SchemaValidator.convertToJSONSchemaCompatibleObject(orderFillRequests as object),
+ orderFillRequestsSchema);
+ _.forEach(orderFillRequests, async (orderFillRequest: OrderFillRequest) => {
await this.validateFillOrderAndThrowIfInvalidAsync(
orderFillRequest.signedOrder, orderFillRequest.takerTokenFillAmount, takerAddress);
});
@@ -333,8 +333,8 @@ export class ExchangeWrapper extends ContractWrapper {
public async cancelOrderAsync(
order: Order|SignedOrder, takerTokenCancelAmount: BigNumber.BigNumber): Promise<void> {
assert.doesConformToSchema('order',
- SchemaValidator.convertToJSONSchemaCompatibleObject(order as object),
- orderSchema);
+ SchemaValidator.convertToJSONSchemaCompatibleObject(order),
+ orderSchema);
assert.isBigNumber('takerTokenCancelAmount', takerTokenCancelAmount);
await assert.isSenderAddressAsync('order.maker', order.maker, this.web3Wrapper);
@@ -373,14 +373,10 @@ export class ExchangeWrapper extends ContractWrapper {
assert.assert(_.uniq(makers).length === 1, ExchangeContractErrs.MULTIPLE_MAKERS_IN_SINGLE_CANCEL_BATCH);
const maker = makers[0];
await assert.isSenderAddressAsync('maker', maker, this.web3Wrapper);
- _.forEach(orderCancellationRequests,
- async (cancellationRequest: OrderCancellationRequest, i: number) => {
- assert.doesConformToSchema(`orderCancellationRequests[${i}].order`,
- SchemaValidator.convertToJSONSchemaCompatibleObject(cancellationRequest.order as object), orderSchema,
- );
- assert.isBigNumber(`orderCancellationRequests[${i}].takerTokenCancelAmount`,
- cancellationRequest.takerTokenCancelAmount,
- );
+ assert.doesConformToSchema('orderCancellationRequests',
+ SchemaValidator.convertToJSONSchemaCompatibleObject(orderCancellationRequests),
+ orderCancellationRequestsSchema);
+ _.forEach(orderCancellationRequests, async (cancellationRequest: OrderCancellationRequest) => {
await this.validateCancelOrderAndThrowIfInvalidAsync(
cancellationRequest.order, cancellationRequest.takerTokenCancelAmount,
);
diff --git a/src/schemas/order_cancel_schema.ts b/src/schemas/order_cancel_schema.ts
new file mode 100644
index 000000000..5cc8f745c
--- /dev/null
+++ b/src/schemas/order_cancel_schema.ts
@@ -0,0 +1,12 @@
+export const orderCancellationRequestsSchema = {
+ id: '/OrderCancellationRequests',
+ type: 'array',
+ items: {
+ properties: {
+ order: {$ref: '/orderSchema'},
+ takerTokenCancelAmount: {type: '/numberSchema'},
+ },
+ required: ['order', 'takerTokenCancelAmount'],
+ type: 'object',
+ },
+};
diff --git a/src/schemas/order_fill_requests_schema.ts b/src/schemas/order_fill_requests_schema.ts
new file mode 100644
index 000000000..44f4e33e2
--- /dev/null
+++ b/src/schemas/order_fill_requests_schema.ts
@@ -0,0 +1,12 @@
+export const orderFillRequestsSchema = {
+ id: '/OrderFillRequests',
+ type: 'array',
+ items: {
+ properties: {
+ signedOrder: {$ref: '/signedOrderSchema'},
+ takerTokenFillAmount: {type: '/numberSchema'},
+ },
+ required: ['signedOrder', 'takerTokenFillAmount'],
+ type: 'object',
+ },
+};