1 个不稳定版本

0.1.0 2021年7月26日

#26 in #legacy

Apache-2.0

73KB
2K SLoC

CW20 基础版

这个版本的 cw20 基础合约与在 Terra 链 Columbus-4 上运行的旧版合约兼容。

这是一个 cw20 合约的基本实现。它实现了 CW20 规范,并设计为可以直接部署或导入到其他合约中,以轻松构建具有自定义逻辑的 cw20 兼容代币。

实现

  • CW20 基础
  • 可铸造扩展
  • 允许扩展

运行此合约

您需要安装 Rust 1.44.1+,并带有 wasm32-unknown-unknown 目标。

您可以通过以下方式在此处运行单元测试:

cargo测试

一旦您对内容满意,您可以通过以下方式将其编译为 wasm:

RUSTFLAGS='-C link-arg=-s' cargo wasm
cp ../../target/wasm32-unknown-unknown/release/cw20_base.wasm .
ls -l cw20_base.wasm
sha256sum cw20_base.wasm

或者,对于生产就绪(优化)构建,请在仓库根目录中运行构建命令: https://github.com/CosmWasm/cosmwasm-plus#compiling

导入此合约

您还可以导入此合约的大部分逻辑来构建另一个 ERC20 合约,例如债券曲线,覆盖或扩展所需的内容。

基本上,您只需要编写您的处理函数,导入 cw20_base::contract::handle_transfer 等等,并将它们调度到它们。这允许您使用自定义 ExecuteMsgQueryMsg 与您的附加调用一起使用,但仍然使用底层实现来支持您想要支持的标准化 cw20 消息。同样,对于 QueryMsg。您 可以 重复使用 instantiate,但您可能想要更改它。并且这相当简单。

查看 cw20-staking 以了解如何“继承”所有这些代币功能并将其与自定义逻辑相结合的示例。

依赖关系

~3.5–5MB
~106K SLoC