Fill a limit order

In order to fill an order, a SwappableOrder data is required as an input.

It can be retrieved from API web service or composed by maker.

Parameters

const orderWithSignature: SwappableOrder {
  nonceAndMeta: '1461501637330902918203684832716283019655932542976',
  expiry: 1665587100,
  makerAsset: '0x6B175474E89094C44Da98b954EedeAC495271d0F',
  takerAsset: '0x2b591e99afe9f32eaa6214f7b7629768c40eeb39',
  maker: '0x2bb45fa7c25071ff37a49877A02b5b3986113A3A',
  taker: '0x0000000000000000000000000000000000000000',
  makerAmount: '1000000000000000000',
  takerAmount: '2800000000',
  signature: '0x97166e35e63ecab23a0c4e7ec4ec6863193b48ddcee4f9f8291ac95a05e9545c46037cdcf01445d7a2b5dd0fdce66bc9f8b49cac75be03a3ba07dc0d467387351c'
}

This data can then be supplemented by additional required params and sent to ParaSwap web API to generate Augustus Swapper route for the fulfilment transaction:

const txData = await sdk.buildLimitOrderTx(
  {
    srcDecimals: 18,
    destDecimals: 8,
    userAddress: taker.address,
    orders: [orderWithSignature],
  })

The returned transaction params can be used to send a transaction.

Example

Last updated