1 个不稳定版本
0.1.0 | 2021年11月16日 |
---|
#6 in #reimplement
135KB
3K SLoC
GFX Swap 程序
这是 solana-program-library 中的 swap 程序的重实现 https://github.com/solana-labs/solana-program-library/tree/master/token-swap.
审计
此仓库由 Halborn 审计。审计报告位于 audit/GooseFX_Swap_Program_Security_Audit_Report_Halborn_Final.pdf
示例
部署并运行 gfx-swap
先决条件
将所需的环境变量设置到 .env
文件中
RUST_BACKTRACE=1
RUST_LOG=gfx_swap=info
TOKEN_A=2uig6CL6aQNS8wPL9YmfRNUNcQMgq9purmXK53pzMaQ6
TOKEN_B=8FUPzLY58ojDaj5yh1MKwyJnGNhCDMbStbHNVkBQ9KjJ
ADMIN_WALLET="~/.config/solana/id.json"
USER_WALLET="~/.config/solana/id.json"
您可能需要为 TOKEN_A 和 TOKEN_B 提供不同的地址。
生成部署程序的密钥
运行 just keygen gfx-swap
。
部署程序
运行 just deploy gfx-swap --features ci
。
创建一个交易池
运行 just cli create_pool
。
create_pool
将为 USER_WALLET
创建关联的代币账户 (ATA)。
此命令将打印出一大堆信息,其中您需要将种子写入 .env 文件。种子是池的唯一标识符。
池监控器
运行 just cli pool_status
。这将打印出当前池状态的快照。您可以将它与 watch
命令结合使用,即 watch just cli pool_status
以持续监控池。
将代币存入池中
运行 just cli deposit2 --lp-amount <amount>
。这基本上是请求池 I'd like to get <amount> LP tokens and you can deduct some amount of token A and B from my wallet for that.
从池中提取代币
运行 just cli withdraw2 --lp-amount <amount>
。这是与 deposit
命令相反的操作。
交换代币
运行 just cli swap --swap-in A --amount <amount>
。这将在某些代币A和代币B之间进行交换。
依赖关系
~25–38MB
~644K SLoC