viem 2.55.7 → 2.55.10

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 (117) hide show
  1. package/CHANGELOG.md +36 -0
  2. package/_cjs/account-abstraction/utils/formatters/userOperationRequest.js +1 -1
  3. package/_cjs/account-abstraction/utils/formatters/userOperationRequest.js.map +1 -1
  4. package/_cjs/actions/public/estimateFeesPerGas.js +1 -1
  5. package/_cjs/actions/public/estimateFeesPerGas.js.map +1 -1
  6. package/_cjs/actions/public/fillTransaction.js +1 -1
  7. package/_cjs/actions/public/fillTransaction.js.map +1 -1
  8. package/_cjs/chains/definitions/0gMainnet.js +1 -1
  9. package/_cjs/chains/definitions/0gMainnet.js.map +1 -1
  10. package/_cjs/chains/definitions/0gTestnet.js +2 -2
  11. package/_cjs/chains/definitions/0gTestnet.js.map +1 -1
  12. package/_cjs/chains/definitions/eduChain.js +9 -2
  13. package/_cjs/chains/definitions/eduChain.js.map +1 -1
  14. package/_cjs/chains/definitions/eduChainTestnet.js +3 -4
  15. package/_cjs/chains/definitions/eduChainTestnet.js.map +1 -1
  16. package/_cjs/chains/definitions/polygonAmoy.js +1 -1
  17. package/_cjs/chains/definitions/polygonAmoy.js.map +1 -1
  18. package/_cjs/errors/version.js +1 -1
  19. package/_cjs/errors/version.js.map +1 -1
  20. package/_cjs/tempo/Abis.js +918 -543
  21. package/_cjs/tempo/Abis.js.map +1 -1
  22. package/_cjs/tempo/Addresses.js +2 -1
  23. package/_cjs/tempo/Addresses.js.map +1 -1
  24. package/_cjs/tempo/Decorator.js.map +1 -1
  25. package/_cjs/tempo/actions/earn.js +171 -137
  26. package/_cjs/tempo/actions/earn.js.map +1 -1
  27. package/_cjs/tempo/chainConfig.js +3 -1
  28. package/_cjs/tempo/chainConfig.js.map +1 -1
  29. package/_cjs/tempo/zones/Abis.js +6 -0
  30. package/_cjs/tempo/zones/Abis.js.map +1 -1
  31. package/_cjs/tempo/zones/Addresses.js +17 -0
  32. package/_cjs/tempo/zones/Addresses.js.map +1 -0
  33. package/_cjs/tempo/zones/index.js +2 -2
  34. package/_cjs/tempo/zones/index.js.map +1 -1
  35. package/_cjs/tempo/zones/zone.js +30 -16
  36. package/_cjs/tempo/zones/zone.js.map +1 -1
  37. package/_esm/account-abstraction/utils/formatters/userOperationRequest.js +1 -1
  38. package/_esm/account-abstraction/utils/formatters/userOperationRequest.js.map +1 -1
  39. package/_esm/actions/public/estimateFeesPerGas.js +1 -1
  40. package/_esm/actions/public/estimateFeesPerGas.js.map +1 -1
  41. package/_esm/actions/public/fillTransaction.js +1 -1
  42. package/_esm/actions/public/fillTransaction.js.map +1 -1
  43. package/_esm/chains/definitions/0gMainnet.js +1 -1
  44. package/_esm/chains/definitions/0gMainnet.js.map +1 -1
  45. package/_esm/chains/definitions/0gTestnet.js +2 -2
  46. package/_esm/chains/definitions/0gTestnet.js.map +1 -1
  47. package/_esm/chains/definitions/eduChain.js +9 -2
  48. package/_esm/chains/definitions/eduChain.js.map +1 -1
  49. package/_esm/chains/definitions/eduChainTestnet.js +3 -4
  50. package/_esm/chains/definitions/eduChainTestnet.js.map +1 -1
  51. package/_esm/chains/definitions/polygonAmoy.js +1 -1
  52. package/_esm/chains/definitions/polygonAmoy.js.map +1 -1
  53. package/_esm/errors/version.js +1 -1
  54. package/_esm/errors/version.js.map +1 -1
  55. package/_esm/tempo/Abis.js +919 -544
  56. package/_esm/tempo/Abis.js.map +1 -1
  57. package/_esm/tempo/Addresses.js +1 -0
  58. package/_esm/tempo/Addresses.js.map +1 -1
  59. package/_esm/tempo/Decorator.js.map +1 -1
  60. package/_esm/tempo/actions/earn.js +214 -174
  61. package/_esm/tempo/actions/earn.js.map +1 -1
  62. package/_esm/tempo/chainConfig.js +3 -1
  63. package/_esm/tempo/chainConfig.js.map +1 -1
  64. package/_esm/tempo/zones/Abis.js +6 -0
  65. package/_esm/tempo/zones/Abis.js.map +1 -1
  66. package/_esm/tempo/zones/Addresses.js +14 -0
  67. package/_esm/tempo/zones/Addresses.js.map +1 -0
  68. package/_esm/tempo/zones/index.js +2 -1
  69. package/_esm/tempo/zones/index.js.map +1 -1
  70. package/_esm/tempo/zones/zone.js +29 -15
  71. package/_esm/tempo/zones/zone.js.map +1 -1
  72. package/_types/chains/definitions/0gMainnet.d.ts +1 -1
  73. package/_types/chains/definitions/0gTestnet.d.ts +3 -3
  74. package/_types/chains/definitions/eduChain.d.ts +9 -11
  75. package/_types/chains/definitions/eduChain.d.ts.map +1 -1
  76. package/_types/chains/definitions/eduChainTestnet.d.ts +3 -4
  77. package/_types/chains/definitions/eduChainTestnet.d.ts.map +1 -1
  78. package/_types/chains/definitions/polygonAmoy.d.ts +1 -1
  79. package/_types/errors/version.d.ts +1 -1
  80. package/_types/errors/version.d.ts.map +1 -1
  81. package/_types/package.json +1 -0
  82. package/_types/tempo/Abis.d.ts +1423 -777
  83. package/_types/tempo/Abis.d.ts.map +1 -1
  84. package/_types/tempo/Addresses.d.ts +1 -0
  85. package/_types/tempo/Addresses.d.ts.map +1 -1
  86. package/_types/tempo/Decorator.d.ts +21 -15
  87. package/_types/tempo/Decorator.d.ts.map +1 -1
  88. package/_types/tempo/actions/earn.d.ts +850 -1913
  89. package/_types/tempo/actions/earn.d.ts.map +1 -1
  90. package/_types/tempo/chainConfig.d.ts.map +1 -1
  91. package/_types/tempo/zones/Abis.d.ts +20 -0
  92. package/_types/tempo/zones/Abis.d.ts.map +1 -1
  93. package/_types/tempo/zones/Addresses.d.ts +13 -0
  94. package/_types/tempo/zones/Addresses.d.ts.map +1 -0
  95. package/_types/tempo/zones/index.d.ts +2 -1
  96. package/_types/tempo/zones/index.d.ts.map +1 -1
  97. package/_types/tempo/zones/zone.d.ts +14 -33
  98. package/_types/tempo/zones/zone.d.ts.map +1 -1
  99. package/account-abstraction/utils/formatters/userOperationRequest.ts +4 -3
  100. package/actions/public/estimateFeesPerGas.ts +1 -1
  101. package/actions/public/fillTransaction.ts +1 -1
  102. package/chains/definitions/0gMainnet.ts +1 -1
  103. package/chains/definitions/0gTestnet.ts +2 -2
  104. package/chains/definitions/eduChain.ts +9 -2
  105. package/chains/definitions/eduChainTestnet.ts +3 -4
  106. package/chains/definitions/polygonAmoy.ts +1 -1
  107. package/errors/version.ts +1 -1
  108. package/package.json +2 -2
  109. package/tempo/Abis.ts +920 -545
  110. package/tempo/Addresses.ts +1 -0
  111. package/tempo/Decorator.ts +21 -15
  112. package/tempo/actions/earn.ts +311 -250
  113. package/tempo/chainConfig.ts +5 -1
  114. package/tempo/zones/Abis.ts +6 -0
  115. package/tempo/zones/Addresses.ts +15 -0
  116. package/tempo/zones/index.ts +1 -1
  117. package/tempo/zones/zone.ts +38 -17
@@ -68,7 +68,11 @@ export const chainConfig = {
68
68
  // Actual tx has larger keychain/webAuthn sigs + real fee payer sig, costing more intrinsic gas.
69
69
  if (phase === 'afterFillParameters') {
70
70
  // Fee payer signature covers the gas limit, so the relay must set it before signing and Viem must not change it afterward.
71
- if (request.feePayer && !request.feePayerSignature) {
71
+ if (
72
+ typeof request.gas !== 'undefined' &&
73
+ request.feePayer &&
74
+ !request.feePayerSignature
75
+ ) {
72
76
  if (request.keyAuthorization?.signature.type === 'webAuthn')
73
77
  request.gas = (request.gas ?? 0n) + 20_000n
74
78
  else if (request.account?.source === 'accessKey')
@@ -6,6 +6,8 @@ export const zoneFactory = [
6
6
  { name: 'zoneId', type: 'uint32', indexed: true },
7
7
  { name: 'portal', type: 'address', indexed: true },
8
8
  { name: 'initialToken', type: 'address', indexed: false },
9
+ { name: 'accessMode', type: 'bool', indexed: false },
10
+ { name: 'gatewayMode', type: 'bool', indexed: false },
9
11
  { name: 'admin', type: 'address', indexed: false },
10
12
  { name: 'sequencers', type: 'address[]', indexed: false },
11
13
  { name: 'threshold', type: 'uint8', indexed: false },
@@ -42,6 +44,10 @@ export const zoneFactory = [
42
44
  type: 'tuple',
43
45
  components: [
44
46
  { name: 'initialToken', type: 'address' },
47
+ { name: 'accessMode', type: 'bool' },
48
+ { name: 'gatewayMode', type: 'bool' },
49
+ { name: 'allowedAccounts', type: 'address[]' },
50
+ { name: 'zoneGateways', type: 'address[]' },
45
51
  { name: 'admin', type: 'address' },
46
52
  { name: 'sequencers', type: 'address[]' },
47
53
  { name: 'threshold', type: 'uint8' },
@@ -0,0 +1,15 @@
1
+ import { tempoModerato } from '../../chains/definitions/tempoModerato.js'
2
+
3
+ export const messenger = {
4
+ [tempoModerato.id]: {
5
+ 1: '0x254356112cCf6f32fAd84F16CC5E0A0cCA17Beb7',
6
+ },
7
+ } as const satisfies Record<number, Record<number, `0x${string}`>>
8
+
9
+ export const portal = {
10
+ [tempoModerato.id]: {
11
+ 1: '0x59831A17340EE14FE136d751EfbeA8b630470fD2',
12
+ 6: '0x7069DeC4E64Fd07334A0933eDe836C17259c9B23',
13
+ 7: '0x3F5296303400B56271b476F5A0B9cBF74350D6Ac',
14
+ },
15
+ } as const satisfies Record<number, Record<number, `0x${string}`>>
@@ -1,10 +1,10 @@
1
1
  // biome-ignore lint/performance/noBarrelFile: entrypoint module
2
2
  export * as Abis from './Abis.js'
3
+ export * as Addresses from './Addresses.js'
3
4
  export { http, type ZoneHttpConfig } from './transport.js'
4
5
  export {
5
6
  from,
6
7
  getPortalAddress,
7
- portalAddresses,
8
8
  zone,
9
9
  zoneModerato,
10
10
  } from './zone.js'
@@ -3,20 +3,14 @@ import { tempo } from '../../chains/definitions/tempo.js'
3
3
  import { tempoModerato } from '../../chains/definitions/tempoModerato.js'
4
4
  import { defineChain } from '../../utils/chain/defineChain.js'
5
5
  import { chainConfig } from '../chainConfig.js'
6
-
7
- export const portalAddresses = {
8
- [tempoModerato.id]: {
9
- 6: '0x7069DeC4E64Fd07334A0933eDe836C17259c9B23',
10
- 7: '0x3F5296303400B56271b476F5A0B9cBF74350D6Ac',
11
- },
12
- } as const satisfies Record<number, Record<number, `0x${string}`>>
6
+ import * as Addresses from './Addresses.js'
13
7
 
14
8
  export function getPortalAddress(
15
9
  chainId: number,
16
10
  zoneId: number,
17
11
  ): `0x${string}` {
18
12
  const address = (
19
- portalAddresses as Record<number, Record<number, `0x${string}`>>
13
+ Addresses.portal as Record<number, Record<number, `0x${string}`>>
20
14
  )[chainId]?.[zoneId]
21
15
  if (!address)
22
16
  throw new Error(
@@ -25,21 +19,45 @@ export function getPortalAddress(
25
19
  return address
26
20
  }
27
21
 
22
+ type ZoneContracts = {
23
+ messenger: Record<number, { address: `0x${string}` } | undefined>
24
+ portal: Record<number, { address: `0x${string}` } | undefined>
25
+ }
26
+
28
27
  type Override = {
28
+ contracts?: ZoneContracts | undefined
29
29
  name: string
30
30
  rpcUrl: string
31
31
  }
32
32
 
33
33
  const overrides = {
34
- 6: {
35
- name: 'Zone A',
36
- rpcUrl: 'https://rpc-zone-a.testnet.tempo.xyz',
37
- },
38
- 7: {
39
- name: 'Zone B',
40
- rpcUrl: 'https://rpc-zone-b.testnet.tempo.xyz',
34
+ [tempoModerato.id]: {
35
+ 1: {
36
+ contracts: {
37
+ messenger: {
38
+ [tempoModerato.id]: {
39
+ address: Addresses.messenger[tempoModerato.id][1],
40
+ },
41
+ },
42
+ portal: {
43
+ [tempoModerato.id]: {
44
+ address: Addresses.portal[tempoModerato.id][1],
45
+ },
46
+ },
47
+ },
48
+ name: 'Zone E',
49
+ rpcUrl: 'https://rpc-zone-e.testnet.tempo.xyz',
50
+ },
51
+ 6: {
52
+ name: 'Zone A',
53
+ rpcUrl: 'https://rpc-zone-a.testnet.tempo.xyz',
54
+ },
55
+ 7: {
56
+ name: 'Zone B',
57
+ rpcUrl: 'https://rpc-zone-b.testnet.tempo.xyz',
58
+ },
41
59
  },
42
- } as const satisfies Record<number, Override>
60
+ } as const satisfies Record<number, Record<number, Override>>
43
61
 
44
62
  export const zone = /*#__PURE__*/ from({
45
63
  sourceId: tempo.id,
@@ -57,10 +75,13 @@ export function from(options: from.Options) {
57
75
  const chainId = ZoneId.toChainId(id)
58
76
  const paddedId = String(id).padStart(3, '0')
59
77
 
60
- const override = (overrides as Record<number, Override>)[id]
78
+ const override = (overrides as Record<number, Record<number, Override>>)[
79
+ options.sourceId
80
+ ]?.[id]
61
81
 
62
82
  return defineChain({
63
83
  ...chainConfig,
84
+ ...(override?.contracts ? { contracts: override.contracts } : {}),
64
85
  id: chainId,
65
86
  name: override?.name ?? `Tempo Zone ${paddedId}`,
66
87
  nativeCurrency: {