From 6fde3612d22a53e0c077bdef810b3e0acc62bd04 Mon Sep 17 00:00:00 2001 From: Mmackz Date: Sat, 23 Dec 2023 21:07:06 -0800 Subject: [PATCH 01/17] refactor(connext) fix recipient parameter and remove weth regex from multisend --- packages/connext/src/Connext.test.ts | 81 ++--------------------- packages/connext/src/Connext.ts | 37 ++--------- packages/connext/src/test-transactions.ts | 67 +++++++++++++++++++ packages/connext/src/utils.ts | 63 ++++++++++++++++++ 4 files changed, 144 insertions(+), 104 deletions(-) create mode 100644 packages/connext/src/test-transactions.ts create mode 100644 packages/connext/src/utils.ts diff --git a/packages/connext/src/Connext.test.ts b/packages/connext/src/Connext.test.ts index d93e1d09b..9121490cb 100644 --- a/packages/connext/src/Connext.test.ts +++ b/packages/connext/src/Connext.test.ts @@ -1,15 +1,13 @@ import { getDeployedMultisendContract } from '@connext/nxtp-txservice' import { MultisendAbi } from '@connext/nxtp-utils' import { GreaterThanOrEqual, apply } from '@rabbitholegg/questdk/filter' -import type { TransactionEIP1559 } from 'viem' import { describe, expect, test } from 'vitest' import { bridge } from './Connext.js' import { XCALL_ABI_FRAGMENTS } from './abi.js' +import { passingTestCases } from './test-transactions.js' +import { zeroAddress as ETH } from 'viem' describe('Connext', () => { - const ETH = '0x0000000000000000000000000000000000000000' - const OP_WETH = '0x4200000000000000000000000000000000000006' - describe('Bridge', () => { const USDC = '0x7F5c764cBc14f9669B88837ca1490cCa17c31607' @@ -54,82 +52,17 @@ describe('Connext', () => { }, input: { $abi: MultisendAbi, - transactions: { - $regex: OP_WETH.slice(2), - }, }, }) }) describe('Apply filter', () => { - test('transaction should pass filter', async () => { - const transaction = { - blockHash: - '0x80ca121924779dc65f575409be05e7c2cbaf718858e6e20d66d130cf1acec4f3', - blockNumber: '0x6606396', - from: '0xd59a74e615c9d55422ed8c5ce64cb50fda0bb58d', - gas: '0x73766', - gasPrice: '0xc9', - maxFeePerGas: '0x17a', - maxPriorityFeePerGas: '0x71', - hash: '0x22d3715ca5ae0bd0d87f9341fafc7a330fd6962e13bf318a6a541c93e4e6bc04', - input: - '0x93f18ac50000000000000000000000000000000000000000000000000000000000676e6f000000000000000000000000642c27a96dffb6f21443a89b789a3194ff8399fa000000000000000000000000da10009cbd5d07dd0cecc66161fc93d7c9000da1000000000000000000000000d59a74e615c9d55422ed8c5ce64cb50fda0bb58d000000000000000000000000000000000000000000000000204d764a78eac238000000000000000000000000000000000000000000000000000000000000012c000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000050b91c62117dc0000000000000000000000000000000000000000000000000000000000000020000000000000000000000000d59a74e615c9d55422ed8c5ce64cb50fda0bb58d', - nonce: '0x3', - to: '0x8f7492de823025b4cfaab1d34c58963f2af5deda', - transactionIndex: '0x3', - value: '0x0', - type: '0x2', - accessList: [], - chainId: 10, - v: '0x0', - r: '0x4fcc9247c0b29a50b9db146191e93fbd503be520998f62c9445aa2eeb944d613', - s: '0x78e1ace158ae1166687db900743fc7db36cc80e42a43a800577895c5cb2b95b3', - } - - const filter = await bridge({ - sourceChainId: 10, - destinationChainId: 100, // xDAI Chain - tokenAddress: '0xDA10009cBd5D07dd0CeCc66161FC93D7c9000da1', - amount: GreaterThanOrEqual(2000000000000000000n), - }) - - expect(apply(transaction, filter)).to.be.true - }) - - test('ETH bridge should pass filter', async () => { - const transaction: TransactionEIP1559 = { - blockHash: - '0xfdb722e4a99e3422490bc12d15fafab54ebb7e2e83ff08e9fe20d70045e94889', - blockNumber: BigInt('0x67812f1'), - from: '0xa4c8bb4658bc44bac430699c8b7b13dab28e0f4e', - gas: BigInt('0x8820a'), - maxFeePerGas: BigInt('0x11e2'), - maxPriorityFeePerGas: BigInt('0x112d'), - hash: '0xb8e2c0baf137b64553c91f286bde62cc37275d0b9f9d3e6c0041c6be79de45af', - input: - '0x8d80ff0a0000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000026b004200000000000000000000000000000000000006000000000000000000000000000000000000000000000000008af8a1fa5fcc180000000000000000000000000000000000000000000000000000000000000004d0e30db000420000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000044095ea7b30000000000000000000000008f7492de823025b4cfaab1d34c58963f2af5deda000000000000000000000000000000000000000000000000008af8a1fa5fcc18008f7492de823025b4cfaab1d34c58963f2af5deda0000000000000000000000000000000000000000000000000026aa1a3465338400000000000000000000000000000000000000000000000000000000000001248aac16ba0000000000000000000000000000000000000000000000000000000000657468000000000000000000000000268682b7d9992ae7e2ca4a8bcc9d9655fb06056f0000000000000000000000004200000000000000000000000000000000000006000000000000000000000000a4c8bb4658bc44bac430699c8b7b13dab28e0f4e000000000000000000000000000000000000000000000000008af8a1fa5fcc18000000000000000000000000000000000000000000000000000000000000012c00000000000000000000000000000000000000000000000000000000000000e00000000000000000000000000000000000000000000000000000000000000020000000000000000000000000a4c8bb4658bc44bac430699c8b7b13dab28e0f4e000000000000000000000000000000000000000000', - nonce: 45, - to: '0xb0eef3e1de973d045c3858e072c540299585252d', - transactionIndex: 6, - value: BigInt('0xb1a2bc2ec4ff9c'), - type: 'eip1559', - accessList: [], - typeHex: '0x2', - chainId: 10, - v: BigInt('0x1'), - r: '0x11d6fd962cf4090c1464404492a36ef7323c6173908883c87fbc695219e6d026', - s: '0x739b7240f8dd466881a66971b476f07c2fcce9a6f519d3c06f95133ad983092e', - } - - const filter = await bridge({ - sourceChainId: 10, - destinationChainId: 137, - tokenAddress: ETH, - amount: GreaterThanOrEqual(1000000000000000n), + passingTestCases.forEach((testCase) => { + const { transaction, description, params } = testCase + test(description, async () => { + const filter = await bridge(params) + expect(apply(transaction, filter)).to.be.true }) - - expect(apply(transaction, filter)).to.be.true }) }) }) diff --git a/packages/connext/src/Connext.ts b/packages/connext/src/Connext.ts index b29289b2a..58a695e28 100644 --- a/packages/connext/src/Connext.ts +++ b/packages/connext/src/Connext.ts @@ -11,13 +11,13 @@ import { type TransactionFilter, compressJson, } from '@rabbitholegg/questdk' -import { type Address } from 'viem' +import { type Address, zeroAddress } from 'viem' import { XCALL_ABI_FRAGMENTS } from './abi.js' import { ConnextContract } from './contract-addresses.js' let _chainDataCache: Map | null = null -const ETH_TOKEN_ADDRESS = '0x0000000000000000000000000000000000000000' +const ETH_TOKEN_ADDRESS = zeroAddress const _getChainData = async () => { if (!_chainDataCache) { @@ -28,22 +28,6 @@ const _getChainData = async () => { return _chainDataCache } -export const getWETHAddress = async (chainId: number) => { - const chains = await _getChainData() - const domainId = chainIdToDomain(chainId) - const chainData = chains?.get(String(domainId)) - const assets = Object.keys(chainData?.assetId || {}) - - let wethAddress - for (const address of assets) { - if (chainData?.assetId[address].symbol === 'WETH') { - wethAddress = address - break - } - } - return wethAddress -} - export const bridge = async ( bridge: BridgeActionParams, ): Promise => { @@ -57,7 +41,9 @@ export const bridge = async ( } = bridge const defaultContractAddress = ConnextContract[sourceChainId] - const destinationDomain = chainIdToDomain(destinationChainId) + const destinationDomain = destinationChainId + ? chainIdToDomain(destinationChainId) + : undefined const requiresWrapperMultisend = tokenAddress === ETH_TOKEN_ADDRESS /* @@ -76,21 +62,12 @@ export const bridge = async ( ) } - const wethAddress = await getWETHAddress(sourceChainId) - - if (!wethAddress) { - throw new Error(`No WETH address found on chain ${sourceChainId}`) - } - return compressJson({ chainId: sourceChainId, to: multiSendContract.address, value: amount, input: { $abi: MultisendAbi, - transactions: { - $regex: wethAddress.slice(2), - }, }, }) } @@ -100,10 +77,10 @@ export const bridge = async ( to: contractAddress || defaultContractAddress, input: { $abi: XCALL_ABI_FRAGMENTS, - _destination: Number(destinationDomain), + _destination: destinationDomain ? Number(destinationDomain) : undefined, _asset: tokenAddress, _amount: amount, - _to: recipient, + _delegate: recipient, }, }) } diff --git a/packages/connext/src/test-transactions.ts b/packages/connext/src/test-transactions.ts new file mode 100644 index 000000000..593fdef1f --- /dev/null +++ b/packages/connext/src/test-transactions.ts @@ -0,0 +1,67 @@ +import type { BridgeActionParams } from '@rabbitholegg/questdk' +import { GreaterThanOrEqual } from '@rabbitholegg/questdk' +import { createTestCase, type TestParams } from './utils' +import { getAddress, parseEther, zeroAddress } from 'viem' + +export const DAI_OP_GNOSIS: TestParams = { + transaction: { + chainId: 10, + to: '0x8f7492de823025b4cfaab1d34c58963f2af5deda', + from: '0xd59a74e615c9d55422ed8c5ce64cb50fda0bb58d', + hash: '0x22d3715ca5ae0bd0d87f9341fafc7a330fd6962e13bf318a6a541c93e4e6bc04', + input: + '0x93f18ac50000000000000000000000000000000000000000000000000000000000676e6f000000000000000000000000642c27a96dffb6f21443a89b789a3194ff8399fa000000000000000000000000da10009cbd5d07dd0cecc66161fc93d7c9000da1000000000000000000000000d59a74e615c9d55422ed8c5ce64cb50fda0bb58d000000000000000000000000000000000000000000000000204d764a78eac238000000000000000000000000000000000000000000000000000000000000012c000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000050b91c62117dc0000000000000000000000000000000000000000000000000000000000000020000000000000000000000000d59a74e615c9d55422ed8c5ce64cb50fda0bb58d', + value: '0', + }, + params: { + sourceChainId: 10, + destinationChainId: 100, + tokenAddress: '0xDA10009cBd5D07dd0CeCc66161FC93D7c9000da1', + amount: GreaterThanOrEqual(parseEther('2')), + recipient: '0xd59a74e615c9d55422ed8c5ce64cb50fda0bb58d', + }, +} + +export const ETH_OP_POLYGON: TestParams = { + transaction: { + chainId: 10, + to: getAddress('0xb0eef3e1de973d045c3858e072c540299585252d'), + from: getAddress('0xa4c8bb4658bc44bac430699c8b7b13dab28e0f4e'), + hash: '0xb8e2c0baf137b64553c91f286bde62cc37275d0b9f9d3e6c0041c6be79de45af', + input: + '0x8d80ff0a0000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000026b004200000000000000000000000000000000000006000000000000000000000000000000000000000000000000008af8a1fa5fcc180000000000000000000000000000000000000000000000000000000000000004d0e30db000420000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000044095ea7b30000000000000000000000008f7492de823025b4cfaab1d34c58963f2af5deda000000000000000000000000000000000000000000000000008af8a1fa5fcc18008f7492de823025b4cfaab1d34c58963f2af5deda0000000000000000000000000000000000000000000000000026aa1a3465338400000000000000000000000000000000000000000000000000000000000001248aac16ba0000000000000000000000000000000000000000000000000000000000657468000000000000000000000000268682b7d9992ae7e2ca4a8bcc9d9655fb06056f0000000000000000000000004200000000000000000000000000000000000006000000000000000000000000a4c8bb4658bc44bac430699c8b7b13dab28e0f4e000000000000000000000000000000000000000000000000008af8a1fa5fcc18000000000000000000000000000000000000000000000000000000000000012c00000000000000000000000000000000000000000000000000000000000000e00000000000000000000000000000000000000000000000000000000000000020000000000000000000000000a4c8bb4658bc44bac430699c8b7b13dab28e0f4e000000000000000000000000000000000000000000', + value: '49999999999999900', + }, + params: { + sourceChainId: 10, + destinationChainId: 137, + tokenAddress: zeroAddress, + amount: GreaterThanOrEqual(parseEther('0.001')), + recipient: '0xa4c8bb4658bc44bac430699c8b7b13dab28e0f4e', + }, +} + +export const ETH_OP_ARBITRUM: TestParams = { + transaction: { + chainId: 10, + to: getAddress('0xb0eef3e1de973d045c3858e072c540299585252d'), + from: getAddress('0x9333f2d9861e367dbf6072bcd55325cc133c6d86'), + hash: '0x00b92f23522b23648f0bb05529a728dcca55b1cc08347d68bae50c24977621ed', + input: + '0x8d80ff0a0000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000026b00420000000000000000000000000000000000000600000000000000000000000000000000000000000000000000003258eb8854cd0000000000000000000000000000000000000000000000000000000000000004d0e30db000420000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000044095ea7b30000000000000000000000008f7492de823025b4cfaab1d34c58963f2af5deda00000000000000000000000000000000000000000000000000003258eb8854cd008f7492de823025b4cfaab1d34c58963f2af5deda0000000000000000000000000000000000000000000000000000ba1f0c1beadc00000000000000000000000000000000000000000000000000000000000001248aac16ba000000000000000000000000000000000000000000000000000000006172626f000000000000000000000000429b9eb01362b2799131efcc44319689b662999d00000000000000000000000042000000000000000000000000000000000000060000000000000000000000009333f2d9861e367dbf6072bcd55325cc133c6d8600000000000000000000000000000000000000000000000000003258eb8854cd000000000000000000000000000000000000000000000000000000000000012c00000000000000000000000000000000000000000000000000000000000000e000000000000000000000000000000000000000000000000000000000000000200000000000000000000000009333f2d9861e367dbf6072bcd55325cc133c6d86000000000000000000000000000000000000000000', + value: '49999999999999900', + }, + params: { + sourceChainId: 10, + destinationChainId: 42161, + tokenAddress: zeroAddress, + amount: GreaterThanOrEqual(parseEther('0.00005')), + recipient: '0x9333f2d9861e367dbf6072bcd55325cc133c6d86', + }, +} + +export const passingTestCases = [ + createTestCase(DAI_OP_GNOSIS, 'when bridging tokens'), + createTestCase(ETH_OP_POLYGON, 'when bridging ETH'), + createTestCase(ETH_OP_ARBITRUM, 'when bridging ETH to arbitrum') +] diff --git a/packages/connext/src/utils.ts b/packages/connext/src/utils.ts new file mode 100644 index 000000000..3b1cdc769 --- /dev/null +++ b/packages/connext/src/utils.ts @@ -0,0 +1,63 @@ +import type { ActionParams } from '@rabbitholegg/questdk' +import { type Address, type Hash } from 'viem' + +export enum Chains { + ETHEREUM = 1, + OPTIMISM = 10, + BINANCE_SMART_CHAIN = 56, + GNOSIS = 100, + POLYGON_POS = 137, + ZK_SYNC_ERA = 324, + POLYGON_ZK = 1101, + MANTLE = 5000, + BASE = 8453, + ARBITRUM_ONE = 42161, + AVALANCHE = 43114, + LINEA = 59144, + SCROLL = 534352, +} + +interface Transaction { + chainId: number + from: Address + hash?: Hash + input: string + to: Address + value: string +} + +export interface TestCase { + transaction: Transaction + params: T + description: string +} + +export type TestParams = { + transaction: Transaction + params: T +} + +/** + * Creates a test case object for a given action and transaction. + * + * This function takes a `TestParams` object that includes both a `Transaction` and + * `ActionParams`, a description of the test case, and an optional set of overrides + * for the action parameters. It returns a `TestCase` object that contains the transaction, + * the combined action parameters with any overrides applied, and the description. + * + * @param {TestParams} testParams - An object containing the transaction and action parameters. + * @param {string} description - A brief description of the test case. + * @param {Partial} [overrides] - Optional overrides for the action parameters. + * @returns {TestCase} A test case object with the transaction, params, and description. + */ +export function createTestCase( + testParams: TestParams, + description: string, + overrides: Partial = {}, +): TestCase { + return { + transaction: testParams.transaction, + params: { ...testParams.params, ...overrides }, + description, + } +} From 4c573454fd59e62676e8b2820980801a1cc98ead Mon Sep 17 00:00:00 2001 From: Mmackz Date: Sun, 24 Dec 2023 22:32:19 -0800 Subject: [PATCH 02/17] chore(pnpm): update lockfile --- pnpm-lock.yaml | 686 ++++++++++++++++++++++++------------------------- 1 file changed, 337 insertions(+), 349 deletions(-) diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index f8e48d7f4..50151535a 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -16,7 +16,7 @@ importers: devDependencies: '@changesets/changelog-github': 0.4.8 '@changesets/cli': 2.27.1 - '@turbo/gen': 1.10.16 + '@turbo/gen': 1.11.2 eslint: 7.32.0 prettier: 2.8.8 turbo: 1.11.2 @@ -84,16 +84,16 @@ importers: viem: ^1.2.15 vitest: ^0.33.0 dependencies: - '@rabbitholegg/questdk': 2.0.0-alpha.28_typescript@5.3.2 - viem: 1.19.11_typescript@5.3.2 + '@rabbitholegg/questdk': 2.0.0-alpha.28_typescript@5.3.3 + viem: 1.21.0_typescript@5.3.3 devDependencies: - '@types/node': 20.10.3 + '@types/node': 20.10.5 '@vitest/coverage-v8': 0.33.0_vitest@0.33.0 rimraf: 5.0.5 rome: 12.1.3 - ts-node: 10.9.1_xy5pmmm77qgfdfg5jflxsqkm74 + ts-node: 10.9.2_7ln3lwozyybesesf4lghtaucbi tsconfig: link:../tsconfig - typescript: 5.3.2 + typescript: 5.3.3 vitest: 0.33.0 packages/basepaint: @@ -109,16 +109,16 @@ importers: viem: ^1.16.6 vitest: ^0.33.0 dependencies: - '@rabbitholegg/questdk': 2.0.0-alpha.28_typescript@5.3.2 - viem: 1.19.11_typescript@5.3.2 + '@rabbitholegg/questdk': 2.0.0-alpha.28_typescript@5.3.3 + viem: 1.21.0_typescript@5.3.3 devDependencies: - '@types/node': 20.10.3 + '@types/node': 20.10.5 '@vitest/coverage-v8': 0.33.0_vitest@0.33.0 rimraf: 5.0.5 rome: 12.1.3 - ts-node: 10.9.1_xy5pmmm77qgfdfg5jflxsqkm74 + ts-node: 10.9.2_7ln3lwozyybesesf4lghtaucbi tsconfig: link:../tsconfig - typescript: 5.3.2 + typescript: 5.3.3 vitest: 0.33.0 packages/camelot: @@ -165,16 +165,16 @@ importers: '@connext/nxtp-txservice': 2.0.0 '@connext/nxtp-utils': 2.0.4 '@connext/smart-contracts': 2.0.0 - '@rabbitholegg/questdk': 2.0.0-alpha.28_typescript@5.3.2 - viem: 1.19.11_typescript@5.3.2 + '@rabbitholegg/questdk': 2.0.0-alpha.28_typescript@5.3.3 + viem: 1.21.0_typescript@5.3.3 devDependencies: - '@types/node': 20.10.3 + '@types/node': 20.10.5 '@vitest/coverage-v8': 0.33.0_vitest@0.33.0 rimraf: 5.0.5 rome: 12.1.3 - ts-node: 10.9.1_xy5pmmm77qgfdfg5jflxsqkm74 + ts-node: 10.9.2_7ln3lwozyybesesf4lghtaucbi tsconfig: link:../tsconfig - typescript: 5.3.2 + typescript: 5.3.3 vitest: 0.33.0 packages/gmx: @@ -246,16 +246,16 @@ importers: viem: ^1.2.15 vitest: ^0.33.0 dependencies: - '@rabbitholegg/questdk': 2.0.0-alpha.28_typescript@5.3.2 - viem: 1.19.11_typescript@5.3.2 + '@rabbitholegg/questdk': 2.0.0-alpha.28_typescript@5.3.3 + viem: 1.21.0_typescript@5.3.3 devDependencies: - '@types/node': 20.10.3 + '@types/node': 20.10.5 '@vitest/coverage-v8': 0.33.0_vitest@0.33.0 rimraf: 5.0.5 rome: 12.1.3 - ts-node: 10.9.1_xy5pmmm77qgfdfg5jflxsqkm74 + ts-node: 10.9.2_7ln3lwozyybesesf4lghtaucbi tsconfig: link:../tsconfig - typescript: 5.3.2 + typescript: 5.3.3 vitest: 0.33.0 packages/okutrade: @@ -271,16 +271,16 @@ importers: viem: ^1.16.6 vitest: ^0.33.0 dependencies: - '@rabbitholegg/questdk': 2.0.0-alpha.28_typescript@5.3.2 - viem: 1.19.11_typescript@5.3.2 + '@rabbitholegg/questdk': 2.0.0-alpha.28_typescript@5.3.3 + viem: 1.21.0_typescript@5.3.3 devDependencies: - '@types/node': 20.10.3 + '@types/node': 20.10.5 '@vitest/coverage-v8': 0.33.0_vitest@0.33.0 rimraf: 5.0.5 rome: 12.1.3 - ts-node: 10.9.1_xy5pmmm77qgfdfg5jflxsqkm74 + ts-node: 10.9.2_7ln3lwozyybesesf4lghtaucbi tsconfig: link:../tsconfig - typescript: 5.3.2 + typescript: 5.3.3 vitest: 0.33.0 packages/optimism: @@ -325,18 +325,18 @@ importers: viem: 1.2.15 vitest: ^0.33.0 dependencies: - '@paraswap/sdk': 6.3.0_a73iyh55nchcnvrx2gvtw7b4v4 - '@rabbitholegg/questdk': 2.0.0-alpha.28_typescript@5.3.2 + '@paraswap/sdk': 6.3.0_mnqngwuc7bnukdb6a5vweuj77m + '@rabbitholegg/questdk': 2.0.0-alpha.28_typescript@5.3.3 axios: 1.5.0 - viem: 1.2.15_typescript@5.3.2 + viem: 1.2.15_typescript@5.3.3 devDependencies: - '@types/node': 20.10.3 + '@types/node': 20.10.5 '@vitest/coverage-v8': 0.33.0_vitest@0.33.0 rimraf: 5.0.5 rome: 12.1.3 - ts-node: 10.9.1_xy5pmmm77qgfdfg5jflxsqkm74 + ts-node: 10.9.2_7ln3lwozyybesesf4lghtaucbi tsconfig: link:../tsconfig - typescript: 5.3.2 + typescript: 5.3.3 vitest: 0.33.0 packages/polygon: @@ -379,16 +379,16 @@ importers: viem: ^1.16.6 vitest: ^0.33.0 dependencies: - '@rabbitholegg/questdk': 2.0.0-alpha.28_typescript@5.3.2 - viem: 1.19.11_typescript@5.3.2 + '@rabbitholegg/questdk': 2.0.0-alpha.28_typescript@5.3.3 + viem: 1.21.0_typescript@5.3.3 devDependencies: - '@types/node': 20.10.3 + '@types/node': 20.10.5 '@vitest/coverage-v8': 0.33.0_vitest@0.33.0 rimraf: 5.0.5 rome: 12.1.3 - ts-node: 10.9.1_xy5pmmm77qgfdfg5jflxsqkm74 + ts-node: 10.9.2_7ln3lwozyybesesf4lghtaucbi tsconfig: link:../tsconfig - typescript: 5.3.2 + typescript: 5.3.3 vitest: 0.33.0 packages/registry: @@ -428,7 +428,7 @@ importers: viem: ^1.16.6 vitest: ^0.33.0 dependencies: - '@rabbitholegg/questdk': 2.0.0-alpha.28_typescript@5.3.2 + '@rabbitholegg/questdk': 2.0.0-alpha.28_typescript@5.3.3 '@rabbitholegg/questdk-plugin-across': link:../across '@rabbitholegg/questdk-plugin-arbitrum': link:../arbitrum '@rabbitholegg/questdk-plugin-balancer': link:../balancer @@ -453,15 +453,15 @@ importers: '@rabbitholegg/questdk-plugin-uniswap': link:../uniswap '@rabbitholegg/questdk-plugin-woofi': link:../woofi '@rabbitholegg/questdk-plugin-zora': link:../zora - viem: 1.19.11_typescript@5.3.2 + viem: 1.21.0_typescript@5.3.3 devDependencies: - '@types/node': 20.10.3 + '@types/node': 20.10.5 '@vitest/coverage-v8': 0.33.0_vitest@0.33.0 rimraf: 5.0.5 rome: 12.1.3 - ts-node: 10.9.1_xy5pmmm77qgfdfg5jflxsqkm74 + ts-node: 10.9.2_7ln3lwozyybesesf4lghtaucbi tsconfig: link:../tsconfig - typescript: 5.3.2 + typescript: 5.3.3 vitest: 0.33.0 packages/stargate: @@ -503,17 +503,17 @@ importers: viem: ^1.16.6 vitest: ^0.33.0 dependencies: - '@rabbitholegg/questdk': 2.0.0-alpha.28_typescript@5.3.2 + '@rabbitholegg/questdk': 2.0.0-alpha.28_typescript@5.3.3 '@sushiswap/core-sdk': 1.0.0-canary.34 - viem: 1.19.11_typescript@5.3.2 + viem: 1.21.0_typescript@5.3.3 devDependencies: - '@types/node': 20.10.3 + '@types/node': 20.10.5 '@vitest/coverage-v8': 0.33.0_vitest@0.33.0 rimraf: 5.0.5 rome: 12.1.3 - ts-node: 10.9.1_xy5pmmm77qgfdfg5jflxsqkm74 + ts-node: 10.9.2_7ln3lwozyybesesf4lghtaucbi tsconfig: link:../tsconfig - typescript: 5.3.2 + typescript: 5.3.3 vitest: 0.33.0 packages/symbiosis: @@ -531,18 +531,18 @@ importers: viem: ^1.2.15 vitest: ^0.33.0 dependencies: - '@rabbitholegg/questdk': 2.0.0-alpha.28_typescript@5.3.2 + '@rabbitholegg/questdk': 2.0.0-alpha.28_typescript@5.3.3 ethers: 5.7.2 - symbiosis-js-sdk: 3.1.1_ethers@5.7.2 - viem: 1.19.11_typescript@5.3.2 + symbiosis-js-sdk: 3.1.14_ethers@5.7.2 + viem: 1.21.0_typescript@5.3.3 devDependencies: - '@types/node': 20.10.3 + '@types/node': 20.10.5 '@vitest/coverage-v8': 0.33.0_vitest@0.33.0 rimraf: 5.0.5 rome: 12.1.3 - ts-node: 10.9.1_xy5pmmm77qgfdfg5jflxsqkm74 + ts-node: 10.9.2_7ln3lwozyybesesf4lghtaucbi tsconfig: link:../tsconfig - typescript: 5.3.2 + typescript: 5.3.3 vitest: 0.33.0 packages/synapse: @@ -558,16 +558,16 @@ importers: viem: ^1.16.6 vitest: ^0.33.0 dependencies: - '@rabbitholegg/questdk': 2.0.0-alpha.28_typescript@5.3.2 - viem: 1.19.11_typescript@5.3.2 + '@rabbitholegg/questdk': 2.0.0-alpha.28_typescript@5.3.3 + viem: 1.21.0_typescript@5.3.3 devDependencies: - '@types/node': 20.10.3 + '@types/node': 20.10.5 '@vitest/coverage-v8': 0.33.0_vitest@0.33.0 rimraf: 5.0.5 rome: 12.1.3 - ts-node: 10.9.1_xy5pmmm77qgfdfg5jflxsqkm74 + ts-node: 10.9.2_7ln3lwozyybesesf4lghtaucbi tsconfig: link:../tsconfig - typescript: 5.3.2 + typescript: 5.3.3 vitest: 0.33.0 packages/tally: @@ -583,16 +583,16 @@ importers: viem: ^1.16.6 vitest: ^0.33.0 dependencies: - '@rabbitholegg/questdk': 2.0.0-alpha.28_typescript@5.3.2 - viem: 1.19.11_typescript@5.3.2 + '@rabbitholegg/questdk': 2.0.0-alpha.28_typescript@5.3.3 + viem: 1.21.0_typescript@5.3.3 devDependencies: - '@types/node': 20.10.3 + '@types/node': 20.10.5 '@vitest/coverage-v8': 0.33.0_vitest@0.33.0 rimraf: 5.0.5 rome: 12.1.3 - ts-node: 10.9.1_xy5pmmm77qgfdfg5jflxsqkm74 + ts-node: 10.9.2_7ln3lwozyybesesf4lghtaucbi tsconfig: link:../tsconfig - typescript: 5.3.2 + typescript: 5.3.3 vitest: 0.33.0 packages/template: @@ -608,16 +608,16 @@ importers: viem: ^1.16.6 vitest: ^0.33.0 dependencies: - '@rabbitholegg/questdk': 2.0.0-alpha.28_typescript@5.3.2 - viem: 1.19.11_typescript@5.3.2 + '@rabbitholegg/questdk': 2.0.0-alpha.28_typescript@5.3.3 + viem: 1.21.0_typescript@5.3.3 devDependencies: - '@types/node': 20.10.3 + '@types/node': 20.10.5 '@vitest/coverage-v8': 0.33.0_vitest@0.33.0 rimraf: 5.0.5 rome: 12.1.3 - ts-node: 10.9.1_xy5pmmm77qgfdfg5jflxsqkm74 + ts-node: 10.9.2_7ln3lwozyybesesf4lghtaucbi tsconfig: link:../tsconfig - typescript: 5.3.2 + typescript: 5.3.3 vitest: 0.33.0 packages/traderjoe: @@ -634,17 +634,17 @@ importers: viem: ^1.16.6 vitest: ^0.33.0 dependencies: - '@rabbitholegg/questdk': 2.0.0-alpha.28_typescript@5.3.2 - '@traderjoe-xyz/sdk-v2': 2.1.8_viem@1.19.11 - viem: 1.19.11_typescript@5.3.2 + '@rabbitholegg/questdk': 2.0.0-alpha.28_typescript@5.3.3 + '@traderjoe-xyz/sdk-v2': 2.1.8_viem@1.21.0 + viem: 1.21.0_typescript@5.3.3 devDependencies: - '@types/node': 20.10.3 + '@types/node': 20.10.5 '@vitest/coverage-v8': 0.33.0_vitest@0.33.0 rimraf: 5.0.5 rome: 12.1.3 - ts-node: 10.9.1_xy5pmmm77qgfdfg5jflxsqkm74 + ts-node: 10.9.2_7ln3lwozyybesesf4lghtaucbi tsconfig: link:../tsconfig - typescript: 5.3.2 + typescript: 5.3.3 vitest: 0.33.0 packages/treasure: @@ -660,16 +660,16 @@ importers: viem: ^1.16.6 vitest: ^0.33.0 dependencies: - '@rabbitholegg/questdk': 2.0.0-alpha.28_typescript@5.3.2 - viem: 1.19.11_typescript@5.3.2 + '@rabbitholegg/questdk': 2.0.0-alpha.28_typescript@5.3.3 + viem: 1.21.0_typescript@5.3.3 devDependencies: - '@types/node': 20.10.3 + '@types/node': 20.10.5 '@vitest/coverage-v8': 0.33.0_vitest@0.33.0 rimraf: 5.0.5 rome: 12.1.3 - ts-node: 10.9.1_xy5pmmm77qgfdfg5jflxsqkm74 + ts-node: 10.9.2_7ln3lwozyybesesf4lghtaucbi tsconfig: link:../tsconfig - typescript: 5.3.2 + typescript: 5.3.3 vitest: 0.33.0 packages/tsconfig: @@ -688,16 +688,16 @@ importers: viem: ^1.16.6 vitest: ^0.33.0 dependencies: - '@rabbitholegg/questdk': 2.0.0-alpha.28_typescript@5.3.2 - '@uniswap/sdk-core': 4.0.9 + '@rabbitholegg/questdk': 2.0.0-alpha.28_typescript@5.3.3 + '@uniswap/sdk-core': 4.0.10 '@uniswap/universal-router-sdk': 2.0.2 - viem: 1.19.11_typescript@5.3.2 + viem: 1.21.0_typescript@5.3.3 devDependencies: '@vitest/coverage-v8': 0.33.0_vitest@0.33.0 rimraf: 5.0.5 rome: 12.1.3 tsconfig: link:../tsconfig - typescript: 5.3.2 + typescript: 5.3.3 vitest: 0.33.0 packages/woofi: @@ -713,16 +713,16 @@ importers: viem: ^1.16.6 vitest: ^0.33.0 dependencies: - '@rabbitholegg/questdk': 2.0.0-alpha.28_typescript@5.3.2 - viem: 1.19.11_typescript@5.3.2 + '@rabbitholegg/questdk': 2.0.0-alpha.28_typescript@5.3.3 + viem: 1.21.0_typescript@5.3.3 devDependencies: - '@types/node': 20.10.3 + '@types/node': 20.10.5 '@vitest/coverage-v8': 0.33.0_vitest@0.33.0 rimraf: 5.0.5 rome: 12.1.3 - ts-node: 10.9.1_xy5pmmm77qgfdfg5jflxsqkm74 + ts-node: 10.9.2_7ln3lwozyybesesf4lghtaucbi tsconfig: link:../tsconfig - typescript: 5.3.2 + typescript: 5.3.3 vitest: 0.33.0 packages/zora: @@ -739,17 +739,17 @@ importers: viem: ^1.16.6 vitest: ^0.33.0 dependencies: - '@rabbitholegg/questdk': 2.0.0-alpha.28_typescript@5.3.2 - '@zoralabs/universal-minter': 0.2.12_sxnwz2lel4aqydivynmt5thjca - viem: 1.19.11_typescript@5.3.2 + '@rabbitholegg/questdk': 2.0.0-alpha.28_typescript@5.3.3 + '@zoralabs/universal-minter': 0.2.12_cbkhspt5iux6oxdniswqawpgte + viem: 1.21.0_typescript@5.3.3 devDependencies: - '@types/node': 20.10.3 + '@types/node': 20.10.5 '@vitest/coverage-v8': 0.33.0_vitest@0.33.0 rimraf: 5.0.5 rome: 12.1.3 - ts-node: 10.9.1_xy5pmmm77qgfdfg5jflxsqkm74 + ts-node: 10.9.2_7ln3lwozyybesesf4lghtaucbi tsconfig: link:../tsconfig - typescript: 5.3.2 + typescript: 5.3.3 vitest: 0.33.0 packages: @@ -800,19 +800,19 @@ packages: chalk: 2.4.2 js-tokens: 4.0.0 - /@babel/runtime-corejs3/7.23.5: - resolution: {integrity: sha512-7+ziVclejQTLYhXl+Oi1f6gTGD1XDCeLa4R472TNGQxb08zbEJ0OdNoh5Piz+57Ltmui6xR88BXR4gS3/Toslw==} + /@babel/runtime-corejs3/7.23.6: + resolution: {integrity: sha512-Djs/ZTAnpyj0nyg7p1J6oiE/tZ9G2stqAFlLGZynrW+F3k2w2jGK2mLOBxzYIOcZYA89+c3d3wXKpYLcpwcU6w==} engines: {node: '>=6.9.0'} dependencies: - core-js-pure: 3.33.3 - regenerator-runtime: 0.14.0 + core-js-pure: 3.34.0 + regenerator-runtime: 0.14.1 dev: true - /@babel/runtime/7.23.5: - resolution: {integrity: sha512-NdUTHcPe4C99WxPub+K9l9tK5/lV4UXIoaHSYgzco9BCyjKAAwzdBI+wWtYqHt7LJdbo74ZjRPJgzVweq1sz0w==} + /@babel/runtime/7.23.6: + resolution: {integrity: sha512-zHd0eUrf5GZoOWVCXp6koAKQTfZV07eit6bGPmJgnZdnSAvvZee6zniW2XMF7Cmc4ISOOnPy3QaSiIJGJkVEDQ==} engines: {node: '>=6.9.0'} dependencies: - regenerator-runtime: 0.14.0 + regenerator-runtime: 0.14.1 /@bcoe/v8-coverage/0.2.3: resolution: {integrity: sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==} @@ -821,7 +821,7 @@ packages: /@changesets/apply-release-plan/7.0.0: resolution: {integrity: sha512-vfi69JR416qC9hWmFGSxj7N6wA5J222XNBmezSVATPWDVPIF7gkd4d8CpbEbXmRWbVrkoli3oerGS6dcL/BGsQ==} dependencies: - '@babel/runtime': 7.23.5 + '@babel/runtime': 7.23.6 '@changesets/config': 3.0.0 '@changesets/get-version-range-type': 0.4.0 '@changesets/git': 3.0.0 @@ -838,7 +838,7 @@ packages: /@changesets/assemble-release-plan/6.0.0: resolution: {integrity: sha512-4QG7NuisAjisbW4hkLCmGW2lRYdPrKzro+fCtZaILX+3zdUELSvYjpL4GTv0E4aM9Mef3PuIQp89VmHJ4y2bfw==} dependencies: - '@babel/runtime': 7.23.5 + '@babel/runtime': 7.23.6 '@changesets/errors': 0.2.0 '@changesets/get-dependents-graph': 2.0.0 '@changesets/types': 6.0.0 @@ -864,7 +864,7 @@ packages: resolution: {integrity: sha512-iJ91xlvRnnrJnELTp4eJJEOPjgpF3NOh4qeQehM6Ugiz9gJPRZ2t+TsXun6E3AMN4hScZKjqVXl0TX+C7AB3ZQ==} hasBin: true dependencies: - '@babel/runtime': 7.23.5 + '@babel/runtime': 7.23.6 '@changesets/apply-release-plan': 7.0.0 '@changesets/assemble-release-plan': 6.0.0 '@changesets/changelog-git': 0.2.0 @@ -934,7 +934,7 @@ packages: /@changesets/get-release-plan/4.0.0: resolution: {integrity: sha512-9L9xCUeD/Tb6L/oKmpm8nyzsOzhdNBBbt/ZNcjynbHC07WW4E1eX8NMGC5g5SbM5z/V+MOrYsJ4lRW41GCbg3w==} dependencies: - '@babel/runtime': 7.23.5 + '@babel/runtime': 7.23.6 '@changesets/assemble-release-plan': 6.0.0 '@changesets/config': 3.0.0 '@changesets/pre': 2.0.0 @@ -948,7 +948,7 @@ packages: /@changesets/git/3.0.0: resolution: {integrity: sha512-vvhnZDHe2eiBNRFHEgMiGd2CT+164dfYyrJDhwwxTVD/OW0FUD6G7+4DIx1dNwkwjHyzisxGAU96q0sVNBns0w==} dependencies: - '@babel/runtime': 7.23.5 + '@babel/runtime': 7.23.6 '@changesets/errors': 0.2.0 '@changesets/types': 6.0.0 '@manypkg/get-packages': 1.1.3 @@ -970,7 +970,7 @@ packages: /@changesets/pre/2.0.0: resolution: {integrity: sha512-HLTNYX/A4jZxc+Sq8D1AMBsv+1qD6rmmJtjsCJa/9MSRybdxh0mjbTvE6JYZQ/ZiQ0mMlDOlGPXTm9KLTU3jyw==} dependencies: - '@babel/runtime': 7.23.5 + '@babel/runtime': 7.23.6 '@changesets/errors': 0.2.0 '@changesets/types': 6.0.0 '@manypkg/get-packages': 1.1.3 @@ -979,7 +979,7 @@ packages: /@changesets/read/0.6.0: resolution: {integrity: sha512-ZypqX8+/im1Fm98K4YcZtmLKgjs1kDQ5zHpc2U1qdtNBmZZfo/IBiG162RoP0CUF05tvp2y4IspH11PLnPxuuw==} dependencies: - '@babel/runtime': 7.23.5 + '@babel/runtime': 7.23.6 '@changesets/git': 3.0.0 '@changesets/logger': 0.1.0 '@changesets/parse': 0.4.0 @@ -1001,7 +1001,7 @@ packages: /@changesets/write/0.3.0: resolution: {integrity: sha512-slGLb21fxZVUYbyea+94uFiD6ntQW0M2hIKNznFizDhZPDgn2c/fv1UzzlW43RVzh1BEDuIqW6hzlJ1OflNmcw==} dependencies: - '@babel/runtime': 7.23.5 + '@babel/runtime': 7.23.6 '@changesets/types': 6.0.0 fs-extra: 7.0.1 human-id: 1.0.2 @@ -1463,7 +1463,7 @@ packages: ajv: 6.12.6 debug: 4.3.4 espree: 7.3.1 - globals: 13.23.0 + globals: 13.24.0 ignore: 4.0.6 import-fresh: 3.3.0 js-yaml: 3.14.1 @@ -1499,7 +1499,7 @@ packages: '@testing-library/react': 14.1.2_biqbaboplfbrettd7655fr4n2y react: 18.2.0 react-dom: 18.2.0_react@18.2.0 - viem: 1.19.11_typescript@5.1.6 + viem: 1.21.0_typescript@5.1.6 transitivePeerDependencies: - bufferutil - typescript @@ -2208,7 +2208,7 @@ packages: /@manypkg/find-root/1.1.0: resolution: {integrity: sha512-mki5uBvhHzO8kYYix/WRy2WX8S3B5wdVSc9D6KcU5lQNglP2yt58/VfLuAK49glRXChosY8ap2oJ1qgma3GUVA==} dependencies: - '@babel/runtime': 7.23.5 + '@babel/runtime': 7.23.6 '@types/node': 12.20.55 find-up: 4.1.0 fs-extra: 8.1.0 @@ -2216,7 +2216,7 @@ packages: /@manypkg/get-packages/1.1.3: resolution: {integrity: sha512-fo+QhuU3qE/2TQMQmbVMqaQ6EWbMhi4ABWP+O4AM1NqPBuy0OrApV5LO6BrrgnhtAHS2NH6RrVk9OL181tTi8A==} dependencies: - '@babel/runtime': 7.23.5 + '@babel/runtime': 7.23.6 '@changesets/types': 4.1.0 '@manypkg/find-root': 1.1.0 fs-extra: 8.1.0 @@ -2315,7 +2315,7 @@ packages: engines: {node: '>= 8'} dependencies: '@nodelib/fs.scandir': 2.1.5 - fastq: 1.15.0 + fastq: 1.16.0 /@openzeppelin/contracts-upgradeable/4.7.3: resolution: {integrity: sha512-+wuegAMaLcZnLCJIvrVUDzA9z/Wp93f0Dla/4jJvIhijRrPabjQbZe6fWiECLaJyfn5ci9fqf9vTw3xpQOad2A==} @@ -2345,7 +2345,7 @@ packages: resolution: {integrity: sha512-ecnX8ezlhYWFwolZxYEz+K+RfLr8xaxQqiJKlxJ8Yf00tXTGxDGn6/Acy00t4+9Kv0apewd7++J33eJt9yNfwg==} dev: false - /@paraswap/sdk/6.3.0_a73iyh55nchcnvrx2gvtw7b4v4: + /@paraswap/sdk/6.3.0_mnqngwuc7bnukdb6a5vweuj77m: resolution: {integrity: sha512-hA4hrSADeBFAFSZpdOCcyKL9t+KwKl0sifawIR6bbNjnndJrwLOXrWyyGJwEtifixlJUnPm3Aakz5l0eRX7j+Q==} engines: {node: '>=12'} peerDependencies: @@ -2363,7 +2363,7 @@ packages: '@paraswap/core': 1.1.0 axios: 1.5.0 bignumber.js: 9.1.2 - ts-essentials: 9.4.1_typescript@5.3.2 + ts-essentials: 9.4.1_typescript@5.3.3 transitivePeerDependencies: - typescript dev: false @@ -2383,16 +2383,16 @@ packages: optional: true dependencies: abitype: 0.9.10_typescript@5.1.6 - rimraf: 5.0.5 + rimraf: 5.0.1 typescript: 5.1.6 - viem: 1.19.11_typescript@5.1.6 + viem: 1.21.0_typescript@5.1.6 transitivePeerDependencies: - bufferutil - utf-8-validate - zod dev: false - /@rabbitholegg/questdk/2.0.0-alpha.28_typescript@5.3.2: + /@rabbitholegg/questdk/2.0.0-alpha.28_typescript@5.3.3: resolution: {integrity: sha512-YNjry2FcWHRtNuUj+OIsoLeEhmQ0mNidhLC2BWjhQgEUcIwmTzkuSw/QczjZoDZojTOe8DKgVpLOSIs9qoDoXw==} peerDependencies: typescript: '>=5.1.6' @@ -2400,10 +2400,10 @@ packages: typescript: optional: true dependencies: - abitype: 0.9.10_typescript@5.3.2 - rimraf: 5.0.5 - typescript: 5.3.2 - viem: 1.19.11_typescript@5.3.2 + abitype: 0.9.10_typescript@5.3.3 + rimraf: 5.0.1 + typescript: 5.3.3 + viem: 1.21.0_typescript@5.3.3 transitivePeerDependencies: - bufferutil - utf-8-validate @@ -2458,24 +2458,24 @@ packages: dev: true optional: true - /@scure/base/1.1.3: - resolution: {integrity: sha512-/+SgoRjLq7Xlf0CWuLHq2LUZeL/w65kfzAPG5NH9pcmBhs+nunQTn4gvdwgMTIXnt9b2C/1SeL2XiysZEyIC9Q==} + /@scure/base/1.1.5: + resolution: {integrity: sha512-Brj9FiG2W1MRQSTB212YVPRrcbjkv48FoZi/u4l/zds/ieRrqsh7aUf6CLwkAq61oKXr/ZlTzlY66gLIj3TFTQ==} dev: false /@scure/bip32/1.3.0: resolution: {integrity: sha512-bcKpo1oj54hGholplGLpqPHRbIsnbixFtc06nwuNM5/dwSXOq/AAYoIBRsBmnZJSdfeNW5rnff7NTAz3ZCqR9Q==} dependencies: '@noble/curves': 1.0.0 - '@noble/hashes': 1.3.2 - '@scure/base': 1.1.3 + '@noble/hashes': 1.3.0 + '@scure/base': 1.1.5 dev: false /@scure/bip32/1.3.1: resolution: {integrity: sha512-osvveYtyzdEVbt3OfwwXFr4P2iVBL5u1Q3q4ONBfDY/UpOuXmOlbgwc1xECEboY8wIays8Yt6onaWMUdUbfl0A==} dependencies: '@noble/curves': 1.1.0 - '@noble/hashes': 1.3.2 - '@scure/base': 1.1.3 + '@noble/hashes': 1.3.1 + '@scure/base': 1.1.5 dev: false /@scure/bip32/1.3.2: @@ -2483,21 +2483,21 @@ packages: dependencies: '@noble/curves': 1.2.0 '@noble/hashes': 1.3.2 - '@scure/base': 1.1.3 + '@scure/base': 1.1.5 dev: false /@scure/bip39/1.2.0: resolution: {integrity: sha512-SX/uKq52cuxm4YFXWFaVByaSHJh2w3BnokVSeUJVCv6K7WulT9u2BuNRBhuFl8vAuYnzx9bEu9WgpcNYTrYieg==} dependencies: - '@noble/hashes': 1.3.2 - '@scure/base': 1.1.3 + '@noble/hashes': 1.3.0 + '@scure/base': 1.1.5 dev: false /@scure/bip39/1.2.1: resolution: {integrity: sha512-Z3/Fsz1yr904dduJD0NpiyRHhRYHdcnyh73FZWiV+/qhWi83wNJ3NWolYqCEN+ZWsUz2TWwajJggcRE9r1zUYg==} dependencies: '@noble/hashes': 1.3.2 - '@scure/base': 1.1.3 + '@scure/base': 1.1.5 dev: false /@sinclair/typebox/0.25.21: @@ -2513,10 +2513,8 @@ packages: engines: {node: '>=10'} dev: false - /@solidity-parser/parser/0.16.2: - resolution: {integrity: sha512-PI9NfoA3P8XK2VBkK5oIfRgKDsicwDZfkVq9ZTBCQYGOP1N2owgY2dyLGyU5/J/hQs8KRk55kdmvTLjy3Mu3vg==} - dependencies: - antlr4ts: 0.5.0-alpha.4 + /@solidity-parser/parser/0.17.0: + resolution: {integrity: sha512-Nko8R0/kUo391jsEHHxrGM07QFdnPGvlmox4rmH0kNiNAashItAilhy4Mv4pK5gQmW5f4sXAF58fwJbmlkGcVw==} dev: false /@sushiswap/core-sdk/1.0.0-canary.34: @@ -2556,7 +2554,7 @@ packages: engines: {node: '>=14'} dependencies: '@babel/code-frame': 7.23.5 - '@babel/runtime': 7.23.5 + '@babel/runtime': 7.23.6 '@types/aria-query': 5.0.4 aria-query: 5.1.3 chalk: 4.1.2 @@ -2572,9 +2570,9 @@ packages: react: ^18.0.0 react-dom: ^18.0.0 dependencies: - '@babel/runtime': 7.23.5 + '@babel/runtime': 7.23.6 '@testing-library/dom': 9.3.3 - '@types/react-dom': 18.2.17 + '@types/react-dom': 18.2.18 react: 18.2.0 react-dom: 18.2.0_react@18.2.0 dev: false @@ -2583,7 +2581,7 @@ packages: resolution: {integrity: sha512-C5Mc6rdnsaJDjO3UpGW/CQTHtCKaYlScZTly4JIu97Jxo/odCiH0ITnDXSJPTOrEKk/ycSZ0AOgTmkDtkOsvIA==} dev: true - /@traderjoe-xyz/sdk-core/1.1.0_viem@1.19.11: + /@traderjoe-xyz/sdk-core/1.1.0_viem@1.21.0: resolution: {integrity: sha512-oD92ywo1iaYad39n2d2M0DXO8cdQqAmjE6CN+f5DFj3PCbh5oHP+61Bg+Vm2jE3K5clvwl/zd+V17J0fmA08Zw==} engines: {node: '>=14'} peerDependencies: @@ -2595,23 +2593,23 @@ packages: tiny-invariant: 1.3.1 tiny-warning: 1.0.3 toformat: 2.0.0 - viem: 1.19.11_typescript@5.3.2 + viem: 1.21.0_typescript@5.3.3 dev: false - /@traderjoe-xyz/sdk-v2/2.1.8_viem@1.19.11: + /@traderjoe-xyz/sdk-v2/2.1.8_viem@1.21.0: resolution: {integrity: sha512-gUO1rpOb+6VIwURVHMo7Q7nW0gAvrzlM7lKQ3al6oyjeqtnKIkSOhq2lpLpGgvFaNe0c47ZLGGmNmr5nyp194g==} engines: {node: '>=14'} peerDependencies: viem: '>=0.3.35' dependencies: - '@traderjoe-xyz/sdk-core': 1.1.0_viem@1.19.11 + '@traderjoe-xyz/sdk-core': 1.1.0_viem@1.21.0 big.js: 6.2.1 jsbi: 3.2.5 lodash.flatmap: 4.5.0 tiny-invariant: 1.3.1 tiny-warning: 1.0.3 toformat: 2.0.0 - viem: 1.19.11_typescript@5.3.2 + viem: 1.21.0_typescript@5.3.3 dev: false /@tronweb3/google-protobuf/3.21.2: @@ -2630,11 +2628,11 @@ packages: /@tsconfig/node16/1.0.4: resolution: {integrity: sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==} - /@turbo/gen/1.10.16: - resolution: {integrity: sha512-PzyluADjVuy5OcIi+/aRcD70OElQpRVRDdfZ9fH8G5Fv75lQcNrjd1bBGKmhjSw+g+eTEkXMGnY7s6gsCYjYTQ==} + /@turbo/gen/1.11.2: + resolution: {integrity: sha512-zV4vwedEujiAcACPnFXnKat8IqDo0EVJpMbS3W5CiokUBv35vw5PjldjqKcdh0GIiUTlriWGwRU6FZ8pzBg+kg==} hasBin: true dependencies: - '@turbo/workspaces': 1.10.16 + '@turbo/workspaces': 1.11.2 chalk: 2.4.2 commander: 10.0.1 fs-extra: 10.1.0 @@ -2642,7 +2640,7 @@ packages: minimatch: 9.0.3 node-plop: 0.26.3 proxy-agent: 6.3.1 - ts-node: 10.9.1 + ts-node: 10.9.2 update-check: 1.5.4 validate-npm-package-name: 5.0.0 transitivePeerDependencies: @@ -2653,8 +2651,8 @@ packages: - typescript dev: true - /@turbo/workspaces/1.10.16: - resolution: {integrity: sha512-WKpMyWC4fKCji9DFSaL6uUnTakOmL769LfiNOGk2v5jONMKpjvOB1o1nXkWNbU/PTPqxwV4Cf5qzNSWIgnanYg==} + /@turbo/workspaces/1.11.2: + resolution: {integrity: sha512-yP6xKV0Cst6U1PDCTaGz0B0ufcD22LfGsMcOmv36+HaajnnaAnNZDUbdfO3LDD4VR7dyMtBOgqkqREJ8vBWSzA==} hasBin: true dependencies: chalk: 2.4.2 @@ -2682,7 +2680,7 @@ packages: /@types/bn.js/5.1.5: resolution: {integrity: sha512-V46N0zwKRF5Q00AZ6hWtN0T8gGmDUaUzLWQvHFo5yThtVwK/VCenFY3wXVbOvNfajEpsTfQM4IN9k/d6gUVX3A==} dependencies: - '@types/node': 20.10.3 + '@types/node': 20.4.5 dev: false /@types/cacheable-request/6.0.3: @@ -2690,7 +2688,7 @@ packages: dependencies: '@types/http-cache-semantics': 4.0.4 '@types/keyv': 3.1.4 - '@types/node': 20.10.3 + '@types/node': 20.4.5 '@types/responselike': 1.0.3 dev: false @@ -2706,7 +2704,7 @@ packages: resolution: {integrity: sha512-ZUxbzKl0IfJILTS6t7ip5fQQM/J3TJYubDm3nMbgubNNYS62eXeUpoLUC8/7fJNiFYHTrGPQn7hspDUzIHX3UA==} dependencies: '@types/minimatch': 5.1.2 - '@types/node': 20.10.3 + '@types/node': 20.10.5 dev: true /@types/http-cache-semantics/4.0.4: @@ -2727,7 +2725,7 @@ packages: /@types/keyv/3.1.4: resolution: {integrity: sha512-BQ5aZNSCpj7D6K2ksrRCTmKRLEpnPvWDiLPfoGyhZ++8YtiK9d/3DBKPJgry359X/P1PfruyYwvnvwFjuEiEIg==} dependencies: - '@types/node': 20.10.3 + '@types/node': 20.4.5 dev: false /@types/level-errors/3.0.2: @@ -2739,7 +2737,7 @@ packages: dependencies: '@types/abstract-leveldown': 7.2.5 '@types/level-errors': 3.0.2 - '@types/node': 20.10.3 + '@types/node': 20.10.5 dev: false /@types/minimatch/5.1.2: @@ -2756,14 +2754,13 @@ packages: resolution: {integrity: sha512-N+0kuo9KgrUQ1Sn/ifDXsvg0TTleP7rIy4zOBGECxAljqvqfqpTfzx0Q1NUedOixRMBfe2Whhb056a42cWs26Q==} dev: false - /@types/node/20.10.3: - resolution: {integrity: sha512-XJavIpZqiXID5Yxnxv3RUDKTN5b81ddNC3ecsA0SoFXz/QU8OGBwZGMomiq0zw+uuqbL/krztv/DINAQ/EV4gg==} + /@types/node/20.10.5: + resolution: {integrity: sha512-nNPsNE65wjMxEKI93yOP+NPGGBJz/PoN3kZsVLee0XMiJolxSekEVD8wRwBUBqkwc7UWop0edW50yrCQW4CyRw==} dependencies: undici-types: 5.26.5 /@types/node/20.4.5: resolution: {integrity: sha512-rt40Nk13II9JwQBdeYqmbn2Q6IVTA5uPhvSO+JVqdXw/6/4glI6oR9ezty/A9Hg5u7JH4OmYmuQ+XvjKm0Datg==} - dev: true /@types/normalize-package-data/2.4.4: resolution: {integrity: sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA==} @@ -2771,31 +2768,31 @@ packages: /@types/pbkdf2/3.1.2: resolution: {integrity: sha512-uRwJqmiXmh9++aSu1VNEn3iIxWOhd8AHXNSdlaLfdAAdSTY9jYVeGWnzejM3dvrkbqE3/hyQkQQ29IFATEGlew==} dependencies: - '@types/node': 20.10.3 + '@types/node': 20.4.5 dev: false /@types/prop-types/15.7.11: resolution: {integrity: sha512-ga8y9v9uyeiLdpKddhxYQkxNDrfvuPrlFb0N1qnZZByvcElJaXthF1UhvCh9TLWJBEHeNtdnbysW7Y6Uq8CVng==} dev: false - /@types/react-dom/18.2.17: - resolution: {integrity: sha512-rvrT/M7Df5eykWFxn6MYt5Pem/Dbyc1N8Y0S9Mrkw2WFCRiqUgw9P7ul2NpwsXCSM1DVdENzdG9J5SreqfAIWg==} + /@types/react-dom/18.2.18: + resolution: {integrity: sha512-TJxDm6OfAX2KJWJdMEVTwWke5Sc/E/RlnPGvGfS0W7+6ocy2xhDVQVh/KvC2Uf7kACs+gDytdusDSdWfWkaNzw==} dependencies: - '@types/react': 18.2.42 + '@types/react': 18.2.45 dev: false - /@types/react/18.2.42: - resolution: {integrity: sha512-c1zEr96MjakLYus/wPnuWDo1/zErfdU9rNsIGmE+NV71nx88FG9Ttgo5dqorXTu/LImX2f63WBP986gJkMPNbA==} + /@types/react/18.2.45: + resolution: {integrity: sha512-TtAxCNrlrBp8GoeEp1npd5g+d/OejJHFxS3OWmrPBMFaVQMSN0OFySozJio5BHxTuTeug00AVXVAjfDSfk+lUg==} dependencies: '@types/prop-types': 15.7.11 '@types/scheduler': 0.16.8 - csstype: 3.1.2 + csstype: 3.1.3 dev: false /@types/responselike/1.0.3: resolution: {integrity: sha512-H/+L+UkTV33uf49PH5pCAUBVPNj2nDBXTN+qS1dOwyyg24l3CcicicCA7ca+HMvJBZcFgl5r8e+RR6elsb4Lyw==} dependencies: - '@types/node': 20.10.3 + '@types/node': 20.4.5 dev: false /@types/scheduler/0.16.8: @@ -2805,7 +2802,7 @@ packages: /@types/secp256k1/4.0.6: resolution: {integrity: sha512-hHxJU6PAEUn0TP4S/ZOzuTUvJWuZ6eIKeNKb5RBpODvSl6hp1Wrw4s7ATY50rklRCScUDpHzVA/DQdSjJ3UoYQ==} dependencies: - '@types/node': 20.10.3 + '@types/node': 20.4.5 dev: false /@types/semver/7.5.6: @@ -2814,7 +2811,7 @@ packages: /@types/through/0.0.33: resolution: {integrity: sha512-HsJ+z3QuETzP3cswwtzt2vEIiHBk/dCcHGhbmG5X3ecnwFD/lPrMpliGXxSCg03L9AhrdwA4Oz/qfspkDW+xGQ==} dependencies: - '@types/node': 20.10.3 + '@types/node': 20.10.5 dev: true /@types/tinycolor2/1.4.6: @@ -2824,7 +2821,7 @@ packages: /@types/ws/8.5.10: resolution: {integrity: sha512-vmQSUcfalpIq0R9q7uTo2lXs6eGIpt9wtnLdMv9LVpIjCA/+ufZRozlVoVelIYixx1ugCBKDhn89vnsEGOCx9A==} dependencies: - '@types/node': 20.10.3 + '@types/node': 20.4.5 dev: false /@uniswap/lib/4.0.1-alpha: @@ -2846,7 +2843,7 @@ packages: resolution: {integrity: sha512-uBN9QX3t5lPLkxlkPoQPZpd0eN+GA0Ab9nq1pcPk/XDFuRnRxxVF629Ecz2SfTVm0gooOPO3aU3ETgyB3vuhYA==} dependencies: '@ethersproject/abi': 5.7.0 - '@uniswap/sdk-core': 4.0.9 + '@uniswap/sdk-core': 4.0.10 '@uniswap/swap-router-contracts': 1.3.1 '@uniswap/v2-sdk': 3.2.3 '@uniswap/v3-sdk': 3.10.0 @@ -2854,8 +2851,8 @@ packages: - hardhat dev: false - /@uniswap/sdk-core/4.0.9: - resolution: {integrity: sha512-/0K+u3ZWokpj9VyRuGwrwx7jy31auJdsw5UbKnvHqUSfejrp6XhmMPNOElPgL6jiUhAN1NhVHfjX01tNHFxeLA==} + /@uniswap/sdk-core/4.0.10: + resolution: {integrity: sha512-RiobXJKXvVVb+wfNM09Ik8djOMOuRQGfyRP5pHgUjojicK/7nscZILjZ87DjVCGjXEoD8yTSIps0UAQuz6pJIw==} engines: {node: '>=10'} dependencies: '@ethersproject/address': 5.7.0 @@ -2886,7 +2883,7 @@ packages: dependencies: '@uniswap/permit2-sdk': 1.2.0 '@uniswap/router-sdk': 1.7.1 - '@uniswap/sdk-core': 4.0.9 + '@uniswap/sdk-core': 4.0.10 '@uniswap/universal-router': 1.5.1 '@uniswap/v2-sdk': 3.2.3 '@uniswap/v3-sdk': 3.10.0 @@ -2918,7 +2915,7 @@ packages: dependencies: '@ethersproject/address': 5.7.0 '@ethersproject/solidity': 5.7.0 - '@uniswap/sdk-core': 4.0.9 + '@uniswap/sdk-core': 4.0.10 tiny-invariant: 1.3.1 tiny-warning: 1.0.3 dev: false @@ -2950,7 +2947,7 @@ packages: dependencies: '@ethersproject/abi': 5.7.0 '@ethersproject/solidity': 5.7.0 - '@uniswap/sdk-core': 4.0.9 + '@uniswap/sdk-core': 4.0.10 '@uniswap/swap-router-contracts': 1.3.1 '@uniswap/v3-periphery': 1.4.4 '@uniswap/v3-staker': 1.0.0 @@ -2983,7 +2980,7 @@ packages: istanbul-reports: 3.1.6 magic-string: 0.30.5 picocolors: 1.0.0 - std-env: 3.6.0 + std-env: 3.7.0 test-exclude: 6.0.0 v8-to-istanbul: 9.2.0 vitest: 0.33.0 @@ -3079,7 +3076,7 @@ packages: typescript: 5.1.6 dev: false - /@wagmi/chains/1.2.0_typescript@5.3.2: + /@wagmi/chains/1.2.0_typescript@5.3.3: resolution: {integrity: sha512-dmDRipsE54JfyudOBkuhEexqQWcrZqxn/qiujG8SBzMh/az/AH5xlJSA+j1CPWTx9+QofSMF3B7A4gb6XRmSaQ==} peerDependencies: typescript: '>=5.0.4' @@ -3087,7 +3084,7 @@ packages: typescript: optional: true dependencies: - typescript: 5.3.2 + typescript: 5.3.3 dev: false /@wagmi/chains/1.7.0_typescript@5.1.6: @@ -3101,7 +3098,7 @@ packages: typescript: 5.1.6 dev: false - /@wagmi/cli/1.5.2_typescript@5.3.2: + /@wagmi/cli/1.5.2_typescript@5.3.3: resolution: {integrity: sha512-UfLMYhW6mQBCjR8A5s01Chf9GpHzdpcuuBuzJ36QGXcMSJAxylz5ImVZWfCRV0ct1UruydjKVSW1QSI6azNxRQ==} engines: {node: '>=14'} hasBin: true @@ -3117,7 +3114,7 @@ packages: wagmi: optional: true dependencies: - abitype: 0.8.7_yyjojsl4j5v7ktoyxwpuy5bxbu + abitype: 0.8.7_ophst5sms6obxk2veobtcst52a abort-controller: 3.0.0 bundle-require: 3.1.2_esbuild@0.16.17 cac: 6.7.14 @@ -3137,8 +3134,8 @@ packages: pathe: 1.1.1 picocolors: 1.0.0 prettier: 2.8.8 - typescript: 5.3.2 - viem: 1.19.11_yyjojsl4j5v7ktoyxwpuy5bxbu + typescript: 5.3.3 + viem: 1.21.0_ophst5sms6obxk2veobtcst52a zod: 3.22.4 transitivePeerDependencies: - bufferutil @@ -3154,11 +3151,11 @@ packages: resolution: {integrity: sha512-Jf2aIHhyAsybCCv1byV5uP/YiwA/ZB3zTywDO6d15796Bf58zzC3D1ptKuh+z1Nba3dU2Hzqz0K7EEQOjoq+1A==} dev: false - /@zoralabs/universal-minter/0.2.12_sxnwz2lel4aqydivynmt5thjca: + /@zoralabs/universal-minter/0.2.12_cbkhspt5iux6oxdniswqawpgte: resolution: {integrity: sha512-tPeUh85OQrCOc454TaXy0MbHfU79XwaU1Mrhj1DAxY077v3ztXl2Vg7wJbQduVg8c6H8/hShCSI+scO2NYcHZg==} dependencies: - '@zoralabs/zora-1155-contracts': 1.6.1_an45s3m5kbpxigs5g3244dsmai - abitype: 0.9.10_typescript@5.3.2 + '@zoralabs/zora-1155-contracts': 1.6.1_7f2hc4sslrjfpi34ejkrmy3b7i + abitype: 0.9.10_typescript@5.3.3 transitivePeerDependencies: - '@edge-runtime/vm' - '@swc/core' @@ -3187,28 +3184,28 @@ packages: - zod dev: false - /@zoralabs/zora-1155-contracts/1.6.1_an45s3m5kbpxigs5g3244dsmai: + /@zoralabs/zora-1155-contracts/1.6.1_7f2hc4sslrjfpi34ejkrmy3b7i: resolution: {integrity: sha512-8b872/BOfaW5D8UhFOW2NIrCIXsPvTVoxPZGRs8BNXLEhgQD5nWGoWq11+9fVYxpAMAEtr6/OyvYbT4XtNHTfQ==} dependencies: '@changesets/cli': 2.27.1 '@openzeppelin/contracts': 4.9.2 - '@wagmi/cli': 1.5.2_typescript@5.3.2 + '@wagmi/cli': 1.5.2_typescript@5.3.3 '@zoralabs/openzeppelin-contracts-upgradeable': 4.8.4 '@zoralabs/protocol-rewards': 1.2.1 - abitype: 0.8.11_typescript@5.3.2 + abitype: 0.8.11_typescript@5.3.3 ds-test: github.com/dapphub/ds-test/cd98eff28324bfac652e63a239a60632a761790b es-main: 1.3.0 forge-std: github.com/foundry-rs/forge-std/705263c95892a906d7af65f0f73ce8a4a0c80b80 glob: 10.3.10 prettier: 2.8.8 - prettier-plugin-solidity: 1.2.0_prettier@2.8.8 + prettier-plugin-solidity: 1.3.1_prettier@2.8.8 solady: 0.0.123 solmate: 6.2.0 - tsup: 7.2.0_sebx3fvsaaakhnbgsjn7rvhkq4 + tsup: 7.2.0_scqxenvmgn24ljurjs2keb5hqa tsx: 3.14.0 - typescript: 5.3.2 - viem: 1.19.11_typescript@5.3.2 - vite: 4.5.1_@types+node@20.10.3 + typescript: 5.3.3 + viem: 1.21.0_typescript@5.3.3 + vite: 4.5.1_@types+node@20.10.5 vitest: 0.30.1 transitivePeerDependencies: - '@edge-runtime/vm' @@ -3249,7 +3246,7 @@ packages: typescript: 5.1.6 dev: false - /abitype/0.8.11_typescript@5.3.2: + /abitype/0.8.11_typescript@5.3.3: resolution: {integrity: sha512-bM4v2dKvX08sZ9IU38IN5BKmN+ZkOSd2oI4a9f0ejHYZQYV6cDr7j+d95ga0z2XHG36Y4jzoG5Z7qDqxp7fi/A==} peerDependencies: typescript: '>=5.0.4' @@ -3258,10 +3255,10 @@ packages: zod: optional: true dependencies: - typescript: 5.3.2 + typescript: 5.3.3 dev: false - /abitype/0.8.7_yyjojsl4j5v7ktoyxwpuy5bxbu: + /abitype/0.8.7_ophst5sms6obxk2veobtcst52a: resolution: {integrity: sha512-wQ7hV8Yg/yKmGyFpqrNZufCxbszDe5es4AZGYPBitocfSqXtjrTG9JMWFcc4N30ukl2ve48aBTwt7NJxVQdU3w==} peerDependencies: typescript: '>=5.0.4' @@ -3270,7 +3267,7 @@ packages: zod: optional: true dependencies: - typescript: 5.3.2 + typescript: 5.3.3 zod: 3.22.4 dev: false @@ -3288,7 +3285,7 @@ packages: typescript: 5.1.6 dev: false - /abitype/0.9.10_typescript@5.3.2: + /abitype/0.9.10_typescript@5.3.3: resolution: {integrity: sha512-FIS7U4n7qwAT58KibwYig5iFG4K61rbhAqaQh/UWj8v1Y8mjX3F8TC9gd8cz9yT1TYel9f8nS5NO5kZp2RW0jQ==} peerDependencies: typescript: '>=5.0.4' @@ -3299,7 +3296,7 @@ packages: zod: optional: true dependencies: - typescript: 5.3.2 + typescript: 5.3.3 dev: false /abitype/0.9.3_typescript@5.1.6: @@ -3316,7 +3313,7 @@ packages: typescript: 5.1.6 dev: false - /abitype/0.9.8_typescript@5.1.6: + /abitype/0.9.8_ophst5sms6obxk2veobtcst52a: resolution: {integrity: sha512-puLifILdm+8sjyss4S+fsUN09obiT1g2YW6CtcQF+QDzxR0euzgEB29MZujC6zMk2a6SVmtttq1fc6+YFA7WYQ==} peerDependencies: typescript: '>=5.0.4' @@ -3327,10 +3324,11 @@ packages: zod: optional: true dependencies: - typescript: 5.1.6 + typescript: 5.3.3 + zod: 3.22.4 dev: false - /abitype/0.9.8_typescript@5.3.2: + /abitype/0.9.8_typescript@5.1.6: resolution: {integrity: sha512-puLifILdm+8sjyss4S+fsUN09obiT1g2YW6CtcQF+QDzxR0euzgEB29MZujC6zMk2a6SVmtttq1fc6+YFA7WYQ==} peerDependencies: typescript: '>=5.0.4' @@ -3341,10 +3339,10 @@ packages: zod: optional: true dependencies: - typescript: 5.3.2 + typescript: 5.1.6 dev: false - /abitype/0.9.8_yyjojsl4j5v7ktoyxwpuy5bxbu: + /abitype/0.9.8_typescript@5.3.3: resolution: {integrity: sha512-puLifILdm+8sjyss4S+fsUN09obiT1g2YW6CtcQF+QDzxR0euzgEB29MZujC6zMk2a6SVmtttq1fc6+YFA7WYQ==} peerDependencies: typescript: '>=5.0.4' @@ -3355,8 +3353,7 @@ packages: zod: optional: true dependencies: - typescript: 5.3.2 - zod: 3.22.4 + typescript: 5.3.3 dev: false /abort-controller/3.0.0: @@ -3408,8 +3405,8 @@ packages: acorn: 7.4.1 dev: true - /acorn-walk/8.3.0: - resolution: {integrity: sha512-FS7hV565M5l1R08MXqo8odwMTB02C2UqzB17RVgu9EyuYFBqJZ3/ZY97sQD5FewVu1UyDFc1yztUDrAwT0EypA==} + /acorn-walk/8.3.1: + resolution: {integrity: sha512-TgUZgYvqZprrl7YldZNoa9OciCAyZR+Ejm9eXzKCmjsF5IKp/wgQ7Z/ZpjpGTIUPwrHQIcYeI8qDh4PsEwxMbw==} engines: {node: '>=0.4.0'} /acorn/7.4.1: @@ -3518,10 +3515,6 @@ packages: resolution: {integrity: sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==} engines: {node: '>=12'} - /antlr4ts/0.5.0-alpha.4: - resolution: {integrity: sha512-WPQDt1B74OfPv/IMS2ekXAKkTZIHl88uMetg6q3OTqgFxZ/dxDXI0EWLyZid/1Pe6hTftyg5N7gel5wNAGxXyQ==} - dev: false - /any-promise/1.3.0: resolution: {integrity: sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==} dev: false @@ -3708,8 +3701,8 @@ packages: resolution: {integrity: sha512-ld3cCNMeXt4uJXmLZBHFGMvVpK9KsLVEhPpFRXnvSVAqABKbuNZg/+dsq3NuM+wxFLb/UrVkz7m1ciWmkMfTbg==} dev: false - /basic-ftp/5.0.3: - resolution: {integrity: sha512-QHX8HLlncOLpy54mh+k/sWIFd0ThmRqwe9ZjELybGZK+tZ8rUb9VO0saKJUROTbE+KhzDUT7xziGpGrW8Kmd+g==} + /basic-ftp/5.0.4: + resolution: {integrity: sha512-8PzkB0arJFV4jJWSGOYR+OEic6aeKMu/osRhBULN6RY0ykby6LKhbmuQ5ublvaas5BOwboah5D87nrHyuh8PPA==} engines: {node: '>=10.0.0'} dev: true @@ -3837,6 +3830,7 @@ packages: dependencies: balanced-match: 1.0.2 concat-map: 0.0.1 + dev: true /brace-expansion/2.0.1: resolution: {integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==} @@ -4328,6 +4322,7 @@ packages: /concat-map/0.0.1: resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} + dev: true /concordance/5.0.4: resolution: {integrity: sha512-OAcsnTEYu1ARJqWVGwf4zh4JDfHZEaSNlNccFmt8YjB2l/n19/PF2viLINHc57vO4FKIAFl2FWASIGZZWZ2Kxw==} @@ -4396,8 +4391,8 @@ packages: engines: {node: '>= 0.6'} dev: false - /core-js-pure/3.33.3: - resolution: {integrity: sha512-taJ00IDOP+XYQEA2dAe4ESkmHt1fL8wzYDo3mRWQey8uO9UojlBFMneA65kMyxfYP7106c6LzWaq7/haDT6BCQ==} + /core-js-pure/3.34.0: + resolution: {integrity: sha512-pmhivkYXkymswFfbXsANmBAewXx86UBfmagP+w0wkK06kLsLlTK5oQmsURPivzMkIBQiYq2cjamcZExIwlFQIg==} requiresBuild: true dev: true @@ -4506,8 +4501,8 @@ packages: resolution: {integrity: sha512-DIT51nX0dCfKltpRiXV+/TVZq+Qq2NgF4644+K7Ttnla7zEzqc+kjJyiB96BHNyUTBxyjzRcZYpUdZa+QAqi6Q==} dev: false - /csstype/3.1.2: - resolution: {integrity: sha512-I7K1Uu0MBPzaFKg4nI5Q7Vs2t+3gWWW648spaF+Rg7pI9ds18Ugn+lvg4SHczUdKlHI5LWBXyqfS8+DufyBsgQ==} + /csstype/3.1.3: + resolution: {integrity: sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==} dev: false /csv-generate/3.4.3: @@ -5163,7 +5158,7 @@ packages: file-entry-cache: 6.0.1 functional-red-black-tree: 1.0.1 glob-parent: 5.1.2 - globals: 13.23.0 + globals: 13.24.0 ignore: 4.0.6 import-fresh: 3.3.0 imurmurhash: 0.1.4 @@ -5392,8 +5387,8 @@ packages: - utf-8-validate dev: false - /ethers/6.9.0: - resolution: {integrity: sha512-pmfNyQzc2mseLe91FnT2vmNaTt8dDzhxZ/xItAV7uGsF4dI4ek2ufMu3rAkgQETL/TIs0GS5A+U05g9QyWnv3Q==} + /ethers/6.9.1: + resolution: {integrity: sha512-kuV8fGd4/8Gj7wkurbsuUsm1DCG6N5gKGYdw3fnWG/7QGknhy1xtHD7kbkCWQAcbAYmzLCLqCPedS3FYncFkKQ==} engines: {node: '>=14.0.0'} dependencies: '@adraffy/ens-normalize': 1.10.0 @@ -5476,7 +5471,7 @@ packages: human-signals: 3.0.1 is-stream: 3.0.0 merge-stream: 2.0.0 - npm-run-path: 5.1.0 + npm-run-path: 5.2.0 onetime: 6.0.0 signal-exit: 3.0.7 strip-final-newline: 3.0.0 @@ -5586,8 +5581,8 @@ packages: engines: {node: '>=6'} dev: false - /fastq/1.15.0: - resolution: {integrity: sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==} + /fastq/1.16.0: + resolution: {integrity: sha512-ifCoaXsDrsdkWTtiNJX5uzHDsrck5TzfKKDcuFFTIrrc/BS076qgEIfoIy1VeZqViznfKiysPYTh/QeHtnIsYA==} dependencies: reusify: 1.0.4 @@ -5790,6 +5785,7 @@ packages: /fs.realpath/1.0.0: resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} + dev: true /fsevents/2.3.3: resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} @@ -5883,7 +5879,7 @@ packages: resolution: {integrity: sha512-5KLucCJobh8vBY1K07EFV4+cPZH3mrV9YeAruUseCQKHB58SGjjT2l9/eA9LD082IiuMjSlFJEcdJ27TXvbZNw==} engines: {node: '>= 14'} dependencies: - basic-ftp: 5.0.3 + basic-ftp: 5.0.4 data-uri-to-buffer: 6.0.1 debug: 4.3.4 fs-extra: 8.1.0 @@ -5919,17 +5915,6 @@ packages: minipass: 7.0.4 path-scurry: 1.10.1 - /glob/7.1.6: - resolution: {integrity: sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==} - dependencies: - fs.realpath: 1.0.0 - inflight: 1.0.6 - inherits: 2.0.4 - minimatch: 3.1.2 - once: 1.4.0 - path-is-absolute: 1.0.1 - dev: false - /glob/7.2.3: resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} dependencies: @@ -5948,8 +5933,8 @@ packages: process: 0.11.10 dev: false - /globals/13.23.0: - resolution: {integrity: sha512-XAmF0RjlrjY23MA51q3HltdlGxUpXPvg0GioKiD9X6HD28iMjo2dKC8Vqwm7lne4GNr78+RHTfliktR6ZH09wA==} + /globals/13.24.0: + resolution: {integrity: sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==} engines: {node: '>=8'} dependencies: type-fest: 0.20.2 @@ -6315,6 +6300,7 @@ packages: dependencies: once: 1.4.0 wrappy: 1.0.2 + dev: true /inherits/2.0.4: resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} @@ -6644,7 +6630,7 @@ packages: resolution: {integrity: sha512-qvUtwJ3j6qwsF3jLxkZ72qCgjMysPzDfeV240JHiGZsANBYd+EEuu35v7dfrJ9Up0Ak07D7GGSkGhCHTqg/5wA==} dependencies: node-fetch: 2.7.0 - whatwg-fetch: 3.6.19 + whatwg-fetch: 3.6.20 transitivePeerDependencies: - encoding dev: false @@ -7289,6 +7275,7 @@ packages: resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} dependencies: brace-expansion: 1.1.11 + dev: true /minimatch/9.0.3: resolution: {integrity: sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==} @@ -7565,7 +7552,7 @@ packages: resolution: {integrity: sha512-Cov028YhBZ5aB7MdMWJEmwyBig43aGL5WT4vdoB28Oitau1zZAcHUn8Sgfk9HM33TqhtLJ9PlM/O0Mv+QpV/4Q==} engines: {node: '>=8.9.4'} dependencies: - '@babel/runtime-corejs3': 7.23.5 + '@babel/runtime-corejs3': 7.23.6 '@types/inquirer': 6.5.0 change-case: 3.1.0 del: 5.1.0 @@ -7607,8 +7594,8 @@ packages: dependencies: path-key: 3.1.1 - /npm-run-path/5.1.0: - resolution: {integrity: sha512-sJOdmRGrY2sjNTRMbSvluQqg+8X7ZK61yvzBEIDhz4f8z1TZFYABsqjjCBd/0PUNE9M6QDgHJXQkGUEm7Q+l9Q==} + /npm-run-path/5.2.0: + resolution: {integrity: sha512-W4/tgAXFqFA0iL7fk0+uQ3g7wkL8xJmx3XdK0VGb4cHW//eZTtKGvFBBoRKVTpY7n6ze4NL9ly7rgXcHufqXKg==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} dependencies: path-key: 4.0.0 @@ -7970,6 +7957,7 @@ packages: /path-is-absolute/1.0.1: resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==} engines: {node: '>=0.10.0'} + dev: true /path-key/3.1.1: resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} @@ -8033,7 +8021,7 @@ packages: /pino-abstract-transport/1.0.0: resolution: {integrity: sha512-c7vo5OpW4wIS42hUVcT5REsL8ZljsUfBjqV/e2sFxmFEFZiq1XLUp5EYLtuDH6PEHq9W1egWqRbnLUP5FuZmOA==} dependencies: - readable-stream: 4.4.2 + readable-stream: 4.5.1 split2: 4.2.0 dev: false @@ -8076,7 +8064,7 @@ packages: mlly: 1.4.2 pathe: 1.1.1 - /postcss-load-config/4.0.2_ts-node@10.9.1: + /postcss-load-config/4.0.2_ts-node@10.9.2: resolution: {integrity: sha512-bSVhyJGL00wMVoPUzAVAnbEoWyqRxkjv64tUl427SKnPrENtq6hJwUojroMz2VB+Q1edmi4IfrAPpami5VVgMQ==} engines: {node: '>= 14'} peerDependencies: @@ -8089,7 +8077,7 @@ packages: optional: true dependencies: lilconfig: 3.0.0 - ts-node: 10.9.1_xy5pmmm77qgfdfg5jflxsqkm74 + ts-node: 10.9.2_7ln3lwozyybesesf4lghtaucbi yaml: 2.3.4 dev: false @@ -8159,16 +8147,16 @@ packages: engines: {node: '>= 0.8.0'} dev: true - /prettier-plugin-solidity/1.2.0_prettier@2.8.8: - resolution: {integrity: sha512-fgxcUZpVAP+LlRfy5JI5oaAkXGkmsje2VJ5krv/YMm+rcTZbIUwFguSw5f+WFuttMjpDm6wB4UL7WVkArEfiVA==} + /prettier-plugin-solidity/1.3.1_prettier@2.8.8: + resolution: {integrity: sha512-MN4OP5I2gHAzHZG1wcuJl0FsLS3c4Cc5494bbg+6oQWBPuEamjwDvmGfFMZ6NFzsh3Efd9UUxeT7ImgjNH4ozA==} engines: {node: '>=16'} peerDependencies: prettier: '>=2.3.0' dependencies: - '@solidity-parser/parser': 0.16.2 + '@solidity-parser/parser': 0.17.0 prettier: 2.8.8 semver: 7.5.4 - solidity-comments-extractor: 0.0.7 + solidity-comments-extractor: 0.0.8 dev: false /prettier/2.8.8: @@ -8439,8 +8427,8 @@ packages: string_decoder: 1.3.0 util-deprecate: 1.0.2 - /readable-stream/4.4.2: - resolution: {integrity: sha512-Lk/fICSyIhodxy1IDK2HazkeGjSmezAWX2egdtJnYhtzKEsBPJowlI6F6LPb5tqIQILrMbx22S5o3GuJavPusA==} + /readable-stream/4.5.1: + resolution: {integrity: sha512-uQjbf34vmf/asGnOHQEw07Q4llgMACQZTWWa4MmICS0IKJoHbLwKCy71H3eR99Dw5iYejc6W+pqZZEeqRtUFAw==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dependencies: abort-controller: 3.0.0 @@ -8469,8 +8457,8 @@ packages: indent-string: 4.0.0 strip-indent: 3.0.0 - /regenerator-runtime/0.14.0: - resolution: {integrity: sha512-srw17NI0TUWHuGa5CFGGmhfNIeja30WMBfbslPNhf6JrqQlLN5gcrvig1oqPxiVaXb0oW0XRKtH6Nngs5lKCIA==} + /regenerator-runtime/0.14.1: + resolution: {integrity: sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==} /regexp.prototype.flags/1.5.1: resolution: {integrity: sha512-sy6TXMN+hnP/wMy+ISxg3krXx7BAtWVO4UouuCN/ziM9UEne0euamVNafDfvC83bRNr95y0V5iijeDQFUNpvrg==} @@ -8601,7 +8589,6 @@ packages: hasBin: true dependencies: glob: 10.3.10 - dev: true /rimraf/5.0.5: resolution: {integrity: sha512-CqDakW+hMe/Bz202FPEymy68P+G50RfMQK+Qo5YUqc9SPipvbGjCGKd0RSKEelbsfQuw3g5NZDSrlZZAJurH1A==} @@ -8609,6 +8596,7 @@ packages: hasBin: true dependencies: glob: 10.3.10 + dev: true /ripemd160/2.0.2: resolution: {integrity: sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==} @@ -8975,8 +8963,8 @@ packages: resolution: {integrity: sha512-F/B8OMCplGsS4FrdPrnEG0xdg8HKede5PwC+Rum8soj/LWxfKckA0p+Uwnlbgey2iI82IHvmSOCNhsdbA+lUrw==} dev: false - /solidity-comments-extractor/0.0.7: - resolution: {integrity: sha512-wciNMLg/Irp8OKGrh3S2tfvZiZ0NEyILfcRCXCD4mp7SgK/i9gzLfhY2hY7VMCQJ3kH9UB9BzNdibIVMchzyYw==} + /solidity-comments-extractor/0.0.8: + resolution: {integrity: sha512-htM7Vn6LhHreR+EglVMd2s+sZhcXAirB1Zlyrv5zBuTxieCvjfnRpd7iZk75m/u6NOlEyQ94C6TWbBn2cY7w8g==} dev: false /solmate/6.2.0: @@ -9067,8 +9055,8 @@ packages: engines: {node: '>= 0.8'} dev: false - /std-env/3.6.0: - resolution: {integrity: sha512-aFZ19IgVmhdB2uX599ve2kE6BIE3YMnQ6Gp6BURhW/oIzpXGKr878TQfAQZn1+i0Flcc/UKUy1gOlcfaUBCryg==} + /std-env/3.7.0: + resolution: {integrity: sha512-JPbdCEQLj1w5GilpiHAx3qJvFndqybBysA3qUOnznweH4QbNYUsW/ea8QzSrnh0vNsezMMw5bcVool8lM0gwzg==} /stdin-discarder/0.1.0: resolution: {integrity: sha512-xhV7w8S+bUwlPTb4bAOUQhv8/cSS5offJuX8GQGq32ONF0ZtDWKfkdomM3HMRA+LhX6um/FZ0COqlwsjD53LeQ==} @@ -9214,14 +9202,14 @@ packages: dependencies: acorn: 8.11.2 - /sucrase/3.34.0: - resolution: {integrity: sha512-70/LQEZ07TEcxiU2dz51FKaE6hCTWC6vr7FOk3Gr0U60C3shtAN+H+BFr9XlYe5xqf3RA8nrc+VIwzCfnxuXJw==} - engines: {node: '>=8'} + /sucrase/3.35.0: + resolution: {integrity: sha512-8EbVDiu9iN/nESwxeSxDKe0dunta1GOlHufmSSXxMD2z2/tMZpDMpvXQGsc+ajGo8y2uYUmixaSRUc/QPoQ0GA==} + engines: {node: '>=16 || 14 >=14.17'} hasBin: true dependencies: '@jridgewell/gen-mapping': 0.3.3 commander: 4.1.1 - glob: 7.1.6 + glob: 10.3.10 lines-and-columns: 1.2.4 mz: 2.7.0 pirates: 4.0.6 @@ -9271,8 +9259,8 @@ packages: - utf-8-validate dev: false - /symbiosis-js-sdk/3.1.1_ethers@5.7.2: - resolution: {integrity: sha512-VDvWjyFvCVCFHj1zcgXVfllE5m7NPI8KjnbLpAdF8T6/1RDN8XNWJuqW6dGAuMEXC/qhR4LjFa8GeVy0QDaVwA==} + /symbiosis-js-sdk/3.1.14_ethers@5.7.2: + resolution: {integrity: sha512-6ozjIgns2Usy3PwFwY4wr3TJpSZXtgiZFEjWHt7xEtZof0mg7DnM7VNvble8dViEjJh1KD2pFGOmUWDbn0LY5A==} engines: {node: '>=10'} peerDependencies: ethers: ^5.2.0 @@ -9489,13 +9477,13 @@ packages: /tronweb/5.3.1: resolution: {integrity: sha512-JF3HE0ab8KQWJWETCF7UqZHD4uMNNGlEPrquBoObu5bWc8A8eerBV9M2PJq+HcSYBivmEHeBqFgmpMAQP3ofpw==} dependencies: - '@babel/runtime': 7.23.5 + '@babel/runtime': 7.23.6 '@ethersproject/abi': 5.7.0 '@tronweb3/google-protobuf': 3.21.2 axios: 0.26.1 bignumber.js: 9.1.2 ethereum-cryptography: 2.1.2 - ethers: 6.9.0 + ethers: 6.9.1 eventemitter3: 3.1.2 injectpromise: 1.0.0 lodash: 4.17.21 @@ -9508,7 +9496,7 @@ packages: - utf-8-validate dev: false - /ts-essentials/9.4.1_typescript@5.3.2: + /ts-essentials/9.4.1_typescript@5.3.3: resolution: {integrity: sha512-oke0rI2EN9pzHsesdmrOrnqv1eQODmJpd/noJjwj2ZPC3Z4N2wbjrOEqnsEgmvlO2+4fBb0a794DCna2elEVIQ==} peerDependencies: typescript: '>=4.1.0' @@ -9516,14 +9504,14 @@ packages: typescript: optional: true dependencies: - typescript: 5.3.2 + typescript: 5.3.3 dev: false /ts-interface-checker/0.1.13: resolution: {integrity: sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==} dev: false - /ts-node/10.9.1: + /ts-node/10.9.1_bir6x3g64ycygfv3l4v3letmxi: resolution: {integrity: sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==} hasBin: true peerDependencies: @@ -9542,18 +9530,20 @@ packages: '@tsconfig/node12': 1.0.11 '@tsconfig/node14': 1.0.3 '@tsconfig/node16': 1.0.4 + '@types/node': 20.4.5 acorn: 8.11.2 - acorn-walk: 8.3.0 + acorn-walk: 8.3.1 arg: 4.1.3 create-require: 1.1.1 diff: 4.0.2 make-error: 1.3.6 + typescript: 5.1.6 v8-compile-cache-lib: 3.0.1 yn: 3.1.1 dev: true - /ts-node/10.9.1_bir6x3g64ycygfv3l4v3letmxi: - resolution: {integrity: sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==} + /ts-node/10.9.2: + resolution: {integrity: sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ==} hasBin: true peerDependencies: '@swc/core': '>=1.2.50' @@ -9571,20 +9561,18 @@ packages: '@tsconfig/node12': 1.0.11 '@tsconfig/node14': 1.0.3 '@tsconfig/node16': 1.0.4 - '@types/node': 20.4.5 acorn: 8.11.2 - acorn-walk: 8.3.0 + acorn-walk: 8.3.1 arg: 4.1.3 create-require: 1.1.1 diff: 4.0.2 make-error: 1.3.6 - typescript: 5.1.6 v8-compile-cache-lib: 3.0.1 yn: 3.1.1 dev: true - /ts-node/10.9.1_xy5pmmm77qgfdfg5jflxsqkm74: - resolution: {integrity: sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==} + /ts-node/10.9.2_7ln3lwozyybesesf4lghtaucbi: + resolution: {integrity: sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ==} hasBin: true peerDependencies: '@swc/core': '>=1.2.50' @@ -9602,14 +9590,14 @@ packages: '@tsconfig/node12': 1.0.11 '@tsconfig/node14': 1.0.3 '@tsconfig/node16': 1.0.4 - '@types/node': 20.10.3 + '@types/node': 20.10.5 acorn: 8.11.2 - acorn-walk: 8.3.0 + acorn-walk: 8.3.1 arg: 4.1.3 create-require: 1.1.1 diff: 4.0.2 make-error: 1.3.6 - typescript: 5.3.2 + typescript: 5.3.3 v8-compile-cache-lib: 3.0.1 yn: 3.1.1 @@ -9627,7 +9615,7 @@ packages: /tslib/2.6.2: resolution: {integrity: sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==} - /tsup/7.2.0_sebx3fvsaaakhnbgsjn7rvhkq4: + /tsup/7.2.0_scqxenvmgn24ljurjs2keb5hqa: resolution: {integrity: sha512-vDHlczXbgUvY3rWvqFEbSqmC1L7woozbzngMqTtL2PGBODTtWlRwGDDawhvWzr5c1QjKe4OAKqJGfE1xeXUvtQ==} engines: {node: '>=16.14'} hasBin: true @@ -9651,13 +9639,13 @@ packages: execa: 5.1.1 globby: 11.1.0 joycon: 3.1.1 - postcss-load-config: 4.0.2_ts-node@10.9.1 + postcss-load-config: 4.0.2_ts-node@10.9.2 resolve-from: 5.0.0 rollup: 3.29.4 source-map: 0.8.0-beta.0 - sucrase: 3.34.0 + sucrase: 3.35.0 tree-kill: 1.2.2 - typescript: 5.3.2 + typescript: 5.3.3 transitivePeerDependencies: - supports-color - ts-node @@ -9851,8 +9839,8 @@ packages: engines: {node: '>=14.17'} hasBin: true - /typescript/5.3.2: - resolution: {integrity: sha512-6l+RyNy7oAHDfxC4FzSJcz9vnjTKxrLpDG5M2Vu4SHRVNg6xzqZp6LYSR9zjqQTu8DU/f5xwxUdADOkbrIX2gQ==} + /typescript/5.3.3: + resolution: {integrity: sha512-pXWcraxM0uxAS+tN0AG/BF2TyqmHO014Z070UsJ+pFvYuRSq8KH8DmWpnbXe0pEPDHXZV3FcAbJkijJ5oNEnWw==} engines: {node: '>=14.17'} hasBin: true @@ -10059,54 +10047,56 @@ packages: extsprintf: 1.3.0 dev: false - /viem/1.19.11_typescript@5.1.6: - resolution: {integrity: sha512-dbsXEWDBZkByuzJXAs/e01j7dpUJ5ICF5WcyntFwf8Y97n5vnC/91lAleSa6DA5V4WJvYZbhDpYeTctsMAQnhA==} + /viem/1.2.15_typescript@5.1.6: + resolution: {integrity: sha512-M67YS3WQC/3vx12TvYxt9dlxqHjgXIwblyUdy7E6cZ2MNtyoSvq9HgkacfY0+SDZAbisVsUX8mi9Lb1bB5pUAQ==} peerDependencies: typescript: '>=5.0.4' peerDependenciesMeta: typescript: optional: true dependencies: - '@adraffy/ens-normalize': 1.10.0 - '@noble/curves': 1.2.0 - '@noble/hashes': 1.3.2 - '@scure/bip32': 1.3.2 - '@scure/bip39': 1.2.1 - abitype: 0.9.8_typescript@5.1.6 - isows: 1.0.3_ws@8.13.0 + '@adraffy/ens-normalize': 1.9.0 + '@noble/curves': 1.0.0 + '@noble/hashes': 1.3.0 + '@scure/bip32': 1.3.0 + '@scure/bip39': 1.2.0 + '@wagmi/chains': 1.2.0_typescript@5.1.6 + abitype: 0.8.11_typescript@5.1.6 + isomorphic-ws: 5.0.0_ws@8.12.0 typescript: 5.1.6 - ws: 8.13.0 + ws: 8.12.0 transitivePeerDependencies: - bufferutil - utf-8-validate - zod dev: false - /viem/1.19.11_typescript@5.3.2: - resolution: {integrity: sha512-dbsXEWDBZkByuzJXAs/e01j7dpUJ5ICF5WcyntFwf8Y97n5vnC/91lAleSa6DA5V4WJvYZbhDpYeTctsMAQnhA==} + /viem/1.2.15_typescript@5.3.3: + resolution: {integrity: sha512-M67YS3WQC/3vx12TvYxt9dlxqHjgXIwblyUdy7E6cZ2MNtyoSvq9HgkacfY0+SDZAbisVsUX8mi9Lb1bB5pUAQ==} peerDependencies: typescript: '>=5.0.4' peerDependenciesMeta: typescript: optional: true dependencies: - '@adraffy/ens-normalize': 1.10.0 - '@noble/curves': 1.2.0 - '@noble/hashes': 1.3.2 - '@scure/bip32': 1.3.2 - '@scure/bip39': 1.2.1 - abitype: 0.9.8_typescript@5.3.2 - isows: 1.0.3_ws@8.13.0 - typescript: 5.3.2 - ws: 8.13.0 + '@adraffy/ens-normalize': 1.9.0 + '@noble/curves': 1.0.0 + '@noble/hashes': 1.3.0 + '@scure/bip32': 1.3.0 + '@scure/bip39': 1.2.0 + '@wagmi/chains': 1.2.0_typescript@5.3.3 + abitype: 0.8.11_typescript@5.3.3 + isomorphic-ws: 5.0.0_ws@8.12.0 + typescript: 5.3.3 + ws: 8.12.0 transitivePeerDependencies: - bufferutil - utf-8-validate - zod dev: false - /viem/1.19.11_yyjojsl4j5v7ktoyxwpuy5bxbu: - resolution: {integrity: sha512-dbsXEWDBZkByuzJXAs/e01j7dpUJ5ICF5WcyntFwf8Y97n5vnC/91lAleSa6DA5V4WJvYZbhDpYeTctsMAQnhA==} + /viem/1.21.0_ophst5sms6obxk2veobtcst52a: + resolution: {integrity: sha512-d5CSflyvoQYT8aeAANX0x7DLuW/GEBs5lh3pZRbNIxTdb/XNLHiEcuB8I262oqAgxfBTA+94kry9ISzAsHKFhA==} peerDependencies: typescript: '>=5.0.4' peerDependenciesMeta: @@ -10118,9 +10108,9 @@ packages: '@noble/hashes': 1.3.2 '@scure/bip32': 1.3.2 '@scure/bip39': 1.2.1 - abitype: 0.9.8_yyjojsl4j5v7ktoyxwpuy5bxbu + abitype: 0.9.8_ophst5sms6obxk2veobtcst52a isows: 1.0.3_ws@8.13.0 - typescript: 5.3.2 + typescript: 5.3.3 ws: 8.13.0 transitivePeerDependencies: - bufferutil @@ -10128,48 +10118,46 @@ packages: - zod dev: false - /viem/1.2.15_typescript@5.1.6: - resolution: {integrity: sha512-M67YS3WQC/3vx12TvYxt9dlxqHjgXIwblyUdy7E6cZ2MNtyoSvq9HgkacfY0+SDZAbisVsUX8mi9Lb1bB5pUAQ==} + /viem/1.21.0_typescript@5.1.6: + resolution: {integrity: sha512-d5CSflyvoQYT8aeAANX0x7DLuW/GEBs5lh3pZRbNIxTdb/XNLHiEcuB8I262oqAgxfBTA+94kry9ISzAsHKFhA==} peerDependencies: typescript: '>=5.0.4' peerDependenciesMeta: typescript: optional: true dependencies: - '@adraffy/ens-normalize': 1.9.0 - '@noble/curves': 1.0.0 - '@noble/hashes': 1.3.0 - '@scure/bip32': 1.3.0 - '@scure/bip39': 1.2.0 - '@wagmi/chains': 1.2.0_typescript@5.1.6 - abitype: 0.8.11_typescript@5.1.6 - isomorphic-ws: 5.0.0_ws@8.12.0 + '@adraffy/ens-normalize': 1.10.0 + '@noble/curves': 1.2.0 + '@noble/hashes': 1.3.2 + '@scure/bip32': 1.3.2 + '@scure/bip39': 1.2.1 + abitype: 0.9.8_typescript@5.1.6 + isows: 1.0.3_ws@8.13.0 typescript: 5.1.6 - ws: 8.12.0 + ws: 8.13.0 transitivePeerDependencies: - bufferutil - utf-8-validate - zod dev: false - /viem/1.2.15_typescript@5.3.2: - resolution: {integrity: sha512-M67YS3WQC/3vx12TvYxt9dlxqHjgXIwblyUdy7E6cZ2MNtyoSvq9HgkacfY0+SDZAbisVsUX8mi9Lb1bB5pUAQ==} + /viem/1.21.0_typescript@5.3.3: + resolution: {integrity: sha512-d5CSflyvoQYT8aeAANX0x7DLuW/GEBs5lh3pZRbNIxTdb/XNLHiEcuB8I262oqAgxfBTA+94kry9ISzAsHKFhA==} peerDependencies: typescript: '>=5.0.4' peerDependenciesMeta: typescript: optional: true dependencies: - '@adraffy/ens-normalize': 1.9.0 - '@noble/curves': 1.0.0 - '@noble/hashes': 1.3.0 - '@scure/bip32': 1.3.0 - '@scure/bip39': 1.2.0 - '@wagmi/chains': 1.2.0_typescript@5.3.2 - abitype: 0.8.11_typescript@5.3.2 - isomorphic-ws: 5.0.0_ws@8.12.0 - typescript: 5.3.2 - ws: 8.12.0 + '@adraffy/ens-normalize': 1.10.0 + '@noble/curves': 1.2.0 + '@noble/hashes': 1.3.2 + '@scure/bip32': 1.3.2 + '@scure/bip39': 1.2.1 + abitype: 0.9.8_typescript@5.3.3 + isows: 1.0.3_ws@8.13.0 + typescript: 5.3.3 + ws: 8.13.0 transitivePeerDependencies: - bufferutil - utf-8-validate @@ -10201,7 +10189,7 @@ packages: - zod dev: false - /vite-node/0.30.1_@types+node@20.10.3: + /vite-node/0.30.1_@types+node@20.10.5: resolution: {integrity: sha512-vTikpU/J7e6LU/8iM3dzBo8ZhEiKZEKRznEMm+mJh95XhWaPrJQraT/QsT2NWmuEf+zgAoMe64PKT7hfZ1Njmg==} engines: {node: '>=v14.18.0'} hasBin: true @@ -10211,7 +10199,7 @@ packages: mlly: 1.4.2 pathe: 1.1.1 picocolors: 1.0.0 - vite: 4.5.1_@types+node@20.10.3 + vite: 4.5.1_@types+node@20.10.5 transitivePeerDependencies: - '@types/node' - less @@ -10245,7 +10233,7 @@ packages: - terser dev: true - /vite/4.5.1_@types+node@20.10.3: + /vite/4.5.1_@types+node@20.10.5: resolution: {integrity: sha512-AXXFaAJ8yebyqzoNB9fu2pHoo/nWX+xZlaRwoeYUxEqBO+Zj4msE5G+BhGBll9lYEKv9Hfks52PAF2X7qDYXQA==} engines: {node: ^14.18.0 || >=16.0.0} hasBin: true @@ -10273,7 +10261,7 @@ packages: terser: optional: true dependencies: - '@types/node': 20.10.3 + '@types/node': 20.10.5 esbuild: 0.18.20 postcss: 8.4.32 rollup: 3.29.4 @@ -10350,14 +10338,14 @@ packages: dependencies: '@types/chai': 4.3.11 '@types/chai-subset': 1.3.5 - '@types/node': 20.10.3 + '@types/node': 20.10.5 '@vitest/expect': 0.30.1 '@vitest/runner': 0.30.1 '@vitest/snapshot': 0.30.1 '@vitest/spy': 0.30.1 '@vitest/utils': 0.30.1 acorn: 8.11.2 - acorn-walk: 8.3.0 + acorn-walk: 8.3.1 cac: 6.7.14 chai: 4.3.10 concordance: 5.0.4 @@ -10367,12 +10355,12 @@ packages: pathe: 1.1.1 picocolors: 1.0.0 source-map: 0.6.1 - std-env: 3.6.0 + std-env: 3.7.0 strip-literal: 1.3.0 tinybench: 2.5.1 tinypool: 0.4.0 - vite: 4.5.1_@types+node@20.10.3 - vite-node: 0.30.1_@types+node@20.10.3 + vite: 4.5.1_@types+node@20.10.5 + vite-node: 0.30.1_@types+node@20.10.5 why-is-node-running: 2.2.2 transitivePeerDependencies: - less @@ -10424,7 +10412,7 @@ packages: '@vitest/spy': 0.33.0 '@vitest/utils': 0.33.0 acorn: 8.11.2 - acorn-walk: 8.3.0 + acorn-walk: 8.3.1 cac: 6.7.14 chai: 4.3.10 debug: 4.3.4 @@ -10432,7 +10420,7 @@ packages: magic-string: 0.30.5 pathe: 1.1.1 picocolors: 1.0.0 - std-env: 3.6.0 + std-env: 3.7.0 strip-literal: 1.3.0 tinybench: 2.5.1 tinypool: 0.6.0 @@ -11031,8 +11019,8 @@ packages: engines: {node: '>=6'} dev: false - /whatwg-fetch/3.6.19: - resolution: {integrity: sha512-d67JP4dHSbm2TrpFj8AbO8DnL1JXL5J9u0Kq2xW6d0TFDbCA3Muhdt8orXC22utleTVj7Prqt82baN6RBvnEgw==} + /whatwg-fetch/3.6.20: + resolution: {integrity: sha512-EqhiFU6daOA8kpjOWTL0olhVOF3i7OrFzSYiGsEMB8GcXS+RrzauAERX65xMeNWVqxA6HXH2m69Z9LaKKdisfg==} dev: false /whatwg-url/5.0.0: @@ -11117,7 +11105,7 @@ packages: /wide-align/1.1.5: resolution: {integrity: sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg==} dependencies: - string-width: 4.2.3 + string-width: 1.0.2 dev: false optional: true From 758da11347a28ff6543653d3eb72af8d41e283f4 Mon Sep 17 00:00:00 2001 From: Mmackz Date: Tue, 26 Dec 2023 10:56:17 -0800 Subject: [PATCH 03/17] test(connext): add tests for any token --- packages/connext/src/test-transactions.ts | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/packages/connext/src/test-transactions.ts b/packages/connext/src/test-transactions.ts index 593fdef1f..5a39e5e54 100644 --- a/packages/connext/src/test-transactions.ts +++ b/packages/connext/src/test-transactions.ts @@ -63,5 +63,17 @@ export const ETH_OP_ARBITRUM: TestParams = { export const passingTestCases = [ createTestCase(DAI_OP_GNOSIS, 'when bridging tokens'), createTestCase(ETH_OP_POLYGON, 'when bridging ETH'), - createTestCase(ETH_OP_ARBITRUM, 'when bridging ETH to arbitrum') + createTestCase(ETH_OP_ARBITRUM, 'when bridging ETH to arbitrum'), + createTestCase(DAI_OP_GNOSIS, 'when bridging tokens', { + tokenAddress: undefined, + amount: undefined, + }), + createTestCase(ETH_OP_POLYGON, 'when bridging ETH', { + tokenAddress: undefined, + amount: undefined, + }), + createTestCase(ETH_OP_ARBITRUM, 'when bridging ETH to arbitrum', { + tokenAddress: undefined, + amount: undefined, + }), ] From 2f43abdb96c4d2780dcec4119df866dc66a52620 Mon Sep 17 00:00:00 2001 From: Mmackz Date: Tue, 26 Dec 2023 10:57:20 -0800 Subject: [PATCH 04/17] docs(connext): add readme --- packages/connext/src/README.md | 6 ++++++ 1 file changed, 6 insertions(+) create mode 100644 packages/connext/src/README.md diff --git a/packages/connext/src/README.md b/packages/connext/src/README.md new file mode 100644 index 000000000..6d85fd8ca --- /dev/null +++ b/packages/connext/src/README.md @@ -0,0 +1,6 @@ + +Connext uses a MultiSend to wrap when briding ETH. +https://github.com/connext/monorepo/issues/2905 +https://github.com/connext/monorepo/issues/4218 +Contract addresses: https://github.com/search?q=repo%3Aconnext%2Fmonorepo%20MultiSend.json&type=code + From eadd0d4c9be2c4aa70c72ca9334af6b5b85ae91a Mon Sep 17 00:00:00 2001 From: Mmackz Date: Tue, 26 Dec 2023 10:57:50 -0800 Subject: [PATCH 05/17] refactor(connext): remove getAddress calls --- packages/connext/src/test-transactions.ts | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/packages/connext/src/test-transactions.ts b/packages/connext/src/test-transactions.ts index 5a39e5e54..8a4f89b2e 100644 --- a/packages/connext/src/test-transactions.ts +++ b/packages/connext/src/test-transactions.ts @@ -1,7 +1,7 @@ import type { BridgeActionParams } from '@rabbitholegg/questdk' import { GreaterThanOrEqual } from '@rabbitholegg/questdk' import { createTestCase, type TestParams } from './utils' -import { getAddress, parseEther, zeroAddress } from 'viem' +import { parseEther, zeroAddress } from 'viem' export const DAI_OP_GNOSIS: TestParams = { transaction: { @@ -25,8 +25,8 @@ export const DAI_OP_GNOSIS: TestParams = { export const ETH_OP_POLYGON: TestParams = { transaction: { chainId: 10, - to: getAddress('0xb0eef3e1de973d045c3858e072c540299585252d'), - from: getAddress('0xa4c8bb4658bc44bac430699c8b7b13dab28e0f4e'), + to: '0xb0eef3e1de973d045c3858e072c540299585252d', + from: '0xa4c8bb4658bc44bac430699c8b7b13dab28e0f4e', hash: '0xb8e2c0baf137b64553c91f286bde62cc37275d0b9f9d3e6c0041c6be79de45af', input: '0x8d80ff0a0000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000026b004200000000000000000000000000000000000006000000000000000000000000000000000000000000000000008af8a1fa5fcc180000000000000000000000000000000000000000000000000000000000000004d0e30db000420000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000044095ea7b30000000000000000000000008f7492de823025b4cfaab1d34c58963f2af5deda000000000000000000000000000000000000000000000000008af8a1fa5fcc18008f7492de823025b4cfaab1d34c58963f2af5deda0000000000000000000000000000000000000000000000000026aa1a3465338400000000000000000000000000000000000000000000000000000000000001248aac16ba0000000000000000000000000000000000000000000000000000000000657468000000000000000000000000268682b7d9992ae7e2ca4a8bcc9d9655fb06056f0000000000000000000000004200000000000000000000000000000000000006000000000000000000000000a4c8bb4658bc44bac430699c8b7b13dab28e0f4e000000000000000000000000000000000000000000000000008af8a1fa5fcc18000000000000000000000000000000000000000000000000000000000000012c00000000000000000000000000000000000000000000000000000000000000e00000000000000000000000000000000000000000000000000000000000000020000000000000000000000000a4c8bb4658bc44bac430699c8b7b13dab28e0f4e000000000000000000000000000000000000000000', @@ -44,8 +44,8 @@ export const ETH_OP_POLYGON: TestParams = { export const ETH_OP_ARBITRUM: TestParams = { transaction: { chainId: 10, - to: getAddress('0xb0eef3e1de973d045c3858e072c540299585252d'), - from: getAddress('0x9333f2d9861e367dbf6072bcd55325cc133c6d86'), + to: '0xb0eef3e1de973d045c3858e072c540299585252d', + from: '0x9333f2d9861e367dbf6072bcd55325cc133c6d86', hash: '0x00b92f23522b23648f0bb05529a728dcca55b1cc08347d68bae50c24977621ed', input: '0x8d80ff0a0000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000026b00420000000000000000000000000000000000000600000000000000000000000000000000000000000000000000003258eb8854cd0000000000000000000000000000000000000000000000000000000000000004d0e30db000420000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000044095ea7b30000000000000000000000008f7492de823025b4cfaab1d34c58963f2af5deda00000000000000000000000000000000000000000000000000003258eb8854cd008f7492de823025b4cfaab1d34c58963f2af5deda0000000000000000000000000000000000000000000000000000ba1f0c1beadc00000000000000000000000000000000000000000000000000000000000001248aac16ba000000000000000000000000000000000000000000000000000000006172626f000000000000000000000000429b9eb01362b2799131efcc44319689b662999d00000000000000000000000042000000000000000000000000000000000000060000000000000000000000009333f2d9861e367dbf6072bcd55325cc133c6d8600000000000000000000000000000000000000000000000000003258eb8854cd000000000000000000000000000000000000000000000000000000000000012c00000000000000000000000000000000000000000000000000000000000000e000000000000000000000000000000000000000000000000000000000000000200000000000000000000000009333f2d9861e367dbf6072bcd55325cc133c6d86000000000000000000000000000000000000000000', From abfee07be596969ef0e288822cf87465bea278c5 Mon Sep 17 00:00:00 2001 From: Mmackz Date: Tue, 26 Dec 2023 10:58:25 -0800 Subject: [PATCH 06/17] feat(connext): combine xCall and multisend filters --- packages/connext/src/Connext.ts | 55 ++++++++++++++------------------- 1 file changed, 23 insertions(+), 32 deletions(-) diff --git a/packages/connext/src/Connext.ts b/packages/connext/src/Connext.ts index 58a695e28..b78c0c2a2 100644 --- a/packages/connext/src/Connext.ts +++ b/packages/connext/src/Connext.ts @@ -34,53 +34,44 @@ export const bridge = async ( const { sourceChainId, destinationChainId, - contractAddress, tokenAddress, amount, recipient, } = bridge - const defaultContractAddress = ConnextContract[sourceChainId] + const xcallContractAddress = ConnextContract[sourceChainId] const destinationDomain = destinationChainId ? chainIdToDomain(destinationChainId) : undefined - const requiresWrapperMultisend = tokenAddress === ETH_TOKEN_ADDRESS + const multiSendContractAddress = getDeployedMultisendContract(sourceChainId)?.address + const ethUsedIn = tokenAddress === ETH_TOKEN_ADDRESS - /* - Connext uses a MultiSend to wrap when briding ETH. - https://github.com/connext/monorepo/issues/2905 - https://github.com/connext/monorepo/issues/4218 - Contract addresses: https://github.com/search?q=repo%3Aconnext%2Fmonorepo%20MultiSend.json&type=code - */ - - if (requiresWrapperMultisend) { - const multiSendContract = getDeployedMultisendContract(sourceChainId) - - if (!multiSendContract) { - throw new Error( - `No multisend contract deployed on chain ${sourceChainId}`, - ) - } + if (!xcallContractAddress) { + throw new Error(`No xcall contract deployed on chain ${sourceChainId}`) + } - return compressJson({ - chainId: sourceChainId, - to: multiSendContract.address, - value: amount, - input: { - $abi: MultisendAbi, - }, - }) + if (!multiSendContractAddress) { + throw new Error(`No multisend contract deployed on chain ${sourceChainId}`) } return compressJson({ chainId: sourceChainId, - to: contractAddress || defaultContractAddress, + to: { + $or: [xcallContractAddress.toLowerCase(), multiSendContractAddress.toLowerCase()] + }, + value: ethUsedIn ? amount : undefined, input: { - $abi: XCALL_ABI_FRAGMENTS, - _destination: destinationDomain ? Number(destinationDomain) : undefined, - _asset: tokenAddress, - _amount: amount, - _delegate: recipient, + $or: [ + { $abi: MultisendAbi }, + { + $abi: XCALL_ABI_FRAGMENTS, + _destination: destinationDomain ? Number(destinationDomain) : undefined, + _asset: tokenAddress, + _amount: amount, + _delegate: recipient, + } + ] + }, }) } From b4f6c7cd5d9e7483db85d5bcad88af3f4dc911b6 Mon Sep 17 00:00:00 2001 From: Mmackz Date: Tue, 26 Dec 2023 11:36:23 -0800 Subject: [PATCH 07/17] test(connext): add failing testcases --- packages/connext/src/test-transactions.ts | 27 ++++++++++++++++++++++- 1 file changed, 26 insertions(+), 1 deletion(-) diff --git a/packages/connext/src/test-transactions.ts b/packages/connext/src/test-transactions.ts index 8a4f89b2e..bf88e00ff 100644 --- a/packages/connext/src/test-transactions.ts +++ b/packages/connext/src/test-transactions.ts @@ -1,7 +1,7 @@ import type { BridgeActionParams } from '@rabbitholegg/questdk' import { GreaterThanOrEqual } from '@rabbitholegg/questdk' import { createTestCase, type TestParams } from './utils' -import { parseEther, zeroAddress } from 'viem' +import { parseEther, parseUnits, zeroAddress } from 'viem' export const DAI_OP_GNOSIS: TestParams = { transaction: { @@ -77,3 +77,28 @@ export const passingTestCases = [ amount: undefined, }), ] + +export const failingTestCases = [ + createTestCase(DAI_OP_GNOSIS, 'when sourceChainId is not correct', { + sourceChainId: 42161, + }), + createTestCase(DAI_OP_GNOSIS, 'when destinationChainId is not correct', { + destinationChainId: 42161, + }), + createTestCase(DAI_OP_GNOSIS, 'when tokenAddress is not correct', { + tokenAddress: '0x7F5c764cBc14f9669B88837ca1490cCa17c31607', + }), + createTestCase( + ETH_OP_POLYGON, + 'when bridging ETH and amount is insufficient', + { amount: GreaterThanOrEqual(parseEther('1000')) }, + ), + createTestCase( + DAI_OP_GNOSIS, + 'when bridging tokens and amount is insufficient', + { amount: GreaterThanOrEqual(parseUnits('10000', 18)) }, + ), + createTestCase(ETH_OP_ARBITRUM, 'when recipient is not correct', { + recipient: '0xa4c8bb4658bc44bac430699c8b7b13dab28e0f4e', + }), +] From d339d29a5a68ca3c413ab900790e80b2640f721f Mon Sep 17 00:00:00 2001 From: Mmackz Date: Tue, 26 Dec 2023 11:36:40 -0800 Subject: [PATCH 08/17] test(connext): add failing test cases --- packages/connext/src/Connext.test.ts | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/packages/connext/src/Connext.test.ts b/packages/connext/src/Connext.test.ts index 9121490cb..eb7d1eab6 100644 --- a/packages/connext/src/Connext.test.ts +++ b/packages/connext/src/Connext.test.ts @@ -4,7 +4,7 @@ import { GreaterThanOrEqual, apply } from '@rabbitholegg/questdk/filter' import { describe, expect, test } from 'vitest' import { bridge } from './Connext.js' import { XCALL_ABI_FRAGMENTS } from './abi.js' -import { passingTestCases } from './test-transactions.js' +import { passingTestCases, failingTestCases } from './test-transactions.js' import { zeroAddress as ETH } from 'viem' describe('Connext', () => { @@ -64,5 +64,13 @@ describe('Connext', () => { expect(apply(transaction, filter)).to.be.true }) }) + + failingTestCases.forEach((testCase) => { + const { transaction, description, params } = testCase + test(description, async () => { + const filter = await bridge(params) + expect(apply(transaction, filter)).to.be.false + }) + }) }) }) From 967adfa3497ae78526ac9c5ecf2acd82034e8481 Mon Sep 17 00:00:00 2001 From: Mmackz Date: Tue, 26 Dec 2023 11:36:56 -0800 Subject: [PATCH 09/17] chore(pnpm): format --- packages/connext/src/Connext.ts | 31 +++++++++++++++++-------------- 1 file changed, 17 insertions(+), 14 deletions(-) diff --git a/packages/connext/src/Connext.ts b/packages/connext/src/Connext.ts index b78c0c2a2..15fd92176 100644 --- a/packages/connext/src/Connext.ts +++ b/packages/connext/src/Connext.ts @@ -31,19 +31,15 @@ const _getChainData = async () => { export const bridge = async ( bridge: BridgeActionParams, ): Promise => { - const { - sourceChainId, - destinationChainId, - tokenAddress, - amount, - recipient, - } = bridge + const { sourceChainId, destinationChainId, tokenAddress, amount, recipient } = + bridge const xcallContractAddress = ConnextContract[sourceChainId] const destinationDomain = destinationChainId ? chainIdToDomain(destinationChainId) : undefined - const multiSendContractAddress = getDeployedMultisendContract(sourceChainId)?.address + const multiSendContractAddress = + getDeployedMultisendContract(sourceChainId)?.address const ethUsedIn = tokenAddress === ETH_TOKEN_ADDRESS if (!xcallContractAddress) { @@ -57,21 +53,28 @@ export const bridge = async ( return compressJson({ chainId: sourceChainId, to: { - $or: [xcallContractAddress.toLowerCase(), multiSendContractAddress.toLowerCase()] + $or: [ + xcallContractAddress.toLowerCase(), + multiSendContractAddress.toLowerCase(), + ], }, + from: recipient, value: ethUsedIn ? amount : undefined, input: { $or: [ - { $abi: MultisendAbi }, + { + $abi: MultisendAbi, + }, { $abi: XCALL_ABI_FRAGMENTS, - _destination: destinationDomain ? Number(destinationDomain) : undefined, + _destination: destinationDomain + ? Number(destinationDomain) + : undefined, _asset: tokenAddress, _amount: amount, _delegate: recipient, - } - ] - + }, + ], }, }) } From dd7a0dab7959d4c301f93b382e95e9057baa4df4 Mon Sep 17 00:00:00 2001 From: Mmackz Date: Tue, 26 Dec 2023 11:46:42 -0800 Subject: [PATCH 10/17] feat(connext): add recipient to mulitisend route --- packages/connext/src/Connext.ts | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/packages/connext/src/Connext.ts b/packages/connext/src/Connext.ts index 15fd92176..084746b09 100644 --- a/packages/connext/src/Connext.ts +++ b/packages/connext/src/Connext.ts @@ -11,7 +11,7 @@ import { type TransactionFilter, compressJson, } from '@rabbitholegg/questdk' -import { type Address, zeroAddress } from 'viem' +import { type Address, zeroAddress, getAddress } from 'viem' import { XCALL_ABI_FRAGMENTS } from './abi.js' import { ConnextContract } from './contract-addresses.js' @@ -64,6 +64,9 @@ export const bridge = async ( $or: [ { $abi: MultisendAbi, + transactions: { + $regex: recipient?.toLowerCase().slice(2), + }, }, { $abi: XCALL_ABI_FRAGMENTS, From 1bf0bcb1d1a19aff8a7c9bd9ceb6253e48249880 Mon Sep 17 00:00:00 2001 From: Mmackz Date: Tue, 26 Dec 2023 11:47:11 -0800 Subject: [PATCH 11/17] chore(pnpm): format --- packages/connext/src/Connext.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/connext/src/Connext.ts b/packages/connext/src/Connext.ts index 084746b09..a23945e14 100644 --- a/packages/connext/src/Connext.ts +++ b/packages/connext/src/Connext.ts @@ -11,7 +11,7 @@ import { type TransactionFilter, compressJson, } from '@rabbitholegg/questdk' -import { type Address, zeroAddress, getAddress } from 'viem' +import { type Address, zeroAddress } from 'viem' import { XCALL_ABI_FRAGMENTS } from './abi.js' import { ConnextContract } from './contract-addresses.js' From 43d47d62319e351f903635aa8ed8ffd9d1a71333 Mon Sep 17 00:00:00 2001 From: Mmackz Date: Tue, 26 Dec 2023 12:05:31 -0800 Subject: [PATCH 12/17] test(connext): add valid filter test --- packages/connext/src/Connext.test.ts | 128 ++++++++++++++------------- 1 file changed, 68 insertions(+), 60 deletions(-) diff --git a/packages/connext/src/Connext.test.ts b/packages/connext/src/Connext.test.ts index eb7d1eab6..ae1df9ca2 100644 --- a/packages/connext/src/Connext.test.ts +++ b/packages/connext/src/Connext.test.ts @@ -1,76 +1,84 @@ -import { getDeployedMultisendContract } from '@connext/nxtp-txservice' -import { MultisendAbi } from '@connext/nxtp-utils' -import { GreaterThanOrEqual, apply } from '@rabbitholegg/questdk/filter' +import { apply } from '@rabbitholegg/questdk/filter' import { describe, expect, test } from 'vitest' import { bridge } from './Connext.js' +import { MultisendAbi } from '@connext/nxtp-utils' import { XCALL_ABI_FRAGMENTS } from './abi.js' import { passingTestCases, failingTestCases } from './test-transactions.js' -import { zeroAddress as ETH } from 'viem' - -describe('Connext', () => { - describe('Bridge', () => { - const USDC = '0x7F5c764cBc14f9669B88837ca1490cCa17c31607' - - test('should return a valid bridge action filter', async () => { - const filter = await bridge({ - sourceChainId: 10, - destinationChainId: 137, - tokenAddress: USDC, - amount: GreaterThanOrEqual(100000n), - }) - expect(filter).to.deep.equal({ - chainId: 10, - to: '0x8f7492DE823025b4CfaAB1D34c58963F2af5DEDA', - input: { - $abi: XCALL_ABI_FRAGMENTS, - _destination: 1886350457, - _asset: '0x7F5c764cBc14f9669B88837ca1490cCa17c31607', - _amount: { - $gte: '100000', +describe('Given the Connext plugin', () => { + describe('When handling the bridge action', () => { + describe('should return a valid action filter', () => { + test('when doing a valid bridge action', async () => { + const { params } = passingTestCases[0] + const filter = await bridge(params) + expect(filter).to.deep.equal({ + chainId: 10, + to: { + $or: [ + '0x8f7492de823025b4cfaab1d34c58963f2af5deda', + '0xb0eef3e1de973d045c3858e072c540299585252d', + ], + }, + from: '0xd59a74e615c9d55422ed8c5ce64cb50fda0bb58d', + input: { + $or: [ + { + $abi: MultisendAbi, + transactions: { + $regex: 'd59a74e615c9d55422ed8c5ce64cb50fda0bb58d', + }, + }, + { + $abi: XCALL_ABI_FRAGMENTS, + _destination: 6778479, + _asset: '0xDA10009cBd5D07dd0CeCc66161FC93D7c9000da1', + _amount: { + $gte: '2000000000000000000', + }, + _delegate: '0xd59a74e615c9d55422ed8c5ce64cb50fda0bb58d', + }, + ], }, - }, + }) }) }) - }) - test('should use the WETH wrapper multisend contract when bridging ETH', async () => { - const filter = await bridge({ - sourceChainId: 10, - destinationChainId: 137, - tokenAddress: ETH, - amount: GreaterThanOrEqual(100000n), - }) - - const multiSendContract = getDeployedMultisendContract(10) - - expect(filter).to.deep.equal({ - chainId: 10, - to: multiSendContract?.address, - value: { - $gte: '100000', - }, - input: { - $abi: MultisendAbi, - }, - }) - }) - - describe('Apply filter', () => { - passingTestCases.forEach((testCase) => { - const { transaction, description, params } = testCase - test(description, async () => { - const filter = await bridge(params) - expect(apply(transaction, filter)).to.be.true + describe('should pass filter with valid transactions', () => { + passingTestCases.forEach((testCase) => { + const { transaction, description, params } = testCase + test(description, async () => { + const filter = await bridge(params) + expect(apply(transaction, filter)).to.be.true + }) }) }) - failingTestCases.forEach((testCase) => { - const { transaction, description, params } = testCase - test(description, async () => { - const filter = await bridge(params) - expect(apply(transaction, filter)).to.be.false + describe('should not pass filter with invalid transactions', () => { + failingTestCases.forEach((testCase) => { + const { transaction, description, params } = testCase + test(description, async () => { + const filter = await bridge(params) + expect(apply(transaction, filter)).to.be.false + }) }) }) + + // describe('should return a valid list of tokens for each supported chain', () => { + // CHAIN_ID_ARRAY.forEach((chainId) => { + // test(`for chainId: ${chainId}`, async () => { + // const tokens = await getSupportedTokenAddresses(chainId) + // const addressRegex = /^0x[a-fA-F0-9]{40}$/ + // expect(tokens).to.be.an('array') + // expect(tokens).to.have.length.greaterThan(0) + // expect(tokens).to.have.length.lessThan(100) + // tokens.forEach((token) => { + // expect(token).to.match( + // addressRegex, + // `Token address ${token} is not a valid Ethereum address`, + // ) + // }) + // }) + // }) + // }) }) }) From b899e206f541881c0ed71dbc61ffcab738937f46 Mon Sep 17 00:00:00 2001 From: Mmackz Date: Tue, 26 Dec 2023 12:08:32 -0800 Subject: [PATCH 13/17] test(connext): test valid token lost is returned for each chain --- packages/connext/src/Connext.test.ts | 38 +++++++++++++++------------- 1 file changed, 20 insertions(+), 18 deletions(-) diff --git a/packages/connext/src/Connext.test.ts b/packages/connext/src/Connext.test.ts index ae1df9ca2..e79beef86 100644 --- a/packages/connext/src/Connext.test.ts +++ b/packages/connext/src/Connext.test.ts @@ -1,6 +1,6 @@ import { apply } from '@rabbitholegg/questdk/filter' import { describe, expect, test } from 'vitest' -import { bridge } from './Connext.js' +import { bridge, getSupportedChainIds, getSupportedTokenAddresses } from './Connext.js' import { MultisendAbi } from '@connext/nxtp-utils' import { XCALL_ABI_FRAGMENTS } from './abi.js' import { passingTestCases, failingTestCases } from './test-transactions.js' @@ -63,22 +63,24 @@ describe('Given the Connext plugin', () => { }) }) - // describe('should return a valid list of tokens for each supported chain', () => { - // CHAIN_ID_ARRAY.forEach((chainId) => { - // test(`for chainId: ${chainId}`, async () => { - // const tokens = await getSupportedTokenAddresses(chainId) - // const addressRegex = /^0x[a-fA-F0-9]{40}$/ - // expect(tokens).to.be.an('array') - // expect(tokens).to.have.length.greaterThan(0) - // expect(tokens).to.have.length.lessThan(100) - // tokens.forEach((token) => { - // expect(token).to.match( - // addressRegex, - // `Token address ${token} is not a valid Ethereum address`, - // ) - // }) - // }) - // }) - // }) + describe('should return a valid list of tokens for each supported chain', async () => { + const chainIdArray = await getSupportedChainIds() + chainIdArray.forEach((chainId) => { + test(`for chainId: ${chainId}`, async () => { + const tokens = await getSupportedTokenAddresses(chainId) + const addressRegex = /^0x[a-fA-F0-9]{40}$/ + expect(tokens).to.be.an('array') + expect(tokens).to.have.length.greaterThan(0) + expect(tokens).to.have.length.lessThan(100) + tokens.forEach((token) => { + console.log(token) + expect(token).to.match( + addressRegex, + `Token address ${token} is not a valid Ethereum address`, + ) + }) + }) + }) + }) }) }) From 43507fd3a3340f8f555e775b42fef7c8512a66cb Mon Sep 17 00:00:00 2001 From: Mmackz Date: Tue, 26 Dec 2023 13:56:44 -0800 Subject: [PATCH 14/17] chore(pnpm): format --- packages/connext/src/Connext.test.ts | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/packages/connext/src/Connext.test.ts b/packages/connext/src/Connext.test.ts index e79beef86..eaefde368 100644 --- a/packages/connext/src/Connext.test.ts +++ b/packages/connext/src/Connext.test.ts @@ -1,6 +1,10 @@ import { apply } from '@rabbitholegg/questdk/filter' import { describe, expect, test } from 'vitest' -import { bridge, getSupportedChainIds, getSupportedTokenAddresses } from './Connext.js' +import { + bridge, + getSupportedChainIds, + getSupportedTokenAddresses, +} from './Connext.js' import { MultisendAbi } from '@connext/nxtp-utils' import { XCALL_ABI_FRAGMENTS } from './abi.js' import { passingTestCases, failingTestCases } from './test-transactions.js' @@ -73,7 +77,6 @@ describe('Given the Connext plugin', () => { expect(tokens).to.have.length.greaterThan(0) expect(tokens).to.have.length.lessThan(100) tokens.forEach((token) => { - console.log(token) expect(token).to.match( addressRegex, `Token address ${token} is not a valid Ethereum address`, From 81942f38c4ce1234a68a8e19bacc6de8ffd1ed46 Mon Sep 17 00:00:00 2001 From: Mmackz Date: Tue, 26 Dec 2023 13:58:03 -0800 Subject: [PATCH 15/17] chore(pnpm): generate changes for connext fix --- .changeset/shaggy-lamps-leave.md | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 .changeset/shaggy-lamps-leave.md diff --git a/.changeset/shaggy-lamps-leave.md b/.changeset/shaggy-lamps-leave.md new file mode 100644 index 000000000..dbfe0913c --- /dev/null +++ b/.changeset/shaggy-lamps-leave.md @@ -0,0 +1,5 @@ +--- +"@rabbitholegg/questdk-plugin-connext": minor +--- + +combine filters for xcall and multisend From c9f0568ec55e80c554ed7f05bd0b4840039faf86 Mon Sep 17 00:00:00 2001 From: Mmackz Date: Tue, 26 Dec 2023 14:05:06 -0800 Subject: [PATCH 16/17] docs(connext): update README.md --- packages/connext/src/README.md | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/packages/connext/src/README.md b/packages/connext/src/README.md index 6d85fd8ca..98664a5f8 100644 --- a/packages/connext/src/README.md +++ b/packages/connext/src/README.md @@ -1,6 +1,12 @@ - -Connext uses a MultiSend to wrap when briding ETH. -https://github.com/connext/monorepo/issues/2905 -https://github.com/connext/monorepo/issues/4218 -Contract addresses: https://github.com/search?q=repo%3Aconnext%2Fmonorepo%20MultiSend.json&type=code +# Connext Plugin + +## Overview +Connext is a cross chain bridge protocol on Ethereum which services many popular L2 chains. The bridge transaction will use one of two method depending on wether ETH or tokens were bridged. For ETH, it will use `multiSend` and for tokens it will use `xCall` + +## Limitations +- There should be no limitations with the current bridge plugin. Everything should work as expected. + +## Sample Transactions +- [multiSend](https://etherscan.io/tx/0xb8e2c0baf137b64553c91f286bde62cc37275d0b9f9d3e6c0041c6be79de45af) +- [xCall](https://optimistic.etherscan.io/tx/0x22d3715ca5ae0bd0d87f9341fafc7a330fd6962e13bf318a6a541c93e4e6bc04) From 28877f9d8a53aee3352ab7aed72df7ed50b5be37 Mon Sep 17 00:00:00 2001 From: Mmackz Date: Tue, 26 Dec 2023 16:17:38 -0800 Subject: [PATCH 17/17] merge branch 'upstream/main' into mmackz-connext-fix --- .changeset/dirty-crews-swim.md | 5 +++++ packages/uniswap/package.json | 4 ++-- packages/uniswap/src/Uniswap.test.ts | 1 - packages/uniswap/src/constants.ts | 1 + pnpm-lock.yaml | 4 ++-- 5 files changed, 10 insertions(+), 5 deletions(-) create mode 100644 .changeset/dirty-crews-swim.md diff --git a/.changeset/dirty-crews-swim.md b/.changeset/dirty-crews-swim.md new file mode 100644 index 000000000..9b7cf0fe6 --- /dev/null +++ b/.changeset/dirty-crews-swim.md @@ -0,0 +1,5 @@ +--- +"@rabbitholegg/questdk-plugin-uniswap": patch +--- + +add sepolia op testnet to excluded networks diff --git a/packages/uniswap/package.json b/packages/uniswap/package.json index 0d2c360a0..db290461f 100644 --- a/packages/uniswap/package.json +++ b/packages/uniswap/package.json @@ -40,8 +40,8 @@ }, "dependencies": { "@rabbitholegg/questdk": "2.0.0-alpha.28", - "@uniswap/sdk-core": "^4.0.9", - "@uniswap/universal-router-sdk": "^2.0.2", + "@uniswap/sdk-core": "4.0.10", + "@uniswap/universal-router-sdk": "2.0.2", "viem": "^1.16.6" } } diff --git a/packages/uniswap/src/Uniswap.test.ts b/packages/uniswap/src/Uniswap.test.ts index dcd82d18f..a1c8f60a5 100644 --- a/packages/uniswap/src/Uniswap.test.ts +++ b/packages/uniswap/src/Uniswap.test.ts @@ -120,7 +120,6 @@ describe('Given the uniswap plugin', () => { const tokens = await getSupportedTokenAddresses(chainId) const addressRegex = /^0x[a-fA-F0-9]{40}$/ expect(tokens).to.be.an('array') - expect(tokens).to.have.length.greaterThan(0) expect(tokens).to.have.length.lessThan(100) tokens.forEach((token) => { expect(token).to.match( diff --git a/packages/uniswap/src/constants.ts b/packages/uniswap/src/constants.ts index d894dda0d..be0f3f648 100644 --- a/packages/uniswap/src/constants.ts +++ b/packages/uniswap/src/constants.ts @@ -52,6 +52,7 @@ const TESTNETS = [ ChainId.CELO, ChainId.CELO_ALFAJORES, ChainId.BASE_GOERLI, + ChainId.OPTIMISM_SEPOLIA, ] export const CHAIN_ID_ARRAY = SUPPORTED_CHAINS.filter( diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index d0224f2bb..1c24e5015 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -678,8 +678,8 @@ importers: packages/uniswap: specifiers: '@rabbitholegg/questdk': 2.0.0-alpha.28 - '@uniswap/sdk-core': ^4.0.9 - '@uniswap/universal-router-sdk': ^2.0.2 + '@uniswap/sdk-core': 4.0.10 + '@uniswap/universal-router-sdk': 2.0.2 '@vitest/coverage-v8': ^0.33.0 rimraf: ^5.0.5 rome: ^12.1.3