クリプト

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
クリプト

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

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

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

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

ジョークコインとして出発したDogecoin(ドージコイン)の誕生から現在まで。注目される非証券性🐶

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

ブロックチェーンの51%攻撃ってなに

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

17万円のPCでTwitterやってるのはもったいないのでETHマイニングを始めた話

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

スーパーコンピュータ「京」でマイニングしたら

Like token Tip token
1.06k ALIS
Eye catch
クリプト

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

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

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

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

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

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

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

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

【DeFi】複利でトークンを運用してくれるサイト

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

Uniswap(ユニスワップ)で$ALISのイールドファーミング(流動性提供)してみた

Like token Tip token
59.99 ALIS