Now and Nawoo

NFTの制作記録、技術メモ → C#, Solidity, Blockchain, Bitcoin, Ethereum, NFT

近況報告

この半年ほどブログをサボっていましたが、ちょこちょこ活動しているのでその報告です。 イーサリアムnavi にて記事執筆 (不定期) イーサリアムnaviは、Solidity・NFT・Web3などに関するディープな情報を発信しているWebサイトです。 ethereumnavi.com ether…

Hardhatの使い方メモ(5) - fixture

Hardhatでテストを書くときに、fixtureというのがあります。 テストを実行すると、各テスト項目ごとに、コントラクトのデプロイなど同じ処理を繰り返し行う必要があります。 fixtureを使うと、時間のかかる処理をした後にスナップショットをとって、2回目以…

OnChainSlimeの紹介とコード解説(2)

コード解説 OnChainSlimeのコード解説(1) の続きです。 コードはこちら → PolygonScan

OnChainSlimeの紹介とコード解説 (1)

おひさしぶりです。 しばらく忙しくてブログさぼってましたが、そろそろ再開したいと思います。 さて、今日はOnChainSlimeという新作NFTの紹介とコード解説です。

Solidityメモ: structの初期化

struct(構造体)の初期化でちょっとハマったのでメモ。 (Solidity 0.8.10でテストしています。) Solidity documentation - Types - Structs

ShieldBitmapNFTのコード解説

遅くなってしまいましたが、ちょっと前に作ったShieldBitmapNFTの紹介とコード解説です。 ShieldBitmapNFTの紹介 NFT第5弾になります。Bitmapライブラリ(@h2uenoさん作)を使ってジェネラティブNFT作ってみました。 フルオンチェーン Polygonメインネット ガ…

Solidityメモ: 型変換(キャスト)

Solidityの型変換(キャスト)は少しややこしいので、整理してみました。 uintとint bytesとstring 小さな型/大きな型への変換 intの場合 bytesNとbytes

100時間後に死ぬNFT のコード解説(3) 失敗・トラブル編

「100時間後に死ぬNFT」のコード解説の続き 失敗・トラブル編です。

100時間後に死ぬNFT のコード解説(2) SVG

NFT

「100時間後に死ぬNFT」のコード解説の続き、SVG編です。 前回の記事 ソースコードはこちら

100時間後に死ぬNFT のコード解説(1) Solidity

先日公開した「100時間後に死ぬNFT」のコード解説です。長くなったので2回に分割します。今回はSolidity編です。 100時間後に死ぬNFTの紹介記事 ソースコードはこちら

100時間後に死ぬNFT を作りました

NFTの第4弾として、「100時間後に死ぬNFT」を作りました。 Claimで新しいNFTを飼って、Feedでエサをあげて育てます。何を言ってるんだ?と思うかもしれませんが、まあ実際に触ってみてください。 飼って育てるNFT !? フルオンチェーンNFT Polygonのメインネ…

Hardhatの使い方メモ(4) テスト

長いことプログラマーやってるのですが、恥ずかしながら、今までほとんどテストを書いたことがありません。。。 これではイカンということで、Hardhatでのテストの書き方について調べてみました。 Testing contracts - Hardhat

ethers.js 使い方メモ

Hardhatではethers.jsを使っているので、Web UIサイトを作成するときにもweb3.jsではなくethers.jsを使ってみることにしました。 ethers.js ドキュメント

Hardhatの使い方メモ(3) scripts

scriptsディレクトリに、デプロイ以外のスクリプトを書いておくこともできます。 私が使っているスクリプトをいくつか紹介します。 tokenURIからSVGファイルを取得する ガス手数料(Gas Fee)を調べる

Hardhatの使い方メモ (2) デプロイ~Verify

Hardhatの使い方の続きです。 デプロイファイルの作成 ローカルネットワークへのデプロイ、テスト、コンソール stand-aloneモード マイニングの設定 テストネットにデプロイ スクリプト Etherscan/PolygonscanのVerify コンストラクタに引数がある場合 おわ…

