EIP1559 Transactions
如何发送EIP1559事务
伦敦硬分叉引入了一个新的EIP,修改了在Polygon上进行交易的天然气估算和成本工作方式。
因此,在Polygon上发送事务时,事务对象的形成方式发生了变化。引入了一种名为type 2 transaction的新事务类型。遗留类型的事务仍然是兼容的,但建议改为新的风格。您可以导航到本文档的末尾,直接查看代码。
遗留事务如何工作
当你提交交易时,你也会发送一个汽油价格,这是你提供的每消耗汽油的金额。然后,当你提交交易,矿工可以决定包括你的交易或不基于你的天然气价格出价。矿商将优先考虑最高的天然气价格。
使用EIP1559发送类型2事务
这是一个类似的概念,天然气价格将分成一个基本费用和一个优先费用。 每个交易都需要支付基本费用,这是根据前一个区块的满额计算出来的。交易也可以提供给矿商优先费,以激励矿商将交易包含在区块中。
发送遗留事务
在伦敦分叉之前,只有天然气价格需要在遗留交易中被提及。
下面的代码示例显示了在Legacy方法中发送事务:
const sendLegacyTransaction = async () => {
con dest web3 = new Web3('https://polygon-rpc.com');
await web3.eth.sendTransactions({
from: 0x05158d7a59FA8AC5007B3C8BabAa216568Fd32B3,
to: 0xD7Fbe63Db5201f71482Fa47ecC4Be5e5B125eF07,
value: 1000000000000000000,
gasPrice: 200000000000
})
}
发送EIP1559交易
添加maxPriorityFeePerGas字段
与gas:gasPrice组合最接近的类比是gas:maxPriorityFeePerGas。由于无论如何都需要支付baseFee,我们可以为矿工提交一个“提示”的出价。注意,Polygon Gas Station V2可以用来获得燃气费用估算。
下面的代码示例展示了在Type 2方法中发送事务:
// Example for
const sendEIP1559Transaction = async () => {
const web3 = new Web3('https://polygon-rpc.com');
await web3.eth.sendTransactions({
from: 0xFd71Dc9721d9ddCF0480A582927c3dCd42f3064C,
to: 0x8C400f640447A5Fc61BFf7FdcE00eCf20b85CcAd,
value: 1000000000000000000,
maxPriorityFeePerGas: 40000000000
})
}
Polygon Gas Station V2可以用来获得Gas fee estimate。
Polygon加油站V2端点:
https://gasstation-mainnet.matic.network/v2
Polygon Gas Station V2:
{
"safeLow": {
"maxPriorityFee": 37.181444553750005,
"maxFee": 326.2556979087
},
"standard": {
"maxPriorityFee": 49.575259405,
"maxFee": 435.00759721159994
},
"fast": {
"maxPriorityFee": 61.96907425625,
"maxFee": 543.7594965144999
},
"estimatedBaseFee": 275.308812719,
"blockTime": 6,
"blockNumber": 23948420
}
请阅读以下文章,以更好地理解发送EIP-1559交易:
- 如何用EIP 1559发送事务,本教程将带领您通过传统和新的(EIP-1559)方法来估计天然气和发送事务。
- 了解如何使用ether .js发送EIP-1559事务