Migrate migrations to v2
This commit is contained in:
parent
62431fee8e
commit
92b0efff5a
3
.gitignore
vendored
3
.gitignore
vendored
@ -86,7 +86,8 @@ packages/contract-wrappers/src/contract_wrappers/generated/
|
|||||||
packages/metacoin/src/contract_wrappers
|
packages/metacoin/src/contract_wrappers
|
||||||
packages/fill-scenarios/src/generated_contract_wrappers/
|
packages/fill-scenarios/src/generated_contract_wrappers/
|
||||||
packages/order-watcher/src/generated_contract_wrappers/
|
packages/order-watcher/src/generated_contract_wrappers/
|
||||||
packages/migrations/src/contract_wrappers
|
packages/migrations/src/v1/contract_wrappers
|
||||||
|
packages/migrations/src/v2/contract_wrappers
|
||||||
|
|
||||||
# solc-bin in sol-compiler
|
# solc-bin in sol-compiler
|
||||||
packages/sol-compiler/solc_bin/
|
packages/sol-compiler/solc_bin/
|
||||||
|
@ -104,7 +104,7 @@
|
|||||||
"@0xproject/order-utils": "^0.0.5",
|
"@0xproject/order-utils": "^0.0.5",
|
||||||
"@0xproject/order-watcher": "^0.0.2",
|
"@0xproject/order-watcher": "^0.0.2",
|
||||||
"@0xproject/sol-compiler": "^0.5.0",
|
"@0xproject/sol-compiler": "^0.5.0",
|
||||||
"@0xproject/types": "^0.7.0",
|
"@0xproject/types": "0.7.0",
|
||||||
"@0xproject/typescript-typings": "^0.3.2",
|
"@0xproject/typescript-typings": "^0.3.2",
|
||||||
"@0xproject/utils": "^0.6.2",
|
"@0xproject/utils": "^0.6.2",
|
||||||
"@0xproject/web3-wrapper": "^0.6.4",
|
"@0xproject/web3-wrapper": "^0.6.4",
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
import { devConstants } from '@0xproject/dev-utils';
|
import { devConstants } from '@0xproject/dev-utils';
|
||||||
import { runMigrationsAsync } from '@0xproject/migrations';
|
import { runV1MigrationsAsync } from '@0xproject/migrations';
|
||||||
import * as path from 'path';
|
import * as path from 'path';
|
||||||
|
|
||||||
import { constants } from './utils/constants';
|
import { constants } from './utils/constants';
|
||||||
@ -15,5 +15,5 @@ before('migrate contracts', async function(): Promise<void> {
|
|||||||
from: devConstants.TESTRPC_FIRST_ADDRESS,
|
from: devConstants.TESTRPC_FIRST_ADDRESS,
|
||||||
};
|
};
|
||||||
const artifactsDir = `../migrations/artifacts/1.0.0`;
|
const artifactsDir = `../migrations/artifacts/1.0.0`;
|
||||||
await runMigrationsAsync(provider, artifactsDir, txDefaults);
|
await runV1MigrationsAsync(provider, artifactsDir, txDefaults);
|
||||||
});
|
});
|
||||||
|
@ -52,7 +52,7 @@
|
|||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@0xproject/assert": "^0.2.10",
|
"@0xproject/assert": "^0.2.10",
|
||||||
"@0xproject/json-schemas": "0.7.22",
|
"@0xproject/json-schemas": "0.7.22",
|
||||||
"@0xproject/types": "^0.7.0",
|
"@0xproject/types": "0.7.0",
|
||||||
"@0xproject/typescript-typings": "^0.3.2",
|
"@0xproject/typescript-typings": "^0.3.2",
|
||||||
"@0xproject/utils": "^0.6.2",
|
"@0xproject/utils": "^0.6.2",
|
||||||
"isomorphic-fetch": "^2.2.1",
|
"isomorphic-fetch": "^2.2.1",
|
||||||
|
@ -81,7 +81,7 @@
|
|||||||
"@0xproject/fill-scenarios": "^0.0.2",
|
"@0xproject/fill-scenarios": "^0.0.2",
|
||||||
"@0xproject/json-schemas": "0.7.22",
|
"@0xproject/json-schemas": "0.7.22",
|
||||||
"@0xproject/order-utils": "^0.0.5",
|
"@0xproject/order-utils": "^0.0.5",
|
||||||
"@0xproject/types": "^0.7.0",
|
"@0xproject/types": "0.7.0",
|
||||||
"@0xproject/typescript-typings": "^0.3.2",
|
"@0xproject/typescript-typings": "^0.3.2",
|
||||||
"@0xproject/utils": "^0.6.2",
|
"@0xproject/utils": "^0.6.2",
|
||||||
"@0xproject/web3-wrapper": "^0.6.4",
|
"@0xproject/web3-wrapper": "^0.6.4",
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
import { devConstants } from '@0xproject/dev-utils';
|
import { devConstants } from '@0xproject/dev-utils';
|
||||||
import { runMigrationsAsync } from '@0xproject/migrations';
|
import { runV1MigrationsAsync } from '@0xproject/migrations';
|
||||||
import * as path from 'path';
|
import * as path from 'path';
|
||||||
|
|
||||||
import { constants } from './utils/constants';
|
import { constants } from './utils/constants';
|
||||||
@ -15,5 +15,5 @@ before('migrate contracts', async function(): Promise<void> {
|
|||||||
from: devConstants.TESTRPC_FIRST_ADDRESS,
|
from: devConstants.TESTRPC_FIRST_ADDRESS,
|
||||||
};
|
};
|
||||||
const artifactsDir = `../migrations/artifacts/1.0.0`;
|
const artifactsDir = `../migrations/artifacts/1.0.0`;
|
||||||
await runMigrationsAsync(provider, artifactsDir, txDefaults);
|
await runV1MigrationsAsync(provider, artifactsDir, txDefaults);
|
||||||
});
|
});
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
import { Provider, TransactionReceiptWithDecodedLogs } from '@0xproject/types';
|
import { Provider, SignedOrder, TransactionReceiptWithDecodedLogs } from '@0xproject/types';
|
||||||
import { BigNumber } from '@0xproject/utils';
|
import { BigNumber } from '@0xproject/utils';
|
||||||
import { Web3Wrapper } from '@0xproject/web3-wrapper';
|
import { Web3Wrapper } from '@0xproject/web3-wrapper';
|
||||||
import * as _ from 'lodash';
|
import * as _ from 'lodash';
|
||||||
@ -10,7 +10,7 @@ import { constants } from './constants';
|
|||||||
import { formatters } from './formatters';
|
import { formatters } from './formatters';
|
||||||
import { LogDecoder } from './log_decoder';
|
import { LogDecoder } from './log_decoder';
|
||||||
import { orderUtils } from './order_utils';
|
import { orderUtils } from './order_utils';
|
||||||
import { AssetProxyId, OrderInfo, SignedOrder, SignedTransaction } from './types';
|
import { AssetProxyId, OrderInfo, SignedTransaction } from './types';
|
||||||
|
|
||||||
export class ExchangeWrapper {
|
export class ExchangeWrapper {
|
||||||
private _exchange: ExchangeContract;
|
private _exchange: ExchangeContract;
|
||||||
|
@ -1,8 +1,9 @@
|
|||||||
import { BigNumber } from '@0xproject/utils';
|
import { BigNumber } from '@0xproject/utils';
|
||||||
|
import { SignedOrder } from '@0xproject/types';
|
||||||
import * as _ from 'lodash';
|
import * as _ from 'lodash';
|
||||||
|
|
||||||
import { orderUtils } from './order_utils';
|
import { orderUtils } from './order_utils';
|
||||||
import { BatchCancelOrders, BatchFillOrders, MarketBuyOrders, MarketSellOrders, SignedOrder } from './types';
|
import { BatchCancelOrders, BatchFillOrders, MarketBuyOrders, MarketSellOrders } from './types';
|
||||||
|
|
||||||
export const formatters = {
|
export const formatters = {
|
||||||
createBatchFill(signedOrders: SignedOrder[], takerAssetFillAmounts: BigNumber[] = []): BatchFillOrders {
|
createBatchFill(signedOrders: SignedOrder[], takerAssetFillAmounts: BigNumber[] = []): BatchFillOrders {
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
import { BlockchainLifecycle } from '@0xproject/dev-utils';
|
import { BlockchainLifecycle } from '@0xproject/dev-utils';
|
||||||
import { LogWithDecodedArgs } from '@0xproject/types';
|
import { LogWithDecodedArgs, SignedOrder } from '@0xproject/types';
|
||||||
import { BigNumber } from '@0xproject/utils';
|
import { BigNumber } from '@0xproject/utils';
|
||||||
import * as chai from 'chai';
|
import * as chai from 'chai';
|
||||||
import ethUtil = require('ethereumjs-util');
|
import ethUtil = require('ethereumjs-util');
|
||||||
@ -29,7 +29,6 @@ import {
|
|||||||
ERC20BalancesByOwner,
|
ERC20BalancesByOwner,
|
||||||
ERC721TokenIdsByOwner,
|
ERC721TokenIdsByOwner,
|
||||||
ExchangeStatus,
|
ExchangeStatus,
|
||||||
SignedOrder,
|
|
||||||
TransferAmountsByMatchOrders as TransferAmounts,
|
TransferAmountsByMatchOrders as TransferAmounts,
|
||||||
} from '../utils/types';
|
} from '../utils/types';
|
||||||
import { provider, web3Wrapper } from '../utils/web3_wrapper';
|
import { provider, web3Wrapper } from '../utils/web3_wrapper';
|
||||||
|
@ -1,11 +1,12 @@
|
|||||||
import { generatePseudoRandomSalt } from '@0xproject/order-utils';
|
import { generatePseudoRandomSalt } from '@0xproject/order-utils';
|
||||||
|
import { SignedOrder, UnsignedOrder } from '@0xproject/types';
|
||||||
import { BigNumber } from '@0xproject/utils';
|
import { BigNumber } from '@0xproject/utils';
|
||||||
import * as _ from 'lodash';
|
import * as _ from 'lodash';
|
||||||
|
|
||||||
import { constants } from './constants';
|
import { constants } from './constants';
|
||||||
import { orderUtils } from './order_utils';
|
import { orderUtils } from './order_utils';
|
||||||
import { signingUtils } from './signing_utils';
|
import { signingUtils } from './signing_utils';
|
||||||
import { SignatureType, SignedOrder, UnsignedOrder } from './types';
|
import { SignatureType } from './types';
|
||||||
|
|
||||||
export class OrderFactory {
|
export class OrderFactory {
|
||||||
private _defaultOrderParams: Partial<UnsignedOrder>;
|
private _defaultOrderParams: Partial<UnsignedOrder>;
|
||||||
|
@ -1,10 +1,11 @@
|
|||||||
|
import { Order, SignedOrder, UnsignedOrder } from '@0xproject/types';
|
||||||
import { BigNumber } from '@0xproject/utils';
|
import { BigNumber } from '@0xproject/utils';
|
||||||
import { Web3Wrapper } from '@0xproject/web3-wrapper';
|
import { Web3Wrapper } from '@0xproject/web3-wrapper';
|
||||||
import ethUtil = require('ethereumjs-util');
|
import ethUtil = require('ethereumjs-util');
|
||||||
import * as _ from 'lodash';
|
import * as _ from 'lodash';
|
||||||
|
|
||||||
import { crypto } from './crypto';
|
import { crypto } from './crypto';
|
||||||
import { CancelOrder, MatchOrder, OrderStruct, SignatureType, SignedOrder, UnsignedOrder } from './types';
|
import { CancelOrder, MatchOrder, SignatureType } from './types';
|
||||||
|
|
||||||
export const orderUtils = {
|
export const orderUtils = {
|
||||||
createFill: (signedOrder: SignedOrder, takerAssetFillAmount?: BigNumber) => {
|
createFill: (signedOrder: SignedOrder, takerAssetFillAmount?: BigNumber) => {
|
||||||
@ -22,7 +23,7 @@ export const orderUtils = {
|
|||||||
};
|
};
|
||||||
return cancel;
|
return cancel;
|
||||||
},
|
},
|
||||||
getOrderStruct(signedOrder: SignedOrder): OrderStruct {
|
getOrderStruct(signedOrder: SignedOrder): Order {
|
||||||
const orderStruct = {
|
const orderStruct = {
|
||||||
senderAddress: signedOrder.senderAddress,
|
senderAddress: signedOrder.senderAddress,
|
||||||
makerAddress: signedOrder.makerAddress,
|
makerAddress: signedOrder.makerAddress,
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
import { AbiDefinition, ContractAbi } from '@0xproject/types';
|
import { AbiDefinition, ContractAbi, Order } from '@0xproject/types';
|
||||||
import { BigNumber } from '@0xproject/utils';
|
import { BigNumber } from '@0xproject/utils';
|
||||||
|
|
||||||
export interface ERC20BalancesByOwner {
|
export interface ERC20BalancesByOwner {
|
||||||
@ -18,25 +18,25 @@ export interface SubmissionContractEventArgs {
|
|||||||
}
|
}
|
||||||
|
|
||||||
export interface BatchFillOrders {
|
export interface BatchFillOrders {
|
||||||
orders: OrderStruct[];
|
orders: Order[];
|
||||||
signatures: string[];
|
signatures: string[];
|
||||||
takerAssetFillAmounts: BigNumber[];
|
takerAssetFillAmounts: BigNumber[];
|
||||||
}
|
}
|
||||||
|
|
||||||
export interface MarketSellOrders {
|
export interface MarketSellOrders {
|
||||||
orders: OrderStruct[];
|
orders: Order[];
|
||||||
signatures: string[];
|
signatures: string[];
|
||||||
takerAssetFillAmount: BigNumber;
|
takerAssetFillAmount: BigNumber;
|
||||||
}
|
}
|
||||||
|
|
||||||
export interface MarketBuyOrders {
|
export interface MarketBuyOrders {
|
||||||
orders: OrderStruct[];
|
orders: Order[];
|
||||||
signatures: string[];
|
signatures: string[];
|
||||||
makerAssetFillAmount: BigNumber;
|
makerAssetFillAmount: BigNumber;
|
||||||
}
|
}
|
||||||
|
|
||||||
export interface BatchCancelOrders {
|
export interface BatchCancelOrders {
|
||||||
orders: OrderStruct[];
|
orders: Order[];
|
||||||
}
|
}
|
||||||
|
|
||||||
export interface CancelOrdersBefore {
|
export interface CancelOrdersBefore {
|
||||||
@ -113,29 +113,6 @@ export enum ContractName {
|
|||||||
Authorizable = 'Authorizable',
|
Authorizable = 'Authorizable',
|
||||||
}
|
}
|
||||||
|
|
||||||
export interface SignedOrder extends UnsignedOrder {
|
|
||||||
signature: string;
|
|
||||||
}
|
|
||||||
|
|
||||||
export interface OrderStruct {
|
|
||||||
senderAddress: string;
|
|
||||||
makerAddress: string;
|
|
||||||
takerAddress: string;
|
|
||||||
feeRecipientAddress: string;
|
|
||||||
makerAssetAmount: BigNumber;
|
|
||||||
takerAssetAmount: BigNumber;
|
|
||||||
makerFee: BigNumber;
|
|
||||||
takerFee: BigNumber;
|
|
||||||
expirationTimeSeconds: BigNumber;
|
|
||||||
salt: BigNumber;
|
|
||||||
makerAssetData: string;
|
|
||||||
takerAssetData: string;
|
|
||||||
}
|
|
||||||
|
|
||||||
export interface UnsignedOrder extends OrderStruct {
|
|
||||||
exchangeAddress: string;
|
|
||||||
}
|
|
||||||
|
|
||||||
export enum SignatureType {
|
export enum SignatureType {
|
||||||
Illegal,
|
Illegal,
|
||||||
Invalid,
|
Invalid,
|
||||||
@ -199,13 +176,13 @@ export interface ProxyData {
|
|||||||
}
|
}
|
||||||
|
|
||||||
export interface CancelOrder {
|
export interface CancelOrder {
|
||||||
order: OrderStruct;
|
order: Order;
|
||||||
takerAssetCancelAmount: BigNumber;
|
takerAssetCancelAmount: BigNumber;
|
||||||
}
|
}
|
||||||
|
|
||||||
export interface MatchOrder {
|
export interface MatchOrder {
|
||||||
left: OrderStruct;
|
left: Order;
|
||||||
right: OrderStruct;
|
right: Order;
|
||||||
leftSignature: string;
|
leftSignature: string;
|
||||||
rightSignature: string;
|
rightSignature: string;
|
||||||
}
|
}
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
import { BlockchainLifecycle } from '@0xproject/dev-utils';
|
import { BlockchainLifecycle } from '@0xproject/dev-utils';
|
||||||
import { LogWithDecodedArgs } from '@0xproject/types';
|
import { LogWithDecodedArgs, SignedOrder } from '@0xproject/types';
|
||||||
import { BigNumber } from '@0xproject/utils';
|
import { BigNumber } from '@0xproject/utils';
|
||||||
import { Web3Wrapper } from '@0xproject/web3-wrapper';
|
import { Web3Wrapper } from '@0xproject/web3-wrapper';
|
||||||
import * as chai from 'chai';
|
import * as chai from 'chai';
|
||||||
@ -26,7 +26,7 @@ import { ERC721Wrapper } from '../../src/utils/erc721_wrapper';
|
|||||||
import { ExchangeWrapper } from '../../src/utils/exchange_wrapper';
|
import { ExchangeWrapper } from '../../src/utils/exchange_wrapper';
|
||||||
import { OrderFactory } from '../../src/utils/order_factory';
|
import { OrderFactory } from '../../src/utils/order_factory';
|
||||||
import { orderUtils } from '../../src/utils/order_utils';
|
import { orderUtils } from '../../src/utils/order_utils';
|
||||||
import { AssetProxyId, ContractName, ERC20BalancesByOwner, ExchangeStatus, SignedOrder } from '../../src/utils/types';
|
import { AssetProxyId, ContractName, ERC20BalancesByOwner, ExchangeStatus } from '../../src/utils/types';
|
||||||
import { provider, txDefaults, web3Wrapper } from '../../src/utils/web3_wrapper';
|
import { provider, txDefaults, web3Wrapper } from '../../src/utils/web3_wrapper';
|
||||||
|
|
||||||
chaiSetup.configure();
|
chaiSetup.configure();
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
import { BlockchainLifecycle } from '@0xproject/dev-utils';
|
import { BlockchainLifecycle } from '@0xproject/dev-utils';
|
||||||
import { BigNumber } from '@0xproject/utils';
|
import { BigNumber } from '@0xproject/utils';
|
||||||
|
import { SignedOrder } from '@0xproject/types';
|
||||||
import * as chai from 'chai';
|
import * as chai from 'chai';
|
||||||
import ethUtil = require('ethereumjs-util');
|
import ethUtil = require('ethereumjs-util');
|
||||||
|
|
||||||
@ -11,7 +12,6 @@ import { chaiSetup } from '../../src/utils/chai_setup';
|
|||||||
import { constants } from '../../src/utils/constants';
|
import { constants } from '../../src/utils/constants';
|
||||||
import { OrderFactory } from '../../src/utils/order_factory';
|
import { OrderFactory } from '../../src/utils/order_factory';
|
||||||
import { orderUtils } from '../../src/utils/order_utils';
|
import { orderUtils } from '../../src/utils/order_utils';
|
||||||
import { SignedOrder } from '../../src/utils/types';
|
|
||||||
import { provider, txDefaults, web3Wrapper } from '../../src/utils/web3_wrapper';
|
import { provider, txDefaults, web3Wrapper } from '../../src/utils/web3_wrapper';
|
||||||
|
|
||||||
chaiSetup.configure();
|
chaiSetup.configure();
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
import { BlockchainLifecycle } from '@0xproject/dev-utils';
|
import { BlockchainLifecycle } from '@0xproject/dev-utils';
|
||||||
import { LogWithDecodedArgs } from '@0xproject/types';
|
import { LogWithDecodedArgs, SignedOrder } from '@0xproject/types';
|
||||||
import { BigNumber } from '@0xproject/utils';
|
import { BigNumber } from '@0xproject/utils';
|
||||||
import { Web3Wrapper } from '@0xproject/web3-wrapper';
|
import { Web3Wrapper } from '@0xproject/web3-wrapper';
|
||||||
import * as chai from 'chai';
|
import * as chai from 'chai';
|
||||||
@ -33,7 +33,6 @@ import {
|
|||||||
ERC721TokenIdsByOwner,
|
ERC721TokenIdsByOwner,
|
||||||
ExchangeStatus,
|
ExchangeStatus,
|
||||||
OrderInfo,
|
OrderInfo,
|
||||||
SignedOrder,
|
|
||||||
} from '../../src/utils/types';
|
} from '../../src/utils/types';
|
||||||
import { provider, txDefaults, web3Wrapper } from '../../src/utils/web3_wrapper';
|
import { provider, txDefaults, web3Wrapper } from '../../src/utils/web3_wrapper';
|
||||||
|
|
||||||
|
@ -1,4 +1,5 @@
|
|||||||
import { BlockchainLifecycle } from '@0xproject/dev-utils';
|
import { BlockchainLifecycle } from '@0xproject/dev-utils';
|
||||||
|
import { SignedOrder } from '@0xproject/types';
|
||||||
import { BigNumber } from '@0xproject/utils';
|
import { BigNumber } from '@0xproject/utils';
|
||||||
import * as chai from 'chai';
|
import * as chai from 'chai';
|
||||||
import ethUtil = require('ethereumjs-util');
|
import ethUtil = require('ethereumjs-util');
|
||||||
@ -11,7 +12,6 @@ import { chaiSetup } from '../../src/utils/chai_setup';
|
|||||||
import { constants } from '../../src/utils/constants';
|
import { constants } from '../../src/utils/constants';
|
||||||
import { OrderFactory } from '../../src/utils/order_factory';
|
import { OrderFactory } from '../../src/utils/order_factory';
|
||||||
import { orderUtils } from '../../src/utils/order_utils';
|
import { orderUtils } from '../../src/utils/order_utils';
|
||||||
import { SignedOrder } from '../../src/utils/types';
|
|
||||||
import { provider, txDefaults, web3Wrapper } from '../../src/utils/web3_wrapper';
|
import { provider, txDefaults, web3Wrapper } from '../../src/utils/web3_wrapper';
|
||||||
|
|
||||||
chaiSetup.configure();
|
chaiSetup.configure();
|
||||||
|
@ -1,4 +1,5 @@
|
|||||||
import { BlockchainLifecycle } from '@0xproject/dev-utils';
|
import { BlockchainLifecycle } from '@0xproject/dev-utils';
|
||||||
|
import { SignedOrder, Order } from '@0xproject/types';
|
||||||
import { BigNumber } from '@0xproject/utils';
|
import { BigNumber } from '@0xproject/utils';
|
||||||
import * as chai from 'chai';
|
import * as chai from 'chai';
|
||||||
import * as ethUtil from 'ethereumjs-util';
|
import * as ethUtil from 'ethereumjs-util';
|
||||||
@ -20,9 +21,7 @@ import {
|
|||||||
AssetProxyId,
|
AssetProxyId,
|
||||||
ERC20BalancesByOwner,
|
ERC20BalancesByOwner,
|
||||||
ExchangeStatus,
|
ExchangeStatus,
|
||||||
OrderStruct,
|
|
||||||
SignatureType,
|
SignatureType,
|
||||||
SignedOrder,
|
|
||||||
SignedTransaction,
|
SignedTransaction,
|
||||||
} from '../../src/utils/types';
|
} from '../../src/utils/types';
|
||||||
import { provider, txDefaults, web3Wrapper } from '../../src/utils/web3_wrapper';
|
import { provider, txDefaults, web3Wrapper } from '../../src/utils/web3_wrapper';
|
||||||
@ -47,7 +46,7 @@ describe('Exchange transactions', () => {
|
|||||||
let erc20Balances: ERC20BalancesByOwner;
|
let erc20Balances: ERC20BalancesByOwner;
|
||||||
let signedOrder: SignedOrder;
|
let signedOrder: SignedOrder;
|
||||||
let signedTx: SignedTransaction;
|
let signedTx: SignedTransaction;
|
||||||
let order: OrderStruct;
|
let order: Order;
|
||||||
let orderFactory: OrderFactory;
|
let orderFactory: OrderFactory;
|
||||||
let makerTransactionFactory: TransactionFactory;
|
let makerTransactionFactory: TransactionFactory;
|
||||||
let takerTransactionFactory: TransactionFactory;
|
let takerTransactionFactory: TransactionFactory;
|
||||||
|
@ -1,4 +1,5 @@
|
|||||||
import { BlockchainLifecycle, devConstants, web3Factory } from '@0xproject/dev-utils';
|
import { BlockchainLifecycle, devConstants, web3Factory } from '@0xproject/dev-utils';
|
||||||
|
import { SignedOrder } from '@0xproject/types';
|
||||||
import { BigNumber } from '@0xproject/utils';
|
import { BigNumber } from '@0xproject/utils';
|
||||||
import { Web3Wrapper } from '@0xproject/web3-wrapper';
|
import { Web3Wrapper } from '@0xproject/web3-wrapper';
|
||||||
import * as chai from 'chai';
|
import * as chai from 'chai';
|
||||||
@ -20,7 +21,7 @@ import { ERC20Wrapper } from '../../src/utils/erc20_wrapper';
|
|||||||
import { ERC721Wrapper } from '../../src/utils/erc721_wrapper';
|
import { ERC721Wrapper } from '../../src/utils/erc721_wrapper';
|
||||||
import { ExchangeWrapper } from '../../src/utils/exchange_wrapper';
|
import { ExchangeWrapper } from '../../src/utils/exchange_wrapper';
|
||||||
import { OrderFactory } from '../../src/utils/order_factory';
|
import { OrderFactory } from '../../src/utils/order_factory';
|
||||||
import { AssetProxyId, ERC20BalancesByOwner, SignedOrder } from '../../src/utils/types';
|
import { AssetProxyId, ERC20BalancesByOwner } from '../../src/utils/types';
|
||||||
import { provider, txDefaults, web3Wrapper } from '../../src/utils/web3_wrapper';
|
import { provider, txDefaults, web3Wrapper } from '../../src/utils/web3_wrapper';
|
||||||
|
|
||||||
chaiSetup.configure();
|
chaiSetup.configure();
|
||||||
|
@ -38,7 +38,7 @@
|
|||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@0xproject/base-contract": "^0.3.2",
|
"@0xproject/base-contract": "^0.3.2",
|
||||||
"@0xproject/order-utils": "^0.0.5",
|
"@0xproject/order-utils": "^0.0.5",
|
||||||
"@0xproject/types": "^0.7.0",
|
"@0xproject/types": "0.7.0",
|
||||||
"@0xproject/typescript-typings": "^0.3.2",
|
"@0xproject/typescript-typings": "^0.3.2",
|
||||||
"@0xproject/utils": "^0.6.2",
|
"@0xproject/utils": "^0.6.2",
|
||||||
"@0xproject/web3-wrapper": "^0.6.4",
|
"@0xproject/web3-wrapper": "^0.6.4",
|
||||||
|
@ -10,18 +10,28 @@
|
|||||||
"scripts": {
|
"scripts": {
|
||||||
"watch": "tsc -w",
|
"watch": "tsc -w",
|
||||||
"prebuild": "run-s clean copy_artifacts generate_contract_wrappers",
|
"prebuild": "run-s clean copy_artifacts generate_contract_wrappers",
|
||||||
"copy_artifacts": "copyfiles 'artifacts/1.0.0/**/*' ./lib",
|
"copy_artifacts": "copyfiles 'artifacts/**/*' ./lib",
|
||||||
"build": "tsc",
|
"build": "tsc",
|
||||||
"clean": "shx rm -rf lib src/contract_wrappers",
|
"clean": "shx rm -rf lib src/contract_wrappers",
|
||||||
"lint": "tslint --project .",
|
"lint": "tslint --project .",
|
||||||
"migrate": "run-s build compile script:migrate",
|
"migrate:v1": "run-s build compile script:migrate:v1",
|
||||||
"script:migrate": "node ./lib/migrate.js",
|
"migrate:v2": "run-s build compile script:migrate:v2",
|
||||||
"generate_contract_wrappers": "abi-gen --abis ${npm_package_config_abis} --template ../contract_templates/contract.handlebars --partials '../contract_templates/partials/**/*.handlebars' --output src/contract_wrappers --backend ethers && prettier --write 'src/contract_wrappers/**.ts'",
|
"script:migrate:v1": "node ./lib/migrate.js --contracts-version 1.0.0",
|
||||||
|
"script:migrate:v2": "node ./lib/migrate.js --contracts-version 2.0.0",
|
||||||
|
"generate_contract_wrappers": "run-p generate_contract_wrappers:*",
|
||||||
|
"generate_contract_wrappers:v1":
|
||||||
|
"abi-gen --abis ${npm_package_config_abis_v1} --template ../contract_templates/contract.handlebars --partials '../contract_templates/partials/**/*.handlebars' --output src/v1/contract_wrappers --backend ethers && prettier --write 'src/v1/contract_wrappers/**.ts'",
|
||||||
|
"generate_contract_wrappers:v2":
|
||||||
|
"abi-gen --abis ${npm_package_config_abis_v2} --template ../contract_templates/contract.handlebars --partials '../contract_templates/partials/**/*.handlebars' --output src/v2/contract_wrappers --backend ethers && prettier --write 'src/v2/contract_wrappers/**.ts'",
|
||||||
"compile": "sol-compiler"
|
"compile": "sol-compiler"
|
||||||
},
|
},
|
||||||
"config": {
|
"config": {
|
||||||
"abis":
|
"abis": {
|
||||||
"artifacts/1.0.0/@(DummyERC20Token|TokenTransferProxy_v1|Exchange_v1|TokenRegistry|MultiSigWallet|MultiSigWalletWithTimeLock|MultiSigWalletWithTimeLockExceptRemoveAuthorizedAddress|TokenRegistry|ZRXToken|WETH9).json"
|
"v1":
|
||||||
|
"artifacts/1.0.0/@(DummyERC20Token|TokenTransferProxy_v1|Exchange_v1|TokenRegistry|MultiSigWallet|MultiSigWalletWithTimeLock|MultiSigWalletWithTimeLockExceptRemoveAuthorizedAddress|TokenRegistry|ZRXToken|WETH9).json",
|
||||||
|
"v2":
|
||||||
|
"artifacts/2.0.0/@(DummyERC20Token|DummyERC721Token|ERC20Proxy|ERC721Proxy|Exchange|MultiSigWalletWithTimeLockExceptRemoveAuthorizedAddress|ZRXToken|WETH9).json"
|
||||||
|
}
|
||||||
},
|
},
|
||||||
"license": "Apache-2.0",
|
"license": "Apache-2.0",
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
@ -29,6 +39,8 @@
|
|||||||
"@0xproject/dev-utils": "^0.4.2",
|
"@0xproject/dev-utils": "^0.4.2",
|
||||||
"@0xproject/tslint-config": "^0.4.18",
|
"@0xproject/tslint-config": "^0.4.18",
|
||||||
"@0xproject/types": "^0.7.0",
|
"@0xproject/types": "^0.7.0",
|
||||||
|
"@types/yargs": "^10.0.0",
|
||||||
|
"yargs": "^10.0.3",
|
||||||
"make-promises-safe": "^1.1.0",
|
"make-promises-safe": "^1.1.0",
|
||||||
"npm-run-all": "^4.1.2",
|
"npm-run-all": "^4.1.2",
|
||||||
"shx": "^0.2.2",
|
"shx": "^0.2.2",
|
||||||
|
@ -1 +1,2 @@
|
|||||||
export { runMigrationsAsync } from './migration';
|
export { runV1MigrationsAsync } from './v1/migration';
|
||||||
|
export { runV2MigrationsAsync } from './v2/migration';
|
||||||
|
@ -3,8 +3,16 @@ import { devConstants, web3Factory } from '@0xproject/dev-utils';
|
|||||||
import { Provider } from '@0xproject/types';
|
import { Provider } from '@0xproject/types';
|
||||||
import { logUtils } from '@0xproject/utils';
|
import { logUtils } from '@0xproject/utils';
|
||||||
import * as path from 'path';
|
import * as path from 'path';
|
||||||
|
import * as yargs from 'yargs';
|
||||||
|
|
||||||
import { runMigrationsAsync } from './migration';
|
import { runV1MigrationsAsync } from './v1/migration';
|
||||||
|
import { runV2MigrationsAsync } from './v2/migration';
|
||||||
|
|
||||||
|
enum ContractVersions {
|
||||||
|
V1 = '1.0.0',
|
||||||
|
V2 = '2.0.0',
|
||||||
|
}
|
||||||
|
const args = yargs.argv;
|
||||||
|
|
||||||
(async () => {
|
(async () => {
|
||||||
const txDefaults = {
|
const txDefaults = {
|
||||||
@ -12,8 +20,13 @@ import { runMigrationsAsync } from './migration';
|
|||||||
};
|
};
|
||||||
const providerConfigs = { shouldUseInProcessGanache: false };
|
const providerConfigs = { shouldUseInProcessGanache: false };
|
||||||
const provider: Provider = web3Factory.getRpcProvider(providerConfigs);
|
const provider: Provider = web3Factory.getRpcProvider(providerConfigs);
|
||||||
const artifactsDir = 'artifacts/1.0.0';
|
const contractsVersion = args.contractsVersion;
|
||||||
await runMigrationsAsync(provider, artifactsDir, txDefaults);
|
const artifactsDir = `artifacts/${contractsVersion}`;
|
||||||
|
if (contractsVersion === ContractVersions.V1) {
|
||||||
|
await runV1MigrationsAsync(provider, artifactsDir, txDefaults);
|
||||||
|
} else {
|
||||||
|
await runV2MigrationsAsync(provider, artifactsDir, txDefaults);
|
||||||
|
}
|
||||||
process.exit(0);
|
process.exit(0);
|
||||||
})().catch(err => {
|
})().catch(err => {
|
||||||
logUtils.log(err);
|
logUtils.log(err);
|
||||||
|
@ -1,16 +1,6 @@
|
|||||||
import { BigNumber } from '@0xproject/utils';
|
import { BigNumber } from '@0xproject/utils';
|
||||||
|
|
||||||
export interface MultiSigConfig {
|
export interface ERC20Token {
|
||||||
owners: string[];
|
|
||||||
confirmationsRequired: number;
|
|
||||||
secondsRequired: number;
|
|
||||||
}
|
|
||||||
|
|
||||||
export interface MultiSigConfigByNetwork {
|
|
||||||
[networkName: string]: MultiSigConfig;
|
|
||||||
}
|
|
||||||
|
|
||||||
export interface Token {
|
|
||||||
address?: string;
|
address?: string;
|
||||||
name: string;
|
name: string;
|
||||||
symbol: string;
|
symbol: string;
|
||||||
@ -19,9 +9,9 @@ export interface Token {
|
|||||||
swarmHash: string;
|
swarmHash: string;
|
||||||
}
|
}
|
||||||
|
|
||||||
export interface TokenInfoByNetwork {
|
export interface ERC721Token {
|
||||||
development: Token[];
|
name: string;
|
||||||
live: Token[];
|
symbol: string;
|
||||||
}
|
}
|
||||||
|
|
||||||
export enum ContractName {
|
export enum ContractName {
|
||||||
|
@ -1,8 +1,8 @@
|
|||||||
import { BigNumber, NULL_BYTES } from '@0xproject/utils';
|
import { BigNumber, NULL_BYTES } from '@0xproject/utils';
|
||||||
|
|
||||||
import { Token } from '../types';
|
import { ERC20Token, ERC721Token } from '../types';
|
||||||
|
|
||||||
export const tokenInfo: Token[] = [
|
export const erc20TokenInfo: ERC20Token[] = [
|
||||||
{
|
{
|
||||||
name: 'Augur Reputation Token',
|
name: 'Augur Reputation Token',
|
||||||
symbol: 'REP',
|
symbol: 'REP',
|
||||||
@ -39,3 +39,10 @@ export const tokenInfo: Token[] = [
|
|||||||
swarmHash: NULL_BYTES,
|
swarmHash: NULL_BYTES,
|
||||||
},
|
},
|
||||||
];
|
];
|
||||||
|
|
||||||
|
export const erc721TokenInfo: ERC721Token[] = [
|
||||||
|
{
|
||||||
|
name: 'CryptoKitties',
|
||||||
|
symbol: 'CK',
|
||||||
|
},
|
||||||
|
];
|
||||||
|
@ -1,13 +1,13 @@
|
|||||||
import { ContractArtifact } from '@0xproject/sol-compiler';
|
import { ContractArtifact } from '@0xproject/sol-compiler';
|
||||||
|
|
||||||
import * as DummyERC20Token from '../artifacts/1.0.0/DummyERC20Token.json';
|
import * as DummyERC20Token from '../../artifacts/1.0.0/DummyERC20Token.json';
|
||||||
import * as Exchange from '../artifacts/1.0.0/Exchange_v1.json';
|
import * as Exchange from '../../artifacts/1.0.0/Exchange_v1.json';
|
||||||
import * as MultiSigWalletWithTimeLock from '../artifacts/1.0.0/MultiSigWalletWithTimeLock.json';
|
import * as MultiSigWalletWithTimeLock from '../../artifacts/1.0.0/MultiSigWalletWithTimeLock.json';
|
||||||
import * as MultiSigWalletWithTimeLockExceptRemoveAuthorizedAddress from '../artifacts/1.0.0/MultiSigWalletWithTimeLockExceptRemoveAuthorizedAddress.json';
|
import * as MultiSigWalletWithTimeLockExceptRemoveAuthorizedAddress from '../../artifacts/1.0.0/MultiSigWalletWithTimeLockExceptRemoveAuthorizedAddress.json';
|
||||||
import * as TokenRegistry from '../artifacts/1.0.0/TokenRegistry.json';
|
import * as TokenRegistry from '../../artifacts/1.0.0/TokenRegistry.json';
|
||||||
import * as TokenTransferProxy from '../artifacts/1.0.0/TokenTransferProxy_v1.json';
|
import * as TokenTransferProxy from '../../artifacts/1.0.0/TokenTransferProxy_v1.json';
|
||||||
import * as EtherToken from '../artifacts/1.0.0/WETH9.json';
|
import * as EtherToken from '../../artifacts/1.0.0/WETH9.json';
|
||||||
import * as ZRX from '../artifacts/1.0.0/ZRXToken.json';
|
import * as ZRX from '../../artifacts/1.0.0/ZRXToken.json';
|
||||||
|
|
||||||
export const artifacts = {
|
export const artifacts = {
|
||||||
ZRX: (ZRX as any) as ContractArtifact,
|
ZRX: (ZRX as any) as ContractArtifact,
|
@ -3,7 +3,10 @@ import { BigNumber, NULL_BYTES } from '@0xproject/utils';
|
|||||||
import { Web3Wrapper } from '@0xproject/web3-wrapper';
|
import { Web3Wrapper } from '@0xproject/web3-wrapper';
|
||||||
import * as _ from 'lodash';
|
import * as _ from 'lodash';
|
||||||
|
|
||||||
import { ArtifactWriter } from './artifact_writer';
|
import { ArtifactWriter } from '../artifact_writer';
|
||||||
|
import { ContractName } from '../types';
|
||||||
|
import { erc20TokenInfo } from '../utils/token_info';
|
||||||
|
|
||||||
import { artifacts } from './artifacts';
|
import { artifacts } from './artifacts';
|
||||||
import { DummyERC20TokenContract } from './contract_wrappers/dummy_e_r_c20_token';
|
import { DummyERC20TokenContract } from './contract_wrappers/dummy_e_r_c20_token';
|
||||||
import { Exchange_v1Contract } from './contract_wrappers/exchange_v1';
|
import { Exchange_v1Contract } from './contract_wrappers/exchange_v1';
|
||||||
@ -12,18 +15,16 @@ import { TokenRegistryContract } from './contract_wrappers/token_registry';
|
|||||||
import { TokenTransferProxy_v1Contract } from './contract_wrappers/tokentransferproxy_v1';
|
import { TokenTransferProxy_v1Contract } from './contract_wrappers/tokentransferproxy_v1';
|
||||||
import { WETH9Contract } from './contract_wrappers/weth9';
|
import { WETH9Contract } from './contract_wrappers/weth9';
|
||||||
import { ZRXTokenContract } from './contract_wrappers/zrx_token';
|
import { ZRXTokenContract } from './contract_wrappers/zrx_token';
|
||||||
import { ContractName } from './types';
|
|
||||||
import { tokenInfo } from './utils/token_info';
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Custom migrations should be defined in this function. This will be called with the CLI 'migrate' command.
|
* Custom migrations should be defined in this function. This will be called with the CLI 'migrate:v1' command.
|
||||||
* Migrations could be written to run in parallel, but if you want contract addresses to be created deterministically,
|
* Migrations could be written to run in parallel, but if you want contract addresses to be created deterministically,
|
||||||
* the migration should be written to run synchronously.
|
* the migration should be written to run synchronously.
|
||||||
* @param provider Web3 provider instance.
|
* @param provider Web3 provider instance.
|
||||||
* @param artifactsDir The directory with compiler artifact files.
|
* @param artifactsDir The directory with compiler artifact files.
|
||||||
* @param txDefaults Default transaction values to use when deploying contracts.
|
* @param txDefaults Default transaction values to use when deploying contracts.
|
||||||
*/
|
*/
|
||||||
export const runMigrationsAsync = async (provider: Provider, artifactsDir: string, txDefaults: Partial<TxData>) => {
|
export const runV1MigrationsAsync = async (provider: Provider, artifactsDir: string, txDefaults: Partial<TxData>) => {
|
||||||
const web3Wrapper = new Web3Wrapper(provider);
|
const web3Wrapper = new Web3Wrapper(provider);
|
||||||
const networkId = await web3Wrapper.getNetworkIdAsync();
|
const networkId = await web3Wrapper.getNetworkIdAsync();
|
||||||
const artifactsWriter = new ArtifactWriter(artifactsDir, networkId);
|
const artifactsWriter = new ArtifactWriter(artifactsDir, networkId);
|
||||||
@ -73,11 +74,11 @@ export const runMigrationsAsync = async (provider: Provider, artifactsDir: strin
|
|||||||
await tokenTransferProxy.transferOwnership.sendTransactionAsync(multiSig.address, { from: owner });
|
await tokenTransferProxy.transferOwnership.sendTransactionAsync(multiSig.address, { from: owner });
|
||||||
const addTokenGasEstimate = await tokenReg.addToken.estimateGasAsync(
|
const addTokenGasEstimate = await tokenReg.addToken.estimateGasAsync(
|
||||||
zrxToken.address,
|
zrxToken.address,
|
||||||
tokenInfo[0].name,
|
erc20TokenInfo[0].name,
|
||||||
tokenInfo[0].symbol,
|
erc20TokenInfo[0].symbol,
|
||||||
tokenInfo[0].decimals,
|
erc20TokenInfo[0].decimals,
|
||||||
tokenInfo[0].ipfsHash,
|
erc20TokenInfo[0].ipfsHash,
|
||||||
tokenInfo[0].swarmHash,
|
erc20TokenInfo[0].swarmHash,
|
||||||
{ from: owner },
|
{ from: owner },
|
||||||
);
|
);
|
||||||
const decimals = 18;
|
const decimals = 18;
|
||||||
@ -105,7 +106,7 @@ export const runMigrationsAsync = async (provider: Provider, artifactsDir: strin
|
|||||||
gas: addTokenGasEstimate,
|
gas: addTokenGasEstimate,
|
||||||
},
|
},
|
||||||
);
|
);
|
||||||
for (const token of tokenInfo) {
|
for (const token of erc20TokenInfo) {
|
||||||
const totalSupply = new BigNumber(100000000000000000000);
|
const totalSupply = new BigNumber(100000000000000000000);
|
||||||
const dummyToken = await DummyERC20TokenContract.deployFrom0xArtifactAsync(
|
const dummyToken = await DummyERC20TokenContract.deployFrom0xArtifactAsync(
|
||||||
artifacts.DummyERC20Token,
|
artifacts.DummyERC20Token,
|
21
packages/migrations/src/v2/artifacts.ts
Normal file
21
packages/migrations/src/v2/artifacts.ts
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
import { ContractArtifact } from '@0xproject/sol-compiler';
|
||||||
|
|
||||||
|
import * as DummyERC20Token from '../../artifacts/2.0.0/DummyERC20Token.json';
|
||||||
|
import * as DummyERC721Token from '../../artifacts/2.0.0/DummyERC721Token.json';
|
||||||
|
import * as ERC20Proxy from '../../artifacts/2.0.0/ERC20Proxy.json';
|
||||||
|
import * as ERC721Proxy from '../../artifacts/2.0.0/ERC721Proxy.json';
|
||||||
|
import * as Exchange from '../../artifacts/2.0.0/Exchange.json';
|
||||||
|
import * as MultiSigWalletWithTimeLockExceptRemoveAuthorizedAddress from '../../artifacts/2.0.0/MultiSigWalletWithTimeLockExceptRemoveAuthorizedAddress.json';
|
||||||
|
import * as WETH9 from '../../artifacts/2.0.0/WETH9.json';
|
||||||
|
import * as ZRX from '../../artifacts/2.0.0/ZRXToken.json';
|
||||||
|
|
||||||
|
export const artifacts = {
|
||||||
|
ZRX: (ZRX as any) as ContractArtifact,
|
||||||
|
DummyERC20Token: (DummyERC20Token as any) as ContractArtifact,
|
||||||
|
DummyERC721Token: (DummyERC721Token as any) as ContractArtifact,
|
||||||
|
MultiSigWalletWithTimeLockExceptRemoveAuthorizedAddress: (MultiSigWalletWithTimeLockExceptRemoveAuthorizedAddress as any) as ContractArtifact,
|
||||||
|
Exchange: (Exchange as any) as ContractArtifact,
|
||||||
|
WETH9: (WETH9 as any) as ContractArtifact,
|
||||||
|
ERC20Proxy: (ERC20Proxy as any) as ContractArtifact,
|
||||||
|
ERC721Proxy: (ERC721Proxy as any) as ContractArtifact,
|
||||||
|
};
|
118
packages/migrations/src/v2/migration.ts
Normal file
118
packages/migrations/src/v2/migration.ts
Normal file
@ -0,0 +1,118 @@
|
|||||||
|
import { Provider, TxData } from '@0xproject/types';
|
||||||
|
import { BigNumber, NULL_BYTES } from '@0xproject/utils';
|
||||||
|
import { Web3Wrapper } from '@0xproject/web3-wrapper';
|
||||||
|
import * as _ from 'lodash';
|
||||||
|
|
||||||
|
import { ArtifactWriter } from '../artifact_writer';
|
||||||
|
import { ContractName } from '../types';
|
||||||
|
import { erc20TokenInfo, erc721TokenInfo } from '../utils/token_info';
|
||||||
|
|
||||||
|
import { artifacts } from './artifacts';
|
||||||
|
import { DummyERC20TokenContract } from './contract_wrappers/dummy_e_r_c20_token';
|
||||||
|
import { DummyERC721TokenContract } from './contract_wrappers/dummy_e_r_c721_token';
|
||||||
|
import { ERC20ProxyContract } from './contract_wrappers/e_r_c20_proxy';
|
||||||
|
import { ERC721ProxyContract } from './contract_wrappers/e_r_c721_proxy';
|
||||||
|
import { ExchangeContract } from './contract_wrappers/exchange';
|
||||||
|
import { MultiSigWalletWithTimeLockExceptRemoveAuthorizedAddressContract } from './contract_wrappers/multi_sig_wallet_with_time_lock_except_remove_authorized_address';
|
||||||
|
import { WETH9Contract } from './contract_wrappers/weth9';
|
||||||
|
import { ZRXTokenContract } from './contract_wrappers/zrx_token';
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Custom migrations should be defined in this function. This will be called with the CLI 'migrate:v2' command.
|
||||||
|
* Migrations could be written to run in parallel, but if you want contract addresses to be created deterministically,
|
||||||
|
* the migration should be written to run synchronously.
|
||||||
|
* @param provider Web3 provider instance.
|
||||||
|
* @param artifactsDir The directory with compiler artifact files.
|
||||||
|
* @param txDefaults Default transaction values to use when deploying contracts.
|
||||||
|
*/
|
||||||
|
export const runV2MigrationsAsync = async (provider: Provider, artifactsDir: string, txDefaults: Partial<TxData>) => {
|
||||||
|
const web3Wrapper = new Web3Wrapper(provider);
|
||||||
|
const networkId = await web3Wrapper.getNetworkIdAsync();
|
||||||
|
const artifactsWriter = new ArtifactWriter(artifactsDir, networkId);
|
||||||
|
|
||||||
|
// Proxies
|
||||||
|
const erc20proxy = await ERC20ProxyContract.deployFrom0xArtifactAsync(artifacts.ERC20Proxy, provider, txDefaults);
|
||||||
|
artifactsWriter.saveArtifact(erc20proxy);
|
||||||
|
const erc721proxy = await ERC721ProxyContract.deployFrom0xArtifactAsync(
|
||||||
|
artifacts.ERC721Proxy,
|
||||||
|
provider,
|
||||||
|
txDefaults,
|
||||||
|
);
|
||||||
|
artifactsWriter.saveArtifact(erc721proxy);
|
||||||
|
|
||||||
|
// ZRX
|
||||||
|
const zrxToken = await ZRXTokenContract.deployFrom0xArtifactAsync(artifacts.ZRX, provider, txDefaults);
|
||||||
|
artifactsWriter.saveArtifact(zrxToken);
|
||||||
|
|
||||||
|
// Ether token
|
||||||
|
const etherToken = await WETH9Contract.deployFrom0xArtifactAsync(artifacts.WETH9, provider, txDefaults);
|
||||||
|
artifactsWriter.saveArtifact(etherToken);
|
||||||
|
|
||||||
|
// Exchange
|
||||||
|
const exchange = await ExchangeContract.deployFrom0xArtifactAsync(
|
||||||
|
artifacts.Exchange,
|
||||||
|
provider,
|
||||||
|
txDefaults,
|
||||||
|
zrxToken.address,
|
||||||
|
);
|
||||||
|
artifactsWriter.saveArtifact(exchange);
|
||||||
|
|
||||||
|
// Multisigs
|
||||||
|
const accounts: string[] = await web3Wrapper.getAvailableAddressesAsync();
|
||||||
|
const owners = [accounts[0], accounts[1]];
|
||||||
|
const confirmationsRequired = new BigNumber(2);
|
||||||
|
const secondsRequired = new BigNumber(0);
|
||||||
|
const owner = accounts[0];
|
||||||
|
|
||||||
|
// TODO(leonid) use `AssetProxyOwner` after https://github.com/0xProject/0x-monorepo/pull/571 is merged
|
||||||
|
// ERC20 Multisig
|
||||||
|
const multiSigERC20 = await MultiSigWalletWithTimeLockExceptRemoveAuthorizedAddressContract.deployFrom0xArtifactAsync(
|
||||||
|
artifacts.MultiSigWalletWithTimeLockExceptRemoveAuthorizedAddress,
|
||||||
|
provider,
|
||||||
|
txDefaults,
|
||||||
|
owners,
|
||||||
|
confirmationsRequired,
|
||||||
|
secondsRequired,
|
||||||
|
erc20proxy.address,
|
||||||
|
);
|
||||||
|
artifactsWriter.saveArtifact(multiSigERC20);
|
||||||
|
await erc20proxy.addAuthorizedAddress.sendTransactionAsync(exchange.address, { from: owner });
|
||||||
|
await erc20proxy.transferOwnership.sendTransactionAsync(multiSigERC20.address, { from: owner });
|
||||||
|
|
||||||
|
// ERC721 Multisig
|
||||||
|
const multiSigERC721 = await MultiSigWalletWithTimeLockExceptRemoveAuthorizedAddressContract.deployFrom0xArtifactAsync(
|
||||||
|
artifacts.MultiSigWalletWithTimeLockExceptRemoveAuthorizedAddress,
|
||||||
|
provider,
|
||||||
|
txDefaults,
|
||||||
|
owners,
|
||||||
|
confirmationsRequired,
|
||||||
|
secondsRequired,
|
||||||
|
erc721proxy.address,
|
||||||
|
);
|
||||||
|
artifactsWriter.saveArtifact(multiSigERC721);
|
||||||
|
await erc721proxy.addAuthorizedAddress.sendTransactionAsync(exchange.address, { from: owner });
|
||||||
|
await erc721proxy.transferOwnership.sendTransactionAsync(multiSigERC20.address, { from: owner });
|
||||||
|
|
||||||
|
// Dummy ERC20 tokens
|
||||||
|
for (const token of erc20TokenInfo) {
|
||||||
|
const totalSupply = new BigNumber(100000000000000000000);
|
||||||
|
const dummyErc20Token = await DummyERC20TokenContract.deployFrom0xArtifactAsync(
|
||||||
|
artifacts.DummyERC20Token,
|
||||||
|
provider,
|
||||||
|
txDefaults,
|
||||||
|
token.name,
|
||||||
|
token.symbol,
|
||||||
|
token.decimals,
|
||||||
|
totalSupply,
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
// CK -> Token registry
|
||||||
|
const cryptoKittieToken = await DummyERC721TokenContract.deployFrom0xArtifactAsync(
|
||||||
|
artifacts.DummyERC721Token,
|
||||||
|
provider,
|
||||||
|
txDefaults,
|
||||||
|
erc721TokenInfo[0].name,
|
||||||
|
erc721TokenInfo[0].symbol,
|
||||||
|
);
|
||||||
|
};
|
@ -64,7 +64,7 @@
|
|||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@0xproject/assert": "^0.2.10",
|
"@0xproject/assert": "^0.2.10",
|
||||||
"@0xproject/json-schemas": "0.7.22",
|
"@0xproject/json-schemas": "0.7.22",
|
||||||
"@0xproject/types": "^0.7.0",
|
"@0xproject/types": "0.7.0",
|
||||||
"@0xproject/typescript-typings": "^0.3.2",
|
"@0xproject/typescript-typings": "^0.3.2",
|
||||||
"@0xproject/utils": "^0.6.2",
|
"@0xproject/utils": "^0.6.2",
|
||||||
"@0xproject/web3-wrapper": "^0.6.4",
|
"@0xproject/web3-wrapper": "^0.6.4",
|
||||||
|
@ -82,7 +82,7 @@
|
|||||||
"@0xproject/fill-scenarios": "^0.0.2",
|
"@0xproject/fill-scenarios": "^0.0.2",
|
||||||
"@0xproject/json-schemas": "0.7.22",
|
"@0xproject/json-schemas": "0.7.22",
|
||||||
"@0xproject/order-utils": "^0.0.5",
|
"@0xproject/order-utils": "^0.0.5",
|
||||||
"@0xproject/types": "^0.7.0",
|
"@0xproject/types": "0.7.0",
|
||||||
"@0xproject/typescript-typings": "^0.3.2",
|
"@0xproject/typescript-typings": "^0.3.2",
|
||||||
"@0xproject/utils": "^0.6.2",
|
"@0xproject/utils": "^0.6.2",
|
||||||
"@0xproject/web3-wrapper": "^0.6.4",
|
"@0xproject/web3-wrapper": "^0.6.4",
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
import { devConstants } from '@0xproject/dev-utils';
|
import { devConstants } from '@0xproject/dev-utils';
|
||||||
import { runMigrationsAsync } from '@0xproject/migrations';
|
import { runV1MigrationsAsync } from '@0xproject/migrations';
|
||||||
import 'make-promises-safe';
|
import 'make-promises-safe';
|
||||||
import * as path from 'path';
|
import * as path from 'path';
|
||||||
|
|
||||||
@ -16,5 +16,5 @@ before('migrate contracts', async function(): Promise<void> {
|
|||||||
from: devConstants.TESTRPC_FIRST_ADDRESS,
|
from: devConstants.TESTRPC_FIRST_ADDRESS,
|
||||||
};
|
};
|
||||||
const artifactsDir = `../migrations/artifacts/1.0.0`;
|
const artifactsDir = `../migrations/artifacts/1.0.0`;
|
||||||
await runMigrationsAsync(provider, artifactsDir, txDefaults);
|
await runV1MigrationsAsync(provider, artifactsDir, txDefaults);
|
||||||
});
|
});
|
||||||
|
@ -282,22 +282,26 @@ export interface RawLogEntry {
|
|||||||
}
|
}
|
||||||
|
|
||||||
export interface Order {
|
export interface Order {
|
||||||
maker: string;
|
senderAddress: string;
|
||||||
taker: string;
|
makerAddress: string;
|
||||||
|
takerAddress: string;
|
||||||
makerFee: BigNumber;
|
makerFee: BigNumber;
|
||||||
takerFee: BigNumber;
|
takerFee: BigNumber;
|
||||||
makerTokenAmount: BigNumber;
|
makerAssetAmount: BigNumber;
|
||||||
takerTokenAmount: BigNumber;
|
takerAssetAmount: BigNumber;
|
||||||
makerTokenAddress: string;
|
makerAssetData: string;
|
||||||
takerTokenAddress: string;
|
takerAssetData: string;
|
||||||
salt: BigNumber;
|
salt: BigNumber;
|
||||||
exchangeContractAddress: string;
|
feeRecipientAddress: string;
|
||||||
feeRecipient: string;
|
expirationTimeSeconds: BigNumber;
|
||||||
expirationUnixTimestampSec: BigNumber;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
export interface SignedOrder extends Order {
|
export interface SignedOrder extends UnsignedOrder {
|
||||||
ecSignature: ECSignature;
|
signature: string;
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface UnsignedOrder extends Order {
|
||||||
|
exchangeAddress: string;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -349,10 +353,6 @@ export interface Artifact {
|
|||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
export type OrderAddresses = [string, string, string, string, string];
|
|
||||||
|
|
||||||
export type OrderValues = [BigNumber, BigNumber, BigNumber, BigNumber, BigNumber, BigNumber];
|
|
||||||
|
|
||||||
export type DoneCallback = (err?: Error) => void;
|
export type DoneCallback = (err?: Error) => void;
|
||||||
|
|
||||||
export interface OrderRelevantState {
|
export interface OrderRelevantState {
|
||||||
|
@ -15,6 +15,13 @@
|
|||||||
jsonschema "^1.2.0"
|
jsonschema "^1.2.0"
|
||||||
lodash.values "^4.3.0"
|
lodash.values "^4.3.0"
|
||||||
|
|
||||||
|
"@0xproject/types@0.6.3":
|
||||||
|
version "0.6.3"
|
||||||
|
resolved "https://registry.yarnpkg.com/@0xproject/types/-/types-0.6.3.tgz#0bc066967aad4151011b6e478bb707b1afb8504b"
|
||||||
|
dependencies:
|
||||||
|
"@types/node" "^8.0.53"
|
||||||
|
bignumber.js "~4.1.0"
|
||||||
|
|
||||||
"@0xproject/types@^0.5.0":
|
"@0xproject/types@^0.5.0":
|
||||||
version "0.5.0"
|
version "0.5.0"
|
||||||
resolved "https://registry.yarnpkg.com/@0xproject/types/-/types-0.5.0.tgz#ba3cfbc11a8c6344b57c9680aa7df2ea84b9bf05"
|
resolved "https://registry.yarnpkg.com/@0xproject/types/-/types-0.5.0.tgz#ba3cfbc11a8c6344b57c9680aa7df2ea84b9bf05"
|
||||||
|
Loading…
x
Reference in New Issue
Block a user