From 5488539dd3fd9436d4cef55e512646a7f0d0c7f3 Mon Sep 17 00:00:00 2001 From: kvhnuke <10602065+kvhnuke@users.noreply.github.com> Date: Thu, 21 Mar 2024 15:57:04 -0700 Subject: [PATCH 1/2] devop: temp update to web-eth web3-util --- packages/extension/package.json | 4 +- packages/swap/package.json | 5 +- packages/swap/src/common/estimateGasList.ts | 2 +- packages/swap/src/configs.ts | 2 +- .../swap/src/providers/changelly/index.ts | 3 +- packages/swap/src/providers/oneInch/index.ts | 2 +- packages/swap/src/providers/paraswap/index.ts | 2 +- packages/swap/src/providers/rango/index.ts | 2 +- packages/swap/src/providers/zerox/index.ts | 2 +- packages/swap/src/swapToken.ts | 3 +- packages/swap/src/types/index.ts | 2 +- packages/swap/src/types/shims.d.ts | 6 - packages/swap/src/utils/approvals.ts | 14 +- .../swap/tests/fixtures/mainnet/configs.ts | 3 +- packages/swap/tests/oneInch.test.ts | 2 +- packages/swap/tests/paraswap.test.ts | 2 +- packages/swap/tests/rango.test.ts | 2 +- packages/swap/tests/swapToken.test.ts | 2 +- packages/swap/tests/zerox.test.ts | 2 +- packages/utils/package.json | 3 +- packages/utils/src/index.ts | 11 +- packages/utils/src/number-to-bn.ts | 66 +++ packages/utils/src/units.ts | 2 +- packages/utils/tests/utils.test.ts | 5 + yarn.lock | 466 +++++++++--------- 25 files changed, 332 insertions(+), 283 deletions(-) delete mode 100644 packages/swap/src/types/shims.d.ts create mode 100644 packages/utils/src/number-to-bn.ts diff --git a/packages/extension/package.json b/packages/extension/package.json index 931a7a466..213b74370 100644 --- a/packages/extension/package.json +++ b/packages/extension/package.json @@ -66,8 +66,8 @@ "vue-router": "4.3.0", "vue3-lottie": "^3.3.0", "vuedraggable": "^4.1.0", - "web3-eth": "^1.10.4", - "web3-utils": "^1.10.4", + "web3-eth": "^4.5.0", + "web3-utils": "^4.2.1", "yarn": "^1.22.22", "zxcvbn": "^4.4.2" }, diff --git a/packages/swap/package.json b/packages/swap/package.json index c0f3cec49..bfbd65034 100644 --- a/packages/swap/package.json +++ b/packages/swap/package.json @@ -27,8 +27,9 @@ "rango-sdk-basic": "^0.1.46", "reconnecting-websocket": "^4.4.0", "uuid": "^9.0.1", - "web3-eth": "^1.10.4", - "web3-utils": "^1.10.4", + "web3-eth": "^4.5.0", + "web3-eth-contract": "^4.2.0", + "web3-utils": "^4.2.1", "ws": "^8.16.0" }, "devDependencies": { diff --git a/packages/swap/src/common/estimateGasList.ts b/packages/swap/src/common/estimateGasList.ts index b38debad0..cfad7c823 100644 --- a/packages/swap/src/common/estimateGasList.ts +++ b/packages/swap/src/common/estimateGasList.ts @@ -1,5 +1,5 @@ import fetch from "node-fetch"; -import { numberToHex, toBN } from "web3-utils"; +import { numberToHex, toBN } from "@enkryptcom/utils"; import { EVMTransaction, SupportedNetworkName } from "../types"; import { GAS_LIMITS } from "../configs"; diff --git a/packages/swap/src/configs.ts b/packages/swap/src/configs.ts index 90405a66b..872614a5b 100644 --- a/packages/swap/src/configs.ts +++ b/packages/swap/src/configs.ts @@ -1,5 +1,5 @@ import { NetworkNames } from "@enkryptcom/types"; -import { numberToHex } from "web3-utils"; +import { numberToHex } from "@enkryptcom/utils"; import { ProviderName, SupportedNetworkName, WalletIdentifier } from "./types"; const FEE_CONFIGS = { diff --git a/packages/swap/src/providers/changelly/index.ts b/packages/swap/src/providers/changelly/index.ts index 7a82816b9..815facf15 100644 --- a/packages/swap/src/providers/changelly/index.ts +++ b/packages/swap/src/providers/changelly/index.ts @@ -1,8 +1,7 @@ import type Web3Eth from "web3-eth"; import { v4 as uuidv4 } from "uuid"; import fetch from "node-fetch"; -import { fromBase, toBase } from "@enkryptcom/utils"; -import { numberToHex, toBN } from "web3-utils"; +import { fromBase, toBase, numberToHex, toBN } from "@enkryptcom/utils"; import { getQuoteOptions, MinMaxResponse, diff --git a/packages/swap/src/providers/oneInch/index.ts b/packages/swap/src/providers/oneInch/index.ts index 22f1bb508..f85d95345 100644 --- a/packages/swap/src/providers/oneInch/index.ts +++ b/packages/swap/src/providers/oneInch/index.ts @@ -1,5 +1,5 @@ import type Web3Eth from "web3-eth"; -import { numberToHex, toBN } from "web3-utils"; +import { numberToHex, toBN } from "@enkryptcom/utils"; import fetch from "node-fetch"; import { EVMTransaction, diff --git a/packages/swap/src/providers/paraswap/index.ts b/packages/swap/src/providers/paraswap/index.ts index 6eeff90e8..c8bd038d9 100644 --- a/packages/swap/src/providers/paraswap/index.ts +++ b/packages/swap/src/providers/paraswap/index.ts @@ -1,5 +1,5 @@ import type Web3Eth from "web3-eth"; -import { numberToHex, toBN } from "web3-utils"; +import { numberToHex, toBN } from "@enkryptcom/utils"; import fetch from "node-fetch"; import { EVMTransaction, diff --git a/packages/swap/src/providers/rango/index.ts b/packages/swap/src/providers/rango/index.ts index da35ddadb..10e1b56c2 100644 --- a/packages/swap/src/providers/rango/index.ts +++ b/packages/swap/src/providers/rango/index.ts @@ -1,5 +1,5 @@ import type Web3Eth from "web3-eth"; -import { numberToHex, toBN } from "web3-utils"; +import { numberToHex, toBN } from "@enkryptcom/utils"; import { EvmTransaction as RangoEvmTransaction, RangoClient, diff --git a/packages/swap/src/providers/zerox/index.ts b/packages/swap/src/providers/zerox/index.ts index b1ddc1a7e..209510656 100644 --- a/packages/swap/src/providers/zerox/index.ts +++ b/packages/swap/src/providers/zerox/index.ts @@ -1,5 +1,5 @@ import type Web3Eth from "web3-eth"; -import { numberToHex, toBN } from "web3-utils"; +import { numberToHex, toBN } from "@enkryptcom/utils"; import fetch from "node-fetch"; import { EVMTransaction, diff --git a/packages/swap/src/swapToken.ts b/packages/swap/src/swapToken.ts index 374cca33a..b9caa78a9 100644 --- a/packages/swap/src/swapToken.ts +++ b/packages/swap/src/swapToken.ts @@ -1,6 +1,5 @@ -import { fromBase, toBase } from "@enkryptcom/utils"; +import { fromBase, toBase, toBN } from "@enkryptcom/utils"; import BigNumber from "bignumber.js"; -import { toBN } from "web3-utils"; import { BN, TokenType } from "./types"; class SwapToken { diff --git a/packages/swap/src/types/index.ts b/packages/swap/src/types/index.ts index ac1e38b84..8e5249af6 100644 --- a/packages/swap/src/types/index.ts +++ b/packages/swap/src/types/index.ts @@ -1,5 +1,5 @@ import { NetworkNames, SignerType } from "@enkryptcom/types"; -import type { toBN } from "web3-utils"; +import type { toBN } from "@enkryptcom/utils"; import type Web3Eth from "web3-eth"; // eslint-disable-next-line no-shadow diff --git a/packages/swap/src/types/shims.d.ts b/packages/swap/src/types/shims.d.ts deleted file mode 100644 index 564e6ab1d..000000000 --- a/packages/swap/src/types/shims.d.ts +++ /dev/null @@ -1,6 +0,0 @@ -import type { Eth } from "web3-eth"; - -declare module "web3-eth" { - // @ts-ignore - export = Eth; -} diff --git a/packages/swap/src/utils/approvals.ts b/packages/swap/src/utils/approvals.ts index b52eef059..a91ac65ea 100644 --- a/packages/swap/src/utils/approvals.ts +++ b/packages/swap/src/utils/approvals.ts @@ -1,5 +1,6 @@ import Web3Eth from "web3-eth"; -import { toBN } from "web3-utils"; +import Web3Contract from "web3-eth-contract"; +import { toBN } from "@enkryptcom/utils"; import Erc20abi from "./abi/erc20"; import { BN, EVMTransaction, TokenType, TransactionType } from "../types"; import { GAS_LIMITS } from "../configs"; @@ -13,9 +14,10 @@ const getAllowance = (options: { spender: string; web3eth: Web3Eth; }): Promise => { - const contract = new options.web3eth.Contract( + const contract = new Web3Contract( Erc20abi as any, - options.contract + options.contract, + options.web3eth ); return contract.methods.allowance(options.owner, options.spender).call(); }; @@ -26,8 +28,7 @@ const getTransfer = (options: { to: string; value: string; }): EVMTransaction => { - const web3Eth = new Web3Eth(); - const contract = new web3Eth.Contract(Erc20abi as any); + const contract = new Web3Contract(Erc20abi as any); return { from: options.from, data: contract.methods.transfer(options.to, options.value).encodeABI(), @@ -44,8 +45,7 @@ const getApproval = (options: { spender: string; value: string; }): EVMTransaction => { - const web3Eth = new Web3Eth(); - const contract = new web3Eth.Contract(Erc20abi as any); + const contract = new Web3Contract(Erc20abi as any); return { from: options.from, data: contract.methods.approve(options.spender, options.value).encodeABI(), diff --git a/packages/swap/tests/fixtures/mainnet/configs.ts b/packages/swap/tests/fixtures/mainnet/configs.ts index 6c6d3d8b2..13a70dd0c 100644 --- a/packages/swap/tests/fixtures/mainnet/configs.ts +++ b/packages/swap/tests/fixtures/mainnet/configs.ts @@ -1,5 +1,6 @@ import { NetworkNames } from "@enkryptcom/types"; -import { isAddress, toBN } from "web3-utils"; +import { isAddress } from "web3-utils"; +import { toBN } from "@enkryptcom/utils"; import { NetworkType, TokenType, TokenTypeTo } from "../../../src/types"; const amount = toBN("100000000000000000000"); diff --git a/packages/swap/tests/oneInch.test.ts b/packages/swap/tests/oneInch.test.ts index 567e53031..8c9d04638 100644 --- a/packages/swap/tests/oneInch.test.ts +++ b/packages/swap/tests/oneInch.test.ts @@ -1,6 +1,6 @@ import { expect } from "chai"; import Web3Eth from "web3-eth"; -import { numberToHex } from "web3-utils"; +import { numberToHex } from "@enkryptcom/utils"; import OneInch, { ONEINCH_APPROVAL_ADDRESS } from "../src/providers/oneInch"; import { EVMTransaction, diff --git a/packages/swap/tests/paraswap.test.ts b/packages/swap/tests/paraswap.test.ts index 14a80113b..eea0a67a2 100644 --- a/packages/swap/tests/paraswap.test.ts +++ b/packages/swap/tests/paraswap.test.ts @@ -1,6 +1,6 @@ import { expect } from "chai"; import Web3Eth from "web3-eth"; -import { numberToHex } from "web3-utils"; +import { numberToHex } from "@enkryptcom/utils"; import Parawap, { PARASWAP_APPROVAL_ADDRESS } from "../src/providers/paraswap"; import { EVMTransaction, diff --git a/packages/swap/tests/rango.test.ts b/packages/swap/tests/rango.test.ts index c6e5a770a..0dfff734a 100644 --- a/packages/swap/tests/rango.test.ts +++ b/packages/swap/tests/rango.test.ts @@ -1,5 +1,5 @@ import { expect } from "chai"; -import { toBN } from "web3-utils"; +import { toBN } from "@enkryptcom/utils"; import Web3Eth from "web3-eth"; import Rango from "../src/providers/rango"; import { diff --git a/packages/swap/tests/swapToken.test.ts b/packages/swap/tests/swapToken.test.ts index ef6a367f0..e338eb10c 100644 --- a/packages/swap/tests/swapToken.test.ts +++ b/packages/swap/tests/swapToken.test.ts @@ -1,5 +1,5 @@ import { expect } from "chai"; -import { toBN } from "web3-utils"; +import { toBN } from "@enkryptcom/utils"; import { fromToken } from "./fixtures/mainnet/configs"; import SwapToken from "../src/swapToken"; diff --git a/packages/swap/tests/zerox.test.ts b/packages/swap/tests/zerox.test.ts index 4bbb8fd61..bcf247688 100644 --- a/packages/swap/tests/zerox.test.ts +++ b/packages/swap/tests/zerox.test.ts @@ -1,6 +1,6 @@ import { expect } from "chai"; import Web3Eth from "web3-eth"; -import { numberToHex } from "web3-utils"; +import { numberToHex } from "@enkryptcom/utils"; import Zerox from "../src/providers/zerox"; import { EVMTransaction, diff --git a/packages/utils/package.json b/packages/utils/package.json index d00cae663..04c022e70 100644 --- a/packages/utils/package.json +++ b/packages/utils/package.json @@ -21,9 +21,10 @@ "@ethereumjs/util": "^9.0.3", "@polkadot/util-crypto": "^12.6.2", "bip39": "^3.1.0", + "bn.js": "^5.2.1", "chai": "^4.4.1", "ethereum-cryptography": "^2.1.3", - "web3-utils": "^1.10.4" + "web3-utils": "^4.2.1" }, "devDependencies": { "@types/chai": "^4.3.14", diff --git a/packages/utils/src/index.ts b/packages/utils/src/index.ts index 6890e660d..6ae46388d 100644 --- a/packages/utils/src/index.ts +++ b/packages/utils/src/index.ts @@ -1,20 +1,16 @@ -import { - stripHexPrefix, - hexToBytes, - keccak256, - utf8ToHex, - numberToHex, -} from "web3-utils"; +import { hexToBytes, keccak256, utf8ToHex, numberToHex } from "web3-utils"; import { bigIntToBytes, bigIntToHex } from "@ethereumjs/util"; import { encodeAddress as polkadotEncodeAddress } from "@polkadot/util-crypto"; import { encrypt, decrypt } from "./encrypt"; import MemoryStorage from "./memory-storage"; import { fromBase, toBase, isValidDecimals } from "./units"; +import { toBN, stripHexPrefix } from "./number-to-bn"; const bufferToHex = (buf: Buffer | Uint8Array, nozerox = false): string => nozerox ? Buffer.from(buf).toString("hex") : `0x${Buffer.from(buf).toString("hex")}`; + const hexToBuffer = (hex: string): Buffer => Buffer.from( stripHexPrefix(hex).length % 2 === 1 @@ -24,6 +20,7 @@ const hexToBuffer = (hex: string): Buffer => ); export { + toBN, stripHexPrefix, utf8ToHex, bufferToHex, diff --git a/packages/utils/src/number-to-bn.ts b/packages/utils/src/number-to-bn.ts new file mode 100644 index 000000000..20918d88b --- /dev/null +++ b/packages/utils/src/number-to-bn.ts @@ -0,0 +1,66 @@ +import BN from "bn.js"; + +export const isHex = (hex: string) => + (typeof hex === "string" || typeof hex === "number") && + /^(-0x|0x)?[0-9a-f]*$/i.test(hex); + +export const stripHexPrefix = (str: string) => { + if (isHex(str)) return str.replace(/^(-)?0x/i, "$1"); + return str; +}; + +// https://github.com/SilentCicero/number-to-bn/blob/master/src/index.js +/** + * Returns a BN object, converts a number value to a BN + * @param {String|Number|Object} `arg` input a string number, hex string number, number, BigNumber or BN object + * @return {Object} `output` BN object of the number + * @throws if the argument is not an array, object that isn't a bignumber, not a string number or number + */ +export const numberToBN = (arg: string | number | BN) => { + if (typeof arg === "string" || typeof arg === "number") { + let multiplier = new BN(1); + const formattedString = String(arg).toLowerCase().trim(); + const isHexPrefixed = + formattedString.substring(0, 2) === "0x" || + formattedString.substring(0, 3) === "-0x"; + let stringArg = stripHexPrefix(formattedString); + if (stringArg.substring(0, 1) === "-") { + stringArg = stripHexPrefix(stringArg.slice(1)); + multiplier = new BN(-1, 10); + } + stringArg = stringArg === "" ? "0" : stringArg; + + if ( + (!stringArg.match(/^-?[0-9]+$/) && stringArg.match(/^[0-9A-Fa-f]+$/)) || + stringArg.match(/^[a-fA-F]+$/) || + (isHexPrefixed === true && stringArg.match(/^[0-9A-Fa-f]+$/)) + ) { + return new BN(stringArg, 16).mul(multiplier); + } + + if ( + (stringArg.match(/^-?[0-9]+$/) || stringArg === "") && + isHexPrefixed === false + ) { + return new BN(stringArg, 10).mul(multiplier); + } + } else if (typeof arg === "object" && arg.toString) { + if (arg.toString(10).match(/^-?[0-9]+$/) && (arg.mul || arg.divn)) { + return new BN(arg.toString(10), 10); + } + } + + throw new Error( + `[number-to-bn] while converting number + ${JSON.stringify(arg)} + to BN.js instance, error: invalid number value. Value must be an integer, hex string, BN or BigNumber instance. Note, decimals are not supported.` + ); +}; + +export const toBN = (number: string | number) => { + try { + return numberToBN(number); + } catch (e) { + throw new Error(`${e} Given value: "${number}"`); + } +}; diff --git a/packages/utils/src/units.ts b/packages/utils/src/units.ts index 3676a4601..ff98928ae 100644 --- a/packages/utils/src/units.ts +++ b/packages/utils/src/units.ts @@ -6,7 +6,7 @@ https://github.com/ethers-io Note, Richard is a god of ether gods. Follow and respect him, and use Ethers.io! */ -import { toBN } from "web3-utils"; +import { toBN } from "./number-to-bn"; const zero = toBN(0); const negative1 = toBN(-1); diff --git a/packages/utils/tests/utils.test.ts b/packages/utils/tests/utils.test.ts index b42fc00c8..bfc25a36f 100644 --- a/packages/utils/tests/utils.test.ts +++ b/packages/utils/tests/utils.test.ts @@ -5,6 +5,7 @@ import { hexToBuffer, toBase, fromBase, + toBN, } from "../src"; describe("Utility functions", () => { @@ -21,6 +22,10 @@ describe("Utility functions", () => { expect(hexToBuffer("0x123456")).to.be.deep.equal(buf); expect(hexToBuffer("123456")).to.be.deep.equal(buf); }); + it("toBN to string", () => { + const bn = toBN("0xabcdef"); + expect(bn.toString()).to.be.equal("11259375"); + }); it("To Base/From Base", () => { expect(toBase("1193046", 18)).to.be.equal("1193046000000000000000000"); expect(fromBase("1193046000000000000000000", 18)).to.be.equal("1193046"); diff --git a/yarn.lock b/yarn.lock index 66df438dd..0ee0b8047 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2516,8 +2516,8 @@ __metadata: vue-router: 4.3.0 vue3-lottie: ^3.3.0 vuedraggable: ^4.1.0 - web3-eth: ^1.10.4 - web3-utils: ^1.10.4 + web3-eth: ^4.5.0 + web3-utils: ^4.2.1 webextension-polyfill: ^0.10.0 yarn: ^1.22.22 zxcvbn: ^4.4.2 @@ -2837,8 +2837,9 @@ __metadata: typescript: ^4.9.5 typescript-eslint: 0.0.1-alpha.0 uuid: ^9.0.1 - web3-eth: ^1.10.4 - web3-utils: ^1.10.4 + web3-eth: ^4.5.0 + web3-eth-contract: ^4.2.0 + web3-utils: ^4.2.1 ws: ^8.16.0 languageName: unknown linkType: soft @@ -2878,6 +2879,7 @@ __metadata: "@typescript-eslint/eslint-plugin": ^5.62.0 "@typescript-eslint/parser": ^5.62.0 bip39: ^3.1.0 + bn.js: ^5.2.1 chai: ^4.4.1 eslint: ^8.57.0 eslint-config-airbnb-base: ^15.0.0 @@ -2894,7 +2896,7 @@ __metadata: tsup: ^8.0.2 typescript: ^4.9.5 typescript-eslint: 0.0.1-alpha.0 - web3-utils: ^1.10.4 + web3-utils: ^4.2.1 languageName: unknown linkType: soft @@ -3224,7 +3226,7 @@ __metadata: languageName: node linkType: hard -"@ethereumjs/common@npm:2.6.5, @ethereumjs/common@npm:^2.3.0, @ethereumjs/common@npm:^2.4.0, @ethereumjs/common@npm:^2.5.0, @ethereumjs/common@npm:^2.6.4": +"@ethereumjs/common@npm:^2.3.0, @ethereumjs/common@npm:^2.4.0, @ethereumjs/common@npm:^2.5.0, @ethereumjs/common@npm:^2.6.4": version: 2.6.5 resolution: "@ethereumjs/common@npm:2.6.5" dependencies: @@ -3290,7 +3292,7 @@ __metadata: languageName: node linkType: hard -"@ethereumjs/tx@npm:3.5.2, @ethereumjs/tx@npm:^3.2.1": +"@ethereumjs/tx@npm:^3.2.1": version: 3.5.2 resolution: "@ethereumjs/tx@npm:3.5.2" dependencies: @@ -8572,6 +8574,15 @@ __metadata: languageName: node linkType: hard +"@types/ws@npm:8.5.3": + version: 8.5.3 + resolution: "@types/ws@npm:8.5.3" + dependencies: + "@types/node": "*" + checksum: 0ce46f850d41383fcdc2149bcacc86d7232fa7a233f903d2246dff86e31701a02f8566f40af5f8b56d1834779255c04ec6ec78660fe0f9b2a69cf3d71937e4ae + languageName: node + linkType: hard + "@types/ws@npm:^7.2.0, @types/ws@npm:^7.4.4": version: 7.4.7 resolution: "@types/ws@npm:7.4.7" @@ -9690,6 +9701,19 @@ __metadata: languageName: node linkType: hard +"abitype@npm:0.7.1": + version: 0.7.1 + resolution: "abitype@npm:0.7.1" + peerDependencies: + typescript: ">=4.9.4" + zod: ^3 >=3.19.1 + peerDependenciesMeta: + zod: + optional: true + checksum: de0d7082d28a4835b3d8dc4d8c75e9222c95a1f9eed13d6b2381403b46f46b68ea7a281e8ba6628d259a98c54ea466ebc206eec21db6205fa1641c7393854f5e + languageName: node + linkType: hard + "abort-controller@npm:^3.0.0": version: 3.0.0 resolution: "abort-controller@npm:3.0.0" @@ -9699,7 +9723,7 @@ __metadata: languageName: node linkType: hard -"abortcontroller-polyfill@npm:^1.7.3, abortcontroller-polyfill@npm:^1.7.5": +"abortcontroller-polyfill@npm:^1.7.3": version: 1.7.5 resolution: "abortcontroller-polyfill@npm:1.7.5" checksum: daf4169f4228ae0e4f4dbcfa782e501b923667f2666b7c55bd3b7664e5d6b100e333a93371173985fdf21f65d7dfba15bdb2e6031bdc9e57e4ce0297147da3aa @@ -12434,7 +12458,7 @@ __metadata: languageName: node linkType: hard -"crc-32@npm:^1.2.0": +"crc-32@npm:^1.2.0, crc-32@npm:^1.2.2": version: 1.2.2 resolution: "crc-32@npm:1.2.2" bin: @@ -24986,16 +25010,6 @@ __metadata: languageName: node linkType: hard -"web3-core-helpers@npm:1.10.4": - version: 1.10.4 - resolution: "web3-core-helpers@npm:1.10.4" - dependencies: - web3-eth-iban: 1.10.4 - web3-utils: 1.10.4 - checksum: a43fc382cd37ac1b6738a7a4e351ad113f0531b1022952c039480e48c14fb8c254ca9855236d6a2da3ad1ea918f7d8f07a64f17bc9784f035c9e38242e52b593 - languageName: node - linkType: hard - "web3-core-helpers@npm:1.3.6": version: 1.3.6 resolution: "web3-core-helpers@npm:1.3.6" @@ -25030,19 +25044,6 @@ __metadata: languageName: node linkType: hard -"web3-core-method@npm:1.10.4": - version: 1.10.4 - resolution: "web3-core-method@npm:1.10.4" - dependencies: - "@ethersproject/transactions": ^5.6.2 - web3-core-helpers: 1.10.4 - web3-core-promievent: 1.10.4 - web3-core-subscriptions: 1.10.4 - web3-utils: 1.10.4 - checksum: 98971d6568995bcc8cf6721aa587f4664373a502fbc20bd04ebe167d1c719d6e1ed2bdb0488f20e43abd82223ae813d5fa25a8e8da0e1ca60637d7578a09cac1 - languageName: node - linkType: hard - "web3-core-method@npm:1.3.6": version: 1.3.6 resolution: "web3-core-method@npm:1.3.6" @@ -25080,15 +25081,6 @@ __metadata: languageName: node linkType: hard -"web3-core-promievent@npm:1.10.4": - version: 1.10.4 - resolution: "web3-core-promievent@npm:1.10.4" - dependencies: - eventemitter3: 4.0.4 - checksum: a792c74aa5c91dc63fb493af04628ecfa08b9e6ceea402dfe53f718b019c41d63a0200bf3045dd23ec3c42b8d7474ac96eb4cb4456060becc551c2cacbd02bb1 - languageName: node - linkType: hard - "web3-core-promievent@npm:1.3.6": version: 1.3.6 resolution: "web3-core-promievent@npm:1.3.6" @@ -25120,19 +25112,6 @@ __metadata: languageName: node linkType: hard -"web3-core-requestmanager@npm:1.10.4": - version: 1.10.4 - resolution: "web3-core-requestmanager@npm:1.10.4" - dependencies: - util: ^0.12.5 - web3-core-helpers: 1.10.4 - web3-providers-http: 1.10.4 - web3-providers-ipc: 1.10.4 - web3-providers-ws: 1.10.4 - checksum: 5f1520b756a3e4d252b96ad360a78b6c24f3825cf2448aee535fe857867f35d2cbbc6b9a8f1c2ffd2eebfdde14a4c82bac28f0760d5f8be6bdd7d37d88e6cd97 - languageName: node - linkType: hard - "web3-core-requestmanager@npm:1.3.6": version: 1.3.6 resolution: "web3-core-requestmanager@npm:1.3.6" @@ -25170,16 +25149,6 @@ __metadata: languageName: node linkType: hard -"web3-core-subscriptions@npm:1.10.4": - version: 1.10.4 - resolution: "web3-core-subscriptions@npm:1.10.4" - dependencies: - eventemitter3: 4.0.4 - web3-core-helpers: 1.10.4 - checksum: f79aedf5d5c14c4e73a0040fe5102905b79169a413c49f3887ade6709584803b648593d6f877524deb482d3b94860de42c54d4b50005298cbc69b7fc3ddf39db - languageName: node - linkType: hard - "web3-core-subscriptions@npm:1.3.6": version: 1.3.6 resolution: "web3-core-subscriptions@npm:1.3.6" @@ -25216,21 +25185,6 @@ __metadata: languageName: node linkType: hard -"web3-core@npm:1.10.4": - version: 1.10.4 - resolution: "web3-core@npm:1.10.4" - dependencies: - "@types/bn.js": ^5.1.1 - "@types/node": ^12.12.6 - bignumber.js: ^9.0.0 - web3-core-helpers: 1.10.4 - web3-core-method: 1.10.4 - web3-core-requestmanager: 1.10.4 - web3-utils: 1.10.4 - checksum: 2f6fae35c15acf68c23f8ff696777cb5a7bf322fc00191e5c4b70850eaf494231d8f096e6dbe8993306d81b28bc65bb38c64afca85e1ddbd1419ee293da64bc0 - languageName: node - linkType: hard - "web3-core@npm:1.3.6": version: 1.3.6 resolution: "web3-core@npm:1.3.6" @@ -25261,6 +25215,35 @@ __metadata: languageName: node linkType: hard +"web3-core@npm:^4.3.0, web3-core@npm:^4.3.2": + version: 4.3.2 + resolution: "web3-core@npm:4.3.2" + dependencies: + web3-errors: ^1.1.4 + web3-eth-accounts: ^4.1.0 + web3-eth-iban: ^4.0.7 + web3-providers-http: ^4.1.0 + web3-providers-ipc: ^4.0.7 + web3-providers-ws: ^4.0.7 + web3-types: ^1.3.1 + web3-utils: ^4.1.0 + web3-validator: ^2.0.3 + dependenciesMeta: + web3-providers-ipc: + optional: true + checksum: 7505186c5b7de1ebf03bbf9ce109c809618652402ed01e93a98292432a2d31f958cb284af8b7a286a149736f0943839a098150d02034232036243b058f57d739 + languageName: node + linkType: hard + +"web3-errors@npm:^1.1.3, web3-errors@npm:^1.1.4": + version: 1.1.4 + resolution: "web3-errors@npm:1.1.4" + dependencies: + web3-types: ^1.3.1 + checksum: d93cebc391880fa50052e31f05e3b33234e4c230be3172d1c046ae8f52d962f846b5fc002c201d53562f806e0645c5e7eca64c510b57bcfec1afbd294f0b2ffe + languageName: node + linkType: hard + "web3-eth-abi@npm:1.10.0": version: 1.10.0 resolution: "web3-eth-abi@npm:1.10.0" @@ -25271,16 +25254,6 @@ __metadata: languageName: node linkType: hard -"web3-eth-abi@npm:1.10.4": - version: 1.10.4 - resolution: "web3-eth-abi@npm:1.10.4" - dependencies: - "@ethersproject/abi": ^5.6.3 - web3-utils: 1.10.4 - checksum: d7a2781f6d896028c6dfa5c37a412b47c884853769915f42c8006c9390cb44a2105c25dda2d8375990ff2dd4cc3c71112fe857250760f74eaa80464f564600bc - languageName: node - linkType: hard - "web3-eth-abi@npm:1.3.6": version: 1.3.6 resolution: "web3-eth-abi@npm:1.3.6" @@ -25302,6 +25275,19 @@ __metadata: languageName: node linkType: hard +"web3-eth-abi@npm:^4.2.0": + version: 4.2.0 + resolution: "web3-eth-abi@npm:4.2.0" + dependencies: + abitype: 0.7.1 + web3-errors: ^1.1.4 + web3-types: ^1.3.1 + web3-utils: ^4.1.1 + web3-validator: ^2.0.4 + checksum: 4abe8d2457ff55dab158f26831133bb2232d17d8c53bb4e00d6c0f921b61cefea630d65bc778d899d99f2189c69a5fe21f0fbf61fe20cb1d5d6561e8b9a3b66e + languageName: node + linkType: hard + "web3-eth-accounts@npm:1.10.0": version: 1.10.0 resolution: "web3-eth-accounts@npm:1.10.0" @@ -25320,24 +25306,6 @@ __metadata: languageName: node linkType: hard -"web3-eth-accounts@npm:1.10.4": - version: 1.10.4 - resolution: "web3-eth-accounts@npm:1.10.4" - dependencies: - "@ethereumjs/common": 2.6.5 - "@ethereumjs/tx": 3.5.2 - "@ethereumjs/util": ^8.1.0 - eth-lib: 0.2.8 - scrypt-js: ^3.0.1 - uuid: ^9.0.0 - web3-core: 1.10.4 - web3-core-helpers: 1.10.4 - web3-core-method: 1.10.4 - web3-utils: 1.10.4 - checksum: e75e3441b38d51efaf437231f803bb86f02d7434ef1c57d184b9a7fe2c1ab733348908108153b079f54c53fb57c27673210dfd8d9b49e6352e4972ba1d097bd5 - languageName: node - linkType: hard - "web3-eth-accounts@npm:1.3.6": version: 1.3.6 resolution: "web3-eth-accounts@npm:1.3.6" @@ -25376,6 +25344,21 @@ __metadata: languageName: node linkType: hard +"web3-eth-accounts@npm:^4.1.0, web3-eth-accounts@npm:^4.1.1": + version: 4.1.1 + resolution: "web3-eth-accounts@npm:4.1.1" + dependencies: + "@ethereumjs/rlp": ^4.0.1 + crc-32: ^1.2.2 + ethereum-cryptography: ^2.0.0 + web3-errors: ^1.1.4 + web3-types: ^1.3.1 + web3-utils: ^4.1.1 + web3-validator: ^2.0.4 + checksum: f87f0bdf7b0bce35adb3ffd7039888c876576bcf3b82651ff2e86dde75282fcc8a5d92569e9f7a1fc441df7c52e3d6feceac608066d4c54ec5fc696ff9804de1 + languageName: node + linkType: hard + "web3-eth-contract@npm:1.10.0": version: 1.10.0 resolution: "web3-eth-contract@npm:1.10.0" @@ -25392,22 +25375,6 @@ __metadata: languageName: node linkType: hard -"web3-eth-contract@npm:1.10.4": - version: 1.10.4 - resolution: "web3-eth-contract@npm:1.10.4" - dependencies: - "@types/bn.js": ^5.1.1 - web3-core: 1.10.4 - web3-core-helpers: 1.10.4 - web3-core-method: 1.10.4 - web3-core-promievent: 1.10.4 - web3-core-subscriptions: 1.10.4 - web3-eth-abi: 1.10.4 - web3-utils: 1.10.4 - checksum: 421957a5d5242ece3421b69b33b8b1f092fc3e7f2d8959e554b91693e83ecaee1cf04dcc6acb34b3352a7b8e50b9194f159ddbf2493739d94399290cc7a070b5 - languageName: node - linkType: hard - "web3-eth-contract@npm:1.3.6": version: 1.3.6 resolution: "web3-eth-contract@npm:1.3.6" @@ -25441,6 +25408,21 @@ __metadata: languageName: node linkType: hard +"web3-eth-contract@npm:^4.2.0": + version: 4.2.0 + resolution: "web3-eth-contract@npm:4.2.0" + dependencies: + web3-core: ^4.3.2 + web3-errors: ^1.1.4 + web3-eth: ^4.4.0 + web3-eth-abi: ^4.2.0 + web3-types: ^1.3.1 + web3-utils: ^4.1.1 + web3-validator: ^2.0.4 + checksum: 0547609dd9c2b4c30562304a1ade703f7cdf9acfc995e0719bbbeacb386ce76422bd713a915222e1dfcbc8564ebab322e64b965b18fc51dc066b1aabf29011e8 + languageName: node + linkType: hard + "web3-eth-ens@npm:1.10.0": version: 1.10.0 resolution: "web3-eth-ens@npm:1.10.0" @@ -25457,22 +25439,6 @@ __metadata: languageName: node linkType: hard -"web3-eth-ens@npm:1.10.4": - version: 1.10.4 - resolution: "web3-eth-ens@npm:1.10.4" - dependencies: - content-hash: ^2.5.2 - eth-ens-namehash: 2.0.8 - web3-core: 1.10.4 - web3-core-helpers: 1.10.4 - web3-core-promievent: 1.10.4 - web3-eth-abi: 1.10.4 - web3-eth-contract: 1.10.4 - web3-utils: 1.10.4 - checksum: b29d2f7f944081df9c3617a56243ad98c7b69e32db803856a2b6d097b3ae914a3c472cc377fc2cc6bba7ced43eeba1c2830cf3ff5a29e0aa63d5a66c257035f5 - languageName: node - linkType: hard - "web3-eth-ens@npm:1.3.6": version: 1.3.6 resolution: "web3-eth-ens@npm:1.3.6" @@ -25516,16 +25482,6 @@ __metadata: languageName: node linkType: hard -"web3-eth-iban@npm:1.10.4": - version: 1.10.4 - resolution: "web3-eth-iban@npm:1.10.4" - dependencies: - bn.js: ^5.2.1 - web3-utils: 1.10.4 - checksum: a3304a9fc56d003ebc2263a835f8f229e0164b025e718ecb4c64d5a9771f4146951d07f5a51d2bc6f3888f26f838bfb9778ca3cf0621ae5dd25206c3024ed8b6 - languageName: node - linkType: hard - "web3-eth-iban@npm:1.3.6": version: 1.3.6 resolution: "web3-eth-iban@npm:1.3.6" @@ -25546,6 +25502,18 @@ __metadata: languageName: node linkType: hard +"web3-eth-iban@npm:^4.0.7": + version: 4.0.7 + resolution: "web3-eth-iban@npm:4.0.7" + dependencies: + web3-errors: ^1.1.3 + web3-types: ^1.3.0 + web3-utils: ^4.0.7 + web3-validator: ^2.0.3 + checksum: c21785ece6c69146a605f60ebdd530e8a3faeda4302cbecef4665639c297fc11edd2f0dc8a6f6ba50b3f32d2c252d106687c24e31af3d297d5365a90f9badae0 + languageName: node + linkType: hard + "web3-eth-personal@npm:1.10.0": version: 1.10.0 resolution: "web3-eth-personal@npm:1.10.0" @@ -25560,20 +25528,6 @@ __metadata: languageName: node linkType: hard -"web3-eth-personal@npm:1.10.4": - version: 1.10.4 - resolution: "web3-eth-personal@npm:1.10.4" - dependencies: - "@types/node": ^12.12.6 - web3-core: 1.10.4 - web3-core-helpers: 1.10.4 - web3-core-method: 1.10.4 - web3-net: 1.10.4 - web3-utils: 1.10.4 - checksum: cf6f1be5961bf7eb7447bbce2298db762902badf358110468b5fbd36f1833d4583e6fa2562f187f0b08b1291d97081fe929a92023acff521a8ac7c96a6ac26fa - languageName: node - linkType: hard - "web3-eth-personal@npm:1.3.6": version: 1.3.6 resolution: "web3-eth-personal@npm:1.3.6" @@ -25663,23 +25617,22 @@ __metadata: languageName: node linkType: hard -"web3-eth@npm:^1.10.4": - version: 1.10.4 - resolution: "web3-eth@npm:1.10.4" +"web3-eth@npm:^4.4.0, web3-eth@npm:^4.5.0": + version: 4.5.0 + resolution: "web3-eth@npm:4.5.0" dependencies: - web3-core: 1.10.4 - web3-core-helpers: 1.10.4 - web3-core-method: 1.10.4 - web3-core-subscriptions: 1.10.4 - web3-eth-abi: 1.10.4 - web3-eth-accounts: 1.10.4 - web3-eth-contract: 1.10.4 - web3-eth-ens: 1.10.4 - web3-eth-iban: 1.10.4 - web3-eth-personal: 1.10.4 - web3-net: 1.10.4 - web3-utils: 1.10.4 - checksum: 6ffb0210d151ea0c98b297bc99ae9895f94792cc188444337a578e143ee729330af98d133461623f85f4b545e47166af999eabd3ed14f5b7d6245c131d3507d9 + setimmediate: ^1.0.5 + web3-core: ^4.3.2 + web3-errors: ^1.1.4 + web3-eth-abi: ^4.2.0 + web3-eth-accounts: ^4.1.1 + web3-net: ^4.0.7 + web3-providers-ws: ^4.0.7 + web3-rpc-methods: ^1.2.0 + web3-types: ^1.5.0 + web3-utils: ^4.2.1 + web3-validator: ^2.0.4 + checksum: d9bfeee15ad4eca2879581823178c1fef192c8df25dad6d4038b0d2aa5ea45817729be421d1390856fd38a930097ced492be6cfb86b44238f3de08d1a9b097fc languageName: node linkType: hard @@ -25694,17 +25647,6 @@ __metadata: languageName: node linkType: hard -"web3-net@npm:1.10.4": - version: 1.10.4 - resolution: "web3-net@npm:1.10.4" - dependencies: - web3-core: 1.10.4 - web3-core-method: 1.10.4 - web3-utils: 1.10.4 - checksum: 7f28f58ed1521bd805d63340994be436812e771e8edaa00aea568fa7ae3374746fb5f5aa6ac67632862a739833dfea6ffa92f4df4bca7c394b2608c603e1eda6 - languageName: node - linkType: hard - "web3-net@npm:1.3.6": version: 1.3.6 resolution: "web3-net@npm:1.3.6" @@ -25727,6 +25669,18 @@ __metadata: languageName: node linkType: hard +"web3-net@npm:^4.0.7": + version: 4.0.7 + resolution: "web3-net@npm:4.0.7" + dependencies: + web3-core: ^4.3.0 + web3-rpc-methods: ^1.1.3 + web3-types: ^1.3.0 + web3-utils: ^4.0.7 + checksum: c0692e14c13556f2af4fd538c336f59ae347abf441328dd0301dbbd4d380f663869b208d61dcfa14bfbdf00826d6891f577653734dbe1a6367179a84e60cafa8 + languageName: node + linkType: hard + "web3-providers-http@npm:1.10.0": version: 1.10.0 resolution: "web3-providers-http@npm:1.10.0" @@ -25739,18 +25693,6 @@ __metadata: languageName: node linkType: hard -"web3-providers-http@npm:1.10.4": - version: 1.10.4 - resolution: "web3-providers-http@npm:1.10.4" - dependencies: - abortcontroller-polyfill: ^1.7.5 - cross-fetch: ^4.0.0 - es6-promise: ^4.2.8 - web3-core-helpers: 1.10.4 - checksum: a868037ed9914dc70cb01599718f8f60cab35c2219c83b70a46e848f0e83268fc4b3f6e25578f07b614c0dad74a4c32d6b3e250b5be2734c0316212035c94ef1 - languageName: node - linkType: hard - "web3-providers-http@npm:1.3.6": version: 1.3.6 resolution: "web3-providers-http@npm:1.3.6" @@ -25771,6 +25713,18 @@ __metadata: languageName: node linkType: hard +"web3-providers-http@npm:^4.1.0": + version: 4.1.0 + resolution: "web3-providers-http@npm:4.1.0" + dependencies: + cross-fetch: ^4.0.0 + web3-errors: ^1.1.3 + web3-types: ^1.3.0 + web3-utils: ^4.0.7 + checksum: 04275604e0be1d18e6229d51088ebb1399ec726e8134d2a31c398ee7a28c97132718fb4cc7cbc9ff9c50fe6c8200b5d7d7224b2dca7149aa95a63f4777b8164e + languageName: node + linkType: hard + "web3-providers-ipc@npm:1.10.0": version: 1.10.0 resolution: "web3-providers-ipc@npm:1.10.0" @@ -25781,16 +25735,6 @@ __metadata: languageName: node linkType: hard -"web3-providers-ipc@npm:1.10.4": - version: 1.10.4 - resolution: "web3-providers-ipc@npm:1.10.4" - dependencies: - oboe: 2.1.5 - web3-core-helpers: 1.10.4 - checksum: bd8b689e884b604678f927080b4634cb4c5e2c83ec55f6add20d2e948e66845da8342f15b0d08fc626d1cbeb1f584b276931f5f195c599149bb0605f915c8bb2 - languageName: node - linkType: hard - "web3-providers-ipc@npm:1.3.6": version: 1.3.6 resolution: "web3-providers-ipc@npm:1.3.6" @@ -25812,6 +25756,17 @@ __metadata: languageName: node linkType: hard +"web3-providers-ipc@npm:^4.0.7": + version: 4.0.7 + resolution: "web3-providers-ipc@npm:4.0.7" + dependencies: + web3-errors: ^1.1.3 + web3-types: ^1.3.0 + web3-utils: ^4.0.7 + checksum: 83e734d833bd3663bc6d4a802c3eea83144a54244635d81d714913bd2f08a7463610fdb574bbbb1328c730340fea13730d4e33465fbf175d1c747170c142c7a7 + languageName: node + linkType: hard + "web3-providers-ws@npm:1.10.0": version: 1.10.0 resolution: "web3-providers-ws@npm:1.10.0" @@ -25823,17 +25778,6 @@ __metadata: languageName: node linkType: hard -"web3-providers-ws@npm:1.10.4": - version: 1.10.4 - resolution: "web3-providers-ws@npm:1.10.4" - dependencies: - eventemitter3: 4.0.4 - web3-core-helpers: 1.10.4 - websocket: ^1.0.32 - checksum: 989a8fc27727e020b02dd4489704855252a24f65fe41e7b9a468849040589b0b4fb86f6da645ae9ee4c3ae80f5cb1ab4c461e2b8e7a7d306a5f368a63a9e1301 - languageName: node - linkType: hard - "web3-providers-ws@npm:1.3.6": version: 1.3.6 resolution: "web3-providers-ws@npm:1.3.6" @@ -25857,6 +25801,31 @@ __metadata: languageName: node linkType: hard +"web3-providers-ws@npm:^4.0.7": + version: 4.0.7 + resolution: "web3-providers-ws@npm:4.0.7" + dependencies: + "@types/ws": 8.5.3 + isomorphic-ws: ^5.0.0 + web3-errors: ^1.1.3 + web3-types: ^1.3.0 + web3-utils: ^4.0.7 + ws: ^8.8.1 + checksum: 3409aca1965cbefad0d2928f21a3c69176d89e8b77d8a04ad5363a38acb6731caaaf2ad6bd8f24b17a54dbdc51d39ee4041eaa06a3f1ea598d343a626650298f + languageName: node + linkType: hard + +"web3-rpc-methods@npm:^1.1.3, web3-rpc-methods@npm:^1.2.0": + version: 1.2.0 + resolution: "web3-rpc-methods@npm:1.2.0" + dependencies: + web3-core: ^4.3.2 + web3-types: ^1.5.0 + web3-validator: ^2.0.4 + checksum: c8b31c928d0acabea27605920cdf2606fc8ce0fcfc7a5c0de570db270d4f63d271cb164519e2d04bfcb3aa8281a30264360267adf59f16539a4b9919d2b3d2c3 + languageName: node + linkType: hard + "web3-shh@npm:1.10.0": version: 1.10.0 resolution: "web3-shh@npm:1.10.0" @@ -25893,6 +25862,13 @@ __metadata: languageName: node linkType: hard +"web3-types@npm:^1.3.0, web3-types@npm:^1.3.1, web3-types@npm:^1.5.0": + version: 1.5.0 + resolution: "web3-types@npm:1.5.0" + checksum: b309a38fddd4b3217b5a0a64abc9148f33d145bca80c118cb07353e9643af7a09414a8397f7f6a62a2a183bcfc98c2ad74014426f55e816a34307e89235a18ce + languageName: node + linkType: hard + "web3-utils@npm:1.10.0": version: 1.10.0 resolution: "web3-utils@npm:1.10.0" @@ -25908,22 +25884,6 @@ __metadata: languageName: node linkType: hard -"web3-utils@npm:1.10.4, web3-utils@npm:^1.10.4": - version: 1.10.4 - resolution: "web3-utils@npm:1.10.4" - dependencies: - "@ethereumjs/util": ^8.1.0 - bn.js: ^5.2.1 - ethereum-bloom-filters: ^1.0.6 - ethereum-cryptography: ^2.1.2 - ethjs-unit: 0.1.6 - number-to-bn: 1.7.0 - randombytes: ^2.1.0 - utf8: 3.0.0 - checksum: a1535817a4653f1b5cc868aa19305158122379078a41e13642e1ba64803f6f8e5dd2fb8c45c033612b8f52dde42d8008afce85296c0608276fe1513dece66a49 - languageName: node - linkType: hard - "web3-utils@npm:1.3.6": version: 1.3.6 resolution: "web3-utils@npm:1.3.6" @@ -25971,6 +25931,32 @@ __metadata: languageName: node linkType: hard +"web3-utils@npm:^4.0.7, web3-utils@npm:^4.1.0, web3-utils@npm:^4.1.1, web3-utils@npm:^4.2.1": + version: 4.2.1 + resolution: "web3-utils@npm:4.2.1" + dependencies: + ethereum-cryptography: ^2.0.0 + eventemitter3: ^5.0.1 + web3-errors: ^1.1.4 + web3-types: ^1.5.0 + web3-validator: ^2.0.4 + checksum: 68fcfeaf75f43a3c841998d785c6d787f14c61aeb67a45e586098b7c79411e36f11b676968721198477757443bc605ce0a71efcaac193a673b8cb9c34ac17992 + languageName: node + linkType: hard + +"web3-validator@npm:^2.0.3, web3-validator@npm:^2.0.4": + version: 2.0.4 + resolution: "web3-validator@npm:2.0.4" + dependencies: + ethereum-cryptography: ^2.0.0 + util: ^0.12.5 + web3-errors: ^1.1.4 + web3-types: ^1.3.1 + zod: ^3.21.4 + checksum: 9d41bfe5764343d05f045ce526715dfd1bd88dba146ba96c2d3199c3dc9bb66c01d9dac334251078542c00f82e273489700a54db365800c16e29a2c2b30f9929 + languageName: node + linkType: hard + "web3@npm:1.10.0, web3@npm:^1.0.0-beta.34, web3@npm:^1.7.3": version: 1.10.0 resolution: "web3@npm:1.10.0" @@ -26845,7 +26831,7 @@ __metadata: languageName: node linkType: hard -"zod@npm:^3.22.2": +"zod@npm:^3.21.4, zod@npm:^3.22.2": version: 3.22.4 resolution: "zod@npm:3.22.4" checksum: 80bfd7f8039b24fddeb0718a2ec7c02aa9856e4838d6aa4864335a047b6b37a3273b191ef335bf0b2002e5c514ef261ffcda5a589fb084a48c336ffc4cdbab7f From cc5702da289cce4344fa90d1706a874a3f3f1c82 Mon Sep 17 00:00:00 2001 From: kvhnuke <10602065+kvhnuke@users.noreply.github.com> Date: Fri, 22 Mar 2024 12:33:41 -0700 Subject: [PATCH 2/2] devop: update to web3 4.x --- packages/swap/package.json | 1 + packages/swap/src/providers/rango/index.ts | 2 +- packages/swap/src/utils/common.ts | 2 +- packages/swap/tests/oneInch.test.ts | 4 ++-- packages/swap/tests/paraswap.test.ts | 4 ++-- packages/swap/tests/zerox.test.ts | 4 ++-- packages/utils/src/index.ts | 12 ++++++++++-- packages/utils/src/number-to-bn.ts | 13 ++++++++++++- packages/utils/tests/utils.test.ts | 4 +++- yarn.lock | 1 + 10 files changed, 35 insertions(+), 12 deletions(-) diff --git a/packages/swap/package.json b/packages/swap/package.json index bfbd65034..cfc5b12eb 100644 --- a/packages/swap/package.json +++ b/packages/swap/package.json @@ -30,6 +30,7 @@ "web3-eth": "^4.5.0", "web3-eth-contract": "^4.2.0", "web3-utils": "^4.2.1", + "web3-validator": "^2.0.4", "ws": "^8.16.0" }, "devDependencies": { diff --git a/packages/swap/src/providers/rango/index.ts b/packages/swap/src/providers/rango/index.ts index 10e1b56c2..66a7aeffa 100644 --- a/packages/swap/src/providers/rango/index.ts +++ b/packages/swap/src/providers/rango/index.ts @@ -295,7 +295,7 @@ class Rango extends ProviderClass { from: options.fromAddress, gasLimit: tx.gasLimit || GAS_LIMITS.swap, to: tx.txTo, - value: numberToHex(tx.value), + value: tx.value ? numberToHex(tx.value) : "0x0", data: tx.txData, type: TransactionType.evm, }); diff --git a/packages/swap/src/utils/common.ts b/packages/swap/src/utils/common.ts index 82592a081..2416dacb2 100644 --- a/packages/swap/src/utils/common.ts +++ b/packages/swap/src/utils/common.ts @@ -1,5 +1,5 @@ import { polkadotEncodeAddress } from "@enkryptcom/utils"; -import { isAddress } from "web3-utils"; +import { isAddress } from "web3-validator"; import { NATIVE_TOKEN_ADDRESS } from "../configs"; export const isPolkadotAddress = (address: string, prefix: number) => { diff --git a/packages/swap/tests/oneInch.test.ts b/packages/swap/tests/oneInch.test.ts index 8c9d04638..0b354ed9b 100644 --- a/packages/swap/tests/oneInch.test.ts +++ b/packages/swap/tests/oneInch.test.ts @@ -1,6 +1,6 @@ import { expect } from "chai"; import Web3Eth from "web3-eth"; -import { numberToHex } from "@enkryptcom/utils"; +import { numberToHex, bnToBigInt } from "@enkryptcom/utils"; import OneInch, { ONEINCH_APPROVAL_ADDRESS } from "../src/providers/oneInch"; import { EVMTransaction, @@ -72,7 +72,7 @@ describe("OneInch Provider", () => { "0x", "" )}00000000000000000000000000000000000000000000000${numberToHex( - amount + bnToBigInt(amount) ).replace("0x", "")}` ); expect(swap?.transactions[1].to).to.be.eq(ONEINCH_APPROVAL_ADDRESS); diff --git a/packages/swap/tests/paraswap.test.ts b/packages/swap/tests/paraswap.test.ts index eea0a67a2..8889a2793 100644 --- a/packages/swap/tests/paraswap.test.ts +++ b/packages/swap/tests/paraswap.test.ts @@ -1,6 +1,6 @@ import { expect } from "chai"; import Web3Eth from "web3-eth"; -import { numberToHex } from "@enkryptcom/utils"; +import { bnToBigInt, numberToHex } from "@enkryptcom/utils"; import Parawap, { PARASWAP_APPROVAL_ADDRESS } from "../src/providers/paraswap"; import { EVMTransaction, @@ -74,7 +74,7 @@ describe("Paraswap Provider", () => { "0x", "" )}00000000000000000000000000000000000000000000000${numberToHex( - amount + bnToBigInt(amount) ).replace("0x", "")}` ); expect(swap?.transactions[1].to).to.be.eq( diff --git a/packages/swap/tests/zerox.test.ts b/packages/swap/tests/zerox.test.ts index bcf247688..fb0c9fa1b 100644 --- a/packages/swap/tests/zerox.test.ts +++ b/packages/swap/tests/zerox.test.ts @@ -1,6 +1,6 @@ import { expect } from "chai"; import Web3Eth from "web3-eth"; -import { numberToHex } from "@enkryptcom/utils"; +import { bnToBigInt, numberToHex } from "@enkryptcom/utils"; import Zerox from "../src/providers/zerox"; import { EVMTransaction, @@ -73,7 +73,7 @@ describe("Zerox Provider", () => { "0x", "" )}00000000000000000000000000000000000000000000000${numberToHex( - amount + bnToBigInt(amount) ).replace("0x", "")}` ); expect(swap?.transactions[1].to).to.be.eq(ZEROX_APPROVAL); diff --git a/packages/utils/src/index.ts b/packages/utils/src/index.ts index 6ae46388d..d4de787f4 100644 --- a/packages/utils/src/index.ts +++ b/packages/utils/src/index.ts @@ -1,10 +1,16 @@ -import { hexToBytes, keccak256, utf8ToHex, numberToHex } from "web3-utils"; +import { + hexToBytes, + keccak256, + utf8ToHex, + numberToHex, + toBigInt, +} from "web3-utils"; import { bigIntToBytes, bigIntToHex } from "@ethereumjs/util"; import { encodeAddress as polkadotEncodeAddress } from "@polkadot/util-crypto"; import { encrypt, decrypt } from "./encrypt"; import MemoryStorage from "./memory-storage"; import { fromBase, toBase, isValidDecimals } from "./units"; -import { toBN, stripHexPrefix } from "./number-to-bn"; +import { toBN, stripHexPrefix, bnToBigInt } from "./number-to-bn"; const bufferToHex = (buf: Buffer | Uint8Array, nozerox = false): string => nozerox @@ -21,6 +27,8 @@ const hexToBuffer = (hex: string): Buffer => export { toBN, + toBigInt, + bnToBigInt, stripHexPrefix, utf8ToHex, bufferToHex, diff --git a/packages/utils/src/number-to-bn.ts b/packages/utils/src/number-to-bn.ts index 20918d88b..1722b19b3 100644 --- a/packages/utils/src/number-to-bn.ts +++ b/packages/utils/src/number-to-bn.ts @@ -16,7 +16,10 @@ export const stripHexPrefix = (str: string) => { * @return {Object} `output` BN object of the number * @throws if the argument is not an array, object that isn't a bignumber, not a string number or number */ -export const numberToBN = (arg: string | number | BN) => { +export const numberToBN = (arg: string | number | BN | bigint) => { + if (typeof arg === "bigint") { + return new BN(arg.toString()); + } if (typeof arg === "string" || typeof arg === "number") { let multiplier = new BN(1); const formattedString = String(arg).toLowerCase().trim(); @@ -64,3 +67,11 @@ export const toBN = (number: string | number) => { throw new Error(`${e} Given value: "${number}"`); } }; + +export const bnToBigInt = (number: BN): bigint => { + try { + return BigInt(number.toString()); + } catch (e) { + throw new Error(`${e} Given value: "${number}"`); + } +}; diff --git a/packages/utils/tests/utils.test.ts b/packages/utils/tests/utils.test.ts index bfc25a36f..8301463ae 100644 --- a/packages/utils/tests/utils.test.ts +++ b/packages/utils/tests/utils.test.ts @@ -23,8 +23,10 @@ describe("Utility functions", () => { expect(hexToBuffer("123456")).to.be.deep.equal(buf); }); it("toBN to string", () => { - const bn = toBN("0xabcdef"); + let bn = toBN("0xabcdef"); expect(bn.toString()).to.be.equal("11259375"); + bn = toBN("0"); + expect(bn.toString()).to.be.equal("0"); }); it("To Base/From Base", () => { expect(toBase("1193046", 18)).to.be.equal("1193046000000000000000000"); diff --git a/yarn.lock b/yarn.lock index 0ee0b8047..6ffbcd99b 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2840,6 +2840,7 @@ __metadata: web3-eth: ^4.5.0 web3-eth-contract: ^4.2.0 web3-utils: ^4.2.1 + web3-validator: ^2.0.4 ws: ^8.16.0 languageName: unknown linkType: soft