こんにちは!ニナ(@_ninahaus_)🦆です。
2021年2月4日、待ちに待ったPancakeSwap NFTアップデート(Pancakeプロフィール実装)がリリースされました。

ところが同日に公式からこんなお知らせが出ました。
「現在は修正されているのですが、Starterバニーに間違いがありました。プロフィールにはあなたが選んだのと別のバニーが表示されていると思います。問題を解決するために、別のNFTを無料でお渡しするか、支払ったCAKEをエアドロップしします。」
There was a mix up with the starter NFTs which has now been fixed, but this means you may now see a different NFT in your profile.
To sort this out we will either be giving you another NFT for free or airdropping the CAKE you spent to mint it back to you.
Update tomorrow https://t.co/y6XfVJbGK2
— PancakeSwap 🥞 #BSC (@PancakeSwap) February 4, 2021
今回はこの件について調べたことを書きました!
2/4 起こった問題:バニーの変身
問題の内容は至ってシンプルです。
ユーザーはPancakeプロフィール作成にあたって5種のStarterバニー(初代NFT持ちはそちらも含む)から1体選びました。しかし、コードのバグで、選んだものと違うバニーがミントされてしまった、ということでした。
公式が早く気付いたこと、修正と併せて補償が発表されたことからユーザー間で炎上することは全くありませんでした。このあたりはさすがPancakeSwap運営です。
2/5 補償のお知らせ
予告通り2月5日に補償が告知されました。
公式がバグに気付いて修正するまでの間にStarterバニーをミントした1800名が対象です。
昨日NFTを手に入れた最初の1800名は、バグで注文と違うNFTに入れ替わってしまっていますぴょん
シェフがきちんとバグ修正したぴょん
ウォレット接続時に🎁贈り物が到着🎁表示があるので、それをクリックして4CAKE受け取るぴょん#PancakeSwap https://t.co/T0GsVS5NQg
— nina🥞 (@_ninahaus_) February 5, 2021
PancakeSwapで「補償受取」を選ぶとおちゃめなメッセージが出ます。
以下は私が英語PancakeSwapから意訳したものです。日本語PancakeSwapにいけば元々日本語だったのかもしれません…。
この情報ではさらなる補償アイテムがあるようなので楽しみですね!

上記の通り、補償でもらったCAKEを別ウォレットに送ってバニーをミントし直しメインウォレットに送らないといけません。
なお新しくミントしたバニーを連れてきても、まだプロフィール編集機能が実装されていないためプロフィールに設定できません。
≪2月10日更新≫
2月9日の時点でプロフィール編集機能が実装されていたようです!!
そんなお知らせなかったよね?
で、バグの内容って何?
コーディング経験のある人なら「各バニーに紐づけたラベルがごっちゃになったんだろうなぁ」と思ったはず。
みんな内容気にならない?私は即githubへ行きました。
githubで修正を見てみよう
HachiojiシェフがbunnyIDを直していることが分かります。
修正コミットへのリンクはこちら:
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プロフィールを作ったときのことを思い出しました。
フライ返しチームとと風前の灯火チームの皆さま!BULLRUN STORMチームと対戦よろしくお願いします
(格闘試合前の喧嘩売り)#PankaceSwap #NFT pic.twitter.com/vkqnRJkmak— nina🥞 (@_ninahaus_) February 4, 2021
作成直後は正しいバニーが表示されていたのです。
その後、どれほど時間が経った頃か分かりませんが、私のDollopはChurroになりました。
このタイムラグの原因はちょっと分かりません。
ただこのラグによってDevがテスト時に気付かなかった可能性が高いと思います。「今は正しいバニーが表示されているけれど、2時間後にStarterバニーが変わるかも~」とか考えてテストしませんからね。
このラグについて、機会があればシェフに訊いてみようと思いますが、分かる方いらっしゃいましたら是非教えてください!
本件に関する日本コミュメンバーの反応
バグ実装→修正で好感度が上がる世界線があるってマジ?
本件に関しては以上です。
予定されている補償アイテム第二弾が楽しみです!🦆🥞💕

