@symmio/trading-core 3.0.0 → 3.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (650) hide show
  1. package/dist/core/chains/types.d.ts +197 -0
  2. package/dist/core/chains/types.d.ts.map +1 -1
  3. package/dist/core/chains/types.js.map +1 -1
  4. package/dist/core/config/merge-chain-config.d.ts.map +1 -1
  5. package/dist/core/config/merge-chain-config.js +49 -19
  6. package/dist/core/config/merge-chain-config.js.map +1 -1
  7. package/dist/gasless/abortable-sleep.d.ts +17 -0
  8. package/dist/gasless/abortable-sleep.d.ts.map +1 -0
  9. package/dist/gasless/abortable-sleep.js +21 -0
  10. package/dist/gasless/abortable-sleep.js.map +1 -0
  11. package/dist/gasless/assert-gateway-coherence.d.ts +20 -0
  12. package/dist/gasless/assert-gateway-coherence.d.ts.map +1 -0
  13. package/dist/gasless/assert-gateway-coherence.js +26 -0
  14. package/dist/gasless/assert-gateway-coherence.js.map +1 -0
  15. package/dist/gasless/batch/calls.d.ts +121 -0
  16. package/dist/gasless/batch/calls.d.ts.map +1 -0
  17. package/dist/gasless/batch/calls.js +36 -0
  18. package/dist/gasless/batch/calls.js.map +1 -0
  19. package/dist/gasless/batch/index.d.ts +2 -0
  20. package/dist/gasless/batch/index.d.ts.map +1 -0
  21. package/dist/gasless/batch/resolve-gasless-batch.d.ts +118 -0
  22. package/dist/gasless/batch/resolve-gasless-batch.d.ts.map +1 -0
  23. package/dist/gasless/batch/resolve-gasless-batch.js +89 -0
  24. package/dist/gasless/batch/resolve-gasless-batch.js.map +1 -0
  25. package/dist/gasless/classify-gasless-failure.d.ts +99 -0
  26. package/dist/gasless/classify-gasless-failure.d.ts.map +1 -0
  27. package/dist/gasless/classify-gasless-failure.js +60 -0
  28. package/dist/gasless/classify-gasless-failure.js.map +1 -0
  29. package/dist/gasless/confirm-gasless-request/confirm-gasless-request.d.ts +121 -0
  30. package/dist/gasless/confirm-gasless-request/confirm-gasless-request.d.ts.map +1 -0
  31. package/dist/gasless/confirm-gasless-request/confirm-gasless-request.js +73 -0
  32. package/dist/gasless/confirm-gasless-request/confirm-gasless-request.js.map +1 -0
  33. package/dist/gasless/confirm-gasless-request/index.d.ts +2 -0
  34. package/dist/gasless/confirm-gasless-request/index.d.ts.map +1 -0
  35. package/dist/gasless/constants.d.ts +24 -0
  36. package/dist/gasless/constants.d.ts.map +1 -0
  37. package/dist/gasless/constants.js +6 -0
  38. package/dist/gasless/constants.js.map +1 -0
  39. package/dist/gasless/delegation-preflight.d.ts +39 -0
  40. package/dist/gasless/delegation-preflight.d.ts.map +1 -0
  41. package/dist/gasless/delegation-preflight.js +33 -0
  42. package/dist/gasless/delegation-preflight.js.map +1 -0
  43. package/dist/gasless/dispatch/maybe-relay-as-gasless.d.ts +73 -0
  44. package/dist/gasless/dispatch/maybe-relay-as-gasless.d.ts.map +1 -0
  45. package/dist/gasless/dispatch/maybe-relay-as-gasless.js +189 -0
  46. package/dist/gasless/dispatch/maybe-relay-as-gasless.js.map +1 -0
  47. package/dist/gasless/eip712.d.ts +79 -0
  48. package/dist/gasless/eip712.d.ts.map +1 -0
  49. package/dist/gasless/eip712.js +60 -0
  50. package/dist/gasless/eip712.js.map +1 -0
  51. package/dist/gasless/errors.d.ts +132 -0
  52. package/dist/gasless/errors.d.ts.map +1 -0
  53. package/dist/gasless/errors.js +110 -0
  54. package/dist/gasless/errors.js.map +1 -0
  55. package/dist/gasless/events.d.ts +37 -0
  56. package/dist/gasless/events.d.ts.map +1 -0
  57. package/dist/gasless/events.js +34 -0
  58. package/dist/gasless/events.js.map +1 -0
  59. package/dist/gasless/fallback.d.ts +58 -0
  60. package/dist/gasless/fallback.d.ts.map +1 -0
  61. package/dist/gasless/fallback.js +34 -0
  62. package/dist/gasless/fallback.js.map +1 -0
  63. package/dist/gasless/format-gasless-operation.d.ts +37 -0
  64. package/dist/gasless/format-gasless-operation.d.ts.map +1 -0
  65. package/dist/gasless/format-gasless-operation.js +33 -0
  66. package/dist/gasless/format-gasless-operation.js.map +1 -0
  67. package/dist/gasless/gasless-url.d.ts +82 -0
  68. package/dist/gasless/gasless-url.d.ts.map +1 -0
  69. package/dist/gasless/gasless-url.js +70 -0
  70. package/dist/gasless/gasless-url.js.map +1 -0
  71. package/dist/gasless/gasless-wallet-execute/calls.d.ts +73 -0
  72. package/dist/gasless/gasless-wallet-execute/calls.d.ts.map +1 -0
  73. package/dist/gasless/gasless-wallet-execute/calls.js +24 -0
  74. package/dist/gasless/gasless-wallet-execute/calls.js.map +1 -0
  75. package/dist/gasless/gasless-wallet-execute/gasless-wallet-execute.d.ts +148 -0
  76. package/dist/gasless/gasless-wallet-execute/gasless-wallet-execute.d.ts.map +1 -0
  77. package/dist/gasless/gasless-wallet-execute/gasless-wallet-execute.js +120 -0
  78. package/dist/gasless/gasless-wallet-execute/gasless-wallet-execute.js.map +1 -0
  79. package/dist/gasless/gasless-wallet-execute/index.d.ts +5 -0
  80. package/dist/gasless/gasless-wallet-execute/index.d.ts.map +1 -0
  81. package/dist/gasless/gasless-wallet-execute/query.d.ts +18 -0
  82. package/dist/gasless/gasless-wallet-execute/query.d.ts.map +1 -0
  83. package/dist/gasless/gasless-wallet-execute/query.js +12 -0
  84. package/dist/gasless/gasless-wallet-execute/query.js.map +1 -0
  85. package/dist/gasless/gasless-wallet-execute/selectors.d.ts +38 -0
  86. package/dist/gasless/gasless-wallet-execute/selectors.d.ts.map +1 -0
  87. package/dist/gasless/gasless-wallet-execute/selectors.js +15 -0
  88. package/dist/gasless/gasless-wallet-execute/selectors.js.map +1 -0
  89. package/dist/gasless/get-gasless-batch-fee-quote/get-gasless-batch-fee-quote.d.ts +72 -0
  90. package/dist/gasless/get-gasless-batch-fee-quote/get-gasless-batch-fee-quote.d.ts.map +1 -0
  91. package/dist/gasless/get-gasless-batch-fee-quote/get-gasless-batch-fee-quote.js +42 -0
  92. package/dist/gasless/get-gasless-batch-fee-quote/get-gasless-batch-fee-quote.js.map +1 -0
  93. package/dist/gasless/get-gasless-batch-fee-quote/index.d.ts +3 -0
  94. package/dist/gasless/get-gasless-batch-fee-quote/index.d.ts.map +1 -0
  95. package/dist/gasless/get-gasless-batch-fee-quote/query.d.ts +47 -0
  96. package/dist/gasless/get-gasless-batch-fee-quote/query.d.ts.map +1 -0
  97. package/dist/gasless/get-gasless-batch-fee-quote/query.js +50 -0
  98. package/dist/gasless/get-gasless-batch-fee-quote/query.js.map +1 -0
  99. package/dist/gasless/get-gasless-deposit-policy/get-gasless-deposit-policy.d.ts +80 -0
  100. package/dist/gasless/get-gasless-deposit-policy/get-gasless-deposit-policy.d.ts.map +1 -0
  101. package/dist/gasless/get-gasless-deposit-policy/get-gasless-deposit-policy.js +61 -0
  102. package/dist/gasless/get-gasless-deposit-policy/get-gasless-deposit-policy.js.map +1 -0
  103. package/dist/gasless/get-gasless-deposit-policy/index.d.ts +3 -0
  104. package/dist/gasless/get-gasless-deposit-policy/index.d.ts.map +1 -0
  105. package/dist/gasless/get-gasless-deposit-policy/query.d.ts +51 -0
  106. package/dist/gasless/get-gasless-deposit-policy/query.d.ts.map +1 -0
  107. package/dist/gasless/get-gasless-deposit-policy/query.js +25 -0
  108. package/dist/gasless/get-gasless-deposit-policy/query.js.map +1 -0
  109. package/dist/gasless/get-gasless-fee-quote/encode-relay-batch-call-data.d.ts +27 -0
  110. package/dist/gasless/get-gasless-fee-quote/encode-relay-batch-call-data.d.ts.map +1 -0
  111. package/dist/gasless/get-gasless-fee-quote/encode-relay-batch-call-data.js +22 -0
  112. package/dist/gasless/get-gasless-fee-quote/encode-relay-batch-call-data.js.map +1 -0
  113. package/dist/gasless/get-gasless-fee-quote/fee-quote-errors.d.ts +61 -0
  114. package/dist/gasless/get-gasless-fee-quote/fee-quote-errors.d.ts.map +1 -0
  115. package/dist/gasless/get-gasless-fee-quote/fee-quote-errors.js +59 -0
  116. package/dist/gasless/get-gasless-fee-quote/fee-quote-errors.js.map +1 -0
  117. package/dist/gasless/get-gasless-fee-quote/get-gasless-fee-quote.d.ts +79 -0
  118. package/dist/gasless/get-gasless-fee-quote/get-gasless-fee-quote.d.ts.map +1 -0
  119. package/dist/gasless/get-gasless-fee-quote/get-gasless-fee-quote.js +53 -0
  120. package/dist/gasless/get-gasless-fee-quote/get-gasless-fee-quote.js.map +1 -0
  121. package/dist/gasless/get-gasless-fee-quote/index.d.ts +4 -0
  122. package/dist/gasless/get-gasless-fee-quote/index.d.ts.map +1 -0
  123. package/dist/gasless/get-gasless-fee-quote/query.d.ts +41 -0
  124. package/dist/gasless/get-gasless-fee-quote/query.d.ts.map +1 -0
  125. package/dist/gasless/get-gasless-fee-quote/query.js +31 -0
  126. package/dist/gasless/get-gasless-fee-quote/query.js.map +1 -0
  127. package/dist/gasless/get-gasless-request/get-gasless-request.d.ts +51 -0
  128. package/dist/gasless/get-gasless-request/get-gasless-request.d.ts.map +1 -0
  129. package/dist/gasless/get-gasless-request/get-gasless-request.js +15 -0
  130. package/dist/gasless/get-gasless-request/get-gasless-request.js.map +1 -0
  131. package/dist/gasless/get-gasless-request/index.d.ts +4 -0
  132. package/dist/gasless/get-gasless-request/index.d.ts.map +1 -0
  133. package/dist/gasless/get-gasless-request/query.d.ts +64 -0
  134. package/dist/gasless/get-gasless-request/query.d.ts.map +1 -0
  135. package/dist/gasless/get-gasless-request/query.js +42 -0
  136. package/dist/gasless/get-gasless-request/query.js.map +1 -0
  137. package/dist/gasless/get-gasless-request/to-gasless-request.d.ts +26 -0
  138. package/dist/gasless/get-gasless-request/to-gasless-request.d.ts.map +1 -0
  139. package/dist/gasless/get-gasless-request/to-gasless-request.js +62 -0
  140. package/dist/gasless/get-gasless-request/to-gasless-request.js.map +1 -0
  141. package/dist/gasless/get-gasless-request-transactions/get-gasless-request-transactions.d.ts +40 -0
  142. package/dist/gasless/get-gasless-request-transactions/get-gasless-request-transactions.d.ts.map +1 -0
  143. package/dist/gasless/get-gasless-request-transactions/get-gasless-request-transactions.js +15 -0
  144. package/dist/gasless/get-gasless-request-transactions/get-gasless-request-transactions.js.map +1 -0
  145. package/dist/gasless/get-gasless-request-transactions/index.d.ts +4 -0
  146. package/dist/gasless/get-gasless-request-transactions/index.d.ts.map +1 -0
  147. package/dist/gasless/get-gasless-request-transactions/query.d.ts +75 -0
  148. package/dist/gasless/get-gasless-request-transactions/query.d.ts.map +1 -0
  149. package/dist/gasless/get-gasless-request-transactions/query.js +37 -0
  150. package/dist/gasless/get-gasless-request-transactions/query.js.map +1 -0
  151. package/dist/gasless/get-gasless-request-transactions/to-gasless-request-transaction.d.ts +21 -0
  152. package/dist/gasless/get-gasless-request-transactions/to-gasless-request-transaction.d.ts.map +1 -0
  153. package/dist/gasless/get-gasless-request-transactions/to-gasless-request-transaction.js +27 -0
  154. package/dist/gasless/get-gasless-request-transactions/to-gasless-request-transaction.js.map +1 -0
  155. package/dist/gasless/get-gasless-wallet-address/get-gasless-wallet-address.d.ts +48 -0
  156. package/dist/gasless/get-gasless-wallet-address/get-gasless-wallet-address.d.ts.map +1 -0
  157. package/dist/gasless/get-gasless-wallet-address/get-gasless-wallet-address.js +20 -0
  158. package/dist/gasless/get-gasless-wallet-address/get-gasless-wallet-address.js.map +1 -0
  159. package/dist/gasless/get-gasless-wallet-address/index.d.ts +3 -0
  160. package/dist/gasless/get-gasless-wallet-address/index.d.ts.map +1 -0
  161. package/dist/gasless/get-gasless-wallet-address/query.d.ts +46 -0
  162. package/dist/gasless/get-gasless-wallet-address/query.d.ts.map +1 -0
  163. package/dist/gasless/get-gasless-wallet-address/query.js +25 -0
  164. package/dist/gasless/get-gasless-wallet-address/query.js.map +1 -0
  165. package/dist/gasless/get-gasless-wallet-creation-fee/get-gasless-wallet-creation-fee.d.ts +57 -0
  166. package/dist/gasless/get-gasless-wallet-creation-fee/get-gasless-wallet-creation-fee.d.ts.map +1 -0
  167. package/dist/gasless/get-gasless-wallet-creation-fee/get-gasless-wallet-creation-fee.js +17 -0
  168. package/dist/gasless/get-gasless-wallet-creation-fee/get-gasless-wallet-creation-fee.js.map +1 -0
  169. package/dist/gasless/get-gasless-wallet-creation-fee/index.d.ts +3 -0
  170. package/dist/gasless/get-gasless-wallet-creation-fee/index.d.ts.map +1 -0
  171. package/dist/gasless/get-gasless-wallet-creation-fee/query.d.ts +51 -0
  172. package/dist/gasless/get-gasless-wallet-creation-fee/query.d.ts.map +1 -0
  173. package/dist/gasless/get-gasless-wallet-creation-fee/query.js +25 -0
  174. package/dist/gasless/get-gasless-wallet-creation-fee/query.js.map +1 -0
  175. package/dist/gasless/get-gasless-wallet-nonce/get-gasless-wallet-nonce.d.ts +51 -0
  176. package/dist/gasless/get-gasless-wallet-nonce/get-gasless-wallet-nonce.d.ts.map +1 -0
  177. package/dist/gasless/get-gasless-wallet-nonce/get-gasless-wallet-nonce.js +21 -0
  178. package/dist/gasless/get-gasless-wallet-nonce/get-gasless-wallet-nonce.js.map +1 -0
  179. package/dist/gasless/get-gasless-wallet-nonce/index.d.ts +3 -0
  180. package/dist/gasless/get-gasless-wallet-nonce/index.d.ts.map +1 -0
  181. package/dist/gasless/get-gasless-wallet-nonce/query.d.ts +47 -0
  182. package/dist/gasless/get-gasless-wallet-nonce/query.d.ts.map +1 -0
  183. package/dist/gasless/get-gasless-wallet-nonce/query.js +25 -0
  184. package/dist/gasless/get-gasless-wallet-nonce/query.js.map +1 -0
  185. package/dist/gasless/get-session-key-selectors.d.ts +83 -0
  186. package/dist/gasless/get-session-key-selectors.d.ts.map +1 -0
  187. package/dist/gasless/get-session-key-selectors.js +25 -0
  188. package/dist/gasless/get-session-key-selectors.js.map +1 -0
  189. package/dist/gasless/http.d.ts +229 -0
  190. package/dist/gasless/http.d.ts.map +1 -0
  191. package/dist/gasless/http.js +165 -0
  192. package/dist/gasless/http.js.map +1 -0
  193. package/dist/gasless/index.d.ts +34 -0
  194. package/dist/gasless/index.d.ts.map +1 -0
  195. package/dist/gasless/is-newer-gasless-request.d.ts +32 -0
  196. package/dist/gasless/is-newer-gasless-request.d.ts.map +1 -0
  197. package/dist/gasless/is-newer-gasless-request.js +21 -0
  198. package/dist/gasless/is-newer-gasless-request.js.map +1 -0
  199. package/dist/gasless/nonce-lock.d.ts +180 -0
  200. package/dist/gasless/nonce-lock.d.ts.map +1 -0
  201. package/dist/gasless/nonce-lock.js +102 -0
  202. package/dist/gasless/nonce-lock.js.map +1 -0
  203. package/dist/gasless/observe-gasless-request.d.ts +65 -0
  204. package/dist/gasless/observe-gasless-request.d.ts.map +1 -0
  205. package/dist/gasless/observe-gasless-request.js +56 -0
  206. package/dist/gasless/observe-gasless-request.js.map +1 -0
  207. package/dist/gasless/query-poll-delay.d.ts +39 -0
  208. package/dist/gasless/query-poll-delay.d.ts.map +1 -0
  209. package/dist/gasless/query-poll-delay.js +14 -0
  210. package/dist/gasless/query-poll-delay.js.map +1 -0
  211. package/dist/gasless/relay-gasless-batch/index.d.ts +3 -0
  212. package/dist/gasless/relay-gasless-batch/index.d.ts.map +1 -0
  213. package/dist/gasless/relay-gasless-batch/query.d.ts +18 -0
  214. package/dist/gasless/relay-gasless-batch/query.d.ts.map +1 -0
  215. package/dist/gasless/relay-gasless-batch/query.js +12 -0
  216. package/dist/gasless/relay-gasless-batch/query.js.map +1 -0
  217. package/dist/gasless/relay-gasless-batch/relay-gasless-batch.d.ts +106 -0
  218. package/dist/gasless/relay-gasless-batch/relay-gasless-batch.d.ts.map +1 -0
  219. package/dist/gasless/relay-gasless-batch/relay-gasless-batch.js +145 -0
  220. package/dist/gasless/relay-gasless-batch/relay-gasless-batch.js.map +1 -0
  221. package/dist/gasless/relay-gasless-batch/sign-gasless-batch.d.ts +36 -0
  222. package/dist/gasless/relay-gasless-batch/sign-gasless-batch.d.ts.map +1 -0
  223. package/dist/gasless/relay-gasless-batch/sign-gasless-batch.js +24 -0
  224. package/dist/gasless/relay-gasless-batch/sign-gasless-batch.js.map +1 -0
  225. package/dist/gasless/relay-grant-delegation/index.d.ts +3 -0
  226. package/dist/gasless/relay-grant-delegation/index.d.ts.map +1 -0
  227. package/dist/gasless/relay-grant-delegation/query.d.ts +18 -0
  228. package/dist/gasless/relay-grant-delegation/query.d.ts.map +1 -0
  229. package/dist/gasless/relay-grant-delegation/query.js +12 -0
  230. package/dist/gasless/relay-grant-delegation/query.js.map +1 -0
  231. package/dist/gasless/relay-grant-delegation/relay-grant-delegation.d.ts +69 -0
  232. package/dist/gasless/relay-grant-delegation/relay-grant-delegation.d.ts.map +1 -0
  233. package/dist/gasless/relay-grant-delegation/relay-grant-delegation.js +57 -0
  234. package/dist/gasless/relay-grant-delegation/relay-grant-delegation.js.map +1 -0
  235. package/dist/gasless/relay-instant-operations/index.d.ts +3 -0
  236. package/dist/gasless/relay-instant-operations/index.d.ts.map +1 -0
  237. package/dist/gasless/relay-instant-operations/query.d.ts +18 -0
  238. package/dist/gasless/relay-instant-operations/query.d.ts.map +1 -0
  239. package/dist/gasless/relay-instant-operations/query.js +12 -0
  240. package/dist/gasless/relay-instant-operations/query.js.map +1 -0
  241. package/dist/gasless/relay-instant-operations/relay-instant-operations.d.ts +127 -0
  242. package/dist/gasless/relay-instant-operations/relay-instant-operations.d.ts.map +1 -0
  243. package/dist/gasless/relay-instant-operations/relay-instant-operations.js +42 -0
  244. package/dist/gasless/relay-instant-operations/relay-instant-operations.js.map +1 -0
  245. package/dist/gasless/relayable-writes.d.ts +163 -0
  246. package/dist/gasless/relayable-writes.d.ts.map +1 -0
  247. package/dist/gasless/relayable-writes.js +113 -0
  248. package/dist/gasless/relayable-writes.js.map +1 -0
  249. package/dist/gasless/resolve-gasless.d.ts +52 -0
  250. package/dist/gasless/resolve-gasless.d.ts.map +1 -0
  251. package/dist/gasless/resolve-gasless.js +19 -0
  252. package/dist/gasless/resolve-gasless.js.map +1 -0
  253. package/dist/gasless/resolve-wallet-identities.d.ts +30 -0
  254. package/dist/gasless/resolve-wallet-identities.d.ts.map +1 -0
  255. package/dist/gasless/resolve-wallet-identities.js +21 -0
  256. package/dist/gasless/resolve-wallet-identities.js.map +1 -0
  257. package/dist/gasless/resubmit-gasless-request/index.d.ts +3 -0
  258. package/dist/gasless/resubmit-gasless-request/index.d.ts.map +1 -0
  259. package/dist/gasless/resubmit-gasless-request/query.d.ts +19 -0
  260. package/dist/gasless/resubmit-gasless-request/query.d.ts.map +1 -0
  261. package/dist/gasless/resubmit-gasless-request/query.js +12 -0
  262. package/dist/gasless/resubmit-gasless-request/query.js.map +1 -0
  263. package/dist/gasless/resubmit-gasless-request/resubmit-gasless-request.d.ts +50 -0
  264. package/dist/gasless/resubmit-gasless-request/resubmit-gasless-request.d.ts.map +1 -0
  265. package/dist/gasless/resubmit-gasless-request/resubmit-gasless-request.js +52 -0
  266. package/dist/gasless/resubmit-gasless-request/resubmit-gasless-request.js.map +1 -0
  267. package/dist/gasless/settle-gasless-deposit-existing-account/index.d.ts +3 -0
  268. package/dist/gasless/settle-gasless-deposit-existing-account/index.d.ts.map +1 -0
  269. package/dist/gasless/settle-gasless-deposit-existing-account/query.d.ts +18 -0
  270. package/dist/gasless/settle-gasless-deposit-existing-account/query.d.ts.map +1 -0
  271. package/dist/gasless/settle-gasless-deposit-existing-account/query.js +12 -0
  272. package/dist/gasless/settle-gasless-deposit-existing-account/query.js.map +1 -0
  273. package/dist/gasless/settle-gasless-deposit-existing-account/settle-gasless-deposit-existing-account.d.ts +66 -0
  274. package/dist/gasless/settle-gasless-deposit-existing-account/settle-gasless-deposit-existing-account.d.ts.map +1 -0
  275. package/dist/gasless/settle-gasless-deposit-existing-account/settle-gasless-deposit-existing-account.js +36 -0
  276. package/dist/gasless/settle-gasless-deposit-existing-account/settle-gasless-deposit-existing-account.js.map +1 -0
  277. package/dist/gasless/settle-gasless-deposit-new-account/index.d.ts +3 -0
  278. package/dist/gasless/settle-gasless-deposit-new-account/index.d.ts.map +1 -0
  279. package/dist/gasless/settle-gasless-deposit-new-account/query.d.ts +18 -0
  280. package/dist/gasless/settle-gasless-deposit-new-account/query.d.ts.map +1 -0
  281. package/dist/gasless/settle-gasless-deposit-new-account/query.js +12 -0
  282. package/dist/gasless/settle-gasless-deposit-new-account/query.js.map +1 -0
  283. package/dist/gasless/settle-gasless-deposit-new-account/settle-gasless-deposit-new-account.d.ts +106 -0
  284. package/dist/gasless/settle-gasless-deposit-new-account/settle-gasless-deposit-new-account.d.ts.map +1 -0
  285. package/dist/gasless/settle-gasless-deposit-new-account/settle-gasless-deposit-new-account.js +43 -0
  286. package/dist/gasless/settle-gasless-deposit-new-account/settle-gasless-deposit-new-account.js.map +1 -0
  287. package/dist/gasless/status-read-limiter.d.ts +44 -0
  288. package/dist/gasless/status-read-limiter.d.ts.map +1 -0
  289. package/dist/gasless/status-read-limiter.js +28 -0
  290. package/dist/gasless/status-read-limiter.js.map +1 -0
  291. package/dist/gasless/to-gasless-deposit-receipt.d.ts +61 -0
  292. package/dist/gasless/to-gasless-deposit-receipt.d.ts.map +1 -0
  293. package/dist/gasless/to-gasless-deposit-receipt.js +36 -0
  294. package/dist/gasless/to-gasless-deposit-receipt.js.map +1 -0
  295. package/dist/gasless/to-gasless-submit-receipt.d.ts +60 -0
  296. package/dist/gasless/to-gasless-submit-receipt.d.ts.map +1 -0
  297. package/dist/gasless/to-gasless-submit-receipt.js +26 -0
  298. package/dist/gasless/to-gasless-submit-receipt.js.map +1 -0
  299. package/dist/gasless/transient-read.d.ts +32 -0
  300. package/dist/gasless/transient-read.d.ts.map +1 -0
  301. package/dist/gasless/transient-read.js +28 -0
  302. package/dist/gasless/transient-read.js.map +1 -0
  303. package/dist/gasless/types/generated/gasless-deposits.d.ts +170 -0
  304. package/dist/gasless/types/generated/gasless-deposits.d.ts.map +1 -0
  305. package/dist/gasless/types/generated/gasless-operations.d.ts +260 -0
  306. package/dist/gasless/types/generated/gasless-operations.d.ts.map +1 -0
  307. package/dist/gasless/types.d.ts +493 -0
  308. package/dist/gasless/types.d.ts.map +1 -0
  309. package/dist/gasless/types.js +33 -0
  310. package/dist/gasless/types.js.map +1 -0
  311. package/dist/gasless/unconfirmed-submit.d.ts +132 -0
  312. package/dist/gasless/unconfirmed-submit.d.ts.map +1 -0
  313. package/dist/gasless/unconfirmed-submit.js +49 -0
  314. package/dist/gasless/unconfirmed-submit.js.map +1 -0
  315. package/dist/gasless/wait-for-gasless-request/index.d.ts +2 -0
  316. package/dist/gasless/wait-for-gasless-request/index.d.ts.map +1 -0
  317. package/dist/gasless/wait-for-gasless-request/wait-for-gasless-request.d.ts +114 -0
  318. package/dist/gasless/wait-for-gasless-request/wait-for-gasless-request.d.ts.map +1 -0
  319. package/dist/gasless/wait-for-gasless-request/wait-for-gasless-request.js +77 -0
  320. package/dist/gasless/wait-for-gasless-request/wait-for-gasless-request.js.map +1 -0
  321. package/dist/gasless/wallet-id.d.ts +42 -0
  322. package/dist/gasless/wallet-id.d.ts.map +1 -0
  323. package/dist/gasless/wallet-id.js +25 -0
  324. package/dist/gasless/wallet-id.js.map +1 -0
  325. package/dist/gasless/wire-parse.d.ts +33 -0
  326. package/dist/gasless/wire-parse.d.ts.map +1 -0
  327. package/dist/gasless/wire-parse.js +14 -0
  328. package/dist/gasless/wire-parse.js.map +1 -0
  329. package/dist/gasless/wire-types.d.ts +73 -0
  330. package/dist/gasless/wire-types.d.ts.map +1 -0
  331. package/dist/gasless/write-request-registry.d.ts +56 -0
  332. package/dist/gasless/write-request-registry.d.ts.map +1 -0
  333. package/dist/gasless/write-request-registry.js +22 -0
  334. package/dist/gasless/write-request-registry.js.map +1 -0
  335. package/dist/index.d.ts +82 -17
  336. package/dist/index.d.ts.map +1 -1
  337. package/dist/index.js +568 -497
  338. package/dist/pools/listing-config/to-listing-config.js +2 -2
  339. package/dist/pools/listing-config/to-listing-config.js.map +1 -1
  340. package/dist/pools/market-detail/to-listing-market-detail.d.ts.map +1 -1
  341. package/dist/pools/market-detail/to-listing-market-detail.js +46 -40
  342. package/dist/pools/market-detail/to-listing-market-detail.js.map +1 -1
  343. package/dist/pools/markets/to-listing-market.d.ts.map +1 -1
  344. package/dist/pools/markets/to-listing-market.js +2 -1
  345. package/dist/pools/markets/to-listing-market.js.map +1 -1
  346. package/dist/pools/types/generated/listing-backend.d.ts +163 -16
  347. package/dist/pools/types/generated/listing-backend.d.ts.map +1 -1
  348. package/dist/pools/types/generated/listing-backend.js.map +1 -1
  349. package/dist/pools/types.d.ts +52 -2
  350. package/dist/pools/types.d.ts.map +1 -1
  351. package/dist/pools/types.js +6 -4
  352. package/dist/pools/types.js.map +1 -1
  353. package/dist/quotes/get-quote-funding/get-quote-funding.d.ts +3 -2
  354. package/dist/quotes/get-quote-funding/get-quote-funding.d.ts.map +1 -1
  355. package/dist/quotes/get-quote-funding/get-quote-funding.js.map +1 -1
  356. package/dist/quotes/get-quote-funding/types.d.ts +4 -2
  357. package/dist/quotes/get-quote-funding/types.d.ts.map +1 -1
  358. package/dist/quotes/get-quote-pending-funding/get-quote-pending-funding.d.ts +68 -0
  359. package/dist/quotes/get-quote-pending-funding/get-quote-pending-funding.d.ts.map +1 -0
  360. package/dist/quotes/get-quote-pending-funding/get-quote-pending-funding.js +34 -0
  361. package/dist/quotes/get-quote-pending-funding/get-quote-pending-funding.js.map +1 -0
  362. package/dist/quotes/get-quote-pending-funding/index.d.ts +4 -0
  363. package/dist/quotes/get-quote-pending-funding/index.d.ts.map +1 -0
  364. package/dist/quotes/get-quote-pending-funding/query.d.ts +58 -0
  365. package/dist/quotes/get-quote-pending-funding/query.d.ts.map +1 -0
  366. package/dist/quotes/get-quote-pending-funding/query.js +27 -0
  367. package/dist/quotes/get-quote-pending-funding/query.js.map +1 -0
  368. package/dist/quotes/get-quote-pending-funding/types.d.ts +19 -0
  369. package/dist/quotes/get-quote-pending-funding/types.d.ts.map +1 -0
  370. package/dist/quotes/get-quotes-events-by-type/get-quotes-events-by-type.d.ts +2 -1
  371. package/dist/quotes/get-quotes-events-by-type/get-quotes-events-by-type.d.ts.map +1 -1
  372. package/dist/quotes/get-quotes-events-by-type/get-quotes-events-by-type.js.map +1 -1
  373. package/dist/quotes/grouping/aggregate-group-funding.d.ts +9 -8
  374. package/dist/quotes/grouping/aggregate-group-funding.d.ts.map +1 -1
  375. package/dist/quotes/grouping/aggregate-group-funding.js.map +1 -1
  376. package/dist/quotes/grouping/partition-quotes.d.ts +30 -0
  377. package/dist/quotes/grouping/partition-quotes.d.ts.map +1 -1
  378. package/dist/quotes/grouping/partition-quotes.js +9 -6
  379. package/dist/quotes/grouping/partition-quotes.js.map +1 -1
  380. package/dist/quotes/index.d.ts +1 -0
  381. package/dist/quotes/index.d.ts.map +1 -1
  382. package/dist/quotes/unified-quote.d.ts +6 -6
  383. package/dist/quotes/unified-quote.js.map +1 -1
  384. package/dist/shared/errors/redact-url.d.ts +15 -0
  385. package/dist/shared/errors/redact-url.d.ts.map +1 -0
  386. package/dist/shared/errors/redact-url.js +9 -0
  387. package/dist/shared/errors/redact-url.js.map +1 -0
  388. package/dist/shared/errors/retry-after.d.ts +17 -0
  389. package/dist/shared/errors/retry-after.d.ts.map +1 -0
  390. package/dist/shared/errors/retry-after.js +16 -0
  391. package/dist/shared/errors/retry-after.js.map +1 -0
  392. package/dist/shared/errors/sanitized-api-error.d.ts +32 -0
  393. package/dist/shared/errors/sanitized-api-error.d.ts.map +1 -0
  394. package/dist/shared/errors/sanitized-api-error.js +41 -0
  395. package/dist/shared/errors/sanitized-api-error.js.map +1 -0
  396. package/dist/shared/errors/symm-error.d.ts +39 -4
  397. package/dist/shared/errors/symm-error.d.ts.map +1 -1
  398. package/dist/shared/errors/symm-error.js +29 -15
  399. package/dist/shared/errors/symm-error.js.map +1 -1
  400. package/dist/shared/types/properties.d.ts +53 -5
  401. package/dist/shared/types/properties.d.ts.map +1 -1
  402. package/dist/shared/utils/core-units.d.ts +82 -0
  403. package/dist/shared/utils/core-units.d.ts.map +1 -0
  404. package/dist/shared/utils/core-units.js +21 -0
  405. package/dist/shared/utils/core-units.js.map +1 -0
  406. package/dist/shared/utils/http-header.d.ts +16 -0
  407. package/dist/shared/utils/http-header.d.ts.map +1 -0
  408. package/dist/shared/utils/http-header.js +14 -0
  409. package/dist/shared/utils/http-header.js.map +1 -0
  410. package/dist/shared/utils/query.js +2 -1
  411. package/dist/shared/utils/query.js.map +1 -1
  412. package/dist/solvers/force-close/force-close-auto.d.ts +6 -2
  413. package/dist/solvers/force-close/force-close-auto.d.ts.map +1 -1
  414. package/dist/solvers/force-close/force-close-auto.js +2 -1
  415. package/dist/solvers/force-close/force-close-auto.js.map +1 -1
  416. package/dist/solvers/force-close/force-close-position.d.ts +9 -3
  417. package/dist/solvers/force-close/force-close-position.d.ts.map +1 -1
  418. package/dist/solvers/force-close/force-close-position.js +2 -1
  419. package/dist/solvers/force-close/force-close-position.js.map +1 -1
  420. package/dist/solvers/instant-open/instant-open/adapters/enigma-instant-open.js +12 -12
  421. package/dist/solvers/instant-open/instant-open/adapters/rasa-instant-open.js +7 -7
  422. package/dist/symmio-contracts/abi/index.d.ts +2 -0
  423. package/dist/symmio-contracts/abi/index.d.ts.map +1 -1
  424. package/dist/symmio-contracts/abi/v0.8.6/gasless-layer.d.ts +2323 -0
  425. package/dist/symmio-contracts/abi/v0.8.6/gasless-layer.d.ts.map +1 -0
  426. package/dist/symmio-contracts/abi/v0.8.6/gasless-layer.js +2706 -0
  427. package/dist/symmio-contracts/abi/v0.8.6/gasless-layer.js.map +1 -0
  428. package/dist/symmio-contracts/abi/v0.8.6/gasless-wallet.d.ts +137 -0
  429. package/dist/symmio-contracts/abi/v0.8.6/gasless-wallet.d.ts.map +1 -0
  430. package/dist/symmio-contracts/abi/v0.8.6/gasless-wallet.js +145 -0
  431. package/dist/symmio-contracts/abi/v0.8.6/gasless-wallet.js.map +1 -0
  432. package/dist/symmio-contracts/abi/v0.8.6/index.d.ts +2 -0
  433. package/dist/symmio-contracts/abi/v0.8.6/index.d.ts.map +1 -1
  434. package/dist/symmio-contracts/abi/v0.8.6/instant-layer.d.ts +1879 -37
  435. package/dist/symmio-contracts/abi/v0.8.6/instant-layer.d.ts.map +1 -1
  436. package/dist/symmio-contracts/abi/v0.8.6/instant-layer.js +2180 -50
  437. package/dist/symmio-contracts/abi/v0.8.6/instant-layer.js.map +1 -1
  438. package/dist/symmio-contracts/account-layer/actions/add-margin.d.ts +2 -2
  439. package/dist/symmio-contracts/account-layer/actions/add-margin.d.ts.map +1 -1
  440. package/dist/symmio-contracts/account-layer/actions/add-margin.js +34 -17
  441. package/dist/symmio-contracts/account-layer/actions/add-margin.js.map +1 -1
  442. package/dist/symmio-contracts/account-layer/actions/create-sub-accounts.d.ts +11 -2
  443. package/dist/symmio-contracts/account-layer/actions/create-sub-accounts.d.ts.map +1 -1
  444. package/dist/symmio-contracts/account-layer/actions/create-sub-accounts.js +33 -17
  445. package/dist/symmio-contracts/account-layer/actions/create-sub-accounts.js.map +1 -1
  446. package/dist/symmio-contracts/account-layer/actions/delete-sub-account.d.ts +9 -2
  447. package/dist/symmio-contracts/account-layer/actions/delete-sub-account.d.ts.map +1 -1
  448. package/dist/symmio-contracts/account-layer/actions/delete-sub-account.js +33 -16
  449. package/dist/symmio-contracts/account-layer/actions/delete-sub-account.js.map +1 -1
  450. package/dist/symmio-contracts/account-layer/actions/deposit-and-allocate-for-account.d.ts +8 -2
  451. package/dist/symmio-contracts/account-layer/actions/deposit-and-allocate-for-account.d.ts.map +1 -1
  452. package/dist/symmio-contracts/account-layer/actions/deposit-and-allocate-for-account.js +34 -17
  453. package/dist/symmio-contracts/account-layer/actions/deposit-and-allocate-for-account.js.map +1 -1
  454. package/dist/symmio-contracts/account-layer/actions/deposit-for-account.d.ts +8 -2
  455. package/dist/symmio-contracts/account-layer/actions/deposit-for-account.d.ts.map +1 -1
  456. package/dist/symmio-contracts/account-layer/actions/deposit-for-account.js +34 -17
  457. package/dist/symmio-contracts/account-layer/actions/deposit-for-account.js.map +1 -1
  458. package/dist/symmio-contracts/account-layer/actions/edit-account-name.d.ts +7 -2
  459. package/dist/symmio-contracts/account-layer/actions/edit-account-name.d.ts.map +1 -1
  460. package/dist/symmio-contracts/account-layer/actions/edit-account-name.js +34 -17
  461. package/dist/symmio-contracts/account-layer/actions/edit-account-name.js.map +1 -1
  462. package/dist/symmio-contracts/account-layer/actions/get-account-balance-info.d.ts +1 -1
  463. package/dist/symmio-contracts/account-layer/actions/get-account-balance-info.js.map +1 -1
  464. package/dist/symmio-contracts/account-layer/actions/get-account-balance-of.d.ts +9 -3
  465. package/dist/symmio-contracts/account-layer/actions/get-account-balance-of.d.ts.map +1 -1
  466. package/dist/symmio-contracts/account-layer/actions/get-account-balance-of.js.map +1 -1
  467. package/dist/symmio-contracts/account-layer/actions/remove-margin.d.ts +2 -2
  468. package/dist/symmio-contracts/account-layer/actions/remove-margin.d.ts.map +1 -1
  469. package/dist/symmio-contracts/account-layer/actions/remove-margin.js +41 -20
  470. package/dist/symmio-contracts/account-layer/actions/remove-margin.js.map +1 -1
  471. package/dist/symmio-contracts/account-layer/types.d.ts +3 -1
  472. package/dist/symmio-contracts/account-layer/types.d.ts.map +1 -1
  473. package/dist/symmio-contracts/account-layer/types.js.map +1 -1
  474. package/dist/symmio-contracts/instant-layer/actions/finalize-revoke-delegation.d.ts +60 -0
  475. package/dist/symmio-contracts/instant-layer/actions/finalize-revoke-delegation.d.ts.map +1 -0
  476. package/dist/symmio-contracts/instant-layer/actions/finalize-revoke-delegation.js +35 -0
  477. package/dist/symmio-contracts/instant-layer/actions/finalize-revoke-delegation.js.map +1 -0
  478. package/dist/symmio-contracts/instant-layer/actions/get-active-delegations.d.ts +91 -0
  479. package/dist/symmio-contracts/instant-layer/actions/get-active-delegations.d.ts.map +1 -0
  480. package/dist/symmio-contracts/instant-layer/actions/get-active-delegations.js +19 -0
  481. package/dist/symmio-contracts/instant-layer/actions/get-active-delegations.js.map +1 -0
  482. package/dist/symmio-contracts/instant-layer/actions/get-instant-layer-nonce.d.ts +36 -0
  483. package/dist/symmio-contracts/instant-layer/actions/get-instant-layer-nonce.d.ts.map +1 -0
  484. package/dist/symmio-contracts/instant-layer/actions/get-instant-layer-nonce.js +15 -0
  485. package/dist/symmio-contracts/instant-layer/actions/get-instant-layer-nonce.js.map +1 -0
  486. package/dist/symmio-contracts/instant-layer/actions/get-pending-revocation-etas.d.ts +79 -0
  487. package/dist/symmio-contracts/instant-layer/actions/get-pending-revocation-etas.d.ts.map +1 -0
  488. package/dist/symmio-contracts/instant-layer/actions/get-pending-revocation-etas.js +32 -0
  489. package/dist/symmio-contracts/instant-layer/actions/get-pending-revocation-etas.js.map +1 -0
  490. package/dist/symmio-contracts/instant-layer/actions/get-revocation-cooldown.d.ts +43 -0
  491. package/dist/symmio-contracts/instant-layer/actions/get-revocation-cooldown.d.ts.map +1 -0
  492. package/dist/symmio-contracts/instant-layer/actions/get-revocation-cooldown.js +14 -0
  493. package/dist/symmio-contracts/instant-layer/actions/get-revocation-cooldown.js.map +1 -0
  494. package/dist/symmio-contracts/instant-layer/actions/grant-delegation.d.ts +24 -3
  495. package/dist/symmio-contracts/instant-layer/actions/grant-delegation.d.ts.map +1 -1
  496. package/dist/symmio-contracts/instant-layer/actions/grant-delegation.js +48 -22
  497. package/dist/symmio-contracts/instant-layer/actions/grant-delegation.js.map +1 -1
  498. package/dist/symmio-contracts/instant-layer/actions/initiate-revoke-delegation.d.ts +62 -0
  499. package/dist/symmio-contracts/instant-layer/actions/initiate-revoke-delegation.d.ts.map +1 -0
  500. package/dist/symmio-contracts/instant-layer/actions/initiate-revoke-delegation.js +35 -0
  501. package/dist/symmio-contracts/instant-layer/actions/initiate-revoke-delegation.js.map +1 -0
  502. package/dist/symmio-contracts/instant-layer/index.d.ts +12 -0
  503. package/dist/symmio-contracts/instant-layer/index.d.ts.map +1 -1
  504. package/dist/symmio-contracts/instant-layer/query/finalize-revoke-delegation.d.ts +22 -0
  505. package/dist/symmio-contracts/instant-layer/query/finalize-revoke-delegation.d.ts.map +1 -0
  506. package/dist/symmio-contracts/instant-layer/query/finalize-revoke-delegation.js +12 -0
  507. package/dist/symmio-contracts/instant-layer/query/finalize-revoke-delegation.js.map +1 -0
  508. package/dist/symmio-contracts/instant-layer/query/get-active-delegations.d.ts +36 -0
  509. package/dist/symmio-contracts/instant-layer/query/get-active-delegations.d.ts.map +1 -0
  510. package/dist/symmio-contracts/instant-layer/query/get-active-delegations.js +29 -0
  511. package/dist/symmio-contracts/instant-layer/query/get-active-delegations.js.map +1 -0
  512. package/dist/symmio-contracts/instant-layer/query/get-instant-layer-nonce.d.ts +39 -0
  513. package/dist/symmio-contracts/instant-layer/query/get-instant-layer-nonce.d.ts.map +1 -0
  514. package/dist/symmio-contracts/instant-layer/query/get-instant-layer-nonce.js +27 -0
  515. package/dist/symmio-contracts/instant-layer/query/get-instant-layer-nonce.js.map +1 -0
  516. package/dist/symmio-contracts/instant-layer/query/get-is-delegation-active.js +7 -7
  517. package/dist/symmio-contracts/instant-layer/query/get-pending-revocation-etas.d.ts +42 -0
  518. package/dist/symmio-contracts/instant-layer/query/get-pending-revocation-etas.d.ts.map +1 -0
  519. package/dist/symmio-contracts/instant-layer/query/get-pending-revocation-etas.js +30 -0
  520. package/dist/symmio-contracts/instant-layer/query/get-pending-revocation-etas.js.map +1 -0
  521. package/dist/symmio-contracts/instant-layer/query/get-revocation-cooldown.d.ts +36 -0
  522. package/dist/symmio-contracts/instant-layer/query/get-revocation-cooldown.d.ts.map +1 -0
  523. package/dist/symmio-contracts/instant-layer/query/get-revocation-cooldown.js +21 -0
  524. package/dist/symmio-contracts/instant-layer/query/get-revocation-cooldown.js.map +1 -0
  525. package/dist/symmio-contracts/instant-layer/query/initiate-revoke-delegation.d.ts +22 -0
  526. package/dist/symmio-contracts/instant-layer/query/initiate-revoke-delegation.d.ts.map +1 -0
  527. package/dist/symmio-contracts/instant-layer/query/initiate-revoke-delegation.js +12 -0
  528. package/dist/symmio-contracts/instant-layer/query/initiate-revoke-delegation.js.map +1 -0
  529. package/dist/symmio-contracts/symmio/actions/allocate.d.ts +2 -2
  530. package/dist/symmio-contracts/symmio/actions/allocate.d.ts.map +1 -1
  531. package/dist/symmio-contracts/symmio/actions/allocate.js +2 -1
  532. package/dist/symmio-contracts/symmio/actions/allocate.js.map +1 -1
  533. package/dist/symmio-contracts/symmio/actions/approve-operational-fee.d.ts +87 -0
  534. package/dist/symmio-contracts/symmio/actions/approve-operational-fee.d.ts.map +1 -0
  535. package/dist/symmio-contracts/symmio/actions/approve-operational-fee.js +38 -0
  536. package/dist/symmio-contracts/symmio/actions/approve-operational-fee.js.map +1 -0
  537. package/dist/symmio-contracts/symmio/actions/deallocate-and-initiate-withdraw.d.ts +2 -2
  538. package/dist/symmio-contracts/symmio/actions/deallocate-and-initiate-withdraw.d.ts.map +1 -1
  539. package/dist/symmio-contracts/symmio/actions/deallocate-and-initiate-withdraw.js +2 -1
  540. package/dist/symmio-contracts/symmio/actions/deallocate-and-initiate-withdraw.js.map +1 -1
  541. package/dist/symmio-contracts/symmio/actions/deallocate.d.ts +2 -2
  542. package/dist/symmio-contracts/symmio/actions/deallocate.d.ts.map +1 -1
  543. package/dist/symmio-contracts/symmio/actions/deallocate.js +2 -1
  544. package/dist/symmio-contracts/symmio/actions/deallocate.js.map +1 -1
  545. package/dist/symmio-contracts/symmio/actions/finalize-withdraw-request.d.ts +15 -3
  546. package/dist/symmio-contracts/symmio/actions/finalize-withdraw-request.d.ts.map +1 -1
  547. package/dist/symmio-contracts/symmio/actions/finalize-withdraw-request.js +34 -17
  548. package/dist/symmio-contracts/symmio/actions/finalize-withdraw-request.js.map +1 -1
  549. package/dist/symmio-contracts/symmio/actions/force-cancel-close-request.d.ts +2 -2
  550. package/dist/symmio-contracts/symmio/actions/force-cancel-close-request.d.ts.map +1 -1
  551. package/dist/symmio-contracts/symmio/actions/force-cancel-close-request.js +2 -1
  552. package/dist/symmio-contracts/symmio/actions/force-cancel-close-request.js.map +1 -1
  553. package/dist/symmio-contracts/symmio/actions/force-cancel-quote.d.ts +2 -2
  554. package/dist/symmio-contracts/symmio/actions/force-cancel-quote.d.ts.map +1 -1
  555. package/dist/symmio-contracts/symmio/actions/force-cancel-quote.js +2 -1
  556. package/dist/symmio-contracts/symmio/actions/force-cancel-quote.js.map +1 -1
  557. package/dist/symmio-contracts/symmio/actions/get-operational-fee-allowance.d.ts +85 -0
  558. package/dist/symmio-contracts/symmio/actions/get-operational-fee-allowance.d.ts.map +1 -0
  559. package/dist/symmio-contracts/symmio/actions/get-operational-fee-allowance.js +29 -0
  560. package/dist/symmio-contracts/symmio/actions/get-operational-fee-allowance.js.map +1 -0
  561. package/dist/symmio-contracts/symmio/actions/initiate-withdraw.d.ts +2 -2
  562. package/dist/symmio-contracts/symmio/actions/initiate-withdraw.d.ts.map +1 -1
  563. package/dist/symmio-contracts/symmio/actions/initiate-withdraw.js +2 -1
  564. package/dist/symmio-contracts/symmio/actions/initiate-withdraw.js.map +1 -1
  565. package/dist/symmio-contracts/symmio/actions/request-cancel-withdraw.d.ts +2 -2
  566. package/dist/symmio-contracts/symmio/actions/request-cancel-withdraw.d.ts.map +1 -1
  567. package/dist/symmio-contracts/symmio/actions/request-cancel-withdraw.js +2 -1
  568. package/dist/symmio-contracts/symmio/actions/request-cancel-withdraw.js.map +1 -1
  569. package/dist/symmio-contracts/symmio/actions/request-to-cancel-close-request.d.ts +2 -2
  570. package/dist/symmio-contracts/symmio/actions/request-to-cancel-close-request.d.ts.map +1 -1
  571. package/dist/symmio-contracts/symmio/actions/request-to-cancel-close-request.js +2 -1
  572. package/dist/symmio-contracts/symmio/actions/request-to-cancel-close-request.js.map +1 -1
  573. package/dist/symmio-contracts/symmio/actions/request-to-cancel-quote.d.ts +2 -2
  574. package/dist/symmio-contracts/symmio/actions/request-to-cancel-quote.d.ts.map +1 -1
  575. package/dist/symmio-contracts/symmio/actions/request-to-cancel-quote.js +2 -1
  576. package/dist/symmio-contracts/symmio/actions/request-to-cancel-quote.js.map +1 -1
  577. package/dist/symmio-contracts/symmio/actions/withdraw-auto.d.ts +9 -7
  578. package/dist/symmio-contracts/symmio/actions/withdraw-auto.d.ts.map +1 -1
  579. package/dist/symmio-contracts/symmio/actions/withdraw-auto.js +24 -22
  580. package/dist/symmio-contracts/symmio/actions/withdraw-auto.js.map +1 -1
  581. package/dist/symmio-contracts/symmio/actions/withdraw.d.ts +2 -2
  582. package/dist/symmio-contracts/symmio/actions/withdraw.d.ts.map +1 -1
  583. package/dist/symmio-contracts/symmio/actions/withdraw.js +4 -2
  584. package/dist/symmio-contracts/symmio/actions/withdraw.js.map +1 -1
  585. package/dist/symmio-contracts/symmio/get-funding-fees-of-party-b/get-funding-fees-of-party-b.d.ts +43 -0
  586. package/dist/symmio-contracts/symmio/get-funding-fees-of-party-b/get-funding-fees-of-party-b.d.ts.map +1 -0
  587. package/dist/symmio-contracts/symmio/get-funding-fees-of-party-b/get-funding-fees-of-party-b.js +15 -0
  588. package/dist/symmio-contracts/symmio/get-funding-fees-of-party-b/get-funding-fees-of-party-b.js.map +1 -0
  589. package/dist/symmio-contracts/symmio/get-funding-fees-of-party-b/index.d.ts +4 -0
  590. package/dist/symmio-contracts/symmio/get-funding-fees-of-party-b/index.d.ts.map +1 -0
  591. package/dist/symmio-contracts/symmio/get-funding-fees-of-party-b/query.d.ts +43 -0
  592. package/dist/symmio-contracts/symmio/get-funding-fees-of-party-b/query.d.ts.map +1 -0
  593. package/dist/symmio-contracts/symmio/get-funding-fees-of-party-b/query.js +25 -0
  594. package/dist/symmio-contracts/symmio/get-funding-fees-of-party-b/query.js.map +1 -0
  595. package/dist/symmio-contracts/symmio/get-funding-fees-of-party-b/types.d.ts +85 -0
  596. package/dist/symmio-contracts/symmio/get-funding-fees-of-party-b/types.d.ts.map +1 -0
  597. package/dist/symmio-contracts/symmio/index.d.ts +5 -0
  598. package/dist/symmio-contracts/symmio/index.d.ts.map +1 -1
  599. package/dist/symmio-contracts/symmio/internal/call-as-sub-account.d.ts +2 -1
  600. package/dist/symmio-contracts/symmio/internal/call-as-sub-account.d.ts.map +1 -1
  601. package/dist/symmio-contracts/symmio/internal/call-as-sub-account.js +46 -17
  602. package/dist/symmio-contracts/symmio/internal/call-as-sub-account.js.map +1 -1
  603. package/dist/symmio-contracts/symmio/query/approve-operational-fee.d.ts +18 -0
  604. package/dist/symmio-contracts/symmio/query/approve-operational-fee.d.ts.map +1 -0
  605. package/dist/symmio-contracts/symmio/query/approve-operational-fee.js +12 -0
  606. package/dist/symmio-contracts/symmio/query/approve-operational-fee.js.map +1 -0
  607. package/dist/symmio-contracts/symmio/query/get-operational-fee-allowance.d.ts +35 -0
  608. package/dist/symmio-contracts/symmio/query/get-operational-fee-allowance.d.ts.map +1 -0
  609. package/dist/symmio-contracts/symmio/query/get-operational-fee-allowance.js +28 -0
  610. package/dist/symmio-contracts/symmio/query/get-operational-fee-allowance.js.map +1 -0
  611. package/dist/symmio-contracts/symmio/types.d.ts +6 -6
  612. package/dist/symmio-contracts/symmio/types.js.map +1 -1
  613. package/dist/symmio-subgraph/executeSubgraphRequest.d.ts +2 -1
  614. package/dist/symmio-subgraph/executeSubgraphRequest.d.ts.map +1 -1
  615. package/dist/symmio-subgraph/executeSubgraphRequest.js +24 -21
  616. package/dist/symmio-subgraph/executeSubgraphRequest.js.map +1 -1
  617. package/dist/websocket/gasless/close-code-policy.d.ts +51 -0
  618. package/dist/websocket/gasless/close-code-policy.d.ts.map +1 -0
  619. package/dist/websocket/gasless/close-code-policy.js +75 -0
  620. package/dist/websocket/gasless/close-code-policy.js.map +1 -0
  621. package/dist/websocket/gasless/gasless-stream-hub.d.ts +61 -0
  622. package/dist/websocket/gasless/gasless-stream-hub.d.ts.map +1 -0
  623. package/dist/websocket/gasless/gasless-stream-hub.js +311 -0
  624. package/dist/websocket/gasless/gasless-stream-hub.js.map +1 -0
  625. package/dist/websocket/gasless/index.d.ts +7 -0
  626. package/dist/websocket/gasless/index.d.ts.map +1 -0
  627. package/dist/websocket/gasless/parse-gasless-stream-message.d.ts +82 -0
  628. package/dist/websocket/gasless/parse-gasless-stream-message.d.ts.map +1 -0
  629. package/dist/websocket/gasless/parse-gasless-stream-message.js +136 -0
  630. package/dist/websocket/gasless/parse-gasless-stream-message.js.map +1 -0
  631. package/dist/websocket/gasless/resolve-gasless-stream-url.d.ts +58 -0
  632. package/dist/websocket/gasless/resolve-gasless-stream-url.d.ts.map +1 -0
  633. package/dist/websocket/gasless/resolve-gasless-stream-url.js +59 -0
  634. package/dist/websocket/gasless/resolve-gasless-stream-url.js.map +1 -0
  635. package/dist/websocket/gasless/types.d.ts +48 -0
  636. package/dist/websocket/gasless/types.d.ts.map +1 -0
  637. package/dist/websocket/gasless/watch-gasless-request.d.ts +72 -0
  638. package/dist/websocket/gasless/watch-gasless-request.d.ts.map +1 -0
  639. package/dist/websocket/gasless/watch-gasless-request.js +35 -0
  640. package/dist/websocket/gasless/watch-gasless-request.js.map +1 -0
  641. package/dist/websocket/index.d.ts +1 -0
  642. package/dist/websocket/index.d.ts.map +1 -1
  643. package/dist/websocket/socket/create-reconnecting-socket.d.ts +39 -6
  644. package/dist/websocket/socket/create-reconnecting-socket.d.ts.map +1 -1
  645. package/dist/websocket/socket/create-reconnecting-socket.js +92 -53
  646. package/dist/websocket/socket/create-reconnecting-socket.js.map +1 -1
  647. package/dist/websocket/socket/socket-status.d.ts +7 -2
  648. package/dist/websocket/socket/socket-status.d.ts.map +1 -1
  649. package/dist/websocket/socket/socket-status.js.map +1 -1
  650. package/package.json +1 -1
