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

XRPL EVM转XRPL钱包Axelar跨链XRP转账失败求助

问题分析与修复方案

你的转账失败由以下几个核心问题导致:

1. 收款地址编码错误

XRPL的r地址采用Base58编码,你当前用ethers.toUtf8Bytes转换的方式完全错误。正确流程是先将Base58解码为原始字节,再转为十六进制格式。

2. 目标链标识符错误

Axelar测试网中,XRPL测试网的链名称应为xrpl-testnet,而非xrpl(后者是主网标识符)。

3. 原生XRP与Wrapped XRP混淆

你的钱包持有原生XRP(通过0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE地址查询的余额),但代码误用了Wrapped XRP的Token ID。原生XRP转账需要使用专门的跨链函数,而非ERC20代币的转账逻辑。


修复后的完整代码

import { ethers } from "ethers";
import bs58 from "bs58"; // 先执行安装:npm install bs58

// --- 配置项 ---
const privateKey = "你的XRPL EVM测试网钱包私钥";
const rpcUrl = "https://rpc.testnet.xrplevm.org";
const itsContractAddress = "0xB5FB4BE02232B1bBA4dC8f81dc24C26980dE9e3C";
const recipientXrplAddress = "raxF7y2wirxDZt1Q1qGHCYN7dMSD41Rdwv";
// 转账金额:1 XRP(原生XRP单位为wei,1 XRP = 1e18 wei)
const amountInWei = ethers.parseUnits("1", 18);

// --- 主函数 ---
async function sendXrpFromEvmToXrpl() {
  try {
    // 1. 连接XRPL EVM测试网
    const provider = new ethers.JsonRpcProvider(rpcUrl);
    const wallet = new ethers.Wallet(privateKey, provider);
    console.log("钱包地址:", wallet.address);

    // 2. 加载ITS合约
    const itsAbi = [
      "function interchainTransferNative(string destinationChain, bytes recipient, bytes metadata) external payable"
    ];
    const its = new ethers.Contract(itsContractAddress, itsAbi, wallet);

    // 3. 正确编码XRPL收款地址
    const decodedRecipient = bs58.decode(recipientXrplAddress);
    const encodedRecipient = ethers.hexlify(decodedRecipient);
    console.log("编码后的收款地址:", encodedRecipient);

    // 4. 检查原生XRP余额
    const balance = await provider.getBalance(wallet.address);
    console.log("原生XRP余额:", ethers.formatUnits(balance, 18), "XRP");

    // 5. 发起原生XRP跨链转账
    console.log("开始跨链转账...");
    const tx = await its.interchainTransferNative(
      "xrpl-testnet", // 测试网链标识符
      encodedRecipient, // 正确编码的收款地址
      "0x", // 无元数据
      { value: amountInWei } // 附带转账金额
    );

    console.log("交易已提交,哈希:", tx.hash);

    // 6. 等待交易确认
    const receipt = await tx.wait();
    console.log("交易已确认,区块高度:", receipt.blockNumber);

    console.log(`✅ 成功向XRPL地址 ${recipientXrplAddress} 转账1 XRP`);
    console.log("请等待Axelar中继节点将资金送达XRPL网络。");
  } catch (err) {
    console.error("❌ 转账失败:", err);
  }
}

sendXrpFromEvmToXrpl();

额外注意事项

  • 安装依赖:确保执行npm install ethers bs58完成库安装。
  • Gas费用:钱包需保留足够原生XRP支付交易手续费。
  • 参数验证:始终核对Axelar官方文档确认测试网/主网的链标识符与合约地址。

内容的提问来源于stack exchange,提问作者Mo .

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.12 09:14:54