見出し画像

Suiをローカルネットに接続して、コントラクトを公開してみよう!

Suiではローカルネットに接続して開発することができます。

デフォルトで用意されている環境は、MainnetとTestnet、Devnetがあります。
Local → Dev → Testnetの順番で確認していき問題なければ最後にMainnetにコントラクトを公開する手順が開発の流れとなります。


この記事では、開発者ガイドを参考にローカルネットに接続して簡単なコントラクトをデプロイして、エクスプローラーでトランザクションを確認するまでの手順を紹介します。

ローカルネットに接続するためには、Suiをインストールする必要があります。


次のコマンドでローカルネットを立ち上げます。
引数に--with-faucetと--force-regenesisのオプショナルをつけます。

$ RUST_LOG="off,sui_node=info" sui start --with-faucet --force-regenesis

RUST_LOGで特定のログ記録を出力するように設定できます。
sui_node=infoを指定することで、INFOのみがログ出力されます。

sui startは、ローカルネットを立ち上げるためのコマンドです。
オプショナルの引数を渡すことで、DBやウォレットにいろいろな設定ができます。
使用方法は、sui start --helpで確認できます。

作成したコントラクトをデプロイするには、ガス代としてローカルにSuiが必要になります。
オプショナルの引数に--with-faucetをつけることで、ローカルでSuiを取得する蛇口(フォーセット)が使用できます。

--force-regenesisは、新しいジェネシス(始めのブロック)を生成し、ローカルの状態を保持しないようにします。
このオプションを外すことで、ローカルのトランザクションを永続的に保存できます。

ローカルネットが立ち上がりました。
curlコマンドを実行して、結果が返されるのを確認します。

$ curl --location --request POST 'http://127.0.0.1:9000' \
--header 'Content-Type: application/json' \
--data-raw '{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "sui_getTotalTransactionBlocks",
  "params": []
}'

{"jsonrpc":"2.0","result":"1154","id":1}%


Suiをローカルネットに接続するためにはローカルのRPC URLを追加する必要があります。
エイリアスをlocalにして、ローカルネットを追加します。

$ sui client new-env --alias local --rpc http://127.0.0.1:9000

Added new Sui env [local] to config.


ローカルネットに切り替えます。

$ sui client switch --env local

Active environment switched to [local]


現在のアクティブ環境を確認します。
切り替わったら、localが返却されます。

$ sui client active-env

local


アクティブアドレスを確認します。

$ sui client active-address


ローカルにSuiのトークンを取得します。

$ sui client faucet

Request successful. It can take up to 1 minute to get the coin. Run sui client gas to check your gas coins.


Suiのトークンが取得できたか確認します。

$ sui client gas

╭────────────────────────────────────────────────────────────────────┬────────────────────┬──────────────────╮
│ gasCoinId                                                          │ mistBalance (MIST) │ suiBalance (SUI) │
├────────────────────────────────────────────────────────────────────┼────────────────────┼──────────────────┤
│ 0x706e68ae7b265b705475d617706c1861ddfd68cd5114f972a9d9a5f1ee89f7e1200000000000200.00           │
│ 0x73a3544a0f54e35557d696e94db68961857a8e64e573235f8e9ffa4a61b9fad9200000000000200.00           │
│ 0xa1bffb98a65e327ed4cccc297fb6b7c1b7221f300a2cf0f321e391f29adcc3fe200000000000200.00           │
│ 0xcf4561162c7eba1ae3be84d89073ea9dba5e04c2460d7993c9306141fe0ae6bf200000000000200.00           │
│ 0xee3519da8d3a792314ed828ec4492af877020cf8b36b4f02f06a30c7d037be01200000000000200.00           │
╰────────────────────────────────────────────────────────────────────┴────────────────────┴──────────────────╯


最後にオンラインでトランザクションを確認できるsuiscanに追加したローカルRPCを追加します。

suiscanにアクセスします。


右上のMainnetをクリックして、ローカルのRPC URLを接続します。
RPC URL: http://127.0.0.1:9000


ローカル環境に切り替わりました。


以下の記事に沿って、コインを作成してローカルにデプロイします。


publishしたコントラクトのトランザクションを確認します。

Transaction Digest: Gxcujon9FbU7EJgxwBq2Vi3mXTudgAAQDS3gbCPLWFzD


ローカルネットにトランザクションが生成されたことが確認できました!


いいなと思ったら応援しよう!