@polyester/sdk 0.4.0 → 0.4.1

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 (240) hide show
  1. package/CHANGELOG.md +6 -0
  2. package/dist/_virtual/_rolldown/runtime.js +1 -15
  3. package/dist/catalogs/snapshot-validation.js +63 -63
  4. package/dist/catalogs/snapshot-validation.js.map +1 -1
  5. package/dist/services/accounts/accounts.js +1 -1
  6. package/dist/services/accounts/accounts.js.map +1 -1
  7. package/dist/services/accounts/accounts.schemas.d.ts +13 -13
  8. package/dist/services/accounts/accounts.schemas.d.ts.map +1 -1
  9. package/dist/services/accounts/accounts.schemas.js +11 -11
  10. package/dist/services/accounts/accounts.schemas.js.map +1 -1
  11. package/dist/services/address-book/address-book.js.map +1 -1
  12. package/dist/services/address-book/address-book.schemas.d.ts +751 -751
  13. package/dist/services/address-book/address-book.schemas.d.ts.map +1 -1
  14. package/dist/services/address-book/address-book.schemas.js +160 -159
  15. package/dist/services/address-book/address-book.schemas.js.map +1 -1
  16. package/dist/services/api-keys/api-keys.d.ts +6 -6
  17. package/dist/services/api-keys/api-keys.d.ts.map +1 -1
  18. package/dist/services/api-keys/api-keys.js.map +1 -1
  19. package/dist/services/api-keys/api-keys.schemas.d.ts +62 -62
  20. package/dist/services/api-keys/api-keys.schemas.d.ts.map +1 -1
  21. package/dist/services/api-keys/api-keys.schemas.js +34 -34
  22. package/dist/services/api-keys/api-keys.schemas.js.map +1 -1
  23. package/dist/services/auth/auth.d.ts +39 -39
  24. package/dist/services/auth/auth.d.ts.map +1 -1
  25. package/dist/services/auth/auth.js +19 -18
  26. package/dist/services/auth/auth.js.map +1 -1
  27. package/dist/services/auth/profile/profile.d.ts +2 -2
  28. package/dist/services/auth/profile/profile.d.ts.map +1 -1
  29. package/dist/services/auth/profile/profile.js +3 -2
  30. package/dist/services/auth/profile/profile.js.map +1 -1
  31. package/dist/services/auth/profile/profile.schemas.d.ts +41 -41
  32. package/dist/services/auth/profile/profile.schemas.d.ts.map +1 -1
  33. package/dist/services/auth/profile/profile.schemas.js +27 -27
  34. package/dist/services/auth/profile/profile.schemas.js.map +1 -1
  35. package/dist/services/auth/session.schemas.js +17 -17
  36. package/dist/services/auth/session.schemas.js.map +1 -1
  37. package/dist/services/balances/balances.d.ts.map +1 -1
  38. package/dist/services/balances/balances.js +3 -2
  39. package/dist/services/balances/balances.js.map +1 -1
  40. package/dist/services/balances/balances.schemas.d.ts +95 -95
  41. package/dist/services/balances/balances.schemas.d.ts.map +1 -1
  42. package/dist/services/balances/balances.schemas.js +61 -61
  43. package/dist/services/balances/balances.schemas.js.map +1 -1
  44. package/dist/services/candles/candles.d.ts.map +1 -1
  45. package/dist/services/candles/candles.js +5 -4
  46. package/dist/services/candles/candles.js.map +1 -1
  47. package/dist/services/candles/candles.schemas.d.ts +64 -64
  48. package/dist/services/candles/candles.schemas.d.ts.map +1 -1
  49. package/dist/services/candles/candles.schemas.js +47 -47
  50. package/dist/services/candles/candles.schemas.js.map +1 -1
  51. package/dist/services/chain-analytics/chain-analytics.js.map +1 -1
  52. package/dist/services/chain-analytics/chain-analytics.schemas.d.ts +68 -68
  53. package/dist/services/chain-analytics/chain-analytics.schemas.d.ts.map +1 -1
  54. package/dist/services/chain-analytics/chain-analytics.schemas.js +29 -29
  55. package/dist/services/chain-analytics/chain-analytics.schemas.js.map +1 -1
  56. package/dist/services/deposit/deposit.js.map +1 -1
  57. package/dist/services/deposit/deposit.schemas.d.ts +17 -17
  58. package/dist/services/deposit/deposit.schemas.d.ts.map +1 -1
  59. package/dist/services/deposit/deposit.schemas.js +11 -11
  60. package/dist/services/deposit/deposit.schemas.js.map +1 -1
  61. package/dist/services/guard-signer/guard-signer.js.map +1 -1
  62. package/dist/services/guard-signer/guard-signer.schemas.d.ts +75 -75
  63. package/dist/services/guard-signer/guard-signer.schemas.d.ts.map +1 -1
  64. package/dist/services/guard-signer/guard-signer.schemas.js +42 -42
  65. package/dist/services/guard-signer/guard-signer.schemas.js.map +1 -1
  66. package/dist/services/heatmap/heatmap.d.ts.map +1 -1
  67. package/dist/services/heatmap/heatmap.js +5 -4
  68. package/dist/services/heatmap/heatmap.js.map +1 -1
  69. package/dist/services/heatmap/heatmap.schemas.d.ts +138 -138
  70. package/dist/services/heatmap/heatmap.schemas.d.ts.map +1 -1
  71. package/dist/services/heatmap/heatmap.schemas.js +47 -47
  72. package/dist/services/heatmap/heatmap.schemas.js.map +1 -1
  73. package/dist/services/internal-transfers/internal-transfers.js.map +1 -1
  74. package/dist/services/internal-transfers/internal-transfers.schemas.d.ts +53 -53
  75. package/dist/services/internal-transfers/internal-transfers.schemas.d.ts.map +1 -1
  76. package/dist/services/internal-transfers/internal-transfers.schemas.js +27 -27
  77. package/dist/services/internal-transfers/internal-transfers.schemas.js.map +1 -1
  78. package/dist/services/lifecycle/lifecycle.d.ts.map +1 -1
  79. package/dist/services/lifecycle/lifecycle.js +3 -2
  80. package/dist/services/lifecycle/lifecycle.js.map +1 -1
  81. package/dist/services/lifecycle/lifecycle.schemas.d.ts +614 -614
  82. package/dist/services/lifecycle/lifecycle.schemas.d.ts.map +1 -1
  83. package/dist/services/lifecycle/lifecycle.schemas.js +146 -146
  84. package/dist/services/lifecycle/lifecycle.schemas.js.map +1 -1
  85. package/dist/services/market-data/market-data.d.ts.map +1 -1
  86. package/dist/services/market-data/market-data.js +4 -3
  87. package/dist/services/market-data/market-data.js.map +1 -1
  88. package/dist/services/market-data/market-data.schemas.d.ts +19 -19
  89. package/dist/services/market-data/market-data.schemas.d.ts.map +1 -1
  90. package/dist/services/market-data/market-data.schemas.js +50 -50
  91. package/dist/services/market-data/market-data.schemas.js.map +1 -1
  92. package/dist/services/market-overview/market-overview.d.ts.map +1 -1
  93. package/dist/services/market-overview/market-overview.js +3 -2
  94. package/dist/services/market-overview/market-overview.js.map +1 -1
  95. package/dist/services/market-overview/market-overview.schemas.d.ts +37 -37
  96. package/dist/services/market-overview/market-overview.schemas.d.ts.map +1 -1
  97. package/dist/services/market-overview/market-overview.schemas.js +33 -33
  98. package/dist/services/market-overview/market-overview.schemas.js.map +1 -1
  99. package/dist/services/mfa/mfa.js +1 -1
  100. package/dist/services/mfa/mfa.js.map +1 -1
  101. package/dist/services/mfa/mfa.schemas.d.ts +206 -206
  102. package/dist/services/mfa/mfa.schemas.d.ts.map +1 -1
  103. package/dist/services/mfa/mfa.schemas.js +83 -83
  104. package/dist/services/mfa/mfa.schemas.js.map +1 -1
  105. package/dist/services/orderbook/orderbook.d.ts +2 -2
  106. package/dist/services/orderbook/orderbook.d.ts.map +1 -1
  107. package/dist/services/orderbook/orderbook.js +3 -2
  108. package/dist/services/orderbook/orderbook.js.map +1 -1
  109. package/dist/services/orderbook/orderbook.schemas.d.ts +23 -23
  110. package/dist/services/orderbook/orderbook.schemas.d.ts.map +1 -1
  111. package/dist/services/orderbook/orderbook.schemas.js +15 -15
  112. package/dist/services/orderbook/orderbook.schemas.js.map +1 -1
  113. package/dist/services/orders/order-errors.schemas.d.ts +18 -18
  114. package/dist/services/orders/order-errors.schemas.d.ts.map +1 -1
  115. package/dist/services/orders/order-errors.schemas.js +8 -8
  116. package/dist/services/orders/order-errors.schemas.js.map +1 -1
  117. package/dist/services/orders/orders-batch.schemas.d.ts +504 -504
  118. package/dist/services/orders/orders-batch.schemas.d.ts.map +1 -1
  119. package/dist/services/orders/orders-batch.schemas.js +117 -117
  120. package/dist/services/orders/orders-batch.schemas.js.map +1 -1
  121. package/dist/services/orders/orders-identifiers.schemas.js +5 -5
  122. package/dist/services/orders/orders-identifiers.schemas.js.map +1 -1
  123. package/dist/services/orders/orders-input.schemas.d.ts +648 -648
  124. package/dist/services/orders/orders-input.schemas.d.ts.map +1 -1
  125. package/dist/services/orders/orders-input.schemas.js +95 -95
  126. package/dist/services/orders/orders-input.schemas.js.map +1 -1
  127. package/dist/services/orders/orders-modify.schemas.d.ts +351 -351
  128. package/dist/services/orders/orders-modify.schemas.d.ts.map +1 -1
  129. package/dist/services/orders/orders-modify.schemas.js +44 -44
  130. package/dist/services/orders/orders-modify.schemas.js.map +1 -1
  131. package/dist/services/orders/orders-output.schemas.d.ts +183 -183
  132. package/dist/services/orders/orders-output.schemas.d.ts.map +1 -1
  133. package/dist/services/orders/orders-output.schemas.js +49 -49
  134. package/dist/services/orders/orders-output.schemas.js.map +1 -1
  135. package/dist/services/orders/orders-risk.schemas.d.ts +226 -226
  136. package/dist/services/orders/orders-risk.schemas.d.ts.map +1 -1
  137. package/dist/services/orders/orders-risk.schemas.js +69 -69
  138. package/dist/services/orders/orders-risk.schemas.js.map +1 -1
  139. package/dist/services/orders/orders.d.ts +6 -6
  140. package/dist/services/orders/orders.d.ts.map +1 -1
  141. package/dist/services/orders/orders.js +4 -3
  142. package/dist/services/orders/orders.js.map +1 -1
  143. package/dist/services/policies/api-key-policies/api-key-policies.d.ts +6 -6
  144. package/dist/services/policies/api-key-policies/api-key-policies.d.ts.map +1 -1
  145. package/dist/services/policies/api-key-policies/api-key-policies.js.map +1 -1
  146. package/dist/services/policies/api-key-policies/api-key-policies.schemas.d.ts +105 -105
  147. package/dist/services/policies/api-key-policies/api-key-policies.schemas.d.ts.map +1 -1
  148. package/dist/services/policies/api-key-policies/api-key-policies.schemas.js +49 -49
  149. package/dist/services/policies/api-key-policies/api-key-policies.schemas.js.map +1 -1
  150. package/dist/services/policies/shared.d.ts +5 -5
  151. package/dist/services/policies/shared.d.ts.map +1 -1
  152. package/dist/services/policies/shared.js +10 -10
  153. package/dist/services/policies/shared.js.map +1 -1
  154. package/dist/services/policies/subaccount-policies/subaccount-policies.d.ts +6 -6
  155. package/dist/services/policies/subaccount-policies/subaccount-policies.d.ts.map +1 -1
  156. package/dist/services/policies/subaccount-policies/subaccount-policies.js +3 -2
  157. package/dist/services/policies/subaccount-policies/subaccount-policies.js.map +1 -1
  158. package/dist/services/policies/subaccount-policies/subaccount-policies.schemas.d.ts +124 -124
  159. package/dist/services/policies/subaccount-policies/subaccount-policies.schemas.d.ts.map +1 -1
  160. package/dist/services/policies/subaccount-policies/subaccount-policies.schemas.js +75 -75
  161. package/dist/services/policies/subaccount-policies/subaccount-policies.schemas.js.map +1 -1
  162. package/dist/services/shared.js +11 -11
  163. package/dist/services/shared.js.map +1 -1
  164. package/dist/services/social-verification/social-verification.d.ts +3 -3
  165. package/dist/services/social-verification/social-verification.d.ts.map +1 -1
  166. package/dist/services/social-verification/social-verification.js.map +1 -1
  167. package/dist/services/social-verification/social-verification.schemas.d.ts +54 -54
  168. package/dist/services/social-verification/social-verification.schemas.d.ts.map +1 -1
  169. package/dist/services/social-verification/social-verification.schemas.js +28 -28
  170. package/dist/services/social-verification/social-verification.schemas.js.map +1 -1
  171. package/dist/services/subaccounts/subaccounts.d.ts +14 -14
  172. package/dist/services/subaccounts/subaccounts.d.ts.map +1 -1
  173. package/dist/services/subaccounts/subaccounts.js +9 -8
  174. package/dist/services/subaccounts/subaccounts.js.map +1 -1
  175. package/dist/services/subaccounts/subaccounts.schemas.d.ts +135 -135
  176. package/dist/services/subaccounts/subaccounts.schemas.d.ts.map +1 -1
  177. package/dist/services/subaccounts/subaccounts.schemas.js +72 -72
  178. package/dist/services/subaccounts/subaccounts.schemas.js.map +1 -1
  179. package/dist/services/trades/trades.d.ts +2 -2
  180. package/dist/services/trades/trades.d.ts.map +1 -1
  181. package/dist/services/trades/trades.js +3 -2
  182. package/dist/services/trades/trades.js.map +1 -1
  183. package/dist/services/trades/trades.schemas.d.ts +31 -31
  184. package/dist/services/trades/trades.schemas.d.ts.map +1 -1
  185. package/dist/services/trades/trades.schemas.js +24 -24
  186. package/dist/services/trades/trades.schemas.js.map +1 -1
  187. package/dist/services/trading-withdraws/trading-withdraws.js +1 -1
  188. package/dist/services/trading-withdraws/trading-withdraws.js.map +1 -1
  189. package/dist/services/trading-withdraws/trading-withdraws.schemas.d.ts +45 -45
  190. package/dist/services/trading-withdraws/trading-withdraws.schemas.d.ts.map +1 -1
  191. package/dist/services/trading-withdraws/trading-withdraws.schemas.js +36 -36
  192. package/dist/services/trading-withdraws/trading-withdraws.schemas.js.map +1 -1
  193. package/dist/services/transfers/transfers.d.ts.map +1 -1
  194. package/dist/services/transfers/transfers.js +3 -2
  195. package/dist/services/transfers/transfers.js.map +1 -1
  196. package/dist/services/transfers/transfers.schemas.d.ts +42 -42
  197. package/dist/services/transfers/transfers.schemas.d.ts.map +1 -1
  198. package/dist/services/transfers/transfers.schemas.js +30 -30
  199. package/dist/services/transfers/transfers.schemas.js.map +1 -1
  200. package/dist/services/triggers/trigger-child-order.schemas.js +23 -23
  201. package/dist/services/triggers/trigger-child-order.schemas.js.map +1 -1
  202. package/dist/services/triggers/trigger-input.schemas.d.ts +226 -226
  203. package/dist/services/triggers/trigger-input.schemas.d.ts.map +1 -1
  204. package/dist/services/triggers/trigger-input.schemas.js +53 -53
  205. package/dist/services/triggers/trigger-input.schemas.js.map +1 -1
  206. package/dist/services/triggers/triggers-output.schemas.d.ts +209 -209
  207. package/dist/services/triggers/triggers-output.schemas.d.ts.map +1 -1
  208. package/dist/services/triggers/triggers-output.schemas.js +152 -152
  209. package/dist/services/triggers/triggers-output.schemas.js.map +1 -1
  210. package/dist/services/triggers/triggers.d.ts.map +1 -1
  211. package/dist/services/triggers/triggers.js +4 -3
  212. package/dist/services/triggers/triggers.js.map +1 -1
  213. package/dist/services/whiteboard/whiteboard.js.map +1 -1
  214. package/dist/services/whiteboard/whiteboard.schemas.d.ts +379 -379
  215. package/dist/services/whiteboard/whiteboard.schemas.d.ts.map +1 -1
  216. package/dist/services/whiteboard/whiteboard.schemas.js +71 -71
  217. package/dist/services/whiteboard/whiteboard.schemas.js.map +1 -1
  218. package/dist/services/zipper/zipper.js.map +1 -1
  219. package/dist/services/zipper/zipper.schemas.d.ts +1 -1
  220. package/dist/services/zipper/zipper.schemas.js +54 -54
  221. package/dist/services/zipper/zipper.schemas.js.map +1 -1
  222. package/dist/shared/account-scope.d.ts +6 -6
  223. package/dist/shared/account-scope.d.ts.map +1 -1
  224. package/dist/shared/account-scope.js +3 -3
  225. package/dist/shared/account-scope.js.map +1 -1
  226. package/dist/shared/connect-error-mapping.js +2 -2
  227. package/dist/shared/connect-error-mapping.js.map +1 -1
  228. package/dist/shared/rate-limit.schemas.d.ts +12 -12
  229. package/dist/shared/rate-limit.schemas.d.ts.map +1 -1
  230. package/dist/shared/rate-limit.schemas.js +7 -7
  231. package/dist/shared/rate-limit.schemas.js.map +1 -1
  232. package/dist/shared/schemas.js +26 -26
  233. package/dist/shared/schemas.js.map +1 -1
  234. package/dist/shared/validation.js +1 -6
  235. package/dist/shared/validation.js.map +1 -1
  236. package/dist/utils/connect-order-errors.js +2 -2
  237. package/dist/utils/connect-order-errors.js.map +1 -1
  238. package/package.json +3 -3
  239. package/dist/shared/validation.d.ts +0 -14
  240. package/dist/shared/validation.d.ts.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"guard-signer.js","names":["#client","Proto.GuardSignerService","#resolver","v.parse"],"sources":["../../../src/services/guard-signer/guard-signer.ts"],"sourcesContent":["import { createClient, type Client, type Transport } from \"@connectrpc/connect\";\nimport * as Proto from \"../../gen/chain/guard/v1/guard_signer_pb.js\";\nimport { removeUndefined } from \"../../utils/remove-undefined.js\";\nimport {\n toConnectCallOptions,\n type PolyesterMutationOptions,\n type PolyesterRequestOptions,\n} from \"../../shared/request-options.js\";\nimport { type SubaccountResolver, resolveAccountScopedInput } from \"../subaccount-resolver.js\";\nimport type { AccountScopedInput } from \"../../shared/account-scope.js\";\nimport {\n BatchGuardApprovalsSchema,\n BatchSignProtectedActionInputSchema,\n CreateGuardSignerWalletResultSchema,\n ExportGuardSignerWalletResultSchema,\n GuardApprovalSchema,\n GuardSignerScopedInputSchema,\n GuardSignerStatusSchema,\n RotateGuardSignerWalletResultSchema,\n SignProtectedActionInputSchema,\n type BatchGuardApprovals,\n type BatchSignProtectedActionInput,\n type CreateGuardSignerWalletResult,\n type ExportGuardSignerWalletResult,\n type GuardApproval,\n type GuardSignerScopedInput,\n type GuardSignerStatus,\n type RotateGuardSignerWalletResult,\n type SignProtectedActionInput,\n} from \"./guard-signer.schemas.js\";\nimport { formatConnectError, isResourceNotFoundError } from \"../../utils/errors.js\";\nimport * as v from \"../../shared/validation.js\";\n\nconst GUARD_SIGNER_WALLET_NOT_FOUND_MESSAGE = \"guard signer wallet not found\";\n\nfunction isGuardSignerWalletNotFoundError(err: unknown): boolean {\n return formatConnectError(err, \"\")\n .toLowerCase()\n .includes(GUARD_SIGNER_WALLET_NOT_FOUND_MESSAGE);\n}\n\n/**\n * Manages backend guard signer wallets and approval signatures for protected Polyester account actions.\n */\nexport class GuardSignerService {\n #client: Client<typeof Proto.GuardSignerService>;\n #resolver?: SubaccountResolver;\n\n constructor(transport: Transport, resolver?: SubaccountResolver) {\n this.#client = createClient(Proto.GuardSignerService, transport);\n this.#resolver = resolver;\n }\n\n /**\n * Creates a guard signer wallet for the resolved account target and returns the generated signer EVM address.\n */\n async createWallet(\n input: GuardSignerScopedInput = {},\n options?: PolyesterMutationOptions,\n ): Promise<CreateGuardSignerWalletResult> {\n const request = v.parse(GuardSignerScopedInputSchema, this.resolveInput(input));\n const response = await this.#client.createGuardSignerWallet(\n removeUndefined(request),\n toConnectCallOptions(options),\n );\n return v.parse(CreateGuardSignerWalletResultSchema, response);\n }\n\n /**\n * Returns stored and live guard signer status for the resolved account target, including signer address, on-chain signer, initialization state, nonce, and nonce space. Returns null when the backend reports the wallet is not found.\n */\n async getStatus(\n input: GuardSignerScopedInput = {},\n options?: PolyesterRequestOptions,\n ): Promise<GuardSignerStatus | null> {\n const request = v.parse(GuardSignerScopedInputSchema, this.resolveInput(input));\n try {\n const response = await this.#client.getGuardSignerStatus(\n removeUndefined(request),\n toConnectCallOptions(options),\n );\n return response.status ? v.parse(GuardSignerStatusSchema, response.status) : null;\n } catch (err) {\n if (isResourceNotFoundError(err) || isGuardSignerWalletNotFoundError(err)) return null;\n throw err;\n }\n }\n\n /**\n * Creates one guard approval signature for a supported protected action, such as whitelist updates or whitelist requirement changes. Returns null if the backend response has no approval payload.\n */\n async signProtectedAction(\n input: SignProtectedActionInput,\n options?: PolyesterMutationOptions,\n ): Promise<GuardApproval | null> {\n const request = v.parse(SignProtectedActionInputSchema, this.resolveInput(input));\n const response = await this.#client.signProtectedAction(\n removeUndefined(request),\n toConnectCallOptions(options),\n );\n return response.approval ? v.parse(GuardApprovalSchema, response.approval) : null;\n }\n\n /**\n * Creates ordered guard approval signatures for a batch of protected actions and verifies the backend returned one approval per requested action.\n */\n async batchSignProtectedActions(\n input: BatchSignProtectedActionInput,\n options?: PolyesterMutationOptions,\n ): Promise<BatchGuardApprovals> {\n const request = v.parse(BatchSignProtectedActionInputSchema, this.resolveInput(input));\n const response = await this.#client.batchSignProtectedActions(\n removeUndefined(request),\n toConnectCallOptions(options),\n );\n\n if (response.approvals.length !== input.actions.length) {\n throw new Error(\"Backend returned a mismatched number of GuardSigner approvals.\");\n }\n\n return v.parse(BatchGuardApprovalsSchema, response);\n }\n\n /**\n * Generates a backend-managed replacement guard signer for the resolved account target and returns the new signer address plus the rotation approval payload.\n */\n async rotateWallet(\n input: GuardSignerScopedInput = {},\n options?: PolyesterMutationOptions,\n ): Promise<RotateGuardSignerWalletResult> {\n const request = v.parse(GuardSignerScopedInputSchema, this.resolveInput(input));\n const response = await this.#client.rotateGuardSignerWallet(\n removeUndefined(request),\n toConnectCallOptions(options),\n );\n return v.parse(RotateGuardSignerWalletResultSchema, response);\n }\n\n /**\n * Exports guard signer private key material for the resolved account target after owner authorization and fresh step-up, returning the backend export response.\n */\n async exportWallet(\n input: GuardSignerScopedInput = {},\n options?: PolyesterMutationOptions,\n ): Promise<ExportGuardSignerWalletResult> {\n const request = v.parse(GuardSignerScopedInputSchema, this.resolveInput(input));\n const response = await this.#client.exportGuardSignerWallet(\n removeUndefined(request),\n toConnectCallOptions(options),\n );\n return v.parse(ExportGuardSignerWalletResultSchema, response);\n }\n\n private resolveInput<TInput extends AccountScopedInput>(input: TInput): TInput {\n return resolveAccountScopedInput(input, this.#resolver);\n }\n}\n"],"mappings":";;;;;;;;;AAiCA,MAAM,wCAAwC;AAE9C,SAAS,iCAAiC,KAAuB;CAC7D,OAAO,mBAAmB,KAAK,EAAE,CAAC,CAC7B,YAAY,CAAC,CACb,SAAS,qCAAqC;AACvD;;;;AAKA,IAAa,qBAAb,MAAgC;CAC5B;CACA;CAEA,YAAY,WAAsB,UAA+B;EAC7D,KAAKA,UAAU,aAAaC,sBAA0B,SAAS;EAC/D,KAAKC,YAAY;CACrB;;;;CAKA,MAAM,aACF,QAAgC,CAAC,GACjC,SACsC;EACtC,MAAM,UAAUC,MAAQ,8BAA8B,KAAK,aAAa,KAAK,CAAC;EAC9E,MAAM,WAAW,MAAM,KAAKH,QAAQ,wBAChC,gBAAgB,OAAO,GACvB,qBAAqB,OAAO,CAChC;EACA,OAAOG,MAAQ,qCAAqC,QAAQ;CAChE;;;;CAKA,MAAM,UACF,QAAgC,CAAC,GACjC,SACiC;EACjC,MAAM,UAAUA,MAAQ,8BAA8B,KAAK,aAAa,KAAK,CAAC;EAC9E,IAAI;GACA,MAAM,WAAW,MAAM,KAAKH,QAAQ,qBAChC,gBAAgB,OAAO,GACvB,qBAAqB,OAAO,CAChC;GACA,OAAO,SAAS,SAASG,MAAQ,yBAAyB,SAAS,MAAM,IAAI;EACjF,SAAS,KAAK;GACV,IAAI,wBAAwB,GAAG,KAAK,iCAAiC,GAAG,GAAG,OAAO;GAClF,MAAM;EACV;CACJ;;;;CAKA,MAAM,oBACF,OACA,SAC6B;EAC7B,MAAM,UAAUA,MAAQ,gCAAgC,KAAK,aAAa,KAAK,CAAC;EAChF,MAAM,WAAW,MAAM,KAAKH,QAAQ,oBAChC,gBAAgB,OAAO,GACvB,qBAAqB,OAAO,CAChC;EACA,OAAO,SAAS,WAAWG,MAAQ,qBAAqB,SAAS,QAAQ,IAAI;CACjF;;;;CAKA,MAAM,0BACF,OACA,SAC4B;EAC5B,MAAM,UAAUA,MAAQ,qCAAqC,KAAK,aAAa,KAAK,CAAC;EACrF,MAAM,WAAW,MAAM,KAAKH,QAAQ,0BAChC,gBAAgB,OAAO,GACvB,qBAAqB,OAAO,CAChC;EAEA,IAAI,SAAS,UAAU,WAAW,MAAM,QAAQ,QAC5C,MAAM,IAAI,MAAM,gEAAgE;EAGpF,OAAOG,MAAQ,2BAA2B,QAAQ;CACtD;;;;CAKA,MAAM,aACF,QAAgC,CAAC,GACjC,SACsC;EACtC,MAAM,UAAUA,MAAQ,8BAA8B,KAAK,aAAa,KAAK,CAAC;EAC9E,MAAM,WAAW,MAAM,KAAKH,QAAQ,wBAChC,gBAAgB,OAAO,GACvB,qBAAqB,OAAO,CAChC;EACA,OAAOG,MAAQ,qCAAqC,QAAQ;CAChE;;;;CAKA,MAAM,aACF,QAAgC,CAAC,GACjC,SACsC;EACtC,MAAM,UAAUA,MAAQ,8BAA8B,KAAK,aAAa,KAAK,CAAC;EAC9E,MAAM,WAAW,MAAM,KAAKH,QAAQ,wBAChC,gBAAgB,OAAO,GACvB,qBAAqB,OAAO,CAChC;EACA,OAAOG,MAAQ,qCAAqC,QAAQ;CAChE;CAEA,aAAwD,OAAuB;EAC3E,OAAO,0BAA0B,OAAO,KAAKD,SAAS;CAC1D;AACJ"}
