I've been trying to fill an order with a signer and a fixed taker. When not defining the taker, fillLimitOrder() gets executed without problem. But when specifying my taker in my order, I instantly get execution reverted. Here's my code:

    const order = new LimitOrder({
        makerToken: contractWrappers.contractAddresses.etherToken,
        takerToken: contractWrappers.contractAddresses.zrxToken,
        makerAmount: "1",
        takerAmount: "100000000000000000000", 
        maker: account,
        taker: RECEIVER, // When defining taker here, the transaction gets reverted
        sender: NULL_ADDRESS,
        expiry: getFutureExpiryInSeconds(),
        salt: Date.now().toString(),
        chainId: CHAIN_ID,
        verifyingContract: contractWrappers.contractAddresses.exchangeProxy

 const supportedProvider = new MetamaskSubprovider(

    const signature = await order.getSignatureWithProviderAsync(

    const txHash = await contractWrappers.exchangeProxy // Filling the order here
        .fillLimitOrder(order, signature, takerAssetFillAmount)
        .awaitTransactionSuccessAsync({from: account})
        .catch((err) => console.error(err));

Thanks for your input!

  • Who is filling the order? Is the RECEIVER or the account? When you define the taker only the defined taker can fill it. Nov 3, 2022 at 12:43


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Browse other questions tagged or ask your own question.