- HelloWorld合约代码如下:
jstestcc.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))
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
EOS 合约中的动作都需要 [[eosio::action]] 属性来修饰
EOSIO_DISPATCH 宏在 <eosiolib/dispatcher.hpp> 头文件中定义,该宏的第一个参数是合约的名字,第二个参数,是多个小括号 () 扩起来的多个动作的方法名。
2. 部署
step1. 编译合约
eosio-cpp -I include -o hello.wasm hello.cpp --abigen
1
复制
step2. 创建账户
cleos create account eosio hello
EOS7qyuXyBtqMYLYBveB3APTiWeyu1d6Z4mTLX1mMP5ZU3kWUqXcJ -p eosio@active # -p指定账户的权限
1
2
复制
step3. 部署合约
cleos set contract hello CONTRACTS_DIR/hello -p hello@active
1
复制
step4. 调用合约
cleos push action hello hi '["bob"]' -p alice@active