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
@@ -1,6 +1,7 @@
1
1
  import * as Hex from 'ox/Hex';
2
- import { MultisigConfig, SignatureEnvelope } from 'ox/tempo';
2
+ import { MultisigConfig, MultisigOperation, SignatureEnvelope, } from 'ox/tempo';
3
3
  import { getCode } from '../actions/public/getCode.js';
4
+ import { getTransaction } from '../actions/public/getTransaction.js';
4
5
  import { verifyHash } from '../actions/public/verifyHash.js';
5
6
  import { maxUint256 } from '../constants/number.js';
6
7
  import { isAddressEqual } from '../utils/address/isAddressEqual.js';
@@ -11,20 +12,13 @@ import { defineTransactionRequest } from '../utils/formatters/transactionRequest
11
12
  import { getAction } from '../utils/getAction.js';
12
13
  import { keccak256 } from '../utils/hash/keccak256.js';
13
14
  import { getMetadata } from './actions/accessKey.js';
14
- import * as multisig from './actions/multisig.js';
15
+ import { getConfig } from './actions/multisig.js';
15
16
  import * as Formatters from './Formatters.js';
16
17
  import * as Concurrent from './internal/concurrent.js';
17
- import { createMultisigStateResolver, getMultisigOwnerStates, } from './internal/multisig.js';
18
18
  import * as Transaction from './Transaction.js';
19
19
  const maxExpirySecs = 25;
