1 个不稳定版本
0.1.0 | 2022年1月31日 |
---|
#33 在 #cw20
82KB
572 行
CW20销售合约
此合约允许以原生代币销售CW20代币。CW20代币被存入,并由合约的创建者设置一个原生代币的价格。创建者可以随时更改价格并提取剩余的CW20代币。购买代币的资金会自动转移到创建者的银行账户。
使用合约
创建
wasmd tx wasm instantiate<code_id> '{"cw20_address":"<cw20_contract_address>", "denom":"<denom>", "price":"<price>"}' --from<address> --label="<label>" --gas="auto" --chain-id="<chain_id>"
存入CW20代币
wasmd tx wasm execute<cw20_contract_address> '{"send":{"amount":"<amount>","contract":"<sale_contract_address>","msg":""}}' --from<address> --chain-id="<chain_id>"
设置价格
只能由创建者调用。
wasmd tx wasm execute<sale_contract_address> '{"set_price":{"price":"<amount>","denom":"<denom>"}}' --amount"<funds (即 1uatom)>" --from<创建者地址> --chain-id="<chain_id>"
获取价格
wasmd query wasm contract-state smart<sale_contract_address> '{"get_price":{}}' --chain-id="<chain_id>"
获取CW20代币余额
wasmd query wasm contract-state smart<sale_contract_address> '{"get_balance":{}}' --chain-id="<chain_id>"
购买
在购买前请检查价格和CW20代币余额。
合约根据价格和发送的原生代币数量确定应转移给买家的正确数量的CW20代币。购买后,原生代币资金会自动转移到创建者的银行账户。
wasmd tx wasm execute<sale_contract_address> '{"购买":{}}' --amount"<funds (即 1uatom)>" --from<address> --chain-id="<chain_id>"
提取代币
只能由创建者调用。
wasmd tx wasm execute<sale_contract_address> '{"withdraw_all":{}}' --from<创建者地址> --chain-id="<chain_id>"
依赖
~3–4.5MB
~100K SLoC