@kontor/kontor-sdk 1.0.0-alpha.13 → 1.0.0-alpha.15

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 (288) hide show
  1. package/dist/cjs/sdk/actions/kontor/public/{build-compose-call.js → build-compose-query.js} +8 -9
  2. package/dist/cjs/sdk/actions/kontor/public/build-compose-query.js.map +1 -0
  3. package/dist/cjs/sdk/actions/kontor/public/{build-instruction.js → build-instruction-query.js} +11 -16
  4. package/dist/cjs/sdk/actions/kontor/public/build-instruction-query.js.map +1 -0
  5. package/dist/cjs/sdk/actions/kontor/public/{call-proc.js → call-compose.js} +7 -9
  6. package/dist/cjs/sdk/actions/kontor/public/call-compose.js.map +1 -0
  7. package/dist/cjs/sdk/actions/kontor/public/proc-contract.js +8 -5
  8. package/dist/cjs/sdk/actions/kontor/public/proc-contract.js.map +1 -1
  9. package/dist/cjs/sdk/actions/kontor/wallet/sign-reveal.js +1 -1
  10. package/dist/cjs/sdk/actions/kontor/wallet/sign-reveal.js.map +1 -1
  11. package/dist/cjs/sdk/clients/decorators/kontor/public.js +6 -6
  12. package/dist/cjs/sdk/clients/decorators/kontor/public.js.map +1 -1
  13. package/dist/cjs/sdk/contracts/wits.js.map +1 -1
  14. package/dist/cjs/sdk/types/kontor.js +28 -0
  15. package/dist/cjs/sdk/types/kontor.js.map +1 -1
  16. package/dist/cjs/tsconfig.build.tsbuildinfo +1 -1
  17. package/dist/{src/sdk/actions/kontor/public/build-compose-call.js → esm/sdk/actions/kontor/public/build-compose-query.js} +2 -2
  18. package/dist/esm/sdk/actions/kontor/public/build-compose-query.js.map +1 -0
  19. package/dist/{src/sdk/actions/kontor/public/build-instruction.js → esm/sdk/actions/kontor/public/build-instruction-query.js} +1 -2
  20. package/dist/esm/sdk/actions/kontor/public/build-instruction-query.js.map +1 -0
  21. package/dist/esm/sdk/actions/kontor/public/{call-proc.js → call-compose.js} +7 -8
  22. package/dist/esm/sdk/actions/kontor/public/call-compose.js.map +1 -0
  23. package/dist/esm/sdk/actions/kontor/public/proc-contract.js +8 -5
  24. package/dist/esm/sdk/actions/kontor/public/proc-contract.js.map +1 -1
  25. package/dist/esm/sdk/actions/kontor/wallet/sign-reveal.js +4 -6
  26. package/dist/esm/sdk/actions/kontor/wallet/sign-reveal.js.map +1 -1
  27. package/dist/esm/sdk/clients/decorators/kontor/public.js +6 -6
  28. package/dist/esm/sdk/clients/decorators/kontor/public.js.map +1 -1
  29. package/dist/esm/sdk/contracts/wits.js.map +1 -1
  30. package/dist/esm/sdk/types/kontor.js +27 -1
  31. package/dist/esm/sdk/types/kontor.js.map +1 -1
  32. package/dist/esm/tsconfig.build.tsbuildinfo +1 -1
  33. package/dist/src/exports/index.test.js +10 -0
  34. package/dist/src/exports/index.test.js.map +1 -0
  35. package/dist/src/sdk/accounts/hd-key-to-account.js +20 -0
  36. package/dist/src/sdk/accounts/hd-key-to-account.js.map +1 -0
  37. package/dist/src/sdk/accounts/mnemonic-to-account.js +16 -0
  38. package/dist/src/sdk/accounts/mnemonic-to-account.js.map +1 -0
  39. package/dist/src/sdk/accounts/mnemonic-to-account.test.js +96 -0
  40. package/dist/src/sdk/accounts/mnemonic-to-account.test.js.map +1 -0
  41. package/dist/src/sdk/accounts/to-local-account.js +28 -0
  42. package/dist/src/sdk/accounts/to-local-account.js.map +1 -0
  43. package/dist/src/sdk/accounts/types.js +2 -0
  44. package/dist/src/sdk/accounts/types.js.map +1 -0
  45. package/dist/src/sdk/accounts/utils/parse-account.js +10 -0
  46. package/dist/src/sdk/accounts/utils/parse-account.js.map +1 -0
  47. package/dist/src/sdk/accounts/utils/public-key-to-p2tr-payment.js +14 -0
  48. package/dist/src/sdk/accounts/utils/public-key-to-p2tr-payment.js.map +1 -0
  49. package/dist/src/sdk/accounts/utils/sign-psbt.js +17 -0
  50. package/dist/src/sdk/accounts/utils/sign-psbt.js.map +1 -0
  51. package/dist/src/sdk/actions/kontor/wallet/sign-commit.js +34 -0
  52. package/dist/src/sdk/actions/kontor/wallet/sign-commit.js.map +1 -0
  53. package/dist/src/sdk/actions/public/send-raw-transaction.js +7 -0
  54. package/dist/src/sdk/actions/public/send-raw-transaction.js.map +1 -0
  55. package/dist/src/sdk/actions/public/test-mempool-accept.js +20 -0
  56. package/dist/src/sdk/actions/public/test-mempool-accept.js.map +1 -0
  57. package/dist/src/sdk/chains/definitions/index.js +2 -0
  58. package/dist/src/sdk/chains/definitions/index.js.map +1 -0
  59. package/dist/src/sdk/chains/definitions/signet.js +36 -0
  60. package/dist/src/sdk/chains/definitions/signet.js.map +1 -0
  61. package/dist/src/sdk/clients/base/create-rpc-client.test.js +145 -0
  62. package/dist/src/sdk/clients/base/create-rpc-client.test.js.map +1 -0
  63. package/dist/src/sdk/clients/create-public-client.test.js +113 -0
  64. package/dist/src/sdk/clients/create-public-client.test.js.map +1 -0
  65. package/dist/src/sdk/clients/decorators/kontor/wallet.js +13 -0
  66. package/dist/src/sdk/clients/decorators/kontor/wallet.js.map +1 -0
  67. package/dist/src/sdk/clients/decorators/public.js +9 -0
  68. package/dist/src/sdk/clients/decorators/public.js.map +1 -0
  69. package/dist/src/sdk/clients/decorators/wallet.js +9 -0
  70. package/dist/src/sdk/clients/decorators/wallet.js.map +1 -0
  71. package/dist/src/sdk/clients/kontor/create-public-client.test.js +44 -0
  72. package/dist/src/sdk/clients/kontor/create-public-client.test.js.map +1 -0
  73. package/dist/src/sdk/clients/kontor/create-wallet-client.js +14 -0
  74. package/dist/src/sdk/clients/kontor/create-wallet-client.js.map +1 -0
  75. package/dist/src/sdk/clients/transports/create-http-transport.js +25 -0
  76. package/dist/src/sdk/clients/transports/create-http-transport.js.map +1 -0
  77. package/dist/src/sdk/clients/transports/create-rpc-transport.test.js +58 -0
  78. package/dist/src/sdk/clients/transports/create-rpc-transport.test.js.map +1 -0
  79. package/dist/src/sdk/clients/transports/custom.js +14 -0
  80. package/dist/src/sdk/clients/transports/custom.js.map +1 -0
  81. package/dist/src/sdk/clients/transports/http-rpc.js +84 -0
  82. package/dist/src/sdk/clients/transports/http-rpc.js.map +1 -0
  83. package/dist/src/sdk/clients/transports/http-rpc.test.js +147 -0
  84. package/dist/src/sdk/clients/transports/http-rpc.test.js.map +1 -0
  85. package/dist/src/sdk/clients/transports/http.js +45 -0
  86. package/dist/src/sdk/clients/transports/http.js.map +1 -0
  87. package/dist/src/sdk/errors/address.js +13 -0
  88. package/dist/src/sdk/errors/address.js.map +1 -0
  89. package/dist/src/sdk/errors/base.js +92 -0
  90. package/dist/src/sdk/errors/base.js.map +1 -0
  91. package/dist/src/sdk/errors/request.js +100 -0
  92. package/dist/src/sdk/errors/request.js.map +1 -0
  93. package/dist/src/sdk/errors/rpc.js +30 -0
  94. package/dist/src/sdk/errors/rpc.js.map +1 -0
  95. package/dist/src/sdk/errors/transport.js +10 -0
  96. package/dist/src/sdk/errors/transport.js.map +1 -0
  97. package/dist/src/sdk/errors/utils.js +2 -0
  98. package/dist/src/sdk/errors/utils.js.map +1 -0
  99. package/dist/src/sdk/errors/version.js +2 -0
  100. package/dist/src/sdk/errors/version.js.map +1 -0
  101. package/dist/src/sdk/errors/wit.js +19 -0
  102. package/dist/src/sdk/errors/wit.js.map +1 -0
  103. package/dist/src/sdk/types/account.js +2 -0
  104. package/dist/src/sdk/types/account.js.map +1 -0
  105. package/dist/src/sdk/types/btc-rpc.js +2 -0
  106. package/dist/src/sdk/types/btc-rpc.js.map +1 -0
  107. package/dist/src/sdk/types/contract.test-d.js +35 -0
  108. package/dist/src/sdk/types/contract.test-d.js.map +1 -0
  109. package/dist/src/sdk/types/http-schema.test-d.js +133 -0
  110. package/dist/src/sdk/types/http-schema.test-d.js.map +1 -0
  111. package/dist/src/sdk/types/misc.js +2 -0
  112. package/dist/src/sdk/types/misc.js.map +1 -0
  113. package/dist/src/sdk/types/rpc.js +19 -0
  114. package/dist/src/sdk/types/rpc.js.map +1 -0
  115. package/dist/src/sdk/types/utils.js +2 -0
  116. package/dist/src/sdk/types/utils.js.map +1 -0
  117. package/dist/src/sdk/types/wbip001.js +3 -0
  118. package/dist/src/sdk/types/wbip001.js.map +1 -0
  119. package/dist/src/sdk/utils/build-http-request.js +55 -0
  120. package/dist/src/sdk/utils/build-http-request.js.map +1 -0
  121. package/dist/src/sdk/utils/build-request.js +35 -0
  122. package/dist/src/sdk/utils/build-request.js.map +1 -0
  123. package/dist/src/sdk/utils/build-rpc-request.js +84 -0
  124. package/dist/src/sdk/utils/build-rpc-request.js.map +1 -0
  125. package/dist/src/sdk/utils/encoding/to-hex.js +23 -0
  126. package/dist/src/sdk/utils/encoding/to-hex.js.map +1 -0
  127. package/dist/src/sdk/utils/get-action.js +27 -0
  128. package/dist/src/sdk/utils/get-action.js.map +1 -0
  129. package/dist/src/sdk/utils/http.js +137 -0
  130. package/dist/src/sdk/utils/http.js.map +1 -0
  131. package/dist/src/sdk/utils/lru.js +35 -0
  132. package/dist/src/sdk/utils/lru.js.map +1 -0
  133. package/dist/src/sdk/utils/promise/create-batch-scheduler.js +49 -0
  134. package/dist/src/sdk/utils/promise/create-batch-scheduler.js.map +1 -0
  135. package/dist/src/sdk/utils/promise/with-dedupe.js +14 -0
  136. package/dist/src/sdk/utils/promise/with-dedupe.js.map +1 -0
  137. package/dist/src/sdk/utils/promise/with-resolvers.js +10 -0
  138. package/dist/src/sdk/utils/promise/with-resolvers.js.map +1 -0
  139. package/dist/src/sdk/utils/promise/with-retry.js +25 -0
  140. package/dist/src/sdk/utils/promise/with-retry.js.map +1 -0
  141. package/dist/src/sdk/utils/promise/with-timeout.js +30 -0
  142. package/dist/src/sdk/utils/promise/with-timeout.js.map +1 -0
  143. package/dist/src/sdk/utils/rpc/http.js +86 -0
  144. package/dist/src/sdk/utils/rpc/http.js.map +1 -0
  145. package/dist/src/sdk/utils/rpc/id.js +13 -0
  146. package/dist/src/sdk/utils/rpc/id.js.map +1 -0
  147. package/dist/src/sdk/utils/stringify.js +5 -0
  148. package/dist/src/sdk/utils/stringify.js.map +1 -0
  149. package/dist/src/sdk/utils/uid.js +14 -0
  150. package/dist/src/sdk/utils/uid.js.map +1 -0
  151. package/dist/src/sdk/utils/wait.js +4 -0
  152. package/dist/src/sdk/utils/wait.js.map +1 -0
  153. package/dist/src/sdk/utils/wit/codecs/decimal.js +165 -0
  154. package/dist/src/sdk/utils/wit/codecs/decimal.js.map +1 -0
  155. package/dist/src/sdk/utils/wit/codecs/enum.js +104 -0
  156. package/dist/src/sdk/utils/wit/codecs/enum.js.map +1 -0
  157. package/dist/src/sdk/utils/wit/codecs/integer.js +167 -0
  158. package/dist/src/sdk/utils/wit/codecs/integer.js.map +1 -0
  159. package/dist/src/sdk/utils/wit/codecs/list.js +117 -0
  160. package/dist/src/sdk/utils/wit/codecs/list.js.map +1 -0
  161. package/dist/src/sdk/utils/wit/codecs/option.js +91 -0
  162. package/dist/src/sdk/utils/wit/codecs/option.js.map +1 -0
  163. package/dist/src/sdk/utils/wit/codecs/string.js +27 -0
  164. package/dist/src/sdk/utils/wit/codecs/string.js.map +1 -0
  165. package/dist/src/sdk/utils/wit/codecs/types.js +45 -0
  166. package/dist/src/sdk/utils/wit/codecs/types.js.map +1 -0
  167. package/dist/src/sdk/utils/wit/codecs/unit.js +22 -0
  168. package/dist/src/sdk/utils/wit/codecs/unit.js.map +1 -0
  169. package/dist/src/sdk/utils/wit/decode-function-result.js +36 -0
  170. package/dist/src/sdk/utils/wit/decode-function-result.js.map +1 -0
  171. package/dist/src/sdk/utils/wit/decode-wit-parameter.js +286 -0
  172. package/dist/src/sdk/utils/wit/decode-wit-parameter.js.map +1 -0
  173. package/dist/src/sdk/utils/wit/decode-wit-parameter.test.js +75 -0
  174. package/dist/src/sdk/utils/wit/decode-wit-parameter.test.js.map +1 -0
  175. package/dist/src/sdk/utils/wit/encode-function-data.js +17 -0
  176. package/dist/src/sdk/utils/wit/encode-function-data.js.map +1 -0
  177. package/dist/src/sdk/utils/wit/encode-function-data.test-d.js +21 -0
  178. package/dist/src/sdk/utils/wit/encode-function-data.test-d.js.map +1 -0
  179. package/dist/src/sdk/utils/wit/encode-function-data.test.js +91 -0
  180. package/dist/src/sdk/utils/wit/encode-function-data.test.js.map +1 -0
  181. package/dist/src/sdk/utils/wit/encode-wit-parameters.js +250 -0
  182. package/dist/src/sdk/utils/wit/encode-wit-parameters.js.map +1 -0
  183. package/dist/src/sdk/utils/wit/encode-wit-parameters.test.js +62 -0
  184. package/dist/src/sdk/utils/wit/encode-wit-parameters.test.js.map +1 -0
  185. package/dist/src/sdk/utils/wit/get-wit-item.js +15 -0
  186. package/dist/src/sdk/utils/wit/get-wit-item.js.map +1 -0
  187. package/dist/src/sdk/utils/wit/get-wit-item.test.js +118 -0
  188. package/dist/src/sdk/utils/wit/get-wit-item.test.js.map +1 -0
  189. package/dist/src/sdk/utils/wit/prepare-encode-function-data.js +24 -0
  190. package/dist/src/sdk/utils/wit/prepare-encode-function-data.js.map +1 -0
  191. package/dist/src/wit/error.js +59 -0
  192. package/dist/src/wit/error.js.map +1 -0
  193. package/dist/src/wit/narrow.js +14 -0
  194. package/dist/src/wit/narrow.js.map +1 -0
  195. package/dist/src/wit/regex.js +6 -0
  196. package/dist/src/wit/regex.js.map +1 -0
  197. package/dist/src/wit/register.js +2 -0
  198. package/dist/src/wit/register.js.map +1 -0
  199. package/dist/src/wit/type-utils.js +2 -0
  200. package/dist/src/wit/type-utils.js.map +1 -0
  201. package/dist/src/wit/utils.js +2 -0
  202. package/dist/src/wit/utils.js.map +1 -0
  203. package/dist/src/wit/utils.test-d.js +16 -0
  204. package/dist/src/wit/utils.test-d.js.map +1 -0
  205. package/dist/src/wit/version.js +2 -0
  206. package/dist/src/wit/version.js.map +1 -0
  207. package/dist/src/wit/wit-parser/core/errors/signature.js +42 -0
  208. package/dist/src/wit/wit-parser/core/errors/signature.js.map +1 -0
  209. package/dist/src/wit/wit-parser/core/errors/splitParameters.js +18 -0
  210. package/dist/src/wit/wit-parser/core/errors/splitParameters.js.map +1 -0
  211. package/dist/src/wit/wit-parser/core/errors/wit-parameter.js +29 -0
  212. package/dist/src/wit/wit-parser/core/errors/wit-parameter.js.map +1 -0
  213. package/dist/src/wit/wit-parser/core/records.js +73 -0
  214. package/dist/src/wit/wit-parser/core/records.js.map +1 -0
  215. package/dist/src/wit/wit-parser/core/records.test.js +53 -0
  216. package/dist/src/wit/wit-parser/core/records.test.js.map +1 -0
  217. package/dist/src/wit/wit-parser/core/signatures.js +32 -0
  218. package/dist/src/wit/wit-parser/core/signatures.js.map +1 -0
  219. package/dist/src/wit/wit-parser/core/signatures.test.js +54 -0
  220. package/dist/src/wit/wit-parser/core/signatures.test.js.map +1 -0
  221. package/dist/src/wit/wit-parser/core/types/records.js +2 -0
  222. package/dist/src/wit/wit-parser/core/types/records.js.map +1 -0
  223. package/dist/src/wit/wit-parser/core/types/records.test-d.js +19 -0
  224. package/dist/src/wit/wit-parser/core/types/records.test-d.js.map +1 -0
  225. package/dist/src/wit/wit-parser/core/types/signatures.js +3 -0
  226. package/dist/src/wit/wit-parser/core/types/signatures.js.map +1 -0
  227. package/dist/src/wit/wit-parser/core/types/signatures.test-d.js +18 -0
  228. package/dist/src/wit/wit-parser/core/types/signatures.test-d.js.map +1 -0
  229. package/dist/src/wit/wit-parser/core/types/utils.js +2 -0
  230. package/dist/src/wit/wit-parser/core/types/utils.js.map +1 -0
  231. package/dist/src/wit/wit-parser/core/types/utils.test-d.js +138 -0
  232. package/dist/src/wit/wit-parser/core/types/utils.test-d.js.map +1 -0
  233. package/dist/src/wit/wit-parser/core/utils.js +212 -0
  234. package/dist/src/wit/wit-parser/core/utils.js.map +1 -0
  235. package/dist/src/wit/wit-parser/core/utils.test.js +302 -0
  236. package/dist/src/wit/wit-parser/core/utils.test.js.map +1 -0
  237. package/dist/src/wit/wit-parser/parse-wit-parameter.js +26 -0
  238. package/dist/src/wit/wit-parser/parse-wit-parameter.js.map +1 -0
  239. package/dist/src/wit/wit-parser/parse-wit-parameter.test.js +77 -0
  240. package/dist/src/wit/wit-parser/parse-wit-parameter.test.js.map +1 -0
  241. package/dist/src/wit/wit-parser/parse-wit.js +16 -0
  242. package/dist/src/wit/wit-parser/parse-wit.js.map +1 -0
  243. package/dist/src/wit/wit-parser/parse-wit.test.js +78 -0
  244. package/dist/src/wit/wit-parser/parse-wit.test.js.map +1 -0
  245. package/dist/src/wit/wit.js +2 -0
  246. package/dist/src/wit/wit.js.map +1 -0
  247. package/dist/src/wit/wit.test.js +6 -0
  248. package/dist/src/wit/wit.test.js.map +1 -0
  249. package/dist/test/globalSetup.js +14 -0
  250. package/dist/test/globalSetup.js.map +1 -0
  251. package/dist/test/src/wits.js +21 -0
  252. package/dist/test/src/wits.js.map +1 -0
  253. package/dist/tsconfig.tsbuildinfo +1 -1
  254. package/dist/types/sdk/actions/kontor/public/build-compose-query.d.ts +16 -0
  255. package/dist/types/sdk/actions/kontor/public/build-compose-query.d.ts.map +1 -0
  256. package/dist/types/sdk/actions/kontor/public/build-instruction-query.d.ts +25 -0
  257. package/dist/types/sdk/actions/kontor/public/build-instruction-query.d.ts.map +1 -0
  258. package/dist/types/sdk/actions/kontor/public/call-compose.d.ts +20 -0
  259. package/dist/types/sdk/actions/kontor/public/call-compose.d.ts.map +1 -0
  260. package/dist/types/sdk/actions/kontor/public/proc-contract.d.ts +2 -2
  261. package/dist/types/sdk/actions/kontor/public/proc-contract.d.ts.map +1 -1
  262. package/dist/types/sdk/actions/kontor/wallet/sign-reveal.d.ts.map +1 -1
  263. package/dist/types/sdk/clients/decorators/kontor/public.d.ts +6 -6
  264. package/dist/types/sdk/clients/decorators/kontor/public.d.ts.map +1 -1
  265. package/dist/types/sdk/contracts/wits.d.ts +6 -5
  266. package/dist/types/sdk/contracts/wits.d.ts.map +1 -1
  267. package/dist/types/sdk/types/kontor.d.ts +15 -1
  268. package/dist/types/sdk/types/kontor.d.ts.map +1 -1
  269. package/package.json +1 -1
  270. package/src/sdk/actions/kontor/public/build-compose-query.ts +1 -1
  271. package/dist/cjs/sdk/actions/kontor/public/build-compose-call.js.map +0 -1
  272. package/dist/cjs/sdk/actions/kontor/public/build-instruction.js.map +0 -1
  273. package/dist/cjs/sdk/actions/kontor/public/call-proc.js.map +0 -1
  274. package/dist/esm/sdk/actions/kontor/public/build-compose-call.js +0 -31
  275. package/dist/esm/sdk/actions/kontor/public/build-compose-call.js.map +0 -1
  276. package/dist/esm/sdk/actions/kontor/public/build-instruction.js +0 -49
  277. package/dist/esm/sdk/actions/kontor/public/build-instruction.js.map +0 -1
  278. package/dist/esm/sdk/actions/kontor/public/call-proc.js.map +0 -1
  279. package/dist/src/sdk/actions/kontor/public/build-compose-call.js.map +0 -1
  280. package/dist/src/sdk/actions/kontor/public/build-instruction.js.map +0 -1
  281. package/dist/src/sdk/actions/kontor/public/call-proc.js +0 -43
  282. package/dist/src/sdk/actions/kontor/public/call-proc.js.map +0 -1
  283. package/dist/types/sdk/actions/kontor/public/build-compose-call.d.ts +0 -21
  284. package/dist/types/sdk/actions/kontor/public/build-compose-call.d.ts.map +0 -1
  285. package/dist/types/sdk/actions/kontor/public/build-instruction.d.ts +0 -17
  286. package/dist/types/sdk/actions/kontor/public/build-instruction.d.ts.map +0 -1
  287. package/dist/types/sdk/actions/kontor/public/call-proc.d.ts +0 -23
  288. package/dist/types/sdk/actions/kontor/public/call-proc.d.ts.map +0 -1
