Tera web3 story

日本酒のNFT開発がスタートされている

Day14

日本酒のNFT

自分も日本酒のNFTはとても魅力を感じていて

こちらの記事を読んで胸が熱くなりました

ラベルに目がいくNFTですがもっと規模が大きくなって

全ての日本酒のボトルがNFTになる未来

それこそ、日本の誇れる名産になるでしょうし世界から親しまれるものになる

発売日は未定で醸造元もまだ不明

岐阜のどこの酒蔵なんだろう

注目してしまう

色んなNFT作品をザッピングして見てきて感じるのが

英語発信がデファクトスタンダードに収束されていくのだと思う

国内で需要を高めることに母国語を使うことはそれがベストだろうけど

マーケットは全て英語になる

確かに英語が無くても生活できるかもしれない

けれど、スマホがどれだけ人間の生活に大きな貢献をもたらしているかを考え

スマホが無い世界を考えるとその不自由さや失われる豊かさは想像に難くない

英語ができて使えることは大きな力になる

今日の学習

今日のレクチャー動画

ERC20コントラクトの作成

レクチャーで作成したコードはgithubへ

前回のチュートリアルと同じような内容だったので理解はスムーズ

これが初見であったら全く理解できなかった

スムーズに理解をできているためもう1レクチャー進みます

完成したコードはgithubへ

そのまま次のレクチャー

Truffle と ganacheのレッスン

レクチャー初めにインストールしてからまだ触っていませんでした

まさかの直ぐにトラブル😅

指定通りに truffle develop をターミナルで打つのですが

truffle develop
Error: error:0308010C:digital envelope routines::unsupported
    at new Hash (node:internal/crypto/hash:67:19)
    at Object.createHash (node:crypto:130:10)
    at hash160 (/Users/tera/.nodebrew/node/v17.2.0/lib/node_modules/truffle/build/webpack:/node_modules/ethereum-cryptography/vendor/hdkey-without-crypto.js:249:1)
    at HDKey.set (/Users/tera/.nodebrew/node/v17.2.0/lib/node_modules/truffle/build/webpack:/node_modules/ethereum-cryptography/vendor/hdkey-without-crypto.js:50:1)
    at Function.HDKey.fromMasterSeed (/Users/tera/.nodebrew/node/v17.2.0/lib/node_modules/truffle/build/webpack:/node_modules/ethereum-cryptography/vendor/hdkey-without-crypto.js:194:1)
    at Function.EthereumHDKey.fromMasterSeed (/Users/tera/.nodebrew/node/v17.2.0/lib/node_modules/truffle/build/webpack:/node_modules/ethereumjs-wallet/dist/hdkey.js:16:1)
    at Object.getAccountsInfo (/Users/tera/.nodebrew/node/v17.2.0/lib/node_modules/truffle/build/webpack:/packages/core/lib/mnemonics/mnemonic.js:48:1)
    at Object.module.exports [as run] (/Users/tera/.nodebrew/node/v17.2.0/lib/node_modules/truffle/build/webpack:/packages/core/lib/commands/develop/run.js:39:1)
    at runCommand (/Users/tera/.nodebrew/node/v17.2.0/lib/node_modules/truffle/build/webpack:/packages/core/lib/command-utils.js:184:1)
Truffle v5.5.19 (core: 5.5.19)
Node v17.2.0

ググってみるとnodeのバージョンを下げたらいけるとあります

また、ターミナルでNodeのバージョンを意図的に古いものを利用するという設定をコマンドで行うと解決するとあったのでそれを試しました

export NODE_OPTIONS=--openssl-legacy-provider

この方法はreact のpackage.jsonに追加することもたまにあるのでよく見る内容ですね

そしてトラブルは解決し先へ進みます

let balance = await web3.eth.getBalance(accounts[0]);
> undefined
truffle(develop)> balance
> '100000000000000000000'
truffle(develop)> Number(balance)/10**18
> 100

開発用のアカウントに100ethあることがわかるコードです

簡単に手持ちのethがわかるのは感覚的にすごいなと思いました

truffle(develop)> web3.eth.sendTransaction({from:accounts[0], to: accounts[1], value: '100'});
{
  transactionHash: '0x83f854a0f8b024da4d7a56508d79bd36788680bd6fa2a5fb8353738dcd88b080',
  transactionIndex: 0,
  blockNumber: 1,
  blockHash: '0x6571ced0ff31ecd200a7f8ad33f7bdc1672272e3b3cce7f8846f4ac41fd81ebc',
  from: '0xb8d853b69cf0588bd55ffccb0e12719aa4f3eab2',
  to: '0xfd9f986d5f46023d1275ede83d80477ad776f599',
  cumulativeGasUsed: 21000,
  gasUsed: 21000,
  contractAddress: null,
  logs: [],
  logsBloom: '0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000',
  status: true,
  effectiveGasPrice: '0xc92a69c0',
  type: '0x2'
}

ワンライナーで他のアカウントに100ethを送るコードとログです

Ganath とも連携をさせて終了

開発をし始めているというワクワクした気持ちです