Skip to content

我调用了硬件的签名成功签名,但是无法将交易广播出去 #474

@wangfeng7731

Description

@wangfeng7731

const guiji = (): void => {
// let str=getFirstTwoChars('0xd11A69E04F8904c5966650746Ef4513B8C531a1c')

// let dt=usdtToWei(2,str);
// console.log(dt)

// ERC-20 ABI
const erc20Abi = [
"function transfer(address to, uint256 value) public returns (bool)"
];

//ERC-20 合约地址
const erc20ContractAddress = "0x55d398326f99059ff775485246999027b3197955";
const mainnetProvider = ethers.getDefaultProvider('https://bsc-dataseed.binance.org');

// const noc=mainnetProvider.getTransactionCount("0xd11A69E04F8904c5966650746Ef4513B8C531a1c")
// 创建 ERC-20 合约实例
const erc20Contract = new ethers.Contract(erc20ContractAddress, erc20Abi, mainnetProvider);

// 接收地址
const toAddress = "0xd11A69E04F8904c5966650746Ef4513B8C531a1c";

// 转账金额:1000 USDT,假设 USDT 有 18 位小数
const amount = ethers.parseUnits("1", 18);

// 编码交易数据
const encodedData = erc20Contract.interface.encodeFunctionData("transfer", [toAddress, amount]);

console.log(encodedData);
// 1. Create transaction parameters
const txParams = {
to: '0x55d398326f99059fF775485246999027B3197955',
value: '0x0',
data: encodedData,
chainId: 56,
nonce: '0xca3e',
// maxFeePerGas: '0x14',
// maxPriorityFeePerGas: '0x0',
gasLimit: '0xca3e',
gasPrice: "0xb2d05e00"
};
HardwareSDK.evmSignTransaction(data.value.payload[0].connectId, data.value.payload[0].deviceId, {
path: "m/44'/60'/0'/0/10",
transaction: txParams,
chainId: 56
}).then((result11: any) => {
// 在这里获取成功的结果
console.log('成功:', result11.success);

if (result11.success) {
  // 3. Build signed transaction
  const sig = splitSignature(result11.payload);
  // 序列化交易

  const rawTx = serialize({
to: '0x55d398326f99059fF775485246999027B3197955',
value: '0x0',
data: encodedData,
chainId: 56,
nonce: 0,
// maxFeePerGas: '0x14',
// maxPriorityFeePerGas: '0x0',
gasLimit: '0xca3e',
gasPrice: "0xb2d05e00"

}, sig);

  /// 使用 ethers.js 广播交易
  const provider = new ethers.JsonRpcProvider('https://mainnet.infura.io/v3/YOUR_INFURA_PROJECT_ID');
  const wallet = new ethers.Wallet('', provider);
  wallet.sendTransaction({ data: rawTx })

.then((tx) => {
console.log('交易已广播,交易哈希:', tx.hash);
})
.catch((error) => {
console.error('广播失败:', error);
});

} else {
  ElMessage({
    message: h('p', { style: 'line-height: 1; font-size: 14px' }, [
      h('span', { style: 'color: red' }, '地址归集失败,请重新连接设备!')
    ]),
  })
}

})
.catch((error11: any) => {
// 在这里处理错误
console.error('失败:', error11);
ElMessage({
message: h('p', { style: 'line-height: 1; font-size: 14px' }, [
h('span', { style: 'color: red' }, '地址归集失败,请重新连接设备!')
]),
})
});;

}

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions