この半年ほどブログをサボっていましたが、ちょこちょこ活動しているのでその報告です。 イーサリアムnavi にて記事執筆 (不定期) イーサリアムnaviは、Solidity・NFT・Web3などに関するディープな情報を発信しているWebサイトです。 ethereumnavi.com ether…
Hardhatでテストを書くときに、fixtureというのがあります。 テストを実行すると、各テスト項目ごとに、コントラクトのデプロイなど同じ処理を繰り返し行う必要があります。 fixtureを使うと、時間のかかる処理をした後にスナップショットをとって、2回目以…
コード解説 OnChainSlimeのコード解説(1) の続きです。 コードはこちら → PolygonScan
おひさしぶりです。 しばらく忙しくてブログさぼってましたが、そろそろ再開したいと思います。 さて、今日はOnChainSlimeという新作NFTの紹介とコード解説です。
struct(構造体)の初期化でちょっとハマったのでメモ。 (Solidity 0.8.10でテストしています。) Solidity documentation - Types - Structs
遅くなってしまいましたが、ちょっと前に作ったShieldBitmapNFTの紹介とコード解説です。 ShieldBitmapNFTの紹介 NFT第5弾になります。Bitmapライブラリ(@h2uenoさん作)を使ってジェネラティブNFT作ってみました。 フルオンチェーン Polygonメインネット ガ…
Solidityの型変換(キャスト)は少しややこしいので、整理してみました。 uintとint bytesとstring 小さな型/大きな型への変換 intの場合 bytesNとbytes
「100時間後に死ぬNFT」のコード解説の続き 失敗・トラブル編です。
「100時間後に死ぬNFT」のコード解説の続き、SVG編です。 前回の記事 ソースコードはこちら
先日公開した「100時間後に死ぬNFT」のコード解説です。長くなったので2回に分割します。今回はSolidity編です。 100時間後に死ぬNFTの紹介記事 ソースコードはこちら
NFTの第4弾として、「100時間後に死ぬNFT」を作りました。 Claimで新しいNFTを飼って、Feedでエサをあげて育てます。何を言ってるんだ?と思うかもしれませんが、まあ実際に触ってみてください。 飼って育てるNFT !? フルオンチェーンNFT Polygonのメインネ…
長いことプログラマーやってるのですが、恥ずかしながら、今までほとんどテストを書いたことがありません。。。 これではイカンということで、Hardhatでのテストの書き方について調べてみました。 Testing contracts - Hardhat
Hardhatではethers.jsを使っているので、Web UIサイトを作成するときにもweb3.jsではなくethers.jsを使ってみることにしました。 ethers.js ドキュメント
scriptsディレクトリに、デプロイ以外のスクリプトを書いておくこともできます。 私が使っているスクリプトをいくつか紹介します。 tokenURIからSVGファイルを取得する ガス手数料(Gas Fee)を調べる
Hardhatの使い方の続きです。 デプロイファイルの作成 ローカルネットワークへのデプロイ、テスト、コンソール stand-aloneモード マイニングの設定 テストネットにデプロイ スクリプト Etherscan/PolygonscanのVerify コンストラクタに引数がある場合 おわ…
Solidityの開発環境 Hardhat を試してみました。 実行環境は Windows10, VSCode, Node.js 14.17.6 です。 インストール secrets.jsonを作成 hardhat.config.jsを編集 コンパイル テスト Solidityファイル内でconsole.log
MonoPixelNFTの紹介記事 ソースコードはこちら 今回作ったコントラクトをざっと解説していきます。
NFT第3弾として、白黒の16x16ピクセルアートのNFTを作りました。 フルオンチェーンNFT ピクセルアートを描いて、それをNFTとして発行できます(ガス代のみ) 同じピクセルアートは1枚しか発行できません Polygonのメインネットに公開 ピクセルアートを作成す…
OpenSeaではNFTコレクションごとにロゴ画像や説明文が設定できますが、自分で作ったNFTの場合に編集できる場合とできない場合があるので、ちょっとハマりました。 いろいろ調べてみるとRedditに情報がありました。 Can't edit collection : opensea - Reddit…
例えば256個のフラグを管理したいとき、256個のboolを用意するのではなく、 ビット演算を使えば1つのuint256で256個のフラグを管理できるじゃないかと思ったので、方法を調べてみました。 ガスも節約できるはず!? 参考: ビット演算 (bit 演算) の使い方を…
NFT第2弾として、おみくじNFT を作ってみました。
ERC721EnumerableとERC721Burnableを継承してNFTを作って、テストネットにデプロイしたのですが、 mintできなくなってしまいました。 バッドケースとして共有しておきます。
Solidityの多重継承がよくわからなかったので整理。 (C#には多重継承が無いので。。。) 多重継承 ダイヤモンド継承 親と祖父を継承 virtualとoverride 多重継承とoverride ダイヤモンド継承とoverride 実践編: ERC721EnumerableとERC721Burnableを継承する
Nethereumで既存のコントラクトを扱う方法。 ドキュメントでは自作のコントラクトを扱う説明しか見つけられなかったが、既存のコントラクトもソースコード(Solidity)があれば同じように扱える。 VS Code Solidity code generation demo - Nethereum Document…
Truffle Verify Pluginは、EtherscanやPolygonscanにコントラクトのコードを登録するためのプラグイン。 Flattenせずに、ちゃんと複数ファイルで登録してくれる。 GitHub - rkalis/truffle-plugin-verify Automatically verify Truffle smart contracts on E…
Solidityの勉強として、シンプルなフルオンチェーンNFT (HelloNFT) を作ってみました。
Ethereumのテストネット Rinkeby を使おうと思ったのだが、FaucetからETHを取得するのがすごく大変だった。 Faucetはこちら → Rinkeby: Network Dashboard
TruffleでPolygon Testnet (mumbai) にデプロイするまでの手順。 公式ドキュメント → Using Truffle | Polygon Technolgy | Documentation
継承についてのメモ。 親のコンストラクタの引数を指定する方法 多重継承と順番 継承とコンストラクタ
ひさびさにAzure Functionsを使おうとしたら、すごくハマったので、手順をメモしておきます。