You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Web3 JS实现Metamask BSC BEP20捐赠按钮无法识别BMON代币问题求助

问题核心原因

你调用eth_sendTransaction发起BEP20转账时,to字段配置错误:

  • BEP20/ERC20代币转账本质是调用代币合约的transfer方法,因此交易的to字段必须填代币合约地址,你的收款地址已经封装在编码后的ABI data里,不需要放在to字段
  • 你当前错误将to字段填为个人收款地址,导致Metamask无法识别这是BMON代币合约的交易,仅会识别为普通合约调用,所以显示通用TKN标识

修正后的代码片段

if (typeof window.ethereum !== 'undefined') {
    ethereum.request({ method: 'eth_requestAccounts' });
} else {
    alert('Please install metamask')
}

const web3 = new Web3('https://bsc-dataseed1.binance.org:443');
const contractAddress = '0x08ba0619b1e7a582e0bce5bbe9843322c954c340'; // BMON合约地址
const reciever = '0x6B5e6761A9fa07573aD01aeEBc0B724bD3a2980a'; // 你的收款地址
const sendEthButton = document.querySelector('.sendEthButton');

sendEthButton.addEventListener('click', () => {
    (async ()=>{
        const contract = new web3.eth.Contract(ABI, contractAddress);
        // 注意:BMON小数位为18,你当前写的10是最小单位,要转10枚BMON的话需要做单位转换
        const transfer = await contract.methods.transfer(reciever, web3.utils.toWei('10', 'ether'));
        const encodedABI = await transfer.encodeABI();
        if(window.ethereum.chainId == '0x38'){
            ethereum
            .request({
            method: 'eth_sendTransaction',
            params: [
                {
                    from: ethereum.selectedAddress,
                    to: contractAddress, // 核心修正点:此处填代币合约地址而非个人收款地址
                    gasPrice: '',
                    gas: '',
                    data: encodedABI
                },
            ],
            })
            .then((txHash) => console.log(txHash))
            .catch((error) => console.error);
        } else {
            ethereum.request({ method: 'wallet_switchEthereumChain', params:[{chainId: '0x38'}]})
        }
    })()
});

补充说明

之前你复制bscscan的交易data还是报错,就是因为你没有同步修改to字段为合约地址,只要替换to字段的取值就能解决识别问题。

内容的提问来源于stack exchange,提问作者Mayga Fatmawati

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.28 05:45:00