アルゴリズムとかオーダーとか

仕事で勉強したことなどをまとめてます

Ethernaut-CTF2024をローカルでやってみる

今年3月ごろに実施していた、EthernautのCTF2024というイベントがあった。
ctf.openzeppelin.com


イベントはすでに終了したが、実はローカルでも同じように回答に正解するとフラグを取得できる本番さながらの環境が構築できるリポジトリが公開されている
github.com
github.com

この記事ではこちらの環境構築手順と、実際に問題に回答するための最初の導入部分について解説する。

  • 事前準備
  • 環境構築手順
  • 問題の回答方法
続きを読む

Hardhat IgnitionのThe next nonce for〜 エラーについて

Hardhatを触り始めていきなりつまづいたエラーだったので、解決策と発生の流れについて自分なりに調べたことをまとめておく。
Hardhatの挙動についてはまだまだ浅学なので内容の正しさについてはご注意を。

  • エラーの内容
  • 解決方法
    • 一番手っ取り早い方法
    • 多分きれいな方法
  • 発生手順
  • 原因
続きを読む

Hardhat Consoleの使い方

TruffleからHardhatに乗り換えたので、よく利用しているConsoleの使い方についてもまとめる。
あまりConsoleを直接叩いてEthereumとやりとりする人は見ない気もするが誰かの参考にでもなれば。
いちばんは自分用のメモ。

Hardhatの導入と基本的な使い方は以前の記事を参考に。
y-nakajo.hatenablog.com

  • accountsの取得
  • balanceの取得
  • contractのインスタンス
  • contract methodの実行
続きを読む

HardHatの基本的な使い方

今更ながらではあるが、2023年9月にConsensysよりTruffleの開発停止が発表された。

consensys.io

上記ブログでは、今後のSmartContractの開発環境はHardhatを利用するようにアナウンスされている。
自分も今までTruffleのみでHardhatは利用していなかったのでこれを機にHardhatの使い方の基本を学ぶ。
ここで取り扱うのはEthereumのSmartContractである。

Hardhat公式ブログのGuidesをやっていく。
hardhat.org

  • 環境
  • 1. hardhatのインストール
  • 2. hardhatプロジェクトの作成(初期化)
  • 3. Contractの作成からデプロイまで
  • 4. テストネットへのデプロイ
  • まとめ
続きを読む

Ethernaut CTFでぼろぼろにされた話(次のためのメモ)

先日(ブログ記事執筆時だと一昨日) OpenZeppelinが主催するEthernaut CTFが開催されていました。

ctf.openzeppelin.com

こちら、オンライン参加可能なので色々と時間もできたタイミングだしということで参加してみました。土日なので本当は近場にお出かけ予定でしたが、優勝賞金でMacBook買ってあげるからという必死の説得によって妻にも参加OKをもらいました。
最終的にはタイトルにある通り全然解けなかったです。
次に参加するためにメモとして参加した後の反省点を残そうと思います。

  • 成績
  • 問題
    • 1問目 ボーナス問題
    • 2問目 フラッシュローン問題
    • 3問目 EVM bytecodeを解析する問題
    • 4問目 Solidityのコード解析問題
  • 反省点
続きを読む

React + Metamask SDKのDappsチュートリアルを公開しました

タイトルの通り、React + Metamask SDKで作成するDappsのチュートリアルを公開しました。
github.com


リッチなDappsを作る場合は、BuidleGuidl もありますが、リッチすぎて基本を押さえるのが難しいと思ったので自前で作ってみました。

内容は非常に簡単なERC20トークンを扱うDappsの作成チュートリアルです。Metamaskとそのほかもろもろの基本の使い方を抑えるのには十分かと思います。

EVMのmemory gas cost

EVMのMemoryは利用サイズに応じてgas costが増加する。具体的にどの程度の値になるのかを調べたので記事に残しておく。

なお、gas costの詳細な計算式は以下の公式サイトを参照
github.com

続きを読む