Update fill-scenarios for ZEIP-28

This commit is contained in:
Lawrence Forman
2019-05-13 10:56:04 -04:00
committed by Amir Bandeali
parent 9952de615a
commit f5c215fe65
3 changed files with 19 additions and 5 deletions

View File

@@ -5,6 +5,10 @@
{
"note": "Use new `Order` structure with `domain` field",
"pr": 1742
},
{
"note": "Use arbitrary fee tokens instead of ZRX (ZEIP-28)",
"pr": "TODO"
}
]
},

View File

@@ -1,4 +1,5 @@
export const constants = {
AWAIT_TRANSACTION_MINED_MS: 0,
NULL_ADDRESS: '0x0000000000000000000000000000000000000000',
NULL_BYTES: '0x',
};

View File

@@ -13,14 +13,12 @@ export class FillScenarios {
private readonly _web3Wrapper: Web3Wrapper;
private readonly _userAddresses: string[];
private readonly _coinbase: string;
private readonly _zrxTokenAddress: string;
private readonly _exchangeAddress: string;
private readonly _erc20ProxyAddress: string;
private readonly _erc721ProxyAddress: string;
constructor(
supportedProvider: SupportedProvider,
userAddresses: string[],
zrxTokenAddress: string,
exchangeAddress: string,
erc20ProxyAddress: string,
erc721ProxyAddress: string,
@@ -28,7 +26,6 @@ export class FillScenarios {
this._web3Wrapper = new Web3Wrapper(supportedProvider);
this._userAddresses = userAddresses;
this._coinbase = userAddresses[0];
this._zrxTokenAddress = zrxTokenAddress;
this._exchangeAddress = exchangeAddress;
this._erc20ProxyAddress = erc20ProxyAddress;
this._erc721ProxyAddress = erc721ProxyAddress;
@@ -54,6 +51,8 @@ export class FillScenarios {
public async createFillableSignedOrderWithFeesAsync(
makerAssetData: string,
takerAssetData: string,
makerFeeAssetData: string,
takerFeeAssetData: string,
makerFee: BigNumber,
takerFee: BigNumber,
makerAddress: string,
@@ -66,6 +65,8 @@ export class FillScenarios {
return this._createAsymmetricFillableSignedOrderWithFeesAsync(
makerAssetData,
takerAssetData,
makerFeeAssetData,
takerFeeAssetData,
makerFee,
takerFee,
makerAddress,
@@ -86,12 +87,16 @@ export class FillScenarios {
takerFillableAmount: BigNumber,
expirationTimeSeconds?: BigNumber,
): Promise<SignedOrder> {
const makerFeeAssetData = constants.NULL_BYTES;
const takerFeeAssetData = constants.NULL_BYTES;
const makerFee = new BigNumber(0);
const takerFee = new BigNumber(0);
const feeRecipientAddress = constants.NULL_ADDRESS;
return this._createAsymmetricFillableSignedOrderWithFeesAsync(
makerAssetData,
takerAssetData,
makerFeeAssetData,
takerFeeAssetData,
makerFee,
takerFee,
makerAddress,
@@ -138,6 +143,8 @@ export class FillScenarios {
private async _createAsymmetricFillableSignedOrderWithFeesAsync(
makerAssetData: string,
takerAssetData: string,
makerFeeAssetData: string,
takerFeeAssetData: string,
makerFee: BigNumber,
takerFee: BigNumber,
makerAddress: string,
@@ -152,8 +159,8 @@ export class FillScenarios {
await this._increaseBalanceAndAllowanceWithAssetDataAsync(takerAssetData, takerAddress, takerFillableAmount);
// Fees
await Promise.all([
this._increaseERC20BalanceAndAllowanceAsync(this._zrxTokenAddress, makerAddress, makerFee),
this._increaseERC20BalanceAndAllowanceAsync(this._zrxTokenAddress, takerAddress, takerFee),
this._increaseERC20BalanceAndAllowanceAsync(makerFeeAssetData, makerAddress, makerFee),
this._increaseERC20BalanceAndAllowanceAsync(takerFeeAssetData, takerAddress, takerFee),
]);
const _senderAddress = senderAddress ? senderAddress : constants.NULL_ADDRESS;
@@ -168,6 +175,8 @@ export class FillScenarios {
{
takerAddress,
senderAddress: _senderAddress,
makerFeeAssetData,
takerFeeAssetData,
makerFee,
takerFee,
feeRecipientAddress,