viem 2.27.0 → 2.27.1-canary-20250417045626

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.
Files changed (91) hide show
  1. package/CHANGELOG.md +14 -0
  2. package/_cjs/account-abstraction/accounts/implementations/toCoinbaseSmartAccount.js +17 -10
  3. package/_cjs/account-abstraction/accounts/implementations/toCoinbaseSmartAccount.js.map +1 -1
  4. package/_cjs/chains/definitions/coreTestnet1.js +31 -0
  5. package/_cjs/chains/definitions/coreTestnet1.js.map +1 -0
  6. package/_cjs/chains/definitions/coreTestnet2.js +31 -0
  7. package/_cjs/chains/definitions/coreTestnet2.js.map +1 -0
  8. package/_cjs/chains/definitions/metis.js +1 -2
  9. package/_cjs/chains/definitions/metis.js.map +1 -1
  10. package/_cjs/chains/definitions/metisSepolia.js +1 -1
  11. package/_cjs/chains/definitions/metisSepolia.js.map +1 -1
  12. package/_cjs/chains/definitions/newton.js +1 -1
  13. package/_cjs/chains/definitions/newton.js.map +1 -1
  14. package/_cjs/chains/definitions/skale/calypso.js +2 -2
  15. package/_cjs/chains/definitions/skale/calypso.js.map +1 -1
  16. package/_cjs/chains/definitions/skale/europa.js +2 -2
  17. package/_cjs/chains/definitions/skale/europa.js.map +1 -1
  18. package/_cjs/chains/definitions/skale/exorde.js +1 -1
  19. package/_cjs/chains/definitions/skale/nebula.js +2 -2
  20. package/_cjs/chains/definitions/skale/nebula.js.map +1 -1
  21. package/_cjs/chains/definitions/skale/titan.js +2 -2
  22. package/_cjs/chains/definitions/skale/titan.js.map +1 -1
  23. package/_cjs/chains/definitions/skale/titanTestnet.js +1 -1
  24. package/_cjs/chains/definitions/skale/titanTestnet.js.map +1 -1
  25. package/_cjs/chains/index.js +15 -11
  26. package/_cjs/chains/index.js.map +1 -1
  27. package/_cjs/errors/version.js +1 -1
  28. package/_cjs/errors/version.js.map +1 -1
  29. package/_esm/account-abstraction/accounts/implementations/toCoinbaseSmartAccount.js +16 -9
  30. package/_esm/account-abstraction/accounts/implementations/toCoinbaseSmartAccount.js.map +1 -1
  31. package/_esm/chains/definitions/coreTestnet1.js +28 -0
  32. package/_esm/chains/definitions/coreTestnet1.js.map +1 -0
  33. package/_esm/chains/definitions/coreTestnet2.js +28 -0
  34. package/_esm/chains/definitions/coreTestnet2.js.map +1 -0
  35. package/_esm/chains/definitions/metis.js +1 -2
  36. package/_esm/chains/definitions/metis.js.map +1 -1
  37. package/_esm/chains/definitions/metisSepolia.js +1 -1
  38. package/_esm/chains/definitions/metisSepolia.js.map +1 -1
  39. package/_esm/chains/definitions/newton.js +1 -1
  40. package/_esm/chains/definitions/newton.js.map +1 -1
  41. package/_esm/chains/definitions/skale/calypso.js +2 -2
  42. package/_esm/chains/definitions/skale/calypso.js.map +1 -1
  43. package/_esm/chains/definitions/skale/europa.js +2 -2
  44. package/_esm/chains/definitions/skale/europa.js.map +1 -1
  45. package/_esm/chains/definitions/skale/exorde.js +1 -1
  46. package/_esm/chains/definitions/skale/nebula.js +2 -2
  47. package/_esm/chains/definitions/skale/nebula.js.map +1 -1
  48. package/_esm/chains/definitions/skale/titan.js +2 -2
  49. package/_esm/chains/definitions/skale/titan.js.map +1 -1
  50. package/_esm/chains/definitions/skale/titanTestnet.js +1 -1
  51. package/_esm/chains/definitions/skale/titanTestnet.js.map +1 -1
  52. package/_esm/chains/index.js +5 -0
  53. package/_esm/chains/index.js.map +1 -1
  54. package/_esm/errors/version.js +1 -1
  55. package/_esm/errors/version.js.map +1 -1
  56. package/_types/account-abstraction/accounts/implementations/toCoinbaseSmartAccount.d.ts +25 -2
  57. package/_types/account-abstraction/accounts/implementations/toCoinbaseSmartAccount.d.ts.map +1 -1
  58. package/_types/chains/definitions/coreTestnet1.d.ts +35 -0
  59. package/_types/chains/definitions/coreTestnet1.d.ts.map +1 -0
  60. package/_types/chains/definitions/coreTestnet2.d.ts +35 -0
  61. package/_types/chains/definitions/coreTestnet2.d.ts.map +1 -0
  62. package/_types/chains/definitions/metis.d.ts +2 -1
  63. package/_types/chains/definitions/metis.d.ts.map +1 -1
  64. package/_types/chains/definitions/metisSepolia.d.ts +2 -1
  65. package/_types/chains/definitions/metisSepolia.d.ts.map +1 -1
  66. package/_types/chains/definitions/newton.d.ts +1 -1
  67. package/_types/chains/definitions/skale/calypso.d.ts +1 -1
  68. package/_types/chains/definitions/skale/europa.d.ts +1 -1
  69. package/_types/chains/definitions/skale/exorde.d.ts +1 -1
  70. package/_types/chains/definitions/skale/nebula.d.ts +1 -1
  71. package/_types/chains/definitions/skale/titan.d.ts +1 -1
  72. package/_types/chains/definitions/skale/titanTestnet.d.ts +1 -1
  73. package/_types/chains/index.d.ts +5 -0
  74. package/_types/chains/index.d.ts.map +1 -1
  75. package/_types/errors/version.d.ts +1 -1
  76. package/_types/errors/version.d.ts.map +1 -1
  77. package/account-abstraction/accounts/implementations/toCoinbaseSmartAccount.ts +24 -9
  78. package/chains/definitions/coreTestnet1.ts +28 -0
  79. package/chains/definitions/coreTestnet2.ts +28 -0
  80. package/chains/definitions/metis.ts +1 -2
  81. package/chains/definitions/metisSepolia.ts +1 -1
  82. package/chains/definitions/newton.ts +1 -1
  83. package/chains/definitions/skale/calypso.ts +2 -2
  84. package/chains/definitions/skale/europa.ts +2 -2
  85. package/chains/definitions/skale/exorde.ts +1 -1
  86. package/chains/definitions/skale/nebula.ts +2 -2
  87. package/chains/definitions/skale/titan.ts +2 -2
  88. package/chains/definitions/skale/titanTestnet.ts +1 -1
  89. package/chains/index.ts +5 -0
  90. package/errors/version.ts +1 -1
  91. package/package.json +1 -1
