aboutsummaryrefslogtreecommitdiffstats
path: root/packages/website/ts/components/generate_order/generate_order_form.tsx
diff options
context:
space:
mode:
authorLeonid <logvinov.leon@gmail.com>2018-02-09 16:27:08 +0800
committerGitHub <noreply@github.com>2018-02-09 16:27:08 +0800
commit936f6ac10fe55257d846204ce4e5bd39ca27c78d (patch)
treef76cca84a55f979103a027282b289693a1f78491 /packages/website/ts/components/generate_order/generate_order_form.tsx
parent7e04c4f24b789a2ce8f4a5884212cfb1e508b508 (diff)
parent43cf8d30bdab025cdcda888897d35b25ad455031 (diff)
downloaddexon-sol-tools-936f6ac10fe55257d846204ce4e5bd39ca27c78d.tar
dexon-sol-tools-936f6ac10fe55257d846204ce4e5bd39ca27c78d.tar.gz
dexon-sol-tools-936f6ac10fe55257d846204ce4e5bd39ca27c78d.tar.bz2
dexon-sol-tools-936f6ac10fe55257d846204ce4e5bd39ca27c78d.tar.lz
dexon-sol-tools-936f6ac10fe55257d846204ce4e5bd39ca27c78d.tar.xz
dexon-sol-tools-936f6ac10fe55257d846204ce4e5bd39ca27c78d.tar.zst
dexon-sol-tools-936f6ac10fe55257d846204ce4e5bd39ca27c78d.zip
Merge pull request #379 from 0xProject/portal_json
Make portal order JSON compatible with 0x.js
Diffstat (limited to 'packages/website/ts/components/generate_order/generate_order_form.tsx')
-rw-r--r--packages/website/ts/components/generate_order/generate_order_form.tsx38
1 files changed, 14 insertions, 24 deletions
diff --git a/packages/website/ts/components/generate_order/generate_order_form.tsx b/packages/website/ts/components/generate_order/generate_order_form.tsx
index c9417f5a4..a3f222784 100644
--- a/packages/website/ts/components/generate_order/generate_order_form.tsx
+++ b/packages/website/ts/components/generate_order/generate_order_form.tsx
@@ -1,4 +1,4 @@
-import { Order, ZeroEx } from '0x.js';
+import { ECSignature, Order, ZeroEx } from '0x.js';
import { BigNumber } from '@0xproject/utils';
import * as _ from 'lodash';
import Dialog from 'material-ui/Dialog';
@@ -17,18 +17,9 @@ import { HelpTooltip } from 'ts/components/ui/help_tooltip';
import { LifeCycleRaisedButton } from 'ts/components/ui/lifecycle_raised_button';
import { SwapIcon } from 'ts/components/ui/swap_icon';
import { Dispatcher } from 'ts/redux/dispatcher';
-import { orderSchema } from 'ts/schemas/order_schema';
-import { SchemaValidator } from 'ts/schemas/validator';
-import {
- AlertTypes,
- BlockchainErrs,
- HashData,
- Side,
- SideToAssetToken,
- SignatureData,
- Token,
- TokenByAddress,
-} from 'ts/types';
+import { portalOrderSchema } from 'ts/schemas/portal_order_schema';
+import { validator } from 'ts/schemas/validator';
+import { AlertTypes, BlockchainErrs, HashData, Side, SideToAssetToken, Token, TokenByAddress } from 'ts/types';
import { colors } from 'ts/utils/colors';
import { constants } from 'ts/utils/constants';
import { errorReporter } from 'ts/utils/error_reporter';
@@ -49,7 +40,7 @@ interface GenerateOrderFormProps {
orderExpiryTimestamp: BigNumber;
networkId: number;
userAddress: string;
- orderSignatureData: SignatureData;
+ orderECSignature: ECSignature;
orderTakerAddress: string;
orderSalt: BigNumber;
sideToAssetToken: SideToAssetToken;
@@ -64,7 +55,6 @@ interface GenerateOrderFormState {
}
export class GenerateOrderForm extends React.Component<GenerateOrderFormProps, GenerateOrderFormState> {
- private _validator: SchemaValidator;
constructor(props: GenerateOrderFormProps) {
super(props);
this.state = {
@@ -72,7 +62,6 @@ export class GenerateOrderForm extends React.Component<GenerateOrderFormProps, G
shouldShowIncompleteErrs: false,
signingState: SigningState.UNSIGNED,
};
- this._validator = new SchemaValidator();
}
public componentDidMount() {
window.scrollTo(0, 0);
@@ -88,6 +77,8 @@ export class GenerateOrderForm extends React.Component<GenerateOrderFormProps, G
allowed to fill this order. If no taker is<br> \
specified, anyone is able to fill it.';
const exchangeContractIfExists = this.props.blockchain.getExchangeContractAddressIfExists();
+ const initialTakerAddress =
+ this.props.orderTakerAddress === ZeroEx.NULL_ADDRESS ? '' : this.props.orderTakerAddress;
return (
<div className="clearfix mb2 lg-px4 md-px4 sm-px2">
<h3>Generate an order</h3>
@@ -168,7 +159,7 @@ export class GenerateOrderForm extends React.Component<GenerateOrderFormProps, G
<div className="pt1 flex mx-auto">
<IdenticonAddressInput
label="Taker"
- initialAddress={this.props.orderTakerAddress}
+ initialAddress={initialTakerAddress}
updateOrderAddress={this._updateOrderAddress.bind(this)}
/>
<div className="pt3">
@@ -209,14 +200,13 @@ export class GenerateOrderForm extends React.Component<GenerateOrderFormProps, G
<OrderJSON
exchangeContractIfExists={exchangeContractIfExists}
orderExpiryTimestamp={this.props.orderExpiryTimestamp}
- orderSignatureData={this.props.orderSignatureData}
+ orderECSignature={this.props.orderECSignature}
orderTakerAddress={this.props.orderTakerAddress}
orderMakerAddress={this.props.userAddress}
orderSalt={this.props.orderSalt}
orderMakerFee={this.props.hashData.makerFee}
orderTakerFee={this.props.hashData.takerFee}
orderFeeRecipient={this.props.hashData.feeRecipientAddress}
- networkId={this.props.networkId}
sideToAssetToken={this.props.sideToAssetToken}
tokenByAddress={this.props.tokenByAddress}
/>
@@ -327,9 +317,8 @@ export class GenerateOrderForm extends React.Component<GenerateOrderFormProps, G
let globalErrMsg = '';
try {
- const signatureData = await this.props.blockchain.signOrderHashAsync(orderHash);
+ const ecSignature = await this.props.blockchain.signOrderHashAsync(orderHash);
const order = utils.generateOrder(
- this.props.networkId,
exchangeContractAddr,
this.props.sideToAssetToken,
hashData.orderExpiryTimestamp,
@@ -338,11 +327,11 @@ export class GenerateOrderForm extends React.Component<GenerateOrderFormProps, G
hashData.makerFee,
hashData.takerFee,
hashData.feeRecipientAddress,
- signatureData,
+ ecSignature,
this.props.tokenByAddress,
hashData.orderSalt,
);
- const validationResult = this._validator.validate(order, orderSchema);
+ const validationResult = validator.validate(order, portalOrderSchema);
if (validationResult.errors.length > 0) {
globalErrMsg = 'Order signing failed. Please refresh and try again';
utils.consoleLog(`Unexpected error occured: Order validation failed:
@@ -367,7 +356,8 @@ export class GenerateOrderForm extends React.Component<GenerateOrderFormProps, G
}
private _updateOrderAddress(address?: string): void {
if (!_.isUndefined(address)) {
- this.props.dispatcher.updateOrderTakerAddress(address);
+ const normalizedAddress = _.isEmpty(address) ? ZeroEx.NULL_ADDRESS : address;
+ this.props.dispatcher.updateOrderTakerAddress(normalizedAddress);
}
}
}