官方提供了一个工具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 智能合约源代码解读 (7)合约开发示例相关推荐

  1. EOS 智能合约源代码解读 (10)token合约“几种关键操作”

    1. create:负责创建资产 void token::create( const text_name& issuer, const asset& maximum_supply) { ...

  2. EOS 智能合约源代码解读 (1)总体说明

    1. 基本定义 在eos私有节点操作中,我们通常是一个合约对应一个合约账户,并且一个账户中只能部署一个智能合约.如果在同一个账户部署多个合约,那么最后部署的合约会覆盖掉之前的合约.每个帐户都至少链接到 ...

  3. EOS 智能合约源代码解读 (11)wrap合约“action_wrapper类”

    1. 功能 对于许多用例,需要从合同代码向另一个合同发送新操作.这是合同之间能够积极沟通的唯一途径.它为特定智能合约代码的特定操作创建"操作模板",然后可使用该模板来调用此操作. ...

  4. EOS 智能合约源代码解读 (6)合约之action

    1. 动作 ( action ) 是 EOS 合约的灵魂,是 EOS 的基础组成单位 1.1 一个动作就是一个公开的 ( pubic ) 的 C++ 类的成员方法 必须使用 [[eosio::acti ...

  5. EOS 智能合约源代码解读 (5)class contract

    1. 所有合约的基类 #define CONTRACT class [[eosio::contract]] // 合约 #define ACTION [[eosio::action]] //动作 #d ...

  6. EOS 智能合约源代码解读 (3)asset.hpp

    1. 合约中关于资产的数据结构的定义 输入字符串: "10.0000 CUR" 输出:amount = 10, symbol(4,"CUR") /**asset ...

  7. EOS 智能合约源代码解读 (14)system合约“exchange_state.hpp”

    1. 使用bancor数学创建一个在两种资产类型中的50/50的中继 namespace eosiosystem {using eosio::asset;using eosio::symbol;typ ...

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

    1. 记录用户的token,比如有哪些代币 class [[eosio::contract("eosio.token")]] token : public contract {pu ...

  9. EOS 智能合约源代码解读 (9)boot合约

    1. 作用 激活 protocol features 性质 activating desired protocol features prior to deploying a system contr ...

最新文章

  1. Java 性能调优的 11 个实用技巧
  2. 【 MATLAB 】Fourier Analysis and Filtering frame(傅立叶分析和滤波 框架)
  3. 基于数组的无锁队列(译)
  4. python入门作业编程题-python入门(一)作业
  5. linux 扩展zhu分区,Linux分区调整(LVM和非LVM环境中扩容和缩小)
  6. Memcached服务器的图形化管理工具
  7. android 判断手机为小米
  8. 框架学习与探究之AOP--Castle DynamicProxy
  9. stm32f407 6个串口dma_stm32之DMA
  10. 欧奈尔4个经典形态_股票K线图基础知识:图解4大经典K线组合形态
  11. 苹果计算机磁盘格式,Mac 上“磁盘工具”中可用的文件系统格式
  12. ES6学习笔记六(新增数据结构)
  13. 清明上河图轴卷图滑动
  14. maya! board_老司机都在用的30款maya常用插件
  15. Docker容器实现跨主机文件共享(NFS服务器)
  16. 弦截法 解高次方程 C语言/C++
  17. STM32F4串口通信
  18. 欢迎火狐FireFox正式进入中国
  19. 模拟NAND FLASH 读写BCH ECC校验
  20. 《神雕瞎驴》,金庸看后哭了^-^

热门文章

  1. 自定义注解和拦截器,实现接口限流防刷
  2. Python a,b = b,a 是怎么赋值的
  3. Android—— ScrollView 与 ListView 滑动冲突处理
  4. android camera入门,android 基础一 Camera1 预览、拍照
  5. 数据中心ups电源七个故障分析
  6. 供配电负荷计算方法详解
  7. 腾讯数据中心负责人揭秘:半年时间如何搭好“山洞鹅厂”
  8. python连接es数据库_Python Elasticsearch API操作ES集群
  9. 成功解决AttributeError: module ‘dask.array.numpy_compat‘ has no attribute ‘take_along_axis‘
  10. AI:2020年6月北京智源大会演讲视频回放集合——分享博主体会与总结