# AleoSwap 合约接口总结 **Published by:** [Yaakov](https://paragraph.com/@yaakov/) **Published on:** 2024-06-24 **URL:** https://paragraph.com/@yaakov/aleoswap ## Content AleoSwap 是基于 Aleo 区块链的去中心化交易所(DEX),采用了 Uniswap 机制。利用 Aleo 区块链的独特功能,AleoSwap 为用户提供了更高的隐私保护和全新的功能。功能创建代币功能: create_token参数: info: TokenInfo (包括代币名称、符号、小数位和总供应量)命令示例:snarkos developer execute -q $rpc_url -b $broadcast_url -p $private_key -r $fee_record \ $program_id create_token "{name: 1431520340field, symbol: 1431520340field, decimals: 6u8, total_supply: 100000000000000u128, admin: $admin_addr}" 转账功能: transfer参数: token_id: field, to: address, amount: u128命令示例:snarkos developer execute -q $rpc_url -b $broadcast_url -p $private_key -r $fee_record \ $program_id transfer 1field $to_address 100000000u128 授权功能: approve参数: token_id: field, spender: address, amount: u128命令示例:snarkos developer execute -q $rpc_url -b $broadcast_url -p $private_key -r $fee_record \ $program_id approve 1field $spender 10000000000u128 从账户转账功能: transfer_from参数: token_id: field, from: address, to: address, amount: u128命令示例:snarkos developer execute -q $rpc_url -b $broadcast_url -p $private_key -r $fee_record \ $program_id transfer_from 1field $from_addr $to_addr 100000000u128 转为私有功能: transfer_to_private参数: token_id: field, to: address, amount: u128命令示例:snarkos developer execute -q $rpc_url -b $broadcast_url -p $private_key -r $fee_record \ $program_id transfer_to_private 1field $to_addr 100000000u128 转为公共功能: transfer_to_public参数: pt_in: PrivateToken, to: address, amount: u128命令示例:snarkos developer execute -q $rpc_url -b $broadcast_url -p $private_key -r $fee_record \ $program_id transfer_to_public $private_token_record $to_addr 10000000u128 私有转账功能: transfer_privately参数: pt_in: PrivateToken, to: address, amount: u128命令示例:snarkos developer execute -q $rpc_url -b $broadcast_url -p $private_key -r $fee_record \ $program_id transfer_privately $private_token_record $to_addr 50000000u128 合并代币功能: join参数: pt1: PrivateToken, pt2: PrivateToken命令示例:snarkos developer execute -q $rpc_url -b $broadcast_url -p $private_key -r $fee_record \ $program_id join $private_token_record_1 $private_token_record_2 创建交易对功能: create_pair参数: token_a: field, token_b: field, amount_a: u128, amount_b: u128, to: address命令示例:snarkos developer execute -q $rpc_url -b $broadcast_url -p $private_key -r $fee_record \ $program_id create_pair 1field 2field 100000000u128 10000000000u128 $to_addr 私密创建交易对功能: create_pair_privately参数: pt_a: PrivateToken, pt_b: PrivateToken, amount_a: u128, amount_b: u128, to: address, liquidity: u128命令示例:snarkos developer execute -q $rpc_url -b $broadcast_url -p $private_key -r $fee_record \ $program_id create_pair_privately $private_token_record_1 $private_token_record_2 $to_addr $liquidity 增加流动性功能: add_liquidity参数: token_a: field, token_b: field, amount_a: u128, amount_b: u128, min_a: u128, min_b: u128, to: address命令示例:snarkos developer execute -q $rpc_url -b $broadcast_url -p $private_key -r $fee_record \ $program_id add_liquidity 1field 2field 100000000u128 10000000000u128 0u128 0u128 $to_addr 私密增加流动性功能: add_liquidity_privately参数: pt_a: PrivateToken, pt_b: PrivateToken, amount_a: u128, amount_b: u128, min_a: u128, min_b: u128, min_liquidity: u128, to: address, refund_to: address命令示例:snarkos developer execute -q $rpc_url -b $broadcast_url -p $private_key -r $fee_record \ $program_id add_liquidity_privately $private_token_record_1 $private_token_record_2 $to_addr $refund_to 移除流动性功能: remove_liquidity参数: token_a: field, token_b: field, liquidity: u128, min_a: u128, min_b: u128, to: address命令示例:snarkos developer execute -q $rpc_url -b $broadcast_url -p $private_key -r $fee_record \ $program_id remove_liquidity 1field 2field 1000000000u128 0u128 0u128 $to_addr 私密移除流动性功能: remove_liquidity_privately参数: token_a: field, token_b: field, pt_lp: PrivateToken, liquidity: u128, min_a: u128, min_b: u128, to: address, refund_to: address命令示例:snarkos developer execute -q $rpc_url -b $broadcast_url -p $private_key -r $fee_record \ $program_id remove_liquidity_privately $private_token_record $to_addr $refund_to 包装私有积分功能: wrap_private_credits参数: input: credits.leo/credits, to: address, amount: field, holder: address命令示例:snarkos developer execute -q $rpc_url -b $broadcast_url -p $private_key -r $fee_record \ $program_id wrap_private_credits $input_record $to_addr 10000000field $holder_addr 包装公共积分功能: wrap_public_credits参数: to: address, amount: field, holder: address命令示例:snarkos developer execute -q $rpc_url -b $broadcast_url -p $private_key -r $fee_record \ $program_id wrap_public_credits $to_addr 10000000field $holder_addr 解包功能: unwrap参数: to: address, amount: field, into_private: bool命令示例:snarkos developer execute -q $rpc_url -b $broadcast_url -p $private_key -r $fee_record \ $program_id unwrap $to_addr 10000000field true 处理私有解包功能: handle_unwrap_to_private参数: index: u64, to: address, amount: field命令示例:snarkos developer execute -q $rpc_url -b $broadcast_url -p $private_key -r $fee_record \ $program_id handle_unwrap_to_private 0u64 $to_addr 10000000field 处理公共解包功能: handle_unwrap_to_public参数: index: u64, to: address, amount: field命令示例:snarkos developer execute -q $rpc_url -b $broadcast_url -p $private_key -r $fee_record \ $program_id handle_unwrap_to_public 1u64 $to_addr 10000000field 固定数量代币换取代币功能: swap_exact_tokens_for_tokens参数: token_in: field, token_out: field, amount_in: u128, amount_out_min: u128, to: address命令示例:snarkos developer execute -q $rpc_url -b $broadcast_url -p $private_key -r $fee_record \ $program_id swap_exact_tokens_for_tokens 1field 2field 1000000u128 98000000u128 $to_addr 私有代币换取公共代币功能: swap_exact_private_for_public参数: pt_in: PrivateToken, token_out: field, amount_in: u128, amount_out_min: u128, to: address命令示例:snarkos developer execute -q $rpc_url -b $broadcast_url -p $private_key -r $fee_record \ $program_id swap_exact_private_for_public $private_token_record $to_addr 98000000u128 私有代币换取私有代币功能: swap_exact_private_for_private参数: pt_in: PrivateToken, token_out: field, amount_in: u128, amount_out_min: u128, to_pri: address, to_pub: address命令示例:snarkos developer execute -q $rpc_url -b $broadcast_url -p $private_key -r $fee_record \ $program_id swap_exact_private_for_private $private_token_record $to_pri $to_pub 98000000u128 公共代币换取私有代币功能: swap_exact_public_for_private参数: token_in: field, token_out: field, amount_in: u128, amount_out_min: u128, to_pri: address, to_pub: address命令示例:snarkos developer execute -q $rpc_url -b $broadcast_url -p $private_key -r $fee_record \ $program_id swap_exact_public_for_private 1field 2field 1000000u128 98000000u128 $to_pri $to_pub 浮动输入换取固定输出功能: swap_tokens_for_exact_tokens参数: token_in: field, token_out: field, amount_in_max: u128, amount_out: u128, to: address命令示例:snarkos developer execute -q $rpc_url -b $broadcast_url -p $private_key -r $fee_record \ $program_id swap_tokens_for_exact_tokens 2field 1field 50000000u128 500000u128 $to_addr 私有代币换取固定数量的公共代币功能: swap_private_for_exact_public参数: pt_in: PrivateToken, token_out: field, amount_in_max: u128, amount_out: u128, to: address, refund_to: address命令示例:snarkos developer execute -q $rpc_url -b $broadcast_url -p $private_key -r $fee_record \ $program_id swap_private_for_exact_public $private_token_record $to_addr $refund_to 98000000u128 私有代币换取固定数量的私有代币功能: swap_private_for_exact_private参数: pt_in: PrivateToken, token_out: field, amount_in_max: u128, amount_out: u128, to_pri: address, refund_to: address命令示例:snarkos developer execute -q $rpc_url -b $broadcast_url -p $private_key -r $fee_record \ $program_id swap_private_for_exact_private $private_token_record $to_pri $refund_to 98000000u128 公共代币换取固定数量的私有代币功能: swap_public_for_exact_private参数: token_in: field, token_out: field, amount_in_max: u128, amount_out: u128, to_pri: address命令示例:snarkos developer execute -q $rpc_url -b $broadcast_url -p $private_key -r $fee_record \ $program_id swap_public_for_exact_private 1field 2field 1000000u128 98000000u128 $to_pri 代币水龙头功能: token_faucet参数: token_id: field, to: address命令示例:snarkos developer execute -q $rpc_url -b $broadcast_url -p $private_key -r $fee_record \ $program_id token_faucet 1field $to_addr 设置代币水龙头功能: set_token_faucet参数: token_id: field, amount: u128命令示例:snarkos developer execute -q $rpc_url -b $broadcast_url -p $private_key -r $fee_record \ $program_id set_token_faucet 1field 1000u128 更改代币管理员功能: change_token_admin参数: token_id: field, admin: address命令示例:snarkos developer execute -q $rpc_url -b $broadcast_url -p $private_key -r $fee_record \ $program_id change_token_admin 1field $new_admin_addr 公共状态余额描述: 存储所有代币和所有账户的余额。查询命令:curl $aleoRpc/testnet3/program/swap.aleo/mapping/balances/$key 授权描述: 存储所有代币和所有账户的授权数据。查询命令:curl $aleoRpc/testnet3/program/swap.aleo/mapping/allowance/$key 代币信息描述: 存储所有代币的元信息。查询命令:curl $aleoRpc/testnet3/program/swap.aleo/mapping/tokens/$token_id 水龙头配置描述: 存储所有代币的水龙头配置。查询命令:curl $aleoRpc/testnet3/program/swap.aleo/mapping/faucets/$token_id 交易对信息描述: 存储所有交易对的信息。查询命令:curl $aleoRpc/testnet3/program/swap.aleo/mapping/pairs/$pair_id 全局状态描述: 存储全局状态。查询命令:curl $aleoRpc/testnet3/program/swap.aleo/mapping/global_state/true 包装状态描述: 存储 WALEO(Wrapped Aleo)功能的状态。查询命令:curl $aleoRpc/testnet3/program/swap.aleo/mapping/wrap_state/true 解包历史描述: 存储所有 WALEO 的解包历史(包括待处理和已处理的)。查询命令:curl $aleoRpc/testnet3/program/swap.aleo/mapping/unwraps/$index 以上就是 AleoSwap 技术架构的详细介绍。通过利用 Aleo 区块链的独特功能,AleoSwap 提供了更高的隐私性和灵活性,适应了去中心化交易所和用户的多种需求。如果你有任何疑问或需要进一步的信息,可以随时访问我们的官方文档或加入我们的社区讨论。 总结 AleoSwap 作为基于 Aleo 区块链的去中心化交易所,通过集成 Uniswap 机制和 Aleo 区块链的独特隐私功能,极大地提升了交易所的隐私保护和功能多样性。无论是代币的创建、转账、流动性管理还是代币交换,AleoSwap 都提供了全面且安全的解决方案,为用户带来了更加自由和隐私的交易体验。期待在社区的共同努力下,AleoSwap 能够不断发展壮大,为更多用户提供优质的去中心化金融服务。 Aleo 官方链接:Aleo TwitterAleo DiscordAleo WebsiteAleo Github ## Publication Information - [Yaakov](https://paragraph.com/@yaakov/): Publication homepage - [All Posts](https://paragraph.com/@yaakov/): More posts from this publication - [RSS Feed](https://api.paragraph.com/blogs/rss/@yaakov): Subscribe to updates - [Twitter](https://twitter.com/yaakov90691264): Follow on Twitter