风险提示:理性看待区块链,提高风险意识!
EOS DAWN-V3.0.0 智能合约开发之Hello World
首页 > 币界资讯 > 区块链知识 2018-04-20 07:14:00
不管是C、C++、Java还是任何其他语言,一般刚开始学习的时候,我们都会从HelloWorld开始,这篇文章主要讲解EOS DAWN-V3.0.0 智能合约开发之Hello World
在看这篇文章之前,请先阅读下面两篇入门文章。

  • 第一篇 – 手把手教你理清EOS各种开发环境搭建来龙去脉
  • 第二篇 – EOS Currency 合约案例

helloworld

1. 编写合约代码

在桌面创建一个文件夹,比如:0418,用Atom打开0418文件夹。新建文件Hello.cpp文件,并将下面的源码拷贝到Hello.cpp文件中。

#include <eosiolib/eosio.hpp>
#include <eosiolib/print.hpp>

// 视频网站:http://kongyixueyuan.com
// 个人博客:http://liyuechun.org
// 公众号:区块链部落
// 进技术群,请加微信(kongyixueyuan)

//用eosio命名空间
using namespace eosio;

//所有的智能合约都继承自contract类
class Hello : public eosio::contract {

  public:
      using contract::contract;

      /// @abi action
      void hi( account_name user ) {
         print( "Hello, ", name{user} );
      }

};
EOSIO_ABI( Hello, (hi) )

2. 生成.wast文件

liyuechun:Project yuechunli$ eosiocpp -o Hello.wast Hello.cpp
liyuechun:Project yuechunli$ ls
Hello.cpp	Hello.wast
liyuechun:Project yuechunli$ 

3. 生成.abi文件

liyuechun:Project yuechunli$ eosiocpp -g Hello.abi Hello.cpp 
Generated Hello.abi ...
liyuechun:Project yuechunli$ ls
Hello.abi	Hello.cpp	Hello.wast
liyuechun:Project yuechunli$
  • Hello.abi文件内容如下:
{
  "____comment": "This file was generated by eosio-abigen. DO NOT EDIT - 2018-04-18T08:15:50",
  "types": [],
  "structs": [{
      "name": "hi",
      "base": "",
      "fields": [{
          "name": "user",
          "type": "account_name"
        }
      ]
    }
  ],
  "actions": [{
      "name": "hi",
      "type": "hi",
      "ricardian_contract": ""
    }
  ],
  "tables": [],
  "clauses": []
}

4. 创建钱包账号

4.1 创建钱包
liyuechun:Hello yuechunli$ cleos wallet create
Creating wallet: default
Save password to use in the future to unlock this wallet.
Without password imported keys will not be retrievable.
"PW5J3rx7Bfg9zb8Kf2owTytccFyJqtDTrqnUX8iBRRUvbwM8RyzRL"

PW5J3rx7Bfg9zb8Kf2owTytccFyJqtDTrqnUX8iBRRUvbwM8RyzRL必须保存好,解锁钱包时需要使用到这个密码。

4.2 创建两组key
liyuechun:Hello yuechunli$ ./cleos create key
-bash: ./cleos: No such file or directory
liyuechun:Hello yuechunli$ cleos create key
Private key: 5K7QdknUZsF9apdBhD8TDMZGJjw8zJ8esYwS173YyFRv2453Z9t
Public key: EOS5RU8VsYBLnN5snGeUKmt1sDDzpvQbGyW7LPP6qEryaFctYieCK
liyuechun:Hello yuechunli$ cleos create key
Private key: 5J8kComGiQHZyNmH6VvkHgtFggeQemazLpihKR4QW75DNkWTVdA
Public key: EOS5fqiC3VFAJ1riMrKf8vzD28nqd4EpXvZGpXt6YewEBnH8DYinG

4.3 向钱包导入私钥
liyuechun:Hello yuechunli$ cleos wallet import 5K7QdknUZsF9apdBhD8TDMZGJjw8zJ8esYwS173YyFRv2453Z9t
imported private key for: EOS5RU8VsYBLnN5snGeUKmt1sDDzpvQbGyW7LPP6qEryaFctYieCK
liyuechun:Hello yuechunli$ cleos wallet import 5J8kComGiQHZyNmH6VvkHgtFggeQemazLpihKR4QW75DNkWTVdA
imported private key for: EOS5fqiC3VFAJ1riMrKf8vzD28nqd4EpXvZGpXt6YewEBnH8DYinG
4.4 创建账户
liyuechun:cleos yuechunli$ ./cleos create account eosio liyc111 EOS5RU8VsYBLnN5snGeUKmt1sDDzpvQbGyW7LPP6qEryaFctYieCK EOS5fqiC3VFAJ1riMrKf8vzD28nqd4EpXvZGpXt6YewEBnH8DYinG

