【EOS】2.1 EOS Hello World合约
合约的部署,是部署到账户里去的。账户会成为合约的与外界交互的界面。
具体步骤:
1.创建一个目录:hello
在目录内操作,进入目录,touch hello.cpp
.
// hello.cpp
#include <eosiolib/eosio.hpp> # loads the EOSIO C and C++ API into the scope of your contract
#include <eosiolib/print.hpp>using namespace eosio;class hello : public contract {public: using contract::contract;[[eosio::action]]void hi(name user) {require_auth( user );print("Hello, ", name{user});}
};EOSIO_DISPATCH(hello, (hi))
2.编译:
eosio-cpp -o hello.wasm hello.cpp --abigen
编译完成就可以部署了,部署合约,部署到账户里,然后账户是合约的交互接口。
3.为合约创建一个账户
账户的权限是active
权限,由eosio
的owner
权限进行授权:
cleos
创建账户的用法:cleos create account creator name OwnerKey ActiveKey
通过 cleos wallet keys
可以查看到已经存储的key
的信息:
具体就是:
cleos create account eosio hello EOS5FSvKooFghiwqaUD1TpWaobvEaU2mabHqHFvLGSA2WTS52qpzm -p eosio@active
输出结果:
executed transaction: d32de5565ecec6ade408dc1aeace75c78e7c980fe9fd44168bc80a99e41f234c 200 bytes 284 us
# eosio <= eosio::newaccount {"creator":"eosio","name":"hello","owner":{"threshold":1,"keys":[{"key":"EOS5FSvKooFghiwqaUD1TpWaobv...
warning: transaction executed locally, but may not be confirmed by the network yet ]
4.部署合约:
cleos set contract hello /Users/xxx/codes/EOS-Dev/contracts/hello -p hello@active
这里我对自己的个人部分信息做了删除,部署方式按照格式来即可。
输出:
Reading WASM from /Users/xxx/codes/EOS-Dev/contracts/hello/hello.wasm...
Publishing contract...
executed transaction: 53d4e07bba0aefef016a2087b9dd59e285c80b2ed9e0f1bcc654fa4c790b872f 1432 bytes 525 us
# eosio <= eosio::setcode {"account":"hello","vmtype":0,"vmversion":0,"code":"0061736d0100000001390b60027f7e006000017f60027f7f...
# eosio <= eosio::setabi {"account":"hello","abi":"0e656f73696f3a3a6162692f312e30000102686900010475736572046e616d650100000000...
warning: transaction executed locally, but may not be confirmed by the network yet ]
这样就算是部署完毕,注意到用到的是合约的绝对地址。
!!!我们可以和合约进行交互了!!!
5.与合约交互
cleos push action hello hi '["bob"]' -p bob@active
输出:
executed transaction: 8a087eaa71b1ca05c8840d503f86a9869bde5b33b8dbda2b5dd35245b8e65507 104 bytes 1406 us
# hello <= hello::hi {"user":"bob"}
>> Hello, bob
warning: transaction executed locally, but may not be confirmed by the network yet ]
刚好解析一下命令,cleos push + xxx
action
推送一条操作操作transaction
推送一条交易事务,json
格式transactions
推送多条交易事务,json
格式
cleos push action + 合约名 + action data + 授权
,
事务后面至少需要一笔授权,所以这里加的是-p hello@active
权限。
END.
【EOS】2.1 EOS Hello World合约相关推荐
- 基于EOS的区块链捐赠平台合约发开
最近在做一个简单的捐赠平台的DAPP,做一下笔记.DAPP的需求如下: 用户可捐赠指定数量的ZJUBCA(协会token的symbol)和EOS数量.先存入denote合约(本合约)账户,在满足一定数 ...
- 【eos系列】eos系统合约介绍 — 发币合约eosio.token
简介 本章将深入源码,为大家分析eos的系统合约eosio.token的实现细节.eosio.token是eos的发币合约,这个合约主要实现了EOS代币的创建.发行.转账等功能. 主要合约方法 eos ...
- eos和以太坊有什么关系_【EOS价格分析】EOS,宇宙,以太坊价格分析:8月6日
[EOS价格分析]EOS,宇宙,以太坊价格分析:8月6日 比特币是世界上最大的加密货币,在过去几个小时内成功飙升至11.500美元以上.但是,以太坊,EOS和Cosmos等山寨币似乎错过了提示,因为它 ...
- 理解eos区块链的eosio.token合约
2019独角兽企业重金招聘Python工程师标准>>> 我必须承认,学习eosio一直没有闲庭信步的感觉,我可以看到为什么很多人说它有一个陡峭的学习曲线.随着eosio软件继续经历大 ...
- 【系列】EOS开发3 EOS提供的程序和工具
上一篇文章使用了nodeos命令来启动eos服务,这一篇文章,就来介绍一下eos提供的相关程序和工具. nodeos EOSIO的核心守护进程,它可通过插件配置来启动一个节点. cleos 这是一个命 ...
- 4位大咖面对面传授EOS真经,EOS热潮真的来了...| 沙龙直击
4月28日,由CSDN.柏链道捷.HelloEOS.中关村区块链产业联盟主办的"EOS入门及最新技术解读"专场沙龙,在北京开放大学国际报告厅如期举办.尽管临近五一长假,但丝毫没有影 ...
- 全面理解EOS——2.加入EOS主网和测试网
有了EOSIO软件,如何加入EOS的主网及测试网络?不同步EOS主网和测试网络全部数据,如何快速与EOS主网及测试网交互?如果想获得EOS主网及测试网络上所有的块信息,又该如何? 在线查看EOS网络信 ...
- 中国第一届EOS柚子节|EOS王团长中国行北京见面会圆满收官
北京的周末下着淅淅沥沥的小雨,宁静而又深远,北京作为中国区块链的发源地,这里留下了很多布道者的身影,在区块链的发展历史上画出了浓重的一笔. 5月20日下午,EOS王团长中国行如约来到了北京,韭菜团子. ...
- 服务器系统eos升级,佳能EOS R固件更新,自动对焦功能升级
4 月 18 日,佳能发布了EOS R新的固件版本1.2.0,这是继今年 2 月发布1.1. 0 版本后的又一次升级.本次更新主要是增强了眼睛检测自动对焦以及小尺寸自动对焦框,并且对使用过程中电子取景 ...
- EOS智能合约:system系统合约源码分析
链客,专为开发者而生,有问必答! 此文章来自区块链技术社区,未经允许拒绝转载. eosio.system 概览 笔者使用的IDE是VScode,首先来看eosio.system的源码结构.如下图所示. ...
最新文章
- 基于实体模型开发主题管理简析
- Java中的executeQuery,java连接数据库executeUpdate() 和executeQuery()
- Redis之跳跃表(面试重点容易考)
- lnmp 中的laravel出现白屏的处理办法
- 怎么在github上的私人项目中添加成员?
- 企业战略咨询方法:学习SWOT分析
- python for循环例子_Python for循环生成列表的实例
- 向内存中连续存入数据_实例35_在Excel中按条件筛选数据并存入新的表
- perl的bareword
- 数学建模第六章 微分方程建模
- Google ExoPlayer播放器框架详解及应用实践
- 口算训练(hdu 6287) (唯一分解定理)
- 优动漫PAINT上色小技巧——套索填充功能教程
- 大天使之剑服务器维护,大天使之剑部分区服维护公告
- python怎么接单子平台有哪些_17个Python接私活的平台,总有适合你的,有技术就有收入...
- 计算机网络 第3章 作业1
- 原来PID是在老王头和老斯基的斗争中诞生的
- 软件发展新方向-新技术革命
- vulnstack(一) 红日靶场复现
- 嵌入式操作系统(LINUX)
热门文章
- 常见的预设分栏包括_计算机应用基础_实训项目二Word综合应用
- python映射实体类_将Python(django)实体类转换为Java的好方法 - java
- 计算机表演赛怎么打用户名,赛事报名操作指南 | 第28届中国儿童青少年威盛中国芯HTC计算机表演赛...
- mysql 追加水印_php 使用GD库为页面增加水印示例代码
- 引入react文件报错_React Native常见问题(一)
- python编写脚本教程_python编写一个会算账的脚本的示例代码
- mysql导出表到新建_用navicat导出mysql的数据库后,再用navicat导入到新建的数据库,报错。...
- Python图片文字识别——Windows下Tesseract-OCR的安装与使用
- 缺陷检测算法matlab,MATLAB 基于模板匹配的玻璃瓶口缺陷检测
- android实例教程_改造Android示例教程