我正在尝试创建一个脚本,该脚本生成一个交换事务,然后打印出提交的事务的事务哈希,但我一直得到“未定义的”,即使我期待“0xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx提前谢谢!
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);
}
发布于 2022-05-30 13:10:39
您已经创建了带有签名者的router,因此调用router.swapExactETHForTokensSupportingFeeOnTransferTokens使其能够签名和发送事务。
尝试使用tx.hash来获取transaction_hash,使用tx.wait()确保事务被挖掘。
https://ethereum.stackexchange.com/questions/128166
复制相似问题