ox 1.7.4 → 1.8.0

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 (237) hide show
  1. package/CHANGELOG.md +22 -0
  2. package/dist/core/AbiEvent.d.ts.map +1 -1
  3. package/dist/core/AbiEvent.js +10 -9
  4. package/dist/core/AbiEvent.js.map +1 -1
  5. package/dist/core/Blobs.d.ts.map +1 -1
  6. package/dist/core/Blobs.js +6 -2
  7. package/dist/core/Blobs.js.map +1 -1
  8. package/dist/core/Frame.d.ts +290 -0
  9. package/dist/core/Frame.d.ts.map +1 -0
  10. package/dist/core/Frame.js +306 -0
  11. package/dist/core/Frame.js.map +1 -0
  12. package/dist/core/FrameReceipt.d.ts +92 -0
  13. package/dist/core/FrameReceipt.d.ts.map +1 -0
  14. package/dist/core/FrameReceipt.js +72 -0
  15. package/dist/core/FrameReceipt.js.map +1 -0
  16. package/dist/core/FrameSignature.d.ts +357 -0
  17. package/dist/core/FrameSignature.d.ts.map +1 -0
  18. package/dist/core/FrameSignature.js +411 -0
  19. package/dist/core/FrameSignature.js.map +1 -0
  20. package/dist/core/Signature.d.ts +6 -5
  21. package/dist/core/Signature.d.ts.map +1 -1
  22. package/dist/core/Signature.js +17 -7
  23. package/dist/core/Signature.js.map +1 -1
  24. package/dist/core/Siwe.d.ts.map +1 -1
  25. package/dist/core/Siwe.js +21 -1
  26. package/dist/core/Siwe.js.map +1 -1
  27. package/dist/core/Transaction.d.ts +29 -4
  28. package/dist/core/Transaction.d.ts.map +1 -1
  29. package/dist/core/Transaction.js +25 -4
  30. package/dist/core/Transaction.js.map +1 -1
  31. package/dist/core/TransactionReceipt.d.ts +13 -4
  32. package/dist/core/TransactionReceipt.d.ts.map +1 -1
  33. package/dist/core/TransactionReceipt.js +14 -0
  34. package/dist/core/TransactionReceipt.js.map +1 -1
  35. package/dist/core/TransactionRequest.d.ts +15 -7
  36. package/dist/core/TransactionRequest.d.ts.map +1 -1
  37. package/dist/core/TransactionRequest.js +47 -1
  38. package/dist/core/TransactionRequest.js.map +1 -1
  39. package/dist/core/TxEnvelope.d.ts +35 -21
  40. package/dist/core/TxEnvelope.d.ts.map +1 -1
  41. package/dist/core/TxEnvelope.js +46 -6
  42. package/dist/core/TxEnvelope.js.map +1 -1
  43. package/dist/core/TxEnvelopeEip8141.d.ts +341 -0
  44. package/dist/core/TxEnvelopeEip8141.d.ts.map +1 -0
  45. package/dist/core/TxEnvelopeEip8141.js +485 -0
  46. package/dist/core/TxEnvelopeEip8141.js.map +1 -0
  47. package/dist/core/internal/curves.d.ts +2 -0
  48. package/dist/core/internal/curves.d.ts.map +1 -1
  49. package/dist/core/internal/curves.js +2 -0
  50. package/dist/core/internal/curves.js.map +1 -1
  51. package/dist/index.d.ts +73 -0
  52. package/dist/index.d.ts.map +1 -1
  53. package/dist/index.js +73 -0
  54. package/dist/index.js.map +1 -1
  55. package/dist/tempo/KeyAuthorization.d.ts +42 -38
  56. package/dist/tempo/KeyAuthorization.d.ts.map +1 -1
  57. package/dist/tempo/KeyAuthorization.js +24 -4
  58. package/dist/tempo/KeyAuthorization.js.map +1 -1
  59. package/dist/tempo/MultisigConfig.d.ts +18 -15
  60. package/dist/tempo/MultisigConfig.d.ts.map +1 -1
  61. package/dist/tempo/MultisigConfig.js +49 -20
  62. package/dist/tempo/MultisigConfig.js.map +1 -1
  63. package/dist/tempo/MultisigOperation.d.ts +3 -2
  64. package/dist/tempo/MultisigOperation.d.ts.map +1 -1
  65. package/dist/tempo/MultisigOperation.js +20 -100
  66. package/dist/tempo/MultisigOperation.js.map +1 -1
  67. package/dist/tempo/MultisigSimulation.d.ts +2 -49
  68. package/dist/tempo/MultisigSimulation.d.ts.map +1 -1
  69. package/dist/tempo/MultisigSimulation.js +18 -46
  70. package/dist/tempo/MultisigSimulation.js.map +1 -1
  71. package/dist/tempo/SignatureEnvelope.d.ts +72 -140
  72. package/dist/tempo/SignatureEnvelope.d.ts.map +1 -1
  73. package/dist/tempo/SignatureEnvelope.js +130 -181
  74. package/dist/tempo/SignatureEnvelope.js.map +1 -1
  75. package/dist/tempo/Transaction.d.ts +2 -0
  76. package/dist/tempo/Transaction.d.ts.map +1 -1
  77. package/dist/tempo/TransactionReceipt.d.ts +2 -0
  78. package/dist/tempo/TransactionReceipt.d.ts.map +1 -1
  79. package/dist/tempo/TransactionRequest.d.ts +4 -2
  80. package/dist/tempo/TransactionRequest.d.ts.map +1 -1
  81. package/dist/tempo/TransactionRequest.js +6 -1
  82. package/dist/tempo/TransactionRequest.js.map +1 -1
  83. package/dist/tempo/index.d.ts +3 -1
  84. package/dist/tempo/index.d.ts.map +1 -1
  85. package/dist/tempo/index.js +3 -1
  86. package/dist/tempo/index.js.map +1 -1
  87. package/dist/zod/Block.d.ts +123 -0
  88. package/dist/zod/Block.d.ts.map +1 -1
  89. package/dist/zod/Frame.d.ts +73 -0
  90. package/dist/zod/Frame.d.ts.map +1 -0
  91. package/dist/zod/Frame.js +74 -0
  92. package/dist/zod/Frame.js.map +1 -0
  93. package/dist/zod/FrameReceipt.d.ts +50 -0
  94. package/dist/zod/FrameReceipt.d.ts.map +1 -0
  95. package/dist/zod/FrameReceipt.js +37 -0
  96. package/dist/zod/FrameReceipt.js.map +1 -0
  97. package/dist/zod/FrameSignature.d.ts +63 -0
  98. package/dist/zod/FrameSignature.d.ts.map +1 -0
  99. package/dist/zod/FrameSignature.js +66 -0
  100. package/dist/zod/FrameSignature.js.map +1 -0
  101. package/dist/zod/RpcSchema.d.ts +806 -11
  102. package/dist/zod/RpcSchema.d.ts.map +1 -1
  103. package/dist/zod/Transaction.d.ts +252 -0
  104. package/dist/zod/Transaction.d.ts.map +1 -1
  105. package/dist/zod/Transaction.js +54 -0
  106. package/dist/zod/Transaction.js.map +1 -1
  107. package/dist/zod/TransactionEnvelope.d.ts +233 -4
  108. package/dist/zod/TransactionEnvelope.d.ts.map +1 -1
  109. package/dist/zod/TransactionEnvelope.js +9 -0
  110. package/dist/zod/TransactionEnvelope.js.map +1 -1
  111. package/dist/zod/TransactionReceipt.d.ts +48 -0
  112. package/dist/zod/TransactionReceipt.d.ts.map +1 -1
  113. package/dist/zod/TransactionReceipt.js +8 -3
  114. package/dist/zod/TransactionReceipt.js.map +1 -1
  115. package/dist/zod/TransactionRequest.d.ts +50 -2
  116. package/dist/zod/TransactionRequest.d.ts.map +1 -1
  117. package/dist/zod/TransactionRequest.js +10 -4
  118. package/dist/zod/TransactionRequest.js.map +1 -1
  119. package/dist/zod/TxEnvelopeEip8141.d.ts +166 -0
  120. package/dist/zod/TxEnvelopeEip8141.d.ts.map +1 -0
  121. package/dist/zod/TxEnvelopeEip8141.js +76 -0
  122. package/dist/zod/TxEnvelopeEip8141.js.map +1 -0
  123. package/dist/zod/internal/Frame.d.ts +4 -0
  124. package/dist/zod/internal/Frame.d.ts.map +1 -0
  125. package/dist/zod/internal/Frame.js +17 -0
  126. package/dist/zod/internal/Frame.js.map +1 -0
  127. package/dist/zod/internal/rpcSchemas/Eth.d.ts +842 -11
  128. package/dist/zod/internal/rpcSchemas/Eth.d.ts.map +1 -1
  129. package/dist/zod/internal/rpcSchemas/Wallet.d.ts +56 -2
  130. package/dist/zod/internal/rpcSchemas/Wallet.d.ts.map +1 -1
  131. package/dist/zod/tempo/AuthorizationTempo.d.ts +350 -10
  132. package/dist/zod/tempo/AuthorizationTempo.d.ts.map +1 -1
  133. package/dist/zod/tempo/KeyAuthorization.d.ts +242 -422
  134. package/dist/zod/tempo/KeyAuthorization.d.ts.map +1 -1
  135. package/dist/zod/tempo/KeyAuthorization.js +29 -31
  136. package/dist/zod/tempo/KeyAuthorization.js.map +1 -1
  137. package/dist/zod/tempo/MultisigSimulation.d.ts +8 -76
  138. package/dist/zod/tempo/MultisigSimulation.d.ts.map +1 -1
  139. package/dist/zod/tempo/MultisigSimulation.js +3 -37
  140. package/dist/zod/tempo/MultisigSimulation.js.map +1 -1
  141. package/dist/zod/tempo/RpcSchemaTempo.d.ts +424 -228
  142. package/dist/zod/tempo/RpcSchemaTempo.d.ts.map +1 -1
  143. package/dist/zod/tempo/SignatureEnvelope.d.ts +105 -3
  144. package/dist/zod/tempo/SignatureEnvelope.d.ts.map +1 -1
  145. package/dist/zod/tempo/SignatureEnvelope.js +21 -9
  146. package/dist/zod/tempo/SignatureEnvelope.js.map +1 -1
  147. package/dist/zod/tempo/Transaction.d.ts +783 -432
  148. package/dist/zod/tempo/Transaction.d.ts.map +1 -1
  149. package/dist/zod/tempo/TransactionRequest.d.ts +590 -473
  150. package/dist/zod/tempo/TransactionRequest.d.ts.map +1 -1
  151. package/dist/zod/tempo/TransactionRequest.js +8 -0
  152. package/dist/zod/tempo/TransactionRequest.js.map +1 -1
  153. package/dist/zod/tempo/TxEnvelopeTempo.d.ts +327 -213
  154. package/dist/zod/tempo/TxEnvelopeTempo.d.ts.map +1 -1
  155. package/dist/zod/tempo/ZoneRpcAuthentication.d.ts +105 -3
  156. package/dist/zod/tempo/ZoneRpcAuthentication.d.ts.map +1 -1
  157. package/dist/zod/z.d.ts +4 -0
  158. package/dist/zod/z.d.ts.map +1 -1
  159. package/dist/zod/z.js +4 -0
  160. package/dist/zod/z.js.map +1 -1
  161. package/package.json +41 -1
  162. package/src/core/AbiEvent.ts +11 -9
  163. package/src/core/Blobs.ts +6 -2
  164. package/src/core/Frame.ts +443 -0
  165. package/src/core/FrameReceipt.ts +117 -0
  166. package/src/core/FrameSignature.ts +593 -0
  167. package/src/core/Signature.ts +41 -11
  168. package/src/core/Siwe.ts +20 -1
  169. package/src/core/Transaction.ts +82 -5
  170. package/src/core/TransactionReceipt.ts +41 -3
  171. package/src/core/TransactionRequest.ts +71 -4
  172. package/src/core/TxEnvelope.ts +159 -90
  173. package/src/core/TxEnvelopeEip8141.ts +715 -0
  174. package/src/core/_test/AbiEvent.test.ts +45 -0
  175. package/src/core/_test/Blobs.test.ts +22 -0
  176. package/src/core/_test/Frame.test-d.ts +96 -0
  177. package/src/core/_test/Frame.test.ts +267 -0
  178. package/src/core/_test/FrameReceipt.test.ts +86 -0
  179. package/src/core/_test/FrameSignature.test-d.ts +93 -0
  180. package/src/core/_test/FrameSignature.test.ts +554 -0
  181. package/src/core/_test/Signature.test.ts +166 -0
  182. package/src/core/_test/Siwe.test.ts +100 -1
  183. package/src/core/_test/Transaction.test.ts +33 -0
  184. package/src/core/_test/TransactionEnvelope.test-d.ts +74 -0
  185. package/src/core/_test/TransactionEnvelope.test.ts +107 -0
  186. package/src/core/_test/TransactionReceipt.test.ts +59 -0
  187. package/src/core/_test/TransactionRequest.test-d.ts +50 -0
  188. package/src/core/_test/TransactionRequest.test.ts +88 -1
  189. package/src/core/_test/TxEnvelopeEip8141.test-d.ts +44 -0
  190. package/src/core/_test/TxEnvelopeEip8141.test.ts +1775 -0
  191. package/src/core/_test/curves.test.ts +6 -1
  192. package/src/core/_test/index.test.ts +4 -0
  193. package/src/core/internal/curves.ts +4 -0
  194. package/src/index.ts +77 -0
  195. package/src/tempo/AuthorizationTempo.test.ts +8 -4
  196. package/src/tempo/KeyAuthorization.test-d.ts +16 -63
  197. package/src/tempo/KeyAuthorization.test.ts +69 -11
  198. package/src/tempo/KeyAuthorization.ts +107 -63
  199. package/src/tempo/MultisigConfig.test.ts +44 -20
  200. package/src/tempo/MultisigConfig.ts +65 -23
  201. package/src/tempo/MultisigOperation.test.ts +79 -550
  202. package/src/tempo/MultisigOperation.ts +31 -146
  203. package/src/tempo/MultisigSimulation.test-d.ts +2 -2
  204. package/src/tempo/MultisigSimulation.test.ts +21 -110
  205. package/src/tempo/MultisigSimulation.ts +25 -99
  206. package/src/tempo/SignatureEnvelope.test-d.ts +29 -47
  207. package/src/tempo/SignatureEnvelope.test.ts +328 -541
  208. package/src/tempo/SignatureEnvelope.ts +196 -291
  209. package/src/tempo/Transaction.test.ts +4 -4
  210. package/src/tempo/TransactionRequest.test.ts +17 -80
  211. package/src/tempo/TransactionRequest.ts +19 -2
  212. package/src/tempo/index.ts +3 -1
  213. package/src/tempo/multisig.e2e.test.ts +321 -860
  214. package/src/version.ts +1 -1
  215. package/src/zod/Frame.ts +82 -0
  216. package/src/zod/FrameReceipt.ts +48 -0
  217. package/src/zod/FrameSignature.ts +78 -0
  218. package/src/zod/Transaction.ts +63 -0
  219. package/src/zod/TransactionEnvelope.ts +33 -0
  220. package/src/zod/TransactionReceipt.ts +14 -3
  221. package/src/zod/TransactionRequest.ts +18 -3
  222. package/src/zod/TxEnvelopeEip8141.ts +102 -0
  223. package/src/zod/_test/Frame.test-d.ts +41 -0
  224. package/src/zod/_test/Frame.test.ts +54 -0
  225. package/src/zod/_test/FrameReceipt.test.ts +75 -0
  226. package/src/zod/_test/FrameSignature.test.ts +94 -0
  227. package/src/zod/_test/TxEnvelopeEip8141.test.ts +116 -0
  228. package/src/zod/internal/Frame.ts +26 -0
  229. package/src/zod/tempo/KeyAuthorization.ts +50 -39
  230. package/src/zod/tempo/MultisigSimulation.ts +3 -48
  231. package/src/zod/tempo/SignatureEnvelope.ts +46 -35
  232. package/src/zod/tempo/TransactionRequest.ts +14 -0
  233. package/src/zod/tempo/_test/KeyAuthorization.test.ts +69 -20
  234. package/src/zod/tempo/_test/MultisigSimulation.test.ts +6 -31
  235. package/src/zod/tempo/_test/SignatureEnvelope.test.ts +118 -85
  236. package/src/zod/tempo/_test/TransactionRequest.test.ts +9 -19
  237. package/src/zod/z.ts +4 -0
