viem 2.56.1 → 2.56.3

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 (254) hide show
  1. package/CHANGELOG.md +18 -0
  2. package/_cjs/actions/wallet/sendTransaction.js +9 -1
  3. package/_cjs/actions/wallet/sendTransaction.js.map +1 -1
  4. package/_cjs/actions/wallet/sendTransactionSync.js +9 -1
  5. package/_cjs/actions/wallet/sendTransactionSync.js.map +1 -1
  6. package/_cjs/errors/version.js +1 -1
  7. package/_cjs/tempo/Abis.js +11 -23
  8. package/_cjs/tempo/Abis.js.map +1 -1
  9. package/_cjs/tempo/Account.js +66 -61
  10. package/_cjs/tempo/Account.js.map +1 -1
  11. package/_cjs/tempo/Client.js +10 -2
  12. package/_cjs/tempo/Client.js.map +1 -1
  13. package/_cjs/tempo/Decorator.js +2 -1
  14. package/_cjs/tempo/Decorator.js.map +1 -1
  15. package/_cjs/tempo/Formatters.js +29 -9
  16. package/_cjs/tempo/Formatters.js.map +1 -1
  17. package/_cjs/tempo/Multisig.js +1093 -0
  18. package/_cjs/tempo/Multisig.js.map +1 -0
  19. package/_cjs/tempo/Selectors.js +2 -3
  20. package/_cjs/tempo/Selectors.js.map +1 -1
  21. package/_cjs/tempo/{Storage.js → Store.js} +34 -9
  22. package/_cjs/tempo/Store.js.map +1 -0
  23. package/_cjs/tempo/Transaction.js +15 -30
  24. package/_cjs/tempo/Transaction.js.map +1 -1
  25. package/_cjs/tempo/Transport.js +51 -5
  26. package/_cjs/tempo/Transport.js.map +1 -1
  27. package/_cjs/tempo/Zone.js.map +1 -1
  28. package/_cjs/tempo/actions/accessKey.js +102 -8
  29. package/_cjs/tempo/actions/accessKey.js.map +1 -1
  30. package/_cjs/tempo/actions/amm.js +6 -0
  31. package/_cjs/tempo/actions/amm.js.map +1 -1
  32. package/_cjs/tempo/actions/channel.js +12 -0
  33. package/_cjs/tempo/actions/channel.js.map +1 -1
  34. package/_cjs/tempo/actions/dex.js +10 -0
  35. package/_cjs/tempo/actions/dex.js.map +1 -1
  36. package/_cjs/tempo/actions/earn/deployment.js +13 -1
  37. package/_cjs/tempo/actions/earn/deployment.js.map +1 -1
  38. package/_cjs/tempo/actions/earn.js +17 -0
  39. package/_cjs/tempo/actions/earn.js.map +1 -1
  40. package/_cjs/tempo/actions/fee.js +4 -0
  41. package/_cjs/tempo/actions/fee.js.map +1 -1
  42. package/_cjs/tempo/actions/multisig.js +86 -28
  43. package/_cjs/tempo/actions/multisig.js.map +1 -1
  44. package/_cjs/tempo/actions/policy.js +8 -0
  45. package/_cjs/tempo/actions/policy.js.map +1 -1
  46. package/_cjs/tempo/actions/receivePolicy.js +6 -0
  47. package/_cjs/tempo/actions/receivePolicy.js.map +1 -1
  48. package/_cjs/tempo/actions/reward.js +4 -0
  49. package/_cjs/tempo/actions/reward.js.map +1 -1
  50. package/_cjs/tempo/actions/token.js +32 -0
  51. package/_cjs/tempo/actions/token.js.map +1 -1
  52. package/_cjs/tempo/actions/virtualAddress.js +2 -0
  53. package/_cjs/tempo/actions/virtualAddress.js.map +1 -1
  54. package/_cjs/tempo/actions/zone.js +7 -5
  55. package/_cjs/tempo/actions/zone.js.map +1 -1
  56. package/_cjs/tempo/chainConfig.js +180 -69
  57. package/_cjs/tempo/chainConfig.js.map +1 -1
  58. package/_cjs/tempo/index.js +5 -2
  59. package/_cjs/tempo/index.js.map +1 -1
  60. package/_cjs/tempo/internal/utils.js +2 -1
  61. package/_cjs/tempo/internal/utils.js.map +1 -1
  62. package/_cjs/tempo/multisig/Config.js +80 -0
  63. package/_cjs/tempo/multisig/Config.js.map +1 -0
  64. package/_cjs/tempo/multisig/Operation.js +163 -0
  65. package/_cjs/tempo/multisig/Operation.js.map +1 -0
  66. package/_cjs/utils/encoding/fromHex.js +1 -1
  67. package/_cjs/utils/encoding/fromHex.js.map +1 -1
  68. package/_cjs/utils/hash/isHash.js +1 -2
  69. package/_cjs/utils/hash/isHash.js.map +1 -1
  70. package/_esm/actions/wallet/sendTransaction.js +9 -1
  71. package/_esm/actions/wallet/sendTransaction.js.map +1 -1
  72. package/_esm/actions/wallet/sendTransactionSync.js +9 -1
  73. package/_esm/actions/wallet/sendTransactionSync.js.map +1 -1
  74. package/_esm/errors/version.js +1 -1
  75. package/_esm/tempo/Abis.js +11 -23
  76. package/_esm/tempo/Abis.js.map +1 -1
  77. package/_esm/tempo/Account.js +66 -61
  78. package/_esm/tempo/Account.js.map +1 -1
  79. package/_esm/tempo/Client.js +22 -3
  80. package/_esm/tempo/Client.js.map +1 -1
  81. package/_esm/tempo/Decorator.js +2 -1
  82. package/_esm/tempo/Decorator.js.map +1 -1
  83. package/_esm/tempo/Formatters.js +32 -11
  84. package/_esm/tempo/Formatters.js.map +1 -1
  85. package/_esm/tempo/Multisig.js +1126 -0
  86. package/_esm/tempo/Multisig.js.map +1 -0
  87. package/_esm/tempo/Selectors.js +2 -3
  88. package/_esm/tempo/Selectors.js.map +1 -1
  89. package/_esm/tempo/{Storage.js → Store.js} +37 -26
  90. package/_esm/tempo/Store.js.map +1 -0
  91. package/_esm/tempo/Transaction.js +16 -31
  92. package/_esm/tempo/Transaction.js.map +1 -1
  93. package/_esm/tempo/Transport.js +71 -6
  94. package/_esm/tempo/Transport.js.map +1 -1
  95. package/_esm/tempo/Zone.js +1 -2
  96. package/_esm/tempo/Zone.js.map +1 -1
  97. package/_esm/tempo/actions/accessKey.js +104 -20
  98. package/_esm/tempo/actions/accessKey.js.map +1 -1
  99. package/_esm/tempo/actions/amm.js +6 -0
  100. package/_esm/tempo/actions/amm.js.map +1 -1
  101. package/_esm/tempo/actions/channel.js +12 -0
  102. package/_esm/tempo/actions/channel.js.map +1 -1
  103. package/_esm/tempo/actions/dex.js +10 -0
  104. package/_esm/tempo/actions/dex.js.map +1 -1
  105. package/_esm/tempo/actions/earn/deployment.js +13 -1
  106. package/_esm/tempo/actions/earn/deployment.js.map +1 -1
  107. package/_esm/tempo/actions/earn.js +17 -0
  108. package/_esm/tempo/actions/earn.js.map +1 -1
  109. package/_esm/tempo/actions/fee.js +4 -0
  110. package/_esm/tempo/actions/fee.js.map +1 -1
  111. package/_esm/tempo/actions/multisig.js +129 -63
  112. package/_esm/tempo/actions/multisig.js.map +1 -1
  113. package/_esm/tempo/actions/policy.js +8 -0
  114. package/_esm/tempo/actions/policy.js.map +1 -1
  115. package/_esm/tempo/actions/receivePolicy.js +6 -0
  116. package/_esm/tempo/actions/receivePolicy.js.map +1 -1
  117. package/_esm/tempo/actions/reward.js +4 -0
  118. package/_esm/tempo/actions/reward.js.map +1 -1
  119. package/_esm/tempo/actions/token.js +32 -0
  120. package/_esm/tempo/actions/token.js.map +1 -1
  121. package/_esm/tempo/actions/virtualAddress.js +2 -0
  122. package/_esm/tempo/actions/virtualAddress.js.map +1 -1
  123. package/_esm/tempo/actions/zone.js +8 -6
  124. package/_esm/tempo/actions/zone.js.map +1 -1
  125. package/_esm/tempo/chainConfig.js +188 -86
  126. package/_esm/tempo/chainConfig.js.map +1 -1
  127. package/_esm/tempo/index.js +5 -3
  128. package/_esm/tempo/index.js.map +1 -1
  129. package/_esm/tempo/internal/utils.js +2 -1
  130. package/_esm/tempo/internal/utils.js.map +1 -1
  131. package/_esm/tempo/multisig/Config.js +84 -0
  132. package/_esm/tempo/multisig/Config.js.map +1 -0
  133. package/_esm/tempo/multisig/Operation.js +170 -0
  134. package/_esm/tempo/multisig/Operation.js.map +1 -0
  135. package/_esm/utils/encoding/fromHex.js +1 -1
  136. package/_esm/utils/encoding/fromHex.js.map +1 -1
  137. package/_esm/utils/hash/isHash.js +1 -2
  138. package/_esm/utils/hash/isHash.js.map +1 -1
  139. package/_types/actions/wallet/sendTransaction.d.ts.map +1 -1
  140. package/_types/actions/wallet/sendTransactionSync.d.ts.map +1 -1
  141. package/_types/chains/definitions/tempo.d.ts +72 -92
  142. package/_types/chains/definitions/tempo.d.ts.map +1 -1
  143. package/_types/chains/definitions/tempoDevnet.d.ts +72 -92
  144. package/_types/chains/definitions/tempoDevnet.d.ts.map +1 -1
  145. package/_types/chains/definitions/tempoLocalnet.d.ts +72 -92
  146. package/_types/chains/definitions/tempoLocalnet.d.ts.map +1 -1
  147. package/_types/chains/definitions/tempoModerato.d.ts +72 -92
  148. package/_types/chains/definitions/tempoModerato.d.ts.map +1 -1
  149. package/_types/errors/version.d.ts +1 -1
  150. package/_types/tempo/Abis.d.ts +54 -108
  151. package/_types/tempo/Abis.d.ts.map +1 -1
  152. package/_types/tempo/Account.d.ts +47 -20
  153. package/_types/tempo/Account.d.ts.map +1 -1
  154. package/_types/tempo/Client.d.ts +23 -1
  155. package/_types/tempo/Client.d.ts.map +1 -1
  156. package/_types/tempo/Decorator.d.ts +30 -5
  157. package/_types/tempo/Decorator.d.ts.map +1 -1
  158. package/_types/tempo/Formatters.d.ts.map +1 -1
  159. package/_types/tempo/Multisig.d.ts +37 -0
  160. package/_types/tempo/Multisig.d.ts.map +1 -0
  161. package/_types/tempo/Selectors.d.ts +2 -3
  162. package/_types/tempo/Selectors.d.ts.map +1 -1
  163. package/_types/tempo/Store.d.ts +62 -0
  164. package/_types/tempo/Store.d.ts.map +1 -0
  165. package/_types/tempo/Transaction.d.ts +12 -31
  166. package/_types/tempo/Transaction.d.ts.map +1 -1
  167. package/_types/tempo/Transport.d.ts +37 -5
  168. package/_types/tempo/Transport.d.ts.map +1 -1
  169. package/_types/tempo/Zone.d.ts +35 -6799
  170. package/_types/tempo/Zone.d.ts.map +1 -1
  171. package/_types/tempo/actions/accessKey.d.ts +38 -8
  172. package/_types/tempo/actions/accessKey.d.ts.map +1 -1
  173. package/_types/tempo/actions/amm.d.ts.map +1 -1
  174. package/_types/tempo/actions/channel.d.ts.map +1 -1
  175. package/_types/tempo/actions/dex.d.ts.map +1 -1
  176. package/_types/tempo/actions/earn/deployment.d.ts +3 -3
  177. package/_types/tempo/actions/earn/deployment.d.ts.map +1 -1
  178. package/_types/tempo/actions/earn.d.ts.map +1 -1
  179. package/_types/tempo/actions/fee.d.ts.map +1 -1
  180. package/_types/tempo/actions/multisig.d.ts +139 -136
  181. package/_types/tempo/actions/multisig.d.ts.map +1 -1
  182. package/_types/tempo/actions/policy.d.ts.map +1 -1
  183. package/_types/tempo/actions/receivePolicy.d.ts.map +1 -1
  184. package/_types/tempo/actions/reward.d.ts.map +1 -1
  185. package/_types/tempo/actions/token.d.ts.map +1 -1
  186. package/_types/tempo/actions/virtualAddress.d.ts.map +1 -1
  187. package/_types/tempo/actions/zone.d.ts +4 -4
  188. package/_types/tempo/actions/zone.d.ts.map +1 -1
  189. package/_types/tempo/chainConfig.d.ts +38 -48
  190. package/_types/tempo/chainConfig.d.ts.map +1 -1
  191. package/_types/tempo/index.d.ts +5 -5
  192. package/_types/tempo/index.d.ts.map +1 -1
  193. package/_types/tempo/internal/types.d.ts +1 -1
  194. package/_types/tempo/internal/types.d.ts.map +1 -1
  195. package/_types/tempo/internal/utils.d.ts +1 -0
  196. package/_types/tempo/internal/utils.d.ts.map +1 -1
  197. package/_types/tempo/multisig/Config.d.ts +42 -0
  198. package/_types/tempo/multisig/Config.d.ts.map +1 -0
  199. package/_types/tempo/multisig/Operation.d.ts +32 -0
  200. package/_types/tempo/multisig/Operation.d.ts.map +1 -0
  201. package/_types/types/chain.d.ts +10 -0
  202. package/_types/types/chain.d.ts.map +1 -1
  203. package/_types/utils/hash/isHash.d.ts +1 -2
  204. package/_types/utils/hash/isHash.d.ts.map +1 -1
  205. package/actions/wallet/sendTransaction.ts +9 -1
  206. package/actions/wallet/sendTransactionSync.ts +9 -1
  207. package/errors/version.ts +1 -1
  208. package/package.json +2 -2
  209. package/tempo/Abis.ts +11 -23
  210. package/tempo/Account.ts +136 -105
  211. package/tempo/Client.ts +46 -3
  212. package/tempo/Decorator.ts +40 -8
  213. package/tempo/Formatters.ts +39 -21
  214. package/tempo/Multisig.ts +1490 -0
  215. package/tempo/Selectors.ts +2 -3
  216. package/tempo/Store.ts +170 -0
  217. package/tempo/Transaction.ts +39 -64
  218. package/tempo/Transport.ts +125 -10
  219. package/tempo/Zone.ts +30 -4
  220. package/tempo/actions/accessKey.ts +210 -23
  221. package/tempo/actions/amm.ts +7 -0
  222. package/tempo/actions/channel.ts +12 -0
  223. package/tempo/actions/dex.ts +10 -0
  224. package/tempo/actions/earn/deployment.ts +16 -3
  225. package/tempo/actions/earn.ts +19 -0
  226. package/tempo/actions/fee.ts +4 -0
  227. package/tempo/actions/multisig.ts +192 -94
  228. package/tempo/actions/policy.ts +8 -0
  229. package/tempo/actions/receivePolicy.ts +6 -0
  230. package/tempo/actions/reward.ts +5 -0
  231. package/tempo/actions/token.ts +33 -0
  232. package/tempo/actions/virtualAddress.ts +2 -0
  233. package/tempo/actions/zone.ts +10 -8
  234. package/tempo/chainConfig.ts +259 -100
  235. package/tempo/index.ts +5 -4
  236. package/tempo/internal/types.ts +3 -2
  237. package/tempo/internal/utils.ts +2 -0
  238. package/tempo/multisig/Config.ts +131 -0
  239. package/tempo/multisig/Operation.ts +211 -0
  240. package/types/chain.ts +14 -0
  241. package/utils/encoding/fromHex.ts +1 -1
  242. package/utils/hash/isHash.ts +2 -3
  243. package/_cjs/tempo/Storage.js.map +0 -1
  244. package/_cjs/tempo/internal/multisig.js +0 -56
  245. package/_cjs/tempo/internal/multisig.js.map +0 -1
  246. package/_esm/tempo/Storage.js.map +0 -1
  247. package/_esm/tempo/internal/multisig.js +0 -56
  248. package/_esm/tempo/internal/multisig.js.map +0 -1
  249. package/_types/tempo/Storage.d.ts +0 -42
  250. package/_types/tempo/Storage.d.ts.map +0 -1
  251. package/_types/tempo/internal/multisig.d.ts +0 -13
  252. package/_types/tempo/internal/multisig.d.ts.map +0 -1
  253. package/tempo/Storage.ts +0 -115
  254. package/tempo/internal/multisig.ts +0 -72
