diff options
-rw-r--r-- | packages/website/ts/components/fill_order.tsx | 16 | ||||
-rw-r--r-- | packages/website/ts/components/portal.tsx | 16 | ||||
-rw-r--r-- | packages/website/ts/containers/portal.tsx | 4 | ||||
-rw-r--r-- | packages/website/ts/redux/dispatcher.ts | 4 | ||||
-rw-r--r-- | packages/website/ts/redux/reducer.ts | 4 | ||||
-rw-r--r-- | packages/website/ts/schemas/order_schema.ts | 13 | ||||
-rw-r--r-- | packages/website/ts/types.ts | 11 | ||||
-rw-r--r-- | packages/website/ts/utils/utils.ts | 6 |
8 files changed, 51 insertions, 23 deletions
diff --git a/packages/website/ts/components/fill_order.tsx b/packages/website/ts/components/fill_order.tsx index 97f616be2..c0b16f251 100644 --- a/packages/website/ts/components/fill_order.tsx +++ b/packages/website/ts/components/fill_order.tsx @@ -20,7 +20,7 @@ import { VisualOrder } from 'ts/components/visual_order'; import { Dispatcher } from 'ts/redux/dispatcher'; import { orderSchema } from 'ts/schemas/order_schema'; import { SchemaValidator } from 'ts/schemas/validator'; -import { AlertTypes, BlockchainErrs, Order, Token, TokenByAddress, WebsitePaths } from 'ts/types'; +import { AlertTypes, BlockchainErrs, SerializedOrder, Token, TokenByAddress, WebsitePaths } from 'ts/types'; import { colors } from 'ts/utils/colors'; import { constants } from 'ts/utils/constants'; import { errorReporter } from 'ts/utils/error_reporter'; @@ -34,7 +34,7 @@ interface FillOrderProps { networkId: number; userAddress: string; tokenByAddress: TokenByAddress; - initialOrder: Order; + initialOrder: SerializedOrder; dispatcher: Dispatcher; lastForceTokenStateRefetch: number; } @@ -45,7 +45,7 @@ interface FillOrderState { globalErrMsg: string; orderJSON: string; orderJSONErrMsg: string; - parsedOrder: Order; + parsedOrder: SerializedOrder; didFillOrderSucceed: boolean; didCancelOrderSucceed: boolean; unavailableTakerAmount: BigNumber; @@ -204,7 +204,7 @@ export class FillOrder extends React.Component<FillOrderProps, FillOrderState> { const orderTaker = !_.isEmpty(this.state.parsedOrder.taker.address) ? this.state.parsedOrder.taker.address : this.props.userAddress; - const parsedOrderExpiration = new BigNumber(this.state.parsedOrder.expiration); + const parsedOrderExpiration = new BigNumber(this.state.parsedOrder.expirationUnixTimestampSec); const exchangeRate = orderMakerAmount.div(orderTakerAmount); let orderReceiveAmount = 0; @@ -402,7 +402,7 @@ export class FillOrder extends React.Component<FillOrderProps, FillOrderState> { } private async _validateFillOrderFireAndForgetAsync(orderJSON: string) { let orderJSONErrMsg = ''; - let parsedOrder: Order; + let parsedOrder: SerializedOrder; try { const order = JSON.parse(orderJSON); const validationResult = this._validator.validate(order, orderSchema); @@ -416,7 +416,7 @@ export class FillOrder extends React.Component<FillOrderProps, FillOrderState> { const exchangeContractAddr = this.props.blockchain.getExchangeContractAddressIfExists(); const makerAmount = new BigNumber(parsedOrder.maker.amount); const takerAmount = new BigNumber(parsedOrder.taker.amount); - const expiration = new BigNumber(parsedOrder.expiration); + const expiration = new BigNumber(parsedOrder.expirationUnixTimestampSec); const salt = new BigNumber(parsedOrder.salt); const parsedMakerFee = new BigNumber(parsedOrder.maker.feeAmount); const parsedTakerFee = new BigNumber(parsedOrder.taker.feeAmount); @@ -538,7 +538,7 @@ export class FillOrder extends React.Component<FillOrderProps, FillOrderState> { new BigNumber(parsedOrder.taker.amount), new BigNumber(parsedOrder.maker.feeAmount), new BigNumber(parsedOrder.taker.feeAmount), - new BigNumber(this.state.parsedOrder.expiration), + new BigNumber(this.state.parsedOrder.expirationUnixTimestampSec), parsedOrder.feeRecipient, parsedOrder.signature, new BigNumber(parsedOrder.salt), @@ -641,7 +641,7 @@ export class FillOrder extends React.Component<FillOrderProps, FillOrderState> { takerTokenAmount, new BigNumber(parsedOrder.maker.feeAmount), new BigNumber(parsedOrder.taker.feeAmount), - new BigNumber(this.state.parsedOrder.expiration), + new BigNumber(this.state.parsedOrder.expirationUnixTimestampSec), parsedOrder.feeRecipient, parsedOrder.signature, new BigNumber(parsedOrder.salt), diff --git a/packages/website/ts/components/portal.tsx b/packages/website/ts/components/portal.tsx index 92589f75c..6727645fc 100644 --- a/packages/website/ts/components/portal.tsx +++ b/packages/website/ts/components/portal.tsx @@ -23,7 +23,15 @@ import { localStorage } from 'ts/local_storage/local_storage'; import { Dispatcher } from 'ts/redux/dispatcher'; import { orderSchema } from 'ts/schemas/order_schema'; import { SchemaValidator } from 'ts/schemas/validator'; -import { BlockchainErrs, HashData, Order, ProviderType, ScreenWidths, TokenByAddress, WebsitePaths } from 'ts/types'; +import { + BlockchainErrs, + HashData, + ProviderType, + ScreenWidths, + SerializedOrder, + TokenByAddress, + WebsitePaths, +} from 'ts/types'; import { colors } from 'ts/utils/colors'; import { configs } from 'ts/utils/configs'; import { constants } from 'ts/utils/constants'; @@ -48,7 +56,7 @@ export interface PortalAllProps { userEtherBalance: BigNumber; userAddress: string; shouldBlockchainErrDialogBeOpen: boolean; - userSuppliedOrderCache: Order; + userSuppliedOrderCache: SerializedOrder; location: Location; flashMessage?: string | React.ReactNode; lastForceTokenStateRefetch: number; @@ -66,7 +74,7 @@ interface PortalAllState { export class Portal extends React.Component<PortalAllProps, PortalAllState> { private _blockchain: Blockchain; - private _sharedOrderIfExists: Order; + private _sharedOrderIfExists: SerializedOrder; private _throttledScreenWidthUpdate: () => void; public static hasAlreadyDismissedWethNotice() { const didDismissWethNotice = localStorage.getItemIfExists(constants.LOCAL_STORAGE_KEY_DISMISS_WETH_NOTICE); @@ -349,7 +357,7 @@ export class Portal extends React.Component<PortalAllProps, PortalAllState> { isWethNoticeDialogOpen: false, }); } - private _getSharedOrderIfExists(): Order | undefined { + private _getSharedOrderIfExists(): SerializedOrder | undefined { const queryString = window.location.search; if (queryString.length === 0) { return undefined; diff --git a/packages/website/ts/containers/portal.tsx b/packages/website/ts/containers/portal.tsx index bcca0d70f..4638de2f8 100644 --- a/packages/website/ts/containers/portal.tsx +++ b/packages/website/ts/containers/portal.tsx @@ -6,7 +6,7 @@ import { Dispatch } from 'redux'; import { Portal as PortalComponent, PortalAllProps as PortalComponentAllProps } from 'ts/components/portal'; import { Dispatcher } from 'ts/redux/dispatcher'; import { State } from 'ts/redux/reducer'; -import { BlockchainErrs, HashData, Order, ProviderType, ScreenWidths, Side, TokenByAddress } from 'ts/types'; +import { BlockchainErrs, HashData, ProviderType, ScreenWidths, SerializedOrder, Side, TokenByAddress } from 'ts/types'; import { constants } from 'ts/utils/constants'; interface ConnectedState { @@ -24,7 +24,7 @@ interface ConnectedState { screenWidth: ScreenWidths; shouldBlockchainErrDialogBeOpen: boolean; userAddress: string; - userSuppliedOrderCache: Order; + userSuppliedOrderCache: SerializedOrder; flashMessage?: string | React.ReactNode; } diff --git a/packages/website/ts/redux/dispatcher.ts b/packages/website/ts/redux/dispatcher.ts index 87415b285..ba54347b1 100644 --- a/packages/website/ts/redux/dispatcher.ts +++ b/packages/website/ts/redux/dispatcher.ts @@ -5,9 +5,9 @@ import { ActionTypes, AssetToken, BlockchainErrs, - Order, ProviderType, ScreenWidths, + SerializedOrder, Side, SideToAssetToken, SignatureData, @@ -49,7 +49,7 @@ export class Dispatcher { type: ActionTypes.UpdateOrderSalt, }); } - public updateUserSuppliedOrderCache(order: Order) { + public updateUserSuppliedOrderCache(order: SerializedOrder) { this._dispatch({ data: order, type: ActionTypes.UpdateUserSuppliedOrderCache, diff --git a/packages/website/ts/redux/reducer.ts b/packages/website/ts/redux/reducer.ts index 7b0b03dae..8c640fdb7 100644 --- a/packages/website/ts/redux/reducer.ts +++ b/packages/website/ts/redux/reducer.ts @@ -6,9 +6,9 @@ import { Action, ActionTypes, BlockchainErrs, - Order, ProviderType, ScreenWidths, + SerializedOrder, Side, SideToAssetToken, SignatureData, @@ -40,7 +40,7 @@ export interface State { userAddress: string; userEtherBalance: BigNumber; // Note: cache of supplied orderJSON in fill order step. Do not use for anything else. - userSuppliedOrderCache: Order; + userSuppliedOrderCache: SerializedOrder; // Docs docsVersion: string; diff --git a/packages/website/ts/schemas/order_schema.ts b/packages/website/ts/schemas/order_schema.ts index bfbf9eb8b..1d9e96fee 100644 --- a/packages/website/ts/schemas/order_schema.ts +++ b/packages/website/ts/schemas/order_schema.ts @@ -5,11 +5,20 @@ export const orderSchema = { taker: { $ref: '/OrderTaker' }, salt: { type: 'string' }, signature: { $ref: '/SignatureData' }, - expiration: { type: 'string' }, + expirationUnixTimestampSec: { type: 'string' }, feeRecipient: { type: 'string' }, exchangeContract: { type: 'string' }, networkId: { type: 'number' }, }, - required: ['maker', 'taker', 'salt', 'signature', 'expiration', 'feeRecipient', 'exchangeContract', 'networkId'], + required: [ + 'maker', + 'taker', + 'salt', + 'signature', + 'expirationUnixTimestampSec', + 'feeRecipient', + 'exchangeContract', + 'networkId', + ], type: 'object', }; diff --git a/packages/website/ts/types.ts b/packages/website/ts/types.ts index c48c88cae..4ac972783 100644 --- a/packages/website/ts/types.ts +++ b/packages/website/ts/types.ts @@ -80,6 +80,17 @@ export interface Order { networkId: number; } +export interface SerializedOrder { + maker: OrderParty; + taker: OrderParty; + expirationUnixTimestampSec: string; + feeRecipient: string; + salt: string; + signature: SignatureData; + exchangeContract: string; + networkId: number; +} + export interface Fill { logIndex: number; maker: string; diff --git a/packages/website/ts/utils/utils.ts b/packages/website/ts/utils/utils.ts index 7e69b1c5f..794df8dc7 100644 --- a/packages/website/ts/utils/utils.ts +++ b/packages/website/ts/utils/utils.ts @@ -7,8 +7,8 @@ import * as moment from 'moment'; import { EtherscanLinkSuffixes, Networks, - Order, ScreenWidths, + SerializedOrder, Side, SideToAssetToken, SignatureData, @@ -71,7 +71,7 @@ export const utils = { signatureData: SignatureData, tokenByAddress: TokenByAddress, orderSalt: BigNumber, - ): Order { + ): SerializedOrder { const makerToken = tokenByAddress[sideToAssetToken[Side.Deposit].address]; const takerToken = tokenByAddress[sideToAssetToken[Side.Receive].address]; const order = { @@ -97,7 +97,7 @@ export const utils = { amount: sideToAssetToken[Side.Receive].amount.toString(), feeAmount: takerFee.toString(), }, - expiration: orderExpiryTimestamp.toString(), + expirationUnixTimestampSec: orderExpiryTimestamp.toString(), feeRecipient, salt: orderSalt.toString(), signature: signatureData, |