@kontor/kontor-sdk 1.0.0-alpha.39 → 1.0.0-alpha.40

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 (270) hide show
  1. package/README.md +1 -1
  2. package/dist/cjs/sdk/actions/kontor/public/call-view.js.map +1 -1
  3. package/dist/cjs/sdk/chains/definitions/signet.js +2 -2
  4. package/dist/cjs/sdk/test/e2e.test-deprecated.js +2 -0
  5. package/dist/cjs/sdk/test/e2e.test-deprecated.js.map +1 -0
  6. package/dist/cjs/sdk/utils/wit/codecs/bool.js +9 -21
  7. package/dist/cjs/sdk/utils/wit/codecs/bool.js.map +1 -1
  8. package/dist/cjs/sdk/utils/wit/codecs/contract-address.js +92 -0
  9. package/dist/cjs/sdk/utils/wit/codecs/contract-address.js.map +1 -0
  10. package/dist/cjs/sdk/utils/wit/codecs/index.js +29 -0
  11. package/dist/cjs/sdk/utils/wit/codecs/index.js.map +1 -0
  12. package/dist/cjs/sdk/utils/wit/codecs/list.js +21 -95
  13. package/dist/cjs/sdk/utils/wit/codecs/list.js.map +1 -1
  14. package/dist/cjs/sdk/utils/wit/codecs/numerics.js +228 -0
  15. package/dist/cjs/sdk/utils/wit/codecs/numerics.js.map +1 -0
  16. package/dist/cjs/sdk/utils/wit/codecs/option.js +21 -72
  17. package/dist/cjs/sdk/utils/wit/codecs/option.js.map +1 -1
  18. package/dist/cjs/sdk/utils/wit/codecs/result.js +32 -0
  19. package/dist/cjs/sdk/utils/wit/codecs/result.js.map +1 -0
  20. package/dist/cjs/sdk/utils/wit/codecs/string.js +16 -21
  21. package/dist/cjs/sdk/utils/wit/codecs/string.js.map +1 -1
  22. package/dist/cjs/sdk/utils/wit/codecs/unit.js +11 -19
  23. package/dist/cjs/sdk/utils/wit/codecs/unit.js.map +1 -1
  24. package/dist/cjs/sdk/utils/wit/codecs/util.js +185 -0
  25. package/dist/cjs/sdk/utils/wit/codecs/util.js.map +1 -0
  26. package/dist/cjs/sdk/utils/wit/decode-wit-parameter.js +297 -163
  27. package/dist/cjs/sdk/utils/wit/decode-wit-parameter.js.map +1 -1
  28. package/dist/cjs/sdk/utils/wit/encode-wit-parameters.js +214 -221
  29. package/dist/cjs/sdk/utils/wit/encode-wit-parameters.js.map +1 -1
  30. package/dist/cjs/tsconfig.build.tsbuildinfo +1 -1
  31. package/dist/cjs/wit/built-ins.js +19 -0
  32. package/dist/cjs/wit/built-ins.js.map +1 -0
  33. package/dist/cjs/wit/regex.js +1 -1
  34. package/dist/cjs/wit/regex.js.map +1 -1
  35. package/dist/cjs/wit/wit-parser/core/errors/signature.js +17 -2
  36. package/dist/cjs/wit/wit-parser/core/errors/signature.js.map +1 -1
  37. package/dist/cjs/wit/wit-parser/core/signatures.js +18 -0
  38. package/dist/cjs/wit/wit-parser/core/signatures.js.map +1 -1
  39. package/dist/cjs/wit/wit-parser/core/types/{records.js → user-defined.js} +1 -1
  40. package/dist/cjs/wit/wit-parser/core/types/user-defined.js.map +1 -0
  41. package/dist/cjs/wit/wit-parser/core/user-defined.js +271 -0
  42. package/dist/cjs/wit/wit-parser/core/user-defined.js.map +1 -0
  43. package/dist/cjs/wit/wit-parser/core/utils.js +29 -7
  44. package/dist/cjs/wit/wit-parser/core/utils.js.map +1 -1
  45. package/dist/cjs/wit/wit-parser/parse-wit-parameter.js +9 -3
  46. package/dist/cjs/wit/wit-parser/parse-wit-parameter.js.map +1 -1
  47. package/dist/cjs/wit/wit-parser/parse-wit.js +7 -3
  48. package/dist/cjs/wit/wit-parser/parse-wit.js.map +1 -1
  49. package/dist/esm/sdk/actions/kontor/public/call-view.js.map +1 -1
  50. package/dist/esm/sdk/chains/definitions/signet.js +2 -2
  51. package/dist/esm/sdk/test/e2e.test-deprecated.js +197 -0
  52. package/dist/esm/sdk/test/e2e.test-deprecated.js.map +1 -0
  53. package/dist/esm/sdk/utils/wit/codecs/bool.js +9 -21
  54. package/dist/esm/sdk/utils/wit/codecs/bool.js.map +1 -1
  55. package/dist/esm/sdk/utils/wit/codecs/contract-address.js +92 -0
  56. package/dist/esm/sdk/utils/wit/codecs/contract-address.js.map +1 -0
  57. package/dist/esm/sdk/utils/wit/codecs/index.js +9 -0
  58. package/dist/esm/sdk/utils/wit/codecs/index.js.map +1 -0
  59. package/dist/esm/sdk/utils/wit/codecs/list.js +20 -114
  60. package/dist/esm/sdk/utils/wit/codecs/list.js.map +1 -1
  61. package/dist/esm/sdk/utils/wit/codecs/numerics.js +234 -0
  62. package/dist/esm/sdk/utils/wit/codecs/numerics.js.map +1 -0
  63. package/dist/esm/sdk/utils/wit/codecs/option.js +21 -88
  64. package/dist/esm/sdk/utils/wit/codecs/option.js.map +1 -1
  65. package/dist/esm/sdk/utils/wit/codecs/result.js +29 -0
  66. package/dist/esm/sdk/utils/wit/codecs/result.js.map +1 -0
  67. package/dist/esm/sdk/utils/wit/codecs/string.js +22 -22
  68. package/dist/esm/sdk/utils/wit/codecs/string.js.map +1 -1
  69. package/dist/esm/sdk/utils/wit/codecs/unit.js +12 -21
  70. package/dist/esm/sdk/utils/wit/codecs/unit.js.map +1 -1
  71. package/dist/esm/sdk/utils/wit/codecs/util.js +181 -0
  72. package/dist/esm/sdk/utils/wit/codecs/util.js.map +1 -0
  73. package/dist/esm/sdk/utils/wit/decode-wit-parameter.js +322 -188
  74. package/dist/esm/sdk/utils/wit/decode-wit-parameter.js.map +1 -1
  75. package/dist/esm/sdk/utils/wit/encode-wit-parameters.js +230 -233
  76. package/dist/esm/sdk/utils/wit/encode-wit-parameters.js.map +1 -1
  77. package/dist/esm/tsconfig.build.tsbuildinfo +1 -1
  78. package/dist/esm/wit/built-ins.js +16 -0
  79. package/dist/esm/wit/built-ins.js.map +1 -0
  80. package/dist/esm/wit/regex.js +1 -1
  81. package/dist/esm/wit/regex.js.map +1 -1
  82. package/dist/esm/wit/wit-parser/core/errors/signature.js +15 -1
  83. package/dist/esm/wit/wit-parser/core/errors/signature.js.map +1 -1
  84. package/dist/esm/wit/wit-parser/core/signatures.js +14 -0
  85. package/dist/esm/wit/wit-parser/core/signatures.js.map +1 -1
  86. package/dist/esm/wit/wit-parser/core/types/signatures.js.map +1 -1
  87. package/dist/esm/wit/wit-parser/core/types/user-defined.js +2 -0
  88. package/dist/esm/wit/wit-parser/core/types/user-defined.js.map +1 -0
  89. package/dist/esm/wit/wit-parser/core/types/utils.js +25 -0
  90. package/dist/esm/wit/wit-parser/core/types/utils.js.map +1 -1
  91. package/dist/esm/wit/wit-parser/core/user-defined.js +280 -0
  92. package/dist/esm/wit/wit-parser/core/user-defined.js.map +1 -0
  93. package/dist/esm/wit/wit-parser/core/utils.js +33 -36
  94. package/dist/esm/wit/wit-parser/core/utils.js.map +1 -1
  95. package/dist/esm/wit/wit-parser/parse-wit-parameter.js +10 -4
  96. package/dist/esm/wit/wit-parser/parse-wit-parameter.js.map +1 -1
  97. package/dist/esm/wit/wit-parser/parse-wit.js +8 -4
  98. package/dist/esm/wit/wit-parser/parse-wit.js.map +1 -1
  99. package/dist/types/sdk/actions/kontor/public/call-view.d.ts +2 -1
  100. package/dist/types/sdk/actions/kontor/public/call-view.d.ts.map +1 -1
  101. package/dist/types/sdk/chains/definitions/signet.d.ts +2 -2
  102. package/dist/types/sdk/test/e2e.test-deprecated.d.ts +2 -0
  103. package/dist/types/sdk/test/e2e.test-deprecated.d.ts.map +1 -0
  104. package/dist/types/sdk/types/contract.d.ts +5 -5
  105. package/dist/types/sdk/types/contract.d.ts.map +1 -1
  106. package/dist/types/sdk/utils/wit/codecs/bool.d.ts +2 -2
  107. package/dist/types/sdk/utils/wit/codecs/bool.d.ts.map +1 -1
  108. package/dist/types/sdk/utils/wit/codecs/contract-address.d.ts +5 -0
  109. package/dist/types/sdk/utils/wit/codecs/contract-address.d.ts.map +1 -0
  110. package/dist/types/sdk/utils/wit/codecs/index.d.ts +9 -0
  111. package/dist/types/sdk/utils/wit/codecs/index.d.ts.map +1 -0
  112. package/dist/types/sdk/utils/wit/codecs/list.d.ts +2 -16
  113. package/dist/types/sdk/utils/wit/codecs/list.d.ts.map +1 -1
  114. package/dist/types/sdk/utils/wit/codecs/numerics.d.ts +14 -0
  115. package/dist/types/sdk/utils/wit/codecs/numerics.d.ts.map +1 -0
  116. package/dist/types/sdk/utils/wit/codecs/option.d.ts +3 -23
  117. package/dist/types/sdk/utils/wit/codecs/option.d.ts.map +1 -1
  118. package/dist/types/sdk/utils/wit/codecs/result.d.ts +4 -0
  119. package/dist/types/sdk/utils/wit/codecs/result.d.ts.map +1 -0
  120. package/dist/types/sdk/utils/wit/codecs/string.d.ts +6 -2
  121. package/dist/types/sdk/utils/wit/codecs/string.d.ts.map +1 -1
  122. package/dist/types/sdk/utils/wit/codecs/types.d.ts +4 -0
  123. package/dist/types/sdk/utils/wit/codecs/types.d.ts.map +1 -1
  124. package/dist/types/sdk/utils/wit/codecs/unit.d.ts +2 -11
  125. package/dist/types/sdk/utils/wit/codecs/unit.d.ts.map +1 -1
  126. package/dist/types/sdk/utils/wit/codecs/util.d.ts +12 -0
  127. package/dist/types/sdk/utils/wit/codecs/util.d.ts.map +1 -0
  128. package/dist/types/sdk/utils/wit/decode-wit-parameter.d.ts +9 -31
  129. package/dist/types/sdk/utils/wit/decode-wit-parameter.d.ts.map +1 -1
  130. package/dist/types/sdk/utils/wit/encode-wit-parameters.d.ts +9 -1
  131. package/dist/types/sdk/utils/wit/encode-wit-parameters.d.ts.map +1 -1
  132. package/dist/types/wit/built-ins.d.ts +6 -0
  133. package/dist/types/wit/built-ins.d.ts.map +1 -0
  134. package/dist/types/wit/regex.d.ts.map +1 -1
  135. package/dist/types/wit/utils.d.ts +53 -33
  136. package/dist/types/wit/utils.d.ts.map +1 -1
  137. package/dist/types/wit/wit-parser/core/errors/signature.d.ts +7 -1
  138. package/dist/types/wit/wit-parser/core/errors/signature.d.ts.map +1 -1
  139. package/dist/types/wit/wit-parser/core/signatures.d.ts +10 -0
  140. package/dist/types/wit/wit-parser/core/signatures.d.ts.map +1 -1
  141. package/dist/types/wit/wit-parser/core/types/signatures.d.ts +6 -2
  142. package/dist/types/wit/wit-parser/core/types/signatures.d.ts.map +1 -1
  143. package/dist/types/wit/wit-parser/core/types/user-defined.d.ts +134 -0
  144. package/dist/types/wit/wit-parser/core/types/user-defined.d.ts.map +1 -0
  145. package/dist/types/wit/wit-parser/core/types/utils.d.ts +86 -11
  146. package/dist/types/wit/wit-parser/core/types/utils.d.ts.map +1 -1
  147. package/dist/types/wit/wit-parser/core/user-defined.d.ts +19 -0
  148. package/dist/types/wit/wit-parser/core/user-defined.d.ts.map +1 -0
  149. package/dist/types/wit/wit-parser/core/utils.d.ts +8 -4
  150. package/dist/types/wit/wit-parser/core/utils.d.ts.map +1 -1
  151. package/dist/types/wit/wit-parser/parse-wit-parameter.d.ts +11 -5
  152. package/dist/types/wit/wit-parser/parse-wit-parameter.d.ts.map +1 -1
  153. package/dist/types/wit/wit-parser/parse-wit.d.ts +7 -3
  154. package/dist/types/wit/wit-parser/parse-wit.d.ts.map +1 -1
  155. package/dist/types/wit/wit.d.ts +20 -12
  156. package/dist/types/wit/wit.d.ts.map +1 -1
  157. package/package.json +1 -1
  158. package/src/sdk/actions/get-contract.test-d.ts +430 -50
  159. package/src/sdk/actions/get-contract.test.ts +324 -24
  160. package/src/sdk/actions/kontor/public/call-view.ts +2 -1
  161. package/src/sdk/actions/kontor/public/proc-contract.test-d.ts +107 -0
  162. package/src/sdk/actions/kontor/public/proc-contract.test.ts +234 -21
  163. package/src/sdk/actions/kontor/public/view-contract.test-d.ts +240 -0
  164. package/src/sdk/actions/kontor/public/view-contract.test.ts +613 -18
  165. package/src/sdk/chains/definitions/signet.ts +2 -2
  166. package/src/sdk/clients/base/create-rpc-client.test.ts +2 -2
  167. package/src/sdk/clients/create-public-client.test.ts +2 -2
  168. package/src/sdk/clients/kontor/create-public-client.test.ts +2 -2
  169. package/src/sdk/clients/transports/http-rpc.test.ts +0 -24
  170. package/src/sdk/test/e2e.test-deprecated.ts +195 -0
  171. package/src/sdk/types/contract.test-d.ts +489 -55
  172. package/src/sdk/types/contract.ts +6 -7
  173. package/src/sdk/utils/wit/codecs/bool.test.ts +29 -0
  174. package/src/sdk/utils/wit/codecs/bool.ts +10 -25
  175. package/src/sdk/utils/wit/codecs/contract-address.test.ts +37 -0
  176. package/src/sdk/utils/wit/codecs/contract-address.ts +114 -0
  177. package/src/sdk/utils/wit/codecs/index.ts +20 -0
  178. package/src/sdk/utils/wit/codecs/list.test-d.ts +13 -0
  179. package/src/sdk/utils/wit/codecs/list.test.ts +55 -0
  180. package/src/sdk/utils/wit/codecs/list.ts +21 -150
  181. package/src/sdk/utils/wit/codecs/numerics.test.ts +399 -0
  182. package/src/sdk/utils/wit/codecs/numerics.ts +304 -0
  183. package/src/sdk/utils/wit/codecs/option.test.ts +71 -0
  184. package/src/sdk/utils/wit/codecs/option.ts +21 -120
  185. package/src/sdk/utils/wit/codecs/result.test.ts +82 -0
  186. package/src/sdk/utils/wit/codecs/result.ts +37 -0
  187. package/src/sdk/utils/wit/codecs/string.test.ts +62 -0
  188. package/src/sdk/utils/wit/codecs/string.ts +23 -25
  189. package/src/sdk/utils/wit/codecs/types.ts +5 -0
  190. package/src/sdk/utils/wit/codecs/unit.test.ts +27 -0
  191. package/src/sdk/utils/wit/codecs/unit.ts +14 -38
  192. package/src/sdk/utils/wit/codecs/util.test.ts +221 -0
  193. package/src/sdk/utils/wit/codecs/util.ts +193 -0
  194. package/src/sdk/utils/wit/decode-wit-parameter.test.ts +1264 -32
  195. package/src/sdk/utils/wit/decode-wit-parameter.ts +508 -211
  196. package/src/sdk/utils/wit/encode-wit-parameters.test.ts +955 -91
  197. package/src/sdk/utils/wit/encode-wit-parameters.ts +277 -274
  198. package/src/sdk/utils/wit/get-wit-item.test.ts +1 -1
  199. package/src/wit/built-ins.ts +23 -0
  200. package/src/wit/regex.ts +1 -1
  201. package/src/wit/utils.ts +120 -74
  202. package/src/wit/wit-parser/core/errors/signature.ts +13 -2
  203. package/src/wit/wit-parser/core/signatures.ts +28 -0
  204. package/src/wit/wit-parser/core/types/signatures.test-d.ts +21 -0
  205. package/src/wit/wit-parser/core/types/signatures.ts +19 -2
  206. package/src/wit/wit-parser/core/types/user-defined.test-d.ts +1308 -0
  207. package/src/wit/wit-parser/core/types/user-defined.ts +412 -0
  208. package/src/wit/wit-parser/core/types/utils.test-d.ts +43 -2
  209. package/src/wit/wit-parser/core/types/utils.ts +143 -14
  210. package/src/wit/wit-parser/core/user-defined.test.ts +609 -0
  211. package/src/wit/wit-parser/core/user-defined.ts +392 -0
  212. package/src/wit/wit-parser/core/utils.test.ts +334 -115
  213. package/src/wit/wit-parser/core/utils.ts +54 -38
  214. package/src/wit/wit-parser/parse-wit-parameter.test.ts +282 -4
  215. package/src/wit/wit-parser/parse-wit-parameter.ts +37 -11
  216. package/src/wit/wit-parser/parse-wit.test.ts +738 -12
  217. package/src/wit/wit-parser/parse-wit.ts +25 -10
  218. package/src/wit/wit.ts +37 -16
  219. package/vitest.config.ts +5 -0
  220. package/dist/cjs/sdk/utils/wit/codecs/decimal.js +0 -148
  221. package/dist/cjs/sdk/utils/wit/codecs/decimal.js.map +0 -1
  222. package/dist/cjs/sdk/utils/wit/codecs/enum.js +0 -94
  223. package/dist/cjs/sdk/utils/wit/codecs/enum.js.map +0 -1
  224. package/dist/cjs/sdk/utils/wit/codecs/integer.js +0 -125
  225. package/dist/cjs/sdk/utils/wit/codecs/integer.js.map +0 -1
  226. package/dist/cjs/sdk/utils/wit/codecs/s64.js +0 -57
  227. package/dist/cjs/sdk/utils/wit/codecs/s64.js.map +0 -1
  228. package/dist/cjs/sdk/utils/wit/codecs/u64.js +0 -56
  229. package/dist/cjs/sdk/utils/wit/codecs/u64.js.map +0 -1
  230. package/dist/cjs/wit/wit-parser/core/records.js +0 -70
  231. package/dist/cjs/wit/wit-parser/core/records.js.map +0 -1
  232. package/dist/cjs/wit/wit-parser/core/types/records.js.map +0 -1
  233. package/dist/esm/sdk/utils/wit/codecs/decimal.js +0 -165
  234. package/dist/esm/sdk/utils/wit/codecs/decimal.js.map +0 -1
  235. package/dist/esm/sdk/utils/wit/codecs/enum.js +0 -104
  236. package/dist/esm/sdk/utils/wit/codecs/enum.js.map +0 -1
  237. package/dist/esm/sdk/utils/wit/codecs/integer.js +0 -167
  238. package/dist/esm/sdk/utils/wit/codecs/integer.js.map +0 -1
  239. package/dist/esm/sdk/utils/wit/codecs/s64.js +0 -65
  240. package/dist/esm/sdk/utils/wit/codecs/s64.js.map +0 -1
  241. package/dist/esm/sdk/utils/wit/codecs/u64.js +0 -63
  242. package/dist/esm/sdk/utils/wit/codecs/u64.js.map +0 -1
  243. package/dist/esm/wit/wit-parser/core/records.js +0 -73
  244. package/dist/esm/wit/wit-parser/core/records.js.map +0 -1
  245. package/dist/esm/wit/wit-parser/core/types/records.js +0 -2
  246. package/dist/esm/wit/wit-parser/core/types/records.js.map +0 -1
  247. package/dist/types/sdk/utils/wit/codecs/decimal.d.ts +0 -42
  248. package/dist/types/sdk/utils/wit/codecs/decimal.d.ts.map +0 -1
  249. package/dist/types/sdk/utils/wit/codecs/enum.d.ts +0 -49
  250. package/dist/types/sdk/utils/wit/codecs/enum.d.ts.map +0 -1
  251. package/dist/types/sdk/utils/wit/codecs/integer.d.ts +0 -36
  252. package/dist/types/sdk/utils/wit/codecs/integer.d.ts.map +0 -1
  253. package/dist/types/sdk/utils/wit/codecs/s64.d.ts +0 -23
  254. package/dist/types/sdk/utils/wit/codecs/s64.d.ts.map +0 -1
  255. package/dist/types/sdk/utils/wit/codecs/u64.d.ts +0 -23
  256. package/dist/types/sdk/utils/wit/codecs/u64.d.ts.map +0 -1
  257. package/dist/types/wit/wit-parser/core/records.d.ts +0 -4
  258. package/dist/types/wit/wit-parser/core/records.d.ts.map +0 -1
  259. package/dist/types/wit/wit-parser/core/types/records.d.ts +0 -51
  260. package/dist/types/wit/wit-parser/core/types/records.d.ts.map +0 -1
  261. package/src/sdk/test/e2e.test.ts +0 -194
  262. package/src/sdk/utils/wit/codecs/decimal.ts +0 -215
  263. package/src/sdk/utils/wit/codecs/enum.ts +0 -114
  264. package/src/sdk/utils/wit/codecs/integer.ts +0 -193
  265. package/src/sdk/utils/wit/codecs/s64.ts +0 -76
  266. package/src/sdk/utils/wit/codecs/u64.ts +0 -73
  267. package/src/wit/wit-parser/core/records.test.ts +0 -69
  268. package/src/wit/wit-parser/core/records.ts +0 -101
  269. package/src/wit/wit-parser/core/types/records.test-d.ts +0 -331
  270. package/src/wit/wit-parser/core/types/records.ts +0 -91