Hardhatの使い方メモ (1) セットアップ~コンパイル

Solidityの開発環境 Hardhat を試してみました。 実行環境は Windows10, VSCode, Node.js 14.17.6 です。 インストール secrets.jsonを作成 hardhat.config.jsを編集 コンパイル テスト Solidityファイル内でconsole.log

MonoPixelNFTのコード解説

MonoPixelNFTの紹介記事 ソースコードはこちら 今回作ったコントラクトをざっと解説していきます。

白黒ピクセルアートNFTを作りました (MonoPixelNFT)

NFT

NFT第3弾として、白黒の16x16ピクセルアートのNFTを作りました。 フルオンチェーンNFT ピクセルアートを描いて、それをNFTとして発行できます(ガス代のみ) 同じピクセルアートは1枚しか発行できません Polygonのメインネットに公開 ピクセルアートを作成す…

OpenSeaで自作のNFTを編集できない場合

OpenSeaではNFTコレクションごとにロゴ画像や説明文が設定できますが、自分で作ったNFTの場合に編集できる場合とできない場合があるので、ちょっとハマりました。 いろいろ調べてみるとRedditに情報がありました。 Can't edit collection : opensea - Reddit…

Solidityメモ: ビット演算

例えば256個のフラグを管理したいとき、256個のboolを用意するのではなく、 ビット演算を使えば1つのuint256で256個のフラグを管理できるじゃないかと思ったので、方法を調べてみました。 ガスも節約できるはず!? 参考: ビット演算 (bit 演算) の使い方を…

おみくじNFTを作りました

NFT第2弾として、おみくじNFT を作ってみました。

失敗談: NFTを作ったらmintできなくなってしまった

ERC721EnumerableとERC721Burnableを継承してNFTを作って、テストネットにデプロイしたのですが、 mintできなくなってしまいました。 バッドケースとして共有しておきます。

Solidityメモ: 多重継承

Solidityの多重継承がよくわからなかったので整理。 (C#には多重継承が無いので。。。) 多重継承 ダイヤモンド継承 親と祖父を継承 virtualとoverride 多重継承とoverride ダイヤモンド継承とoverride 実践編: ERC721EnumerableとERC721Burnableを継承する

Nethereumで既存のコントラクトを扱う

C#

Nethereumで既存のコントラクトを扱う方法。 ドキュメントでは自作のコントラクトを扱う説明しか見つけられなかったが、既存のコントラクトもソースコード(Solidity)があれば同じように扱える。 VS Code Solidity code generation demo - Nethereum Document…

Truffle Verify Plugin の使い方

Truffle Verify Pluginは、EtherscanやPolygonscanにコントラクトのコードを登録するためのプラグイン。 Flattenせずに、ちゃんと複数ファイルで登録してくれる。 GitHub - rkalis/truffle-plugin-verify Automatically verify Truffle smart contracts on E…

シンプルなフルオンチェーンNFTを作りました

Solidityの勉強として、シンプルなフルオンチェーンNFT (HelloNFT) を作ってみました。

RinkebyのFaucet

Ethereumのテストネット Rinkeby を使おうと思ったのだが、FaucetからETHを取得するのがすごく大変だった。 Faucetはこちら → Rinkeby: Network Dashboard

Truffle 使い方メモ (2) Polygon Testnetにデプロイ

TruffleでPolygon Testnet (mumbai) にデプロイするまでの手順。 公式ドキュメント → Using Truffle | Polygon Technolgy | Documentation

Solidityの学習メモ: 継承

継承についてのメモ。 親のコンストラクタの引数を指定する方法 多重継承と順番 継承とコンストラクタ

Azure Functions 使い方メモ (VS2019)

C#

ひさびさにAzure Functionsを使おうとしたら、すごくハマったので、手順をメモしておきます。