内容としては、表題のとおり。もともと、プラグイン(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の利用規約に同意したかどうかのフラグ」なんてものは不要だったのである。
というわけで前日の実装は撤回して別の実装となるのであった……。
コメント