autobee 1.0.9 → 2.0.0-rc.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.
@@ -215,6 +215,7 @@ const OplogMessageV1 = {
215
215
  throw new Error('Encoding not supported')
216
216
  },
217
217
  decode(state) {
218
+ c.uint.decode(state) // version
218
219
  const maxSupportedVersion = c.uint.decode(state)
219
220
 
220
221
  const flags = c.uint.decode(state)
@@ -245,6 +246,7 @@ const OplogMessageV0 = {
245
246
  throw new Error('Encoding not supported')
246
247
  },
247
248
  decode(state) {
249
+ c.uint.decode(state) // version
248
250
  const flags = c.uint.decode(state)
249
251
 
250
252
  const isCheckpointer = (flags & 1) !== 0
@@ -288,13 +290,12 @@ const SystemWriterV0 = {
288
290
  function infoLegacyMap(info) {
289
291
  return {
290
292
  version: info.version,
291
- members: info.members,
292
- pendingIndexers: info.pendingIndexers,
293
- indexers: info.indexers,
294
- heads: info.heads,
293
+ timestamp: 0,
294
+ flushes: 0,
295
+ view: null,
295
296
  views: info.views,
296
- encryptionLength: 0,
297
- entropy: null
297
+ heads: info.heads,
298
+ indexers: info.indexers
298
299
  }
299
300
  }
300
301
 
@@ -557,18 +557,29 @@ const encoding19 = {
557
557
  // @autobee/system-writer-v4
558
558
  const encoding20 = {
559
559
  preencode(state, m) {
560
- state.end++ // max flag is 2 so always one byte
560
+ state.end++ // max flag is 16 so always one byte
561
561
  c.uint.preencode(state, m.weight)
562
+ c.uint.preencode(state, m.maxWeight)
562
563
  c.uint.preencode(state, m.length)
563
564
  c.uint.preencode(state, m.clock)
565
+
566
+ if (m.timestamp) c.int.preencode(state, m.timestamp)
564
567
  },
565
568
  encode(state, m) {
566
- const flags = (m.isRemoved ? 1 : 0) | (m.isOplog ? 2 : 0)
569
+ const flags =
570
+ (m.isRemoved ? 1 : 0) |
571
+ (m.isOplog ? 2 : 0) |
572
+ (m.isGenesis ? 4 : 0) |
573
+ (m.isAnchor ? 8 : 0) |
574
+ (m.timestamp ? 16 : 0)
567
575
 
568
576
  c.uint.encode(state, flags)
569
577
  c.uint.encode(state, m.weight)
578
+ c.uint.encode(state, m.maxWeight)
570
579
  c.uint.encode(state, m.length)
571
580
  c.uint.encode(state, m.clock)
581
+
582
+ if (m.timestamp) c.int.encode(state, m.timestamp)
572
583
  },
573
584
  decode(state) {
574
585
  const v = c.uint.decode(state)
@@ -579,8 +590,12 @@ const encoding20 = {
579
590
  isRemoved: (flags & 1) !== 0,
580
591
  isOplog: (flags & 2) !== 0,
581
592
  weight: c.uint.decode(state),
593
+ maxWeight: c.uint.decode(state),
582
594
  length: c.uint.decode(state),
583
- clock: c.uint.decode(state)
595
+ clock: c.uint.decode(state),
596
+ isGenesis: (flags & 4) !== 0,
597
+ isAnchor: (flags & 8) !== 0,
598
+ timestamp: (flags & 16) !== 0 ? c.int.decode(state) : 0
584
599
  }
585
600
  }
586
601
  }
@@ -645,8 +660,33 @@ const encoding21 = {
645
660
  // @autobee/link
646
661
  const encoding22 = encoding0
647
662
 
648
- // @autobee/batch
663
+ // @autobee/external-batch
649
664
  const encoding23 = {
665
+ preencode(state, m) {
666
+ c.fixed32.preencode(state, m.key)
667
+ c.uint.preencode(state, m.start)
668
+ c.uint.preencode(state, m.length)
669
+ },
670
+ encode(state, m) {
671
+ c.fixed32.encode(state, m.key)
672
+ c.uint.encode(state, m.start)
673
+ c.uint.encode(state, m.length)
674
+ },
675
+ decode(state) {
676
+ const r0 = c.fixed32.decode(state)
677
+ const r1 = c.uint.decode(state)
678
+ const r2 = c.uint.decode(state)
679
+
680
+ return {
681
+ key: r0,
682
+ start: r1,
683
+ length: r2
684
+ }
685
+ }
686
+ }
687
+
688
+ // @autobee/batch
689
+ const encoding24 = {
650
690
  preencode(state, m) {
651
691
  c.uint.preencode(state, m.start)
652
692
  c.uint.preencode(state, m.end)
@@ -667,108 +707,203 @@ const encoding23 = {
667
707
  }
668
708
 
669
709
  // @autobee/views
670
- const encoding24 = {
710
+ const encoding25 = {
671
711
  preencode(state, m) {
672
- encoding22.preencode(state, m.system)
673
712
  c.uint.preencode(state, m.flushes)
713
+ encoding23.preencode(state, m.system)
674
714
  state.end++ // flags are fixed size
675
715
 
676
- if (m.view) encoding22.preencode(state, m.view)
716
+ if (m.view) encoding23.preencode(state, m.view)
677
717
  },
678
718
  encode(state, m) {
679
719
  const flags = m.view ? 1 : 0
680
720
 
681
- encoding22.encode(state, m.system)
682
721
  c.uint.encode(state, m.flushes)
722
+ encoding23.encode(state, m.system)
683
723
  c.uint8.encode(state, flags)
684
724
 
685
- if (m.view) encoding22.encode(state, m.view)
725
+ if (m.view) encoding23.encode(state, m.view)
686
726
  },
687
727
  decode(state) {
688
- const r0 = encoding22.decode(state)
689
- const r1 = c.uint.decode(state)
728
+ const r0 = c.uint.decode(state)
729
+ const r1 = encoding23.decode(state)
690
730
  const flags = c.uint8.decode(state)
691
731
 
692
732
  return {
693
- system: r0,
694
- flushes: r1,
695
- view: (flags & 1) !== 0 ? encoding22.decode(state) : null
733
+ flushes: r0,
734
+ system: r1,
735
+ view: (flags & 1) !== 0 ? encoding23.decode(state) : null
696
736
  }
697
737
  }
698
738
  }
699
739
 
700
740
  // @autobee/views (inline)
701
- const encoding24_inline = {
741
+ const encoding25_inline = {
702
742
  preencode(state, m) {
703
- encoding22.preencode(state, m.system)
704
743
  c.uint.preencode(state, m.flushes)
744
+ encoding23.preencode(state, m.system)
705
745
 
706
- if (m.view) encoding22.preencode(state, m.view)
746
+ if (m.view) encoding23.preencode(state, m.view)
707
747
  },
708
748
  encode(state, m) {
709
- encoding22.encode(state, m.system)
710
749
  c.uint.encode(state, m.flushes)
750
+ encoding23.encode(state, m.system)
711
751
 
712
- if (m.view) encoding22.encode(state, m.view)
752
+ if (m.view) encoding23.encode(state, m.view)
713
753
  },
714
754
  decode(state, inlining) {
715
- const r0 = encoding22.decode(state)
716
- const r1 = c.uint.decode(state)
755
+ const r0 = c.uint.decode(state)
756
+ const r1 = encoding23.decode(state)
717
757
  const flags = inlining
718
758
 
719
759
  return {
720
- system: r0,
721
- flushes: r1,
722
- view: (flags & 1) !== 0 ? encoding22.decode(state) : null
760
+ flushes: r0,
761
+ system: r1,
762
+ view: (flags & 1) !== 0 ? encoding23.decode(state) : null
763
+ }
764
+ }
765
+ }
766
+
767
+ // @autobee/signed-backer
768
+ const encoding26 = {
769
+ preencode(state, m) {
770
+ c.fixed32.preencode(state, m.key)
771
+ c.uint.preencode(state, m.length)
772
+ c.fixed64.preencode(state, m.signature)
773
+ c.buffer.preencode(state, m.manifest)
774
+ },
775
+ encode(state, m) {
776
+ c.fixed32.encode(state, m.key)
777
+ c.uint.encode(state, m.length)
778
+ c.fixed64.encode(state, m.signature)
779
+ c.buffer.encode(state, m.manifest)
780
+ },
781
+ decode(state) {
782
+ const r0 = c.fixed32.decode(state)
783
+ const r1 = c.uint.decode(state)
784
+ const r2 = c.fixed64.decode(state)
785
+ const r3 = c.buffer.decode(state)
786
+
787
+ return {
788
+ key: r0,
789
+ length: r1,
790
+ signature: r2,
791
+ manifest: r3
792
+ }
793
+ }
794
+ }
795
+
796
+ // @autobee/witness.backer
797
+ const encoding27_1 = c.frame(encoding26)
798
+
799
+ // @autobee/witness
800
+ const encoding27 = {
801
+ preencode(state, m) {
802
+ c.uint.preencode(state, m.weight)
803
+ encoding27_1.preencode(state, m.backer)
804
+ },
805
+ encode(state, m) {
806
+ c.uint.encode(state, m.weight)
807
+ encoding27_1.encode(state, m.backer)
808
+ },
809
+ decode(state) {
810
+ const r0 = c.uint.decode(state)
811
+ const r1 = encoding27_1.decode(state)
812
+
813
+ return {
814
+ weight: r0,
815
+ backer: r1
723
816
  }
724
817
  }
725
818
  }
726
819
 
820
+ // @autobee/attestation
821
+ const encoding28 = {
822
+ preencode(state, m) {
823
+ c.fixed32.preencode(state, m.key)
824
+ c.uint.preencode(state, m.weight)
825
+ c.fixed64.preencode(state, m.signature)
826
+ },
827
+ encode(state, m) {
828
+ c.fixed32.encode(state, m.key)
829
+ c.uint.encode(state, m.weight)
830
+ c.fixed64.encode(state, m.signature)
831
+ },
832
+ decode(state) {
833
+ const r0 = c.fixed32.decode(state)
834
+ const r1 = c.uint.decode(state)
835
+ const r2 = c.fixed64.decode(state)
836
+
837
+ return {
838
+ key: r0,
839
+ weight: r1,
840
+ signature: r2
841
+ }
842
+ }
843
+ }
844
+
845
+ // @autobee/oplog-message-v3.witness
846
+ const encoding29_6 = c.frame(encoding27)
847
+ // @autobee/oplog-message-v3.attestations
848
+ const encoding29_7 = c.array(c.frame(encoding28))
849
+
727
850
  // @autobee/oplog-message-v3
728
- const encoding25 = {
851
+ const encoding29 = {
729
852
  preencode(state, m) {
730
853
  c.uint.preencode(state, m.timestamp)
731
- encoding25_1.preencode(state, m.links)
732
- state.end++ // max flag is 16 so always one byte
854
+ encoding29_1.preencode(state, m.links)
855
+ state.end++ // max flag is 64 so always one byte
733
856
 
734
- if (m.batch) encoding23.preencode(state, m.batch)
735
- if (m.views) encoding24_inline.preencode(state, m.views)
857
+ if (m.batch) encoding24.preencode(state, m.batch)
858
+ if (m.views) encoding25_inline.preencode(state, m.views)
736
859
  if (m.value) c.buffer.preencode(state, m.value)
860
+ if (m.witness) encoding29_6.preencode(state, m.witness)
861
+ if (m.attestations) encoding29_7.preencode(state, m.attestations)
737
862
  },
738
863
  encode(state, m) {
739
- let flags = (m.batch ? 1 : 0) | (m.views ? 2 : 0) | (m.optimistic ? 8 : 0) | (m.value ? 16 : 0)
864
+ let flags =
865
+ (m.batch ? 1 : 0) |
866
+ (m.views ? 2 : 0) |
867
+ (m.optimistic ? 8 : 0) |
868
+ (m.value ? 16 : 0) |
869
+ (m.witness ? 32 : 0) |
870
+ (m.attestations ? 64 : 0)
740
871
  if (m.views) {
741
872
  flags |= m.views.view ? 4 : 0
742
873
  }
743
874
 
744
875
  c.uint.encode(state, m.timestamp)
745
- encoding25_1.encode(state, m.links)
876
+ encoding29_1.encode(state, m.links)
746
877
  c.uint.encode(state, flags)
747
878
 
748
- if (m.batch) encoding23.encode(state, m.batch)
749
- if (m.views) encoding24_inline.encode(state, m.views)
879
+ if (m.batch) encoding24.encode(state, m.batch)
880
+ if (m.views) encoding25_inline.encode(state, m.views)
750
881
  if (m.value) c.buffer.encode(state, m.value)
882
+ if (m.witness) encoding29_6.encode(state, m.witness)
883
+ if (m.attestations) encoding29_7.encode(state, m.attestations)
751
884
  },
752
885
  decode(state) {
753
886
  const v = c.uint.decode(state)
754
887
  const r0 = c.uint.decode(state)
755
- const r1 = encoding25_1.decode(state)
888
+ const r1 = encoding29_1.decode(state)
756
889
  const flags = c.uint.decode(state)
757
890
 
758
891
  return {
759
892
  version: v,
760
893
  timestamp: r0,
761
894
  links: r1,
762
- batch: (flags & 1) !== 0 ? encoding23.decode(state) : null,
763
- views: (flags & 2) !== 0 ? encoding24_inline.decode(state, flags >>> 2) : null,
895
+ batch: (flags & 1) !== 0 ? encoding24.decode(state) : null,
896
+ views: (flags & 2) !== 0 ? encoding25_inline.decode(state, flags >>> 2) : null,
764
897
  optimistic: (flags & 8) !== 0,
765
- value: (flags & 16) !== 0 ? c.buffer.decode(state) : null
898
+ value: (flags & 16) !== 0 ? c.buffer.decode(state) : null,
899
+ witness: (flags & 32) !== 0 ? encoding29_6.decode(state) : null,
900
+ attestations: (flags & 64) !== 0 ? encoding29_7.decode(state) : null
766
901
  }
767
902
  }
768
903
  }
769
904
 
770
905
  // @autobee/oplog
771
- const encoding26 = {
906
+ const encoding30 = {
772
907
  preencode(state, m) {
773
908
  c.uint.preencode(state, m.version)
774
909
  switch (m.version) {
@@ -782,7 +917,7 @@ const encoding26 = {
782
917
  encoding14.preencode(state, m)
783
918
  break
784
919
  case 3:
785
- encoding25.preencode(state, m)
920
+ encoding29.preencode(state, m)
786
921
  break
787
922
  default:
788
923
  throw new Error('Unsupported version')
@@ -801,7 +936,7 @@ const encoding26 = {
801
936
  encoding14.encode(state, m)
802
937
  break
803
938
  case 3:
804
- encoding25.encode(state, m)
939
+ encoding29.encode(state, m)
805
940
  break
806
941
  default:
807
942
  throw new Error('Unsupported version')
@@ -825,7 +960,7 @@ const encoding26 = {
825
960
  return decoded
826
961
  }
827
962
  case 3: {
828
- const decoded = encoding25.decode(state)
963
+ const decoded = encoding29.decode(state)
829
964
  return decoded
830
965
  }
831
966
  default:
@@ -835,7 +970,7 @@ const encoding26 = {
835
970
  }
836
971
 
837
972
  // @autobee/manifest-data
838
- const encoding27 = {
973
+ const encoding31 = {
839
974
  preencode(state, m) {
840
975
  c.uint.preencode(state, m.version)
841
976
  state.end++ // max flag is 2 so always one byte
@@ -869,7 +1004,7 @@ const encoding18_3 = c.array(encoding22)
869
1004
  // @autobee/system-info-v3.indexers, deferred due to recusive use
870
1005
  const encoding18_4 = encoding18_3
871
1006
  // @autobee/oplog-message-v3.links, deferred due to recusive use
872
- const encoding25_1 = encoding18_3
1007
+ const encoding29_1 = encoding18_3
873
1008
 
874
1009
  function setVersion(v) {
875
1010
  version = v
@@ -940,16 +1075,24 @@ function getEncoding(name) {
940
1075
  return encoding21
941
1076
  case '@autobee/link':
942
1077
  return encoding22
943
- case '@autobee/batch':
1078
+ case '@autobee/external-batch':
944
1079
  return encoding23
945
- case '@autobee/views':
1080
+ case '@autobee/batch':
946
1081
  return encoding24
947
- case '@autobee/oplog-message-v3':
1082
+ case '@autobee/views':
948
1083
  return encoding25
949
- case '@autobee/oplog':
1084
+ case '@autobee/signed-backer':
950
1085
  return encoding26
951
- case '@autobee/manifest-data':
1086
+ case '@autobee/witness':
952
1087
  return encoding27
1088
+ case '@autobee/attestation':
1089
+ return encoding28
1090
+ case '@autobee/oplog-message-v3':
1091
+ return encoding29
1092
+ case '@autobee/oplog':
1093
+ return encoding30
1094
+ case '@autobee/manifest-data':
1095
+ return encoding31
953
1096
  default:
954
1097
  throw new Error('Encoder not found ' + name)
955
1098
  }
@@ -476,6 +476,12 @@
476
476
  "type": "uint",
477
477
  "version": 1
478
478
  },
479
+ {
480
+ "name": "maxWeight",
481
+ "required": true,
482
+ "type": "uint",
483
+ "version": 1
484
+ },
479
485
  {
480
486
  "name": "length",
481
487
  "required": true,
@@ -487,6 +493,24 @@
487
493
  "required": true,
488
494
  "type": "uint",
489
495
  "version": 1
496
+ },
497
+ {
498
+ "name": "isGenesis",
499
+ "required": false,
500
+ "type": "bool",
501
+ "version": 1
502
+ },
503
+ {
504
+ "name": "isAnchor",
505
+ "required": false,
506
+ "type": "bool",
507
+ "version": 1
508
+ },
509
+ {
510
+ "name": "timestamp",
511
+ "required": false,
512
+ "type": "int",
513
+ "version": 1
490
514
  }
491
515
  ]
492
516
  },
@@ -526,6 +550,32 @@
526
550
  }
527
551
  ]
528
552
  },
553
+ {
554
+ "name": "external-batch",
555
+ "namespace": "autobee",
556
+ "compact": true,
557
+ "flagsPosition": -1,
558
+ "fields": [
559
+ {
560
+ "name": "key",
561
+ "required": true,
562
+ "type": "fixed32",
563
+ "version": 1
564
+ },
565
+ {
566
+ "name": "start",
567
+ "required": true,
568
+ "type": "uint",
569
+ "version": 1
570
+ },
571
+ {
572
+ "name": "length",
573
+ "required": true,
574
+ "type": "uint",
575
+ "version": 1
576
+ }
577
+ ]
578
+ },
529
579
  {
530
580
  "name": "batch",
531
581
  "namespace": "autobee",
@@ -553,21 +603,99 @@
553
603
  "flagsPosition": 2,
554
604
  "fields": [
555
605
  {
556
- "name": "system",
606
+ "name": "flushes",
557
607
  "required": true,
558
- "type": "@autobee/link",
608
+ "type": "uint",
559
609
  "version": 1
560
610
  },
561
611
  {
562
- "name": "flushes",
612
+ "name": "system",
563
613
  "required": true,
564
- "type": "uint",
614
+ "type": "@autobee/external-batch",
565
615
  "version": 1
566
616
  },
567
617
  {
568
618
  "name": "view",
569
619
  "required": false,
570
- "type": "@autobee/link",
620
+ "type": "@autobee/external-batch",
621
+ "version": 1
622
+ }
623
+ ]
624
+ },
625
+ {
626
+ "name": "signed-backer",
627
+ "namespace": "autobee",
628
+ "compact": false,
629
+ "flagsPosition": -1,
630
+ "fields": [
631
+ {
632
+ "name": "key",
633
+ "required": true,
634
+ "type": "fixed32",
635
+ "version": 1
636
+ },
637
+ {
638
+ "name": "length",
639
+ "required": true,
640
+ "type": "uint",
641
+ "version": 1
642
+ },
643
+ {
644
+ "name": "signature",
645
+ "required": true,
646
+ "type": "fixed64",
647
+ "version": 1
648
+ },
649
+ {
650
+ "name": "manifest",
651
+ "required": true,
652
+ "type": "buffer",
653
+ "version": 1
654
+ }
655
+ ]
656
+ },
657
+ {
658
+ "name": "witness",
659
+ "namespace": "autobee",
660
+ "compact": false,
661
+ "flagsPosition": -1,
662
+ "fields": [
663
+ {
664
+ "name": "weight",
665
+ "required": true,
666
+ "type": "uint",
667
+ "version": 1
668
+ },
669
+ {
670
+ "name": "backer",
671
+ "required": true,
672
+ "type": "@autobee/signed-backer",
673
+ "version": 1
674
+ }
675
+ ]
676
+ },
677
+ {
678
+ "name": "attestation",
679
+ "namespace": "autobee",
680
+ "compact": false,
681
+ "flagsPosition": -1,
682
+ "fields": [
683
+ {
684
+ "name": "key",
685
+ "required": true,
686
+ "type": "fixed32",
687
+ "version": 1
688
+ },
689
+ {
690
+ "name": "weight",
691
+ "required": true,
692
+ "type": "uint",
693
+ "version": 1
694
+ },
695
+ {
696
+ "name": "signature",
697
+ "required": true,
698
+ "type": "fixed64",
571
699
  "version": 1
572
700
  }
573
701
  ]
@@ -611,6 +739,17 @@
611
739
  "name": "value",
612
740
  "type": "buffer",
613
741
  "version": 1
742
+ },
743
+ {
744
+ "name": "witness",
745
+ "type": "@autobee/witness",
746
+ "version": 1
747
+ },
748
+ {
749
+ "name": "attestations",
750
+ "array": true,
751
+ "type": "@autobee/attestation",
752
+ "version": 1
614
753
  }
615
754
  ]
616
755
  },