6 个版本 (稳定)

3.0.0 2024 年 7 月 11 日
2.0.0 2024 年 5 月 1 日
2.0.0-rc2024 年 4 月 25 日
1.4.0 2024 年 4 月 15 日
1.0.1 2023 年 6 月 22 日

#720 in 魔法豆

Download history 1067/week @ 2024-04-24 909/week @ 2024-05-01 711/week @ 2024-05-08 654/week @ 2024-05-15 822/week @ 2024-05-22 1192/week @ 2024-05-29 1050/week @ 2024-06-05 1404/week @ 2024-06-12 1234/week @ 2024-06-19 1013/week @ 2024-06-26 779/week @ 2024-07-03 1362/week @ 2024-07-10 1081/week @ 2024-07-17 882/week @ 2024-07-24 484/week @ 2024-07-31 646/week @ 2024-08-07

每月下载量 3,250
用于 6 个crate

Apache-2.0GPL-3.0-only

175KB
3.5K SLoC

CW20 基础

这是 cw20 合约的基本实现。它实现了 CW20 规范,旨在直接部署或导入其他合约以轻松构建具有自定义逻辑的 cw20 兼容代币。

实现

  • CW20 Base
  • 可铸造扩展
  • 允许扩展

运行此合约

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

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

cargotest

一旦您对内容满意,您可以通过以下方式将其编译为 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/cw-plus#compiling

导入此合约

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

基本上,您只需要编写您的处理函数,并导入 cw20_base::contract::handle_transfer 等模块,并将它们分发出去。这允许您使用自定义的 ExecuteMsgQueryMsg 与您的附加调用一起使用,但仍然使用标准 cw20 消息的底层实现。同样也适用于 QueryMsg。您 可以 重新使用 instantiate 作为它,但您可能希望修改它。而且这相当简单。

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

依赖关系

~5–17MB
~191K SLoC