mirror of
https://github.com/logos-blockchain/lez-programs.git
synced 2026-05-19 15:39:28 +00:00
Add `owner` and `ata_program_id` parameters to `add_liquidity`, `remove_liquidity`, `swap_exact_input`, and `swap_exact_output`. User deposit-side transfers now emit `ATA::Transfer` chained calls instead of `Token::Transfer` directly, and LP burns emit `ATA::Burn` instead of `Token::Burn`. Vault withdrawal chained calls are unchanged. - Add `ata_program_id` field to `AddLiquidity`, `RemoveLiquidity`, `SwapExactInput`, and `SwapExactOutput` instruction variants in `amm_core` - Add `ata_core` dependency to `amm_program` and guest crates - Update guest binary, unit tests, and integration tests to supply the new `owner` account and `ata_program_id` at every call site - Regenerate `artifacts/amm-idl.json` Closes #11
365 lines
7.6 KiB
JSON
365 lines
7.6 KiB
JSON
Finished `dev` profile [unoptimized + debuginfo] target(s) in 0.53s
|
|
Running `target/debug/idl-gen amm/methods/guest/src/bin/amm.rs`
|
|
{
|
|
"version": "0.1.0",
|
|
"name": "amm",
|
|
"instructions": [
|
|
{
|
|
"name": "new_definition",
|
|
"accounts": [
|
|
{
|
|
"name": "pool",
|
|
"writable": false,
|
|
"signer": false,
|
|
"init": false
|
|
},
|
|
{
|
|
"name": "vault_a",
|
|
"writable": false,
|
|
"signer": false,
|
|
"init": false
|
|
},
|
|
{
|
|
"name": "vault_b",
|
|
"writable": false,
|
|
"signer": false,
|
|
"init": false
|
|
},
|
|
{
|
|
"name": "pool_definition_lp",
|
|
"writable": false,
|
|
"signer": false,
|
|
"init": false
|
|
},
|
|
{
|
|
"name": "lp_lock_holding",
|
|
"writable": false,
|
|
"signer": false,
|
|
"init": false
|
|
},
|
|
{
|
|
"name": "user_holding_a",
|
|
"writable": false,
|
|
"signer": false,
|
|
"init": false
|
|
},
|
|
{
|
|
"name": "user_holding_b",
|
|
"writable": false,
|
|
"signer": false,
|
|
"init": false
|
|
},
|
|
{
|
|
"name": "user_holding_lp",
|
|
"writable": false,
|
|
"signer": false,
|
|
"init": false
|
|
}
|
|
],
|
|
"args": [
|
|
{
|
|
"name": "token_a_amount",
|
|
"type": "u128"
|
|
},
|
|
{
|
|
"name": "token_b_amount",
|
|
"type": "u128"
|
|
},
|
|
{
|
|
"name": "fees",
|
|
"type": "u128"
|
|
},
|
|
{
|
|
"name": "amm_program_id",
|
|
"type": "program_id"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"name": "add_liquidity",
|
|
"accounts": [
|
|
{
|
|
"name": "pool",
|
|
"writable": false,
|
|
"signer": false,
|
|
"init": false
|
|
},
|
|
{
|
|
"name": "vault_a",
|
|
"writable": false,
|
|
"signer": false,
|
|
"init": false
|
|
},
|
|
{
|
|
"name": "vault_b",
|
|
"writable": false,
|
|
"signer": false,
|
|
"init": false
|
|
},
|
|
{
|
|
"name": "pool_definition_lp",
|
|
"writable": false,
|
|
"signer": false,
|
|
"init": false
|
|
},
|
|
{
|
|
"name": "owner",
|
|
"writable": false,
|
|
"signer": false,
|
|
"init": false
|
|
},
|
|
{
|
|
"name": "user_holding_a",
|
|
"writable": false,
|
|
"signer": false,
|
|
"init": false
|
|
},
|
|
{
|
|
"name": "user_holding_b",
|
|
"writable": false,
|
|
"signer": false,
|
|
"init": false
|
|
},
|
|
{
|
|
"name": "user_holding_lp",
|
|
"writable": false,
|
|
"signer": false,
|
|
"init": false
|
|
}
|
|
],
|
|
"args": [
|
|
{
|
|
"name": "min_amount_liquidity",
|
|
"type": "u128"
|
|
},
|
|
{
|
|
"name": "max_amount_to_add_token_a",
|
|
"type": "u128"
|
|
},
|
|
{
|
|
"name": "max_amount_to_add_token_b",
|
|
"type": "u128"
|
|
},
|
|
{
|
|
"name": "ata_program_id",
|
|
"type": "program_id"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"name": "remove_liquidity",
|
|
"accounts": [
|
|
{
|
|
"name": "pool",
|
|
"writable": false,
|
|
"signer": false,
|
|
"init": false
|
|
},
|
|
{
|
|
"name": "vault_a",
|
|
"writable": false,
|
|
"signer": false,
|
|
"init": false
|
|
},
|
|
{
|
|
"name": "vault_b",
|
|
"writable": false,
|
|
"signer": false,
|
|
"init": false
|
|
},
|
|
{
|
|
"name": "pool_definition_lp",
|
|
"writable": false,
|
|
"signer": false,
|
|
"init": false
|
|
},
|
|
{
|
|
"name": "owner",
|
|
"writable": false,
|
|
"signer": false,
|
|
"init": false
|
|
},
|
|
{
|
|
"name": "user_holding_a",
|
|
"writable": false,
|
|
"signer": false,
|
|
"init": false
|
|
},
|
|
{
|
|
"name": "user_holding_b",
|
|
"writable": false,
|
|
"signer": false,
|
|
"init": false
|
|
},
|
|
{
|
|
"name": "user_holding_lp",
|
|
"writable": false,
|
|
"signer": false,
|
|
"init": false
|
|
}
|
|
],
|
|
"args": [
|
|
{
|
|
"name": "remove_liquidity_amount",
|
|
"type": "u128"
|
|
},
|
|
{
|
|
"name": "min_amount_to_remove_token_a",
|
|
"type": "u128"
|
|
},
|
|
{
|
|
"name": "min_amount_to_remove_token_b",
|
|
"type": "u128"
|
|
},
|
|
{
|
|
"name": "ata_program_id",
|
|
"type": "program_id"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"name": "swap_exact_input",
|
|
"accounts": [
|
|
{
|
|
"name": "pool",
|
|
"writable": false,
|
|
"signer": false,
|
|
"init": false
|
|
},
|
|
{
|
|
"name": "vault_a",
|
|
"writable": false,
|
|
"signer": false,
|
|
"init": false
|
|
},
|
|
{
|
|
"name": "vault_b",
|
|
"writable": false,
|
|
"signer": false,
|
|
"init": false
|
|
},
|
|
{
|
|
"name": "owner",
|
|
"writable": false,
|
|
"signer": false,
|
|
"init": false
|
|
},
|
|
{
|
|
"name": "user_holding_a",
|
|
"writable": false,
|
|
"signer": false,
|
|
"init": false
|
|
},
|
|
{
|
|
"name": "user_holding_b",
|
|
"writable": false,
|
|
"signer": false,
|
|
"init": false
|
|
}
|
|
],
|
|
"args": [
|
|
{
|
|
"name": "swap_amount_in",
|
|
"type": "u128"
|
|
},
|
|
{
|
|
"name": "min_amount_out",
|
|
"type": "u128"
|
|
},
|
|
{
|
|
"name": "token_definition_id_in",
|
|
"type": "account_id"
|
|
},
|
|
{
|
|
"name": "ata_program_id",
|
|
"type": "program_id"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"name": "swap_exact_output",
|
|
"accounts": [
|
|
{
|
|
"name": "pool",
|
|
"writable": false,
|
|
"signer": false,
|
|
"init": false
|
|
},
|
|
{
|
|
"name": "vault_a",
|
|
"writable": false,
|
|
"signer": false,
|
|
"init": false
|
|
},
|
|
{
|
|
"name": "vault_b",
|
|
"writable": false,
|
|
"signer": false,
|
|
"init": false
|
|
},
|
|
{
|
|
"name": "owner",
|
|
"writable": false,
|
|
"signer": false,
|
|
"init": false
|
|
},
|
|
{
|
|
"name": "user_holding_a",
|
|
"writable": false,
|
|
"signer": false,
|
|
"init": false
|
|
},
|
|
{
|
|
"name": "user_holding_b",
|
|
"writable": false,
|
|
"signer": false,
|
|
"init": false
|
|
}
|
|
],
|
|
"args": [
|
|
{
|
|
"name": "exact_amount_out",
|
|
"type": "u128"
|
|
},
|
|
{
|
|
"name": "max_amount_in",
|
|
"type": "u128"
|
|
},
|
|
{
|
|
"name": "token_definition_id_in",
|
|
"type": "account_id"
|
|
},
|
|
{
|
|
"name": "ata_program_id",
|
|
"type": "program_id"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"name": "sync_reserves",
|
|
"accounts": [
|
|
{
|
|
"name": "pool",
|
|
"writable": false,
|
|
"signer": false,
|
|
"init": false
|
|
},
|
|
{
|
|
"name": "vault_a",
|
|
"writable": false,
|
|
"signer": false,
|
|
"init": false
|
|
},
|
|
{
|
|
"name": "vault_b",
|
|
"writable": false,
|
|
"signer": false,
|
|
"init": false
|
|
}
|
|
],
|
|
"args": []
|
|
}
|
|
],
|
|
"instruction_type": "amm_core::Instruction"
|
|
}
|