Skip to content

Commit 498a9eb

Browse files
authored
Merge pull request #1122 from dev-protocol/ethers-v6
Using Ethers v6.x
2 parents 59bcd2a + 781a28f commit 498a9eb

File tree

97 files changed

+1225
-1528
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

97 files changed

+1225
-1528
lines changed

.github/workflows/nodejs.yml

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,6 @@ jobs:
2020
run: |
2121
yarn install
2222
yarn lint
23-
yarn run build
24-
yarn test
23+
yarn test --maxWorkers=50% --silent
2524
env:
2625
CI: true

lib/agent/common/approveIfNeeded.ts

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,11 +4,10 @@ import {
44
TransactionResponse,
55
TransactionReceipt,
66
} from '@ethersproject/abstract-provider'
7-
import type { BaseProvider } from '@ethersproject/providers'
8-
import { BigNumber } from 'ethers'
97
import { createErc20Contract } from '../../common/erc20'
108
import { FallbackableOverrides } from '../../common/utils/execute'
119
import { clientsDev } from './clients/clientsDev'
10+
import { ContractRunner } from 'ethers'
1211

1312
// eslint-disable-next-line functional/no-mixed-type
1413
export type ApproveIfNeededResultForApproveIsNeeded = {
@@ -43,7 +42,7 @@ export type ApproveIfNeededResult =
4342
| ApproveIfNeededResultForApproveIsNotNeeded
4443

4544
export type ApproveIfNeeded = (factoryOptions: {
46-
readonly provider: BaseProvider
45+
readonly provider: ContractRunner
4746
readonly requiredAmount: string
4847
readonly from: string
4948
readonly to?: string
@@ -63,7 +62,7 @@ export const approveIfNeeded: ApproveIfNeeded = async (factoryOptions) => {
6362
)
6463

6564
return whenDefinedAll([client, factoryOptions.to], ([dev, to]) => {
66-
return BigNumber.from(allowance).lt(factoryOptions.requiredAmount)
65+
return BigInt(allowance ?? 0) < BigInt(factoryOptions.requiredAmount)
6766
? ({
6867
approvalNeeded: true,
6968
approveIfNeeded: async (options) => {

lib/agent/common/clients/clientsDev.ts

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -5,25 +5,29 @@ import {
55
createDevContract as createDevContractL2,
66
DevContract as DevContractL2,
77
} from '../../../l2/dev'
8-
import type { BaseProvider } from '@ethersproject/providers'
98
import { clientsRegistry } from './clientsRegistry'
9+
import { ContractRunner } from 'ethers'
1010

1111
type Results = readonly [UndefinedOr<DevContract>, UndefinedOr<DevContractL2>]
1212

13-
const cache: WeakMap<BaseProvider, Results> = new WeakMap()
13+
const cache: WeakMap<ContractRunner, Results> = new WeakMap()
1414

15-
export const clientsDev = async (provider: BaseProvider): Promise<Results> => {
15+
export const clientsDev = async (
16+
provider: ContractRunner
17+
): Promise<Results> => {
1618
const res =
1719
cache.get(provider) ??
1820
(await (async () => {
19-
const net = await provider.getNetwork()
21+
const net = await provider.provider?.getNetwork()
2022
const [registry] = await clientsRegistry(provider)
2123
const l1 = registry
2224
? createDevContract(provider)(await registry.token())
2325
: undefined
2426
const l2 = ((data) =>
2527
data ? createDevContractL2(provider)(data.map.token) : undefined)(
26-
l2AvailableNetworks.find(({ chainId }) => chainId === net.chainId)
28+
l2AvailableNetworks.find(
29+
({ chainId }) => chainId === Number(net?.chainId)
30+
)
2731
)
2832
const results: Results = [l1, l2]
2933
// eslint-disable-next-line functional/no-expression-statement

lib/agent/common/clients/clientsLockup.ts

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -5,30 +5,32 @@ import {
55
createLockupContract as createLockupContractL2,
66
LockupContract as LockupContractL2,
77
} from '../../../l2/lockup'
8-
import type { BaseProvider } from '@ethersproject/providers'
98
import { clientsRegistry } from './clientsRegistry'
9+
import { ContractRunner } from 'ethers'
1010

1111
type Results = readonly [
1212
UndefinedOr<LockupContract>,
1313
UndefinedOr<LockupContractL2>
1414
]
1515

16-
const cache: WeakMap<BaseProvider, Results> = new WeakMap()
16+
const cache: WeakMap<ContractRunner, Results> = new WeakMap()
1717

1818
export const clientsLockup = async (
19-
provider: BaseProvider
19+
provider: ContractRunner
2020
): Promise<Results> => {
2121
const res =
2222
cache.get(provider) ??
2323
(await (async () => {
24-
const net = await provider.getNetwork()
24+
const net = await provider.provider?.getNetwork()
2525
const [registry] = await clientsRegistry(provider)
2626
const l1 = registry
2727
? createLockupContract(provider)(await registry.lockup())
2828
: undefined
2929
const l2 = ((data) =>
3030
data ? createLockupContractL2(provider)(data.map.lockup) : undefined)(
31-
l2AvailableNetworks.find(({ chainId }) => chainId === net.chainId)
31+
l2AvailableNetworks.find(
32+
({ chainId }) => chainId === Number(net?.chainId)
33+
)
3234
)
3335
const results: Results = [l1, l2]
3436
// eslint-disable-next-line functional/no-expression-statement

lib/agent/common/clients/clientsMarketFactory.ts

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -8,23 +8,23 @@ import {
88
createMarketFactoryContract as createMarketFactoryContractL2,
99
MarketFactoryContract as MarketFactoryContractL2,
1010
} from '../../../l2/market-factory'
11-
import type { BaseProvider } from '@ethersproject/providers'
1211
import { clientsRegistry } from './clientsRegistry'
12+
import { ContractRunner } from 'ethers'
1313

1414
type Results = readonly [
1515
UndefinedOr<MarketFactoryContract>,
1616
UndefinedOr<MarketFactoryContractL2>
1717
]
1818

19-
const cache: WeakMap<BaseProvider, Results> = new WeakMap()
19+
const cache: WeakMap<ContractRunner, Results> = new WeakMap()
2020

2121
export const clientsMarketFactory = async (
22-
provider: BaseProvider
22+
provider: ContractRunner
2323
): Promise<Results> => {
2424
const res =
2525
cache.get(provider) ??
2626
(await (async () => {
27-
const net = await provider.getNetwork()
27+
const net = await provider.provider?.getNetwork()
2828
const [registry] = await clientsRegistry(provider)
2929
const l1 = registry
3030
? createMarketFactoryContract(provider)(await registry.marketFactory())
@@ -33,7 +33,9 @@ export const clientsMarketFactory = async (
3333
data
3434
? createMarketFactoryContractL2(provider)(data.map.marketFactory)
3535
: undefined)(
36-
l2AvailableNetworks.find(({ chainId }) => chainId === net.chainId)
36+
l2AvailableNetworks.find(
37+
({ chainId }) => chainId === Number(net?.chainId)
38+
)
3739
)
3840
const results: Results = [l1, l2]
3941
// eslint-disable-next-line functional/no-expression-statement

lib/agent/common/clients/clientsMetricsFactory.ts

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -4,25 +4,27 @@ import {
44
createMetricsFactoryContract as createMetricsFactoryContractL2,
55
MetricsFactoryContract as MetricsFactoryContractL2,
66
} from '../../../l2/metrics-factory'
7-
import type { BaseProvider } from '@ethersproject/providers'
7+
import { ContractRunner } from 'ethers'
88

99
type Results = readonly [undefined, UndefinedOr<MetricsFactoryContractL2>]
1010

11-
const cache: WeakMap<BaseProvider, Results> = new WeakMap()
11+
const cache: WeakMap<ContractRunner, Results> = new WeakMap()
1212

1313
export const clientsMetricsFactory = async (
14-
provider: BaseProvider
14+
provider: ContractRunner
1515
): Promise<Results> => {
1616
const res =
1717
cache.get(provider) ??
1818
(await (async () => {
19-
const net = await provider.getNetwork()
19+
const net = await provider.provider?.getNetwork()
2020
const l1 = undefined
2121
const l2 = ((data) =>
2222
data
2323
? createMetricsFactoryContractL2(provider)(data.map.metricsFactory)
2424
: undefined)(
25-
l2AvailableNetworks.find(({ chainId }) => chainId === net.chainId)
25+
l2AvailableNetworks.find(
26+
({ chainId }) => chainId === Number(net?.chainId)
27+
)
2628
)
2729
const results: Results = [l1, l2]
2830
// eslint-disable-next-line functional/no-expression-statement

lib/agent/common/clients/clientsMetricsGroup.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,15 +3,15 @@ import {
33
createMetricsGroupContract,
44
CreateMetricsGroupContract,
55
} from '../../../ethereum/metrics-group'
6-
import type { BaseProvider } from '@ethersproject/providers'
76
import { clientsRegistry } from './clientsRegistry'
7+
import { ContractRunner } from 'ethers'
88

99
type Results = readonly [UndefinedOr<CreateMetricsGroupContract>, undefined]
1010

11-
const cache: WeakMap<BaseProvider, Results> = new WeakMap()
11+
const cache: WeakMap<ContractRunner, Results> = new WeakMap()
1212

1313
export const clientsMetricsGroup = async (
14-
provider: BaseProvider
14+
provider: ContractRunner
1515
): Promise<Results> => {
1616
const res =
1717
cache.get(provider) ??

lib/agent/common/clients/clientsPolicy.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,19 +4,19 @@ import {
44
createPolicyContract as createPolicyContractL2,
55
PolicyContract as PolicyContractL2,
66
} from '../../../l2/policy'
7-
import type { BaseProvider } from '@ethersproject/providers'
87
import { clientsRegistry } from './clientsRegistry'
8+
import { ContractRunner } from 'ethers'
99

1010
type Results = readonly [
1111
UndefinedOr<PolicyContract>,
1212
UndefinedOr<PolicyContractL2>
1313
]
1414

1515
// eslint-disable-next-line functional/prefer-readonly-type
16-
const cache: WeakMap<BaseProvider, Results> = new WeakMap()
16+
const cache: WeakMap<ContractRunner, Results> = new WeakMap()
1717

1818
export const clientsPolicy = async (
19-
provider: BaseProvider
19+
provider: ContractRunner
2020
): Promise<Results> => {
2121
const res =
2222
cache.get(provider) ??

lib/agent/common/clients/clientsProperty.ts

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -8,32 +8,34 @@ import {
88
createPropertyContract as createPropertyContractL2,
99
PropertyContract as PropertyContractL2,
1010
} from '../../../l2/property'
11-
import type { BaseProvider } from '@ethersproject/providers'
1211
import { clientsRegistry } from './clientsRegistry'
12+
import { ContractRunner } from 'ethers'
1313

1414
type Results = readonly [
1515
UndefinedOr<PropertyContract>,
1616
UndefinedOr<PropertyContractL2>
1717
]
1818

1919
// eslint-disable-next-line functional/prefer-readonly-type
20-
const cache: WeakMap<BaseProvider, Map<string, Results>> = new WeakMap()
20+
const cache: WeakMap<ContractRunner, Map<string, Results>> = new WeakMap()
2121

2222
export const clientsProperty = async (
23-
provider: BaseProvider,
23+
provider: ContractRunner,
2424
tokenAddress: string
2525
): Promise<Results> => {
2626
const res =
2727
cache.get(provider)?.get(tokenAddress) ??
2828
(await (async () => {
29-
const net = await provider.getNetwork()
29+
const net = await provider.provider?.getNetwork()
3030
const [registry] = await clientsRegistry(provider)
3131
const l1 = registry
3232
? createPropertyContract(provider)(tokenAddress)
3333
: undefined
3434
const l2 = ((data) =>
3535
data ? createPropertyContractL2(provider)(tokenAddress) : undefined)(
36-
l2AvailableNetworks.find(({ chainId }) => chainId === net.chainId)
36+
l2AvailableNetworks.find(
37+
({ chainId }) => chainId === Number(net?.chainId)
38+
)
3739
)
3840
const results: Results = [l1, l2]
3941
const map = cache.get(provider)

lib/agent/common/clients/clientsPropertyFactory.ts

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -8,23 +8,23 @@ import {
88
createPropertyFactoryContract as createPropertyFactoryContractL2,
99
PropertyFactoryContract as PropertyFactoryContractL2,
1010
} from '../../../l2/property-factory'
11-
import type { BaseProvider } from '@ethersproject/providers'
1211
import { clientsRegistry } from './clientsRegistry'
12+
import { ContractRunner } from 'ethers'
1313

1414
type Results = readonly [
1515
UndefinedOr<PropertyFactoryContract>,
1616
UndefinedOr<PropertyFactoryContractL2>
1717
]
1818

19-
const cache: WeakMap<BaseProvider, Results> = new WeakMap()
19+
const cache: WeakMap<ContractRunner, Results> = new WeakMap()
2020

2121
export const clientsPropertyFactory = async (
22-
provider: BaseProvider
22+
provider: ContractRunner
2323
): Promise<Results> => {
2424
const res =
2525
cache.get(provider) ??
2626
(await (async () => {
27-
const net = await provider.getNetwork()
27+
const net = await provider.provider?.getNetwork()
2828
const [registry] = await clientsRegistry(provider)
2929
const l1 = registry
3030
? createPropertyFactoryContract(provider)(
@@ -35,7 +35,9 @@ export const clientsPropertyFactory = async (
3535
data
3636
? createPropertyFactoryContractL2(provider)(data.map.propertyFactory)
3737
: undefined)(
38-
l2AvailableNetworks.find(({ chainId }) => chainId === net.chainId)
38+
l2AvailableNetworks.find(
39+
({ chainId }) => chainId === Number(net?.chainId)
40+
)
3941
)
4042
const results: Results = [l1, l2]
4143
// eslint-disable-next-line functional/no-expression-statement

0 commit comments

Comments
 (0)