EOS 智能合约源代码解读 合约开发示例
Posted thefist11
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了EOS 智能合约源代码解读 合约开发示例相关的知识,希望对你有一定的参考价值。
官方提供了一个工具eosiocpp,它可以按照固定的模板创建一个新的智能合约。eosiocpp可以创建2个合约文件(曾经是三个文件),它们仅仅包含了合约的框架。
1. HelloWorld合约代码如下:
testcc.hpp:
/**
* @file
* @copyright defined in eos/LICENSE.txt
*/
#include <eosiolib/eosio.hpp>
testcc.cpp:
#include <eosiolib/eosio.hpp>
using namespace eosio;
class [[eosio::contract("hello")]] hello : public contract {
public:
using contract::contract;
[[eosio::action]]
void hi( name user ) {
print( "Hello, ", user);
}
};
EOSIO_DISPATCH( hello, (hi))
- EOS 合约中的动作都需要 [[eosio::action]] 属性来修饰
- EOSIO_DISPATCH 宏在 <eosiolib/dispatcher.hpp> 头文件中定义,该宏的第一个参数是合约的名字,第二个参数,是多个小括号 () 扩起来的多个动作的方法名。
2. 部署
step1. 编译合约
eosio-cpp -I include -o hello.wasm hello.cpp --abigen
step2. 创建账户
cleos create account eosio hello
EOS7qyuXyBtqMYLYBveB3APTiWeyu1d6Z4mTLX1mMP5ZU3kWUqXcJ -p eosio@active # -p指定账户的权限
step3. 部署合约
cleos set contract hello CONTRACTS_DIR/hello -p hello@active
step4. 调用合约
cleos push action hello hi '["bob"]' -p alice@active
参考
以上是关于EOS 智能合约源代码解读 合约开发示例的主要内容,如果未能解决你的问题,请参考以下文章