@@ -1,14 +1,10 @@
1
1
  import * as Address from '../core/Address.js';
2
2
  import type * as Bytes from '../core/Bytes.js';
3
+ import * as ContractAddress from '../core/ContractAddress.js';
3
4
  import * as Errors from '../core/Errors.js';
4
5
  import * as Hash from '../core/Hash.js';
5
6
  import * as Hex from '../core/Hex.js';
6
7
  import type { Compute } from '../core/internal/types.js';
7
- /**
8
- * Maximum number of native multisig signatures in one nested authorization
9
- * path, including the top-level transaction signature.
10
- */
11
- export declare const maxNestingDepth = 2;
12
8
  /** Maximum encoded byte length for one primitive owner approval. */
13
9
  export declare const maxOwnerSignatureBytes = 2049;
14
10
  /** Maximum number of owners allowed in a native multisig config. */
@@ -16,7 +12,7 @@ export declare const maxOwners = 48;
16
12
  /** Maximum number of owner approvals in a native multisig signature. */
17
13
  export declare const maxSignatures = 8;
18
14
  /** Maximum threshold accepted by a native multisig config. */
19
- export declare const maxThreshold = 255;
15
+ export declare const maxThreshold = 8;
20
16
  /** Maximum version accepted by a native multisig config. */
