@thru/programs 0.2.22 → 0.2.24
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/multicall/index.cjs +2579 -0
- package/dist/multicall/index.cjs.map +1 -0
- package/dist/multicall/index.d.cts +253 -0
- package/dist/multicall/index.d.ts +253 -0
- package/dist/multicall/index.js +2573 -0
- package/dist/multicall/index.js.map +1 -0
- package/dist/passkey-manager/index.cjs +582 -706
- package/dist/passkey-manager/index.cjs.map +1 -1
- package/dist/passkey-manager/index.d.cts +20 -14
- package/dist/passkey-manager/index.d.ts +20 -14
- package/dist/passkey-manager/index.js +551 -673
- package/dist/passkey-manager/index.js.map +1 -1
- package/package.json +7 -2
- package/src/multicall/abi/thru/common/primitives/types.ts +2265 -0
- package/src/multicall/abi/thru/program/multicall/types.ts +1232 -0
- package/src/multicall/index.test.ts +46 -0
- package/src/multicall/index.ts +81 -0
- package/src/passkey-manager/abi/thru/blockchain/state_proof/types.ts +95 -19
- package/src/passkey-manager/abi/thru/common/primitives/types.ts +111 -37
- package/src/passkey-manager/abi/thru/program/passkey_manager/types.ts +248 -660
- package/src/passkey-manager/challenge.ts +52 -12
- package/src/passkey-manager/constants.ts +0 -1
- package/src/passkey-manager/index.ts +4 -4
- package/src/passkey-manager/instructions/add-authority.ts +8 -2
- package/src/passkey-manager/instructions/remove-authority.ts +9 -2
- package/src/passkey-manager/instructions/validate.ts +60 -14
- package/src/passkey-manager/target-instruction.ts +29 -0
- package/src/passkey-manager/types.ts +16 -0
- package/src/passkey-manager/validate.test.ts +173 -0
- package/tsup.config.ts +1 -0
- package/src/passkey-manager/instructions/invoke.ts +0 -25
- package/src/passkey-manager/instructions/shared.ts +0 -12
|
@@ -6,7 +6,6 @@ var PASSKEY_MANAGER_PROGRAM_ADDRESS = "taUDdQyFxvM5i0HFRkEK3W45kWLyblAHSnMg4zplg
|
|
|
6
6
|
var INSTRUCTION_CREATE = 0;
|
|
7
7
|
var INSTRUCTION_VALIDATE = 1;
|
|
8
8
|
var INSTRUCTION_TRANSFER = 2;
|
|
9
|
-
var INSTRUCTION_INVOKE = 3;
|
|
10
9
|
var INSTRUCTION_ADD_AUTHORITY = 4;
|
|
11
10
|
var INSTRUCTION_REMOVE_AUTHORITY = 5;
|
|
12
11
|
var INSTRUCTION_REGISTER_CREDENTIAL = 6;
|
|
@@ -293,12 +292,16 @@ if (typeof DataView !== "undefined" && !__tnHasBigIntDataView) {
|
|
|
293
292
|
}
|
|
294
293
|
var __tnFootprintRegistry = {};
|
|
295
294
|
var __tnValidateRegistry = {};
|
|
295
|
+
var __tnDynamicValidateRegistry = {};
|
|
296
296
|
function __tnRegisterFootprint(typeName, fn) {
|
|
297
297
|
__tnFootprintRegistry[typeName] = fn;
|
|
298
298
|
}
|
|
299
299
|
function __tnRegisterValidate(typeName, fn) {
|
|
300
300
|
__tnValidateRegistry[typeName] = fn;
|
|
301
301
|
}
|
|
302
|
+
function __tnRegisterDynamicValidate(typeName, fn) {
|
|
303
|
+
__tnDynamicValidateRegistry[typeName] = fn;
|
|
304
|
+
}
|
|
302
305
|
function __tnInvokeFootprint(typeName, params) {
|
|
303
306
|
const fn = __tnFootprintRegistry[typeName];
|
|
304
307
|
if (!fn) throw new Error(`IR runtime missing footprint for ${typeName}`);
|
|
@@ -309,12 +312,17 @@ function __tnInvokeValidate(typeName, buffer, params) {
|
|
|
309
312
|
if (!fn) throw new Error(`IR runtime missing validate helper for ${typeName}`);
|
|
310
313
|
return fn(buffer, params);
|
|
311
314
|
}
|
|
315
|
+
function __tnInvokeDynamicValidate(typeName, buffer) {
|
|
316
|
+
const fn = __tnDynamicValidateRegistry[typeName];
|
|
317
|
+
if (!fn) throw new Error(`IR runtime missing dynamic validate helper for ${typeName}`);
|
|
318
|
+
return fn(buffer);
|
|
319
|
+
}
|
|
312
320
|
function __tnEvalFootprint(node, ctx) {
|
|
313
|
-
return __tnEvalIrNode(node, ctx);
|
|
321
|
+
return __tnEvalIrNode(node, ctx, __tnToBigInt(0));
|
|
314
322
|
}
|
|
315
323
|
function __tnTryEvalIr(node, ctx) {
|
|
316
324
|
try {
|
|
317
|
-
return { ok: true, value: __tnEvalIrNode(node, ctx) };
|
|
325
|
+
return { ok: true, value: __tnEvalIrNode(node, ctx, __tnToBigInt(0)) };
|
|
318
326
|
} catch (err) {
|
|
319
327
|
return { ok: false, code: __tnNormalizeIrError(err) };
|
|
320
328
|
}
|
|
@@ -338,7 +346,7 @@ function __tnValidateIrTree(ir, buffer, params) {
|
|
|
338
346
|
}
|
|
339
347
|
return { ok: true, consumed: required };
|
|
340
348
|
}
|
|
341
|
-
function __tnEvalIrNode(node, ctx) {
|
|
349
|
+
function __tnEvalIrNode(node, ctx, baseOffset) {
|
|
342
350
|
switch (node.op) {
|
|
343
351
|
case "zero":
|
|
344
352
|
return __tnToBigInt(0);
|
|
@@ -355,18 +363,22 @@ function __tnEvalIrNode(node, ctx) {
|
|
|
355
363
|
}
|
|
356
364
|
return val;
|
|
357
365
|
}
|
|
358
|
-
case "add":
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
|
|
366
|
+
case "add": {
|
|
367
|
+
const left = __tnEvalIrNode(node.left, ctx, baseOffset);
|
|
368
|
+
const right = __tnEvalIrNode(
|
|
369
|
+
node.right,
|
|
370
|
+
ctx,
|
|
371
|
+
__tnCheckedAdd(baseOffset, left)
|
|
362
372
|
);
|
|
373
|
+
return __tnCheckedAdd(left, right);
|
|
374
|
+
}
|
|
363
375
|
case "mul":
|
|
364
376
|
return __tnCheckedMul(
|
|
365
|
-
__tnEvalIrNode(node.left, ctx),
|
|
366
|
-
__tnEvalIrNode(node.right, ctx)
|
|
377
|
+
__tnEvalIrNode(node.left, ctx, baseOffset),
|
|
378
|
+
__tnEvalIrNode(node.right, ctx, baseOffset)
|
|
367
379
|
);
|
|
368
380
|
case "align":
|
|
369
|
-
return __tnAlign(__tnEvalIrNode(node.node, ctx), node.alignment);
|
|
381
|
+
return __tnAlign(__tnEvalIrNode(node.node, ctx, baseOffset), node.alignment);
|
|
370
382
|
case "switch": {
|
|
371
383
|
const tagVal = ctx.params[node.tag];
|
|
372
384
|
if (tagVal === void 0) {
|
|
@@ -379,10 +391,10 @@ function __tnEvalIrNode(node, ctx) {
|
|
|
379
391
|
const tagNumber = Number(tagVal);
|
|
380
392
|
for (const caseNode of node.cases) {
|
|
381
393
|
if (caseNode.value === tagNumber) {
|
|
382
|
-
return __tnEvalIrNode(caseNode.node, ctx);
|
|
394
|
+
return __tnEvalIrNode(caseNode.node, ctx, baseOffset);
|
|
383
395
|
}
|
|
384
396
|
}
|
|
385
|
-
if (node.default) return __tnEvalIrNode(node.default, ctx);
|
|
397
|
+
if (node.default) return __tnEvalIrNode(node.default, ctx, baseOffset);
|
|
386
398
|
__tnRaiseIrError(
|
|
387
399
|
"tn.ir.invalid_tag",
|
|
388
400
|
`Unhandled IR switch value ${tagNumber} for '${node.tag}'`
|
|
@@ -402,9 +414,10 @@ function __tnEvalIrNode(node, ctx) {
|
|
|
402
414
|
nestedParams[arg.name] = val;
|
|
403
415
|
}
|
|
404
416
|
if (ctx.buffer) {
|
|
417
|
+
const nestedOffset = __tnBigIntToNumber(baseOffset, "IR nested offset");
|
|
405
418
|
const nestedResult = __tnInvokeValidate(
|
|
406
419
|
node.typeName,
|
|
407
|
-
ctx.buffer,
|
|
420
|
+
ctx.buffer.subarray(nestedOffset),
|
|
408
421
|
nestedParams
|
|
409
422
|
);
|
|
410
423
|
if (!nestedResult.ok) {
|
|
@@ -421,6 +434,36 @@ function __tnEvalIrNode(node, ctx) {
|
|
|
421
434
|
}
|
|
422
435
|
return __tnInvokeFootprint(node.typeName, nestedParams);
|
|
423
436
|
}
|
|
437
|
+
case "sumOverArray": {
|
|
438
|
+
if (!ctx.buffer) {
|
|
439
|
+
__tnRaiseIrError(
|
|
440
|
+
"tn.ir.missing_buffer",
|
|
441
|
+
`Jagged array '${node.fieldName}' requires buffer-backed validation`
|
|
442
|
+
);
|
|
443
|
+
}
|
|
444
|
+
const count = __tnBigIntToNumber(
|
|
445
|
+
__tnEvalIrNode(node.count, ctx, baseOffset),
|
|
446
|
+
`Jagged array '${node.fieldName}' count`
|
|
447
|
+
);
|
|
448
|
+
let cursor = __tnBigIntToNumber(baseOffset, "IR jagged array offset");
|
|
449
|
+
let total = __tnToBigInt(0);
|
|
450
|
+
for (let i = 0; i < count; i++) {
|
|
451
|
+
const result = __tnInvokeDynamicValidate(
|
|
452
|
+
node.elementTypeName,
|
|
453
|
+
ctx.buffer.subarray(cursor)
|
|
454
|
+
);
|
|
455
|
+
if (!result.ok || result.consumed === void 0) {
|
|
456
|
+
const code = result.code ?? "tn.ir.runtime_error";
|
|
457
|
+
__tnRaiseIrError(
|
|
458
|
+
code,
|
|
459
|
+
`Jagged array '${node.fieldName}' element ${i} failed validation`
|
|
460
|
+
);
|
|
461
|
+
}
|
|
462
|
+
cursor += __tnBigIntToNumber(result.consumed, "IR jagged element size");
|
|
463
|
+
total = __tnCheckedAdd(total, result.consumed);
|
|
464
|
+
}
|
|
465
|
+
return total;
|
|
466
|
+
}
|
|
424
467
|
default:
|
|
425
468
|
__tnRaiseIrError(
|
|
426
469
|
"tn.ir.runtime_error",
|
|
@@ -553,8 +596,6 @@ var Date = class _Date {
|
|
|
553
596
|
return new _Date(buffer);
|
|
554
597
|
}
|
|
555
598
|
};
|
|
556
|
-
__tnRegisterFootprint("Date", (params) => Date.__tnInvokeFootprint(params));
|
|
557
|
-
__tnRegisterValidate("Date", (buffer, params) => Date.__tnInvokeValidate(buffer, params));
|
|
558
599
|
var DateBuilder = class {
|
|
559
600
|
constructor() {
|
|
560
601
|
this.buffer = new Uint8Array(6);
|
|
@@ -586,6 +627,12 @@ var DateBuilder = class {
|
|
|
586
627
|
return view;
|
|
587
628
|
}
|
|
588
629
|
};
|
|
630
|
+
__tnRegisterFootprint("Date", (params) => Date.__tnInvokeFootprint(params));
|
|
631
|
+
__tnRegisterValidate("Date", (buffer, params) => Date.__tnInvokeValidate(buffer, params));
|
|
632
|
+
__tnRegisterDynamicValidate("Date", (buffer) => {
|
|
633
|
+
const result = Date.validate(buffer);
|
|
634
|
+
return { ok: result.ok, code: result.code, consumed: result.consumed === void 0 ? void 0 : __tnToBigInt(result.consumed) };
|
|
635
|
+
});
|
|
589
636
|
var __tn_ir_Duration = {
|
|
590
637
|
typeName: "Duration",
|
|
591
638
|
root: { op: "const", value: 12n }
|
|
@@ -680,8 +727,6 @@ var Duration = class _Duration {
|
|
|
680
727
|
return new _Duration(buffer);
|
|
681
728
|
}
|
|
682
729
|
};
|
|
683
|
-
__tnRegisterFootprint("Duration", (params) => Duration.__tnInvokeFootprint(params));
|
|
684
|
-
__tnRegisterValidate("Duration", (buffer, params) => Duration.__tnInvokeValidate(buffer, params));
|
|
685
730
|
var DurationBuilder = class {
|
|
686
731
|
constructor() {
|
|
687
732
|
this.buffer = new Uint8Array(12);
|
|
@@ -710,6 +755,12 @@ var DurationBuilder = class {
|
|
|
710
755
|
return view;
|
|
711
756
|
}
|
|
712
757
|
};
|
|
758
|
+
__tnRegisterFootprint("Duration", (params) => Duration.__tnInvokeFootprint(params));
|
|
759
|
+
__tnRegisterValidate("Duration", (buffer, params) => Duration.__tnInvokeValidate(buffer, params));
|
|
760
|
+
__tnRegisterDynamicValidate("Duration", (buffer) => {
|
|
761
|
+
const result = Duration.validate(buffer);
|
|
762
|
+
return { ok: result.ok, code: result.code, consumed: result.consumed === void 0 ? void 0 : __tnToBigInt(result.consumed) };
|
|
763
|
+
});
|
|
713
764
|
var __tn_ir_FixedPoint = {
|
|
714
765
|
typeName: "FixedPoint",
|
|
715
766
|
root: { op: "const", value: 9n }
|
|
@@ -804,8 +855,6 @@ var FixedPoint = class _FixedPoint {
|
|
|
804
855
|
return new _FixedPoint(buffer);
|
|
805
856
|
}
|
|
806
857
|
};
|
|
807
|
-
__tnRegisterFootprint("FixedPoint", (params) => FixedPoint.__tnInvokeFootprint(params));
|
|
808
|
-
__tnRegisterValidate("FixedPoint", (buffer, params) => FixedPoint.__tnInvokeValidate(buffer, params));
|
|
809
858
|
var FixedPointBuilder = class {
|
|
810
859
|
constructor() {
|
|
811
860
|
this.buffer = new Uint8Array(9);
|
|
@@ -834,6 +883,12 @@ var FixedPointBuilder = class {
|
|
|
834
883
|
return view;
|
|
835
884
|
}
|
|
836
885
|
};
|
|
886
|
+
__tnRegisterFootprint("FixedPoint", (params) => FixedPoint.__tnInvokeFootprint(params));
|
|
887
|
+
__tnRegisterValidate("FixedPoint", (buffer, params) => FixedPoint.__tnInvokeValidate(buffer, params));
|
|
888
|
+
__tnRegisterDynamicValidate("FixedPoint", (buffer) => {
|
|
889
|
+
const result = FixedPoint.validate(buffer);
|
|
890
|
+
return { ok: result.ok, code: result.code, consumed: result.consumed === void 0 ? void 0 : __tnToBigInt(result.consumed) };
|
|
891
|
+
});
|
|
837
892
|
var __tn_ir_Hash = {
|
|
838
893
|
typeName: "Hash",
|
|
839
894
|
root: { op: "const", value: 32n }
|
|
@@ -916,8 +971,6 @@ var Hash = class _Hash {
|
|
|
916
971
|
return new _Hash(buffer);
|
|
917
972
|
}
|
|
918
973
|
};
|
|
919
|
-
__tnRegisterFootprint("Hash", (params) => Hash.__tnInvokeFootprint(params));
|
|
920
|
-
__tnRegisterValidate("Hash", (buffer, params) => Hash.__tnInvokeValidate(buffer, params));
|
|
921
974
|
var HashBuilder = class {
|
|
922
975
|
constructor() {
|
|
923
976
|
this.buffer = new Uint8Array(32);
|
|
@@ -945,6 +998,12 @@ var HashBuilder = class {
|
|
|
945
998
|
return view;
|
|
946
999
|
}
|
|
947
1000
|
};
|
|
1001
|
+
__tnRegisterFootprint("Hash", (params) => Hash.__tnInvokeFootprint(params));
|
|
1002
|
+
__tnRegisterValidate("Hash", (buffer, params) => Hash.__tnInvokeValidate(buffer, params));
|
|
1003
|
+
__tnRegisterDynamicValidate("Hash", (buffer) => {
|
|
1004
|
+
const result = Hash.validate(buffer);
|
|
1005
|
+
return { ok: result.ok, code: result.code, consumed: result.consumed === void 0 ? void 0 : __tnToBigInt(result.consumed) };
|
|
1006
|
+
});
|
|
948
1007
|
var __tn_ir_InstructionData = {
|
|
949
1008
|
typeName: "InstructionData",
|
|
950
1009
|
root: { op: "align", alignment: 1, node: { op: "add", left: { op: "add", left: { op: "align", alignment: 2, node: { op: "const", value: 2n } }, right: { op: "align", alignment: 8, node: { op: "const", value: 8n } } }, right: { op: "align", alignment: 1, node: { op: "mul", left: { op: "field", param: "data.data_size" }, right: { op: "const", value: 1n } } } } }
|
|
@@ -1182,8 +1241,6 @@ var InstructionData = _InstructionData;
|
|
|
1182
1241
|
}
|
|
1183
1242
|
InstructionData2.params = params;
|
|
1184
1243
|
})(InstructionData || (InstructionData = {}));
|
|
1185
|
-
__tnRegisterFootprint("InstructionData", (params) => InstructionData.__tnInvokeFootprint(params));
|
|
1186
|
-
__tnRegisterValidate("InstructionData", (buffer, params) => InstructionData.__tnInvokeValidate(buffer, params));
|
|
1187
1244
|
var InstructionDataBuilder = class {
|
|
1188
1245
|
constructor() {
|
|
1189
1246
|
this.__tnCachedParams = null;
|
|
@@ -1281,6 +1338,12 @@ var InstructionDataBuilder = class {
|
|
|
1281
1338
|
this.__tnLastBuffer = buffer;
|
|
1282
1339
|
}
|
|
1283
1340
|
};
|
|
1341
|
+
__tnRegisterFootprint("InstructionData", (params) => InstructionData.__tnInvokeFootprint(params));
|
|
1342
|
+
__tnRegisterValidate("InstructionData", (buffer, params) => InstructionData.__tnInvokeValidate(buffer, params));
|
|
1343
|
+
__tnRegisterDynamicValidate("InstructionData", (buffer) => {
|
|
1344
|
+
const result = InstructionData.validate(buffer);
|
|
1345
|
+
return { ok: result.ok, code: result.code, consumed: result.consumed === void 0 ? void 0 : __tnToBigInt(result.consumed) };
|
|
1346
|
+
});
|
|
1284
1347
|
var __tn_ir_Pubkey = {
|
|
1285
1348
|
typeName: "Pubkey",
|
|
1286
1349
|
root: { op: "const", value: 32n }
|
|
@@ -1363,8 +1426,6 @@ var Pubkey = class _Pubkey {
|
|
|
1363
1426
|
return new _Pubkey(buffer);
|
|
1364
1427
|
}
|
|
1365
1428
|
};
|
|
1366
|
-
__tnRegisterFootprint("Pubkey", (params) => Pubkey.__tnInvokeFootprint(params));
|
|
1367
|
-
__tnRegisterValidate("Pubkey", (buffer, params) => Pubkey.__tnInvokeValidate(buffer, params));
|
|
1368
1429
|
var PubkeyBuilder = class {
|
|
1369
1430
|
constructor() {
|
|
1370
1431
|
this.buffer = new Uint8Array(32);
|
|
@@ -1392,6 +1453,12 @@ var PubkeyBuilder = class {
|
|
|
1392
1453
|
return view;
|
|
1393
1454
|
}
|
|
1394
1455
|
};
|
|
1456
|
+
__tnRegisterFootprint("Pubkey", (params) => Pubkey.__tnInvokeFootprint(params));
|
|
1457
|
+
__tnRegisterValidate("Pubkey", (buffer, params) => Pubkey.__tnInvokeValidate(buffer, params));
|
|
1458
|
+
__tnRegisterDynamicValidate("Pubkey", (buffer) => {
|
|
1459
|
+
const result = Pubkey.validate(buffer);
|
|
1460
|
+
return { ok: result.ok, code: result.code, consumed: result.consumed === void 0 ? void 0 : __tnToBigInt(result.consumed) };
|
|
1461
|
+
});
|
|
1395
1462
|
var __tn_ir_Signature = {
|
|
1396
1463
|
typeName: "Signature",
|
|
1397
1464
|
root: { op: "const", value: 64n }
|
|
@@ -1474,8 +1541,6 @@ var Signature = class _Signature {
|
|
|
1474
1541
|
return new _Signature(buffer);
|
|
1475
1542
|
}
|
|
1476
1543
|
};
|
|
1477
|
-
__tnRegisterFootprint("Signature", (params) => Signature.__tnInvokeFootprint(params));
|
|
1478
|
-
__tnRegisterValidate("Signature", (buffer, params) => Signature.__tnInvokeValidate(buffer, params));
|
|
1479
1544
|
var SignatureBuilder = class {
|
|
1480
1545
|
constructor() {
|
|
1481
1546
|
this.buffer = new Uint8Array(64);
|
|
@@ -1503,6 +1568,12 @@ var SignatureBuilder = class {
|
|
|
1503
1568
|
return view;
|
|
1504
1569
|
}
|
|
1505
1570
|
};
|
|
1571
|
+
__tnRegisterFootprint("Signature", (params) => Signature.__tnInvokeFootprint(params));
|
|
1572
|
+
__tnRegisterValidate("Signature", (buffer, params) => Signature.__tnInvokeValidate(buffer, params));
|
|
1573
|
+
__tnRegisterDynamicValidate("Signature", (buffer) => {
|
|
1574
|
+
const result = Signature.validate(buffer);
|
|
1575
|
+
return { ok: result.ok, code: result.code, consumed: result.consumed === void 0 ? void 0 : __tnToBigInt(result.consumed) };
|
|
1576
|
+
});
|
|
1506
1577
|
var __tn_ir_Timestamp = {
|
|
1507
1578
|
typeName: "Timestamp",
|
|
1508
1579
|
root: { op: "const", value: 8n }
|
|
@@ -1582,8 +1653,6 @@ var Timestamp = class _Timestamp {
|
|
|
1582
1653
|
return new _Timestamp(buffer);
|
|
1583
1654
|
}
|
|
1584
1655
|
};
|
|
1585
|
-
__tnRegisterFootprint("Timestamp", (params) => Timestamp.__tnInvokeFootprint(params));
|
|
1586
|
-
__tnRegisterValidate("Timestamp", (buffer, params) => Timestamp.__tnInvokeValidate(buffer, params));
|
|
1587
1656
|
var TimestampBuilder = class {
|
|
1588
1657
|
constructor() {
|
|
1589
1658
|
this.buffer = new Uint8Array(8);
|
|
@@ -1608,6 +1677,12 @@ var TimestampBuilder = class {
|
|
|
1608
1677
|
return view;
|
|
1609
1678
|
}
|
|
1610
1679
|
};
|
|
1680
|
+
__tnRegisterFootprint("Timestamp", (params) => Timestamp.__tnInvokeFootprint(params));
|
|
1681
|
+
__tnRegisterValidate("Timestamp", (buffer, params) => Timestamp.__tnInvokeValidate(buffer, params));
|
|
1682
|
+
__tnRegisterDynamicValidate("Timestamp", (buffer) => {
|
|
1683
|
+
const result = Timestamp.validate(buffer);
|
|
1684
|
+
return { ok: result.ok, code: result.code, consumed: result.consumed === void 0 ? void 0 : __tnToBigInt(result.consumed) };
|
|
1685
|
+
});
|
|
1611
1686
|
|
|
1612
1687
|
// src/passkey-manager/abi/thru/blockchain/state_proof/types.ts
|
|
1613
1688
|
var __tnWarnings2 = /* @__PURE__ */ new Set();
|
|
@@ -1900,12 +1975,16 @@ if (typeof DataView !== "undefined" && !__tnHasBigIntDataView2) {
|
|
|
1900
1975
|
}
|
|
1901
1976
|
var __tnFootprintRegistry2 = {};
|
|
1902
1977
|
var __tnValidateRegistry2 = {};
|
|
1978
|
+
var __tnDynamicValidateRegistry2 = {};
|
|
1903
1979
|
function __tnRegisterFootprint2(typeName, fn) {
|
|
1904
1980
|
__tnFootprintRegistry2[typeName] = fn;
|
|
1905
1981
|
}
|
|
1906
1982
|
function __tnRegisterValidate2(typeName, fn) {
|
|
1907
1983
|
__tnValidateRegistry2[typeName] = fn;
|
|
1908
1984
|
}
|
|
1985
|
+
function __tnRegisterDynamicValidate2(typeName, fn) {
|
|
1986
|
+
__tnDynamicValidateRegistry2[typeName] = fn;
|
|
1987
|
+
}
|
|
1909
1988
|
function __tnInvokeFootprint2(typeName, params) {
|
|
1910
1989
|
const fn = __tnFootprintRegistry2[typeName];
|
|
1911
1990
|
if (!fn) throw new Error(`IR runtime missing footprint for ${typeName}`);
|
|
@@ -1916,12 +1995,17 @@ function __tnInvokeValidate2(typeName, buffer, params) {
|
|
|
1916
1995
|
if (!fn) throw new Error(`IR runtime missing validate helper for ${typeName}`);
|
|
1917
1996
|
return fn(buffer, params);
|
|
1918
1997
|
}
|
|
1998
|
+
function __tnInvokeDynamicValidate2(typeName, buffer) {
|
|
1999
|
+
const fn = __tnDynamicValidateRegistry2[typeName];
|
|
2000
|
+
if (!fn) throw new Error(`IR runtime missing dynamic validate helper for ${typeName}`);
|
|
2001
|
+
return fn(buffer);
|
|
2002
|
+
}
|
|
1919
2003
|
function __tnEvalFootprint2(node, ctx) {
|
|
1920
|
-
return __tnEvalIrNode2(node, ctx);
|
|
2004
|
+
return __tnEvalIrNode2(node, ctx, __tnToBigInt2(0));
|
|
1921
2005
|
}
|
|
1922
2006
|
function __tnTryEvalIr2(node, ctx) {
|
|
1923
2007
|
try {
|
|
1924
|
-
return { ok: true, value: __tnEvalIrNode2(node, ctx) };
|
|
2008
|
+
return { ok: true, value: __tnEvalIrNode2(node, ctx, __tnToBigInt2(0)) };
|
|
1925
2009
|
} catch (err) {
|
|
1926
2010
|
return { ok: false, code: __tnNormalizeIrError2(err) };
|
|
1927
2011
|
}
|
|
@@ -1945,7 +2029,7 @@ function __tnValidateIrTree2(ir, buffer, params) {
|
|
|
1945
2029
|
}
|
|
1946
2030
|
return { ok: true, consumed: required };
|
|
1947
2031
|
}
|
|
1948
|
-
function __tnEvalIrNode2(node, ctx) {
|
|
2032
|
+
function __tnEvalIrNode2(node, ctx, baseOffset) {
|
|
1949
2033
|
switch (node.op) {
|
|
1950
2034
|
case "zero":
|
|
1951
2035
|
return __tnToBigInt2(0);
|
|
@@ -1962,18 +2046,22 @@ function __tnEvalIrNode2(node, ctx) {
|
|
|
1962
2046
|
}
|
|
1963
2047
|
return val;
|
|
1964
2048
|
}
|
|
1965
|
-
case "add":
|
|
1966
|
-
|
|
1967
|
-
|
|
1968
|
-
|
|
2049
|
+
case "add": {
|
|
2050
|
+
const left = __tnEvalIrNode2(node.left, ctx, baseOffset);
|
|
2051
|
+
const right = __tnEvalIrNode2(
|
|
2052
|
+
node.right,
|
|
2053
|
+
ctx,
|
|
2054
|
+
__tnCheckedAdd2(baseOffset, left)
|
|
1969
2055
|
);
|
|
2056
|
+
return __tnCheckedAdd2(left, right);
|
|
2057
|
+
}
|
|
1970
2058
|
case "mul":
|
|
1971
2059
|
return __tnCheckedMul2(
|
|
1972
|
-
__tnEvalIrNode2(node.left, ctx),
|
|
1973
|
-
__tnEvalIrNode2(node.right, ctx)
|
|
2060
|
+
__tnEvalIrNode2(node.left, ctx, baseOffset),
|
|
2061
|
+
__tnEvalIrNode2(node.right, ctx, baseOffset)
|
|
1974
2062
|
);
|
|
1975
2063
|
case "align":
|
|
1976
|
-
return __tnAlign2(__tnEvalIrNode2(node.node, ctx), node.alignment);
|
|
2064
|
+
return __tnAlign2(__tnEvalIrNode2(node.node, ctx, baseOffset), node.alignment);
|
|
1977
2065
|
case "switch": {
|
|
1978
2066
|
const tagVal = ctx.params[node.tag];
|
|
1979
2067
|
if (tagVal === void 0) {
|
|
@@ -1986,10 +2074,10 @@ function __tnEvalIrNode2(node, ctx) {
|
|
|
1986
2074
|
const tagNumber = Number(tagVal);
|
|
1987
2075
|
for (const caseNode of node.cases) {
|
|
1988
2076
|
if (caseNode.value === tagNumber) {
|
|
1989
|
-
return __tnEvalIrNode2(caseNode.node, ctx);
|
|
2077
|
+
return __tnEvalIrNode2(caseNode.node, ctx, baseOffset);
|
|
1990
2078
|
}
|
|
1991
2079
|
}
|
|
1992
|
-
if (node.default) return __tnEvalIrNode2(node.default, ctx);
|
|
2080
|
+
if (node.default) return __tnEvalIrNode2(node.default, ctx, baseOffset);
|
|
1993
2081
|
__tnRaiseIrError2(
|
|
1994
2082
|
"tn.ir.invalid_tag",
|
|
1995
2083
|
`Unhandled IR switch value ${tagNumber} for '${node.tag}'`
|
|
@@ -2009,9 +2097,10 @@ function __tnEvalIrNode2(node, ctx) {
|
|
|
2009
2097
|
nestedParams[arg.name] = val;
|
|
2010
2098
|
}
|
|
2011
2099
|
if (ctx.buffer) {
|
|
2100
|
+
const nestedOffset = __tnBigIntToNumber2(baseOffset, "IR nested offset");
|
|
2012
2101
|
const nestedResult = __tnInvokeValidate2(
|
|
2013
2102
|
node.typeName,
|
|
2014
|
-
ctx.buffer,
|
|
2103
|
+
ctx.buffer.subarray(nestedOffset),
|
|
2015
2104
|
nestedParams
|
|
2016
2105
|
);
|
|
2017
2106
|
if (!nestedResult.ok) {
|
|
@@ -2028,6 +2117,36 @@ function __tnEvalIrNode2(node, ctx) {
|
|
|
2028
2117
|
}
|
|
2029
2118
|
return __tnInvokeFootprint2(node.typeName, nestedParams);
|
|
2030
2119
|
}
|
|
2120
|
+
case "sumOverArray": {
|
|
2121
|
+
if (!ctx.buffer) {
|
|
2122
|
+
__tnRaiseIrError2(
|
|
2123
|
+
"tn.ir.missing_buffer",
|
|
2124
|
+
`Jagged array '${node.fieldName}' requires buffer-backed validation`
|
|
2125
|
+
);
|
|
2126
|
+
}
|
|
2127
|
+
const count = __tnBigIntToNumber2(
|
|
2128
|
+
__tnEvalIrNode2(node.count, ctx, baseOffset),
|
|
2129
|
+
`Jagged array '${node.fieldName}' count`
|
|
2130
|
+
);
|
|
2131
|
+
let cursor = __tnBigIntToNumber2(baseOffset, "IR jagged array offset");
|
|
2132
|
+
let total = __tnToBigInt2(0);
|
|
2133
|
+
for (let i = 0; i < count; i++) {
|
|
2134
|
+
const result = __tnInvokeDynamicValidate2(
|
|
2135
|
+
node.elementTypeName,
|
|
2136
|
+
ctx.buffer.subarray(cursor)
|
|
2137
|
+
);
|
|
2138
|
+
if (!result.ok || result.consumed === void 0) {
|
|
2139
|
+
const code = result.code ?? "tn.ir.runtime_error";
|
|
2140
|
+
__tnRaiseIrError2(
|
|
2141
|
+
code,
|
|
2142
|
+
`Jagged array '${node.fieldName}' element ${i} failed validation`
|
|
2143
|
+
);
|
|
2144
|
+
}
|
|
2145
|
+
cursor += __tnBigIntToNumber2(result.consumed, "IR jagged element size");
|
|
2146
|
+
total = __tnCheckedAdd2(total, result.consumed);
|
|
2147
|
+
}
|
|
2148
|
+
return total;
|
|
2149
|
+
}
|
|
2031
2150
|
default:
|
|
2032
2151
|
__tnRaiseIrError2(
|
|
2033
2152
|
"tn.ir.runtime_error",
|
|
@@ -2051,6 +2170,18 @@ function __tnNormalizeIrError2(err) {
|
|
|
2051
2170
|
if (message.length > 0) return `tn.ir.runtime_error: ${message}`;
|
|
2052
2171
|
return "tn.ir.runtime_error";
|
|
2053
2172
|
}
|
|
2173
|
+
__tnRegisterFootprint2("Hash", (params) => Hash.__tnInvokeFootprint(params));
|
|
2174
|
+
__tnRegisterValidate2("Hash", (buffer, params) => Hash.__tnInvokeValidate(buffer, params));
|
|
2175
|
+
__tnRegisterDynamicValidate2("Hash", (buffer) => {
|
|
2176
|
+
const result = Hash.validate(buffer);
|
|
2177
|
+
return { ok: result.ok, code: result.code, consumed: result.consumed === void 0 ? void 0 : __tnToBigInt2(result.consumed) };
|
|
2178
|
+
});
|
|
2179
|
+
__tnRegisterFootprint2("Pubkey", (params) => Pubkey.__tnInvokeFootprint(params));
|
|
2180
|
+
__tnRegisterValidate2("Pubkey", (buffer, params) => Pubkey.__tnInvokeValidate(buffer, params));
|
|
2181
|
+
__tnRegisterDynamicValidate2("Pubkey", (buffer) => {
|
|
2182
|
+
const result = Pubkey.validate(buffer);
|
|
2183
|
+
return { ok: result.ok, code: result.code, consumed: result.consumed === void 0 ? void 0 : __tnToBigInt2(result.consumed) };
|
|
2184
|
+
});
|
|
2054
2185
|
var __tn_ir_StateProofHeader = {
|
|
2055
2186
|
typeName: "StateProofHeader",
|
|
2056
2187
|
root: { op: "const", value: 40n }
|
|
@@ -2140,8 +2271,6 @@ var StateProofHeader = class _StateProofHeader {
|
|
|
2140
2271
|
return new _StateProofHeader(buffer);
|
|
2141
2272
|
}
|
|
2142
2273
|
};
|
|
2143
|
-
__tnRegisterFootprint2("StateProofHeader", (params) => StateProofHeader.__tnInvokeFootprint(params));
|
|
2144
|
-
__tnRegisterValidate2("StateProofHeader", (buffer, params) => StateProofHeader.__tnInvokeValidate(buffer, params));
|
|
2145
2274
|
var StateProofHeaderBuilder = class {
|
|
2146
2275
|
constructor() {
|
|
2147
2276
|
this.buffer = new Uint8Array(40);
|
|
@@ -2171,6 +2300,12 @@ var StateProofHeaderBuilder = class {
|
|
|
2171
2300
|
return view;
|
|
2172
2301
|
}
|
|
2173
2302
|
};
|
|
2303
|
+
__tnRegisterFootprint2("StateProofHeader", (params) => StateProofHeader.__tnInvokeFootprint(params));
|
|
2304
|
+
__tnRegisterValidate2("StateProofHeader", (buffer, params) => StateProofHeader.__tnInvokeValidate(buffer, params));
|
|
2305
|
+
__tnRegisterDynamicValidate2("StateProofHeader", (buffer) => {
|
|
2306
|
+
const result = StateProofHeader.validate(buffer);
|
|
2307
|
+
return { ok: result.ok, code: result.code, consumed: result.consumed === void 0 ? void 0 : __tnToBigInt2(result.consumed) };
|
|
2308
|
+
});
|
|
2174
2309
|
var __tn_ir_StateProof = {
|
|
2175
2310
|
typeName: "StateProof",
|
|
2176
2311
|
root: { op: "align", alignment: 1, node: { op: "add", left: { op: "align", alignment: 1, node: { op: "const", value: 40n } }, right: { op: "align", alignment: 1, node: { op: "field", param: "proof_body.payload_size" } } } }
|
|
@@ -2742,8 +2877,6 @@ var StateProof = _StateProof;
|
|
|
2742
2877
|
}
|
|
2743
2878
|
StateProof2.params = params;
|
|
2744
2879
|
})(StateProof || (StateProof = {}));
|
|
2745
|
-
__tnRegisterFootprint2("StateProof", (params) => StateProof.__tnInvokeFootprint(params));
|
|
2746
|
-
__tnRegisterValidate2("StateProof", (buffer, params) => StateProof.__tnInvokeValidate(buffer, params));
|
|
2747
2880
|
var StateProofBuilder = class {
|
|
2748
2881
|
constructor() {
|
|
2749
2882
|
this.__tnPayload_proof_body = null;
|
|
@@ -2850,6 +2983,12 @@ var StateProofBuilder = class {
|
|
|
2850
2983
|
this.__tnLastBuffer = buffer;
|
|
2851
2984
|
}
|
|
2852
2985
|
};
|
|
2986
|
+
__tnRegisterFootprint2("StateProof", (params) => StateProof.__tnInvokeFootprint(params));
|
|
2987
|
+
__tnRegisterValidate2("StateProof", (buffer, params) => StateProof.__tnInvokeValidate(buffer, params));
|
|
2988
|
+
__tnRegisterDynamicValidate2("StateProof", (buffer) => {
|
|
2989
|
+
const result = StateProof.validate(buffer);
|
|
2990
|
+
return { ok: result.ok, code: result.code, consumed: result.consumed === void 0 ? void 0 : __tnToBigInt2(result.consumed) };
|
|
2991
|
+
});
|
|
2853
2992
|
|
|
2854
2993
|
// src/passkey-manager/abi/thru/program/passkey_manager/types.ts
|
|
2855
2994
|
var __tnWarnings3 = /* @__PURE__ */ new Set();
|
|
@@ -2936,33 +3075,6 @@ function __tnCreateVariantSelector2(parent, descriptors, assign) {
|
|
|
2936
3075
|
}
|
|
2937
3076
|
};
|
|
2938
3077
|
}
|
|
2939
|
-
function __tnCreateFamWriter2(parent, fieldName, assign) {
|
|
2940
|
-
let hasWritten = false;
|
|
2941
|
-
return {
|
|
2942
|
-
write(payload) {
|
|
2943
|
-
const bytes = __tnResolveBuilderInput3(
|
|
2944
|
-
payload,
|
|
2945
|
-
`flexible array '${fieldName}'`
|
|
2946
|
-
);
|
|
2947
|
-
const copy = new Uint8Array(bytes);
|
|
2948
|
-
assign(copy);
|
|
2949
|
-
hasWritten = true;
|
|
2950
|
-
return {
|
|
2951
|
-
finish() {
|
|
2952
|
-
return parent;
|
|
2953
|
-
}
|
|
2954
|
-
};
|
|
2955
|
-
},
|
|
2956
|
-
finish() {
|
|
2957
|
-
if (!hasWritten) {
|
|
2958
|
-
throw new Error(
|
|
2959
|
-
`flexible array '${fieldName}' requires write() before finish()`
|
|
2960
|
-
);
|
|
2961
|
-
}
|
|
2962
|
-
return parent;
|
|
2963
|
-
}
|
|
2964
|
-
};
|
|
2965
|
-
}
|
|
2966
3078
|
var __tnMask323 = __tnHasNativeBigInt3 ? (BigInt(1) << BigInt(32)) - BigInt(1) : 4294967295;
|
|
2967
3079
|
var __tnSignBit323 = __tnHasNativeBigInt3 ? BigInt(1) << BigInt(31) : 2147483648;
|
|
2968
3080
|
function __tnToBigInt3(value) {
|
|
@@ -3187,12 +3299,16 @@ if (typeof DataView !== "undefined" && !__tnHasBigIntDataView3) {
|
|
|
3187
3299
|
}
|
|
3188
3300
|
var __tnFootprintRegistry3 = {};
|
|
3189
3301
|
var __tnValidateRegistry3 = {};
|
|
3302
|
+
var __tnDynamicValidateRegistry3 = {};
|
|
3190
3303
|
function __tnRegisterFootprint3(typeName, fn) {
|
|
3191
3304
|
__tnFootprintRegistry3[typeName] = fn;
|
|
3192
3305
|
}
|
|
3193
3306
|
function __tnRegisterValidate3(typeName, fn) {
|
|
3194
3307
|
__tnValidateRegistry3[typeName] = fn;
|
|
3195
3308
|
}
|
|
3309
|
+
function __tnRegisterDynamicValidate3(typeName, fn) {
|
|
3310
|
+
__tnDynamicValidateRegistry3[typeName] = fn;
|
|
3311
|
+
}
|
|
3196
3312
|
function __tnInvokeFootprint3(typeName, params) {
|
|
3197
3313
|
const fn = __tnFootprintRegistry3[typeName];
|
|
3198
3314
|
if (!fn) throw new Error(`IR runtime missing footprint for ${typeName}`);
|
|
@@ -3203,12 +3319,17 @@ function __tnInvokeValidate3(typeName, buffer, params) {
|
|
|
3203
3319
|
if (!fn) throw new Error(`IR runtime missing validate helper for ${typeName}`);
|
|
3204
3320
|
return fn(buffer, params);
|
|
3205
3321
|
}
|
|
3322
|
+
function __tnInvokeDynamicValidate3(typeName, buffer) {
|
|
3323
|
+
const fn = __tnDynamicValidateRegistry3[typeName];
|
|
3324
|
+
if (!fn) throw new Error(`IR runtime missing dynamic validate helper for ${typeName}`);
|
|
3325
|
+
return fn(buffer);
|
|
3326
|
+
}
|
|
3206
3327
|
function __tnEvalFootprint3(node, ctx) {
|
|
3207
|
-
return __tnEvalIrNode3(node, ctx);
|
|
3328
|
+
return __tnEvalIrNode3(node, ctx, __tnToBigInt3(0));
|
|
3208
3329
|
}
|
|
3209
3330
|
function __tnTryEvalIr3(node, ctx) {
|
|
3210
3331
|
try {
|
|
3211
|
-
return { ok: true, value: __tnEvalIrNode3(node, ctx) };
|
|
3332
|
+
return { ok: true, value: __tnEvalIrNode3(node, ctx, __tnToBigInt3(0)) };
|
|
3212
3333
|
} catch (err) {
|
|
3213
3334
|
return { ok: false, code: __tnNormalizeIrError3(err) };
|
|
3214
3335
|
}
|
|
@@ -3232,7 +3353,7 @@ function __tnValidateIrTree3(ir, buffer, params) {
|
|
|
3232
3353
|
}
|
|
3233
3354
|
return { ok: true, consumed: required };
|
|
3234
3355
|
}
|
|
3235
|
-
function __tnEvalIrNode3(node, ctx) {
|
|
3356
|
+
function __tnEvalIrNode3(node, ctx, baseOffset) {
|
|
3236
3357
|
switch (node.op) {
|
|
3237
3358
|
case "zero":
|
|
3238
3359
|
return __tnToBigInt3(0);
|
|
@@ -3249,18 +3370,22 @@ function __tnEvalIrNode3(node, ctx) {
|
|
|
3249
3370
|
}
|
|
3250
3371
|
return val;
|
|
3251
3372
|
}
|
|
3252
|
-
case "add":
|
|
3253
|
-
|
|
3254
|
-
|
|
3255
|
-
|
|
3373
|
+
case "add": {
|
|
3374
|
+
const left = __tnEvalIrNode3(node.left, ctx, baseOffset);
|
|
3375
|
+
const right = __tnEvalIrNode3(
|
|
3376
|
+
node.right,
|
|
3377
|
+
ctx,
|
|
3378
|
+
__tnCheckedAdd3(baseOffset, left)
|
|
3256
3379
|
);
|
|
3380
|
+
return __tnCheckedAdd3(left, right);
|
|
3381
|
+
}
|
|
3257
3382
|
case "mul":
|
|
3258
3383
|
return __tnCheckedMul3(
|
|
3259
|
-
__tnEvalIrNode3(node.left, ctx),
|
|
3260
|
-
__tnEvalIrNode3(node.right, ctx)
|
|
3384
|
+
__tnEvalIrNode3(node.left, ctx, baseOffset),
|
|
3385
|
+
__tnEvalIrNode3(node.right, ctx, baseOffset)
|
|
3261
3386
|
);
|
|
3262
3387
|
case "align":
|
|
3263
|
-
return __tnAlign3(__tnEvalIrNode3(node.node, ctx), node.alignment);
|
|
3388
|
+
return __tnAlign3(__tnEvalIrNode3(node.node, ctx, baseOffset), node.alignment);
|
|
3264
3389
|
case "switch": {
|
|
3265
3390
|
const tagVal = ctx.params[node.tag];
|
|
3266
3391
|
if (tagVal === void 0) {
|
|
@@ -3273,10 +3398,10 @@ function __tnEvalIrNode3(node, ctx) {
|
|
|
3273
3398
|
const tagNumber = Number(tagVal);
|
|
3274
3399
|
for (const caseNode of node.cases) {
|
|
3275
3400
|
if (caseNode.value === tagNumber) {
|
|
3276
|
-
return __tnEvalIrNode3(caseNode.node, ctx);
|
|
3401
|
+
return __tnEvalIrNode3(caseNode.node, ctx, baseOffset);
|
|
3277
3402
|
}
|
|
3278
3403
|
}
|
|
3279
|
-
if (node.default) return __tnEvalIrNode3(node.default, ctx);
|
|
3404
|
+
if (node.default) return __tnEvalIrNode3(node.default, ctx, baseOffset);
|
|
3280
3405
|
__tnRaiseIrError3(
|
|
3281
3406
|
"tn.ir.invalid_tag",
|
|
3282
3407
|
`Unhandled IR switch value ${tagNumber} for '${node.tag}'`
|
|
@@ -3296,9 +3421,10 @@ function __tnEvalIrNode3(node, ctx) {
|
|
|
3296
3421
|
nestedParams[arg.name] = val;
|
|
3297
3422
|
}
|
|
3298
3423
|
if (ctx.buffer) {
|
|
3424
|
+
const nestedOffset = __tnBigIntToNumber3(baseOffset, "IR nested offset");
|
|
3299
3425
|
const nestedResult = __tnInvokeValidate3(
|
|
3300
3426
|
node.typeName,
|
|
3301
|
-
ctx.buffer,
|
|
3427
|
+
ctx.buffer.subarray(nestedOffset),
|
|
3302
3428
|
nestedParams
|
|
3303
3429
|
);
|
|
3304
3430
|
if (!nestedResult.ok) {
|
|
@@ -3315,6 +3441,36 @@ function __tnEvalIrNode3(node, ctx) {
|
|
|
3315
3441
|
}
|
|
3316
3442
|
return __tnInvokeFootprint3(node.typeName, nestedParams);
|
|
3317
3443
|
}
|
|
3444
|
+
case "sumOverArray": {
|
|
3445
|
+
if (!ctx.buffer) {
|
|
3446
|
+
__tnRaiseIrError3(
|
|
3447
|
+
"tn.ir.missing_buffer",
|
|
3448
|
+
`Jagged array '${node.fieldName}' requires buffer-backed validation`
|
|
3449
|
+
);
|
|
3450
|
+
}
|
|
3451
|
+
const count = __tnBigIntToNumber3(
|
|
3452
|
+
__tnEvalIrNode3(node.count, ctx, baseOffset),
|
|
3453
|
+
`Jagged array '${node.fieldName}' count`
|
|
3454
|
+
);
|
|
3455
|
+
let cursor = __tnBigIntToNumber3(baseOffset, "IR jagged array offset");
|
|
3456
|
+
let total = __tnToBigInt3(0);
|
|
3457
|
+
for (let i = 0; i < count; i++) {
|
|
3458
|
+
const result = __tnInvokeDynamicValidate3(
|
|
3459
|
+
node.elementTypeName,
|
|
3460
|
+
ctx.buffer.subarray(cursor)
|
|
3461
|
+
);
|
|
3462
|
+
if (!result.ok || result.consumed === void 0) {
|
|
3463
|
+
const code = result.code ?? "tn.ir.runtime_error";
|
|
3464
|
+
__tnRaiseIrError3(
|
|
3465
|
+
code,
|
|
3466
|
+
`Jagged array '${node.fieldName}' element ${i} failed validation`
|
|
3467
|
+
);
|
|
3468
|
+
}
|
|
3469
|
+
cursor += __tnBigIntToNumber3(result.consumed, "IR jagged element size");
|
|
3470
|
+
total = __tnCheckedAdd3(total, result.consumed);
|
|
3471
|
+
}
|
|
3472
|
+
return total;
|
|
3473
|
+
}
|
|
3318
3474
|
default:
|
|
3319
3475
|
__tnRaiseIrError3(
|
|
3320
3476
|
"tn.ir.runtime_error",
|
|
@@ -3338,6 +3494,24 @@ function __tnNormalizeIrError3(err) {
|
|
|
3338
3494
|
if (message.length > 0) return `tn.ir.runtime_error: ${message}`;
|
|
3339
3495
|
return "tn.ir.runtime_error";
|
|
3340
3496
|
}
|
|
3497
|
+
__tnRegisterFootprint3("InstructionData", (params) => InstructionData.__tnInvokeFootprint(params));
|
|
3498
|
+
__tnRegisterValidate3("InstructionData", (buffer, params) => InstructionData.__tnInvokeValidate(buffer, params));
|
|
3499
|
+
__tnRegisterDynamicValidate3("InstructionData", (buffer) => {
|
|
3500
|
+
const result = InstructionData.validate(buffer);
|
|
3501
|
+
return { ok: result.ok, code: result.code, consumed: result.consumed === void 0 ? void 0 : __tnToBigInt3(result.consumed) };
|
|
3502
|
+
});
|
|
3503
|
+
__tnRegisterFootprint3("Pubkey", (params) => Pubkey.__tnInvokeFootprint(params));
|
|
3504
|
+
__tnRegisterValidate3("Pubkey", (buffer, params) => Pubkey.__tnInvokeValidate(buffer, params));
|
|
3505
|
+
__tnRegisterDynamicValidate3("Pubkey", (buffer) => {
|
|
3506
|
+
const result = Pubkey.validate(buffer);
|
|
3507
|
+
return { ok: result.ok, code: result.code, consumed: result.consumed === void 0 ? void 0 : __tnToBigInt3(result.consumed) };
|
|
3508
|
+
});
|
|
3509
|
+
__tnRegisterFootprint3("StateProof", (params) => StateProof.__tnInvokeFootprint(params));
|
|
3510
|
+
__tnRegisterValidate3("StateProof", (buffer, params) => StateProof.__tnInvokeValidate(buffer, params));
|
|
3511
|
+
__tnRegisterDynamicValidate3("StateProof", (buffer) => {
|
|
3512
|
+
const result = StateProof.validate(buffer);
|
|
3513
|
+
return { ok: result.ok, code: result.code, consumed: result.consumed === void 0 ? void 0 : __tnToBigInt3(result.consumed) };
|
|
3514
|
+
});
|
|
3341
3515
|
var __tn_ir_Authority = {
|
|
3342
3516
|
typeName: "Authority",
|
|
3343
3517
|
root: { op: "const", value: 65n }
|
|
@@ -3434,8 +3608,6 @@ var Authority = class _Authority {
|
|
|
3434
3608
|
return new _Authority(buffer);
|
|
3435
3609
|
}
|
|
3436
3610
|
};
|
|
3437
|
-
__tnRegisterFootprint3("Authority", (params) => Authority.__tnInvokeFootprint(params));
|
|
3438
|
-
__tnRegisterValidate3("Authority", (buffer, params) => Authority.__tnInvokeValidate(buffer, params));
|
|
3439
3611
|
var AuthorityBuilder = class {
|
|
3440
3612
|
constructor() {
|
|
3441
3613
|
this.buffer = new Uint8Array(65);
|
|
@@ -3467,6 +3639,12 @@ var AuthorityBuilder = class {
|
|
|
3467
3639
|
return view;
|
|
3468
3640
|
}
|
|
3469
3641
|
};
|
|
3642
|
+
__tnRegisterFootprint3("Authority", (params) => Authority.__tnInvokeFootprint(params));
|
|
3643
|
+
__tnRegisterValidate3("Authority", (buffer, params) => Authority.__tnInvokeValidate(buffer, params));
|
|
3644
|
+
__tnRegisterDynamicValidate3("Authority", (buffer) => {
|
|
3645
|
+
const result = Authority.validate(buffer);
|
|
3646
|
+
return { ok: result.ok, code: result.code, consumed: result.consumed === void 0 ? void 0 : __tnToBigInt3(result.consumed) };
|
|
3647
|
+
});
|
|
3470
3648
|
var __tn_ir_P256Point = {
|
|
3471
3649
|
typeName: "P256Point",
|
|
3472
3650
|
root: { op: "const", value: 32n }
|
|
@@ -3548,9 +3726,13 @@ _P256Point.__tnElementCount = 32;
|
|
|
3548
3726
|
var P256Point = _P256Point;
|
|
3549
3727
|
__tnRegisterFootprint3("P256Point", (params) => P256Point.__tnInvokeFootprint(params));
|
|
3550
3728
|
__tnRegisterValidate3("P256Point", (buffer, params) => P256Point.__tnInvokeValidate(buffer, params));
|
|
3729
|
+
__tnRegisterDynamicValidate3("P256Point", (buffer) => {
|
|
3730
|
+
const result = P256Point.validate(buffer);
|
|
3731
|
+
return { ok: result.ok, code: result.code, consumed: result.consumed === void 0 ? void 0 : __tnToBigInt3(result.consumed) };
|
|
3732
|
+
});
|
|
3551
3733
|
var __tn_ir_RemoveAuthorityArgs = {
|
|
3552
3734
|
typeName: "RemoveAuthorityArgs",
|
|
3553
|
-
root: { op: "const", value:
|
|
3735
|
+
root: { op: "const", value: 3n }
|
|
3554
3736
|
};
|
|
3555
3737
|
var RemoveAuthorityArgs = class _RemoveAuthorityArgs {
|
|
3556
3738
|
constructor(buffer) {
|
|
@@ -3568,12 +3750,26 @@ var RemoveAuthorityArgs = class _RemoveAuthorityArgs {
|
|
|
3568
3750
|
const buffer = builder.build();
|
|
3569
3751
|
return _RemoveAuthorityArgs.from_array(buffer);
|
|
3570
3752
|
}
|
|
3571
|
-
|
|
3753
|
+
get_wallet_account_idx() {
|
|
3754
|
+
const offset = 0;
|
|
3755
|
+
return this.view.getUint16(offset, true);
|
|
3756
|
+
}
|
|
3757
|
+
set_wallet_account_idx(value) {
|
|
3572
3758
|
const offset = 0;
|
|
3759
|
+
this.view.setUint16(offset, value, true);
|
|
3760
|
+
}
|
|
3761
|
+
get wallet_account_idx() {
|
|
3762
|
+
return this.get_wallet_account_idx();
|
|
3763
|
+
}
|
|
3764
|
+
set wallet_account_idx(value) {
|
|
3765
|
+
this.set_wallet_account_idx(value);
|
|
3766
|
+
}
|
|
3767
|
+
get_auth_idx() {
|
|
3768
|
+
const offset = 2;
|
|
3573
3769
|
return this.view.getUint8(offset);
|
|
3574
3770
|
}
|
|
3575
3771
|
set_auth_idx(value) {
|
|
3576
|
-
const offset =
|
|
3772
|
+
const offset = 2;
|
|
3577
3773
|
this.view.setUint8(offset, value);
|
|
3578
3774
|
}
|
|
3579
3775
|
get auth_idx() {
|
|
@@ -3606,13 +3802,14 @@ var RemoveAuthorityArgs = class _RemoveAuthorityArgs {
|
|
|
3606
3802
|
return __tnBigIntToNumber3(irResult, "RemoveAuthorityArgs::footprint");
|
|
3607
3803
|
}
|
|
3608
3804
|
static validate(buffer, _opts) {
|
|
3609
|
-
if (buffer.length <
|
|
3610
|
-
return { ok: true, consumed:
|
|
3805
|
+
if (buffer.length < 3) return { ok: false, code: "tn.buffer_too_small", consumed: 3 };
|
|
3806
|
+
return { ok: true, consumed: 3 };
|
|
3611
3807
|
}
|
|
3612
|
-
static new(auth_idx) {
|
|
3613
|
-
const buffer = new Uint8Array(
|
|
3808
|
+
static new(wallet_account_idx, auth_idx) {
|
|
3809
|
+
const buffer = new Uint8Array(3);
|
|
3614
3810
|
const view = new DataView(buffer.buffer);
|
|
3615
|
-
view.
|
|
3811
|
+
view.setUint16(0, wallet_account_idx, true);
|
|
3812
|
+
view.setUint8(2, auth_idx);
|
|
3616
3813
|
return new _RemoveAuthorityArgs(buffer);
|
|
3617
3814
|
}
|
|
3618
3815
|
static from_array(buffer) {
|
|
@@ -3627,15 +3824,17 @@ var RemoveAuthorityArgs = class _RemoveAuthorityArgs {
|
|
|
3627
3824
|
return new _RemoveAuthorityArgs(buffer);
|
|
3628
3825
|
}
|
|
3629
3826
|
};
|
|
3630
|
-
__tnRegisterFootprint3("RemoveAuthorityArgs", (params) => RemoveAuthorityArgs.__tnInvokeFootprint(params));
|
|
3631
|
-
__tnRegisterValidate3("RemoveAuthorityArgs", (buffer, params) => RemoveAuthorityArgs.__tnInvokeValidate(buffer, params));
|
|
3632
3827
|
var RemoveAuthorityArgsBuilder = class {
|
|
3633
3828
|
constructor() {
|
|
3634
|
-
this.buffer = new Uint8Array(
|
|
3829
|
+
this.buffer = new Uint8Array(3);
|
|
3635
3830
|
this.view = new DataView(this.buffer.buffer, this.buffer.byteOffset, this.buffer.byteLength);
|
|
3636
3831
|
}
|
|
3832
|
+
set_wallet_account_idx(value) {
|
|
3833
|
+
this.view.setUint16(0, value, true);
|
|
3834
|
+
return this;
|
|
3835
|
+
}
|
|
3637
3836
|
set_auth_idx(value) {
|
|
3638
|
-
this.view.setUint8(
|
|
3837
|
+
this.view.setUint8(2, value);
|
|
3639
3838
|
return this;
|
|
3640
3839
|
}
|
|
3641
3840
|
build() {
|
|
@@ -3652,6 +3851,12 @@ var RemoveAuthorityArgsBuilder = class {
|
|
|
3652
3851
|
return view;
|
|
3653
3852
|
}
|
|
3654
3853
|
};
|
|
3854
|
+
__tnRegisterFootprint3("RemoveAuthorityArgs", (params) => RemoveAuthorityArgs.__tnInvokeFootprint(params));
|
|
3855
|
+
__tnRegisterValidate3("RemoveAuthorityArgs", (buffer, params) => RemoveAuthorityArgs.__tnInvokeValidate(buffer, params));
|
|
3856
|
+
__tnRegisterDynamicValidate3("RemoveAuthorityArgs", (buffer) => {
|
|
3857
|
+
const result = RemoveAuthorityArgs.validate(buffer);
|
|
3858
|
+
return { ok: result.ok, code: result.code, consumed: result.consumed === void 0 ? void 0 : __tnToBigInt3(result.consumed) };
|
|
3859
|
+
});
|
|
3655
3860
|
var __tn_ir_Seed32 = {
|
|
3656
3861
|
typeName: "Seed32",
|
|
3657
3862
|
root: { op: "const", value: 32n }
|
|
@@ -3733,6 +3938,10 @@ _Seed32.__tnElementCount = 32;
|
|
|
3733
3938
|
var Seed32 = _Seed32;
|
|
3734
3939
|
__tnRegisterFootprint3("Seed32", (params) => Seed32.__tnInvokeFootprint(params));
|
|
3735
3940
|
__tnRegisterValidate3("Seed32", (buffer, params) => Seed32.__tnInvokeValidate(buffer, params));
|
|
3941
|
+
__tnRegisterDynamicValidate3("Seed32", (buffer) => {
|
|
3942
|
+
const result = Seed32.validate(buffer);
|
|
3943
|
+
return { ok: result.ok, code: result.code, consumed: result.consumed === void 0 ? void 0 : __tnToBigInt3(result.consumed) };
|
|
3944
|
+
});
|
|
3736
3945
|
var __tn_ir_TransferArgs = {
|
|
3737
3946
|
typeName: "TransferArgs",
|
|
3738
3947
|
root: { op: "const", value: 12n }
|
|
@@ -3842,8 +4051,6 @@ var TransferArgs = class _TransferArgs {
|
|
|
3842
4051
|
return new _TransferArgs(buffer);
|
|
3843
4052
|
}
|
|
3844
4053
|
};
|
|
3845
|
-
__tnRegisterFootprint3("TransferArgs", (params) => TransferArgs.__tnInvokeFootprint(params));
|
|
3846
|
-
__tnRegisterValidate3("TransferArgs", (buffer, params) => TransferArgs.__tnInvokeValidate(buffer, params));
|
|
3847
4054
|
var TransferArgsBuilder = class {
|
|
3848
4055
|
constructor() {
|
|
3849
4056
|
this.buffer = new Uint8Array(12);
|
|
@@ -3876,9 +4083,15 @@ var TransferArgsBuilder = class {
|
|
|
3876
4083
|
return view;
|
|
3877
4084
|
}
|
|
3878
4085
|
};
|
|
4086
|
+
__tnRegisterFootprint3("TransferArgs", (params) => TransferArgs.__tnInvokeFootprint(params));
|
|
4087
|
+
__tnRegisterValidate3("TransferArgs", (buffer, params) => TransferArgs.__tnInvokeValidate(buffer, params));
|
|
4088
|
+
__tnRegisterDynamicValidate3("TransferArgs", (buffer) => {
|
|
4089
|
+
const result = TransferArgs.validate(buffer);
|
|
4090
|
+
return { ok: result.ok, code: result.code, consumed: result.consumed === void 0 ? void 0 : __tnToBigInt3(result.consumed) };
|
|
4091
|
+
});
|
|
3879
4092
|
var __tn_ir_ValidateArgs = {
|
|
3880
4093
|
typeName: "ValidateArgs",
|
|
3881
|
-
root: { op: "align", alignment: 1, node: { op: "add", left: { op: "add", left: { op: "add", left: { op: "add", left: { op: "add", left: { op: "add", left: { op: "add", left: { op: "align", alignment: 2, node: { op: "const", value: 2n } }, right: { op: "align", alignment: 1, node: { op: "const", value: 1n } } }, right: { op: "align", alignment: 1, node: { op: "const", value: 32n } } }, right: { op: "align", alignment: 1, node: { op: "const", value: 32n } } }, right: { op: "align", alignment: 2, node: { op: "const", value: 2n } } }, right: { op: "align", alignment: 2, node: { op: "const", value: 2n } } }, right: { op: "align", alignment: 1, node: { op: "mul", left: { op: "field", param: "authenticator_data.authenticator_data_len" }, right: { op: "const", value: 1n } } } }, right: { op: "align", alignment: 1, node: { op: "mul", left: { op: "field", param: "client_data.client_data_len" }, right: { op: "const", value: 1n } } } } }
|
|
4094
|
+
root: { op: "align", alignment: 1, node: { op: "add", left: { op: "add", left: { op: "add", left: { op: "add", left: { op: "add", left: { op: "add", left: { op: "add", left: { op: "add", left: { op: "align", alignment: 2, node: { op: "const", value: 2n } }, right: { op: "align", alignment: 1, node: { op: "const", value: 1n } } }, right: { op: "align", alignment: 1, node: { op: "const", value: 32n } } }, right: { op: "align", alignment: 1, node: { op: "const", value: 32n } } }, right: { op: "align", alignment: 2, node: { op: "const", value: 2n } } }, right: { op: "align", alignment: 2, node: { op: "const", value: 2n } } }, right: { op: "align", alignment: 1, node: { op: "mul", left: { op: "field", param: "authenticator_data.authenticator_data_len" }, right: { op: "const", value: 1n } } } }, right: { op: "align", alignment: 1, node: { op: "mul", left: { op: "field", param: "client_data.client_data_len" }, right: { op: "const", value: 1n } } } }, right: { op: "align", alignment: 1, node: { op: "call", typeName: "InstructionData", args: [{ name: "data.data_size", source: "data.data_size" }] } } } }
|
|
3882
4095
|
};
|
|
3883
4096
|
var _ValidateArgs = class _ValidateArgs {
|
|
3884
4097
|
constructor(buffer, params, fieldContext) {
|
|
@@ -3930,14 +4143,6 @@ var _ValidateArgs = class _ValidateArgs {
|
|
|
3930
4143
|
}
|
|
3931
4144
|
throw new Error("ValidateArgs: field reference '" + path + "' is not available; provide fieldContext when creating this view");
|
|
3932
4145
|
}
|
|
3933
|
-
static builder() {
|
|
3934
|
-
return new ValidateArgsBuilder();
|
|
3935
|
-
}
|
|
3936
|
-
static fromBuilder(builder) {
|
|
3937
|
-
const buffer = builder.build();
|
|
3938
|
-
const params = builder.dynamicParams();
|
|
3939
|
-
return _ValidateArgs.from_array(buffer, { params });
|
|
3940
|
-
}
|
|
3941
4146
|
static __tnComputeSequentialLayout(view, buffer) {
|
|
3942
4147
|
const offsets = /* @__PURE__ */ Object.create(null);
|
|
3943
4148
|
const __tnLength = buffer.length;
|
|
@@ -3975,7 +4180,7 @@ var _ValidateArgs = class _ValidateArgs {
|
|
|
3975
4180
|
offsets["client_data"] = __tnCursorMutable;
|
|
3976
4181
|
if (__tnCursorMutable + __tnArrayBytes_client_data > __tnLength) return null;
|
|
3977
4182
|
__tnCursorMutable += __tnArrayBytes_client_data;
|
|
3978
|
-
return
|
|
4183
|
+
return null;
|
|
3979
4184
|
}
|
|
3980
4185
|
static __tnExtractParams(view, buffer) {
|
|
3981
4186
|
if (buffer.length < 69) {
|
|
@@ -4159,6 +4364,29 @@ var _ValidateArgs = class _ValidateArgs {
|
|
|
4159
4364
|
set client_data(value) {
|
|
4160
4365
|
this.set_client_data(value);
|
|
4161
4366
|
}
|
|
4367
|
+
get_target_instruction() {
|
|
4368
|
+
const offset = this.__tnGetDynamicOffset("target_instruction");
|
|
4369
|
+
const tail = this.buffer.subarray(offset);
|
|
4370
|
+
const validation = InstructionData.validate(tail);
|
|
4371
|
+
if (!validation.ok || validation.consumed === void 0) {
|
|
4372
|
+
throw new Error("ValidateArgs: failed to read field 'target_instruction' (invalid nested payload)");
|
|
4373
|
+
}
|
|
4374
|
+
const length = validation.consumed;
|
|
4375
|
+
const slice = tail.subarray(0, length);
|
|
4376
|
+
const opts = validation.params ? { params: validation.params } : void 0;
|
|
4377
|
+
return InstructionData.from_array(slice, opts);
|
|
4378
|
+
}
|
|
4379
|
+
set_target_instruction(value) {
|
|
4380
|
+
const sourceBytes = value.buffer;
|
|
4381
|
+
const offset = this.__tnGetDynamicOffset("target_instruction");
|
|
4382
|
+
this.buffer.set(sourceBytes, offset);
|
|
4383
|
+
}
|
|
4384
|
+
get target_instruction() {
|
|
4385
|
+
return this.get_target_instruction();
|
|
4386
|
+
}
|
|
4387
|
+
set target_instruction(value) {
|
|
4388
|
+
this.set_target_instruction(value);
|
|
4389
|
+
}
|
|
4162
4390
|
static __tnFootprintInternal(__tnParams) {
|
|
4163
4391
|
return __tnEvalFootprint3(__tn_ir_ValidateArgs.root, { params: __tnParams });
|
|
4164
4392
|
}
|
|
@@ -4274,147 +4502,10 @@ var ValidateArgs = _ValidateArgs;
|
|
|
4274
4502
|
})(ValidateArgs || (ValidateArgs = {}));
|
|
4275
4503
|
__tnRegisterFootprint3("ValidateArgs", (params) => ValidateArgs.__tnInvokeFootprint(params));
|
|
4276
4504
|
__tnRegisterValidate3("ValidateArgs", (buffer, params) => ValidateArgs.__tnInvokeValidate(buffer, params));
|
|
4277
|
-
|
|
4278
|
-
|
|
4279
|
-
|
|
4280
|
-
|
|
4281
|
-
this.__tnLastParams = null;
|
|
4282
|
-
this.__tnFam_authenticator_data = null;
|
|
4283
|
-
this.__tnFam_authenticator_dataCount = null;
|
|
4284
|
-
this.__tnFam_client_data = null;
|
|
4285
|
-
this.__tnFam_client_dataCount = null;
|
|
4286
|
-
this.buffer = new Uint8Array(71);
|
|
4287
|
-
this.view = new DataView(this.buffer.buffer, this.buffer.byteOffset, this.buffer.byteLength);
|
|
4288
|
-
}
|
|
4289
|
-
__tnInvalidate() {
|
|
4290
|
-
this.__tnCachedParams = null;
|
|
4291
|
-
this.__tnLastBuffer = null;
|
|
4292
|
-
this.__tnLastParams = null;
|
|
4293
|
-
}
|
|
4294
|
-
set_wallet_account_idx(value) {
|
|
4295
|
-
this.view.setUint16(0, value, true);
|
|
4296
|
-
this.__tnInvalidate();
|
|
4297
|
-
return this;
|
|
4298
|
-
}
|
|
4299
|
-
set_auth_idx(value) {
|
|
4300
|
-
this.view.setUint8(2, value);
|
|
4301
|
-
this.__tnInvalidate();
|
|
4302
|
-
return this;
|
|
4303
|
-
}
|
|
4304
|
-
set_signature_r(value) {
|
|
4305
|
-
if (value.length !== 32) throw new Error("signature_r expects 32 bytes");
|
|
4306
|
-
this.buffer.set(value, 3);
|
|
4307
|
-
this.__tnInvalidate();
|
|
4308
|
-
return this;
|
|
4309
|
-
}
|
|
4310
|
-
set_signature_s(value) {
|
|
4311
|
-
if (value.length !== 32) throw new Error("signature_s expects 32 bytes");
|
|
4312
|
-
this.buffer.set(value, 35);
|
|
4313
|
-
this.__tnInvalidate();
|
|
4314
|
-
return this;
|
|
4315
|
-
}
|
|
4316
|
-
set_authenticator_data_len(value) {
|
|
4317
|
-
this.view.setUint16(67, value, true);
|
|
4318
|
-
this.__tnInvalidate();
|
|
4319
|
-
return this;
|
|
4320
|
-
}
|
|
4321
|
-
set_client_data_len(value) {
|
|
4322
|
-
this.view.setUint16(69, value, true);
|
|
4323
|
-
this.__tnInvalidate();
|
|
4324
|
-
return this;
|
|
4325
|
-
}
|
|
4326
|
-
authenticator_data() {
|
|
4327
|
-
if (!this.__tnFamWriter_authenticator_data) {
|
|
4328
|
-
this.__tnFamWriter_authenticator_data = __tnCreateFamWriter2(this, "authenticator_data", (payload) => {
|
|
4329
|
-
const bytes = new Uint8Array(payload);
|
|
4330
|
-
const elementCount = bytes.length;
|
|
4331
|
-
this.__tnFam_authenticator_data = bytes;
|
|
4332
|
-
this.__tnFam_authenticator_dataCount = elementCount;
|
|
4333
|
-
this.set_authenticator_data_len(elementCount);
|
|
4334
|
-
this.__tnInvalidate();
|
|
4335
|
-
});
|
|
4336
|
-
}
|
|
4337
|
-
return this.__tnFamWriter_authenticator_data;
|
|
4338
|
-
}
|
|
4339
|
-
client_data() {
|
|
4340
|
-
if (!this.__tnFamWriter_client_data) {
|
|
4341
|
-
this.__tnFamWriter_client_data = __tnCreateFamWriter2(this, "client_data", (payload) => {
|
|
4342
|
-
const bytes = new Uint8Array(payload);
|
|
4343
|
-
const elementCount = bytes.length;
|
|
4344
|
-
this.__tnFam_client_data = bytes;
|
|
4345
|
-
this.__tnFam_client_dataCount = elementCount;
|
|
4346
|
-
this.set_client_data_len(elementCount);
|
|
4347
|
-
this.__tnInvalidate();
|
|
4348
|
-
});
|
|
4349
|
-
}
|
|
4350
|
-
return this.__tnFamWriter_client_data;
|
|
4351
|
-
}
|
|
4352
|
-
build() {
|
|
4353
|
-
const params = this.__tnComputeParams();
|
|
4354
|
-
const size = ValidateArgs.footprintFromParams(params);
|
|
4355
|
-
const buffer = new Uint8Array(size);
|
|
4356
|
-
this.__tnWriteInto(buffer);
|
|
4357
|
-
this.__tnValidateOrThrow(buffer, params);
|
|
4358
|
-
return buffer;
|
|
4359
|
-
}
|
|
4360
|
-
buildInto(target, offset = 0) {
|
|
4361
|
-
const params = this.__tnComputeParams();
|
|
4362
|
-
const size = ValidateArgs.footprintFromParams(params);
|
|
4363
|
-
if (target.length - offset < size) throw new Error("ValidateArgsBuilder: target buffer too small");
|
|
4364
|
-
const slice = target.subarray(offset, offset + size);
|
|
4365
|
-
this.__tnWriteInto(slice);
|
|
4366
|
-
this.__tnValidateOrThrow(slice, params);
|
|
4367
|
-
return target;
|
|
4368
|
-
}
|
|
4369
|
-
finish() {
|
|
4370
|
-
const buffer = this.build();
|
|
4371
|
-
const params = this.__tnLastParams ?? this.__tnComputeParams();
|
|
4372
|
-
const view = ValidateArgs.from_array(buffer, { params });
|
|
4373
|
-
if (!view) throw new Error("ValidateArgsBuilder: failed to finalize view");
|
|
4374
|
-
return view;
|
|
4375
|
-
}
|
|
4376
|
-
finishView() {
|
|
4377
|
-
return this.finish();
|
|
4378
|
-
}
|
|
4379
|
-
dynamicParams() {
|
|
4380
|
-
return this.__tnComputeParams();
|
|
4381
|
-
}
|
|
4382
|
-
__tnComputeParams() {
|
|
4383
|
-
if (this.__tnCachedParams) return this.__tnCachedParams;
|
|
4384
|
-
const params = ValidateArgs.Params.fromValues({
|
|
4385
|
-
authenticator_data_authenticator_data_len: (() => {
|
|
4386
|
-
if (this.__tnFam_authenticator_dataCount === null) throw new Error("ValidateArgsBuilder: field 'authenticator_data' must be written before computing params");
|
|
4387
|
-
return __tnToBigInt3(this.__tnFam_authenticator_dataCount);
|
|
4388
|
-
})(),
|
|
4389
|
-
client_data_client_data_len: (() => {
|
|
4390
|
-
if (this.__tnFam_client_dataCount === null) throw new Error("ValidateArgsBuilder: field 'client_data' must be written before computing params");
|
|
4391
|
-
return __tnToBigInt3(this.__tnFam_client_dataCount);
|
|
4392
|
-
})()
|
|
4393
|
-
});
|
|
4394
|
-
this.__tnCachedParams = params;
|
|
4395
|
-
return params;
|
|
4396
|
-
}
|
|
4397
|
-
__tnWriteInto(target) {
|
|
4398
|
-
target.set(this.buffer, 0);
|
|
4399
|
-
let cursor = this.buffer.length;
|
|
4400
|
-
const __tnLocal_authenticator_data_bytes = this.__tnFam_authenticator_data;
|
|
4401
|
-
if (!__tnLocal_authenticator_data_bytes) throw new Error("ValidateArgsBuilder: field 'authenticator_data' must be written before build");
|
|
4402
|
-
target.set(__tnLocal_authenticator_data_bytes, cursor);
|
|
4403
|
-
cursor += __tnLocal_authenticator_data_bytes.length;
|
|
4404
|
-
const __tnLocal_client_data_bytes = this.__tnFam_client_data;
|
|
4405
|
-
if (!__tnLocal_client_data_bytes) throw new Error("ValidateArgsBuilder: field 'client_data' must be written before build");
|
|
4406
|
-
target.set(__tnLocal_client_data_bytes, cursor);
|
|
4407
|
-
cursor += __tnLocal_client_data_bytes.length;
|
|
4408
|
-
}
|
|
4409
|
-
__tnValidateOrThrow(buffer, params) {
|
|
4410
|
-
const result = ValidateArgs.validate(buffer, { params });
|
|
4411
|
-
if (!result.ok) {
|
|
4412
|
-
throw new Error(`${ValidateArgs}Builder: builder produced invalid buffer (code=${result.code ?? "unknown"})`);
|
|
4413
|
-
}
|
|
4414
|
-
this.__tnLastParams = result.params ?? params;
|
|
4415
|
-
this.__tnLastBuffer = buffer;
|
|
4416
|
-
}
|
|
4417
|
-
};
|
|
4505
|
+
__tnRegisterDynamicValidate3("ValidateArgs", (buffer) => {
|
|
4506
|
+
const result = ValidateArgs.validate(buffer);
|
|
4507
|
+
return { ok: result.ok, code: result.code, consumed: result.consumed === void 0 ? void 0 : __tnToBigInt3(result.consumed) };
|
|
4508
|
+
});
|
|
4418
4509
|
var __tn_ir_WalletAccount = {
|
|
4419
4510
|
typeName: "WalletAccount",
|
|
4420
4511
|
root: { op: "const", value: 9n }
|
|
@@ -4509,8 +4600,6 @@ var WalletAccount = class _WalletAccount {
|
|
|
4509
4600
|
return new _WalletAccount(buffer);
|
|
4510
4601
|
}
|
|
4511
4602
|
};
|
|
4512
|
-
__tnRegisterFootprint3("WalletAccount", (params) => WalletAccount.__tnInvokeFootprint(params));
|
|
4513
|
-
__tnRegisterValidate3("WalletAccount", (buffer, params) => WalletAccount.__tnInvokeValidate(buffer, params));
|
|
4514
4603
|
var WalletAccountBuilder = class {
|
|
4515
4604
|
constructor() {
|
|
4516
4605
|
this.buffer = new Uint8Array(9);
|
|
@@ -4539,7 +4628,13 @@ var WalletAccountBuilder = class {
|
|
|
4539
4628
|
return view;
|
|
4540
4629
|
}
|
|
4541
4630
|
};
|
|
4542
|
-
|
|
4631
|
+
__tnRegisterFootprint3("WalletAccount", (params) => WalletAccount.__tnInvokeFootprint(params));
|
|
4632
|
+
__tnRegisterValidate3("WalletAccount", (buffer, params) => WalletAccount.__tnInvokeValidate(buffer, params));
|
|
4633
|
+
__tnRegisterDynamicValidate3("WalletAccount", (buffer) => {
|
|
4634
|
+
const result = WalletAccount.validate(buffer);
|
|
4635
|
+
return { ok: result.ok, code: result.code, consumed: result.consumed === void 0 ? void 0 : __tnToBigInt3(result.consumed) };
|
|
4636
|
+
});
|
|
4637
|
+
var __tn_ir_WalletCreatedEventData = {
|
|
4543
4638
|
typeName: "WalletCreatedEventData",
|
|
4544
4639
|
root: { op: "const", value: 97n }
|
|
4545
4640
|
};
|
|
@@ -4630,8 +4725,6 @@ var WalletCreatedEventData = class _WalletCreatedEventData {
|
|
|
4630
4725
|
return new _WalletCreatedEventData(buffer);
|
|
4631
4726
|
}
|
|
4632
4727
|
};
|
|
4633
|
-
__tnRegisterFootprint3("WalletCreatedEventData", (params) => WalletCreatedEventData.__tnInvokeFootprint(params));
|
|
4634
|
-
__tnRegisterValidate3("WalletCreatedEventData", (buffer, params) => WalletCreatedEventData.__tnInvokeValidate(buffer, params));
|
|
4635
4728
|
var WalletCreatedEventDataBuilder = class {
|
|
4636
4729
|
constructor() {
|
|
4637
4730
|
this.buffer = new Uint8Array(97);
|
|
@@ -4661,6 +4754,12 @@ var WalletCreatedEventDataBuilder = class {
|
|
|
4661
4754
|
return view;
|
|
4662
4755
|
}
|
|
4663
4756
|
};
|
|
4757
|
+
__tnRegisterFootprint3("WalletCreatedEventData", (params) => WalletCreatedEventData.__tnInvokeFootprint(params));
|
|
4758
|
+
__tnRegisterValidate3("WalletCreatedEventData", (buffer, params) => WalletCreatedEventData.__tnInvokeValidate(buffer, params));
|
|
4759
|
+
__tnRegisterDynamicValidate3("WalletCreatedEventData", (buffer) => {
|
|
4760
|
+
const result = WalletCreatedEventData.validate(buffer);
|
|
4761
|
+
return { ok: result.ok, code: result.code, consumed: result.consumed === void 0 ? void 0 : __tnToBigInt3(result.consumed) };
|
|
4762
|
+
});
|
|
4664
4763
|
var __tn_ir_WalletTransferEventData = {
|
|
4665
4764
|
typeName: "WalletTransferEventData",
|
|
4666
4765
|
root: { op: "const", value: 72n }
|
|
@@ -4766,8 +4865,6 @@ var WalletTransferEventData = class _WalletTransferEventData {
|
|
|
4766
4865
|
return new _WalletTransferEventData(buffer);
|
|
4767
4866
|
}
|
|
4768
4867
|
};
|
|
4769
|
-
__tnRegisterFootprint3("WalletTransferEventData", (params) => WalletTransferEventData.__tnInvokeFootprint(params));
|
|
4770
|
-
__tnRegisterValidate3("WalletTransferEventData", (buffer, params) => WalletTransferEventData.__tnInvokeValidate(buffer, params));
|
|
4771
4868
|
var WalletTransferEventDataBuilder = class {
|
|
4772
4869
|
constructor() {
|
|
4773
4870
|
this.buffer = new Uint8Array(72);
|
|
@@ -4802,6 +4899,12 @@ var WalletTransferEventDataBuilder = class {
|
|
|
4802
4899
|
return view;
|
|
4803
4900
|
}
|
|
4804
4901
|
};
|
|
4902
|
+
__tnRegisterFootprint3("WalletTransferEventData", (params) => WalletTransferEventData.__tnInvokeFootprint(params));
|
|
4903
|
+
__tnRegisterValidate3("WalletTransferEventData", (buffer, params) => WalletTransferEventData.__tnInvokeValidate(buffer, params));
|
|
4904
|
+
__tnRegisterDynamicValidate3("WalletTransferEventData", (buffer) => {
|
|
4905
|
+
const result = WalletTransferEventData.validate(buffer);
|
|
4906
|
+
return { ok: result.ok, code: result.code, consumed: result.consumed === void 0 ? void 0 : __tnToBigInt3(result.consumed) };
|
|
4907
|
+
});
|
|
4805
4908
|
var __tn_ir_WalletValidatedEventData = {
|
|
4806
4909
|
typeName: "WalletValidatedEventData",
|
|
4807
4910
|
root: { op: "const", value: 40n }
|
|
@@ -4891,8 +4994,6 @@ var WalletValidatedEventData = class _WalletValidatedEventData {
|
|
|
4891
4994
|
return new _WalletValidatedEventData(buffer);
|
|
4892
4995
|
}
|
|
4893
4996
|
};
|
|
4894
|
-
__tnRegisterFootprint3("WalletValidatedEventData", (params) => WalletValidatedEventData.__tnInvokeFootprint(params));
|
|
4895
|
-
__tnRegisterValidate3("WalletValidatedEventData", (buffer, params) => WalletValidatedEventData.__tnInvokeValidate(buffer, params));
|
|
4896
4997
|
var WalletValidatedEventDataBuilder = class {
|
|
4897
4998
|
constructor() {
|
|
4898
4999
|
this.buffer = new Uint8Array(40);
|
|
@@ -4922,9 +5023,15 @@ var WalletValidatedEventDataBuilder = class {
|
|
|
4922
5023
|
return view;
|
|
4923
5024
|
}
|
|
4924
5025
|
};
|
|
5026
|
+
__tnRegisterFootprint3("WalletValidatedEventData", (params) => WalletValidatedEventData.__tnInvokeFootprint(params));
|
|
5027
|
+
__tnRegisterValidate3("WalletValidatedEventData", (buffer, params) => WalletValidatedEventData.__tnInvokeValidate(buffer, params));
|
|
5028
|
+
__tnRegisterDynamicValidate3("WalletValidatedEventData", (buffer) => {
|
|
5029
|
+
const result = WalletValidatedEventData.validate(buffer);
|
|
5030
|
+
return { ok: result.ok, code: result.code, consumed: result.consumed === void 0 ? void 0 : __tnToBigInt3(result.consumed) };
|
|
5031
|
+
});
|
|
4925
5032
|
var __tn_ir_AddAuthorityArgs = {
|
|
4926
5033
|
typeName: "AddAuthorityArgs",
|
|
4927
|
-
root: { op: "const", value:
|
|
5034
|
+
root: { op: "const", value: 67n }
|
|
4928
5035
|
};
|
|
4929
5036
|
var AddAuthorityArgs = class _AddAuthorityArgs {
|
|
4930
5037
|
constructor(buffer) {
|
|
@@ -4942,14 +5049,28 @@ var AddAuthorityArgs = class _AddAuthorityArgs {
|
|
|
4942
5049
|
const buffer = builder.build();
|
|
4943
5050
|
return _AddAuthorityArgs.from_array(buffer);
|
|
4944
5051
|
}
|
|
4945
|
-
|
|
5052
|
+
get_wallet_account_idx() {
|
|
5053
|
+
const offset = 0;
|
|
5054
|
+
return this.view.getUint16(offset, true);
|
|
5055
|
+
}
|
|
5056
|
+
set_wallet_account_idx(value) {
|
|
4946
5057
|
const offset = 0;
|
|
5058
|
+
this.view.setUint16(offset, value, true);
|
|
5059
|
+
}
|
|
5060
|
+
get wallet_account_idx() {
|
|
5061
|
+
return this.get_wallet_account_idx();
|
|
5062
|
+
}
|
|
5063
|
+
set wallet_account_idx(value) {
|
|
5064
|
+
this.set_wallet_account_idx(value);
|
|
5065
|
+
}
|
|
5066
|
+
get_authority() {
|
|
5067
|
+
const offset = 2;
|
|
4947
5068
|
const slice = this.buffer.subarray(offset, offset + 65);
|
|
4948
5069
|
return Authority.from_array(slice);
|
|
4949
5070
|
}
|
|
4950
5071
|
set_authority(value) {
|
|
4951
5072
|
const sourceBytes = value.buffer;
|
|
4952
|
-
const offset =
|
|
5073
|
+
const offset = 2;
|
|
4953
5074
|
this.buffer.set(sourceBytes, offset);
|
|
4954
5075
|
}
|
|
4955
5076
|
get authority() {
|
|
@@ -4982,8 +5103,8 @@ var AddAuthorityArgs = class _AddAuthorityArgs {
|
|
|
4982
5103
|
return __tnBigIntToNumber3(irResult, "AddAuthorityArgs::footprint");
|
|
4983
5104
|
}
|
|
4984
5105
|
static validate(buffer, _opts) {
|
|
4985
|
-
if (buffer.length <
|
|
4986
|
-
return { ok: true, consumed:
|
|
5106
|
+
if (buffer.length < 67) return { ok: false, code: "tn.buffer_too_small", consumed: 67 };
|
|
5107
|
+
return { ok: true, consumed: 67 };
|
|
4987
5108
|
}
|
|
4988
5109
|
static from_array(buffer) {
|
|
4989
5110
|
if (!buffer || buffer.length === void 0) {
|
|
@@ -4997,16 +5118,18 @@ var AddAuthorityArgs = class _AddAuthorityArgs {
|
|
|
4997
5118
|
return new _AddAuthorityArgs(buffer);
|
|
4998
5119
|
}
|
|
4999
5120
|
};
|
|
5000
|
-
__tnRegisterFootprint3("AddAuthorityArgs", (params) => AddAuthorityArgs.__tnInvokeFootprint(params));
|
|
5001
|
-
__tnRegisterValidate3("AddAuthorityArgs", (buffer, params) => AddAuthorityArgs.__tnInvokeValidate(buffer, params));
|
|
5002
5121
|
var AddAuthorityArgsBuilder = class {
|
|
5003
5122
|
constructor() {
|
|
5004
|
-
this.buffer = new Uint8Array(
|
|
5123
|
+
this.buffer = new Uint8Array(67);
|
|
5005
5124
|
this.view = new DataView(this.buffer.buffer, this.buffer.byteOffset, this.buffer.byteLength);
|
|
5006
5125
|
}
|
|
5126
|
+
set_wallet_account_idx(value) {
|
|
5127
|
+
this.view.setUint16(0, value, true);
|
|
5128
|
+
return this;
|
|
5129
|
+
}
|
|
5007
5130
|
set_authority(value) {
|
|
5008
5131
|
if (value.length !== 65) throw new Error("authority expects 65 bytes");
|
|
5009
|
-
this.buffer.set(value,
|
|
5132
|
+
this.buffer.set(value, 2);
|
|
5010
5133
|
return this;
|
|
5011
5134
|
}
|
|
5012
5135
|
build() {
|
|
@@ -5023,6 +5146,12 @@ var AddAuthorityArgsBuilder = class {
|
|
|
5023
5146
|
return view;
|
|
5024
5147
|
}
|
|
5025
5148
|
};
|
|
5149
|
+
__tnRegisterFootprint3("AddAuthorityArgs", (params) => AddAuthorityArgs.__tnInvokeFootprint(params));
|
|
5150
|
+
__tnRegisterValidate3("AddAuthorityArgs", (buffer, params) => AddAuthorityArgs.__tnInvokeValidate(buffer, params));
|
|
5151
|
+
__tnRegisterDynamicValidate3("AddAuthorityArgs", (buffer) => {
|
|
5152
|
+
const result = AddAuthorityArgs.validate(buffer);
|
|
5153
|
+
return { ok: result.ok, code: result.code, consumed: result.consumed === void 0 ? void 0 : __tnToBigInt3(result.consumed) };
|
|
5154
|
+
});
|
|
5026
5155
|
var __tn_ir_CredentialLookup = {
|
|
5027
5156
|
typeName: "CredentialLookup",
|
|
5028
5157
|
root: { op: "const", value: 32n }
|
|
@@ -5098,8 +5227,6 @@ var CredentialLookup = class _CredentialLookup {
|
|
|
5098
5227
|
return new _CredentialLookup(buffer);
|
|
5099
5228
|
}
|
|
5100
5229
|
};
|
|
5101
|
-
__tnRegisterFootprint3("CredentialLookup", (params) => CredentialLookup.__tnInvokeFootprint(params));
|
|
5102
|
-
__tnRegisterValidate3("CredentialLookup", (buffer, params) => CredentialLookup.__tnInvokeValidate(buffer, params));
|
|
5103
5230
|
var CredentialLookupBuilder = class {
|
|
5104
5231
|
constructor() {
|
|
5105
5232
|
this.buffer = new Uint8Array(32);
|
|
@@ -5124,6 +5251,12 @@ var CredentialLookupBuilder = class {
|
|
|
5124
5251
|
return view;
|
|
5125
5252
|
}
|
|
5126
5253
|
};
|
|
5254
|
+
__tnRegisterFootprint3("CredentialLookup", (params) => CredentialLookup.__tnInvokeFootprint(params));
|
|
5255
|
+
__tnRegisterValidate3("CredentialLookup", (buffer, params) => CredentialLookup.__tnInvokeValidate(buffer, params));
|
|
5256
|
+
__tnRegisterDynamicValidate3("CredentialLookup", (buffer) => {
|
|
5257
|
+
const result = CredentialLookup.validate(buffer);
|
|
5258
|
+
return { ok: result.ok, code: result.code, consumed: result.consumed === void 0 ? void 0 : __tnToBigInt3(result.consumed) };
|
|
5259
|
+
});
|
|
5127
5260
|
var __tn_ir_CredentialRegisteredEventData = {
|
|
5128
5261
|
typeName: "CredentialRegisteredEventData",
|
|
5129
5262
|
root: { op: "const", value: 64n }
|
|
@@ -5215,8 +5348,6 @@ var CredentialRegisteredEventData = class _CredentialRegisteredEventData {
|
|
|
5215
5348
|
return new _CredentialRegisteredEventData(buffer);
|
|
5216
5349
|
}
|
|
5217
5350
|
};
|
|
5218
|
-
__tnRegisterFootprint3("CredentialRegisteredEventData", (params) => CredentialRegisteredEventData.__tnInvokeFootprint(params));
|
|
5219
|
-
__tnRegisterValidate3("CredentialRegisteredEventData", (buffer, params) => CredentialRegisteredEventData.__tnInvokeValidate(buffer, params));
|
|
5220
5351
|
var CredentialRegisteredEventDataBuilder = class {
|
|
5221
5352
|
constructor() {
|
|
5222
5353
|
this.buffer = new Uint8Array(64);
|
|
@@ -5246,344 +5377,12 @@ var CredentialRegisteredEventDataBuilder = class {
|
|
|
5246
5377
|
return view;
|
|
5247
5378
|
}
|
|
5248
5379
|
};
|
|
5249
|
-
|
|
5250
|
-
|
|
5251
|
-
|
|
5252
|
-
|
|
5253
|
-
|
|
5254
|
-
|
|
5255
|
-
this.buffer = buffer;
|
|
5256
|
-
this.__tnFieldContext = null;
|
|
5257
|
-
this.view = new DataView(buffer.buffer, buffer.byteOffset, buffer.byteLength);
|
|
5258
|
-
this.__tnFieldContext = fieldContext ?? null;
|
|
5259
|
-
if (params) {
|
|
5260
|
-
this.__tnParams = params;
|
|
5261
|
-
} else {
|
|
5262
|
-
const derived = _InvokeArgs.__tnExtractParams(this.view, buffer);
|
|
5263
|
-
if (!derived) {
|
|
5264
|
-
throw new Error("InvokeArgs: failed to derive dynamic parameters");
|
|
5265
|
-
}
|
|
5266
|
-
this.__tnParams = derived.params;
|
|
5267
|
-
}
|
|
5268
|
-
}
|
|
5269
|
-
static __tnCreateView(buffer, opts) {
|
|
5270
|
-
if (!buffer || buffer.length === void 0) throw new Error("InvokeArgs.__tnCreateView requires a Uint8Array");
|
|
5271
|
-
let params = opts?.params ?? null;
|
|
5272
|
-
if (!params) {
|
|
5273
|
-
const view = new DataView(buffer.buffer, buffer.byteOffset, buffer.byteLength);
|
|
5274
|
-
const derived = _InvokeArgs.__tnExtractParams(view, buffer);
|
|
5275
|
-
if (!derived) throw new Error("InvokeArgs.__tnCreateView: failed to derive params");
|
|
5276
|
-
params = derived.params;
|
|
5277
|
-
}
|
|
5278
|
-
const instance = new _InvokeArgs(new Uint8Array(buffer), params, opts?.fieldContext);
|
|
5279
|
-
return instance;
|
|
5280
|
-
}
|
|
5281
|
-
dynamicParams() {
|
|
5282
|
-
return this.__tnParams;
|
|
5283
|
-
}
|
|
5284
|
-
withFieldContext(context) {
|
|
5285
|
-
this.__tnFieldContext = context;
|
|
5286
|
-
return this;
|
|
5287
|
-
}
|
|
5288
|
-
__tnResolveFieldRef(path) {
|
|
5289
|
-
const getterName = `get_${path.replace(/[.]/g, "_")}`;
|
|
5290
|
-
const getter = this[getterName];
|
|
5291
|
-
if (typeof getter === "function") {
|
|
5292
|
-
const value = getter.call(this);
|
|
5293
|
-
return typeof value === "bigint" ? __tnBigIntToNumber3(value, "InvokeArgs::__tnResolveFieldRef") : value;
|
|
5294
|
-
}
|
|
5295
|
-
if (this.__tnFieldContext && Object.prototype.hasOwnProperty.call(this.__tnFieldContext, path)) {
|
|
5296
|
-
const contextValue = this.__tnFieldContext[path];
|
|
5297
|
-
return typeof contextValue === "bigint" ? __tnBigIntToNumber3(contextValue, "InvokeArgs::__tnResolveFieldRef") : contextValue;
|
|
5298
|
-
}
|
|
5299
|
-
throw new Error("InvokeArgs: field reference '" + path + "' is not available; provide fieldContext when creating this view");
|
|
5300
|
-
}
|
|
5301
|
-
static builder() {
|
|
5302
|
-
return new InvokeArgsBuilder();
|
|
5303
|
-
}
|
|
5304
|
-
static fromBuilder(builder) {
|
|
5305
|
-
const buffer = builder.build();
|
|
5306
|
-
const params = builder.dynamicParams();
|
|
5307
|
-
return _InvokeArgs.from_array(buffer, { params });
|
|
5308
|
-
}
|
|
5309
|
-
static __tnExtractParams(view, buffer) {
|
|
5310
|
-
if (buffer.length < 34) {
|
|
5311
|
-
return null;
|
|
5312
|
-
}
|
|
5313
|
-
const __tnParam_instr_instr_len = __tnToBigInt3(view.getUint16(32, true));
|
|
5314
|
-
const __tnExtractedParams = _InvokeArgs.Params.fromValues({
|
|
5315
|
-
instr_instr_len: __tnParam_instr_instr_len
|
|
5316
|
-
});
|
|
5317
|
-
return { params: __tnExtractedParams, derived: null };
|
|
5318
|
-
}
|
|
5319
|
-
get_program_pubkey() {
|
|
5320
|
-
const offset = 0;
|
|
5321
|
-
const slice = this.buffer.subarray(offset, offset + 32);
|
|
5322
|
-
return Pubkey.from_array(slice);
|
|
5323
|
-
}
|
|
5324
|
-
set_program_pubkey(value) {
|
|
5325
|
-
const sourceBytes = value.buffer;
|
|
5326
|
-
const offset = 0;
|
|
5327
|
-
this.buffer.set(sourceBytes, offset);
|
|
5328
|
-
}
|
|
5329
|
-
get program_pubkey() {
|
|
5330
|
-
return this.get_program_pubkey();
|
|
5331
|
-
}
|
|
5332
|
-
set program_pubkey(value) {
|
|
5333
|
-
this.set_program_pubkey(value);
|
|
5334
|
-
}
|
|
5335
|
-
get_instr_len() {
|
|
5336
|
-
const offset = 32;
|
|
5337
|
-
return this.view.getUint16(offset, true);
|
|
5338
|
-
}
|
|
5339
|
-
set_instr_len(value) {
|
|
5340
|
-
const offset = 32;
|
|
5341
|
-
this.view.setUint16(offset, value, true);
|
|
5342
|
-
}
|
|
5343
|
-
get instr_len() {
|
|
5344
|
-
return this.get_instr_len();
|
|
5345
|
-
}
|
|
5346
|
-
set instr_len(value) {
|
|
5347
|
-
this.set_instr_len(value);
|
|
5348
|
-
}
|
|
5349
|
-
get_instr_length() {
|
|
5350
|
-
return this.__tnResolveFieldRef("instr_len");
|
|
5351
|
-
}
|
|
5352
|
-
get_instr_at(index) {
|
|
5353
|
-
const offset = 34;
|
|
5354
|
-
return this.view.getUint8(offset + index * 1);
|
|
5355
|
-
}
|
|
5356
|
-
get_instr() {
|
|
5357
|
-
const len = this.get_instr_length();
|
|
5358
|
-
const result = [];
|
|
5359
|
-
for (let i = 0; i < len; i++) {
|
|
5360
|
-
result.push(this.get_instr_at(i));
|
|
5361
|
-
}
|
|
5362
|
-
return result;
|
|
5363
|
-
}
|
|
5364
|
-
set_instr_at(index, value) {
|
|
5365
|
-
const offset = 34;
|
|
5366
|
-
this.view.setUint8(offset + index * 1, value);
|
|
5367
|
-
}
|
|
5368
|
-
set_instr(value) {
|
|
5369
|
-
const len = Math.min(this.get_instr_length(), value.length);
|
|
5370
|
-
for (let i = 0; i < len; i++) {
|
|
5371
|
-
this.set_instr_at(i, value[i]);
|
|
5372
|
-
}
|
|
5373
|
-
}
|
|
5374
|
-
get instr() {
|
|
5375
|
-
return this.get_instr();
|
|
5376
|
-
}
|
|
5377
|
-
set instr(value) {
|
|
5378
|
-
this.set_instr(value);
|
|
5379
|
-
}
|
|
5380
|
-
static __tnFootprintInternal(__tnParams) {
|
|
5381
|
-
return __tnEvalFootprint3(__tn_ir_InvokeArgs.root, { params: __tnParams });
|
|
5382
|
-
}
|
|
5383
|
-
static __tnValidateInternal(buffer, __tnParams) {
|
|
5384
|
-
return __tnValidateIrTree3(__tn_ir_InvokeArgs, buffer, __tnParams);
|
|
5385
|
-
}
|
|
5386
|
-
static __tnInvokeFootprint(__tnParams) {
|
|
5387
|
-
return this.__tnFootprintInternal(__tnParams);
|
|
5388
|
-
}
|
|
5389
|
-
static __tnInvokeValidate(buffer, __tnParams) {
|
|
5390
|
-
return this.__tnValidateInternal(buffer, __tnParams);
|
|
5391
|
-
}
|
|
5392
|
-
static footprintIr(instr_instr_len) {
|
|
5393
|
-
const params = _InvokeArgs.Params.fromValues({
|
|
5394
|
-
instr_instr_len
|
|
5395
|
-
});
|
|
5396
|
-
return this.footprintIrFromParams(params);
|
|
5397
|
-
}
|
|
5398
|
-
static __tnPackParams(params) {
|
|
5399
|
-
const record = /* @__PURE__ */ Object.create(null);
|
|
5400
|
-
record["instr.instr_len"] = params.instr_instr_len;
|
|
5401
|
-
return record;
|
|
5402
|
-
}
|
|
5403
|
-
static footprintIrFromParams(params) {
|
|
5404
|
-
const __tnParams = this.__tnPackParams(params);
|
|
5405
|
-
return this.__tnFootprintInternal(__tnParams);
|
|
5406
|
-
}
|
|
5407
|
-
static footprintFromParams(params) {
|
|
5408
|
-
const irResult = this.footprintIrFromParams(params);
|
|
5409
|
-
const maxSafe = __tnToBigInt3(Number.MAX_SAFE_INTEGER);
|
|
5410
|
-
if (__tnBigIntGreaterThan3(irResult, maxSafe)) throw new Error("footprint exceeds Number.MAX_SAFE_INTEGER for InvokeArgs");
|
|
5411
|
-
return __tnBigIntToNumber3(irResult, "InvokeArgs::footprintFromParams");
|
|
5412
|
-
}
|
|
5413
|
-
static footprintFromValues(input) {
|
|
5414
|
-
const params = _InvokeArgs.params(input);
|
|
5415
|
-
return this.footprintFromParams(params);
|
|
5416
|
-
}
|
|
5417
|
-
static footprint(params) {
|
|
5418
|
-
return this.footprintFromParams(params);
|
|
5419
|
-
}
|
|
5420
|
-
static validate(buffer, opts) {
|
|
5421
|
-
if (!buffer || buffer.length === void 0) {
|
|
5422
|
-
return { ok: false, code: "tn.invalid_buffer" };
|
|
5423
|
-
}
|
|
5424
|
-
const view = new DataView(buffer.buffer, buffer.byteOffset, buffer.byteLength);
|
|
5425
|
-
let params = opts?.params ?? null;
|
|
5426
|
-
if (!params) {
|
|
5427
|
-
const extracted = this.__tnExtractParams(view, buffer);
|
|
5428
|
-
if (!extracted) return { ok: false, code: "tn.param_extraction_failed" };
|
|
5429
|
-
params = extracted.params;
|
|
5430
|
-
}
|
|
5431
|
-
const __tnParamsRec = this.__tnPackParams(params);
|
|
5432
|
-
const irResult = this.__tnValidateInternal(buffer, __tnParamsRec);
|
|
5433
|
-
if (!irResult.ok) {
|
|
5434
|
-
return { ok: false, code: irResult.code, consumed: irResult.consumed ? __tnBigIntToNumber3(irResult.consumed, "InvokeArgs::validate") : void 0, params };
|
|
5435
|
-
}
|
|
5436
|
-
const consumed = irResult.consumed ? __tnBigIntToNumber3(irResult.consumed, "InvokeArgs::validate") : void 0;
|
|
5437
|
-
return { ok: true, consumed, params };
|
|
5438
|
-
}
|
|
5439
|
-
static from_array(buffer, opts) {
|
|
5440
|
-
if (!buffer || buffer.length === void 0) {
|
|
5441
|
-
return null;
|
|
5442
|
-
}
|
|
5443
|
-
const view = new DataView(buffer.buffer, buffer.byteOffset, buffer.byteLength);
|
|
5444
|
-
let params = opts?.params ?? null;
|
|
5445
|
-
if (!params) {
|
|
5446
|
-
const derived = this.__tnExtractParams(view, buffer);
|
|
5447
|
-
if (!derived) return null;
|
|
5448
|
-
params = derived.params;
|
|
5449
|
-
}
|
|
5450
|
-
const validation = this.validate(buffer, { params });
|
|
5451
|
-
if (!validation.ok) {
|
|
5452
|
-
return null;
|
|
5453
|
-
}
|
|
5454
|
-
const cached = validation.params ?? params;
|
|
5455
|
-
const state = new _InvokeArgs(buffer, cached);
|
|
5456
|
-
return state;
|
|
5457
|
-
}
|
|
5458
|
-
};
|
|
5459
|
-
_InvokeArgs.flexibleArrayWriters = Object.freeze([
|
|
5460
|
-
{ field: "instr", method: "instr", sizeField: "instr_len", paramKey: "instr_len", elementSize: 1 }
|
|
5461
|
-
]);
|
|
5462
|
-
var InvokeArgs = _InvokeArgs;
|
|
5463
|
-
((InvokeArgs2) => {
|
|
5464
|
-
InvokeArgs2.ParamKeys = Object.freeze({
|
|
5465
|
-
instr_instr_len: "instr.instr_len"
|
|
5466
|
-
});
|
|
5467
|
-
InvokeArgs2.Params = {
|
|
5468
|
-
fromValues(input) {
|
|
5469
|
-
return {
|
|
5470
|
-
instr_instr_len: __tnToBigInt3(input.instr_instr_len)
|
|
5471
|
-
};
|
|
5472
|
-
},
|
|
5473
|
-
fromBuilder(source) {
|
|
5474
|
-
if (source.dynamicParams) {
|
|
5475
|
-
return source.dynamicParams();
|
|
5476
|
-
}
|
|
5477
|
-
if (source.params) {
|
|
5478
|
-
return source.params;
|
|
5479
|
-
}
|
|
5480
|
-
return source;
|
|
5481
|
-
}
|
|
5482
|
-
};
|
|
5483
|
-
function params(input) {
|
|
5484
|
-
return InvokeArgs2.Params.fromValues(input);
|
|
5485
|
-
}
|
|
5486
|
-
InvokeArgs2.params = params;
|
|
5487
|
-
})(InvokeArgs || (InvokeArgs = {}));
|
|
5488
|
-
__tnRegisterFootprint3("InvokeArgs", (params) => InvokeArgs.__tnInvokeFootprint(params));
|
|
5489
|
-
__tnRegisterValidate3("InvokeArgs", (buffer, params) => InvokeArgs.__tnInvokeValidate(buffer, params));
|
|
5490
|
-
var InvokeArgsBuilder = class {
|
|
5491
|
-
constructor() {
|
|
5492
|
-
this.__tnCachedParams = null;
|
|
5493
|
-
this.__tnLastBuffer = null;
|
|
5494
|
-
this.__tnLastParams = null;
|
|
5495
|
-
this.__tnFam_instr = null;
|
|
5496
|
-
this.__tnFam_instrCount = null;
|
|
5497
|
-
this.buffer = new Uint8Array(34);
|
|
5498
|
-
this.view = new DataView(this.buffer.buffer, this.buffer.byteOffset, this.buffer.byteLength);
|
|
5499
|
-
}
|
|
5500
|
-
__tnInvalidate() {
|
|
5501
|
-
this.__tnCachedParams = null;
|
|
5502
|
-
this.__tnLastBuffer = null;
|
|
5503
|
-
this.__tnLastParams = null;
|
|
5504
|
-
}
|
|
5505
|
-
set_program_pubkey(value) {
|
|
5506
|
-
if (value.length !== 32) throw new Error("program_pubkey expects 32 bytes");
|
|
5507
|
-
this.buffer.set(value, 0);
|
|
5508
|
-
this.__tnInvalidate();
|
|
5509
|
-
return this;
|
|
5510
|
-
}
|
|
5511
|
-
set_instr_len(value) {
|
|
5512
|
-
this.view.setUint16(32, value, true);
|
|
5513
|
-
this.__tnInvalidate();
|
|
5514
|
-
return this;
|
|
5515
|
-
}
|
|
5516
|
-
instr() {
|
|
5517
|
-
if (!this.__tnFamWriter_instr) {
|
|
5518
|
-
this.__tnFamWriter_instr = __tnCreateFamWriter2(this, "instr", (payload) => {
|
|
5519
|
-
const bytes = new Uint8Array(payload);
|
|
5520
|
-
const elementCount = bytes.length;
|
|
5521
|
-
this.__tnFam_instr = bytes;
|
|
5522
|
-
this.__tnFam_instrCount = elementCount;
|
|
5523
|
-
this.set_instr_len(elementCount);
|
|
5524
|
-
this.__tnInvalidate();
|
|
5525
|
-
});
|
|
5526
|
-
}
|
|
5527
|
-
return this.__tnFamWriter_instr;
|
|
5528
|
-
}
|
|
5529
|
-
build() {
|
|
5530
|
-
const params = this.__tnComputeParams();
|
|
5531
|
-
const size = InvokeArgs.footprintFromParams(params);
|
|
5532
|
-
const buffer = new Uint8Array(size);
|
|
5533
|
-
this.__tnWriteInto(buffer);
|
|
5534
|
-
this.__tnValidateOrThrow(buffer, params);
|
|
5535
|
-
return buffer;
|
|
5536
|
-
}
|
|
5537
|
-
buildInto(target, offset = 0) {
|
|
5538
|
-
const params = this.__tnComputeParams();
|
|
5539
|
-
const size = InvokeArgs.footprintFromParams(params);
|
|
5540
|
-
if (target.length - offset < size) throw new Error("InvokeArgsBuilder: target buffer too small");
|
|
5541
|
-
const slice = target.subarray(offset, offset + size);
|
|
5542
|
-
this.__tnWriteInto(slice);
|
|
5543
|
-
this.__tnValidateOrThrow(slice, params);
|
|
5544
|
-
return target;
|
|
5545
|
-
}
|
|
5546
|
-
finish() {
|
|
5547
|
-
const buffer = this.build();
|
|
5548
|
-
const params = this.__tnLastParams ?? this.__tnComputeParams();
|
|
5549
|
-
const view = InvokeArgs.from_array(buffer, { params });
|
|
5550
|
-
if (!view) throw new Error("InvokeArgsBuilder: failed to finalize view");
|
|
5551
|
-
return view;
|
|
5552
|
-
}
|
|
5553
|
-
finishView() {
|
|
5554
|
-
return this.finish();
|
|
5555
|
-
}
|
|
5556
|
-
dynamicParams() {
|
|
5557
|
-
return this.__tnComputeParams();
|
|
5558
|
-
}
|
|
5559
|
-
__tnComputeParams() {
|
|
5560
|
-
if (this.__tnCachedParams) return this.__tnCachedParams;
|
|
5561
|
-
const params = InvokeArgs.Params.fromValues({
|
|
5562
|
-
instr_instr_len: (() => {
|
|
5563
|
-
if (this.__tnFam_instrCount === null) throw new Error("InvokeArgsBuilder: field 'instr' must be written before computing params");
|
|
5564
|
-
return __tnToBigInt3(this.__tnFam_instrCount);
|
|
5565
|
-
})()
|
|
5566
|
-
});
|
|
5567
|
-
this.__tnCachedParams = params;
|
|
5568
|
-
return params;
|
|
5569
|
-
}
|
|
5570
|
-
__tnWriteInto(target) {
|
|
5571
|
-
target.set(this.buffer, 0);
|
|
5572
|
-
let cursor = this.buffer.length;
|
|
5573
|
-
const __tnLocal_instr_bytes = this.__tnFam_instr;
|
|
5574
|
-
if (!__tnLocal_instr_bytes) throw new Error("InvokeArgsBuilder: field 'instr' must be written before build");
|
|
5575
|
-
target.set(__tnLocal_instr_bytes, cursor);
|
|
5576
|
-
cursor += __tnLocal_instr_bytes.length;
|
|
5577
|
-
}
|
|
5578
|
-
__tnValidateOrThrow(buffer, params) {
|
|
5579
|
-
const result = InvokeArgs.validate(buffer, { params });
|
|
5580
|
-
if (!result.ok) {
|
|
5581
|
-
throw new Error(`${InvokeArgs}Builder: builder produced invalid buffer (code=${result.code ?? "unknown"})`);
|
|
5582
|
-
}
|
|
5583
|
-
this.__tnLastParams = result.params ?? params;
|
|
5584
|
-
this.__tnLastBuffer = buffer;
|
|
5585
|
-
}
|
|
5586
|
-
};
|
|
5380
|
+
__tnRegisterFootprint3("CredentialRegisteredEventData", (params) => CredentialRegisteredEventData.__tnInvokeFootprint(params));
|
|
5381
|
+
__tnRegisterValidate3("CredentialRegisteredEventData", (buffer, params) => CredentialRegisteredEventData.__tnInvokeValidate(buffer, params));
|
|
5382
|
+
__tnRegisterDynamicValidate3("CredentialRegisteredEventData", (buffer) => {
|
|
5383
|
+
const result = CredentialRegisteredEventData.validate(buffer);
|
|
5384
|
+
return { ok: result.ok, code: result.code, consumed: result.consumed === void 0 ? void 0 : __tnToBigInt3(result.consumed) };
|
|
5385
|
+
});
|
|
5587
5386
|
var __tn_ir_PasskeyEvent = {
|
|
5588
5387
|
typeName: "PasskeyEvent",
|
|
5589
5388
|
root: { op: "align", alignment: 1, node: { op: "add", left: { op: "align", alignment: 1, node: { op: "const", value: 1n } }, right: { op: "align", alignment: 1, node: { op: "switch", tag: "PasskeyEvent::payload.event_type", cases: [{ value: 0, node: { op: "align", alignment: 1, node: { op: "const", value: 97n } } }, { value: 1, node: { op: "align", alignment: 1, node: { op: "const", value: 40n } } }, { value: 2, node: { op: "align", alignment: 1, node: { op: "const", value: 72n } } }, { value: 3, node: { op: "align", alignment: 1, node: { op: "const", value: 64n } } }] } } } }
|
|
@@ -5834,8 +5633,6 @@ var PasskeyEvent = _PasskeyEvent;
|
|
|
5834
5633
|
}
|
|
5835
5634
|
PasskeyEvent2.params = params;
|
|
5836
5635
|
})(PasskeyEvent || (PasskeyEvent = {}));
|
|
5837
|
-
__tnRegisterFootprint3("PasskeyEvent", (params) => PasskeyEvent.__tnInvokeFootprint(params));
|
|
5838
|
-
__tnRegisterValidate3("PasskeyEvent", (buffer, params) => PasskeyEvent.__tnInvokeValidate(buffer, params));
|
|
5839
5636
|
var PasskeyEventBuilder = class {
|
|
5840
5637
|
constructor() {
|
|
5841
5638
|
this.__tnField_event_type = null;
|
|
@@ -5935,6 +5732,12 @@ var PasskeyEventBuilder = class {
|
|
|
5935
5732
|
this.__tnLastBuffer = buffer;
|
|
5936
5733
|
}
|
|
5937
5734
|
};
|
|
5735
|
+
__tnRegisterFootprint3("PasskeyEvent", (params) => PasskeyEvent.__tnInvokeFootprint(params));
|
|
5736
|
+
__tnRegisterValidate3("PasskeyEvent", (buffer, params) => PasskeyEvent.__tnInvokeValidate(buffer, params));
|
|
5737
|
+
__tnRegisterDynamicValidate3("PasskeyEvent", (buffer) => {
|
|
5738
|
+
const result = PasskeyEvent.validate(buffer);
|
|
5739
|
+
return { ok: result.ok, code: result.code, consumed: result.consumed === void 0 ? void 0 : __tnToBigInt3(result.consumed) };
|
|
5740
|
+
});
|
|
5938
5741
|
var __tn_ir_CreateArgs = {
|
|
5939
5742
|
typeName: "CreateArgs",
|
|
5940
5743
|
root: { op: "align", alignment: 1, node: { op: "add", left: { op: "add", left: { op: "add", left: { op: "align", alignment: 2, node: { op: "const", value: 2n } }, right: { op: "align", alignment: 1, node: { op: "const", value: 65n } } }, right: { op: "align", alignment: 1, node: { op: "const", value: 32n } } }, right: { op: "align", alignment: 1, node: { op: "call", typeName: "StateProof", args: [{ name: "proof_body.hdr.type_slot", source: "proof_body.hdr.type_slot" }, { name: "proof_body.payload_size", source: "proof_body.payload_size" }] } } } }
|
|
@@ -6063,8 +5866,6 @@ var CreateArgs = class _CreateArgs {
|
|
|
6063
5866
|
return new _CreateArgs(buffer);
|
|
6064
5867
|
}
|
|
6065
5868
|
};
|
|
6066
|
-
__tnRegisterFootprint3("CreateArgs", (params) => CreateArgs.__tnInvokeFootprint(params));
|
|
6067
|
-
__tnRegisterValidate3("CreateArgs", (buffer, params) => CreateArgs.__tnInvokeValidate(buffer, params));
|
|
6068
5869
|
var CreateArgsBuilder = class {
|
|
6069
5870
|
constructor() {
|
|
6070
5871
|
this.__tnTail_state_proof = null;
|
|
@@ -6153,6 +5954,12 @@ var CreateArgsBuilder = class {
|
|
|
6153
5954
|
}
|
|
6154
5955
|
}
|
|
6155
5956
|
};
|
|
5957
|
+
__tnRegisterFootprint3("CreateArgs", (params) => CreateArgs.__tnInvokeFootprint(params));
|
|
5958
|
+
__tnRegisterValidate3("CreateArgs", (buffer, params) => CreateArgs.__tnInvokeValidate(buffer, params));
|
|
5959
|
+
__tnRegisterDynamicValidate3("CreateArgs", (buffer) => {
|
|
5960
|
+
const result = CreateArgs.validate(buffer);
|
|
5961
|
+
return { ok: result.ok, code: result.code, consumed: result.consumed === void 0 ? void 0 : __tnToBigInt3(result.consumed) };
|
|
5962
|
+
});
|
|
6156
5963
|
var __tn_ir_RegisterCredentialArgs = {
|
|
6157
5964
|
typeName: "RegisterCredentialArgs",
|
|
6158
5965
|
root: { op: "align", alignment: 1, node: { op: "add", left: { op: "add", left: { op: "add", left: { op: "align", alignment: 2, node: { op: "const", value: 2n } }, right: { op: "align", alignment: 2, node: { op: "const", value: 2n } } }, right: { op: "align", alignment: 1, node: { op: "const", value: 32n } } }, right: { op: "align", alignment: 1, node: { op: "call", typeName: "StateProof", args: [{ name: "proof_body.hdr.type_slot", source: "proof_body.hdr.type_slot" }, { name: "proof_body.payload_size", source: "proof_body.payload_size" }] } } } }
|
|
@@ -6279,8 +6086,6 @@ var RegisterCredentialArgs = class _RegisterCredentialArgs {
|
|
|
6279
6086
|
return new _RegisterCredentialArgs(buffer);
|
|
6280
6087
|
}
|
|
6281
6088
|
};
|
|
6282
|
-
__tnRegisterFootprint3("RegisterCredentialArgs", (params) => RegisterCredentialArgs.__tnInvokeFootprint(params));
|
|
6283
|
-
__tnRegisterValidate3("RegisterCredentialArgs", (buffer, params) => RegisterCredentialArgs.__tnInvokeValidate(buffer, params));
|
|
6284
6089
|
var RegisterCredentialArgsBuilder = class {
|
|
6285
6090
|
constructor() {
|
|
6286
6091
|
this.__tnTail_state_proof = null;
|
|
@@ -6368,6 +6173,12 @@ var RegisterCredentialArgsBuilder = class {
|
|
|
6368
6173
|
}
|
|
6369
6174
|
}
|
|
6370
6175
|
};
|
|
6176
|
+
__tnRegisterFootprint3("RegisterCredentialArgs", (params) => RegisterCredentialArgs.__tnInvokeFootprint(params));
|
|
6177
|
+
__tnRegisterValidate3("RegisterCredentialArgs", (buffer, params) => RegisterCredentialArgs.__tnInvokeValidate(buffer, params));
|
|
6178
|
+
__tnRegisterDynamicValidate3("RegisterCredentialArgs", (buffer) => {
|
|
6179
|
+
const result = RegisterCredentialArgs.validate(buffer);
|
|
6180
|
+
return { ok: result.ok, code: result.code, consumed: result.consumed === void 0 ? void 0 : __tnToBigInt3(result.consumed) };
|
|
6181
|
+
});
|
|
6371
6182
|
var __tn_ir_PasskeyInstruction = {
|
|
6372
6183
|
typeName: "PasskeyInstruction",
|
|
6373
6184
|
root: { op: "align", alignment: 1, node: { op: "add", left: { op: "align", alignment: 1, node: { op: "const", value: 1n } }, right: { op: "align", alignment: 1, node: { op: "field", param: "payload.payload_size" } } } }
|
|
@@ -6401,10 +6212,6 @@ var PasskeyInstruction_payload_Inner = class _PasskeyInstruction_payload_Inner {
|
|
|
6401
6212
|
if (!this.descriptor || this.descriptor.tag !== 2) return null;
|
|
6402
6213
|
return TransferArgs.__tnCreateView(new Uint8Array(this.buffer), { fieldContext: this.__tnFieldContext ?? void 0 });
|
|
6403
6214
|
}
|
|
6404
|
-
asInvoke() {
|
|
6405
|
-
if (!this.descriptor || this.descriptor.tag !== 3) return null;
|
|
6406
|
-
return InvokeArgs.__tnCreateView(new Uint8Array(this.buffer), { fieldContext: this.__tnFieldContext ?? void 0 });
|
|
6407
|
-
}
|
|
6408
6215
|
asAddAuthority() {
|
|
6409
6216
|
if (!this.descriptor || this.descriptor.tag !== 4) return null;
|
|
6410
6217
|
return AddAuthorityArgs.__tnCreateView(new Uint8Array(this.buffer), { fieldContext: this.__tnFieldContext ?? void 0 });
|
|
@@ -6474,8 +6281,6 @@ var _PasskeyInstruction = class _PasskeyInstruction {
|
|
|
6474
6281
|
break;
|
|
6475
6282
|
case 2:
|
|
6476
6283
|
break;
|
|
6477
|
-
case 3:
|
|
6478
|
-
break;
|
|
6479
6284
|
case 4:
|
|
6480
6285
|
break;
|
|
6481
6286
|
case 5:
|
|
@@ -6633,7 +6438,7 @@ _PasskeyInstruction.payloadVariantDescriptors = Object.freeze([
|
|
|
6633
6438
|
tag: 1,
|
|
6634
6439
|
payloadSize: null,
|
|
6635
6440
|
payloadType: "PasskeyInstruction::payload::validate",
|
|
6636
|
-
createPayloadBuilder: () =>
|
|
6441
|
+
createPayloadBuilder: () => null
|
|
6637
6442
|
},
|
|
6638
6443
|
{
|
|
6639
6444
|
name: "transfer",
|
|
@@ -6642,24 +6447,17 @@ _PasskeyInstruction.payloadVariantDescriptors = Object.freeze([
|
|
|
6642
6447
|
payloadType: "PasskeyInstruction::payload::transfer",
|
|
6643
6448
|
createPayloadBuilder: () => __tnMaybeCallBuilder(TransferArgs)
|
|
6644
6449
|
},
|
|
6645
|
-
{
|
|
6646
|
-
name: "invoke",
|
|
6647
|
-
tag: 3,
|
|
6648
|
-
payloadSize: null,
|
|
6649
|
-
payloadType: "PasskeyInstruction::payload::invoke",
|
|
6650
|
-
createPayloadBuilder: () => __tnMaybeCallBuilder(InvokeArgs)
|
|
6651
|
-
},
|
|
6652
6450
|
{
|
|
6653
6451
|
name: "add_authority",
|
|
6654
6452
|
tag: 4,
|
|
6655
|
-
payloadSize:
|
|
6453
|
+
payloadSize: 67,
|
|
6656
6454
|
payloadType: "PasskeyInstruction::payload::add_authority",
|
|
6657
6455
|
createPayloadBuilder: () => __tnMaybeCallBuilder(AddAuthorityArgs)
|
|
6658
6456
|
},
|
|
6659
6457
|
{
|
|
6660
6458
|
name: "remove_authority",
|
|
6661
6459
|
tag: 5,
|
|
6662
|
-
payloadSize:
|
|
6460
|
+
payloadSize: 3,
|
|
6663
6461
|
payloadType: "PasskeyInstruction::payload::remove_authority",
|
|
6664
6462
|
createPayloadBuilder: () => __tnMaybeCallBuilder(RemoveAuthorityArgs)
|
|
6665
6463
|
},
|
|
@@ -6699,8 +6497,6 @@ var PasskeyInstruction = _PasskeyInstruction;
|
|
|
6699
6497
|
}
|
|
6700
6498
|
PasskeyInstruction2.params = params;
|
|
6701
6499
|
})(PasskeyInstruction || (PasskeyInstruction = {}));
|
|
6702
|
-
__tnRegisterFootprint3("PasskeyInstruction", (params) => PasskeyInstruction.__tnInvokeFootprint(params));
|
|
6703
|
-
__tnRegisterValidate3("PasskeyInstruction", (buffer, params) => PasskeyInstruction.__tnInvokeValidate(buffer, params));
|
|
6704
6500
|
var PasskeyInstructionBuilder = class {
|
|
6705
6501
|
constructor() {
|
|
6706
6502
|
this.__tnField_tag = null;
|
|
@@ -6805,6 +6601,12 @@ var PasskeyInstructionBuilder = class {
|
|
|
6805
6601
|
this.__tnLastBuffer = buffer;
|
|
6806
6602
|
}
|
|
6807
6603
|
};
|
|
6604
|
+
__tnRegisterFootprint3("PasskeyInstruction", (params) => PasskeyInstruction.__tnInvokeFootprint(params));
|
|
6605
|
+
__tnRegisterValidate3("PasskeyInstruction", (buffer, params) => PasskeyInstruction.__tnInvokeValidate(buffer, params));
|
|
6606
|
+
__tnRegisterDynamicValidate3("PasskeyInstruction", (buffer) => {
|
|
6607
|
+
const result = PasskeyInstruction.validate(buffer);
|
|
6608
|
+
return { ok: result.ok, code: result.code, consumed: result.consumed === void 0 ? void 0 : __tnToBigInt3(result.consumed) };
|
|
6609
|
+
});
|
|
6808
6610
|
|
|
6809
6611
|
// src/passkey-manager/instructions/create.ts
|
|
6810
6612
|
function buildAuthority(authority) {
|
|
@@ -6833,16 +6635,81 @@ function encodeCreateInstruction(params) {
|
|
|
6833
6635
|
return new PasskeyInstructionBuilder().payload().select("create").writePayload(argsPayload).finish().build();
|
|
6834
6636
|
}
|
|
6835
6637
|
|
|
6638
|
+
// src/passkey-manager/target-instruction.ts
|
|
6639
|
+
function buildTargetInstructionBytes({
|
|
6640
|
+
programIdx,
|
|
6641
|
+
instructionData
|
|
6642
|
+
}) {
|
|
6643
|
+
if (!Number.isInteger(programIdx) || programIdx < 0 || programIdx > 65535) {
|
|
6644
|
+
throw new Error("programIdx must be 0-65535");
|
|
6645
|
+
}
|
|
6646
|
+
if (!(instructionData instanceof Uint8Array)) {
|
|
6647
|
+
throw new Error("instructionData must be a Uint8Array");
|
|
6648
|
+
}
|
|
6649
|
+
const builder = new InstructionDataBuilder();
|
|
6650
|
+
builder.set_program_idx(programIdx);
|
|
6651
|
+
builder.data().write(instructionData).finish();
|
|
6652
|
+
const buffer = builder.build();
|
|
6653
|
+
const view = InstructionData.from_array(buffer);
|
|
6654
|
+
if (!view) {
|
|
6655
|
+
throw new Error("generated InstructionData failed validation");
|
|
6656
|
+
}
|
|
6657
|
+
return buffer;
|
|
6658
|
+
}
|
|
6659
|
+
|
|
6836
6660
|
// src/passkey-manager/instructions/validate.ts
|
|
6661
|
+
var U8_SIZE = Uint8Array.BYTES_PER_ELEMENT;
|
|
6662
|
+
var U16_SIZE = Uint16Array.BYTES_PER_ELEMENT;
|
|
6663
|
+
var P256_COORDINATE_SIZE = 32;
|
|
6664
|
+
var VALIDATE_FIXED_PREFIX_SIZE = U16_SIZE + U8_SIZE + P256_COORDINATE_SIZE + P256_COORDINATE_SIZE + U16_SIZE + U16_SIZE;
|
|
6665
|
+
function writeU16LE(target, offset, value) {
|
|
6666
|
+
target[offset] = value & 255;
|
|
6667
|
+
target[offset + 1] = value >> 8 & 255;
|
|
6668
|
+
}
|
|
6837
6669
|
function encodeValidateInstruction(params) {
|
|
6838
|
-
const {
|
|
6670
|
+
const {
|
|
6671
|
+
walletAccountIdx,
|
|
6672
|
+
authIdx,
|
|
6673
|
+
targetInstruction,
|
|
6674
|
+
signatureR,
|
|
6675
|
+
signatureS,
|
|
6676
|
+
authenticatorData,
|
|
6677
|
+
clientDataJSON
|
|
6678
|
+
} = params;
|
|
6839
6679
|
if (walletAccountIdx < 0 || walletAccountIdx > 65535) {
|
|
6840
6680
|
throw new Error("walletAccountIdx must be 0-65535");
|
|
6841
6681
|
}
|
|
6842
6682
|
if (authIdx < 0 || authIdx > 255) throw new Error("authIdx must be 0-255");
|
|
6843
6683
|
if (signatureR.length !== 32) throw new Error("signatureR must be 32 bytes");
|
|
6844
6684
|
if (signatureS.length !== 32) throw new Error("signatureS must be 32 bytes");
|
|
6845
|
-
|
|
6685
|
+
if (authenticatorData.length > 65535) {
|
|
6686
|
+
throw new Error("authenticatorData length must be 0-65535");
|
|
6687
|
+
}
|
|
6688
|
+
if (clientDataJSON.length > 65535) {
|
|
6689
|
+
throw new Error("clientDataJSON length must be 0-65535");
|
|
6690
|
+
}
|
|
6691
|
+
const targetInstructionBytes = buildTargetInstructionBytes(targetInstruction);
|
|
6692
|
+
const argsPayload = new Uint8Array(
|
|
6693
|
+
VALIDATE_FIXED_PREFIX_SIZE + authenticatorData.length + clientDataJSON.length + targetInstructionBytes.length
|
|
6694
|
+
);
|
|
6695
|
+
let offset = 0;
|
|
6696
|
+
writeU16LE(argsPayload, offset, walletAccountIdx);
|
|
6697
|
+
offset += 2;
|
|
6698
|
+
argsPayload[offset] = authIdx;
|
|
6699
|
+
offset += 1;
|
|
6700
|
+
argsPayload.set(signatureR, offset);
|
|
6701
|
+
offset += signatureR.length;
|
|
6702
|
+
argsPayload.set(signatureS, offset);
|
|
6703
|
+
offset += signatureS.length;
|
|
6704
|
+
writeU16LE(argsPayload, offset, authenticatorData.length);
|
|
6705
|
+
offset += 2;
|
|
6706
|
+
writeU16LE(argsPayload, offset, clientDataJSON.length);
|
|
6707
|
+
offset += 2;
|
|
6708
|
+
argsPayload.set(authenticatorData, offset);
|
|
6709
|
+
offset += authenticatorData.length;
|
|
6710
|
+
argsPayload.set(clientDataJSON, offset);
|
|
6711
|
+
offset += clientDataJSON.length;
|
|
6712
|
+
argsPayload.set(targetInstructionBytes, offset);
|
|
6846
6713
|
return new PasskeyInstructionBuilder().payload().select("validate").writePayload(argsPayload).finish().build();
|
|
6847
6714
|
}
|
|
6848
6715
|
|
|
@@ -6860,27 +6727,25 @@ function encodeTransferInstruction(params) {
|
|
|
6860
6727
|
return new PasskeyInstructionBuilder().payload().select("transfer").writePayload(argsPayload).finish().build();
|
|
6861
6728
|
}
|
|
6862
6729
|
|
|
6863
|
-
// src/passkey-manager/instructions/invoke.ts
|
|
6864
|
-
function encodeInvokeInstruction(programPubkey, instruction) {
|
|
6865
|
-
if (programPubkey.length !== 32) {
|
|
6866
|
-
throw new Error("Program pubkey must be 32 bytes");
|
|
6867
|
-
}
|
|
6868
|
-
const argsPayload = new InvokeArgsBuilder().set_program_pubkey(programPubkey).instr().write(instruction).finish().build();
|
|
6869
|
-
return new PasskeyInstructionBuilder().payload().select("invoke").writePayload(argsPayload).finish().build();
|
|
6870
|
-
}
|
|
6871
|
-
|
|
6872
6730
|
// src/passkey-manager/instructions/add-authority.ts
|
|
6873
6731
|
function encodeAddAuthorityInstruction(params) {
|
|
6732
|
+
const { walletAccountIdx } = params;
|
|
6733
|
+
if (walletAccountIdx < 0 || walletAccountIdx > 65535) {
|
|
6734
|
+
throw new Error("walletAccountIdx must be 0-65535");
|
|
6735
|
+
}
|
|
6874
6736
|
const authorityBytes = buildAuthority(params.authority);
|
|
6875
|
-
const argsPayload = new AddAuthorityArgsBuilder().set_authority(authorityBytes).build();
|
|
6737
|
+
const argsPayload = new AddAuthorityArgsBuilder().set_wallet_account_idx(walletAccountIdx).set_authority(authorityBytes).build();
|
|
6876
6738
|
return new PasskeyInstructionBuilder().payload().select("add_authority").writePayload(argsPayload).finish().build();
|
|
6877
6739
|
}
|
|
6878
6740
|
|
|
6879
6741
|
// src/passkey-manager/instructions/remove-authority.ts
|
|
6880
6742
|
function encodeRemoveAuthorityInstruction(params) {
|
|
6881
|
-
const { authIdx } = params;
|
|
6743
|
+
const { walletAccountIdx, authIdx } = params;
|
|
6744
|
+
if (walletAccountIdx < 0 || walletAccountIdx > 65535) {
|
|
6745
|
+
throw new Error("walletAccountIdx must be 0-65535");
|
|
6746
|
+
}
|
|
6882
6747
|
if (authIdx < 0 || authIdx > 255) throw new Error("authIdx must be 0-255");
|
|
6883
|
-
const argsPayload = new RemoveAuthorityArgsBuilder().set_auth_idx(authIdx).build();
|
|
6748
|
+
const argsPayload = new RemoveAuthorityArgsBuilder().set_wallet_account_idx(walletAccountIdx).set_auth_idx(authIdx).build();
|
|
6884
6749
|
return new PasskeyInstructionBuilder().payload().select("remove_authority").writePayload(argsPayload).finish().build();
|
|
6885
6750
|
}
|
|
6886
6751
|
|
|
@@ -6898,38 +6763,51 @@ function encodeRegisterCredentialInstruction(params) {
|
|
|
6898
6763
|
return new PasskeyInstructionBuilder().payload().select("register_credential").writePayload(argsPayload).finish().build();
|
|
6899
6764
|
}
|
|
6900
6765
|
|
|
6901
|
-
// src/passkey-manager/
|
|
6902
|
-
|
|
6903
|
-
|
|
6904
|
-
|
|
6905
|
-
let
|
|
6906
|
-
|
|
6907
|
-
|
|
6908
|
-
offset += instr.length;
|
|
6766
|
+
// src/passkey-manager/challenge.ts
|
|
6767
|
+
var VALIDATE_CHALLENGE_DOMAIN = "thru.passkey.validate";
|
|
6768
|
+
function writeU64LE(target, offset, value) {
|
|
6769
|
+
let remaining = value;
|
|
6770
|
+
for (let i = 0; i < 8; i++) {
|
|
6771
|
+
target[offset + i] = Number(remaining & 0xffn);
|
|
6772
|
+
remaining >>= 8n;
|
|
6909
6773
|
}
|
|
6910
|
-
return result;
|
|
6911
6774
|
}
|
|
6912
|
-
|
|
6913
|
-
|
|
6914
|
-
async function createValidateChallenge(nonce, accountAddresses, trailingInstructionData) {
|
|
6775
|
+
async function createValidateChallenge(nonce, accountAddresses, walletAccountIdx, authIdx, targetInstruction) {
|
|
6776
|
+
const targetInstructionBytes = buildTargetInstructionBytes(targetInstruction);
|
|
6915
6777
|
const encoder = new TextEncoder();
|
|
6778
|
+
const domainBytes = encoder.encode(VALIDATE_CHALLENGE_DOMAIN);
|
|
6916
6779
|
const accountBytes = accountAddresses.map((address) => {
|
|
6917
|
-
|
|
6780
|
+
const bytes = encoder.encode(address);
|
|
6781
|
+
if (bytes.length !== 46) {
|
|
6782
|
+
throw new Error("accountAddresses must contain ta addresses");
|
|
6783
|
+
}
|
|
6784
|
+
return bytes;
|
|
6918
6785
|
});
|
|
6919
|
-
|
|
6786
|
+
if (walletAccountIdx < 0 || walletAccountIdx > 65535) {
|
|
6787
|
+
throw new Error("walletAccountIdx must be 0-65535");
|
|
6788
|
+
}
|
|
6789
|
+
if (authIdx < 0 || authIdx > 255) throw new Error("authIdx must be 0-255");
|
|
6790
|
+
if (accountBytes.length > 65535) throw new Error("accountAddresses length must be 0-65535");
|
|
6791
|
+
const totalSize = domainBytes.length + 8 + 2 + 1 + 2 + accountBytes.reduce((sum, bytes) => sum + bytes.length, 0) + targetInstructionBytes.length;
|
|
6920
6792
|
const challengeData = new Uint8Array(totalSize);
|
|
6921
6793
|
let offset = 0;
|
|
6922
|
-
|
|
6923
|
-
|
|
6924
|
-
|
|
6925
|
-
v >>= 8n;
|
|
6926
|
-
}
|
|
6794
|
+
challengeData.set(domainBytes, offset);
|
|
6795
|
+
offset += domainBytes.length;
|
|
6796
|
+
writeU64LE(challengeData, offset, nonce);
|
|
6927
6797
|
offset += 8;
|
|
6798
|
+
challengeData[offset] = walletAccountIdx & 255;
|
|
6799
|
+
challengeData[offset + 1] = walletAccountIdx >> 8 & 255;
|
|
6800
|
+
offset += 2;
|
|
6801
|
+
challengeData[offset] = authIdx & 255;
|
|
6802
|
+
offset += 1;
|
|
6803
|
+
challengeData[offset] = accountBytes.length & 255;
|
|
6804
|
+
challengeData[offset + 1] = accountBytes.length >> 8 & 255;
|
|
6805
|
+
offset += 2;
|
|
6928
6806
|
for (const bytes of accountBytes) {
|
|
6929
6807
|
challengeData.set(bytes, offset);
|
|
6930
6808
|
offset += bytes.length;
|
|
6931
6809
|
}
|
|
6932
|
-
challengeData.set(
|
|
6810
|
+
challengeData.set(targetInstructionBytes, offset);
|
|
6933
6811
|
const hashBuffer = await crypto.subtle.digest("SHA-256", challengeData);
|
|
6934
6812
|
return new Uint8Array(hashBuffer);
|
|
6935
6813
|
}
|
|
@@ -7298,6 +7176,6 @@ function bigIntToBytesBE(value, length) {
|
|
|
7298
7176
|
return out;
|
|
7299
7177
|
}
|
|
7300
7178
|
|
|
7301
|
-
export { AUTHORITY_TAG_PASSKEY, AUTHORITY_TAG_PUBKEY, FEE_PAYER_ADDRESS, INSTRUCTION_ADD_AUTHORITY, INSTRUCTION_CREATE,
|
|
7179
|
+
export { AUTHORITY_TAG_PASSKEY, AUTHORITY_TAG_PUBKEY, FEE_PAYER_ADDRESS, INSTRUCTION_ADD_AUTHORITY, INSTRUCTION_CREATE, INSTRUCTION_REGISTER_CREDENTIAL, INSTRUCTION_REMOVE_AUTHORITY, INSTRUCTION_TRANSFER, INSTRUCTION_VALIDATE, P256_HALF_N, P256_N, PASSKEY_MANAGER_PROGRAM_ADDRESS, VALIDATE_CHALLENGE_DOMAIN, arrayBufferToBase64Url, base64UrlToArrayBuffer, base64UrlToBytes, bigIntToBytesBE, buildAccountContext, buildPasskeyReadWriteAccounts, bytesEqual, bytesToBase64, bytesToBase64Url, bytesToBigIntBE, bytesToHex, compareBytes, createCredentialLookupSeed, createValidateChallenge, createWalletSeed, deriveCredentialLookupAddress, deriveWalletAddress, encodeAddAuthorityInstruction, encodeCreateInstruction, encodeRegisterCredentialInstruction, encodeRemoveAuthorityInstruction, encodeTransferInstruction, encodeValidateInstruction, fetchWalletNonce, findPasskeyAuthorityIndexForIdentity, findPasskeyAuthorityIndexInWalletData, formatAuthorityPubkey, hexToBytes, isPasskeyAuthorityCheckable, normalizeLowS, normalizeSignatureComponent, parseCredentialLookupWallet, parseDerSignature, parseWalletAuthorities, parseWalletNonce, preparePasskeyAuthorityTargets, resolvePasskeyAuthorityIndex, uniqueAccounts };
|
|
7302
7180
|
//# sourceMappingURL=index.js.map
|
|
7303
7181
|
//# sourceMappingURL=index.js.map
|