Swap
Swap one asset (ASA or Algo) for another with the Pool.
Transaction Group
0. Pay - pay fees in Algo from Swapper to Pool
fees to cover Tx 1,2
Signed by Swapper
App Call - NoOp call to Validator App with args ['swap', (fixed-input) or 'fo' (fixed-output)], with Swapper account
Signed by Pool LogicSig
Argument 1 'fi' specifies that the input (sell) is fixed but the output may vary with slippage
Argument 1 'fo' specifies that the output (buy) is fixed but the input may vary with slippage
2. (a) AssetTransfer - Transfer of sell asset from Swapper to Pool
If sell asset is an ASA
Signed by Swapper
2. (b) Pay - Transfer of Algo from Swapper to Pool
If sell asset is Algo
Signed by Swapper
3. (a) AssetTransfer - Transfer of buy asset from Pool to Swapper
If buy asset is an ASA
Signed by Pool LogicSig
3. (b) Pay - Transfer of buy asset from Pool to Swapper
If buy asset is Algo
Signed by Pool LogicSig
Validator App State Changes
Global State
None
Pool Account Local State
o{ASSET1_ID}: {int}
// total outstanding unredeemed asset 1 amounto{ASSET2_ID}: {int}
// total outstanding unredeemed asset 2 amountp: {int}
// total unclaimed protocol fees amount
Swapper Account Local State
{POOL_ADDRESS}e{ASSET1_ID}: {int}
// excess asset 1 amount available for redemption{POOL_ADDRESS}e{ASSET2_ID}: {int}
// excess asset 2 amount available for redemption
Last updated