Source: Adobe/Tobias Arhelger
Non-custodial exchange DeversiFi – whose wallet was involved in the Ethereum (ETH) transaction that cost USD 23.m – explained what happened.
In addition, Ledger hardware wallets can display fees in non-human readable ways.
They added that only wallets with a “very large amount of funds” would be affected, while the rest would see a failed transaction.
During their investigation of the root cause, the team made sham deposits with ledgers to replicate the problem. They found that “when the gas and priority charges were calculated and then converted into a large number object. Since the last blocks are used to predict the priority fees, the calculation could result in a decimal number.”The EthereumJS library does not support decimal values, this would then result in an error – but “since the value was first converted to a buffer, no error handling was raised.”
As an example, they gave a value of that would set an integer 35624562649959629 – possibly six orders of magnitude higher than intended.
“DeversiFi is actively working with both the Ethereum community and Ledger to address issues that may have contributed to this occurrence,” the report said, adding: “EIP-1559 does not protect against accidental overspending.”
As reported, crypto exchange Bitfinex paid USD (ETH 7, ) in transaction fees for a transfer of nearly USD 100,000 in Tether (USDT) over the Ethereum network. A day later, the miner of this block returned all the funds minus ETH 50 as a return fee.
Rotkiapp founder Lefteris Karapetsas described reading this postmortem as “horrific.”The fact that this can happen shows how broken Crypto UX [user experience] and priorities are,” he said.