21
17
  export declare const maxVersion: bigint;
22
18
  /** Tempo signature type byte for native multisig signatures. */
@@ -185,8 +181,9 @@ export declare function fromTuple(tuple: Tuple): Config;
185
181
  /**
186
182
  * Derives the stable native multisig account address.
187
183
  *
188
- * Preimage (fixed-width big-endian, **not** RLP):
189
- * `keccak256("tempo:multisig:account" || salt || u8(threshold) || u8(owners.length) || (owner || u8(weight)) for each owner)[12:32]`.
184
+ * The initial config is hashed into a CREATE2 salt using fixed-width
185
+ * big-endian fields, not RLP. The account uses the chain-configured recovery
186
+ * factory and wallet init-code hash.
190
187
  *
191
188
  * The address is derived once from the initial version-0 config. Config
192
189
  * updates do not change it.
@@ -205,15 +202,22 @@ export declare function fromTuple(tuple: Tuple): Config;
205
202
  * threshold: 1
206
203
  * })
207
204
  *
208
- * const address = MultisigConfig.getAddress(initialConfig)
205
+ * const address = MultisigConfig.getAddress(initialConfig, {
206
+ * factory: '0x7171717171717171717171717171717171717171'
207
+ * })
209
208
  * ```
210
209
  *
211
210
  * @param config - The initial multisig config.
211
+ * @param options - The recovery factory configured by the chain.
212
212
  * @returns The multisig account address.
213
213
  */
214
- export declare function getAddress(config: Input): Address.Address;
214
+ export declare function getAddress(config: Input, options: getAddress.Options): Address.Address;
215
215
  export declare namespace getAddress {
216
- type ErrorType = assert.ErrorType | Address.from.ErrorType | Hash.keccak256.ErrorType | Hex.concat.ErrorType | Hex.fromNumber.ErrorType | Hex.fromString.ErrorType | Hex.slice.ErrorType | Errors.GlobalErrorType;
216
+ type Options = {
217
+ /** Recovery factory configured by the chain. */
218
+ factory: Address.Address;
219
+ };
220
+ type ErrorType = assert.ErrorType | ContractAddress.fromCreate2.ErrorType | Hash.keccak256.ErrorType | Hex.concat.ErrorType | Hex.fromNumber.ErrorType | Hex.fromString.ErrorType | Errors.GlobalErrorType;
217
221
  }
