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 官方链接:
