我正在尝试集成web3.js,但是得到了这个错误。附加我的JS代码的截图

<script>
window.ethereum.enable( );
const provider = new ethers.providers.Web3Provider(web3.currentprovider, "goerli");
const MoodContractAddress = "0x65B1174cDBb463e0F9132c09aaEDc63b02986D7D";
const MoodContractABI = [
{
"inputs": [
{
"internalType": "string",
"name": "_mood",
"type": "string"
}
],
"name": "setMood",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "getMood",
"outputs": [
{
"internalType": "string",
"name": "",
"type": "string"
}
],
"stateMutability": "view",
"type": "function"
}
]
let MoodContract;
let signer;
provider.send("eth_requestAccounts", []).then(() => {
provider.listAccount().then(function(accounts) {
signer = provider.getsigner(accounts[0]);
MoodContract = new ethers.Contract(MoodContractAddress, MoodContractABI, signer);
});
});
async function getMood(){
var getMoodPromise = MoodContract.getMood();
var Mood = await getMoodPromise;
console.log(Mood);
}
async function setMood(){
var mood= getElementById("mood").value;
var setMoodPromise = MoodContract.setMood(mood);
await setMoodPromise;
}
</script>我原以为get的心情和设置的心情按钮会工作,但他们没有工作,相反,我得到了这个错误。
发布于 2022-11-18 00:31:19
下面是那些被改变的东西!
html
<button onclick="getMood()">
get mood
</button>
<button onclick="setMood()">
set mood
</button>
<input value="3" id="mood"/>js
window.ethereum.enable( );
const provider = new ethers.providers.Web3Provider(web3.currentProvider, "goerli");
const MoodContractAddress = "0x65B1174cDBb463e0F9132c09aaEDc63b02986D7D";
const MoodContractABI = [
{
"inputs": [
{
"internalType": "string",
"name": "_mood",
"type": "string"
}
],
"name": "setMood",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "getMood",
"outputs": [
{
"internalType": "string",
"name": "",
"type": "string"
}
],
"stateMutability": "view",
"type": "function"
}
]
var MoodContract;
var signer;
console.log(provider);
provider.send("eth_requestAccounts", []).then(() => {
console.log(1);
provider.listAccounts().then(function(accounts) { // <- typo here
console.log(accounts);
signer = provider.getSigner(accounts[0]); // <- typo here
MoodContract = new ethers.Contract(MoodContractAddress, MoodContractABI, signer);
});
});
async function getMood(){
var getMoodPromise = MoodContract.getMood();
var Mood = await getMoodPromise;
console.log(Mood);
}
async function setMood(){
var mood= document.getElementById("mood").value;
console.log(mood);
var setMoodPromise = MoodContract.setMood(mood);
await setMoodPromise;
} 小提琴
https://stackoverflow.com/questions/74482752
复制相似问题