1
+ {"version":3,"file":"guard-signer.js","names":["#client","Proto.GuardSignerService","#resolver"],"sources":["../../../src/services/guard-signer/guard-signer.ts"],"sourcesContent":["import { createClient, type Client, type Transport } from \"@connectrpc/connect\";\nimport * as Proto from \"../../gen/chain/guard/v1/guard_signer_pb.js\";\nimport { removeUndefined } from \"../../utils/remove-undefined.js\";\nimport {\n toConnectCallOptions,\n type PolyesterMutationOptions,\n type PolyesterRequestOptions,\n} from \"../../shared/request-options.js\";\nimport { type SubaccountResolver, resolveAccountScopedInput } from \"../subaccount-resolver.js\";\nimport type { AccountScopedInput } from \"../../shared/account-scope.js\";\nimport {\n BatchGuardApprovalsSchema,\n BatchSignProtectedActionInputSchema,\n CreateGuardSignerWalletResultSchema,\n ExportGuardSignerWalletResultSchema,\n GuardApprovalSchema,\n GuardSignerScopedInputSchema,\n GuardSignerStatusSchema,\n RotateGuardSignerWalletResultSchema,\n SignProtectedActionInputSchema,\n type BatchGuardApprovals,\n type BatchSignProtectedActionInput,\n type CreateGuardSignerWalletResult,\n type ExportGuardSignerWalletResult,\n type GuardApproval,\n type GuardSignerScopedInput,\n type GuardSignerStatus,\n type RotateGuardSignerWalletResult,\n type SignProtectedActionInput,\n} from \"./guard-signer.schemas.js\";\nimport { formatConnectError, isResourceNotFoundError } from \"../../utils/errors.js\";\nimport { parse } from \"../../shared/validation.js\";\n\nconst GUARD_SIGNER_WALLET_NOT_FOUND_MESSAGE = \"guard signer wallet not found\";\n\nfunction isGuardSignerWalletNotFoundError(err: unknown): boolean {\n return formatConnectError(err, \"\")\n .toLowerCase()\n .includes(GUARD_SIGNER_WALLET_NOT_FOUND_MESSAGE);\n}\n\n/**\n * Manages backend guard signer wallets and approval signatures for protected Polyester account actions.\n */\nexport class GuardSignerService {\n #client: Client<typeof Proto.GuardSignerService>;\n #resolver?: SubaccountResolver;\n\n constructor(transport: Transport, resolver?: SubaccountResolver) {\n this.#client = createClient(Proto.GuardSignerService, transport);\n this.#resolver = resolver;\n }\n\n /**\n * Creates a guard signer wallet for the resolved account target and returns the generated signer EVM address.\n */\n async createWallet(\n input: GuardSignerScopedInput = {},\n options?: PolyesterMutationOptions,\n ): Promise<CreateGuardSignerWalletResult> {\n const request = parse(GuardSignerScopedInputSchema, this.resolveInput(input));\n const response = await this.#client.createGuardSignerWallet(\n removeUndefined(request),\n toConnectCallOptions(options),\n );\n return parse(CreateGuardSignerWalletResultSchema, response);\n }\n\n /**\n * Returns stored and live guard signer status for the resolved account target, including signer address, on-chain signer, initialization state, nonce, and nonce space. Returns null when the backend reports the wallet is not found.\n */\n async getStatus(\n input: GuardSignerScopedInput = {},\n options?: PolyesterRequestOptions,\n ): Promise<GuardSignerStatus | null> {\n const request = parse(GuardSignerScopedInputSchema, this.resolveInput(input));\n try {\n const response = await this.#client.getGuardSignerStatus(\n removeUndefined(request),\n toConnectCallOptions(options),\n );\n return response.status ? parse(GuardSignerStatusSchema, response.status) : null;\n } catch (err) {\n if (isResourceNotFoundError(err) || isGuardSignerWalletNotFoundError(err)) return null;\n throw err;\n }\n }\n\n /**\n * Creates one guard approval signature for a supported protected action, such as whitelist updates or whitelist requirement changes. Returns null if the backend response has no approval payload.\n */\n async signProtectedAction(\n input: SignProtectedActionInput,\n options?: PolyesterMutationOptions,\n ): Promise<GuardApproval | null> {\n const request = parse(SignProtectedActionInputSchema, this.resolveInput(input));\n const response = await this.#client.signProtectedAction(\n removeUndefined(request),\n toConnectCallOptions(options),\n );\n return response.approval ? parse(GuardApprovalSchema, response.approval) : null;\n }\n\n /**\n * Creates ordered guard approval signatures for a batch of protected actions and verifies the backend returned one approval per requested action.\n */\n async batchSignProtectedActions(\n input: BatchSignProtectedActionInput,\n options?: PolyesterMutationOptions,\n ): Promise<BatchGuardApprovals> {\n const request = parse(BatchSignProtectedActionInputSchema, this.resolveInput(input));\n const response = await this.#client.batchSignProtectedActions(\n removeUndefined(request),\n toConnectCallOptions(options),\n );\n\n if (response.approvals.length !== input.actions.length) {\n throw new Error(\"Backend returned a mismatched number of GuardSigner approvals.\");\n }\n\n return parse(BatchGuardApprovalsSchema, response);\n }\n\n /**\n * Generates a backend-managed replacement guard signer for the resolved account target and returns the new signer address plus the rotation approval payload.\n */\n async rotateWallet(\n input: GuardSignerScopedInput = {},\n options?: PolyesterMutationOptions,\n ): Promise<RotateGuardSignerWalletResult> {\n const request = parse(GuardSignerScopedInputSchema, this.resolveInput(input));\n const response = await this.#client.rotateGuardSignerWallet(\n removeUndefined(request),\n toConnectCallOptions(options),\n );\n return parse(RotateGuardSignerWalletResultSchema, response);\n }\n\n /**\n * Exports guard signer private key material for the resolved account target after owner authorization and fresh step-up, returning the backend export response.\n */\n async exportWallet(\n input: GuardSignerScopedInput = {},\n options?: PolyesterMutationOptions,\n ): Promise<ExportGuardSignerWalletResult> {\n const request = parse(GuardSignerScopedInputSchema, this.resolveInput(input));\n const response = await this.#client.exportGuardSignerWallet(\n removeUndefined(request),\n toConnectCallOptions(options),\n );\n return parse(ExportGuardSignerWalletResultSchema, response);\n }\n\n private resolveInput<TInput extends AccountScopedInput>(input: TInput): TInput {\n return resolveAccountScopedInput(input, this.#resolver);\n }\n}\n"],"mappings":";;;;;;;;;AAiCA,MAAM,wCAAwC;AAE9C,SAAS,iCAAiC,KAAuB;CAC7D,OAAO,mBAAmB,KAAK,EAAE,CAAC,CAC7B,YAAY,CAAC,CACb,SAAS,qCAAqC;AACvD;;;;AAKA,IAAa,qBAAb,MAAgC;CAC5B;CACA;CAEA,YAAY,WAAsB,UAA+B;EAC7D,KAAKA,UAAU,aAAaC,sBAA0B,SAAS;EAC/D,KAAKC,YAAY;CACrB;;;;CAKA,MAAM,aACF,QAAgC,CAAC,GACjC,SACsC;EACtC,MAAM,UAAU,MAAM,8BAA8B,KAAK,aAAa,KAAK,CAAC;EAC5E,MAAM,WAAW,MAAM,KAAKF,QAAQ,wBAChC,gBAAgB,OAAO,GACvB,qBAAqB,OAAO,CAChC;EACA,OAAO,MAAM,qCAAqC,QAAQ;CAC9D;;;;CAKA,MAAM,UACF,QAAgC,CAAC,GACjC,SACiC;EACjC,MAAM,UAAU,MAAM,8BAA8B,KAAK,aAAa,KAAK,CAAC;EAC5E,IAAI;GACA,MAAM,WAAW,MAAM,KAAKA,QAAQ,qBAChC,gBAAgB,OAAO,GACvB,qBAAqB,OAAO,CAChC;GACA,OAAO,SAAS,SAAS,MAAM,yBAAyB,SAAS,MAAM,IAAI;EAC/E,SAAS,KAAK;GACV,IAAI,wBAAwB,GAAG,KAAK,iCAAiC,GAAG,GAAG,OAAO;GAClF,MAAM;EACV;CACJ;;;;CAKA,MAAM,oBACF,OACA,SAC6B;EAC7B,MAAM,UAAU,MAAM,gCAAgC,KAAK,aAAa,KAAK,CAAC;EAC9E,MAAM,WAAW,MAAM,KAAKA,QAAQ,oBAChC,gBAAgB,OAAO,GACvB,qBAAqB,OAAO,CAChC;EACA,OAAO,SAAS,WAAW,MAAM,qBAAqB,SAAS,QAAQ,IAAI;CAC/E;;;;CAKA,MAAM,0BACF,OACA,SAC4B;EAC5B,MAAM,UAAU,MAAM,qCAAqC,KAAK,aAAa,KAAK,CAAC;EACnF,MAAM,WAAW,MAAM,KAAKA,QAAQ,0BAChC,gBAAgB,OAAO,GACvB,qBAAqB,OAAO,CAChC;EAEA,IAAI,SAAS,UAAU,WAAW,MAAM,QAAQ,QAC5C,MAAM,IAAI,MAAM,gEAAgE;EAGpF,OAAO,MAAM,2BAA2B,QAAQ;CACpD;;;;CAKA,MAAM,aACF,QAAgC,CAAC,GACjC,SACsC;EACtC,MAAM,UAAU,MAAM,8BAA8B,KAAK,aAAa,KAAK,CAAC;EAC5E,MAAM,WAAW,MAAM,KAAKA,QAAQ,wBAChC,gBAAgB,OAAO,GACvB,qBAAqB,OAAO,CAChC;EACA,OAAO,MAAM,qCAAqC,QAAQ;CAC9D;;;;CAKA,MAAM,aACF,QAAgC,CAAC,GACjC,SACsC;EACtC,MAAM,UAAU,MAAM,8BAA8B,KAAK,aAAa,KAAK,CAAC;EAC5E,MAAM,WAAW,MAAM,KAAKA,QAAQ,wBAChC,gBAAgB,OAAO,GACvB,qBAAqB,OAAO,CAChC;EACA,OAAO,MAAM,qCAAqC,QAAQ;CAC9D;CAEA,aAAwD,OAAuB;EAC3E,OAAO,0BAA0B,OAAO,KAAKE,SAAS;CAC1D;AACJ"}
@@ -1,35 +1,35 @@
1
- import { validation_d_exports } from "../../shared/validation.js";
2
1
  import { ProtectedAction } from "../../gen/chain/guard/v1/guard_signer_pb.js";
