クリプト

EOS編 スマートコントラクトチュートリアル① -Hello World-

syuta's icon'
  • syuta
  • 2019/08/14 06:46

 

versions eosio 1.7.0. eosio.cdt 1.6.1 eosio.contracts 1.5.2

どうも!こんにちは! dappsの開発プラットフォームであるdappStartのエンジニアの管原(https://twitter.com/Niggaz613)です。

今回から「ブロックチェーンで何かプロダクトを作りたい!」とか「EOS興味あるけどどうやって開発進めればいいんだ!」っていうwebエンジニアの方々へ向けてスマートコントラクトのチュートリアルを投稿していきたいと思います!

今回は第一回ということで、まず一番簡単な「Hello World」のスマートコントラクトを書いていきましょう!

EOSのスマートコントラクトは現状、C++で記述するのですがC++の経験がないプログラマーの方でもわかるように説明していきたいと思います!

なお、スタートする以前に環境構築とコンパイルツールのインストールをお願いします!

環境構築↓

https://developers.eos.io/eosio-home/docs/setting-up-your-environment?source=post_page-----3eb3ce098e28----------------------

 

コンパイルツール↓

https://developers.eos.io/eosio-home/docs/installing-the-contract-development-toolkit

それではチュートリアルに移ります。まず最初に完成形から確認しちゃいましょう!

 

#include <eosio/eosio.hpp>

using namespace eosio;

class hello : public contract {

  public:

      using contract::contract;

      [[eosio::action]]

      void hi( name user ) {

         print( "Hello, ", user);

      }

};

 

はい!たったの10行です!大きく3つに分解しましょう。

 

#include <eosio/eosio.hpp> ②

using namespace eosio; ③

class hello : public contract {

  public:

      using contract::contract;

      [[eosio::action]]

      void hi( name user ) {

         print( "Hello, ", user);

      }

};

 

①[include文]外部ファイルやライブラリの読み込みに使用されます。ここではeosio.hppというeosioを使用する上で必要なヘッダファイルを読み込んでいます。

「ヘッダファイルって何?」と思った方はこちらをどうぞ!https://wa3.i-3-i.info/word12026.html

② [using ディレクティブ] using namespase 名前空間;という形で使用します。名前空間の位置で記述した名前空間名を今後省略できます。詳しくはこちら→https://marycore.jp/prog/cpp/using-directive/

③こちらがコントラクトの本体といってもいいでしょう。

class hello : public contract {

  public:

      using contract::contract;

      [[eosio::action]]

      void hi( name user ) {

         print( "Hello, ", user);

      }

};

 

1行目 class hello : public contract

contractクラスを継承したhelloコントラクトの宣言をしています。

 

2行目 public:

パブリックアクセス修飾子です。これ以下に記載されるfunctionやデータを外部から呼び出し可能と明示しています。

 

3行目 using contract::contract;

using宣言です!簡潔に書くために記載しています。

 

4行目 [[eosio::action]]

アクションはコントラクトの具体的な振る舞いを定義できます。そしてそれをコンパイラに対して明示するためにこの文を記載する必要があります。

 

5〜7行目

void hi( name user ) {

         print( "Hello, ", user);

      }

hi→アクション名

name→データタイプ. nameタイプの引数userを定義しています。

以上です!

エラーが出たらまずバージョンを確認しましょう!

バージョンによって若干書き方が異なります。

それから本番環境で使用する場合はセキュリティなどに配慮して多少書き加えが必要な可能性があります。

それではまた次回!

質問、間違い等あれば気軽にコメントしてください!

telegramグループにご参加いただけば質問にお答えできるかもです!

https://t.me/dappstart

記事に関しては今後どしどし更新しtwitterアカウントでお知らせして行きます!

https://twitter.com/dappstart1

_________________________________

私たちは下記のサービスを運営しております。

今後ユーザーの方々のご意見を元にコンテンツやデプロイツールなどの開発を行っていくので気軽にお声がけください!

dapps開発やdapps以外の開発案件のご相談も下記のアドレスへ気軽にどうぞ!

dappstart@gmail.com

サービス紹介

■Dapps開発者向けプラットフォーム「dappStart」

https://dapp-start.herokuapp.com/

<目的>ブロックチェーン開発者の開発・学習コストを下げること

<サービス機能>

①ブロックチェーン開発者向けの情報提供

②GUIやドキュメントを用いた無料Deployツールの提供

・deployツール紹介動画

https://www.youtube.com/watch?v=PwwMgZFvBuM

③開発者同士のコミュニティ

_________________________________

Supporter profile iconSupporter profile icon
Article tip 2人がサポートしています
獲得ALIS: Article like 8.33 ALIS Article tip 11.10 ALIS
syuta's icon'
  • syuta
  • @syuta
ソフトウェアエンジニアです!よろしくお願い致します!

投稿者の人気記事
コメントする
コメントする
こちらもおすすめ!
Eye catch
クリプト

Bitcoin史 〜0.00076ドルから6万ドルへの歩み〜

Like token Tip token
947.13 ALIS
Eye catch
クリプト

UNISWAPでALISをETHに交換してみた

Like token Tip token
40.40 ALIS
Eye catch
クリプト

【初心者向け】JPYCを購入して使ってみました!

Like token Tip token
30.03 ALIS
Eye catch
クリプト

NFT解体新書・デジタルデータをNFTで販売するときのすべて【実証実験・共有レポート】

Like token Tip token
121.79 ALIS
Eye catch
クリプト

約2年間ブロックチェ-ンゲームをして

Like token Tip token
61.20 ALIS
Eye catch
クリプト

クリプトスペルズで入手したMCHCを引き出す方法

Like token Tip token
196.20 ALIS
Eye catch
クリプト

Polygon(Matic)で、よく使うサイト(DeFi,Dapps)をまとめてみた

Like token Tip token
236.30 ALIS
Eye catch
クリプト

【第8回】あの仮想通貨はいま「テレグラム-TON/Gram」

Like token Tip token
69.90 ALIS
Eye catch
クリプト

【初心者向け】$MCHCの基本情報と獲得方法

Like token Tip token
32.32 ALIS
Eye catch
クリプト

CoinList(コインリスト)の登録方法

Like token Tip token
15.55 ALIS
Eye catch
クリプト

2021年1月以降バイナンスに上場した銘柄を140文字以内でざっくりレビュー(Twitter向け情報まとめ)

Like token Tip token
38.10 ALIS
Eye catch
クリプト

コインチェックに上場が決まったEnjin Coin(エンジンコイン)コインを解説

Like token Tip token
21.49 ALIS