viem 2.34.0 → 2.35.0-canary-20250821110759
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +25 -0
- package/README.md +6 -0
- package/_cjs/actions/ens/getEnsAddress.js +9 -6
- package/_cjs/actions/ens/getEnsAddress.js.map +1 -1
- package/_cjs/actions/ens/getEnsName.js +16 -22
- package/_cjs/actions/ens/getEnsName.js.map +1 -1
- package/_cjs/actions/ens/getEnsResolver.js +5 -1
- package/_cjs/actions/ens/getEnsResolver.js.map +1 -1
- package/_cjs/actions/ens/getEnsText.js +2 -2
- package/_cjs/actions/ens/getEnsText.js.map +1 -1
- package/_cjs/actions/public/waitForTransactionReceipt.js +5 -5
- package/_cjs/actions/public/waitForTransactionReceipt.js.map +1 -1
- package/_cjs/chains/definitions/avalanche.js +1 -0
- package/_cjs/chains/definitions/avalanche.js.map +1 -1
- package/_cjs/chains/definitions/berachain.js +3 -2
- package/_cjs/chains/definitions/berachain.js.map +1 -1
- package/_cjs/chains/definitions/berachainBepolia.js +1 -0
- package/_cjs/chains/definitions/berachainBepolia.js.map +1 -1
- package/_cjs/chains/definitions/bsc.js +1 -0
- package/_cjs/chains/definitions/bsc.js.map +1 -1
- package/_cjs/chains/definitions/etherlink.js +1 -0
- package/_cjs/chains/definitions/etherlink.js.map +1 -1
- package/_cjs/chains/definitions/hemi.js +1 -0
- package/_cjs/chains/definitions/hemi.js.map +1 -1
- package/_cjs/chains/definitions/holesky.js +2 -6
- package/_cjs/chains/definitions/holesky.js.map +1 -1
- package/_cjs/chains/definitions/linea.js +2 -2
- package/_cjs/chains/definitions/linea.js.map +1 -1
- package/_cjs/chains/definitions/lineaSepolia.js +2 -2
- package/_cjs/chains/definitions/lineaSepolia.js.map +1 -1
- package/_cjs/chains/definitions/mainnet.js +2 -5
- package/_cjs/chains/definitions/mainnet.js.map +1 -1
- package/_cjs/chains/definitions/mantraDuKongEVMTestnet.js +24 -0
- package/_cjs/chains/definitions/mantraDuKongEVMTestnet.js.map +1 -0
- package/_cjs/chains/definitions/megaethTestnet.js +1 -0
- package/_cjs/chains/definitions/megaethTestnet.js.map +1 -1
- package/_cjs/chains/definitions/monadTestnet.js +1 -0
- package/_cjs/chains/definitions/monadTestnet.js.map +1 -1
- package/_cjs/chains/definitions/sepolia.js +2 -3
- package/_cjs/chains/definitions/sepolia.js.map +1 -1
- package/_cjs/chains/definitions/sonic.js +1 -0
- package/_cjs/chains/definitions/sonic.js.map +1 -1
- package/_cjs/chains/index.js +9 -7
- package/_cjs/chains/index.js.map +1 -1
- package/_cjs/constants/abis.js +78 -45
- package/_cjs/constants/abis.js.map +1 -1
- package/_cjs/ens/index.js +3 -1
- package/_cjs/ens/index.js.map +1 -1
- package/_cjs/errors/ens.js +9 -1
- package/_cjs/errors/ens.js.map +1 -1
- package/_cjs/errors/version.js +1 -1
- package/_cjs/errors/version.js.map +1 -1
- package/_cjs/index.js +8 -5
- package/_cjs/index.js.map +1 -1
- package/_cjs/utils/ens/errors.js +6 -9
- package/_cjs/utils/ens/errors.js.map +1 -1
- package/_cjs/utils/ens/toCoinType.js +13 -0
- package/_cjs/utils/ens/toCoinType.js.map +1 -0
- package/_esm/actions/ens/getEnsAddress.js +9 -6
- package/_esm/actions/ens/getEnsAddress.js.map +1 -1
- package/_esm/actions/ens/getEnsName.js +16 -22
- package/_esm/actions/ens/getEnsName.js.map +1 -1
- package/_esm/actions/ens/getEnsResolver.js +5 -1
- package/_esm/actions/ens/getEnsResolver.js.map +1 -1
- package/_esm/actions/ens/getEnsText.js +2 -2
- package/_esm/actions/ens/getEnsText.js.map +1 -1
- package/_esm/actions/public/waitForTransactionReceipt.js +5 -5
- package/_esm/actions/public/waitForTransactionReceipt.js.map +1 -1
- package/_esm/chains/definitions/avalanche.js +1 -0
- package/_esm/chains/definitions/avalanche.js.map +1 -1
- package/_esm/chains/definitions/berachain.js +3 -2
- package/_esm/chains/definitions/berachain.js.map +1 -1
- package/_esm/chains/definitions/berachainBepolia.js +1 -0
- package/_esm/chains/definitions/berachainBepolia.js.map +1 -1
- package/_esm/chains/definitions/bsc.js +1 -0
- package/_esm/chains/definitions/bsc.js.map +1 -1
- package/_esm/chains/definitions/etherlink.js +1 -0
- package/_esm/chains/definitions/etherlink.js.map +1 -1
- package/_esm/chains/definitions/hemi.js +1 -0
- package/_esm/chains/definitions/hemi.js.map +1 -1
- package/_esm/chains/definitions/holesky.js +2 -6
- package/_esm/chains/definitions/holesky.js.map +1 -1
- package/_esm/chains/definitions/linea.js +2 -2
- package/_esm/chains/definitions/linea.js.map +1 -1
- package/_esm/chains/definitions/lineaSepolia.js +2 -2
- package/_esm/chains/definitions/lineaSepolia.js.map +1 -1
- package/_esm/chains/definitions/mainnet.js +2 -5
- package/_esm/chains/definitions/mainnet.js.map +1 -1
- package/_esm/chains/definitions/mantraDuKongEVMTestnet.js +21 -0
- package/_esm/chains/definitions/mantraDuKongEVMTestnet.js.map +1 -0
- package/_esm/chains/definitions/megaethTestnet.js +1 -0
- package/_esm/chains/definitions/megaethTestnet.js.map +1 -1
- package/_esm/chains/definitions/monadTestnet.js +1 -0
- package/_esm/chains/definitions/monadTestnet.js.map +1 -1
- package/_esm/chains/definitions/sepolia.js +2 -3
- package/_esm/chains/definitions/sepolia.js.map +1 -1
- package/_esm/chains/definitions/sonic.js +1 -0
- package/_esm/chains/definitions/sonic.js.map +1 -1
- package/_esm/chains/index.js +1 -0
- package/_esm/chains/index.js.map +1 -1
- package/_esm/constants/abis.js +78 -45
- package/_esm/constants/abis.js.map +1 -1
- package/_esm/ens/index.js +1 -0
- package/_esm/ens/index.js.map +1 -1
- package/_esm/errors/ens.js +7 -0
- package/_esm/errors/ens.js.map +1 -1
- package/_esm/errors/version.js +1 -1
- package/_esm/errors/version.js.map +1 -1
- package/_esm/index.js +2 -1
- package/_esm/index.js.map +1 -1
- package/_esm/utils/ens/errors.js +6 -11
- package/_esm/utils/ens/errors.js.map +1 -1
- package/_esm/utils/ens/toCoinType.js +17 -0
- package/_esm/utils/ens/toCoinType.js.map +1 -0
- package/_types/actions/ens/getEnsAddress.d.ts +26 -6
- package/_types/actions/ens/getEnsAddress.d.ts.map +1 -1
- package/_types/actions/ens/getEnsName.d.ts +29 -8
- package/_types/actions/ens/getEnsName.d.ts.map +1 -1
- package/_types/actions/ens/getEnsResolver.d.ts.map +1 -1
- package/_types/chains/definitions/avalanche.d.ts +1 -1
- package/_types/chains/definitions/avalanche.d.ts.map +1 -1
- package/_types/chains/definitions/berachain.d.ts +3 -3
- package/_types/chains/definitions/berachain.d.ts.map +1 -1
- package/_types/chains/definitions/berachainBepolia.d.ts +1 -1
- package/_types/chains/definitions/berachainBepolia.d.ts.map +1 -1
- package/_types/chains/definitions/bsc.d.ts +1 -1
- package/_types/chains/definitions/bsc.d.ts.map +1 -1
- package/_types/chains/definitions/etherlink.d.ts +1 -1
- package/_types/chains/definitions/etherlink.d.ts.map +1 -1
- package/_types/chains/definitions/hemi.d.ts +1 -1
- package/_types/chains/definitions/hemi.d.ts.map +1 -1
- package/_types/chains/definitions/holesky.d.ts +2 -6
- package/_types/chains/definitions/holesky.d.ts.map +1 -1
- package/_types/chains/definitions/linea.d.ts +2 -2
- package/_types/chains/definitions/lineaSepolia.d.ts +2 -2
- package/_types/chains/definitions/mainnet.d.ts +2 -5
- package/_types/chains/definitions/mainnet.d.ts.map +1 -1
- package/_types/chains/definitions/mantraDuKongEVMTestnet.d.ts +39 -0
- package/_types/chains/definitions/mantraDuKongEVMTestnet.d.ts.map +1 -0
- package/_types/chains/definitions/megaethTestnet.d.ts +1 -1
- package/_types/chains/definitions/megaethTestnet.d.ts.map +1 -1
- package/_types/chains/definitions/monadTestnet.d.ts +1 -1
- package/_types/chains/definitions/monadTestnet.d.ts.map +1 -1
- package/_types/chains/definitions/sepolia.d.ts +2 -5
- package/_types/chains/definitions/sepolia.d.ts.map +1 -1
- package/_types/chains/definitions/sonic.d.ts +1 -1
- package/_types/chains/definitions/sonic.d.ts.map +1 -1
- package/_types/chains/index.d.ts +1 -0
- package/_types/chains/index.d.ts.map +1 -1
- package/_types/constants/abis.d.ts +103 -60
- package/_types/constants/abis.d.ts.map +1 -1
- package/_types/ens/index.d.ts +1 -0
- package/_types/ens/index.d.ts.map +1 -1
- package/_types/errors/ens.d.ts +8 -0
- package/_types/errors/ens.d.ts.map +1 -1
- package/_types/errors/version.d.ts +1 -1
- package/_types/errors/version.d.ts.map +1 -1
- package/_types/index.d.ts +2 -1
- package/_types/index.d.ts.map +1 -1
- package/_types/utils/ens/errors.d.ts +1 -1
- package/_types/utils/ens/errors.d.ts.map +1 -1
- package/_types/utils/ens/toCoinType.d.ts +12 -0
- package/_types/utils/ens/toCoinType.d.ts.map +1 -0
- package/actions/ens/getEnsAddress.ts +35 -12
- package/actions/ens/getEnsName.ts +47 -33
- package/actions/ens/getEnsResolver.ts +5 -1
- package/actions/ens/getEnsText.ts +2 -2
- package/actions/public/waitForTransactionReceipt.ts +5 -5
- package/chains/definitions/avalanche.ts +1 -0
- package/chains/definitions/berachain.ts +4 -2
- package/chains/definitions/berachainBepolia.ts +1 -0
- package/chains/definitions/bsc.ts +1 -0
- package/chains/definitions/etherlink.ts +1 -0
- package/chains/definitions/hemi.ts +1 -0
- package/chains/definitions/holesky.ts +2 -6
- package/chains/definitions/linea.ts +2 -2
- package/chains/definitions/lineaSepolia.ts +2 -2
- package/chains/definitions/mainnet.ts +2 -5
- package/chains/definitions/mantraDuKongEVMTestnet.ts +21 -0
- package/chains/definitions/megaethTestnet.ts +1 -0
- package/chains/definitions/monadTestnet.ts +1 -0
- package/chains/definitions/sepolia.ts +2 -3
- package/chains/definitions/sonic.ts +1 -0
- package/chains/index.ts +1 -0
- package/constants/abis.ts +79 -46
- package/ens/index.ts +4 -0
- package/errors/ens.ts +14 -0
- package/errors/version.ts +1 -1
- package/index.ts +6 -0
- package/package.json +1 -1
- package/utils/ens/errors.ts +8 -18
- package/utils/ens/toCoinType.ts +23 -0
@@ -0,0 +1,12 @@
|
|
1
|
+
import { type EnsInvalidChainIdErrorType } from '../../errors/ens.js';
|
2
|
+
import type { ErrorType } from '../../errors/utils.js';
|
3
|
+
export type ToCoinTypeError = EnsInvalidChainIdErrorType | ErrorType;
|
4
|
+
/**
|
5
|
+
* @description Converts a chainId to a ENSIP-9 compliant coinType
|
6
|
+
*
|
7
|
+
* @example
|
8
|
+
* toCoinType(10)
|
9
|
+
* 2147483658n
|
10
|
+
*/
|
11
|
+
export declare function toCoinType(chainId: number): bigint;
|
12
|
+
//# sourceMappingURL=toCoinType.d.ts.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"toCoinType.d.ts","sourceRoot":"","sources":["../../../utils/ens/toCoinType.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,0BAA0B,EAChC,MAAM,qBAAqB,CAAA;AAC5B,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAA;AAEtD,MAAM,MAAM,eAAe,GAAG,0BAA0B,GAAG,SAAS,CAAA;AAIpE;;;;;;GAMG;AACH,wBAAgB,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAKlD"}
|
@@ -38,15 +38,35 @@ import {
|
|
38
38
|
|
39
39
|
export type GetEnsAddressParameters = Prettify<
|
40
40
|
Pick<ReadContractParameters, 'blockNumber' | 'blockTag'> & {
|
41
|
-
/**
|
42
|
-
|
43
|
-
|
41
|
+
/**
|
42
|
+
* ENSIP-9 compliant coinType (chain) to get ENS address for.
|
43
|
+
*
|
44
|
+
* To get the `coinType` for a chain id, use the `toCoinType` function:
|
45
|
+
* ```ts
|
46
|
+
* import { toCoinType } from 'viem'
|
47
|
+
* import { base } from 'viem/chains'
|
48
|
+
*
|
49
|
+
* const coinType = toCoinType(base.id)
|
50
|
+
* ```
|
51
|
+
*
|
52
|
+
* @default 60n
|
53
|
+
*/
|
54
|
+
coinType?: bigint | undefined
|
55
|
+
/**
|
56
|
+
* Universal Resolver gateway URLs to use for resolving CCIP-read requests.
|
57
|
+
*/
|
44
58
|
gatewayUrls?: string[] | undefined
|
45
|
-
/**
|
59
|
+
/**
|
60
|
+
* Name to get the address for.
|
61
|
+
*/
|
46
62
|
name: string
|
47
|
-
/**
|
63
|
+
/**
|
64
|
+
* Whether or not to throw errors propagated from the ENS Universal Resolver Contract.
|
65
|
+
*/
|
48
66
|
strict?: boolean | undefined
|
49
|
-
/**
|
67
|
+
/**
|
68
|
+
* Address of ENS Universal Resolver Contract.
|
69
|
+
*/
|
50
70
|
universalResolverAddress?: Address | undefined
|
51
71
|
}
|
52
72
|
>
|
@@ -116,19 +136,22 @@ export async function getEnsAddress<chain extends Chain | undefined>(
|
|
116
136
|
const tlds = chain?.ensTlds
|
117
137
|
if (tlds && !tlds.some((tld) => name.endsWith(tld))) return null
|
118
138
|
|
139
|
+
const args = (() => {
|
140
|
+
if (coinType != null) return [namehash(name), BigInt(coinType)] as const
|
141
|
+
return [namehash(name)] as const
|
142
|
+
})()
|
143
|
+
|
119
144
|
try {
|
120
145
|
const functionData = encodeFunctionData({
|
121
146
|
abi: addressResolverAbi,
|
122
147
|
functionName: 'addr',
|
123
|
-
|
124
|
-
? { args: [namehash(name), BigInt(coinType)] }
|
125
|
-
: { args: [namehash(name)] }),
|
148
|
+
args,
|
126
149
|
})
|
127
150
|
|
128
151
|
const readContractParameters = {
|
129
152
|
address: universalResolverAddress,
|
130
153
|
abi: universalResolverResolveAbi,
|
131
|
-
functionName: '
|
154
|
+
functionName: 'resolveWithGateways',
|
132
155
|
args: [
|
133
156
|
toHex(packetToBytes(name)),
|
134
157
|
functionData,
|
@@ -146,7 +169,7 @@ export async function getEnsAddress<chain extends Chain | undefined>(
|
|
146
169
|
|
147
170
|
const address = decodeFunctionResult({
|
148
171
|
abi: addressResolverAbi,
|
149
|
-
args
|
172
|
+
args,
|
150
173
|
functionName: 'addr',
|
151
174
|
data: res[0],
|
152
175
|
})
|
@@ -156,7 +179,7 @@ export async function getEnsAddress<chain extends Chain | undefined>(
|
|
156
179
|
return address
|
157
180
|
} catch (err) {
|
158
181
|
if (strict) throw err
|
159
|
-
if (isNullUniversalResolverError(err
|
182
|
+
if (isNullUniversalResolverError(err)) return null
|
160
183
|
throw err
|
161
184
|
}
|
162
185
|
}
|
@@ -10,12 +10,9 @@ import {
|
|
10
10
|
type GetChainContractAddressErrorType,
|
11
11
|
getChainContractAddress,
|
12
12
|
} from '../../utils/chain/getChainContractAddress.js'
|
13
|
-
import { type ToHexErrorType, toHex } from '../../utils/encoding/toHex.js'
|
14
13
|
import { isNullUniversalResolverError } from '../../utils/ens/errors.js'
|
15
|
-
import {
|
16
|
-
|
17
|
-
packetToBytes,
|
18
|
-
} from '../../utils/ens/packetToBytes.js'
|
14
|
+
import { localBatchGatewayUrl } from '../../utils/ens/localBatchGatewayRequest.js'
|
15
|
+
import type { PacketToBytesErrorType } from '../../utils/ens/packetToBytes.js'
|
19
16
|
import { getAction } from '../../utils/getAction.js'
|
20
17
|
import {
|
21
18
|
type ReadContractErrorType,
|
@@ -25,13 +22,35 @@ import {
|
|
25
22
|
|
26
23
|
export type GetEnsNameParameters = Prettify<
|
27
24
|
Pick<ReadContractParameters, 'blockNumber' | 'blockTag'> & {
|
28
|
-
/**
|
25
|
+
/**
|
26
|
+
* Address to get ENS name for.
|
27
|
+
*/
|
29
28
|
address: Address
|
30
|
-
/**
|
29
|
+
/**
|
30
|
+
* ENSIP-9 compliant coinType (chain) to get ENS name for.
|
31
|
+
*
|
32
|
+
* To get the `coinType` for a chain id, use the `toCoinType` function:
|
33
|
+
* ```ts
|
34
|
+
* import { toCoinType } from 'viem'
|
35
|
+
* import { base } from 'viem/chains'
|
36
|
+
*
|
37
|
+
* const coinType = toCoinType(base.id)
|
38
|
+
* ```
|
39
|
+
*
|
40
|
+
* @default 60n
|
41
|
+
*/
|
42
|
+
coinType?: bigint | undefined
|
43
|
+
/**
|
44
|
+
* Universal Resolver gateway URLs to use for resolving CCIP-read requests.
|
45
|
+
*/
|
31
46
|
gatewayUrls?: string[] | undefined
|
32
|
-
/**
|
47
|
+
/**
|
48
|
+
* Whether or not to throw errors propagated from the ENS Universal Resolver Contract.
|
49
|
+
*/
|
33
50
|
strict?: boolean | undefined
|
34
|
-
/**
|
51
|
+
/**
|
52
|
+
* Address of ENS Universal Resolver Contract.
|
53
|
+
*/
|
35
54
|
universalResolverAddress?: Address | undefined
|
36
55
|
}
|
37
56
|
>
|
@@ -41,7 +60,6 @@ export type GetEnsNameReturnType = string | null
|
|
41
60
|
export type GetEnsNameErrorType =
|
42
61
|
| GetChainContractAddressErrorType
|
43
62
|
| ReadContractErrorType
|
44
|
-
| ToHexErrorType
|
45
63
|
| PacketToBytesErrorType
|
46
64
|
| ErrorType
|
47
65
|
|
@@ -73,54 +91,50 @@ export type GetEnsNameErrorType =
|
|
73
91
|
*/
|
74
92
|
export async function getEnsName<chain extends Chain | undefined>(
|
75
93
|
client: Client<Transport, chain>,
|
76
|
-
|
94
|
+
parameters: GetEnsNameParameters,
|
95
|
+
): Promise<GetEnsNameReturnType> {
|
96
|
+
const {
|
77
97
|
address,
|
78
98
|
blockNumber,
|
79
99
|
blockTag,
|
100
|
+
coinType = 60n,
|
80
101
|
gatewayUrls,
|
81
102
|
strict,
|
82
|
-
|
83
|
-
}
|
84
|
-
|
85
|
-
|
86
|
-
|
87
|
-
|
103
|
+
} = parameters
|
104
|
+
const { chain } = client
|
105
|
+
|
106
|
+
const universalResolverAddress = (() => {
|
107
|
+
if (parameters.universalResolverAddress)
|
108
|
+
return parameters.universalResolverAddress
|
109
|
+
if (!chain)
|
88
110
|
throw new Error(
|
89
111
|
'client chain not configured. universalResolverAddress is required.',
|
90
112
|
)
|
91
|
-
|
92
|
-
universalResolverAddress = getChainContractAddress({
|
113
|
+
return getChainContractAddress({
|
93
114
|
blockNumber,
|
94
|
-
chain
|
115
|
+
chain,
|
95
116
|
contract: 'ensUniversalResolver',
|
96
117
|
})
|
97
|
-
}
|
118
|
+
})()
|
98
119
|
|
99
|
-
const reverseNode = `${address.toLowerCase().substring(2)}.addr.reverse`
|
100
120
|
try {
|
101
121
|
const readContractParameters = {
|
102
122
|
address: universalResolverAddress,
|
103
123
|
abi: universalResolverReverseAbi,
|
104
|
-
|
105
|
-
|
124
|
+
args: [address, coinType, gatewayUrls ?? [localBatchGatewayUrl]],
|
125
|
+
functionName: 'reverseWithGateways',
|
106
126
|
blockNumber,
|
107
127
|
blockTag,
|
108
128
|
} as const
|
109
129
|
|
110
130
|
const readContractAction = getAction(client, readContract, 'readContract')
|
111
131
|
|
112
|
-
const [name
|
113
|
-
? await readContractAction({
|
114
|
-
...readContractParameters,
|
115
|
-
args: [...readContractParameters.args, gatewayUrls],
|
116
|
-
})
|
117
|
-
: await readContractAction(readContractParameters)
|
132
|
+
const [name] = await readContractAction(readContractParameters)
|
118
133
|
|
119
|
-
|
120
|
-
return name
|
134
|
+
return name || null
|
121
135
|
} catch (err) {
|
122
136
|
if (strict) throw err
|
123
|
-
if (isNullUniversalResolverError(err
|
137
|
+
if (isNullUniversalResolverError(err)) return null
|
124
138
|
throw err
|
125
139
|
}
|
126
140
|
}
|
@@ -102,7 +102,11 @@ export async function getEnsResolver<chain extends Chain | undefined>(
|
|
102
102
|
{
|
103
103
|
inputs: [{ type: 'bytes' }],
|
104
104
|
name: 'findResolver',
|
105
|
-
outputs: [
|
105
|
+
outputs: [
|
106
|
+
{ type: 'address' },
|
107
|
+
{ type: 'bytes32' },
|
108
|
+
{ type: 'uint256' },
|
109
|
+
],
|
106
110
|
stateMutability: 'view',
|
107
111
|
type: 'function',
|
108
112
|
},
|
@@ -118,7 +118,6 @@ export async function getEnsText<chain extends Chain | undefined>(
|
|
118
118
|
const readContractParameters = {
|
119
119
|
address: universalResolverAddress,
|
120
120
|
abi: universalResolverResolveAbi,
|
121
|
-
functionName: 'resolve',
|
122
121
|
args: [
|
123
122
|
toHex(packetToBytes(name)),
|
124
123
|
encodeFunctionData({
|
@@ -128,6 +127,7 @@ export async function getEnsText<chain extends Chain | undefined>(
|
|
128
127
|
}),
|
129
128
|
gatewayUrls ?? [localBatchGatewayUrl],
|
130
129
|
],
|
130
|
+
functionName: 'resolveWithGateways',
|
131
131
|
blockNumber,
|
132
132
|
blockTag,
|
133
133
|
} as const
|
@@ -147,7 +147,7 @@ export async function getEnsText<chain extends Chain | undefined>(
|
|
147
147
|
return record === '' ? null : record
|
148
148
|
} catch (err) {
|
149
149
|
if (strict) throw err
|
150
|
-
if (isNullUniversalResolverError(err
|
150
|
+
if (isNullUniversalResolverError(err)) return null
|
151
151
|
throw err
|
152
152
|
}
|
153
153
|
}
|
@@ -175,8 +175,8 @@ export async function waitForTransactionReceipt<
|
|
175
175
|
|
176
176
|
const timer = timeout
|
177
177
|
? setTimeout(() => {
|
178
|
-
_unwatch()
|
179
|
-
_unobserve()
|
178
|
+
_unwatch?.()
|
179
|
+
_unobserve?.()
|
180
180
|
reject(new WaitForTransactionReceiptTimeoutError({ hash }))
|
181
181
|
}, timeout)
|
182
182
|
: undefined
|
@@ -194,7 +194,7 @@ export async function waitForTransactionReceipt<
|
|
194
194
|
if (receipt && confirmations <= 1) {
|
195
195
|
clearTimeout(timer)
|
196
196
|
emit.resolve(receipt)
|
197
|
-
_unobserve()
|
197
|
+
_unobserve?.()
|
198
198
|
return
|
199
199
|
}
|
200
200
|
|
@@ -210,9 +210,9 @@ export async function waitForTransactionReceipt<
|
|
210
210
|
async onBlockNumber(blockNumber_) {
|
211
211
|
const done = (fn: () => void) => {
|
212
212
|
clearTimeout(timer)
|
213
|
-
_unwatch()
|
213
|
+
_unwatch?.()
|
214
214
|
fn()
|
215
|
-
_unobserve()
|
215
|
+
_unobserve?.()
|
216
216
|
}
|
217
217
|
|
218
218
|
let blockNumber = blockNumber_
|
@@ -1,7 +1,9 @@
|
|
1
1
|
import { defineChain } from '../../utils/chain/defineChain.js'
|
2
|
+
|
2
3
|
export const berachain = /*#__PURE__*/ defineChain({
|
3
4
|
id: 80094,
|
4
5
|
name: 'Berachain',
|
6
|
+
blockTime: 2_000,
|
5
7
|
nativeCurrency: {
|
6
8
|
decimals: 18,
|
7
9
|
name: 'BERA Token',
|
@@ -17,8 +19,8 @@ export const berachain = /*#__PURE__*/ defineChain({
|
|
17
19
|
blockCreated: 877007,
|
18
20
|
},
|
19
21
|
ensUniversalResolver: {
|
20
|
-
address: '
|
21
|
-
blockCreated:
|
22
|
+
address: '0x4D41762915F83c76EcaF6776d9b08076aA32b492',
|
23
|
+
blockCreated: 9310021,
|
22
24
|
},
|
23
25
|
},
|
24
26
|
rpcUrls: {
|
@@ -21,13 +21,9 @@ export const holesky = /*#__PURE__*/ defineChain({
|
|
21
21
|
address: '0xca11bde05977b3631167028862be2a173976ca11',
|
22
22
|
blockCreated: 77,
|
23
23
|
},
|
24
|
-
ensRegistry: {
|
25
|
-
address: '0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e',
|
26
|
-
blockCreated: 801613,
|
27
|
-
},
|
28
24
|
ensUniversalResolver: {
|
29
|
-
address: '
|
30
|
-
blockCreated:
|
25
|
+
address: '0xeeeeeeee14d718c2b47d9923deab1335e144eeee',
|
26
|
+
blockCreated: 4_295_055,
|
31
27
|
},
|
32
28
|
},
|
33
29
|
testnet: true,
|
@@ -29,8 +29,8 @@ export const linea = /*#__PURE__*/ defineChain({
|
|
29
29
|
blockCreated: 6682888,
|
30
30
|
},
|
31
31
|
ensUniversalResolver: {
|
32
|
-
address: '
|
33
|
-
blockCreated:
|
32
|
+
address: '0x4D41762915F83c76EcaF6776d9b08076aA32b492',
|
33
|
+
blockCreated: 22_222_151,
|
34
34
|
},
|
35
35
|
},
|
36
36
|
ensTlds: ['.linea.eth'],
|
@@ -29,8 +29,8 @@ export const lineaSepolia = /*#__PURE__*/ defineChain({
|
|
29
29
|
blockCreated: 2395094,
|
30
30
|
},
|
31
31
|
ensUniversalResolver: {
|
32
|
-
address: '
|
33
|
-
blockCreated:
|
32
|
+
address: '0x4D41762915F83c76EcaF6776d9b08076aA32b492',
|
33
|
+
blockCreated: 17_168_484,
|
34
34
|
},
|
35
35
|
},
|
36
36
|
ensTlds: ['.linea.eth'],
|
@@ -18,12 +18,9 @@ export const mainnet = /*#__PURE__*/ defineChain({
|
|
18
18
|
},
|
19
19
|
},
|
20
20
|
contracts: {
|
21
|
-
ensRegistry: {
|
22
|
-
address: '0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e',
|
23
|
-
},
|
24
21
|
ensUniversalResolver: {
|
25
|
-
address: '
|
26
|
-
blockCreated:
|
22
|
+
address: '0xeeeeeeee14d718c2b47d9923deab1335e144eeee',
|
23
|
+
blockCreated: 23_085_558,
|
27
24
|
},
|
28
25
|
multicall3: {
|
29
26
|
address: '0xca11bde05977b3631167028862be2a173976ca11',
|
@@ -0,0 +1,21 @@
|
|
1
|
+
import { defineChain } from '../../utils/chain/defineChain.js'
|
2
|
+
|
3
|
+
export const mantraDuKongEVMTestnet = /*#__PURE__*/ defineChain({
|
4
|
+
id: 5887,
|
5
|
+
name: 'MANTRA DuKong EVM Testnet',
|
6
|
+
nativeCurrency: {
|
7
|
+
decimals: 18,
|
8
|
+
name: 'OM',
|
9
|
+
symbol: 'OM',
|
10
|
+
},
|
11
|
+
rpcUrls: {
|
12
|
+
default: { http: ['https://evm.dukong.mantrachain.io'] },
|
13
|
+
},
|
14
|
+
blockExplorers: {
|
15
|
+
default: {
|
16
|
+
name: 'MANTRAScan',
|
17
|
+
url: 'https://mantrascan.io/dukong',
|
18
|
+
},
|
19
|
+
},
|
20
|
+
testnet: true,
|
21
|
+
})
|
@@ -21,10 +21,9 @@ export const sepolia = /*#__PURE__*/ defineChain({
|
|
21
21
|
address: '0xca11bde05977b3631167028862be2a173976ca11',
|
22
22
|
blockCreated: 751532,
|
23
23
|
},
|
24
|
-
ensRegistry: { address: '0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e' },
|
25
24
|
ensUniversalResolver: {
|
26
|
-
address: '
|
27
|
-
blockCreated:
|
25
|
+
address: '0xeeeeeeee14d718c2b47d9923deab1335e144eeee',
|
26
|
+
blockCreated: 8_928_790,
|
28
27
|
},
|
29
28
|
},
|
30
29
|
testnet: true,
|
package/chains/index.ts
CHANGED
@@ -335,6 +335,7 @@ export { mantaTestnet } from './definitions/mantaTestnet.js'
|
|
335
335
|
export { mantle } from './definitions/mantle.js'
|
336
336
|
export { mantleSepoliaTestnet } from './definitions/mantleSepoliaTestnet.js'
|
337
337
|
export { mantleTestnet } from './definitions/mantleTestnet.js'
|
338
|
+
export { mantraDuKongEVMTestnet } from './definitions/mantraDuKongEVMTestnet.js'
|
338
339
|
export { mapProtocol } from './definitions/mapProtocol.js'
|
339
340
|
export { matchain } from './definitions/matchain.js'
|
340
341
|
export { matchainTestnet } from './definitions/matchainTestnet.js'
|