HiÐΞClassic

[Solidity 初心者] 勉強を始めるならこれ

cafe developer
3 years ago
Solidity 勉強開発環境以下Truffle チュートリアルで、私がつまずいた点です。

どうもWeb3 開発初心者です。言語としてのSolidity 勉強、および開発環境を整えるにあたり参考にしたリソースをご紹介します。

Solidity 勉強

Solidity の勉強はこの動画一択でした。非常にわかりやすく、Remix を同様のコードを自分のブラウザで実行し、手を動かして勉強できます。 Remix はブラウザでのみ動き、環境の構築が不要なため、言語の勉強には最適でした。もっと評価されて良いです。
ブロックアカデミー様の動画プレイリストリンク

開発環境

同じ作者様の動画で、Dex 風のアプリ作成を紹介なさっていますが、少し難易度が上がっており、Web ページからチェーン上のスマートコントラクトにアクセスする部分の全体像が(私がアホなために)少し掴み辛いです。
この動画と併せて、Truffle というローカル環境でテスト用Ethereum ノードを構築可能なサービスのチュートリアルをお勧めします。
Truffle 公式Pet Shop チュートリアル
このチュートリアルでは、コントラクトの作成、デプロイ、テスト、フロントエンドの作成までカバーしてくれる優れものです。

この2つをカバーすれば、DApp 作成を体験できます。 ブロックチェーンはDB のような扱いにもできると感じることができるはず。


以下Truffle チュートリアルで、私がつまずいた点です。

つまずき1

テストスクリプト内のこの行なのですが、adopters はアレイ address[16] public adopters なのに、なんで[]でインデックス指定しねえの?

const adopter = await adoption.adopters(8);

アレイやマッピングは()の中の数字でインデックスを指定する仕様です。例えば

contract foobar {
    int public foo;
    int[] public bar;
}
// foo の値取得時
foobarInstance.foo()
// 0 番目のbar の値取得時
foobarInstance.bar(0)

つまずき2

同テストスクリプト内、adopt() は1つのパラメーターしかいらないはずなのに、{ from: accounts[0] }あなたは誰ですか。

await adoption.adopt(8, { from: accounts[0] });

ざっくりいうと、Solidity では追加でオブジェクトを指定可能です。
このパラメーターはトランザクションの一部を変更することが可能です。上記の例だとこのトランザクションはaccount[0]により実行されるように指定しています。
またこのパラメーターは、最後に指定される必要があります。


つまずき3

window.ethereum あなた誰?

基本的に、UI 側は以下の作業を実施する必要があります。

  • Ethereum プロバイダーの検知 (window.ethereum)
  • どのEthereum ネットワークに接続しているかの確認
  • ユーザーの Ethereum アカウント取得


コメント
いいね
投げ銭
最新順
人気順
cafe developer
3 years ago
コメント
いいね
投げ銭
最新順
人気順
トピック
アプリ

Astar Network

DFINITY / ICP

NFT

DAO

DeFi

L2

メタバース

BCG

仮想通貨 / クリプト

ブロックチェーン別

プロジェクト

目次
Tweet
ログイン