@agoric/cosmos 0.35.0-u18.4 → 0.35.0-u18a.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/CHANGELOG.md +40 -0
- package/ante/inbound_test.go +2 -2
- package/app/app.go +26 -9
- package/app/upgrade.go +47 -134
- package/daemon/cmd/root.go +48 -15
- package/git-revision.txt +1 -1
- package/go.mod +82 -71
- package/go.sum +200 -167
- package/package.json +2 -2
- package/proto/agoric/swingset/swingset.proto +25 -0
- package/proto/agoric/vbank/vbank.proto +7 -0
- package/types/address_hooks.go +242 -0
- package/types/address_hooks_test.go +221 -0
- package/x/swingset/genesis.go +99 -21
- package/x/swingset/keeper/keeper.go +16 -7
- package/x/swingset/module.go +17 -2
- package/x/swingset/testing/queue.go +8 -0
- package/x/swingset/types/default-params.go +31 -5
- package/x/swingset/types/expected_keepers.go +2 -2
- package/x/swingset/types/msgs.go +34 -12
- package/x/swingset/types/params.go +53 -43
- package/x/swingset/types/params_test.go +75 -9
- package/x/swingset/types/swingset.pb.go +386 -56
- package/x/vbank/README.md +6 -1
- package/x/vbank/keeper/keeper.go +4 -9
- package/x/vbank/keeper/migrations.go +30 -0
- package/x/vbank/module.go +8 -2
- package/x/vbank/types/params.go +43 -2
- package/x/vbank/types/vbank.pb.go +105 -36
- package/x/vbank/vbank_test.go +12 -7
- package/x/vibc/keeper/keeper.go +2 -5
- package/x/vibc/keeper/triggers.go +3 -6
- package/x/vibc/types/receiver.go +11 -5
- package/x/vstorage/testing/queue.go +10 -3
- package/x/vtransfer/ibc_middleware.go +5 -1
- package/x/vtransfer/ibc_middleware_test.go +511 -145
- package/x/vtransfer/keeper/keeper.go +215 -50
- package/x/vtransfer/types/genesis.pb.go +1 -0
- package/x/vtransfer/utils_test.go +111 -0
|
@@ -161,6 +161,15 @@ type Params struct {
|
|
|
161
161
|
// nodes must all serialize and deserialize the existing order without
|
|
162
162
|
// permuting it.
|
|
163
163
|
QueueMax []QueueSize `protobuf:"bytes,5,rep,name=queue_max,json=queueMax,proto3" json:"queue_max"`
|
|
164
|
+
// Vat cleanup budget values.
|
|
165
|
+
// These values are used by SwingSet to control the pace of removing data
|
|
166
|
+
// associated with a terminated vat as described at
|
|
167
|
+
// https://github.com/Agoric/agoric-sdk/blob/master/packages/SwingSet/docs/run-policy.md#terminated-vat-cleanup
|
|
168
|
+
//
|
|
169
|
+
// There is no required order to this list of entries, but all the chain
|
|
170
|
+
// nodes must all serialize and deserialize the existing order without
|
|
171
|
+
// permuting it.
|
|
172
|
+
VatCleanupBudget []UintMapEntry `protobuf:"bytes,6,rep,name=vat_cleanup_budget,json=vatCleanupBudget,proto3" json:"vat_cleanup_budget"`
|
|
164
173
|
}
|
|
165
174
|
|
|
166
175
|
func (m *Params) Reset() { *m = Params{} }
|
|
@@ -230,6 +239,13 @@ func (m *Params) GetQueueMax() []QueueSize {
|
|
|
230
239
|
return nil
|
|
231
240
|
}
|
|
232
241
|
|
|
242
|
+
func (m *Params) GetVatCleanupBudget() []UintMapEntry {
|
|
243
|
+
if m != nil {
|
|
244
|
+
return m.VatCleanupBudget
|
|
245
|
+
}
|
|
246
|
+
return nil
|
|
247
|
+
}
|
|
248
|
+
|
|
233
249
|
// The current state of the module.
|
|
234
250
|
type State struct {
|
|
235
251
|
// The allowed number of items to add to queues, as determined by SwingSet.
|
|
@@ -379,6 +395,7 @@ func (m *PowerFlagFee) GetFee() github_com_cosmos_cosmos_sdk_types.Coins {
|
|
|
379
395
|
}
|
|
380
396
|
|
|
381
397
|
// Map element of a string key to a size.
|
|
398
|
+
// TODO: Replace with UintMapEntry?
|
|
382
399
|
type QueueSize struct {
|
|
383
400
|
// What the size is for.
|
|
384
401
|
Key string `protobuf:"bytes,1,opt,name=key,proto3" json:"key,omitempty"`
|
|
@@ -433,6 +450,54 @@ func (m *QueueSize) GetSize_() int32 {
|
|
|
433
450
|
return 0
|
|
434
451
|
}
|
|
435
452
|
|
|
453
|
+
// Map element of a string key to an unsigned integer.
|
|
454
|
+
// The value uses cosmos-sdk Uint rather than a native Go type to ensure that
|
|
455
|
+
// zeroes survive "omitempty" JSON serialization.
|
|
456
|
+
type UintMapEntry struct {
|
|
457
|
+
Key string `protobuf:"bytes,1,opt,name=key,proto3" json:"key,omitempty"`
|
|
458
|
+
Value github_com_cosmos_cosmos_sdk_types.Uint `protobuf:"bytes,2,opt,name=value,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Uint" json:"value"`
|
|
459
|
+
}
|
|
460
|
+
|
|
461
|
+
func (m *UintMapEntry) Reset() { *m = UintMapEntry{} }
|
|
462
|
+
func (m *UintMapEntry) String() string { return proto.CompactTextString(m) }
|
|
463
|
+
func (*UintMapEntry) ProtoMessage() {}
|
|
464
|
+
func (*UintMapEntry) Descriptor() ([]byte, []int) {
|
|
465
|
+
return fileDescriptor_ff9c341e0de15f8b, []int{7}
|
|
466
|
+
}
|
|
467
|
+
func (m *UintMapEntry) XXX_Unmarshal(b []byte) error {
|
|
468
|
+
return m.Unmarshal(b)
|
|
469
|
+
}
|
|
470
|
+
func (m *UintMapEntry) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
|
|
471
|
+
if deterministic {
|
|
472
|
+
return xxx_messageInfo_UintMapEntry.Marshal(b, m, deterministic)
|
|
473
|
+
} else {
|
|
474
|
+
b = b[:cap(b)]
|
|
475
|
+
n, err := m.MarshalToSizedBuffer(b)
|
|
476
|
+
if err != nil {
|
|
477
|
+
return nil, err
|
|
478
|
+
}
|
|
479
|
+
return b[:n], nil
|
|
480
|
+
}
|
|
481
|
+
}
|
|
482
|
+
func (m *UintMapEntry) XXX_Merge(src proto.Message) {
|
|
483
|
+
xxx_messageInfo_UintMapEntry.Merge(m, src)
|
|
484
|
+
}
|
|
485
|
+
func (m *UintMapEntry) XXX_Size() int {
|
|
486
|
+
return m.Size()
|
|
487
|
+
}
|
|
488
|
+
func (m *UintMapEntry) XXX_DiscardUnknown() {
|
|
489
|
+
xxx_messageInfo_UintMapEntry.DiscardUnknown(m)
|
|
490
|
+
}
|
|
491
|
+
|
|
492
|
+
var xxx_messageInfo_UintMapEntry proto.InternalMessageInfo
|
|
493
|
+
|
|
494
|
+
func (m *UintMapEntry) GetKey() string {
|
|
495
|
+
if m != nil {
|
|
496
|
+
return m.Key
|
|
497
|
+
}
|
|
498
|
+
return ""
|
|
499
|
+
}
|
|
500
|
+
|
|
436
501
|
// Egress is the format for a swingset egress.
|
|
437
502
|
type Egress struct {
|
|
438
503
|
Nickname string `protobuf:"bytes,1,opt,name=nickname,proto3" json:"nickname" yaml:"nickname"`
|
|
@@ -445,7 +510,7 @@ func (m *Egress) Reset() { *m = Egress{} }
|
|
|
445
510
|
func (m *Egress) String() string { return proto.CompactTextString(m) }
|
|
446
511
|
func (*Egress) ProtoMessage() {}
|
|
447
512
|
func (*Egress) Descriptor() ([]byte, []int) {
|
|
448
|
-
return fileDescriptor_ff9c341e0de15f8b, []int{
|
|
513
|
+
return fileDescriptor_ff9c341e0de15f8b, []int{8}
|
|
449
514
|
}
|
|
450
515
|
func (m *Egress) XXX_Unmarshal(b []byte) error {
|
|
451
516
|
return m.Unmarshal(b)
|
|
@@ -508,7 +573,7 @@ func (m *SwingStoreArtifact) Reset() { *m = SwingStoreArtifact{} }
|
|
|
508
573
|
func (m *SwingStoreArtifact) String() string { return proto.CompactTextString(m) }
|
|
509
574
|
func (*SwingStoreArtifact) ProtoMessage() {}
|
|
510
575
|
func (*SwingStoreArtifact) Descriptor() ([]byte, []int) {
|
|
511
|
-
return fileDescriptor_ff9c341e0de15f8b, []int{
|
|
576
|
+
return fileDescriptor_ff9c341e0de15f8b, []int{9}
|
|
512
577
|
}
|
|
513
578
|
func (m *SwingStoreArtifact) XXX_Unmarshal(b []byte) error {
|
|
514
579
|
return m.Unmarshal(b)
|
|
@@ -559,6 +624,7 @@ func init() {
|
|
|
559
624
|
proto.RegisterType((*StringBeans)(nil), "agoric.swingset.StringBeans")
|
|
560
625
|
proto.RegisterType((*PowerFlagFee)(nil), "agoric.swingset.PowerFlagFee")
|
|
561
626
|
proto.RegisterType((*QueueSize)(nil), "agoric.swingset.QueueSize")
|
|
627
|
+
proto.RegisterType((*UintMapEntry)(nil), "agoric.swingset.UintMapEntry")
|
|
562
628
|
proto.RegisterType((*Egress)(nil), "agoric.swingset.Egress")
|
|
563
629
|
proto.RegisterType((*SwingStoreArtifact)(nil), "agoric.swingset.SwingStoreArtifact")
|
|
564
630
|
}
|
|
@@ -566,60 +632,64 @@ func init() {
|
|
|
566
632
|
func init() { proto.RegisterFile("agoric/swingset/swingset.proto", fileDescriptor_ff9c341e0de15f8b) }
|
|
567
633
|
|
|
568
634
|
var fileDescriptor_ff9c341e0de15f8b = []byte{
|
|
569
|
-
//
|
|
570
|
-
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xb4, 0x55,
|
|
571
|
-
|
|
572
|
-
|
|
573
|
-
|
|
574
|
-
|
|
575
|
-
|
|
576
|
-
|
|
577
|
-
|
|
578
|
-
|
|
579
|
-
|
|
580
|
-
|
|
581
|
-
|
|
582
|
-
|
|
583
|
-
|
|
584
|
-
|
|
585
|
-
|
|
586
|
-
|
|
587
|
-
|
|
588
|
-
|
|
589
|
-
|
|
590
|
-
|
|
591
|
-
|
|
592
|
-
|
|
593
|
-
|
|
594
|
-
|
|
595
|
-
|
|
596
|
-
|
|
597
|
-
|
|
598
|
-
|
|
599
|
-
|
|
600
|
-
|
|
601
|
-
|
|
602
|
-
|
|
603
|
-
|
|
604
|
-
|
|
605
|
-
|
|
606
|
-
|
|
607
|
-
|
|
608
|
-
|
|
609
|
-
|
|
610
|
-
|
|
611
|
-
|
|
612
|
-
|
|
613
|
-
|
|
614
|
-
|
|
615
|
-
|
|
616
|
-
|
|
617
|
-
|
|
618
|
-
|
|
619
|
-
|
|
620
|
-
|
|
621
|
-
|
|
622
|
-
|
|
635
|
+
// 897 bytes of a gzipped FileDescriptorProto
|
|
636
|
+
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xb4, 0x55, 0x4d, 0x6f, 0xe3, 0x44,
|
|
637
|
+
0x18, 0x8e, 0xc9, 0x07, 0xcd, 0x9b, 0x6c, 0x5b, 0x86, 0x4a, 0x1b, 0x2a, 0x36, 0xae, 0x7c, 0xa1,
|
|
638
|
+
0xd2, 0x6a, 0x93, 0x2d, 0x08, 0x21, 0x65, 0xc5, 0x21, 0x8e, 0xb2, 0x5a, 0x09, 0x2d, 0xca, 0x3a,
|
|
639
|
+
0x2a, 0x07, 0x04, 0xb2, 0x26, 0xce, 0xc4, 0x4c, 0xeb, 0x78, 0xbc, 0x9e, 0x49, 0xda, 0xee, 0x1f,
|
|
640
|
+
0x80, 0x23, 0xe2, 0xc4, 0xb1, 0x67, 0x7e, 0xc9, 0x1e, 0xf7, 0x88, 0x38, 0x98, 0x55, 0x7b, 0x41,
|
|
641
|
+
0x3d, 0xe6, 0x88, 0x84, 0x84, 0xe6, 0x23, 0xae, 0x45, 0x17, 0x51, 0x21, 0xed, 0xc9, 0xf3, 0x7e,
|
|
642
|
+
0x3f, 0xef, 0xf3, 0x8c, 0x6d, 0x68, 0xe3, 0x90, 0xa5, 0x34, 0xe8, 0xf2, 0x13, 0x1a, 0x87, 0x9c,
|
|
643
|
+
0x88, 0xfc, 0xd0, 0x49, 0x52, 0x26, 0x18, 0xda, 0xd2, 0xf1, 0xce, 0xda, 0xbd, 0xbb, 0x13, 0xb2,
|
|
644
|
+
0x90, 0xa9, 0x58, 0x57, 0x9e, 0x74, 0xda, 0x6e, 0x3b, 0x60, 0x7c, 0xce, 0x78, 0x77, 0x82, 0x39,
|
|
645
|
+
0xe9, 0x2e, 0x0f, 0x26, 0x44, 0xe0, 0x83, 0x6e, 0xc0, 0x68, 0xac, 0xe3, 0xce, 0xf7, 0x16, 0x6c,
|
|
646
|
+
0x0f, 0x58, 0x4a, 0x86, 0x4b, 0x1c, 0x8d, 0x52, 0x96, 0x30, 0x8e, 0x23, 0xb4, 0x03, 0x55, 0x41,
|
|
647
|
+
0x45, 0x44, 0x5a, 0xd6, 0x9e, 0xb5, 0x5f, 0xf7, 0xb4, 0x81, 0xf6, 0xa0, 0x31, 0x25, 0x3c, 0x48,
|
|
648
|
+
0x69, 0x22, 0x28, 0x8b, 0x5b, 0xef, 0xa8, 0x58, 0xd1, 0x85, 0x3e, 0x85, 0x2a, 0x59, 0xe2, 0x88,
|
|
649
|
+
0xb7, 0xca, 0x7b, 0xe5, 0xfd, 0xc6, 0xc7, 0x1f, 0x74, 0xfe, 0x81, 0xb1, 0xb3, 0x9e, 0xe4, 0x56,
|
|
650
|
+
0x5e, 0x66, 0x76, 0xc9, 0xd3, 0xd9, 0xbd, 0xca, 0x0f, 0xe7, 0x76, 0xc9, 0xe1, 0xb0, 0xb1, 0x0e,
|
|
651
|
+
0xa3, 0x1e, 0x34, 0x8f, 0x38, 0x8b, 0xfd, 0x84, 0xa4, 0x73, 0x2a, 0xb8, 0xc6, 0xe1, 0xde, 0x5d,
|
|
652
|
+
0x65, 0xf6, 0xfb, 0x67, 0x78, 0x1e, 0xf5, 0x9c, 0x62, 0xd4, 0xf1, 0x1a, 0xd2, 0x1c, 0x69, 0x0b,
|
|
653
|
+
0xdd, 0x87, 0x77, 0x8f, 0xb8, 0x1f, 0xb0, 0x29, 0xd1, 0x10, 0x5d, 0xb4, 0xca, 0xec, 0xcd, 0x75,
|
|
654
|
+
0x99, 0x0a, 0x38, 0x5e, 0xed, 0x88, 0x0f, 0xe4, 0xe1, 0x75, 0x19, 0x6a, 0x23, 0x9c, 0xe2, 0x39,
|
|
655
|
+
0x47, 0x4f, 0x60, 0x73, 0x42, 0x70, 0xcc, 0x65, 0x5b, 0x7f, 0x11, 0x53, 0xd1, 0xb2, 0xd4, 0x16,
|
|
656
|
+
0x1f, 0xde, 0xd8, 0x62, 0x2c, 0x52, 0x1a, 0x87, 0xae, 0x4c, 0x36, 0x8b, 0x34, 0x55, 0xe5, 0x88,
|
|
657
|
+
0xa4, 0x87, 0x31, 0x15, 0xe8, 0x39, 0x6c, 0xce, 0x08, 0x51, 0x3d, 0xfc, 0x24, 0xa5, 0x81, 0x04,
|
|
658
|
+
0xa2, 0xf9, 0xd0, 0x62, 0x74, 0xa4, 0x18, 0x1d, 0x23, 0x46, 0x67, 0xc0, 0x68, 0xec, 0x3e, 0x94,
|
|
659
|
+
0x6d, 0x7e, 0xf9, 0xdd, 0xde, 0x0f, 0xa9, 0xf8, 0x6e, 0x31, 0xe9, 0x04, 0x6c, 0xde, 0x35, 0xca,
|
|
660
|
+
0xe9, 0xc7, 0x03, 0x3e, 0x3d, 0xee, 0x8a, 0xb3, 0x84, 0x70, 0x55, 0xc0, 0xbd, 0xe6, 0x8c, 0x10,
|
|
661
|
+
0x39, 0x6d, 0x24, 0x07, 0xa0, 0x87, 0xb0, 0x33, 0x61, 0x4c, 0x70, 0x91, 0xe2, 0xc4, 0x5f, 0x62,
|
|
662
|
+
0xe1, 0x07, 0x2c, 0x9e, 0xd1, 0xb0, 0x55, 0x56, 0x22, 0xa1, 0x3c, 0xf6, 0x15, 0x16, 0x03, 0x15,
|
|
663
|
+
0x41, 0x5f, 0xc0, 0x56, 0xc2, 0x4e, 0x48, 0xea, 0xcf, 0x22, 0x1c, 0xfa, 0x33, 0x42, 0x78, 0xab,
|
|
664
|
+
0xa2, 0x50, 0xde, 0xbb, 0xb1, 0xef, 0x48, 0xe6, 0x3d, 0x8e, 0x70, 0xf8, 0x98, 0x10, 0xb3, 0xf0,
|
|
665
|
+
0x9d, 0xa4, 0xe0, 0xe3, 0xe8, 0x73, 0xa8, 0x3f, 0x5f, 0x90, 0x05, 0xf1, 0xe7, 0xf8, 0xb4, 0x55,
|
|
666
|
+
0x55, 0x6d, 0x76, 0x6f, 0xb4, 0x79, 0x26, 0x33, 0xc6, 0xf4, 0xc5, 0xba, 0xc7, 0x86, 0x2a, 0x79,
|
|
667
|
+
0x8a, 0x4f, 0xd1, 0x33, 0x40, 0x0a, 0x73, 0x44, 0x70, 0xbc, 0x48, 0xfc, 0xc9, 0x62, 0x1a, 0x12,
|
|
668
|
+
0xd1, 0xaa, 0xfd, 0x0b, 0x9c, 0x43, 0x1a, 0x8b, 0xa7, 0x38, 0x19, 0xc6, 0x22, 0x3d, 0x33, 0xad,
|
|
669
|
+
0xb6, 0x97, 0x58, 0x0c, 0x74, 0xb5, 0xab, 0x8a, 0x7b, 0x1b, 0x3f, 0x9f, 0xdb, 0xa5, 0x3f, 0xce,
|
|
670
|
+
0x6d, 0xcb, 0xf9, 0x12, 0xaa, 0x63, 0x81, 0x05, 0x41, 0x43, 0xb8, 0xa3, 0x41, 0xe2, 0x28, 0x62,
|
|
671
|
+
0x27, 0x64, 0x6a, 0xf4, 0xfd, 0x6f, 0xa0, 0x4d, 0x55, 0xd6, 0xd7, 0x55, 0x4e, 0x04, 0x8d, 0xc2,
|
|
672
|
+
0x05, 0x40, 0xdb, 0x50, 0x3e, 0x26, 0x67, 0xe6, 0x4d, 0x91, 0x47, 0x34, 0x84, 0xaa, 0xba, 0x0e,
|
|
673
|
+
0xe6, 0xfa, 0x75, 0x65, 0x8f, 0xdf, 0x32, 0xfb, 0xa3, 0x5b, 0x48, 0x2b, 0x57, 0xf3, 0x74, 0x75,
|
|
674
|
+
0xaf, 0xa2, 0xd0, 0xff, 0x64, 0x41, 0xb3, 0xc8, 0x3f, 0xba, 0x07, 0x70, 0xad, 0x9b, 0x19, 0x5b,
|
|
675
|
+
0xcf, 0xd5, 0x40, 0xdf, 0x42, 0x79, 0x46, 0xde, 0xca, 0x85, 0x93, 0x7d, 0x0d, 0xa8, 0xcf, 0xa0,
|
|
676
|
+
0x9e, 0x73, 0xf4, 0x06, 0x02, 0x10, 0x54, 0x38, 0x7d, 0xa1, 0x5f, 0xbf, 0xaa, 0xa7, 0xce, 0xa6,
|
|
677
|
+
0x70, 0x0e, 0xcd, 0xa2, 0x7a, 0x6f, 0x26, 0x6f, 0x89, 0xa3, 0x05, 0xf9, 0xdf, 0xe4, 0xa9, 0x6a,
|
|
678
|
+
0x33, 0xee, 0x2f, 0x0b, 0x6a, 0xc3, 0x30, 0x25, 0x9c, 0xa3, 0x47, 0xb0, 0x11, 0xd3, 0xe0, 0x38,
|
|
679
|
+
0xc6, 0x73, 0xf3, 0x55, 0x73, 0xed, 0xab, 0xcc, 0xce, 0x7d, 0xab, 0xcc, 0xde, 0xd2, 0x9f, 0x88,
|
|
680
|
+
0xb5, 0xc7, 0xf1, 0xf2, 0x20, 0xfa, 0x06, 0x2a, 0x09, 0x21, 0xa9, 0xc2, 0xd4, 0x74, 0x9f, 0x5c,
|
|
681
|
+
0x65, 0xb6, 0xb2, 0x57, 0x99, 0xdd, 0xd0, 0x45, 0xd2, 0x72, 0xfe, 0xcc, 0xec, 0x07, 0xb7, 0x80,
|
|
682
|
+
0xd9, 0x0f, 0x82, 0xfe, 0x74, 0x2a, 0x41, 0x79, 0xaa, 0x0b, 0xf2, 0xa0, 0x71, 0xad, 0xa8, 0xfe,
|
|
683
|
+
0x76, 0xd6, 0xdd, 0x83, 0x8b, 0xcc, 0x86, 0x5c, 0x78, 0x7e, 0x95, 0xd9, 0x90, 0x8b, 0xcc, 0x57,
|
|
684
|
+
0x99, 0xfd, 0x9e, 0x19, 0x9c, 0xfb, 0x1c, 0xaf, 0x90, 0xa0, 0xf6, 0x2f, 0x39, 0x02, 0xd0, 0x58,
|
|
685
|
+
0x5e, 0xea, 0xb1, 0x60, 0x29, 0xe9, 0xa7, 0x82, 0xce, 0x70, 0x20, 0xd0, 0x7d, 0xa8, 0x14, 0x68,
|
|
686
|
+
0xb8, 0x2b, 0xb7, 0x31, 0x14, 0x98, 0x6d, 0xf4, 0xfa, 0xca, 0x29, 0x93, 0xa7, 0x58, 0x60, 0xb3,
|
|
687
|
+
0xba, 0x4a, 0x96, 0xf6, 0x75, 0xb2, 0xb4, 0x1c, 0x4f, 0x39, 0xf5, 0x54, 0xf7, 0xf0, 0xe5, 0x45,
|
|
688
|
+
0xdb, 0x7a, 0x75, 0xd1, 0xb6, 0x5e, 0x5f, 0xb4, 0xad, 0x1f, 0x2f, 0xdb, 0xa5, 0x57, 0x97, 0xed,
|
|
689
|
+
0xd2, 0xaf, 0x97, 0xed, 0xd2, 0xd7, 0x8f, 0x0a, 0xf4, 0xf4, 0xf5, 0xef, 0x4d, 0xbf, 0x7b, 0x8a,
|
|
690
|
+
0x9e, 0x90, 0x45, 0x38, 0x0e, 0xd7, 0xbc, 0x9d, 0x5e, 0xff, 0xf9, 0x14, 0x6f, 0x93, 0x9a, 0xfa,
|
|
691
|
+
0x61, 0x7d, 0xf2, 0x77, 0x00, 0x00, 0x00, 0xff, 0xff, 0xec, 0x66, 0x1a, 0x0f, 0x19, 0x07, 0x00,
|
|
692
|
+
0x00,
|
|
623
693
|
}
|
|
624
694
|
|
|
625
695
|
func (this *Params) Equal(that interface{}) bool {
|
|
@@ -676,6 +746,14 @@ func (this *Params) Equal(that interface{}) bool {
|
|
|
676
746
|
return false
|
|
677
747
|
}
|
|
678
748
|
}
|
|
749
|
+
if len(this.VatCleanupBudget) != len(that1.VatCleanupBudget) {
|
|
750
|
+
return false
|
|
751
|
+
}
|
|
752
|
+
for i := range this.VatCleanupBudget {
|
|
753
|
+
if !this.VatCleanupBudget[i].Equal(&that1.VatCleanupBudget[i]) {
|
|
754
|
+
return false
|
|
755
|
+
}
|
|
756
|
+
}
|
|
679
757
|
return true
|
|
680
758
|
}
|
|
681
759
|
func (this *StringBeans) Equal(that interface{}) bool {
|
|
@@ -764,6 +842,33 @@ func (this *QueueSize) Equal(that interface{}) bool {
|
|
|
764
842
|
}
|
|
765
843
|
return true
|
|
766
844
|
}
|
|
845
|
+
func (this *UintMapEntry) Equal(that interface{}) bool {
|
|
846
|
+
if that == nil {
|
|
847
|
+
return this == nil
|
|
848
|
+
}
|
|
849
|
+
|
|
850
|
+
that1, ok := that.(*UintMapEntry)
|
|
851
|
+
if !ok {
|
|
852
|
+
that2, ok := that.(UintMapEntry)
|
|
853
|
+
if ok {
|
|
854
|
+
that1 = &that2
|
|
855
|
+
} else {
|
|
856
|
+
return false
|
|
857
|
+
}
|
|
858
|
+
}
|
|
859
|
+
if that1 == nil {
|
|
860
|
+
return this == nil
|
|
861
|
+
} else if this == nil {
|
|
862
|
+
return false
|
|
863
|
+
}
|
|
864
|
+
if this.Key != that1.Key {
|
|
865
|
+
return false
|
|
866
|
+
}
|
|
867
|
+
if !this.Value.Equal(that1.Value) {
|
|
868
|
+
return false
|
|
869
|
+
}
|
|
870
|
+
return true
|
|
871
|
+
}
|
|
767
872
|
func (m *CoreEvalProposal) Marshal() (dAtA []byte, err error) {
|
|
768
873
|
size := m.Size()
|
|
769
874
|
dAtA = make([]byte, size)
|
|
@@ -872,6 +977,20 @@ func (m *Params) MarshalToSizedBuffer(dAtA []byte) (int, error) {
|
|
|
872
977
|
_ = i
|
|
873
978
|
var l int
|
|
874
979
|
_ = l
|
|
980
|
+
if len(m.VatCleanupBudget) > 0 {
|
|
981
|
+
for iNdEx := len(m.VatCleanupBudget) - 1; iNdEx >= 0; iNdEx-- {
|
|
982
|
+
{
|
|
983
|
+
size, err := m.VatCleanupBudget[iNdEx].MarshalToSizedBuffer(dAtA[:i])
|
|
984
|
+
if err != nil {
|
|
985
|
+
return 0, err
|
|
986
|
+
}
|
|
987
|
+
i -= size
|
|
988
|
+
i = encodeVarintSwingset(dAtA, i, uint64(size))
|
|
989
|
+
}
|
|
990
|
+
i--
|
|
991
|
+
dAtA[i] = 0x32
|
|
992
|
+
}
|
|
993
|
+
}
|
|
875
994
|
if len(m.QueueMax) > 0 {
|
|
876
995
|
for iNdEx := len(m.QueueMax) - 1; iNdEx >= 0; iNdEx-- {
|
|
877
996
|
{
|
|
@@ -1094,6 +1213,46 @@ func (m *QueueSize) MarshalToSizedBuffer(dAtA []byte) (int, error) {
|
|
|
1094
1213
|
return len(dAtA) - i, nil
|
|
1095
1214
|
}
|
|
1096
1215
|
|
|
1216
|
+
func (m *UintMapEntry) Marshal() (dAtA []byte, err error) {
|
|
1217
|
+
size := m.Size()
|
|
1218
|
+
dAtA = make([]byte, size)
|
|
1219
|
+
n, err := m.MarshalToSizedBuffer(dAtA[:size])
|
|
1220
|
+
if err != nil {
|
|
1221
|
+
return nil, err
|
|
1222
|
+
}
|
|
1223
|
+
return dAtA[:n], nil
|
|
1224
|
+
}
|
|
1225
|
+
|
|
1226
|
+
func (m *UintMapEntry) MarshalTo(dAtA []byte) (int, error) {
|
|
1227
|
+
size := m.Size()
|
|
1228
|
+
return m.MarshalToSizedBuffer(dAtA[:size])
|
|
1229
|
+
}
|
|
1230
|
+
|
|
1231
|
+
func (m *UintMapEntry) MarshalToSizedBuffer(dAtA []byte) (int, error) {
|
|
1232
|
+
i := len(dAtA)
|
|
1233
|
+
_ = i
|
|
1234
|
+
var l int
|
|
1235
|
+
_ = l
|
|
1236
|
+
{
|
|
1237
|
+
size := m.Value.Size()
|
|
1238
|
+
i -= size
|
|
1239
|
+
if _, err := m.Value.MarshalTo(dAtA[i:]); err != nil {
|
|
1240
|
+
return 0, err
|
|
1241
|
+
}
|
|
1242
|
+
i = encodeVarintSwingset(dAtA, i, uint64(size))
|
|
1243
|
+
}
|
|
1244
|
+
i--
|
|
1245
|
+
dAtA[i] = 0x12
|
|
1246
|
+
if len(m.Key) > 0 {
|
|
1247
|
+
i -= len(m.Key)
|
|
1248
|
+
copy(dAtA[i:], m.Key)
|
|
1249
|
+
i = encodeVarintSwingset(dAtA, i, uint64(len(m.Key)))
|
|
1250
|
+
i--
|
|
1251
|
+
dAtA[i] = 0xa
|
|
1252
|
+
}
|
|
1253
|
+
return len(dAtA) - i, nil
|
|
1254
|
+
}
|
|
1255
|
+
|
|
1097
1256
|
func (m *Egress) Marshal() (dAtA []byte, err error) {
|
|
1098
1257
|
size := m.Size()
|
|
1099
1258
|
dAtA = make([]byte, size)
|
|
@@ -1262,6 +1421,12 @@ func (m *Params) Size() (n int) {
|
|
|
1262
1421
|
n += 1 + l + sovSwingset(uint64(l))
|
|
1263
1422
|
}
|
|
1264
1423
|
}
|
|
1424
|
+
if len(m.VatCleanupBudget) > 0 {
|
|
1425
|
+
for _, e := range m.VatCleanupBudget {
|
|
1426
|
+
l = e.Size()
|
|
1427
|
+
n += 1 + l + sovSwingset(uint64(l))
|
|
1428
|
+
}
|
|
1429
|
+
}
|
|
1265
1430
|
return n
|
|
1266
1431
|
}
|
|
1267
1432
|
|
|
@@ -1330,6 +1495,21 @@ func (m *QueueSize) Size() (n int) {
|
|
|
1330
1495
|
return n
|
|
1331
1496
|
}
|
|
1332
1497
|
|
|
1498
|
+
func (m *UintMapEntry) Size() (n int) {
|
|
1499
|
+
if m == nil {
|
|
1500
|
+
return 0
|
|
1501
|
+
}
|
|
1502
|
+
var l int
|
|
1503
|
+
_ = l
|
|
1504
|
+
l = len(m.Key)
|
|
1505
|
+
if l > 0 {
|
|
1506
|
+
n += 1 + l + sovSwingset(uint64(l))
|
|
1507
|
+
}
|
|
1508
|
+
l = m.Value.Size()
|
|
1509
|
+
n += 1 + l + sovSwingset(uint64(l))
|
|
1510
|
+
return n
|
|
1511
|
+
}
|
|
1512
|
+
|
|
1333
1513
|
func (m *Egress) Size() (n int) {
|
|
1334
1514
|
if m == nil {
|
|
1335
1515
|
return 0
|
|
@@ -1835,6 +2015,40 @@ func (m *Params) Unmarshal(dAtA []byte) error {
|
|
|
1835
2015
|
return err
|
|
1836
2016
|
}
|
|
1837
2017
|
iNdEx = postIndex
|
|
2018
|
+
case 6:
|
|
2019
|
+
if wireType != 2 {
|
|
2020
|
+
return fmt.Errorf("proto: wrong wireType = %d for field VatCleanupBudget", wireType)
|
|
2021
|
+
}
|
|
2022
|
+
var msglen int
|
|
2023
|
+
for shift := uint(0); ; shift += 7 {
|
|
2024
|
+
if shift >= 64 {
|
|
2025
|
+
return ErrIntOverflowSwingset
|
|
2026
|
+
}
|
|
2027
|
+
if iNdEx >= l {
|
|
2028
|
+
return io.ErrUnexpectedEOF
|
|
2029
|
+
}
|
|
2030
|
+
b := dAtA[iNdEx]
|
|
2031
|
+
iNdEx++
|
|
2032
|
+
msglen |= int(b&0x7F) << shift
|
|
2033
|
+
if b < 0x80 {
|
|
2034
|
+
break
|
|
2035
|
+
}
|
|
2036
|
+
}
|
|
2037
|
+
if msglen < 0 {
|
|
2038
|
+
return ErrInvalidLengthSwingset
|
|
2039
|
+
}
|
|
2040
|
+
postIndex := iNdEx + msglen
|
|
2041
|
+
if postIndex < 0 {
|
|
2042
|
+
return ErrInvalidLengthSwingset
|
|
2043
|
+
}
|
|
2044
|
+
if postIndex > l {
|
|
2045
|
+
return io.ErrUnexpectedEOF
|
|
2046
|
+
}
|
|
2047
|
+
m.VatCleanupBudget = append(m.VatCleanupBudget, UintMapEntry{})
|
|
2048
|
+
if err := m.VatCleanupBudget[len(m.VatCleanupBudget)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
|
|
2049
|
+
return err
|
|
2050
|
+
}
|
|
2051
|
+
iNdEx = postIndex
|
|
1838
2052
|
default:
|
|
1839
2053
|
iNdEx = preIndex
|
|
1840
2054
|
skippy, err := skipSwingset(dAtA[iNdEx:])
|
|
@@ -2273,6 +2487,122 @@ func (m *QueueSize) Unmarshal(dAtA []byte) error {
|
|
|
2273
2487
|
}
|
|
2274
2488
|
return nil
|
|
2275
2489
|
}
|
|
2490
|
+
func (m *UintMapEntry) Unmarshal(dAtA []byte) error {
|
|
2491
|
+
l := len(dAtA)
|
|
2492
|
+
iNdEx := 0
|
|
2493
|
+
for iNdEx < l {
|
|
2494
|
+
preIndex := iNdEx
|
|
2495
|
+
var wire uint64
|
|
2496
|
+
for shift := uint(0); ; shift += 7 {
|
|
2497
|
+
if shift >= 64 {
|
|
2498
|
+
return ErrIntOverflowSwingset
|
|
2499
|
+
}
|
|
2500
|
+
if iNdEx >= l {
|
|
2501
|
+
return io.ErrUnexpectedEOF
|
|
2502
|
+
}
|
|
2503
|
+
b := dAtA[iNdEx]
|
|
2504
|
+
iNdEx++
|
|
2505
|
+
wire |= uint64(b&0x7F) << shift
|
|
2506
|
+
if b < 0x80 {
|
|
2507
|
+
break
|
|
2508
|
+
}
|
|
2509
|
+
}
|
|
2510
|
+
fieldNum := int32(wire >> 3)
|
|
2511
|
+
wireType := int(wire & 0x7)
|
|
2512
|
+
if wireType == 4 {
|
|
2513
|
+
return fmt.Errorf("proto: UintMapEntry: wiretype end group for non-group")
|
|
2514
|
+
}
|
|
2515
|
+
if fieldNum <= 0 {
|
|
2516
|
+
return fmt.Errorf("proto: UintMapEntry: illegal tag %d (wire type %d)", fieldNum, wire)
|
|
2517
|
+
}
|
|
2518
|
+
switch fieldNum {
|
|
2519
|
+
case 1:
|
|
2520
|
+
if wireType != 2 {
|
|
2521
|
+
return fmt.Errorf("proto: wrong wireType = %d for field Key", wireType)
|
|
2522
|
+
}
|
|
2523
|
+
var stringLen uint64
|
|
2524
|
+
for shift := uint(0); ; shift += 7 {
|
|
2525
|
+
if shift >= 64 {
|
|
2526
|
+
return ErrIntOverflowSwingset
|
|
2527
|
+
}
|
|
2528
|
+
if iNdEx >= l {
|
|
2529
|
+
return io.ErrUnexpectedEOF
|
|
2530
|
+
}
|
|
2531
|
+
b := dAtA[iNdEx]
|
|
2532
|
+
iNdEx++
|
|
2533
|
+
stringLen |= uint64(b&0x7F) << shift
|
|
2534
|
+
if b < 0x80 {
|
|
2535
|
+
break
|
|
2536
|
+
}
|
|
2537
|
+
}
|
|
2538
|
+
intStringLen := int(stringLen)
|
|
2539
|
+
if intStringLen < 0 {
|
|
2540
|
+
return ErrInvalidLengthSwingset
|
|
2541
|
+
}
|
|
2542
|
+
postIndex := iNdEx + intStringLen
|
|
2543
|
+
if postIndex < 0 {
|
|
2544
|
+
return ErrInvalidLengthSwingset
|
|
2545
|
+
}
|
|
2546
|
+
if postIndex > l {
|
|
2547
|
+
return io.ErrUnexpectedEOF
|
|
2548
|
+
}
|
|
2549
|
+
m.Key = string(dAtA[iNdEx:postIndex])
|
|
2550
|
+
iNdEx = postIndex
|
|
2551
|
+
case 2:
|
|
2552
|
+
if wireType != 2 {
|
|
2553
|
+
return fmt.Errorf("proto: wrong wireType = %d for field Value", wireType)
|
|
2554
|
+
}
|
|
2555
|
+
var stringLen uint64
|
|
2556
|
+
for shift := uint(0); ; shift += 7 {
|
|
2557
|
+
if shift >= 64 {
|
|
2558
|
+
return ErrIntOverflowSwingset
|
|
2559
|
+
}
|
|
2560
|
+
if iNdEx >= l {
|
|
2561
|
+
return io.ErrUnexpectedEOF
|
|
2562
|
+
}
|
|
2563
|
+
b := dAtA[iNdEx]
|
|
2564
|
+
iNdEx++
|
|
2565
|
+
stringLen |= uint64(b&0x7F) << shift
|
|
2566
|
+
if b < 0x80 {
|
|
2567
|
+
break
|
|
2568
|
+
}
|
|
2569
|
+
}
|
|
2570
|
+
intStringLen := int(stringLen)
|
|
2571
|
+
if intStringLen < 0 {
|
|
2572
|
+
return ErrInvalidLengthSwingset
|
|
2573
|
+
}
|
|
2574
|
+
postIndex := iNdEx + intStringLen
|
|
2575
|
+
if postIndex < 0 {
|
|
2576
|
+
return ErrInvalidLengthSwingset
|
|
2577
|
+
}
|
|
2578
|
+
if postIndex > l {
|
|
2579
|
+
return io.ErrUnexpectedEOF
|
|
2580
|
+
}
|
|
2581
|
+
if err := m.Value.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
|
|
2582
|
+
return err
|
|
2583
|
+
}
|
|
2584
|
+
iNdEx = postIndex
|
|
2585
|
+
default:
|
|
2586
|
+
iNdEx = preIndex
|
|
2587
|
+
skippy, err := skipSwingset(dAtA[iNdEx:])
|
|
2588
|
+
if err != nil {
|
|
2589
|
+
return err
|
|
2590
|
+
}
|
|
2591
|
+
if (skippy < 0) || (iNdEx+skippy) < 0 {
|
|
2592
|
+
return ErrInvalidLengthSwingset
|
|
2593
|
+
}
|
|
2594
|
+
if (iNdEx + skippy) > l {
|
|
2595
|
+
return io.ErrUnexpectedEOF
|
|
2596
|
+
}
|
|
2597
|
+
iNdEx += skippy
|
|
2598
|
+
}
|
|
2599
|
+
}
|
|
2600
|
+
|
|
2601
|
+
if iNdEx > l {
|
|
2602
|
+
return io.ErrUnexpectedEOF
|
|
2603
|
+
}
|
|
2604
|
+
return nil
|
|
2605
|
+
}
|
|
2276
2606
|
func (m *Egress) Unmarshal(dAtA []byte) error {
|
|
2277
2607
|
l := len(dAtA)
|
|
2278
2608
|
iNdEx := 0
|
package/x/vbank/README.md
CHANGED
|
@@ -13,6 +13,11 @@ entirely at the ERTP level.
|
|
|
13
13
|
|
|
14
14
|
- `feeCollectorName`: the module which handles fee distribution to stakers.
|
|
15
15
|
- `reward_epoch_duration_blocks`: the duration (in blocks) over which fees should be given to the fee collector.
|
|
16
|
+
- `per_epoch_reward_fraction`: a decimal of how much of the `GiveawayPool` is paid as validator rewards per epoch
|
|
17
|
+
- `allowed_monitoring_accounts`: an array of account addresses that can be
|
|
18
|
+
monitored for sends and receives, defaulting to
|
|
19
|
+
`[authtypes.NewModuleAddress(types.ProvisionPoolName)]`. An element of `"*"`
|
|
20
|
+
will permit any address.
|
|
16
21
|
|
|
17
22
|
## State
|
|
18
23
|
|
|
@@ -22,7 +27,7 @@ The Vbank module maintains no significant state, but will access stored state th
|
|
|
22
27
|
|
|
23
28
|
Purse operations which change the balance result in a downcall to this module to update the underlying account. A downcall is also made to query the account balance.
|
|
24
29
|
|
|
25
|
-
Upon an `EndBlock()` call, the module will scan the block for all `MsgSend` and `MsgMultiSend` events (see `cosmos-sdk/x/bank/spec/04_events.md`) and perform a `VBANK_BALANCE_UPDATE` upcall for all denominations held in *only the
|
|
30
|
+
Upon an `EndBlock()` call, the module will scan the block for all `MsgSend` and `MsgMultiSend` events (see `cosmos-sdk/x/bank/spec/04_events.md`) and perform a `VBANK_BALANCE_UPDATE` upcall for all denominations held in *only in the allowed_monitoring_accounts*.
|
|
26
31
|
|
|
27
32
|
The following fields are common to the Vbank messages:
|
|
28
33
|
- `"address"`, `"recipient"`, `"sender"`: account address as a bech32-encoded string
|
package/x/vbank/keeper/keeper.go
CHANGED
|
@@ -6,7 +6,6 @@ import (
|
|
|
6
6
|
sdk "github.com/cosmos/cosmos-sdk/types"
|
|
7
7
|
|
|
8
8
|
"github.com/Agoric/agoric-sdk/golang/cosmos/x/vbank/types"
|
|
9
|
-
authtypes "github.com/cosmos/cosmos-sdk/x/auth/types"
|
|
10
9
|
paramtypes "github.com/cosmos/cosmos-sdk/x/params/types"
|
|
11
10
|
|
|
12
11
|
vm "github.com/Agoric/agoric-sdk/golang/cosmos/vm"
|
|
@@ -88,17 +87,13 @@ func (k Keeper) GetModuleAccountAddress(ctx sdk.Context, name string) sdk.AccAdd
|
|
|
88
87
|
return acct.GetAddress()
|
|
89
88
|
}
|
|
90
89
|
|
|
91
|
-
func (k Keeper)
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
return false
|
|
95
|
-
}
|
|
96
|
-
_, ok := acc.(authtypes.ModuleAccountI)
|
|
97
|
-
return ok
|
|
90
|
+
func (k Keeper) IsAllowedMonitoringAccount(ctx sdk.Context, addr sdk.AccAddress) bool {
|
|
91
|
+
params := k.GetParams(ctx)
|
|
92
|
+
return params.IsAllowedMonitoringAccount(addr.String())
|
|
98
93
|
}
|
|
99
94
|
|
|
100
95
|
func (k Keeper) GetParams(ctx sdk.Context) (params types.Params) {
|
|
101
|
-
k.paramSpace.
|
|
96
|
+
k.paramSpace.GetParamSetIfExists(ctx, ¶ms)
|
|
102
97
|
return params
|
|
103
98
|
}
|
|
104
99
|
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
package keeper
|
|
2
|
+
|
|
3
|
+
import (
|
|
4
|
+
"github.com/Agoric/agoric-sdk/golang/cosmos/x/vbank/types"
|
|
5
|
+
sdk "github.com/cosmos/cosmos-sdk/types"
|
|
6
|
+
)
|
|
7
|
+
|
|
8
|
+
// Migrator handles in-place store migrations.
|
|
9
|
+
type Migrator struct {
|
|
10
|
+
keeper Keeper
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
// NewMigrator creates a new Migrator based on the keeper.
|
|
14
|
+
func NewMigrator(keeper Keeper) Migrator {
|
|
15
|
+
return Migrator{keeper: keeper}
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
// Migrate1to2 migrates from version 1 to 2.
|
|
19
|
+
func (m Migrator) Migrate1to2(ctx sdk.Context) error {
|
|
20
|
+
params := m.keeper.GetParams(ctx)
|
|
21
|
+
if params.AllowedMonitoringAccounts != nil {
|
|
22
|
+
return nil
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
defaultParams := types.DefaultParams()
|
|
26
|
+
params.AllowedMonitoringAccounts = defaultParams.AllowedMonitoringAccounts
|
|
27
|
+
m.keeper.SetParams(ctx, params)
|
|
28
|
+
|
|
29
|
+
return nil
|
|
30
|
+
}
|