Nethereum 入門 (1) - 事始め
「Nethereum」の使い方を軽くまとめました。
1. Nethereum
「Nethereum」は、Ethereumノードとへのアクセスとスマートコントラクトの管理を簡単に行うための.Netライブラリです。
2. 開発環境の準備
「Nethereum」 を利用するには、「.Net Core」または「.Net Framework」 (4.5.1 以降) が必要です。
今回は、「.Net Core 3.1」をインストールします。インストール手順は、以下で紹介しています。
3. はじめてのアプリの作成
はじめてのアプリの作成手順は、次のとおりです。
(1) 以下のコマンドでプロジェクト作成。
"NethereumSample"という名前のプロジェクトを作成します。
$ dotnet new console -o NethereumSample
$ cd NethereumSample
(2) Nethereum.Web3パッケージの参照を追加し、プロジェクトパッケージをリストア (更新 / ダウンロード)。
$ dotnet add package Nethereum.Web3
$ dotnet restore
(3) 「Program.cs」のコードを以下のように編集。
Infuraなどのパブリックノードを使用してEthereumメインネットに接続し、アカウントの残高を確認するコードになります。
using System;
using System.Threading.Tasks;
using Nethereum.Web3;
namespace NethereumSample
{
class Program
{
static void Main(string[] args)
{
GetAccountBalance().Wait();
Console.ReadLine();
}
static async Task GetAccountBalance()
{
// メインネットに接続
// <自身のプロジェクトID>はInfuraで生成した自身のプロジェクトIDと置き換える
var web3 = new Web3("https://mainnet.infura.io/v3/<自身のプロジェクトID>");
// イーサリアム財団のアカウントの残高の確認
var balance = await web3.Eth.GetBalance.SendRequestAsync("0xde0b295669a9fd93d5f28d9ec85e40f4cb697bae");
Console.WriteLine($"Balance in Wei: {balance.Value}");
// weiをetherに変換
var etherAmount = Web3.Convert.FromWei(balance.Value);
Console.WriteLine($"Balance in Ether: {etherAmount}");
}
}
}
◎ INFURAでのプロジェクトIDの取得
「INFURA」にサインアップして、プロジェクトを作成して、そのプロジェクトの「PROJECT ID」をコード内の<自身のプロジェクトID>に記述します。(「ENDPOINT」をまるまる記述するも可)
「INFURA」は、開発者が簡単にEthereumをテストできるように、Ethereumノードと便利なAPIを提供してくれるサービスになります。
◎ イーサリアムの単位
イーサリアムにはイーサという通貨があり、基本単位は「ether」です。1 ether、2ether、3 ether… (または1ETH、2ETH、3ETH…)と数えます。「wei」はイーサの最小単位で、1 wei = 0.000000000000000001 ether になります。
(3) 以下のコマンドで実行。
プロジェクトフォルダ直下で「dotnet run」を実行し、アカウントの残高が表示されることを確認します。
$ dotnet run
Balance in Wei: 343270355903185816963191
Balance in Ether: 343270.355903185816963191
4. Nethereum Playground
「Nethereum Playground」では、ブラウザ上で「Nethereum」のサンプルを実行して試すことができます。「Select sample」でサンプルを選択して、「Compile and Execute」で実行します。