5. 部署合约

liyuechun:build yuechunli$ cleos set contract liyc111 ./contracts/Hello
Reading WAST/WASM from ./contracts/Hello/Hello.wast...
Assembling WASM...
Publishing contract...
executed transaction: 21d891e425f3d65852432e2b6a78146e2e2992a267c9f28c8ce56cd5dbea98f2  1632 bytes  2200576 cycles
#         eosio <= eosio::setcode               {"account":"liyc111","vmtype":0,"vmversion":0,"code":"0061736d0100000001370b60027f7e0060027e7e006001...
#         eosio <= eosio::setabi                {"account":"liyc111","abi":{"types":[],"structs":[{"name":"hi","base":"","fields":[{"name":"user","t...
liyuechun:build yuechunli$ cleos get code liyc111
code hash: e387951f9a18870f2c151fbceea5b279a3861bdabab58ea87a67296a8a6583d0
liyuechun:build yuechunli$ 

6. 执行合约

6.1 解锁钱包

PW5J3rx7Bfg9zb8Kf2owTytccFyJqtDTrqnUX8iBRRUvbwM8RyzRL是创建钱包是的密码。

liyuechun:build yuechunli$ cleos wallet unlock --password PW5J3rx7Bfg9zb8Kf2owTytccFyJqtDTrqnUX8iBRRUvbwM8RyzRL
Unlocked: default
6.2 执行合约
liyuechun:build yuechunli$ cleos push action liyc111 hi '{"user":"liyc1215"}' -p liyc111
executed transaction: 9abcaec2711ce31c693e5124af507f34aa666702bd5bb230ec31ddd6903248a8  232 bytes  102400 cycles
#       liyc111 <= liyc111::hi                  {"user":"liyc1215"}
>> Hello, liyc1215
liyuechun:build yuechunli$ 
上一篇: XVG恶意挖矿事件透视—“算力优势+时间劫持”攻击案例分析
下一篇: 蚂蚁学堂:比特币钱包地址、私钥和公钥到底是什么关系?
推荐专栏
web3首席知识博主
一位相信价值投资的币圈KOL。稳定盈利的缠论野生交易员 #BTC行情分析师 #价值投资 #链上数据分析
爱Web 3,爱生活,爱科技,爱炒币的老韭菜
热门币种
更多
币种
价格
24H涨跌幅
BTC比特币
¥264,358.04
37,039.98 USDT
-0.08%
ETH以太坊
¥14,381.54
2,015.04 USDT
-0.33%
USDT泰达币
¥7.20
1.01 USDT
+0.03%
BNB币安币
¥1,622.26
227.30 USDT
-0.04%
XRP瑞波币
¥4.34
0.60860 USDT
+1.11%
USDC
¥7.14
1.00 USDT
+0.04%
SOLSolana
¥397.24
55.66 USDT
+0.89%
OKBOK币
¥398.18
55.79 USDT
-1.98%
ADA艾达币
¥2.68
0.37490 USDT
-1.52%
DOGE狗狗币
¥0.55410
0.07765 USDT
-1.04%
热搜币种
更多
币种
价格
24H涨跌幅
Terra Classic
¥0.00
9.433E-5 USDT
-17.92%
Gala
¥0.18
0.025395 USDT
-4.47%
dYdX
¥22.45
3.1738 USDT
-1.74%
比特股
¥0.05
0.006817 USDT
+3.93%
PancakeSwap
¥15.45
2.1845 USDT
-3.6%
Conflux
¥1.07
0.1514 USDT
-3.57%
Filecoin
¥31.38
4.4363 USDT
-1.25%
FTX Token
¥30.21
4.2702 USDT
+16.02%
Shiba Inu
¥0.00
8.12E-6 USDT
-2.52%
Yield Guild Games
¥2.54
0.3591 USDT
-0.91%
比特币
¥262,018.97
37039.98 USDT
-0.08%
比原链
¥0.07
0.010012 USDT
-5.35%
最新快讯
更多
汇丰、恒生、渣打、富邦华一四家外资银行入围首批“数字人民币”业务试点名单
2023-11-28 19:06:57
摩根大通和Apollo计划建立代币化“企业主网”
2023-11-28 19:03:57
Nansen2公测版本上线,新增链上数据异动、智能搜索等功能
2023-11-28 18:59:52
西班牙公民需在明年3月底前申报其海外平台上加密货币持仓
2023-11-28 18:53:43
Nansen2已公开测试
2023-11-28 18:53:38
dYdX基金会:主网启动以来超过1645万DYDX被质押
2023-11-28 18:52:07
NicCarter等比特币倡导者发文:比特币挖矿是清洁能源和平衡电网的关键工具
2023-11-28 18:47:58
下载币界网APP