#token #swap #pool #anchor #reimplement #deposit #testing

gfx-swap

gfx-swap 是 solana-program-library 中的 token-swap 程序的重实现

1 个不稳定版本

0.1.0 2021年11月16日

#6 in #reimplement

MIT 许可证

135KB
3K SLoC

GFX Swap 程序 build

这是 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