Ethereum Metamask获胜的原因是什么;即使交易已完成,是否仍显示确认提示?
我正在使用Metamask和Web3构建一个dapp。合同中的一切似乎都很正常,但在我的dapp.send()函数中,如下面的与合同交互的函数似乎正常工作,我得到了收据,但在此之前,它们不会显示确认提示,让用户接受交易。它会自动被接受。在某个时候,我确实得到了提示,但它停止了,我不确定这是合同还是前端错误 有人能告诉我发生这种情况的潜在原因吗Ethereum Metamask获胜的原因是什么;即使交易已完成,是否仍显示确认提示?,ethereum,web3,web3js,metamask,Ethereum,Web3,Web3js,Metamask,我正在使用Metamask和Web3构建一个dapp。合同中的一切似乎都很正常,但在我的dapp.send()函数中,如下面的与合同交互的函数似乎正常工作,我得到了收据,但在此之前,它们不会显示确认提示,让用户接受交易。它会自动被接受。在某个时候,我确实得到了提示,但它停止了,我不确定这是合同还是前端错误 有人能告诉我发生这种情况的潜在原因吗 async function addImage() { await contract.methods .addImage(this.p
async function addImage() {
await contract.methods
.addImage(this.props.token, this.props.image)
.send({
from: accounts[0],
gas: 6721975,
gasPrice: "30000000",
})
.once("receipt", (receipt) => {
console.log(receipt);
})
.catch((err) => {
console.log(err);
});
}
好吧,我刚刚意识到这可能是因为Metamask不再注入web3。 如果我在代码中替换这一行
const web3 = new Web3(new Web3.providers.HttpProvider("http://localhost:8545"));
为了
然后它就起作用了。确认提示打开。对于这两个库之间的相互干扰以及为什么web3不会打开Metamask仍然有点困惑,但这是一个好的开始。好的,我刚刚意识到这可能是因为Metamask不再注入web3。 如果我在代码中替换这一行
const web3 = new Web3(new Web3.providers.HttpProvider("http://localhost:8545"));
为了
然后它就起作用了。确认提示打开。对于这两个库相互干扰以及为什么web3不打开Metamask,仍然有点困惑,但这是一个好的开始