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

参考

  1. EOS 合约基础教程 - Hello World

以上是关于EOS 智能合约源代码解读 合约开发示例的主要内容,如果未能解决你的问题,请参考以下文章

EOS 智能合约源代码解读 总体说明

EOS 智能合约源代码解读 bios合约

EOS 智能合约源代码解读 合约之action

EOS 智能合约源代码解读 (10)token合约“简介”

EOS 智能合约源代码解读 class contract

EOS 智能合约源代码解读 (12)system合约“native.hpp”