@sig-net/midnight 0.15.0 → 0.16.0
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/README.md +113 -49
- package/dist/constants.d.ts +55 -0
- package/dist/constants.d.ts.map +1 -1
- package/dist/constants.js +85 -5
- package/dist/constants.js.map +1 -1
- package/dist/ecdsa-attestation.d.ts +6 -5
- package/dist/ecdsa-attestation.d.ts.map +1 -1
- package/dist/ecdsa-attestation.js +5 -4
- package/dist/ecdsa-attestation.js.map +1 -1
- package/dist/index.d.ts +1 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -4
- package/dist/index.js.map +1 -1
- package/dist/managed/compiler/contract-manifest.json +2 -2
- package/dist/managed/contract/index.js +31 -31
- package/dist/managed/contract/index.js.map +1 -1
- package/dist/signature-requests-state-reader.d.ts +23 -5
- package/dist/signature-requests-state-reader.d.ts.map +1 -1
- package/dist/signature-requests-state-reader.js +50 -5
- package/dist/signature-requests-state-reader.js.map +1 -1
- package/dist/signature-response-verification.d.ts +1 -1
- package/dist/signature-response-verification.d.ts.map +1 -1
- package/dist/signature-response-verification.js +3 -3
- package/dist/signature-response-verification.js.map +1 -1
- package/dist/signature-state-reading.js +2 -2
- package/dist/signature-state-reading.js.map +1 -1
- package/dist/signet-contract-events.d.ts +262 -0
- package/dist/signet-contract-events.d.ts.map +1 -0
- package/dist/signet-contract-events.js +266 -0
- package/dist/signet-contract-events.js.map +1 -0
- package/dist/signet-evtype2tx-requests.d.ts +4 -4
- package/dist/signet-evtype2tx-requests.d.ts.map +1 -1
- package/dist/signet-evtype2tx-requests.js +3 -3
- package/dist/signet-request-feed.d.ts +59 -34
- package/dist/signet-request-feed.d.ts.map +1 -1
- package/dist/signet-request-feed.js +95 -62
- package/dist/signet-request-feed.js.map +1 -1
- package/dist/signet-request-response-reader.d.ts +62 -55
- package/dist/signet-request-response-reader.d.ts.map +1 -1
- package/dist/signet-request-response-reader.js +85 -99
- package/dist/signet-request-response-reader.js.map +1 -1
- package/dist/signet-requests.js +2 -2
- package/dist/signet-requests.js.map +1 -1
- package/package.json +2 -2
- package/src/Signet.compact +43 -36
- package/dist/signet-contract-state-reader.d.ts +0 -247
- package/dist/signet-contract-state-reader.d.ts.map +0 -1
- package/dist/signet-contract-state-reader.js +0 -363
- package/dist/signet-contract-state-reader.js.map +0 -1
- package/dist/signet-request-resolver.d.ts +0 -60
- package/dist/signet-request-resolver.d.ts.map +0 -1
- package/dist/signet-request-resolver.js +0 -78
- package/dist/signet-request-resolver.js.map +0 -1
package/dist/index.js
CHANGED
|
@@ -1,15 +1,14 @@
|
|
|
1
1
|
// Midnight-side sig-net integration: the client-agnostic signet protocol
|
|
2
|
-
// library (wire structs, state readers, request feed
|
|
3
|
-
// the compiled pure circuits of the shared Compact module.
|
|
2
|
+
// library (wire structs, state readers, event decoders, request feed,
|
|
3
|
+
// crypto) plus the compiled pure circuits of the shared Compact module.
|
|
4
4
|
export * from "./abi-serde.js";
|
|
5
5
|
export * from "./signet-requests.js";
|
|
6
6
|
export * from "./signet-evtype2tx-requests.js";
|
|
7
7
|
export * from "./signature-state-reading.js";
|
|
8
8
|
export * from "./signature-requests-state-reader.js";
|
|
9
|
-
export * from "./signet-contract-
|
|
9
|
+
export * from "./signet-contract-events.js";
|
|
10
10
|
export * from "./signature-response-verification.js";
|
|
11
11
|
export * from "./signet-request-response-reader.js";
|
|
12
|
-
export * from "./signet-request-resolver.js";
|
|
13
12
|
export * from "./signet-request-feed.js";
|
|
14
13
|
export * from "./constants.js";
|
|
15
14
|
export * from "./epsilon-derivation.js";
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,yEAAyE;AACzE,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,yEAAyE;AACzE,sEAAsE;AACtE,wEAAwE;AAExE,cAAc,gBAAgB,CAAC;AAC/B,cAAc,sBAAsB,CAAC;AACrC,cAAc,gCAAgC,CAAC;AAC/C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,sCAAsC,CAAC;AACrD,cAAc,6BAA6B,CAAC;AAC5C,cAAc,sCAAsC,CAAC;AACrD,cAAc,qCAAqC,CAAC;AACpD,cAAc,0BAA0B,CAAC;AACzC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,yBAAyB,CAAC;AACxC,cAAc,wBAAwB,CAAC;AAEvC;;;;GAIG;AACH,OAAO,EAAE,YAAY,EAAqB,MAAM,6BAA6B,CAAC"}
|
|
@@ -21,12 +21,12 @@
|
|
|
21
21
|
"index.js": {
|
|
22
22
|
"type": "file",
|
|
23
23
|
"size": 49867,
|
|
24
|
-
"hash": "
|
|
24
|
+
"hash": "9110102850ba6354a9b57ac35bd10c269c73cdea5248861b7c26f3108914d932"
|
|
25
25
|
},
|
|
26
26
|
"index.js.map": {
|
|
27
27
|
"type": "file",
|
|
28
28
|
"size": 4763,
|
|
29
|
-
"hash": "
|
|
29
|
+
"hash": "345928fecea5933a4f62f8a6ac11b1ff8a8827c118cc1848346a70fac822d4b4"
|
|
30
30
|
}
|
|
31
31
|
}
|
|
32
32
|
}
|
|
@@ -453,13 +453,13 @@ export class Contract {
|
|
|
453
453
|
32,
|
|
454
454
|
this._reverseBytes32_0(respondBidirectionalEvent_0.signature.bigR.x),
|
|
455
455
|
'Secp256k1Scalar',
|
|
456
|
-
'Signet.compact line
|
|
456
|
+
'Signet.compact line 396 char 12'),
|
|
457
457
|
s:
|
|
458
458
|
__compactRuntime.convertBytesToField(115792089237316195423570985008687907852837564279074904382605163141518161494336n,
|
|
459
459
|
32,
|
|
460
460
|
this._reverseBytes32_0(respondBidirectionalEvent_0.signature.s),
|
|
461
461
|
'Secp256k1Scalar',
|
|
462
|
-
'Signet.compact line
|
|
462
|
+
'Signet.compact line 397 char 12') },
|
|
463
463
|
mpcResponseKey_0);
|
|
464
464
|
}
|
|
465
465
|
_signetKeyHash_0(pk_0) { return this._persistentHash_0(pk_0); }
|
|
@@ -471,7 +471,7 @@ export class Contract {
|
|
|
471
471
|
_numericAbiWord_0(value_0) {
|
|
472
472
|
const le_0 = Array.from(__compactRuntime.convertBigintToBytes(16,
|
|
473
473
|
value_0,
|
|
474
|
-
'Signet.compact line
|
|
474
|
+
'Signet.compact line 478 char 17'),
|
|
475
475
|
BigInt);
|
|
476
476
|
return Uint8Array.from([...Array.from(new Uint8Array(16), BigInt),
|
|
477
477
|
le_0[15],
|
|
@@ -503,7 +503,7 @@ export class Contract {
|
|
|
503
503
|
((e, i) => e.slice(i, i+16))(word_0,
|
|
504
504
|
Number(0n)),
|
|
505
505
|
'Field',
|
|
506
|
-
'Signet.compact line
|
|
506
|
+
'Signet.compact line 497 char 12')
|
|
507
507
|
===
|
|
508
508
|
0n,
|
|
509
509
|
'ABI word exceeds Uint<128>');
|
|
@@ -512,77 +512,77 @@ export class Contract {
|
|
|
512
512
|
((e, i) => e.slice(i, i+1))(word_0,
|
|
513
513
|
Number(16n)),
|
|
514
514
|
'Field',
|
|
515
|
-
'Signet.compact line
|
|
515
|
+
'Signet.compact line 498 char 17');
|
|
516
516
|
const b1_0 = __compactRuntime.addField(__compactRuntime.mulField(b0_0, 256n),
|
|
517
517
|
__compactRuntime.convertBytesToUint(52435875175126190479447740508185965837690552500527637822603658699938581184512n,
|
|
518
518
|
1,
|
|
519
519
|
((e, i) => e.slice(i, i+1))(word_0,
|
|
520
520
|
Number(17n)),
|
|
521
521
|
'Field',
|
|
522
|
-
'Signet.compact line
|
|
522
|
+
'Signet.compact line 499 char 30'));
|
|
523
523
|
const b2_0 = __compactRuntime.addField(__compactRuntime.mulField(b1_0, 256n),
|
|
524
524
|
__compactRuntime.convertBytesToUint(52435875175126190479447740508185965837690552500527637822603658699938581184512n,
|
|
525
525
|
1,
|
|
526
526
|
((e, i) => e.slice(i, i+1))(word_0,
|
|
527
527
|
Number(18n)),
|
|
528
528
|
'Field',
|
|
529
|
-
'Signet.compact line
|
|
529
|
+
'Signet.compact line 500 char 30'));
|
|
530
530
|
const b3_0 = __compactRuntime.addField(__compactRuntime.mulField(b2_0, 256n),
|
|
531
531
|
__compactRuntime.convertBytesToUint(52435875175126190479447740508185965837690552500527637822603658699938581184512n,
|
|
532
532
|
1,
|
|
533
533
|
((e, i) => e.slice(i, i+1))(word_0,
|
|
534
534
|
Number(19n)),
|
|
535
535
|
'Field',
|
|
536
|
-
'Signet.compact line
|
|
536
|
+
'Signet.compact line 501 char 30'));
|
|
537
537
|
const b4_0 = __compactRuntime.addField(__compactRuntime.mulField(b3_0, 256n),
|
|
538
538
|
__compactRuntime.convertBytesToUint(52435875175126190479447740508185965837690552500527637822603658699938581184512n,
|
|
539
539
|
1,
|
|
540
540
|
((e, i) => e.slice(i, i+1))(word_0,
|
|
541
541
|
Number(20n)),
|
|
542
542
|
'Field',
|
|
543
|
-
'Signet.compact line
|
|
543
|
+
'Signet.compact line 502 char 30'));
|
|
544
544
|
const b5_0 = __compactRuntime.addField(__compactRuntime.mulField(b4_0, 256n),
|
|
545
545
|
__compactRuntime.convertBytesToUint(52435875175126190479447740508185965837690552500527637822603658699938581184512n,
|
|
546
546
|
1,
|
|
547
547
|
((e, i) => e.slice(i, i+1))(word_0,
|
|
548
548
|
Number(21n)),
|
|
549
549
|
'Field',
|
|
550
|
-
'Signet.compact line
|
|
550
|
+
'Signet.compact line 503 char 30'));
|
|
551
551
|
const b6_0 = __compactRuntime.addField(__compactRuntime.mulField(b5_0, 256n),
|
|
552
552
|
__compactRuntime.convertBytesToUint(52435875175126190479447740508185965837690552500527637822603658699938581184512n,
|
|
553
553
|
1,
|
|
554
554
|
((e, i) => e.slice(i, i+1))(word_0,
|
|
555
555
|
Number(22n)),
|
|
556
556
|
'Field',
|
|
557
|
-
'Signet.compact line
|
|
557
|
+
'Signet.compact line 504 char 30'));
|
|
558
558
|
const b7_0 = __compactRuntime.addField(__compactRuntime.mulField(b6_0, 256n),
|
|
559
559
|
__compactRuntime.convertBytesToUint(52435875175126190479447740508185965837690552500527637822603658699938581184512n,
|
|
560
560
|
1,
|
|
561
561
|
((e, i) => e.slice(i, i+1))(word_0,
|
|
562
562
|
Number(23n)),
|
|
563
563
|
'Field',
|
|
564
|
-
'Signet.compact line
|
|
564
|
+
'Signet.compact line 505 char 30'));
|
|
565
565
|
const b8_0 = __compactRuntime.addField(__compactRuntime.mulField(b7_0, 256n),
|
|
566
566
|
__compactRuntime.convertBytesToUint(52435875175126190479447740508185965837690552500527637822603658699938581184512n,
|
|
567
567
|
1,
|
|
568
568
|
((e, i) => e.slice(i, i+1))(word_0,
|
|
569
569
|
Number(24n)),
|
|
570
570
|
'Field',
|
|
571
|
-
'Signet.compact line
|
|
571
|
+
'Signet.compact line 506 char 30'));
|
|
572
572
|
const b9_0 = __compactRuntime.addField(__compactRuntime.mulField(b8_0, 256n),
|
|
573
573
|
__compactRuntime.convertBytesToUint(52435875175126190479447740508185965837690552500527637822603658699938581184512n,
|
|
574
574
|
1,
|
|
575
575
|
((e, i) => e.slice(i, i+1))(word_0,
|
|
576
576
|
Number(25n)),
|
|
577
577
|
'Field',
|
|
578
|
-
'Signet.compact line
|
|
578
|
+
'Signet.compact line 507 char 30'));
|
|
579
579
|
const b10_0 = __compactRuntime.addField(__compactRuntime.mulField(b9_0, 256n),
|
|
580
580
|
__compactRuntime.convertBytesToUint(52435875175126190479447740508185965837690552500527637822603658699938581184512n,
|
|
581
581
|
1,
|
|
582
582
|
((e, i) => e.slice(i, i+1))(word_0,
|
|
583
583
|
Number(26n)),
|
|
584
584
|
'Field',
|
|
585
|
-
'Signet.compact line
|
|
585
|
+
'Signet.compact line 508 char 30'));
|
|
586
586
|
const b11_0 = __compactRuntime.addField(__compactRuntime.mulField(b10_0,
|
|
587
587
|
256n),
|
|
588
588
|
__compactRuntime.convertBytesToUint(52435875175126190479447740508185965837690552500527637822603658699938581184512n,
|
|
@@ -590,7 +590,7 @@ export class Contract {
|
|
|
590
590
|
((e, i) => e.slice(i, i+1))(word_0,
|
|
591
591
|
Number(27n)),
|
|
592
592
|
'Field',
|
|
593
|
-
'Signet.compact line
|
|
593
|
+
'Signet.compact line 509 char 30'));
|
|
594
594
|
const b12_0 = __compactRuntime.addField(__compactRuntime.mulField(b11_0,
|
|
595
595
|
256n),
|
|
596
596
|
__compactRuntime.convertBytesToUint(52435875175126190479447740508185965837690552500527637822603658699938581184512n,
|
|
@@ -598,7 +598,7 @@ export class Contract {
|
|
|
598
598
|
((e, i) => e.slice(i, i+1))(word_0,
|
|
599
599
|
Number(28n)),
|
|
600
600
|
'Field',
|
|
601
|
-
'Signet.compact line
|
|
601
|
+
'Signet.compact line 510 char 30'));
|
|
602
602
|
const b13_0 = __compactRuntime.addField(__compactRuntime.mulField(b12_0,
|
|
603
603
|
256n),
|
|
604
604
|
__compactRuntime.convertBytesToUint(52435875175126190479447740508185965837690552500527637822603658699938581184512n,
|
|
@@ -606,7 +606,7 @@ export class Contract {
|
|
|
606
606
|
((e, i) => e.slice(i, i+1))(word_0,
|
|
607
607
|
Number(29n)),
|
|
608
608
|
'Field',
|
|
609
|
-
'Signet.compact line
|
|
609
|
+
'Signet.compact line 511 char 30'));
|
|
610
610
|
const b14_0 = __compactRuntime.addField(__compactRuntime.mulField(b13_0,
|
|
611
611
|
256n),
|
|
612
612
|
__compactRuntime.convertBytesToUint(52435875175126190479447740508185965837690552500527637822603658699938581184512n,
|
|
@@ -614,7 +614,7 @@ export class Contract {
|
|
|
614
614
|
((e, i) => e.slice(i, i+1))(word_0,
|
|
615
615
|
Number(30n)),
|
|
616
616
|
'Field',
|
|
617
|
-
'Signet.compact line
|
|
617
|
+
'Signet.compact line 512 char 30'));
|
|
618
618
|
const b15_0 = __compactRuntime.addField(__compactRuntime.mulField(b14_0,
|
|
619
619
|
256n),
|
|
620
620
|
__compactRuntime.convertBytesToUint(52435875175126190479447740508185965837690552500527637822603658699938581184512n,
|
|
@@ -622,10 +622,10 @@ export class Contract {
|
|
|
622
622
|
((e, i) => e.slice(i, i+1))(word_0,
|
|
623
623
|
Number(31n)),
|
|
624
624
|
'Field',
|
|
625
|
-
'Signet.compact line
|
|
625
|
+
'Signet.compact line 513 char 30'));
|
|
626
626
|
return ((t1) => {
|
|
627
627
|
if (t1 > 340282366920938463463374607431768211455n) {
|
|
628
|
-
throw new __compactRuntime.CompactError('Signet.compact line
|
|
628
|
+
throw new __compactRuntime.CompactError('Signet.compact line 514 char 12: cast from Field or Uint value to smaller Uint value failed: ' + t1 + ' is greater than 340282366920938463463374607431768211455');
|
|
629
629
|
}
|
|
630
630
|
return t1;
|
|
631
631
|
})(b15_0);
|
|
@@ -636,7 +636,7 @@ export class Contract {
|
|
|
636
636
|
((e, i) => e.slice(i, i+31))(word_0,
|
|
637
637
|
Number(0n)),
|
|
638
638
|
'Field',
|
|
639
|
-
'Signet.compact line
|
|
639
|
+
'Signet.compact line 520 char 12')
|
|
640
640
|
===
|
|
641
641
|
0n,
|
|
642
642
|
'ABI word is not a canonical Boolean');
|
|
@@ -645,7 +645,7 @@ export class Contract {
|
|
|
645
645
|
((e, i) => e.slice(i, i+1))(word_0,
|
|
646
646
|
Number(31n)),
|
|
647
647
|
'Field',
|
|
648
|
-
'Signet.compact line
|
|
648
|
+
'Signet.compact line 521 char 18');
|
|
649
649
|
__compactRuntime.assert(last_0 === 0n || last_0 === 1n,
|
|
650
650
|
'ABI word is not a canonical Boolean');
|
|
651
651
|
return last_0 === 1n;
|
|
@@ -704,21 +704,21 @@ export const pureCircuits = {
|
|
|
704
704
|
if (!(typeof(callerAddress_0) === 'object' && callerAddress_0.bytes.buffer instanceof ArrayBuffer && callerAddress_0.bytes.BYTES_PER_ELEMENT === 1 && callerAddress_0.bytes.length === 32)) {
|
|
705
705
|
__compactRuntime.typeError('constructSignBidirectionalEventNotificationV1',
|
|
706
706
|
'argument 1',
|
|
707
|
-
'Signet.compact line
|
|
707
|
+
'Signet.compact line 259 char 3',
|
|
708
708
|
'struct ContractAddress<bytes: Bytes<32>>',
|
|
709
709
|
callerAddress_0)
|
|
710
710
|
}
|
|
711
711
|
if (!(typeof(requestsPathDepth_0) === 'bigint' && requestsPathDepth_0 >= 0n && requestsPathDepth_0 <= 255n)) {
|
|
712
712
|
__compactRuntime.typeError('constructSignBidirectionalEventNotificationV1',
|
|
713
713
|
'argument 2',
|
|
714
|
-
'Signet.compact line
|
|
714
|
+
'Signet.compact line 259 char 3',
|
|
715
715
|
'Uint<0..256>',
|
|
716
716
|
requestsPathDepth_0)
|
|
717
717
|
}
|
|
718
718
|
if (!(Array.isArray(requestsPath_0) && requestsPath_0.length === 4 && requestsPath_0.every((t) => typeof(t) === 'bigint' && t >= 0n && t <= 255n))) {
|
|
719
719
|
__compactRuntime.typeError('constructSignBidirectionalEventNotificationV1',
|
|
720
720
|
'argument 3',
|
|
721
|
-
'Signet.compact line
|
|
721
|
+
'Signet.compact line 259 char 3',
|
|
722
722
|
'Vector<4, Uint<0..256>>',
|
|
723
723
|
requestsPath_0)
|
|
724
724
|
}
|
|
@@ -741,7 +741,7 @@ export const pureCircuits = {
|
|
|
741
741
|
if (!(addr_0.buffer instanceof ArrayBuffer && addr_0.BYTES_PER_ELEMENT === 1 && addr_0.length === 20)) {
|
|
742
742
|
__compactRuntime.typeError('evmAddressAbiWord',
|
|
743
743
|
'argument 1',
|
|
744
|
-
'Signet.compact line
|
|
744
|
+
'Signet.compact line 469 char 3',
|
|
745
745
|
'Bytes<20>',
|
|
746
746
|
addr_0)
|
|
747
747
|
}
|
|
@@ -755,7 +755,7 @@ export const pureCircuits = {
|
|
|
755
755
|
if (!(typeof(value_0) === 'bigint' && value_0 >= 0n && value_0 <= 340282366920938463463374607431768211455n)) {
|
|
756
756
|
__compactRuntime.typeError('numericAbiWord',
|
|
757
757
|
'argument 1',
|
|
758
|
-
'Signet.compact line
|
|
758
|
+
'Signet.compact line 475 char 3',
|
|
759
759
|
'Uint<0..340282366920938463463374607431768211456>',
|
|
760
760
|
value_0)
|
|
761
761
|
}
|
|
@@ -769,7 +769,7 @@ export const pureCircuits = {
|
|
|
769
769
|
if (!(typeof(value_0) === 'boolean')) {
|
|
770
770
|
__compactRuntime.typeError('boolAbiWord',
|
|
771
771
|
'argument 1',
|
|
772
|
-
'Signet.compact line
|
|
772
|
+
'Signet.compact line 488 char 3',
|
|
773
773
|
'Boolean',
|
|
774
774
|
value_0)
|
|
775
775
|
}
|
|
@@ -783,7 +783,7 @@ export const pureCircuits = {
|
|
|
783
783
|
if (!(word_0.buffer instanceof ArrayBuffer && word_0.BYTES_PER_ELEMENT === 1 && word_0.length === 32)) {
|
|
784
784
|
__compactRuntime.typeError('abiWordToUint128',
|
|
785
785
|
'argument 1',
|
|
786
|
-
'Signet.compact line
|
|
786
|
+
'Signet.compact line 496 char 3',
|
|
787
787
|
'Bytes<32>',
|
|
788
788
|
word_0)
|
|
789
789
|
}
|
|
@@ -797,7 +797,7 @@ export const pureCircuits = {
|
|
|
797
797
|
if (!(word_0.buffer instanceof ArrayBuffer && word_0.BYTES_PER_ELEMENT === 1 && word_0.length === 32)) {
|
|
798
798
|
__compactRuntime.typeError('abiWordToBool',
|
|
799
799
|
'argument 1',
|
|
800
|
-
'Signet.compact line
|
|
800
|
+
'Signet.compact line 519 char 3',
|
|
801
801
|
'Bytes<32>',
|
|
802
802
|
word_0)
|
|
803
803
|
}
|
|
@@ -4,5 +4,5 @@
|
|
|
4
4
|
"sourceRoot": "../../../",
|
|
5
5
|
"sources": ["src/circuits.compact", "src/./Signet.compact", "compiler/zkir-v3-library.compact"],
|
|
6
6
|
"names": [],
|
|
7
|
-
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAAA;;;;;;;;;;
|
|
7
|
+
"mappings": "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"
|
|
8
8
|
}
|
|
@@ -45,17 +45,35 @@ export interface SignetRequestsLedger {
|
|
|
45
45
|
* record matches no capacity split.
|
|
46
46
|
*/
|
|
47
47
|
export declare function readSignetRequestsLedgerFromState(raw: RawContractState, requestsIndexPath: readonly number[], noncePath: readonly number[]): SignetRequestsLedger;
|
|
48
|
+
/**
|
|
49
|
+
* Enumerate a contract's WHOLE request index at an arbitrary ledger path:
|
|
50
|
+
* the discovery primitive of the event-based feed. A notification event
|
|
51
|
+
* names only the requester contract and the path of its request map, so the
|
|
52
|
+
* MPC enumerates that map and serves what it has not served before: every
|
|
53
|
+
* record here was read from the caller's own authenticated ledger.
|
|
54
|
+
*
|
|
55
|
+
* Fail-closed like {@link lookupSignetRequestAt}: a path out of range, a
|
|
56
|
+
* non-Map node, or an undecodable cell yields an EMPTY (or smaller) index
|
|
57
|
+
* rather than a throw, so a malformed or adversarial notification can never
|
|
58
|
+
* crash the reader.
|
|
59
|
+
*
|
|
60
|
+
* @param raw - Raw contract state, e.g. `queryContractState(address).data`.
|
|
61
|
+
* @param requestsPath - Resolved ledger-tree path of the request index in
|
|
62
|
+
* `raw`, as the notification carries it.
|
|
63
|
+
* @returns The decoded index, keyed by hex request id, empty when the path
|
|
64
|
+
* holds no readable request map.
|
|
65
|
+
*/
|
|
66
|
+
export declare function readSignetRequestIndexAt(raw: RawContractState, requestsPath: readonly number[]): SignBidirectionalEventIndex;
|
|
48
67
|
/**
|
|
49
68
|
* Look up ONE request by id in a contract's request index at an arbitrary
|
|
50
69
|
* ledger field, the single-record sibling of
|
|
51
|
-
* {@link readSignetRequestsLedgerFromState}, and what
|
|
70
|
+
* {@link readSignetRequestsLedgerFromState}, and what a point verification
|
|
52
71
|
* uses: a notification names both the requester contract AND which field
|
|
53
72
|
* holds its index.
|
|
54
73
|
*
|
|
55
|
-
*
|
|
56
|
-
*
|
|
57
|
-
*
|
|
58
|
-
* wrong field, or the request is not yet indexed) and the caller MUST drop it.
|
|
74
|
+
* `undefined` means the id is NOT a member of the index at `requestsPath`
|
|
75
|
+
* (the pointer is forged, stale, points at the wrong field, or the request is
|
|
76
|
+
* not yet indexed) and the caller MUST drop it.
|
|
59
77
|
* Every non-membership case (field out of range, field is not a Map, id absent,
|
|
60
78
|
* a cell that fails to decode) returns `undefined` rather than throwing, so a
|
|
61
79
|
* malformed or adversarial notification can never crash the reader.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"signature-requests-state-reader.d.ts","sourceRoot":"","sources":["../src/signature-requests-state-reader.ts"],"names":[],"mappings":"AAmBA,OAAO,EAEL,KAAK,YAAY,EACjB,KAAK,sBAAsB,EAC3B,KAAK,2BAA2B,EACjC,MAAM,sBAAsB,CAAC;AAK9B,OAAO,EAIL,KAAK,gBAAgB,EACtB,MAAM,8BAA8B,CAAC;AAEtC;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,yBAAyB,KAAK,CAAC;AA6F5C;;;;;;GAMG;AACH,MAAM,WAAW,oBAAoB;IACnC,uCAAuC;IACvC,KAAK,EAAE,MAAM,CAAC;IACd,kDAAkD;IAClD,aAAa,EAAE,2BAA2B,CAAC;CAC5C;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,iCAAiC,CAC/C,GAAG,EAAE,gBAAgB,EACrB,iBAAiB,EAAE,SAAS,MAAM,EAAE,EACpC,SAAS,EAAE,SAAS,MAAM,EAAE,GAC3B,oBAAoB,CAqBtB;AAED
|
|
1
|
+
{"version":3,"file":"signature-requests-state-reader.d.ts","sourceRoot":"","sources":["../src/signature-requests-state-reader.ts"],"names":[],"mappings":"AAmBA,OAAO,EAEL,KAAK,YAAY,EACjB,KAAK,sBAAsB,EAC3B,KAAK,2BAA2B,EACjC,MAAM,sBAAsB,CAAC;AAK9B,OAAO,EAIL,KAAK,gBAAgB,EACtB,MAAM,8BAA8B,CAAC;AAEtC;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,yBAAyB,KAAK,CAAC;AA6F5C;;;;;;GAMG;AACH,MAAM,WAAW,oBAAoB;IACnC,uCAAuC;IACvC,KAAK,EAAE,MAAM,CAAC;IACd,kDAAkD;IAClD,aAAa,EAAE,2BAA2B,CAAC;CAC5C;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,iCAAiC,CAC/C,GAAG,EAAE,gBAAgB,EACrB,iBAAiB,EAAE,SAAS,MAAM,EAAE,EACpC,SAAS,EAAE,SAAS,MAAM,EAAE,GAC3B,oBAAoB,CAqBtB;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,wBAAwB,CACtC,GAAG,EAAE,gBAAgB,EACrB,YAAY,EAAE,SAAS,MAAM,EAAE,GAC9B,2BAA2B,CAwB7B;AAED;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,wBAAgB,qBAAqB,CACnC,GAAG,EAAE,gBAAgB,EACrB,YAAY,EAAE,SAAS,MAAM,EAAE,EAC/B,SAAS,EAAE,YAAY,GACtB,sBAAsB,GAAG,SAAS,CA2BpC"}
|
|
@@ -142,17 +142,62 @@ export function readSignetRequestsLedgerFromState(raw, requestsIndexPath, nonceP
|
|
|
142
142
|
const nonce = u64.fromValue([...nonceCell.value]);
|
|
143
143
|
return { nonce, requestsIndex };
|
|
144
144
|
}
|
|
145
|
+
/**
|
|
146
|
+
* Enumerate a contract's WHOLE request index at an arbitrary ledger path:
|
|
147
|
+
* the discovery primitive of the event-based feed. A notification event
|
|
148
|
+
* names only the requester contract and the path of its request map, so the
|
|
149
|
+
* MPC enumerates that map and serves what it has not served before: every
|
|
150
|
+
* record here was read from the caller's own authenticated ledger.
|
|
151
|
+
*
|
|
152
|
+
* Fail-closed like {@link lookupSignetRequestAt}: a path out of range, a
|
|
153
|
+
* non-Map node, or an undecodable cell yields an EMPTY (or smaller) index
|
|
154
|
+
* rather than a throw, so a malformed or adversarial notification can never
|
|
155
|
+
* crash the reader.
|
|
156
|
+
*
|
|
157
|
+
* @param raw - Raw contract state, e.g. `queryContractState(address).data`.
|
|
158
|
+
* @param requestsPath - Resolved ledger-tree path of the request index in
|
|
159
|
+
* `raw`, as the notification carries it.
|
|
160
|
+
* @returns The decoded index, keyed by hex request id, empty when the path
|
|
161
|
+
* holds no readable request map.
|
|
162
|
+
*/
|
|
163
|
+
export function readSignetRequestIndexAt(raw, requestsPath) {
|
|
164
|
+
const index = new Map();
|
|
165
|
+
let node;
|
|
166
|
+
try {
|
|
167
|
+
node = signetFieldNodeByPath(raw, requestsPath);
|
|
168
|
+
}
|
|
169
|
+
catch {
|
|
170
|
+
return index; // path out of range for this contract
|
|
171
|
+
}
|
|
172
|
+
const map = node.asMap();
|
|
173
|
+
if (map === undefined) {
|
|
174
|
+
return index; // the named field is not a request index
|
|
175
|
+
}
|
|
176
|
+
for (const key of map.keys()) {
|
|
177
|
+
// fromValue consumes its input, so hand each descriptor a copy.
|
|
178
|
+
const requestId = requestIdHex(requestIdType.fromValue([...key.value]));
|
|
179
|
+
const cell = map.get(key)?.asCell();
|
|
180
|
+
if (cell === undefined)
|
|
181
|
+
continue;
|
|
182
|
+
try {
|
|
183
|
+
index.set(requestId, decodeSignBidirectionalEvent(cell.value, requestId));
|
|
184
|
+
}
|
|
185
|
+
catch {
|
|
186
|
+
continue; // a cell that is not a decodable request record
|
|
187
|
+
}
|
|
188
|
+
}
|
|
189
|
+
return index;
|
|
190
|
+
}
|
|
145
191
|
/**
|
|
146
192
|
* Look up ONE request by id in a contract's request index at an arbitrary
|
|
147
193
|
* ledger field, the single-record sibling of
|
|
148
|
-
* {@link readSignetRequestsLedgerFromState}, and what
|
|
194
|
+
* {@link readSignetRequestsLedgerFromState}, and what a point verification
|
|
149
195
|
* uses: a notification names both the requester contract AND which field
|
|
150
196
|
* holds its index.
|
|
151
197
|
*
|
|
152
|
-
*
|
|
153
|
-
*
|
|
154
|
-
*
|
|
155
|
-
* wrong field, or the request is not yet indexed) and the caller MUST drop it.
|
|
198
|
+
* `undefined` means the id is NOT a member of the index at `requestsPath`
|
|
199
|
+
* (the pointer is forged, stale, points at the wrong field, or the request is
|
|
200
|
+
* not yet indexed) and the caller MUST drop it.
|
|
156
201
|
* Every non-membership case (field out of range, field is not a Map, id absent,
|
|
157
202
|
* a cell that fails to decode) returns `undefined` rather than throwing, so a
|
|
158
203
|
* malformed or adversarial notification can never crash the reader.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"signature-requests-state-reader.js","sourceRoot":"","sources":["../src/signature-requests-state-reader.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"signature-requests-state-reader.js","sourceRoot":"","sources":["../src/signature-requests-state-reader.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { SignBidirectionalEvent } from "./signet-requests.ts";
|
|
2
|
-
import type { SignatureRespondedEvent } from "./signet-contract-
|
|
2
|
+
import type { SignatureRespondedEvent } from "./signet-contract-events.ts";
|
|
3
3
|
/**
|
|
4
4
|
* Recover the EVM address that produced a response signature, over the
|
|
5
5
|
* signing hash of the transaction the request describes.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"signature-response-verification.d.ts","sourceRoot":"","sources":["../src/signature-response-verification.ts"],"names":[],"mappings":"AAeA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AACnE,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"signature-response-verification.d.ts","sourceRoot":"","sources":["../src/signature-response-verification.ts"],"names":[],"mappings":"AAeA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AACnE,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,6BAA6B,CAAC;AAE3E;;;;;;;;;;GAUG;AACH,wBAAgB,8BAA8B,CAC5C,OAAO,EAAE,sBAAsB,EAC/B,QAAQ,EAAE,uBAAuB,GAChC,MAAM,CAKR;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,6BAA6B,CAC3C,OAAO,EAAE,sBAAsB,EAC/B,QAAQ,EAAE,uBAAuB,EACjC,cAAc,EAAE,MAAM,GACrB,OAAO,CAST"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
// Client-side verification of MPC signature responses.
|
|
2
|
-
//
|
|
3
|
-
//
|
|
1
|
+
// Client-side verification of MPC signature responses. The signet contract
|
|
2
|
+
// emits signature responses UNAUTHENTICATED (see the module header in
|
|
3
|
+
// Signet.compact), so a poller must verify every posted response
|
|
4
4
|
// before trusting it: rebuild the unsigned EVM transaction from the on-ledger
|
|
5
5
|
// request record, assembled exactly as the MPC assembles it (sig-net/mpc
|
|
6
6
|
// response server, managed/erc20-vault/signet/calldata-builder.ts), and
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"signature-response-verification.js","sourceRoot":"","sources":["../src/signature-response-verification.ts"],"names":[],"mappings":"AAAA,sEAAsE;AACtE,
|
|
1
|
+
{"version":3,"file":"signature-response-verification.js","sourceRoot":"","sources":["../src/signature-response-verification.ts"],"names":[],"mappings":"AAAA,2EAA2E;AAC3E,sEAAsE;AACtE,iEAAiE;AACjE,8EAA8E;AAC9E,yEAAyE;AACzE,wEAAwE;AACxE,6EAA6E;AAC7E,oDAAoD;AAEpD,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,QAAQ,CAAC;AAEpD,OAAO,EACL,8CAA8C,EAC9C,kCAAkC,GACnC,MAAM,gCAAgC,CAAC;AAIxC;;;;;;;;;;GAUG;AACH,MAAM,UAAU,8BAA8B,CAC5C,OAA+B,EAC/B,QAAiC;IAEjC,OAAO,cAAc,CACnB,8CAA8C,CAAC,OAAO,CAAC,CAAC,YAAY,EACpE,kCAAkC,CAAC,QAAQ,CAAC,CAC7C,CAAC;AACJ,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,UAAU,6BAA6B,CAC3C,OAA+B,EAC/B,QAAiC,EACjC,cAAsB;IAEtB,IAAI,CAAC;QACH,OAAO,CACL,8BAA8B,CAAC,OAAO,EAAE,QAAQ,CAAC;YACjD,UAAU,CAAC,cAAc,CAAC,CAC3B,CAAC;IACJ,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
// Common signet raw-state reading
|
|
2
|
-
// (signature-requests-state-reader.ts
|
|
1
|
+
// Common signet raw-state reading for the request-side readers
|
|
2
|
+
// (signature-requests-state-reader.ts).
|
|
3
3
|
// This is the MPC-/client-style path: decode a contract's ledger fields out of
|
|
4
4
|
// its raw state WITHOUT the compiled contract, following a resolved ledger-tree
|
|
5
5
|
// path. Here live the generic path walk (RawContractState,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"signature-state-reading.js","sourceRoot":"","sources":["../src/signature-state-reading.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"signature-state-reading.js","sourceRoot":"","sources":["../src/signature-state-reading.ts"],"names":[],"mappings":"AAAA,+DAA+D;AAC/D,wCAAwC;AACxC,+EAA+E;AAC/E,gFAAgF;AAChF,2DAA2D;AAC3D,gFAAgF;AAChF,uDAAuD;AAEvD,OAAO,EACL,gBAAgB,EAChB,0BAA0B,GAG3B,MAAM,iCAAiC,CAAC;AAEzC,OAAO,EAAkB,MAAM,sBAAsB,CAAC;AAEtD,yCAAyC;AACzC,8EAA8E;AAC9E,+EAA+E;AAC/E,mCAAmC;AAEnC,qEAAqE;AACrE,MAAM,CAAC,MAAM,GAAG,GAAG,IAAI,0BAA0B,CAAC,qBAAqB,EAAE,CAAC,CAAC,CAAC;AAE5E,4CAA4C;AAC5C,MAAM,CAAC,MAAM,OAAO,GAAG,IAAI,gBAAgB,CAAC,EAAE,CAAC,CAAC;AAEhD;;;;GAIG;AACH,MAAM,CAAC,MAAM,aAAa,GAA2B,OAAO,CAAC;AAW7D;;;;;GAKG;AACH,MAAM,MAAM,GAAG,CAAC,GAAqB,EAAc,EAAE,CACnD,OAAO,IAAI,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC;AAEnC;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAM,UAAU,qBAAqB,CACnC,GAAqB,EACrB,IAAuB;IAEvB,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACtB,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAC;IAChD,CAAC;IACD,IAAI,IAAI,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;IACvB,KAAK,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,IAAI,CAAC,OAAO,EAAE,EAAE,CAAC;QAC5C,IAAI,IAAI,CAAC,IAAI,EAAE,KAAK,OAAO,EAAE,CAAC;YAC5B,sEAAsE;YACtE,mEAAmE;YACnE,kCAAkC;YAClC,IAAI,KAAK,KAAK,CAAC,IAAI,KAAK,KAAK,IAAI,CAAC,MAAM,GAAG,CAAC;gBAAE,OAAO,IAAI,CAAC;YAC1D,MAAM,IAAI,KAAK,CACb,qBAAqB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,oCAAoC,KAAK,EAAE,CACrF,CAAC;QACJ,CAAC;QACD,MAAM,IAAI,GAAG,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC;QAC3C,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;YACvB,MAAM,IAAI,KAAK,CACb,qBAAqB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,UAAU,KAAK,0BAA0B,KAAK,EAAE,CAC1F,CAAC;QACJ,CAAC;QACD,IAAI,GAAG,IAAI,CAAC;IACd,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC"}
|