@@ -0,0 +1,91 @@
1
+ import { Enum } from "./enum.js";
2
+ export const KontorOption = Enum.Option;
3
+ /**
4
+ * Instance that represents a decoded option<Inner> value.
5
+ *
6
+ * Generic parameterization is on the *inner codec constructor* so that
7
+ * the JS type of this option instance is always OptionJs<CodecJs<InnerC>>.
8
+ */
9
+ export class OptionCodecFactory {
10
+ constructor(innerCodec, data) {
11
+ Object.defineProperty(this, "innerCodec", {
12
+ enumerable: true,
13
+ configurable: true,
14
+ writable: true,
15
+ value: innerCodec
16
+ });
17
+ Object.defineProperty(this, "data", {
18
+ enumerable: true,
19
+ configurable: true,
20
+ writable: true,
21
+ value: data
22
+ });
23
+ }
24
+ toWave() {
25
+ if (this.data.kind === "none") {
26
+ return "none";
27
+ }
28
+ // assume data.value is a WaveExpr string for the inner
29
+ return `some(${this.data.value ?? ""})`;
30
+ }
31
+ toJs() {
32
+ if (this.data.kind === "none") {
33
+ return { kind: "none" };
34
+ }
35
+ if (this.data.value == null) {
36
+ throw new Error("Option some() has no inner value");
37
+ }
38
+ // 1) parse inner WaveExpr → inner WaveData
39
+ const innerWaveData = this.innerCodec.parseWave(this.data.value);
40
+ // 2) WaveData → inner instance
41
+ const innerInst = this.innerCodec.fromKontor(innerWaveData);
42
+ // 3) instance → JS
43
+ return { kind: "some", value: innerInst.toJs() };
44
+ }
45
+ // ----- Static factory to build a typed option<T> codec constructor -----
46
+ static create(innerCodec) {
47
+ // Class expression implements the static methods required by CodecConstructor
48
+ class OptionCodecClass {
49
+ constructor(data) {
50
+ // Internally forward all instance behavior to OptionCodecInstance
51
+ Object.defineProperty(this, "_impl", {
52
+ enumerable: true,
53
+ configurable: true,
54
+ writable: true,
55
+ value: void 0
56
+ });
57
+ this._impl = new OptionCodecFactory(innerCodec, data);
58
+ }
59
+ // ----- CodecConstructor statics -----
60
+ static fromJs(value) {
61
+ if (value.kind === "none") {
62
+ return new OptionCodecFactory(innerCodec, { kind: "none" });
63
+ }
64
+ // encode inner via innerCodec
65
+ const innerInst = innerCodec.fromJs(value.value);
66
+ const innerWave = innerInst.toWave();
67
+ return new OptionCodecFactory(innerCodec, {
68
+ kind: "some",
69
+ value: innerWave,
70
+ });
71
+ }
72
+ static parseWave(expr) {
73
+ // Expect raw "none" or "some(<inner...>)"
74
+ return Enum.Option.schema.parse(expr);
75
+ }
76
+ static fromKontor(data) {
77
+ return new OptionCodecFactory(innerCodec, data);
78
+ }
79
+ // ----- Instance side -----
80
+ toWave() {
81
+ return this._impl.toWave();
82
+ }
83
+ toJs() {
84
+ return this._impl.toJs();
85
+ }
86
+ }
87
+ // Satisfy the CodecConstructor contract with precise generics
88
+ return OptionCodecClass;
89
+ }
90
+ }
91
+ //# sourceMappingURL=option.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"option.js","sourceRoot":"","sources":["../../../../../../src/sdk/utils/wit/codecs/option.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC,MAAM,CAAC,MAAM,YAAY,GAAG,IAAI,CAAC,MAAM,CAAC;AAKxC;;;;;GAKG;AACH,MAAM,OAAO,kBAAkB;IAI7B,YACmB,UAAkB,EACnB,IAAmB;QADnC;;;;mBAAiB,UAAU;WAAQ;QACnC;;;;mBAAgB,IAAI;WAAe;IAClC,CAAC;IAEJ,MAAM;QACJ,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;YAC9B,OAAO,MAAkB,CAAC;QAC5B,CAAC;QACD,uDAAuD;QACvD,OAAO,QAAQ,IAAI,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE,GAAe,CAAC;IACtD,CAAC;IAED,IAAI;QACF,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;YAC9B,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;QAC1B,CAAC;QACD,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,IAAI,IAAI,EAAE,CAAC;YAC5B,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAC;QACtD,CAAC;QAED,2CAA2C;QAC3C,MAAM,aAAa,GAAG,IAAI,CAAC,UAAU,CAAC,SAAS,CAC7C,IAAI,CAAC,IAAI,CAAC,KAAK,CACK,CAAC;QAEvB,+BAA+B;QAC/B,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,UAAU,CAC1C,aAAa,CACO,CAAC;QAEvB,mBAAmB;QACnB,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,CAAC,IAAI,EAAqB,EAAE,CAAC;IACtE,CAAC;IAED,0EAA0E;IAE1E,MAAM,CAAC,MAAM,CAGX,UAAkB;QASlB,8EAA8E;QAC9E,MAAM,gBAAgB;YAIpB,YAAY,IAAmB;gBAH/B,kEAAkE;gBACjD;;;;;mBAAkC;gBAGjD,IAAI,CAAC,KAAK,GAAG,IAAI,kBAAkB,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;YACxD,CAAC;YAED,uCAAuC;YAEvC,MAAM,CAAC,MAAM,CACX,KAAgC;gBAEhC,IAAI,KAAK,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;oBAC1B,OAAO,IAAI,kBAAkB,CAAC,UAAU,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC;gBAC9D,CAAC;gBACD,8BAA8B;gBAC9B,MAAM,SAAS,GAAG,UAAU,CAAC,MAAM,CAAC,KAAK,CAAC,KAAwB,CAAC,CAAC;gBACpE,MAAM,SAAS,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC;gBACrC,OAAO,IAAI,kBAAkB,CAAC,UAAU,EAAE;oBACxC,IAAI,EAAE,MAAM;oBACZ,KAAK,EAAE,SAAS;iBACjB,CAAC,CAAC;YACL,CAAC;YAED,MAAM,CAAC,SAAS,CAAC,IAAY;gBAC3B,0CAA0C;gBAC1C,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YACxC,CAAC;YAED,MAAM,CAAC,UAAU,CAAC,IAAmB;gBACnC,OAAO,IAAI,kBAAkB,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;YAClD,CAAC;YAED,4BAA4B;YAE5B,MAAM;gBACJ,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;YAC7B,CAAC;YACD,IAAI;gBACF,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;YAC3B,CAAC;SACF;QAED,8DAA8D;QAC9D,OAAO,gBAIN,CAAC;IACJ,CAAC;CACF"}
@@ -0,0 +1,27 @@
1
+ export const StringCodec = {
2
+ fromJs(value) {
3
+ return {
4
+ toWave() {
5
+ // Wave syntax for string args: we assume quoted
6
+ return `"${value}"`;
7
+ },
8
+ toJs() {
9
+ return value;
10
+ },
11
+ };
12
+ },
13
+ fromKontor(data) {
14
+ return {
15
+ toWave() {
16
+ return `"${data}"`;
17
+ },
18
+ toJs() {
19
+ return data;
20
+ },
21
+ };
22
+ },
23
+ parseWave(expr) {
24
+ return JSON.parse(expr);
25
+ },
26
+ };
27
+ //# sourceMappingURL=string.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"string.js","sourceRoot":"","sources":["../../../../../../src/sdk/utils/wit/codecs/string.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,WAAW,GAAG;IACzB,MAAM,CAAC,KAAa;QAClB,OAAO;YACL,MAAM;gBACJ,gDAAgD;gBAChD,OAAO,IAAI,KAAK,GAAe,CAAC;YAClC,CAAC;YACD,IAAI;gBACF,OAAO,KAAK,CAAC;YACf,CAAC;SACF,CAAC;IACJ,CAAC;IAED,UAAU,CAAC,IAAY;QACrB,OAAO;YACL,MAAM;gBACJ,OAAO,IAAI,IAAI,GAAe,CAAC;YACjC,CAAC;YACD,IAAI;gBACF,OAAO,IAAc,CAAC;YACxB,CAAC;SACF,CAAC;IACJ,CAAC;IAED,SAAS,CAAC,IAAY;QACpB,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC1B,CAAC;CACoE,CAAC"}
@@ -0,0 +1,45 @@
1
+ export const unit = { _tag: "Unit" };
2
+ // ---------- Encoder: JS → WaveExpr (fully type-safe) ----------
3
+ export class Encoder {
4
+ constructor(schema) {
5
+ Object.defineProperty(this, "schema", {
6
+ enumerable: true,
7
+ configurable: true,
8
+ writable: true,
9
+ value: schema
10
+ });
11
+ }
12
+ encode(values) {
13
+ const out = {};
14
+ for (const key of Object.keys(this.schema)) {
15
+ const ctor = this.schema[key];
16
+ const inst = ctor.fromJs(values[key]);
17
+ out[key] = inst.toWave();
18
+ }
19
+ return out;
20
+ }
21
+ }
22
+ // ---------- Decoder: WaveExpr → JS (inferred from codec) ----------
23
+ export class Decoder {
24
+ constructor(codec) {
25
+ Object.defineProperty(this, "codec", {
26
+ enumerable: true,
27
+ configurable: true,
28
+ writable: true,
29
+ value: codec
30
+ });
31
+ }
32
+ decode(expr) {
33
+ console.log("in tuple decode");
34
+ const wave = this.codec.parseWave(expr);
35
+ console.log({ wave });
36
+ const inst = this.codec.fromKontor(wave);
37
+ console.log({ inst });
38
+ return inst.toJs();
39
+ }
40
+ }
41
+ // Optional ergonomic helper so callers don't write generics at `new` sites
42
+ export function makeDecoder(codec) {
43
+ return new Decoder(codec);
44
+ }
45
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../../../src/sdk/utils/wit/codecs/types.ts"],"names":[],"mappings":"AACA,MAAM,CAAC,MAAM,IAAI,GAAS,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;AAuE3C,iEAAiE;AAEjE,MAAM,OAAO,OAAO;IAClB,YAA6B,MAAS;QAA1B;;;;mBAAiB,MAAM;WAAG;IAAG,CAAC;IAE1C,MAAM,CAAC,MAAkB;QACvB,MAAM,GAAG,GAAG,EAAkC,CAAC;QAC/C,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAmB,EAAE,CAAC;YAC7D,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAE,CAAC;YAC/B,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;YACtC,GAAG,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;QAC3B,CAAC;QACD,OAAO,GAAG,CAAC;IACb,CAAC;CACF;AAED,qEAAqE;AAErE,MAAM,OAAO,OAAO;IAGlB,YAA6B,KAAQ;QAAzB;;;;mBAAiB,KAAK;WAAG;IAAG,CAAC;IAEzC,MAAM,CAAC,IAAY;QACjB,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;QAC/B,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,CAAiB,CAAC;QACxD,OAAO,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC;QACtB,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,CAAiB,CAAC;QACzD,OAAO,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC;QACtB,OAAO,IAAI,CAAC,IAAI,EAAgB,CAAC;IACnC,CAAC;CACF;AAED,2EAA2E;AAC3E,MAAM,UAAU,WAAW,CAEzB,KAAQ;IACR,OAAO,IAAI,OAAO,CAAI,KAAK,CAAC,CAAC;AAC/B,CAAC"}
@@ -0,0 +1,22 @@
1
+ import { unit, } from "./types.js";
2
+ class _UnitCodec {
3
+ constructor() { }
4
+ static fromJs(_value) {
5
+ return new _UnitCodec();
6
+ }
7
+ static fromKontor(_data) {
8
+ return new _UnitCodec();
9
+ }
10
+ static parseWave(_expr) {
11
+ // ok branch payload is conceptually "unit"
12
+ return unit;
13
+ }
14
+ toWave() {
15
+ return "";
16
+ }
17
+ toJs() {
18
+ return unit;
19
+ }
20
+ }
21
+ export const UnitCodec = _UnitCodec;
22
+ //# sourceMappingURL=unit.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"unit.js","sourceRoot":"","sources":["../../../../../../src/sdk/utils/wit/codecs/unit.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,IAAI,GAEL,MAAM,YAAY,CAAC;AAEpB,MAAM,UAAU;IACd,gBAAe,CAAC;IAEhB,MAAM,CAAC,MAAM,CAAC,MAAY;QACxB,OAAO,IAAI,UAAU,EAAE,CAAC;IAC1B,CAAC;IAED,MAAM,CAAC,UAAU,CAAC,KAAc;QAC9B,OAAO,IAAI,UAAU,EAAE,CAAC;IAC1B,CAAC;IAED,MAAM,CAAC,SAAS,CAAC,KAAa;QAC5B,2CAA2C;QAC3C,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM;QACJ,OAAO,EAAc,CAAC;IACxB,CAAC;IAED,IAAI;QACF,OAAO,IAAI,CAAC;IACd,CAAC;CACF;AAED,MAAM,CAAC,MAAM,SAAS,GAAG,UAIxB,CAAC"}
@@ -0,0 +1,36 @@
1
+ import { decodeWitParameter } from "./decode-wit-parameter.js";
2
+ import { getWitItem } from "./get-wit-item.js";
3
+ export function decodeFunctionResult(parameters) {
4
+ const { wit: wit, functionName, data, } = parameters;
5
+ let witItem = wit[0];
6
+ if (functionName) {
7
+ const item = getWitItem({ wit: wit, name: functionName });
8
+ // todo: refine error
9
+ // if (!item) throw new WitFunctionNotFoundError(functionName, { docsPath })
10
+ if (!item)
11
+ throw new Error("WitFunctionNotFoundError");
12
+ witItem = item;
13
+ }
14
+ if (witItem.type !== "function")
15
+ // todo: refine error
16
+ // throw new WitFunctionNotFoundError(undefined, { docsPath })
17
+ throw new Error("WitFunctionNotFoundError");
18
+ if (!witItem.outputs)
19
+ // todo: refine error
20
+ // throw new WitFunctionOutputsNotFoundError(witItem.name, { docsPath })
21
+ throw new Error("WitFunctionNotFoundError");
22
+ const value = decodeWitParameter(data, witItem.outputs[0]);
23
+ // TODO: sholdn't have to index on `decoded` here
24
+ return value.decoded;
25
+ //
26
+ // if (values && values.length > 1)
27
+ // return values as DecodeFunctionResultReturnType<wit, functionName, args>;
28
+ // if (values && values.length === 1)
29
+ // return values[0] as DecodeFunctionResultReturnType<
30
+ // wit,
31
+ // functionName,
32
+ // args
33
+ // >;
34
+ // return undefined as DecodeFunctionResultReturnType<wit, functionName, args>;
35
+ }
36
+ //# sourceMappingURL=decode-function-result.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"decode-function-result.js","sourceRoot":"","sources":["../../../../../src/sdk/utils/wit/decode-function-result.ts"],"names":[],"mappings":"AAUA,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAC/D,OAAO,EAAE,UAAU,EAA4B,MAAM,mBAAmB,CAAC;AAgDzE,MAAM,UAAU,oBAAoB,CAIlC,UAA6D;IAE7D,MAAM,EACJ,GAAG,EAAE,GAAG,EACR,YAAY,EACZ,IAAI,GACL,GAAG,UAA4C,CAAC;IAEjD,IAAI,OAAO,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;IACrB,IAAI,YAAY,EAAE,CAAC;QACjB,MAAM,IAAI,GAAG,UAAU,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC;QAC1D,qBAAqB;QACrB,4EAA4E;QAC5E,IAAI,CAAC,IAAI;YAAE,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;QACvD,OAAO,GAAG,IAAI,CAAC;IACjB,CAAC;IAED,IAAI,OAAQ,CAAC,IAAI,KAAK,UAAU;QAC9B,qBAAqB;QACrB,8DAA8D;QAC9D,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;IAC9C,IAAI,CAAC,OAAQ,CAAC,OAAO;QACnB,qBAAqB;QACrB,wEAAwE;QACxE,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;IAE9C,MAAM,KAAK,GAAG,kBAAkB,CAAC,IAAI,EAAE,OAAQ,CAAC,OAAO,CAAC,CAAC,CAAE,CAAC,CAAC;IAC7D,iDAAiD;IACjD,OAAO,KAAK,CAAC,OAA4D,CAAC;IAE1E,EAAE;IACF,mCAAmC;IACnC,8EAA8E;IAC9E,qCAAqC;IACrC,wDAAwD;IACxD,WAAW;IACX,oBAAoB;IACpB,WAAW;IACX,OAAO;IACP,+EAA+E;AACjF,CAAC"}
@@ -0,0 +1,286 @@
1
+ import { InvalidWitEncodingTypeError } from "../../errors/wit.js";
2
+ import { DecimalCodec } from "./codecs/decimal.js";
3
+ import { StringCodec } from "./codecs/string.js";
4
+ import { OptionCodecFactory } from "./codecs/option.js";
5
+ import { ListCodecFactory } from "./codecs/list.js";
6
+ import { makeDecoder, } from "./codecs/types.js";
7
+ const stringDecoder = makeDecoder(StringCodec);
8
+ const decimalDecoder = makeDecoder(DecimalCodec);
9
+ const optionOfDecimalDecoder = makeDecoder(OptionCodecFactory.create(DecimalCodec));
10
+ const optionOfTupleDecoder = (param) => makeDecoder(OptionCodecFactory.create(makeTupleCodecConstructor(param)));
11
+ const listOfDecimalDecoder = makeDecoder(ListCodecFactory.create(DecimalCodec));
12
+ const listOfTupleDecoder = (param) => makeDecoder(ListCodecFactory.create(makeTupleCodecConstructor(param)));
13
+ const tupleDecoder = (param) => makeDecoder(makeTupleCodecConstructor(param));
14
+ //
15
+ export function decodeWitParameter(value, param) {
16
+ // TODO: type cast
17
+ const decoder = decoderForParam(param);
18
+ return {
19
+ decoded: decoder.decode(value),
20
+ };
21
+ }
22
+ export function decodeTuple(record, param) {
23
+ if (!param.components) {
24
+ throw new Error("Tuple parameter missing components");
25
+ }
26
+ console.log("value");
27
+ return param.components.reduce((acc, component) => {
28
+ if (!component.name) {
29
+ throw new Error("Tuple component missing name");
30
+ }
31
+ const fieldValue = record[component.name];
32
+ const decoder = decoderForParam(component);
33
+ // @ts-ignore
34
+ acc[component.name] = decoder.decode(fieldValue);
35
+ return acc;
36
+ }, {});
37
+ }
38
+ function decoderForParam(p) {
39
+ const t = p.type;
40
+ console.log({ t });
41
+ switch (t) {
42
+ case "tuple":
43
+ return tupleDecoder(p);
44
+ case "string":
45
+ return stringDecoder;
46
+ case "decimal":
47
+ return decimalDecoder;
48
+ case "option<decimal>":
49
+ return optionOfDecimalDecoder;
50
+ case "option<tuple>":
51
+ return optionOfTupleDecoder(p);
52
+ case "list<decimal>":
53
+ return listOfDecimalDecoder;
54
+ case "list<tuple>":
55
+ return listOfTupleDecoder(p);
56
+ case "error":
57
+ case "contract-address":
58
+ case "bool":
59
+ case "s8":
60
+ case "s16":
61
+ case "s32":
62
+ case "s64":
63
+ case "u8":
64
+ case "u16":
65
+ case "u32":
66
+ case "u64":
67
+ case "integer":
68
+ case "option<string>":
69
+ case "option<bool>":
70
+ case "option<s8>":
71
+ case "option<s16>":
72
+ case "option<s32>":
73
+ case "option<s64>":
74
+ case "option<u8>":
75
+ case "option<u16>":
76
+ case "option<u32>":
77
+ case "option<u64>":
78
+ case "option<integer>":
79
+ case "option<_>":
80
+ case "list<string>":
81
+ case "list<bool>":
82
+ case "list<s8>":
83
+ case "list<s16>":
84
+ case "list<s32>":
85
+ case "list<s64>":
86
+ case "list<u8>":
87
+ case "list<u16>":
88
+ case "list<u32>":
89
+ case "list<u64>":
90
+ case "list<integer>":
91
+ case "list<_>":
92
+ case "result<_, error>":
93
+ case "result<string, error>":
94
+ case "result<bool, error>":
95
+ case "result<s8, error>":
96
+ case "result<s16, error>":
97
+ case "result<s32, error>":
98
+ case "result<s64, error>":
99
+ case "result<u8, error>":
100
+ case "result<u16, error>":
101
+ case "result<u32, error>":
102
+ case "result<u64, error>":
103
+ case "result<decimal, error>":
104
+ case "result<integer, error>":
105
+ case "result<tuple, error>":
106
+ case "result<option<string>, error>":
107
+ case "result<option<bool>, error>":
108
+ case "result<option<s8>, error>":
109
+ case "result<option<s16>, error>":
110
+ case "result<option<s32>, error>":
111
+ case "result<option<s64>, error>":
112
+ case "result<option<u8>, error>":
113
+ case "result<option<u16>, error>":
114
+ case "result<option<u32>, error>":
115
+ case "result<option<u64>, error>":
116
+ case "result<option<decimal>, error>":
117
+ case "result<option<integer>, error>":
118
+ case "result<option<_>, error>":
119
+ case "result<option<tuple>, error>":
120
+ case "option<list<string>>":
121
+ case "option<list<bool>>":
122
+ case "option<list<s8>>":
123
+ case "option<list<s16>>":
124
+ case "option<list<s32>>":
125
+ case "option<list<s64>>":
126
+ case "option<list<u8>>":
127
+ case "option<list<u16>>":
128
+ case "option<list<u32>>":
129
+ case "option<list<u64>>":
130
+ case "option<list<decimal>>":
131
+ case "option<list<integer>>":
132
+ case "option<list<_>>":
133
+ case "option<list<tuple>>":
134
+ case "result<option<list<string>>, error>":
135
+ case "result<option<list<bool>>, error>":
136
+ case "result<option<list<s8>>, error>":
137
+ case "result<option<list<s16>>, error>":
138
+ case "result<option<list<s32>>, error>":
139
+ case "result<option<list<s64>>, error>":
140
+ case "result<option<list<u8>>, error>":
141
+ case "result<option<list<u16>>, error>":
142
+ case "result<option<list<u32>>, error>":
143
+ case "result<option<list<u64>>, error>":
144
+ case "result<option<list<decimal>>, error>":
145
+ case "result<option<list<integer>>, error>":
146
+ case "result<option<list<_>>, error>":
147
+ case "result<option<list<tuple>>, error>":
148
+ case "result<list<string>, error>":
149
+ case "result<list<bool>, error>":
150
+ case "result<list<s8>, error>":
151
+ case "result<list<s16>, error>":
152
+ case "result<list<s32>, error>":
153
+ case "result<list<s64>, error>":
154
+ case "result<list<u8>, error>":
155
+ case "result<list<u16>, error>":
156
+ case "result<list<u32>, error>":
157
+ case "result<list<u64>, error>":
158
+ case "result<list<decimal>, error>":
159
+ case "result<list<integer>, error>":
160
+ case "result<list<_>, error>":
161
+ case "result<list<tuple>, error>":
162
+ throw new Error("not implemented");
163
+ default:
164
+ const exhaustive = t;
165
+ void exhaustive;
166
+ throw new InvalidWitEncodingTypeError(t, {
167
+ docsPath: "tk",
168
+ });
169
+ //
170
+ }
171
+ }
172
+ export class TupleCodecInstance {
173
+ // 'data' holds the raw parsed JSON object representing the encoded tuple
174
+ constructor(data, param) {
175
+ Object.defineProperty(this, "data", {
176
+ enumerable: true,
177
+ configurable: true,
178
+ writable: true,
179
+ value: data
180
+ });
181
+ Object.defineProperty(this, "param", {
182
+ enumerable: true,
183
+ configurable: true,
184
+ writable: true,
185
+ value: param
186
+ });
187
+ }
188
+ // Fixes Error 2416: Property 'toWave' must return the branded type WaveExpr
189
+ toWave() {
190
+ // Converts JS data back to the wave format (usually a stringified object)
191
+ throw new Error("TupleCodec.toWave not implemented for decoding context");
192
+ }
193
+ toJs() {
194
+ // The core decoding step: recursively call decodeTuple
195
+ return decodeTuple(this.data, this.param);
196
+ }
197
+ }
198
+ export function makeTupleCodecConstructor(param) {
199
+ if (!param.components) {
200
+ throw new Error("Cannot create TupleCodec: Parameter missing components");
201
+ }
202
+ // 2. Define the CodecConstructor class with static methods
203
+ // We remove 'implements CodecConstructor<any, any, any>' as the function returns the class itself
204
+ // (Fixes Error 2420, although the original code had the static methods, this clarifies intent).
205
+ class TupleCodec {
206
+ // --- Static CodecConstructor methods ---
207
+ // Called to create an instance from a JavaScript value (e.g., when encoding)
208
+ static fromJs(_value) {
209
+ // NOTE: Full encoding implementation is omitted for focus
210
+ throw new Error("TupleCodec.fromJs not implemented for decoding context");
211
+ }
212
+ // Called to parse the raw encoded string into a JavaScript object (Wave Data)
213
+ static parseWave(expr) {
214
+ // For tuples, the raw encoded string is the JSON representation.
215
+ console.log("parsing tuple wave expr:", expr);
216
+ return parseWitRecord(expr);
217
+ }
218
+ // Called to create an instance from the parsed Wave Data
219
+ static fromKontor(data) {
220
+ // Pass the original parameter definition to the instance for use in toJs()
221
+ return new TupleCodecInstance(data, param);
222
+ }
223
+ // --- Instance constructor (optional, mainly for type checking compatibility) ---
224
+ constructor(data) {
225
+ // Delegate to the static factory to ensure the instance is correctly initialized
226
+ return TupleCodec.fromKontor(data);
227
+ }
228
+ }
229
+ // 3. Cast the class to the correct CodecConstructor type
230
+ return TupleCodec;
231
+ }
232
+ export function parseWitRecord(raw) {
233
+ // Remove leading/trailing whitespace and outer braces
234
+ const trimmed = raw.trim().replace(/^\{|\}$/g, "");
235
+ const result = {};
236
+ let depth = 0;
237
+ let currentKey = "";
238
+ let currentValue = "";
239
+ let inKey = true;
240
+ let i = 0;
241
+ while (i < trimmed.length) {
242
+ const char = trimmed[i];
243
+ if (char === "{" || char === "[") {
244
+ depth++;
245
+ if (!inKey)
246
+ currentValue += char;
247
+ }
248
+ else if (char === "}" || char === "]") {
249
+ depth--;
250
+ if (!inKey)
251
+ currentValue += char;
252
+ }
253
+ else if (char === ":" && depth === 0 && inKey) {
254
+ // Found the separator between key and value
255
+ inKey = false;
256
+ i++;
257
+ continue;
258
+ }
259
+ else if (char === "," && depth === 0) {
260
+ // Found separator between key-value pairs
261
+ // @ts-ignore
262
+ result[currentKey.trim()] = currentValue.trim();
263
+ currentKey = "";
264
+ currentValue = "";
265
+ inKey = true;
266
+ i++;
267
+ continue;
268
+ }
269
+ else {
270
+ if (inKey) {
271
+ currentKey += char;
272
+ }
273
+ else {
274
+ currentValue += char;
275
+ }
276
+ }
277
+ i++;
278
+ }
279
+ // Add the last key-value pair
280
+ if (currentKey.trim()) {
281
+ // @ts-ignore
282
+ result[currentKey.trim()] = currentValue.trim();
283
+ }
284
+ return result;
285
+ }
286
+ //# sourceMappingURL=decode-wit-parameter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"decode-wit-parameter.js","sourceRoot":"","sources":["../../../../../src/sdk/utils/wit/decode-wit-parameter.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,75 @@
1
+ import { expect, test, describe } from "vitest";
2
+ import { decodeWitParameter, parseWitRecord } from "./decode-wit-parameter.js";
3
+ describe("parseWitRecord", () => {
4
+ test("balance", () => {
5
+ const raw = `{key: "1b39e35044922c2cb2108b9a2a0ff13223471b17ca55e87e307270308dc77ac0", value: {r0: 10000000000000000000, r1: 0, r2: 0, r3: 0, sign: plus}}`;
6
+ expect(parseWitRecord(raw)).toEqual({
7
+ key: '"1b39e35044922c2cb2108b9a2a0ff13223471b17ca55e87e307270308dc77ac0"',
8
+ value: "{r0: 10000000000000000000, r1: 0, r2: 0, r3: 0, sign: plus}",
9
+ });
10
+ });
11
+ });
12
+ describe("decodeParameter", () => {
13
+ test("string", () => {
14
+ const decoded = decodeWitParameter('"0xdeadbeef"', {
15
+ type: "string",
16
+ });
17
+ expect(decoded).toEqual({ decoded: "0xdeadbeef" });
18
+ });
19
+ test("decimal", () => {
20
+ const decoded = decodeWitParameter("{r0: 7, r1: 0, r2: 0, r3: 0, sign: plus}", {
21
+ type: "decimal",
22
+ });
23
+ expect(decoded).toEqual({ decoded: [7n, 18] });
24
+ });
25
+ test("tuple", () => {
26
+ const raw = `{key: "1b39e35044922c2cb2108b9a2a0ff13223471b17ca55e87e307270308dc77ac0", value: {r0: 7, r1: 0, r2: 0, r3: 0, sign: plus}}`;
27
+ expect(decodeWitParameter(raw, {
28
+ type: "tuple",
29
+ components: [
30
+ { name: "key", type: "string" },
31
+ { name: "value", type: "decimal" },
32
+ ],
33
+ })).toEqual({
34
+ decoded: {
35
+ key: "1b39e35044922c2cb2108b9a2a0ff13223471b17ca55e87e307270308dc77ac0",
36
+ value: [7n, 18],
37
+ },
38
+ });
39
+ });
40
+ test("list<tuple>", () => {
41
+ const raw = `[{key: "1b39e35044922c2cb2108b9a2a0ff13223471b17ca55e87e307270308dc77ac0", value: {r0: 7, r1: 0, r2: 0, r3: 0, sign: plus}}]`;
42
+ expect(decodeWitParameter(raw, {
43
+ type: "list<tuple>",
44
+ components: [
45
+ { name: "key", type: "string" },
46
+ { name: "value", type: "decimal" },
47
+ ],
48
+ })).toEqual({
49
+ decoded: [
50
+ {
51
+ key: "1b39e35044922c2cb2108b9a2a0ff13223471b17ca55e87e307270308dc77ac0",
52
+ value: [7n, 18],
53
+ },
54
+ ],
55
+ });
56
+ });
57
+ test("list<decimal>", () => {
58
+ const decoded = decodeWitParameter("[{r0: 7, r1: 0, r2: 0, r3: 0, sign: plus}, {r0: 8, r1: 0, r2: 0, r3: 0, sign: plus}]", {
59
+ type: "list<decimal>",
60
+ });
61
+ expect(decoded).toEqual({
62
+ decoded: [
63
+ [7n, 18],
64
+ [8n, 18],
65
+ ],
66
+ });
67
+ });
68
+ test("option<decimal>", () => {
69
+ const decoded = decodeWitParameter("some({r0: 7, r1: 0, r2: 0, r3: 0, sign: plus})", {
70
+ type: "option<decimal>",
71
+ });
72
+ expect(decoded).toEqual({ decoded: { kind: "some", value: [7n, 18] } });
73
+ });
74
+ });
75
+ //# sourceMappingURL=decode-wit-parameter.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"decode-wit-parameter.test.js","sourceRoot":"","sources":["../../../../../src/sdk/utils/wit/decode-wit-parameter.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;AAEhD,OAAO,EAAE,kBAAkB,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAE/E,QAAQ,CAAC,gBAAgB,EAAE,GAAG,EAAE;IAC9B,IAAI,CAAC,SAAS,EAAE,GAAG,EAAE;QACnB,MAAM,GAAG,GAAG,+IAA+I,CAAC;QAC5J,MAAM,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC;YAClC,GAAG,EAAE,oEAAoE;YACzE,KAAK,EAAE,6DAA6D;SACrE,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,iBAAiB,EAAE,GAAG,EAAE;IAC/B,IAAI,CAAC,QAAQ,EAAE,GAAG,EAAE;QAClB,MAAM,OAAO,GAAG,kBAAkB,CAAC,cAAc,EAAE;YACjD,IAAI,EAAE,QAAQ;SACf,CAAC,CAAC;QAEH,MAAM,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,EAAE,OAAO,EAAE,YAAY,EAAE,CAAC,CAAC;IACrD,CAAC,CAAC,CAAC;IACH,IAAI,CAAC,SAAS,EAAE,GAAG,EAAE;QACnB,MAAM,OAAO,GAAG,kBAAkB,CAChC,0CAA0C,EAC1C;YACE,IAAI,EAAE,SAAS;SAChB,CACF,CAAC;QAEF,MAAM,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC;IACjD,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,OAAO,EAAE,GAAG,EAAE;QACjB,MAAM,GAAG,GAAG,4HAA4H,CAAC;QACzI,MAAM,CACJ,kBAAkB,CAAC,GAAG,EAAE;YACtB,IAAI,EAAE,OAAO;YACb,UAAU,EAAE;gBACV,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE;gBAC/B,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE;aACnC;SACF,CAAC,CACH,CAAC,OAAO,CAAC;YACR,OAAO,EAAE;gBACP,GAAG,EAAE,kEAAkE;gBACvE,KAAK,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC;aAChB;SACF,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,aAAa,EAAE,GAAG,EAAE;QACvB,MAAM,GAAG,GAAG,8HAA8H,CAAC;QAC3I,MAAM,CACJ,kBAAkB,CAAC,GAAG,EAAE;YACtB,IAAI,EAAE,aAAa;YACnB,UAAU,EAAE;gBACV,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE;gBAC/B,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE;aACnC;SACF,CAAC,CACH,CAAC,OAAO,CAAC;YACR,OAAO,EAAE;gBACP;oBACE,GAAG,EAAE,kEAAkE;oBACvE,KAAK,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC;iBAChB;aACF;SACF,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,eAAe,EAAE,GAAG,EAAE;QACzB,MAAM,OAAO,GAAG,kBAAkB,CAChC,sFAAsF,EACtF;YACE,IAAI,EAAE,eAAe;SACtB,CACF,CAAC;QAEF,MAAM,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC;YACtB,OAAO,EAAE;gBACP,CAAC,EAAE,EAAE,EAAE,CAAC;gBACR,CAAC,EAAE,EAAE,EAAE,CAAC;aACT;SACF,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,iBAAiB,EAAE,GAAG,EAAE;QAC3B,MAAM,OAAO,GAAG,kBAAkB,CAChC,gDAAgD,EAChD;YACE,IAAI,EAAE,iBAAiB;SACxB,CACF,CAAC;QAEF,MAAM,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;IAC1E,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -0,0 +1,17 @@
1
+ import { encodeWitParameters } from "./encode-wit-parameters.js";
2
+ import { prepareEncodeFunctionData } from "./prepare-encode-function-data.js";
3
+ export function encodeFunctionData(parameters) {
4
+ const { args } = parameters;
5
+ const { wit: wit, functionName } = (() => {
6
+ if (parameters.wit.length === 1 &&
7
+ parameters.functionName?.startsWith("0x"))
8
+ return parameters;
9
+ return prepareEncodeFunctionData(parameters);
10
+ })();
11
+ const witItem = wit[0]; // TODO: do some paranoic checks here
12
+ const data = "inputs" in witItem && witItem.inputs
13
+ ? encodeWitParameters(witItem.inputs, args ?? [])
14
+ : undefined;
15
+ return `${functionName}(${data ?? ""})`;
16
+ }
17
+ //# sourceMappingURL=encode-function-data.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"encode-function-data.js","sourceRoot":"","sources":["../../../../../src/sdk/utils/wit/encode-function-data.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AACjE,OAAO,EAAE,yBAAyB,EAAE,MAAM,mCAAmC,CAAC;AA4C9E,MAAM,UAAU,kBAAkB,CAIhC,UAA2D;IAE3D,MAAM,EAAE,IAAI,EAAE,GAAG,UAA0C,CAAC;IAE5D,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,YAAY,EAAE,GAAG,CAAC,GAAG,EAAE;QACvC,IACE,UAAU,CAAC,GAAG,CAAC,MAAM,KAAK,CAAC;YAC3B,UAAU,CAAC,YAAY,EAAE,UAAU,CAAC,IAAI,CAAC;YAEzC,OAAO,UAA8C,CAAC;QACxD,OAAO,yBAAyB,CAAC,UAAU,CAAC,CAAC;IAC/C,CAAC,CAAC,EAAE,CAAC;IAEL,MAAM,OAAO,GAAG,GAAG,CAAC,CAAC,CAAE,CAAC,CAAC,qCAAqC;IAE9D,MAAM,IAAI,GACR,QAAQ,IAAI,OAAO,IAAI,OAAO,CAAC,MAAM;QACnC,CAAC,CAAC,mBAAmB,CAAC,OAAO,CAAC,MAAM,EAAE,IAAI,IAAI,EAAE,CAAC;QACjD,CAAC,CAAC,SAAS,CAAC;IAChB,OAAO,GAAG,YAAY,IAAI,IAAI,IAAI,EAAE,GAAW,CAAC;AAClD,CAAC"}