218
222
  /**
219
223
  * Computes the commitment for a native multisig configuration.
@@ -255,9 +259,6 @@ export declare namespace getCommitment {
255
259
  * version. Initial approvals use version `0n`; each config update increments
256
260
  * it.
257
261
  *
258
- * For a nested multisig owner approval, the parent digest becomes the nested
259
- * approval's `payload`, with the nested multisig `account`.
260
- *
261
262
  * @example
262
263
  * ```ts twoslash
263
264
  * import { MultisigConfig, TxEnvelopeTempo } from 'ox/tempo'
@@ -278,7 +279,9 @@ export declare namespace getCommitment {
278
279
  * })
279
280
  *
280
281
  * const digest = MultisigConfig.getSignPayload({
281
- * account: MultisigConfig.getAddress(config),
282
+ * account: MultisigConfig.getAddress(config, {
283
+ * factory: '0x7171717171717171717171717171717171717171'
284
+ * }),
282
285
  * config,
283
286
  * payload: TxEnvelopeTempo.getSignPayload(envelope)
284
287
  * })
@@ -1 +1 @@
1
- {"version":3,"file":"MultisigConfig.d.ts","sourceRoot":"","sources":["../../src/tempo/MultisigConfig.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"MultisigConfig.d.ts","sourceRoot":"","sources":["../../src/tempo/MultisigConfig.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,OAAO,MAAM,oBAAoB,CAAA;AAC7C,OAAO,KAAK,KAAK,KAAK,MAAM,kBAAkB,CAAA;AAC9C,OAAO,KAAK,eAAe,MAAM,4BAA4B,CAAA;AAC7D,OAAO,KAAK,MAAM,MAAM,mBAAmB,CAAA;AAC3C,OAAO,KAAK,IAAI,MAAM,iBAAiB,CAAA;AACvC,OAAO,KAAK,GAAG,MAAM,gBAAgB,CAAA;AACrC,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,2BAA2B,CAAA;AAExD,oEAAoE;AACpE,eAAO,MAAM,sBAAsB,OAAO,CAAA;AAE1C,oEAAoE;AACpE,eAAO,MAAM,SAAS,KAAK,CAAA;AAE3B,wEAAwE;AACxE,eAAO,MAAM,aAAa,IAAI,CAAA;AAE9B,8DAA8D;AAC9D,eAAO,MAAM,YAAY,IAAI,CAAA;AAE7B,4DAA4D;AAC5D,eAAO,MAAM,UAAU,QAAiB,CAAA;AAExC,gEAAgE;AAChE,eAAO,MAAM,iBAAiB,QAAkB,CAAA;AAEhD,gEAAgE;AAChE,eAAO,MAAM,QAAQ,eAAkC,CAAA;AAevD;;GAEG;AACH,MAAM,MAAM,MAAM,CAAC,UAAU,GAAG,MAAM,EAAE,UAAU,GAAG,MAAM,IAAI,OAAO,CAAC;IACrE,gEAAgE;IAChE,MAAM,EAAE,SAAS,KAAK,CAAC,UAAU,CAAC,EAAE,CAAA;IACpC,kCAAkC;IAClC,IAAI,EAAE,GAAG,CAAC,GAAG,CAAA;IACb,6DAA6D;IAC7D,SAAS,EAAE,UAAU,CAAA;IACrB,wEAAwE;IACxE,OAAO,EAAE,UAAU,CAAA;CACpB,CAAC,CAAA;AAEF,wEAAwE;AACxE,MAAM,MAAM,KAAK,CACf,WAAW,SAAS,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,EACrD,UAAU,GAAG,MAAM,IACjB,OAAO,CAAC;IACV,mEAAmE;IACnE,MAAM,EAAE,SAAS,KAAK,CAAC,UAAU,CAAC,EAAE,CAAA;IACpC;;;OAGG;IACH,IAAI,CAAC,EAAE,GAAG,CAAC,GAAG,GAAG,SAAS,CAAA;IAC1B,sEAAsE;IACtE,SAAS,EAAE,UAAU,CAAA;IACrB,2EAA2E;IAC3E,OAAO,CAAC,EAAE,WAAW,GAAG,SAAS,CAAA;CAClC,CAAC,CAAA;AAEF,mCAAmC;AACnC,MAAM,MAAM,KAAK,CAAC,UAAU,GAAG,MAAM,IAAI;IACvC,2DAA2D;IAC3D,KAAK,EAAE,OAAO,CAAC,OAAO,CAAA;IACtB,4BAA4B;IAC5B,MAAM,EAAE,UAAU,CAAA;CACnB,CAAA;AAED,kEAAkE;AAClE,MAAM,MAAM,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,CAAA;AAEzC,sEAAsE;AACtE,MAAM,MAAM,KAAK,GAAG,SAAS;IAC3B,IAAI,EAAE,GAAG,CAAC,GAAG;IACb,OAAO,EAAE,GAAG,CAAC,GAAG;IAChB,SAAS,EAAE,GAAG,CAAC,GAAG;IAClB,MAAM,EAAE,SAAS,GAAG,CAAC,GAAG,EAAE,EAAE;CAC7B,CAAA;AAED;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,wBAAgB,MAAM,CACpB,WAAW,SAAS,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,EACrD,UAAU,GAAG,MAAM,EACnB,MAAM,EAAE,KAAK,CAAC,WAAW,EAAE,UAAU,CAAC,GAAG,IAAI,CA2D9C;AAED,MAAM,CAAC,OAAO,WAAW,MAAM,CAAC;IAC9B,KAAK,SAAS,GAAG,kBAAkB,GAAG,MAAM,CAAC,eAAe,CAAA;CAC7D;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,wBAAgB,IAAI,CAAC,UAAU,GAAG,MAAM,EACtC,MAAM,EAAE,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE,UAAU,CAAC,GAAG;IAAE,OAAO,CAAC,EAAE,CAAC,GAAG,EAAE,GAAG,SAAS,CAAA;CAAE,GACnE,MAAM,CAAC,EAAE,EAAE,UAAU,CAAC,CAAA;AACzB,wBAAgB,IAAI,CAAC,UAAU,SAAS,MAAM,EAAE,UAAU,GAAG,MAAM,EACjE,MAAM,EAAE,KAAK,CAAC,UAAU,EAAE,UAAU,CAAC,GAAG;IAAE,OAAO,EAAE,UAAU,CAAA;CAAE,GAC9D,MAAM,CAAC,UAAU,EAAE,UAAU,CAAC,CAAA;AACjC,wBAAgB,IAAI,CAAC,UAAU,GAAG,MAAM,EACtC,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,UAAU,CAAC,GAAG;IAAE,OAAO,EAAE,MAAM,CAAA;CAAE,GACtD,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAA;AAC7B,wBAAgB,IAAI,CAAC,UAAU,GAAG,MAAM,EACtC,MAAM,EAAE,KAAK,CAAC,MAAM,GAAG,MAAM,EAAE,UAAU,CAAC,GACzC,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAA;AAoB7B;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAgB,OAAO,CAAC,MAAM,EAAE,GAAG,GAAG,MAAM,CAK3C;AAED,MAAM,CAAC,OAAO,WAAW,OAAO,CAAC;IAC/B,KAAK,SAAS,GACV,MAAM,CAAC,SAAS,GAChB,GAAG,CAAC,QAAQ,CAAC,SAAS,GACtB,MAAM,CAAC,eAAe,CAAA;CAC3B;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,SAAS,CAAC,KAAK,EAAE,KAAK,GAAG,MAAM,CAuC9C;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AACH,wBAAgB,UAAU,CACxB,MAAM,EAAE,KAAK,EACb,OAAO,EAAE,UAAU,CAAC,OAAO,GAC1B,OAAO,CAAC,OAAO,CA+BjB;AAED,MAAM,CAAC,OAAO,WAAW,UAAU,CAAC;IAClC,KAAK,OAAO,GAAG;QACb,gDAAgD;QAChD,OAAO,EAAE,OAAO,CAAC,OAAO,CAAA;KACzB,CAAA;IAED,KAAK,SAAS,GACV,MAAM,CAAC,SAAS,GAChB,eAAe,CAAC,WAAW,CAAC,SAAS,GACrC,IAAI,CAAC,SAAS,CAAC,SAAS,GACxB,GAAG,CAAC,MAAM,CAAC,SAAS,GACpB,GAAG,CAAC,UAAU,CAAC,SAAS,GACxB,GAAG,CAAC,UAAU,CAAC,SAAS,GACxB,MAAM,CAAC,eAAe,CAAA;CAC3B;AAED;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,KAAK,GAAG,GAAG,CAAC,GAAG,CAepD;AAED,MAAM,CAAC,OAAO,WAAW,aAAa,CAAC;IACrC,KAAK,SAAS,GACV,MAAM,CAAC,SAAS,GAChB,IAAI,CAAC,SAAS,CAAC,SAAS,GACxB,GAAG,CAAC,MAAM,CAAC,SAAS,GACpB,GAAG,CAAC,UAAU,CAAC,SAAS,GACxB,GAAG,CAAC,UAAU,CAAC,SAAS,GACxB,MAAM,CAAC,eAAe,CAAA;CAC3B;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyCG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,cAAc,CAAC,KAAK,GAAG,GAAG,CAAC,GAAG,CAcnE;AAED,MAAM,CAAC,OAAO,WAAW,cAAc,CAAC;IACtC,KAAK,KAAK,GAAG;QACX,2CAA2C;QAC3C,OAAO,EAAE,OAAO,CAAC,OAAO,CAAA;QACxB,2DAA2D;QAC3D,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,SAAS,CAAC,CAAA;QAChD,kEAAkE;QAClE,OAAO,EAAE,GAAG,CAAC,GAAG,GAAG,KAAK,CAAC,KAAK,CAAA;KAC/B,CAAA;IAED,KAAK,SAAS,GACV,MAAM,CAAC,SAAS,GAChB,IAAI,CAAC,SAAS,CAAC,SAAS,GACxB,GAAG,CAAC,MAAM,CAAC,SAAS,GACpB,GAAG,CAAC,IAAI,CAAC,SAAS,GAClB,GAAG,CAAC,UAAU,CAAC,SAAS,GACxB,MAAM,CAAC,eAAe,CAAA;CAC3B;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,KAAK,CAAC,MAAM,EAAE,KAAK,GAAG,GAAG,CAWxC;AAED,MAAM,CAAC,OAAO,WAAW,KAAK,CAAC;IAC7B,KAAK,SAAS,GACV,MAAM,CAAC,SAAS,GAChB,GAAG,CAAC,UAAU,CAAC,SAAS,GACxB,MAAM,CAAC,eAAe,CAAA;CAC3B;AAED;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,wBAAgB,OAAO,CAAC,MAAM,EAAE,KAAK,GAAG,KAAK,CAe5C;AAED;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAgB,QAAQ,CAAC,MAAM,EAAE,KAAK,GAAG,OAAO,CAO/C;AAED,uDAAuD;AACvD,qBAAa,kBAAmB,SAAQ,MAAM,CAAC,SAAS;IACtD,SAAkB,IAAI,uCAAsC;gBAChD,EAAE,MAAM,EAAE,EAAE;QAAE,MAAM,EAAE,MAAM,CAAA;KAAE;CAG3C"}
@@ -1,12 +1,8 @@
1
1
  import * as Address from '../core/Address.js';
2
+ import * as ContractAddress from '../core/ContractAddress.js';
2
3
  import * as Errors from '../core/Errors.js';
3
4
  import * as Hash from '../core/Hash.js';
4
5
  import * as Hex from '../core/Hex.js';
5
- /**
6
- * Maximum number of native multisig signatures in one nested authorization
7
- * path, including the top-level transaction signature.
8
- */
9
- export const maxNestingDepth = 2;
10
6
  /** Maximum encoded byte length for one primitive owner approval. */
11
7
  export const maxOwnerSignatureBytes = 2049;
12
8
  /** Maximum number of owners allowed in a native multisig config. */
@@ -14,7 +10,7 @@ export const maxOwners = 48;
14
10
  /** Maximum number of owner approvals in a native multisig signature. */
15
11
  export const maxSignatures = 8;
16
12
  /** Maximum threshold accepted by a native multisig config. */
