首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法使用Etherjs从signTransaction获取事务散列

无法使用Etherjs从signTransaction获取事务散列
EN

Ethereum用户
提问于 2022-05-13 16:17:20
回答 1查看 588关注 0票数 0

我正在尝试创建一个脚本,该脚本生成一个交换事务,然后打印出提交的事务的事务哈希,但我一直得到“未定义的”,即使我期待“0xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx提前谢谢!

代码语言:javascript
复制
const ethers = require("ethers");    
const url = 'ws://172.33.x.x:8546';
const router_abi = require('./uniswapABI.json');
var uniswap_address = '0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D'.toLowerCase()
const weth_contract_address = '0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2'.toLowerCase();
const contract_address = '0xE7a7De362179108E26E464a39B204a9561B352cf'.toLowerCase();

var accounts = 'xxxxxxxxxxxxxx';
var pks = 'xxxxxxxxxxxxx';

const input = {
    GAS_LIMIT: '428000',
    ETH_AMOUNT: '.01', 
    AMOUNT_OUT: '0'
};

async function Buy_fx11() {
    
    const connection = new ethers.providers.WebSocketProvider(url);
    const pk_fixed = Buffer.from(pks, 'hex');
    const wallet = new ethers.Wallet(pk_fixed, connection);
    const signer = wallet.connect(connection)
    const count = await connection.getTransactionCount(wallet.address);

    const router = new ethers.Contract(uniswap_address, router_abi, signer);

    const tx = await router.swapExactETHForTokensSupportingFeeOnTransferTokens(
        input.AMOUNT_OUT,
        [weth_contract_address,contract_address],
        wallet.address,
        Date.now() + 90000,
        {
            value: ethers.utils.parseEther(input.ETH_AMOUNT),
            gasLimit: input.GAS_LIMIT,
            maxPriorityFeePerGas: ethers.utils.parseUnits("20", "gwei"),
            maxFeePerGas: ethers.utils.parseUnits("100", "gwei"),
            }
        );

    const finaltx = await signer.signTransaction(tx);  
    console.log(finaltx.hash);
}
EN

回答 1

Ethereum用户

回答已采纳

发布于 2022-05-30 13:10:39

您已经创建了带有签名者的router,因此调用router.swapExactETHForTokensSupportingFeeOnTransferTokens使其能够签名和发送事务。

尝试使用tx.hash来获取transaction_hash,使用tx.wait()确保事务被挖掘。

票数 1
EN
页面原文内容由Ethereum提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://ethereum.stackexchange.com/questions/128166

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档