Skip to main content
This page summarizes the ABI at contract source commit b66d4f2. The Leo source remains authoritative for tuple order and visibility.

Core administration

allow_token is a one-time operation. Pass the same ID twice for a plain ARC-20. Pass distinct wrapper and underlying IDs for a wrapped asset.

Core pool and position lifecycle

decrease_liquidity(PositionNFT, public liquidity_to_remove, public amount0_min, public amount1_min) returns a public token ID, a replacement PositionNFT, and Final. increase_liquidity(PositionNFT, two token records, public desired and minimum amounts, public token IDs, public tick hints) returns a public token ID, a replacement PositionNFT, two change records, and Final. collect(PositionNFT, public requested amounts, public token IDs, owner proofs, withdrawal proofs) returns a replacement PositionNFT, two token records, and Final. It always pays the immutable withdrawal address in the NFT. burn(PositionNFT) returns the public token ID and Final.

Core trading

swap(token record, private factor, public confidential address, pool, direction, amount, minimum output, Q128.128 price limit, nonce, block-height deadline, token IDs) returns a public swap ID, a change record, a SwapComplianceRecord, and Final. swap_multi_hop(private factor, public confidential address, token record, endpoint tokens, amount, minimum output, three hop slots, hop count, nonce, block-height deadline) returns a public swap ID, a change record, a MultiHopSwapComplianceRecord, and Final. The finalizer accepts hop counts of two or three. claim_swap_output(private factor, public confidential address, swap ID, input token, output token, output amount, remaining input amount, freezelist proofs) returns output and refund records plus Final. The same claim function settles single-hop and multi-hop swaps.

Core views

Swap router

shield_swap_router.aleo exposes:
  • swap_from_wrapped
  • swap_mh_from_wrapped
  • claim_to_wrapped_refund_arc20
  • claim_to_arc20_refund_wrapped
  • claim_to_wrapped_refund_wrapped

LP router

shield_swap_lp_router.aleo exposes:
  • mint_from_wrapped_arc20, mint_from_arc20_wrapped, mint_from_wrapped_wrapped
  • increase_from_wrapped_arc20, increase_from_arc20_wrapped, increase_from_wrapped_wrapped
  • collect_to_wrapped_arc20, collect_to_arc20_wrapped, collect_to_wrapped_wrapped
  • collect_protocol_wrapped, collect_protocol_both_wrapped
Router functions unwrap or wrap the asset side that requires an adapter. They call the same core state machine and are not separate liquidity venues.