@kontor/kontor-sdk 1.0.0-alpha.3 → 1.0.0-alpha.5

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 (113) hide show
  1. package/dist/src/kwit/error.js +59 -0
  2. package/dist/src/kwit/error.js.map +1 -0
  3. package/dist/src/kwit/kwit-parser/core/errors/kwit-parameter.js +29 -0
  4. package/dist/src/kwit/kwit-parser/core/errors/kwit-parameter.js.map +1 -0
  5. package/dist/src/kwit/kwit-parser/core/errors/signature.js +42 -0
  6. package/dist/src/kwit/kwit-parser/core/errors/signature.js.map +1 -0
  7. package/dist/src/kwit/kwit-parser/core/errors/splitParameters.js +18 -0
  8. package/dist/src/kwit/kwit-parser/core/errors/splitParameters.js.map +1 -0
  9. package/dist/src/kwit/kwit-parser/core/records.js +73 -0
  10. package/dist/src/kwit/kwit-parser/core/records.js.map +1 -0
  11. package/dist/src/kwit/kwit-parser/core/records.test.js +53 -0
  12. package/dist/src/kwit/kwit-parser/core/records.test.js.map +1 -0
  13. package/dist/src/kwit/kwit-parser/core/signatures.js +33 -0
  14. package/dist/src/kwit/kwit-parser/core/signatures.js.map +1 -0
  15. package/dist/src/kwit/kwit-parser/core/signatures.test.js +54 -0
  16. package/dist/src/kwit/kwit-parser/core/signatures.test.js.map +1 -0
  17. package/dist/src/kwit/kwit-parser/core/types/records.js +2 -0
  18. package/dist/src/kwit/kwit-parser/core/types/records.js.map +1 -0
  19. package/dist/src/kwit/kwit-parser/core/types/records.test-d.js +19 -0
  20. package/dist/src/kwit/kwit-parser/core/types/records.test-d.js.map +1 -0
  21. package/dist/src/kwit/kwit-parser/core/types/signatures.js +3 -0
  22. package/dist/src/kwit/kwit-parser/core/types/signatures.js.map +1 -0
  23. package/dist/src/kwit/kwit-parser/core/types/signatures.test-d.js +18 -0
  24. package/dist/src/kwit/kwit-parser/core/types/signatures.test-d.js.map +1 -0
  25. package/dist/src/kwit/kwit-parser/core/types/utils.js +2 -0
  26. package/dist/src/kwit/kwit-parser/core/types/utils.js.map +1 -0
  27. package/dist/src/kwit/kwit-parser/core/types/utils.test-d.js +159 -0
  28. package/dist/src/kwit/kwit-parser/core/types/utils.test-d.js.map +1 -0
  29. package/dist/src/kwit/kwit-parser/core/utils.js +212 -0
  30. package/dist/src/kwit/kwit-parser/core/utils.js.map +1 -0
  31. package/dist/src/kwit/kwit-parser/core/utils.test.js +302 -0
  32. package/dist/src/kwit/kwit-parser/core/utils.test.js.map +1 -0
  33. package/dist/src/kwit/kwit-parser/parse-kwit-parameter.js +26 -0
  34. package/dist/src/kwit/kwit-parser/parse-kwit-parameter.js.map +1 -0
  35. package/dist/src/kwit/kwit-parser/parse-kwit-parameter.test.js +83 -0
  36. package/dist/src/kwit/kwit-parser/parse-kwit-parameter.test.js.map +1 -0
  37. package/dist/src/kwit/kwit-parser/parse-kwit.js +16 -0
  38. package/dist/src/kwit/kwit-parser/parse-kwit.js.map +1 -0
  39. package/dist/src/kwit/kwit-parser/parse-kwit.test.js +78 -0
  40. package/dist/src/kwit/kwit-parser/parse-kwit.test.js.map +1 -0
  41. package/dist/src/kwit/kwit.js +2 -0
  42. package/dist/src/kwit/kwit.js.map +1 -0
  43. package/dist/src/kwit/kwit.test.js +9 -0
  44. package/dist/src/kwit/kwit.test.js.map +1 -0
  45. package/dist/src/kwit/narrow.js +14 -0
  46. package/dist/src/kwit/narrow.js.map +1 -0
  47. package/dist/src/kwit/regex.js +6 -0
  48. package/dist/src/kwit/regex.js.map +1 -0
  49. package/dist/src/kwit/register.js +2 -0
  50. package/dist/src/kwit/register.js.map +1 -0
  51. package/dist/src/kwit/type-utils.js +2 -0
  52. package/dist/src/kwit/type-utils.js.map +1 -0
  53. package/dist/src/kwit/utils.js +2 -0
  54. package/dist/src/kwit/utils.js.map +1 -0
  55. package/dist/src/kwit/utils.test-d.js +17 -0
  56. package/dist/src/kwit/utils.test-d.js.map +1 -0
  57. package/dist/src/kwit/version.js +2 -0
  58. package/dist/src/kwit/version.js.map +1 -0
  59. package/dist/src/sdk/actions/kontor/wallet/sign-reveal.js +19 -30
  60. package/dist/src/sdk/actions/kontor/wallet/sign-reveal.js.map +1 -1
  61. package/dist/src/sdk/actions/public/test-mempool-accept.js +1 -1
  62. package/dist/src/sdk/actions/public/test-mempool-accept.js.map +1 -1
  63. package/dist/src/sdk/clients/decorators/public.js +2 -0
  64. package/dist/src/sdk/clients/decorators/public.js.map +1 -1
  65. package/dist/src/sdk/errors/kwit.js +19 -0
  66. package/dist/src/sdk/errors/kwit.js.map +1 -0
  67. package/dist/src/sdk/test/e2e.test.js +174 -14
  68. package/dist/src/sdk/test/e2e.test.js.map +1 -1
  69. package/dist/src/sdk/utils/kwit/codecs/decimal.js +165 -0
  70. package/dist/src/sdk/utils/kwit/codecs/decimal.js.map +1 -0
  71. package/dist/src/sdk/utils/kwit/codecs/enum.js +104 -0
  72. package/dist/src/sdk/utils/kwit/codecs/enum.js.map +1 -0
  73. package/dist/src/sdk/utils/kwit/codecs/integer.js +167 -0
  74. package/dist/src/sdk/utils/kwit/codecs/integer.js.map +1 -0
  75. package/dist/src/sdk/utils/kwit/codecs/list.js +117 -0
  76. package/dist/src/sdk/utils/kwit/codecs/list.js.map +1 -0
  77. package/dist/src/sdk/utils/kwit/codecs/option.js +91 -0
  78. package/dist/src/sdk/utils/kwit/codecs/option.js.map +1 -0
  79. package/dist/src/sdk/utils/kwit/codecs/string.js +27 -0
  80. package/dist/src/sdk/utils/kwit/codecs/string.js.map +1 -0
  81. package/dist/src/sdk/utils/kwit/codecs/types.js +45 -0
  82. package/dist/src/sdk/utils/kwit/codecs/types.js.map +1 -0
  83. package/dist/src/sdk/utils/kwit/codecs/unit.js +22 -0
  84. package/dist/src/sdk/utils/kwit/codecs/unit.js.map +1 -0
  85. package/dist/src/sdk/utils/kwit/decode-function-result.js +36 -0
  86. package/dist/src/sdk/utils/kwit/decode-function-result.js.map +1 -0
  87. package/dist/src/sdk/utils/kwit/decode-kwit-parameter.js +286 -0
  88. package/dist/src/sdk/utils/kwit/decode-kwit-parameter.js.map +1 -0
  89. package/dist/src/sdk/utils/kwit/decode-kwit-parameter.test.js +75 -0
  90. package/dist/src/sdk/utils/kwit/decode-kwit-parameter.test.js.map +1 -0
  91. package/dist/src/sdk/utils/kwit/encode-function-data.js +17 -0
  92. package/dist/src/sdk/utils/kwit/encode-function-data.js.map +1 -0
  93. package/dist/src/sdk/utils/kwit/encode-function-data.test-d.js +21 -0
  94. package/dist/src/sdk/utils/kwit/encode-function-data.test-d.js.map +1 -0
  95. package/dist/src/sdk/utils/kwit/encode-function-data.test.js +91 -0
  96. package/dist/src/sdk/utils/kwit/encode-function-data.test.js.map +1 -0
  97. package/dist/src/sdk/utils/kwit/encode-kwit-parameters.js +250 -0
  98. package/dist/src/sdk/utils/kwit/encode-kwit-parameters.js.map +1 -0
  99. package/dist/src/sdk/utils/kwit/encode-kwit-parameters.test.js +62 -0
  100. package/dist/src/sdk/utils/kwit/encode-kwit-parameters.test.js.map +1 -0
  101. package/dist/src/sdk/utils/kwit/get-kwit-item.js +186 -0
  102. package/dist/src/sdk/utils/kwit/get-kwit-item.js.map +1 -0
  103. package/dist/src/sdk/utils/kwit/get-kwit-item.test.js +119 -0
  104. package/dist/src/sdk/utils/kwit/get-kwit-item.test.js.map +1 -0
  105. package/dist/src/sdk/utils/kwit/prepare-encode-function-data.js +24 -0
  106. package/dist/src/sdk/utils/kwit/prepare-encode-function-data.js.map +1 -0
  107. package/dist/tsconfig.tsbuildinfo +1 -1
  108. package/package.json +1 -1
  109. package/src/sdk/actions/kontor/wallet/sign-reveal.ts +27 -34
  110. package/src/sdk/actions/public/test-mempool-accept.ts +2 -3
  111. package/src/sdk/clients/decorators/public.ts +11 -0
  112. package/src/sdk/test/e2e.test.ts +193 -15
  113. package/src/sdk/types/btc-rpc.ts +1 -1
