For the complete documentation index, see llms.txt. This page is also available as Markdown.

Mint

Mint Pool assets in exchange for transferring assets to the Pool account.

Transaction Group

0. Pay - pay fees in Algo from Pooler to Pool

  • fees to cover Tx 1,4

  • Signed by Pooler

{
  "txn": {
  "type": "pay",
  "rcv": "{POOL_ADDRESS}",
  "snd": "{POOLER_ADDRESS",
  "amt": 2000,
  "fee": 1000,
  ...
  },
  "sig": "{POOLER_SIG}",
}
  1. App Call - NoOp call to Validator App with args ['mint'], with Pooler account

    • Signed by Pool LogicSig

{
  "txn": {
    "type": "appl",
    "snd": "{POOL_ADDRESS}",
    "apid": {VALIDATOR_APP_ID},
    "apan": 0, // OnComplete: NoOp
    "apaa": ['bWludA=='], // ['mint']
    "apas": [{ASSET1_ID}, {ASSET2_ID}, {LIQUIDITY_ASSET_ID}], // or just [{ASSET1_ID}, {LIQUIDITY_ASSET_ID}] if asset 2 is Algo
    "apat": [{POOLER_ADDRESS}],
    "fee": 1000,
    ...
  },
  "lsig": "{POOL_LOGICSIG}",
}

2. AssetTransfer - Transfer of asset 1 from Pooler to Pool

  • Signed by Pooler

3. (a) AssetTransfer - Transfer of asset 2 from Pooler to Pool

  • If asset 2 is an ASA

  • Signed by Pooler

3. (b) Pay - Transfer of Algo from Pooler to Pool

  • If asset 2 is Algo

  • Signed by Pooler

4. AssetTransfer - Transfer of liquidity token asset from Pool to Pooler

  • Signed by Pool LogicSig

  • Amount is minimum expected amount of liquidity token allowing for slippage

Validator App State Changes

Global State

None

Pool Account Local State

  • o{LIQUIDITY_ASSET_ID}: {int} // total outstanding unredeemed liquidity asset amount

Pooler Account Local State

  • {POOL_ADDRESS}e{LIQUIDITY_ASSET_ID}: {int} // excess liquidity asset amount available for redemption

Last updated

Was this helpful?