本文为EOSForce.io主网智能合约教程系列文章,
全教程目录如下。
二、EOSForce主网智能合约教程:
三、EOSForce主网智能合约上传与注意事项:
合约编译上传流程
与联盟EOS的不同,与合约迁移注意事项
全文详细内容也可登陆官网查看:
https://eosforce.github.io/Documentation/#/zh-cn/toc/eosforce_contract
合约编译上传流程
account='你的合约账号' eosiocpp=./build/tools/eosiocpp
#eosiocpp工具路径,可由eosforce项目编译后产生 contract_path='你的合约源码路径'
# 编译
$eosiocpp -g contract.abi $contract_path/contract.hpp $eosiocpp -o contract.wasm $contract_path/contract.cpp
# 上传
leos wallet unlock --password '钱包密码' cleos -u https://w1.eosforce.cn set abi $account contract.abi cleos -u https://w1.eosforce.cn set code $account contract.wasm
与联盟EOS的不同点&合约迁移注意事项
1. transfer 转账
transfer转账消息监听,或合约内EOS系统代币transfer转账操作,使用的合约账号code是‘eosio’,而不是‘eosio.token’。 因为原力的EOSC是在系统合约内,与‘eosio.token’合约是分离的。token代币逻辑不变。
eg:合约内inline action转账
action(permission_level{_self, N(active)}, N(eosio), N(transfer),std::make_tuple(_self, to, quantity, std::string(""))) .send();
注:进行合约内转账,合约账号的active权限需要授权给eosio.code账号。
account='你的合约账号' PK='合约账户公钥' cleos set account permission $account active '{"threshold": 1,"keys": [{"key":"'$PK'", "weight":1}],"accounts": [{"permission":{"actor":"'$account'","permission":"eosio.code"},"weight":1}]}' owner -p $account'@owner'
2. 合约审核与手续费机制
免除了内存、CPU、NET的购买与使用操作。仅对action设置资源限制。 合约内对multi_index表emplace()\modify()操作的资源使用者payer参数,可以设置为0或_self本合约账号。
目前开发者开发完成智能合约后,需提交至eos原力开发者委员会进行审核。委员会对合约进行安全性审核,并对每个action通过评估设置合理手续费与资源限制后,此合约才能正常使用。
开发者需set code 、set abi上传合约。
详情可加入‘原力主网dapp开发群’微信群进行咨询。
3. 出块速度
对于依赖时间的合约,需要注意的是我们是三秒出一个块。
4. 延迟交易暂未开放
暂定下次主网升级开放支持
END
网友评论