From 78ac353676669fe0fcda131225b201859f918abf Mon Sep 17 00:00:00 2001 From: Jack Works <5390719+Jack-Works@users.noreply.github.com> Date: Wed, 25 Feb 2026 13:43:50 +0000 Subject: [PATCH] refactor: remove web3-eth-abi --- eslint.config.js | 1 - .../Wallet/Interaction/TransactionRequest.tsx | 15 ++++++++------- packages/web3-shared/evm/package.json | 1 - packages/web3-shared/evm/src/helpers/abiCoder.ts | 4 ---- packages/web3-shared/evm/src/index.ts | 1 - pnpm-lock.yaml | 4 +--- 6 files changed, 9 insertions(+), 17 deletions(-) delete mode 100644 packages/web3-shared/evm/src/helpers/abiCoder.ts diff --git a/eslint.config.js b/eslint.config.js index a0790ad9bfc6..7d5d4e1e1d93 100644 --- a/eslint.config.js +++ b/eslint.config.js @@ -24,7 +24,6 @@ const deferPackages = [ 'web3-eth-accounts', 'twitter-text', 'web3-utils', - 'web3-eth-abi', '@solana/web3.js', // add package names here. ] diff --git a/packages/mask/popups/pages/Wallet/Interaction/TransactionRequest.tsx b/packages/mask/popups/pages/Wallet/Interaction/TransactionRequest.tsx index d5efb1d1a936..6cf0d1d87522 100644 --- a/packages/mask/popups/pages/Wallet/Interaction/TransactionRequest.tsx +++ b/packages/mask/popups/pages/Wallet/Interaction/TransactionRequest.tsx @@ -5,7 +5,6 @@ import { makeStyles } from '@masknet/theme' import { useChainContext, usePrivyWallet, useWallet, useWeb3State } from '@masknet/web3-hooks-base' import { GasOptionType, MessageStateType, TransactionDescriptorType } from '@masknet/web3-shared-base' import { - abiCoder, ChainId, createJsonRpcRequest, createJsonRpcResponse, @@ -27,6 +26,7 @@ import { UnlockERC20Token } from '../../../components/UnlockERC20Token/index.js' import { UnlockERC721Token } from '../../../components/UnlockERC721Token/index.js' import { type TransactionDetail } from '../type.js' import type { InteractionItemProps } from './interaction.js' +import { decodeAbiParameters, encodeAbiParameters, hexToBigInt } from 'viem' const useStyles = makeStyles()((theme) => ({ text: { @@ -78,7 +78,7 @@ const approveParametersType = [ name: 'value', type: 'uint256', }, -] +] as const let mockingPrivyPid = Date.now() // Use unix timestamp as pid to avoid duplicate mocking export function TransactionRequest(props: InteractionItemProps) { @@ -137,14 +137,15 @@ export function TransactionRequest(props: InteractionItemProps) { if (approvedAmount) { if (!transaction.formattedTransaction?._tx.data) return - const parameters = abiCoder.decodeParameters( + const [spender, _approvedAmount] = decodeAbiParameters( approveParametersType, - transaction.formattedTransaction._tx.data.slice(10), + `0x${transaction.formattedTransaction._tx.data.slice(10)}`, ) - const parametersString = abiCoder - .encodeParameters(approveParametersType, [parameters.spender, web3_utils.toHex(approvedAmount)]) - .slice(2) + const parametersString = encodeAbiParameters(approveParametersType, [ + spender, + approvedAmount.startsWith('0x') ? hexToBigInt(approvedAmount as `0x${string}`) : BigInt(approvedAmount), + ]).slice(2) const result = `${transaction.formattedTransaction._tx.data.slice(0, 10)}${parametersString}` diff --git a/packages/web3-shared/evm/package.json b/packages/web3-shared/evm/package.json index 5ad9fdd4c81d..0cb6bba888c2 100644 --- a/packages/web3-shared/evm/package.json +++ b/packages/web3-shared/evm/package.json @@ -24,7 +24,6 @@ "punycode": "^2.3.1", "web3-core": "1.10.4", "web3-eth": "1.10.4", - "web3-eth-abi": "1.10.4", "web3-eth-accounts": "1.10.4", "web3-eth-contract": "1.10.4", "web3-utils": "1.10.4", diff --git a/packages/web3-shared/evm/src/helpers/abiCoder.ts b/packages/web3-shared/evm/src/helpers/abiCoder.ts deleted file mode 100644 index 1fa8f28b7ae8..000000000000 --- a/packages/web3-shared/evm/src/helpers/abiCoder.ts +++ /dev/null @@ -1,4 +0,0 @@ -import { lazyProxy } from '@masknet/shared-base' -import defer * as ABICoder from 'web3-eth-abi' - -export const abiCoder = lazyProxy(() => ABICoder.default) as unknown as ABICoder.AbiCoder diff --git a/packages/web3-shared/evm/src/index.ts b/packages/web3-shared/evm/src/index.ts index 78880d2478b6..8ecf2638db8c 100644 --- a/packages/web3-shared/evm/src/index.ts +++ b/packages/web3-shared/evm/src/index.ts @@ -1,7 +1,6 @@ export * from './constants/index.js' export * from './helpers/abiArrayToMappedObject.js' -export * from './helpers/abiCoder.js' export * from './helpers/addGasMargin.js' export * from './helpers/address.js' export * from './helpers/createAccount.js' diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 7051da2d68ac..ba7959d79e73 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -2967,9 +2967,6 @@ importers: web3-eth: specifier: 1.10.4 version: 1.10.4(encoding@0.1.13) - web3-eth-abi: - specifier: 1.10.4 - version: 1.10.4 web3-eth-accounts: specifier: 1.10.4 version: 1.10.4(encoding@0.1.13) @@ -15184,6 +15181,7 @@ packages: tar@4.4.19: resolution: {integrity: sha512-a20gEsvHnWe0ygBY8JbxoM4w3SJdhc7ZAuxkLqh+nvNQN2IOt0B5lLgM490X5Hl8FF0dl0tOf2ewFYAlIFgzVA==} engines: {node: '>=4.5'} + deprecated: Old versions of tar are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by contacting i@izs.me teex@1.0.1: resolution: {integrity: sha512-eYE6iEI62Ni1H8oIa7KlDU6uQBtqr4Eajni3wX7rpfXD8ysFx8z0+dri+KWEPWpBsxXfxu58x/0jvTVT1ekOSg==}