新注册的用户请输入邮箱并保存,随后登录邮箱激活账号。后续可直接使用邮箱登录!

ContractStandardNameCMDFA ChainMaker - Contract Standard - Digital Fungible Assets

https://git.chainmaker.org.cn/contracts/standard/-/blob/master/living/CM-CS-221221-DFA.md

CMC示例

安装合约

Token名:CM DFA 符号名:DFA 小数位数:8

./cmc client contract user create --contract-name=cmdfa --version=1.0 --sync-result=true --sdk-conf-path=./testdata/sdk_config_solo.yml --byte-code-path=./testdata/cmdfa.7z --runtime-type=DOCKER_GO --admin-crt-file-paths=./testdata/crypto-config/wx-org.chainmaker.org/user/admin1/admin1.sign.crt --admin-key-file-paths=./testdata/crypto-config/wx-org.chainmaker.org/user/admin1/admin1.sign.key --params="{\"name\":\"CM DFA\", \"symbol\":\"DFA\", \"decimals\":\"8\"}"

铸造Token

铸造10个Token,因为小数位数为8,所以参数的数量是:1000000000

./cmc client contract user invoke --contract-name=cmdfa --method=Mint --sync-result=true --sdk-conf-path=./testdata/sdk_config_solo.yml --params="{\"account\":\"自己的地址\", \"amount\":\"1000000000\"}"

查询余额

./cmc client contract user get --contract-name=cmdfa --method=BalanceOf --sdk-conf-path=./testdata/sdk_config_solo.yml --params="{\"account\":\"自己的地址\"}"

转账1个Token

转移1个Token,因为小数位数为8,所以参数的数量是:100000000

./cmc client contract user invoke --contract-name=cmdfa --method=Transfer --sync-result=true --sdk-conf-path=./testdata/sdk_config_solo.yml --params="{\"to\":\"UserB的地址\", \"amount\":\"100000000\"}"

销毁1个Token

./cmc client contract user invoke --contract-name=cmdfa --method=Burn --sync-result=true --sdk-conf-path=./testdata/sdk_config_solo.yml --params="{\"amount\":\"100000000\"}"

查询Token的名字

./cmc client contract user get --contract-name=cmdfa --method=Name --sdk-conf-path=./testdata/sdk_config_solo.yml --params="{}"

查询Token的符号

./cmc client contract user get --contract-name=cmdfa --method=Symbol --sdk-conf-path=./testdata/sdk_config_solo.yml --params="{}"

查询Token的小数位数

./cmc client contract user get --contract-name=cmdfa --method=Decimals --sdk-conf-path=./testdata/sdk_config_solo.yml --params="{}"

查询Token的发行量

./cmc client contract user get --contract-name=cmdfa --method=TotalSupply --sdk-conf-path=./testdata/sdk_config_solo.yml --params="{}"

授权转移操作

授权3个Token给用户C

./cmc client contract user invoke --contract-name=cmdfa --method=Approve --sync-result=true --sdk-conf-path=./testdata/sdk_config_solo.yml --params="{\"spender\":\"UserC的地址\", \"amount\":\"300000000\"}"

C用户转移Token给用户B

因为是用的UserC的身份,所以需要切换SDK_Config到UserC的对应配置

./cmc client contract user invoke --contract-name=cmdfa --method=TransferFrom --sync-result=true --sdk-conf-path=./testdata/sdk_config_UserC.yml --params="{\"from\":\"UserA的地址\",\"to\":\"UserB的地址\", \"amount\":\"100000000\"}"

查询用户A授权给用户C的转移额度

本来授权了3Token,现在转移了1个,所以结果应该2Token

./cmc client contract user get --contract-name=cmdfa --method=Allowance --sdk-conf-path=./testdata/sdk_config_UserC.yml --params="{\"spender\":\"UserC的地址\",\"owner\":\"UserA的地址\"}"

UserC从授权账户UserA销毁1Token

因为是用的UserC的身份,所以需要切换SDK_Config到UserC的对应配置

./cmc client contract user invoke --contract-name=cmdfa --method=BurnFrom --sync-result=true --sdk-conf-path=./testdata/sdk_config_UserC.yml --params="{\"account\":\"UserA的地址\", \"amount\":\"100000000\"}"