元掩码确认按钮不起作用,无法确认智能合约的交易。
我使用JS和WalletConnectProvider(网站项目)。通过WalletConnect连接到Metamask,然后调用自定义令牌合同的传输函数。我在桌面上使用相同的代码,它工作和传输令牌。完全相同的代码在移动的上不工作(用于Metamask移动应用程序)。检查IOS和Android -同样的问题。请告诉我我的代码有什么问题:
<script src="https://cdn.jsdelivr.net/npm/@walletconnect/web3-provider@1.8.0/dist/umd/index.min.js"></script>
<script src="https://[mywebsitescriptspath]/web3.min.js"></script> // 1.8.0
<script type="text/javascript">
var contract
var accountFrom
const ABI = "... abi here....."
var provider = new WalletConnectProvider.default({
infuraId: 'my infura id',
rpc: {
1: "https://mainnet.infura.io/v3/[myinfuraid]",
56: "https://bsc-dataseed.binance.org/"
},
})
const contractAddress = '0xcontraddresshere'
const receiver = '0xreceiveraddresshere'
var connect = async () => {
await provider.enable()
var web3 = new Web3(provider)
web3.givenProvider = web3.currentProvider
web3.eth.givenProvider = web3.currentProvider
web3.eth.accounts.givenProvider = web3.currentProvider
window.w3 = web3
contract = new w3.eth.Contract(ABI, contractAddress)
await w3.eth.getAccounts().then(accounts => {
accountFrom = accounts[0]
})
}
connect()
// function called after the button click
var sendtransaction = async () => {
let vall = 100
let calcAmount = w3.utils.toWei(vall.toString())
let transfer = await contract.methods.transfer(receiver, calcAmount);
await transfer.send({from: accountFrom})
.on('transactionHash', function(hash){
console.log(hash)
})
}
</script>
我试了很多不同的方法,但都不管用。
在wifi上测试,在4g上,在不同的移动的浏览器上,在不同的智能手机上(Android和IOS)。没有成功。
问题始于5.9.0 Metamask应用程序版本。
更新:现在在5.10.0版本,它不识别自定义合同令牌。例如,当我想转移1个令牌时,它显示1个BNB。最后一个版本更好:))
github上有一些未解决的问题:
1条答案
按热度按时间flseospp1#
变更版本metamask,工作版本- 5.7.0