Update fill-scenarios for ZEIP-28
				
					
				
			This commit is contained in:
		
				
					committed by
					
						
						Amir Bandeali
					
				
			
			
				
	
			
			
			
						parent
						
							9952de615a
						
					
				
				
					commit
					f5c215fe65
				
			@@ -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"
 | 
			
		||||
            }
 | 
			
		||||
        ]
 | 
			
		||||
    },
 | 
			
		||||
 
 | 
			
		||||
@@ -1,4 +1,5 @@
 | 
			
		||||
export const constants = {
 | 
			
		||||
    AWAIT_TRANSACTION_MINED_MS: 0,
 | 
			
		||||
    NULL_ADDRESS: '0x0000000000000000000000000000000000000000',
 | 
			
		||||
    NULL_BYTES: '0x',
 | 
			
		||||
};
 | 
			
		||||
 
 | 
			
		||||
@@ -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,
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user