朝令暮改

内容としては、表題のとおり。もともと、プラグイン(PHPのコード)でEthereumメインネットはこのPublic RPC URLが使える、SepoliaテストネットならこのPublic RPC URLが使える、といったようにRPC URLをハードコーディングしていた。

これは、RPC URLをどこかから拾ってこなくても、そのPublic RPC URLの利用規約にさえ同意すれば使えるように、という利便性を向上させるための仕様であった。利用者の門戸を広げる、という意味でなるべく簡単に使えるようにすることが目的である。

これを実現するため、RPC URLのハードコーディングと、規約に同意したかどうかをDBに持たせる処理を記述していた。規約に同意している情報がDBから取得できれば、ハードコーディングされているRPC URLを使ってサーバーからOracleへアクセスし、レート情報などが取得できる。そんな具合だ。

じゃぁ規約に同意したくない場合はどうなるか。それはユーザーがRPC URLを登録することになる。

このように考え、「ユーザーが登録したRPC URL」と「ハードコードされたRPC URLの利用規約に同意したかどうかのフラグ」の2種類をDBに保持していた。

その実装が終わってから気づいた。「ハードコードされたRPC URL」、これサーバー側で持つ必要なくないか?って。

フロントエンドで利用規約のリンクとボタンを配置して、ボタンを押すことでRPC URLをユーザー登録させるフローにすれば「RPC URLの利用規約に同意したかどうかのフラグ」なんてものは不要だったのである。

というわけで前日の実装は撤回して別の実装となるのであった……。

コメント

This website stores cookies on your computer. These cookies are used to provide a more personalized experience and to track your whereabouts around our website in compliance with the European General Data Protection Regulation. If you decide to to opt-out of any future tracking, a cookie will be setup in your browser to remember this choice for one year.

Accept or Deny