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

Web3.js + MetaMask移动端合约调用失败(桌面正常)[错误码-32603]

Web3.js + MetaMask 移动端调用合约函数失败(桌面端正常)

使用Web3.js与MetaMask进行区块链交互时,桌面端调用合约tokenWeight函数正常,但移动端调用失败,报错显示执行回退。

代码实现

import Web3 from 'web3';
import detectEthereumProvider from '@metamask/detect-provider';

const provider = await detectEthereumProvider();
const web3 = new Web3(provider);

const accounts = await provider.request({
    method: 'eth_requestAccounts',
});

const query = (new web3.eth.Contract(ContractAbi, ContractAddress)).methods.tokenWeight(10);
 
try {
     let result = await query.call();
     console.log(result);
} catch (e) {
     console.log(e);
}

报错信息

{"name":"Qe","code": 100,"message":"Returned error: Internal JSON-RPC error.","innerError": {"code":-32603,"message":"Internal JSON-RPC error.","data": {"code":-32000,"message":"execution reverted"}},"data": {"code":-32000,"message":"execution reverted"}}
{"code":-32603,"data":{"request": {"method":"eth_call","params": [{"to":"0x47061C8a71274Ea7245B84fEA63cBac957d8a1cF","input":"0x70a082310000000000000000000000364d8ea5e7a4ce97e89f7b2cb7198d6d5dfe0ace"},"latest"],"jsonrpc":"2.0","id": 9330414}}}

问题排查与解决方向

  1. 链ID一致性检查
    确认移动端MetaMask当前连接的链ID,与合约部署的链ID完全一致。执行await web3.eth.getChainId()对比桌面端与移动端的返回值,若不一致则切换到对应链。

  2. 合约地址与ABI正确性验证
    打印移动端环境中的ContractAddress和ContractAbi,与桌面端的配置逐行对比。重点检查ContractAbi中tokenWeight函数的参数定义(比如是否为uint256类型),确保和调用时传入的参数类型匹配。

  3. 参数编码异常排查
    从报错的input字段可以看到,参数编码结果异常:正确传入10(十六进制为0xa)的编码应该是000000000000000000000000000000000000000000000000000000000000000a,但报错中的参数是一个地址格式的长串。可以手动编码参数验证:

    const encoded = web3.eth.abi.encodeFunctionCall(
      {
        name: 'tokenWeight',
        type: 'function',
        inputs: [{ type: 'uint256', name: 'id' }]
      },
      [10]
    );
    console.log(encoded);
    

    若输出与报错中的input不一致,说明ABI定义错误或Web3.js在移动端存在类型转换bug。

  4. MetaMask版本与网络问题

    • 尝试将移动端MetaMask更新至最新版本,旧版本可能存在Web3兼容性问题;
    • 切换到稳定的Wi-Fi网络,或更换MetaMask中的RPC节点(比如官方节点),排除网络不稳定导致的节点响应异常。

内容的提问来源于stack exchange,提问作者Syamsoul Azrien

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.12 22:17:40