@kontor/kontor-sdk 1.0.0-alpha.28 → 1.0.0-alpha.29
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.
- package/dist/cjs/exports/index.js.map +1 -1
- package/dist/cjs/sdk/accounts/hd-key-to-account.js +1 -0
- package/dist/cjs/sdk/accounts/hd-key-to-account.js.map +1 -1
- package/dist/cjs/sdk/accounts/mnemonic-to-account.js +2 -4
- package/dist/cjs/sdk/accounts/mnemonic-to-account.js.map +1 -1
- package/dist/cjs/sdk/accounts/private-key-to-account.js +3 -8
- package/dist/cjs/sdk/accounts/private-key-to-account.js.map +1 -1
- package/dist/cjs/sdk/accounts/to-local-account.js.map +1 -1
- package/dist/cjs/sdk/actions/get-contract.js +36 -16
- package/dist/cjs/sdk/actions/get-contract.js.map +1 -1
- package/dist/cjs/sdk/actions/kontor/public/build-compose-query.js.map +1 -1
- package/dist/cjs/sdk/utils/wit/codecs/bool.js +29 -0
- package/dist/cjs/sdk/utils/wit/codecs/bool.js.map +1 -0
- package/dist/cjs/sdk/utils/wit/codecs/s64.js +57 -0
- package/dist/cjs/sdk/utils/wit/codecs/s64.js.map +1 -0
- package/dist/cjs/sdk/utils/wit/decode-wit-parameter.js +134 -131
- package/dist/cjs/sdk/utils/wit/decode-wit-parameter.js.map +1 -1
- package/dist/cjs/sdk/utils/wit/encode-wit-parameters.js +74 -26
- package/dist/cjs/sdk/utils/wit/encode-wit-parameters.js.map +1 -1
- package/dist/cjs/tsconfig.build.tsbuildinfo +1 -1
- package/dist/cjs/wit/wit-parser/core/errors/{splitParameters.js → split-parameters.js} +1 -1
- package/dist/cjs/wit/wit-parser/core/errors/split-parameters.js.map +1 -0
- package/dist/cjs/wit/wit-parser/core/utils.js +3 -3
- package/dist/cjs/wit/wit-parser/core/utils.js.map +1 -1
- package/dist/esm/exports/index.js +1 -1
- package/dist/esm/exports/index.js.map +1 -1
- package/dist/esm/sdk/accounts/hd-key-to-account.js +2 -5
- package/dist/esm/sdk/accounts/hd-key-to-account.js.map +1 -1
- package/dist/esm/sdk/accounts/mnemonic-to-account.js +2 -10
- package/dist/esm/sdk/accounts/mnemonic-to-account.js.map +1 -1
- package/dist/esm/sdk/accounts/private-key-to-account.js +3 -15
- package/dist/esm/sdk/accounts/private-key-to-account.js.map +1 -1
- package/dist/esm/sdk/accounts/to-local-account.js +0 -5
- package/dist/esm/sdk/accounts/to-local-account.js.map +1 -1
- package/dist/esm/sdk/actions/get-contract.js +37 -35
- package/dist/esm/sdk/actions/get-contract.js.map +1 -1
- package/dist/esm/sdk/actions/kontor/public/build-compose-query.js.map +1 -1
- package/dist/esm/sdk/utils/wit/codecs/bool.js +26 -0
- package/dist/esm/sdk/utils/wit/codecs/bool.js.map +1 -0
- package/dist/esm/sdk/utils/wit/codecs/s64.js +65 -0
- package/dist/esm/sdk/utils/wit/codecs/s64.js.map +1 -0
- package/dist/esm/sdk/utils/wit/decode-wit-parameter.js +155 -147
- package/dist/esm/sdk/utils/wit/decode-wit-parameter.js.map +1 -1
- package/dist/esm/sdk/utils/wit/encode-wit-parameters.js +74 -72
- package/dist/esm/sdk/utils/wit/encode-wit-parameters.js.map +1 -1
- package/dist/esm/tsconfig.build.tsbuildinfo +1 -1
- package/dist/esm/wit/wit-parser/core/errors/{splitParameters.js → split-parameters.js} +1 -1
- package/dist/esm/wit/wit-parser/core/errors/split-parameters.js.map +1 -0
- package/dist/esm/wit/wit-parser/core/utils.js +1 -1
- package/dist/esm/wit/wit-parser/core/utils.js.map +1 -1
- package/dist/types/exports/index.d.ts +1 -1
- package/dist/types/exports/index.d.ts.map +1 -1
- package/dist/types/sdk/accounts/hd-key-to-account.d.ts +0 -5
- package/dist/types/sdk/accounts/hd-key-to-account.d.ts.map +1 -1
- package/dist/types/sdk/accounts/mnemonic-to-account.d.ts +1 -6
- package/dist/types/sdk/accounts/mnemonic-to-account.d.ts.map +1 -1
- package/dist/types/sdk/accounts/private-key-to-account.d.ts +5 -3
- package/dist/types/sdk/accounts/private-key-to-account.d.ts.map +1 -1
- package/dist/types/sdk/accounts/to-local-account.d.ts +0 -5
- package/dist/types/sdk/accounts/to-local-account.d.ts.map +1 -1
- package/dist/types/sdk/actions/get-contract.d.ts +28 -5
- package/dist/types/sdk/actions/get-contract.d.ts.map +1 -1
- package/dist/types/sdk/actions/kontor/public/build-compose-query.d.ts +0 -2
- package/dist/types/sdk/actions/kontor/public/build-compose-query.d.ts.map +1 -1
- package/dist/types/sdk/types/contract.d.ts.map +1 -1
- package/dist/types/sdk/utils/wit/codecs/bool.d.ts +3 -0
- package/dist/types/sdk/utils/wit/codecs/bool.d.ts.map +1 -0
- package/dist/types/sdk/utils/wit/codecs/s64.d.ts +23 -0
- package/dist/types/sdk/utils/wit/codecs/s64.d.ts.map +1 -0
- package/dist/types/sdk/utils/wit/decode-wit-parameter.d.ts +12 -3
- package/dist/types/sdk/utils/wit/decode-wit-parameter.d.ts.map +1 -1
- package/dist/types/sdk/utils/wit/encode-wit-parameters.d.ts.map +1 -1
- package/dist/types/wit/wit-parser/core/errors/{splitParameters.d.ts → split-parameters.d.ts} +1 -1
- package/dist/types/wit/wit-parser/core/errors/split-parameters.d.ts.map +1 -0
- package/package.json +1 -1
- package/src/exports/index.ts +1 -1
- package/src/sdk/accounts/hd-key-to-account.ts +2 -5
- package/src/sdk/accounts/mnemonic-to-account.test.ts +7 -81
- package/src/sdk/accounts/mnemonic-to-account.ts +2 -11
- package/src/sdk/accounts/private-key-to-account.ts +10 -16
- package/src/sdk/accounts/to-local-account.ts +0 -5
- package/src/sdk/actions/get-contract.test-d.ts +10 -9
- package/src/sdk/actions/get-contract.test.ts +49 -0
- package/src/sdk/actions/get-contract.ts +312 -91
- package/src/sdk/actions/kontor/public/build-compose-query.ts +0 -3
- package/src/sdk/test/e2e.test.ts +4 -1
- package/src/sdk/types/contract.ts +3 -14
- package/src/sdk/utils/wit/codecs/bool.ts +29 -0
- package/src/sdk/utils/wit/codecs/s64.ts +76 -0
- package/src/sdk/utils/wit/decode-wit-parameter.ts +167 -164
- package/src/sdk/utils/wit/encode-wit-parameters.ts +78 -75
- package/src/wit/wit-parser/core/utils.ts +1 -1
- package/dist/cjs/wit/wit-parser/core/errors/splitParameters.js.map +0 -1
- package/dist/esm/wit/wit-parser/core/errors/splitParameters.js.map +0 -1
- package/dist/types/wit/wit-parser/core/errors/splitParameters.d.ts.map +0 -1
- /package/src/wit/wit-parser/core/errors/{splitParameters.ts → split-parameters.ts} +0 -0
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import type { CodecConstructor, CodecInstance, WaveExpr } from "./types.js";
|
|
2
|
+
|
|
3
|
+
export const BoolCodec = {
|
|
4
|
+
fromJs(value: boolean) {
|
|
5
|
+
return {
|
|
6
|
+
toWave(): WaveExpr {
|
|
7
|
+
return `${value}` as WaveExpr;
|
|
8
|
+
},
|
|
9
|
+
toJs(): boolean {
|
|
10
|
+
return value;
|
|
11
|
+
},
|
|
12
|
+
};
|
|
13
|
+
},
|
|
14
|
+
|
|
15
|
+
fromKontor(data: boolean) {
|
|
16
|
+
return {
|
|
17
|
+
toWave(): WaveExpr {
|
|
18
|
+
return `${data}` as WaveExpr;
|
|
19
|
+
},
|
|
20
|
+
toJs(): boolean {
|
|
21
|
+
return data as boolean;
|
|
22
|
+
},
|
|
23
|
+
};
|
|
24
|
+
},
|
|
25
|
+
|
|
26
|
+
parseWave(expr: string): boolean {
|
|
27
|
+
return JSON.parse(expr);
|
|
28
|
+
},
|
|
29
|
+
} as unknown as CodecConstructor<boolean, CodecInstance<boolean>, boolean>;
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
// s64.ts
|
|
2
|
+
import * as z from "zod";
|
|
3
|
+
import type { WaveExpr, CodecInstance, CodecConstructor } from "./types.js";
|
|
4
|
+
|
|
5
|
+
// Signed 64-bit range
|
|
6
|
+
const S64_MIN = -(1n << 63n);
|
|
7
|
+
const S64_MAX = (1n << 63n) - 1n;
|
|
8
|
+
|
|
9
|
+
export const S64 = z
|
|
10
|
+
.bigint()
|
|
11
|
+
.min(S64_MIN, { message: "must be ≥ -2^63" })
|
|
12
|
+
.max(S64_MAX, { message: "must be ≤ 2^63-1" });
|
|
13
|
+
|
|
14
|
+
/**
|
|
15
|
+
* Parse a Wave expression for an s64.
|
|
16
|
+
*
|
|
17
|
+
* - Accepts optional underscores for readability: -1_000_000
|
|
18
|
+
* - Allows optional leading "-"
|
|
19
|
+
* - Enforces the s64 range via zod
|
|
20
|
+
*/
|
|
21
|
+
export function parseS64WaveExpr(expr: string): bigint {
|
|
22
|
+
const trimmed = expr.trim();
|
|
23
|
+
if (!trimmed) throw new Error("empty s64 expression");
|
|
24
|
+
|
|
25
|
+
// Allow underscores like "-1_000_000"
|
|
26
|
+
const normalized = trimmed.replace(/_/g, "");
|
|
27
|
+
|
|
28
|
+
if (!/^-?[0-9]+$/.test(normalized)) {
|
|
29
|
+
throw new Error(`invalid s64 literal: "${expr}"`);
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
const value = BigInt(normalized);
|
|
33
|
+
return S64.parse(value); // range-check via zod
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
// --- S64Codec ---------------------------------------------------
|
|
37
|
+
|
|
38
|
+
class _S64Codec implements CodecInstance<bigint> {
|
|
39
|
+
public readonly value: bigint;
|
|
40
|
+
|
|
41
|
+
constructor(value: bigint) {
|
|
42
|
+
this.value = S64.parse(value);
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
static fromJs(value: bigint | number | string): _S64Codec {
|
|
46
|
+
let v: bigint;
|
|
47
|
+
if (typeof value === "bigint") v = value;
|
|
48
|
+
else if (typeof value === "number") v = BigInt(value);
|
|
49
|
+
else v = BigInt(value); // e.g. JSON string "-12345"
|
|
50
|
+
|
|
51
|
+
return new _S64Codec(v);
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
static fromKontor(data: string | bigint | number): _S64Codec {
|
|
55
|
+
return _S64Codec.fromJs(data);
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
static parseWave(expr: string): bigint {
|
|
59
|
+
return parseS64WaveExpr(expr);
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
toWave(): WaveExpr {
|
|
63
|
+
// Wave syntax for s64: plain decimal, optional leading "-"
|
|
64
|
+
return `${this.value}` as WaveExpr;
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
toJs(): bigint {
|
|
68
|
+
return this.value;
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
export const S64Codec = _S64Codec as unknown as CodecConstructor<
|
|
73
|
+
bigint,
|
|
74
|
+
_S64Codec,
|
|
75
|
+
bigint
|
|
76
|
+
>;
|
|
@@ -1,7 +1,10 @@
|
|
|
1
1
|
import type { WitParameter, WitType } from "../../../wit/wit.js";
|
|
2
2
|
import { InvalidWitEncodingTypeError } from "../../errors/wit.js";
|
|
3
3
|
import { DecimalCodec } from "./codecs/decimal.js";
|
|
4
|
+
import { IntegerCodec } from "./codecs/integer.js";
|
|
4
5
|
import { U64Codec } from "./codecs/u64.js";
|
|
6
|
+
import { S64Codec } from "./codecs/s64.js";
|
|
7
|
+
import { BoolCodec } from "./codecs/bool.js";
|
|
5
8
|
import { StringCodec } from "./codecs/string.js";
|
|
6
9
|
import { OptionCodecFactory } from "./codecs/option.js";
|
|
7
10
|
import { ListCodecFactory } from "./codecs/list.js";
|
|
@@ -12,29 +15,7 @@ import {
|
|
|
12
15
|
type WaveExpr,
|
|
13
16
|
} from "./codecs/types.js";
|
|
14
17
|
|
|
15
|
-
const u64Decoder = makeDecoder(U64Codec);
|
|
16
|
-
|
|
17
|
-
const stringDecoder = makeDecoder(StringCodec);
|
|
18
|
-
const decimalDecoder = makeDecoder(DecimalCodec);
|
|
19
|
-
const optionOfDecimalDecoder = makeDecoder(
|
|
20
|
-
OptionCodecFactory.create(DecimalCodec),
|
|
21
|
-
);
|
|
22
|
-
|
|
23
|
-
const optionOfTupleDecoder = (param: WitParameter) =>
|
|
24
|
-
makeDecoder(OptionCodecFactory.create(makeTupleCodecConstructor(param)));
|
|
25
|
-
|
|
26
|
-
const listOfDecimalDecoder = makeDecoder(ListCodecFactory.create(DecimalCodec));
|
|
27
|
-
|
|
28
|
-
const listOfTupleDecoder = (param: WitParameter) =>
|
|
29
|
-
makeDecoder(ListCodecFactory.create(makeTupleCodecConstructor(param)));
|
|
30
|
-
|
|
31
|
-
const tupleDecoder = (param: WitParameter) =>
|
|
32
|
-
makeDecoder(makeTupleCodecConstructor(param));
|
|
33
|
-
|
|
34
|
-
//
|
|
35
|
-
|
|
36
18
|
export function decodeWitParameter(value: string, param: WitParameter) {
|
|
37
|
-
// TODO: type cast
|
|
38
19
|
const decoder = decoderForParam(param);
|
|
39
20
|
|
|
40
21
|
return {
|
|
@@ -49,7 +30,6 @@ export function decodeTuple(
|
|
|
49
30
|
if (!param.components) {
|
|
50
31
|
throw new Error("Tuple parameter missing components");
|
|
51
32
|
}
|
|
52
|
-
console.log("value");
|
|
53
33
|
|
|
54
34
|
return param.components.reduce<Record<string, string>>(
|
|
55
35
|
(acc, component: WitParameter) => {
|
|
@@ -68,146 +48,6 @@ export function decodeTuple(
|
|
|
68
48
|
);
|
|
69
49
|
}
|
|
70
50
|
|
|
71
|
-
function decoderForParam(p: WitParameter) {
|
|
72
|
-
const t = p.type as WitType;
|
|
73
|
-
console.log({ t });
|
|
74
|
-
|
|
75
|
-
switch (t) {
|
|
76
|
-
case "tuple":
|
|
77
|
-
return tupleDecoder(p);
|
|
78
|
-
case "string":
|
|
79
|
-
return stringDecoder;
|
|
80
|
-
case "decimal":
|
|
81
|
-
return decimalDecoder;
|
|
82
|
-
case "option<decimal>":
|
|
83
|
-
return optionOfDecimalDecoder;
|
|
84
|
-
case "option<tuple>":
|
|
85
|
-
return optionOfTupleDecoder(p);
|
|
86
|
-
case "list<decimal>":
|
|
87
|
-
return listOfDecimalDecoder;
|
|
88
|
-
case "list<tuple>":
|
|
89
|
-
return listOfTupleDecoder(p);
|
|
90
|
-
case "u64":
|
|
91
|
-
return u64Decoder;
|
|
92
|
-
|
|
93
|
-
case "error":
|
|
94
|
-
case "contract-address":
|
|
95
|
-
case "bool":
|
|
96
|
-
case "s8":
|
|
97
|
-
case "s16":
|
|
98
|
-
case "s32":
|
|
99
|
-
case "s64":
|
|
100
|
-
case "u8":
|
|
101
|
-
case "u16":
|
|
102
|
-
case "u32":
|
|
103
|
-
case "integer":
|
|
104
|
-
case "option<string>":
|
|
105
|
-
case "option<bool>":
|
|
106
|
-
case "option<s8>":
|
|
107
|
-
case "option<s16>":
|
|
108
|
-
case "option<s32>":
|
|
109
|
-
case "option<s64>":
|
|
110
|
-
case "option<u8>":
|
|
111
|
-
case "option<u16>":
|
|
112
|
-
case "option<u32>":
|
|
113
|
-
case "option<u64>":
|
|
114
|
-
case "option<integer>":
|
|
115
|
-
case "option<_>":
|
|
116
|
-
|
|
117
|
-
case "list<string>":
|
|
118
|
-
case "list<bool>":
|
|
119
|
-
case "list<s8>":
|
|
120
|
-
case "list<s16>":
|
|
121
|
-
case "list<s32>":
|
|
122
|
-
case "list<s64>":
|
|
123
|
-
case "list<u8>":
|
|
124
|
-
case "list<u16>":
|
|
125
|
-
case "list<u32>":
|
|
126
|
-
case "list<u64>":
|
|
127
|
-
case "list<integer>":
|
|
128
|
-
case "list<_>":
|
|
129
|
-
case "result<_, error>":
|
|
130
|
-
case "result<string, error>":
|
|
131
|
-
case "result<bool, error>":
|
|
132
|
-
case "result<s8, error>":
|
|
133
|
-
case "result<s16, error>":
|
|
134
|
-
case "result<s32, error>":
|
|
135
|
-
case "result<s64, error>":
|
|
136
|
-
case "result<u8, error>":
|
|
137
|
-
case "result<u16, error>":
|
|
138
|
-
case "result<u32, error>":
|
|
139
|
-
case "result<u64, error>":
|
|
140
|
-
case "result<decimal, error>":
|
|
141
|
-
case "result<integer, error>":
|
|
142
|
-
case "result<tuple, error>":
|
|
143
|
-
case "result<option<string>, error>":
|
|
144
|
-
case "result<option<bool>, error>":
|
|
145
|
-
case "result<option<s8>, error>":
|
|
146
|
-
case "result<option<s16>, error>":
|
|
147
|
-
case "result<option<s32>, error>":
|
|
148
|
-
case "result<option<s64>, error>":
|
|
149
|
-
case "result<option<u8>, error>":
|
|
150
|
-
case "result<option<u16>, error>":
|
|
151
|
-
case "result<option<u32>, error>":
|
|
152
|
-
case "result<option<u64>, error>":
|
|
153
|
-
case "result<option<decimal>, error>":
|
|
154
|
-
case "result<option<integer>, error>":
|
|
155
|
-
case "result<option<_>, error>":
|
|
156
|
-
case "result<option<tuple>, error>":
|
|
157
|
-
case "option<list<string>>":
|
|
158
|
-
case "option<list<bool>>":
|
|
159
|
-
case "option<list<s8>>":
|
|
160
|
-
case "option<list<s16>>":
|
|
161
|
-
case "option<list<s32>>":
|
|
162
|
-
case "option<list<s64>>":
|
|
163
|
-
case "option<list<u8>>":
|
|
164
|
-
case "option<list<u16>>":
|
|
165
|
-
case "option<list<u32>>":
|
|
166
|
-
case "option<list<u64>>":
|
|
167
|
-
case "option<list<decimal>>":
|
|
168
|
-
case "option<list<integer>>":
|
|
169
|
-
case "option<list<_>>":
|
|
170
|
-
case "option<list<tuple>>":
|
|
171
|
-
case "result<option<list<string>>, error>":
|
|
172
|
-
case "result<option<list<bool>>, error>":
|
|
173
|
-
case "result<option<list<s8>>, error>":
|
|
174
|
-
case "result<option<list<s16>>, error>":
|
|
175
|
-
case "result<option<list<s32>>, error>":
|
|
176
|
-
case "result<option<list<s64>>, error>":
|
|
177
|
-
case "result<option<list<u8>>, error>":
|
|
178
|
-
case "result<option<list<u16>>, error>":
|
|
179
|
-
case "result<option<list<u32>>, error>":
|
|
180
|
-
case "result<option<list<u64>>, error>":
|
|
181
|
-
case "result<option<list<decimal>>, error>":
|
|
182
|
-
case "result<option<list<integer>>, error>":
|
|
183
|
-
case "result<option<list<_>>, error>":
|
|
184
|
-
case "result<option<list<tuple>>, error>":
|
|
185
|
-
case "result<list<string>, error>":
|
|
186
|
-
case "result<list<bool>, error>":
|
|
187
|
-
case "result<list<s8>, error>":
|
|
188
|
-
case "result<list<s16>, error>":
|
|
189
|
-
case "result<list<s32>, error>":
|
|
190
|
-
case "result<list<s64>, error>":
|
|
191
|
-
case "result<list<u8>, error>":
|
|
192
|
-
case "result<list<u16>, error>":
|
|
193
|
-
case "result<list<u32>, error>":
|
|
194
|
-
case "result<list<u64>, error>":
|
|
195
|
-
case "result<list<decimal>, error>":
|
|
196
|
-
case "result<list<integer>, error>":
|
|
197
|
-
case "result<list<_>, error>":
|
|
198
|
-
case "result<list<tuple>, error>":
|
|
199
|
-
throw new Error("not implemented");
|
|
200
|
-
|
|
201
|
-
default:
|
|
202
|
-
const exhaustive: never = t;
|
|
203
|
-
void exhaustive;
|
|
204
|
-
throw new InvalidWitEncodingTypeError(t, {
|
|
205
|
-
docsPath: "tk",
|
|
206
|
-
});
|
|
207
|
-
//
|
|
208
|
-
}
|
|
209
|
-
}
|
|
210
|
-
|
|
211
51
|
export class TupleCodecInstance
|
|
212
52
|
implements CodecInstance<Record<string, string>>
|
|
213
53
|
{
|
|
@@ -255,7 +95,6 @@ export function makeTupleCodecConstructor(
|
|
|
255
95
|
// Called to parse the raw encoded string into a JavaScript object (Wave Data)
|
|
256
96
|
static parseWave(expr: string): Record<string, string> {
|
|
257
97
|
// For tuples, the raw encoded string is the JSON representation.
|
|
258
|
-
console.log("parsing tuple wave expr:", expr);
|
|
259
98
|
|
|
260
99
|
return parseWitRecord(expr) as Record<string, string>;
|
|
261
100
|
}
|
|
@@ -334,3 +173,167 @@ export function parseWitRecord(raw: string) {
|
|
|
334
173
|
|
|
335
174
|
return result;
|
|
336
175
|
}
|
|
176
|
+
|
|
177
|
+
function decoderForParam(p: WitParameter) {
|
|
178
|
+
const t = p.type as WitType;
|
|
179
|
+
|
|
180
|
+
switch (t) {
|
|
181
|
+
// --- tuples -------------------------------------------------
|
|
182
|
+
case "tuple":
|
|
183
|
+
return makeDecoder(makeTupleCodecConstructor(p));
|
|
184
|
+
case "option<tuple>":
|
|
185
|
+
return makeDecoder(
|
|
186
|
+
OptionCodecFactory.create(makeTupleCodecConstructor(p)),
|
|
187
|
+
);
|
|
188
|
+
case "list<tuple>":
|
|
189
|
+
return makeDecoder(ListCodecFactory.create(makeTupleCodecConstructor(p)));
|
|
190
|
+
|
|
191
|
+
// --- string -------------------------------------------------
|
|
192
|
+
case "string":
|
|
193
|
+
return makeDecoder(StringCodec);
|
|
194
|
+
case "option<string>":
|
|
195
|
+
return makeDecoder(OptionCodecFactory.create(StringCodec));
|
|
196
|
+
case "list<string>":
|
|
197
|
+
return makeDecoder(ListCodecFactory.create(StringCodec));
|
|
198
|
+
|
|
199
|
+
// --- decimal ------------------------------------------------
|
|
200
|
+
case "decimal":
|
|
201
|
+
return makeDecoder(DecimalCodec);
|
|
202
|
+
case "option<decimal>":
|
|
203
|
+
return makeDecoder(OptionCodecFactory.create(DecimalCodec));
|
|
204
|
+
case "list<decimal>":
|
|
205
|
+
return makeDecoder(ListCodecFactory.create(DecimalCodec));
|
|
206
|
+
|
|
207
|
+
// --- bool ---------------------------------------------------
|
|
208
|
+
case "bool":
|
|
209
|
+
return makeDecoder(BoolCodec);
|
|
210
|
+
case "option<bool>":
|
|
211
|
+
return makeDecoder(OptionCodecFactory.create(BoolCodec));
|
|
212
|
+
case "list<bool>":
|
|
213
|
+
return makeDecoder(ListCodecFactory.create(BoolCodec));
|
|
214
|
+
|
|
215
|
+
// --- u64 ----------------------------------------------------
|
|
216
|
+
case "u64":
|
|
217
|
+
return makeDecoder(U64Codec);
|
|
218
|
+
case "option<u64>":
|
|
219
|
+
return makeDecoder(OptionCodecFactory.create(U64Codec));
|
|
220
|
+
case "list<u64>":
|
|
221
|
+
return makeDecoder(ListCodecFactory.create(U64Codec));
|
|
222
|
+
|
|
223
|
+
// --- s64 ----------------------------------------------------
|
|
224
|
+
case "s64":
|
|
225
|
+
return makeDecoder(S64Codec);
|
|
226
|
+
case "option<s64>":
|
|
227
|
+
return makeDecoder(OptionCodecFactory.create(S64Codec));
|
|
228
|
+
case "list<s64>":
|
|
229
|
+
return makeDecoder(ListCodecFactory.create(S64Codec));
|
|
230
|
+
|
|
231
|
+
// --- integer ------------------------------------------------
|
|
232
|
+
case "integer":
|
|
233
|
+
return makeDecoder(IntegerCodec);
|
|
234
|
+
case "option<integer>":
|
|
235
|
+
return makeDecoder(OptionCodecFactory.create(IntegerCodec));
|
|
236
|
+
case "list<integer>":
|
|
237
|
+
return makeDecoder(ListCodecFactory.create(IntegerCodec));
|
|
238
|
+
|
|
239
|
+
// --- not supported (yet) -----------------------------------
|
|
240
|
+
case "error":
|
|
241
|
+
case "contract-address":
|
|
242
|
+
case "s8":
|
|
243
|
+
case "s16":
|
|
244
|
+
case "s32":
|
|
245
|
+
case "u8":
|
|
246
|
+
case "u16":
|
|
247
|
+
case "u32":
|
|
248
|
+
case "option<s8>":
|
|
249
|
+
case "option<s16>":
|
|
250
|
+
case "option<s32>":
|
|
251
|
+
case "option<u8>":
|
|
252
|
+
case "option<u16>":
|
|
253
|
+
case "option<u32>":
|
|
254
|
+
case "option<_>":
|
|
255
|
+
case "list<s8>":
|
|
256
|
+
case "list<s16>":
|
|
257
|
+
case "list<s32>":
|
|
258
|
+
case "list<u8>":
|
|
259
|
+
case "list<u16>":
|
|
260
|
+
case "list<u32>":
|
|
261
|
+
case "list<_>":
|
|
262
|
+
case "result<_, error>":
|
|
263
|
+
case "result<string, error>":
|
|
264
|
+
case "result<bool, error>":
|
|
265
|
+
case "result<s8, error>":
|
|
266
|
+
case "result<s16, error>":
|
|
267
|
+
case "result<s32, error>":
|
|
268
|
+
case "result<s64, error>":
|
|
269
|
+
case "result<u8, error>":
|
|
270
|
+
case "result<u16, error>":
|
|
271
|
+
case "result<u32, error>":
|
|
272
|
+
case "result<u64, error>":
|
|
273
|
+
case "result<decimal, error>":
|
|
274
|
+
case "result<integer, error>":
|
|
275
|
+
case "result<tuple, error>":
|
|
276
|
+
case "result<option<string>, error>":
|
|
277
|
+
case "result<option<bool>, error>":
|
|
278
|
+
case "result<option<s8>, error>":
|
|
279
|
+
case "result<option<s16>, error>":
|
|
280
|
+
case "result<option<s32>, error>":
|
|
281
|
+
case "result<option<s64>, error>":
|
|
282
|
+
case "result<option<u8>, error>":
|
|
283
|
+
case "result<option<u16>, error>":
|
|
284
|
+
case "result<option<u32>, error>":
|
|
285
|
+
case "result<option<u64>, error>":
|
|
286
|
+
case "result<option<decimal>, error>":
|
|
287
|
+
case "result<option<integer>, error>":
|
|
288
|
+
case "result<option<_>, error>":
|
|
289
|
+
case "result<option<tuple>, error>":
|
|
290
|
+
case "option<list<string>>":
|
|
291
|
+
case "option<list<bool>>":
|
|
292
|
+
case "option<list<s8>>":
|
|
293
|
+
case "option<list<s16>>":
|
|
294
|
+
case "option<list<s32>>":
|
|
295
|
+
case "option<list<s64>>":
|
|
296
|
+
case "option<list<u8>>":
|
|
297
|
+
case "option<list<u16>>":
|
|
298
|
+
case "option<list<u32>>":
|
|
299
|
+
case "option<list<u64>>":
|
|
300
|
+
case "option<list<decimal>>":
|
|
301
|
+
case "option<list<integer>>":
|
|
302
|
+
case "option<list<_>>":
|
|
303
|
+
case "option<list<tuple>>":
|
|
304
|
+
case "result<option<list<string>>, error>":
|
|
305
|
+
case "result<option<list<bool>>, error>":
|
|
306
|
+
case "result<option<list<s8>>, error>":
|
|
307
|
+
case "result<option<list<s16>>, error>":
|
|
308
|
+
case "result<option<list<s32>>, error>":
|
|
309
|
+
case "result<option<list<s64>>, error>":
|
|
310
|
+
case "result<option<list<u8>>, error>":
|
|
311
|
+
case "result<option<list<u16>>, error>":
|
|
312
|
+
case "result<option<list<u32>>, error>":
|
|
313
|
+
case "result<option<list<u64>>, error>":
|
|
314
|
+
case "result<option<list<decimal>>, error>":
|
|
315
|
+
case "result<option<list<integer>>, error>":
|
|
316
|
+
case "result<option<list<_>>, error>":
|
|
317
|
+
case "result<option<list<tuple>>, error>":
|
|
318
|
+
case "result<list<string>, error>":
|
|
319
|
+
case "result<list<bool>, error>":
|
|
320
|
+
case "result<list<s8>, error>":
|
|
321
|
+
case "result<list<s16>, error>":
|
|
322
|
+
case "result<list<s32>, error>":
|
|
323
|
+
case "result<list<s64>, error>":
|
|
324
|
+
case "result<list<u8>, error>":
|
|
325
|
+
case "result<list<u16>, error>":
|
|
326
|
+
case "result<list<u32>, error>":
|
|
327
|
+
case "result<list<u64>, error>":
|
|
328
|
+
case "result<list<decimal>, error>":
|
|
329
|
+
case "result<list<integer>, error>":
|
|
330
|
+
case "result<list<_>, error>":
|
|
331
|
+
case "result<list<tuple>, error>":
|
|
332
|
+
throw new InvalidWitEncodingTypeError(t, { docsPath: "tk" });
|
|
333
|
+
|
|
334
|
+
default: {
|
|
335
|
+
t satisfies never;
|
|
336
|
+
throw new InvalidWitEncodingTypeError(t, { docsPath: "tk" });
|
|
337
|
+
}
|
|
338
|
+
}
|
|
339
|
+
}
|