ox 0.14.44 → 0.14.46

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 (149) hide show
  1. package/CHANGELOG.md +12 -0
  2. package/Frame/package.json +6 -0
  3. package/FrameReceipt/package.json +6 -0
  4. package/FrameSignature/package.json +6 -0
  5. package/TxEnvelopeEip8141/package.json +6 -0
  6. package/_cjs/core/Frame.js +147 -0
  7. package/_cjs/core/Frame.js.map +1 -0
  8. package/_cjs/core/FrameReceipt.js +34 -0
  9. package/_cjs/core/FrameReceipt.js.map +1 -0
  10. package/_cjs/core/FrameSignature.js +203 -0
  11. package/_cjs/core/FrameSignature.js.map +1 -0
  12. package/_cjs/core/Transaction.js +18 -2
  13. package/_cjs/core/Transaction.js.map +1 -1
  14. package/_cjs/core/TransactionReceipt.js +10 -0
  15. package/_cjs/core/TransactionReceipt.js.map +1 -1
  16. package/_cjs/core/TransactionRequest.js +11 -1
  17. package/_cjs/core/TransactionRequest.js.map +1 -1
  18. package/_cjs/core/TxEnvelopeEip8141.js +283 -0
  19. package/_cjs/core/TxEnvelopeEip8141.js.map +1 -0
  20. package/_cjs/core/internal/curves.js +6 -0
  21. package/_cjs/core/internal/curves.js.map +1 -0
  22. package/_cjs/core/internal/quantity.js +10 -0
  23. package/_cjs/core/internal/quantity.js.map +1 -0
  24. package/_cjs/erc4337/UserOperationReceipt.js.map +1 -1
  25. package/_cjs/index.js +6 -2
  26. package/_cjs/index.js.map +1 -1
  27. package/_cjs/tempo/KeyAuthorization.js +43 -10
  28. package/_cjs/tempo/KeyAuthorization.js.map +1 -1
  29. package/_cjs/tempo/MultisigConfig.js +33 -11
  30. package/_cjs/tempo/MultisigConfig.js.map +1 -1
  31. package/_cjs/tempo/MultisigOperation.js +18 -94
  32. package/_cjs/tempo/MultisigOperation.js.map +1 -1
  33. package/_cjs/tempo/MultisigSimulation.js +18 -46
  34. package/_cjs/tempo/MultisigSimulation.js.map +1 -1
  35. package/_cjs/tempo/SignatureEnvelope.js +72 -109
  36. package/_cjs/tempo/SignatureEnvelope.js.map +1 -1
  37. package/_cjs/tempo/TransactionRequest.js +5 -1
  38. package/_cjs/tempo/TransactionRequest.js.map +1 -1
  39. package/_cjs/tempo/index.js.map +1 -1
  40. package/_cjs/version.js +1 -1
  41. package/_esm/core/Frame.js +311 -0
  42. package/_esm/core/Frame.js.map +1 -0
  43. package/_esm/core/FrameReceipt.js +72 -0
  44. package/_esm/core/FrameReceipt.js.map +1 -0
  45. package/_esm/core/FrameSignature.js +422 -0
  46. package/_esm/core/FrameSignature.js.map +1 -0
  47. package/_esm/core/Transaction.js +18 -2
  48. package/_esm/core/Transaction.js.map +1 -1
  49. package/_esm/core/TransactionReceipt.js +10 -0
  50. package/_esm/core/TransactionReceipt.js.map +1 -1
  51. package/_esm/core/TransactionRequest.js +11 -1
  52. package/_esm/core/TransactionRequest.js.map +1 -1
  53. package/_esm/core/TxEnvelopeEip8141.js +490 -0
  54. package/_esm/core/TxEnvelopeEip8141.js.map +1 -0
  55. package/_esm/core/internal/curves.js +19 -0
  56. package/_esm/core/internal/curves.js.map +1 -0
  57. package/_esm/core/internal/quantity.js +14 -0
  58. package/_esm/core/internal/quantity.js.map +1 -0
  59. package/_esm/erc4337/UserOperationReceipt.js.map +1 -1
  60. package/_esm/index.js +73 -0
  61. package/_esm/index.js.map +1 -1
  62. package/_esm/tempo/KeyAuthorization.js +42 -9
  63. package/_esm/tempo/KeyAuthorization.js.map +1 -1
  64. package/_esm/tempo/MultisigConfig.js +41 -22
  65. package/_esm/tempo/MultisigConfig.js.map +1 -1
  66. package/_esm/tempo/MultisigOperation.js +20 -100
  67. package/_esm/tempo/MultisigOperation.js.map +1 -1
  68. package/_esm/tempo/MultisigSimulation.js +18 -46
  69. package/_esm/tempo/MultisigSimulation.js.map +1 -1
  70. package/_esm/tempo/SignatureEnvelope.js +107 -169
  71. package/_esm/tempo/SignatureEnvelope.js.map +1 -1
  72. package/_esm/tempo/TransactionRequest.js +5 -1
  73. package/_esm/tempo/TransactionRequest.js.map +1 -1
  74. package/_esm/tempo/index.js +3 -1
  75. package/_esm/tempo/index.js.map +1 -1
  76. package/_esm/version.js +1 -1
  77. package/_types/core/Frame.d.ts +290 -0
  78. package/_types/core/Frame.d.ts.map +1 -0
  79. package/_types/core/FrameReceipt.d.ts +92 -0
  80. package/_types/core/FrameReceipt.d.ts.map +1 -0
  81. package/_types/core/FrameSignature.d.ts +357 -0
  82. package/_types/core/FrameSignature.d.ts.map +1 -0
  83. package/_types/core/Transaction.d.ts +29 -4
  84. package/_types/core/Transaction.d.ts.map +1 -1
  85. package/_types/core/TransactionReceipt.d.ts +15 -6
  86. package/_types/core/TransactionReceipt.d.ts.map +1 -1
  87. package/_types/core/TransactionRequest.d.ts +10 -4
  88. package/_types/core/TransactionRequest.d.ts.map +1 -1
  89. package/_types/core/TxEnvelopeEip8141.d.ts +343 -0
  90. package/_types/core/TxEnvelopeEip8141.d.ts.map +1 -0
  91. package/_types/core/internal/curves.d.ts +19 -0
  92. package/_types/core/internal/curves.d.ts.map +1 -0
  93. package/_types/core/internal/quantity.d.ts +10 -0
  94. package/_types/core/internal/quantity.d.ts.map +1 -0
  95. package/_types/erc4337/UserOperationReceipt.d.ts +1 -1
  96. package/_types/erc4337/UserOperationReceipt.d.ts.map +1 -1
  97. package/_types/index.d.ts +73 -0
  98. package/_types/index.d.ts.map +1 -1
  99. package/_types/tempo/KeyAuthorization.d.ts +48 -38
  100. package/_types/tempo/KeyAuthorization.d.ts.map +1 -1
  101. package/_types/tempo/MultisigConfig.d.ts +15 -14
  102. package/_types/tempo/MultisigConfig.d.ts.map +1 -1
  103. package/_types/tempo/MultisigOperation.d.ts +3 -2
  104. package/_types/tempo/MultisigOperation.d.ts.map +1 -1
  105. package/_types/tempo/MultisigSimulation.d.ts +2 -49
  106. package/_types/tempo/MultisigSimulation.d.ts.map +1 -1
  107. package/_types/tempo/SignatureEnvelope.d.ts +69 -128
  108. package/_types/tempo/SignatureEnvelope.d.ts.map +1 -1
  109. package/_types/tempo/Transaction.d.ts +2 -0
  110. package/_types/tempo/Transaction.d.ts.map +1 -1
  111. package/_types/tempo/TransactionReceipt.d.ts +2 -0
  112. package/_types/tempo/TransactionReceipt.d.ts.map +1 -1
  113. package/_types/tempo/TransactionRequest.d.ts +5 -2
  114. package/_types/tempo/TransactionRequest.d.ts.map +1 -1
  115. package/_types/tempo/index.d.ts +3 -1
  116. package/_types/tempo/index.d.ts.map +1 -1
  117. package/_types/version.d.ts +1 -1
  118. package/core/Frame.ts +443 -0
  119. package/core/FrameReceipt.ts +117 -0
  120. package/core/FrameSignature.ts +606 -0
  121. package/core/Transaction.ts +73 -4
  122. package/core/TransactionReceipt.ts +41 -4
  123. package/core/TransactionRequest.ts +26 -2
  124. package/core/TxEnvelopeEip8141.ts +717 -0
  125. package/core/internal/curves.ts +22 -0
  126. package/core/internal/quantity.ts +16 -0
  127. package/erc4337/UserOperationReceipt.ts +1 -6
  128. package/index.ts +73 -0
  129. package/package.json +21 -1
  130. package/tempo/AuthorizationTempo.test.ts +8 -4
  131. package/tempo/KeyAuthorization.test-d.ts +68 -33
  132. package/tempo/KeyAuthorization.test.ts +89 -8
  133. package/tempo/KeyAuthorization.ts +124 -61
  134. package/tempo/MultisigConfig.test.ts +34 -26
  135. package/tempo/MultisigConfig.ts +54 -24
  136. package/tempo/MultisigOperation.test.ts +79 -550
  137. package/tempo/MultisigOperation.ts +31 -146
  138. package/tempo/MultisigSimulation.test-d.ts +2 -2
  139. package/tempo/MultisigSimulation.test.ts +21 -110
  140. package/tempo/MultisigSimulation.ts +25 -99
  141. package/tempo/SignatureEnvelope.test-d.ts +29 -67
  142. package/tempo/SignatureEnvelope.test.ts +301 -568
  143. package/tempo/SignatureEnvelope.ts +156 -274
  144. package/tempo/TransactionRequest.test-d.ts +6 -5
  145. package/tempo/TransactionRequest.test.ts +17 -80
  146. package/tempo/TransactionRequest.ts +23 -3
  147. package/tempo/index.ts +3 -1
  148. package/tempo/multisig.e2e.test.ts +322 -861
  149. package/version.ts +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"MultisigOperation.js","sourceRoot":"","sources":["../../tempo/MultisigOperation.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"MultisigOperation.js","sourceRoot":"","sources":["../../tempo/MultisigOperation.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,OAAO,MAAM,oBAAoB,CAAA;AAC7C,OAAO,KAAK,MAAM,MAAM,mBAAmB,CAAA;AAC3C,OAAO,KAAK,IAAI,MAAM,iBAAiB,CAAA;AACvC,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;AAgEvD;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,UAAU,OAAO,CAAC,OAAwB;IAC9C,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,OAAO,CAAA;IACnC,MAAM,OAAO,GACX,OAAO,CAAC,IAAI,KAAK,aAAa;QAC5B,CAAC,CAAC,eAAe,CAAC,cAAc,CAC5B,eAAe,CAAC,WAAW,CACzB,OAAO,CAAC,WAAyC,CAClD,CACF;QACH,CAAC,CAAC,iBAAiB,CAAC,cAAc,CAC9B,iBAAiB,CAAC,WAAW,CAAC,OAAO,CAAC,gBAAgB,CAAC,CACxD,CAAA;IACP,OAAO,cAAc,CAAC,cAAc,CAAC;QACnC,OAAO;QACP,MAAM;QACN,OAAO;KACR,CAAC,CAAA;AACJ,CAAC;AAkCD;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,OAAgC;IAEhC,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,GAAG,OAAO,CAAA;IAC5C,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,EAAE;QAC5D,MAAM,IAAI,oBAAoB,CAAC,EAAE,MAAM,EAAE,oBAAoB,EAAE,CAAC,CAAA;IAClE,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;QACtB,MAAM,IAAI,oBAAoB,CAAC,EAAE,MAAM,EAAE,iBAAiB,EAAE,CAAC,CAAA;IAC/D,MAAM,MAAM,GAAG,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAA;IAClD,OAAO,wBAAwB,CAAC;QAC9B,OAAO;QACP,SAAS;QACT,MAAM;QACN,IAAI;KACL,CAAC,CAAA;AACJ,CAAC;AAyCD;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAM,UAAU,yBAAyB,CACvC,gBAAyB,EACzB,OAA0C;IAE1C,MAAM,aAAa,GAAG,iBAAiB,CAAC,WAAW,CAAC,gBAAgB,CAAC,CAAA;IACrE,IAAI,aAAa,CAAC,SAAS;QACzB,MAAM,IAAI,qBAAqB,CAAC;YAC9B,MAAM,EAAE,+CAA+C;SACxD,CAAC,CAAA;IACJ,IACE,iBAAiB,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC,WAAW,EAAE;QACxD,gBAAgB,CAAC,WAAW,EAAE;QAE9B,MAAM,IAAI,qBAAqB,CAAC;YAC9B,MAAM,EAAE,gDAAgD;SACzD,CAAC,CAAA;IACJ,MAAM,MAAM,GAAG,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAA;IAClD,MAAM,UAAU,GAAG,iBAAiB,CAAC,qBAAqB,CAAC;QACzD,OAAO,EAAE,OAAO,CAAC,OAAO;QACxB,MAAM;QACN,OAAO,EAAE,iBAAiB,CAAC,cAAc,CAAC,aAAa,CAAC;QACxD,UAAU,EAAE,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAC7C,cAAc,CAAC,OAAO,CAAC,OAAO,EAAE,QAAQ,EAAE,MAAM,CAAC,CAClD;KACF,CAAC,CAAA;IACF,OAAO,iBAAiB,CAAC,SAAS,CAChC,iBAAiB,CAAC,IAAI,CAAC,aAAa,EAAE;QACpC,SAAS,EAAE,iBAAiB,CAAC,IAAI,CAAC;YAChC,OAAO,EAAE,OAAO,CAAC,OAAO;YACxB,MAAM;YACN,UAAU;SACX,CAAC;KACH,CAAC,CACH,CAAA;AACH,CAAC;AA2BD;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,UAAU,oBAAoB,CAClC,SAA+B,EAC/B,OAAqC;IAErC,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,CAAA;IAC7B,MAAM,QAAQ,GAAG,eAAe,CAAC,WAAW,CAC1C,KAAK,CAAC,WAAyC,CAChD,CAAA;IACD,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CACnD,cAAc,CAAC,KAAK,CAAC,OAAO,EAAE,QAAQ,EAAE,KAAK,CAAC,MAAM,CAAC,CACtD,CAAA;IACD,uBAAuB,CAAC,KAAK,EAAE,SAAS,CAAC,CAAA;IACzC,MAAM,UAAU,GAAG,iBAAiB,CAAC,qBAAqB,CAAC;QACzD,OAAO,EAAE,KAAK,CAAC,OAAO;QACtB,MAAM,EAAE,KAAK,CAAC,MAAM;QACpB,OAAO,EAAE,eAAe,CAAC,cAAc,CAAC,QAAQ,CAAC;QACjD,UAAU,EAAE,SAAS;KACtB,CAAC,CAAA;IACF,MAAM,SAAS,GAAG,iBAAiB,CAAC,IAAI,CAAC;QACvC,OAAO,EAAE,KAAK,CAAC,OAAO;QACtB,MAAM,EAAE,KAAK,CAAC,MAAM;QACpB,UAAU;KACX,CAAC,CAAA;IACF,OAAO,eAAe,CAAC,SAAS,CAC9B,QAAQ,EACR,KAAK,CAAC,WAAW,CAAC,UAAU,CAAC,eAAe,CAAC,aAAa,CAAC;QACzD,CAAC,CAAC;YACE,MAAM,EAAE,UAAU;YAClB,MAAM,EAAE,QAAQ,CAAC,IAAI;YACrB,SAAS;SACV;QACH,CAAC,CAAC,EAAE,SAAS,EAAE,CAClB,CAAA;AACH,CAAC;AAoBD;;;;;;;;;;;;;GAaG;AACH,MAAM,UAAU,IAAI,CAClB,SAAoB;IAEpB,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,cAAc,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAA;QACpD,IACE,OAAO,MAAM,CAAC,SAAS,KAAK,QAAQ;YACpC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,OAAO,KAAK,CAAC,MAAM,KAAK,QAAQ,CAAC;YAE/D,MAAM,IAAI,qBAAqB,CAAC;gBAC9B,MAAM,EAAE,oDAAoD;aAC7D,CAAC,CAAA;QACJ,MAAM,KAAK,GAAG,EAAE,GAAG,SAAS,EAAE,MAAM,EAAe,CAAA;QACnD,UAAU,CAAC,KAAK,EAAE,MAAM,CAAC,CAAA;QACzB,IAAI,KAAK,CAAC,IAAI,KAAK,aAAa;YAAE,iBAAiB,CAAC,KAAK,CAAC,CAAA;aACrD,IAAI,KAAK,CAAC,IAAI,KAAK,kBAAkB;YACxC,sBAAsB,CAAC,KAAK,EAAE,MAAM,CAAC,CAAA;;YAClC,MAAM,IAAI,qBAAqB,CAAC,EAAE,MAAM,EAAE,wBAAwB,EAAE,CAAC,CAAA;QAC1E,OAAO,KAAc,CAAA;IACvB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,KAAK,YAAY,qBAAqB;YAAE,MAAM,KAAK,CAAA;QACvD,MAAM,IAAI,qBAAqB,CAAC,EAAE,KAAK,EAAE,CAAC,CAAA;IAC5C,CAAC;AACH,CAAC;AAaD;;;;;;;;;;;;;GAaG;AACH,MAAM,UAAU,OAAO,CACrB,SAAoB;IAEpB,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,SAAS,CAAC,MAAM,EAAE,OAAO,CAAA;QACzC,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC;YACvD,MAAM,IAAI,qBAAqB,CAAC;gBAC9B,MAAM,EAAE,+CAA+C;aACxD,CAAC,CAAA;QACJ,MAAM,QAAQ,GAAG,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAA;QACtC,IAAI,GAAG,CAAC,UAAU,CAAC,QAAQ,CAAC,KAAK,OAAO;YACtC,MAAM,IAAI,qBAAqB,CAAC;gBAC9B,MAAM,EAAE,qDAAqD;aAC9D,CAAC,CAAA;QACJ,OAAO,IAAI,CAAC;YACV,GAAG,SAAS;YACZ,MAAM,EAAE,cAAc,CAAC,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC;SACpC,CAAU,CAAA;IAC1B,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,KAAK,YAAY,qBAAqB;YAAE,MAAM,KAAK,CAAA;QACvD,MAAM,IAAI,qBAAqB,CAAC,EAAE,KAAK,EAAE,CAAC,CAAA;IAC5C,CAAC;AACH,CAAC;AAaD;;;;;;;;;;;;;GAaG;AACH,MAAM,UAAU,KAAK,CACnB,SAAoB;IAEpB,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,CAAA;IAC7B,OAAO;QACL,GAAG,KAAK;QACR,MAAM,EAAE,cAAc,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC;KAClC,CAAA;AACZ,CAAC;AAaD;;;;GAIG;AACH,KAAK,UAAU,wBAAwB,CACrC,OAAgC;IAEhC,MAAM,MAAM,GAAG,IAAI,GAAG,CACpB,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC;QACnC,KAAK,CAAC,KAAK,CAAC,WAAW,EAAE;QACzB,EAAE,OAAO,EAAE,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE;KACvD,CAAC,CACH,CAAA;IACD,MAAM,MAAM,GAAG,IAAI,GAAG,EAAyB,CAAA;IAC/C,KAAK,MAAM,UAAU,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC;QAC3C,MAAM,SAAS,GAAG,iBAAiB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;QACpD,IAAI,SAAS,CAAC,IAAI,KAAK,UAAU,IAAI,SAAS,CAAC,IAAI,KAAK,UAAU;YAChE,MAAM,IAAI,oBAAoB,CAAC;gBAC7B,MAAM,EAAE,4DAA4D;aACrE,CAAC,CAAA;QACJ,MAAM,OAAO,GAAG,iBAAiB,CAAC,cAAc,CAAC;YAC/C,OAAO,EAAE,OAAO,CAAC,IAAI;YACrB,SAAS;SACV,CAAC,CAAA;QACF,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,CAAA;QAC/C,IAAI,CAAC,KAAK;YACR,MAAM,IAAI,oBAAoB,CAAC;gBAC7B,MAAM,EAAE,+BAA+B,OAAO,EAAE;aACjD,CAAC,CAAA;QACJ,MAAM,GAAG,GAAG,OAAO,CAAC,WAAW,EAAE,CAAA;QACjC,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;QAC7B,IAAI,KAAK;YAAE,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;;YAEzC,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE;gBACd,OAAO,EAAE,KAAK,CAAC,OAAO;gBACtB,UAAU,EAAE,CAAC,SAAS,CAAC;gBACvB,MAAM,EAAE,KAAK,CAAC,MAAM;aACrB,CAAC,CAAA;IACN,CAAC;IAED,MAAM,KAAK,GAAuB,EAAE,CAAA;IACpC,MAAM,QAAQ,GAAuB,EAAE,CAAA;IACvC,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,MAAM,EAAE,EAAE,CAAC;QACpC,MAAM,UAAU,GAAG,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE;YACpD,IACE,CAAC,iBAAiB,CAAC,MAAM,CAAC,SAAS,EAAE;gBACnC,OAAO,EAAE,KAAK,CAAC,OAAO;gBACtB,OAAO,EAAE,OAAO,CAAC,IAAI;aACtB,CAAC;gBAEF,MAAM,IAAI,oBAAoB,CAAC;oBAC7B,MAAM,EAAE,wBAAwB,KAAK,CAAC,OAAO,aAAa;iBAC3D,CAAC,CAAA;YACJ,OAAO,iBAAiB,CAAC,SAAS,CAAC,SAAS,CAAC,CAAA;QAC/C,CAAC,CAAC,CAAA;QACF,MAAM,SAAS,GAAG,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAE,CAAA;QACjD,KAAK,CAAC,IAAI,CAAC;YACT,OAAO,EAAE,KAAK,CAAC,OAAO;YACtB,SAAS;YACT,MAAM,EAAE,KAAK,CAAC,MAAM;SACrB,CAAC,CAAA;QACF,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,SAAS,EAAE,CAAC,CAAA;IACtD,CAAC;IAED,MAAM,MAAM,GAAG,KAAK,CAAC,IAAI,CACvB,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,MAAM,IAAI,sBAAsB,CAAC,CAAC,EAAE,CAAC,CAAC,CAC9D,CAAA;IACD,MAAM,QAAQ,GAAkB,EAAE,CAAA;IAClC,IAAI,MAAM,GAAG,CAAC,CAAA;IACd,KAAK,MAAM,QAAQ,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,cAAc,CAAC,aAAa,CAAC,EAAE,CAAC;QACrE,IAAI,MAAM,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC;YAAE,MAAK;QACrD,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;QACvB,MAAM,IAAI,QAAQ,CAAC,MAAM,CAAA;IAC3B,CAAC;IACD,QAAQ,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAA;IAErC,OAAO;QACL,SAAS,EAAE,QAAQ;aAChB,IAAI,CAAC,sBAAsB,CAAC;aAC5B,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,SAAS,CAAC;QACxC,iBAAiB,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,SAAS,CAAC;QACjE,cAAc,EAAE,QAAQ,CAAC,MAAM;QAC/B,SAAS,EAAE,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC;QAC3C,MAAM;KACP,CAAA;AACH,CAAC;AA8BD;;;;GAIG;AACH,SAAS,sBAAsB,CAC7B,CAAsC,EACtC,CAAsC;IAEtC,MAAM,QAAQ,GAAG,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,CAAA;IACxC,MAAM,QAAQ,GAAG,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,CAAA;IACxC,OAAO,QAAQ,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;AAC/D,CAAC;AAED;;;;GAIG;AACH,SAAS,UAAU,CAAC,CAAU,EAAE,CAAU;IACxC,MAAM,IAAI,GAAG,CAAC,CAAC,WAAW,EAAE,CAAA;IAC5B,MAAM,IAAI,GAAG,CAAC,CAAC,WAAW,EAAE,CAAA;IAC5B,OAAO,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;AAC/C,CAAC;AAED;;;;GAIG;AACH,SAAS,UAAU,CAAC,SAAoB,EAAE,MAA6B;IACrE,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC,OAAO,CAAC;QACtC,MAAM,IAAI,qBAAqB,CAAC,EAAE,MAAM,EAAE,oBAAoB,EAAE,CAAC,CAAA;IACnE,IAAI,GAAG,CAAC,QAAQ,CAAC,SAAS,CAAC,OAAO,CAAC,KAAK,EAAE;QACxC,MAAM,IAAI,qBAAqB,CAAC,EAAE,MAAM,EAAE,wBAAwB,EAAE,CAAC,CAAA;IACvE,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC;QAChC,MAAM,IAAI,qBAAqB,CAAC,EAAE,MAAM,EAAE,iBAAiB,EAAE,CAAC,CAAA;IAChE,aAAa,CAAC,SAAS,CAAC,SAAS,EAAE,WAAW,CAAC,CAAA;IAC/C,aAAa,CAAC,SAAS,CAAC,SAAS,EAAE,WAAW,CAAC,CAAA;IAC/C,IAAI,SAAS,CAAC,SAAS,GAAG,SAAS,CAAC,SAAS;QAC3C,MAAM,IAAI,qBAAqB,CAAC;YAC9B,MAAM,EAAE,oCAAoC;SAC7C,CAAC,CAAA;IACJ,aAAa,CAAC,SAAS,CAAC,cAAc,EAAE,gBAAgB,CAAC,CAAA;IACzD,aAAa,CAAC,SAAS,CAAC,SAAS,EAAE,WAAW,CAAC,CAAA;IAC/C,aAAa,CAAC,SAAS,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAA;IACzC,IAAI,SAAS,CAAC,SAAS,KAAK,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC;QAClD,MAAM,IAAI,qBAAqB,CAAC;YAC9B,MAAM,EAAE,uCAAuC;SAChD,CAAC,CAAA;IACJ,IAAI,SAAS,CAAC,MAAM,GAAG,IAAI;QACzB,MAAM,IAAI,qBAAqB,CAAC,EAAE,MAAM,EAAE,uBAAuB,EAAE,CAAC,CAAA;IACtE,IAAI,SAAS,CAAC,cAAc,GAAG,cAAc,CAAC,aAAa;QACzD,MAAM,IAAI,qBAAqB,CAAC,EAAE,MAAM,EAAE,8BAA8B,EAAE,CAAC,CAAA;IAC7E,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,SAAS,CAAC;QACrC,MAAM,IAAI,qBAAqB,CAAC,EAAE,MAAM,EAAE,4BAA4B,EAAE,CAAC,CAAA;IAC3E,IAAI,SAAS,CAAC,SAAS,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM;QACnD,MAAM,IAAI,qBAAqB,CAAC,EAAE,MAAM,EAAE,6BAA6B,EAAE,CAAC,CAAA;IAC5E,IAAI,SAAS,CAAC,cAAc,GAAG,SAAS,CAAC,SAAS,CAAC,MAAM;QACvD,MAAM,IAAI,qBAAqB,CAAC;YAC9B,MAAM,EAAE,2CAA2C;SACpD,CAAC,CAAA;IACJ,IAAI,CAAC,SAAS,CAAC,cAAc,KAAK,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,MAAM,KAAK,CAAC,CAAC;QAC/D,MAAM,IAAI,qBAAqB,CAAC;YAC9B,MAAM,EAAE,wDAAwD;SACjE,CAAC,CAAA;IACJ,MAAM,MAAM,GAAG,IAAI,GAAG,CACpB,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC;QAC3B,KAAK,CAAC,KAAK,CAAC,WAAW,EAAE;QACzB,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC;KACrB,CAAC,CACH,CAAA;IACD,MAAM,eAAe,GAAa,EAAE,CAAA;IACpC,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAA;IAC9B,KAAK,MAAM,QAAQ,IAAI,SAAS,CAAC,SAAS,EAAE,CAAC;QAC3C,IACE,OAAO,QAAQ,KAAK,QAAQ;YAC5B,CAAC,GAAG,CAAC,QAAQ,CAAC,QAAQ,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;YAEzC,MAAM,IAAI,qBAAqB,CAAC,EAAE,MAAM,EAAE,qBAAqB,EAAE,CAAC,CAAA;QACpE,MAAM,SAAS,GAAG,cAAc,CAC9B,SAAS,CAAC,OAAO,EACjB,QAAwC,EACxC,MAAM,CACP,CAAA;QACD,MAAM,OAAO,GAAG,iBAAiB,CAAC,cAAc,CAAC;YAC/C,OAAO,EAAE,SAAS,CAAC,IAAI;YACvB,SAAS;SACV,CAAC,CAAA;QACF,MAAM,GAAG,GAAG,OAAO,CAAC,WAAW,EAAE,CAAA;QACjC,MAAM,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;QAC9B,IAAI,MAAM,KAAK,SAAS;YACtB,MAAM,IAAI,qBAAqB,CAAC;gBAC9B,MAAM,EAAE,8BAA8B;aACvC,CAAC,CAAA;QACJ,IAAI,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC;YACf,MAAM,IAAI,qBAAqB,CAAC;gBAC9B,MAAM,EACJ,SAAS,CAAC,IAAI,KAAK,kBAAkB;oBACnC,CAAC,CAAC,sDAAsD;oBACxD,CAAC,CAAC,0BAA0B;aACjC,CAAC,CAAA;QACJ,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;QACb,eAAe,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;IAC9B,CAAC;IACD,IACE,CAAC,iBAAiB,CAChB,eAAe,EACf,SAAS,CAAC,cAAc,EACxB,SAAS,CAAC,MAAM,CACjB;QAED,MAAM,IAAI,qBAAqB,CAAC;YAC9B,MAAM,EACJ,oEAAoE;SACvE,CAAC,CAAA;AACN,CAAC;AAED;;;;GAIG;AACH,SAAS,iBAAiB,CAAC,SAA+B;IACxD,IACE,kBAAkB,IAAI,SAAS;QAC/B,SAAS,CAAC,gBAAgB,KAAK,SAAS;QAExC,MAAM,IAAI,qBAAqB,CAAC;YAC9B,MAAM,EAAE,wDAAwD;SACjE,CAAC,CAAA;IACJ,MAAM,SAAS,GAAG,SAAS,CAAC,SAAS,CAAA;IACrC,MAAM,YAAY,GAAG,SAAS,CAAC,YAAY,CAAA;IAC3C,MAAM,eAAe,GAAG,SAAS,CAAC,eAAe,CAAA;IACjD,IAAI,SAAS,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;QACnC,IACE,SAAS,KAAK,SAAS;YACvB,YAAY,KAAK,SAAS;YAC1B,eAAe,KAAK,SAAS;YAE7B,MAAM,IAAI,qBAAqB,CAAC;gBAC9B,MAAM,EAAE,uDAAuD;aAChE,CAAC,CAAA;IACN,CAAC;SAAM,IAAI,SAAS,CAAC,MAAM,KAAK,YAAY,EAAE,CAAC;QAC7C,aAAa,CAAC,SAAS,EAAE,WAAW,CAAC,CAAA;QACrC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,YAAY,IAAI,EAAE,CAAC;YACpC,MAAM,IAAI,qBAAqB,CAAC,EAAE,MAAM,EAAE,yBAAyB,EAAE,CAAC,CAAA;QACxE,IAAI,YAAa,CAAC,WAAW,EAAE,KAAK,SAAS,CAAC,IAAI,CAAC,WAAW,EAAE;YAC9D,MAAM,IAAI,qBAAqB,CAAC;gBAC9B,MAAM,EAAE,kDAAkD;aAC3D,CAAC,CAAA;QACJ,IAAI,eAAe,KAAK,SAAS;YAC/B,MAAM,IAAI,qBAAqB,CAAC;gBAC9B,MAAM,EAAE,wDAAwD;aACjE,CAAC,CAAA;IACN,CAAC;SAAM,IAAI,SAAS,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;QAC1C,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,eAAe,IAAI,EAAE,CAAC;YACvC,MAAM,IAAI,qBAAqB,CAAC,EAAE,MAAM,EAAE,4BAA4B,EAAE,CAAC,CAAA;QAC3E,IAAI,SAAS,KAAK,SAAS,IAAI,YAAY,KAAK,SAAS;YACvD,MAAM,IAAI,qBAAqB,CAAC;gBAC9B,MAAM,EAAE,0DAA0D;aACnE,CAAC,CAAA;IACN,CAAC;;QACC,MAAM,IAAI,qBAAqB,CAAC,EAAE,MAAM,EAAE,4BAA4B,EAAE,CAAC,CAAA;IAC3E,IACE,SAAS,CAAC,MAAM,KAAK,SAAS;QAC9B,CAAC,SAAS,CAAC,MAAM,GAAG,SAAS,CAAC,SAAS,IAAI,SAAS,CAAC,cAAc,KAAK,CAAC,CAAC;QAE1E,MAAM,IAAI,qBAAqB,CAAC;YAC9B,MAAM,EAAE,yCAAyC;SAClD,CAAC,CAAA;IAEJ,IAAI,OAAO,SAAS,CAAC,WAAW,KAAK,QAAQ;QAC3C,MAAM,IAAI,qBAAqB,CAAC,EAAE,MAAM,EAAE,wBAAwB,EAAE,CAAC,CAAA;IACvE,MAAM,WAAW,GAAG,eAAe,CAAC,WAAW,CAC7C,SAAS,CAAC,WAAyC,CACpD,CAAA;IACD,IAAI,WAAW,CAAC,SAAS;QACvB,MAAM,IAAI,qBAAqB,CAAC;YAC9B,MAAM,EAAE,wDAAwD;SACjE,CAAC,CAAA;IACJ,IACE,WAAW,CAAC,IAAI;QAChB,WAAW,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,SAAS,CAAC,OAAO,CAAC,WAAW,EAAE;QAElE,MAAM,IAAI,qBAAqB,CAAC;YAC9B,MAAM,EAAE,yDAAyD;SAClE,CAAC,CAAA;IACJ,mBAAmB,CAAC,SAAS,EAAE,eAAe,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC,CAAA;IAC3E,MAAM,QAAQ,GAAG,SAAS,CAAC,WAAW,CAAC,UAAU,CAC/C,eAAe,CAAC,aAAa,CAC9B,CAAA;IACD,MAAM,UAAU,GAAG,eAAe,CAAC,SAAS,CAC1C,WAAW,EACX,QAAQ;QACN,CAAC,CAAC,WAAW,CAAC,IAAI;YAChB,CAAC,CAAC,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,WAAW,CAAC,IAAI,EAAE;YAClD,CAAC,CAAC,EAAE,MAAM,EAAE,UAAU,EAAE;QAC1B,CAAC,CAAC,EAAE,CACP,CAAA;IACD,IAAI,UAAU,CAAC,WAAW,EAAE,KAAK,SAAS,CAAC,WAAW,CAAC,WAAW,EAAE;QAClE,MAAM,IAAI,qBAAqB,CAAC;YAC9B,MAAM,EAAE,2CAA2C;SACpD,CAAC,CAAA;AACN,CAAC;AAED;;;;GAIG;AACH,SAAS,sBAAsB,CAC7B,SAAoC,EACpC,MAA6B;IAE7B,MAAM,iBAAiB,GAAG,SAKzB,CAAA;IACD,IACE,iBAAiB,CAAC,SAAS,KAAK,SAAS;QACzC,iBAAiB,CAAC,YAAY,KAAK,SAAS;QAC5C,iBAAiB,CAAC,WAAW,KAAK,SAAS;QAC3C,iBAAiB,CAAC,eAAe,KAAK,SAAS;QAE/C,MAAM,IAAI,qBAAqB,CAAC;YAC9B,MAAM,EAAE,gEAAgE;SACzE,CAAC,CAAA;IACJ,IAAI,SAAS,CAAC,MAAM,KAAK,SAAS,IAAI,SAAS,CAAC,MAAM,KAAK,SAAS;QAClE,MAAM,IAAI,qBAAqB,CAAC;YAC9B,MAAM,EAAE,kCAAkC;SAC3C,CAAC,CAAA;IACJ,IACE,SAAS,CAAC,MAAM,KAAK,SAAS;QAC9B,CAAC,SAAS,CAAC,MAAM,GAAG,SAAS,CAAC,SAAS,IAAI,SAAS,CAAC,cAAc,KAAK,CAAC,CAAC;QAE1E,MAAM,IAAI,qBAAqB,CAAC;YAC9B,MAAM,EAAE,gDAAgD;SACzD,CAAC,CAAA;IACJ,IAAI,SAAS,CAAC,MAAM,KAAK,SAAS,IAAI,SAAS,CAAC,MAAM,IAAI,SAAS,CAAC,SAAS;QAC3E,MAAM,IAAI,qBAAqB,CAAC;YAC9B,MAAM,EAAE,+CAA+C;SACxD,CAAC,CAAA;IACJ,IAAI,OAAO,SAAS,CAAC,gBAAgB,KAAK,QAAQ;QAChD,MAAM,IAAI,qBAAqB,CAAC,EAAE,MAAM,EAAE,6BAA6B,EAAE,CAAC,CAAA;IAC5E,MAAM,aAAa,GAAG,iBAAiB,CAAC,WAAW,CACjD,SAAS,CAAC,gBAAgB,CAC3B,CAAA;IACD,IACE,CAAC,aAAa,CAAC,OAAO;QACtB,aAAa,CAAC,OAAO,CAAC,WAAW,EAAE,KAAK,SAAS,CAAC,OAAO,CAAC,WAAW,EAAE;QAEvE,MAAM,IAAI,qBAAqB,CAAC;YAC9B,MAAM,EAAE,gEAAgE;SACzE,CAAC,CAAA;IACJ,MAAM,SAAS,GAAG,aAAa,CAAC,SAAS,CAAA;IACzC,IAAI,SAAS,CAAC,MAAM,KAAK,SAAS,IAAI,SAAS;QAC7C,MAAM,IAAI,qBAAqB,CAAC;YAC9B,MAAM,EAAE,6CAA6C;SACtD,CAAC,CAAA;IACJ,IAAI,SAAS,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;QACnC,IAAI,SAAS,EAAE,IAAI,KAAK,UAAU;YAChC,MAAM,IAAI,qBAAqB,CAAC;gBAC9B,MAAM,EAAE,4DAA4D;aACrE,CAAC,CAAA;QACJ,IAAI,SAAS,CAAC,OAAO,CAAC,WAAW,EAAE,KAAK,SAAS,CAAC,OAAO,CAAC,WAAW,EAAE;YACrE,MAAM,IAAI,qBAAqB,CAAC;gBAC9B,MAAM,EAAE,oDAAoD;aAC7D,CAAC,CAAA;QACJ,IAAI,SAAS,CAAC,UAAU,CAAC,MAAM,KAAK,SAAS,CAAC,cAAc;YAC1D,MAAM,IAAI,qBAAqB,CAAC;gBAC9B,MAAM,EAAE,+DAA+D;aACxE,CAAC,CAAA;QACJ,uBAAuB,CAAC,SAAS,EAAE,SAAS,CAAC,UAAU,EAAE,aAAa,CAAC,CAAA;QACvE,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC;YACvC,MAAM,IAAI,qBAAqB,CAAC;gBAC9B,MAAM,EAAE,yCAAyC;aAClD,CAAC,CAAA;IACN,CAAC;IACD,mBAAmB,CACjB,SAAS,EACT,iBAAiB,CAAC,cAAc,CAAC,aAAa,CAAC,CAChD,CAAA;IACD,IACE,iBAAiB,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC,WAAW,EAAE;QACxD,SAAS,CAAC,gBAAgB,CAAC,WAAW,EAAE;QAExC,MAAM,IAAI,qBAAqB,CAAC;YAC9B,MAAM,EAAE,gDAAgD;SACzD,CAAC,CAAA;AACN,CAAC;AAED;;;;GAIG;AACH,SAAS,cAAc,CACrB,OAAwB,EACxB,UAAwC,EACxC,MAA6B;IAE7B,MAAM,QAAQ,GAAG,iBAAiB,CAAC,WAAW,CAAC,UAAU,CAAC,CAAA;IAC1D,IAAI,QAAQ,CAAC,IAAI,KAAK,UAAU,IAAI,QAAQ,CAAC,IAAI,KAAK,UAAU;QAC9D,MAAM,IAAI,qBAAqB,CAAC;YAC9B,MAAM,EAAE,4CAA4C;SACrD,CAAC,CAAA;IACJ,iBAAiB,CAAC,MAAM,CAAC;QACvB,OAAO;QACP,MAAM;QACN,UAAU,EAAE,CAAC,QAAQ,CAAC;QACtB,IAAI,EAAE,UAAU;KACjB,CAAC,CAAA;IACF,IACE,iBAAiB,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,WAAW,EAAE;QACnD,UAAU,CAAC,WAAW,EAAE;QAExB,MAAM,IAAI,qBAAqB,CAAC,EAAE,MAAM,EAAE,2BAA2B,EAAE,CAAC,CAAA;IAC1E,OAAO,QAAQ,CAAA;AACjB,CAAC;AAED;;;;GAIG;AACH,SAAS,uBAAuB,CAC9B,SAA+B,EAC/B,QAAwD;IAExD,MAAM,QAAQ,GAAG,SAAS,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CACpD,iBAAiB,CAAC,WAAW,CAAC,QAAQ,CAAC,CACxC,CAAA;IACD,KAAK,MAAM,QAAQ,IAAI,QAAQ,EAAE,CAAC;QAChC,MAAM,KAAK,GAAG,QAAQ,CAAC,SAAS,CAC9B,CAAC,SAAS,EAAE,EAAE,CACZ,iBAAiB,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,WAAW,EAAE;YACpD,iBAAiB,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,WAAW,EAAE,CACtD,CAAA;QACD,IAAI,KAAK,KAAK,CAAC,CAAC;YACd,MAAM,IAAI,qBAAqB,CAAC;gBAC9B,MAAM,EAAE,kDAAkD;aAC3D,CAAC,CAAA;QACJ,QAAQ,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAA;IAC3B,CAAC;AACH,CAAC;AAED;;;;GAIG;AACH,SAAS,uBAAuB,CAC9B,SAAoC,EACpC,QAAwD,EACxD,aAAiD;IAEjD,MAAM,QAAQ,GAAG,SAAS,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CACpD,iBAAiB,CAAC,WAAW,CAAC,QAAQ,CAAC,CACxC,CAAA;IACD,KAAK,MAAM,QAAQ,IAAI,QAAQ,EAAE,CAAC;QAChC,MAAM,KAAK,GAAG,QAAQ,CAAC,SAAS,CAC9B,CAAC,SAAS,EAAE,EAAE,CACZ,iBAAiB,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,WAAW,EAAE;YACpD,iBAAiB,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,WAAW,EAAE,CACtD,CAAA;QACD,IAAI,KAAK,KAAK,CAAC,CAAC;YACd,MAAM,IAAI,qBAAqB,CAAC;gBAC9B,MAAM,EAAE,wDAAwD;aACjE,CAAC,CAAA;QACJ,QAAQ,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAA;IAC3B,CAAC;IAED,MAAM,MAAM,GAAG,cAAc,CAAC,cAAc,CAAC;QAC3C,OAAO,EAAE,SAAS,CAAC,OAAO;QAC1B,MAAM,EAAE,SAAS,CAAC,MAAM;QACxB,OAAO,EAAE,iBAAiB,CAAC,cAAc,CAAC,aAAa,CAAC;KACzD,CAAC,CAAA;IACF,MAAM,SAAS,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE,CAC3C,iBAAiB,CAAC,cAAc,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,CACjE,CAAA;IACD,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,SAAS,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,CAAC;QACtD,MAAM,QAAQ,GAAG,GAAG,CAAC,QAAQ,CAAC,SAAS,CAAC,KAAK,GAAG,CAAC,CAAE,CAAC,CAAA;QACpD,MAAM,OAAO,GAAG,GAAG,CAAC,QAAQ,CAAC,SAAS,CAAC,KAAK,CAAE,CAAC,CAAA;QAC/C,IAAI,QAAQ,KAAK,OAAO;YACtB,MAAM,IAAI,qBAAqB,CAAC;gBAC9B,MAAM,EAAE,sDAAsD;aAC/D,CAAC,CAAA;QACJ,IAAI,QAAQ,GAAG,OAAO;YACpB,MAAM,IAAI,qBAAqB,CAAC;gBAC9B,MAAM,EAAE,yDAAyD;aAClE,CAAC,CAAA;IACN,CAAC;AACH,CAAC;AAED;;;;GAIG;AACH,SAAS,iBAAiB,CACxB,OAA0B,EAC1B,cAAsB,EACtB,MAAc;IAEd,MAAM,SAAS,GAAG,KAAK,CAAC,IAAI,CAC1B,EAAE,MAAM,EAAE,cAAc,GAAG,CAAC,EAAE,EAC9B,GAAG,EAAE,CAAC,IAAI,GAAG,EAAU,CACxB,CAAA;IACD,SAAS,CAAC,CAAC,CAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA;IACpB,KAAK,MAAM,WAAW,IAAI,OAAO;QAC/B,KAAK,IAAI,KAAK,GAAG,cAAc,EAAE,KAAK,GAAG,CAAC,EAAE,KAAK,EAAE;YACjD,KAAK,MAAM,OAAO,IAAI,SAAS,CAAC,KAAK,GAAG,CAAC,CAAE;gBACzC,SAAS,CAAC,KAAK,CAAE,CAAC,GAAG,CAAC,OAAO,GAAG,WAAW,CAAC,CAAA;IAClD,OAAO,SAAS,CAAC,cAAc,CAAE,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;AAC/C,CAAC;AAED;;;;GAIG;AACH,SAAS,mBAAmB,CAAC,SAAoB,EAAE,OAAgB;IACjE,MAAM,IAAI,GAAG,cAAc,CAAC,cAAc,CAAC;QACzC,OAAO,EAAE,SAAS,CAAC,OAAO;QAC1B,MAAM,EAAE,SAAS,CAAC,MAAM;QACxB,OAAO;KACR,CAAC,CAAA;IACF,IAAI,IAAI,CAAC,WAAW,EAAE,KAAK,SAAS,CAAC,IAAI,CAAC,WAAW,EAAE;QACrD,MAAM,IAAI,qBAAqB,CAAC;YAC9B,MAAM,EAAE,2CAA2C;SACpD,CAAC,CAAA;AACN,CAAC;AAED;;;;GAIG;AACH,SAAS,aAAa,CAAC,KAAc,EAAE,KAAa;IAClD,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,IAAI,KAAK,GAAG,CAAC;QACxE,MAAM,IAAI,qBAAqB,CAAC;YAC9B,MAAM,EAAE,GAAG,KAAK,qCAAqC;SACtD,CAAC,CAAA;AACN,CAAC;AAED;;;;GAIG;AACH,SAAS,UAAU,CACjB,CAAwB,EACxB,CAAwB;IAExB,MAAM,OAAO,GAAG,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IACtC,MAAM,OAAO,GAAG,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IACtC,OAAO,CACL,GAAG,CAAC,OAAO,CACT,OAAO,CAAC,IAAI,IAAI,cAAc,CAAC,QAAQ,EACvC,OAAO,CAAC,IAAI,IAAI,cAAc,CAAC,QAAQ,CACxC;QACD,OAAO,CAAC,SAAS,KAAK,OAAO,CAAC,SAAS;QACvC,OAAO,CAAC,OAAO,KAAK,OAAO,CAAC,OAAO;QACnC,OAAO,CAAC,MAAM,CAAC,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,MAAM;QAC/C,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;YACpC,MAAM,KAAK,GAAG,OAAO,CAAC,MAAM,CAAC,KAAK,CAAE,CAAA;YACpC,OAAO,CACL,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC;gBACzC,KAAK,CAAC,MAAM,KAAK,KAAK,CAAC,MAAM,CAC9B,CAAA;QACH,CAAC,CAAC,CACH,CAAA;AACH,CAAC;AAED,wDAAwD;AACxD,MAAM,OAAO,oBAAqB,SAAQ,MAAM,CAAC,SAA4B;IAG3E;;;;;;;;;;;;;OAaG;IACH,YAAY,UAAwC,EAAE;QACpD,KAAK,CACH,OAAO,CAAC,MAAM;YACZ,CAAC,CAAC,8BAA8B,OAAO,CAAC,MAAM,GAAG;YACjD,CAAC,CAAC,4BAA4B,EAChC,EAAE,KAAK,EAAE,OAAO,CAAC,KAA0B,EAAE,CAC9C,CAAA;QAtBe;;;;mBAAO,wCAAwC;WAAA;IAuBjE,CAAC;CACF;AAYD,gFAAgF;AAChF,MAAM,OAAO,qBAAsB,SAAQ,MAAM,CAAC,SAA4B;IAG5E;;;;;;;;;;;;;OAaG;IACH,YAAY,UAAyC,EAAE;QACrD,KAAK,CACH,OAAO,CAAC,MAAM;YACZ,CAAC,CAAC,+BAA+B,OAAO,CAAC,MAAM,GAAG;YAClD,CAAC,CAAC,6BAA6B,EACjC,EAAE,KAAK,EAAE,OAAO,CAAC,KAA0B,EAAE,CAC9C,CAAA;QAtBe;;;;mBAAO,yCAAyC;WAAA;IAuBlE,CAAC;CACF"}
@@ -18,25 +18,9 @@ import * as MultisigConfig from './MultisigConfig.js';
18
18
  * @returns The multisig simulation spec with decoded configurations.
19
19
  */
20
20
  export function fromRpc(spec) {
21
- const { account, approvals, config } = spec;
22
- assertApprovalCount(approvals);
23
- return {
24
- account,
25
- approvals: approvals.map((approval) => {
26
- if (approval.type === 'primitive')
27
- return approval;
28
- assertApprovalCount(approval.spec.approvals);
29
- return {
30
- spec: {
31
- account: approval.spec.account,
32
- approvals: approval.spec.approvals,
33
- config: deserializeConfig(approval.spec.config),
34
- },
35
- type: 'multisig',
36
- };
37
- }),
38
- config: deserializeConfig(config),
39
- };
21
+ const { approvals, config } = spec;
22
+ assertApprovals(approvals);
23
+ return { approvals, config: deserializeConfig(config) };
40
24
  }
41
25
  /**
42
26
  * Converts a multisig simulation spec to its JSON-RPC representation.
@@ -53,38 +37,26 @@ export function fromRpc(spec) {
53
37
  * @returns The JSON-RPC multisig simulation spec with encoded configurations.
54
38
  */
55
39
  export function toRpc(spec) {
56
- const { account, approvals, config } = spec;
57
- assertApprovalCount(approvals);
40
+ const { approvals, config } = spec;
41
+ assertApprovals(approvals);
58
42
  return {
59
- account,
60
- approvals: approvals.map((approval) => {
61
- if (approval.type === 'primitive')
62
- return {
63
- ...approval,
64
- ...(typeof approval.keyData !== 'undefined'
65
- ? { keyData: shimKeyData(approval.keyData) }
66
- : {}),
67
- };
68
- assertApprovalCount(approval.spec.approvals);
69
- return {
70
- spec: {
71
- account: approval.spec.account,
72
- approvals: approval.spec.approvals.map((approval) => ({
73
- ...approval,
74
- ...(typeof approval.keyData !== 'undefined'
75
- ? { keyData: shimKeyData(approval.keyData) }
76
- : {}),
77
- })),
78
- config: serializeConfig(approval.spec.config),
79
- },
80
- type: 'multisig',
81
- };
82
- }),
43
+ approvals: approvals.map(({ keyData, keyType, owner }) => ({
44
+ ...(keyData !== undefined ? { keyData: shimKeyData(keyData) } : {}),
45
+ ...(keyType !== undefined ? { keyType } : {}),
46
+ owner,
47
+ })),
83
48
  config: serializeConfig(config),
84
49
  };
85
50
  }
86
51
  /** @internal */
87
- function assertApprovalCount(approvals) {
52
+ function assertApprovals(approvals) {
53
+ if (approvals.some((approval) => typeof approval !== 'object' ||
54
+ approval === null ||
55
+ 'spec' in approval ||
56
+ 'type' in approval))
57
+ throw new InvalidSimulationError({
58
+ reason: 'only untagged primitive owner approvals are allowed',
59
+ });
88
60
  if (approvals.length > MultisigConfig.maxSignatures)
89
61
  throw new InvalidSimulationError({
90
62
  reason: `approval count exceeds ${MultisigConfig.maxSignatures}`,
@@ -1 +1 @@
1
- {"version":3,"file":"MultisigSimulation.js","sourceRoot":"","sources":["../../tempo/MultisigSimulation.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"MultisigSimulation.js","sourceRoot":"","sources":["../../tempo/MultisigSimulation.ts"],"names":[],"mappings":"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"}
@@ -95,16 +95,28 @@ export function assert(envelope) {
95
95
  }
96
96
  if (type === 'keychain') {
97
97
  const keychain = envelope;
98
+ assertKeychainVersion(keychain);
98
99
  assert(keychain.inner);
99
100
  return;
100
101
  }
101
102
  if (type === 'multisig') {
102
103
  const multisig = envelope;
103
- assertMultisig(multisig, 1);
104
+ assertMultisig(multisig);
104
105
  return;
105
106
  }
106
107
  }
107
- function assertMultisig(envelope, depth) {
108
+ function assertKeychainVersion(keychain) {
109
+ if (keychain.version !== 'v1')
110
+ return;
111
+ let inner = keychain.inner;
112
+ while (getType(inner) === 'keychain')
113
+ inner = inner.inner;
114
+ if (getType(inner) === 'multisig')
115
+ throw new InvalidMultisigApprovalError({
116
+ reason: 'multisig access keys require keychain V2',
117
+ });
118
+ }
119
+ function assertMultisig(envelope) {
108
120
  const missing = [];
109
121
  if (!envelope.account)
110
122
  missing.push('account');
@@ -118,10 +130,6 @@ function assertMultisig(envelope, depth) {
118
130
  missing,
119
131
  type: 'multisig',
120
132
  });
121
- if (depth > MultisigConfig.maxNestingDepth)
122
- throw new InvalidMultisigApprovalError({
123
- reason: `multisig nesting depth exceeds ${MultisigConfig.maxNestingDepth}`,
124
- });
125
133
  if (!Address.validate(envelope.account))
126
134
  throw new InvalidMultisigApprovalError({
127
135
  reason: 'multisig account is invalid',
@@ -130,16 +138,6 @@ function assertMultisig(envelope, depth) {
130
138
  throw new InvalidMultisigApprovalError({
131
139
  reason: 'multisig account cannot be zero',
132
140
  });
133
- MultisigConfig.assert(envelope.config);
134
- if (envelope.config.owners.some((owner) => Address.isEqual(owner.owner, envelope.account)))
135
- throw new InvalidMultisigApprovalError({
136
- reason: 'multisig account cannot be an owner',
137
- });
138
- if (envelope.config.version === 0n &&
139
- !Address.isEqual(MultisigConfig.getAddress(envelope.config), envelope.account))
140
- throw new InvalidMultisigApprovalError({
141
- reason: 'initial multisig config does not derive account',
142
- });
143
141
  if (envelope.signatures.length === 0)
144
142
  throw new InvalidMultisigApprovalError({
145
143
  reason: 'multisig signatures cannot be empty',
@@ -148,21 +146,23 @@ function assertMultisig(envelope, depth) {
148
146
  throw new InvalidMultisigApprovalError({
149
147
  reason: `multisig signatures exceed ${MultisigConfig.maxSignatures}`,
150
148
  });
149
+ MultisigConfig.assert(envelope.config);
150
+ if ((envelope.config.version ?? 0n) === 0n &&
151
+ envelope.config.owners.some((owner) => Address.isEqual(owner.owner, envelope.account)))
152
+ throw new InvalidMultisigApprovalError({
153
+ reason: 'initial account cannot be an owner',
154
+ });
151
155
  for (const inner of envelope.signatures) {
152
156
  const type = getType(inner);
153
- if (type === 'keychain')
157
+ if (type === 'keychain' || type === 'multisig')
154
158
  throw new InvalidMultisigApprovalError({
155
- reason: 'keychain owner approvals are not allowed',
159
+ reason: 'owner approvals must be primitive signatures',
160
+ });
161
+ assert(inner);
162
+ if (Hex.size(serialize(inner)) > MultisigConfig.maxOwnerSignatureBytes)
163
+ throw new InvalidMultisigApprovalError({
164
+ reason: `multisig owner signature exceeds ${MultisigConfig.maxOwnerSignatureBytes} bytes`,
156
165
  });
157
- if (type === 'multisig')
158
- assertMultisig(inner, depth + 1);
159
- else {
160
- assert(inner);
161
- if (Hex.size(serialize(inner)) > MultisigConfig.maxOwnerSignatureBytes)
162
- throw new InvalidMultisigApprovalError({
163
- reason: `multisig owner signature exceeds ${MultisigConfig.maxOwnerSignatureBytes} bytes`,
164
- });
165
- }
166
166
  }
167
167
  }
168
168
  /**
@@ -271,9 +271,9 @@ export function extractPublicKey(options) {
271
271
  * @throws `CoercionError` if the serialized value cannot be coerced to a valid signature envelope.
272
272
  */
273
273
  export function deserialize(value) {
274
- return deserialize_(value, 0);
274
+ return deserialize_(value);
275
275
  }
276
- function deserialize_(value, multisigDepth) {
276
+ function deserialize_(value) {
277
277
  const serialized = value.endsWith(magicBytes.slice(2))
278
278
  ? Hex.slice(value, 0, -Hex.size(magicBytes))
279
279
  : value;
@@ -362,21 +362,17 @@ function deserialize_(value, multisigDepth) {
362
362
  if (typeId === serializedKeychainType ||
363
363
  typeId === serializedKeychainV2Type) {
364
364
  const userAddress = Hex.slice(data, 0, 20);
365
- const inner = deserialize_(Hex.slice(data, 20), multisigDepth);
366
- return {
365
+ const inner = deserialize_(Hex.slice(data, 20));
366
+ const envelope = {
367
367
  userAddress,
368
368
  inner,
369
369
  type: 'keychain',
370
370
  version: typeId === serializedKeychainV2Type ? 'v2' : 'v1',
371
371
  };
372
+ assert(envelope);
373
+ return envelope;
372
374
  }
373
375
  if (typeId === serializedMultisigType) {
374
- const depth = multisigDepth + 1;
375
- if (depth > MultisigConfig.maxNestingDepth)
376
- throw new InvalidSerializedError({
377
- reason: `multisig nesting depth exceeds ${MultisigConfig.maxNestingDepth}`,
378
- serialized,
379
- });
380
376
  const decoded = Rlp.toHex(data);
381
377
  if (!Array.isArray(decoded) || decoded.length !== 3)
382
378
  throw new InvalidSerializedError({
@@ -384,7 +380,7 @@ function deserialize_(value, multisigDepth) {
384
380
  serialized,
385
381
  });
386
382
  const [account, config, signatures] = decoded;
387
- if (!Address.validate(account))
383
+ if (typeof account !== 'string' || !Address.validate(account))
388
384
  throw new InvalidSerializedError({
389
385
  reason: 'invalid multisig account',
390
386
  serialized,
@@ -394,56 +390,35 @@ function deserialize_(value, multisigDepth) {
394
390
  reason: 'invalid multisig config',
395
391
  serialized,
396
392
  });
397
- const [salt, version, threshold, owners] = config;
398
- if (config.length !== 4 ||
399
- Array.isArray(salt) ||
400
- Hex.size(salt) !== 32 ||
401
- Array.isArray(version) ||
402
- Hex.size(version) > 8 ||
403
- (version !== '0x' && Hex.slice(version, 0, 1) === '0x00') ||
404
- Array.isArray(threshold) ||
405
- Hex.size(threshold) > 1 ||
406
- !Array.isArray(owners) ||
407
- owners.some((owner) => !Array.isArray(owner) ||
408
- owner.length !== 2 ||
409
- owner.some(Array.isArray) ||
410
- !Address.validate(owner[0]) ||
411
- Hex.size(owner[1]) > 1))
412
- throw new InvalidSerializedError({
413
- reason: 'invalid multisig config',
414
- serialized,
415
- });
416
- if (!Array.isArray(signatures) || signatures.some(Array.isArray))
393
+ if (!Array.isArray(signatures) ||
394
+ signatures.length === 0 ||
395
+ signatures.length > MultisigConfig.maxSignatures)
417
396
  throw new InvalidSerializedError({
418
397
  reason: 'invalid multisig signatures list',
419
398
  serialized,
420
399
  });
421
- if (signatures.length === 0)
422
- throw new InvalidSerializedError({
423
- reason: 'multisig signatures cannot be empty',
424
- serialized,
425
- });
426
- if (signatures.length > MultisigConfig.maxSignatures)
427
- throw new InvalidSerializedError({
428
- reason: `multisig signatures exceed ${MultisigConfig.maxSignatures}`,
429
- serialized,
430
- });
431
- for (const signature of signatures)
432
- if (Hex.size(signature) >
433
- MultisigConfig.maxOwnerSignatureBytes &&
434
- Hex.slice(signature, 0, 1) !==
435
- MultisigConfig.signatureTypeByte)
436
- throw new InvalidSerializedError({
437
- reason: `multisig owner signature exceeds ${MultisigConfig.maxOwnerSignatureBytes} bytes`,
438
- serialized,
439
- });
440
400
  const envelope = {
441
- account: account,
442
- config: MultisigConfig.fromTuple(config),
443
- signatures: signatures.map((signature) => deserialize_(signature, depth)),
444
401
  type: 'multisig',
402
+ account,
403
+ config: MultisigConfig.fromTuple(config),
404
+ signatures: signatures.map((signature) => {
405
+ if (!Hex.validate(signature) ||
406
+ Hex.size(signature) > MultisigConfig.maxOwnerSignatureBytes)
407
+ throw new InvalidSerializedError({
408
+ reason: 'invalid multisig owner signature',
409
+ serialized,
410
+ });
411
+ // Reject recursive envelopes before decoding their contents.
412
+ if (Hex.size(signature) !== 65 &&
413
+ !['0x01', '0x02'].includes(Hex.slice(signature, 0, 1)))
414
+ throw new InvalidSerializedError({
415
+ reason: 'owner approvals must be primitive signatures',
416
+ serialized,
417
+ });
418
+ return deserialize(signature);
419
+ }),
445
420
  };
446
- assertMultisig(envelope, depth);
421
+ assertMultisig(envelope);
447
422
  return envelope;
448
423
  }
449
424
  throw new InvalidSerializedError({
@@ -566,25 +541,30 @@ function deserialize_(value, multisigDepth) {
566
541
  * @example
567
542
  * ### Multisig
568
543
  *
569
- * ```ts twoslash
570
- * import { Secp256k1 } from 'ox'
571
- * import { MultisigConfig, SignatureEnvelope } from 'ox/tempo'
544
+ * Include the permanent account and current configuration on every transaction.
572
545
  *
573
- * const config = MultisigConfig.from({
574
- * owners: [
575
- * { owner: '0x1111111111111111111111111111111111111111', weight: 1 },
576
- * ],
577
- * threshold: 1,
578
- * })
579
- *
580
- * const privateKey = Secp256k1.randomPrivateKey()
581
- * const signature = SignatureEnvelope.from(
582
- * Secp256k1.sign({ payload: '0xdeadbeef', privateKey }),
583
- * )
546
+ * ```ts twoslash
547
+ * import { SignatureEnvelope } from 'ox/tempo'
584
548
  *
585
- * const multisig = SignatureEnvelope.from({
586
- * config,
587
- * signatures: [signature],
549
+ * const envelope = SignatureEnvelope.from({
550
+ * account: '0x2222222222222222222222222222222222222222',
551
+ * config: {
552
+ * version: 0n,
553
+ * threshold: 1,
554
+ * owners: [
555
+ * {
556
+ * owner: '0x1111111111111111111111111111111111111111',
557
+ * weight: 1
558
+ * }
559
+ * ]
560
+ * },
561
+ * signatures: [
562
+ * SignatureEnvelope.from({
563
+ * r: 1n,
564
+ * s: 2n,
565
+ * yParity: 0
566
+ * })
567
+ * ]
588
568
  * })
589
569
  * ```
590
570
  *
@@ -603,16 +583,12 @@ export function from(value, options) {
603
583
  const type = getType(value);
604
584
  if (type === 'multisig') {
605
585
  const multisig = value;
606
- const config = MultisigConfig.from(multisig.config);
607
- const account = multisig.account ?? MultisigConfig.getAddress(config);
608
- const envelope = {
609
- account,
610
- config,
586
+ return {
587
+ ...multisig,
588
+ config: MultisigConfig.from(multisig.config),
611
589
  signatures: multisig.signatures.map((signature) => from(signature)),
612
590
  type,
613
591
  };
614
- assert(envelope);
615
- return envelope;
616
592
  }
617
593
  return {
618
594
  ...value,
@@ -665,15 +641,10 @@ export function from(value, options) {
665
641
  */
666
642
  export function fromRpc(envelope) {
667
643
  if (typeof envelope === 'string') {
668
- const serialized = Hex.concat(serializedMultisigType, envelope);
669
- const result = deserialize(serialized);
670
- if (result.type !== 'multisig' ||
671
- !Hex.isEqual(serialize(result), serialized))
672
- throw new InvalidSerializedError({
673
- reason: 'invalid multisig RPC signature',
674
- serialized: envelope,
675
- });
676
- return result;
644
+ const signature = deserialize(Hex.concat(serializedMultisigType, envelope));
645
+ if (signature.type !== 'multisig')
646
+ throw new CoercionError({ envelope });
647
+ return signature;
677
648
  }
678
649
  if (envelope.type === 'secp256k1')
679
650
  return {
@@ -739,13 +710,15 @@ export function fromRpc(envelope) {
739
710
  if (envelope.type === 'keychain' ||
740
711
  ('userAddress' in envelope && 'signature' in envelope)) {
741
712
  const keychain = envelope;
742
- return {
713
+ const result = {
743
714
  type: 'keychain',
744
715
  userAddress: keychain.userAddress,
745
716
  inner: fromRpc(keychain.signature),
746
717
  ...(keychain.keyId ? { keyId: keychain.keyId } : {}),
747
718
  ...(keychain.version ? { version: keychain.version } : {}),
748
719
  };
720
+ assert(result);
721
+ return result;
749
722
  }
750
723
  throw new CoercionError({ envelope });
751
724
  }
@@ -798,7 +771,7 @@ export function getType(envelope) {
798
771
  if ('userAddress' in envelope && 'inner' in envelope)
799
772
  return 'keychain';
800
773
  // Detect Multisig signature
801
- if ('config' in envelope && 'signatures' in envelope)
774
+ if ('account' in envelope && 'config' in envelope && 'signatures' in envelope)
802
775
  return 'multisig';
803
776
  throw new CoercionError({
804
777
  envelope,
@@ -851,6 +824,7 @@ export function serialize(envelope, options = {}) {
851
824
  }
852
825
  if (type === 'keychain') {
853
826
  const keychain = envelope;
827
+ assert(keychain);
854
828
  const keychainTypeId = keychain.version === 'v1'
855
829
  ? serializedKeychainType
856
830
  : serializedKeychainV2Type;
@@ -868,64 +842,29 @@ export function serialize(envelope, options = {}) {
868
842
  throw new CoercionError({ envelope });
869
843
  }
870
844
  /**
871
- * Orders native multisig owner approvals into the strictly-ascending
872
- * recovered-owner order the Tempo node requires for the multisig `signatures`
873
- * array (the node enforces "recovered owners must be strictly ascending").
845
+ * Sorts primitive owner approvals by recovered address.
874
846
  *
875
- * Each approval is signed over the multisig owner approval digest
876
- * ({@link ox#MultisigConfig.(getSignPayload:function)}), so the signer of
877
- * every approval is recovered against that digest and the list is sorted by the
878
- * recovered owner address. Works for any owner key type (secp256k1, p256,
879
- * webAuthn).
847
+ * Recovery uses the account and current config version's multisig digest.
848
+ * Duplicate or non-owner approvals must still be rejected by the node.
880
849
  *
881
850
  * @example
882
851
  * ```ts twoslash
883
- * import { Secp256k1 } from 'ox'
884
- * import { MultisigConfig, SignatureEnvelope, TxEnvelopeTempo } from 'ox/tempo'
885
- *
886
- * const config = MultisigConfig.from({
887
- * owners: [
888
- * { owner: '0x1111111111111111111111111111111111111111', weight: 1 },
889
- * { owner: '0x2222222222222222222222222222222222222222', weight: 1 },
890
- * ],
891
- * threshold: 2,
892
- * })
893
- * const account = MultisigConfig.getAddress(config)
894
- *
895
- * const tx = TxEnvelopeTempo.from({ chainId: 1, calls: [] })
896
- * const payload = TxEnvelopeTempo.getSignPayload(tx)
897
- *
898
- * const privateKeys = [
899
- * Secp256k1.randomPrivateKey(),
900
- * Secp256k1.randomPrivateKey(),
901
- * ]
902
- * const digest = MultisigConfig.getSignPayload({
903
- * account,
904
- * config,
905
- * payload,
906
- * })
907
- * const signatures = privateKeys.map((privateKey) =>
908
- * SignatureEnvelope.from(Secp256k1.sign({ payload: digest, privateKey })),
909
- * )
852
+ * import { SignatureEnvelope } from 'ox/tempo'
910
853
  *
911
- * const ordered = SignatureEnvelope.sortMultisigApprovals({ // [!code focus]
912
- * account, // [!code focus]
913
- * config, // [!code focus]
914
- * payload, // [!code focus]
915
- * signatures, // [!code focus]
916
- * }) // [!code focus]
854
+ * const ordered = SignatureEnvelope.sortMultisigApprovals({
855
+ * account: '0x2222222222222222222222222222222222222222',
856
+ * config: { version: 0n },
857
+ * payload: `0x${'ab'.repeat(32)}`,
858
+ * signatures: []
859
+ * })
917
860
  * ```
918
861
  *
919
- * @param value - The approval ordering parameters.
920
- * @returns The owner approvals ordered ascending by recovered owner address.
862
+ * @param value - Account, version, payload, and primitive approvals.
863
+ * @returns The approvals in ascending recovered-address order.
921
864
  */
922
865
  export function sortMultisigApprovals(value) {
923
- const { account, config, payload, signatures } = value;
924
- const digest = MultisigConfig.getSignPayload({
925
- account,
926
- config: MultisigConfig.from(config),
927
- payload,
928
- });
866
+ const { signatures } = value;
867
+ const digest = MultisigConfig.getSignPayload(value);
929
868
  // Recover each signer once (decorate–sort–undecorate) rather than inside the
930
869
  // comparator.
931
870
  return signatures
@@ -986,6 +925,7 @@ export function toRpc(envelope) {
986
925
  }
987
926
  if (type === 'keychain') {
988
927
  const keychain = envelope;
928
+ assertKeychainVersion(keychain);
989
929
  return {
990
930
  type: 'keychain',
991
931
  userAddress: keychain.userAddress,
@@ -994,10 +934,8 @@ export function toRpc(envelope) {
994
934
  ...(keychain.version ? { version: keychain.version } : {}),
995
935
  };
996
936
  }
997
- if (type === 'multisig') {
998
- const multisig = envelope;
999
- return Hex.slice(serialize(multisig), 1);
1000
- }
937
+ if (type === 'multisig')
938
+ return Hex.slice(serialize(envelope), 1);
1001
939
  throw new CoercionError({ envelope });
1002
940
  }
1003
941
  /**