//tips
//smart contract
デプロイ済みのコントラクトに接続してawait art.claimItemを実施する方法を模索する。
import Web3 from "web3";
import ABI from "../build/contracts/NakiCollectible.json";
//var Web3 = require('web3');
var web3 = new Web3();
web3.setProvider(new web3.providers.HttpProvider('https://rinkeby.infura.io/ws/v3/c575a6e5d49d7ddd432801'));
//コントラクトのアドレス
var address = "0xd01FD6c7D061Ed7889E65ca25da5";
//abi情報
//var abi = [{"constant":true,"inputs":[],"name":"Hello","outputs":[{"name":"","type":"string"}],"payable":false,"type":"function"}];
//コントラクトの取得
var contract = web3.eth.contract(ABI).at(address);
//実行
//var response = contract.Hello.call();
const send = async () => {
await art.claimItem('https://ipfs.io/ipfs/QmcQPYQTRWiC6kchdFUpH2Fhey8gDus2b');
};
send();
node test.jsでスクリプトを実行するとエラーが発生。
node:internal/modules/cjs/loader:944
throw err;
デプロイ済みのコントラクトの操作方法を再度調べていく。
これを見ていると新たなスクリプトを書かなくても既にコンパイル済みのデータさえあれば繋げられそうなことがわかった。
npx truffle console --network rinkeby
const art =await NakiCollectible.deployed()
await art.claimItem('https://ipfs.io/ipfs/QmcQPYQTRWiCy8gDus2b');
一旦終了しても上記の方法で繋げられることが確認できた。
ただ、pinataにて反映される前に登録してしまうと表記が過去のものになるようなので、pinataにjson登録したら少し時間を置いた方がよさそう。またpinataの表示で名前も変更されているか確認する。
もしこの状態で
npx truffle console —network rinkeby
migrate
を実行したらどうなるかも確認。連続した作品が形成されるかを確認する。
const art =await NakiCollectible.deployed()
await art.claimItem(‘https://ipfs.io/ipfs/QmXYfhz3uup6vXZU7J56Z’)
こちらを実行するとNakiCollectibleとして、きちんと連続した作品が生成されることがわかった。
問題なし。