package/tempo/Storage.ts DELETED
@@ -1,115 +0,0 @@
1
- import type { MaybePromise } from '../types/utils.js'
2
-
3
- export type Storage = {
4
- getItem(key: string): MaybePromise<string | null | undefined>
5
- setItem(key: string, value: string): MaybePromise<void>
6
- removeItem(key: string): MaybePromise<void>
7
- }
8
-
9
- /**
10
- * Wraps a base storage with an optional key prefix and request
11
- * deduplication — concurrent `getItem` calls for the same key share
12
- * a single in-flight promise.
13
- *
14
- * @example
15
- * ```ts
16
- * import { Storage } from 'viem/tempo'
17
- *
18
- * const storage = Storage.from(Storage.memory(), { key: 'tempo' })
19
- * await storage.setItem('foo', 'bar')
20
- * // stored under "tempo:foo"
21
- * ```
22
- */
23
- export function from(storage: Storage, options: from.Options = {}): Storage {
24
- const { key } = options
25
- const prefix = key ? `${key}:` : ''
26
- const inflight = new Map<string, Promise<string | null | undefined>>()
27
- return {
28
- getItem(k) {
29
- const fullKey = `${prefix}${k}`
30
- const existing = inflight.get(fullKey)
31
- if (existing) return existing
32
- const result = Promise.resolve(storage.getItem(fullKey)).finally(() => {
33
- inflight.delete(fullKey)
34
- })
35
- inflight.set(fullKey, result)
36
- return result
37
- },
38
- setItem(k, value) {
39
- const fullKey = `${prefix}${k}`
40
- inflight.delete(fullKey)
41
- return storage.setItem(fullKey, value)
42
- },
43
- removeItem(k) {
44
- const fullKey = `${prefix}${k}`
45
- inflight.delete(fullKey)
46
- return storage.removeItem(fullKey)
47
- },
48
- }
49
- }
50
-
51
- export declare namespace from {
52
- type Options = {
53
- /** Key prefix prepended to all storage keys. */
54
- key?: string | undefined
55
- }
56
- }
57
-
58
- /** Creates an in-memory storage backed by a `Map`. */
59
- export function memory(options: from.Options = {}): Storage {
60
- const store = new Map<string, string>()
61
- return from(
62
- {
63
- getItem(key) {
64
- return store.get(key) ?? null
65
- },
66
- setItem(key, value) {
67
- store.set(key, value)
68
- },
69
- removeItem(key) {
70
- store.delete(key)
71
- },
72
- },
73
- options,
74
- )
75
- }
76
-
77
- /** Creates a storage backed by `globalThis.sessionStorage`. */
78
- export function session(options: from.Options = {}): Storage {
79
- return from(
80
- {
81
- getItem(key) {
82
- return globalThis.sessionStorage.getItem(key)
83
- },
84
- setItem(key, value) {
85
- try {
86
- globalThis.sessionStorage.setItem(key, value)
87
- } catch {}
88
- },
89
- removeItem(key) {
90
- globalThis.sessionStorage.removeItem(key)
91
- },
92
- },
93
- options,
94
- )
95
- }
96
-
97
- let _default: Storage | undefined
98
-
99
- /**
100
- * Returns the default storage for the current environment.
101
- *
102
- * Returns a singleton so that the zone transport and actions share the
103
- * same instance without requiring explicit plumbing.
104
- *
105
- * - Browser: `sessionStorage`
106
- * - Server/unsupported: in-memory `Map`-based storage
107
- */
108
- export function defaultStorage(): Storage {
109
- if (_default) return _default
110
- try {
111
- if (globalThis.sessionStorage) _default = session()
112
- } catch {}
113
- _default ??= memory()
114
- return _default
115
- }
@@ -1,72 +0,0 @@
1
- import type { Address } from 'abitype'
2
- import type { MultisigConfig } from 'ox/tempo'
3
- import { BaseError } from '../../errors/base.js'
4
- import { ContractFunctionRevertedError } from '../../errors/contract.js'
5
- import type { MultisigAccount } from '../Account.js'
6
- import type { MultisigOwnerState } from '../Transaction.js'
7
-
8
- /** @internal */
9
- export function createMultisigStateResolver(
10
- getConfig: (account: Address) => Promise<{
11
- owners: MultisigConfig.Config['owners']
12
- threshold: MultisigConfig.Config['threshold']
13
- version: bigint
14
- }>,
15
- ) {
16
- // Cache only within one operation because config versions can change between requests.
17
- const cache = new Map<Address, Promise<MultisigOwnerState>>()
18
- return (account: Address): Promise<MultisigOwnerState> => {
19
- const address = account.toLowerCase() as Address
20
- const cached = cache.get(address)
21
- if (cached) return cached
22
-
23
- const state = (async () => {
24
- try {
25
- const config = await getConfig(account)
26
- return {
27
- account,
28
- config: { owners: config.owners, threshold: config.threshold },
29
- initialized: true,
30
- version: config.version,
31
- }
32
- } catch (error) {
33
- const cause =
34
- error instanceof BaseError
35
- ? error.walk(
36
- (error) => error instanceof ContractFunctionRevertedError,
37
- )
38
- : undefined
39
- if (
40
- !(cause instanceof ContractFunctionRevertedError) ||
41
- cause.data?.errorName !== 'NotMultisigAccount'
42
- )
43
- throw error
44
- return { account, initialized: false, version: 0n }
45
- }
46
- })()
47
- cache.set(address, state)
48
- return state
49
- }
50
- }
51
-
52
- /** @internal */
53
- export function getMultisigOwnerStates(
54
- account: MultisigAccount,
55
- getState: (account: Address) => Promise<MultisigOwnerState>,
56
- ): Promise<readonly MultisigOwnerState[]> {
57
- // Collect locally first so all config reads start in one latency wave.
58
- const owners: MultisigAccount[] = [account]
59
- const seen = new Set<Address>([account.address.toLowerCase() as Address])
60
- const visit = (account: MultisigAccount) => {
61
- for (const owner of account.owners) {
62
- if (owner.source !== 'multisig') continue
63
- const address = owner.address.toLowerCase() as Address
64
- if (seen.has(address)) continue
65
- seen.add(address)
66
- owners.push(owner as MultisigAccount)
67
- visit(owner as MultisigAccount)
68
- }
69
- }
70
- visit(account)
71
- return Promise.all(owners.map((owner) => getState(owner.address)))
72
- }