viem 2.19.4 → 2.19.6
Sign up to get free protection for your applications and to get access to all the features.
- package/CHANGELOG.md +18 -0
- package/_cjs/account-abstraction/accounts/implementations/toCoinbaseSmartAccount.js +0 -13
- package/_cjs/account-abstraction/accounts/implementations/toCoinbaseSmartAccount.js.map +1 -1
- package/_cjs/account-abstraction/accounts/implementations/toSoladySmartAccount.js +2 -14
- package/_cjs/account-abstraction/accounts/implementations/toSoladySmartAccount.js.map +1 -1
- package/_cjs/account-abstraction/accounts/toSmartAccount.js +13 -1
- package/_cjs/account-abstraction/accounts/toSmartAccount.js.map +1 -1
- package/_cjs/chains/definitions/assetChainTestnet.js +31 -0
- package/_cjs/chains/definitions/assetChainTestnet.js.map +1 -0
- package/_cjs/chains/definitions/atletaOlympia.js +33 -0
- package/_cjs/chains/definitions/atletaOlympia.js.map +1 -0
- package/_cjs/chains/definitions/chips.js +22 -0
- package/_cjs/chains/definitions/chips.js.map +1 -0
- package/_cjs/chains/definitions/curtis.js +22 -0
- package/_cjs/chains/definitions/curtis.js.map +1 -0
- package/_cjs/chains/definitions/flowTestnet.js +6 -0
- package/_cjs/chains/definitions/flowTestnet.js.map +1 -1
- package/_cjs/chains/definitions/iota.js +28 -0
- package/_cjs/chains/definitions/iota.js.map +1 -0
- package/_cjs/chains/definitions/iotaTestnet.js +29 -0
- package/_cjs/chains/definitions/iotaTestnet.js.map +1 -0
- package/_cjs/chains/index.js +19 -7
- package/_cjs/chains/index.js.map +1 -1
- package/_cjs/errors/version.js +1 -1
- package/_esm/account-abstraction/accounts/implementations/toCoinbaseSmartAccount.js +0 -13
- package/_esm/account-abstraction/accounts/implementations/toCoinbaseSmartAccount.js.map +1 -1
- package/_esm/account-abstraction/accounts/implementations/toSoladySmartAccount.js +2 -14
- package/_esm/account-abstraction/accounts/implementations/toSoladySmartAccount.js.map +1 -1
- package/_esm/account-abstraction/accounts/toSmartAccount.js +13 -1
- package/_esm/account-abstraction/accounts/toSmartAccount.js.map +1 -1
- package/_esm/chains/definitions/assetChainTestnet.js +28 -0
- package/_esm/chains/definitions/assetChainTestnet.js.map +1 -0
- package/_esm/chains/definitions/atletaOlympia.js +30 -0
- package/_esm/chains/definitions/atletaOlympia.js.map +1 -0
- package/_esm/chains/definitions/chips.js +19 -0
- package/_esm/chains/definitions/chips.js.map +1 -0
- package/_esm/chains/definitions/curtis.js +19 -0
- package/_esm/chains/definitions/curtis.js.map +1 -0
- package/_esm/chains/definitions/flowTestnet.js +6 -0
- package/_esm/chains/definitions/flowTestnet.js.map +1 -1
- package/_esm/chains/definitions/iota.js +25 -0
- package/_esm/chains/definitions/iota.js.map +1 -0
- package/_esm/chains/definitions/iotaTestnet.js +26 -0
- package/_esm/chains/definitions/iotaTestnet.js.map +1 -0
- package/_esm/chains/index.js +6 -0
- package/_esm/chains/index.js.map +1 -1
- package/_esm/errors/version.js +1 -1
- package/_types/account-abstraction/accounts/implementations/toCoinbaseSmartAccount.d.ts +1 -1
- package/_types/account-abstraction/accounts/implementations/toCoinbaseSmartAccount.d.ts.map +1 -1
- package/_types/account-abstraction/accounts/implementations/toSoladySmartAccount.d.ts +2 -1
- package/_types/account-abstraction/accounts/implementations/toSoladySmartAccount.d.ts.map +1 -1
- package/_types/account-abstraction/accounts/toSmartAccount.d.ts +1 -1
- package/_types/account-abstraction/accounts/toSmartAccount.d.ts.map +1 -1
- package/_types/account-abstraction/accounts/types.d.ts +12 -2
- package/_types/account-abstraction/accounts/types.d.ts.map +1 -1
- package/_types/chains/definitions/assetChainTestnet.d.ts +34 -0
- package/_types/chains/definitions/assetChainTestnet.d.ts.map +1 -0
- package/_types/chains/definitions/atletaOlympia.d.ts +35 -0
- package/_types/chains/definitions/atletaOlympia.d.ts.map +1 -0
- package/_types/chains/definitions/chips.d.ts +42 -0
- package/_types/chains/definitions/chips.d.ts.map +1 -0
- package/_types/chains/definitions/curtis.d.ts +35 -0
- package/_types/chains/definitions/curtis.d.ts.map +1 -0
- package/_types/chains/definitions/flowTestnet.d.ts +6 -8
- package/_types/chains/definitions/flowTestnet.d.ts.map +1 -1
- package/_types/chains/definitions/iota.d.ts +38 -0
- package/_types/chains/definitions/iota.d.ts.map +1 -0
- package/_types/chains/definitions/iotaTestnet.d.ts +38 -0
- package/_types/chains/definitions/iotaTestnet.d.ts.map +1 -0
- package/_types/chains/index.d.ts +6 -0
- package/_types/chains/index.d.ts.map +1 -1
- package/_types/errors/version.d.ts +1 -1
- package/account-abstraction/accounts/implementations/toCoinbaseSmartAccount.ts +1 -14
- package/account-abstraction/accounts/implementations/toSoladySmartAccount.ts +4 -14
- package/account-abstraction/accounts/toSmartAccount.ts +15 -2
- package/account-abstraction/accounts/types.ts +15 -3
- package/chains/definitions/assetChainTestnet.ts +28 -0
- package/chains/definitions/atletaOlympia.ts +30 -0
- package/chains/definitions/chips.ts +19 -0
- package/chains/definitions/curtis.ts +19 -0
- package/chains/definitions/flowTestnet.ts +6 -0
- package/chains/definitions/iota.ts +25 -0
- package/chains/definitions/iotaTestnet.ts +26 -0
- package/chains/index.ts +6 -0
- package/errors/version.ts +1 -1
- package/package.json +1 -1
@@ -1,4 +1,4 @@
|
|
1
|
-
import {
|
1
|
+
import type { Abi, Address, TypedData } from 'abitype'
|
2
2
|
|
3
3
|
import { parseAccount } from '../../../accounts/utils/parseAccount.js'
|
4
4
|
import { readContract } from '../../../actions/public/readContract.js'
|
@@ -34,6 +34,7 @@ export type ToSoladySmartAccountParameters<
|
|
34
34
|
}
|
35
35
|
| undefined
|
36
36
|
factoryAddress?: Address | undefined
|
37
|
+
getNonce?: SmartAccountImplementation['getNonce'] | undefined
|
37
38
|
owner: Address | Account
|
38
39
|
salt?: Hex | undefined
|
39
40
|
}
|
@@ -86,6 +87,7 @@ export async function toSoladySmartAccount<
|
|
86
87
|
version: '0.7',
|
87
88
|
},
|
88
89
|
factoryAddress = '0x5d82735936c6Cd5DE57cC3c1A799f6B2E6F933Df',
|
90
|
+
getNonce,
|
89
91
|
salt = '0x0',
|
90
92
|
} = parameters
|
91
93
|
|
@@ -103,6 +105,7 @@ export async function toSoladySmartAccount<
|
|
103
105
|
return toSmartAccount({
|
104
106
|
client,
|
105
107
|
entryPoint,
|
108
|
+
getNonce,
|
106
109
|
|
107
110
|
extend: { abi, factory },
|
108
111
|
|
@@ -144,19 +147,6 @@ export async function toSoladySmartAccount<
|
|
144
147
|
return { factory: factory.address, factoryData }
|
145
148
|
},
|
146
149
|
|
147
|
-
async getNonce({ key = 0n } = {}) {
|
148
|
-
const address = await this.getAddress()
|
149
|
-
const nonce = await readContract(client, {
|
150
|
-
abi: parseAbi([
|
151
|
-
'function getNonce(address, uint192) pure returns (uint256)',
|
152
|
-
]),
|
153
|
-
address: entryPoint.address,
|
154
|
-
functionName: 'getNonce',
|
155
|
-
args: [address, key],
|
156
|
-
})
|
157
|
-
return nonce
|
158
|
-
},
|
159
|
-
|
160
150
|
async getStubSignature() {
|
161
151
|
return '0xfffffffffffffffffffffffffffffff0000000000000000000000000000000007aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa1c'
|
162
152
|
},
|
@@ -1,6 +1,7 @@
|
|
1
|
-
import type
|
1
|
+
import { type Abi, parseAbi } from 'abitype'
|
2
2
|
|
3
3
|
import { getCode } from '../../actions/public/getCode.js'
|
4
|
+
import { readContract } from '../../actions/public/readContract.js'
|
4
5
|
import type { Prettify } from '../../types/utils.js'
|
5
6
|
import { getAction } from '../../utils/getAction.js'
|
6
7
|
import { createNonceManager } from '../../utils/nonceManager.js'
|
@@ -64,7 +65,19 @@ export async function toSmartAccount<
|
|
64
65
|
client: implementation.client,
|
65
66
|
}),
|
66
67
|
)
|
67
|
-
|
68
|
+
|
69
|
+
if (implementation.getNonce)
|
70
|
+
return await implementation.getNonce({ ...parameters, key })
|
71
|
+
|
72
|
+
const nonce = await readContract(implementation.client, {
|
73
|
+
abi: parseAbi([
|
74
|
+
'function getNonce(address, uint192) pure returns (uint256)',
|
75
|
+
]),
|
76
|
+
address: implementation.entryPoint.address,
|
77
|
+
functionName: 'getNonce',
|
78
|
+
args: [address, key],
|
79
|
+
})
|
80
|
+
return nonce
|
68
81
|
},
|
69
82
|
async isDeployed() {
|
70
83
|
if (deployed) return true
|
@@ -88,9 +88,11 @@ export type SmartAccountImplementation<
|
|
88
88
|
* // 1n
|
89
89
|
* ```
|
90
90
|
*/
|
91
|
-
getNonce
|
92
|
-
|
93
|
-
|
91
|
+
getNonce?:
|
92
|
+
| ((
|
93
|
+
parameters?: { key?: bigint | undefined } | undefined,
|
94
|
+
) => Promise<bigint>)
|
95
|
+
| undefined
|
94
96
|
/**
|
95
97
|
* Retrieves the User Operation "stub" signature for gas estimation.
|
96
98
|
*
|
@@ -184,6 +186,16 @@ export type SmartAccount<
|
|
184
186
|
{
|
185
187
|
/** Address of the Smart Account. */
|
186
188
|
address: Address
|
189
|
+
/**
|
190
|
+
* Retrieves the nonce of the Account.
|
191
|
+
*
|
192
|
+
* @example
|
193
|
+
* ```ts
|
194
|
+
* const nonce = await account.getNonce()
|
195
|
+
* // 1n
|
196
|
+
* ```
|
197
|
+
*/
|
198
|
+
getNonce: NonNullable<SmartAccountImplementation['getNonce']>
|
187
199
|
/** Whether or not the Smart Account has been deployed. */
|
188
200
|
isDeployed: () => Promise<boolean>
|
189
201
|
/** Type of account. */
|
@@ -0,0 +1,28 @@
|
|
1
|
+
import { defineChain } from '../../utils/chain/defineChain.js'
|
2
|
+
|
3
|
+
export const assetChainTestnet = /*#__PURE__*/ defineChain({
|
4
|
+
id: 42_421,
|
5
|
+
name: 'AssetChain Testnet',
|
6
|
+
nativeCurrency: {
|
7
|
+
decimals: 18,
|
8
|
+
name: 'Real World Asset',
|
9
|
+
symbol: 'RWA',
|
10
|
+
},
|
11
|
+
rpcUrls: {
|
12
|
+
default: { http: ['https://enugu-rpc.assetchain.org'] },
|
13
|
+
},
|
14
|
+
blockExplorers: {
|
15
|
+
default: {
|
16
|
+
name: 'Asset Chain Testnet Explorer',
|
17
|
+
url: 'https://scan-testnet.assetchain.org',
|
18
|
+
apiUrl: 'https://scan-testnet.assetchain.org/api',
|
19
|
+
},
|
20
|
+
},
|
21
|
+
testnet: true,
|
22
|
+
contracts: {
|
23
|
+
multicall3: {
|
24
|
+
address: '0x989F832D35988cb5e3eB001Fa2Fe789469EC31Ea',
|
25
|
+
blockCreated: 17177,
|
26
|
+
},
|
27
|
+
},
|
28
|
+
})
|
@@ -0,0 +1,30 @@
|
|
1
|
+
import { defineChain } from '../../utils/chain/defineChain.js'
|
2
|
+
|
3
|
+
export const atletaOlympia = /*#__PURE__*/ defineChain({
|
4
|
+
id: 2340,
|
5
|
+
name: 'Atleta Olympia',
|
6
|
+
nativeCurrency: { decimals: 18, name: 'Atla', symbol: 'ATLA' },
|
7
|
+
rpcUrls: {
|
8
|
+
default: {
|
9
|
+
http: [
|
10
|
+
'https://testnet-rpc.atleta.network:9944',
|
11
|
+
'https://testnet-rpc.atleta.network',
|
12
|
+
],
|
13
|
+
ws: ['wss://testnet-rpc.atleta.network:9944'],
|
14
|
+
},
|
15
|
+
},
|
16
|
+
blockExplorers: {
|
17
|
+
default: {
|
18
|
+
name: 'Atleta Olympia Explorer',
|
19
|
+
url: 'https://blockscout.atleta.network',
|
20
|
+
apiUrl: 'https://blockscout.atleta.network/api',
|
21
|
+
},
|
22
|
+
},
|
23
|
+
contracts: {
|
24
|
+
multicall3: {
|
25
|
+
address: '0x1472ec6392180fb84F345d2455bCC75B26577115',
|
26
|
+
blockCreated: 1076473,
|
27
|
+
},
|
28
|
+
},
|
29
|
+
testnet: true,
|
30
|
+
})
|
@@ -0,0 +1,19 @@
|
|
1
|
+
import { defineChain } from '../../utils/chain/defineChain.js'
|
2
|
+
|
3
|
+
export const chips = /*#__PURE__*/ defineChain({
|
4
|
+
id: 2882,
|
5
|
+
name: 'Chips Network',
|
6
|
+
network: 'CHIPS',
|
7
|
+
nativeCurrency: {
|
8
|
+
decimals: 18,
|
9
|
+
name: 'IOTA',
|
10
|
+
symbol: 'IOTA',
|
11
|
+
},
|
12
|
+
rpcUrls: {
|
13
|
+
default: {
|
14
|
+
http: [
|
15
|
+
'https://node.chips.ooo/wasp/api/v1/chains/iota1pp3d3mnap3ufmgqnjsnw344sqmf5svjh26y2khnmc89sv6788y3r207a8fn/evm',
|
16
|
+
],
|
17
|
+
},
|
18
|
+
},
|
19
|
+
})
|
@@ -0,0 +1,19 @@
|
|
1
|
+
import { defineChain } from '../../utils/chain/defineChain.js'
|
2
|
+
|
3
|
+
export const curtis = /*#__PURE__*/ defineChain({
|
4
|
+
id: 33_111,
|
5
|
+
name: 'Curtis',
|
6
|
+
nativeCurrency: { name: 'ApeCoin', symbol: 'APE', decimals: 18 },
|
7
|
+
rpcUrls: {
|
8
|
+
default: {
|
9
|
+
http: ['https://rpc.curtis.apechain.com'],
|
10
|
+
},
|
11
|
+
},
|
12
|
+
blockExplorers: {
|
13
|
+
default: {
|
14
|
+
name: 'Curtis Explorer',
|
15
|
+
url: 'https://explorer.curtis.apechain.com',
|
16
|
+
},
|
17
|
+
},
|
18
|
+
testnet: true,
|
19
|
+
})
|
@@ -0,0 +1,25 @@
|
|
1
|
+
import { defineChain } from '../../utils/chain/defineChain.js'
|
2
|
+
|
3
|
+
export const iota = /*#__PURE__*/ defineChain({
|
4
|
+
id: 8822,
|
5
|
+
name: 'IOTA EVM',
|
6
|
+
network: 'iotaevm',
|
7
|
+
nativeCurrency: {
|
8
|
+
decimals: 18,
|
9
|
+
name: 'IOTA',
|
10
|
+
symbol: 'IOTA',
|
11
|
+
},
|
12
|
+
rpcUrls: {
|
13
|
+
default: {
|
14
|
+
http: ['https://json-rpc.evm.iotaledger.net'],
|
15
|
+
webSocket: ['wss://ws.json-rpc.evm.iotaledger.net'],
|
16
|
+
},
|
17
|
+
},
|
18
|
+
blockExplorers: {
|
19
|
+
default: {
|
20
|
+
name: 'Explorer',
|
21
|
+
url: 'https://explorer.evm.iota.org',
|
22
|
+
apiUrl: 'https://explorer.evm.iota.org/api',
|
23
|
+
},
|
24
|
+
},
|
25
|
+
})
|
@@ -0,0 +1,26 @@
|
|
1
|
+
import { defineChain } from '../../utils/chain/defineChain.js'
|
2
|
+
|
3
|
+
export const iotaTestnet = /*#__PURE__*/ defineChain({
|
4
|
+
id: 1075,
|
5
|
+
name: 'IOTA EVM Testnet',
|
6
|
+
network: 'iotaevm-testnet',
|
7
|
+
nativeCurrency: {
|
8
|
+
decimals: 18,
|
9
|
+
name: 'IOTA',
|
10
|
+
symbol: 'IOTA',
|
11
|
+
},
|
12
|
+
rpcUrls: {
|
13
|
+
default: {
|
14
|
+
http: ['https://json-rpc.evm.testnet.iotaledger.net'],
|
15
|
+
webSocket: ['wss://ws.json-rpc.evm.testnet.iotaledger.net'],
|
16
|
+
},
|
17
|
+
},
|
18
|
+
blockExplorers: {
|
19
|
+
default: {
|
20
|
+
name: 'Explorer',
|
21
|
+
url: 'https://explorer.evm.testnet.iotaledger.net',
|
22
|
+
apiUrl: 'https://explorer.evm.testnet.iotaledger.net/api',
|
23
|
+
},
|
24
|
+
},
|
25
|
+
testnet: true,
|
26
|
+
})
|
package/chains/index.ts
CHANGED
@@ -10,6 +10,7 @@ export { apexTestnet } from './definitions/apexTestnet.js'
|
|
10
10
|
export { arbitrum } from './definitions/arbitrum.js'
|
11
11
|
export { arbitrumGoerli } from './definitions/arbitrumGoerli.js'
|
12
12
|
export { arbitrumNova } from './definitions/arbitrumNova.js'
|
13
|
+
export { assetChainTestnet } from './definitions/assetChainTestnet.js'
|
13
14
|
export { astar } from './definitions/astar.js'
|
14
15
|
export { astarZkEVM } from './definitions/astarZkEVM.js'
|
15
16
|
export { astarZkyoto } from './definitions/astarZkyoto.js'
|
@@ -17,6 +18,7 @@ export { arbitrumSepolia } from './definitions/arbitrumSepolia.js'
|
|
17
18
|
export { areonNetwork } from './definitions/areonNetwork.js'
|
18
19
|
export { areonNetworkTestnet } from './definitions/areonNetworkTestnet.js'
|
19
20
|
export { artelaTestnet } from './definitions/artelaTestnet.js'
|
21
|
+
export { atletaOlympia } from './definitions/atletaOlympia.js'
|
20
22
|
export { aurora } from './definitions/aurora.js'
|
21
23
|
export { auroraTestnet } from './definitions/auroraTestnet.js'
|
22
24
|
export { auroria } from './definitions/auroria.js'
|
@@ -57,6 +59,7 @@ export { canto } from './definitions/canto.js'
|
|
57
59
|
export { celo } from './definitions/celo.js'
|
58
60
|
export { celoAlfajores } from './definitions/celoAlfajores.js'
|
59
61
|
export { chiliz } from './definitions/chiliz.js'
|
62
|
+
export { chips } from './definitions/chips.js'
|
60
63
|
export { classic } from './definitions/classic.js'
|
61
64
|
export { confluxESpace } from './definitions/confluxESpace.js'
|
62
65
|
export { confluxESpaceTestnet } from './definitions/confluxESpaceTestnet.js'
|
@@ -66,6 +69,7 @@ export { cronos } from './definitions/cronos.js'
|
|
66
69
|
export { cronoszkEVMTestnet } from './definitions/cronoszkEVMTestnet.js'
|
67
70
|
export { cronosTestnet } from './definitions/cronosTestnet.js'
|
68
71
|
export { crossbell } from './definitions/crossbell.js'
|
72
|
+
export { curtis } from './definitions/curtis.js'
|
69
73
|
export { cyber } from './definitions/cyber.js'
|
70
74
|
export { cyberTestnet } from './definitions/cyberTestnet.js'
|
71
75
|
export { darwinia } from './definitions/darwinia.js'
|
@@ -135,6 +139,8 @@ export { holesky } from './definitions/holesky.js'
|
|
135
139
|
export { immutableZkEvm } from './definitions/immutableZkEvm.js'
|
136
140
|
export { immutableZkEvmTestnet } from './definitions/immutableZkEvmTestnet.js'
|
137
141
|
export { inEVM } from './definitions/inEVM.js'
|
142
|
+
export { iota } from './definitions/iota.js'
|
143
|
+
export { iotaTestnet } from './definitions/iotaTestnet.js'
|
138
144
|
export { kakarotSepolia } from './definitions/kakarotSepolia.js'
|
139
145
|
export { kava } from './definitions/kava.js'
|
140
146
|
export { kavaTestnet } from './definitions/kavaTestnet.js'
|
package/errors/version.ts
CHANGED
@@ -1 +1 @@
|
|
1
|
-
export const version = '2.19.
|
1
|
+
export const version = '2.19.6'
|