Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Polygon transactions are stuck/transaction underpriced error #2828

Closed
moltam89 opened this issue Mar 19, 2022 · 49 comments
Closed

Polygon transactions are stuck/transaction underpriced error #2828

moltam89 opened this issue Mar 19, 2022 · 49 comments
Assignees
Labels
enhancement New feature or improvement. fixed/complete This Bug is fixed or Enhancement is complete and published. minor-bump Planned for the next minor version bump. v6 Issues regarding v6

Comments

@moltam89
Copy link

Ethers Version

5.6.1

Search Terms

polygon maxPriorityFeePerGas maxFeePerGas

Describe the Problem

There is a harcoded (1.5 gwei) maxPriorityFeePerGas (and maxFeePerGas) in index.ts.

This value is used in populateTransaction.

In case of Polygon, this will either result in a transaction stuck in the mempool, or in case og e.g an Alchemy endpoint, "transaction underpriced" error.

Code Snippet

signer.populateTransaction(txParams)
signer.sendTransaction(txParams)

Where txParams don't contain maxPriorityFeePerGas/maxFeePerGas, and is a type 2 transaction.
(Legacy transactions pass as they use gasPrice only)

Contract ABI

No response

Errors

processing response error (body="{\"jsonrpc\":\"2.0\",\"error\":{\"code\":-32000,\"message\":\"transaction underpriced\"},\"id\":64}", error={"code":-32000}, requestBody="{\"method\":\"eth_sendRawTransaction\",\"params\":[\"0x02f873818981c98459682f0084596898e882520894c54c244200d657650087455869f1ad168537d3b387038d7ea4c6800080c080a07cb6e05c60a2cb7ffc83349bc52ade79afaf9fdb911c64d57aed421caa1ecbcfa05f30023a4d21dd2eab6ea619c8dbb4820ce40c71841baacf8e82cbde7e87602a\"],\"id\":64,\"jsonrpc\":\"2.0\"}", requestMethod="POST",

Environment

No response

Environment (Other)

No response

@moltam89 moltam89 added the investigate Under investigation and may be a bug. label Mar 19, 2022
@Benjythebee
Copy link

Benjythebee commented Mar 20, 2022

I have the exact same issue for the exact same use.
However I am using "ethers": "^5.4.6",. so the value for me is BigNumber.from("2500000000");

For reference:
https://medium.com/stakingbits/polygon-minimum-gas-fee-is-now-30-gwei-to-curb-spam-8bd4313c83a2

@robertu7
Copy link

My current workaround:

// get max fees from gas station
let maxFeePerGas = ethers.BigNumber.from(40000000000) // fallback to 40 gwei
let maxPriorityFeePerGas = ethers.BigNumber.from(40000000000) // fallback to 40 gwei
try {
    const { data } = await axios({
        method: 'get',
        url: isProd
        ? 'https://gasstation-mainnet.matic.network/v2'
        : 'https://gasstation-mumbai.matic.today/v2',
    })
    maxFeePerGas = ethers.utils.parseUnits(
        Math.ceil(data.fast.maxFee) + '',
        'gwei'
    )
    maxPriorityFeePerGas = ethers.utils.parseUnits(
        Math.ceil(data.fast.maxPriorityFee) + '',
        'gwei'
    )
} catch {
    // ignore
}

// send tx with custom gas
const tx = await contract.multicall(calldata, {
    maxFeePerGas,
    maxPriorityFeePerGas,
})

@Benjythebee
Copy link

Benjythebee commented Mar 21, 2022

And my current workaround:

  const feeData = await maticProvider.getFeeData()

  // Start transaction: populate the transaction
  let populatedTransaction
  try {
    populatedTransaction = await contract.populateTransaction.mint(wallet, arg, { gasPrice: feeData.gasPrice })
  } catch (e) {
    return
  }

I removed gasLimit from the options as it never worked;

@herzaso
Copy link

herzaso commented Mar 31, 2022

I have the same problem with the same version (5.6.1)

@ihorbond
Copy link

ihorbond commented Apr 8, 2022

@Benjythebee seems like you could then just call provider.getGasPrice() directly

@cupOJoseph
Copy link

@robertu7 what is this Matic.network site? is that officially supported by Polygon / how reliable is it? thanks for the code!

I've also had this issue with tx getting stuck. Hoping this will fix it.

@robertu7
Copy link

@jschiarizzi It's official: https://docs.polygon.technology/docs/develop/tools/polygon-gas-station

@impguard
Copy link

impguard commented May 4, 2022

For your interest @robertu7 I pulled what you did into a new wallet subclass that one day may or may not get sent back into the main lib. It's tuned for our use cases with Polygon but I can't see why it can't be generalized with the help of some interfaces:

import { TransactionRequest } from "@ethersproject/abstract-provider"
import { Provider } from "@ethersproject/abstract-provider"
import { ExternallyOwnedAccount } from "@ethersproject/abstract-signer"
import { BytesLike } from "@ethersproject/bytes"
import { Deferrable } from "@ethersproject/properties"
import { SigningKey } from "@ethersproject/signing-key"
import fetch from "cross-fetch"
import { Wallet as EthersWallet, ethers } from "ethers"

type GasData = {
  fast: {
    maxPriorityFee: number
    maxFee: number
  }
}

const DEFAULT_GAS_DATA: GasData = {
  fast: {
    maxPriorityFee: 40,
    maxFee: 40,
  },
}

class AutomaticGasWallet extends EthersWallet {
  gasStationUrl: string

  constructor(
    privateKey: BytesLike | ExternallyOwnedAccount | SigningKey,
    provider: Provider,
    gasStationUrl: string
  ) {
    super(privateKey, provider)
    this.gasStationUrl = gasStationUrl
  }

  async populateTransaction(
    transaction: Deferrable<TransactionRequest>
  ): Promise<TransactionRequest> {
    const tx = await super.populateTransaction(transaction)

    const data = await this.getGasData()
    const maxFee = ethers.utils.parseUnits(
      Math.ceil(data.fast.maxFee).toString(),
      "gwei"
    )
    const maxPriorityFee = ethers.utils.parseUnits(
      Math.ceil(data.fast.maxPriorityFee).toString(),
      "gwei"
    )

    tx.maxFeePerGas = maxFee
    tx.maxPriorityFeePerGas = maxPriorityFee

    return tx
  }

  async getGasData(): Promise<GasData> {
    if (!this.gasStationUrl) {
      return DEFAULT_GAS_DATA
    }

    try {
      const response = await fetch(this.gasStationUrl)
      const data = (await response.json()) as GasData
      return data
    } catch (e) {
      logger.error(
        `Could not fetch gas data from ${this.gasStationUrl}: ${e.toString()}`
      )
      return DEFAULT_GAS_DATA
    }
  }
}

export default AutomaticGasWallet

@tomonari-t
Copy link

tomonari-t commented May 6, 2022

Currently, we should do like @robertu7 's way.
provider. getFeeData() return only maxPriorityFeePerGas: 1.5gwei

https://github.com/ethers-io/ethers.js/blob/master/packages/abstract-provider/src.ts/index.ts#L250

@Benjythebee
Copy link

@Benjythebee seems like you could then just call provider.getGasPrice() directly

My solution above #2828 (comment)
seem to be unreliable now. The transaction fails even before asking the user for a transaction most of the time.
With error "err: max fee per gas less than block base fee..."

metamask 10.14.1
ethers ^5.4.6

@vicwtang
Copy link

I just stumbled across this after pulling my hair out this past week with transaction errors UNDERPRICED, REPLACEMENT_UNDERPRICED and "tx fee exceeds the configured cap" on maticvigil, polygon-rpc and alchemy.
Various multiples of the getFeeData results were used, all with low success rates. I will try @robertu7's workaround later tonight to see if there any improvement - i sure hope so. A clear and concise example in the ethers docs would be TRULY helpful for all of us trying to use Polygon. Note that Mumbai gave no indication that this would be an issue in production.

@GolfredoPerezFernandez
Copy link

same issue here trasactions are pending for ever on mumbai polygon

@clemsos
Copy link

clemsos commented May 17, 2022

same issue here on polygon mainnet

@vicwtang
Copy link

Interesting. I never had any issues with Mumbai. It was only after going live that the majority of transactions were rejected. And those that went thru the 2nd week of May had wildly fluctuating prices such that same tx went from cents to up to $3. So currently, I am very jaded with Polygon. Anyways, didn't get to trying the work-around. Doing it as shortly, will advise on my experience...

@vicwtang
Copy link

Thanks for the post @clemsos. I'm curious - is the data from the polygon gas station significantly different from the results from the getFeedata call?

@vicwtang
Copy link

vicwtang commented May 17, 2022

Here's my results trying @clemsos code:
results from getFeeData:
{ maxFeePerGas: '1500000082' } { maxPriorityFeePerGas: '1500000000' }
results from @clemsos:
const resp = await fetch('https://gasstation-mainnet.matic.network/v2')
const data = await resp.json()

				maxFeePerGas = ethers.utils.parseUnits(
					`${Math.ceil(data.fast.maxFee)}`,
					'gwei'
				)
				maxPriorityFeePerGas = ethers.utils.parseUnits(
					`${Math.ceil(data.fast.maxPriorityFee)}`,
					'gwei'
				)

gasstation { maxFeePerGas: '48000000000' } { maxPriorityFeePerGas: '48000000000' }
NOTE: gasstation value is 32x greater than getFeedata value, yet when I was submitting 3x getFeeData.maxFeePerGas values last week, i hit over cap errors

**************** calling secureToken ****************
batchMint failed secureData Error: replacement fee too low [ See: https://links.ethers.org/v5-errors-REPLACEMENT_UNDERPRICED ]

reviewing @impguard / @robertu7 next...
And that is pretty much the same code... hmm
my method call with the gas values:
await contract.connect(signer).secureToken(
bnTokenId, bnCollectionId, bnChain, meta.metaCid,
meta.properties.docroot, '', meta.exchange, owner,
{
maxFeePerGas,
maxPriorityFeePerGas
}
)

so still dead in water...

@vicwtang
Copy link

vicwtang commented May 17, 2022

and with @Benjythebee 's use of feeData.gasPrice:
gasPrice 37172324995
await contract.connect(signer).secureToken(
bnTokenId, bnCollectionId, bnChain, meta.metaCid,
meta.properties.docroot, '', meta.exchange, owner,
{ gasPrice: feeData.gasPrice })

**************** calling secureToken ****************
batchMint failed secureData Error: replacement fee too low [ See: https://links.ethers.org/v5-errors-REPLACEMENT_UNDERPRICED ] (error={"reason":"processing response error","code":"SERVER_ERROR","body":"{"jsonrpc":"2.0","id":56,"error":{"code":-32000,"message":"replacement transaction underpriced"}}","error":{"code":-32000},"requestBody":"{"method":"eth_sendRawTransaction"

requestMethod: 'POST',
url: 'https://rpc-mainnet.maticvigil.com/v1/xxxxx'

},
method: 'sendTransaction',
transaction: {
type: 2,
chainId: 137,
nonce: 3017,
maxPriorityFeePerGas: BigNumber { _hex: '0x08a7a4aa83', _isBigNumber: true },
maxFeePerGas: BigNumber { _hex: '0x08a7a4aa83', _isBigNumber: true },
gasPrice: null,
gasLimit: BigNumber { _hex: '0x099b26', _isBigNumber: true },
to: '0xxxxxx',
value: BigNumber { _hex: '0x00', _isBigNumber: true },

INTERESTING - gasPrice shown as NULL in the actual transaction despite being submitted in call...

@vicwtang
Copy link

vicwtang commented May 17, 2022

Am I doing something wrong? I imagine that these workarounds are working for those who posted these solutions.
Is it the rpc provider? What rpc provider is used for the gasstation solution versus the gasprice one?
I should note: I am making these calls from the BACKEND. I guess I'll check in the DAPP if this helps on that front...

Dang it. Just realized its REPLACEMENT_UNDERPRICED, meaning a previous TX has stuck my new TX. But doesn't the NEW tx with the CORRECT fee override the stuck on and push it through? Trying to figure out how to cancel these pending now. Maybe the code above will work once that's done. I have to say - this has been an awful experience.

@vicwtang
Copy link

vicwtang commented May 17, 2022

Update. SO the nonce was pending with a previous accepted tx. So, the maxFeePerGas value from the gasstation is getting accepted. However, if I wait for the transaction to confirm, it never returns. If i submit another TX, it gets a REPLACEMENT_UNDERPRICED error. I then have to go to metamask, and send a 0Matic transaction with the SAME NONCE at the fast price to clear the pending tx. GREAT. YAY.

So as a part of all this pricing business, I have TX with an accepted price and a hash, that doesnt confirm within any reasonable timeframe, hence still blocking all other TX. Looking up the TX in polygonscan - i get this:
Status:
Pending This txn hash was found in our secondary node and should be picked up by our indexer in a short while.
for a tx made 5 minutes ago.

trying a different RPC to see if there's any improvement.

I'm updating this info so maybe it helps others? But I sure could use some feedback from the more experienced Polygoner's out there who have figured this out. If there is such a state...

Meanwhile, more 0 matic transfers to reset Tx.

Update: after maybe 15min? explorer shows this: Sorry, We are unable to locate this TxnHash
Sooo... the accepted fee wasn't good enough???

Update #2: so it seems now we're cooking with gas :) So a number of issues:

  1. getFeeData is apparently WAY UNDERPRICED compared to the gasstation values - USE the gasstation values for maxFeePerGas and maxPriorityFeePerGas (the tip is the same as the limit??? - whatever)
  2. I changed my RPC provider from maticvigil to polygon-rpc. It apparently was the difference between the await for confirmation timing out and the tx should as pending on a secondary node TO ACTUALLY being confirmed within 30s.
  3. If you see a REPLACEMENT_UNDERPRICED - that means you ALREADY have a pending TX and should ensure this is cancelled or processed before you create a NEW ONE. Your current NODE# is stuck and you will need to unstick it. Doing a zero matic transfer on Metamask for that node # at Aggressive gas seems to take care of that within 30s. And what do you know - Metamask is using polygon-rpc.

So... my batcher is finally chugging await and logging successful tx now. YAY but what a week from HELL. I cannot say I would recommend Polygon, or the support that is available to help. Thanks to the community here for the gas pricing info

NEXT STOP: anyone have any experience setting default gas for the provider, versus per tx. when using an sdk - direct access to setting the gas for a tx is sometimes not available - ie Rarible API or Opensea perhaps. I'm told Web3 has Web3Ethereum that can be supplied with gas option - does this work for maxFeeForGas? Is there an ETHERS equivalent?

@vicwtang
Copy link

vicwtang commented May 24, 2022

Just completed minting 1000 nfts yesterday on polygon RELIABLY - finally.
Here's my code to get around this very frustrating gas pricing issue on Polygon/Mumbai:

	const gasEstimated = await contract.estimateGas.yourMethod(...methodParams)

	const gas = await calcGas('fast', chain) // this is @robertu7 's code - thanks!

	let response = await (
		await contract.connect(signer).yourMethod(...methodParams,
			{ gasLimit: mulDiv(gasEstimated, 110, 100), 
			maxFeePerGas: gas.maxFeePerGas, 
			maxPriorityFeePerGas: gas.maxPriorityFeePerGas }
		)
	).wait()

it irks me that the maxPriorityFeePerGas is so high. I know I saw random transactions I had with default gas paying 1.5gwei but I havent been able to re-achieve this reliably.

Note that I had to include a gasLimit at a 10% premium for improved reliability. the ethers getFeeData did NOT work. it was always underpriced.

But the code is demonstrably reliable in sending the tx and getting it included in the block within a few seconds each time. I added a check to retry the tx later if the maxFeePerGas exceeds 50gwei in production.

Hope that helps someone.

ademidun added a commit to atilatech/arthouse-api that referenced this issue Jun 18, 2022
Polygon increased it's minimum gas price from 30 Gwei to 1Gwei to curb spam.

Other blockchains might change their default gas price as well so we should get that value from the provider.

see: https://medium.com/stakingbits/polygon-minimum-gas-fee-is-now-30-gwei-to-curb-spam-8bd4313c83a2

ethers-io/ethers.js#2828 (comment)

ethers-io/ethers.js#40 (comment)
@y0unghe
Copy link

y0unghe commented Jul 28, 2022

Just completed minting 1000 nfts yesterday on polygon RELIABLY - finally. Here's my code to get around this very frustrating gas pricing issue on Polygon/Mumbai:

	const gasEstimated = await contract.estimateGas.yourMethod(...methodParams)

	const gas = await calcGas('fast', chain) // this is @robertu7 's code - thanks!

	let response = await (
		await contract.connect(signer).yourMethod(...methodParams,
			{ gasLimit: mulDiv(gasEstimated, 110, 100), 
			maxFeePerGas: gas.maxFeePerGas, 
			maxPriorityFeePerGas: gas.maxPriorityFeePerGas }
		)
	).wait()

it irks me that the maxPriorityFeePerGas is so high. I know I saw random transactions I had with default gas paying 1.5gwei but I havent been able to re-achieve this reliably.

Note that I had to include a gasLimit at a 10% premium for improved reliability. the ethers getFeeData did NOT work. it was always underpriced.

But the code is demonstrably reliable in sending the tx and getting it included in the block within a few seconds each time. I added a check to retry the tx later if the maxFeePerGas exceeds 50gwei in production.

Hope that helps someone.

What's the mulDiv function do? Can you kindly put out the complete code? I am trying to make it work on polygon too. But the transaction is always stuck at pending.

@vicwtang
Copy link

vicwtang commented Jul 28, 2022 via email

@SethTurin
Copy link

SethTurin commented Jul 30, 2022

What's the mulDiv function do? Can you kindly put out the complete code? I am trying to make it work on polygon too. But the transaction is always stuck at pending.

Yeah I was reading this thread like "oh yay a solution" and then "wtf is mulDiv?"

After some significant googling, I found that it's an old timey method that just means (a * b) / c. He's using it to calculate 10% higher than the given number.

But after getting it to work, I found that I didn't need to go 10% higher. I included the 10% higher code in a comment, in case anyone needs it.

I adapted and cleaned up the code, and here is what I ended up with.

function parse(data) {
    return ethers.utils.parseUnits(Math.ceil(data) + '', 'gwei');
}

async function calcGas(gasEstimated) {
    let gas = {
        gasLimit: gasEstimated, //.mul(110).div(100)
        maxFeePerGas: ethers.BigNumber.from(40000000000),
        maxPriorityFeePerGas: ethers.BigNumber.from(40000000000)
    };
    try {
        const {data} = await axios({
            method: 'get',
            url: 'https://gasstation-mainnet.matic.network/v2'
        });
        gas.maxFeePerGas = parse(data.fast.maxFee);
        gas.maxPriorityFeePerGas = parse(data.fast.maxPriorityFee);
    } catch (error) {

    }
    return gas;
};

const gasEstimated = await contract.estimateGas.yourMethod();
const gas = await calcGas(gasEstimated);
const tx = await contract.yourMethod(gas);
await tx.wait();

Provided I didn't make any mistakes in converting to ES, this should be a full working snippet. If not, let me know.

Honestly I don't know how I would have ever solved this if not for stumbling upon this particular thread. So thanks for your efforts, and your help.

@hickscorp
Copy link

@isvidler
Copy link

isvidler commented Jun 22, 2023

For anyone still struggling with this, we encountered this issue here at Den.

Our solution

Set maxPriorityFeePerGas to (await provider.getFeeData()).maxFeePerGas.toString(). Some others in this thread also mentioned that this worked for them.

Why this works

See @ricmoo's explanation earlier in this thread: #2828 (comment)

Quoting here for convenience:

So, basically Polygon wanted to keep “backwards compatibility” with Geth by using EIP-1559 but without actually using EIP-1559.

The purpose of EIP-1559 is to stabilize fee pricing and make it highly predictable (for example; I’ve not had a single tx take more than 2 blocks on Ethereum since it was added, and almost all are in the next block). But that involves setting a reasonable floating baseFee and a fixed priorityFee.

Polygon wants their prices to remain “looking low”, so they effective hard coded the baseFee, and a floating priorityFee (notice this is backwards).

This results in mimicking the old pre-EIP-1559 behaviour, creating a bidding war for priorityFee during congestion (which per-EIP-1559 txs did, creating a bidding war for gasPrice during congestion). The only viable solution Ethereum had that worked back then was a gas station; a separate service which would track the mempool and store stats on when a tx enters the mempool and when it was mined, map this duration against its gasPrice, and generate histograms that map gasPrice to wait times. These histograms over short periods of time could then be used to pick a gas price that would get a tx included within a reasonable time. During congestion ramp up, the prices would possibly lag and would result in slower transactions and during ramp down would cause overpayment for a transaction. It’s a terrible solution, it the best possible solution at the same time. :)

@lancelot-c
Copy link

I've updated @robertu7's answer to make it work with ethers 6.6.3 and the new Polygon gas station URLs:

const gasStationURL = (network === 'mainnet') ? "https://gasstation.polygon.technology/v2" : "https://gasstation-testnet.polygon.technology/v2";
let maxFeePerGas = BigInt("40000000000") // fallback to 40 gwei
let maxPriorityFeePerGas = BigInt("40000000000") // fallback to 40 gwei


// Call this function every time before a contract call
async function setOptimalGas() {
    try {
        const { data } = await axios({
            method: 'get',
            url: gasStationURL
        })
        maxFeePerGas = ethers.parseUnits(
            Math.ceil(data.fast.maxFee) + '',
            'gwei'
        )
        maxPriorityFeePerGas = ethers.parseUnits(
            Math.ceil(data.fast.maxPriorityFee) + '',
            'gwei'
        )
    } catch {
        // ignore
    }
}

await setOptimalGas();
await contract.myMethod(myParams, {
        maxFeePerGas,
        maxPriorityFeePerGas,
});

@ricmoo ricmoo added on-deck This Enhancement or Bug is currently being worked on. minor-bump Planned for the next minor version bump. v6 Issues regarding v6 next-patch Issues scheduled for the next arch release. labels Jul 25, 2023
@ricmoo
Copy link
Member

ricmoo commented Aug 3, 2023

Ethers now uses the Polygon gas stations (via a NetworkPlugin) in v6.7.0 for gathering fee data, which has been vetted by the Polygon team.

Please let me know if you have any more issues with transactions not going through.

Thanks! :)

@ricmoo ricmoo closed this as completed Aug 3, 2023
@ricmoo ricmoo added enhancement New feature or improvement. fixed/complete This Bug is fixed or Enhancement is complete and published. and removed investigate Under investigation and may be a bug. on-deck This Enhancement or Bug is currently being worked on. next-patch Issues scheduled for the next arch release. labels Aug 3, 2023
Woodpile37 added a commit to Woodpile37/EIPs that referenced this issue Nov 4, 2023
<p>This PR was automatically created by Snyk using the credentials of a
real user.</p><br /><h3>Snyk has created this PR to upgrade ethers from
5.7.2 to 6.8.0.</h3>

:information_source: Keep your dependencies up-to-date. This makes it
easier to fix existing vulnerabilities and to more quickly identify and
fix newly disclosed vulnerabilities when they affect your project.
<hr/>

*Warning:* This is a major version upgrade, and may be a breaking
change.
- The recommended version is **57 versions** ahead of your current
version.
- The recommended version was released **24 days ago**, on 2023-10-11.


<details>
<summary><b>Release notes</b></summary>
<br/>
  <details>
    <summary>Package name: <b>ethers</b></summary>
    <ul>
      <li>
<b>6.8.0</b> - <a
href="https://snyk.io/redirect/github/ethers-io/ethers.js/releases/tag/v6.8.0">2023-10-11</a></br><ul>
<li>Replicated former ENS normalize behaviour for empty strings and
update namehash testcases (<a
href="https://snyk.io/redirect/github/ethers-io/ethers.js/commit/125ff1189b9cefb8abfd7da9c104c75e382a50cc">125ff11</a>).</li>
<li>Initial shortMessage support for errors (<a
href="https://snyk.io/redirect/github/ethers-io/ethers.js/issues/4241"
data-hovercard-type="issue"
data-hovercard-url="/ethers-io/ethers.js/issues/4241/hovercard">ethereum#4241</a>;
<a
href="https://snyk.io/redirect/github/ethers-io/ethers.js/commit/d6a8c14d907cf8b90347444c0186b83a5db2e293">d6a8c14</a>).</li>
<li>Fixed resolving ENS addresses used as from parameters (<a
href="https://snyk.io/redirect/github/ethers-io/ethers.js/issues/3961"
data-hovercard-type="issue"
data-hovercard-url="/ethers-io/ethers.js/issues/3961/hovercard">ethereum#3961</a>;
<a
href="https://snyk.io/redirect/github/ethers-io/ethers.js/commit/2616f4c30c82bd45449b73fa37ef269d60a07d80">2616f4c</a>).</li>
<li>Merge: <a class="commit-link" data-hovercard-type="commit"
data-hovercard-url="https://github.com/ethers-io/ethers.js/commit/9a4b7534458fc79a0654b0eb57fc956bffa02a2f/hovercard"
href="https://snyk.io/redirect/github/ethers-io/ethers.js/commit/9a4b7534458fc79a0654b0eb57fc956bffa02a2f"><tt>9a4b753</tt></a>
<a class="commit-link" data-hovercard-type="commit"
data-hovercard-url="https://github.com/ethers-io/ethers.js/commit/0c9c23b02dcd235887a6be87c0aaa64c733266cc/hovercard"
href="https://snyk.io/redirect/github/ethers-io/ethers.js/commit/0c9c23b02dcd235887a6be87c0aaa64c733266cc"><tt>0c9c23b</tt></a>
Merge branch 'v5.8-progress' (<a
href="https://snyk.io/redirect/github/ethers-io/ethers.js/commit/cd5f0fe03f2137fbc47e295f8db38a5151111e72">cd5f0fe</a>).</li>
<li>Allow more loose input format for RLP encoder (<a
href="https://snyk.io/redirect/github/ethers-io/ethers.js/issues/4402"
data-hovercard-type="issue"
data-hovercard-url="/ethers-io/ethers.js/issues/4402/hovercard">ethereum#4402</a>;
<a
href="https://snyk.io/redirect/github/ethers-io/ethers.js/commit/9a4b7534458fc79a0654b0eb57fc956bffa02a2f">9a4b753</a>).</li>
<li>Update to latest noble crypto libraries (<a
href="https://snyk.io/redirect/github/ethers-io/ethers.js/issues/3975"
data-hovercard-type="issue"
data-hovercard-url="/ethers-io/ethers.js/issues/3975/hovercard">ethereum#3975</a>;
<a
href="https://snyk.io/redirect/github/ethers-io/ethers.js/commit/b27faa02ac8f90e2e54b188e8139c59d98c469e3">b27faa0</a>).</li>
<li>More robust configuration options for FetchRequest getUrl functions
(<a
href="https://snyk.io/redirect/github/ethers-io/ethers.js/issues/4353"
data-hovercard-type="issue"
data-hovercard-url="/ethers-io/ethers.js/issues/4353/hovercard">ethereum#4353</a>;
<a
href="https://snyk.io/redirect/github/ethers-io/ethers.js/commit/9541f2f70cd7f5c6f3caf93f5a3d5e34eae5281a">9541f2f</a>).</li>
<li>Ignore blockTag when calling Etherscan if it is the default block
tag (<a
href="https://snyk.io/redirect/github/ethers-io/ethers.js/commit/dcea9b353619d85878ad2ba340ae17e5c285d558">dcea9b3</a>).</li>
</ul>
      </li>
      <li>
<b>6.7.1</b> - <a
href="https://snyk.io/redirect/github/ethers-io/ethers.js/releases/tag/v6.7.1">2023-08-15</a></br><ul>
<li>Prevent destroyed providers from emitting network detection errors
(<a
href="https://snyk.io/redirect/github/ethers-io/ethers.js/commit/7d4173049edc3b4ff2de1971c3ecca3b08588651">7d41730</a>).</li>
<li>Fix VSCode reported lint issues (<a
href="https://snyk.io/redirect/github/ethers-io/ethers.js/issues/4153"
data-hovercard-type="issue"
data-hovercard-url="/ethers-io/ethers.js/issues/4153/hovercard">ethereum#4153</a>,
<a
href="https://snyk.io/redirect/github/ethers-io/ethers.js/issues/4156"
data-hovercard-type="pull_request"
data-hovercard-url="/ethers-io/ethers.js/pull/4156/hovercard">ethereum#4156</a>,
<a
href="https://snyk.io/redirect/github/ethers-io/ethers.js/issues/4158"
data-hovercard-type="issue"
data-hovercard-url="/ethers-io/ethers.js/issues/4158/hovercard">ethereum#4158</a>,
<a
href="https://snyk.io/redirect/github/ethers-io/ethers.js/issues/4159"
data-hovercard-type="pull_request"
data-hovercard-url="/ethers-io/ethers.js/pull/4159/hovercard">ethereum#4159</a>;
<a
href="https://snyk.io/redirect/github/ethers-io/ethers.js/commit/4eb84da865a82a27c5113c38102b6b710096958e">4eb84da</a>,
<a
href="https://snyk.io/redirect/github/ethers-io/ethers.js/commit/203dfc33b9c8e72c9cdfe0a349ac763ef17a4484">203dfc3</a>).</li>
<li>Add gasPrice to Polygon feeData for type 0 and type 1 legacy
transactions (<a
href="https://snyk.io/redirect/github/ethers-io/ethers.js/issues/4315"
data-hovercard-type="issue"
data-hovercard-url="/ethers-io/ethers.js/issues/4315/hovercard">ethereum#4315</a>;
<a
href="https://snyk.io/redirect/github/ethers-io/ethers.js/commit/0df3ab93137039de1e1986bbfe9a5b32ceffa8a4">0df3ab9</a>).</li>
</ul>
      </li>
      <li>
<b>6.7.0</b> - <a
href="https://snyk.io/redirect/github/ethers-io/ethers.js/releases/tag/v6.7.0">2023-08-03</a></br><ul>
<li>Fixed receipt wait not throwing on reverted transactions (<a
href="https://snyk.io/redirect/github/ethers-io/ethers.js/commit/25fef4f8d756f5bbf5a2a05e38233248a8eb43ac">25fef4f</a>).</li>
<li>Added custom priority fee to Optimism chain (via telegram) (<a
href="https://snyk.io/redirect/github/ethers-io/ethers.js/commit/ff80b04f31da21496e72d3687cecd1c01efaecc5">ff80b04</a>).</li>
<li>Add context to Logs that fail decoding due to ABI issues to help
debugging (<a
href="https://snyk.io/redirect/github/ethers-io/ethers.js/commit/f3c46f22994d194ff78b3b176407b2ecb7af1c77">f3c46f2</a>).</li>
<li>Added new exports for FallbackProviderOptions and
FetchUrlFeeDataNetworkPlugin (<a
href="https://snyk.io/redirect/github/ethers-io/ethers.js/issues/2828"
data-hovercard-type="issue"
data-hovercard-url="/ethers-io/ethers.js/issues/2828/hovercard">ethereum#2828</a>,
<a
href="https://snyk.io/redirect/github/ethers-io/ethers.js/issues/4160"
data-hovercard-type="issue"
data-hovercard-url="/ethers-io/ethers.js/issues/4160/hovercard">ethereum#4160</a>;
<a
href="https://snyk.io/redirect/github/ethers-io/ethers.js/commit/b1dbbb0de3f10a3d9e12d6a84ad5c52bea25c7f6">b1dbbb0</a>).</li>
<li>Allow overriding pollingInterval in JsonRpcProvider constructor (via
discord) (<a
href="https://snyk.io/redirect/github/ethers-io/ethers.js/commit/f42f258beb305a06e563ad16522f095a72da32eb">f42f258</a>).</li>
<li>Fixed FallbackProvider priority sorting (<a
href="https://snyk.io/redirect/github/ethers-io/ethers.js/issues/4150"
data-hovercard-type="issue"
data-hovercard-url="/ethers-io/ethers.js/issues/4150/hovercard">ethereum#4150</a>;
<a
href="https://snyk.io/redirect/github/ethers-io/ethers.js/commit/78538eb100addd135d29e60c9fa4fed3946278fa">78538eb</a>).</li>
<li>Added linea network to InfuraProvider and Network (<a
href="https://snyk.io/redirect/github/ethers-io/ethers.js/issues/4184"
data-hovercard-type="discussion"
data-hovercard-url="/ethers-io/ethers.js/discussions/4184/hovercard">ethereum#4184</a>,
<a
href="https://snyk.io/redirect/github/ethers-io/ethers.js/issues/4190"
data-hovercard-type="issue"
data-hovercard-url="/ethers-io/ethers.js/issues/4190/hovercard">ethereum#4190</a>;
<a
href="https://snyk.io/redirect/github/ethers-io/ethers.js/commit/d3e5e2c45b28c377f306091acfc024e30c49ef20">d3e5e2c</a>).</li>
<li>Added whitelist support to getDefaultProvider (<a
href="https://snyk.io/redirect/github/ethers-io/ethers.js/commit/82bb936542e29c6441ac8dc2d3ebbdd4edb708ee">82bb936</a>).</li>
<li>Add Polygon RPC endpoints to the default provider (<a
href="https://snyk.io/redirect/github/ethers-io/ethers.js/issues/3689"
data-hovercard-type="issue"
data-hovercard-url="/ethers-io/ethers.js/issues/3689/hovercard">ethereum#3689</a>;
<a
href="https://snyk.io/redirect/github/ethers-io/ethers.js/commit/23704a9c44d5857817e138fb19d44ce2103ca005">23704a9</a>).</li>
<li>Added customizable quorum to FallbackProvider (<a
href="https://snyk.io/redirect/github/ethers-io/ethers.js/issues/4160"
data-hovercard-type="issue"
data-hovercard-url="/ethers-io/ethers.js/issues/4160/hovercard">ethereum#4160</a>;
<a
href="https://snyk.io/redirect/github/ethers-io/ethers.js/commit/8f0a50921a12a866addcf5b0fabc576bfc287689">8f0a509</a>).</li>
<li>Added basic Gas Station support via a NetworkPlugin (<a
href="https://snyk.io/redirect/github/ethers-io/ethers.js/issues/2828"
data-hovercard-type="issue"
data-hovercard-url="/ethers-io/ethers.js/issues/2828/hovercard">ethereum#2828</a>;
<a
href="https://snyk.io/redirect/github/ethers-io/ethers.js/commit/229145ddf566a962517588eaeed155734c7d4598">229145d</a>).</li>
<li>Add BNB URLs to EtherscanProvider networks (<a
href="https://snyk.io/redirect/github/ethers-io/ethers.js/commit/ec39abe067259fad4ea8607a6c5aece61890eb41">ec39abe</a>).</li>
<li>Added tests for JSON format (<a
href="https://snyk.io/redirect/github/ethers-io/ethers.js/issues/4248"
data-hovercard-type="pull_request"
data-hovercard-url="/ethers-io/ethers.js/pull/4248/hovercard">ethereum#4248</a>;
<a
href="https://snyk.io/redirect/github/ethers-io/ethers.js/commit/ba36079a285706694532ce726568c4c447acad47">ba36079</a>).</li>
<li>Use empty string for unnamed parameters in JSON output instead of
undefined (<a
href="https://snyk.io/redirect/github/ethers-io/ethers.js/issues/4248"
data-hovercard-type="pull_request"
data-hovercard-url="/ethers-io/ethers.js/pull/4248/hovercard">ethereum#4248</a>;
<a
href="https://snyk.io/redirect/github/ethers-io/ethers.js/commit/8c2652c8cb4d054207d89688d30930869d9d3f8b">8c2652c</a>).</li>
<li>Return undefined for Contract properties that do not exist instead
of throwing an error (<a
href="https://snyk.io/redirect/github/ethers-io/ethers.js/issues/4266"
data-hovercard-type="issue"
data-hovercard-url="/ethers-io/ethers.js/issues/4266/hovercard">ethereum#4266</a>;
<a
href="https://snyk.io/redirect/github/ethers-io/ethers.js/commit/5bf7b3494ed62952fc387b4368a0bdc86dfe163e">5bf7b34</a>).</li>
</ul>
      </li>
      <li>
<b>6.6.7</b> - <a
href="https://snyk.io/redirect/github/ethers-io/ethers.js/releases/tag/v6.6.7">2023-07-28</a></br><ul>
<li>Prevent malformed logs from preventing other logs being decoded (<a
href="https://snyk.io/redirect/github/ethers-io/ethers.js/issues/4275"
data-hovercard-type="issue"
data-hovercard-url="/ethers-io/ethers.js/issues/4275/hovercard">ethereum#4275</a>;
<a
href="https://snyk.io/redirect/github/ethers-io/ethers.js/commit/0dca645632d73488bf6ad460e0d779361a537bbe">0dca645</a>).</li>
<li>Allow visibility on human-readable constructors (via telegram) (<a
href="https://snyk.io/redirect/github/ethers-io/ethers.js/commit/3a52201fe2ba68a00105cca2c0901da5ffa18d6b">3a52201</a>).</li>
</ul>
      </li>
      <li>
<b>6.6.6</b> - <a
href="https://snyk.io/redirect/github/ethers-io/ethers.js/releases/tag/v6.6.6">2023-07-28</a></br><ul>
<li>Better error message when passing invalid overrides object into a
contract deployment (<a
href="https://snyk.io/redirect/github/ethers-io/ethers.js/issues/4182"
data-hovercard-type="issue"
data-hovercard-url="/ethers-io/ethers.js/issues/4182/hovercard">ethereum#4182</a>;
<a
href="https://snyk.io/redirect/github/ethers-io/ethers.js/commit/aa2ea3d5296956fd0d40b83888e1ca053bb250ee">aa2ea3d</a>).</li>
</ul>
      </li>
      <li>
<b>6.6.5</b> - <a
href="https://snyk.io/redirect/github/ethers-io/ethers.js/releases/tag/v6.6.5">2023-07-24</a></br><ul>
<li>Reflect symbols in the Contract Proxy to target (<a
href="https://snyk.io/redirect/github/ethers-io/ethers.js/issues/4048"
data-hovercard-type="issue"
data-hovercard-url="/ethers-io/ethers.js/issues/4048/hovercard">ethereum#4048</a>;
<a
href="https://snyk.io/redirect/github/ethers-io/ethers.js/commit/ac2f5e563b8ec0e91a931470eb6ea58b0c01fb3d">ac2f5e5</a>).</li>
<li>Allow arrays of address for indexed filter topics (<a
href="https://snyk.io/redirect/github/ethers-io/ethers.js/issues/4259"
data-hovercard-type="pull_request"
data-hovercard-url="/ethers-io/ethers.js/pull/4259/hovercard">ethereum#4259</a>;
<a
href="https://snyk.io/redirect/github/ethers-io/ethers.js/commit/93af87c447eeb77090e29bd940612603b3f74026">93af87c</a>).</li>
<li>Fixed filter encoding for bytesX (<a
href="https://snyk.io/redirect/github/ethers-io/ethers.js/issues/4244"
data-hovercard-type="pull_request"
data-hovercard-url="/ethers-io/ethers.js/pull/4244/hovercard">ethereum#4244</a>;
<a
href="https://snyk.io/redirect/github/ethers-io/ethers.js/commit/fa3a883ff7c88611ce766f58bdd4b8ac90814470">fa3a883</a>).</li>
<li>Fix JSON formatting for tuple arrays (<a
href="https://snyk.io/redirect/github/ethers-io/ethers.js/issues/4237"
data-hovercard-type="issue"
data-hovercard-url="/ethers-io/ethers.js/issues/4237/hovercard">ethereum#4237</a>;
<a
href="https://snyk.io/redirect/github/ethers-io/ethers.js/commit/a8bc49bdcf07a51b35f38cf209db27e116cc1a59">a8bc49b</a>).</li>
<li>Better error messages when parsing fragment strings (<a
href="https://snyk.io/redirect/github/ethers-io/ethers.js/issues/4246"
data-hovercard-type="issue"
data-hovercard-url="/ethers-io/ethers.js/issues/4246/hovercard">ethereum#4246</a>;
<a
href="https://snyk.io/redirect/github/ethers-io/ethers.js/commit/e36b6c35b7bc777c9adbe0055b32b31a13185240">e36b6c3</a>).</li>
<li>Include the missing fragment key and args when no matching Contract
method or event is present (<a
href="https://snyk.io/redirect/github/ethers-io/ethers.js/issues/3809"
data-hovercard-type="issue"
data-hovercard-url="/ethers-io/ethers.js/issues/3809/hovercard">ethereum#3809</a>;
<a
href="https://snyk.io/redirect/github/ethers-io/ethers.js/commit/450a176ee25f88a2ddb9ff23b153ef70bf1dc546">450a176</a>).</li>
<li>Prevent a single malformed event from preventing other Contract
logs; reported on Discord (<a
href="https://snyk.io/redirect/github/ethers-io/ethers.js/commit/b1375f4e4463b856855ebc684b45945455ac082e">b1375f4</a>).</li>
</ul>
      </li>
      <li>
<b>6.6.4</b> - <a
href="https://snyk.io/redirect/github/ethers-io/ethers.js/releases/tag/v6.6.4">2023-07-16</a></br><ul>
<li>More robust support for Signatures with less standard parameter
values (<a
href="https://snyk.io/redirect/github/ethers-io/ethers.js/issues/3835"
data-hovercard-type="issue"
data-hovercard-url="/ethers-io/ethers.js/issues/3835/hovercard">ethereum#3835</a>,
<a
href="https://snyk.io/redirect/github/ethers-io/ethers.js/issues/4228"
data-hovercard-type="pull_request"
data-hovercard-url="/ethers-io/ethers.js/pull/4228/hovercard">ethereum#4228</a>;
<a
href="https://snyk.io/redirect/github/ethers-io/ethers.js/commit/a7e4048fe3b75a743cec8c8ef2a5fad4bdc8b14c">a7e4048</a>).</li>
<li>Fixed CCIP-read in the EnsResolver (<a
href="https://snyk.io/redirect/github/ethers-io/ethers.js/issues/4221"
data-hovercard-type="pull_request"
data-hovercard-url="/ethers-io/ethers.js/pull/4221/hovercard">ethereum#4221</a>;
<a
href="https://snyk.io/redirect/github/ethers-io/ethers.js/commit/57f1e1c47148921148e35c10c83539531942923e">57f1e1c</a>).</li>
<li>Skip checking confirmation count if confirms is 0 (<a
href="https://snyk.io/redirect/github/ethers-io/ethers.js/issues/4229"
data-hovercard-type="issue"
data-hovercard-url="/ethers-io/ethers.js/issues/4229/hovercard">ethereum#4229</a>,
<a
href="https://snyk.io/redirect/github/ethers-io/ethers.js/issues/4242"
data-hovercard-type="pull_request"
data-hovercard-url="/ethers-io/ethers.js/pull/4242/hovercard">ethereum#4242</a>;
<a
href="https://snyk.io/redirect/github/ethers-io/ethers.js/commit/492919d14f646c630f29e1596e5564df1e51f309">492919d</a>).</li>
<li>Fixed waiting for confirmations in deployment transactions (<a
href="https://snyk.io/redirect/github/ethers-io/ethers.js/issues/4212"
data-hovercard-type="issue"
data-hovercard-url="/ethers-io/ethers.js/issues/4212/hovercard">ethereum#4212</a>,
<a
href="https://snyk.io/redirect/github/ethers-io/ethers.js/issues/4230"
data-hovercard-type="issue"
data-hovercard-url="/ethers-io/ethers.js/issues/4230/hovercard">ethereum#4230</a>;
<a
href="https://snyk.io/redirect/github/ethers-io/ethers.js/commit/43c253a402f52a08353c424f6c4e236836cfaf36">43c253a</a>).</li>
</ul>
      </li>
      <li>
<b>6.6.3</b> - <a
href="https://snyk.io/redirect/github/ethers-io/ethers.js/releases/tag/v6.6.3">2023-07-12</a></br><ul>
<li>Throw more desscriptive error for unconfigured ENS name contract
targets (<a
href="https://snyk.io/redirect/github/ethers-io/ethers.js/issues/4213"
data-hovercard-type="issue"
data-hovercard-url="/ethers-io/ethers.js/issues/4213/hovercard">ethereum#4213</a>;
<a
href="https://snyk.io/redirect/github/ethers-io/ethers.js/commit/80f62efc41c3a29e690af40a1976928b7f886a0e">80f62ef</a>).</li>
<li>Fixed contract once not running stop callback (<a
href="https://snyk.io/redirect/github/ethers-io/ethers.js/commit/7d061b786f72cbfc461bf80d139d10aeff533a6e">7d061b7</a>).</li>
</ul>
      </li>
      <li>
<b>6.6.2</b> - <a
href="https://snyk.io/redirect/github/ethers-io/ethers.js/releases/tag/v6.6.2">2023-06-28</a></br><ul>
<li>Wider error detection for call exceptions on certain backends (<a
href="https://snyk.io/redirect/github/ethers-io/ethers.js/issues/4154"
data-hovercard-type="issue"
data-hovercard-url="/ethers-io/ethers.js/issues/4154/hovercard">ethereum#4154</a>,
<a
href="https://snyk.io/redirect/github/ethers-io/ethers.js/issues/4155"
data-hovercard-type="pull_request"
data-hovercard-url="/ethers-io/ethers.js/pull/4155/hovercard">ethereum#4155</a>;
<a
href="https://snyk.io/redirect/github/ethers-io/ethers.js/commit/9197f9f938b5f3b5f97c043f2dab06854656c932">9197f9f</a>).</li>
<li>Added wider error deetection for JSON-RPC unsupported operation (<a
href="https://snyk.io/redirect/github/ethers-io/ethers.js/issues/4162"
data-hovercard-type="issue"
data-hovercard-url="/ethers-io/ethers.js/issues/4162/hovercard">ethereum#4162</a>;
<a
href="https://snyk.io/redirect/github/ethers-io/ethers.js/commit/1dc8986a33be9dce536b24189326cbfaabf1342e">1dc8986</a>).</li>
<li>Fixed formatUnits and parseUnits for values over 128 bits (<a
href="https://snyk.io/redirect/github/ethers-io/ethers.js/issues/4037"
data-hovercard-type="issue"
data-hovercard-url="/ethers-io/ethers.js/issues/4037/hovercard">ethereum#4037</a>,
<a
href="https://snyk.io/redirect/github/ethers-io/ethers.js/issues/4133"
data-hovercard-type="issue"
data-hovercard-url="/ethers-io/ethers.js/issues/4133/hovercard">ethereum#4133</a>;
<a
href="https://snyk.io/redirect/github/ethers-io/ethers.js/commit/3d141b44b528f52b3c9205125b64ce342f91643c">3d141b4</a>).</li>
</ul>
      </li>
      <li>
<b>6.6.1</b> - <a
href="https://snyk.io/redirect/github/ethers-io/ethers.js/releases/tag/v6.6.1">2023-06-23</a></br><ul>
<li>Fixed CCIP read in contract calls (<a
href="https://snyk.io/redirect/github/ethers-io/ethers.js/issues/4043"
data-hovercard-type="issue"
data-hovercard-url="/ethers-io/ethers.js/issues/4043/hovercard">ethereum#4043</a>;
<a
href="https://snyk.io/redirect/github/ethers-io/ethers.js/commit/d51e3fbff43c31d88353ac71151626312d22c0b9">d51e3fb</a>,
<a
href="https://snyk.io/redirect/github/ethers-io/ethers.js/commit/857aa8ccc30f25eda8e83dcac3e0ad2c1a5ce2b3">857aa8c</a>).</li>
</ul>
      </li>
      <li>
        <b>6.6.0</b> - 2023-06-14
      </li>
      <li>
        <b>6.5.1</b> - 2023-06-08
      </li>
      <li>
        <b>6.5.0</b> - 2023-06-07
      </li>
      <li>
        <b>6.4.2</b> - 2023-06-06
      </li>
      <li>
        <b>6.4.1</b> - 2023-06-02
      </li>
      <li>
        <b>6.4.0</b> - 2023-05-20
      </li>
      <li>
        <b>6.3.0</b> - 2023-04-07
      </li>
      <li>
        <b>6.2.3</b> - 2023-03-28
      </li>
      <li>
        <b>6.2.2</b> - 2023-03-24
      </li>
      <li>
        <b>6.2.1</b> - 2023-03-23
      </li>
      <li>
        <b>6.2.0</b> - 2023-03-20
      </li>
      <li>
        <b>6.1.0</b> - 2023-03-07
      </li>
      <li>
        <b>6.0.8</b> - 2023-02-23
      </li>
      <li>
        <b>6.0.7</b> - 2023-02-23
      </li>
      <li>
        <b>6.0.6</b> - 2023-02-23
      </li>
      <li>
        <b>6.0.5</b> - 2023-02-19
      </li>
      <li>
        <b>6.0.4</b> - 2023-02-16
      </li>
      <li>
        <b>6.0.3</b> - 2023-02-13
      </li>
      <li>
        <b>6.0.2</b> - 2023-02-04
      </li>
      <li>
        <b>6.0.1</b> - 2023-02-04
      </li>
      <li>
        <b>6.0.0</b> - 2023-02-03
      </li>
      <li>
        <b>6.0.0-beta-exports.16</b> - 2023-02-02
      </li>
      <li>
        <b>6.0.0-beta-exports.15</b> - 2023-01-31
      </li>
      <li>
        <b>6.0.0-beta-exports.14</b> - 2023-01-27
      </li>
      <li>
        <b>6.0.0-beta-exports.13</b> - 2023-01-27
      </li>
      <li>
        <b>6.0.0-beta-exports.12</b> - 2023-01-27
      </li>
      <li>
        <b>6.0.0-beta-exports.11</b> - 2023-01-22
      </li>
      <li>
        <b>6.0.0-beta-exports.10</b> - 2023-01-15
      </li>
      <li>
        <b>6.0.0-beta-exports.9</b> - 2022-12-30
      </li>
      <li>
        <b>6.0.0-beta-exports.8</b> - 2022-12-10
      </li>
      <li>
        <b>6.0.0-beta-exports.7</b> - 2022-11-30
      </li>
      <li>
        <b>6.0.0-beta-exports.6</b> - 2022-11-09
      </li>
      <li>
        <b>6.0.0-beta-exports.5</b> - 2022-11-09
      </li>
      <li>
        <b>6.0.0-beta-exports.4</b> - 2022-10-01
      </li>
      <li>
        <b>6.0.0-beta-exports.3</b> - 2022-09-30
      </li>
      <li>
        <b>6.0.0-beta-exports.2</b> - 2022-09-27
      </li>
      <li>
        <b>6.0.0-beta-exports.1</b> - 2022-09-16
      </li>
      <li>
        <b>6.0.0-beta-exports.0</b> - 2022-09-05
      </li>
      <li>
        <b>6.0.0-beta.9</b> - 2022-04-20
      </li>
      <li>
        <b>6.0.0-beta.8</b> - 2022-04-20
      </li>
      <li>
        <b>6.0.0-beta.7</b> - 2022-04-20
      </li>
      <li>
        <b>6.0.0-beta.6</b> - 2022-04-20
      </li>
      <li>
        <b>6.0.0-beta.5</b> - 2022-04-19
      </li>
      <li>
        <b>6.0.0-beta.4</b> - 2022-04-17
      </li>
      <li>
        <b>6.0.0-beta.3</b> - 2022-04-14
      </li>
      <li>
        <b>6.0.0-beta.2</b> - 2022-04-11
      </li>
      <li>
        <b>6.0.0-beta.1</b> - 2022-04-11
      </li>
      <li>
        <b>5.7.2</b> - 2022-10-19
      </li>
    </ul>
from <a
href="https://snyk.io/redirect/github/ethers-io/ethers.js/releases">ethers
GitHub release notes</a>
  </details>
</details>
<hr/>

**Note:** *You are seeing this because you or someone else with access
to this repository has authorized Snyk to open upgrade PRs.*

For more information: <img
src="https://api.segment.io/v1/pixel/track?data=eyJ3cml0ZUtleSI6InJyWmxZcEdHY2RyTHZsb0lYd0dUcVg4WkFRTnNCOUEwIiwiYW5vbnltb3VzSWQiOiI5NWExZDA2Ni04OWM3LTQwNmEtODhhYy05MzIzMGJmYzY0MDAiLCJldmVudCI6IlBSIHZpZXdlZCIsInByb3BlcnRpZXMiOnsicHJJZCI6Ijk1YTFkMDY2LTg5YzctNDA2YS04OGFjLTkzMjMwYmZjNjQwMCJ9fQ=="
width="0" height="0"/>

🧐 [View latest project
report](https://app.snyk.io/org/woodpile37/project/00499b6f-a68a-4427-bb51-4ce7ae484e12?utm_source&#x3D;github&amp;utm_medium&#x3D;referral&amp;page&#x3D;upgrade-pr)

🛠 [Adjust upgrade PR
settings](https://app.snyk.io/org/woodpile37/project/00499b6f-a68a-4427-bb51-4ce7ae484e12/settings/integration?utm_source&#x3D;github&amp;utm_medium&#x3D;referral&amp;page&#x3D;upgrade-pr)

🔕 [Ignore this dependency or unsubscribe from future upgrade
PRs](https://app.snyk.io/org/woodpile37/project/00499b6f-a68a-4427-bb51-4ce7ae484e12/settings/integration?pkg&#x3D;ethers&amp;utm_source&#x3D;github&amp;utm_medium&#x3D;referral&amp;page&#x3D;upgrade-pr#auto-dep-upgrades)

<!---
(snyk:metadata:{"prId":"95a1d066-89c7-406a-88ac-93230bfc6400","prPublicId":"95a1d066-89c7-406a-88ac-93230bfc6400","dependencies":[{"name":"ethers","from":"5.7.2","to":"6.8.0"}],"packageManager":"npm","type":"auto","projectUrl":"https://app.snyk.io/org/woodpile37/project/00499b6f-a68a-4427-bb51-4ce7ae484e12?utm_source=github&utm_medium=referral&page=upgrade-pr","projectPublicId":"00499b6f-a68a-4427-bb51-4ce7ae484e12","env":"prod","prType":"upgrade","vulns":[],"issuesToFix":[],"upgrade":[],"upgradeInfo":{"versionsDiff":57,"publishedDate":"2023-10-11T06:18:14.788Z"},"templateVariants":[],"hasFixes":false,"isMajorUpgrade":true,"isBreakingChange":true,"priorityScoreList":[]})
--->
Woodpile37 added a commit to Woodpile37/EIPs that referenced this issue Nov 14, 2023
<p>This PR was automatically created by Snyk using the credentials of a
real user.</p><br /><h3>Snyk has created this PR to upgrade ethers from
5.7.2 to 6.8.0.</h3>

:information_source: Keep your dependencies up-to-date. This makes it
easier to fix existing vulnerabilities and to more quickly identify and
fix newly disclosed vulnerabilities when they affect your project.
<hr/>

*Warning:* This is a major version upgrade, and may be a breaking
change.
- The recommended version is **57 versions** ahead of your current
version.
- The recommended version was released **a month ago**, on 2023-10-11.


<details>
<summary><b>Release notes</b></summary>
<br/>
  <details>
    <summary>Package name: <b>ethers</b></summary>
    <ul>
      <li>
<b>6.8.0</b> - <a
href="https://snyk.io/redirect/github/ethers-io/ethers.js/releases/tag/v6.8.0">2023-10-11</a></br><ul>
<li>Replicated former ENS normalize behaviour for empty strings and
update namehash testcases (<a
href="https://snyk.io/redirect/github/ethers-io/ethers.js/commit/125ff1189b9cefb8abfd7da9c104c75e382a50cc">125ff11</a>).</li>
<li>Initial shortMessage support for errors (<a
href="https://snyk.io/redirect/github/ethers-io/ethers.js/issues/4241"
data-hovercard-type="issue"
data-hovercard-url="/ethers-io/ethers.js/issues/4241/hovercard">ethereum#4241</a>;
<a
href="https://snyk.io/redirect/github/ethers-io/ethers.js/commit/d6a8c14d907cf8b90347444c0186b83a5db2e293">d6a8c14</a>).</li>
<li>Fixed resolving ENS addresses used as from parameters (<a
href="https://snyk.io/redirect/github/ethers-io/ethers.js/issues/3961"
data-hovercard-type="issue"
data-hovercard-url="/ethers-io/ethers.js/issues/3961/hovercard">ethereum#3961</a>;
<a
href="https://snyk.io/redirect/github/ethers-io/ethers.js/commit/2616f4c30c82bd45449b73fa37ef269d60a07d80">2616f4c</a>).</li>
<li>Merge: <a class="commit-link" data-hovercard-type="commit"
data-hovercard-url="https://github.com/ethers-io/ethers.js/commit/9a4b7534458fc79a0654b0eb57fc956bffa02a2f/hovercard"
href="https://snyk.io/redirect/github/ethers-io/ethers.js/commit/9a4b7534458fc79a0654b0eb57fc956bffa02a2f"><tt>9a4b753</tt></a>
<a class="commit-link" data-hovercard-type="commit"
data-hovercard-url="https://github.com/ethers-io/ethers.js/commit/0c9c23b02dcd235887a6be87c0aaa64c733266cc/hovercard"
href="https://snyk.io/redirect/github/ethers-io/ethers.js/commit/0c9c23b02dcd235887a6be87c0aaa64c733266cc"><tt>0c9c23b</tt></a>
Merge branch 'v5.8-progress' (<a
href="https://snyk.io/redirect/github/ethers-io/ethers.js/commit/cd5f0fe03f2137fbc47e295f8db38a5151111e72">cd5f0fe</a>).</li>
<li>Allow more loose input format for RLP encoder (<a
href="https://snyk.io/redirect/github/ethers-io/ethers.js/issues/4402"
data-hovercard-type="issue"
data-hovercard-url="/ethers-io/ethers.js/issues/4402/hovercard">ethereum#4402</a>;
<a
href="https://snyk.io/redirect/github/ethers-io/ethers.js/commit/9a4b7534458fc79a0654b0eb57fc956bffa02a2f">9a4b753</a>).</li>
<li>Update to latest noble crypto libraries (<a
href="https://snyk.io/redirect/github/ethers-io/ethers.js/issues/3975"
data-hovercard-type="issue"
data-hovercard-url="/ethers-io/ethers.js/issues/3975/hovercard">ethereum#3975</a>;
<a
href="https://snyk.io/redirect/github/ethers-io/ethers.js/commit/b27faa02ac8f90e2e54b188e8139c59d98c469e3">b27faa0</a>).</li>
<li>More robust configuration options for FetchRequest getUrl functions
(<a
href="https://snyk.io/redirect/github/ethers-io/ethers.js/issues/4353"
data-hovercard-type="issue"
data-hovercard-url="/ethers-io/ethers.js/issues/4353/hovercard">ethereum#4353</a>;
<a
href="https://snyk.io/redirect/github/ethers-io/ethers.js/commit/9541f2f70cd7f5c6f3caf93f5a3d5e34eae5281a">9541f2f</a>).</li>
<li>Ignore blockTag when calling Etherscan if it is the default block
tag (<a
href="https://snyk.io/redirect/github/ethers-io/ethers.js/commit/dcea9b353619d85878ad2ba340ae17e5c285d558">dcea9b3</a>).</li>
</ul>
      </li>
      <li>
<b>6.7.1</b> - <a
href="https://snyk.io/redirect/github/ethers-io/ethers.js/releases/tag/v6.7.1">2023-08-15</a></br><ul>
<li>Prevent destroyed providers from emitting network detection errors
(<a
href="https://snyk.io/redirect/github/ethers-io/ethers.js/commit/7d4173049edc3b4ff2de1971c3ecca3b08588651">7d41730</a>).</li>
<li>Fix VSCode reported lint issues (<a
href="https://snyk.io/redirect/github/ethers-io/ethers.js/issues/4153"
data-hovercard-type="issue"
data-hovercard-url="/ethers-io/ethers.js/issues/4153/hovercard">ethereum#4153</a>,
<a
href="https://snyk.io/redirect/github/ethers-io/ethers.js/issues/4156"
data-hovercard-type="pull_request"
data-hovercard-url="/ethers-io/ethers.js/pull/4156/hovercard">ethereum#4156</a>,
<a
href="https://snyk.io/redirect/github/ethers-io/ethers.js/issues/4158"
data-hovercard-type="issue"
data-hovercard-url="/ethers-io/ethers.js/issues/4158/hovercard">ethereum#4158</a>,
<a
href="https://snyk.io/redirect/github/ethers-io/ethers.js/issues/4159"
data-hovercard-type="pull_request"
data-hovercard-url="/ethers-io/ethers.js/pull/4159/hovercard">ethereum#4159</a>;
<a
href="https://snyk.io/redirect/github/ethers-io/ethers.js/commit/4eb84da865a82a27c5113c38102b6b710096958e">4eb84da</a>,
<a
href="https://snyk.io/redirect/github/ethers-io/ethers.js/commit/203dfc33b9c8e72c9cdfe0a349ac763ef17a4484">203dfc3</a>).</li>
<li>Add gasPrice to Polygon feeData for type 0 and type 1 legacy
transactions (<a
href="https://snyk.io/redirect/github/ethers-io/ethers.js/issues/4315"
data-hovercard-type="issue"
data-hovercard-url="/ethers-io/ethers.js/issues/4315/hovercard">ethereum#4315</a>;
<a
href="https://snyk.io/redirect/github/ethers-io/ethers.js/commit/0df3ab93137039de1e1986bbfe9a5b32ceffa8a4">0df3ab9</a>).</li>
</ul>
      </li>
      <li>
<b>6.7.0</b> - <a
href="https://snyk.io/redirect/github/ethers-io/ethers.js/releases/tag/v6.7.0">2023-08-03</a></br><ul>
<li>Fixed receipt wait not throwing on reverted transactions (<a
href="https://snyk.io/redirect/github/ethers-io/ethers.js/commit/25fef4f8d756f5bbf5a2a05e38233248a8eb43ac">25fef4f</a>).</li>
<li>Added custom priority fee to Optimism chain (via telegram) (<a
href="https://snyk.io/redirect/github/ethers-io/ethers.js/commit/ff80b04f31da21496e72d3687cecd1c01efaecc5">ff80b04</a>).</li>
<li>Add context to Logs that fail decoding due to ABI issues to help
debugging (<a
href="https://snyk.io/redirect/github/ethers-io/ethers.js/commit/f3c46f22994d194ff78b3b176407b2ecb7af1c77">f3c46f2</a>).</li>
<li>Added new exports for FallbackProviderOptions and
FetchUrlFeeDataNetworkPlugin (<a
href="https://snyk.io/redirect/github/ethers-io/ethers.js/issues/2828"
data-hovercard-type="issue"
data-hovercard-url="/ethers-io/ethers.js/issues/2828/hovercard">ethereum#2828</a>,
<a
href="https://snyk.io/redirect/github/ethers-io/ethers.js/issues/4160"
data-hovercard-type="issue"
data-hovercard-url="/ethers-io/ethers.js/issues/4160/hovercard">ethereum#4160</a>;
<a
href="https://snyk.io/redirect/github/ethers-io/ethers.js/commit/b1dbbb0de3f10a3d9e12d6a84ad5c52bea25c7f6">b1dbbb0</a>).</li>
<li>Allow overriding pollingInterval in JsonRpcProvider constructor (via
discord) (<a
href="https://snyk.io/redirect/github/ethers-io/ethers.js/commit/f42f258beb305a06e563ad16522f095a72da32eb">f42f258</a>).</li>
<li>Fixed FallbackProvider priority sorting (<a
href="https://snyk.io/redirect/github/ethers-io/ethers.js/issues/4150"
data-hovercard-type="issue"
data-hovercard-url="/ethers-io/ethers.js/issues/4150/hovercard">ethereum#4150</a>;
<a
href="https://snyk.io/redirect/github/ethers-io/ethers.js/commit/78538eb100addd135d29e60c9fa4fed3946278fa">78538eb</a>).</li>
<li>Added linea network to InfuraProvider and Network (<a
href="https://snyk.io/redirect/github/ethers-io/ethers.js/issues/4184"
data-hovercard-type="discussion"
data-hovercard-url="/ethers-io/ethers.js/discussions/4184/hovercard">ethereum#4184</a>,
<a
href="https://snyk.io/redirect/github/ethers-io/ethers.js/issues/4190"
data-hovercard-type="issue"
data-hovercard-url="/ethers-io/ethers.js/issues/4190/hovercard">ethereum#4190</a>;
<a
href="https://snyk.io/redirect/github/ethers-io/ethers.js/commit/d3e5e2c45b28c377f306091acfc024e30c49ef20">d3e5e2c</a>).</li>
<li>Added whitelist support to getDefaultProvider (<a
href="https://snyk.io/redirect/github/ethers-io/ethers.js/commit/82bb936542e29c6441ac8dc2d3ebbdd4edb708ee">82bb936</a>).</li>
<li>Add Polygon RPC endpoints to the default provider (<a
href="https://snyk.io/redirect/github/ethers-io/ethers.js/issues/3689"
data-hovercard-type="issue"
data-hovercard-url="/ethers-io/ethers.js/issues/3689/hovercard">ethereum#3689</a>;
<a
href="https://snyk.io/redirect/github/ethers-io/ethers.js/commit/23704a9c44d5857817e138fb19d44ce2103ca005">23704a9</a>).</li>
<li>Added customizable quorum to FallbackProvider (<a
href="https://snyk.io/redirect/github/ethers-io/ethers.js/issues/4160"
data-hovercard-type="issue"
data-hovercard-url="/ethers-io/ethers.js/issues/4160/hovercard">ethereum#4160</a>;
<a
href="https://snyk.io/redirect/github/ethers-io/ethers.js/commit/8f0a50921a12a866addcf5b0fabc576bfc287689">8f0a509</a>).</li>
<li>Added basic Gas Station support via a NetworkPlugin (<a
href="https://snyk.io/redirect/github/ethers-io/ethers.js/issues/2828"
data-hovercard-type="issue"
data-hovercard-url="/ethers-io/ethers.js/issues/2828/hovercard">ethereum#2828</a>;
<a
href="https://snyk.io/redirect/github/ethers-io/ethers.js/commit/229145ddf566a962517588eaeed155734c7d4598">229145d</a>).</li>
<li>Add BNB URLs to EtherscanProvider networks (<a
href="https://snyk.io/redirect/github/ethers-io/ethers.js/commit/ec39abe067259fad4ea8607a6c5aece61890eb41">ec39abe</a>).</li>
<li>Added tests for JSON format (<a
href="https://snyk.io/redirect/github/ethers-io/ethers.js/issues/4248"
data-hovercard-type="pull_request"
data-hovercard-url="/ethers-io/ethers.js/pull/4248/hovercard">ethereum#4248</a>;
<a
href="https://snyk.io/redirect/github/ethers-io/ethers.js/commit/ba36079a285706694532ce726568c4c447acad47">ba36079</a>).</li>
<li>Use empty string for unnamed parameters in JSON output instead of
undefined (<a
href="https://snyk.io/redirect/github/ethers-io/ethers.js/issues/4248"
data-hovercard-type="pull_request"
data-hovercard-url="/ethers-io/ethers.js/pull/4248/hovercard">ethereum#4248</a>;
<a
href="https://snyk.io/redirect/github/ethers-io/ethers.js/commit/8c2652c8cb4d054207d89688d30930869d9d3f8b">8c2652c</a>).</li>
<li>Return undefined for Contract properties that do not exist instead
of throwing an error (<a
href="https://snyk.io/redirect/github/ethers-io/ethers.js/issues/4266"
data-hovercard-type="issue"
data-hovercard-url="/ethers-io/ethers.js/issues/4266/hovercard">ethereum#4266</a>;
<a
href="https://snyk.io/redirect/github/ethers-io/ethers.js/commit/5bf7b3494ed62952fc387b4368a0bdc86dfe163e">5bf7b34</a>).</li>
</ul>
      </li>
      <li>
<b>6.6.7</b> - <a
href="https://snyk.io/redirect/github/ethers-io/ethers.js/releases/tag/v6.6.7">2023-07-28</a></br><ul>
<li>Prevent malformed logs from preventing other logs being decoded (<a
href="https://snyk.io/redirect/github/ethers-io/ethers.js/issues/4275"
data-hovercard-type="issue"
data-hovercard-url="/ethers-io/ethers.js/issues/4275/hovercard">ethereum#4275</a>;
<a
href="https://snyk.io/redirect/github/ethers-io/ethers.js/commit/0dca645632d73488bf6ad460e0d779361a537bbe">0dca645</a>).</li>
<li>Allow visibility on human-readable constructors (via telegram) (<a
href="https://snyk.io/redirect/github/ethers-io/ethers.js/commit/3a52201fe2ba68a00105cca2c0901da5ffa18d6b">3a52201</a>).</li>
</ul>
      </li>
      <li>
<b>6.6.6</b> - <a
href="https://snyk.io/redirect/github/ethers-io/ethers.js/releases/tag/v6.6.6">2023-07-28</a></br><ul>
<li>Better error message when passing invalid overrides object into a
contract deployment (<a
href="https://snyk.io/redirect/github/ethers-io/ethers.js/issues/4182"
data-hovercard-type="issue"
data-hovercard-url="/ethers-io/ethers.js/issues/4182/hovercard">ethereum#4182</a>;
<a
href="https://snyk.io/redirect/github/ethers-io/ethers.js/commit/aa2ea3d5296956fd0d40b83888e1ca053bb250ee">aa2ea3d</a>).</li>
</ul>
      </li>
      <li>
<b>6.6.5</b> - <a
href="https://snyk.io/redirect/github/ethers-io/ethers.js/releases/tag/v6.6.5">2023-07-24</a></br><ul>
<li>Reflect symbols in the Contract Proxy to target (<a
href="https://snyk.io/redirect/github/ethers-io/ethers.js/issues/4048"
data-hovercard-type="issue"
data-hovercard-url="/ethers-io/ethers.js/issues/4048/hovercard">ethereum#4048</a>;
<a
href="https://snyk.io/redirect/github/ethers-io/ethers.js/commit/ac2f5e563b8ec0e91a931470eb6ea58b0c01fb3d">ac2f5e5</a>).</li>
<li>Allow arrays of address for indexed filter topics (<a
href="https://snyk.io/redirect/github/ethers-io/ethers.js/issues/4259"
data-hovercard-type="pull_request"
data-hovercard-url="/ethers-io/ethers.js/pull/4259/hovercard">ethereum#4259</a>;
<a
href="https://snyk.io/redirect/github/ethers-io/ethers.js/commit/93af87c447eeb77090e29bd940612603b3f74026">93af87c</a>).</li>
<li>Fixed filter encoding for bytesX (<a
href="https://snyk.io/redirect/github/ethers-io/ethers.js/issues/4244"
data-hovercard-type="pull_request"
data-hovercard-url="/ethers-io/ethers.js/pull/4244/hovercard">ethereum#4244</a>;
<a
href="https://snyk.io/redirect/github/ethers-io/ethers.js/commit/fa3a883ff7c88611ce766f58bdd4b8ac90814470">fa3a883</a>).</li>
<li>Fix JSON formatting for tuple arrays (<a
href="https://snyk.io/redirect/github/ethers-io/ethers.js/issues/4237"
data-hovercard-type="issue"
data-hovercard-url="/ethers-io/ethers.js/issues/4237/hovercard">ethereum#4237</a>;
<a
href="https://snyk.io/redirect/github/ethers-io/ethers.js/commit/a8bc49bdcf07a51b35f38cf209db27e116cc1a59">a8bc49b</a>).</li>
<li>Better error messages when parsing fragment strings (<a
href="https://snyk.io/redirect/github/ethers-io/ethers.js/issues/4246"
data-hovercard-type="issue"
data-hovercard-url="/ethers-io/ethers.js/issues/4246/hovercard">ethereum#4246</a>;
<a
href="https://snyk.io/redirect/github/ethers-io/ethers.js/commit/e36b6c35b7bc777c9adbe0055b32b31a13185240">e36b6c3</a>).</li>
<li>Include the missing fragment key and args when no matching Contract
method or event is present (<a
href="https://snyk.io/redirect/github/ethers-io/ethers.js/issues/3809"
data-hovercard-type="issue"
data-hovercard-url="/ethers-io/ethers.js/issues/3809/hovercard">ethereum#3809</a>;
<a
href="https://snyk.io/redirect/github/ethers-io/ethers.js/commit/450a176ee25f88a2ddb9ff23b153ef70bf1dc546">450a176</a>).</li>
<li>Prevent a single malformed event from preventing other Contract
logs; reported on Discord (<a
href="https://snyk.io/redirect/github/ethers-io/ethers.js/commit/b1375f4e4463b856855ebc684b45945455ac082e">b1375f4</a>).</li>
</ul>
      </li>
      <li>
<b>6.6.4</b> - <a
href="https://snyk.io/redirect/github/ethers-io/ethers.js/releases/tag/v6.6.4">2023-07-16</a></br><ul>
<li>More robust support for Signatures with less standard parameter
values (<a
href="https://snyk.io/redirect/github/ethers-io/ethers.js/issues/3835"
data-hovercard-type="issue"
data-hovercard-url="/ethers-io/ethers.js/issues/3835/hovercard">ethereum#3835</a>,
<a
href="https://snyk.io/redirect/github/ethers-io/ethers.js/issues/4228"
data-hovercard-type="pull_request"
data-hovercard-url="/ethers-io/ethers.js/pull/4228/hovercard">ethereum#4228</a>;
<a
href="https://snyk.io/redirect/github/ethers-io/ethers.js/commit/a7e4048fe3b75a743cec8c8ef2a5fad4bdc8b14c">a7e4048</a>).</li>
<li>Fixed CCIP-read in the EnsResolver (<a
href="https://snyk.io/redirect/github/ethers-io/ethers.js/issues/4221"
data-hovercard-type="pull_request"
data-hovercard-url="/ethers-io/ethers.js/pull/4221/hovercard">ethereum#4221</a>;
<a
href="https://snyk.io/redirect/github/ethers-io/ethers.js/commit/57f1e1c47148921148e35c10c83539531942923e">57f1e1c</a>).</li>
<li>Skip checking confirmation count if confirms is 0 (<a
href="https://snyk.io/redirect/github/ethers-io/ethers.js/issues/4229"
data-hovercard-type="issue"
data-hovercard-url="/ethers-io/ethers.js/issues/4229/hovercard">ethereum#4229</a>,
<a
href="https://snyk.io/redirect/github/ethers-io/ethers.js/issues/4242"
data-hovercard-type="pull_request"
data-hovercard-url="/ethers-io/ethers.js/pull/4242/hovercard">ethereum#4242</a>;
<a
href="https://snyk.io/redirect/github/ethers-io/ethers.js/commit/492919d14f646c630f29e1596e5564df1e51f309">492919d</a>).</li>
<li>Fixed waiting for confirmations in deployment transactions (<a
href="https://snyk.io/redirect/github/ethers-io/ethers.js/issues/4212"
data-hovercard-type="issue"
data-hovercard-url="/ethers-io/ethers.js/issues/4212/hovercard">ethereum#4212</a>,
<a
href="https://snyk.io/redirect/github/ethers-io/ethers.js/issues/4230"
data-hovercard-type="issue"
data-hovercard-url="/ethers-io/ethers.js/issues/4230/hovercard">ethereum#4230</a>;
<a
href="https://snyk.io/redirect/github/ethers-io/ethers.js/commit/43c253a402f52a08353c424f6c4e236836cfaf36">43c253a</a>).</li>
</ul>
      </li>
      <li>
<b>6.6.3</b> - <a
href="https://snyk.io/redirect/github/ethers-io/ethers.js/releases/tag/v6.6.3">2023-07-12</a></br><ul>
<li>Throw more desscriptive error for unconfigured ENS name contract
targets (<a
href="https://snyk.io/redirect/github/ethers-io/ethers.js/issues/4213"
data-hovercard-type="issue"
data-hovercard-url="/ethers-io/ethers.js/issues/4213/hovercard">ethereum#4213</a>;
<a
href="https://snyk.io/redirect/github/ethers-io/ethers.js/commit/80f62efc41c3a29e690af40a1976928b7f886a0e">80f62ef</a>).</li>
<li>Fixed contract once not running stop callback (<a
href="https://snyk.io/redirect/github/ethers-io/ethers.js/commit/7d061b786f72cbfc461bf80d139d10aeff533a6e">7d061b7</a>).</li>
</ul>
      </li>
      <li>
<b>6.6.2</b> - <a
href="https://snyk.io/redirect/github/ethers-io/ethers.js/releases/tag/v6.6.2">2023-06-28</a></br><ul>
<li>Wider error detection for call exceptions on certain backends (<a
href="https://snyk.io/redirect/github/ethers-io/ethers.js/issues/4154"
data-hovercard-type="issue"
data-hovercard-url="/ethers-io/ethers.js/issues/4154/hovercard">ethereum#4154</a>,
<a
href="https://snyk.io/redirect/github/ethers-io/ethers.js/issues/4155"
data-hovercard-type="pull_request"
data-hovercard-url="/ethers-io/ethers.js/pull/4155/hovercard">ethereum#4155</a>;
<a
href="https://snyk.io/redirect/github/ethers-io/ethers.js/commit/9197f9f938b5f3b5f97c043f2dab06854656c932">9197f9f</a>).</li>
<li>Added wider error deetection for JSON-RPC unsupported operation (<a
href="https://snyk.io/redirect/github/ethers-io/ethers.js/issues/4162"
data-hovercard-type="issue"
data-hovercard-url="/ethers-io/ethers.js/issues/4162/hovercard">ethereum#4162</a>;
<a
href="https://snyk.io/redirect/github/ethers-io/ethers.js/commit/1dc8986a33be9dce536b24189326cbfaabf1342e">1dc8986</a>).</li>
<li>Fixed formatUnits and parseUnits for values over 128 bits (<a
href="https://snyk.io/redirect/github/ethers-io/ethers.js/issues/4037"
data-hovercard-type="issue"
data-hovercard-url="/ethers-io/ethers.js/issues/4037/hovercard">ethereum#4037</a>,
<a
href="https://snyk.io/redirect/github/ethers-io/ethers.js/issues/4133"
data-hovercard-type="issue"
data-hovercard-url="/ethers-io/ethers.js/issues/4133/hovercard">ethereum#4133</a>;
<a
href="https://snyk.io/redirect/github/ethers-io/ethers.js/commit/3d141b44b528f52b3c9205125b64ce342f91643c">3d141b4</a>).</li>
</ul>
      </li>
      <li>
<b>6.6.1</b> - <a
href="https://snyk.io/redirect/github/ethers-io/ethers.js/releases/tag/v6.6.1">2023-06-23</a></br><ul>
<li>Fixed CCIP read in contract calls (<a
href="https://snyk.io/redirect/github/ethers-io/ethers.js/issues/4043"
data-hovercard-type="issue"
data-hovercard-url="/ethers-io/ethers.js/issues/4043/hovercard">ethereum#4043</a>;
<a
href="https://snyk.io/redirect/github/ethers-io/ethers.js/commit/d51e3fbff43c31d88353ac71151626312d22c0b9">d51e3fb</a>,
<a
href="https://snyk.io/redirect/github/ethers-io/ethers.js/commit/857aa8ccc30f25eda8e83dcac3e0ad2c1a5ce2b3">857aa8c</a>).</li>
</ul>
      </li>
      <li>
        <b>6.6.0</b> - 2023-06-14
      </li>
      <li>
        <b>6.5.1</b> - 2023-06-08
      </li>
      <li>
        <b>6.5.0</b> - 2023-06-07
      </li>
      <li>
        <b>6.4.2</b> - 2023-06-06
      </li>
      <li>
        <b>6.4.1</b> - 2023-06-02
      </li>
      <li>
        <b>6.4.0</b> - 2023-05-20
      </li>
      <li>
        <b>6.3.0</b> - 2023-04-07
      </li>
      <li>
        <b>6.2.3</b> - 2023-03-28
      </li>
      <li>
        <b>6.2.2</b> - 2023-03-24
      </li>
      <li>
        <b>6.2.1</b> - 2023-03-23
      </li>
      <li>
        <b>6.2.0</b> - 2023-03-20
      </li>
      <li>
        <b>6.1.0</b> - 2023-03-07
      </li>
      <li>
        <b>6.0.8</b> - 2023-02-23
      </li>
      <li>
        <b>6.0.7</b> - 2023-02-23
      </li>
      <li>
        <b>6.0.6</b> - 2023-02-23
      </li>
      <li>
        <b>6.0.5</b> - 2023-02-19
      </li>
      <li>
        <b>6.0.4</b> - 2023-02-16
      </li>
      <li>
        <b>6.0.3</b> - 2023-02-13
      </li>
      <li>
        <b>6.0.2</b> - 2023-02-04
      </li>
      <li>
        <b>6.0.1</b> - 2023-02-04
      </li>
      <li>
        <b>6.0.0</b> - 2023-02-03
      </li>
      <li>
        <b>6.0.0-beta-exports.16</b> - 2023-02-02
      </li>
      <li>
        <b>6.0.0-beta-exports.15</b> - 2023-01-31
      </li>
      <li>
        <b>6.0.0-beta-exports.14</b> - 2023-01-27
      </li>
      <li>
        <b>6.0.0-beta-exports.13</b> - 2023-01-27
      </li>
      <li>
        <b>6.0.0-beta-exports.12</b> - 2023-01-27
      </li>
      <li>
        <b>6.0.0-beta-exports.11</b> - 2023-01-22
      </li>
      <li>
        <b>6.0.0-beta-exports.10</b> - 2023-01-15
      </li>
      <li>
        <b>6.0.0-beta-exports.9</b> - 2022-12-30
      </li>
      <li>
        <b>6.0.0-beta-exports.8</b> - 2022-12-10
      </li>
      <li>
        <b>6.0.0-beta-exports.7</b> - 2022-11-30
      </li>
      <li>
        <b>6.0.0-beta-exports.6</b> - 2022-11-09
      </li>
      <li>
        <b>6.0.0-beta-exports.5</b> - 2022-11-09
      </li>
      <li>
        <b>6.0.0-beta-exports.4</b> - 2022-10-01
      </li>
      <li>
        <b>6.0.0-beta-exports.3</b> - 2022-09-30
      </li>
      <li>
        <b>6.0.0-beta-exports.2</b> - 2022-09-27
      </li>
      <li>
        <b>6.0.0-beta-exports.1</b> - 2022-09-16
      </li>
      <li>
        <b>6.0.0-beta-exports.0</b> - 2022-09-05
      </li>
      <li>
        <b>6.0.0-beta.9</b> - 2022-04-20
      </li>
      <li>
        <b>6.0.0-beta.8</b> - 2022-04-20
      </li>
      <li>
        <b>6.0.0-beta.7</b> - 2022-04-20
      </li>
      <li>
        <b>6.0.0-beta.6</b> - 2022-04-20
      </li>
      <li>
        <b>6.0.0-beta.5</b> - 2022-04-19
      </li>
      <li>
        <b>6.0.0-beta.4</b> - 2022-04-17
      </li>
      <li>
        <b>6.0.0-beta.3</b> - 2022-04-14
      </li>
      <li>
        <b>6.0.0-beta.2</b> - 2022-04-11
      </li>
      <li>
        <b>6.0.0-beta.1</b> - 2022-04-11
      </li>
      <li>
        <b>5.7.2</b> - 2022-10-19
      </li>
    </ul>
from <a
href="https://snyk.io/redirect/github/ethers-io/ethers.js/releases">ethers
GitHub release notes</a>
  </details>
</details>
<hr/>

**Note:** *You are seeing this because you or someone else with access
to this repository has authorized Snyk to open upgrade PRs.*

For more information: <img
src="https://api.segment.io/v1/pixel/track?data=eyJ3cml0ZUtleSI6InJyWmxZcEdHY2RyTHZsb0lYd0dUcVg4WkFRTnNCOUEwIiwiYW5vbnltb3VzSWQiOiJhNDA4NTZhZC00NGNkLTQ1MjAtYmRjNS1iZjUyMGY3Mjc4NjkiLCJldmVudCI6IlBSIHZpZXdlZCIsInByb3BlcnRpZXMiOnsicHJJZCI6ImE0MDg1NmFkLTQ0Y2QtNDUyMC1iZGM1LWJmNTIwZjcyNzg2OSJ9fQ=="
width="0" height="0"/>

🧐 [View latest project
report](https://app.snyk.io/org/woodpile37/project/f0dcf1c9-ecf1-445b-bc07-e8f73c595f54?utm_source&#x3D;github&amp;utm_medium&#x3D;referral&amp;page&#x3D;upgrade-pr)

🛠 [Adjust upgrade PR
settings](https://app.snyk.io/org/woodpile37/project/f0dcf1c9-ecf1-445b-bc07-e8f73c595f54/settings/integration?utm_source&#x3D;github&amp;utm_medium&#x3D;referral&amp;page&#x3D;upgrade-pr)

🔕 [Ignore this dependency or unsubscribe from future upgrade
PRs](https://app.snyk.io/org/woodpile37/project/f0dcf1c9-ecf1-445b-bc07-e8f73c595f54/settings/integration?pkg&#x3D;ethers&amp;utm_source&#x3D;github&amp;utm_medium&#x3D;referral&amp;page&#x3D;upgrade-pr#auto-dep-upgrades)

<!---
(snyk:metadata:{"prId":"a40856ad-44cd-4520-bdc5-bf520f727869","prPublicId":"a40856ad-44cd-4520-bdc5-bf520f727869","dependencies":[{"name":"ethers","from":"5.7.2","to":"6.8.0"}],"packageManager":"npm","type":"auto","projectUrl":"https://app.snyk.io/org/woodpile37/project/f0dcf1c9-ecf1-445b-bc07-e8f73c595f54?utm_source=github&utm_medium=referral&page=upgrade-pr","projectPublicId":"f0dcf1c9-ecf1-445b-bc07-e8f73c595f54","env":"prod","prType":"upgrade","vulns":[],"issuesToFix":[],"upgrade":[],"upgradeInfo":{"versionsDiff":57,"publishedDate":"2023-10-11T06:18:14.788Z"},"templateVariants":[],"hasFixes":false,"isMajorUpgrade":true,"isBreakingChange":true,"priorityScoreList":[]})
--->
tkporter added a commit to hyperlane-xyz/hyperlane-monorepo that referenced this issue Nov 23, 2023
### Description

After investigating #2959, I found the following

this is a known problem with Polygon, explanation here
ethers-io/ethers.js#2828 (comment)

Fun fact Asa looked into this once
#771

Here's a discussion it in Foundry, which I found hoping that ethers-rs
folks had ran into this before
foundry-rs/foundry#1703

Foundry fixed this by using the Polygon gas station oracle which seems
to be recommended path
https://github.com/foundry-rs/foundry/pull/3368/files#diff-c89a4bbf7a90da118dcf00c5fe70eba78f8e5d95662bb5f039a353113e95042bR205

There's actually a polygon ethers middleware for this
https://docs.rs/ethers/latest/ethers/middleware/gas_oracle/polygon/struct.Polygon.html

So I (originally) borrowed this code from Foundry
https://github.com/foundry-rs/foundry/blob/master/crates/common/src/provider.rs#L254-L290

Changed to use Middlewares

This also means we can remove our existing janky Polygon logic

### Drive-by changes

<!--
Are there any minor or drive-by changes also included?
-->

### Related issues

<!--
- Fixes #[issue number here]
-->

### Backward compatibility

<!--
Are these changes backward compatible? Are there any infrastructure
implications, e.g. changes that would prohibit deploying older commits
using this infra tooling?

Yes/No
-->

### Testing

<!--
What kind of testing have these changes undergone?

None/Manual/Unit Tests
-->
nambrot pushed a commit to hyperlane-xyz/hyperlane-monorepo that referenced this issue Nov 24, 2023
After investigating #2959, I found the following

this is a known problem with Polygon, explanation here
ethers-io/ethers.js#2828 (comment)

Fun fact Asa looked into this once
#771

Here's a discussion it in Foundry, which I found hoping that ethers-rs
folks had ran into this before
foundry-rs/foundry#1703

Foundry fixed this by using the Polygon gas station oracle which seems
to be recommended path
https://github.com/foundry-rs/foundry/pull/3368/files#diff-c89a4bbf7a90da118dcf00c5fe70eba78f8e5d95662bb5f039a353113e95042bR205

There's actually a polygon ethers middleware for this
https://docs.rs/ethers/latest/ethers/middleware/gas_oracle/polygon/struct.Polygon.html

So I (originally) borrowed this code from Foundry
https://github.com/foundry-rs/foundry/blob/master/crates/common/src/provider.rs#L254-L290

Changed to use Middlewares

This also means we can remove our existing janky Polygon logic

<!--
Are there any minor or drive-by changes also included?
-->

<!--
- Fixes #[issue number here]
-->

<!--
Are these changes backward compatible? Are there any infrastructure
implications, e.g. changes that would prohibit deploying older commits
using this infra tooling?

Yes/No
-->

<!--
What kind of testing have these changes undergone?

None/Manual/Unit Tests
-->
nambrot pushed a commit to hyperlane-xyz/hyperlane-monorepo that referenced this issue Dec 1, 2023
After investigating #2959, I found the following

this is a known problem with Polygon, explanation here
ethers-io/ethers.js#2828 (comment)

Fun fact Asa looked into this once
#771

Here's a discussion it in Foundry, which I found hoping that ethers-rs
folks had ran into this before
foundry-rs/foundry#1703

Foundry fixed this by using the Polygon gas station oracle which seems
to be recommended path
https://github.com/foundry-rs/foundry/pull/3368/files#diff-c89a4bbf7a90da118dcf00c5fe70eba78f8e5d95662bb5f039a353113e95042bR205

There's actually a polygon ethers middleware for this
https://docs.rs/ethers/latest/ethers/middleware/gas_oracle/polygon/struct.Polygon.html

So I (originally) borrowed this code from Foundry
https://github.com/foundry-rs/foundry/blob/master/crates/common/src/provider.rs#L254-L290

Changed to use Middlewares

This also means we can remove our existing janky Polygon logic

<!--
Are there any minor or drive-by changes also included?
-->

<!--
- Fixes #[issue number here]
-->

<!--
Are these changes backward compatible? Are there any infrastructure
implications, e.g. changes that would prohibit deploying older commits
using this infra tooling?

Yes/No
-->

<!--
What kind of testing have these changes undergone?

None/Manual/Unit Tests
-->
@morimaxw
Copy link

@lancelot-c This worked perfectly for me under ethers 6.7.0, thanks!

The only reliable solution I could find that consistently gets transactions out in a few seconds.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or improvement. fixed/complete This Bug is fixed or Enhancement is complete and published. minor-bump Planned for the next minor version bump. v6 Issues regarding v6
Projects
None yet
Development

No branches or pull requests