Skip to content

Commit 87e2864

Browse files
committed
Quebec protocol
1 parent f8fe374 commit 87e2864

37 files changed

+2207
-44
lines changed

protocol/block.go

+5
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ import (
1313
"github.com/ecadlabs/gotez/v2/protocol/proto_017_PtNairob"
1414
"github.com/ecadlabs/gotez/v2/protocol/proto_018_Proxford"
1515
"github.com/ecadlabs/gotez/v2/protocol/proto_019_PtParisB"
16+
"github.com/ecadlabs/gotez/v2/protocol/proto_021_PsquebeC"
1617
)
1718

1819
type BlockInfo interface {
@@ -31,6 +32,8 @@ type BlockHeaderInfo interface {
3132

3233
func NewBlockInfo(proto *tz.ProtocolHash) (BlockInfo, error) {
3334
switch *proto {
35+
case core.Proto021PsquebeC:
36+
return new(proto_021_PsquebeC.BlockInfo), nil
3437
case core.Proto019PtParisB, core.Proto020PsParisC:
3538
return new(proto_019_PtParisB.BlockInfo), nil
3639
case core.Proto018Proxford:
@@ -54,6 +57,8 @@ func NewBlockInfo(proto *tz.ProtocolHash) (BlockInfo, error) {
5457

5558
func NewBlockHeaderInfo(proto *tz.ProtocolHash) (BlockHeaderInfo, error) {
5659
switch *proto {
60+
case core.Proto021PsquebeC:
61+
return new(proto_021_PsquebeC.BlockHeaderInfo), nil
5762
case core.Proto019PtParisB, core.Proto020PsParisC:
5863
return new(proto_019_PtParisB.BlockHeaderInfo), nil
5964
case core.Proto018Proxford:

protocol/block_test.go

+25
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,31 @@ type protoTestData struct {
2020
}
2121

2222
var testData = []protoTestData{
23+
{
24+
proto: &core.Proto021PsquebeC,
25+
blocks: []string{
26+
"155262",
27+
"155263",
28+
"155264",
29+
"155265",
30+
"155266",
31+
"155267",
32+
"155268",
33+
"155269",
34+
"155270",
35+
"155271",
36+
"155272",
37+
"155273",
38+
"155274",
39+
"155275",
40+
"155276",
41+
"155277",
42+
"155278",
43+
"155279",
44+
"155280",
45+
"155281",
46+
},
47+
},
2348
{
2449
proto: &core.Proto019PtParisB,
2550
blocks: []string{

protocol/constants.go

+3
Original file line numberDiff line numberDiff line change
@@ -13,10 +13,13 @@ import (
1313
"github.com/ecadlabs/gotez/v2/protocol/proto_017_PtNairob"
1414
"github.com/ecadlabs/gotez/v2/protocol/proto_018_Proxford"
1515
"github.com/ecadlabs/gotez/v2/protocol/proto_019_PtParisB"
16+
"github.com/ecadlabs/gotez/v2/protocol/proto_021_PsquebeC"
1617
)
1718

1819
func NewConstants(proto *tz.ProtocolHash) (constants core.Constants, err error) {
1920
switch *proto {
21+
case core.Proto021PsquebeC:
22+
constants = new(proto_021_PsquebeC.Constants)
2023
case core.Proto019PtParisB, core.Proto020PsParisC:
2124
constants = new(proto_019_PtParisB.Constants)
2225
case core.Proto018Proxford:

protocol/context.go

-40
This file was deleted.

protocol/core/protocol.go

+4
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ var (
2626
Proto018Proxford = tz.ProtocolHash{0x0b, 0xf4, 0x4c, 0x7d, 0x64, 0xe3, 0xd7, 0xda, 0x27, 0xd9, 0x25, 0xd1, 0x0a, 0xf5, 0x35, 0xfb, 0x36, 0xce, 0xf0, 0xad, 0x41, 0x93, 0x0c, 0x79, 0x29, 0x77, 0x3f, 0x47, 0x31, 0xeb, 0xa1, 0x37}
2727
Proto019PtParisB = tz.ProtocolHash{0xdb, 0xff, 0x65, 0x86, 0xa0, 0x48, 0x02, 0xd3, 0xf5, 0x13, 0xc6, 0x5a, 0x44, 0x4d, 0x9d, 0x4d, 0xeb, 0xe4, 0x2b, 0x17, 0xe9, 0xe7, 0x27, 0x3f, 0x8f, 0x6c, 0x11, 0x8e, 0xa3, 0xf4, 0xe0, 0x6e}
2828
Proto020PsParisC = tz.ProtocolHash{0x58, 0x4d, 0x32, 0x39, 0x2e, 0xf2, 0x1a, 0x17, 0xef, 0x36, 0xdf, 0x07, 0x4f, 0x48, 0xaf, 0x06, 0x65, 0x3a, 0x8d, 0x31, 0x59, 0x57, 0xc9, 0x07, 0xd6, 0xa4, 0xc1, 0x8c, 0x3a, 0x00, 0xa5, 0xe1}
29+
Proto021PsquebeC = tz.ProtocolHash{0x94, 0x12, 0xc8, 0x4f, 0xe6, 0x49, 0x2d, 0x94, 0x8e, 0x1b, 0xcf, 0x75, 0xa3, 0xc8, 0xf6, 0xcb, 0xc9, 0x0a, 0xf9, 0xaf, 0x42, 0x76, 0x5a, 0xe0, 0x03, 0x8c, 0x8b, 0x77, 0x81, 0x34, 0xfa, 0xb1}
2930
)
3031

3132
var Protocols = []*tz.ProtocolHash{
@@ -50,6 +51,7 @@ var Protocols = []*tz.ProtocolHash{
5051
&Proto018Proxford,
5152
&Proto019PtParisB,
5253
&Proto020PsParisC,
54+
&Proto021PsquebeC,
5355
}
5456

5557
var shortNames = map[tz.ProtocolHash]string{
@@ -74,6 +76,7 @@ var shortNames = map[tz.ProtocolHash]string{
7476
Proto018Proxford: "018_Proxford",
7577
Proto019PtParisB: "019_PtParisA",
7678
Proto020PsParisC: "020_PsParisC",
79+
Proto021PsquebeC: "021_PsquebeC",
7780
}
7881

7982
var indices = map[tz.ProtocolHash]int{
@@ -98,6 +101,7 @@ var indices = map[tz.ProtocolHash]int{
98101
Proto018Proxford: 18,
99102
Proto019PtParisB: 19,
100103
Proto020PsParisC: 20,
104+
Proto021PsquebeC: 21,
101105
}
102106

103107
func ProtocolShortName(proto *tz.ProtocolHash) string {

protocol/latest/alias.go

+3-4
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ package latest
22

33
import (
44
"github.com/ecadlabs/gotez/v2/protocol/core"
5-
latest "github.com/ecadlabs/gotez/v2/protocol/proto_019_PtParisB"
5+
latest "github.com/ecadlabs/gotez/v2/protocol/proto_021_PsquebeC"
66
)
77

88
var (
@@ -62,7 +62,6 @@ type EndorsementContentsAndResult = latest.AttestationContentsAndResult
6262
type InlinedEndorsementContents = latest.InlinedAttestationContents
6363
type InlinedAttestationContents = latest.InlinedAttestationContents
6464
type DALAttestation = latest.DALAttestation
65-
type DALAttestationContentsAndResult = latest.DALAttestationContentsAndResult
6665
type Reveal = latest.Reveal
6766
type RevealContentsAndResult = latest.RevealContentsAndResult
6867
type Transaction = latest.Transaction
@@ -99,8 +98,8 @@ type SmartRollupExecuteOutboxMessage = latest.SmartRollupExecuteOutboxMessage
9998
type SmartRollupExecuteOutboxMessageContentsAndResult = latest.SmartRollupExecuteOutboxMessageContentsAndResult
10099
type SmartRollupRecoverBond = latest.SmartRollupRecoverBond
101100
type SmartRollupRecoverBondContentsAndResult = latest.SmartRollupRecoverBondContentsAndResult
102-
type DALPublishSlotHeader = latest.DALPublishSlotHeader
103-
type DALPublishSlotHeaderContentsAndResult = latest.DALPublishSlotHeaderContentsAndResult
101+
type DALPublishCommitment = latest.DALPublishCommitment
102+
type DALPublishCommitmentContentsAndResult = latest.DALPublishCommitmentContentsAndResult
104103
type ZkRollupOrigination = latest.ZkRollupOrigination
105104
type ZkRollupOriginationContentsAndResult = latest.ZkRollupOriginationContentsAndResult
106105
type ZkRollupPublish = latest.ZkRollupPublish
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,141 @@
1+
package proto_021_PsquebeC
2+
3+
import (
4+
tz "github.com/ecadlabs/gotez/v2"
5+
"github.com/ecadlabs/gotez/v2/encoding"
6+
"github.com/ecadlabs/gotez/v2/protocol/core"
7+
"github.com/ecadlabs/gotez/v2/protocol/proto_012_Psithaca"
8+
"github.com/ecadlabs/gotez/v2/protocol/proto_016_PtMumbai"
9+
"github.com/ecadlabs/gotez/v2/protocol/proto_018_Proxford"
10+
"github.com/ecadlabs/gotez/v2/protocol/proto_019_PtParisB"
11+
)
12+
13+
type BalanceUpdates struct {
14+
BalanceUpdates []*BalanceUpdate `tz:"dyn" json:"balance_updates"`
15+
}
16+
17+
func (b *BalanceUpdates) GetBalanceUpdates() []core.BalanceUpdate {
18+
out := make([]core.BalanceUpdate, len(b.BalanceUpdates))
19+
for i, u := range b.BalanceUpdates {
20+
out[i] = u
21+
}
22+
return out
23+
}
24+
25+
type BalanceUpdate struct {
26+
Contents BalanceUpdateContents `json:"contents"`
27+
Change int64 `json:"change"`
28+
Origin core.BalanceUpdateOrigin `json:"origin"`
29+
}
30+
31+
func (b *BalanceUpdate) GetContents() core.BalanceUpdateContents { return b.Contents }
32+
func (b *BalanceUpdate) GetChange() int64 { return b.Change }
33+
func (b *BalanceUpdate) GetOrigin() core.BalanceUpdateOrigin { return b.Origin }
34+
35+
type BalanceUpdateContract = proto_012_Psithaca.BalanceUpdateContract
36+
type BalanceUpdateCommitments = proto_012_Psithaca.BalanceUpdateCommitments
37+
type BalanceUpdateBlockFees = proto_012_Psithaca.BalanceUpdateBlockFees
38+
type BalanceUpdateNonceRevelationRewards = proto_012_Psithaca.BalanceUpdateNonceRevelationRewards
39+
type BalanceUpdateBakingRewards = proto_012_Psithaca.BalanceUpdateBakingRewards
40+
type BalanceUpdateBakingBonuses = proto_012_Psithaca.BalanceUpdateBakingBonuses
41+
type BalanceUpdateStorageFees = proto_012_Psithaca.BalanceUpdateStorageFees
42+
type BalanceUpdateDoubleSigningPunishments = proto_012_Psithaca.BalanceUpdateDoubleSigningPunishments
43+
type BalanceUpdateLiquidityBakingSubsidies = proto_012_Psithaca.BalanceUpdateLiquidityBakingSubsidies
44+
type BalanceUpdateBurned = proto_012_Psithaca.BalanceUpdateBurned
45+
type BalanceUpdateBootstrap = proto_012_Psithaca.BalanceUpdateBootstrap
46+
type BalanceUpdateInvoice = proto_012_Psithaca.BalanceUpdateInvoice
47+
type BalanceUpdateInitialCommitments = proto_012_Psithaca.BalanceUpdateInitialCommitments
48+
type BalanceUpdateMinted = proto_012_Psithaca.BalanceUpdateMinted
49+
type BalanceUpdateSmartRollupRefutationPunishments = proto_016_PtMumbai.BalanceUpdateSmartRollupRefutationPunishments
50+
type BalanceUpdateSmartRollupRefutationRewards = proto_016_PtMumbai.BalanceUpdateSmartRollupRefutationRewards
51+
type StakingDelegatorNumerator = proto_018_Proxford.StakingDelegatorNumerator
52+
type StakingDelegateDenominator = proto_018_Proxford.StakingDelegateDenominator
53+
type BalanceUpdateUnstakedDeposits = proto_018_Proxford.BalanceUpdateUnstakedDeposits
54+
type BalanceUpdateDeposits = proto_019_PtParisB.BalanceUpdateDeposits
55+
56+
//json:category=BalanceUpdateCategory(),kind=BalanceUpdateKind()
57+
type BalanceUpdateAttestingRewards struct{}
58+
59+
func (BalanceUpdateAttestingRewards) BalanceUpdateCategory() string {
60+
return "attesting_rewards"
61+
}
62+
func (BalanceUpdateAttestingRewards) BalanceUpdateKind() core.BalanceUpdateKind {
63+
return core.BalanceUpdateKindMinted
64+
}
65+
66+
//json:category=BalanceUpdateCategory(),kind=BalanceUpdateKind()
67+
type BalanceUpdateLostAttestingRewards struct {
68+
Delegate tz.PublicKeyHash `json:"delegate"`
69+
Participation bool `json:"participation"`
70+
Revelation bool `json:"revelation"`
71+
}
72+
73+
func (*BalanceUpdateLostAttestingRewards) BalanceUpdateCategory() string {
74+
return "lost_attesting_rewards"
75+
}
76+
func (*BalanceUpdateLostAttestingRewards) BalanceUpdateKind() core.BalanceUpdateKind {
77+
return core.BalanceUpdateKindBurned
78+
}
79+
80+
type BondID interface {
81+
proto_016_PtMumbai.BondID
82+
}
83+
84+
type SmartRollupBondID struct {
85+
Address *tz.SmartRollupAddress `json:"address"`
86+
}
87+
88+
func (SmartRollupBondID) BondID() {}
89+
90+
func init() {
91+
encoding.RegisterEnum(&encoding.Enum[BondID]{
92+
Variants: encoding.Variants[BondID]{
93+
1: SmartRollupBondID{},
94+
},
95+
})
96+
}
97+
98+
//json:category=BalanceUpdateCategory(),kind=BalanceUpdateKind()
99+
type BalanceUpdateFrozenBonds struct {
100+
Contract core.ContractID `json:"contract"`
101+
BondID BondID `json:"bond_id"`
102+
}
103+
104+
func (*BalanceUpdateFrozenBonds) BalanceUpdateCategory() string { return "frozen_bonds" }
105+
func (*BalanceUpdateFrozenBonds) BalanceUpdateKind() core.BalanceUpdateKind {
106+
return core.BalanceUpdateKindFreezer
107+
}
108+
109+
type BalanceUpdateContents interface {
110+
core.BalanceUpdateContents
111+
}
112+
113+
func init() {
114+
encoding.RegisterEnum(&encoding.Enum[BalanceUpdateContents]{
115+
Variants: encoding.Variants[BalanceUpdateContents]{
116+
0: (*BalanceUpdateContract)(nil),
117+
2: BalanceUpdateBlockFees{},
118+
4: (*BalanceUpdateDeposits)(nil),
119+
5: BalanceUpdateNonceRevelationRewards{},
120+
7: BalanceUpdateAttestingRewards{},
121+
8: BalanceUpdateBakingRewards{},
122+
9: BalanceUpdateBakingBonuses{},
123+
11: BalanceUpdateStorageFees{},
124+
12: BalanceUpdateDoubleSigningPunishments{},
125+
13: (*BalanceUpdateLostAttestingRewards)(nil),
126+
14: BalanceUpdateLiquidityBakingSubsidies{},
127+
15: BalanceUpdateBurned{},
128+
16: (*BalanceUpdateCommitments)(nil),
129+
17: BalanceUpdateBootstrap{},
130+
18: BalanceUpdateInvoice{},
131+
19: BalanceUpdateInitialCommitments{},
132+
20: BalanceUpdateMinted{},
133+
21: (*BalanceUpdateFrozenBonds)(nil),
134+
24: BalanceUpdateSmartRollupRefutationPunishments{},
135+
25: BalanceUpdateSmartRollupRefutationRewards{},
136+
26: (*BalanceUpdateUnstakedDeposits)(nil),
137+
27: StakingDelegatorNumerator{},
138+
28: StakingDelegateDenominator{},
139+
},
140+
})
141+
}

0 commit comments

Comments
 (0)