20
- /** Returns random past seconds to distinguish otherwise-identical expiring transactions. */
21
- function randomValidAfter() {
22
- const now = BigInt(Math.floor(Date.now() / 1_000));
23
- const latest = now - 60n;
24
- if (latest <= 0n)
25
- return 0;
26
- return Number(BigInt(Hex.random(8)) % latest);
27
- }
20
+ // TODO: casting to satisfy viem – viem v3 to have more flexible serializer type.
21
+ const serializeTransaction = ((transaction, signature) => Transaction.serialize(transaction, signature));
28
22
  export const chainConfig = {
29
23
  blockTime: 1_000,
30
24
  extendSchema: extendSchema(),
@@ -43,6 +37,45 @@ export const chainConfig = {
43
37
  prepareTransactionRequest: [
44
38
  async (r, { client, phase }) => {
45
39
  const request = r;
40
+ if (request.hash) {
41
+ if (!request.account ||
42
+ typeof request.account === 'string' ||
43
+ request.account.source !== 'multisig')
44
+ throw new Error('A local multisig account is required to approve a stored multisig transaction.');
45
+ if (!request.owner || typeof request.owner === 'string')
46
+ throw new Error('A local owner account is required to approve a stored multisig transaction.');
47
+ if (request.owner.source !== 'root' &&
48
+ request.owner.source !== 'multisig')
49
+ throw new Error('A Tempo owner account is required to approve a stored multisig transaction.');
50
+ const transaction = await getAction(client, getTransaction, 'getTransaction')({ hash: request.hash });
51
+ const operation = 'multisig' in transaction
52
+ ? transaction.multisig
53
+ : undefined;
54
+ if (!operation)
55
+ throw new Error('Expected a multisig operation transaction.');
56
+ if (!isAddressEqual(operation.account, request.account.address))
57
+ throw new Error('Multisig operation account does not match the requested account.');
58
+ const storedTransaction = Transaction.deserialize(operation.transaction);
59
+ const hash = MultisigOperation.getHash({
60
+ account: operation.account,
61
+ config: operation.config,
62
+ transaction: operation.transaction,
63
+ type: 'transaction',
64
+ });
65
+ if (hash.toLowerCase() !== request.hash.toLowerCase())
66
+ throw new Error('Multisig operation hash does not match transaction.');
67
+ return {
68
+ ...storedTransaction,
69
+ account: request.account,
70
+ from: operation.account,
71
+ multisigSimulation: getMultisigSimulation({
72
+ account: operation.account,
73
+ config: operation.config,
74
+ local: request.account,
75
+ }),
76
+ owner: request.owner,
77
+ };
78
+ }
46
79
  // FIXME: node estimates gas with secp256k1 dummy sig + null feePayerSignature.
47
80
  // Actual tx has larger keychain/webAuthn sigs + real fee payer sig, costing more intrinsic gas.
48
81
  if (phase === 'afterFillParameters') {
@@ -57,85 +90,56 @@ export const chainConfig = {
57
90
  }
58
91
  return request;
59
92
  }
60
- // Native multisig (TIP-1061). The transaction sender is the stable
61
- // multisig address, not a signing account. Initial configs support
62
- // bootstrap; initialized accounts can be reconstructed from their
63
- // address and resolved through the multisig precompile.
64
- //
65
- // The config is taken from an explicit `multisig` field, or inferred from
66
- // a multisig account (so callers can just pass `account` to
67
- // `prepareTransactionRequest` without also passing `multisig`).
68
- const multisigIdentity = request.multisig ??
69
- (request.account?.source === 'multisig'
70
- ? (request.account.config ??
71
- request.account.address)
72
- : undefined);
73
- if (multisigIdentity) {
74
- const initialConfig = typeof multisigIdentity === 'string'
75
- ? undefined
76
- : MultisigConfig.from(multisigIdentity);
77
- const multisigAddress = typeof multisigIdentity === 'string'
78
- ? multisigIdentity
79
- : MultisigConfig.getAddress(initialConfig);
80
- request.multisig = initialConfig ?? multisigIdentity;
81
- request.from = multisigAddress;
82
- // Key types are not part of the config, so conservatively model every
83
- // approval as a maximum-size WebAuthn signature.
84
- if (typeof request.keyType === 'undefined') {
85
- request.keyType = 'webAuthn';
86
- if (typeof request.keyData === 'undefined')
87
- request.keyData = '0x0578';
88
- }
89
- const getState = createMultisigStateResolver((account) => getAction(client, multisig.getConfig, 'getConfig')({ account }));
90
- const ownerStates = request.account?.source === 'multisig'
91
- ? getMultisigOwnerStates(request.account, getState)
92
- : undefined;
93
- const state = ownerStates
94
- ? (await ownerStates)[0]
95
- : await getState(multisigAddress);
96
- if (!initialConfig && !state.initialized)
97
- throw new Error('Cannot prepare an uninitialized multisig account from an address. Provide its initial config instead.');
98
- if (typeof request.multisigVersion === 'undefined')
99
- request.multisigVersion = state.version;
100
- const authorizationSignature = request.keyAuthorization?.signature;
101
- if (authorizationSignature?.type === 'multisig' &&
102
- typeof authorizationSignature.init !== 'undefined')
103
- request.keyAuthorization = {
104
- ...request.keyAuthorization,
105
- signature: SignatureEnvelope.from({
106
- initialConfig: authorizationSignature.init,
107
- signatures: authorizationSignature.signatures,
108
- }),
93
+ const multisigIdentity = (() => {
94
+ if (request.account?.source === 'multisig')
95
+ return {
96
+ account: request.account.address,
97
+ config: request.account.config,
98
+ local: request.account,
109
99
  };
110
- const keyAuthorizationSignature = request.keyAuthorization?.signature;
111
- const keyAuthorizationInitializes = keyAuthorizationSignature?.type === 'multisig' &&
112
- typeof keyAuthorizationSignature.init !== 'undefined';
113
- if (initialConfig && !keyAuthorizationInitializes)
114
- request.multisigInit = {
115
- salt: initialConfig.salt ?? MultisigConfig.zeroSalt,
116
- threshold: Number(initialConfig.threshold),
117
- owners: initialConfig.owners.map((owner) => ({
118
- owner: owner.owner,
119
- weight: Number(owner.weight),
120
- })),
121
- };
122
- if (ownerStates) {
123
- const states = await ownerStates;
124
- if (states.length > 0)
125
- request.multisigOwnerStates = states;
126
- }
127
- // A non-multisig `account` (e.g. the client's default) isn't the sender,
128
- // so drop it: core then fills nonce/gas/fees for the multisig sender via
129
- // `request.from`. A multisig account *is* the sender, so keep it so the
130
- // prepared request can be sent without re-passing `account`.
131
- if (request.account?.source !== 'multisig')
132
- delete request.account;
100
+ return undefined;
101
+ })();
102
+ if (request.owner && !multisigIdentity)
103
+ throw new Error('A multisig account is required when an owner is provided.');
104
+ if (request.owner && typeof request.owner === 'string')
105
+ throw new Error('A local owner account is required to approve a multisig transaction.');
106
+ if (request.owner &&
107
+ request.owner.source !== 'root' &&
108
+ request.owner.source !== 'multisig')
109
+ throw new Error('A Tempo owner account is required to approve a multisig transaction.');
110
+ const coordinatedMultisig = !!multisigIdentity &&
111
+ !!request.owner &&
112
+ client.transport.multisig === true;
113
+ if (multisigIdentity) {
114
+ const { account, local } = multisigIdentity;
115
+ if (!account)
116
+ throw new Error('A multisig account address is required with a current config.');
117
+ const config = await (async () => {
118
+ if (multisigIdentity.config)
119
+ return multisigIdentity.config;
120
+ if (!coordinatedMultisig)
121
+ return undefined;
122
+ const cachedConfig = await getAction(client, getConfig, 'getConfig')({ address: account });
123
+ if (!cachedConfig)
124
+ throw new Error(`No current multisig config is cached for account ${account}. Provide the current config.`);
125
+ return cachedConfig;
126
+ })();
127
+ if (!config)
128
+ throw new Error('A multisig config is required to prepare a transaction.');
129
+ request.from = account;
130
+ request.multisigSimulation = getMultisigSimulation({
131
+ account,
132
+ config,
133
+ local,
134
+ });
133
135
  }
134
136
  // Register concurrency before account preparation performs storage or
135
137
  // network I/O so overlapping requests cannot miss each other.
136
138
  const useExpiringNonce = await (async () => {
137
139
  if (request.nonceKey === 'expiring' || request.nonceKey === maxUint256)
138
140
  return true;
141
+ if (typeof request.nonceKey !== 'undefined')
142
+ return false;
139
143
  if (multisigIdentity)
140
144
  return false;
141
145
  if (request.feePayer && typeof request.nonceKey === 'undefined')
@@ -146,7 +150,13 @@ export const chainConfig = {
146
150
  return await Concurrent.detect(address.toLowerCase());
147
151
  return false;
148
152
  })();
149
- if (useExpiringNonce) {
153
+ if (coordinatedMultisig && typeof request.nonceKey === 'undefined') {
154
+ // A random nonce lane lets a stored approval ceremony remain valid
155
+ // indefinitely without blocking other pending operations.
156
+ request.nonceKey = Hex.toBigInt(Hex.random(31)) + 1n;
157
+ request.nonce = 0;
158
+ }
159
+ else if (useExpiringNonce) {
150
160
  request.nonceKey = maxUint256;
151
161
  request.nonce = 0;
152
162
  if (typeof request.validAfter === 'undefined')
@@ -193,8 +203,25 @@ export const chainConfig = {
193
203
  { runAt: ['beforeFillTransaction', 'afterFillParameters'] },
194
204
  ],
195
205
  serializers: {
196
- // TODO: casting to satisfy viem – viem v3 to have more flexible serializer type.
197
- transaction: ((transaction, signature) => Transaction.serialize(transaction, signature)),
206
+ transaction: serializeTransaction,
207
+ async transactionEnvelope({ serializedTransaction, transaction }) {
208
+ const request = transaction;
209
+ if (!request.multisigSimulation)
210
+ return serializedTransaction;
211
+ try {
212
+ SignatureEnvelope.deserialize(serializedTransaction);
213
+ }
214
+ catch {
215
+ const transaction = Transaction.deserialize(serializedTransaction);
216
+ if (transaction.signature?.type === 'multisig')
217
+ return serializedTransaction;
218
+ throw new Error('A Tempo owner account is required to approve a multisig transaction.');
219
+ }
220
+ return await serializeTransaction({
221
+ ...request,
222
+ signatures: [...(request.signatures ?? []), serializedTransaction],
223
+ });
224
+ },
198
225
  },
199
226
  async verifyHash(client, parameters) {
200
227
  const { address, hash, signature, mode } = parameters;
@@ -274,4 +301,79 @@ export const chainConfig = {
274
301
  return await getAction(client, verifyHash, 'verifyHash')({ ...parameters, chain: null });
275
302
  },
276
303
  };
304
+ /** Builds a bounded multisig spec for gas simulation. */
305
+ function getMultisigSimulation(options) {
306
+ const { account, config, local } = options;
307
+ return {
308
+ account,
309
+ approvals: selectOwners(config).map((owner) => {
310
+ const localOwner = local?.owners.find((account) => isAddressEqual(account.address, owner.owner));
311
+ if (localOwner?.source === 'multisig') {
312
+ const nested = localOwner;
313
+ if (!nested.config)
314
+ throw new Error('A nested multisig config is required for gas estimation.');
315
+ return {
316
+ type: 'multisig',
317
+ spec: {
318
+ account: nested.address,
319
+ approvals: selectOwners(nested.config).map((owner) => {
320
+ const nestedOwner = nested.owners.find((account) => isAddressEqual(account.address, owner.owner));
321
+ if (nestedOwner?.source === 'multisig')
322
+ throw new Error('Multisig simulation nesting exceeds depth two.');
323
+ return {
324
+ ...getSimulationKey(nestedOwner),
325
+ owner: owner.owner,
326
+ };
327
+ }),
328
+ config: nested.config,
329
+ },
330
+ };
331
+ }
332
+ return {
333
+ ...getSimulationKey(localOwner),
334
+ owner: owner.owner,
335
+ type: 'primitive',
336
+ };
337
+ }),
338
+ config,
339
+ };
340
+ }
341
+ /** Returns signature metadata for conservative gas estimation. */
342
+ function getSimulationKey(account) {
343
+ const keyType = (() => {
344
+ if (account &&
345
+ typeof account === 'object' &&
346
+ 'keyType' in account &&
347
+ typeof account.keyType === 'string')
348
+ return account.keyType;
349
+ return undefined;
350
+ })();
351
+ if (!keyType || keyType === 'webAuthn')
352
+ return { keyData: '0x0578', keyType: 'webAuthn' };
353
+ if (keyType === 'p256' || keyType === 'secp256k1')
354
+ return { keyType };
355
+ return { keyData: '0x0578', keyType: 'webAuthn' };
356
+ }
357
+ /** Returns random past seconds to distinguish otherwise-identical expiring transactions. */
358
+ function randomValidAfter() {
359
+ const now = BigInt(Math.floor(Date.now() / 1_000));
360
+ const latest = now - 60n;
361
+ if (latest <= 0n)
362
+ return 0;
363
+ return Number(BigInt(Hex.random(8)) % latest);
364
+ }
365
+ /** Selects a deterministic minimum-cardinality owner quorum. */
366
+ function selectOwners(config) {
367
+ const owners = [...config.owners].sort((a, b) => Number(b.weight) - Number(a.weight) ||
368
+ a.owner.toLowerCase().localeCompare(b.owner.toLowerCase()));
369
+ const selected = [];
370
+ let weight = 0;
371
+ for (const owner of owners.slice(0, MultisigConfig.maxSignatures)) {
372
+ if (weight >= Number(config.threshold))
373
+ break;
374
+ selected.push(owner);
375
+ weight += Number(owner.weight);
376
+ }
377
+ return selected.sort((a, b) => a.owner.toLowerCase().localeCompare(b.owner.toLowerCase()));
378
+ }
277
379
  //# sourceMappingURL=chainConfig.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"chainConfig.js","sourceRoot":"","sources":["../../tempo/chainConfig.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"chainConfig.js","sourceRoot":"","sources":["../../tempo/chainConfig.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,GAAG,MAAM,QAAQ,CAAA;AAC7B,OAAO,EACL,cAAc,EACd,iBAAiB,EAEjB,iBAAiB,GAElB,MAAM,UAAU,CAAA;AACjB,OAAO,EAAE,OAAO,EAAE,MAAM,8BAA8B,CAAA;AACtD,OAAO,EAAE,cAAc,EAAE,MAAM,qCAAqC,CAAA;AACpE,OAAO,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAA;AAC5D,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAA;AAEnD,OAAO,EAAE,cAAc,EAAE,MAAM,oCAAoC,CAAA;AACnE,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAA;AAC5D,OAAO,EAAE,iBAAiB,EAAE,MAAM,oCAAoC,CAAA;AACtE,OAAO,EAAE,wBAAwB,EAAE,MAAM,2CAA2C,CAAA;AACpF,OAAO,EAAE,wBAAwB,EAAE,MAAM,2CAA2C,CAAA;AACpF,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAA;AACjD,OAAO,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAA;AAGtD,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAA;AACpD,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAA;AACjD,OAAO,KAAK,UAAU,MAAM,iBAAiB,CAAA;AAE7C,OAAO,KAAK,UAAU,MAAM,0BAA0B,CAAA;AACtD,OAAO,KAAK,WAAW,MAAM,kBAAkB,CAAA;AAE/C,MAAM,aAAa,GAAG,EAAE,CAAA;AAExB,iFAAiF;AACjF,MAAM,oBAAoB,GAAG,CAAC,CAAC,WAAW,EAAE,SAAS,EAAE,EAAE,CACvD,WAAW,CAAC,SAAS,CAAC,WAAW,EAAE,SAAS,CAAC,CAA2B,CAAA;AAE1E,MAAM,CAAC,MAAM,WAAW,GAAG;IACzB,SAAS,EAAE,KAAK;IAChB,YAAY,EAAE,YAAY,EAGtB;IACJ,UAAU,EAAE;QACV,WAAW,EAAE,iBAAiB,CAAC;YAC7B,OAAO,EAAE,CAAC,qBAA8B,CAAC;YACzC,MAAM,EAAE,UAAU,CAAC,iBAAiB;SACrC,CAAC;QACF,kBAAkB,EAAE,wBAAwB,CAAC;YAC3C,MAAM,EAAE,UAAU,CAAC,wBAAwB;SAC5C,CAAC;QACF,kBAAkB,EAAE,wBAAwB,CAAC;YAC3C,MAAM,EAAE,UAAU,CAAC,wBAAwB;SAC5C,CAAC;KACH;IACD,yBAAyB,EAAE;QACzB,KAAK,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,EAAE;YAC7B,MAAM,OAAO,GAAG,CAgBf,CAAA;YAED,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;gBACjB,IACE,CAAC,OAAO,CAAC,OAAO;oBAChB,OAAO,OAAO,CAAC,OAAO,KAAK,QAAQ;oBACnC,OAAO,CAAC,OAAO,CAAC,MAAM,KAAK,UAAU;oBAErC,MAAM,IAAI,KAAK,CACb,gFAAgF,CACjF,CAAA;gBACH,IAAI,CAAC,OAAO,CAAC,KAAK,IAAI,OAAO,OAAO,CAAC,KAAK,KAAK,QAAQ;oBACrD,MAAM,IAAI,KAAK,CACb,6EAA6E,CAC9E,CAAA;gBACH,IACE,OAAO,CAAC,KAAK,CAAC,MAAM,KAAK,MAAM;oBAC/B,OAAO,CAAC,KAAK,CAAC,MAAM,KAAK,UAAU;oBAEnC,MAAM,IAAI,KAAK,CACb,6EAA6E,CAC9E,CAAA;gBACH,MAAM,WAAW,GAAG,MAAM,SAAS,CACjC,MAAM,EACN,cAAc,EACd,gBAAgB,CACjB,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,CAAC,CAAA;gBACzB,MAAM,SAAS,GACb,UAAU,IAAI,WAAW;oBACvB,CAAC,CAAE,WAAW,CAAC,QAEC;oBAChB,CAAC,CAAC,SAAS,CAAA;gBACf,IAAI,CAAC,SAAS;oBACZ,MAAM,IAAI,KAAK,CAAC,4CAA4C,CAAC,CAAA;gBAC/D,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC;oBAC7D,MAAM,IAAI,KAAK,CACb,kEAAkE,CACnE,CAAA;gBACH,MAAM,iBAAiB,GAAG,WAAW,CAAC,WAAW,CAC/C,SAAS,CAAC,WAAqD,CAChE,CAAA;gBACD,MAAM,IAAI,GAAG,iBAAiB,CAAC,OAAO,CAAC;oBACrC,OAAO,EAAE,SAAS,CAAC,OAAO;oBAC1B,MAAM,EAAE,SAAS,CAAC,MAAM;oBACxB,WAAW,EAAE,SAAS,CAAC,WAAW;oBAClC,IAAI,EAAE,aAAa;iBACpB,CAAC,CAAA;gBACF,IAAI,IAAI,CAAC,WAAW,EAAE,KAAK,OAAO,CAAC,IAAI,CAAC,WAAW,EAAE;oBACnD,MAAM,IAAI,KAAK,CAAC,qDAAqD,CAAC,CAAA;gBACxE,OAAO;oBACL,GAAG,iBAAiB;oBACpB,OAAO,EAAE,OAAO,CAAC,OAAO;oBACxB,IAAI,EAAE,SAAS,CAAC,OAAO;oBACvB,kBAAkB,EAAE,qBAAqB,CAAC;wBACxC,OAAO,EAAE,SAAS,CAAC,OAAO;wBAC1B,MAAM,EAAE,SAAS,CAAC,MAAM;wBACxB,KAAK,EAAE,OAAO,CAAC,OAAO;qBACvB,CAAC;oBACF,KAAK,EAAE,OAAO,CAAC,KAAK;iBACE,CAAA;YAC1B,CAAC;YAED,+EAA+E;YAC/E,gGAAgG;YAChG,IAAI,KAAK,KAAK,qBAAqB,EAAE,CAAC;gBACpC,2HAA2H;gBAC3H,IACE,OAAO,OAAO,CAAC,GAAG,KAAK,WAAW;oBAClC,OAAO,CAAC,QAAQ;oBAChB,CAAC,OAAO,CAAC,iBAAiB,EAC1B,CAAC;oBACD,IAAI,OAAO,CAAC,gBAAgB,EAAE,SAAS,CAAC,IAAI,KAAK,UAAU;wBACzD,OAAO,CAAC,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,IAAI,EAAE,CAAC,GAAG,MAAO,CAAA;yBACxC,IAAI,OAAO,CAAC,OAAO,EAAE,MAAM,KAAK,WAAW;wBAC9C,OAAO,CAAC,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,IAAI,EAAE,CAAC,GAAG,MAAO,CAAA;gBAC/C,CAAC;gBAED,OAAO,OAA8B,CAAA;YACvC,CAAC;YAED,MAAM,gBAAgB,GAAG,CAAC,GAAG,EAAE;gBAC7B,IAAI,OAAO,CAAC,OAAO,EAAE,MAAM,KAAK,UAAU;oBACxC,OAAO;wBACL,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC,OAAO;wBAChC,MAAM,EAAG,OAAO,CAAC,OAA2B,CAAC,MAAM;wBACnD,KAAK,EAAE,OAAO,CAAC,OAA0B;qBAC1C,CAAA;gBACH,OAAO,SAAS,CAAA;YAClB,CAAC,CAAC,EAAE,CAAA;YACJ,IAAI,OAAO,CAAC,KAAK,IAAI,CAAC,gBAAgB;gBACpC,MAAM,IAAI,KAAK,CACb,2DAA2D,CAC5D,CAAA;YACH,IAAI,OAAO,CAAC,KAAK,IAAI,OAAO,OAAO,CAAC,KAAK,KAAK,QAAQ;gBACpD,MAAM,IAAI,KAAK,CACb,sEAAsE,CACvE,CAAA;YACH,IACE,OAAO,CAAC,KAAK;gBACb,OAAO,CAAC,KAAK,CAAC,MAAM,KAAK,MAAM;gBAC/B,OAAO,CAAC,KAAK,CAAC,MAAM,KAAK,UAAU;gBAEnC,MAAM,IAAI,KAAK,CACb,sEAAsE,CACvE,CAAA;YACH,MAAM,mBAAmB,GACvB,CAAC,CAAC,gBAAgB;gBAClB,CAAC,CAAC,OAAO,CAAC,KAAK;gBACd,MAAM,CAAC,SAAoC,CAAC,QAAQ,KAAK,IAAI,CAAA;YAChE,IAAI,gBAAgB,EAAE,CAAC;gBACrB,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,gBAAgB,CAAA;gBAC3C,IAAI,CAAC,OAAO;oBACV,MAAM,IAAI,KAAK,CACb,+DAA+D,CAChE,CAAA;gBACH,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,IAAI,EAAE;oBAC/B,IAAI,gBAAgB,CAAC,MAAM;wBAAE,OAAO,gBAAgB,CAAC,MAAM,CAAA;oBAC3D,IAAI,CAAC,mBAAmB;wBAAE,OAAO,SAAS,CAAA;oBAC1C,MAAM,YAAY,GAAG,MAAM,SAAS,CAClC,MAAM,EACN,SAAS,EACT,WAAW,CACZ,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,CAAA;oBACvB,IAAI,CAAC,YAAY;wBACf,MAAM,IAAI,KAAK,CACb,oDAAoD,OAAO,+BAA+B,CAC3F,CAAA;oBACH,OAAO,YAAY,CAAA;gBACrB,CAAC,CAAC,EAAE,CAAA;gBACJ,IAAI,CAAC,MAAM;oBACT,MAAM,IAAI,KAAK,CACb,yDAAyD,CAC1D,CAAA;gBACH,OAAO,CAAC,IAAI,GAAG,OAAO,CAAA;gBACtB,OAAO,CAAC,kBAAkB,GAAG,qBAAqB,CAAC;oBACjD,OAAO;oBACP,MAAM;oBACN,KAAK;iBACN,CAAC,CAAA;YACJ,CAAC;YAED,sEAAsE;YACtE,8DAA8D;YAC9D,MAAM,gBAAgB,GAAG,MAAM,CAAC,KAAK,IAAI,EAAE;gBACzC,IAAI,OAAO,CAAC,QAAQ,KAAK,UAAU,IAAI,OAAO,CAAC,QAAQ,KAAK,UAAU;oBACpE,OAAO,IAAI,CAAA;gBACb,IAAI,OAAO,OAAO,CAAC,QAAQ,KAAK,WAAW;oBAAE,OAAO,KAAK,CAAA;gBACzD,IAAI,gBAAgB;oBAAE,OAAO,KAAK,CAAA;gBAClC,IAAI,OAAO,CAAC,QAAQ,IAAI,OAAO,OAAO,CAAC,QAAQ,KAAK,WAAW;oBAC7D,OAAO,IAAI,CAAA;gBACb,MAAM,OAAO,GAAG,OAAO,CAAC,OAIX,CAAA;gBACb,MAAM,OAAO,GAAG,OAAO,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,EAAE,OAAO,CAAA;gBACxE,IAAI,OAAO,IAAI,OAAO,OAAO,CAAC,QAAQ,KAAK,WAAW;oBACpD,OAAO,MAAM,UAAU,CAAC,MAAM,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,CAAA;gBACvD,OAAO,KAAK,CAAA;YACd,CAAC,CAAC,EAAE,CAAA;YAEJ,IAAI,mBAAmB,IAAI,OAAO,OAAO,CAAC,QAAQ,KAAK,WAAW,EAAE,CAAC;gBACnE,mEAAmE;gBACnE,0DAA0D;gBAC1D,OAAO,CAAC,QAAQ,GAAG,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,CAAA;gBACpD,OAAO,CAAC,KAAK,GAAG,CAAC,CAAA;YACnB,CAAC;iBAAM,IAAI,gBAAgB,EAAE,CAAC;gBAC5B,OAAO,CAAC,QAAQ,GAAG,UAAU,CAAA;gBAC7B,OAAO,CAAC,KAAK,GAAG,CAAC,CAAA;gBACjB,IAAI,OAAO,OAAO,CAAC,UAAU,KAAK,WAAW;oBAC3C,OAAO,CAAC,UAAU,GAAG,gBAAgB,EAAE,CAAA;gBACzC,IAAI,OAAO,OAAO,CAAC,WAAW,KAAK,WAAW;oBAC5C,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,GAAG,aAAa,CAAA;YACvE,CAAC;iBAAM,IAAI,OAAO,OAAO,CAAC,QAAQ,KAAK,WAAW,EAAE,CAAC;gBACnD,OAAO,CAAC,KAAK,GAAG,OAAO,OAAO,CAAC,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAA;YACvE,CAAC;YAED,IACE,CAAC,OAAO,CAAC,gBAAgB;gBACzB,OAAO,CAAC,OAAO,EAAE,MAAM,KAAK,WAAW,EACvC,CAAC;gBACD,MAAM,uBAAuB,GAAG,OAAO,CAAC,OAAO,CAAC,uBAAuB,CAAA;gBACvE,IAAI,uBAAuB,EAAE,CAAC;oBAC5B,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,IAAI,OAAO,CAAC,KAAK,EAAE,EAAE,CAAA;oBACpD,IAAI,OAAO,OAAO,KAAK,WAAW,EAAE,CAAC;wBACnC,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,OAAO,CAAA;wBACvC,MAAM,SAAS,GAAG,OAAO,CAAC,OAAO,CAAC,gBAAgB,CAAA;wBAClD,MAAM,GAAG,GAAG,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,CAAA;wBAC3C,MAAM,gBAAgB,GAAG,MAAM,uBAAuB,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;wBAE/D,IAAI,gBAAgB,EAAE,CAAC;4BACrB,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,CAAA;4BACjD,IACE,gBAAgB,CAAC,MAAM,IAAI,IAAI;gCAC/B,MAAM,CAAC,gBAAgB,CAAC,MAAM,CAAC,IAAI,GAAG,EACtC,CAAC;gCACD,MAAM,uBAAuB,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;4BAC3C,CAAC;iCAAM,CAAC;gCACN,MAAM,QAAQ,GAAG,MAAM,SAAS,CAC9B,MAAM,EACN,WAAW,EACX,aAAa,CACd,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC,CAAA;gCAElC,IACE,cAAc,CAAC,QAAQ,CAAC,OAAO,EAAE,SAAS,CAAC;oCAC3C,CAAC,QAAQ,CAAC,SAAS;oCACnB,QAAQ,CAAC,MAAM,GAAG,GAAG;oCAErB,MAAM,uBAAuB,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;;oCACtC,OAAO,CAAC,gBAAgB,GAAG,gBAAgB,CAAA;4BAClD,CAAC;wBACH,CAAC;oBACH,CAAC;gBACH,CAAC;YACH,CAAC;YAED,IAAI,CAAC,OAAO,CAAC,QAAQ,IAAI,OAAO,CAAC,KAAK,EAAE,QAAQ;gBAC9C,OAAO,CAAC,QAAQ,GAAG,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAA;YAE3C,OAAO,OAA8B,CAAA;QACvC,CAAC;QACD,EAAE,KAAK,EAAE,CAAC,uBAAuB,EAAE,qBAAqB,CAAC,EAAE;KAC5D;IACD,WAAW,EAAE;QACX,WAAW,EAAE,oBAAoB;QACjC,KAAK,CAAC,mBAAmB,CAAC,EAAE,qBAAqB,EAAE,WAAW,EAAE;YAC9D,MAAM,OAAO,GAAG,WAAuD,CAAA;YACvE,IAAI,CAAC,OAAO,CAAC,kBAAkB;gBAAE,OAAO,qBAAqB,CAAA;YAC7D,IAAI,CAAC;gBACH,iBAAiB,CAAC,WAAW,CAAC,qBAAqB,CAAC,CAAA;YACtD,CAAC;YAAC,MAAM,CAAC;gBACP,MAAM,WAAW,GAAG,WAAW,CAAC,WAAW,CACzC,qBAA+D,CAChE,CAAA;gBACD,IAAI,WAAW,CAAC,SAAS,EAAE,IAAI,KAAK,UAAU;oBAC5C,OAAO,qBAAqB,CAAA;gBAC9B,MAAM,IAAI,KAAK,CACb,sEAAsE,CACvE,CAAA;YACH,CAAC;YACD,OAAO,MAAM,oBAAoB,CAAC;gBAChC,GAAG,OAAO;gBACV,UAAU,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,UAAU,IAAI,EAAE,CAAC,EAAE,qBAAqB,CAAC;aAC1D,CAAC,CAAA;QACb,CAAC;KACF;IACD,KAAK,CAAC,UAAU,CAAC,MAAM,EAAE,UAAU;QACjC,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,GAAG,UAAU,CAAA;QAErD,MAAM,QAAQ,GAAG,CAAC,GAAG,EAAE;YACrB,IAAI,OAAO,SAAS,KAAK,QAAQ;gBAAE,OAAM;YACzC,IAAI,CAAC;gBACH,OAAO,iBAAiB,CAAC,WAAW,CAAC,SAAS,CAAC,CAAA;YACjD,CAAC;YAAC,MAAM,CAAC;gBACP,OAAO,SAAS,CAAA;YAClB,CAAC;QACH,CAAC,CAAC,EAAE,CAAA;QAEJ,8FAA8F;QAC9F,yDAAyD;QACzD,IAAI,QAAQ,EAAE,CAAC;YACb,iEAAiE;YACjE,mEAAmE;YACnE,IAAI,QAAQ,EAAE,IAAI,KAAK,UAAU,IAAI,IAAI,KAAK,gBAAgB,EAAE,CAAC;gBAC/D,uDAAuD;gBACvD,0CAA0C;gBAC1C,MAAM,YAAY,GAChB,QAAQ,CAAC,OAAO,KAAK,IAAI;oBACvB,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;oBAC9C,CAAC,CAAC,IAAI,CAAA;gBAEV,MAAM,gBAAgB,GAAG,CAAC,GAAG,EAAE;oBAC7B,IAAI,CAAC;wBACH,OAAO,iBAAiB,CAAC,cAAc,CAAC;4BACtC,OAAO,EAAE,YAAY;4BACrB,SAAS,EAAE,QAAQ,CAAC,KAAK;yBAC1B,CAAC,CAAA;oBACJ,CAAC;oBAAC,MAAM,CAAC;wBACP,OAAO,SAAS,CAAA;oBAClB,CAAC;gBACH,CAAC,CAAC,EAAE,CAAA;gBACJ,IAAI,CAAC,gBAAgB;oBAAE,OAAO,KAAK,CAAA;gBAEnC,MAAM,OAAO,GAAG,MAAM,WAAW,CAAC,MAAM,EAAE;oBACxC,OAAO,EAAE,OAAO;oBAChB,SAAS,EAAE,gBAAgB;oBAC3B,SAAS,EAAE,UAAU,CAAC,SAAS;oBAC/B,WAAW,EAAE,UAAU,CAAC,WAAW;oBACnC,QAAQ,EAAE,UAAU,CAAC,QAAQ;oBAC7B,gBAAgB,EAAE,UAAU,CAAC,gBAAgB;iBACrC,CAAC,CAAA;gBAEX,IAAI,OAAO,CAAC,SAAS;oBAAE,OAAO,KAAK,CAAA;gBACnC,IAAI,OAAO,CAAC,MAAM,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC;oBACzD,OAAO,KAAK,CAAA;gBACd,OAAO,iBAAiB,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,EAAE;oBAC9C,OAAO,EAAE,gBAAgB;oBACzB,OAAO,EAAE,YAAY;iBACtB,CAAC,CAAA;YACJ,CAAC;YAED,sEAAsE;YACtE,+CAA+C;YAC/C,IAAI,QAAQ,CAAC,IAAI,KAAK,MAAM,IAAI,QAAQ,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;gBAC7D,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,MAAM,EAAE;oBACjC,OAAO;oBACP,SAAS,EAAE,UAAU,CAAC,SAAS;oBAC/B,WAAW,EAAE,UAAU,CAAC,WAAW;oBACnC,QAAQ,EAAE,UAAU,CAAC,QAAQ;oBAC7B,gBAAgB,EAAE,UAAU,CAAC,gBAAgB;iBACrC,CAAC,CAAA;gBACX,8DAA8D;gBAC9D;gBACE,uBAAuB;gBACvB,CAAC,IAAI;oBACL,iCAAiC;oBACjC,IAAI,KAAK,kDAAkD;oBAE3D,OAAO,iBAAiB,CAAC,MAAM,CAAC,QAAQ,EAAE;wBACxC,OAAO;wBACP,OAAO,EAAE,IAAI;qBACd,CAAC,CAAA;YACN,CAAC;QACH,CAAC;QAED,OAAO,MAAM,SAAS,CACpB,MAAM,EACN,UAAU,EACV,YAAY,CACb,CAAC,EAAE,GAAG,UAAU,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAA;IACnC,CAAC;CAC0D,CAAA;AAI7D,yDAAyD;AACzD,SAAS,qBAAqB,CAAC,OAI9B;IACC,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,OAAO,CAAA;IAC1C,OAAO;QACL,OAAO;QACP,SAAS,EAAE,YAAY,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;YAC5C,MAAM,UAAU,GAAG,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAChD,cAAc,CAAC,OAAO,CAAC,OAAO,EAAE,KAAK,CAAC,KAAK,CAAC,CAC7C,CAAA;YACD,IAAI,UAAU,EAAE,MAAM,KAAK,UAAU,EAAE,CAAC;gBACtC,MAAM,MAAM,GAAG,UAA6B,CAAA;gBAC5C,IAAI,CAAC,MAAM,CAAC,MAAM;oBAChB,MAAM,IAAI,KAAK,CACb,0DAA0D,CAC3D,CAAA;gBACH,OAAO;oBACL,IAAI,EAAE,UAAU;oBAChB,IAAI,EAAE;wBACJ,OAAO,EAAE,MAAM,CAAC,OAAO;wBACvB,SAAS,EAAE,YAAY,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;4BACnD,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CACjD,cAAc,CAAC,OAAO,CAAC,OAAO,EAAE,KAAK,CAAC,KAAK,CAAC,CAC7C,CAAA;4BACD,IAAI,WAAW,EAAE,MAAM,KAAK,UAAU;gCACpC,MAAM,IAAI,KAAK,CACb,gDAAgD,CACjD,CAAA;4BACH,OAAO;gCACL,GAAG,gBAAgB,CAAC,WAAW,CAAC;gCAChC,KAAK,EAAE,KAAK,CAAC,KAAK;6BACnB,CAAA;wBACH,CAAC,CAAC;wBACF,MAAM,EAAE,MAAM,CAAC,MAAM;qBACtB;iBACF,CAAA;YACH,CAAC;YACD,OAAO;gBACL,GAAG,gBAAgB,CAAC,UAAU,CAAC;gBAC/B,KAAK,EAAE,KAAK,CAAC,KAAK;gBAClB,IAAI,EAAE,WAAW;aAClB,CAAA;QACH,CAAC,CAAC;QACF,MAAM;KACP,CAAA;AACH,CAAC;AAED,kEAAkE;AAClE,SAAS,gBAAgB,CACvB,OAAgB;IAIhB,MAAM,OAAO,GAAG,CAAC,GAAG,EAAE;QACpB,IACE,OAAO;YACP,OAAO,OAAO,KAAK,QAAQ;YAC3B,SAAS,IAAI,OAAO;YACpB,OAAO,OAAO,CAAC,OAAO,KAAK,QAAQ;YAEnC,OAAO,OAAO,CAAC,OAAO,CAAA;QACxB,OAAO,SAAS,CAAA;IAClB,CAAC,CAAC,EAAE,CAAA;IACJ,IAAI,CAAC,OAAO,IAAI,OAAO,KAAK,UAAU;QACpC,OAAO,EAAE,OAAO,EAAE,QAAiB,EAAE,OAAO,EAAE,UAAmB,EAAE,CAAA;IACrE,IAAI,OAAO,KAAK,MAAM,IAAI,OAAO,KAAK,WAAW;QAAE,OAAO,EAAE,OAAO,EAAE,CAAA;IACrE,OAAO,EAAE,OAAO,EAAE,QAAiB,EAAE,OAAO,EAAE,UAAmB,EAAE,CAAA;AACrE,CAAC;AAED,4FAA4F;AAC5F,SAAS,gBAAgB;IACvB,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC,CAAC,CAAA;IAClD,MAAM,MAAM,GAAG,GAAG,GAAG,GAAG,CAAA;IACxB,IAAI,MAAM,IAAI,EAAE;QAAE,OAAO,CAAC,CAAA;IAC1B,OAAO,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAA;AAC/C,CAAC;AAED,gEAAgE;AAChE,SAAS,YAAY,CAAC,MAA6B;IACjD,MAAM,MAAM,GAAG,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CACpC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CACP,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC;QACnC,CAAC,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,CAC7D,CAAA;IACD,MAAM,QAAQ,GAAkB,EAAE,CAAA;IAClC,IAAI,MAAM,GAAG,CAAC,CAAA;IACd,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,cAAc,CAAC,aAAa,CAAC,EAAE,CAAC;QAClE,IAAI,MAAM,IAAI,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC;YAAE,MAAK;QAC7C,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;QACpB,MAAM,IAAI,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAA;IAChC,CAAC;IACD,OAAO,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAC5B,CAAC,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,CAC3D,CAAA;AACH,CAAC"}
@@ -1,6 +1,6 @@
1
1
  // biome-ignore lint/performance/noBarrelFile: entrypoint module
2
2
  export { Bytes, PublicKey, Secp256k1 } from 'ox';
3
- export { Channel, EarnShares, MultisigConfig, Period, ReceivePolicyReceipt, TempoAddress, Tick, TokenId, VirtualAddress, VirtualMaster, } from 'ox/tempo';
3
+ export { Channel, EarnShares, MultisigConfig, MultisigOperation, Period, ReceivePolicyReceipt, TempoAddress, Tick, TokenId, VirtualAddress, VirtualMaster, } from 'ox/tempo';
4
4
  export { custom, } from '../clients/transports/custom.js';
5
5
  export { fallback, } from '../clients/transports/fallback.js';
6
6
  export { webSocket, } from '../clients/transports/webSocket.js';
@@ -17,16 +17,18 @@ export * from './errors.js';
17
17
  export * as Formatters from './Formatters.js';
18
18
  export * as Hardfork from './Hardfork.js';
19
19
  export * as KeyAuthorizationManager from './KeyAuthorizationManager.js';
20
+ /** @experimental */
21
+ export * as Multisig from './Multisig.js';
20
22
  export * as P256 from './P256.js';
21
23
  /** @experimental */
22
24
  export * as Scopes from './Scopes.js';
23
25
  /** @experimental */
24
26
  export * as Selectors from './Selectors.js';
25
- export * as Storage from './Storage.js';
27
+ export * as Store from './Store.js';
26
28
  export * as TokenIds from './TokenIds.js';
27
29
  export * as Transaction from './Transaction.js';
28
30
  export * as Transport from './Transport.js';
29
- export { http, walletNamespaceCompat, withFeePayer, withRelay, } from './Transport.js';
31
+ export { http, walletNamespaceCompat, withFeePayer, withMultisig, withRelay, } from './Transport.js';
30
32
  export * as WebAuthnP256 from './WebAuthnP256.js';
31
33
  export * as WebCryptoP256 from './WebCryptoP256.js';
32
34
  export * as Zone from './Zone.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../tempo/index.ts"],"names":[],"mappings":"AAAA,gEAAgE;AAChE,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,IAAI,CAAA;AAYhD,OAAO,EACL,OAAO,EACP,UAAU,EACV,cAAc,EACd,MAAM,EACN,oBAAoB,EACpB,YAAY,EACZ,IAAI,EACJ,OAAO,EACP,cAAc,EACd,aAAa,GACd,MAAM,UAAU,CAAA;AAMjB,OAAO,EAIL,MAAM,GACP,MAAM,iCAAiC,CAAA;AACxC,OAAO,EAIL,QAAQ,GACT,MAAM,mCAAmC,CAAA;AAM1C,OAAO,EAIL,SAAS,GACV,MAAM,oCAAoC,CAAA;AAC3C,OAAO,KAAK,IAAI,MAAM,WAAW,CAAA;AACjC,OAAO,KAAK,OAAO,MAAM,cAAc,CAAA;AACvC,OAAO,KAAK,SAAS,MAAM,gBAAgB,CAAA;AAC3C,OAAO,KAAK,OAAO,MAAM,oBAAoB,CAAA;AAC7C,OAAO,KAAK,YAAY,MAAM,mBAAmB,CAAA;AACjD,OAAO,KAAK,KAAK,MAAM,YAAY,CAAA;AACnC,OAAO,EAIL,YAAY,GACb,MAAM,aAAa,CAAA;AACpB,OAAO,EAEL,SAAS,IAAI,YAAY,GAC1B,MAAM,gBAAgB,CAAA;AACvB,OAAO,KAAK,MAAM,MAAM,aAAa,CAAA;AACrC,cAAc,aAAa,CAAA;AAC3B,OAAO,KAAK,UAAU,MAAM,iBAAiB,CAAA;AAC7C,OAAO,KAAK,QAAQ,MAAM,eAAe,CAAA;AACzC,OAAO,KAAK,uBAAuB,MAAM,8BAA8B,CAAA;AACvE,OAAO,KAAK,IAAI,MAAM,WAAW,CAAA;AACjC,oBAAoB;AACpB,OAAO,KAAK,MAAM,MAAM,aAAa,CAAA;AACrC,oBAAoB;AACpB,OAAO,KAAK,SAAS,MAAM,gBAAgB,CAAA;AAC3C,OAAO,KAAK,OAAO,MAAM,cAAc,CAAA;AACvC,OAAO,KAAK,QAAQ,MAAM,eAAe,CAAA;AAgCzC,OAAO,KAAK,WAAW,MAAM,kBAAkB,CAAA;AAC/C,OAAO,KAAK,SAAS,MAAM,gBAAgB,CAAA;AAC3C,OAAO,EAEL,IAAI,EACJ,qBAAqB,EACrB,YAAY,EACZ,SAAS,GACV,MAAM,gBAAgB,CAAA;AACvB,OAAO,KAAK,YAAY,MAAM,mBAAmB,CAAA;AACjD,OAAO,KAAK,aAAa,MAAM,oBAAoB,CAAA;AACnD,OAAO,KAAK,IAAI,MAAM,WAAW,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../tempo/index.ts"],"names":[],"mappings":"AAAA,gEAAgE;AAChE,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,IAAI,CAAA;AAYhD,OAAO,EACL,OAAO,EACP,UAAU,EACV,cAAc,EACd,iBAAiB,EACjB,MAAM,EACN,oBAAoB,EACpB,YAAY,EACZ,IAAI,EACJ,OAAO,EACP,cAAc,EACd,aAAa,GACd,MAAM,UAAU,CAAA;AAKjB,OAAO,EAIL,MAAM,GACP,MAAM,iCAAiC,CAAA;AACxC,OAAO,EAIL,QAAQ,GACT,MAAM,mCAAmC,CAAA;AAM1C,OAAO,EAIL,SAAS,GACV,MAAM,oCAAoC,CAAA;AAC3C,OAAO,KAAK,IAAI,MAAM,WAAW,CAAA;AACjC,OAAO,KAAK,OAAO,MAAM,cAAc,CAAA;AACvC,OAAO,KAAK,SAAS,MAAM,gBAAgB,CAAA;AAC3C,OAAO,KAAK,OAAO,MAAM,oBAAoB,CAAA;AAC7C,OAAO,KAAK,YAAY,MAAM,mBAAmB,CAAA;AACjD,OAAO,KAAK,KAAK,MAAM,YAAY,CAAA;AACnC,OAAO,EAIL,YAAY,GACb,MAAM,aAAa,CAAA;AACpB,OAAO,EAEL,SAAS,IAAI,YAAY,GAC1B,MAAM,gBAAgB,CAAA;AACvB,OAAO,KAAK,MAAM,MAAM,aAAa,CAAA;AACrC,cAAc,aAAa,CAAA;AAC3B,OAAO,KAAK,UAAU,MAAM,iBAAiB,CAAA;AAC7C,OAAO,KAAK,QAAQ,MAAM,eAAe,CAAA;AACzC,OAAO,KAAK,uBAAuB,MAAM,8BAA8B,CAAA;AACvE,oBAAoB;AACpB,OAAO,KAAK,QAAQ,MAAM,eAAe,CAAA;AACzC,OAAO,KAAK,IAAI,MAAM,WAAW,CAAA;AACjC,oBAAoB;AACpB,OAAO,KAAK,MAAM,MAAM,aAAa,CAAA;AACrC,oBAAoB;AACpB,OAAO,KAAK,SAAS,MAAM,gBAAgB,CAAA;AAC3C,OAAO,KAAK,KAAK,MAAM,YAAY,CAAA;AACnC,OAAO,KAAK,QAAQ,MAAM,eAAe,CAAA;AA8BzC,OAAO,KAAK,WAAW,MAAM,kBAAkB,CAAA;AAC/C,OAAO,KAAK,SAAS,MAAM,gBAAgB,CAAA;AAC3C,OAAO,EAEL,IAAI,EACJ,qBAAqB,EACrB,YAAY,EACZ,YAAY,EACZ,SAAS,GACV,MAAM,gBAAgB,CAAA;AACvB,OAAO,KAAK,YAAY,MAAM,mBAAmB,CAAA;AACjD,OAAO,KAAK,aAAa,MAAM,oBAAoB,CAAA;AACnD,OAAO,KAAK,IAAI,MAAM,WAAW,CAAA"}
@@ -141,7 +141,7 @@ export async function resolveTokenWithDecimals(client, parameters) {
141
141
  * @internal
142
142
  */
143
143
  export function pickWriteParameters(parameters) {
144
- const { account, chain, feePayer, feeToken, gas, keyAuthorization, maxFeePerGas, maxPriorityFeePerGas, nonce, nonceKey, validAfter, validBefore, } = parameters;
144
+ const { account, chain, feePayer, feeToken, gas, keyAuthorization, maxFeePerGas, maxPriorityFeePerGas, nonce, nonceKey, owner, validAfter, validBefore, } = parameters;
145
145
  return {
146
146
  account,
147
147
  chain,
@@ -153,6 +153,7 @@ export function pickWriteParameters(parameters) {
153
153
  maxPriorityFeePerGas,
154
154
  nonce,
155
155
  nonceKey,
156
+ owner,
156
157
  validAfter,
157
158
  validBefore,
158
159
  };
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../tempo/internal/utils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../tempo/internal/utils.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,84 @@
1
+ import * as Address from 'ox/Address';
2
+ import * as Hash from 'ox/Hash';
3
+ import * as Json from 'ox/Json';
4
+ import { MultisigConfig } from 'ox/tempo';
5
+ import { BaseError } from '../../errors/base.js';
6
+ /** A valid 48-owner config is much smaller; 64 KiB bounds hostile store parsing work. */
7
+ const maxStoredValueLength = 65_536;
8
+ /** Zero commitment used before an account records its first config update. */
9
+ const zeroCommitment = `0x${'00'.repeat(32)}`;
10
+ /** Reads a cached multisig config. */
11
+ export async function read(store, options) {
12
+ const { address, commitment } = options;
13
+ const value = await store.getItem(key({ address, commitment }));
14
+ if (value === null || value === undefined)
15
+ return null;
16
+ const config = deserialize(value);
17
+ assertKey({ address, commitment, config });
18
+ return config;
19
+ }
20
+ /** Writes a validated multisig config. */
21
+ export async function write(store, options) {
22
+ const { address, commitment } = options;
23
+ const config = MultisigConfig.from(options.config);
24
+ assertKey({ address, commitment, config });
25
+ await store.setItem(key({ address, commitment }), serialize(config));
26
+ }
27
+ /** Verifies that a config matches its account-and-commitment key. */
28
+ function assertKey(options) {
29
+ const { address, commitment, config } = options;
30
+ if (!Address.validate(address) || !Hash.validate(commitment))
31
+ throw new InvalidStoreValueError();
32
+ if (config.version === 0n) {
33
+ if (commitment.toLowerCase() !== zeroCommitment ||
34
+ !Address.isEqual(MultisigConfig.getAddress(config), address))
35
+ throw new InvalidStoreValueError();
36
+ return;
37
+ }
38
+ if (MultisigConfig.getCommitment(config).toLowerCase() !==
39
+ commitment.toLowerCase())
40
+ throw new InvalidStoreValueError();
41
+ }
42
+ /** Deserializes a multisig config from storage. */
43
+ function deserialize(value) {
44
+ try {
45
+ if (value.length > maxStoredValueLength)
46
+ throw new InvalidStoreValueError();
47
+ return MultisigConfig.fromRpc(Json.parse(value));
48
+ }
49
+ catch (cause) {
50
+ if (cause instanceof InvalidStoreValueError)
51
+ throw cause;
52
+ throw new InvalidStoreValueError({ cause });
53
+ }
54
+ }
55
+ /** Returns the store key for an account and config commitment. */
56
+ function key(options) {
57
+ const { address, commitment } = options;
58
+ return `multisig:config:${address.toLowerCase()}:${commitment.toLowerCase()}`;
59
+ }
60
+ /** Serializes a multisig config for storage. */
61
+ function serialize(config) {
62
+ try {
63
+ const value = Json.stringify(MultisigConfig.toRpc(config));
64
+ if (value.length > maxStoredValueLength)
65
+ throw new InvalidStoreValueError();
66
+ return value;
67
+ }
68
+ catch (cause) {
69
+ if (cause instanceof InvalidStoreValueError)
70
+ throw cause;
71
+ throw new InvalidStoreValueError({ cause });
72
+ }
73
+ }
74
+ /** Thrown when a stored multisig config is malformed or mismatched. */
75
+ export class InvalidStoreValueError extends BaseError {
76
+ /** Creates an invalid store value error. */
77
+ constructor(options = {}) {
78
+ super('Stored multisig config is malformed or mismatched.', {
79
+ cause: options.cause,
80
+ name: 'Multisig.Config.InvalidStoreValueError',
81
+ });
82
+ }
83
+ }
84
+ //# sourceMappingURL=Config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Config.js","sourceRoot":"","sources":["../../../tempo/multisig/Config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,OAAO,MAAM,YAAY,CAAA;AACrC,OAAO,KAAK,IAAI,MAAM,SAAS,CAAA;AAE/B,OAAO,KAAK,IAAI,MAAM,SAAS,CAAA;AAC/B,OAAO,EAAE,cAAc,EAAE,MAAM,UAAU,CAAA;AACzC,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAA;AAGhD,yFAAyF;AACzF,MAAM,oBAAoB,GAAG,MAAM,CAAA;AAEnC,8EAA8E;AAC9E,MAAM,cAAc,GAAG,KAAK,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,EAAW,CAAA;AAEtD,sCAAsC;AACtC,MAAM,CAAC,KAAK,UAAU,IAAI,CACxB,KAAkB,EAClB,OAAqB;IAErB,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,GAAG,OAAO,CAAA;IACvC,MAAM,KAAK,GAAG,MAAM,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,OAAO,EAAE,UAAU,EAAE,CAAC,CAAC,CAAA;IAC/D,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,IAAI,CAAA;IACtD,MAAM,MAAM,GAAG,WAAW,CAAC,KAAK,CAAC,CAAA;IACjC,SAAS,CAAC,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC,CAAA;IAC1C,OAAO,MAAM,CAAA;AACf,CAAC;AAYD,0CAA0C;AAC1C,MAAM,CAAC,KAAK,UAAU,KAAK,CACzB,KAAkB,EAClB,OAAsB;IAEtB,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,GAAG,OAAO,CAAA;IACvC,MAAM,MAAM,GAAG,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAA;IAClD,SAAS,CAAC,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC,CAAA;IAC1C,MAAM,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,OAAO,EAAE,UAAU,EAAE,CAAC,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC,CAAA;AACtE,CAAC;AAcD,qEAAqE;AACrE,SAAS,SAAS,CAAC,OAIlB;IACC,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,GAAG,OAAO,CAAA;IAC/C,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC;QAC1D,MAAM,IAAI,sBAAsB,EAAE,CAAA;IACpC,IAAI,MAAM,CAAC,OAAO,KAAK,EAAE,EAAE,CAAC;QAC1B,IACE,UAAU,CAAC,WAAW,EAAE,KAAK,cAAc;YAC3C,CAAC,OAAO,CAAC,OAAO,CAAC,cAAc,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC;YAE5D,MAAM,IAAI,sBAAsB,EAAE,CAAA;QACpC,OAAM;IACR,CAAC;IACD,IACE,cAAc,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE;QAClD,UAAU,CAAC,WAAW,EAAE;QAExB,MAAM,IAAI,sBAAsB,EAAE,CAAA;AACtC,CAAC;AAED,mDAAmD;AACnD,SAAS,WAAW,CAAC,KAAa;IAChC,IAAI,CAAC;QACH,IAAI,KAAK,CAAC,MAAM,GAAG,oBAAoB;YAAE,MAAM,IAAI,sBAAsB,EAAE,CAAA;QAC3E,OAAO,cAAc,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAU,CAAC,CAAA;IAC3D,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,KAAK,YAAY,sBAAsB;YAAE,MAAM,KAAK,CAAA;QACxD,MAAM,IAAI,sBAAsB,CAAC,EAAE,KAAK,EAAE,CAAC,CAAA;IAC7C,CAAC;AACH,CAAC;AAED,kEAAkE;AAClE,SAAS,GAAG,CAAC,OAA0D;IACrE,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,GAAG,OAAO,CAAA;IACvC,OAAO,mBAAmB,OAAO,CAAC,WAAW,EAAE,IAAI,UAAU,CAAC,WAAW,EAAE,EAAE,CAAA;AAC/E,CAAC;AAED,gDAAgD;AAChD,SAAS,SAAS,CAAC,MAA6B;IAC9C,IAAI,CAAC;QACH,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAA;QAC1D,IAAI,KAAK,CAAC,MAAM,GAAG,oBAAoB;YAAE,MAAM,IAAI,sBAAsB,EAAE,CAAA;QAC3E,OAAO,KAAK,CAAA;IACd,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,KAAK,YAAY,sBAAsB;YAAE,MAAM,KAAK,CAAA;QACxD,MAAM,IAAI,sBAAsB,CAAC,EAAE,KAAK,EAAE,CAAC,CAAA;IAC7C,CAAC;AACH,CAAC;AAED,uEAAuE;AACvE,MAAM,OAAO,sBAAuB,SAAQ,SAAS;IACnD,4CAA4C;IAC5C,YAAY,UAA0C,EAAE;QACtD,KAAK,CAAC,oDAAoD,EAAE;YAC1D,KAAK,EAAE,OAAO,CAAC,KAA0B;YACzC,IAAI,EAAE,wCAAwC;SAC/C,CAAC,CAAA;IACJ,CAAC;CACF"}