Merge branch 'v2-prototype' into refactor/contracts/remove0xjsDep
* v2-prototype: Fix tslint issues Add `are` to boolean naming conventions Fix tslint Fix the tsutils version, fixing ts typings issue Rename some variables in multi_sig_with_time_lock.ts Remove extra awaitTransactionMinedAsync calls Update artifacts Update yarn.lock Fix warnings in Metacoin Upgrade UglifyJS to include ES6 support Add CancelOrder and MatchOrder types Add missing return types Ignore classnames linter rule Apply changes to test/exchange/match_orders.ts Fix some unhandled promise rejections Add awaitTransactionMinedAsync after every sent transaction Add missing blockchainLifecycle calls to contracts tests # Conflicts: # packages/contracts/src/utils/exchange_wrapper.ts # packages/contracts/test/asset_proxy/proxies.ts # packages/contracts/test/exchange/dispatcher.ts # packages/contracts/test/multi_sig_with_time_lock.ts
This commit is contained in:
@@ -20,6 +20,7 @@ export const constants = {
|
||||
INVALID_OPCODE: 'invalid opcode',
|
||||
REVERT: 'revert',
|
||||
TESTRPC_NETWORK_ID: 50,
|
||||
AWAIT_TRANSACTION_MINED_MS: 100,
|
||||
MAX_ETHERTOKEN_WITHDRAW_GAS: 43000,
|
||||
MAX_TOKEN_TRANSFERFROM_GAS: 80000,
|
||||
MAX_TOKEN_APPROVE_GAS: 60000,
|
||||
|
@@ -23,7 +23,7 @@ export class ERC20Wrapper {
|
||||
}
|
||||
public async deployDummyTokensAsync(): Promise<DummyERC20TokenContract[]> {
|
||||
this._dummyTokenContracts = await Promise.all(
|
||||
_.times(constants.NUM_DUMMY_ERC20_TO_DEPLOY, () =>
|
||||
_.times(constants.NUM_DUMMY_ERC20_TO_DEPLOY, async () =>
|
||||
DummyERC20TokenContract.deployFrom0xArtifactAsync(
|
||||
artifacts.DummyERC20Token,
|
||||
this._provider,
|
||||
@@ -45,7 +45,7 @@ export class ERC20Wrapper {
|
||||
);
|
||||
return this._proxyContract;
|
||||
}
|
||||
public async setBalancesAndAllowancesAsync() {
|
||||
public async setBalancesAndAllowancesAsync(): Promise<void> {
|
||||
this._validateDummyTokenContractsExistOrThrow();
|
||||
this._validateProxyContractExistsOrThrow();
|
||||
const setBalancePromises: Array<Promise<string>> = [];
|
||||
@@ -103,12 +103,12 @@ export class ERC20Wrapper {
|
||||
const tokenAddresses = _.map(this._dummyTokenContracts, dummyTokenContract => dummyTokenContract.address);
|
||||
return tokenAddresses;
|
||||
}
|
||||
private _validateDummyTokenContractsExistOrThrow() {
|
||||
private _validateDummyTokenContractsExistOrThrow(): void {
|
||||
if (_.isUndefined(this._dummyTokenContracts)) {
|
||||
throw new Error('Dummy ERC20 tokens not yet deployed, please call "deployDummyTokensAsync"');
|
||||
}
|
||||
}
|
||||
private _validateProxyContractExistsOrThrow() {
|
||||
private _validateProxyContractExistsOrThrow(): void {
|
||||
if (_.isUndefined(this._proxyContract)) {
|
||||
throw new Error('ERC20 proxy contract not yet deployed, please call "deployProxyAsync"');
|
||||
}
|
||||
|
@@ -25,7 +25,7 @@ export class ERC721Wrapper {
|
||||
}
|
||||
public async deployDummyTokensAsync(): Promise<DummyERC721TokenContract[]> {
|
||||
this._dummyTokenContracts = await Promise.all(
|
||||
_.times(constants.NUM_DUMMY_ERC721_TO_DEPLOY, () =>
|
||||
_.times(constants.NUM_DUMMY_ERC721_TO_DEPLOY, async () =>
|
||||
DummyERC721TokenContract.deployFrom0xArtifactAsync(
|
||||
artifacts.DummyERC721Token,
|
||||
this._provider,
|
||||
@@ -45,7 +45,7 @@ export class ERC721Wrapper {
|
||||
);
|
||||
return this._proxyContract;
|
||||
}
|
||||
public async setBalancesAndAllowancesAsync() {
|
||||
public async setBalancesAndAllowancesAsync(): Promise<void> {
|
||||
this._validateDummyTokenContractsExistOrThrow();
|
||||
this._validateProxyContractExistsOrThrow();
|
||||
const setBalancePromises: Array<Promise<string>> = [];
|
||||
@@ -125,17 +125,17 @@ export class ERC721Wrapper {
|
||||
const tokenAddresses = _.map(this._dummyTokenContracts, dummyTokenContract => dummyTokenContract.address);
|
||||
return tokenAddresses;
|
||||
}
|
||||
private _validateDummyTokenContractsExistOrThrow() {
|
||||
private _validateDummyTokenContractsExistOrThrow(): void {
|
||||
if (_.isUndefined(this._dummyTokenContracts)) {
|
||||
throw new Error('Dummy ERC721 tokens not yet deployed, please call "deployDummyTokensAsync"');
|
||||
}
|
||||
}
|
||||
private _validateProxyContractExistsOrThrow() {
|
||||
private _validateProxyContractExistsOrThrow(): void {
|
||||
if (_.isUndefined(this._proxyContract)) {
|
||||
throw new Error('ERC721 proxy contract not yet deployed, please call "deployProxyAsync"');
|
||||
}
|
||||
}
|
||||
private _validateBalancesAndAllowancesSetOrThrow() {
|
||||
private _validateBalancesAndAllowancesSetOrThrow(): void {
|
||||
if (_.keys(this._initialTokenIdsByOwner).length === 0) {
|
||||
throw new Error(
|
||||
'Dummy ERC721 balances and allowances not yet set, please call "setBalancesAndAllowancesAsync"',
|
||||
|
@@ -244,8 +244,8 @@ export class ExchangeWrapper {
|
||||
const tx = await this._getTxWithDecodedExchangeLogsAsync(txHash);
|
||||
return tx;
|
||||
}
|
||||
private async _getTxWithDecodedExchangeLogsAsync(txHash: string) {
|
||||
const tx = await Web3Wrapper.awaitTransactionMinedAsync(txHash);
|
||||
private async _getTxWithDecodedExchangeLogsAsync(txHash: string): Promise<TransactionReceiptWithDecodedLogs> {
|
||||
const tx = await Web3Wrapper.awaitTransactionMinedAsync(txHash, constants.AWAIT_TRANSACTION_MINED_MS);
|
||||
tx.logs = _.filter(tx.logs, log => log.address === this._exchange.address);
|
||||
tx.logs = _.map(tx.logs, log => this._logDecoder.decodeLogOrThrow(log));
|
||||
return tx;
|
||||
|
@@ -5,7 +5,7 @@ import { orderUtils } from './order_utils';
|
||||
import { BatchCancelOrders, BatchFillOrders, MarketBuyOrders, MarketSellOrders, SignedOrder } from './types';
|
||||
|
||||
export const formatters = {
|
||||
createBatchFill(signedOrders: SignedOrder[], takerAssetFillAmounts: BigNumber[] = []) {
|
||||
createBatchFill(signedOrders: SignedOrder[], takerAssetFillAmounts: BigNumber[] = []): BatchFillOrders {
|
||||
const batchFill: BatchFillOrders = {
|
||||
orders: [],
|
||||
signatures: [],
|
||||
@@ -21,7 +21,7 @@ export const formatters = {
|
||||
});
|
||||
return batchFill;
|
||||
},
|
||||
createMarketSellOrders(signedOrders: SignedOrder[], takerAssetFillAmount: BigNumber) {
|
||||
createMarketSellOrders(signedOrders: SignedOrder[], takerAssetFillAmount: BigNumber): MarketSellOrders {
|
||||
const marketSellOrders: MarketSellOrders = {
|
||||
orders: [],
|
||||
signatures: [],
|
||||
@@ -34,7 +34,7 @@ export const formatters = {
|
||||
});
|
||||
return marketSellOrders;
|
||||
},
|
||||
createMarketBuyOrders(signedOrders: SignedOrder[], makerAssetFillAmount: BigNumber) {
|
||||
createMarketBuyOrders(signedOrders: SignedOrder[], makerAssetFillAmount: BigNumber): MarketBuyOrders {
|
||||
const marketBuyOrders: MarketBuyOrders = {
|
||||
orders: [],
|
||||
signatures: [],
|
||||
@@ -47,7 +47,7 @@ export const formatters = {
|
||||
});
|
||||
return marketBuyOrders;
|
||||
},
|
||||
createBatchCancel(signedOrders: SignedOrder[]) {
|
||||
createBatchCancel(signedOrders: SignedOrder[]): BatchCancelOrders {
|
||||
const batchCancel: BatchCancelOrders = {
|
||||
orders: [],
|
||||
};
|
||||
|
@@ -4,7 +4,7 @@ import ethUtil = require('ethereumjs-util');
|
||||
import * as _ from 'lodash';
|
||||
|
||||
import { crypto } from './crypto';
|
||||
import { OrderStruct, SignatureType, SignedOrder, UnsignedOrder } from './types';
|
||||
import { CancelOrder, MatchOrder, OrderStruct, SignatureType, SignedOrder, UnsignedOrder } from './types';
|
||||
|
||||
export const orderUtils = {
|
||||
createFill: (signedOrder: SignedOrder, takerAssetFillAmount?: BigNumber) => {
|
||||
@@ -15,7 +15,7 @@ export const orderUtils = {
|
||||
};
|
||||
return fill;
|
||||
},
|
||||
createCancel(signedOrder: SignedOrder, takerAssetCancelAmount?: BigNumber) {
|
||||
createCancel(signedOrder: SignedOrder, takerAssetCancelAmount?: BigNumber): CancelOrder {
|
||||
const cancel = {
|
||||
order: orderUtils.getOrderStruct(signedOrder),
|
||||
takerAssetCancelAmount: takerAssetCancelAmount || signedOrder.takerAssetAmount,
|
||||
@@ -80,7 +80,7 @@ export const orderUtils = {
|
||||
const orderHashHex = `0x${orderHashBuff.toString('hex')}`;
|
||||
return orderHashHex;
|
||||
},
|
||||
createMatchOrders(signedOrderLeft: SignedOrder, signedOrderRight: SignedOrder) {
|
||||
createMatchOrders(signedOrderLeft: SignedOrder, signedOrderRight: SignedOrder): MatchOrder {
|
||||
const fill = {
|
||||
left: orderUtils.getOrderStruct(signedOrderLeft),
|
||||
right: orderUtils.getOrderStruct(signedOrderRight),
|
||||
|
@@ -197,3 +197,15 @@ export interface ProxyData {
|
||||
tokenAddress?: string;
|
||||
data?: any;
|
||||
}
|
||||
|
||||
export interface CancelOrder {
|
||||
order: OrderStruct;
|
||||
takerAssetCancelAmount: BigNumber;
|
||||
}
|
||||
|
||||
export interface MatchOrder {
|
||||
left: OrderStruct;
|
||||
right: OrderStruct;
|
||||
leftSignature: string;
|
||||
rightSignature: string;
|
||||
}
|
||||
|
Reference in New Issue
Block a user