众所周知,自古以来,;D 部署到链上的合约都是开源的,aptos cli 最近的更新也支持了下载链上源码的功能(v0.3.3)。
比如说我最近在研究 liquidswap,但是这项目代码在 github 没开源。。。 从 https://app.liquidswap.com/ 网站的一些 http 请求可以知道这个合约部署在地址 0x43417434fd869edee76cca2a4d2301e528a1551b1d719b75c350c3c97d15b8b9 下面,所以先执行第一步,看看这个地址下都部署了哪些合约:
aptos move list --account 0x43417434fd869edee76cca2a4d2301e528a1551b1d719b75c350c3c97d15b8b9 --url https://fullnode.devnet.aptoslabs.com
# result
package UQ64x64
upgrade_policy: compatible
upgrade_number: 0
source_digest: 3E107783DF067766188A95F7E8F80002B364077B57291C5818AFCB54120CCB67
modules: uq64x64
package U256
upgrade_policy: compatible
upgrade_number: 0
source_digest: 2A13EB7BEB19A8896CC65007B008AF86F92D9644B9538B7673003FE64D604CCC
modules: u256
package Liquidswap
upgrade_policy: compatible
upgrade_number: 0
source_digest: D4BFA28D9C31CEEB4670466BD924C3A63A935484EEDD0E85A7A600B880A7B005
modules: coin_helper, dao_storage, emergency, stable_curve, math, liquidity_pool, router, scripts
package LiquidswapLP
upgrade_policy: immutable
upgrade_number: 0
source_digest: 178CA71442A497AECA992E835026D13D28AC33DF3112D46AC792E0A7C83F6E5F
modules: lp, coins, coins_extended
package faucet
upgrade_policy: compatible
upgrade_number: 0
source_digest: 35EE347362A24448C0A4F8594B3AE4D2BF909CDD20168857F24B2725A7543045
modules: faucet
{
"Result": "list succeeded"
}
想看下 Liquidswap 包的代码,执行命令:
aptos move download --url https://fullnode.devnet.aptoslabs.com --account 0x43417434fd869edee76cca2a4d2301e528a1551b1d719b75c350c3c97d15b8b9 --output-dir Liquidswap --package Liquidswap
# result
Saved package with 8 module(s) to `Liquidswap/Liquidswap`
{
"Result": "Download succeeded"
}
整个合约项目都下载到 Liquidswap 目录下了。