@@ -177,14 +177,14 @@ export async function toCoinbaseSmartAccount(
177
177
  async sign(parameters) {
178
178
  const address = await this.getAddress()
179
179
 
180
- const hash = toReplaySafeHash({
180
+ const typedData = toReplaySafeTypedData({
181
181
  address,
182
182
  chainId: client.chain!.id,
183
183
  hash: parameters.hash,
184
184
  })
185
185
 
186
186
  if (owner.type === 'address') throw new Error('owner cannot sign')
187
- const signature = await sign({ hash, owner })
187
+ const signature = await signTypedData({ owner, typedData })
188
188
 
189
189
  return wrapSignature({
190
190
  ownerIndex,
@@ -196,14 +196,14 @@ export async function toCoinbaseSmartAccount(
196
196
  const { message } = parameters
197
197
  const address = await this.getAddress()
198
198
 
199
- const hash = toReplaySafeHash({
199
+ const typedData = toReplaySafeTypedData({
200
200
  address,
201
201
  chainId: client.chain!.id,
202
202
  hash: hashMessage(message),
203
203
  })
204
204
 
205
205
  if (owner.type === 'address') throw new Error('owner cannot sign')
206
- const signature = await sign({ hash, owner })
206
+ const signature = await signTypedData({ owner, typedData })
207
207
 
208
208
  return wrapSignature({
209
209
  ownerIndex,
@@ -216,7 +216,7 @@ export async function toCoinbaseSmartAccount(
216
216
  parameters as TypedDataDefinition<TypedData, string>
217
217
  const address = await this.getAddress()
218
218
 
219
- const hash = toReplaySafeHash({
219
+ const typedData = toReplaySafeTypedData({
220
220
  address,
221
221
  chainId: client.chain!.id,
222
222
  hash: hashTypedData({
@@ -228,7 +228,7 @@ export async function toCoinbaseSmartAccount(
228
228
  })
229
229
 
230
230
  if (owner.type === 'address') throw new Error('owner cannot sign')
231
- const signature = await sign({ hash, owner })
231
+ const signature = await signTypedData({ owner, typedData })
232
232
 
233
233
  return wrapSignature({
234
234
  ownerIndex,
@@ -278,6 +278,21 @@ export async function toCoinbaseSmartAccount(
278
278
  // Utilities
279
279
  /////////////////////////////////////////////////////////////////////////////////////////////
280
280
 
281
+ /** @internal */
282
+ export async function signTypedData({
283
+ typedData,
284
+ owner,
285
+ }: {
286
+ typedData: TypedDataDefinition
287
+ owner: OneOf<LocalAccount | WebAuthnAccount>
288
+ }) {
289
+ if (owner.type === 'local' && owner.signTypedData)
290
+ return owner.signTypedData(typedData)
291
+
292
+ const hash = hashTypedData(typedData)
293
+ return sign({ hash, owner })
294
+ }
295
+
281
296
  /** @internal */
282
297
  export async function sign({
283
298
  hash,
@@ -297,12 +312,12 @@ export async function sign({
297
312
  }
298
313
 
299
314
  /** @internal */
300
- export function toReplaySafeHash({
315
+ export function toReplaySafeTypedData({
301
316
  address,
302
317
  chainId,
303
318
  hash,
304
319
  }: { address: Address; chainId: number; hash: Hash }) {
305
- return hashTypedData({
320
+ return {
306
321
  domain: {
307
322
  chainId,
308
323
  name: 'Coinbase Smart Wallet',
@@ -321,7 +336,7 @@ export function toReplaySafeHash({
321
336
  message: {
322
337
  hash,
323
338
  },
324
- })
339
+ } as const
325
340
  }
326
341
 
327
342
  /** @internal */
@@ -0,0 +1,28 @@
1
+ import { defineChain } from '../../utils/chain/defineChain.js'
2
+
3
+ export const coreTestnet1 = /*#__PURE__*/ defineChain({
4
+ id: 1115,
5
+ name: 'Core Testnet',
6
+ nativeCurrency: {
7
+ decimals: 18,
8
+ name: 'tCore',
9
+ symbol: 'TCORE',
10
+ },
11
+ rpcUrls: {
12
+ default: { http: ['https://rpc.test.btcs.network'] },
13
+ },
14
+ blockExplorers: {
15
+ default: {
16
+ name: 'Core Testnet',
17
+ url: 'https://scan.test.btcs.network',
18
+ apiUrl: 'https://api.test.btcs.network/api',
19
+ },
20
+ },
21
+ contracts: {
22
+ multicall3: {
23
+ address: '0xCcddF20A1932537123C2E48Bd8e00b108B8f7569',
24
+ blockCreated: 29_350_509,
25
+ },
26
+ },
27
+ testnet: true,
28
+ })
@@ -0,0 +1,28 @@
1
+ import { defineChain } from '../../utils/chain/defineChain.js'
2
+
3
+ export const coreTestnet2 = /*#__PURE__*/ defineChain({
4
+ id: 1114,
5
+ name: 'Core Testnet2',
6
+ nativeCurrency: {
7
+ decimals: 18,
8
+ name: 'tCore2',
9
+ symbol: 'TCORE2',
10
+ },
11
+ rpcUrls: {
12
+ default: { http: ['https://rpc.test2.btcs.network'] },
13
+ },
14
+ blockExplorers: {
15
+ default: {
16
+ name: 'Core Testnet2',
17
+ url: 'https://scan.test2.btcs.network',
18
+ apiUrl: 'https://api.test2.btcs.network/api',
19
+ },
20
+ },
21
+ contracts: {
22
+ multicall3: {
23
+ address: '0x3CB285ff3Cd5C7C7e570b1E7DE3De17A0f985e56',
24
+ blockCreated: 3_838_600,
25
+ },
26
+ },
27
+ testnet: true,
28
+ })
@@ -17,11 +17,10 @@ export const metis = /*#__PURE__*/ defineChain({
17
17
  'https://metis-andromeda.rpc.thirdweb.com',
18
18
  'https://metis-andromeda.gateway.tenderly.co',
19
19
  'https://metis.api.onfinality.io/public',
20
- 'wss://metis-rpc.publicnode.com',
21
20
  'https://andromeda.metis.io/?owner=1088',
22
- 'wss://metis.drpc.org',
23
21
  'https://metis-mainnet.public.blastapi.io',
24
22
  ],
23
+ webSocket: ['wss://metis-rpc.publicnode.com', 'wss://metis.drpc.org'],
25
24
  },
26
25
  },
27
26
  blockExplorers: {
@@ -11,11 +11,11 @@ export const metisSepolia = /*#__PURE__*/ defineChain({
11
11
  rpcUrls: {
12
12
  default: {
13
13
  http: [
14
- 'wss://metis-sepolia-rpc.publicnode.com',
15
14
  'https://sepolia.metisdevops.link',
16
15
  'https://metis-sepolia-rpc.publicnode.com',
17
16
  'https://metis-sepolia.gateway.tenderly.co',
18
17
  ],
18
+ webSocket: ['wss://metis-sepolia-rpc.publicnode.com'],
19
19
  },
20
20
  },
21
21
  blockExplorers: {
@@ -10,7 +10,7 @@ export const newton = /*#__PURE__*/ defineChain({
10
10
  },
11
11
  rpcUrls: {
12
12
  default: {
13
- http: ['hhttps://global.rpc.mainnet.newtonproject.org'],
13
+ http: ['https://global.rpc.mainnet.newtonproject.org'],
14
14
  },
15
15
  },
16
16
  blockExplorers: {
@@ -2,7 +2,7 @@ import { defineChain } from '../../../utils/chain/defineChain.js'
2
2
 
3
3
  export const skaleCalypso = /*#__PURE__*/ defineChain({
4
4
  id: 1_564_830_818,
5
- name: 'SKALE | Calypso NFT Hub',
5
+ name: 'SKALE Calypso Hub',
6
6
  nativeCurrency: { name: 'sFUEL', symbol: 'sFUEL', decimals: 18 },
7
7
  rpcUrls: {
8
8
  default: {
@@ -21,7 +21,7 @@ export const skaleCalypso = /*#__PURE__*/ defineChain({
21
21
  contracts: {
22
22
  multicall3: {
23
23
  address: '0xcA11bde05977b3631167028862bE2a173976CA11',
24
- blockCreated: 3107626,
24
+ blockCreated: 3_107_626,
25
25
  },
26
26
  },
27
27
  })
@@ -2,7 +2,7 @@ import { defineChain } from '../../../utils/chain/defineChain.js'
2
2
 
3
3
  export const skaleEuropa = /*#__PURE__*/ defineChain({
4
4
  id: 2_046_399_126,
5
- name: 'SKALE | Europa Liquidity Hub',
5
+ name: 'SKALE Europa Hub',
6
6
  nativeCurrency: { name: 'sFUEL', symbol: 'sFUEL', decimals: 18 },
7
7
  rpcUrls: {
8
8
  default: {
@@ -19,7 +19,7 @@ export const skaleEuropa = /*#__PURE__*/ defineChain({
19
19
  contracts: {
20
20
  multicall3: {
21
21
  address: '0xcA11bde05977b3631167028862bE2a173976CA11',
22
- blockCreated: 3113495,
22
+ blockCreated: 3_113_495,
23
23
  },
24
24
  },
25
25
  })
@@ -2,7 +2,7 @@ import { defineChain } from '../../../utils/chain/defineChain.js'
2
2
 
3
3
  export const skaleExorde = /*#__PURE__*/ defineChain({
4
4
  id: 2_139_927_552,
5
- name: 'SKALE | Exorde',
5
+ name: 'Exorde Network',
6
6
  nativeCurrency: { name: 'sFUEL', symbol: 'sFUEL', decimals: 18 },
7
7
  rpcUrls: {
8
8
  default: {
@@ -2,7 +2,7 @@ import { defineChain } from '../../../utils/chain/defineChain.js'
2
2
 
3
3
  export const skaleNebula = /*#__PURE__*/ defineChain({
4
4
  id: 1_482_601_649,
5
- name: 'SKALE | Nebula Gaming Hub',
5
+ name: 'SKALE Nebula Hub',
6
6
  nativeCurrency: { name: 'sFUEL', symbol: 'sFUEL', decimals: 18 },
7
7
  rpcUrls: {
8
8
  default: {
@@ -19,7 +19,7 @@ export const skaleNebula = /*#__PURE__*/ defineChain({
19
19
  contracts: {
20
20
  multicall3: {
21
21
  address: '0xcA11bde05977b3631167028862bE2a173976CA11',
22
- blockCreated: 2372986,
22
+ blockCreated: 2_372_986,
23
23
  },
24
24
  },
25
25
  })
@@ -2,7 +2,7 @@ import { defineChain } from '../../../utils/chain/defineChain.js'
2
2
 
3
3
  export const skaleTitan = /*#__PURE__*/ defineChain({
4
4
  id: 1_350_216_234,
5
- name: 'SKALE | Titan Community Hub',
5
+ name: 'SKALE Titan Hub',
6
6
  nativeCurrency: { name: 'sFUEL', symbol: 'sFUEL', decimals: 18 },
7
7
  rpcUrls: {
8
8
  default: {
@@ -19,7 +19,7 @@ export const skaleTitan = /*#__PURE__*/ defineChain({
19
19
  contracts: {
20
20
  multicall3: {
21
21
  address: '0xcA11bde05977b3631167028862bE2a173976CA11',
22
- blockCreated: 2076458,
22
+ blockCreated: 2_076_458,
23
23
  },
24
24
  },
25
25
  })
@@ -2,7 +2,7 @@ import { defineChain } from '../../../utils/chain/defineChain.js'
2
2
 
3
3
  export const skaleTitanTestnet = /*#__PURE__*/ defineChain({
4
4
  id: 1_020_352_220,
5
- name: 'SKALE Titan Hub',
5
+ name: 'SKALE Titan Testnet',
6
6
  nativeCurrency: { name: 'sFUEL', symbol: 'sFUEL', decimals: 18 },
7
7
  rpcUrls: {
8
8
  default: {
package/chains/index.ts CHANGED
@@ -98,6 +98,8 @@ export { coinex } from './definitions/coinex.js'
98
98
  export { confluxESpace } from './definitions/confluxESpace.js'
99
99
  export { confluxESpaceTestnet } from './definitions/confluxESpaceTestnet.js'
100
100
  export { coreDao } from './definitions/coreDao.js'
101
+ export { coreTestnet1 } from './definitions/coreTestnet1.js'
102
+ export { coreTestnet2 } from './definitions/coreTestnet2.js'
101
103
  export { corn } from './definitions/corn.js'
102
104
  export { cornTestnet } from './definitions/cornTestnet.js'
103
105
  export { crab } from './definitions/crab.js'
@@ -461,13 +463,16 @@ export { skaleBlockBrawlers } from './definitions/skale/brawl.js'
461
463
  export { skaleCalypso } from './definitions/skale/calypso.js'
462
464
  export { skaleCalypsoTestnet } from './definitions/skale/calypsoTestnet.js'
463
465
  export { skaleCryptoBlades } from './definitions/skale/cryptoBlades.js'
466
+ /** @deprecated */
464
467
  export { skaleCryptoColosseum } from './definitions/skale/cryptoColosseum.js'
465
468
  export { skaleEuropa } from './definitions/skale/europa.js'
466
469
  export { skaleEuropaTestnet } from './definitions/skale/europaTestnet.js'
467
470
  export { skaleExorde } from './definitions/skale/exorde.js'
471
+ /** @deprecated */
468
472
  export { skaleHumanProtocol } from './definitions/skale/humanProtocol.js'
469
473
  export { skaleNebula } from './definitions/skale/nebula.js'
470
474
  export { skaleNebulaTestnet } from './definitions/skale/nebulaTestnet.js'
475
+ /** @deprecated Use `skaleEuropa` instead.*/
471
476
  export { skaleRazor } from './definitions/skale/razor.js'
472
477
  export { skaleTitan } from './definitions/skale/titan.js'
473
478
  export { skaleTitanTestnet } from './definitions/skale/titanTestnet.js'
package/errors/version.ts CHANGED
@@ -1 +1 @@
1
- export const version = '2.27.0'
1
+ export const version = '2.27.1-canary-20250417045626'
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "viem",
3
3
  "description": "TypeScript Interface for Ethereum",
4
- "version": "2.27.0",
4
+ "version": "2.27.1-canary-20250417045626",
5
5
  "main": "./_cjs/index.js",
6
6
  "module": "./_esm/index.js",
7
7
  "types": "./_types/index.d.ts",