17
- export const maxThreshold = 0xff;
13
+ export const maxThreshold = 8;
18
14
  /** Maximum version accepted by a native multisig config. */
19
15
  export const maxVersion = 2n ** 64n - 1n;
20
16
  /** Tempo signature type byte for native multisig signatures. */
@@ -25,6 +21,8 @@ export const zeroSalt = `0x${'00'.repeat(32)}`;
25
21
  const accountDomain = 'tempo:multisig:account';
26
22
  /** Domain prefix for native multisig configuration commitments. */
27
23
  const configDomain = 'tempo:multisig:config';
24
+ /** Keccak-256 of the canonical recovery wallet creation code. */
25
+ const recoveryWalletInitCodeHash = '0x583cc63a2e37f645b43eac911b1a6d6de08b83abdc308c61364edda8cfc3bd37';
28
26
  /** Domain prefix for native multisig owner approvals. */
29
27
  const signatureDomain = 'tempo:multisig:signature';
30
28
  /**
@@ -171,7 +169,28 @@ export function fromRpc(config) {
171
169
  */
172
170
  export function fromTuple(tuple) {
173
171
  const [salt, version, threshold, owners] = tuple;
174
- return {
172
+ if (tuple.length !== 4 ||
173
+ typeof salt !== 'string' ||
174
+ Hex.size(salt) !== 32 ||
175
+ typeof version !== 'string' ||
176
+ Hex.size(version) > 8 ||
177
+ version.startsWith('0x00') ||
178
+ typeof threshold !== 'string' ||
179
+ Hex.size(threshold) > 1 ||
180
+ threshold.startsWith('0x00') ||
181
+ !Array.isArray(owners) ||
182
+ owners.some((owner) => !Array.isArray(owner) ||
183
+ owner.length !== 2 ||
184
+ typeof owner[0] !== 'string' ||
185
+ !Address.validate(owner[0]) ||
186
+ typeof owner[1] !== 'string' ||
187
+ Hex.size(owner[1]) > 1 ||
188
+ owner[1].startsWith('0x00')))
189
+ throw new InvalidConfigError({ reason: 'invalid config RLP tuple' });
190
+ const config = {
191
+ salt: salt && salt !== '0x' ? Hex.padLeft(salt, 32) : zeroSalt,
192
+ version: version === '0x' ? 0n : Hex.toBigInt(version),
193
+ threshold: threshold === '0x' ? 0 : Hex.toNumber(threshold),
175
194
  owners: owners.map((owner) => {
176
195
  const [ownerAddress, weight] = owner;
177
196
  return {
@@ -179,16 +198,16 @@ export function fromTuple(tuple) {
179
198
  weight: !weight || weight === '0x' ? 0 : Hex.toNumber(weight),
180
199
  };
181
200
  }),
182
- salt: salt && salt !== '0x' ? Hex.padLeft(salt, 32) : zeroSalt,
183
- threshold: threshold === '0x' ? 0 : Hex.toNumber(threshold),
184
- version: version === '0x' ? 0n : Hex.toBigInt(version),
185
201
  };
202
+ assert(config);
203
+ return config;
186
204
  }
187
205
  /**
188
206
  * Derives the stable native multisig account address.
189
207
  *
190
- * Preimage (fixed-width big-endian, **not** RLP):
191
- * `keccak256("tempo:multisig:account" || salt || u8(threshold) || u8(owners.length) || (owner || u8(weight)) for each owner)[12:32]`.
208
+ * The initial config is hashed into a CREATE2 salt using fixed-width
209
+ * big-endian fields, not RLP. The account uses the chain-configured recovery
210
+ * factory and wallet init-code hash.
192
211
  *
193
212
  * The address is derived once from the initial version-0 config. Config
194
213
  * updates do not change it.
@@ -207,23 +226,31 @@ export function fromTuple(tuple) {
207
226
  * threshold: 1
208
227
  * })
209
228
  *
210
- * const address = MultisigConfig.getAddress(initialConfig)
229
+ * const address = MultisigConfig.getAddress(initialConfig, {
230
+ * factory: '0x7171717171717171717171717171717171717171'
231
+ * })
211
232
  * ```
212
233
  *
213
234
  * @param config - The initial multisig config.
235
+ * @param options - The recovery factory configured by the chain.
214
236
  * @returns The multisig account address.
215
237
  */
216
- export function getAddress(config) {
238
+ export function getAddress(config, options) {
239
+ Address.assert(options.factory);
217
240
  assert(config);
218
241
  if (BigInt(config.version ?? 0) !== 0n)
219
242
  throw new InvalidConfigError({
220
243
  reason: 'account address requires version zero',
221
244
  });
222
- const hash = Hash.keccak256(Hex.concat(Hex.fromString(accountDomain), Hex.padLeft(config.salt ?? zeroSalt, 32), Hex.fromNumber(config.threshold, { size: 1 }), Hex.fromNumber(config.owners.length, { size: 1 }), ...config.owners.flatMap((owner) => [
245
+ const accountSalt = Hash.keccak256(Hex.concat(Hex.fromString(accountDomain), Hex.padLeft(config.salt ?? zeroSalt, 32), Hex.fromNumber(config.threshold, { size: 1 }), Hex.fromNumber(config.owners.length, { size: 1 }), ...config.owners.flatMap((owner) => [
223
246
  owner.owner,
224
247
  Hex.fromNumber(owner.weight, { size: 1 }),
225
248
  ])));
226
- const account = Address.from(Hex.slice(hash, 12, 32));
249
+ const account = ContractAddress.fromCreate2({
250
+ bytecodeHash: recoveryWalletInitCodeHash,
251
+ from: options.factory,
252
+ salt: accountSalt,
253
+ });
227
254
  if (Hex.toBigInt(account) === 0n)
228
255
  throw new InvalidConfigError({ reason: 'derived account cannot be zero' });
229
256
  if (config.owners.some((owner) => Address.isEqual(owner.owner, account)))
@@ -275,9 +302,6 @@ export function getCommitment(config) {
275
302
  * version. Initial approvals use version `0n`; each config update increments
276
303
  * it.
277
304
  *
278
- * For a nested multisig owner approval, the parent digest becomes the nested
279
- * approval's `payload`, with the nested multisig `account`.
280
- *
281
305
  * @example
282
306
  * ```ts twoslash
283
307
  * import { MultisigConfig, TxEnvelopeTempo } from 'ox/tempo'
@@ -298,7 +322,9 @@ export function getCommitment(config) {
298
322
  * })
299
323
  *
300
324
  * const digest = MultisigConfig.getSignPayload({
301
- * account: MultisigConfig.getAddress(config),
325
+ * account: MultisigConfig.getAddress(config, {
326
+ * factory: '0x7171717171717171717171717171717171717171'
327
+ * }),
302
328
  * config,
303
329
  * payload: TxEnvelopeTempo.getSignPayload(envelope)
304
330
  * })
@@ -310,6 +336,9 @@ export function getCommitment(config) {
310
336
  export function getSignPayload(value) {
311
337
  const { account, config, payload } = value;
312
338
  assertVersion(config.version);
339
+ Address.assert(account);
340
+ if (Hex.size(Hex.from(payload)) !== 32)
341
+ throw new InvalidConfigError({ reason: 'payload must be 32 bytes' });
313
342
  return Hash.keccak256(Hex.concat(Hex.fromString(signatureDomain), Hex.from(payload), account, Hex.fromNumber(config.version ?? 0n, { size: 8 })));
314
343
  }
315
344
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"MultisigConfig.js","sourceRoot":"","sources":["../../src/tempo/MultisigConfig.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"MultisigConfig.js","sourceRoot":"","sources":["../../src/tempo/MultisigConfig.ts"],"names":[],"mappings":"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"}
@@ -104,7 +104,8 @@ export declare namespace getHash {
104
104
  *
105
105
  * The function retains one canonical approval per owner. It selects the
106
106
  * smallest deterministic quorum by owner weight, then orders the selected
107
- * approvals by owner address for serialization.
107
+ * approvals by owner address for serialization. The caller supplies the
108
+ * account and config; the chain validates their factory-derived identity.
108
109
  *
109
110
  * @example
110
111
  * ```ts twoslash
@@ -128,7 +129,7 @@ export declare namespace selectApprovals {
128
129
  type Options = {
129
130
  /** Root multisig account. */
130
131
  account: Address.Address;
131
- /** Serialized primitive or nested owner approvals. */
132
+ /** Serialized primitive owner approvals. */
132
133
  approvals: readonly SignatureEnvelope.Serialized[];
133
134
  /** Current root multisig configuration. */
134
135
  config: MultisigConfig.Config;
@@ -1 +1 @@
1
- {"version":3,"file":"MultisigOperation.d.ts","sourceRoot":"","sources":["../../src/tempo/MultisigOperation.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"MultisigOperation.d.ts","sourceRoot":"","sources":["../../src/tempo/MultisigOperation.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,OAAO,MAAM,oBAAoB,CAAA;AAC7C,OAAO,KAAK,MAAM,MAAM,mBAAmB,CAAA;AAE3C,OAAO,KAAK,GAAG,MAAM,gBAAgB,CAAA;AACrC,OAAO,KAAK,iBAAiB,MAAM,uBAAuB,CAAA;AAC1D,OAAO,KAAK,cAAc,MAAM,qBAAqB,CAAA;AACrD,OAAO,KAAK,iBAAiB,MAAM,wBAAwB,CAAA;AAC3D,OAAO,KAAK,eAAe,MAAM,sBAAsB,CAAA;AAEvD,iDAAiD;AACjD,MAAM,MAAM,IAAI,CAAC,QAAQ,GAAG,MAAM,IAAI;IACpC,6BAA6B;IAC7B,OAAO,EAAE,OAAO,CAAC,OAAO,CAAA;IACxB,gDAAgD;IAChD,SAAS,EAAE,SAAS,GAAG,CAAC,GAAG,EAAE,CAAA;IAC7B,mDAAmD;IACnD,MAAM,EAAE,cAAc,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAA;IACvC,0CAA0C;IAC1C,SAAS,EAAE,MAAM,CAAA;IACjB,6CAA6C;IAC7C,IAAI,EAAE,GAAG,CAAC,GAAG,CAAA;IACb,0DAA0D;IAC1D,cAAc,EAAE,MAAM,CAAA;IACtB,kCAAkC;IAClC,SAAS,EAAE,MAAM,CAAA;IACjB,oDAAoD;IACpD,SAAS,EAAE,MAAM,CAAA;IACjB,2DAA2D;IAC3D,MAAM,EAAE,MAAM,CAAA;CACf,CAAA;AAED,+CAA+C;AAC/C,MAAM,MAAM,oBAAoB,CAAC,QAAQ,GAAG,MAAM,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG;IACrE,gEAAgE;IAChE,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IAC9B,+BAA+B;IAC/B,MAAM,EAAE,SAAS,GAAG,YAAY,GAAG,SAAS,CAAA;IAC5C,oDAAoD;IACpD,YAAY,CAAC,EAAE,GAAG,CAAC,GAAG,GAAG,SAAS,CAAA;IAClC,8EAA8E;IAC9E,WAAW,EAAE,GAAG,CAAC,GAAG,CAAA;IACpB,4EAA4E;IAC5E,eAAe,CAAC,EAAE,GAAG,CAAC,GAAG,GAAG,SAAS,CAAA;IACrC,sBAAsB;IACtB,IAAI,EAAE,aAAa,CAAA;CACpB,CAAA;AAED,qDAAqD;AACrD,MAAM,MAAM,yBAAyB,CAAC,QAAQ,GAAG,MAAM,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG;IAC1E,8CAA8C;IAC9C,gBAAgB,EAAE,GAAG,CAAC,GAAG,CAAA;IACzB,+BAA+B;IAC/B,MAAM,EAAE,SAAS,GAAG,SAAS,CAAA;IAC7B,sBAAsB;IACtB,IAAI,EAAE,kBAAkB,CAAA;CACzB,CAAA;AAED,2DAA2D;AAC3D,MAAM,MAAM,SAAS,CAAC,QAAQ,GAAG,MAAM,IACnC,oBAAoB,CAAC,QAAQ,CAAC,GAC9B,yBAAyB,CAAC,QAAQ,CAAC,CAAA;AAEvC,+CAA+C;AAC/C,MAAM,MAAM,cAAc,GAAG,oBAAoB,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;AAE1D,qDAAqD;AACrD,MAAM,MAAM,mBAAmB,GAAG,yBAAyB,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;AAEpE,mCAAmC;AACnC,MAAM,MAAM,GAAG,GAAG,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;AAEpC;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,OAAO,GAAG,GAAG,CAAC,GAAG,CAezD;AAED,MAAM,CAAC,OAAO,WAAW,OAAO,CAAC;IAC/B,gCAAgC;IAChC,KAAY,OAAO,GAAG;QACpB,6BAA6B;QAC7B,OAAO,EAAE,OAAO,CAAC,OAAO,CAAA;QACxB,oDAAoD;QACpD,MAAM,EAAE,cAAc,CAAC,MAAM,CAAA;KAC9B,GAAG,CACA;QACE,8CAA8C;QAC9C,gBAAgB,EAAE,GAAG,CAAC,GAAG,CAAA;QACzB,sBAAsB;QACtB,IAAI,EAAE,kBAAkB,CAAA;KACzB,GACD;QACE,8EAA8E;QAC9E,WAAW,EAAE,eAAe,CAAC,UAAU,CAAA;QACvC,sBAAsB;QACtB,IAAI,EAAE,aAAa,CAAA;KACpB,CACJ,CAAA;IAED,gCAAgC;IAChC,KAAY,SAAS,GACjB,iBAAiB,CAAC,WAAW,CAAC,SAAS,GACvC,iBAAiB,CAAC,cAAc,CAAC,SAAS,GAC1C,cAAc,CAAC,cAAc,CAAC,SAAS,GACvC,eAAe,CAAC,WAAW,CAAC,SAAS,GACrC,eAAe,CAAC,cAAc,CAAC,SAAS,GACxC,MAAM,CAAC,eAAe,CAAA;CAC3B;AAED;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,wBAAsB,eAAe,CACnC,OAAO,EAAE,eAAe,CAAC,OAAO,GAC/B,OAAO,CAAC,eAAe,CAAC,WAAW,CAAC,CAatC;AAED,MAAM,CAAC,OAAO,WAAW,eAAe,CAAC;IACvC,wCAAwC;IACxC,KAAY,OAAO,GAAG;QACpB,6BAA6B;QAC7B,OAAO,EAAE,OAAO,CAAC,OAAO,CAAA;QACxB,4CAA4C;QAC5C,SAAS,EAAE,SAAS,iBAAiB,CAAC,UAAU,EAAE,CAAA;QAClD,2CAA2C;QAC3C,MAAM,EAAE,cAAc,CAAC,MAAM,CAAA;QAC7B,4DAA4D;QAC5D,IAAI,EAAE,GAAG,CAAC,GAAG,CAAA;KACd,CAAA;IAED,oDAAoD;IACpD,KAAY,WAAW,GAAG;QACxB,yDAAyD;QACzD,SAAS,EAAE,SAAS,iBAAiB,CAAC,UAAU,EAAE,CAAA;QAClD,0DAA0D;QAC1D,cAAc,EAAE,MAAM,CAAA;QACtB,sEAAsE;QACtE,iBAAiB,EAAE,SAAS,iBAAiB,CAAC,UAAU,EAAE,CAAA;QAC1D,6BAA6B;QAC7B,SAAS,EAAE,MAAM,CAAA;QACjB,sDAAsD;QACtD,MAAM,EAAE,MAAM,CAAA;KACf,CAAA;IAED,wCAAwC;IACxC,KAAY,SAAS,GACjB,oBAAoB,GACpB,cAAc,CAAC,MAAM,CAAC,SAAS,GAC/B,cAAc,CAAC,cAAc,CAAC,SAAS,GACvC,iBAAiB,CAAC,aAAa,GAC/B,iBAAiB,CAAC,cAAc,CAAC,SAAS,GAC1C,iBAAiB,CAAC,SAAS,CAAC,SAAS,GACrC,iBAAiB,CAAC,iBAAiB,GACnC,MAAM,CAAC,eAAe,CAAA;CAC3B;AAED;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAgB,yBAAyB,CACvC,gBAAgB,EAAE,GAAG,CAAC,GAAG,EACzB,OAAO,EAAE,yBAAyB,CAAC,OAAO,GACzC,GAAG,CAAC,GAAG,CA+BT;AAED,MAAM,CAAC,OAAO,WAAW,yBAAyB,CAAC;IACjD,+CAA+C;IAC/C,KAAY,OAAO,GAAG;QACpB,6BAA6B;QAC7B,OAAO,EAAE,OAAO,CAAC,OAAO,CAAA;QACxB,2CAA2C;QAC3C,SAAS,EAAE,SAAS,iBAAiB,CAAC,UAAU,EAAE,CAAA;QAClD,gDAAgD;QAChD,MAAM,EAAE,cAAc,CAAC,MAAM,CAAA;KAC9B,CAAA;IAED,kDAAkD;IAClD,KAAY,SAAS,GACjB,qBAAqB,GACrB,iBAAiB,CAAC,WAAW,CAAC,SAAS,GACvC,iBAAiB,CAAC,IAAI,CAAC,SAAS,GAChC,iBAAiB,CAAC,cAAc,CAAC,SAAS,GAC1C,iBAAiB,CAAC,SAAS,CAAC,SAAS,GACrC,cAAc,CAAC,MAAM,CAAC,SAAS,GAC/B,iBAAiB,CAAC,MAAM,CAAC,SAAS,GAClC,iBAAiB,CAAC,sBAAsB,GACxC,iBAAiB,CAAC,qBAAqB,CAAC,SAAS,GACjD,MAAM,CAAC,eAAe,CAAA;CAC3B;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,oBAAoB,CAClC,SAAS,EAAE,oBAAoB,EAC/B,OAAO,EAAE,oBAAoB,CAAC,OAAO,GACpC,eAAe,CAAC,UAAU,CA8B5B;AAED,MAAM,CAAC,OAAO,WAAW,oBAAoB,CAAC;IAC5C,0CAA0C;IAC1C,KAAY,OAAO,GAAG;QACpB,gEAAgE;QAChE,SAAS,EAAE,SAAS,iBAAiB,CAAC,UAAU,EAAE,CAAA;KACnD,CAAA;IAED,6CAA6C;IAC7C,KAAY,SAAS,GACjB,IAAI,CAAC,SAAS,GACd,qBAAqB,GACrB,iBAAiB,CAAC,qBAAqB,CAAC,SAAS,GACjD,eAAe,CAAC,WAAW,CAAC,SAAS,GACrC,eAAe,CAAC,cAAc,CAAC,SAAS,GACxC,eAAe,CAAC,SAAS,CAAC,SAAS,GACnC,MAAM,CAAC,eAAe,CAAA;CAC3B;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,IAAI,CAAC,KAAK,CAAC,SAAS,SAAS,SAAS,EACpD,SAAS,EAAE,SAAS,GACnB,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,CAqB7B;AAED,MAAM,CAAC,OAAO,WAAW,IAAI,CAAC;IAC5B,8BAA8B;IAC9B,KAAY,WAAW,CAAC,SAAS,SAAS,SAAS,IACjD,SAAS,SAAS,oBAAoB,GAClC,oBAAoB,GACpB,yBAAyB,CAAA;IAE/B,6BAA6B;IAC7B,KAAY,SAAS,GAAG,qBAAqB,GAAG,MAAM,CAAC,eAAe,CAAA;CACvE;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,OAAO,CAAC,KAAK,CAAC,SAAS,SAAS,GAAG,EACjD,SAAS,EAAE,SAAS,GACnB,OAAO,CAAC,WAAW,CAAC,SAAS,CAAC,CAoBhC;AAED,MAAM,CAAC,OAAO,WAAW,OAAO,CAAC;IAC/B,iCAAiC;IACjC,KAAY,WAAW,CAAC,SAAS,SAAS,GAAG,IAC3C,SAAS,SAAS,cAAc,GAC5B,oBAAoB,GACpB,yBAAyB,CAAA;IAE/B,gCAAgC;IAChC,KAAY,SAAS,GAAG,qBAAqB,GAAG,MAAM,CAAC,eAAe,CAAA;CACvE;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,KAAK,CAAC,KAAK,CAAC,SAAS,SAAS,SAAS,EACrD,SAAS,EAAE,SAAS,GACnB,KAAK,CAAC,WAAW,CAAC,SAAS,CAAC,CAM9B;AAED,MAAM,CAAC,OAAO,WAAW,KAAK,CAAC;IAC7B,+BAA+B;IAC/B,KAAY,WAAW,CAAC,SAAS,SAAS,SAAS,IACjD,SAAS,SAAS,oBAAoB,GAClC,cAAc,GACd,mBAAmB,CAAA;IAEzB,8BAA8B;IAC9B,KAAY,SAAS,GAAG,IAAI,CAAC,SAAS,GAAG,cAAc,CAAC,KAAK,CAAC,SAAS,CAAA;CACxE;AAmlBD,wDAAwD;AACxD,qBAAa,oBAAqB,SAAQ,MAAM,CAAC,SAAS,CAAC,KAAK,GAAG,SAAS,CAAC;IAC3E,SAAkB,IAAI,4CAA2C;IAEjE;;;;;;;;;;;;;OAaG;gBACS,OAAO,GAAE,oBAAoB,CAAC,OAAY;CAQvD;AAED,MAAM,CAAC,OAAO,WAAW,oBAAoB,CAAC;IAC5C,kCAAkC;IAClC,KAAY,OAAO,GAAG;QACpB,wBAAwB;QACxB,KAAK,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;QAC3B,0BAA0B;QAC1B,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;KAC5B,CAAA;CACF;AAED,gFAAgF;AAChF,qBAAa,qBAAsB,SAAQ,MAAM,CAAC,SAAS,CAAC,KAAK,GAAG,SAAS,CAAC;IAC5E,SAAkB,IAAI,6CAA4C;IAElE;;;;;;;;;;;;;OAaG;gBACS,OAAO,GAAE,qBAAqB,CAAC,OAAY;CAQxD;AAED,MAAM,CAAC,OAAO,WAAW,qBAAqB,CAAC;IAC7C,kCAAkC;IAClC,KAAY,OAAO,GAAG;QACpB,wBAAwB;QACxB,KAAK,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;QAC3B,0BAA0B;QAC1B,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;KAC5B,CAAA;CACF"}
@@ -41,7 +41,8 @@ export function getHash(options) {
41
41
  *
42
42
  * The function retains one canonical approval per owner. It selects the
43
43
  * smallest deterministic quorum by owner weight, then orders the selected
44
- * approvals by owner address for serialization.
44
+ * approvals by owner address for serialization. The caller supplies the
45
+ * account and config; the chain validates their factory-derived identity.
45
46
  *
46
47
  * @example
47
48
  * ```ts twoslash
@@ -66,17 +67,12 @@ export async function selectApprovals(options) {
66
67
  if (!Hash.validate(hash))
67
68
  throw new InvalidApprovalError({ reason: 'hash is invalid' });
68
69
  const config = MultisigConfig.from(options.config);
69
- if (config.version === 0n &&
70
- !Address.isEqual(MultisigConfig.getAddress(config), account))
71
- throw new InvalidApprovalError({
72
- reason: 'initial config does not derive the root multisig account',
73
- });
74
70
  return selectApprovals_internal({
75
71
  account,
76
72
  approvals,
77
73
  config,
78
74
  hash,
79
- }, [account.toLowerCase()]);
75
+ });
80
76
  }
81
77
  /**
82
78
  * Serializes a key authorization with selected multisig owner approvals.
@@ -117,7 +113,7 @@ export function serializeKeyAuthorization(keyAuthorization, options) {
117
113
  account: options.account,
118
114
  config,
119
115
  payload: KeyAuthorization_.getSignPayload(authorization),
120
- signatures: options.approvals.map((approval) => SignatureEnvelope.deserialize(approval)),
116
+ signatures: options.approvals.map((approval) => assertApproval(options.account, approval, config)),
121
117
  });
122
118
  return KeyAuthorization_.serialize(KeyAuthorization_.from(authorization, {
123
119
  signature: SignatureEnvelope.from({
@@ -150,7 +146,7 @@ export function serializeKeyAuthorization(keyAuthorization, options) {
150
146
  export function serializeTransaction(operation, options) {
151
147
  const value = from(operation);
152
148
  const envelope = TxEnvelopeTempo.deserialize(value.transaction);
153
- const approvals = options.approvals.map((approval) => SignatureEnvelope.from(approval));
149
+ const approvals = options.approvals.map((approval) => assertApproval(value.account, approval, value.config));
154
150
  assertRetainedApprovals(value, approvals);
155
151
  const signatures = SignatureEnvelope.sortMultisigApprovals({
156
152
  account: value.account,
@@ -272,7 +268,7 @@ export function toRpc(operation) {
272
268
  *
273
269
  * @internal
274
270
  */
275
- async function selectApprovals_internal(options, path) {
271
+ async function selectApprovals_internal(options) {
276
272
  const owners = new Map(options.config.owners.map((owner) => [
277
273
  owner.owner.toLowerCase(),
278
274
  { address: owner.owner, weight: Number(owner.weight) },
@@ -280,16 +276,14 @@ async function selectApprovals_internal(options, path) {
280
276
  const groups = new Map();
281
277
  for (const serialized of options.approvals) {
282
278
  const signature = SignatureEnvelope.from(serialized);
283
- if (signature.type === 'keychain')
279
+ if (signature.type === 'keychain' || signature.type === 'multisig')
284
280
  throw new InvalidApprovalError({
285
- reason: 'keychain signatures cannot approve a multisig operation',
286
- });
287
- const address = signature.type === 'multisig'
288
- ? signature.account
289
- : SignatureEnvelope.extractAddress({
290
- payload: options.hash,
291
- signature,
281
+ reason: 'only primitive signatures can approve a multisig operation',
292
282
  });
283
+ const address = SignatureEnvelope.extractAddress({
284
+ payload: options.hash,
285
+ signature,
286
+ });
293
287
  const owner = owners.get(address.toLowerCase());
294
288
  if (!owner)
295
289
  throw new InvalidApprovalError({
@@ -309,57 +303,6 @@ async function selectApprovals_internal(options, path) {
309
303
  const valid = [];
310
304
  const retained = [];
311
305
  for (const group of groups.values()) {
312
- const nested = group.signatures.filter((signature) => signature.type === 'multisig');
313
- if (nested.length > 0) {
314
- if (nested.length !== group.signatures.length)
315
- throw new InvalidApprovalError({
316
- reason: `owner ${group.address} has conflicting signature types`,
317
- });
318
- if (path.length >= MultisigConfig.maxNestingDepth ||
319
- path.includes(group.address.toLowerCase()))
320
- throw new InvalidApprovalError({
321
- reason: `nested multisig owner ${group.address} is invalid`,
322
- });
323
- const config = MultisigConfig.from(nested[0].config);
324
- if (nested.some((signature) => !sameConfig(signature.config, config)))
325
- throw new InvalidApprovalError({
326
- reason: `nested multisig owner ${group.address} has conflicting config witnesses`,
327
- });
328
- if (config.version === 0n &&
329
- !Address.isEqual(MultisigConfig.getAddress(config), group.address))
330
- throw new InvalidApprovalError({
331
- reason: `initial config does not derive nested multisig owner ${group.address}`,
332
- });
333
- const selected = await selectApprovals_internal({
334
- account: group.address,
335
- approvals: nested.flatMap((signature) => signature.signatures.map((approval) => SignatureEnvelope.serialize(approval))),
336
- config,
337
- hash: MultisigConfig.getSignPayload({
338
- account: group.address,
339
- config,
340
- payload: options.hash,
341
- }),
342
- }, [...path, group.address.toLowerCase()]);
343
- retained.push({
344
- address: group.address,
345
- signature: SignatureEnvelope.serialize(SignatureEnvelope.from({
346
- account: group.address,
347
- config,
348
- signatures: selected.approvals.map((approval) => SignatureEnvelope.from(approval)),
349
- })),
350
- });
351
- if (selected.weight >= selected.threshold)
352
- valid.push({
353
- address: group.address,
354
- signature: SignatureEnvelope.serialize(SignatureEnvelope.from({
355
- account: group.address,
356
- config,
357
- signatures: selected.selectedApprovals.map((approval) => SignatureEnvelope.from(approval)),
358
- })),
359
- weight: group.weight,
360
- });
361
- continue;
362
- }
363
306
  const signatures = group.signatures.map((signature) => {
364
307
  if (!SignatureEnvelope.verify(signature, {
365
308
  address: group.address,
@@ -493,11 +436,6 @@ function assertBase(operation, config) {
493
436
  throw new InvalidOperationError({
494
437
  reason: 'weight is not reachable by signatureCount retained owner approvals',
495
438
  });
496
- if (config.version === 0n &&
497
- !Address.isEqual(MultisigConfig.getAddress(config), operation.account))
498
- throw new InvalidOperationError({
499
- reason: 'initial config does not derive the operation account',
500
- });
501
439
  }
502
440
  /**
503
441
  * Validates a transaction operation and its state-specific fields.
@@ -646,6 +584,10 @@ function assertKeyAuthorization(operation, config) {
646
584
  */
647
585
  function assertApproval(account, serialized, config) {
648
586
  const approval = SignatureEnvelope.deserialize(serialized);
587
+ if (approval.type === 'keychain' || approval.type === 'multisig')
588
+ throw new InvalidOperationError({
589
+ reason: 'only primitive owner approvals are allowed',
590
+ });
649
591
  SignatureEnvelope.assert({
650
592
  account,
651
593
  config,
@@ -665,7 +607,8 @@ function assertApproval(account, serialized, config) {
665
607
  function assertRetainedApprovals(operation, selected) {
666
608
  const retained = operation.approvals.map((approval) => SignatureEnvelope.deserialize(approval));
667
609
  for (const approval of selected) {
668
- const index = retained.findIndex((candidate) => includesApproval(candidate, approval));
610
+ const index = retained.findIndex((candidate) => SignatureEnvelope.serialize(candidate).toLowerCase() ===
611
+ SignatureEnvelope.serialize(approval).toLowerCase());
669
612
  if (index === -1)
670
613
  throw new InvalidOperationError({
671
614
  reason: 'transaction signature is not a retained approval',
@@ -681,7 +624,8 @@ function assertRetainedApprovals(operation, selected) {
681
624
  function assertSelectedApprovals(operation, selected, authorization) {
682
625
  const retained = operation.approvals.map((approval) => SignatureEnvelope.deserialize(approval));
683
626
  for (const approval of selected) {
684
- const index = retained.findIndex((candidate) => includesApproval(candidate, approval));
627
+ const index = retained.findIndex((candidate) => SignatureEnvelope.serialize(candidate).toLowerCase() ===
628
+ SignatureEnvelope.serialize(approval).toLowerCase());
685
629
  if (index === -1)
686
630
  throw new InvalidOperationError({
687
631
  reason: 'key authorization signature is not a retained approval',
@@ -707,30 +651,6 @@ function assertSelectedApprovals(operation, selected, authorization) {
707
651
  });
708
652
  }
709
653
  }
710
- /**
711
- * Checks whether a selected approval is contained in a retained approval tree.
712
- *
713
- * @internal
714
- */
715
- function includesApproval(retained, selected) {
716
- if (retained.type !== 'multisig' || selected.type !== 'multisig')
717
- return (SignatureEnvelope.serialize(retained).toLowerCase() ===
718
- SignatureEnvelope.serialize(selected).toLowerCase());
719
- if (retained.account.toLowerCase() !== selected.account.toLowerCase())
720
- return false;
721
- if (!sameConfig(retained.config, selected.config))
722
- return false;
723
- let index = 0;
724
- for (const approval of selected.signatures) {
725
- while (index < retained.signatures.length &&
726
- !includesApproval(retained.signatures[index], approval))
727
- index++;
728
- if (index === retained.signatures.length)
729
- return false;
730
- index++;
731
- }
732
- return true;
733
- }
734
654
  /**
735
655
  * Checks whether exactly `signatureCount` retained owners can produce `weight`.
736
656
  *