【BSC】Pancake Bunnies
明けましておめでとうございます。
今年はもっと本格的に仮想通貨分野の動向や技術を追っていき、自分でも新しいサービスをはじめられればと思っています。 どうぞよろしくお願いします。
2020年12月31日にようやく🥞PancakeSwap🐰のNFT600個が出揃いましたね。
(このうち110個はすでにburnされているため有効なのは490個)
このNFTがいったいどのように使われるのかまだ分かりませんが、『Phase 2.0』がとても待ち遠しいです!
NFTの種類
BlueberriesとCircularが少なめですね。
DEGOで売られている値段にもその傾向が表れているように思います。ただ、NFTの種類ごとの使われ方の違いによって、今後、値段の傾向は変わっていくかもしれません。
Type | bunnyId | minted | burned | count | % |
---|---|---|---|---|---|
Swapsies | 0 | 175 | 63 | 112 | 23% |
Drizzle | 1 | 117 | 16 | 101 | 21% |
Blueberries | 2 | 80 | 6 | 74 | 15% |
Circular | 3 | 77 | 4 | 73 | 15% |
Sparkle | 4 | 151 | 21 | 130 | 27% |
(total) | 600 | 110 | 490 |
BscScan Holder Chart
BscScanで見ると、2021/1/1時点で、Burnが110、次いでDEGOが占めていますでしょうか。全種類集めている方もそれなりにいるみたいですね。
https://bscscan.com/token/tokenholderchart/0xdf7952b35f24acf7fc0487d01c8d5690a60dba07
※2021年1月1日現在のBscScanサイトの画面スナップショットより
NFTの使い道?
NFTは残念ながら当たりませんでしたが、DEGOで入手できたので、NFTを使ったこれからの企画に参加することができそうです。売られている価格が高いのか安いのはまだ何とも言えませんが、自分が購入したときよりは上がっているようです。
CakeSwapよりも前にはじまったBakerySwapでは、ComboというNFTを持っているとStaking Powerがアップする効果がありました。CakeSwapのNFTにも何らかの特典があるのではと期待しています。(NFTを持っている🐰だけが浸かれるPoolとか???)
Access to Smart Contract
Binance Smart Chainを使いながらEthereumを学んでいます。今回はPancakeSwapのNFTを例に、プログラムからどのようにデータを取得できるかについて調べてみたいと思います。
なお、以下のBscScanのRead Contractからでもデータは確認することは可能です。
Ethers
Ethereum(およびBSCなどのEVM互換)へアクセスするJavaScriptライブラリとして、web3.jsのほかにも、Ethersというものがありますので、これを使ってみたいと思います。
npm install --save ethers
TypeChain
JavaScript/TypeScriptからスマートコントラクトを呼び出すI/Fを生成する便利なツールとして、TypeChainというものがあるのを最近知りましたので、使ってみたいと思います。2021/1/1時点で最新のEthers V5向けにI/Fを生成するには、以下のようにコマンドを実行します。
npm install --save-dev typechain @typechain/ethers-v5
PancakeBunnies ABI
PancakeBunniesのスマートコントラクトにアクセスするためのI/Fが記述されたABI (Application Binary Interface)は、以下のような方法で取得できます。src/contractsというディレクトリを用意して、その下にPancakeBunnies.abiというファイル名でABIを保存しておきます。
wget \ -O src/contracts/PancakeBunnies.abi \ 'https://api.bscscan.com/api?module=contract&action=getabi&address=0xdf7952b35f24acf7fc0487d01c8d5690a60dba07&format=raw'
ABIがダウンロードできたら、typechainで生成してみましょう。
./node_modules/.bin/typechain --target ethers-v5 --outDir src/contracts src/contracts/PancakeBunnies.abi
src/contractsにPancakeBunniesのスマートコントラクトI/Fプログラムが出力されますので、呼び出してみましょう。 たとえば、totalSupplyを見てみたい場合には、以下のようなプログラムでよいでしょう。
プログラム例 (test.ts)
import { ethers } from 'ethers'; import { PancakeBunnies__factory } from './contracts'; const BSC_RPC_ENDPOINT = 'https://bsc-dataseed.binance.org/'; const PANCAKE_BUNNIES_ADDRESS = '0xDf7952B35f24aCF7fC0487D01c8d5690a60DBa07'; async function main() { const provider = new ethers.providers.JsonRpcProvider(BSC_RPC_ENDPOINT); const pancakeBunnies = PancakeBunnies__factory.connect(PANCAKE_BUNNIES_ADDRESS, provider); const totalSupply = (await pancakeBunnies.totalSupply()).toNumber(); console.log(totalSupply); } main();
実行例
490
今後、ブロックチェーン技術を活用したWebアプリケーションをつくる場合などに、あるNFTを持っている人だけがアクセスできるページをつくるといったような応用もできるかもしれません。