hanzochang
hanzochang
thirdwebのfront実装の小ネタ
解説
claim phase
nftDrop?.claimConditions.getActive()
ethers.utils.formatUnits(activeClaimCondition.price.\_hex)
https://s3.ap-northeast-1.amazonaws.com/hanzochang.com/11_Thumbnail_Image_3776b19c38.png

[TIPS] thirdwebのMINT時priceを表示する - thirdwebのフロントエンド実装

thirdwebのフロントエンド実装についての記事です。ReactでのNFTDropのMINTの価格の実装方法がわかります。

公開日2022.06.14

更新日2022.06.14

thirdwebのfront実装の小ネタ

thirdwebでNFTDropを使ったフロントエンド実装時に、 ユーザーにMINTする時のETHの価格を表示する方法は下記の通り。

import { useNFTDrop } from '@thirdweb-dev/react'
import { ethers } from 'ethers'
import { useEffect, useState } from 'react'

const Component: React.FC = () => {
  const nftDrop = useNFTDrop('<Your NFTDrop Address>')
  const [mintPrice, setMintPrice] = useState<string>('')

  useEffect(() => {
    nftDrop?.claimConditions.getActive().then((activeClaimCondition) => {
      setMintPrice(ethers.utils.formatUnits(activeClaimCondition.price._hex))
    })
  }, [])

  return <>{mintPrice}ETH</>
}

解説

claim phase

NFTDropで作成したClaimPhasesで設定した、MINT条件を指す。

11_01 (1).png

nftDrop?.claimConditions.getActive()

https://portal.thirdweb.com/typescript/sdk.dropclaimconditions.getactive

Metamaskを起動している自分のウォレットに対して、現在有効なclaimableな条件を取得する

ethers.utils.formatUnits(activeClaimCondition.price._hex)

_hexのパラメータはそのままだと人間には読めない文字列なので、 ethersのformatUnitsを利用して、ETH単位に変換する。

ethers Display Logic and Input https://docs.ethers.io/v5/api/utils/display-logic/#unit-conversion (ethersはethereumのjsライブラリ。thirdwebSDK利用には必須なため、インストールしているはず。)

picture
hanzochang - 半澤勇大
慶應義塾大学卒業AOI Pro.にてWebプランナーとして勤務。 ナショナルクライアントのキャンペーンサイトの企画・演出を担当。 その後開発会社に創業メンバーとして参加。 Fintech案件や大手企業のDXプロジェクトに関わり、その後個人事業主として独立。 2023年にWeb3に特化した開発会社として法人化。 2017年ごろより匿名アカウントでCryptoの調査等を行い、 ブロックチェーンメディアやSNSでビットコイン論文等の図解等を発信。
X (Twitter)

お問い合わせはこちらから

ご希望に応じて職務経歴書や過去のポートフォリオを提出可能ですので、必要な方はお申し付けください。
また内容とによっては返信ができない場合や、お時間をいただく場合がございます。あらかじめご了承ください。