Split Order into signedOrder and metadata
This commit is contained in:
10
packages/website/ts/schemas/metadata_schema.ts
Normal file
10
packages/website/ts/schemas/metadata_schema.ts
Normal file
@@ -0,0 +1,10 @@
|
||||
export const orderMetadataSchema = {
|
||||
id: '/OrderMetadata',
|
||||
properties: {
|
||||
makerToken: { $ref: '/Token' },
|
||||
takerToken: { $ref: '/Token' },
|
||||
networkId: { type: 'number' },
|
||||
},
|
||||
required: ['makerToken', 'takerToken', 'networkId'],
|
||||
type: 'object',
|
||||
};
|
@@ -1,40 +1,9 @@
|
||||
export const orderSchema = {
|
||||
id: '/Order',
|
||||
properties: {
|
||||
maker: { type: 'string' },
|
||||
taker: { type: 'string' },
|
||||
makerTokenAddress: { type: 'string' },
|
||||
takerTokenAddress: { type: 'string' },
|
||||
makerToken: { $ref: '/Token' },
|
||||
takerToken: { $ref: '/Token' },
|
||||
makerFee: { type: 'string' },
|
||||
takerFee: { type: 'string' },
|
||||
makerTokenAmount: { type: 'string' },
|
||||
takerTokenAmount: { type: 'string' },
|
||||
salt: { type: 'string' },
|
||||
ecSignature: { $ref: '/SignatureData' },
|
||||
expirationUnixTimestampSec: { type: 'string' },
|
||||
feeRecipient: { type: 'string' },
|
||||
exchangeContractAddress: { type: 'string' },
|
||||
networkId: { type: 'number' },
|
||||
signedOrder: { $ref: '/SignedOrder' },
|
||||
metadata: { $ref: '/OrderMetadata' },
|
||||
},
|
||||
required: [
|
||||
'maker',
|
||||
'taker',
|
||||
'makerTokenAddress',
|
||||
'takerTokenAddress',
|
||||
'makerToken',
|
||||
'takerToken',
|
||||
'makerFee',
|
||||
'takerFee',
|
||||
'makerTokenAmount',
|
||||
'takerTokenAmount',
|
||||
'salt',
|
||||
'ecSignature',
|
||||
'expirationUnixTimestampSec',
|
||||
'feeRecipient',
|
||||
'exchangeContractAddress',
|
||||
'networkId',
|
||||
],
|
||||
required: ['signedOrder', 'metadata'],
|
||||
type: 'object',
|
||||
};
|
||||
|
34
packages/website/ts/schemas/signed_order_schema.ts
Normal file
34
packages/website/ts/schemas/signed_order_schema.ts
Normal file
@@ -0,0 +1,34 @@
|
||||
export const signedOrderSchema = {
|
||||
id: '/SignedOrder',
|
||||
properties: {
|
||||
maker: { type: 'string' },
|
||||
taker: { type: 'string' },
|
||||
makerTokenAddress: { type: 'string' },
|
||||
takerTokenAddress: { type: 'string' },
|
||||
makerFee: { type: 'string' },
|
||||
takerFee: { type: 'string' },
|
||||
makerTokenAmount: { type: 'string' },
|
||||
takerTokenAmount: { type: 'string' },
|
||||
salt: { type: 'string' },
|
||||
ecSignature: { $ref: '/SignatureData' },
|
||||
expirationUnixTimestampSec: { type: 'string' },
|
||||
feeRecipient: { type: 'string' },
|
||||
exchangeContractAddress: { type: 'string' },
|
||||
},
|
||||
required: [
|
||||
'maker',
|
||||
'taker',
|
||||
'makerTokenAddress',
|
||||
'takerTokenAddress',
|
||||
'makerFee',
|
||||
'takerFee',
|
||||
'makerTokenAmount',
|
||||
'takerTokenAmount',
|
||||
'salt',
|
||||
'ecSignature',
|
||||
'expirationUnixTimestampSec',
|
||||
'feeRecipient',
|
||||
'exchangeContractAddress',
|
||||
],
|
||||
type: 'object',
|
||||
};
|
@@ -1,6 +1,8 @@
|
||||
import { Schema as JSONSchema, Validator } from 'jsonschema';
|
||||
import { orderMetadataSchema } from 'ts/schemas/metadata_schema';
|
||||
import { orderSchema } from 'ts/schemas/order_schema';
|
||||
import { signatureDataSchema } from 'ts/schemas/signature_data_schema';
|
||||
import { signedOrderSchema } from 'ts/schemas/signed_order_schema';
|
||||
import { tokenSchema } from 'ts/schemas/token_schema';
|
||||
|
||||
export class SchemaValidator {
|
||||
@@ -9,6 +11,8 @@ export class SchemaValidator {
|
||||
this._validator = new Validator();
|
||||
this._validator.addSchema(signatureDataSchema as JSONSchema, signatureDataSchema.id);
|
||||
this._validator.addSchema(tokenSchema as JSONSchema, tokenSchema.id);
|
||||
this._validator.addSchema(orderMetadataSchema as JSONSchema, orderMetadataSchema.id);
|
||||
this._validator.addSchema(signedOrderSchema as JSONSchema, signedOrderSchema.id);
|
||||
this._validator.addSchema(orderSchema as JSONSchema, orderSchema.id);
|
||||
}
|
||||
public validate(instance: object, schema: Schema) {
|
||||
|
Reference in New Issue
Block a user