asgard-tide 0.12.42 → 0.12.45
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/LICENSE +334 -0
- package/README.md +103 -2
- package/dist/cjs/contracts/BaseContract.d.ts +47 -0
- package/dist/cjs/contracts/BaseContract.d.ts.map +1 -0
- package/dist/{contracts → cjs/contracts}/BaseContract.js +39 -11
- package/dist/cjs/contracts/BaseContract.js.map +1 -0
- package/dist/{contracts → cjs/contracts}/GenericRealmAccessThresholdRoleContract.d.ts +3 -2
- package/dist/cjs/contracts/GenericRealmAccessThresholdRoleContract.d.ts.map +1 -0
- package/dist/{contracts → cjs/contracts}/GenericRealmAccessThresholdRoleContract.js +6 -2
- package/dist/cjs/contracts/GenericRealmAccessThresholdRoleContract.js.map +1 -0
- package/dist/{contracts → cjs/contracts}/GenericResourceAccessThresholdRoleContract.d.ts +3 -2
- package/dist/cjs/contracts/GenericResourceAccessThresholdRoleContract.d.ts.map +1 -0
- package/dist/{contracts → cjs/contracts}/GenericResourceAccessThresholdRoleContract.js +6 -2
- package/dist/cjs/contracts/GenericResourceAccessThresholdRoleContract.js.map +1 -0
- package/dist/cjs/index.d.ts +15 -0
- package/dist/cjs/index.d.ts.map +1 -0
- package/dist/{index.js → cjs/index.js} +7 -3
- package/dist/cjs/index.js.map +1 -0
- package/dist/cjs/models/CustomTideRequest.d.ts +19 -0
- package/dist/cjs/models/CustomTideRequest.d.ts.map +1 -0
- package/dist/cjs/models/CustomTideRequest.js +40 -0
- package/dist/cjs/models/CustomTideRequest.js.map +1 -0
- package/dist/{models → cjs/models}/Policy.d.ts +17 -2
- package/dist/cjs/models/Policy.d.ts.map +1 -0
- package/dist/{models → cjs/models}/Policy.js +126 -29
- package/dist/cjs/models/Policy.js.map +1 -0
- package/dist/cjs/models/TideRequest.d.ts.map +1 -0
- package/dist/{models → cjs/models}/TideRequest.js +1 -1
- package/dist/cjs/models/TideRequest.js.map +1 -0
- package/dist/cjs/utils/Serialization.d.ts.map +1 -0
- package/dist/cjs/utils/Serialization.js.map +1 -0
- package/dist/cjs/utils/TideMemory.d.ts.map +1 -0
- package/dist/cjs/utils/TideMemory.js.map +1 -0
- package/dist/esm/contracts/BaseContract.d.ts +47 -0
- package/dist/esm/contracts/BaseContract.d.ts.map +1 -0
- package/dist/esm/contracts/BaseContract.js +154 -0
- package/dist/esm/contracts/BaseContract.js.map +1 -0
- package/dist/esm/contracts/GenericRealmAccessThresholdRoleContract.d.ts +8 -0
- package/dist/esm/contracts/GenericRealmAccessThresholdRoleContract.d.ts.map +1 -0
- package/dist/esm/contracts/GenericRealmAccessThresholdRoleContract.js +22 -0
- package/dist/esm/contracts/GenericRealmAccessThresholdRoleContract.js.map +1 -0
- package/dist/esm/contracts/GenericResourceAccessThresholdRoleContract.d.ts +8 -0
- package/dist/esm/contracts/GenericResourceAccessThresholdRoleContract.d.ts.map +1 -0
- package/dist/esm/contracts/GenericResourceAccessThresholdRoleContract.js +22 -0
- package/dist/esm/contracts/GenericResourceAccessThresholdRoleContract.js.map +1 -0
- package/dist/esm/index.d.ts +15 -0
- package/dist/esm/index.d.ts.map +1 -0
- package/dist/{index.d.ts → esm/index.js} +5 -5
- package/dist/esm/index.js.map +1 -0
- package/dist/esm/models/CustomTideRequest.d.ts +19 -0
- package/dist/esm/models/CustomTideRequest.d.ts.map +1 -0
- package/dist/esm/models/CustomTideRequest.js +31 -0
- package/dist/esm/models/CustomTideRequest.js.map +1 -0
- package/dist/esm/models/Policy.d.ts +41 -0
- package/dist/esm/models/Policy.d.ts.map +1 -0
- package/dist/esm/models/Policy.js +263 -0
- package/dist/esm/models/Policy.js.map +1 -0
- package/dist/esm/models/TideRequest.d.ts +48 -0
- package/dist/esm/models/TideRequest.d.ts.map +1 -0
- package/dist/esm/models/TideRequest.js +252 -0
- package/dist/esm/models/TideRequest.js.map +1 -0
- package/dist/esm/utils/Serialization.d.ts +7 -0
- package/dist/esm/utils/Serialization.d.ts.map +1 -0
- package/dist/esm/utils/Serialization.js +98 -0
- package/dist/esm/utils/Serialization.js.map +1 -0
- package/dist/esm/utils/TideMemory.d.ts +10 -0
- package/dist/esm/utils/TideMemory.d.ts.map +1 -0
- package/dist/esm/utils/TideMemory.js +106 -0
- package/dist/esm/utils/TideMemory.js.map +1 -0
- package/package.json +14 -5
- package/dist/contracts/BaseContract.d.ts +0 -30
- package/dist/contracts/BaseContract.d.ts.map +0 -1
- package/dist/contracts/BaseContract.js.map +0 -1
- package/dist/contracts/GenericRealmAccessThresholdRoleContract.d.ts.map +0 -1
- package/dist/contracts/GenericRealmAccessThresholdRoleContract.js.map +0 -1
- package/dist/contracts/GenericResourceAccessThresholdRoleContract.d.ts.map +0 -1
- package/dist/contracts/GenericResourceAccessThresholdRoleContract.js.map +0 -1
- package/dist/index.d.ts.map +0 -1
- package/dist/index.js.map +0 -1
- package/dist/models/CustomTideRequest.d.ts +0 -16
- package/dist/models/CustomTideRequest.d.ts.map +0 -1
- package/dist/models/CustomTideRequest.js +0 -55
- package/dist/models/CustomTideRequest.js.map +0 -1
- package/dist/models/Policy.d.ts.map +0 -1
- package/dist/models/Policy.js.map +0 -1
- package/dist/models/TideRequest.d.ts.map +0 -1
- package/dist/models/TideRequest.js.map +0 -1
- package/dist/utils/Serialization.d.ts.map +0 -1
- package/dist/utils/Serialization.js.map +0 -1
- package/dist/utils/TideMemory.d.ts.map +0 -1
- package/dist/utils/TideMemory.js.map +0 -1
- /package/dist/{models → cjs/models}/TideRequest.d.ts +0 -0
- /package/dist/{utils → cjs/utils}/Serialization.d.ts +0 -0
- /package/dist/{utils → cjs/utils}/Serialization.js +0 -0
- /package/dist/{utils → cjs/utils}/TideMemory.d.ts +0 -0
- /package/dist/{utils → cjs/utils}/TideMemory.js +0 -0
|
@@ -0,0 +1,263 @@
|
|
|
1
|
+
import { TideMemory } from "../utils/TideMemory";
|
|
2
|
+
import { BigIntToByteArray, BigIntFromByteArray, StringFromUint8Array, StringToUint8Array } from "../utils/Serialization";
|
|
3
|
+
export var ApprovalType;
|
|
4
|
+
(function (ApprovalType) {
|
|
5
|
+
ApprovalType[ApprovalType["EXPLICIT"] = 0] = "EXPLICIT";
|
|
6
|
+
ApprovalType[ApprovalType["IMPLICIT"] = 1] = "IMPLICIT";
|
|
7
|
+
})(ApprovalType || (ApprovalType = {}));
|
|
8
|
+
export var ExecutionType;
|
|
9
|
+
(function (ExecutionType) {
|
|
10
|
+
ExecutionType[ExecutionType["PRIVATE"] = 0] = "PRIVATE";
|
|
11
|
+
ExecutionType[ExecutionType["PUBLIC"] = 1] = "PUBLIC";
|
|
12
|
+
})(ExecutionType || (ExecutionType = {}));
|
|
13
|
+
export class Policy {
|
|
14
|
+
constructor(data) {
|
|
15
|
+
if (typeof data["version"] !== "string")
|
|
16
|
+
throw 'Version is not a string';
|
|
17
|
+
this.version = data["version"];
|
|
18
|
+
if (typeof data["contractId"] !== "string")
|
|
19
|
+
throw 'ContractId is not a string';
|
|
20
|
+
this.contractId = data["contractId"];
|
|
21
|
+
if (typeof data["modelId"] !== "string")
|
|
22
|
+
throw 'ModelId is not a string';
|
|
23
|
+
this.modelId = data["modelId"];
|
|
24
|
+
if (typeof data["keyId"] !== "string")
|
|
25
|
+
throw 'KeyId is not a string';
|
|
26
|
+
this.keyId = data["keyId"];
|
|
27
|
+
this.approvalType = data.approvalType;
|
|
28
|
+
this.executionType = data.executionType;
|
|
29
|
+
if (!data["params"])
|
|
30
|
+
throw 'Params is null';
|
|
31
|
+
this.params = data["params"] instanceof PolicyParameters ? data["params"] : new PolicyParameters(data["params"]);
|
|
32
|
+
this.dataToVerify = TideMemory.CreateFromArray([
|
|
33
|
+
StringToUint8Array(this.version),
|
|
34
|
+
StringToUint8Array(this.contractId),
|
|
35
|
+
StringToUint8Array(this.modelId),
|
|
36
|
+
StringToUint8Array(this.keyId),
|
|
37
|
+
StringToUint8Array(ApprovalType[this.approvalType]),
|
|
38
|
+
StringToUint8Array(ExecutionType[this.executionType]),
|
|
39
|
+
this.params.toBytes()
|
|
40
|
+
]);
|
|
41
|
+
}
|
|
42
|
+
static from(data) {
|
|
43
|
+
const d = new TideMemory(data.length);
|
|
44
|
+
d.set(data);
|
|
45
|
+
const dataToVerify = d.GetValue(0);
|
|
46
|
+
const version = StringFromUint8Array(dataToVerify.GetValue(0));
|
|
47
|
+
if (version != Policy.latestVersion) {
|
|
48
|
+
// old version
|
|
49
|
+
switch (version) {
|
|
50
|
+
case PolicyV1.thisVersion:
|
|
51
|
+
return PolicyV1.from(d);
|
|
52
|
+
default:
|
|
53
|
+
throw Error("Unknown policy version: " + version);
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
const contractId = StringFromUint8Array(dataToVerify.GetValue(1));
|
|
57
|
+
const modelId = StringFromUint8Array(dataToVerify.GetValue(2));
|
|
58
|
+
const keyId = StringFromUint8Array(dataToVerify.GetValue(3));
|
|
59
|
+
const approvalType = ApprovalType[StringFromUint8Array(dataToVerify.GetValue(4))];
|
|
60
|
+
const executionType = ExecutionType[StringFromUint8Array(dataToVerify.GetValue(5))];
|
|
61
|
+
const params = new PolicyParameters(dataToVerify.GetValue(6));
|
|
62
|
+
const p = new Policy({
|
|
63
|
+
version,
|
|
64
|
+
contractId,
|
|
65
|
+
modelId,
|
|
66
|
+
keyId,
|
|
67
|
+
approvalType,
|
|
68
|
+
executionType,
|
|
69
|
+
params
|
|
70
|
+
});
|
|
71
|
+
const sigRes = { result: undefined };
|
|
72
|
+
if (d.TryGetValue(1, sigRes)) {
|
|
73
|
+
p.signature = sigRes.result;
|
|
74
|
+
}
|
|
75
|
+
return p;
|
|
76
|
+
}
|
|
77
|
+
toBytes() {
|
|
78
|
+
let d = [
|
|
79
|
+
TideMemory.CreateFromArray([
|
|
80
|
+
StringToUint8Array(this.version),
|
|
81
|
+
StringToUint8Array(this.contractId),
|
|
82
|
+
StringToUint8Array(this.modelId),
|
|
83
|
+
StringToUint8Array(this.keyId),
|
|
84
|
+
StringToUint8Array(ApprovalType[this.approvalType]),
|
|
85
|
+
StringToUint8Array(ExecutionType[this.executionType]),
|
|
86
|
+
this.params.toBytes()
|
|
87
|
+
])
|
|
88
|
+
];
|
|
89
|
+
if (this.signature)
|
|
90
|
+
d.push(this.signature);
|
|
91
|
+
return TideMemory.CreateFromArray(d);
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
Policy.latestVersion = "2";
|
|
95
|
+
export class PolicyParameters {
|
|
96
|
+
constructor(data) {
|
|
97
|
+
if (data instanceof Uint8Array) {
|
|
98
|
+
this.entries = PolicyParameters.fromBytes(data);
|
|
99
|
+
}
|
|
100
|
+
else {
|
|
101
|
+
this.entries = new Map(data);
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
static fromBytes(data) {
|
|
105
|
+
let params = new Map();
|
|
106
|
+
let i = 0;
|
|
107
|
+
const value = { result: undefined };
|
|
108
|
+
// Create TideMemory instance to access TryGetValue
|
|
109
|
+
const tideData = new TideMemory(data.length);
|
|
110
|
+
tideData.set(data);
|
|
111
|
+
// Try to get values at sequential indices
|
|
112
|
+
while (tideData.TryGetValue(i, value)) {
|
|
113
|
+
const nameBytes = value.result.GetValue(0);
|
|
114
|
+
const name = StringFromUint8Array(nameBytes);
|
|
115
|
+
const typeBytes = value.result.GetValue(1);
|
|
116
|
+
const type = StringFromUint8Array(typeBytes);
|
|
117
|
+
const dataBytes = value.result.GetValue(2);
|
|
118
|
+
let datum;
|
|
119
|
+
switch (type) {
|
|
120
|
+
case "str":
|
|
121
|
+
datum = StringFromUint8Array(dataBytes);
|
|
122
|
+
break;
|
|
123
|
+
case "num":
|
|
124
|
+
const numView = new DataView(dataBytes.buffer, dataBytes.byteOffset, dataBytes.byteLength);
|
|
125
|
+
datum = numView.getInt32(0, true); // little-endian
|
|
126
|
+
break;
|
|
127
|
+
case "bnum":
|
|
128
|
+
// Convert bytes to BigInt (little-endian)
|
|
129
|
+
datum = BigIntFromByteArray(dataBytes);
|
|
130
|
+
break;
|
|
131
|
+
case "bln":
|
|
132
|
+
datum = dataBytes[0] === 1;
|
|
133
|
+
break;
|
|
134
|
+
case "byt":
|
|
135
|
+
datum = new Uint8Array(dataBytes);
|
|
136
|
+
break;
|
|
137
|
+
default:
|
|
138
|
+
throw new Error(`Could not find type of ${type}`);
|
|
139
|
+
}
|
|
140
|
+
params.set(name, datum);
|
|
141
|
+
i++;
|
|
142
|
+
}
|
|
143
|
+
return params;
|
|
144
|
+
}
|
|
145
|
+
tryGetParameter(key) {
|
|
146
|
+
try {
|
|
147
|
+
return [true, this.getParameter(key)];
|
|
148
|
+
}
|
|
149
|
+
catch {
|
|
150
|
+
return [false, null];
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
getParameter(key) {
|
|
154
|
+
if (!this.entries.has(key)) {
|
|
155
|
+
throw new Error(`Parameter '${key}' not found`);
|
|
156
|
+
}
|
|
157
|
+
const value = this.entries.get(key);
|
|
158
|
+
const actualType = value instanceof Uint8Array ? 'Uint8Array' : typeof value;
|
|
159
|
+
// Type checking logic
|
|
160
|
+
let expectedType;
|
|
161
|
+
if (value instanceof Uint8Array) {
|
|
162
|
+
expectedType = 'Uint8Array';
|
|
163
|
+
}
|
|
164
|
+
else {
|
|
165
|
+
expectedType = typeof value;
|
|
166
|
+
}
|
|
167
|
+
// Validate the type matches what was requested
|
|
168
|
+
// We can't directly check T at runtime, so we infer from the value type
|
|
169
|
+
const isCorrectType = (typeof value === 'string' && value.constructor === String) ||
|
|
170
|
+
(typeof value === 'number' && value.constructor === Number) ||
|
|
171
|
+
(typeof value === 'bigint' && value.constructor === BigInt) ||
|
|
172
|
+
(typeof value === 'boolean' && value.constructor === Boolean) ||
|
|
173
|
+
(value instanceof Uint8Array);
|
|
174
|
+
if (!isCorrectType) {
|
|
175
|
+
throw new Error(`Parameter '${key}' exists but has unexpected type '${actualType}'`);
|
|
176
|
+
}
|
|
177
|
+
return value;
|
|
178
|
+
}
|
|
179
|
+
toBytes() {
|
|
180
|
+
let params = [];
|
|
181
|
+
for (const [key, value] of this.entries) {
|
|
182
|
+
const nameBytes = StringToUint8Array(key);
|
|
183
|
+
let dataBytes, typeStr;
|
|
184
|
+
if (typeof value === 'string') {
|
|
185
|
+
dataBytes = StringToUint8Array(value);
|
|
186
|
+
typeStr = "str";
|
|
187
|
+
}
|
|
188
|
+
else if (typeof value === 'number' && Number.isInteger(value)) {
|
|
189
|
+
const buffer = new ArrayBuffer(4);
|
|
190
|
+
const view = new DataView(buffer);
|
|
191
|
+
view.setInt32(0, value, true); // little-endian
|
|
192
|
+
dataBytes = new Uint8Array(buffer);
|
|
193
|
+
typeStr = "num";
|
|
194
|
+
}
|
|
195
|
+
else if (typeof value === 'bigint') {
|
|
196
|
+
dataBytes = BigIntToByteArray(value);
|
|
197
|
+
typeStr = "bnum";
|
|
198
|
+
}
|
|
199
|
+
else if (typeof value === 'boolean') {
|
|
200
|
+
dataBytes = new Uint8Array([value ? 1 : 0]);
|
|
201
|
+
typeStr = "bln";
|
|
202
|
+
}
|
|
203
|
+
else if (value instanceof Uint8Array) {
|
|
204
|
+
dataBytes = value;
|
|
205
|
+
typeStr = "byt";
|
|
206
|
+
}
|
|
207
|
+
else {
|
|
208
|
+
throw new Error(`Could not serialize key '${key}' of type '${typeof value}'`);
|
|
209
|
+
}
|
|
210
|
+
const typeBytes = StringToUint8Array(typeStr);
|
|
211
|
+
const paramMemory = TideMemory.CreateFromArray([nameBytes, typeBytes, dataBytes]);
|
|
212
|
+
params.push(paramMemory);
|
|
213
|
+
}
|
|
214
|
+
return TideMemory.CreateFromArray(params);
|
|
215
|
+
}
|
|
216
|
+
}
|
|
217
|
+
class PolicyV1 extends Policy {
|
|
218
|
+
constructor() {
|
|
219
|
+
super(...arguments);
|
|
220
|
+
this.version = PolicyV1.thisVersion;
|
|
221
|
+
}
|
|
222
|
+
static from(data) {
|
|
223
|
+
const dataToVerify = data.GetValue(0);
|
|
224
|
+
const v = StringFromUint8Array(dataToVerify.GetValue(0));
|
|
225
|
+
if (v != PolicyV1.thisVersion) {
|
|
226
|
+
throw Error("Dev error");
|
|
227
|
+
}
|
|
228
|
+
const contractId = StringFromUint8Array(dataToVerify.GetValue(1));
|
|
229
|
+
const modelId = StringFromUint8Array(dataToVerify.GetValue(2));
|
|
230
|
+
const keyId = StringFromUint8Array(dataToVerify.GetValue(3));
|
|
231
|
+
const params = new PolicyParameters(dataToVerify.GetValue(4));
|
|
232
|
+
const p = new PolicyV1({
|
|
233
|
+
version: v,
|
|
234
|
+
contractId,
|
|
235
|
+
modelId,
|
|
236
|
+
keyId,
|
|
237
|
+
approvalType: ApprovalType.EXPLICIT, // didn't exist on v1 so this is default
|
|
238
|
+
executionType: ExecutionType.PUBLIC, // didn't exist on v1 so this is default
|
|
239
|
+
params
|
|
240
|
+
});
|
|
241
|
+
const sigRes = { result: undefined };
|
|
242
|
+
if (data.TryGetValue(1, sigRes)) {
|
|
243
|
+
p.signature = sigRes.result;
|
|
244
|
+
}
|
|
245
|
+
return p;
|
|
246
|
+
}
|
|
247
|
+
toBytes() {
|
|
248
|
+
let d = [
|
|
249
|
+
TideMemory.CreateFromArray([
|
|
250
|
+
StringToUint8Array(PolicyV1.thisVersion),
|
|
251
|
+
StringToUint8Array(this.contractId),
|
|
252
|
+
StringToUint8Array(this.modelId),
|
|
253
|
+
StringToUint8Array(this.keyId),
|
|
254
|
+
this.params.toBytes()
|
|
255
|
+
])
|
|
256
|
+
];
|
|
257
|
+
if (this.signature)
|
|
258
|
+
d.push(this.signature);
|
|
259
|
+
return TideMemory.CreateFromArray(d);
|
|
260
|
+
}
|
|
261
|
+
}
|
|
262
|
+
PolicyV1.thisVersion = "1";
|
|
263
|
+
//# sourceMappingURL=Policy.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Policy.js","sourceRoot":"","sources":["../../../src/models/Policy.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import { TideMemory } from "../utils/TideMemory.js";
|
|
2
|
+
import { Policy } from "./Policy.js";
|
|
3
|
+
export default class BaseTideRequest {
|
|
4
|
+
static _name: string;
|
|
5
|
+
static _version: string;
|
|
6
|
+
name: string;
|
|
7
|
+
version: string;
|
|
8
|
+
authFlow: string;
|
|
9
|
+
draft: TideMemory;
|
|
10
|
+
dyanmicData: TideMemory;
|
|
11
|
+
authorization: TideMemory;
|
|
12
|
+
authorizerCert: TideMemory;
|
|
13
|
+
authorizer: TideMemory;
|
|
14
|
+
expiry: number;
|
|
15
|
+
policy: TideMemory;
|
|
16
|
+
constructor(name: string, version: string, authFlow: string, draft: Uint8Array, dyanmicData: Uint8Array);
|
|
17
|
+
id(): string;
|
|
18
|
+
/**
|
|
19
|
+
* This isn't copying. Just created another BaseTideRequest object that allows you to point each individual field to OTHER sections of memory.
|
|
20
|
+
* If you modify an existing 'replicated' field, you'll also modify the other object you originally replicated.
|
|
21
|
+
*/
|
|
22
|
+
replicate(): BaseTideRequest;
|
|
23
|
+
setNewDynamicData(d: Uint8Array): this;
|
|
24
|
+
setCustomExpiry(timeFromNowInSeconds: number): this;
|
|
25
|
+
addAuthorizer(authorizer: Uint8Array): void;
|
|
26
|
+
addAuthorizerCertificate(authorizerCertificate: Uint8Array): void;
|
|
27
|
+
addAuthorization(authorization: Uint8Array): this;
|
|
28
|
+
addPolicy(policy: Uint8Array): this;
|
|
29
|
+
hasPolicy(): boolean;
|
|
30
|
+
getRequestInitDetails(): Promise<{
|
|
31
|
+
creationTime: Uint8Array<ArrayBufferLike>;
|
|
32
|
+
expireTime: Uint8Array<ArrayBufferLike>;
|
|
33
|
+
modelId: NodeJS.NonSharedUint8Array;
|
|
34
|
+
draftHash: TideMemory;
|
|
35
|
+
}>;
|
|
36
|
+
addCreationSignature(creationTime: Uint8Array, sig: Uint8Array): this;
|
|
37
|
+
isInitialized(): boolean;
|
|
38
|
+
getUniqueId(): string;
|
|
39
|
+
getInitializedTime(): number;
|
|
40
|
+
getCurrentApprovalCount(): number;
|
|
41
|
+
getPolicy(): Policy;
|
|
42
|
+
removeApproval(approvalVuid: string): boolean;
|
|
43
|
+
encode(): TideMemory;
|
|
44
|
+
static decode<T extends BaseTideRequest>(this: new (name: string, version: string, authFlow: string, draft: Uint8Array, dynamicData: Uint8Array) => T, data: Uint8Array): T;
|
|
45
|
+
private static uint32ToUint8ArrayLE;
|
|
46
|
+
private static uint8ArrayToUint32LE;
|
|
47
|
+
}
|
|
48
|
+
//# sourceMappingURL=TideRequest.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TideRequest.d.ts","sourceRoot":"","sources":["../../../src/models/TideRequest.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACpD,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAErC,MAAM,CAAC,OAAO,OAAO,eAAe;IAChC,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC;IAExB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,UAAU,CAAC;IAClB,WAAW,EAAE,UAAU,CAAC;IACxB,aAAa,EAAE,UAAU,CAAC;IAC1B,cAAc,EAAE,UAAU,CAAC;IAC3B,UAAU,EAAE,UAAU,CAAC;IACvB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,UAAU,CAAC;gBAEP,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,UAAU;IAkBvG,EAAE;IAIF;;;OAGG;IACH,SAAS;IAUT,iBAAiB,CAAC,CAAC,EAAE,UAAU;IAM/B,eAAe,CAAC,oBAAoB,EAAE,MAAM;IAK5C,aAAa,CAAC,UAAU,EAAE,UAAU;IAKpC,wBAAwB,CAAC,qBAAqB,EAAE,UAAU;IAK1D,gBAAgB,CAAC,aAAa,EAAE,UAAU;IAM1C,SAAS,CAAC,MAAM,EAAE,UAAU;IAM5B,SAAS,IAAI,OAAO;IAId,qBAAqB;;;;;;IAU3B,oBAAoB,CAAC,YAAY,EAAE,UAAU,EAAE,GAAG,EAAE,UAAU;IAW9D,aAAa,IAAI,OAAO;IAUxB,WAAW,IAAI,MAAM;IAMrB,kBAAkB,IAAI,MAAM;IAM5B,uBAAuB,IAAI,MAAM;IAQjC,SAAS,IAAI,MAAM;IAInB,cAAc,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO;IA0C7C,MAAM;IA2BN,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,eAAe,EACnC,IAAI,EAAE,KAAK,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,UAAU,KAAK,CAAC,EAC5G,IAAI,EAAE,UAAU,GACjB,CAAC;IAyCJ,OAAO,CAAC,MAAM,CAAC,oBAAoB;IAcnC,OAAO,CAAC,MAAM,CAAC,oBAAoB;CAoBtC"}
|
|
@@ -0,0 +1,252 @@
|
|
|
1
|
+
import { Doken } from "../contracts/BaseContract.js";
|
|
2
|
+
import { TideMemory } from "../utils/TideMemory.js";
|
|
3
|
+
import { Policy } from "./Policy.js";
|
|
4
|
+
export default class BaseTideRequest {
|
|
5
|
+
constructor(name, version, authFlow, draft, dyanmicData) {
|
|
6
|
+
this.name = name;
|
|
7
|
+
this.version = version;
|
|
8
|
+
this.authFlow = authFlow;
|
|
9
|
+
this.draft = new TideMemory(draft.length);
|
|
10
|
+
this.draft.set(draft);
|
|
11
|
+
this.dyanmicData = new TideMemory(dyanmicData.length);
|
|
12
|
+
this.dyanmicData.set(dyanmicData);
|
|
13
|
+
this.authorization = new TideMemory();
|
|
14
|
+
this.authorizerCert = new TideMemory();
|
|
15
|
+
;
|
|
16
|
+
this.authorizer = new TideMemory();
|
|
17
|
+
this.expiry = Math.floor(Date.now() / 1000) + 30; // default is 30s
|
|
18
|
+
this.policy = new TideMemory();
|
|
19
|
+
}
|
|
20
|
+
id() {
|
|
21
|
+
return this.name + ":" + this.version;
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* This isn't copying. Just created another BaseTideRequest object that allows you to point each individual field to OTHER sections of memory.
|
|
25
|
+
* If you modify an existing 'replicated' field, you'll also modify the other object you originally replicated.
|
|
26
|
+
*/
|
|
27
|
+
replicate() {
|
|
28
|
+
const r = new BaseTideRequest(this.name, this.version, this.authFlow, this.draft, this.dyanmicData);
|
|
29
|
+
r.authorization = this.authorization;
|
|
30
|
+
r.authorizerCert = this.authorizerCert;
|
|
31
|
+
r.authorizer = this.authorizer;
|
|
32
|
+
r.expiry = this.expiry;
|
|
33
|
+
r.policy = this.policy;
|
|
34
|
+
return r;
|
|
35
|
+
}
|
|
36
|
+
setNewDynamicData(d) {
|
|
37
|
+
this.dyanmicData = new TideMemory(d.length);
|
|
38
|
+
this.dyanmicData.set(d);
|
|
39
|
+
return this;
|
|
40
|
+
}
|
|
41
|
+
setCustomExpiry(timeFromNowInSeconds) {
|
|
42
|
+
this.expiry = Math.floor(Date.now() / 1000) + timeFromNowInSeconds;
|
|
43
|
+
return this;
|
|
44
|
+
}
|
|
45
|
+
addAuthorizer(authorizer) {
|
|
46
|
+
this.authorizer = new TideMemory(authorizer.length);
|
|
47
|
+
this.authorizer.set(authorizer);
|
|
48
|
+
}
|
|
49
|
+
addAuthorizerCertificate(authorizerCertificate) {
|
|
50
|
+
this.authorizerCert = new TideMemory(authorizerCertificate.length);
|
|
51
|
+
this.authorizerCert.set(authorizerCertificate);
|
|
52
|
+
}
|
|
53
|
+
addAuthorization(authorization) {
|
|
54
|
+
this.authorization = new TideMemory(authorization.length);
|
|
55
|
+
this.authorization.set(authorization);
|
|
56
|
+
return this;
|
|
57
|
+
}
|
|
58
|
+
addPolicy(policy) {
|
|
59
|
+
this.policy = new TideMemory(policy.length);
|
|
60
|
+
this.policy.set(policy);
|
|
61
|
+
return this;
|
|
62
|
+
}
|
|
63
|
+
hasPolicy() {
|
|
64
|
+
return this.policy.length != 0;
|
|
65
|
+
}
|
|
66
|
+
async getRequestInitDetails() {
|
|
67
|
+
const te = new TextEncoder();
|
|
68
|
+
return {
|
|
69
|
+
"creationTime": BaseTideRequest.uint32ToUint8ArrayLE(Math.floor(Date.now() / 1000)), // now
|
|
70
|
+
"expireTime": BaseTideRequest.uint32ToUint8ArrayLE(this.expiry),
|
|
71
|
+
"modelId": te.encode(this.id()),
|
|
72
|
+
"draftHash": new TideMemory(await crypto.subtle.digest("SHA-512", this.draft))
|
|
73
|
+
};
|
|
74
|
+
}
|
|
75
|
+
addCreationSignature(creationTime, sig) {
|
|
76
|
+
this.authorization = TideMemory.CreateFromArray([
|
|
77
|
+
TideMemory.CreateFromArray([
|
|
78
|
+
creationTime,
|
|
79
|
+
sig
|
|
80
|
+
]),
|
|
81
|
+
new TideMemory() // empty as no approvals have been added yet
|
|
82
|
+
]);
|
|
83
|
+
return this;
|
|
84
|
+
}
|
|
85
|
+
isInitialized() {
|
|
86
|
+
try {
|
|
87
|
+
// check that creation time and sig fields are present
|
|
88
|
+
if (this.authorization.GetValue(0).GetValue(0).length > 0 && this.authorization.GetValue(0).GetValue(1).length == 64)
|
|
89
|
+
return true;
|
|
90
|
+
else
|
|
91
|
+
return false;
|
|
92
|
+
}
|
|
93
|
+
catch {
|
|
94
|
+
return false;
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
getUniqueId() {
|
|
98
|
+
if (!this.isInitialized())
|
|
99
|
+
throw 'Must initialize request to generate unique id';
|
|
100
|
+
const bytes = this.authorization.GetValue(0).GetValue(1);
|
|
101
|
+
return Array.from(bytes).map(b => b.toString(16).padStart(2, '0')).join(''); // hex
|
|
102
|
+
}
|
|
103
|
+
getInitializedTime() {
|
|
104
|
+
if (!this.isInitialized())
|
|
105
|
+
throw 'Must initialize request to get creation time';
|
|
106
|
+
const time_bytes = this.authorization.GetValue(0).GetValue(0);
|
|
107
|
+
return BaseTideRequest.uint8ArrayToUint32LE(time_bytes);
|
|
108
|
+
}
|
|
109
|
+
getCurrentApprovalCount() {
|
|
110
|
+
if (!this.isInitialized())
|
|
111
|
+
throw 'Must initialize request to get approval count';
|
|
112
|
+
let i = 0;
|
|
113
|
+
let res = { result: undefined };
|
|
114
|
+
while (this.authorizer.TryGetValue(i, res)) {
|
|
115
|
+
i++;
|
|
116
|
+
}
|
|
117
|
+
return i;
|
|
118
|
+
}
|
|
119
|
+
getPolicy() {
|
|
120
|
+
return Policy.from(this.policy);
|
|
121
|
+
}
|
|
122
|
+
removeApproval(approvalVuid) {
|
|
123
|
+
// find if there are any dokens with this approvalVuid
|
|
124
|
+
if (!this.isInitialized())
|
|
125
|
+
return false;
|
|
126
|
+
if (this.getCurrentApprovalCount() == 0)
|
|
127
|
+
return false;
|
|
128
|
+
try {
|
|
129
|
+
// find doken and it's index
|
|
130
|
+
let i = 0;
|
|
131
|
+
let res = { result: new TideMemory() };
|
|
132
|
+
let dokenWithVuidFound = {};
|
|
133
|
+
let keepTheseDokensList = [];
|
|
134
|
+
let keepTheseApprovalSigs = [];
|
|
135
|
+
while (this.authorizer.TryGetValue(i, res)) {
|
|
136
|
+
const d = new Doken(res.result);
|
|
137
|
+
if (d.hasVuid(approvalVuid)) {
|
|
138
|
+
dokenWithVuidFound = {
|
|
139
|
+
index: i,
|
|
140
|
+
value: d
|
|
141
|
+
};
|
|
142
|
+
}
|
|
143
|
+
else {
|
|
144
|
+
keepTheseDokensList.push(res.result);
|
|
145
|
+
keepTheseApprovalSigs.push(this.authorization.GetValue(1).GetValue(i));
|
|
146
|
+
}
|
|
147
|
+
i++;
|
|
148
|
+
}
|
|
149
|
+
// reconstruct authorizers and authorizer sigs of request
|
|
150
|
+
if (dokenWithVuidFound) {
|
|
151
|
+
const creationAuth = this.authorization.GetValue(0);
|
|
152
|
+
this.authorization = TideMemory.CreateFromArray([
|
|
153
|
+
creationAuth,
|
|
154
|
+
TideMemory.CreateFromArray(keepTheseApprovalSigs)
|
|
155
|
+
]);
|
|
156
|
+
this.authorizer = TideMemory.CreateFromArray(keepTheseDokensList);
|
|
157
|
+
return true;
|
|
158
|
+
}
|
|
159
|
+
else
|
|
160
|
+
return false;
|
|
161
|
+
}
|
|
162
|
+
catch (ex) {
|
|
163
|
+
console.error(ex);
|
|
164
|
+
return false;
|
|
165
|
+
}
|
|
166
|
+
}
|
|
167
|
+
encode() {
|
|
168
|
+
if (this.authorizer == null)
|
|
169
|
+
throw Error("Authorizer not added to request");
|
|
170
|
+
if (this.authorizerCert == null)
|
|
171
|
+
throw Error("Authorizer cert not provided");
|
|
172
|
+
if (this.authorization == null)
|
|
173
|
+
throw Error("Authorize this request first with an authorizer");
|
|
174
|
+
const te = new TextEncoder();
|
|
175
|
+
const name_b = te.encode(this.name);
|
|
176
|
+
const version_b = te.encode(this.version);
|
|
177
|
+
const authFlow_b = te.encode(this.authFlow);
|
|
178
|
+
const expiry = BaseTideRequest.uint32ToUint8ArrayLE(this.expiry);
|
|
179
|
+
const req = TideMemory.CreateFromArray([
|
|
180
|
+
name_b,
|
|
181
|
+
version_b,
|
|
182
|
+
expiry,
|
|
183
|
+
this.draft,
|
|
184
|
+
authFlow_b,
|
|
185
|
+
this.dyanmicData,
|
|
186
|
+
this.authorizer,
|
|
187
|
+
this.authorization,
|
|
188
|
+
this.authorizerCert,
|
|
189
|
+
this.policy
|
|
190
|
+
]);
|
|
191
|
+
return req;
|
|
192
|
+
}
|
|
193
|
+
static decode(data) {
|
|
194
|
+
const d = new TideMemory(data.length);
|
|
195
|
+
d.set(data);
|
|
196
|
+
// Read field 0 (name) - this is part of the TideMemory structure
|
|
197
|
+
const name = new TextDecoder().decode(d.GetValue(0));
|
|
198
|
+
// Read all other fields
|
|
199
|
+
const version = new TextDecoder().decode(d.GetValue(1));
|
|
200
|
+
// Check name and version in static members if set
|
|
201
|
+
if (this._name != undefined && this._version != undefined) {
|
|
202
|
+
if (name != this._name || version != this._version)
|
|
203
|
+
throw Error("Name and Version in decoded data don't match this object's set name and version.");
|
|
204
|
+
}
|
|
205
|
+
const expiry = BaseTideRequest.uint8ArrayToUint32LE(d.GetValue(2));
|
|
206
|
+
const draft = d.GetValue(3);
|
|
207
|
+
const authFlow = new TextDecoder().decode(d.GetValue(4));
|
|
208
|
+
const dynamicData = d.GetValue(5);
|
|
209
|
+
const authorizer = d.GetValue(6);
|
|
210
|
+
const authorization = d.GetValue(7);
|
|
211
|
+
const authorizerCert = d.GetValue(8);
|
|
212
|
+
const policy = d.GetValue(9);
|
|
213
|
+
// Create a new instance using 'this' constructor to support subclasses
|
|
214
|
+
const request = new this(name, version, authFlow, draft, dynamicData);
|
|
215
|
+
// Set the remaining fields
|
|
216
|
+
request.expiry = expiry;
|
|
217
|
+
request.authorizer = authorizer;
|
|
218
|
+
request.authorization = authorization;
|
|
219
|
+
request.authorizerCert = authorizerCert;
|
|
220
|
+
request.policy = policy;
|
|
221
|
+
return request;
|
|
222
|
+
}
|
|
223
|
+
static uint32ToUint8ArrayLE(num) {
|
|
224
|
+
// We want 8 bytes to match .NET Int64 (long) layout: low 32 bits in first 4 bytes, rest zero.
|
|
225
|
+
const arr = new Uint8Array(8);
|
|
226
|
+
// low 32 bits, little-endian
|
|
227
|
+
arr[0] = num & 0xff;
|
|
228
|
+
arr[1] = (num >>> 8) & 0xff;
|
|
229
|
+
arr[2] = (num >>> 16) & 0xff;
|
|
230
|
+
arr[3] = (num >>> 24) & 0xff;
|
|
231
|
+
// arr[4..7] are already 0 from Uint8Array init, matching a .NET long with high 32 bits = 0.
|
|
232
|
+
return arr;
|
|
233
|
+
}
|
|
234
|
+
static uint8ArrayToUint32LE(bytes) {
|
|
235
|
+
if (bytes.length !== 8) {
|
|
236
|
+
throw new Error("Expected 8 bytes for a 64-bit value");
|
|
237
|
+
}
|
|
238
|
+
// Optional safety check: ensure high 32 bits are zero (no real 64-bit longs passed).
|
|
239
|
+
// If you *really* want to enforce the "no longs" assumption, uncomment:
|
|
240
|
+
//
|
|
241
|
+
// if (bytes[4] | bytes[5] | bytes[6] | bytes[7]) {
|
|
242
|
+
// throw new Error("High 32 bits are not zero; expected a 32-bit value stored in 64-bit field.");
|
|
243
|
+
// }
|
|
244
|
+
// Reconstruct from the low 4 bytes (little-endian)
|
|
245
|
+
return (bytes[0] +
|
|
246
|
+
(bytes[1] << 8) +
|
|
247
|
+
(bytes[2] << 16) +
|
|
248
|
+
(bytes[3] * 0x1000000) // avoids sign issues of << 24
|
|
249
|
+
);
|
|
250
|
+
}
|
|
251
|
+
}
|
|
252
|
+
//# sourceMappingURL=TideRequest.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TideRequest.js","sourceRoot":"","sources":["../../../src/models/TideRequest.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,8BAA8B,CAAC;AACrD,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACpD,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAErC,MAAM,CAAC,OAAO,OAAO,eAAe;IAehC,YAAY,IAAY,EAAE,OAAe,EAAE,QAAgB,EAAE,KAAiB,EAAE,WAAuB;QACnG,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAA;QAExB,IAAI,CAAC,KAAK,GAAG,IAAI,UAAU,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QAC1C,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QAEtB,IAAI,CAAC,WAAW,GAAG,IAAI,UAAU,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;QACtD,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;QAElC,IAAI,CAAC,aAAa,GAAG,IAAI,UAAU,EAAE,CAAC;QACtC,IAAI,CAAC,cAAc,GAAG,IAAI,UAAU,EAAE,CAAC;QAAA,CAAC;QACxC,IAAI,CAAC,UAAU,GAAG,IAAI,UAAU,EAAE,CAAC;QACnC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,iBAAiB;QACnE,IAAI,CAAC,MAAM,GAAG,IAAI,UAAU,EAAE,CAAC;IACnC,CAAC;IAED,EAAE;QACE,OAAO,IAAI,CAAC,IAAI,GAAG,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC;IAC1C,CAAC;IAED;;;OAGG;IACH,SAAS;QACL,MAAM,CAAC,GAAG,IAAI,eAAe,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;QACpG,CAAC,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC;QACrC,CAAC,CAAC,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC;QACvC,CAAC,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC;QAC/B,CAAC,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QACvB,CAAC,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QACvB,OAAO,CAAC,CAAC;IACb,CAAC;IAED,iBAAiB,CAAC,CAAa;QAC3B,IAAI,CAAC,WAAW,GAAG,IAAI,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;QAC5C,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QACxB,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,eAAe,CAAC,oBAA4B;QACxC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,GAAG,oBAAoB,CAAC;QACnE,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,aAAa,CAAC,UAAsB;QAChC,IAAI,CAAC,UAAU,GAAG,IAAI,UAAU,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;QACpD,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;IACpC,CAAC;IAED,wBAAwB,CAAC,qBAAiC;QACtD,IAAI,CAAC,cAAc,GAAG,IAAI,UAAU,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC;QACnE,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC;IACnD,CAAC;IAED,gBAAgB,CAAC,aAAyB;QACtC,IAAI,CAAC,aAAa,GAAG,IAAI,UAAU,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;QAC1D,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;QACtC,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,SAAS,CAAC,MAAkB;QACxB,IAAI,CAAC,MAAM,GAAG,IAAI,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QAC5C,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QACxB,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,SAAS;QACL,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,IAAI,CAAC,CAAC;IACnC,CAAC;IAED,KAAK,CAAC,qBAAqB;QACvB,MAAM,EAAE,GAAG,IAAI,WAAW,EAAE,CAAC;QAC7B,OAAO;YACH,cAAc,EAAE,eAAe,CAAC,oBAAoB,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,EAAE,MAAM;YAC3F,YAAY,EAAE,eAAe,CAAC,oBAAoB,CAAC,IAAI,CAAC,MAAM,CAAC;YAC/D,SAAS,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC;YAC/B,WAAW,EAAE,IAAI,UAAU,CAAC,MAAM,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;SACjF,CAAA;IACL,CAAC;IAED,oBAAoB,CAAC,YAAwB,EAAE,GAAe;QAC1D,IAAI,CAAC,aAAa,GAAG,UAAU,CAAC,eAAe,CAAC;YAC5C,UAAU,CAAC,eAAe,CAAC;gBACvB,YAAY;gBACZ,GAAG;aACN,CAAC;YACF,IAAI,UAAU,EAAE,CAAC,4CAA4C;SAChE,CAAC,CAAC;QACH,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,aAAa;QACT,IAAI,CAAC;YACD,sDAAsD;YACtD,IAAI,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,IAAI,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,MAAM,IAAI,EAAE;gBAAE,OAAO,IAAI,CAAC;;gBAC7H,OAAO,KAAK,CAAC;QACtB,CAAC;QAAC,MAAM,CAAC;YACL,OAAO,KAAK,CAAC;QACjB,CAAC;IACL,CAAC;IAED,WAAW;QACP,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE;YAAE,MAAM,+CAA+C,CAAC;QACjF,MAAM,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAe,CAAC;QACvE,OAAO,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM;IACvF,CAAC;IAED,kBAAkB;QACd,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE;YAAE,MAAM,8CAA8C,CAAC;QAChF,MAAM,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;QAC9D,OAAO,eAAe,CAAC,oBAAoB,CAAC,UAAU,CAAC,CAAC;IAC5D,CAAC;IAED,uBAAuB;QACnB,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE;YAAE,MAAM,+CAA+C,CAAC;QACjF,IAAI,CAAC,GAAG,CAAC,CAAC;QACV,IAAI,GAAG,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC;QAChC,OAAO,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC;YAAC,CAAC,EAAE,CAAC;QAAC,CAAC;QACpD,OAAO,CAAC,CAAC;IACb,CAAC;IAED,SAAS;QACL,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACpC,CAAC;IAED,cAAc,CAAC,YAAoB;QAC/B,sDAAsD;QACtD,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE;YAAE,OAAO,KAAK,CAAC;QACxC,IAAI,IAAI,CAAC,uBAAuB,EAAE,IAAI,CAAC;YAAE,OAAO,KAAK,CAAC;QAEtD,IAAI,CAAC;YACD,4BAA4B;YAC5B,IAAI,CAAC,GAAG,CAAC,CAAC;YACV,IAAI,GAAG,GAAG,EAAE,MAAM,EAAE,IAAI,UAAU,EAAE,EAAE,CAAC;YACvC,IAAI,kBAAkB,GAAG,EAAE,CAAC;YAC5B,IAAI,mBAAmB,GAAG,EAAE,CAAC;YAC7B,IAAI,qBAAqB,GAAG,EAAE,CAAC;YAC/B,OAAO,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC;gBACzC,MAAM,CAAC,GAAG,IAAI,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;gBAChC,IAAI,CAAC,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE,CAAC;oBAC1B,kBAAkB,GAAG;wBACjB,KAAK,EAAE,CAAC;wBACR,KAAK,EAAE,CAAC;qBACX,CAAC;gBACN,CAAC;qBAAM,CAAC;oBACJ,mBAAmB,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;oBACrC,qBAAqB,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;gBAC3E,CAAC;gBACD,CAAC,EAAE,CAAC;YACR,CAAC;YAED,yDAAyD;YACzD,IAAI,kBAAkB,EAAE,CAAC;gBACrB,MAAM,YAAY,GAAG,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;gBACpD,IAAI,CAAC,aAAa,GAAG,UAAU,CAAC,eAAe,CAAC;oBAC5C,YAAY;oBACZ,UAAU,CAAC,eAAe,CAAC,qBAAqB,CAAC;iBACpD,CAAC,CAAC;gBACH,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC,eAAe,CAAC,mBAAmB,CAAC,CAAC;gBAClE,OAAO,IAAI,CAAC;YAChB,CAAC;;gBAAK,OAAO,KAAK,CAAC;QACvB,CAAC;QAAC,OAAO,EAAE,EAAE,CAAC;YACV,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;YAClB,OAAO,KAAK,CAAC;QACjB,CAAC;IACL,CAAC;IAED,MAAM;QACF,IAAI,IAAI,CAAC,UAAU,IAAI,IAAI;YAAE,MAAM,KAAK,CAAC,iCAAiC,CAAC,CAAC;QAC5E,IAAI,IAAI,CAAC,cAAc,IAAI,IAAI;YAAE,MAAM,KAAK,CAAC,8BAA8B,CAAC,CAAC;QAC7E,IAAI,IAAI,CAAC,aAAa,IAAI,IAAI;YAAE,MAAM,KAAK,CAAC,iDAAiD,CAAC,CAAC;QAE/F,MAAM,EAAE,GAAG,IAAI,WAAW,EAAE,CAAC;QAC7B,MAAM,MAAM,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACpC,MAAM,SAAS,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC1C,MAAM,UAAU,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC5C,MAAM,MAAM,GAAG,eAAe,CAAC,oBAAoB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAEjE,MAAM,GAAG,GAAG,UAAU,CAAC,eAAe,CAAC;YACnC,MAAM;YACN,SAAS;YACT,MAAM;YACN,IAAI,CAAC,KAAK;YACV,UAAU;YACV,IAAI,CAAC,WAAW;YAChB,IAAI,CAAC,UAAU;YACf,IAAI,CAAC,aAAa;YAClB,IAAI,CAAC,cAAc;YACnB,IAAI,CAAC,MAAM;SACd,CAAC,CAAC;QAEH,OAAO,GAAG,CAAC;IACf,CAAC;IAED,MAAM,CAAC,MAAM,CAET,IAAgB;QAEhB,MAAM,CAAC,GAAG,IAAI,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACtC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAEZ,iEAAiE;QACjE,MAAM,IAAI,GAAG,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;QAErD,wBAAwB;QACxB,MAAM,OAAO,GAAG,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;QAExD,kDAAkD;QAClD,IAAK,IAAY,CAAC,KAAK,IAAI,SAAS,IAAK,IAAY,CAAC,QAAQ,IAAI,SAAS,EAAE,CAAC;YAC1E,IAAI,IAAI,IAAK,IAAY,CAAC,KAAK,IAAI,OAAO,IAAK,IAAY,CAAC,QAAQ;gBAAE,MAAM,KAAK,CAAC,kFAAkF,CAAC,CAAA;QACzK,CAAC;QAED,MAAM,MAAM,GAAG,eAAe,CAAC,oBAAoB,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;QAEnE,MAAM,KAAK,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;QAE5B,MAAM,QAAQ,GAAG,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;QAEzD,MAAM,WAAW,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;QAElC,MAAM,UAAU,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;QACjC,MAAM,aAAa,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;QACpC,MAAM,cAAc,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;QACrC,MAAM,MAAM,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;QAE7B,uEAAuE;QACvE,MAAM,OAAO,GAAG,IAAI,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,WAAW,CAAC,CAAC;QAEtE,2BAA2B;QAC3B,OAAO,CAAC,MAAM,GAAG,MAAM,CAAC;QACxB,OAAO,CAAC,UAAU,GAAG,UAAU,CAAC;QAChC,OAAO,CAAC,aAAa,GAAG,aAAa,CAAC;QACtC,OAAO,CAAC,cAAc,GAAG,cAAc,CAAC;QACxC,OAAO,CAAC,MAAM,GAAG,MAAM,CAAC;QAExB,OAAO,OAAO,CAAC;IACnB,CAAC;IAEO,MAAM,CAAC,oBAAoB,CAAC,GAAW;QAC3C,8FAA8F;QAC9F,MAAM,GAAG,GAAG,IAAI,UAAU,CAAC,CAAC,CAAC,CAAC;QAE9B,6BAA6B;QAC7B,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,IAAI,CAAC;QACpB,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,GAAG,IAAI,CAAC;QAC5B,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,IAAI,CAAC;QAC7B,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,IAAI,CAAC;QAE7B,4FAA4F;QAC5F,OAAO,GAAG,CAAC;IACf,CAAC;IAEO,MAAM,CAAC,oBAAoB,CAAC,KAAiB;QACjD,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACrB,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAC;QAC3D,CAAC;QAED,qFAAqF;QACrF,wEAAwE;QACxE,EAAE;QACF,mDAAmD;QACnD,qGAAqG;QACrG,IAAI;QAEJ,mDAAmD;QACnD,OAAO,CACH,KAAK,CAAC,CAAC,CAAC;YACR,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;YACf,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;YAChB,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC,8BAA8B;SACxD,CAAC;IACN,CAAC;CACJ"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export declare function bytesToBase64(bytes: Uint8Array): string;
|
|
2
|
+
export declare function base64toBytes(base64: string): Uint8Array;
|
|
3
|
+
export declare function StringToUint8Array(string: string): Uint8Array;
|
|
4
|
+
export declare function StringFromUint8Array(bytes: Uint8Array): string;
|
|
5
|
+
export declare function BigIntToByteArray(value: bigint): Uint8Array;
|
|
6
|
+
export declare function BigIntFromByteArray(bytes: Uint8Array): bigint;
|
|
7
|
+
//# sourceMappingURL=Serialization.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Serialization.d.ts","sourceRoot":"","sources":["../../../src/utils/Serialization.ts"],"names":[],"mappings":"AAOA,wBAAgB,aAAa,CAAC,KAAK,EAAE,UAAU,GAAI,MAAM,CAoBxD;AAED,wBAAgB,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,UAAU,CAkCxD;AAED,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,MAAM,GAAI,UAAU,CAG9D;AACD,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,UAAU,GAAI,MAAM,CAG/D;AAED,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,UAAU,CA4B3D;AAED,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,UAAU,GAAG,MAAM,CAS7D"}
|