34个版本 (9个破坏性版本)
0.11.1 | 2021年12月28日 |
---|---|
0.10.3 | 2021年11月16日 |
0.8.0-rc1 | 2021年7月29日 |
0.6.0-alpha1 | 2021年3月12日 |
0.3.1 | 2020年10月16日 |
#8 在 #preimage
每月 39次下载
36KB
763 行
原子交换
这是一个允许用户执行原子交换的合约。它实现了原子交换的一侧。另一侧可以通过同一区块链中等效的合约或通常在另一区块链上的等效合约来实现。
原子交换的每一侧都有一个发送者、一个接收者、一个哈希和一个超时。它还有一个唯一的ID(用于未来的调用引用)。哈希是一个32字节长的sha256编码短语。超时可以是基于时间的(自1970年1月1日凌晨以来的秒数)或基于区块高度的。
基本功能是,发送者选择一个32字节长的短语作为预图像,对其进行哈希处理,然后使用哈希创建一个带有资金的交换。在超时之前,知道预图像的任何人都可以决定将资金释放给原始接收者。在超时之后(如果没有执行释放),任何人都可以将锁定代币退还给原始发送者。在交换的另一侧,过程类似,发送者和接收者交换。哈希必须相同,因此第一个发送者可以要求资金,揭示预图像并触发交换。
有关详细信息,请参阅IOV原子交换规范。
代币类型
目前支持原生代币;即将推出的版本将支持CW20代币。
运行此合约
您需要安装1.44.1+版本的Rust以及wasm32-unknown-unknown
目标。
您可以通过以下方式对此运行单元测试
cargotest
一旦您对内容满意,您可以通过以下方式将其编译为wasm
RUSTFLAGS='-C link-arg=-s' cargo wasm
cp ../../target/wasm32-unknown-unknown/release/cw20_atomic_swap.wasm .
ls -l cw20_atomic_swap.wasm
sha256sum cw20_atomic_swap.wasm
或者,为了生产就绪(优化)构建,在仓库根目录中运行构建命令: https://github.com/CosmWasm/cw-plus#compiling。
依赖项
~4–5.5MB
~122K SLoC