1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

『How to send EIP1559 Transactions』の翻訳

Last updated at Posted at 2024-03-07

Polygon公式ブログに投稿されたHow to send EIP1559 Transactions
の邦訳です。

How to send EIP1559 Transactions / EIP1559トランザクションの送信方法

ロンドンのハードフォークでは、Polygon上の取引におけるガスの見積もりとコストの仕組みを変更する新しいEIPが導入されました。

このため、Polygonでトランザクションを送信する際に、トランザクションオブジェクトの形成方法に変更があります。タイプ2トランザクションと呼ばれる新しいトランザクションタイプが導入されました。レガシータイプのトランザクションも引き続き対応可能ですが、新しいスタイルに移行することが推奨されます。このドキュメントの最後に移動して、コードを直接覗き見ることができます。

How legacy transactions work / レガシートランザクションのしくみ#

トランザクションを送信する際、gasPriceも送信します。
gasPrice は、消費した gas 1つあたりに支払うことを提案する金額です。そして、あなたがトランザクションを送信すると、マイナーはあなたのgasPriceの入札に基づいて、あなたのトランザクションを含めるかどうかを決定することができます。マイナーは、最も高いガス価格を優先します。

Sending Type 2 transactions with EIP1559# / EIP1559#によるタイプ2トランザクションの送信

同様のコンセプトで、gasPricebaseFeepriorityFeeに分割されることになります。

すべてのトランザクションはbase feeを支払う必要があり、これは前のブロックがどれだけ埋まっていたかに基づいて計算されます。トランザクションはマイナーにpriorityFeeを提供することもでき、マイナーにその取引をブロックに含めるよう動機付けることができます。

Sending Legacy transactions / レガシートランザクションを送信する

ロンドンフォーク前のレガシートランザクションでは、gasPrice だけが言及される必要がありました。

以下のサンプルコードでは、レガシー方式でトランザクションを送信しています:

const sendLegacyTransaction = async () => {
    con dest web3 = new Web3('https://polygon-rpc.com');

    await web3.eth.sendTransactions({
        from: 0x05158d7a59FA8AC5007B3C8BabAa216568Fd32B3,
        to: 0xD7Fbe63Db5201f71482Fa47ecC4Be5e5B125eF07,
        value: 1000000000000000000,
        gasPrice: 200000000000
    })
}

Sending EIP1559 transactions / EIP1559のトランザクションを送信する

Add maxPriorityFeePerGas field / maxPriorityFeePerGas フィールドを追加

gas : gasPrice の組み合わせに最も近い類型は gas : maxPriorityFeePerGas です。ベースフィー(baseFee)は無関係に支払われる必要があるので、マイナーのための 「チップ 」の入札を提出すればよいのです。なお、GAS料金の見積もりは、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
    })
}

The Polygon Gas Station V2 を使って、GAS料金の見積もりを取ることができます。

The Polygon Gas Station V2のエンドポイントです。

https://gasstation-mainnet.matic.network/v2

Polygon Gas Station V2 Response:


{
    "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のトランザクション送信については、以下の記事をご覧ください。

「EIP1559でトランザクションを送信する方法」というチュートリアルは、GASを推定してトランザクションを送信するためのレガシー方式と新しい(EIP-1559)方法の両方を説明します。

ethers.jsを使用してEIP-1559トランザクションを送信する方法について説明します。

【参考文献】
SolidityとEthereumによる実践スマートコントラクト開発 ―Truffle Suiteを用いた開発の基礎からデプロイまで
スマートコントラクトの仕組みと法律
図解即戦力 暗号と認証のしくみと理論がこれ1冊でしっかりわかる教科書

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?