チュートリアル「Create an NFT and deploy to a public testnet, using Truffle」のエラー対応

NFT作成の下記チュートリアルを実行していったときに発生したエラーの対応メモ。

Create an NFT and deploy to a public testnet, using Truffle - Guides and Tutorials - OpenZeppelin Community

「nft.baseURI is not a function」エラー

truffle(develop)> await nft.baseURI()
Uncaught TypeError: nft.baseURI is not a function
    at evalmachine.<anonymous>:1:13

仕様が変わったらしくエラーになるが無視でよい。なお、代替コマンドを探したが発見できず。

「HDWalletProvider is not defined」エラー

$ npx truffle console --network rinkeby
ReferenceError: HDWalletProvider is not defined
・・・
Truffle v5.4.16 (core: 5.4.16)
Node v12.22.7

@truffle/hdwallet-provider をインストールする。

$ npm install @truffle/hdwallet-provider

truffle-cofig.jsの以下をコメントアウトしてアクティブにする。

// const HDWalletProvider = require('@truffle/hdwallet-provider');
// 
// const fs = require('fs');
// const mnemonic = fs.readFileSync(".secret").toString().trim();

「ReferenceError: mnemonic is not defined」エラー

$ npx truffle console --network rinkeby
ReferenceError: mnemonic is not defined
・・・
Truffle v5.4.16 (core: 5.4.16)
Node v12.22.7

.secretファイルをルートに作成して、rinkebyのtestnet用に作成したウォレット(MetaMask)のニーモニックを直書きする。

作成するのはsecrets.jsonではないため要注意。おそらく現在は仕様が変わった?