@@ -0,0 +1,132 @@
1
+ import { GaslessService } from './types.js';
2
+ /**
3
+ * SDK error code of a submit whose outcome the SDK could not establish.
4
+ *
5
+ * @internal
6
+ */
7
+ export declare const GASLESS_SUBMIT_UNCONFIRMED_CODE = "GASLESS_SUBMIT_UNCONFIRMED";
8
+ /**
9
+ * The gateway paths a gasless **submit** POSTs to, with the service that stores
10
+ * the resulting workflow and the SDK error code its failures carry.
11
+ *
12
+ * A submit is the only kind of gasless request that can leave a side effect
13
+ * behind when its response is lost, so the retry, idempotency and
14
+ * "unconfirmed" machinery is keyed off this table rather than off a free-form
15
+ * path string.
16
+ *
17
+ * @internal
18
+ */
19
+ export declare const GASLESS_SUBMIT_ROUTES: {
20
+ readonly "/gateway/relay-instant": {
21
+ readonly service: "operations";
22
+ readonly code: "GASLESS_RELAY_SUBMIT_FAILED";
23
+ };
24
+ readonly "/deposit-settlements/new-account": {
25
+ readonly service: "deposits";
26
+ readonly code: "GASLESS_SETTLEMENT_SUBMIT_FAILED";
27
+ };
28
+ readonly "/deposit-settlements/existing-account": {
29
+ readonly service: "deposits";
30
+ readonly code: "GASLESS_SETTLEMENT_SUBMIT_FAILED";
31
+ };
32
+ };
33
+ /**
34
+ * One of the three gateway paths a gasless submit POSTs to.
35
+ *
36
+ * Closed on purpose: a resubmit replays the recorded bytes against the same
37
+ * route, and an open string would let an arbitrary path be POSTed with a
38
+ * signed body.
39
+ */
40
+ export type GaslessSubmitPath = keyof typeof GASLESS_SUBMIT_ROUTES;
41
+ /**
42
+ * Everything needed to replay one gasless submit **byte-for-byte**, recovered
43
+ * from a `GASLESS_SUBMIT_UNCONFIRMED` error with
44
+ * {@link getGaslessUnconfirmedSubmit}.
45
+ *
46
+ * The vendor's contract is that resending the identical request under the same
47
+ * idempotency key either lands it or returns the record it already created, so
48
+ * a lost response is recoverable — but only if the exact JSON that was sent is
49
+ * still available. That is what this carries: `body` is the object that was
50
+ * serialized, not a rebuilt equivalent.
51
+ *
52
+ * Persist it next to the workflow you were submitting. Do **not** ship it to
53
+ * third-party logging: `body` holds the user's signed operations, and a
54
+ * signature the service never executed stays valid until its deadline.
55
+ */
56
+ export interface GaslessUnconfirmedSubmit {
57
+ /** The chain the submit was made on. */
58
+ chainId: number;
59
+ /** The service that stores the workflow, derived from {@link GaslessUnconfirmedSubmit.path}. */
60
+ service: GaslessService;
61
+ /** The gateway path the body was POSTed to. */
62
+ path: GaslessSubmitPath;
63
+ /** The exact JSON body that was sent, to resend unchanged. */
64
+ body: unknown;
65
+ /** The idempotency key the submit carried, and that a resend must reuse. */
66
+ idempotencyKey: string;
67
+ }
68
+ /**
69
+ * The HTTP status an error reports, whatever error class carries it.
70
+ *
71
+ * Read structurally rather than through `instanceof SymmApiError`, so the
72
+ * gasless predicates keep working on the error a framework layer re-wrapped —
73
+ * `@symmio/trading-react`'s `SymmioRequestError` copies `status`,
74
+ * `responseData` and `code` off the API error and is what a hook consumer
75
+ * actually catches.
76
+ *
77
+ * @internal
78
+ */
79
+ export declare function readGaslessErrorStatus(err: unknown): number | undefined;
80
+ /** The SDK error code an error carries, read structurally. @internal */
81
+ export declare function readGaslessErrorCode(err: unknown): string | undefined;
82
+ /**
83
+ * Recover the replayable submit from a `GASLESS_SUBMIT_UNCONFIRMED` error.
84
+ *
85
+ * That error means the SDK could not establish whether the service accepted the
86
+ * request: the transport failed ambiguously and the same-key resend did not land
87
+ * either, however it was answered, or a `202` came back without a `request_id`.
88
+ * The relayed transaction may still execute, so the only safe recovery is to
89
+ * **resend the same bytes under the same key** with
90
+ * {@link resubmitGaslessRequest} — never to re-run the intent through the
91
+ * wallet.
92
+ *
93
+ * @param err - Anything caught from a gasless submit, including an error a
94
+ * framework layer re-wrapped.
95
+ * @returns The replayable submit, or `null` when `err` is not an unconfirmed submit.
96
+ *
97
+ * @example
98
+ * ```ts
99
+ * try {
100
+ * await relayInstantOperations(config, parameters);
101
+ * } catch (err) {
102
+ * const submit = getGaslessUnconfirmedSubmit(err);
103
+ * if (!submit) throw err;
104
+ * await persistPendingSubmit(submit);
105
+ * const receipt = await resubmitGaslessRequest(config, submit);
106
+ * }
107
+ * ```
108
+ */
109
+ export declare function getGaslessUnconfirmedSubmit(err: unknown): GaslessUnconfirmedSubmit | null;
110
+ /**
111
+ * Whether an error is the gateway's `409 IDEMPOTENCY_KEY_CONFLICT` — the key
112
+ * is already bound to a **different** wallet selection or workflow.
113
+ *
114
+ * It is a client bug, never a transport failure: the service refused to reuse
115
+ * the key for a payload that is not the one it first saw. Mint a fresh key for
116
+ * the new action; re-signing with the old key cannot succeed. It is also never
117
+ * grounds for a wallet-paid retry, because the workflow the key does belong to
118
+ * may still be executing.
119
+ *
120
+ * @param err - Anything caught from a gasless submit, including an error a
121
+ * framework layer re-wrapped.
122
+ * @returns `true` only for that conflict.
123
+ *
124
+ * @example
125
+ * ```ts
126
+ * if (isGaslessIdempotencyConflictError(err)) {
127
+ * // reconcile the workflow this key already created, then rebuild with a new key
128
+ * }
129
+ * ```
130
+ */
131
+ export declare function isGaslessIdempotencyConflictError(err: unknown): boolean;
132
+ //# sourceMappingURL=unconfirmed-submit.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"unconfirmed-submit.d.ts","sourceRoot":"","sources":["../../src/gasless/unconfirmed-submit.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAE9C;;;;GAIG;AACH,eAAO,MAAM,+BAA+B,+BAA+B,CAAC;AAK5E;;;;;;;;;;GAUG;AACH,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;CAI4C,CAAC;AAE/E;;;;;;GAMG;AACH,MAAM,MAAM,iBAAiB,GAAG,MAAM,OAAO,qBAAqB,CAAC;AAEnE;;;;;;;;;;;;;;GAcG;AACH,MAAM,WAAW,wBAAwB;IACvC,wCAAwC;IACxC,OAAO,EAAE,MAAM,CAAC;IAChB,gGAAgG;IAChG,OAAO,EAAE,cAAc,CAAC;IACxB,+CAA+C;IAC/C,IAAI,EAAE,iBAAiB,CAAC;IACxB,8DAA8D;IAC9D,IAAI,EAAE,OAAO,CAAC;IACd,4EAA4E;IAC5E,cAAc,EAAE,MAAM,CAAC;CACxB;AAMD;;;;;;;;;;GAUG;AACH,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS,CAIvE;AAED,wEAAwE;AACxE,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS,CAGrE;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,wBAAgB,2BAA2B,CAAC,GAAG,EAAE,OAAO,GAAG,wBAAwB,GAAG,IAAI,CAYzF;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,iCAAiC,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO,CAIvE"}
@@ -0,0 +1,49 @@
1
+ import { parseGaslessErrorDetail as e } from "./errors.js";
2
+ //#region src/gasless/unconfirmed-submit.ts
3
+ var t = "GASLESS_SUBMIT_UNCONFIRMED", n = "IDEMPOTENCY_KEY_CONFLICT", r = {
4
+ "/gateway/relay-instant": {
5
+ service: "operations",
6
+ code: "GASLESS_RELAY_SUBMIT_FAILED"
7
+ },
8
+ "/deposit-settlements/new-account": {
9
+ service: "deposits",
10
+ code: "GASLESS_SETTLEMENT_SUBMIT_FAILED"
11
+ },
12
+ "/deposit-settlements/existing-account": {
13
+ service: "deposits",
14
+ code: "GASLESS_SETTLEMENT_SUBMIT_FAILED"
15
+ }
16
+ };
17
+ function i(e) {
18
+ return typeof e == "object" && !!e && !Array.isArray(e);
19
+ }
20
+ function a(e) {
21
+ if (!i(e)) return;
22
+ let t = e.status;
23
+ return typeof t == "number" ? t : void 0;
24
+ }
25
+ function o(e) {
26
+ if (i(e)) return typeof e.code == "string" ? e.code : void 0;
27
+ }
28
+ function s(e) {
29
+ if (o(e) !== "GASLESS_SUBMIT_UNCONFIRMED") return null;
30
+ let t = i(e) ? e.responseData : void 0;
31
+ if (!i(t)) return null;
32
+ let { chainId: n, service: a, path: s, idempotencyKey: c } = t;
33
+ return typeof n != "number" || a !== "operations" && a !== "deposits" || typeof s != "string" || !(s in r) || typeof c != "string" || c.length === 0 ? null : {
34
+ chainId: n,
35
+ service: a,
36
+ path: s,
37
+ body: t.body,
38
+ idempotencyKey: c
39
+ };
40
+ }
41
+ function c(t) {
42
+ if (e(t)?.code !== n) return !1;
43
+ let r = a(t);
44
+ return r === void 0 || r === 409;
45
+ }
46
+ //#endregion
47
+ export { r as GASLESS_SUBMIT_ROUTES, t as GASLESS_SUBMIT_UNCONFIRMED_CODE, s as getGaslessUnconfirmedSubmit, c as isGaslessIdempotencyConflictError, a as readGaslessErrorStatus };
48
+
49
+ //# sourceMappingURL=unconfirmed-submit.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"unconfirmed-submit.js","names":[],"sources":["../../src/gasless/unconfirmed-submit.ts"],"sourcesContent":["import { parseGaslessErrorDetail } from \"./errors\";\nimport type { GaslessService } from \"./types\";\n\n/**\n * SDK error code of a submit whose outcome the SDK could not establish.\n *\n * @internal\n */\nexport const GASLESS_SUBMIT_UNCONFIRMED_CODE = \"GASLESS_SUBMIT_UNCONFIRMED\";\n\n/** Vendor code of a key already bound to a different wallet selection or workflow. */\nconst GASLESS_IDEMPOTENCY_CONFLICT_CODE = \"IDEMPOTENCY_KEY_CONFLICT\";\n\n/**\n * The gateway paths a gasless **submit** POSTs to, with the service that stores\n * the resulting workflow and the SDK error code its failures carry.\n *\n * A submit is the only kind of gasless request that can leave a side effect\n * behind when its response is lost, so the retry, idempotency and\n * \"unconfirmed\" machinery is keyed off this table rather than off a free-form\n * path string.\n *\n * @internal\n */\nexport const GASLESS_SUBMIT_ROUTES = {\n \"/gateway/relay-instant\": { service: \"operations\", code: \"GASLESS_RELAY_SUBMIT_FAILED\" },\n \"/deposit-settlements/new-account\": { service: \"deposits\", code: \"GASLESS_SETTLEMENT_SUBMIT_FAILED\" },\n \"/deposit-settlements/existing-account\": { service: \"deposits\", code: \"GASLESS_SETTLEMENT_SUBMIT_FAILED\" },\n} as const satisfies Record<string, { service: GaslessService; code: string }>;\n\n/**\n * One of the three gateway paths a gasless submit POSTs to.\n *\n * Closed on purpose: a resubmit replays the recorded bytes against the same\n * route, and an open string would let an arbitrary path be POSTed with a\n * signed body.\n */\nexport type GaslessSubmitPath = keyof typeof GASLESS_SUBMIT_ROUTES;\n\n/**\n * Everything needed to replay one gasless submit **byte-for-byte**, recovered\n * from a `GASLESS_SUBMIT_UNCONFIRMED` error with\n * {@link getGaslessUnconfirmedSubmit}.\n *\n * The vendor's contract is that resending the identical request under the same\n * idempotency key either lands it or returns the record it already created, so\n * a lost response is recoverable — but only if the exact JSON that was sent is\n * still available. That is what this carries: `body` is the object that was\n * serialized, not a rebuilt equivalent.\n *\n * Persist it next to the workflow you were submitting. Do **not** ship it to\n * third-party logging: `body` holds the user's signed operations, and a\n * signature the service never executed stays valid until its deadline.\n */\nexport interface GaslessUnconfirmedSubmit {\n /** The chain the submit was made on. */\n chainId: number;\n /** The service that stores the workflow, derived from {@link GaslessUnconfirmedSubmit.path}. */\n service: GaslessService;\n /** The gateway path the body was POSTed to. */\n path: GaslessSubmitPath;\n /** The exact JSON body that was sent, to resend unchanged. */\n body: unknown;\n /** The idempotency key the submit carried, and that a resend must reuse. */\n idempotencyKey: string;\n}\n\nfunction isRecord(value: unknown): value is Record<string, unknown> {\n return typeof value === \"object\" && value !== null && !Array.isArray(value);\n}\n\n/**\n * The HTTP status an error reports, whatever error class carries it.\n *\n * Read structurally rather than through `instanceof SymmApiError`, so the\n * gasless predicates keep working on the error a framework layer re-wrapped —\n * `@symmio/trading-react`'s `SymmioRequestError` copies `status`,\n * `responseData` and `code` off the API error and is what a hook consumer\n * actually catches.\n *\n * @internal\n */\nexport function readGaslessErrorStatus(err: unknown): number | undefined {\n if (!isRecord(err)) return undefined;\n const status = err.status;\n return typeof status === \"number\" ? status : undefined;\n}\n\n/** The SDK error code an error carries, read structurally. @internal */\nexport function readGaslessErrorCode(err: unknown): string | undefined {\n if (!isRecord(err)) return undefined;\n return typeof err.code === \"string\" ? err.code : undefined;\n}\n\n/**\n * Recover the replayable submit from a `GASLESS_SUBMIT_UNCONFIRMED` error.\n *\n * That error means the SDK could not establish whether the service accepted the\n * request: the transport failed ambiguously and the same-key resend did not land\n * either, however it was answered, or a `202` came back without a `request_id`.\n * The relayed transaction may still execute, so the only safe recovery is to\n * **resend the same bytes under the same key** with\n * {@link resubmitGaslessRequest} — never to re-run the intent through the\n * wallet.\n *\n * @param err - Anything caught from a gasless submit, including an error a\n * framework layer re-wrapped.\n * @returns The replayable submit, or `null` when `err` is not an unconfirmed submit.\n *\n * @example\n * ```ts\n * try {\n * await relayInstantOperations(config, parameters);\n * } catch (err) {\n * const submit = getGaslessUnconfirmedSubmit(err);\n * if (!submit) throw err;\n * await persistPendingSubmit(submit);\n * const receipt = await resubmitGaslessRequest(config, submit);\n * }\n * ```\n */\nexport function getGaslessUnconfirmedSubmit(err: unknown): GaslessUnconfirmedSubmit | null {\n if (readGaslessErrorCode(err) !== GASLESS_SUBMIT_UNCONFIRMED_CODE) return null;\n const data = isRecord(err) ? err.responseData : undefined;\n if (!isRecord(data)) return null;\n\n const { chainId, service, path, idempotencyKey } = data;\n if (typeof chainId !== \"number\") return null;\n if (service !== \"operations\" && service !== \"deposits\") return null;\n if (typeof path !== \"string\" || !(path in GASLESS_SUBMIT_ROUTES)) return null;\n if (typeof idempotencyKey !== \"string\" || idempotencyKey.length === 0) return null;\n\n return { chainId, service, path: path as GaslessSubmitPath, body: data.body, idempotencyKey };\n}\n\n/**\n * Whether an error is the gateway's `409 IDEMPOTENCY_KEY_CONFLICT` — the key\n * is already bound to a **different** wallet selection or workflow.\n *\n * It is a client bug, never a transport failure: the service refused to reuse\n * the key for a payload that is not the one it first saw. Mint a fresh key for\n * the new action; re-signing with the old key cannot succeed. It is also never\n * grounds for a wallet-paid retry, because the workflow the key does belong to\n * may still be executing.\n *\n * @param err - Anything caught from a gasless submit, including an error a\n * framework layer re-wrapped.\n * @returns `true` only for that conflict.\n *\n * @example\n * ```ts\n * if (isGaslessIdempotencyConflictError(err)) {\n * // reconcile the workflow this key already created, then rebuild with a new key\n * }\n * ```\n */\nexport function isGaslessIdempotencyConflictError(err: unknown): boolean {\n if (parseGaslessErrorDetail(err)?.code !== GASLESS_IDEMPOTENCY_CONFLICT_CODE) return false;\n const status = readGaslessErrorStatus(err);\n return status === undefined || status === 409;\n}\n"],"mappings":";;AAQA,IAAa,IAAkC,8BAGzC,IAAoC,4BAa7B,IAAwB;CACnC,0BAA0B;EAAE,SAAS;EAAc,MAAM;CAA8B;CACvF,oCAAoC;EAAE,SAAS;EAAY,MAAM;CAAmC;CACpG,yCAAyC;EAAE,SAAS;EAAY,MAAM;CAAmC;AAC3G;AAuCA,SAAS,EAAS,GAAkD;CAClE,OAAO,OAAO,KAAU,cAAY,KAAkB,CAAC,MAAM,QAAQ,CAAK;AAC5E;AAaA,SAAgB,EAAuB,GAAkC;CACvE,IAAI,CAAC,EAAS,CAAG,GAAG;CACpB,IAAM,IAAS,EAAI;CACnB,OAAO,OAAO,KAAW,WAAW,IAAS,KAAA;AAC/C;AAGA,SAAgB,EAAqB,GAAkC;CAChE,MAAS,CAAG,GACjB,OAAO,OAAO,EAAI,QAAS,WAAW,EAAI,OAAO,KAAA;AACnD;AA6BA,SAAgB,EAA4B,GAA+C;CACzF,IAAI,EAAqB,CAAG,MAAA,8BAAuC,OAAO;CAC1E,IAAM,IAAO,EAAS,CAAG,IAAI,EAAI,eAAe,KAAA;CAChD,IAAI,CAAC,EAAS,CAAI,GAAG,OAAO;CAE5B,IAAM,EAAE,YAAS,YAAS,SAAM,sBAAmB;CAMnD,OALI,OAAO,KAAY,YACnB,MAAY,gBAAgB,MAAY,cACxC,OAAO,KAAS,YAAY,EAAE,KAAQ,MACtC,OAAO,KAAmB,YAAY,EAAe,WAAW,IAAU,OAEvE;EAAE;EAAS;EAAe;EAA2B,MAAM,EAAK;EAAM;CAAe;AAC9F;AAuBA,SAAgB,EAAkC,GAAuB;CACvE,IAAI,EAAwB,CAAG,GAAG,SAAS,GAAmC,OAAO;CACrF,IAAM,IAAS,EAAuB,CAAG;CACzC,OAAO,MAAW,KAAA,KAAa,MAAW;AAC5C"}
@@ -0,0 +1,2 @@
1
+ export * from './wait-for-gasless-request.js';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/gasless/wait-for-gasless-request/index.ts"],"names":[],"mappings":"AAAA,cAAc,4BAA4B,CAAC"}
@@ -0,0 +1,114 @@
1
+ import { Config } from '../../core/config/index.js';
2
+ import { SymmError } from '../../shared/errors/symm-error.js';
3
+ import { ChainIdParameter, Compute } from '../../shared/types/properties.js';
4
+ import { GaslessStatusTransport } from '../observe-gasless-request.js';
5
+ import { GaslessRequest, GaslessService } from '../types.js';
6
+ /** Default overall wait budget. */
7
+ export declare const GASLESS_WAIT_TIMEOUT_MS = 120000;
8
+ /**
9
+ * Parameters for {@link waitForGaslessRequest}.
10
+ */
11
+ export type WaitForGaslessRequestParameters = Compute<ChainIdParameter & {
12
+ /** Stable service tracking id returned by a gasless submit. */
13
+ requestId: string;
14
+ /** Which sub-service stores the request. Defaults to `"operations"`. */
15
+ service?: GaslessService;
16
+ /**
17
+ * When to resolve. `"broadcast"` resolves as soon as a transaction hash
18
+ * exists (status `submitted`, or a terminal that carries one);
19
+ * `"terminal"` (default) waits for `succeeded` / `reverted` / `failed` /
20
+ * `rejected`.
21
+ */
22
+ until?: "broadcast" | "terminal";
23
+ /** Overall wait budget in ms. Default {@link GASLESS_WAIT_TIMEOUT_MS}. */
24
+ timeoutMs?: number;
25
+ /** Poll cadence while `queued`. Default {@link GASLESS_QUEUED_POLL_MS}. */
26
+ queuedPollMs?: number;
27
+ /** Poll cadence after `submitted`. Default {@link GASLESS_SUBMITTED_POLL_MS}. */
28
+ submittedPollMs?: number;
29
+ /**
30
+ * How long to let the stream settle before the first HTTP read. Ends early
31
+ * the moment the stream delivers, or reports that it will not. Ignored
32
+ * under `transport: "poll"`. Default {@link GASLESS_STREAM_SETTLE_MS}.
33
+ */
34
+ streamSettleMs?: number;
35
+ /**
36
+ * How long a delivering stream may report nothing about the workflow before
37
+ * one HTTP read is taken anyway. Default {@link GASLESS_STREAM_STALE_MS}.
38
+ */
39
+ streamStaleMs?: number;
40
+ /** Abort the wait (e.g. on unmount). The request itself keeps running server-side. */
41
+ signal?: AbortSignal;
42
+ /** Observer invoked with every fetched record, including the final one. */
43
+ onUpdate?: (request: GaslessRequest) => void;
44
+ /**
45
+ * Observer invoked for every transient read failure the loop absorbed —
46
+ * a `429`, a `503`, a dropped connection.
47
+ *
48
+ * Nothing is wrong with the workflow when this fires; only our view of it
49
+ * is stale. Surface it as "status unavailable, still running", never as a
50
+ * failed relay, and never as a reason to resubmit.
51
+ */
52
+ onTransportIssue?: (error: SymmError) => void;
53
+ /**
54
+ * How to follow the workflow. `"auto"` (default) subscribes to the
55
+ * gateway's status stream when the deployment enables it and polls only
56
+ * while the stream is not delivering; `"poll"` forces HTTP polling.
57
+ *
58
+ * The outcome is identical either way — the stream carries the same records
59
+ * the reads return, so a caller cannot tell which transport produced one.
60
+ */
61
+ transport?: GaslessStatusTransport;
62
+ }>;
63
+ /** Return type of {@link waitForGaslessRequest}. */
64
+ export type WaitForGaslessRequestReturnType = GaslessRequest;
65
+ /**
66
+ * Poll one gasless request until it broadcasts or reaches a terminal status.
67
+ *
68
+ * The relayer is fire-and-forget, so this loop is the client's half of the
69
+ * lifecycle. It resolves with the record — including for `reverted` / `failed`
70
+ * / `rejected` terminals, which are workflow outcomes, not transport failures;
71
+ * branch on `status` (only `succeeded` is success).
72
+ *
73
+ * **The stream leads; HTTP is the fallback.** Where the deployment serves a
74
+ * status stream, the wait subscribes and gives it `streamSettleMs` to deliver
75
+ * before reading over HTTP at all, so a healthy workflow costs no status reads.
76
+ * Polling resumes the moment the stream stops delivering, and one read is taken
77
+ * anyway whenever a live stream has said nothing about the workflow for
78
+ * `streamStaleMs` — a heartbeat proves the socket is alive, not that this
79
+ * workflow is being reported.
80
+ *
81
+ * **A failed read is not a failed request.** Once a `202` exists the workflow
82
+ * is running whether or not we can see it, so every transient transport
83
+ * failure — a dropped connection, a `408`, a `429`, a `5xx` — is absorbed:
84
+ * reported through `onTransportIssue`, then retried after
85
+ * `max(Retry-After, jittered 1 s → 30 s backoff)`, capped by whatever budget is
86
+ * left. Up to three consecutive `404`s are tolerated too, for the brief
87
+ * accept-vs-record race after a submit.
88
+ *
89
+ * It throws only when it can no longer answer the question it was asked: the
90
+ * budget ran out, the caller aborted, the record is still `404` on the fourth
91
+ * consecutive read, or the service gave a definitive answer (`401`, `403`,
92
+ * `422`, a service error code). A timeout carries the last transient failure as
93
+ * its `cause`, so a caller can tell "the relayer is slow" from "we went blind".
94
+ *
95
+ * @param config - The SDK config.
96
+ * @param parameters - Request id, wait target, cadence, budget, abort signal.
97
+ * @returns The record at broadcast (`until: "broadcast"`) or at terminal.
98
+ * @throws {SymmError} `GASLESS_BROADCAST_TIMEOUT` / `GASLESS_TERMINAL_TIMEOUT`
99
+ * when the budget runs out — the request may still land later; keep the
100
+ * `requestId` and keep watching, never re-submit through the wallet.
101
+ * @throws {SymmError} `GASLESS_WAIT_ABORTED` when `signal` aborts.
102
+ *
103
+ * @example
104
+ * ```ts
105
+ * const record = await waitForGaslessRequest(config, {
106
+ * requestId,
107
+ * until: "broadcast",
108
+ * onTransportIssue: () => setDegraded(true),
109
+ * });
110
+ * if (record.txHash) await client.waitForTransactionReceipt({ hash: record.txHash });
111
+ * ```
112
+ */
113
+ export declare function waitForGaslessRequest(config: Config, parameters: WaitForGaslessRequestParameters): Promise<WaitForGaslessRequestReturnType>;
114
+ //# sourceMappingURL=wait-for-gasless-request.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wait-for-gasless-request.d.ts","sourceRoot":"","sources":["../../../src/gasless/wait-for-gasless-request/wait-for-gasless-request.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAgB,SAAS,EAAE,MAAM,gCAAgC,CAAC;AACzE,OAAO,KAAK,EAAE,gBAAgB,EAAE,OAAO,EAAE,MAAM,+BAA+B,CAAC;AAG/E,OAAO,EAA+B,KAAK,sBAAsB,EAAE,MAAM,4BAA4B,CAAC;AAGtG,OAAO,EAOL,KAAK,cAAc,EACnB,KAAK,cAAc,EACpB,MAAM,UAAU,CAAC;AAElB,mCAAmC;AACnC,eAAO,MAAM,uBAAuB,SAAU,CAAC;AAO/C;;GAEG;AACH,MAAM,MAAM,+BAA+B,GAAG,OAAO,CACnD,gBAAgB,GAAG;IACjB,+DAA+D;IAC/D,SAAS,EAAE,MAAM,CAAC;IAClB,wEAAwE;IACxE,OAAO,CAAC,EAAE,cAAc,CAAC;IACzB;;;;;OAKG;IACH,KAAK,CAAC,EAAE,WAAW,GAAG,UAAU,CAAC;IACjC,0EAA0E;IAC1E,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,2EAA2E;IAC3E,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,iFAAiF;IACjF,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB;;;;OAIG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB;;;OAGG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,sFAAsF;IACtF,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,2EAA2E;IAC3E,QAAQ,CAAC,EAAE,CAAC,OAAO,EAAE,cAAc,KAAK,IAAI,CAAC;IAC7C;;;;;;;OAOG;IACH,gBAAgB,CAAC,EAAE,CAAC,KAAK,EAAE,SAAS,KAAK,IAAI,CAAC;IAC9C;;;;;;;OAOG;IACH,SAAS,CAAC,EAAE,sBAAsB,CAAC;CACpC,CACF,CAAC;AAEF,oDAAoD;AACpD,MAAM,MAAM,+BAA+B,GAAG,cAAc,CAAC;AAE7D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+CG;AACH,wBAAsB,qBAAqB,CACzC,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,+BAA+B,GAC1C,OAAO,CAAC,+BAA+B,CAAC,CA8J1C"}
@@ -0,0 +1,77 @@
1
+ import { SymmApiError as e, SymmError as t } from "../../shared/errors/symm-error.js";
2
+ import { resolveGaslessService as n } from "../resolve-gasless.js";
3
+ import { GaslessRequestStatus as r, isGaslessRequestTerminal as i } from "../types.js";
4
+ import { gaslessSleep as a } from "../abortable-sleep.js";
5
+ import { getGaslessRequest as o } from "../get-gasless-request/get-gasless-request.js";
6
+ import { createGaslessStatusObserver as s } from "../observe-gasless-request.js";
7
+ import { gaslessTransientReadDelay as c, isTransientGaslessReadError as l } from "../transient-read.js";
8
+ //#region src/gasless/wait-for-gasless-request/wait-for-gasless-request.ts
9
+ var u = 12e4, d = 3;
10
+ async function f(n, f) {
11
+ let { chainId: m, requestId: h, service: g = "operations", until: _ = "terminal", timeoutMs: v = u, signal: y, onUpdate: b, onTransportIssue: x, transport: S = "auto" } = f, C = p(n, m), w = f.queuedPollMs ?? C.queuedPollMs ?? 1500, T = f.submittedPollMs ?? C.submittedPollMs ?? 3e3, E = f.streamSettleMs ?? C.streamSettleMs ?? 1e3, D = f.streamStaleMs ?? C.streamStaleMs ?? 15e3, O = Date.now() + v, k = S === "poll" ? null : s(n, {
12
+ chainId: m,
13
+ requestId: h,
14
+ service: g,
15
+ onTransportIssue: x
16
+ }), A = Date.now() + E, j = 0, M = 0, N, P = null, F = Date.now();
17
+ try {
18
+ for (;;) {
19
+ if (y?.aborted) throw new t("api", "GASLESS_WAIT_ABORTED", "Gasless: the status wait was aborted.");
20
+ let s = k?.take() ?? null;
21
+ if (s && (P = s, j = 0, M = 0, F = Date.now(), b?.(P), _ === "broadcast" && P.txHash !== null || i(P.status))) return P;
22
+ let u = P?.status === r.SUBMITTED ? T : w;
23
+ if (k) {
24
+ let e = k.state();
25
+ if (e === "live" && Date.now() - F < D) {
26
+ let e = O - Date.now();
27
+ if (e <= 0) throw I();
28
+ await k.wait(Math.min(u, e), y);
29
+ continue;
30
+ }
31
+ if (e === "pending" && Date.now() < A) {
32
+ let e = O - Date.now();
33
+ if (e <= 0) throw I();
34
+ await k.wait(Math.min(A - Date.now(), e), y);
35
+ continue;
36
+ }
37
+ }
38
+ try {
39
+ if (P = await o(n, {
40
+ chainId: m,
41
+ requestId: h,
42
+ service: g,
43
+ signal: y
44
+ }), j = 0, M = 0, F = Date.now(), b?.(P), _ === "broadcast" && P.txHash !== null || i(P.status)) return P;
45
+ u = P.status === r.SUBMITTED ? T : w;
46
+ } catch (n) {
47
+ if (y?.aborted) throw new t("api", "GASLESS_WAIT_ABORTED", "Gasless: the status wait was aborted.");
48
+ if (n instanceof e && n.status === 404) {
49
+ if (++j > d) throw n;
50
+ } else if (l(n)) {
51
+ if (N = n instanceof t ? n : void 0, u = c(M++, n), N) try {
52
+ x?.(N);
53
+ } catch {}
54
+ } else throw n;
55
+ }
56
+ let f = O - Date.now();
57
+ if (f <= 0) throw I();
58
+ await a(Math.min(u, f), y);
59
+ }
60
+ } finally {
61
+ k?.close();
62
+ }
63
+ function I() {
64
+ return new t("api", _ === "broadcast" ? "GASLESS_BROADCAST_TIMEOUT" : "GASLESS_TERMINAL_TIMEOUT", `Gasless: request ${h} did not reach ${_ === "broadcast" ? "broadcast" : "a terminal status"} within ${v} ms (last status: ${P?.status ?? "unknown"}). The request keeps running server-side — keep polling it; never re-submit through the wallet.`, { cause: N });
65
+ }
66
+ }
67
+ function p(e, t) {
68
+ try {
69
+ return n(e, { chainId: t }).execution ?? {};
70
+ } catch {
71
+ return {};
72
+ }
73
+ }
74
+ //#endregion
75
+ export { u as GASLESS_WAIT_TIMEOUT_MS, f as waitForGaslessRequest };
76
+
77
+ //# sourceMappingURL=wait-for-gasless-request.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wait-for-gasless-request.js","names":[],"sources":["../../../src/gasless/wait-for-gasless-request/wait-for-gasless-request.ts"],"sourcesContent":["import type { GaslessExecutionConfig } from \"../../core/chains/types\";\nimport type { Config } from \"../../core/config\";\nimport { SymmApiError, SymmError } from \"../../shared/errors/symm-error\";\nimport type { ChainIdParameter, Compute } from \"../../shared/types/properties\";\nimport { gaslessSleep } from \"../abortable-sleep\";\nimport { getGaslessRequest } from \"../get-gasless-request/get-gasless-request\";\nimport { createGaslessStatusObserver, type GaslessStatusTransport } from \"../observe-gasless-request\";\nimport { resolveGaslessService } from \"../resolve-gasless\";\nimport { gaslessTransientReadDelay, isTransientGaslessReadError } from \"../transient-read\";\nimport {\n GASLESS_QUEUED_POLL_MS,\n GASLESS_STREAM_SETTLE_MS,\n GASLESS_STREAM_STALE_MS,\n GASLESS_SUBMITTED_POLL_MS,\n GaslessRequestStatus,\n isGaslessRequestTerminal,\n type GaslessRequest,\n type GaslessService,\n} from \"../types\";\n\n/** Default overall wait budget. */\nexport const GASLESS_WAIT_TIMEOUT_MS = 120_000;\n/**\n * Consecutive `404`s tolerated right after a `202`: the accepted workflow's\n * record may not be readable immediately (the accept-vs-record race).\n */\nconst NOT_FOUND_TOLERANCE = 3;\n\n/**\n * Parameters for {@link waitForGaslessRequest}.\n */\nexport type WaitForGaslessRequestParameters = Compute<\n ChainIdParameter & {\n /** Stable service tracking id returned by a gasless submit. */\n requestId: string;\n /** Which sub-service stores the request. Defaults to `\"operations\"`. */\n service?: GaslessService;\n /**\n * When to resolve. `\"broadcast\"` resolves as soon as a transaction hash\n * exists (status `submitted`, or a terminal that carries one);\n * `\"terminal\"` (default) waits for `succeeded` / `reverted` / `failed` /\n * `rejected`.\n */\n until?: \"broadcast\" | \"terminal\";\n /** Overall wait budget in ms. Default {@link GASLESS_WAIT_TIMEOUT_MS}. */\n timeoutMs?: number;\n /** Poll cadence while `queued`. Default {@link GASLESS_QUEUED_POLL_MS}. */\n queuedPollMs?: number;\n /** Poll cadence after `submitted`. Default {@link GASLESS_SUBMITTED_POLL_MS}. */\n submittedPollMs?: number;\n /**\n * How long to let the stream settle before the first HTTP read. Ends early\n * the moment the stream delivers, or reports that it will not. Ignored\n * under `transport: \"poll\"`. Default {@link GASLESS_STREAM_SETTLE_MS}.\n */\n streamSettleMs?: number;\n /**\n * How long a delivering stream may report nothing about the workflow before\n * one HTTP read is taken anyway. Default {@link GASLESS_STREAM_STALE_MS}.\n */\n streamStaleMs?: number;\n /** Abort the wait (e.g. on unmount). The request itself keeps running server-side. */\n signal?: AbortSignal;\n /** Observer invoked with every fetched record, including the final one. */\n onUpdate?: (request: GaslessRequest) => void;\n /**\n * Observer invoked for every transient read failure the loop absorbed —\n * a `429`, a `503`, a dropped connection.\n *\n * Nothing is wrong with the workflow when this fires; only our view of it\n * is stale. Surface it as \"status unavailable, still running\", never as a\n * failed relay, and never as a reason to resubmit.\n */\n onTransportIssue?: (error: SymmError) => void;\n /**\n * How to follow the workflow. `\"auto\"` (default) subscribes to the\n * gateway's status stream when the deployment enables it and polls only\n * while the stream is not delivering; `\"poll\"` forces HTTP polling.\n *\n * The outcome is identical either way — the stream carries the same records\n * the reads return, so a caller cannot tell which transport produced one.\n */\n transport?: GaslessStatusTransport;\n }\n>;\n\n/** Return type of {@link waitForGaslessRequest}. */\nexport type WaitForGaslessRequestReturnType = GaslessRequest;\n\n/**\n * Poll one gasless request until it broadcasts or reaches a terminal status.\n *\n * The relayer is fire-and-forget, so this loop is the client's half of the\n * lifecycle. It resolves with the record — including for `reverted` / `failed`\n * / `rejected` terminals, which are workflow outcomes, not transport failures;\n * branch on `status` (only `succeeded` is success).\n *\n * **The stream leads; HTTP is the fallback.** Where the deployment serves a\n * status stream, the wait subscribes and gives it `streamSettleMs` to deliver\n * before reading over HTTP at all, so a healthy workflow costs no status reads.\n * Polling resumes the moment the stream stops delivering, and one read is taken\n * anyway whenever a live stream has said nothing about the workflow for\n * `streamStaleMs` — a heartbeat proves the socket is alive, not that this\n * workflow is being reported.\n *\n * **A failed read is not a failed request.** Once a `202` exists the workflow\n * is running whether or not we can see it, so every transient transport\n * failure — a dropped connection, a `408`, a `429`, a `5xx` — is absorbed:\n * reported through `onTransportIssue`, then retried after\n * `max(Retry-After, jittered 1 s → 30 s backoff)`, capped by whatever budget is\n * left. Up to three consecutive `404`s are tolerated too, for the brief\n * accept-vs-record race after a submit.\n *\n * It throws only when it can no longer answer the question it was asked: the\n * budget ran out, the caller aborted, the record is still `404` on the fourth\n * consecutive read, or the service gave a definitive answer (`401`, `403`,\n * `422`, a service error code). A timeout carries the last transient failure as\n * its `cause`, so a caller can tell \"the relayer is slow\" from \"we went blind\".\n *\n * @param config - The SDK config.\n * @param parameters - Request id, wait target, cadence, budget, abort signal.\n * @returns The record at broadcast (`until: \"broadcast\"`) or at terminal.\n * @throws {SymmError} `GASLESS_BROADCAST_TIMEOUT` / `GASLESS_TERMINAL_TIMEOUT`\n * when the budget runs out — the request may still land later; keep the\n * `requestId` and keep watching, never re-submit through the wallet.\n * @throws {SymmError} `GASLESS_WAIT_ABORTED` when `signal` aborts.\n *\n * @example\n * ```ts\n * const record = await waitForGaslessRequest(config, {\n * requestId,\n * until: \"broadcast\",\n * onTransportIssue: () => setDegraded(true),\n * });\n * if (record.txHash) await client.waitForTransactionReceipt({ hash: record.txHash });\n * ```\n */\nexport async function waitForGaslessRequest(\n config: Config,\n parameters: WaitForGaslessRequestParameters,\n): Promise<WaitForGaslessRequestReturnType> {\n const {\n chainId,\n requestId,\n service = \"operations\",\n until = \"terminal\",\n timeoutMs = GASLESS_WAIT_TIMEOUT_MS,\n signal,\n onUpdate,\n onTransportIssue,\n transport = \"auto\",\n } = parameters;\n\n /**\n * Cadence and stream windows fall back to the deployment's `execution` block\n * before the constants, so a gateway's own tuning reaches every wait —\n * including the ones a caller only reaches indirectly, like the write tail's\n * `confirmGaslessRequest`.\n */\n const execution = resolveWaitDefaults(config, chainId);\n const queuedPollMs = parameters.queuedPollMs ?? execution.queuedPollMs ?? GASLESS_QUEUED_POLL_MS;\n const submittedPollMs = parameters.submittedPollMs ?? execution.submittedPollMs ?? GASLESS_SUBMITTED_POLL_MS;\n const streamSettleMs = parameters.streamSettleMs ?? execution.streamSettleMs ?? GASLESS_STREAM_SETTLE_MS;\n const streamStaleMs = parameters.streamStaleMs ?? execution.streamStaleMs ?? GASLESS_STREAM_STALE_MS;\n\n const deadline = Date.now() + timeoutMs;\n /**\n * The status stream, when this deployment has one. It delivers the same\n * records the reads return, so the loop below prefers it and polls only while\n * it is not delivering.\n */\n const observer =\n transport === \"poll\"\n ? null\n : createGaslessStatusObserver(config, { chainId, requestId, service, onTransportIssue });\n /**\n * How long the stream has to answer before the first read. Fixed at the\n * start, so this is a settle window and not a licence to stall: a stream that\n * drops later sends the loop straight back to polling.\n */\n const settleUntil = Date.now() + streamSettleMs;\n let notFoundStreak = 0;\n let transientStreak = 0;\n let lastTransient: SymmError | undefined;\n let latest: GaslessRequest | null = null;\n /** When the workflow was last seen over either transport — the stale backstop's clock. */\n let lastRecordAt = Date.now();\n\n try {\n for (;;) {\n if (signal?.aborted) {\n throw new SymmError(\"api\", \"GASLESS_WAIT_ABORTED\", \"Gasless: the status wait was aborted.\");\n }\n\n /**\n * Take a delivered record before reading the stream's health: one that\n * landed just before the socket dropped is still the freshest thing we\n * have, and discarding it would re-read what we were already told.\n */\n const streamed = observer?.take() ?? null;\n if (streamed) {\n latest = streamed;\n notFoundStreak = 0;\n transientStreak = 0;\n lastRecordAt = Date.now();\n onUpdate?.(latest);\n if (until === \"broadcast\" && latest.txHash !== null) return latest;\n if (isGaslessRequestTerminal(latest.status)) return latest;\n }\n\n /** The next poll's delay: the status cadence, or a backoff after a transient failure. */\n let interval = latest?.status === GaslessRequestStatus.SUBMITTED ? submittedPollMs : queuedPollMs;\n\n if (observer) {\n const state = observer.state();\n /**\n * While the stream carries this workflow the poll stands down — unless\n * it has carried nothing for `streamStaleMs`. Heartbeats keep the socket\n * alive without saying anything about the workflow, so silence that long\n * is settled with one read rather than trusted until the socket's own\n * liveness timer fires.\n */\n if (state === \"live\" && Date.now() - lastRecordAt < streamStaleMs) {\n const remainingWhileLive = deadline - Date.now();\n if (remainingWhileLive <= 0) throw timeoutError();\n await observer.wait(Math.min(interval, remainingWhileLive), signal);\n continue;\n }\n /**\n * Still settling: the subscription's first record is on its way and\n * carries exactly what the read below would. Waiting for it costs one\n * request fewer than racing it, and the wait ends the moment the stream\n * delivers or reports that it cannot.\n */\n if (state === \"pending\" && Date.now() < settleUntil) {\n const remainingWhileSettling = deadline - Date.now();\n if (remainingWhileSettling <= 0) throw timeoutError();\n await observer.wait(Math.min(settleUntil - Date.now(), remainingWhileSettling), signal);\n continue;\n }\n }\n\n try {\n latest = await getGaslessRequest(config, { chainId, requestId, service, signal });\n notFoundStreak = 0;\n transientStreak = 0;\n lastRecordAt = Date.now();\n onUpdate?.(latest);\n\n if (until === \"broadcast\" && latest.txHash !== null) return latest;\n if (isGaslessRequestTerminal(latest.status)) return latest;\n interval = latest.status === GaslessRequestStatus.SUBMITTED ? submittedPollMs : queuedPollMs;\n } catch (err) {\n /** An abort cancels the read in flight; that cancellation is not a transport issue. */\n if (signal?.aborted) {\n throw new SymmError(\"api\", \"GASLESS_WAIT_ABORTED\", \"Gasless: the status wait was aborted.\");\n }\n const isNotFound = err instanceof SymmApiError && err.status === 404;\n if (isNotFound) {\n if (++notFoundStreak > NOT_FOUND_TOLERANCE) throw err;\n } else if (isTransientGaslessReadError(err)) {\n /**\n * The workflow is running whether or not we can read it. Report the\n * blind spot and back off — treating this as a failure is what makes a\n * caller resubmit an intent that is already executing.\n */\n lastTransient = err instanceof SymmError ? err : undefined;\n interval = gaslessTransientReadDelay(transientStreak++, err);\n if (lastTransient) {\n try {\n onTransportIssue?.(lastTransient);\n } catch {\n /** An observer must never break the wait it is observing. */\n }\n }\n } else {\n throw err;\n }\n }\n\n const remaining = deadline - Date.now();\n if (remaining <= 0) throw timeoutError();\n\n /** Never sleep past the budget: a 30 s backoff must not hide a 5 s timeout. */\n await gaslessSleep(Math.min(interval, remaining), signal);\n }\n } finally {\n observer?.close();\n }\n\n function timeoutError(): SymmError {\n return new SymmError(\n \"api\",\n until === \"broadcast\" ? \"GASLESS_BROADCAST_TIMEOUT\" : \"GASLESS_TERMINAL_TIMEOUT\",\n `Gasless: request ${requestId} did not reach ${until === \"broadcast\" ? \"broadcast\" : \"a terminal status\"} within ${timeoutMs} ms (last status: ${latest?.status ?? \"unknown\"}). The request keeps running server-side — keep polling it; never re-submit through the wallet.`,\n { cause: lastTransient },\n );\n }\n}\n\n/**\n * The deployment's execution defaults for a wait, or none.\n *\n * A wait may run for a chain with no gasless block at all — a caller holding a\n * request id from another chain, a config whose gasless service was never\n * declared — and a missing deployment is not a reason to fail a wait that the\n * constants can serve.\n */\nfunction resolveWaitDefaults(config: Config, chainId?: number): GaslessExecutionConfig {\n try {\n return resolveGaslessService(config, { chainId }).execution ?? {};\n } catch {\n return {};\n }\n}\n"],"mappings":";;;;;;;;AAqBA,IAAa,IAA0B,MAKjC,IAAsB;AA+G5B,eAAsB,EACpB,GACA,GAC0C;CAC1C,IAAM,EACJ,YACA,cACA,aAAU,cACV,WAAQ,YACR,eAAY,GACZ,WACA,aACA,qBACA,eAAY,WACV,GAQE,IAAY,EAAoB,GAAQ,CAAO,GAC/C,IAAe,EAAW,gBAAgB,EAAU,gBAAA,MACpD,IAAkB,EAAW,mBAAmB,EAAU,mBAAA,KAC1D,IAAiB,EAAW,kBAAkB,EAAU,kBAAA,KACxD,IAAgB,EAAW,iBAAiB,EAAU,iBAAA,MAEtD,IAAW,KAAK,IAAI,IAAI,GAMxB,IACJ,MAAc,SACV,OACA,EAA4B,GAAQ;EAAE;EAAS;EAAW;EAAS;CAAiB,CAAC,GAMrF,IAAc,KAAK,IAAI,IAAI,GAC7B,IAAiB,GACjB,IAAkB,GAClB,GACA,IAAgC,MAEhC,IAAe,KAAK,IAAI;CAE5B,IAAI;EACF,SAAS;GACP,IAAI,GAAQ,SACV,MAAM,IAAI,EAAU,OAAO,wBAAwB,uCAAuC;GAQ5F,IAAM,IAAW,GAAU,KAAK,KAAK;GACrC,IAAI,MACF,IAAS,GACT,IAAiB,GACjB,IAAkB,GAClB,IAAe,KAAK,IAAI,GACxB,IAAW,CAAM,GACb,MAAU,eAAe,EAAO,WAAW,QAC3C,EAAyB,EAAO,MAAM,IAAG,OAAO;GAItD,IAAI,IAAW,GAAQ,WAAW,EAAqB,YAAY,IAAkB;GAErF,IAAI,GAAU;IACZ,IAAM,IAAQ,EAAS,MAAM;IAQ7B,IAAI,MAAU,UAAU,KAAK,IAAI,IAAI,IAAe,GAAe;KACjE,IAAM,IAAqB,IAAW,KAAK,IAAI;KAC/C,IAAI,KAAsB,GAAG,MAAM,EAAa;KAChD,MAAM,EAAS,KAAK,KAAK,IAAI,GAAU,CAAkB,GAAG,CAAM;KAClE;IACF;IAOA,IAAI,MAAU,aAAa,KAAK,IAAI,IAAI,GAAa;KACnD,IAAM,IAAyB,IAAW,KAAK,IAAI;KACnD,IAAI,KAA0B,GAAG,MAAM,EAAa;KACpD,MAAM,EAAS,KAAK,KAAK,IAAI,IAAc,KAAK,IAAI,GAAG,CAAsB,GAAG,CAAM;KACtF;IACF;GACF;GAEA,IAAI;IAQF,IAPA,IAAS,MAAM,EAAkB,GAAQ;KAAE;KAAS;KAAW;KAAS;IAAO,CAAC,GAChF,IAAiB,GACjB,IAAkB,GAClB,IAAe,KAAK,IAAI,GACxB,IAAW,CAAM,GAEb,MAAU,eAAe,EAAO,WAAW,QAC3C,EAAyB,EAAO,MAAM,GAAG,OAAO;IACpD,IAAW,EAAO,WAAW,EAAqB,YAAY,IAAkB;GAClF,SAAS,GAAK;IAEZ,IAAI,GAAQ,SACV,MAAM,IAAI,EAAU,OAAO,wBAAwB,uCAAuC;IAG5F,IADmB,aAAe,KAAgB,EAAI,WAAW;SAE3D,EAAE,IAAiB,GAAqB,MAAM;IAAA,OAC7C,IAAI,EAA4B,CAAG,GAQxC;SAFA,IAAgB,aAAe,IAAY,IAAM,KAAA,GACjD,IAAW,EAA0B,KAAmB,CAAG,GACvD,GACF,IAAI;MACF,IAAmB,CAAa;KAClC,QAAQ,CAER;WAGF,MAAM;GAEV;GAEA,IAAM,IAAY,IAAW,KAAK,IAAI;GACtC,IAAI,KAAa,GAAG,MAAM,EAAa;GAGvC,MAAM,EAAa,KAAK,IAAI,GAAU,CAAS,GAAG,CAAM;EAC1D;CACF,UAAU;EACR,GAAU,MAAM;CAClB;CAEA,SAAS,IAA0B;EACjC,OAAO,IAAI,EACT,OACA,MAAU,cAAc,8BAA8B,4BACtD,oBAAoB,EAAU,iBAAiB,MAAU,cAAc,cAAc,oBAAoB,UAAU,EAAU,oBAAoB,GAAQ,UAAU,UAAU,kGAC7K,EAAE,OAAO,EAAc,CACzB;CACF;AACF;AAUA,SAAS,EAAoB,GAAgB,GAA0C;CACrF,IAAI;EACF,OAAO,EAAsB,GAAQ,EAAE,WAAQ,CAAC,EAAE,aAAa,CAAC;CAClE,QAAQ;EACN,OAAO,CAAC;CACV;AACF"}
@@ -0,0 +1,42 @@
1
+ /**
2
+ * Validate a GaslessWallet id before it reaches an RPC call or a request body.
3
+ *
4
+ * Wallet ids are `uint256`: the GaslessLayer and the service accept `0` through
5
+ * `2^256 - 1`. JavaScript `number`s are rejected outright rather than coerced,
6
+ * because an id above `Number.MAX_SAFE_INTEGER` would silently lose precision.
7
+ *
8
+ * @param walletId - The candidate id.
9
+ * @param label - How the id is named in the error message.
10
+ * @returns The id, unchanged.
11
+ * @throws {SymmError} `GASLESS_WALLET_ID_INVALID` for a non-bigint or an out-of-range value.
12
+ *
13
+ * @internal
14
+ */
15
+ export declare function assertGaslessWalletId(walletId: bigint, label?: string): bigint;
16
+ /**
17
+ * Encode a wallet id for a GasLessQ JSON body: a decimal string, never a
18
+ * number, per the service's JSON rules.
19
+ *
20
+ * @param walletId - The id to encode.
21
+ * @returns The id as a decimal string, e.g. `"2"`.
22
+ * @throws {SymmError} `GASLESS_WALLET_ID_INVALID` for a non-bigint or an out-of-range value.
23
+ *
24
+ * @internal
25
+ */
26
+ export declare function toGaslessWalletIdWire(walletId: bigint): string;
27
+ /**
28
+ * Strictly parse a wallet id the service returned (`wallet_id`,
29
+ * `payload.wallet_ids[]`): a `bigint`, or a decimal string in range. Negative,
30
+ * fractional, boolean, hex, numeric and overflowing values are rejected, mirroring
31
+ * the service's own validation. A missing id is the caller's concern — historical
32
+ * records omit it and mean wallet `0`.
33
+ *
34
+ * @param value - The raw value.
35
+ * @param label - How the id is named in the error message.
36
+ * @returns The id as a `bigint`.
37
+ * @throws {SymmError} `GASLESS_WALLET_ID_INVALID` for anything else.
38
+ *
39
+ * @internal
40
+ */
41
+ export declare function parseGaslessWalletId(value: unknown, label?: string): bigint;
42
+ //# sourceMappingURL=wallet-id.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wallet-id.d.ts","sourceRoot":"","sources":["../../src/gasless/wallet-id.ts"],"names":[],"mappings":"AAeA;;;;;;;;;;;;;GAaG;AACH,wBAAgB,qBAAqB,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,SAAa,GAAG,MAAM,CAGlF;AAED;;;;;;;;;GASG;AACH,wBAAgB,qBAAqB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAE9D;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,OAAO,EAAE,KAAK,SAAa,GAAG,MAAM,CAM/E"}
@@ -0,0 +1,25 @@
1
+ import { SymmError as e } from "../shared/errors/symm-error.js";
2
+ import { maxUint256 as t } from "viem";
3
+ //#region src/gasless/wallet-id.ts
4
+ var n = /^[0-9]+$/;
5
+ function r(t, n) {
6
+ return new e("validation", "GASLESS_WALLET_ID_INVALID", `Gasless: ${n} ${typeof t == "bigint" ? `${t}n` : JSON.stringify(t) ?? String(t)} is not a valid wallet id — expected a bigint (or a decimal string on the wire) from 0 through 2^256 - 1.`);
7
+ }
8
+ function i(e, n = "walletId") {
9
+ if (typeof e != "bigint" || e < 0n || e > t) throw r(e, n);
10
+ return e;
11
+ }
12
+ function a(e) {
13
+ return i(e).toString();
14
+ }
15
+ function o(e, a = "walletId") {
16
+ if (typeof e == "bigint") return i(e, a);
17
+ if (typeof e != "string" || !n.test(e)) throw r(e, a);
18
+ let o = BigInt(e);
19
+ if (o > t) throw r(e, a);
20
+ return o;
21
+ }
22
+ //#endregion
23
+ export { i as assertGaslessWalletId, o as parseGaslessWalletId, a as toGaslessWalletIdWire };
24
+
25
+ //# sourceMappingURL=wallet-id.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wallet-id.js","names":[],"sources":["../../src/gasless/wallet-id.ts"],"sourcesContent":["import { maxUint256 } from \"viem\";\nimport { SymmError } from \"../shared/errors/symm-error\";\n\n/** A canonical unsigned decimal: digits only — no sign, whitespace, exponent, fraction, or `0x` prefix. */\nconst DECIMAL_WALLET_ID = /^[0-9]+$/;\n\nfunction invalidWalletId(value: unknown, label: string): SymmError {\n const shown = typeof value === \"bigint\" ? `${value}n` : (JSON.stringify(value) ?? String(value));\n return new SymmError(\n \"validation\",\n \"GASLESS_WALLET_ID_INVALID\",\n `Gasless: ${label} ${shown} is not a valid wallet id — expected a bigint (or a decimal string on the wire) from 0 through 2^256 - 1.`,\n );\n}\n\n/**\n * Validate a GaslessWallet id before it reaches an RPC call or a request body.\n *\n * Wallet ids are `uint256`: the GaslessLayer and the service accept `0` through\n * `2^256 - 1`. JavaScript `number`s are rejected outright rather than coerced,\n * because an id above `Number.MAX_SAFE_INTEGER` would silently lose precision.\n *\n * @param walletId - The candidate id.\n * @param label - How the id is named in the error message.\n * @returns The id, unchanged.\n * @throws {SymmError} `GASLESS_WALLET_ID_INVALID` for a non-bigint or an out-of-range value.\n *\n * @internal\n */\nexport function assertGaslessWalletId(walletId: bigint, label = \"walletId\"): bigint {\n if (typeof walletId !== \"bigint\" || walletId < 0n || walletId > maxUint256) throw invalidWalletId(walletId, label);\n return walletId;\n}\n\n/**\n * Encode a wallet id for a GasLessQ JSON body: a decimal string, never a\n * number, per the service's JSON rules.\n *\n * @param walletId - The id to encode.\n * @returns The id as a decimal string, e.g. `\"2\"`.\n * @throws {SymmError} `GASLESS_WALLET_ID_INVALID` for a non-bigint or an out-of-range value.\n *\n * @internal\n */\nexport function toGaslessWalletIdWire(walletId: bigint): string {\n return assertGaslessWalletId(walletId).toString();\n}\n\n/**\n * Strictly parse a wallet id the service returned (`wallet_id`,\n * `payload.wallet_ids[]`): a `bigint`, or a decimal string in range. Negative,\n * fractional, boolean, hex, numeric and overflowing values are rejected, mirroring\n * the service's own validation. A missing id is the caller's concern — historical\n * records omit it and mean wallet `0`.\n *\n * @param value - The raw value.\n * @param label - How the id is named in the error message.\n * @returns The id as a `bigint`.\n * @throws {SymmError} `GASLESS_WALLET_ID_INVALID` for anything else.\n *\n * @internal\n */\nexport function parseGaslessWalletId(value: unknown, label = \"walletId\"): bigint {\n if (typeof value === \"bigint\") return assertGaslessWalletId(value, label);\n if (typeof value !== \"string\" || !DECIMAL_WALLET_ID.test(value)) throw invalidWalletId(value, label);\n const walletId = BigInt(value);\n if (walletId > maxUint256) throw invalidWalletId(value, label);\n return walletId;\n}\n"],"mappings":";;;AAIA,IAAM,IAAoB;AAE1B,SAAS,EAAgB,GAAgB,GAA0B;CAEjE,OAAO,IAAI,EACT,cACA,6BACA,YAAY,EAAM,GAJN,OAAO,KAAU,WAAW,GAAG,EAAM,KAAM,KAAK,UAAU,CAAK,KAAK,OAAO,CAAK,EAIjE,0GAC7B;AACF;AAgBA,SAAgB,EAAsB,GAAkB,IAAQ,YAAoB;CAClF,IAAI,OAAO,KAAa,YAAY,IAAW,MAAM,IAAW,GAAY,MAAM,EAAgB,GAAU,CAAK;CACjH,OAAO;AACT;AAYA,SAAgB,EAAsB,GAA0B;CAC9D,OAAO,EAAsB,CAAQ,EAAE,SAAS;AAClD;AAgBA,SAAgB,EAAqB,GAAgB,IAAQ,YAAoB;CAC/E,IAAI,OAAO,KAAU,UAAU,OAAO,EAAsB,GAAO,CAAK;CACxE,IAAI,OAAO,KAAU,YAAY,CAAC,EAAkB,KAAK,CAAK,GAAG,MAAM,EAAgB,GAAO,CAAK;CACnG,IAAM,IAAW,OAAO,CAAK;CAC7B,IAAI,IAAW,GAAY,MAAM,EAAgB,GAAO,CAAK;CAC7D,OAAO;AACT"}
@@ -0,0 +1,33 @@
1
+ import { GaslessRequestStatus } from './types.js';
2
+ /**
3
+ * Parse an **acceptance** status tolerantly: anything outside the documented
4
+ * lifecycle becomes {@link GaslessRequestStatus.QUEUED}.
5
+ *
6
+ * A `202` means the workflow exists server-side and may execute. Throwing on an
7
+ * unrecognized acceptance status would discard the `request_id` with it, and a
8
+ * lost id is unrecoverable — there is no list-by-wallet endpoint. Queued is the
9
+ * only safe reading of "accepted, outcome unknown": the caller keeps polling
10
+ * and the stored record supplies the real status. Stored records are parsed
11
+ * strictly instead (`toGaslessRequestStatus`), where a loud failure costs
12
+ * nothing.
13
+ *
14
+ * @param raw - The wire `status` value.
15
+ * @returns The parsed status, or `queued` when it is not a known one.
16
+ *
17
+ * @internal
18
+ */
19
+ export declare function toGaslessAcceptanceStatus(raw: unknown): GaslessRequestStatus;
20
+ /**
21
+ * Parse an optional decimal-string amount into a `bigint`, or `null`.
22
+ *
23
+ * Every raw amount on the wire is optional and nullable, and a malformed one is
24
+ * a vendor bug rather than a reason to lose the record it travels with — so an
25
+ * unparseable value reads as "not reported" rather than throwing.
26
+ *
27
+ * @param value - The raw wire value.
28
+ * @returns The amount, or `null` when it is absent or not a plain decimal.
29
+ *
30
+ * @internal
31
+ */
32
+ export declare function toGaslessOptionalAmount(value: unknown): bigint | null;
33
+ //# sourceMappingURL=wire-parse.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wire-parse.d.ts","sourceRoot":"","sources":["../../src/gasless/wire-parse.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,SAAS,CAAC;AAK/C;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,yBAAyB,CAAC,GAAG,EAAE,OAAO,GAAG,oBAAoB,CAI5E;AAKD;;;;;;;;;;;GAWG;AACH,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,GAAG,IAAI,CAIrE"}
@@ -0,0 +1,14 @@
1
+ import { GaslessRequestStatus as e } from "./types.js";
2
+ //#region src/gasless/wire-parse.ts
3
+ var t = new Set(Object.values(e));
4
+ function n(n) {
5
+ return typeof n == "string" && t.has(n) ? n : e.QUEUED;
6
+ }
7
+ var r = /^[0-9]+$/;
8
+ function i(e) {
9
+ return typeof e == "bigint" ? e : typeof e != "string" || !r.test(e) ? null : BigInt(e);
10
+ }
11
+ //#endregion
12
+ export { n as toGaslessAcceptanceStatus, i as toGaslessOptionalAmount };
13
+
14
+ //# sourceMappingURL=wire-parse.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wire-parse.js","names":[],"sources":["../../src/gasless/wire-parse.ts"],"sourcesContent":["import { GaslessRequestStatus } from \"./types\";\n\n/** Every value the lifecycle enum accepts, for tolerant inbound parsing. */\nconst STATUS_VALUES = new Set<string>(Object.values(GaslessRequestStatus));\n\n/**\n * Parse an **acceptance** status tolerantly: anything outside the documented\n * lifecycle becomes {@link GaslessRequestStatus.QUEUED}.\n *\n * A `202` means the workflow exists server-side and may execute. Throwing on an\n * unrecognized acceptance status would discard the `request_id` with it, and a\n * lost id is unrecoverable — there is no list-by-wallet endpoint. Queued is the\n * only safe reading of \"accepted, outcome unknown\": the caller keeps polling\n * and the stored record supplies the real status. Stored records are parsed\n * strictly instead (`toGaslessRequestStatus`), where a loud failure costs\n * nothing.\n *\n * @param raw - The wire `status` value.\n * @returns The parsed status, or `queued` when it is not a known one.\n *\n * @internal\n */\nexport function toGaslessAcceptanceStatus(raw: unknown): GaslessRequestStatus {\n return typeof raw === \"string\" && STATUS_VALUES.has(raw)\n ? (raw as GaslessRequestStatus)\n : GaslessRequestStatus.QUEUED;\n}\n\n/** A canonical unsigned decimal amount: digits only, as the service reports amounts. */\nconst DECIMAL_AMOUNT = /^[0-9]+$/;\n\n/**\n * Parse an optional decimal-string amount into a `bigint`, or `null`.\n *\n * Every raw amount on the wire is optional and nullable, and a malformed one is\n * a vendor bug rather than a reason to lose the record it travels with — so an\n * unparseable value reads as \"not reported\" rather than throwing.\n *\n * @param value - The raw wire value.\n * @returns The amount, or `null` when it is absent or not a plain decimal.\n *\n * @internal\n */\nexport function toGaslessOptionalAmount(value: unknown): bigint | null {\n if (typeof value === \"bigint\") return value;\n if (typeof value !== \"string\" || !DECIMAL_AMOUNT.test(value)) return null;\n return BigInt(value);\n}\n"],"mappings":";;AAGA,IAAM,IAAgB,IAAI,IAAY,OAAO,OAAO,CAAoB,CAAC;AAmBzE,SAAgB,EAA0B,GAAoC;CAC5E,OAAO,OAAO,KAAQ,YAAY,EAAc,IAAI,CAAG,IAClD,IACD,EAAqB;AAC3B;AAGA,IAAM,IAAiB;AAcvB,SAAgB,EAAwB,GAA+B;CAGrE,OAFI,OAAO,KAAU,WAAiB,IAClC,OAAO,KAAU,YAAY,CAAC,EAAe,KAAK,CAAK,IAAU,OAC9D,OAAO,CAAK;AACrB"}