2
+ import * as v from "valibot";
3
3
  //#region src/services/guard-signer/guard-signer.schemas.d.ts
4
- declare const GuardSignerScopedInputSchema: validation_d_exports.SchemaWithPipe<readonly [validation_d_exports.StrictObjectSchema<{
5
- readonly account: validation_d_exports.OptionalSchema<validation_d_exports.UnionSchema<[validation_d_exports.PicklistSchema<["active", "main"], undefined>, validation_d_exports.StrictObjectSchema<{
6
- readonly subaccountId: validation_d_exports.SchemaWithPipe<readonly [validation_d_exports.StringSchema<undefined>, validation_d_exports.TrimAction, validation_d_exports.MinLengthAction<string, 1, undefined>]>;
4
+ declare const GuardSignerScopedInputSchema: v.SchemaWithPipe<readonly [v.StrictObjectSchema<{
5
+ readonly account: v.OptionalSchema<v.UnionSchema<[v.PicklistSchema<["active", "main"], undefined>, v.StrictObjectSchema<{
6
+ readonly subaccountId: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>]>;
7
7
  }, undefined>], undefined>, undefined>;
8
- }, undefined>, validation_d_exports.TransformAction<{
8
+ }, undefined>, v.TransformAction<{
9
9
  account?: "active" | "main" | {
10
10
  subaccountId: string;
11
11
  } | undefined;
12
12
  }, {
13
13
  subaccountId: bigint | undefined;
14
14
  }>]>;
15
- type GuardSignerScopedInput = validation_d_exports.InferInput<typeof GuardSignerScopedInputSchema>;
16
- declare const SignProtectedActionInputSchema: validation_d_exports.SchemaWithPipe<readonly [validation_d_exports.StrictObjectSchema<{
17
- readonly action: validation_d_exports.PicklistSchema<readonly ["fundingSetExternalWhitelistRequired", "fundingAddExternalWhitelist", "fundingRemoveExternalWhitelist", "fundingAddInternalWhitelist", "fundingRemoveInternalWhitelist", "fundingSetInternalWhitelistRequired"], undefined>;
18
- readonly args: validation_d_exports.OptionalSchema<validation_d_exports.VariantSchema<"case", [validation_d_exports.StrictObjectSchema<{
19
- readonly case: validation_d_exports.LiteralSchema<"externalWhitelist", undefined>;
20
- readonly polychainChainId: validation_d_exports.SchemaWithPipe<readonly [validation_d_exports.NumberSchema<undefined>, validation_d_exports.IntegerAction<number, undefined>, validation_d_exports.GtValueAction<number, 0, undefined>]>;
21
- readonly addresses: validation_d_exports.SchemaWithPipe<readonly [validation_d_exports.ArraySchema<validation_d_exports.SchemaWithPipe<readonly [validation_d_exports.StringSchema<undefined>, validation_d_exports.TrimAction, validation_d_exports.MinLengthAction<string, 1, undefined>]>, undefined>, validation_d_exports.MinLengthAction<string[], 1, undefined>]>;
22
- }, undefined>, validation_d_exports.StrictObjectSchema<{
23
- readonly case: validation_d_exports.LiteralSchema<"internalWhitelist", undefined>;
24
- readonly addresses: validation_d_exports.SchemaWithPipe<readonly [validation_d_exports.ArraySchema<validation_d_exports.SchemaWithPipe<readonly [validation_d_exports.StringSchema<undefined>, validation_d_exports.TrimAction, validation_d_exports.MinLengthAction<string, 1, undefined>]>, undefined>, validation_d_exports.MinLengthAction<string[], 1, undefined>]>;
25
- }, undefined>, validation_d_exports.StrictObjectSchema<{
26
- readonly case: validation_d_exports.LiteralSchema<"whitelistRequirement", undefined>;
27
- readonly required: validation_d_exports.BooleanSchema<undefined>;
15
+ type GuardSignerScopedInput = v.InferInput<typeof GuardSignerScopedInputSchema>;
16
+ declare const SignProtectedActionInputSchema: v.SchemaWithPipe<readonly [v.StrictObjectSchema<{
17
+ readonly action: v.PicklistSchema<readonly ["fundingSetExternalWhitelistRequired", "fundingAddExternalWhitelist", "fundingRemoveExternalWhitelist", "fundingAddInternalWhitelist", "fundingRemoveInternalWhitelist", "fundingSetInternalWhitelistRequired"], undefined>;
18
+ readonly args: v.OptionalSchema<v.VariantSchema<"case", [v.StrictObjectSchema<{
19
+ readonly case: v.LiteralSchema<"externalWhitelist", undefined>;
20
+ readonly polychainChainId: v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.IntegerAction<number, undefined>, v.GtValueAction<number, 0, undefined>]>;
21
+ readonly addresses: v.SchemaWithPipe<readonly [v.ArraySchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>]>, undefined>, v.MinLengthAction<string[], 1, undefined>]>;
22
+ }, undefined>, v.StrictObjectSchema<{
23
+ readonly case: v.LiteralSchema<"internalWhitelist", undefined>;
24
+ readonly addresses: v.SchemaWithPipe<readonly [v.ArraySchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>]>, undefined>, v.MinLengthAction<string[], 1, undefined>]>;
25
+ }, undefined>, v.StrictObjectSchema<{
26
+ readonly case: v.LiteralSchema<"whitelistRequirement", undefined>;
27
+ readonly required: v.BooleanSchema<undefined>;
28
28
  }, undefined>], undefined>, undefined>;
29
- readonly account: validation_d_exports.OptionalSchema<validation_d_exports.UnionSchema<[validation_d_exports.PicklistSchema<["active", "main"], undefined>, validation_d_exports.StrictObjectSchema<{
30
- readonly subaccountId: validation_d_exports.SchemaWithPipe<readonly [validation_d_exports.StringSchema<undefined>, validation_d_exports.TrimAction, validation_d_exports.MinLengthAction<string, 1, undefined>]>;
29
+ readonly account: v.OptionalSchema<v.UnionSchema<[v.PicklistSchema<["active", "main"], undefined>, v.StrictObjectSchema<{
30
+ readonly subaccountId: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>]>;
31
31
  }, undefined>], undefined>, undefined>;
32
- }, undefined>, validation_d_exports.TransformAction<{
32
+ }, undefined>, v.TransformAction<{
33
33
  action: "fundingSetExternalWhitelistRequired" | "fundingAddExternalWhitelist" | "fundingRemoveExternalWhitelist" | "fundingAddInternalWhitelist" | "fundingRemoveInternalWhitelist" | "fundingSetInternalWhitelistRequired";
34
34
  args?: {
35
35
  case: "externalWhitelist";
@@ -77,22 +77,22 @@ declare const SignProtectedActionInputSchema: validation_d_exports.SchemaWithPip
77
77
  };
78
78
  } | undefined;
79
79
  }>]>;
80
- type SignProtectedActionInput = validation_d_exports.InferInput<typeof SignProtectedActionInputSchema>;
81
- declare const BatchSignProtectedActionInputSchema: validation_d_exports.SchemaWithPipe<readonly [validation_d_exports.StrictObjectSchema<{
82
- readonly actions: validation_d_exports.SchemaWithPipe<readonly [validation_d_exports.ArraySchema<validation_d_exports.StrictObjectSchema<{
83
- readonly action: validation_d_exports.PicklistSchema<readonly ["fundingSetExternalWhitelistRequired", "fundingAddExternalWhitelist", "fundingRemoveExternalWhitelist", "fundingAddInternalWhitelist", "fundingRemoveInternalWhitelist", "fundingSetInternalWhitelistRequired"], undefined>;
84
- readonly args: validation_d_exports.OptionalSchema<validation_d_exports.VariantSchema<"case", [validation_d_exports.StrictObjectSchema<{
85
- readonly case: validation_d_exports.LiteralSchema<"externalWhitelist", undefined>;
86
- readonly polychainChainId: validation_d_exports.SchemaWithPipe<readonly [validation_d_exports.NumberSchema<undefined>, validation_d_exports.IntegerAction<number, undefined>, validation_d_exports.GtValueAction<number, 0, undefined>]>;
87
- readonly addresses: validation_d_exports.SchemaWithPipe<readonly [validation_d_exports.ArraySchema<validation_d_exports.SchemaWithPipe<readonly [validation_d_exports.StringSchema<undefined>, validation_d_exports.TrimAction, validation_d_exports.MinLengthAction<string, 1, undefined>]>, undefined>, validation_d_exports.MinLengthAction<string[], 1, undefined>]>;
88
- }, undefined>, validation_d_exports.StrictObjectSchema<{
89
- readonly case: validation_d_exports.LiteralSchema<"internalWhitelist", undefined>;
90
- readonly addresses: validation_d_exports.SchemaWithPipe<readonly [validation_d_exports.ArraySchema<validation_d_exports.SchemaWithPipe<readonly [validation_d_exports.StringSchema<undefined>, validation_d_exports.TrimAction, validation_d_exports.MinLengthAction<string, 1, undefined>]>, undefined>, validation_d_exports.MinLengthAction<string[], 1, undefined>]>;
91
- }, undefined>, validation_d_exports.StrictObjectSchema<{
92
- readonly case: validation_d_exports.LiteralSchema<"whitelistRequirement", undefined>;
93
- readonly required: validation_d_exports.BooleanSchema<undefined>;
80
+ type SignProtectedActionInput = v.InferInput<typeof SignProtectedActionInputSchema>;
81
+ declare const BatchSignProtectedActionInputSchema: v.SchemaWithPipe<readonly [v.StrictObjectSchema<{
82
+ readonly actions: v.SchemaWithPipe<readonly [v.ArraySchema<v.StrictObjectSchema<{
83
+ readonly action: v.PicklistSchema<readonly ["fundingSetExternalWhitelistRequired", "fundingAddExternalWhitelist", "fundingRemoveExternalWhitelist", "fundingAddInternalWhitelist", "fundingRemoveInternalWhitelist", "fundingSetInternalWhitelistRequired"], undefined>;
84
+ readonly args: v.OptionalSchema<v.VariantSchema<"case", [v.StrictObjectSchema<{
85
+ readonly case: v.LiteralSchema<"externalWhitelist", undefined>;
86
+ readonly polychainChainId: v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.IntegerAction<number, undefined>, v.GtValueAction<number, 0, undefined>]>;
87
+ readonly addresses: v.SchemaWithPipe<readonly [v.ArraySchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>]>, undefined>, v.MinLengthAction<string[], 1, undefined>]>;
88
+ }, undefined>, v.StrictObjectSchema<{
89
+ readonly case: v.LiteralSchema<"internalWhitelist", undefined>;
90
+ readonly addresses: v.SchemaWithPipe<readonly [v.ArraySchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>]>, undefined>, v.MinLengthAction<string[], 1, undefined>]>;
91
+ }, undefined>, v.StrictObjectSchema<{
92
+ readonly case: v.LiteralSchema<"whitelistRequirement", undefined>;
93
+ readonly required: v.BooleanSchema<undefined>;
94
94
  }, undefined>], undefined>, undefined>;
95
- }, undefined>, undefined>, validation_d_exports.MinLengthAction<{
95
+ }, undefined>, undefined>, v.MinLengthAction<{
96
96
  action: "fundingSetExternalWhitelistRequired" | "fundingAddExternalWhitelist" | "fundingRemoveExternalWhitelist" | "fundingAddInternalWhitelist" | "fundingRemoveInternalWhitelist" | "fundingSetInternalWhitelistRequired";
97
97
  args?: {
98
98
  case: "externalWhitelist";
@@ -106,10 +106,10 @@ declare const BatchSignProtectedActionInputSchema: validation_d_exports.SchemaWi
106
106
  required: boolean;
107
107
  } | undefined;
108
108
  }[], 1, "At least one protected action is required.">]>;
109
- readonly account: validation_d_exports.OptionalSchema<validation_d_exports.UnionSchema<[validation_d_exports.PicklistSchema<["active", "main"], undefined>, validation_d_exports.StrictObjectSchema<{
110
- readonly subaccountId: validation_d_exports.SchemaWithPipe<readonly [validation_d_exports.StringSchema<undefined>, validation_d_exports.TrimAction, validation_d_exports.MinLengthAction<string, 1, undefined>]>;
109
+ readonly account: v.OptionalSchema<v.UnionSchema<[v.PicklistSchema<["active", "main"], undefined>, v.StrictObjectSchema<{
110
+ readonly subaccountId: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>]>;
111
111
  }, undefined>], undefined>, undefined>;
112
- }, undefined>, validation_d_exports.TransformAction<{
112
+ }, undefined>, v.TransformAction<{
113
113
  actions: {
114
114
  action: "fundingSetExternalWhitelistRequired" | "fundingAddExternalWhitelist" | "fundingRemoveExternalWhitelist" | "fundingAddInternalWhitelist" | "fundingRemoveInternalWhitelist" | "fundingSetInternalWhitelistRequired";
115
115
  args?: {
@@ -161,20 +161,20 @@ declare const BatchSignProtectedActionInputSchema: validation_d_exports.SchemaWi
161
161
  } | undefined;
162
162
  }[];
163
163
  }>]>;
164
- type BatchSignProtectedActionInput = validation_d_exports.InferInput<typeof BatchSignProtectedActionInputSchema>;
165
- declare const GuardSignerStatusSchema: validation_d_exports.ObjectSchema<{
166
- readonly signerAddress: validation_d_exports.StringSchema<undefined>;
167
- readonly onchainSignerAddress: validation_d_exports.StringSchema<undefined>;
168
- readonly initialized: validation_d_exports.BooleanSchema<undefined>;
169
- readonly nonce: validation_d_exports.StringSchema<undefined>;
170
- readonly nonceSpace: validation_d_exports.BigintSchema<undefined>;
164
+ type BatchSignProtectedActionInput = v.InferInput<typeof BatchSignProtectedActionInputSchema>;
165
+ declare const GuardSignerStatusSchema: v.ObjectSchema<{
166
+ readonly signerAddress: v.StringSchema<undefined>;
167
+ readonly onchainSignerAddress: v.StringSchema<undefined>;
168
+ readonly initialized: v.BooleanSchema<undefined>;
169
+ readonly nonce: v.StringSchema<undefined>;
170
+ readonly nonceSpace: v.BigintSchema<undefined>;
171
171
  }, undefined>;
172
- type GuardSignerStatus = validation_d_exports.InferOutput<typeof GuardSignerStatusSchema>;
173
- declare const GuardApprovalSchema: validation_d_exports.SchemaWithPipe<readonly [validation_d_exports.ObjectSchema<{
174
- readonly nonceSpace: validation_d_exports.BigintSchema<undefined>;
175
- readonly deadlineUnix: validation_d_exports.BigintSchema<undefined>;
176
- readonly signature: validation_d_exports.InstanceSchema<Uint8ArrayConstructor, undefined>;
177
- }, undefined>, validation_d_exports.TransformAction<{
172
+ type GuardSignerStatus = v.InferOutput<typeof GuardSignerStatusSchema>;
173
+ declare const GuardApprovalSchema: v.SchemaWithPipe<readonly [v.ObjectSchema<{
174
+ readonly nonceSpace: v.BigintSchema<undefined>;
175
+ readonly deadlineUnix: v.BigintSchema<undefined>;
176
+ readonly signature: v.InstanceSchema<Uint8ArrayConstructor, undefined>;
177
+ }, undefined>, v.TransformAction<{
178
178
  nonceSpace: bigint;
179
179
  deadlineUnix: bigint;
180
180
  signature: Uint8Array<ArrayBuffer>;
@@ -188,13 +188,13 @@ declare const GuardApprovalSchema: validation_d_exports.SchemaWithPipe<readonly
188
188
  signature: Uint8Array<ArrayBuffer>;
189
189
  };
190
190
  }>]>;
191
- type GuardApproval = validation_d_exports.InferOutput<typeof GuardApprovalSchema>;
192
- declare const BatchGuardApprovalsSchema: validation_d_exports.ObjectSchema<{
193
- readonly approvals: validation_d_exports.ArraySchema<validation_d_exports.SchemaWithPipe<readonly [validation_d_exports.ObjectSchema<{
194
- readonly nonceSpace: validation_d_exports.BigintSchema<undefined>;
195
- readonly deadlineUnix: validation_d_exports.BigintSchema<undefined>;
196
- readonly signature: validation_d_exports.InstanceSchema<Uint8ArrayConstructor, undefined>;
197
- }, undefined>, validation_d_exports.TransformAction<{
191
+ type GuardApproval = v.InferOutput<typeof GuardApprovalSchema>;
192
+ declare const BatchGuardApprovalsSchema: v.ObjectSchema<{
193
+ readonly approvals: v.ArraySchema<v.SchemaWithPipe<readonly [v.ObjectSchema<{
194
+ readonly nonceSpace: v.BigintSchema<undefined>;
195
+ readonly deadlineUnix: v.BigintSchema<undefined>;
196
+ readonly signature: v.InstanceSchema<Uint8ArrayConstructor, undefined>;
197
+ }, undefined>, v.TransformAction<{
198
198
  nonceSpace: bigint;
199
199
  deadlineUnix: bigint;
200
200
  signature: Uint8Array<ArrayBuffer>;
@@ -209,18 +209,18 @@ declare const BatchGuardApprovalsSchema: validation_d_exports.ObjectSchema<{
209
209
  };
210
210
  }>]>, undefined>;
211
211
  }, undefined>;
212
- type BatchGuardApprovals = validation_d_exports.InferOutput<typeof BatchGuardApprovalsSchema>;
213
- declare const CreateGuardSignerWalletResultSchema: validation_d_exports.ObjectSchema<{
214
- readonly signerAddress: validation_d_exports.SchemaWithPipe<readonly [validation_d_exports.StringSchema<undefined>, validation_d_exports.TrimAction, validation_d_exports.RegexAction<string, undefined>]>;
212
+ type BatchGuardApprovals = v.InferOutput<typeof BatchGuardApprovalsSchema>;
213
+ declare const CreateGuardSignerWalletResultSchema: v.ObjectSchema<{
214
+ readonly signerAddress: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.RegexAction<string, undefined>]>;
215
215
  }, undefined>;
216
- type CreateGuardSignerWalletResult = validation_d_exports.InferOutput<typeof CreateGuardSignerWalletResultSchema>;
217
- declare const RotateGuardSignerWalletResultSchema: validation_d_exports.SchemaWithPipe<readonly [validation_d_exports.ObjectSchema<{
218
- readonly newSignerAddress: validation_d_exports.SchemaWithPipe<readonly [validation_d_exports.StringSchema<undefined>, validation_d_exports.TrimAction, validation_d_exports.RegexAction<string, undefined>]>;
219
- readonly approval: validation_d_exports.OptionalSchema<validation_d_exports.SchemaWithPipe<readonly [validation_d_exports.ObjectSchema<{
220
- readonly nonceSpace: validation_d_exports.BigintSchema<undefined>;
221
- readonly deadlineUnix: validation_d_exports.BigintSchema<undefined>;
222
- readonly signature: validation_d_exports.InstanceSchema<Uint8ArrayConstructor, undefined>;
223
- }, undefined>, validation_d_exports.TransformAction<{
216
+ type CreateGuardSignerWalletResult = v.InferOutput<typeof CreateGuardSignerWalletResultSchema>;
217
+ declare const RotateGuardSignerWalletResultSchema: v.SchemaWithPipe<readonly [v.ObjectSchema<{
218
+ readonly newSignerAddress: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.RegexAction<string, undefined>]>;
219
+ readonly approval: v.OptionalSchema<v.SchemaWithPipe<readonly [v.ObjectSchema<{
220
+ readonly nonceSpace: v.BigintSchema<undefined>;
221
+ readonly deadlineUnix: v.BigintSchema<undefined>;
222
+ readonly signature: v.InstanceSchema<Uint8ArrayConstructor, undefined>;
223
+ }, undefined>, v.TransformAction<{
224
224
  nonceSpace: bigint;
225
225
  deadlineUnix: bigint;
226
226
  signature: Uint8Array<ArrayBuffer>;
@@ -234,7 +234,7 @@ declare const RotateGuardSignerWalletResultSchema: validation_d_exports.SchemaWi
234
234
  signature: Uint8Array<ArrayBuffer>;
235
235
  };
236
236
  }>]>, undefined>;
237
- }, undefined>, validation_d_exports.TransformAction<{
237
+ }, undefined>, v.TransformAction<{
238
238
  newSignerAddress: string;
239
239
  approval?: {
240
240
  nonceSpace: string;
@@ -259,11 +259,11 @@ declare const RotateGuardSignerWalletResultSchema: validation_d_exports.SchemaWi
259
259
  };
260
260
  } | null;
261
261
  }>]>;
262
- type RotateGuardSignerWalletResult = validation_d_exports.InferOutput<typeof RotateGuardSignerWalletResultSchema>;
263
- declare const ExportGuardSignerWalletResultSchema: validation_d_exports.ObjectSchema<{
264
- readonly privateKey: validation_d_exports.SchemaWithPipe<readonly [validation_d_exports.StringSchema<undefined>, validation_d_exports.TrimAction, validation_d_exports.RegexAction<string, undefined>]>;
262
+ type RotateGuardSignerWalletResult = v.InferOutput<typeof RotateGuardSignerWalletResultSchema>;
263
+ declare const ExportGuardSignerWalletResultSchema: v.ObjectSchema<{
264
+ readonly privateKey: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.RegexAction<string, undefined>]>;
265
265
  }, undefined>;
266
- type ExportGuardSignerWalletResult = validation_d_exports.InferOutput<typeof ExportGuardSignerWalletResultSchema>;
266
+ type ExportGuardSignerWalletResult = v.InferOutput<typeof ExportGuardSignerWalletResultSchema>;
267
267
  //#endregion
268
268
  export { BatchGuardApprovals, BatchGuardApprovalsSchema, BatchSignProtectedActionInput, BatchSignProtectedActionInputSchema, CreateGuardSignerWalletResult, CreateGuardSignerWalletResultSchema, ExportGuardSignerWalletResult, ExportGuardSignerWalletResultSchema, GuardApproval, GuardApprovalSchema, GuardSignerScopedInput, GuardSignerScopedInputSchema, GuardSignerStatus, GuardSignerStatusSchema, RotateGuardSignerWalletResult, RotateGuardSignerWalletResultSchema, SignProtectedActionInput, SignProtectedActionInputSchema };
269
269
  //# sourceMappingURL=guard-signer.schemas.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"guard-signer.schemas.d.ts","names":[],"sources":["../../../src/services/guard-signer/guard-signer.schemas.ts"],"mappings":";;;cAYa,8BAA4B,qBAAA,yBAAA,qBAAA;;;;;;;;;;;KAS7B,yBAAyB,qBAAE,kBAAkB;cAoD5C,gCAA8B,qBAAA,yBAAA,qBAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAa/B,2BAA2B,qBAAE,kBAAkB;cAE9C,qCAAmC,qBAAA,yBAAA,qBAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAsBpC,gCAAgC,qBAAE,kBACnC;cAGE,yBAAuB,qBAAA;;;;;;;KAQxB,oBAAoB,qBAAE,mBAAmB;cAExC,qBAAmB,qBAAA,yBAAA,qBAAA;;;;;;;;;;;EAS4B;;;;;;;KAKhD,gBAAgB,qBAAE,mBAAmB;cAEpC,2BAAyB,qBAAA;;;;;;;;;;;;IAPsB;;;;;;;;KAWhD,sBAAsB,qBAAE,mBAAmB;cAE1C,qCAAmC,qBAAA;;;KAIpC,gCAAgC,qBAAE,mBACnC;cAGE,qCAAmC,qBAAA,yBAAA,qBAAA;;;;;;;;;;;;;IArBY;;;;;;;;;;;;IAAA;;;;;;;;;;;;IAAA;;;;;;;;KAgChD,gCAAgC,qBAAE,mBACnC;cAGE,qCAAmC,qBAAA;;;KAIpC,gCAAgC,qBAAE,mBACnC"}
1
+ {"version":3,"file":"guard-signer.schemas.d.ts","names":[],"sources":["../../../src/services/guard-signer/guard-signer.schemas.ts"],"mappings":";;;cAYa,8BAA4B,EAAA,yBAAA,EAAA;;;;;;;;;;;KAS7B,yBAAyB,EAAE,kBAAkB;cAoD5C,gCAA8B,EAAA,yBAAA,EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAa/B,2BAA2B,EAAE,kBAAkB;cAE9C,qCAAmC,EAAA,yBAAA,EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAsBpC,gCAAgC,EAAE,kBACnC;cAGE,yBAAuB,EAAA;;;;;;;KAQxB,oBAAoB,EAAE,mBAAmB;cAExC,qBAAmB,EAAA,yBAAA,EAAA;;;;;;;;;;;EAS4B;;;;;;;KAKhD,gBAAgB,EAAE,mBAAmB;cAEpC,2BAAyB,EAAA;;;;;;;;;;;;IAPsB;;;;;;;;KAWhD,sBAAsB,EAAE,mBAAmB;cAE1C,qCAAmC,EAAA;;;KAIpC,gCAAgC,EAAE,mBACnC;cAGE,qCAAmC,EAAA,yBAAA,EAAA;;;;;;;;;;;;;IArBY;;;;;;;;;;;;IAAA;;;;;;;;;;;;IAAA;;;;;;;;KAgChD,gCAAgC,EAAE,mBACnC;cAGE,qCAAmC,EAAA;;;KAIpC,gCAAgC,EAAE,mBACnC"}
@@ -1,24 +1,24 @@
1
- import { validation_exports } from "../../shared/validation.js";
2
1
  import { AccountScopeInputEntries, accountScopeToSubaccountId } from "../../shared/account-scope.js";
3
2
  import { PROTECTED_ACTION_VALUES, ProtectedActionCodec } from "./guard-signer.codecs.js";
3
+ import * as v from "valibot";
4
4
  import { bytesToHex } from "@noble/hashes/utils.js";
5
5
  //#region src/services/guard-signer/guard-signer.schemas.ts
6
- const HexAddressSchema = validation_exports.pipe(validation_exports.string(), validation_exports.trim(), validation_exports.regex(/^0x[0-9a-fA-F]{40}$/));
7
- const WhitelistAddressSchema = validation_exports.pipe(validation_exports.string(), validation_exports.trim(), validation_exports.minLength(1));
8
- const GuardSignerScopedInputSchema = validation_exports.pipe(validation_exports.strictObject({ ...AccountScopeInputEntries }), validation_exports.transform(({ account }) => ({ subaccountId: accountScopeToSubaccountId(account) })));
9
- const ProtectedActionArgsInputSchema = validation_exports.variant("case", [
10
- validation_exports.strictObject({
11
- case: validation_exports.literal("externalWhitelist"),
12
- polychainChainId: validation_exports.pipe(validation_exports.number(), validation_exports.integer(), validation_exports.gtValue(0)),
13
- addresses: validation_exports.pipe(validation_exports.array(WhitelistAddressSchema), validation_exports.minLength(1))
6
+ const HexAddressSchema = v.pipe(v.string(), v.trim(), v.regex(/^0x[0-9a-fA-F]{40}$/));
7
+ const WhitelistAddressSchema = v.pipe(v.string(), v.trim(), v.minLength(1));
8
+ const GuardSignerScopedInputSchema = v.pipe(v.strictObject({ ...AccountScopeInputEntries }), v.transform(({ account }) => ({ subaccountId: accountScopeToSubaccountId(account) })));
9
+ const ProtectedActionArgsInputSchema = v.variant("case", [
10
+ v.strictObject({
11
+ case: v.literal("externalWhitelist"),
12
+ polychainChainId: v.pipe(v.number(), v.integer(), v.gtValue(0)),
13
+ addresses: v.pipe(v.array(WhitelistAddressSchema), v.minLength(1))
14
14
  }),
15
- validation_exports.strictObject({
16
- case: validation_exports.literal("internalWhitelist"),
17
- addresses: validation_exports.pipe(validation_exports.array(WhitelistAddressSchema), validation_exports.minLength(1))
15
+ v.strictObject({
16
+ case: v.literal("internalWhitelist"),
17
+ addresses: v.pipe(v.array(WhitelistAddressSchema), v.minLength(1))
18
18
  }),
19
- validation_exports.strictObject({
20
- case: validation_exports.literal("whitelistRequirement"),
21
- required: validation_exports.boolean()
19
+ v.strictObject({
20
+ case: v.literal("whitelistRequirement"),
21
+ required: v.boolean()
22
22
  })
23
23
  ]);
24
24
  function toProtectedActionArgs(args) {
@@ -38,55 +38,55 @@ function toProtectedActionArgs(args) {
38
38
  value: { required: args.required }
39
39
  } };
40
40
  }
41
- const SignProtectedActionInputSchema = validation_exports.pipe(validation_exports.strictObject({
41
+ const SignProtectedActionInputSchema = v.pipe(v.strictObject({
42
42
  ...AccountScopeInputEntries,
43
- action: validation_exports.picklist(PROTECTED_ACTION_VALUES),
44
- args: validation_exports.optional(ProtectedActionArgsInputSchema)
45
- }), validation_exports.transform(({ account, action, args }) => ({
43
+ action: v.picklist(PROTECTED_ACTION_VALUES),
44
+ args: v.optional(ProtectedActionArgsInputSchema)
45
+ }), v.transform(({ account, action, args }) => ({
46
46
  subaccountId: accountScopeToSubaccountId(account),
47
47
  action: ProtectedActionCodec.inputToProto[action],
48
48
  args: args ? toProtectedActionArgs(args) : void 0
49
49
  })));
50
- const BatchSignProtectedActionInputSchema = validation_exports.pipe(validation_exports.strictObject({
50
+ const BatchSignProtectedActionInputSchema = v.pipe(v.strictObject({
51
51
  ...AccountScopeInputEntries,
52
- actions: validation_exports.pipe(validation_exports.array(validation_exports.strictObject({
53
- action: validation_exports.picklist(PROTECTED_ACTION_VALUES),
54
- args: validation_exports.optional(ProtectedActionArgsInputSchema)
55
- })), validation_exports.minLength(1, "At least one protected action is required."))
56
- }), validation_exports.transform(({ account, actions }) => ({
52
+ actions: v.pipe(v.array(v.strictObject({
53
+ action: v.picklist(PROTECTED_ACTION_VALUES),
54
+ args: v.optional(ProtectedActionArgsInputSchema)
55
+ })), v.minLength(1, "At least one protected action is required."))
56
+ }), v.transform(({ account, actions }) => ({
57
57
  subaccountId: accountScopeToSubaccountId(account),
58
58
  actions: actions.map(({ action, args }) => ({
59
59
  action: ProtectedActionCodec.inputToProto[action],
60
60
  args: args ? toProtectedActionArgs(args) : void 0
61
61
  }))
62
62
  })));
63
- const GuardSignerStatusSchema = validation_exports.object({
64
- signerAddress: validation_exports.string(),
65
- onchainSignerAddress: validation_exports.string(),
66
- initialized: validation_exports.boolean(),
67
- nonce: validation_exports.string(),
68
- nonceSpace: validation_exports.bigint()
63
+ const GuardSignerStatusSchema = v.object({
64
+ signerAddress: v.string(),
65
+ onchainSignerAddress: v.string(),
66
+ initialized: v.boolean(),
67
+ nonce: v.string(),
68
+ nonceSpace: v.bigint()
69
69
  });
70
- const GuardApprovalSchema = validation_exports.pipe(validation_exports.object({
71
- nonceSpace: validation_exports.bigint(),
72
- deadlineUnix: validation_exports.bigint(),
73
- signature: validation_exports.instance(Uint8Array)
74
- }), validation_exports.transform((approval) => ({
70
+ const GuardApprovalSchema = v.pipe(v.object({
71
+ nonceSpace: v.bigint(),
72
+ deadlineUnix: v.bigint(),
73
+ signature: v.instance(Uint8Array)
74
+ }), v.transform((approval) => ({
75
75
  nonceSpace: approval.nonceSpace.toString(),
76
76
  deadlineUnix: approval.deadlineUnix.toString(),
77
77
  signature: `0x${bytesToHex(approval.signature)}`,
78
78
  raw: approval
79
79
  })));
80
- const BatchGuardApprovalsSchema = validation_exports.object({ approvals: validation_exports.array(GuardApprovalSchema) });
81
- const CreateGuardSignerWalletResultSchema = validation_exports.object({ signerAddress: HexAddressSchema });
82
- const RotateGuardSignerWalletResultSchema = validation_exports.pipe(validation_exports.object({
80
+ const BatchGuardApprovalsSchema = v.object({ approvals: v.array(GuardApprovalSchema) });
81
+ const CreateGuardSignerWalletResultSchema = v.object({ signerAddress: HexAddressSchema });
82
+ const RotateGuardSignerWalletResultSchema = v.pipe(v.object({
83
83
  newSignerAddress: HexAddressSchema,
84
- approval: validation_exports.optional(GuardApprovalSchema)
85
- }), validation_exports.transform((result) => ({
84
+ approval: v.optional(GuardApprovalSchema)
85
+ }), v.transform((result) => ({
86
86
  newSignerAddress: result.newSignerAddress,
87
87
  approval: result.approval ?? null
88
88
  })));
89
- const ExportGuardSignerWalletResultSchema = validation_exports.object({ privateKey: validation_exports.pipe(validation_exports.string(), validation_exports.trim(), validation_exports.regex(/^0x[0-9a-fA-F]{64}$/)) });
89
+ const ExportGuardSignerWalletResultSchema = v.object({ privateKey: v.pipe(v.string(), v.trim(), v.regex(/^0x[0-9a-fA-F]{64}$/)) });
90
90
  //#endregion
91
91
  export { BatchGuardApprovalsSchema, BatchSignProtectedActionInputSchema, CreateGuardSignerWalletResultSchema, ExportGuardSignerWalletResultSchema, GuardApprovalSchema, GuardSignerScopedInputSchema, GuardSignerStatusSchema, RotateGuardSignerWalletResultSchema, SignProtectedActionInputSchema };
92
92
 
@@ -1 +1 @@
1
- {"version":3,"file":"guard-signer.schemas.js","names":["v"],"sources":["../../../src/services/guard-signer/guard-signer.schemas.ts"],"sourcesContent":["import { bytesToHex } from \"@noble/hashes/utils.js\";\nimport * as v from \"../../shared/validation.js\";\nimport { PROTECTED_ACTION_VALUES, ProtectedActionCodec } from \"./guard-signer.codecs.js\";\nimport {\n AccountScopeInputEntries,\n accountScopeToSubaccountId,\n} from \"../../shared/account-scope.js\";\n\nconst HexAddressSchema = v.pipe(v.string(), v.trim(), v.regex(/^0x[0-9a-fA-F]{40}$/));\n\nconst WhitelistAddressSchema = v.pipe(v.string(), v.trim(), v.minLength(1));\n\nexport const GuardSignerScopedInputSchema = v.pipe(\n v.strictObject({\n ...AccountScopeInputEntries,\n }),\n v.transform(({ account }) => ({\n subaccountId: accountScopeToSubaccountId(account),\n })),\n);\n\nexport type GuardSignerScopedInput = v.InferInput<typeof GuardSignerScopedInputSchema>;\n\nconst ProtectedActionArgsInputSchema = v.variant(\"case\", [\n v.strictObject({\n case: v.literal(\"externalWhitelist\"),\n polychainChainId: v.pipe(v.number(), v.integer(), v.gtValue(0)),\n addresses: v.pipe(v.array(WhitelistAddressSchema), v.minLength(1)),\n }),\n v.strictObject({\n case: v.literal(\"internalWhitelist\"),\n addresses: v.pipe(v.array(WhitelistAddressSchema), v.minLength(1)),\n }),\n v.strictObject({\n case: v.literal(\"whitelistRequirement\"),\n required: v.boolean(),\n }),\n]);\n\nfunction toProtectedActionArgs(args: v.InferOutput<typeof ProtectedActionArgsInputSchema>) {\n if (args.case === \"externalWhitelist\") {\n return {\n args: {\n case: \"externalWhitelist\" as const,\n value: {\n polychainChainId: args.polychainChainId,\n addresses: args.addresses,\n },\n },\n };\n }\n\n if (args.case === \"internalWhitelist\") {\n return {\n args: {\n case: \"internalWhitelist\" as const,\n value: {\n addresses: args.addresses,\n },\n },\n };\n }\n\n return {\n args: {\n case: \"whitelistRequirement\" as const,\n value: {\n required: args.required,\n },\n },\n };\n}\n\nexport const SignProtectedActionInputSchema = v.pipe(\n v.strictObject({\n ...AccountScopeInputEntries,\n action: v.picklist(PROTECTED_ACTION_VALUES),\n args: v.optional(ProtectedActionArgsInputSchema),\n }),\n v.transform(({ account, action, args }) => ({\n subaccountId: accountScopeToSubaccountId(account),\n action: ProtectedActionCodec.inputToProto[action],\n args: args ? toProtectedActionArgs(args) : undefined,\n })),\n);\n\nexport type SignProtectedActionInput = v.InferInput<typeof SignProtectedActionInputSchema>;\n\nexport const BatchSignProtectedActionInputSchema = v.pipe(\n v.strictObject({\n ...AccountScopeInputEntries,\n actions: v.pipe(\n v.array(\n v.strictObject({\n action: v.picklist(PROTECTED_ACTION_VALUES),\n args: v.optional(ProtectedActionArgsInputSchema),\n }),\n ),\n v.minLength(1, \"At least one protected action is required.\"),\n ),\n }),\n v.transform(({ account, actions }) => ({\n subaccountId: accountScopeToSubaccountId(account),\n actions: actions.map(({ action, args }) => ({\n action: ProtectedActionCodec.inputToProto[action],\n args: args ? toProtectedActionArgs(args) : undefined,\n })),\n })),\n);\n\nexport type BatchSignProtectedActionInput = v.InferInput<\n typeof BatchSignProtectedActionInputSchema\n>;\n\nexport const GuardSignerStatusSchema = v.object({\n signerAddress: v.string(),\n onchainSignerAddress: v.string(),\n initialized: v.boolean(),\n nonce: v.string(),\n nonceSpace: v.bigint(),\n});\n\nexport type GuardSignerStatus = v.InferOutput<typeof GuardSignerStatusSchema>;\n\nexport const GuardApprovalSchema = v.pipe(\n v.object({\n nonceSpace: v.bigint(),\n deadlineUnix: v.bigint(),\n signature: v.instance(Uint8Array),\n }),\n v.transform((approval) => ({\n nonceSpace: approval.nonceSpace.toString(),\n deadlineUnix: approval.deadlineUnix.toString(),\n signature: `0x${bytesToHex(approval.signature)}` as `0x${string}`,\n raw: approval,\n })),\n);\n\nexport type GuardApproval = v.InferOutput<typeof GuardApprovalSchema>;\n\nexport const BatchGuardApprovalsSchema = v.object({\n approvals: v.array(GuardApprovalSchema),\n});\n\nexport type BatchGuardApprovals = v.InferOutput<typeof BatchGuardApprovalsSchema>;\n\nexport const CreateGuardSignerWalletResultSchema = v.object({\n signerAddress: HexAddressSchema,\n});\n\nexport type CreateGuardSignerWalletResult = v.InferOutput<\n typeof CreateGuardSignerWalletResultSchema\n>;\n\nexport const RotateGuardSignerWalletResultSchema = v.pipe(\n v.object({\n newSignerAddress: HexAddressSchema,\n approval: v.optional(GuardApprovalSchema),\n }),\n v.transform((result) => ({\n newSignerAddress: result.newSignerAddress,\n approval: result.approval ?? null,\n })),\n);\n\nexport type RotateGuardSignerWalletResult = v.InferOutput<\n typeof RotateGuardSignerWalletResultSchema\n>;\n\nexport const ExportGuardSignerWalletResultSchema = v.object({\n privateKey: v.pipe(v.string(), v.trim(), v.regex(/^0x[0-9a-fA-F]{64}$/)),\n});\n\nexport type ExportGuardSignerWalletResult = v.InferOutput<\n typeof ExportGuardSignerWalletResultSchema\n>;\n"],"mappings":"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"}
1
+ {"version":3,"file":"guard-signer.schemas.js","names":[],"sources":["../../../src/services/guard-signer/guard-signer.schemas.ts"],"sourcesContent":["import { bytesToHex } from \"@noble/hashes/utils.js\";\nimport * as v from \"valibot\";\nimport { PROTECTED_ACTION_VALUES, ProtectedActionCodec } from \"./guard-signer.codecs.js\";\nimport {\n AccountScopeInputEntries,\n accountScopeToSubaccountId,\n} from \"../../shared/account-scope.js\";\n\nconst HexAddressSchema = v.pipe(v.string(), v.trim(), v.regex(/^0x[0-9a-fA-F]{40}$/));\n\nconst WhitelistAddressSchema = v.pipe(v.string(), v.trim(), v.minLength(1));\n\nexport const GuardSignerScopedInputSchema = v.pipe(\n v.strictObject({\n ...AccountScopeInputEntries,\n }),\n v.transform(({ account }) => ({\n subaccountId: accountScopeToSubaccountId(account),\n })),\n);\n\nexport type GuardSignerScopedInput = v.InferInput<typeof GuardSignerScopedInputSchema>;\n\nconst ProtectedActionArgsInputSchema = v.variant(\"case\", [\n v.strictObject({\n case: v.literal(\"externalWhitelist\"),\n polychainChainId: v.pipe(v.number(), v.integer(), v.gtValue(0)),\n addresses: v.pipe(v.array(WhitelistAddressSchema), v.minLength(1)),\n }),\n v.strictObject({\n case: v.literal(\"internalWhitelist\"),\n addresses: v.pipe(v.array(WhitelistAddressSchema), v.minLength(1)),\n }),\n v.strictObject({\n case: v.literal(\"whitelistRequirement\"),\n required: v.boolean(),\n }),\n]);\n\nfunction toProtectedActionArgs(args: v.InferOutput<typeof ProtectedActionArgsInputSchema>) {\n if (args.case === \"externalWhitelist\") {\n return {\n args: {\n case: \"externalWhitelist\" as const,\n value: {\n polychainChainId: args.polychainChainId,\n addresses: args.addresses,\n },\n },\n };\n }\n\n if (args.case === \"internalWhitelist\") {\n return {\n args: {\n case: \"internalWhitelist\" as const,\n value: {\n addresses: args.addresses,\n },\n },\n };\n }\n\n return {\n args: {\n case: \"whitelistRequirement\" as const,\n value: {\n required: args.required,\n },\n },\n };\n}\n\nexport const SignProtectedActionInputSchema = v.pipe(\n v.strictObject({\n ...AccountScopeInputEntries,\n action: v.picklist(PROTECTED_ACTION_VALUES),\n args: v.optional(ProtectedActionArgsInputSchema),\n }),\n v.transform(({ account, action, args }) => ({\n subaccountId: accountScopeToSubaccountId(account),\n action: ProtectedActionCodec.inputToProto[action],\n args: args ? toProtectedActionArgs(args) : undefined,\n })),\n);\n\nexport type SignProtectedActionInput = v.InferInput<typeof SignProtectedActionInputSchema>;\n\nexport const BatchSignProtectedActionInputSchema = v.pipe(\n v.strictObject({\n ...AccountScopeInputEntries,\n actions: v.pipe(\n v.array(\n v.strictObject({\n action: v.picklist(PROTECTED_ACTION_VALUES),\n args: v.optional(ProtectedActionArgsInputSchema),\n }),\n ),\n v.minLength(1, \"At least one protected action is required.\"),\n ),\n }),\n v.transform(({ account, actions }) => ({\n subaccountId: accountScopeToSubaccountId(account),\n actions: actions.map(({ action, args }) => ({\n action: ProtectedActionCodec.inputToProto[action],\n args: args ? toProtectedActionArgs(args) : undefined,\n })),\n })),\n);\n\nexport type BatchSignProtectedActionInput = v.InferInput<\n typeof BatchSignProtectedActionInputSchema\n>;\n\nexport const GuardSignerStatusSchema = v.object({\n signerAddress: v.string(),\n onchainSignerAddress: v.string(),\n initialized: v.boolean(),\n nonce: v.string(),\n nonceSpace: v.bigint(),\n});\n\nexport type GuardSignerStatus = v.InferOutput<typeof GuardSignerStatusSchema>;\n\nexport const GuardApprovalSchema = v.pipe(\n v.object({\n nonceSpace: v.bigint(),\n deadlineUnix: v.bigint(),\n signature: v.instance(Uint8Array),\n }),\n v.transform((approval) => ({\n nonceSpace: approval.nonceSpace.toString(),\n deadlineUnix: approval.deadlineUnix.toString(),\n signature: `0x${bytesToHex(approval.signature)}` as `0x${string}`,\n raw: approval,\n })),\n);\n\nexport type GuardApproval = v.InferOutput<typeof GuardApprovalSchema>;\n\nexport const BatchGuardApprovalsSchema = v.object({\n approvals: v.array(GuardApprovalSchema),\n});\n\nexport type BatchGuardApprovals = v.InferOutput<typeof BatchGuardApprovalsSchema>;\n\nexport const CreateGuardSignerWalletResultSchema = v.object({\n signerAddress: HexAddressSchema,\n});\n\nexport type CreateGuardSignerWalletResult = v.InferOutput<\n typeof CreateGuardSignerWalletResultSchema\n>;\n\nexport const RotateGuardSignerWalletResultSchema = v.pipe(\n v.object({\n newSignerAddress: HexAddressSchema,\n approval: v.optional(GuardApprovalSchema),\n }),\n v.transform((result) => ({\n newSignerAddress: result.newSignerAddress,\n approval: result.approval ?? null,\n })),\n);\n\nexport type RotateGuardSignerWalletResult = v.InferOutput<\n typeof RotateGuardSignerWalletResultSchema\n>;\n\nexport const ExportGuardSignerWalletResultSchema = v.object({\n privateKey: v.pipe(v.string(), v.trim(), v.regex(/^0x[0-9a-fA-F]{64}$/)),\n});\n\nexport type ExportGuardSignerWalletResult = v.InferOutput<\n typeof ExportGuardSignerWalletResultSchema\n>;\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"heatmap.d.ts","names":[],"sources":["../../../src/services/heatmap/heatmap.ts"],"mappings":";;;;;;;;UA0BiB;EACb,oBACI,OAAO,0BACP,UAAU,0BACX,QAAQ;;UAGL,kCAAkC,mBAAmB;EAC3D;EACA,UAAU;;;;;cAWD,0BAA0B;;EAOvB,YAAA,WAAW,WAAW,UAAU,mBAAmB,QAAQ;;;;EAWjE,oBACF,OAAO,0BACP,UAAU,0BACX,QAAQ;;;;EA4BX,cAAc,OAAO"}
1
+ {"version":3,"file":"heatmap.d.ts","names":[],"sources":["../../../src/services/heatmap/heatmap.ts"],"mappings":";;;;;;;;UA2BiB;EACb,oBACI,OAAO,0BACP,UAAU,0BACX,QAAQ;;UAGL,kCAAkC,mBAAmB;EAC3D;EACA,UAAU;;;;;cAWD,0BAA0B;;EAOvB,YAAA,WAAW,WAAW,UAAU,mBAAmB,QAAQ;;;;EAWjE,oBACF,OAAO,0BACP,UAAU,0BACX,QAAQ;;;;EA4BX,cAAc,OAAO"}
@@ -1,4 +1,4 @@
1
- import { parse, validation_exports } from "../../shared/validation.js";
1
+ import { parse } from "../../shared/validation.js";
2
2
  import { toConnectCallOptions } from "../../shared/request-options.js";
3
3
  import { publicationHandlerErrorContext } from "../../shared/subscription-errors.js";
4
4
  import { createReadyGate } from "../../shared/decimal-surface.js";
@@ -7,10 +7,11 @@ import { HEATMAP_INTERVAL_VALUES } from "./heatmap.codecs.js";
7
7
  import { GetOrderbookHeatmapInputSchema, createOrderbookHeatmapLiveBucketSchema, createOrderbookHeatmapResponseSchema } from "./heatmap.schemas.js";
8
8
  import { create } from "@bufbuild/protobuf";
9
9
  import { createClient } from "@connectrpc/connect";
10
+ import * as v from "valibot";
10
11
  //#region src/services/heatmap/heatmap.ts
11
- const SubscribeHeatmapLiveParamsSchema = validation_exports.object({
12
- symbolId: validation_exports.pipe(validation_exports.number(), validation_exports.integer(), validation_exports.gtValue(0)),
13
- interval: validation_exports.picklist(HEATMAP_INTERVAL_VALUES)
12
+ const SubscribeHeatmapLiveParamsSchema = v.object({
13
+ symbolId: v.pipe(v.number(), v.integer(), v.gtValue(0)),
14
+ interval: v.picklist(HEATMAP_INTERVAL_VALUES)
14
15
  });
15
16
  /**
16
17
  * Reads historical order book heatmap chains and streams live heatmap buckets.
@@ -1 +1 @@
1
- {"version":3,"file":"heatmap.js","names":["v","#client","HeatmapRpc","#realtime","#scales","#responseSchema","#liveBucketSchema","v.parse","ProtoHeatmapLiveBucketSchema"],"sources":["../../../src/services/heatmap/heatmap.ts"],"sourcesContent":["import { createClient, type Client, type Transport } from \"@connectrpc/connect\";\nimport { create } from \"@bufbuild/protobuf\";\nimport { publicationHandlerErrorContext } from \"../../shared/subscription-errors.js\";\nimport {\n HeatmapService as HeatmapRpc,\n HeatmapLiveBucketSchema as ProtoHeatmapLiveBucketSchema,\n HeatmapTimeRangeSchema,\n} from \"../../gen/marketdata/v1/heatmap_pb.js\";\nimport type { PolyesterRealtime } from \"../../realtime/types.js\";\nimport type { BaseSubscribeInput } from \"../../shared/types.js\";\nimport {\n toConnectCallOptions,\n type PolyesterRequestOptions,\n} from \"../../shared/request-options.js\";\nimport { createReadyGate, type SdkScales } from \"../../shared/decimal-surface.js\";\nimport { HEATMAP_INTERVAL_VALUES, type HeatmapIntervalValue } from \"./heatmap.codecs.js\";\nimport * as v from \"../../shared/validation.js\";\nimport {\n GetOrderbookHeatmapInputSchema,\n createOrderbookHeatmapLiveBucketSchema,\n createOrderbookHeatmapResponseSchema,\n type GetOrderbookHeatmapInput,\n type OrderbookHeatmapLiveBucket,\n type OrderbookHeatmapResponse,\n} from \"./heatmap.schemas.js\";\n\nexport interface OrderbookHeatmapProvider {\n getOrderbookHeatmap(\n input: GetOrderbookHeatmapInput,\n options?: PolyesterRequestOptions,\n ): Promise<OrderbookHeatmapResponse>;\n}\n\ninterface SubscribeHeatmapLiveInput extends BaseSubscribeInput<OrderbookHeatmapLiveBucket> {\n symbolId: number;\n interval: HeatmapIntervalValue;\n}\n\nconst SubscribeHeatmapLiveParamsSchema = v.object({\n symbolId: v.pipe(v.number(), v.integer(), v.gtValue(0)),\n interval: v.picklist(HEATMAP_INTERVAL_VALUES),\n});\n\n/**\n * Reads historical order book heatmap chains and streams live heatmap buckets.\n */\nexport class HeatmapService implements OrderbookHeatmapProvider {\n #client: Client<typeof HeatmapRpc>;\n #realtime: PolyesterRealtime;\n #scales: SdkScales;\n #responseSchema: ReturnType<typeof createOrderbookHeatmapResponseSchema>;\n #liveBucketSchema: ReturnType<typeof createOrderbookHeatmapLiveBucketSchema>;\n\n constructor(transport: Transport, realtime: PolyesterRealtime, scales: SdkScales) {\n this.#client = createClient(HeatmapRpc, transport);\n this.#realtime = realtime;\n this.#scales = scales;\n this.#responseSchema = createOrderbookHeatmapResponseSchema(scales);\n this.#liveBucketSchema = createOrderbookHeatmapLiveBucketSchema(scales);\n }\n\n /**\n * Fetches order book heatmap data for a symbol, interval, depth, and quantity mode using either an absolute time range or cursor pagination. The response includes a keyframe anchor, delta buckets, pagination metadata, and live-anchor fields when available.\n */\n async getOrderbookHeatmap(\n input: GetOrderbookHeatmapInput,\n options?: PolyesterRequestOptions,\n ): Promise<OrderbookHeatmapResponse> {\n const parsed = v.parse(GetOrderbookHeatmapInputSchema, input);\n await this.#scales.ready();\n\n const res = await this.#client.getOrderbookHeatmap(\n {\n symbolId: parsed.symbolId,\n interval: parsed.interval,\n depth: parsed.depth,\n quantityMode: parsed.quantityMode,\n limit: parsed.limit,\n pageToken: parsed.pageToken,\n timeRange:\n parsed.timeRange != null\n ? create(HeatmapTimeRangeSchema, {\n startTime: parsed.timeRange.startTime,\n endTime: parsed.timeRange.endTime,\n })\n : undefined,\n },\n toConnectCallOptions(options),\n );\n return v.parse(this.#responseSchema, res);\n }\n\n /**\n * Subscribes to live heatmap buckets on public:spot:market:heatmap:{interval}:{symbolId}:proto and emits parsed bid/ask delta buckets for the selected interval.\n */\n subscribeLive(input: SubscribeHeatmapLiveInput): () => void {\n const params = v.parse(SubscribeHeatmapLiveParamsSchema, {\n symbolId: input.symbolId,\n interval: input.interval,\n });\n const channel = `public:spot:market:heatmap:${params.interval}:${params.symbolId}:proto`;\n const gate = createReadyGate(\n () => this.#scales.ready(),\n (error) => input.onError?.(publicationHandlerErrorContext(channel, error)),\n );\n return this.#realtime.connectProtoChannel({\n channel,\n schema: ProtoHeatmapLiveBucketSchema,\n onPublication: (data) => {\n gate.run(() => {\n const bucket = v.parse(this.#liveBucketSchema, data);\n input.onEvent(bucket);\n });\n },\n onConnected: input.onOpen,\n onDisconnected: input.onClose,\n onError: input.onError,\n });\n }\n}\n"],"mappings":";;;;;;;;;;AAsCA,MAAM,mCAAmCA,mBAAE,OAAO;CAC9C,UAAUA,mBAAE,KAAKA,mBAAE,OAAO,GAAGA,mBAAE,QAAQ,GAAGA,mBAAE,QAAQ,CAAC,CAAC;CACtD,UAAUA,mBAAE,SAAS,uBAAuB;AAChD,CAAC;;;;AAKD,IAAa,iBAAb,MAAgE;CAC5D;CACA;CACA;CACA;CACA;CAEA,YAAY,WAAsB,UAA6B,QAAmB;EAC9E,KAAKC,UAAU,aAAaC,kBAAY,SAAS;EACjD,KAAKC,YAAY;EACjB,KAAKC,UAAU;EACf,KAAKC,kBAAkB,qCAAqC,MAAM;EAClE,KAAKC,oBAAoB,uCAAuC,MAAM;CAC1E;;;;CAKA,MAAM,oBACF,OACA,SACiC;EACjC,MAAM,SAASC,MAAQ,gCAAgC,KAAK;EAC5D,MAAM,KAAKH,QAAQ,MAAM;EAEzB,MAAM,MAAM,MAAM,KAAKH,QAAQ,oBAC3B;GACI,UAAU,OAAO;GACjB,UAAU,OAAO;GACjB,OAAO,OAAO;GACd,cAAc,OAAO;GACrB,OAAO,OAAO;GACd,WAAW,OAAO;GAClB,WACI,OAAO,aAAa,OACd,OAAO,wBAAwB;IAC3B,WAAW,OAAO,UAAU;IAC5B,SAAS,OAAO,UAAU;GAC9B,CAAC,IACD,KAAA;EACd,GACA,qBAAqB,OAAO,CAChC;EACA,OAAOM,MAAQ,KAAKF,iBAAiB,GAAG;CAC5C;;;;CAKA,cAAc,OAA8C;EACxD,MAAM,SAASE,MAAQ,kCAAkC;GACrD,UAAU,MAAM;GAChB,UAAU,MAAM;EACpB,CAAC;EACD,MAAM,UAAU,8BAA8B,OAAO,SAAS,GAAG,OAAO,SAAS;EACjF,MAAM,OAAO,sBACH,KAAKH,QAAQ,MAAM,IACxB,UAAU,MAAM,UAAU,+BAA+B,SAAS,KAAK,CAAC,CAC7E;EACA,OAAO,KAAKD,UAAU,oBAAoB;GACtC;GACA,QAAQK;GACR,gBAAgB,SAAS;IACrB,KAAK,UAAU;KACX,MAAM,SAASD,MAAQ,KAAKD,mBAAmB,IAAI;KACnD,MAAM,QAAQ,MAAM;IACxB,CAAC;GACL;GACA,aAAa,MAAM;GACnB,gBAAgB,MAAM;GACtB,SAAS,MAAM;EACnB,CAAC;CACL;AACJ"}
1
+ {"version":3,"file":"heatmap.js","names":["#client","HeatmapRpc","#realtime","#scales","#responseSchema","#liveBucketSchema","ProtoHeatmapLiveBucketSchema"],"sources":["../../../src/services/heatmap/heatmap.ts"],"sourcesContent":["import { createClient, type Client, type Transport } from \"@connectrpc/connect\";\nimport { create } from \"@bufbuild/protobuf\";\nimport { publicationHandlerErrorContext } from \"../../shared/subscription-errors.js\";\nimport {\n HeatmapService as HeatmapRpc,\n HeatmapLiveBucketSchema as ProtoHeatmapLiveBucketSchema,\n HeatmapTimeRangeSchema,\n} from \"../../gen/marketdata/v1/heatmap_pb.js\";\nimport type { PolyesterRealtime } from \"../../realtime/types.js\";\nimport type { BaseSubscribeInput } from \"../../shared/types.js\";\nimport {\n toConnectCallOptions,\n type PolyesterRequestOptions,\n} from \"../../shared/request-options.js\";\nimport { createReadyGate, type SdkScales } from \"../../shared/decimal-surface.js\";\nimport { HEATMAP_INTERVAL_VALUES, type HeatmapIntervalValue } from \"./heatmap.codecs.js\";\nimport * as v from \"valibot\";\nimport { parse } from \"../../shared/validation.js\";\nimport {\n GetOrderbookHeatmapInputSchema,\n createOrderbookHeatmapLiveBucketSchema,\n createOrderbookHeatmapResponseSchema,\n type GetOrderbookHeatmapInput,\n type OrderbookHeatmapLiveBucket,\n type OrderbookHeatmapResponse,\n} from \"./heatmap.schemas.js\";\n\nexport interface OrderbookHeatmapProvider {\n getOrderbookHeatmap(\n input: GetOrderbookHeatmapInput,\n options?: PolyesterRequestOptions,\n ): Promise<OrderbookHeatmapResponse>;\n}\n\ninterface SubscribeHeatmapLiveInput extends BaseSubscribeInput<OrderbookHeatmapLiveBucket> {\n symbolId: number;\n interval: HeatmapIntervalValue;\n}\n\nconst SubscribeHeatmapLiveParamsSchema = v.object({\n symbolId: v.pipe(v.number(), v.integer(), v.gtValue(0)),\n interval: v.picklist(HEATMAP_INTERVAL_VALUES),\n});\n\n/**\n * Reads historical order book heatmap chains and streams live heatmap buckets.\n */\nexport class HeatmapService implements OrderbookHeatmapProvider {\n #client: Client<typeof HeatmapRpc>;\n #realtime: PolyesterRealtime;\n #scales: SdkScales;\n #responseSchema: ReturnType<typeof createOrderbookHeatmapResponseSchema>;\n #liveBucketSchema: ReturnType<typeof createOrderbookHeatmapLiveBucketSchema>;\n\n constructor(transport: Transport, realtime: PolyesterRealtime, scales: SdkScales) {\n this.#client = createClient(HeatmapRpc, transport);\n this.#realtime = realtime;\n this.#scales = scales;\n this.#responseSchema = createOrderbookHeatmapResponseSchema(scales);\n this.#liveBucketSchema = createOrderbookHeatmapLiveBucketSchema(scales);\n }\n\n /**\n * Fetches order book heatmap data for a symbol, interval, depth, and quantity mode using either an absolute time range or cursor pagination. The response includes a keyframe anchor, delta buckets, pagination metadata, and live-anchor fields when available.\n */\n async getOrderbookHeatmap(\n input: GetOrderbookHeatmapInput,\n options?: PolyesterRequestOptions,\n ): Promise<OrderbookHeatmapResponse> {\n const parsed = parse(GetOrderbookHeatmapInputSchema, input);\n await this.#scales.ready();\n\n const res = await this.#client.getOrderbookHeatmap(\n {\n symbolId: parsed.symbolId,\n interval: parsed.interval,\n depth: parsed.depth,\n quantityMode: parsed.quantityMode,\n limit: parsed.limit,\n pageToken: parsed.pageToken,\n timeRange:\n parsed.timeRange != null\n ? create(HeatmapTimeRangeSchema, {\n startTime: parsed.timeRange.startTime,\n endTime: parsed.timeRange.endTime,\n })\n : undefined,\n },\n toConnectCallOptions(options),\n );\n return parse(this.#responseSchema, res);\n }\n\n /**\n * Subscribes to live heatmap buckets on public:spot:market:heatmap:{interval}:{symbolId}:proto and emits parsed bid/ask delta buckets for the selected interval.\n */\n subscribeLive(input: SubscribeHeatmapLiveInput): () => void {\n const params = parse(SubscribeHeatmapLiveParamsSchema, {\n symbolId: input.symbolId,\n interval: input.interval,\n });\n const channel = `public:spot:market:heatmap:${params.interval}:${params.symbolId}:proto`;\n const gate = createReadyGate(\n () => this.#scales.ready(),\n (error) => input.onError?.(publicationHandlerErrorContext(channel, error)),\n );\n return this.#realtime.connectProtoChannel({\n channel,\n schema: ProtoHeatmapLiveBucketSchema,\n onPublication: (data) => {\n gate.run(() => {\n const bucket = parse(this.#liveBucketSchema, data);\n input.onEvent(bucket);\n });\n },\n onConnected: input.onOpen,\n onDisconnected: input.onClose,\n onError: input.onError,\n });\n }\n}\n"],"mappings":";;;;;;;;;;;AAuCA,MAAM,mCAAmC,EAAE,OAAO;CAC9C,UAAU,EAAE,KAAK,EAAE,OAAO,GAAG,EAAE,QAAQ,GAAG,EAAE,QAAQ,CAAC,CAAC;CACtD,UAAU,EAAE,SAAS,uBAAuB;AAChD,CAAC;;;;AAKD,IAAa,iBAAb,MAAgE;CAC5D;CACA;CACA;CACA;CACA;CAEA,YAAY,WAAsB,UAA6B,QAAmB;EAC9E,KAAKA,UAAU,aAAaC,kBAAY,SAAS;EACjD,KAAKC,YAAY;EACjB,KAAKC,UAAU;EACf,KAAKC,kBAAkB,qCAAqC,MAAM;EAClE,KAAKC,oBAAoB,uCAAuC,MAAM;CAC1E;;;;CAKA,MAAM,oBACF,OACA,SACiC;EACjC,MAAM,SAAS,MAAM,gCAAgC,KAAK;EAC1D,MAAM,KAAKF,QAAQ,MAAM;EAEzB,MAAM,MAAM,MAAM,KAAKH,QAAQ,oBAC3B;GACI,UAAU,OAAO;GACjB,UAAU,OAAO;GACjB,OAAO,OAAO;GACd,cAAc,OAAO;GACrB,OAAO,OAAO;GACd,WAAW,OAAO;GAClB,WACI,OAAO,aAAa,OACd,OAAO,wBAAwB;IAC3B,WAAW,OAAO,UAAU;IAC5B,SAAS,OAAO,UAAU;GAC9B,CAAC,IACD,KAAA;EACd,GACA,qBAAqB,OAAO,CAChC;EACA,OAAO,MAAM,KAAKI,iBAAiB,GAAG;CAC1C;;;;CAKA,cAAc,OAA8C;EACxD,MAAM,SAAS,MAAM,kCAAkC;GACnD,UAAU,MAAM;GAChB,UAAU,MAAM;EACpB,CAAC;EACD,MAAM,UAAU,8BAA8B,OAAO,SAAS,GAAG,OAAO,SAAS;EACjF,MAAM,OAAO,sBACH,KAAKD,QAAQ,MAAM,IACxB,UAAU,MAAM,UAAU,+BAA+B,SAAS,KAAK,CAAC,CAC7E;EACA,OAAO,KAAKD,UAAU,oBAAoB;GACtC;GACA,QAAQI;GACR,gBAAgB,SAAS;IACrB,KAAK,UAAU;KACX,MAAM,SAAS,MAAM,KAAKD,mBAAmB,IAAI;KACjD,MAAM,QAAQ,MAAM;IACxB,CAAC;GACL;GACA,aAAa,MAAM;GACnB,gBAAgB,MAAM;GACtB,SAAS,MAAM;EACnB,CAAC;CACL;AACJ"}