PancakeSwap

【PancakeSwap】2/4 Starterバニー入れ替わりの原因を調べてみた【NFT】

重要なお知らせ
本記事はNinaがPancakeSwapシェフになる前に書かれたものです。個人の見解であり、PancakeSwapとは無関係です。

もいん!ニナ(@_ninahaus_)🦆です。

2021年2月4日、待ちに待ったPancakeSwap NFTアップデート(Pancakeプロフィール実装)がリリースされました。

【PancakeSwap】待望のNFT関連アップデート!【みんな待ってた】 もいん!ニナ(@_ninahaus_)🦆です。 2021年2月4日、とうとうPancakeSwap NFT...

 

ところが同日に公式からこんなお知らせが出ました。

「現在は修正されているのですが、Starterバニーに間違いがありました。プロフィールにはあなたが選んだのと別のバニーが表示されていると思います。問題を解決するために、別のNFTを無料でお渡しするか、支払ったCAKEをエアドロップしします。」

今回はこの件について調べたことを書きました!

 


2/4 起こった問題:バニーの変身

問題の内容は至ってシンプルです。
ユーザーはPancakeプロフィール作成にあたって5種のStarterバニー(初代NFT持ちはそちらも含む)から1体選びました。しかし、コードのバグで、選んだものと違うバニーがミントされてしまった、ということでした。

公式が早く気付いたこと、修正と併せて補償が発表されたことからユーザー間で炎上することは全くありませんでした。このあたりはさすがPancakeSwap運営です。

2/5 補償のお知らせ

予告通り2月5日に補償が告知されました。
公式がバグに気付いて修正するまでの間にStarterバニーをミントした1800名が対象です。

ニナ
ニナ
勝手に訳しました

 

 

PancakeSwapで「補償受取」を選ぶとおちゃめなメッセージが出ます。
以下は私が英語PancakeSwapから意訳したものです。日本語PancakeSwapにいけば元々日本語だったのかもしれません…。

この情報ではさらなる補償アイテムがあるようなので楽しみですね!

上記の通り、補償でもらったCAKEを別ウォレットに送ってバニーをミントし直しメインウォレットに送らないといけません。
なお新しくミントしたバニーを連れてきても、まだプロフィール編集機能が実装されていないためプロフィールに設定できません。

≪2月10日更新≫
2月9日の時点でプロフィール編集機能が実装されていたようです!!

そんなお知らせなかったよね?

Chungusシェフ
Chungusシェフ
こっそりアプデした
ニナ
ニナ
こっそりならしょうがない。

 

 

で、バグの内容って何?

コーディング経験のある人なら「各バニーに紐づけたラベルがごっちゃになったんだろうなぁ」と思ったはず。
みんな内容気にならない?私は即githubへ行きました。

githubで修正を見てみよう

HachiojiシェフがbunnyIDを直していることが分かります。

Hachiojiシェフ
Hachiojiシェフ
fix: Nft bunny ids

ニナ
ニナ
やっぱりラベルの問題だったね!

修正コミットへのリンクはこちら:
https://github.com/pancakeswap/pancake-frontend/commit/392457593eb84d4a3b1d45e081b871a7d49ccc66

問題の内容 (詳細)

バニーたちの入れ替わりを表にしました。

bunnyコントラクトが取り扱うbunnyidと、pancake-frontendで各bunnyに紐づけていたbunnyidに不一致があったことが原因のようです。
Sleepyのみ合致していたので入れ替わっていません。

ユーザーが
選んだバニー
bunny
コントラクト
バグ時
bunnyid
バグでミント
されたバニー
修正後
bunnyid
Sleepy

bunnyid: 5 bunnyid: 5 Sleepy

bunnyid: 5
Sunny

bunnyid: 9 bunnyid: 6 Dollop

bunnyid: 9
Churro

bunnyid: 8 bunnyid: 7 Twinkle

bunnyid: 8
Dollop

bunnyid: 6 bunnyid: 8 Churro

bunnyid: 6
Twinkle

bunnyid: 7 bunnyid: 9 Sunny

bunnyid: 7

bunnyコントラクトはこちら:
https://bscscan.com/address/0xdf7952b35f24acf7fc0487d01c8d5690a60dba07

ReadContractの「7.getBunnyName」にbunnyidを入力すると、コントラクト内でどのbunnyidがどのStarterバニーに紐づくか分かります。


開発はどうしてバグに気付かなかった?

「テストすれば選択したバニーとミントしたバニーが違うことにすぐ気付くのではないか」と思いません?私もそう思ったのですが、自分がPancakeプロフィールを作ったときのことを思い出しました。

 

作成直後は正しいバニーが表示されていたのです。
その後、どれほど時間が経った頃か分かりませんが、私のDollopはChurroになりました。

このタイムラグの原因はちょっと分かりません。
ただこのラグによってDevがテスト時に気付かなかった可能性が高いと思います。「今は正しいバニーが表示されているけれど、2時間後にStarterバニーが変わるかも~」とか考えてテストしませんからね。

このラグについて、機会があればシェフに訊いてみようと思いますが、分かる方いらっしゃいましたら是非教えてください!

本件に関する日本コミュメンバーの反応

JPユーザー
JPユーザー
すごいなパンケーキ、ほんとに信頼できるわ
JPユーザー
JPユーザー
パンケーキさんは最強。はっきり分かんだね。
JPユーザー
JPユーザー
人気のソシャゲの運営に見えてきたぴょん
JPユーザー
JPユーザー
こんなん普通もみ消すからね。半端ない。
JPユーザー
JPユーザー
ケーキの好感度あがりまくってる

 

バグ実装→修正で好感度が上がる世界線があるってマジ?

ニナ
ニナ
転職するわ!

 

本件に関しては以上です。
予定されている補償アイテム第二弾が楽しみです!🦆🥞💕

【PancakeSwap】待望のNFT関連アップデート!【みんな待ってた】 もいん!ニナ(@_ninahaus_)🦆です。 2021年2月4日、とうとうPancakeSwap NFT...
【PancakeSwap】NFTのこれまでとこれから もいん!ニナ(@_ninahaus_)🦆です。 ただのコレクターズアイテム扱いだったNFTにいよいよ役割が...

 

COMMENT

メールアドレスが公開されることはありません。

CAPTCHA