@@ -1,49 +1,349 @@
1
- import { test } from "vitest";
1
+ import { test, vi, expect } from "vitest";
2
2
  import { nativeToken as nativeToken_ } from "../contracts/wits.js";
3
3
  import { createPublicClient as createKontorPublicClient } from "../clients/kontor/create-public-client.js";
4
-
5
4
  const nativeToken = nativeToken_.wit;
6
-
7
- import { mnemonicToAccount } from "../accounts/mnemonic-to-account.js";
8
5
  import { signet } from "../chains/definitions/signet.js";
9
- import { http } from "../clients/transports/http.js";
10
6
  import { getContract } from "./get-contract.js";
7
+ import { createHttpTransport } from "../clients/transports/create-http-transport.js";
8
+
9
+ const mockAccount: [string, string] = [
10
+ "mock_address",
11
+ "0000000000000000000000000000000000000000000000000000000000000001",
12
+ ];
13
+
14
+ test("native token - view: balance", async () => {
15
+ const transportRequestMock = vi.fn(async (_request) => {
16
+ return {
17
+ result: {
18
+ type: "Ok",
19
+ value: "some({r0: 1, r1: 0, r2: 0, r3: 0, sign: plus})",
20
+ },
21
+ };
22
+ });
23
+ const mockTransport = () =>
24
+ createHttpTransport({
25
+ key: "mock",
26
+ name: "Mock Transport",
27
+ request: transportRequestMock,
28
+ type: "mock",
29
+ });
30
+ const kontorPublicClient = createKontorPublicClient({
31
+ transport: mockTransport,
32
+ chain: signet,
33
+ account: mockAccount,
34
+ });
35
+ const contract = getContract({
36
+ wit: nativeToken,
37
+ contractAddress: "token_0_0",
38
+ client: kontorPublicClient,
39
+ });
40
+ const result = await contract.view.balance(["acc123"]);
41
+ expect(transportRequestMock).toHaveBeenCalledWith({
42
+ route: "/contracts/:contractAddress",
43
+ method: "POST",
44
+ path: { contractAddress: "token_0_0" },
45
+ body: { expr: 'balance("acc123")' },
46
+ });
47
+ expect(result).toEqual(["some", [1n, 18]]);
48
+ });
49
+
50
+ test("native token - proc: mint", async () => {
51
+ const transportRequestMock = vi.fn(async (_request) => {
52
+ return {
53
+ result: {
54
+ type: "Ok",
55
+ value:
56
+ 'ok({dst: "acc123", amt: {r0: 100, r1: 0, r2: 0, r3: 0, sign: plus}})',
57
+ },
58
+ };
59
+ });
60
+ const mockTransport = () =>
61
+ createHttpTransport({
62
+ key: "mock",
63
+ name: "Mock Transport",
64
+ request: transportRequestMock,
65
+ type: "mock",
66
+ });
67
+ const kontorPublicClient = createKontorPublicClient({
68
+ transport: mockTransport,
69
+ chain: signet,
70
+ account: mockAccount,
71
+ });
72
+ const contract = getContract({
73
+ wit: nativeToken,
74
+ contractAddress: "token_0_0",
75
+ client: kontorPublicClient,
76
+ });
77
+
78
+ await contract.proc.mint([[100n, 18]], {
79
+ utxos: ["utxo1"],
80
+ gas: 1000n,
81
+ satsPerVByte: 1,
82
+ });
83
+
84
+ expect(transportRequestMock).toHaveBeenCalledWith({
85
+ route: "/transactions/compose",
86
+ method: "POST",
87
+ body: {
88
+ envelope: null,
89
+ instructions: [
90
+ {
91
+ address: "mock_address",
92
+ chained_instruction: null,
93
+ funding_utxo_ids: "utxo1",
94
+ instruction: {
95
+ Call: {
96
+ contract: "token_0_0",
97
+ expr: "mint({r0: 100, r1: 0, r2: 0, r3: 0, sign: plus})",
98
+ gas_limit: 1000,
99
+ },
100
+ },
101
+ x_only_public_key:
102
+ "0000000000000000000000000000000000000000000000000000000000000001",
103
+ },
104
+ ],
105
+ sat_per_vbyte: 1,
106
+ },
107
+ });
108
+ });
109
+
110
+ test("native token - proc: burn", async () => {
111
+ const transportRequestMock = vi.fn(async (_request) => {
112
+ return {
113
+ result: {
114
+ type: "Ok",
115
+ value:
116
+ 'ok({src: "acc123", amt: {r0: 50, r1: 0, r2: 0, r3: 0, sign: plus}})',
117
+ },
118
+ };
119
+ });
120
+ const mockTransport = () =>
121
+ createHttpTransport({
122
+ key: "mock",
123
+ name: "Mock Transport",
124
+ request: transportRequestMock,
125
+ type: "mock",
126
+ });
127
+ const kontorPublicClient = createKontorPublicClient({
128
+ transport: mockTransport,
129
+ chain: signet,
130
+ account: mockAccount,
131
+ });
132
+ const contract = getContract({
133
+ wit: nativeToken,
134
+ contractAddress: "token_0_0",
135
+ client: kontorPublicClient,
136
+ });
137
+
138
+ await contract.proc.burn([[50n, 18]], {
139
+ utxos: ["utxo2"],
140
+ gas: 1000n,
141
+ satsPerVByte: 1,
142
+ });
11
143
 
12
- test("e2e getContract", async () => {
13
- const account = mnemonicToAccount(process.env.TEST_MNEMONIC!, {
14
- coinType: 1,
15
- networkConfig: signet.networkConfig,
144
+ expect(transportRequestMock).toHaveBeenCalledWith({
145
+ route: "/transactions/compose",
146
+ method: "POST",
147
+ body: {
148
+ envelope: null,
149
+ instructions: [
150
+ {
151
+ address: "mock_address",
152
+ chained_instruction: null,
153
+ funding_utxo_ids: "utxo2",
154
+ instruction: {
155
+ Call: {
156
+ contract: "token_0_0",
157
+ expr: "burn({r0: 50, r1: 0, r2: 0, r3: 0, sign: plus})",
158
+ gas_limit: 1000,
159
+ },
160
+ },
161
+ x_only_public_key:
162
+ "0000000000000000000000000000000000000000000000000000000000000001",
163
+ },
164
+ ],
165
+ sat_per_vbyte: 1,
166
+ },
16
167
  });
168
+ });
17
169
 
18
- // if chain is omittet here
170
+ test("native token - proc: transfer", async () => {
171
+ const transportRequestMock = vi.fn(async (_request) => {
172
+ return {
173
+ result: {
174
+ type: "Ok",
175
+ value:
176
+ 'ok({src: "acc123", dst: "dst_acc", amt: {r0: 75, r1: 0, r2: 0, r3: 0, sign: plus}})',
177
+ },
178
+ };
179
+ });
180
+ const mockTransport = () =>
181
+ createHttpTransport({
182
+ key: "mock",
183
+ name: "Mock Transport",
184
+ request: transportRequestMock,
185
+ type: "mock",
186
+ });
19
187
  const kontorPublicClient = createKontorPublicClient({
20
- transport: http("https://signet-staging.kontor.network:35000/api"),
188
+ transport: mockTransport,
21
189
  chain: signet,
22
- account,
190
+ account: mockAccount,
191
+ });
192
+ const contract = getContract({
193
+ wit: nativeToken,
194
+ contractAddress: "token_0_0",
195
+ client: kontorPublicClient,
196
+ });
197
+
198
+ await contract.proc.transfer(["dst_acc", [75n, 18]], {
199
+ utxos: ["utxo3"],
200
+ gas: 1000n,
201
+ satsPerVByte: 1,
23
202
  });
24
203
 
204
+ expect(transportRequestMock).toHaveBeenCalledWith({
205
+ route: "/transactions/compose",
206
+ method: "POST",
207
+ body: {
208
+ envelope: null,
209
+ instructions: [
210
+ {
211
+ address: "mock_address",
212
+ chained_instruction: null,
213
+ funding_utxo_ids: "utxo3",
214
+ instruction: {
215
+ Call: {
216
+ contract: "token_0_0",
217
+ expr: 'transfer("dst_acc", {r0: 75, r1: 0, r2: 0, r3: 0, sign: plus})',
218
+ gas_limit: 1000,
219
+ },
220
+ },
221
+ x_only_public_key:
222
+ "0000000000000000000000000000000000000000000000000000000000000001",
223
+ },
224
+ ],
225
+ sat_per_vbyte: 1,
226
+ },
227
+ });
228
+ });
229
+
230
+ test("native token - proc: attach", async () => {
231
+ const transportRequestMock = vi.fn(async (_request) => {
232
+ return {
233
+ result: {
234
+ type: "Ok",
235
+ value:
236
+ 'ok({src: "utxo", dst: "contract", amt: {r0: 25, r1: 0, r2: 0, r3: 0, sign: plus}})',
237
+ },
238
+ };
239
+ });
240
+ const mockTransport = () =>
241
+ createHttpTransport({
242
+ key: "mock",
243
+ name: "Mock Transport",
244
+ request: transportRequestMock,
245
+ type: "mock",
246
+ });
247
+ const kontorPublicClient = createKontorPublicClient({
248
+ transport: mockTransport,
249
+ chain: signet,
250
+ account: mockAccount,
251
+ });
25
252
  const contract = getContract({
26
253
  wit: nativeToken,
27
254
  contractAddress: "token_0_0",
28
255
  client: kontorPublicClient,
29
256
  });
30
257
 
31
- // then options.chain should be required on the view calls
32
- const balances = await contract.view.balances();
258
+ await contract.proc.attach([1n, [25n, 18]], {
259
+ utxos: ["utxo4"],
260
+ gas: 1000n,
261
+ satsPerVByte: 1,
262
+ });
263
+
264
+ expect(transportRequestMock).toHaveBeenCalledWith({
265
+ route: "/transactions/compose",
266
+ method: "POST",
267
+ body: {
268
+ envelope: null,
269
+ instructions: [
270
+ {
271
+ address: "mock_address",
272
+ chained_instruction: null,
273
+ funding_utxo_ids: "utxo4",
274
+ instruction: {
275
+ Call: {
276
+ contract: "token_0_0",
277
+ expr: "attach(1, {r0: 25, r1: 0, r2: 0, r3: 0, sign: plus})",
278
+ gas_limit: 1000,
279
+ },
280
+ },
281
+ x_only_public_key:
282
+ "0000000000000000000000000000000000000000000000000000000000000001",
283
+ },
284
+ ],
285
+ sat_per_vbyte: 1,
286
+ },
287
+ });
288
+ });
33
289
 
34
- const balance = await contract.view.balance([
35
- "2c7b730daa0036e8276cdd8fabe844b2dd324a6d227dd209663805189d03e51f",
36
- ]);
290
+ test("native token - proc: detach", async () => {
291
+ const transportRequestMock = vi.fn(async (_request) => {
292
+ return {
293
+ result: {
294
+ type: "Ok",
295
+ value:
296
+ 'ok({src: "contract", dst: "utxo", amt: {r0: 10, r1: 0, r2: 0, r3: 0, sign: plus}})',
297
+ },
298
+ };
299
+ });
300
+ const mockTransport = () =>
301
+ createHttpTransport({
302
+ key: "mock",
303
+ name: "Mock Transport",
304
+ request: transportRequestMock,
305
+ type: "mock",
306
+ });
307
+ const kontorPublicClient = createKontorPublicClient({
308
+ transport: mockTransport,
309
+ chain: signet,
310
+ account: mockAccount,
311
+ });
312
+ const contract = getContract({
313
+ wit: nativeToken,
314
+ contractAddress: "token_0_0",
315
+ client: kontorPublicClient,
316
+ });
37
317
 
38
- const composeOutputs = await contract.proc.burn([[1n, 18]], {
39
- utxos: [
40
- "641c40edf4cf0f1cdaea5c259bf50267bd8743dbade84c98bb9e360c2d0e2a33:1",
41
- ],
318
+ await contract.proc.detach({
319
+ utxos: ["utxo5", "utxo6"],
42
320
  gas: 1000n,
43
321
  satsPerVByte: 1,
322
+ args: [],
44
323
  });
45
324
 
46
- console.log({ balances });
47
- console.log({ balance });
48
- console.log({ composeOutputs });
325
+ expect(transportRequestMock).toHaveBeenCalledWith({
326
+ route: "/transactions/compose",
327
+ method: "POST",
328
+ body: {
329
+ envelope: null,
330
+ instructions: [
331
+ {
332
+ address: "mock_address",
333
+ chained_instruction: null,
334
+ funding_utxo_ids: "utxo5,utxo6",
335
+ instruction: {
336
+ Call: {
337
+ contract: "token_0_0",
338
+ expr: "detach()",
339
+ gas_limit: 1000,
340
+ },
341
+ },
342
+ x_only_public_key:
343
+ "0000000000000000000000000000000000000000000000000000000000000001",
344
+ },
345
+ ],
346
+ sat_per_vbyte: 1,
347
+ },
348
+ });
49
349
  });
@@ -1,3 +1,4 @@
1
+ import type { Pretty } from "../../../../wit/type-utils.js";
1
2
  import type {
2
3
  ResultResponse,
3
4
  ViewResult,
@@ -15,7 +16,7 @@ export type CallViewParameters<
15
16
  wave: string;
16
17
  } & GetChainParameter<chain, chainOverride>;
17
18
  // TODO: refine this type
18
- export type CallViewReturnType = ResultResponse<ViewResult>;
19
+ export type CallViewReturnType = Pretty<ResultResponse<ViewResult>>;
19
20
 
20
21
  export async function callView<
21
22
  chain extends Chain | undefined = Chain | undefined,
@@ -0,0 +1,107 @@
1
+ import { expectTypeOf, test } from "vitest";
2
+ import { parseWit } from "../../../../wit/wit-parser/parse-wit.js";
3
+ import type { ProcContractParameters } from "./proc-contract.js";
4
+
5
+ // Color Palette Contract - demonstrates variants and enums in WIT
6
+ const colorPaletteWit = [
7
+ // Records
8
+ "record rgb { r: u8, g: u8, b: u8 }",
9
+ "record hsv { h: u16, s: u8, v: u8 }",
10
+ "record palette-info { name: string, size: u32, owner: string }",
11
+ // Enums
12
+ "enum palette-status { active, archived, locked, readonly }",
13
+ "enum sort-order { alphabetical, creation-date, usage-count }",
14
+ // Variants
15
+ "variant color { hex(string), rgb(rgb), hsv(hsv), named(string) }",
16
+ "variant query { by-name(string), by-index(u32), all, by-status(palette-status) }",
17
+ "variant palette-event { created(palette-info), color-added(color), color-removed(u32), status-changed(palette-status) }",
18
+ // Proc functions
19
+ "export add-color: func(ctx: borrow<proc-context>, c: color) -> result<list<color>, error>;",
20
+ "export remove-color: func(ctx: borrow<proc-context>, index: u32) -> result<color, error>;",
21
+ "export set-status: func(ctx: borrow<proc-context>, status: palette-status) -> result<palette-status, error>;",
22
+ "export sort-colors: func(ctx: borrow<proc-context>, order: sort-order) -> result<_, error>;",
23
+ // View functions
24
+ "export get-colors: func(ctx: borrow<view-context>) -> list<color>;",
25
+ "export get-color: func(ctx: borrow<view-context>, index: u32) -> option<color>;",
26
+ "export get-status: func(ctx: borrow<view-context>) -> palette-status;",
27
+ "export get-info: func(ctx: borrow<view-context>) -> palette-info;",
28
+ "export query-colors: func(ctx: borrow<view-context>, q: query) -> list<color>;",
29
+ "export find-color: func(ctx: borrow<view-context>, c: color) -> option<u32>;",
30
+ "export get-recent-events: func(ctx: borrow<view-context>, limit: u32) -> list<palette-event>;",
31
+ ] as const;
32
+
33
+ const colorPalette = parseWit(colorPaletteWit);
34
+ test("add-color argument type - color variant", () => {
35
+ type Params = ProcContractParameters<typeof colorPalette, "add-color">;
36
+
37
+ expectTypeOf<Params["args"]>().toEqualTypeOf<
38
+ readonly [
39
+ | ["hex", string]
40
+ | [
41
+ "rgb",
42
+ {
43
+ r: number;
44
+ g: number;
45
+ b: number;
46
+ },
47
+ ]
48
+ | [
49
+ "hsv",
50
+ {
51
+ h: number;
52
+ s: number;
53
+ v: number;
54
+ },
55
+ ]
56
+ | ["named", string],
57
+ ]
58
+ >;
59
+ });
60
+
61
+ test("remove-color argument type", () => {
62
+ type Params = ProcContractParameters<typeof colorPalette, "remove-color">;
63
+
64
+ expectTypeOf<Params["args"]>().toEqualTypeOf<readonly [number]>();
65
+ });
66
+
67
+ test("set-status argument type - enum", () => {
68
+ type Params = ProcContractParameters<typeof colorPalette, "set-status">;
69
+
70
+ expectTypeOf<Params["args"]>().toEqualTypeOf<
71
+ readonly ["active" | "archived" | "locked" | "readonly"]
72
+ >;
73
+ });
74
+
75
+ test("sort-colors argument type - enum", () => {
76
+ type Params = ProcContractParameters<typeof colorPalette, "sort-colors">;
77
+
78
+ expectTypeOf<Params["args"]>().toEqualTypeOf<
79
+ readonly ["alphabetical" | "creation-date" | "usage-count"]
80
+ >;
81
+ });
82
+
83
+ test("add-color argument type - color variant", () => {
84
+ type Params = ProcContractParameters<typeof colorPalette, "add-color">;
85
+ expectTypeOf<Params["args"]>().toEqualTypeOf<
86
+ readonly [
87
+ | ["hex", string]
88
+ | [
89
+ "rgb",
90
+ {
91
+ r: number;
92
+ g: number;
93
+ b: number;
94
+ },
95
+ ]
96
+ | [
97
+ "hsv",
98
+ {
99
+ h: number;
100
+ s: number;
101
+ v: number;
102
+ },
103
+ ]
104
+ | ["named", string],
105
+ ]
106
+ >;
107
+ });