重新学习eos智能合约开发

in HIVE CN 中文社区4 years ago (edited)

gitpod1.png

大家好,我已经两年没有动eos了,不过最近有朋友要帮忙做eos智能合约,我又从新学起来,过了两年,eos代码已经进步了很多,比如说两年前,想要下载安装eos程序需要8gb ram,安装的时候困难重重,我当时自己电脑没8gb ram还跑去租digital ocean的vps,每个月支付40美金,一年下来就480美金了,对新手非常不友好,现在想写eos智能合约已经不用安装了,直接用gitpod连接你的github就可以网上写你的代码,比如上面这张图

主要方法是去https://github.com/EOSIO/eosio-web-ide ,然后按fork,fork了后,可以直接用google chrome 开https://gitpod.io/#https://github.com/your-github-account/eosio-web-ide

然后就可以写代码,compile,deploy contract,这里是local node,所以当你把游览器关掉,或电脑关掉后,里面的所有帐户,代码,database全部都会消失,不过如果你只要把代码保存好在你自己的电脑,把代码copy paste回去也是很快的,当你把eos智能合约写好测试完毕后,你可以考虑把智能合约上主链,那么你的eos智能合约就永远被保存到链上

我发现代码也更新了不少,以前查error是用assert,现在用check,

以前查询外面的货币打进来是用以下的代码
extern "C" {
void apply(uint64_t receiver, uint64_t code, uint64_t action) {
if(code==receiver)
{
switch(action)
{
EOSIO_DISPATCH_HELPER( horse, (hi)(getresult)(droptable) )
}
}
else if(code=="eosio.token"_n.value && action=="transfer"_n.value) {
execute_action( name(receiver), name(code), &horse::bet);
}
else if(code=="sandtoken"_n.value && action=="transfer"_n.value) {
execute_action( name(receiver), name(code), &horse::bet);
}
}
};

新的代码是以下
hodl(name receiver, name code, datastream<const char*> ds) : contract(receiver, code, ds), hodl_symbol("EOS", 4) {}

[[eosio::on_notify("eosio.token::transfer")]]

很多地方都缩短了很多,真是节省写代码的时间

谢谢阅读

Sort:  

不明觉厉

eos比以太坊在智能合约方面功能应该强大许多,感谢分享。