@@ -0,0 +1,119 @@
1
+ // test/kwit/getKwitItem.test.ts
2
+ import { describe, expect, test } from "vitest";
3
+ import { getKwitItem } from "./get-kwit-item.js";
4
+ import { parseKwit } from "../../../kwit/kwit-parser/parse-kwit.js";
5
+ export const nativeToken = parseKwit([
6
+ "record balance { key: string, value: decimal }",
7
+ "export mint: func(ctx: borrow<proc-context>, n: decimal) -> result<_, error>;",
8
+ "export burn: func(ctx: borrow<proc-context>, n: decimal) -> result<_, error>;",
9
+ "export transfer: func(ctx: borrow<proc-context>, to: string, n: decimal) -> result<_, error>;",
10
+ "export balance: func(ctx: borrow<view-context>, acc: string) -> option<decimal>;",
11
+ "export balances: func(ctx: borrow<view-context>) -> list<balance>;",
12
+ "export total-supply: func(ctx: borrow<view-context>) -> decimal;",
13
+ ]);
14
+ describe("getKwitItem", () => {
15
+ test("returns undefined for missing item", () => {
16
+ const item = getKwitItem({
17
+ kwit: nativeToken,
18
+ // @ts-expect-error - "does-not-exist" is not a valid KwitItemName
19
+ name: "does-not-exist",
20
+ });
21
+ expect(item).toBeUndefined();
22
+ });
23
+ test("selects mint function by name", () => {
24
+ const item = getKwitItem({
25
+ kwit: nativeToken,
26
+ name: "mint",
27
+ });
28
+ expect(item).toStrictEqual({
29
+ name: "mint",
30
+ type: "function",
31
+ context: "proc",
32
+ inputs: [{ type: "decimal", name: "n" }],
33
+ outputs: [{ type: "result<_, error>" }],
34
+ });
35
+ });
36
+ test("selects burn function by name", () => {
37
+ const item = getKwitItem({
38
+ kwit: nativeToken,
39
+ name: "burn",
40
+ });
41
+ expect(item).toStrictEqual({
42
+ name: "burn",
43
+ type: "function",
44
+ context: "proc",
45
+ inputs: [{ type: "decimal", name: "n" }],
46
+ outputs: [{ type: "result<_, error>" }],
47
+ });
48
+ });
49
+ test("selects transfer function by name", () => {
50
+ const item = getKwitItem({
51
+ kwit: nativeToken,
52
+ name: "transfer",
53
+ });
54
+ expect(item).toStrictEqual({
55
+ name: "transfer",
56
+ type: "function",
57
+ context: "proc",
58
+ inputs: [
59
+ { type: "string", name: "to" },
60
+ { type: "decimal", name: "n" },
61
+ ],
62
+ outputs: [{ type: "result<_, error>" }],
63
+ });
64
+ });
65
+ test("selects balance function by name", () => {
66
+ const item = getKwitItem({
67
+ kwit: nativeToken,
68
+ name: "balance",
69
+ });
70
+ expect(item).toStrictEqual({
71
+ name: "balance",
72
+ type: "function",
73
+ context: "view",
74
+ inputs: [{ type: "string", name: "acc" }],
75
+ outputs: [{ type: "option<decimal>" }],
76
+ });
77
+ });
78
+ test("selects balances function by name", () => {
79
+ const item = getKwitItem({
80
+ kwit: nativeToken,
81
+ name: "balances",
82
+ });
83
+ expect(item).toStrictEqual({
84
+ name: "balances",
85
+ type: "function",
86
+ context: "view",
87
+ inputs: [],
88
+ outputs: [
89
+ {
90
+ type: "list<tuple>",
91
+ components: [
92
+ {
93
+ name: "key",
94
+ type: "string",
95
+ },
96
+ {
97
+ name: "value",
98
+ type: "decimal",
99
+ },
100
+ ],
101
+ },
102
+ ],
103
+ });
104
+ });
105
+ test("selects total-supply function by name (kebab case)", () => {
106
+ const item = getKwitItem({
107
+ kwit: nativeToken,
108
+ name: "total-supply",
109
+ });
110
+ expect(item).toBeDefined();
111
+ expect(item.name).toBe("total-supply");
112
+ const inputs = item.inputs ?? [];
113
+ expect(inputs.map((p) => p.name)).toEqual([]);
114
+ expect(inputs.map((p) => p.type)).toEqual([]);
115
+ // Optional: assert output type
116
+ // expect((item as any).outputs?.[0]?.type).toBe("decimal");
117
+ });
118
+ });
119
+ //# sourceMappingURL=get-kwit-item.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-kwit-item.test.js","sourceRoot":"","sources":["../../../../../src/sdk/utils/kwit/get-kwit-item.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,24 @@
1
+ import { getKwitItem } from "./get-kwit-item.js";
2
+ export function prepareEncodeFunctionData(parameters) {
3
+ // TODO: rip out args
4
+ const { kwit, functionName, args: _args, } = parameters;
5
+ let kwitItem = kwit[0];
6
+ if (functionName) {
7
+ const item = getKwitItem({
8
+ kwit,
9
+ name: functionName,
10
+ });
11
+ // if (!item) throw new KwitFunctionNotFoundError(functionName, { docsPath });
12
+ if (!item)
13
+ throw new Error("TMP: KwitFunctionNotFoundError");
14
+ kwitItem = item;
15
+ }
16
+ if (kwitItem?.type !== "function")
17
+ throw new Error("TMP: KwitFunctionNotFoundError");
18
+ // throw new KwitFunctionNotFoundError(undefined, { docsPath });
19
+ return {
20
+ kwit: [kwitItem],
21
+ functionName: kwitItem.name,
22
+ };
23
+ }
24
+ //# sourceMappingURL=prepare-encode-function-data.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prepare-encode-function-data.js","sourceRoot":"","sources":["../../../../../src/sdk/utils/kwit/prepare-encode-function-data.ts"],"names":[],"mappings":"AAUA,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAmDjD,MAAM,UAAU,yBAAyB,CAIvC,UAAmE;IAEnE,qBAAqB;IACrB,MAAM,EACJ,IAAI,EACJ,YAAY,EACZ,IAAI,EAAE,KAAK,GACZ,GAAG,UAAiD,CAAC;IAEtD,IAAI,QAAQ,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;IACvB,IAAI,YAAY,EAAE,CAAC;QACjB,MAAM,IAAI,GAAG,WAAW,CAAC;YACvB,IAAI;YACJ,IAAI,EAAE,YAAY;SACnB,CAAC,CAAC;QACH,8EAA8E;QAC9E,IAAI,CAAC,IAAI;YAAE,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAC;QAC7D,QAAQ,GAAG,IAAI,CAAC;IAClB,CAAC;IAED,IAAI,QAAQ,EAAE,IAAI,KAAK,UAAU;QAC/B,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAC;IACpD,gEAAgE;IAEhE,OAAO;QACL,IAAI,EAAE,CAAC,QAAQ,CAAC;QAChB,YAAY,EAAE,QAAQ,CAAC,IAAI;KAC0C,CAAC;AAC1E,CAAC"}