BondIntent

Overview

The BondIntent allows users to express the desire to borrow liquidity for the purpose of inventory free solving. The BondIntent is an ERC721 token that the filler of the BondIntent mints when the bond intent is filled.

Message Format

Messages largely match what is in the intentpool specification. The BondInfo has the following fields:

struct BondInfo {
    address solver;
    uint256 nonce;
    bytes32 orderHash; // hash of the bond order
    uint256 srcFee; // fee taken on the src chain
    Item input; // input of the order
    Item output; // output of the order
    address lpToken; // the token the filler of the BondIntent needs to provide
    uint256 lpAmount; // the amount the filler of the BondIntent needs to provide
    uint256 deadline;  // deadline for the intent issuer to successfully use the borrowed liqudity
}
  • solver , the address of the original bond issuer

  • nonce , a nonce provided for preventing replay

  • orderHash is the hash of the bond order.

  • srcFee fee taken by the bond purchaser on the origin chain

  • lpToken the token the filler will repay to the bond purchaser needs to provide

  • lpAmount the amount of token the bond purchaser to provide.

  • deadline is the deadline for the intent issuer to successfully use the borrowed liquidity.

struct Item {
    address token; // ERC20 token
    uint256 amountStart;
    uint256 amountEnd;
    uint32 chainId;
}

Fees

There are two fees, those paid on the origin chain and fees paid on the destination chain. The fees from the origin chain are implemented as a revenue-sharing measure between filler and liquidity provider, and are taken from the funds from the initiating swapper. The fees on the destination chain are provided in a separate token to the bond purchaser.

Last updated