Update ValidatorRecord Proto (#1030)

This commit is contained in:
terence tsao
2018-12-02 18:17:48 -08:00
committed by GitHub
parent 7cd6223755
commit 57038551d6
11 changed files with 401 additions and 355 deletions

View File

@@ -1,5 +1,5 @@
// Code generated by protoc-gen-go. DO NOT EDIT.
// source: proto/beacon/p2p/v1/types.proto
// source: types.proto
package v1
@@ -19,55 +19,96 @@ var _ = math.Inf
// proto package needs to be updated.
const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package
// Possible validator status code:
// https://github.com/ethereum/eth2.0-specs/blob/master/specs/core/0_beacon-chain.md#constants
type ValidatorRecord_ValiatorStateCode int32
const (
ValidatorRecord_pending_activation ValidatorRecord_ValiatorStateCode = 0
ValidatorRecord_active ValidatorRecord_ValiatorStateCode = 1
ValidatorRecord_exited_without_penalty ValidatorRecord_ValiatorStateCode = 2
ValidatorRecord_exited_with_penalty ValidatorRecord_ValiatorStateCode = 3
)
var ValidatorRecord_ValiatorStateCode_name = map[int32]string{
0: "pending_activation",
1: "active",
2: "exited_without_penalty",
3: "exited_with_penalty",
}
var ValidatorRecord_ValiatorStateCode_value = map[string]int32{
"pending_activation": 0,
"active": 1,
"exited_without_penalty": 2,
"exited_with_penalty": 3,
}
func (x ValidatorRecord_ValiatorStateCode) String() string {
return proto.EnumName(ValidatorRecord_ValiatorStateCode_name, int32(x))
}
func (ValidatorRecord_ValiatorStateCode) EnumDescriptor() ([]byte, []int) {
return fileDescriptor_types_6a68660b78fb3fe8, []int{5, 0}
}
type BeaconState struct {
ValidatorRegistry []*ValidatorRecord `protobuf:"bytes,1,rep,name=validator_registry,json=validatorRegistry,proto3" json:"validator_registry,omitempty"`
ValidatorRegistryLastChangeSlot uint64 `protobuf:"varint,2,opt,name=validator_registry_last_change_slot,json=validatorRegistryLastChangeSlot,proto3" json:"validator_registry_last_change_slot,omitempty"`
ValidatorRegistryExitCount uint64 `protobuf:"varint,3,opt,name=validator_registry_exit_count,json=validatorRegistryExitCount,proto3" json:"validator_registry_exit_count,omitempty"`
ValidatorRegistryDeltaChainTipHash32 []byte `protobuf:"bytes,4,opt,name=validator_registry_delta_chain_tip_hash32,json=validatorRegistryDeltaChainTipHash32,proto3" json:"validator_registry_delta_chain_tip_hash32,omitempty"`
RandaoMixHash32 []byte `protobuf:"bytes,1001,opt,name=randao_mix_hash32,json=randaoMixHash32,proto3" json:"randao_mix_hash32,omitempty"`
NextSeedHash32 []byte `protobuf:"bytes,1002,opt,name=next_seed_hash32,json=nextSeedHash32,proto3" json:"next_seed_hash32,omitempty"`
ShardAndCommitteesForSlots []*ShardAndCommitteeArray `protobuf:"bytes,1003,rep,name=shard_and_committees_for_slots,json=shardAndCommitteesForSlots,proto3" json:"shard_and_committees_for_slots,omitempty"`
PersistentCommittees []uint32 `protobuf:"varint,1004,rep,packed,name=persistent_committees,json=persistentCommittees,proto3" json:"persistent_committees,omitempty"` // Deprecated: Do not use.
PersistentCommitteeReassignments []*ShardReassignmentRecord `protobuf:"bytes,1005,rep,name=persistent_committee_reassignments,json=persistentCommitteeReassignments,proto3" json:"persistent_committee_reassignments,omitempty"`
PreviousJustifiedSlot uint64 `protobuf:"varint,2001,opt,name=previous_justified_slot,json=previousJustifiedSlot,proto3" json:"previous_justified_slot,omitempty"`
JustifiedSlot uint64 `protobuf:"varint,2002,opt,name=justified_slot,json=justifiedSlot,proto3" json:"justified_slot,omitempty"`
JustifiedSlotBitfield uint64 `protobuf:"varint,2003,opt,name=justified_slot_bitfield,json=justifiedSlotBitfield,proto3" json:"justified_slot_bitfield,omitempty"`
FinalizedSlot uint64 `protobuf:"varint,2004,opt,name=finalized_slot,json=finalizedSlot,proto3" json:"finalized_slot,omitempty"`
LatestCrosslinks []*CrosslinkRecord `protobuf:"bytes,3001,rep,name=latest_crosslinks,json=latestCrosslinks,proto3" json:"latest_crosslinks,omitempty"`
LastStateRecalculationSlot uint64 `protobuf:"varint,3002,opt,name=last_state_recalculation_slot,json=lastStateRecalculationSlot,proto3" json:"last_state_recalculation_slot,omitempty"`
LatestBlockHash32S [][]byte `protobuf:"bytes,3003,rep,name=latest_block_hash32s,json=latestBlockHash32s,proto3" json:"latest_block_hash32s,omitempty"`
LatestPenalizedExitBalances []uint64 `protobuf:"varint,3004,rep,packed,name=latest_penalized_exit_balances,json=latestPenalizedExitBalances,proto3" json:"latest_penalized_exit_balances,omitempty"`
LatestAttestations []*PendingAttestationRecord `protobuf:"bytes,3005,rep,name=latest_attestations,json=latestAttestations,proto3" json:"latest_attestations,omitempty"`
ProcessedPowReceiptRootHash32 [][]byte `protobuf:"bytes,4001,rep,name=processed_pow_receipt_root_hash32,json=processedPowReceiptRootHash32,proto3" json:"processed_pow_receipt_root_hash32,omitempty"`
CandidatePowReceiptRoots []*CandidatePoWReceiptRootRecord `protobuf:"bytes,4002,rep,name=candidate_pow_receipt_roots,json=candidatePowReceiptRoots,proto3" json:"candidate_pow_receipt_roots,omitempty"`
GenesisTime uint64 `protobuf:"varint,5001,opt,name=genesis_time,json=genesisTime,proto3" json:"genesis_time,omitempty"`
ForkData *ForkData `protobuf:"bytes,5002,opt,name=fork_data,json=forkData,proto3" json:"fork_data,omitempty"`
Validators []*ValidatorRecord `protobuf:"bytes,10000,rep,name=validators,proto3" json:"validators,omitempty"` // Deprecated: Do not use.
ValidatorSetChangeSlot uint64 `protobuf:"varint,10001,opt,name=validator_set_change_slot,json=validatorSetChangeSlot,proto3" json:"validator_set_change_slot,omitempty"` // Deprecated: Do not use.
Crosslinks []*CrosslinkRecord `protobuf:"bytes,10002,rep,name=crosslinks,proto3" json:"crosslinks,omitempty"` // Deprecated: Do not use.
RandaoMix []byte `protobuf:"bytes,10003,opt,name=randao_mix,json=randaoMix,proto3" json:"randao_mix,omitempty"` // Deprecated: Do not use.
PersistentCommitteeReassignment []*ShardReassignmentRecord `protobuf:"bytes,10004,rep,name=persistent_committee_reassignment,json=persistentCommitteeReassignment,proto3" json:"persistent_committee_reassignment,omitempty"` // Deprecated: Do not use.
LastFinalizedSlot uint64 `protobuf:"varint,10005,opt,name=last_finalized_slot,json=lastFinalizedSlot,proto3" json:"last_finalized_slot,omitempty"` // Deprecated: Do not use.
LastJustifiedSlot uint64 `protobuf:"varint,10006,opt,name=last_justified_slot,json=lastJustifiedSlot,proto3" json:"last_justified_slot,omitempty"` // Deprecated: Do not use.
JustifiedStreak uint64 `protobuf:"varint,10007,opt,name=justified_streak,json=justifiedStreak,proto3" json:"justified_streak,omitempty"` // Deprecated: Do not use.
NextShufflingSeed []byte `protobuf:"bytes,10008,opt,name=next_shuffling_seed,json=nextShufflingSeed,proto3" json:"next_shuffling_seed,omitempty"` // Deprecated: Do not use.
DepositsPenalizedInPeriod []uint64 `protobuf:"varint,10009,rep,packed,name=deposits_penalized_in_period,json=depositsPenalizedInPeriod,proto3" json:"deposits_penalized_in_period,omitempty"` // Deprecated: Do not use.
ValidatorDeltaHashChain []byte `protobuf:"bytes,10010,opt,name=validator_delta_hash_chain,json=validatorDeltaHashChain,proto3" json:"validator_delta_hash_chain,omitempty"` // Deprecated: Do not use.
CurrentExitSeq uint64 `protobuf:"varint,10011,opt,name=current_exit_seq,json=currentExitSeq,proto3" json:"current_exit_seq,omitempty"` // Deprecated: Do not use.
KnownPowReceiptRoot []byte `protobuf:"bytes,10012,opt,name=known_pow_receipt_root,json=knownPowReceiptRoot,proto3" json:"known_pow_receipt_root,omitempty"` // Deprecated: Do not use.
CandidatePowReceiptRoot []byte `protobuf:"bytes,10013,opt,name=candidate_pow_receipt_root,json=candidatePowReceiptRoot,proto3" json:"candidate_pow_receipt_root,omitempty"` // Deprecated: Do not use.
CandidatePowReceiptRootVotes uint64 `protobuf:"varint,10014,opt,name=candidate_pow_receipt_root_votes,json=candidatePowReceiptRootVotes,proto3" json:"candidate_pow_receipt_root_votes,omitempty"` // Deprecated: Do not use.
PendingAttestations []*AggregatedAttestation `protobuf:"bytes,10018,rep,name=pending_attestations,json=pendingAttestations,proto3" json:"pending_attestations,omitempty"` // Deprecated: Do not use.
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
// Validator registry [1-1000]
ValidatorRegistry []*ValidatorRecord `protobuf:"bytes,1,rep,name=validator_registry,json=validatorRegistry,proto3" json:"validator_registry,omitempty"`
ValidatorRegistryLastChangeSlot uint64 `protobuf:"varint,2,opt,name=validator_registry_last_change_slot,json=validatorRegistryLastChangeSlot,proto3" json:"validator_registry_last_change_slot,omitempty"`
ValidatorRegistryExitCount uint64 `protobuf:"varint,3,opt,name=validator_registry_exit_count,json=validatorRegistryExitCount,proto3" json:"validator_registry_exit_count,omitempty"`
ValidatorRegistryDeltaChainTipHash32 []byte `protobuf:"bytes,4,opt,name=validator_registry_delta_chain_tip_hash32,json=validatorRegistryDeltaChainTipHash32,proto3" json:"validator_registry_delta_chain_tip_hash32,omitempty"`
// Randomness and committees [1001-2000]
RandaoMixHash32 []byte `protobuf:"bytes,1001,opt,name=randao_mix_hash32,json=randaoMixHash32,proto3" json:"randao_mix_hash32,omitempty"`
NextSeedHash32 []byte `protobuf:"bytes,1002,opt,name=next_seed_hash32,json=nextSeedHash32,proto3" json:"next_seed_hash32,omitempty"`
ShardAndCommitteesForSlots []*ShardAndCommitteeArray `protobuf:"bytes,1003,rep,name=shard_and_committees_for_slots,json=shardAndCommitteesForSlots,proto3" json:"shard_and_committees_for_slots,omitempty"`
// TODO(781): Persistent committees should be a 2d uint24 array.
PersistentCommittees []uint32 `protobuf:"varint,1004,rep,packed,name=persistent_committees,json=persistentCommittees,proto3" json:"persistent_committees,omitempty"` // Deprecated: Do not use.
// repeated Uint32Array persistent_committees = 1004;
PersistentCommitteeReassignments []*ShardReassignmentRecord `protobuf:"bytes,1005,rep,name=persistent_committee_reassignments,json=persistentCommitteeReassignments,proto3" json:"persistent_committee_reassignments,omitempty"`
// Finality [2001-3000]
PreviousJustifiedSlot uint64 `protobuf:"varint,2001,opt,name=previous_justified_slot,json=previousJustifiedSlot,proto3" json:"previous_justified_slot,omitempty"`
JustifiedSlot uint64 `protobuf:"varint,2002,opt,name=justified_slot,json=justifiedSlot,proto3" json:"justified_slot,omitempty"`
JustifiedSlotBitfield uint64 `protobuf:"varint,2003,opt,name=justified_slot_bitfield,json=justifiedSlotBitfield,proto3" json:"justified_slot_bitfield,omitempty"`
FinalizedSlot uint64 `protobuf:"varint,2004,opt,name=finalized_slot,json=finalizedSlot,proto3" json:"finalized_slot,omitempty"`
// Recent state [3001-4000]
LatestCrosslinks []*CrosslinkRecord `protobuf:"bytes,3001,rep,name=latest_crosslinks,json=latestCrosslinks,proto3" json:"latest_crosslinks,omitempty"`
LastStateRecalculationSlot uint64 `protobuf:"varint,3002,opt,name=last_state_recalculation_slot,json=lastStateRecalculationSlot,proto3" json:"last_state_recalculation_slot,omitempty"`
LatestBlockHash32S [][]byte `protobuf:"bytes,3003,rep,name=latest_block_hash32s,json=latestBlockHash32s,proto3" json:"latest_block_hash32s,omitempty"`
LatestPenalizedExitBalances []uint64 `protobuf:"varint,3004,rep,packed,name=latest_penalized_exit_balances,json=latestPenalizedExitBalances,proto3" json:"latest_penalized_exit_balances,omitempty"`
LatestAttestations []*PendingAttestationRecord `protobuf:"bytes,3005,rep,name=latest_attestations,json=latestAttestations,proto3" json:"latest_attestations,omitempty"`
// PoW receipt root [4001-5000]
ProcessedPowReceiptRootHash32 [][]byte `protobuf:"bytes,4001,rep,name=processed_pow_receipt_root_hash32,json=processedPowReceiptRootHash32,proto3" json:"processed_pow_receipt_root_hash32,omitempty"`
CandidatePowReceiptRoots []*CandidatePoWReceiptRootRecord `protobuf:"bytes,4002,rep,name=candidate_pow_receipt_roots,json=candidatePowReceiptRoots,proto3" json:"candidate_pow_receipt_roots,omitempty"`
// Miscellaneous [5001-6000]
GenesisTime uint64 `protobuf:"varint,5001,opt,name=genesis_time,json=genesisTime,proto3" json:"genesis_time,omitempty"`
ForkData *ForkData `protobuf:"bytes,5002,opt,name=fork_data,json=forkData,proto3" json:"fork_data,omitempty"`
// Deprecated fields
// All fields mustbe annotated with [deprecated=true];
Validators []*ValidatorRecord `protobuf:"bytes,10000,rep,name=validators,proto3" json:"validators,omitempty"` // Deprecated: Do not use.
ValidatorSetChangeSlot uint64 `protobuf:"varint,10001,opt,name=validator_set_change_slot,json=validatorSetChangeSlot,proto3" json:"validator_set_change_slot,omitempty"` // Deprecated: Do not use.
Crosslinks []*CrosslinkRecord `protobuf:"bytes,10002,rep,name=crosslinks,proto3" json:"crosslinks,omitempty"` // Deprecated: Do not use.
RandaoMix []byte `protobuf:"bytes,10003,opt,name=randao_mix,json=randaoMix,proto3" json:"randao_mix,omitempty"` // Deprecated: Do not use.
PersistentCommitteeReassignment []*ShardReassignmentRecord `protobuf:"bytes,10004,rep,name=persistent_committee_reassignment,json=persistentCommitteeReassignment,proto3" json:"persistent_committee_reassignment,omitempty"` // Deprecated: Do not use.
LastFinalizedSlot uint64 `protobuf:"varint,10005,opt,name=last_finalized_slot,json=lastFinalizedSlot,proto3" json:"last_finalized_slot,omitempty"` // Deprecated: Do not use.
LastJustifiedSlot uint64 `protobuf:"varint,10006,opt,name=last_justified_slot,json=lastJustifiedSlot,proto3" json:"last_justified_slot,omitempty"` // Deprecated: Do not use.
JustifiedStreak uint64 `protobuf:"varint,10007,opt,name=justified_streak,json=justifiedStreak,proto3" json:"justified_streak,omitempty"` // Deprecated: Do not use.
NextShufflingSeed []byte `protobuf:"bytes,10008,opt,name=next_shuffling_seed,json=nextShufflingSeed,proto3" json:"next_shuffling_seed,omitempty"` // Deprecated: Do not use.
DepositsPenalizedInPeriod []uint64 `protobuf:"varint,10009,rep,packed,name=deposits_penalized_in_period,json=depositsPenalizedInPeriod,proto3" json:"deposits_penalized_in_period,omitempty"` // Deprecated: Do not use.
ValidatorDeltaHashChain []byte `protobuf:"bytes,10010,opt,name=validator_delta_hash_chain,json=validatorDeltaHashChain,proto3" json:"validator_delta_hash_chain,omitempty"` // Deprecated: Do not use.
CurrentExitSeq uint64 `protobuf:"varint,10011,opt,name=current_exit_seq,json=currentExitSeq,proto3" json:"current_exit_seq,omitempty"` // Deprecated: Do not use.
KnownPowReceiptRoot []byte `protobuf:"bytes,10012,opt,name=known_pow_receipt_root,json=knownPowReceiptRoot,proto3" json:"known_pow_receipt_root,omitempty"` // Deprecated: Do not use.
CandidatePowReceiptRoot []byte `protobuf:"bytes,10013,opt,name=candidate_pow_receipt_root,json=candidatePowReceiptRoot,proto3" json:"candidate_pow_receipt_root,omitempty"` // Deprecated: Do not use.
CandidatePowReceiptRootVotes uint64 `protobuf:"varint,10014,opt,name=candidate_pow_receipt_root_votes,json=candidatePowReceiptRootVotes,proto3" json:"candidate_pow_receipt_root_votes,omitempty"` // Deprecated: Do not use.
PendingAttestations []*AggregatedAttestation `protobuf:"bytes,10018,rep,name=pending_attestations,json=pendingAttestations,proto3" json:"pending_attestations,omitempty"` // Deprecated: Do not use.
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
}
func (m *BeaconState) Reset() { *m = BeaconState{} }
func (m *BeaconState) String() string { return proto.CompactTextString(m) }
func (*BeaconState) ProtoMessage() {}
func (*BeaconState) Descriptor() ([]byte, []int) {
return fileDescriptor_types_d2a37195e9f80cec, []int{0}
return fileDescriptor_types_6a68660b78fb3fe8, []int{0}
}
func (m *BeaconState) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_BeaconState.Unmarshal(m, b)
@@ -383,7 +424,7 @@ func (m *ForkData) Reset() { *m = ForkData{} }
func (m *ForkData) String() string { return proto.CompactTextString(m) }
func (*ForkData) ProtoMessage() {}
func (*ForkData) Descriptor() ([]byte, []int) {
return fileDescriptor_types_d2a37195e9f80cec, []int{1}
return fileDescriptor_types_6a68660b78fb3fe8, []int{1}
}
func (m *ForkData) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_ForkData.Unmarshal(m, b)
@@ -436,7 +477,7 @@ func (m *CandidatePoWReceiptRootRecord) Reset() { *m = CandidatePoWRecei
func (m *CandidatePoWReceiptRootRecord) String() string { return proto.CompactTextString(m) }
func (*CandidatePoWReceiptRootRecord) ProtoMessage() {}
func (*CandidatePoWReceiptRootRecord) Descriptor() ([]byte, []int) {
return fileDescriptor_types_d2a37195e9f80cec, []int{2}
return fileDescriptor_types_6a68660b78fb3fe8, []int{2}
}
func (m *CandidatePoWReceiptRootRecord) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_CandidatePoWReceiptRootRecord.Unmarshal(m, b)
@@ -484,7 +525,7 @@ func (m *PendingAttestationRecord) Reset() { *m = PendingAttestationReco
func (m *PendingAttestationRecord) String() string { return proto.CompactTextString(m) }
func (*PendingAttestationRecord) ProtoMessage() {}
func (*PendingAttestationRecord) Descriptor() ([]byte, []int) {
return fileDescriptor_types_d2a37195e9f80cec, []int{3}
return fileDescriptor_types_6a68660b78fb3fe8, []int{3}
}
func (m *PendingAttestationRecord) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_PendingAttestationRecord.Unmarshal(m, b)
@@ -550,7 +591,7 @@ func (m *AttestationData) Reset() { *m = AttestationData{} }
func (m *AttestationData) String() string { return proto.CompactTextString(m) }
func (*AttestationData) ProtoMessage() {}
func (*AttestationData) Descriptor() ([]byte, []int) {
return fileDescriptor_types_d2a37195e9f80cec, []int{4}
return fileDescriptor_types_6a68660b78fb3fe8, []int{4}
}
func (m *AttestationData) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_AttestationData.Unmarshal(m, b)
@@ -627,24 +668,27 @@ func (m *AttestationData) GetJustifiedBlockHash32() []byte {
}
type ValidatorRecord struct {
Pubkey []byte `protobuf:"bytes,1,opt,name=pubkey,proto3" json:"pubkey,omitempty"`
WithdrawalShard uint64 `protobuf:"varint,2,opt,name=withdrawal_shard,json=withdrawalShard,proto3" json:"withdrawal_shard,omitempty"`
WithdrawalAddress []byte `protobuf:"bytes,3,opt,name=withdrawal_address,json=withdrawalAddress,proto3" json:"withdrawal_address,omitempty"`
RandaoCommitment []byte `protobuf:"bytes,4,opt,name=randao_commitment,json=randaoCommitment,proto3" json:"randao_commitment,omitempty"`
Balance uint64 `protobuf:"varint,5,opt,name=balance,proto3" json:"balance,omitempty"`
Status uint64 `protobuf:"varint,6,opt,name=status,proto3" json:"status,omitempty"`
ExitSlot uint64 `protobuf:"varint,7,opt,name=exit_slot,json=exitSlot,proto3" json:"exit_slot,omitempty"`
RandaoLastChange uint64 `protobuf:"varint,8,opt,name=randao_last_change,json=randaoLastChange,proto3" json:"randao_last_change,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
Pubkey []byte `protobuf:"bytes,1,opt,name=pubkey,proto3" json:"pubkey,omitempty"`
// TODO(781): The usage of withdrawal_credentials is not defined in spec. Not used in Prysm yet.
WithdrawalCredentials []byte `protobuf:"bytes,2,opt,name=withdrawal_credentials,json=withdrawalCredentials,proto3" json:"withdrawal_credentials,omitempty"`
RandaoCommitmentHash32 []byte `protobuf:"bytes,3,opt,name=randao_commitment_hash32,json=randaoCommitmentHash32,proto3" json:"randao_commitment_hash32,omitempty"`
RandaoSkips uint64 `protobuf:"varint,4,opt,name=randao_skips,json=randaoSkips,proto3" json:"randao_skips,omitempty"`
// Balance in Gwei
Balance uint64 `protobuf:"varint,5,opt,name=balance,proto3" json:"balance,omitempty"`
StatusCode ValidatorRecord_ValiatorStateCode `protobuf:"varint,6,opt,name=status_code,json=statusCode,proto3,enum=ethereum.beacon.p2p.v1.ValidatorRecord_ValiatorStateCode" json:"status_code,omitempty"`
LatestStatusChangeSlot uint64 `protobuf:"varint,7,opt,name=latest_status_change_slot,json=latestStatusChangeSlot,proto3" json:"latest_status_change_slot,omitempty"`
ExitCount uint64 `protobuf:"varint,8,opt,name=exit_count,json=exitCount,proto3" json:"exit_count,omitempty"`
Status uint64 `protobuf:"varint,9,opt,name=status,proto3" json:"status,omitempty"` // Deprecated: Do not use.
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
}
func (m *ValidatorRecord) Reset() { *m = ValidatorRecord{} }
func (m *ValidatorRecord) String() string { return proto.CompactTextString(m) }
func (*ValidatorRecord) ProtoMessage() {}
func (*ValidatorRecord) Descriptor() ([]byte, []int) {
return fileDescriptor_types_d2a37195e9f80cec, []int{5}
return fileDescriptor_types_6a68660b78fb3fe8, []int{5}
}
func (m *ValidatorRecord) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_ValidatorRecord.Unmarshal(m, b)
@@ -671,27 +715,27 @@ func (m *ValidatorRecord) GetPubkey() []byte {
return nil
}
func (m *ValidatorRecord) GetWithdrawalShard() uint64 {
func (m *ValidatorRecord) GetWithdrawalCredentials() []byte {
if m != nil {
return m.WithdrawalShard
return m.WithdrawalCredentials
}
return nil
}
func (m *ValidatorRecord) GetRandaoCommitmentHash32() []byte {
if m != nil {
return m.RandaoCommitmentHash32
}
return nil
}
func (m *ValidatorRecord) GetRandaoSkips() uint64 {
if m != nil {
return m.RandaoSkips
}
return 0
}
func (m *ValidatorRecord) GetWithdrawalAddress() []byte {
if m != nil {
return m.WithdrawalAddress
}
return nil
}
func (m *ValidatorRecord) GetRandaoCommitment() []byte {
if m != nil {
return m.RandaoCommitment
}
return nil
}
func (m *ValidatorRecord) GetBalance() uint64 {
if m != nil {
return m.Balance
@@ -699,6 +743,28 @@ func (m *ValidatorRecord) GetBalance() uint64 {
return 0
}
func (m *ValidatorRecord) GetStatusCode() ValidatorRecord_ValiatorStateCode {
if m != nil {
return m.StatusCode
}
return ValidatorRecord_pending_activation
}
func (m *ValidatorRecord) GetLatestStatusChangeSlot() uint64 {
if m != nil {
return m.LatestStatusChangeSlot
}
return 0
}
func (m *ValidatorRecord) GetExitCount() uint64 {
if m != nil {
return m.ExitCount
}
return 0
}
// Deprecated: Do not use.
func (m *ValidatorRecord) GetStatus() uint64 {
if m != nil {
return m.Status
@@ -706,20 +772,6 @@ func (m *ValidatorRecord) GetStatus() uint64 {
return 0
}
func (m *ValidatorRecord) GetExitSlot() uint64 {
if m != nil {
return m.ExitSlot
}
return 0
}
func (m *ValidatorRecord) GetRandaoLastChange() uint64 {
if m != nil {
return m.RandaoLastChange
}
return 0
}
type ShardReassignmentRecord struct {
ValidatorIndex uint32 `protobuf:"varint,1,opt,name=validator_index,json=validatorIndex,proto3" json:"validator_index,omitempty"`
Shard uint64 `protobuf:"varint,2,opt,name=shard,proto3" json:"shard,omitempty"`
@@ -733,7 +785,7 @@ func (m *ShardReassignmentRecord) Reset() { *m = ShardReassignmentRecord
func (m *ShardReassignmentRecord) String() string { return proto.CompactTextString(m) }
func (*ShardReassignmentRecord) ProtoMessage() {}
func (*ShardReassignmentRecord) Descriptor() ([]byte, []int) {
return fileDescriptor_types_d2a37195e9f80cec, []int{6}
return fileDescriptor_types_6a68660b78fb3fe8, []int{6}
}
func (m *ShardReassignmentRecord) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_ShardReassignmentRecord.Unmarshal(m, b)
@@ -774,6 +826,7 @@ func (m *ShardReassignmentRecord) GetSlot() uint64 {
return 0
}
// AggregatedAttestation is deprecated entirely by AttestationRecord.
type AggregatedAttestation struct {
Slot uint64 `protobuf:"varint,1,opt,name=slot,proto3" json:"slot,omitempty"` // Deprecated: Do not use.
Shard uint64 `protobuf:"varint,2,opt,name=shard,proto3" json:"shard,omitempty"` // Deprecated: Do not use.
@@ -792,7 +845,7 @@ func (m *AggregatedAttestation) Reset() { *m = AggregatedAttestation{} }
func (m *AggregatedAttestation) String() string { return proto.CompactTextString(m) }
func (*AggregatedAttestation) ProtoMessage() {}
func (*AggregatedAttestation) Descriptor() ([]byte, []int) {
return fileDescriptor_types_d2a37195e9f80cec, []int{7}
return fileDescriptor_types_6a68660b78fb3fe8, []int{7}
}
func (m *AggregatedAttestation) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_AggregatedAttestation.Unmarshal(m, b)
@@ -888,7 +941,7 @@ func (m *SpecialRecord) Reset() { *m = SpecialRecord{} }
func (m *SpecialRecord) String() string { return proto.CompactTextString(m) }
func (*SpecialRecord) ProtoMessage() {}
func (*SpecialRecord) Descriptor() ([]byte, []int) {
return fileDescriptor_types_d2a37195e9f80cec, []int{8}
return fileDescriptor_types_6a68660b78fb3fe8, []int{8}
}
func (m *SpecialRecord) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_SpecialRecord.Unmarshal(m, b)
@@ -934,7 +987,7 @@ func (m *CrosslinkRecord) Reset() { *m = CrosslinkRecord{} }
func (m *CrosslinkRecord) String() string { return proto.CompactTextString(m) }
func (*CrosslinkRecord) ProtoMessage() {}
func (*CrosslinkRecord) Descriptor() ([]byte, []int) {
return fileDescriptor_types_d2a37195e9f80cec, []int{9}
return fileDescriptor_types_6a68660b78fb3fe8, []int{9}
}
func (m *CrosslinkRecord) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_CrosslinkRecord.Unmarshal(m, b)
@@ -979,7 +1032,7 @@ func (m *ShardAndCommitteeArray) Reset() { *m = ShardAndCommitteeArray{}
func (m *ShardAndCommitteeArray) String() string { return proto.CompactTextString(m) }
func (*ShardAndCommitteeArray) ProtoMessage() {}
func (*ShardAndCommitteeArray) Descriptor() ([]byte, []int) {
return fileDescriptor_types_d2a37195e9f80cec, []int{10}
return fileDescriptor_types_6a68660b78fb3fe8, []int{10}
}
func (m *ShardAndCommitteeArray) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_ShardAndCommitteeArray.Unmarshal(m, b)
@@ -1018,7 +1071,7 @@ func (m *ShardAndCommittee) Reset() { *m = ShardAndCommittee{} }
func (m *ShardAndCommittee) String() string { return proto.CompactTextString(m) }
func (*ShardAndCommittee) ProtoMessage() {}
func (*ShardAndCommittee) Descriptor() ([]byte, []int) {
return fileDescriptor_types_d2a37195e9f80cec, []int{11}
return fileDescriptor_types_6a68660b78fb3fe8, []int{11}
}
func (m *ShardAndCommittee) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_ShardAndCommittee.Unmarshal(m, b)
@@ -1053,29 +1106,39 @@ func (m *ShardAndCommittee) GetCommittee() []uint32 {
}
type BeaconBlock struct {
Slot uint64 `protobuf:"varint,1,opt,name=slot,proto3" json:"slot,omitempty"`
RandaoRevealHash32 []byte `protobuf:"bytes,2,opt,name=randao_reveal_hash32,json=randaoRevealHash32,proto3" json:"randao_reveal_hash32,omitempty"`
CandidatePowReceiptRootHash32 []byte `protobuf:"bytes,3,opt,name=candidate_pow_receipt_root_hash32,json=candidatePowReceiptRootHash32,proto3" json:"candidate_pow_receipt_root_hash32,omitempty"`
AncestorHash32S [][]byte `protobuf:"bytes,4,rep,name=ancestor_hash32s,json=ancestorHash32s,proto3" json:"ancestor_hash32s,omitempty"`
StateRootHash32 []byte `protobuf:"bytes,5,opt,name=state_root_hash32,json=stateRootHash32,proto3" json:"state_root_hash32,omitempty"`
Attestations []*AggregatedAttestation `protobuf:"bytes,6,rep,name=attestations,proto3" json:"attestations,omitempty"` // Deprecated: Do not use.
Specials []*SpecialRecord `protobuf:"bytes,7,rep,name=specials,proto3" json:"specials,omitempty"`
ProposerSignature [][]byte `protobuf:"bytes,8,rep,name=proposer_signature,json=proposerSignature,proto3" json:"proposer_signature,omitempty"`
AncestorHashes [][]byte `protobuf:"bytes,1002,rep,name=ancestor_hashes,json=ancestorHashes,proto3" json:"ancestor_hashes,omitempty"` // Deprecated: Do not use.
RandaoReveal []byte `protobuf:"bytes,1003,opt,name=randao_reveal,json=randaoReveal,proto3" json:"randao_reveal,omitempty"` // Deprecated: Do not use.
PowChainRef []byte `protobuf:"bytes,1004,opt,name=pow_chain_ref,json=powChainRef,proto3" json:"pow_chain_ref,omitempty"` // Deprecated: Do not use.
StateRoot []byte `protobuf:"bytes,1005,opt,name=state_root,json=stateRoot,proto3" json:"state_root,omitempty"` // Deprecated: Do not use.
Timestamp *timestamp.Timestamp `protobuf:"bytes,1006,opt,name=timestamp,proto3" json:"timestamp,omitempty"` // Deprecated: Do not use.
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
Slot uint64 `protobuf:"varint,1,opt,name=slot,proto3" json:"slot,omitempty"`
RandaoRevealHash32 []byte `protobuf:"bytes,2,opt,name=randao_reveal_hash32,json=randaoRevealHash32,proto3" json:"randao_reveal_hash32,omitempty"`
CandidatePowReceiptRootHash32 []byte `protobuf:"bytes,3,opt,name=candidate_pow_receipt_root_hash32,json=candidatePowReceiptRootHash32,proto3" json:"candidate_pow_receipt_root_hash32,omitempty"`
// Ancestor hashes represent a skip list of ancestor beacon block hashes.
// i'th item is the most recent ancestor whose slot is a multiple of 2^i
// for i in the range of 0 to 31.
AncestorHash32S [][]byte `protobuf:"bytes,4,rep,name=ancestor_hash32s,json=ancestorHash32s,proto3" json:"ancestor_hash32s,omitempty"`
StateRootHash32 []byte `protobuf:"bytes,5,opt,name=state_root_hash32,json=stateRootHash32,proto3" json:"state_root_hash32,omitempty"`
// TODO(781): attestations should be a list of attestionRecords according to spec
// at ethereum/eth2.0-specs@11d4473. Update this field to AttestionRecord
// and remove the AggregatedAttestion message.
Attestations []*AggregatedAttestation `protobuf:"bytes,6,rep,name=attestations,proto3" json:"attestations,omitempty"` // Deprecated: Do not use.
// repeated AttestationRecord attestations = 6;
// Specials consist of exist, penalities, etc.
Specials []*SpecialRecord `protobuf:"bytes,7,rep,name=specials,proto3" json:"specials,omitempty"`
ProposerSignature [][]byte `protobuf:"bytes,8,rep,name=proposer_signature,json=proposerSignature,proto3" json:"proposer_signature,omitempty"`
// Deprecated fields
// All fields must be annotated with [deprecated=true];
AncestorHashes [][]byte `protobuf:"bytes,1002,rep,name=ancestor_hashes,json=ancestorHashes,proto3" json:"ancestor_hashes,omitempty"` // Deprecated: Do not use.
RandaoReveal []byte `protobuf:"bytes,1003,opt,name=randao_reveal,json=randaoReveal,proto3" json:"randao_reveal,omitempty"` // Deprecated: Do not use.
PowChainRef []byte `protobuf:"bytes,1004,opt,name=pow_chain_ref,json=powChainRef,proto3" json:"pow_chain_ref,omitempty"` // Deprecated: Do not use.
StateRoot []byte `protobuf:"bytes,1005,opt,name=state_root,json=stateRoot,proto3" json:"state_root,omitempty"` // Deprecated: Do not use.
Timestamp *timestamp.Timestamp `protobuf:"bytes,1006,opt,name=timestamp,proto3" json:"timestamp,omitempty"` // Deprecated: Do not use.
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
}
func (m *BeaconBlock) Reset() { *m = BeaconBlock{} }
func (m *BeaconBlock) String() string { return proto.CompactTextString(m) }
func (*BeaconBlock) ProtoMessage() {}
func (*BeaconBlock) Descriptor() ([]byte, []int) {
return fileDescriptor_types_d2a37195e9f80cec, []int{12}
return fileDescriptor_types_6a68660b78fb3fe8, []int{12}
}
func (m *BeaconBlock) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_BeaconBlock.Unmarshal(m, b)
@@ -1206,138 +1269,143 @@ func init() {
proto.RegisterType((*ShardAndCommitteeArray)(nil), "ethereum.beacon.p2p.v1.ShardAndCommitteeArray")
proto.RegisterType((*ShardAndCommittee)(nil), "ethereum.beacon.p2p.v1.ShardAndCommittee")
proto.RegisterType((*BeaconBlock)(nil), "ethereum.beacon.p2p.v1.BeaconBlock")
proto.RegisterEnum("ethereum.beacon.p2p.v1.ValidatorRecord_ValiatorStateCode", ValidatorRecord_ValiatorStateCode_name, ValidatorRecord_ValiatorStateCode_value)
}
func init() {
proto.RegisterFile("proto/beacon/p2p/v1/types.proto", fileDescriptor_types_d2a37195e9f80cec)
}
func init() { proto.RegisterFile("types.proto", fileDescriptor_types_6a68660b78fb3fe8) }
var fileDescriptor_types_d2a37195e9f80cec = []byte{
// 2011 bytes of a gzipped FileDescriptorProto
var fileDescriptor_types_6a68660b78fb3fe8 = []byte{
// 2099 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x9c, 0x58, 0x59, 0x73, 0x1b, 0xc7,
0x11, 0x2e, 0x90, 0x90, 0x48, 0x35, 0x0f, 0x00, 0x23, 0x1e, 0xa3, 0x83, 0x26, 0x05, 0xc7, 0x11,
0xe9, 0x48, 0xa0, 0x45, 0xc5, 0x96, 0xab, 0x52, 0x71, 0x85, 0xa4, 0xa2, 0x48, 0x89, 0xa2, 0xb0,
0x96, 0xb2, 0xfc, 0xb8, 0x35, 0xc0, 0x0e, 0xc0, 0x31, 0x97, 0x3b, 0xab, 0x9d, 0x01, 0x8f, 0x54,
0xc5, 0xc9, 0x6b, 0xf2, 0x94, 0xfb, 0x4e, 0xaa, 0xec, 0xf7, 0xfc, 0x80, 0x5c, 0x3f, 0x22, 0xc7,
0x73, 0x1e, 0xf2, 0x16, 0xd9, 0x4e, 0xfe, 0x42, 0x6a, 0x7a, 0x66, 0x2f, 0x1c, 0xb2, 0xec, 0x27,
0x60, 0xa7, 0xbf, 0xee, 0xe9, 0xed, 0xe9, 0xfe, 0xba, 0x67, 0x61, 0x35, 0x4e, 0xa4, 0x96, 0x9b,
0x6d, 0xce, 0x3a, 0x32, 0xda, 0x8c, 0xb7, 0xe2, 0xcd, 0xe3, 0x5b, 0x9b, 0xfa, 0x2c, 0xe6, 0xaa,
0x85, 0x12, 0xb2, 0xc4, 0xf5, 0x01, 0x4f, 0x78, 0xff, 0xa8, 0x65, 0x31, 0xad, 0x78, 0x2b, 0x6e,
0x1d, 0xdf, 0xba, 0xbc, 0xda, 0x93, 0xb2, 0x17, 0xf2, 0x4d, 0x44, 0xb5, 0xfb, 0xdd, 0x4d, 0x2d,
0x8e, 0xb8, 0xd2, 0xec, 0x28, 0xb6, 0x8a, 0xcd, 0xff, 0x2d, 0xc0, 0xcc, 0x0e, 0xaa, 0xec, 0x6b,
0xa6, 0x39, 0x79, 0x02, 0xe4, 0x98, 0x85, 0x22, 0x60, 0x5a, 0x26, 0x7e, 0xc2, 0x7b, 0x42, 0xe9,
0xe4, 0x8c, 0x56, 0xd6, 0x26, 0xd7, 0x67, 0xb6, 0xae, 0xb7, 0x46, 0xef, 0xd2, 0x7a, 0x92, 0x6a,
0x78, 0xbc, 0x23, 0x93, 0xc0, 0x6b, 0x1c, 0xe7, 0x0b, 0xd6, 0x02, 0x79, 0x08, 0x2f, 0x0f, 0xdb,
0xf5, 0x43, 0xa6, 0xb4, 0xdf, 0x39, 0x60, 0x51, 0x8f, 0xfb, 0x2a, 0x94, 0x9a, 0x4e, 0xac, 0x55,
0xd6, 0xab, 0xde, 0xea, 0x90, 0xfe, 0x43, 0xa6, 0xf4, 0x2e, 0xe2, 0xf6, 0x43, 0xa9, 0xc9, 0x36,
0xac, 0x8c, 0xb0, 0xc6, 0x4f, 0x85, 0xf6, 0x3b, 0xb2, 0x1f, 0x69, 0x3a, 0x89, 0x76, 0x2e, 0x0f,
0xd9, 0xf9, 0xea, 0xa9, 0xd0, 0xbb, 0x06, 0x41, 0xde, 0x81, 0x8d, 0x11, 0x26, 0x02, 0x1e, 0x6a,
0x66, 0x3c, 0x12, 0x91, 0xaf, 0x45, 0xec, 0x1f, 0x30, 0x75, 0x70, 0x7b, 0x8b, 0x56, 0xd7, 0x2a,
0xeb, 0xb3, 0xde, 0xe7, 0x86, 0xcc, 0xdd, 0x35, 0xf0, 0x5d, 0x83, 0x7e, 0x2c, 0xe2, 0xfb, 0x88,
0x25, 0x5f, 0x80, 0x46, 0xc2, 0xa2, 0x80, 0x49, 0xff, 0x48, 0x9c, 0xa6, 0x06, 0xfe, 0x33, 0x85,
0x16, 0x6a, 0x56, 0xf2, 0x4d, 0x71, 0xea, 0xc0, 0x1b, 0x50, 0x8f, 0xf8, 0xa9, 0xf6, 0x15, 0xe7,
0x41, 0x8a, 0x7d, 0x66, 0xb1, 0xf3, 0x46, 0xb0, 0xcf, 0x79, 0xe0, 0xa0, 0x0a, 0x5e, 0x52, 0x07,
0x2c, 0x09, 0x7c, 0x16, 0x05, 0x7e, 0x47, 0x1e, 0x1d, 0x09, 0xad, 0x39, 0x57, 0x7e, 0x57, 0x26,
0x18, 0x3b, 0x45, 0x3f, 0x9c, 0xc2, 0x63, 0x6a, 0x8d, 0x3b, 0xa6, 0x7d, 0xa3, 0xbe, 0x1d, 0x05,
0xbb, 0xa9, 0xf2, 0x76, 0x92, 0xb0, 0x33, 0xef, 0xb2, 0x1a, 0x5c, 0x57, 0xf7, 0x64, 0x62, 0xe2,
0xac, 0xc8, 0x9b, 0xb0, 0x18, 0xf3, 0x44, 0x09, 0xa5, 0x79, 0xa4, 0x0b, 0xbb, 0xd2, 0x8f, 0xcc,
0x5e, 0x73, 0x3b, 0x13, 0xb4, 0xe2, 0x2d, 0xe4, 0x88, 0xdc, 0x02, 0x79, 0x0f, 0x9a, 0xa3, 0x34,
0xfd, 0x84, 0x33, 0xa5, 0x44, 0x2f, 0x3a, 0xe2, 0x91, 0x56, 0xf4, 0x63, 0xeb, 0xf2, 0xe6, 0x73,
0x5d, 0xf6, 0x0a, 0x2a, 0x2e, 0xc3, 0xd6, 0x46, 0xec, 0x59, 0x84, 0x29, 0x72, 0x07, 0x96, 0xe3,
0x84, 0x1f, 0x0b, 0xd9, 0x57, 0xfe, 0xbb, 0x7d, 0xa5, 0x45, 0x57, 0xf0, 0xc0, 0x26, 0xd9, 0xdf,
0x6a, 0x98, 0x1d, 0x8b, 0xa9, 0xfc, 0xeb, 0xa9, 0x18, 0x73, 0xeb, 0xf3, 0x30, 0x3f, 0x80, 0xff,
0xbb, 0xc5, 0xcf, 0xbd, 0x5b, 0xc2, 0xdd, 0x81, 0xe5, 0x32, 0xce, 0x6f, 0x0b, 0xdd, 0x15, 0x3c,
0x0c, 0xe8, 0x3f, 0xdc, 0x06, 0x25, 0x85, 0x1d, 0x27, 0x35, 0x1b, 0x74, 0x45, 0xc4, 0x42, 0xf1,
0xed, 0x74, 0x83, 0x7f, 0xba, 0x0d, 0xb2, 0x65, 0xdc, 0xe0, 0x6d, 0x68, 0x84, 0x4c, 0x73, 0x53,
0x21, 0x89, 0x54, 0x2a, 0x14, 0xd1, 0xa1, 0xa2, 0x7f, 0x5c, 0x7e, 0x7e, 0x29, 0xee, 0xa6, 0x50,
0x17, 0xa8, 0xba, 0x35, 0x91, 0x2d, 0x2b, 0xb2, 0x03, 0x2b, 0x58, 0x76, 0xca, 0xd4, 0xbb, 0x9f,
0xf0, 0x0e, 0x0b, 0x3b, 0xfd, 0x90, 0x69, 0x21, 0x23, 0xeb, 0xcd, 0x9f, 0x96, 0x6d, 0xf1, 0x18,
0x14, 0x92, 0x82, 0x57, 0xc4, 0xa0, 0x6b, 0xb7, 0x60, 0xc1, 0xb9, 0xd6, 0x0e, 0x65, 0xe7, 0xd0,
0x65, 0xae, 0xa2, 0x7f, 0x36, 0xde, 0xcd, 0x7a, 0xc4, 0x0a, 0x77, 0x8c, 0xcc, 0x66, 0xaf, 0x22,
0x77, 0xe1, 0x25, 0xa7, 0x12, 0xf3, 0xf4, 0xe5, 0xb1, 0x60, 0xdb, 0x2c, 0x64, 0x51, 0x87, 0x2b,
0xfa, 0x17, 0xa3, 0x5c, 0xf5, 0xae, 0x58, 0xd8, 0x5e, 0x8a, 0x32, 0x25, 0xbb, 0xe3, 0x30, 0xa4,
0x0d, 0x17, 0x9d, 0x15, 0xa6, 0xcd, 0x0f, 0xba, 0xa4, 0xe8, 0x5f, 0x6d, 0x54, 0x5e, 0x1b, 0x17,
0x95, 0x3d, 0x1e, 0x05, 0x22, 0xea, 0x6d, 0xe7, 0x3a, 0x2e, 0x3c, 0xce, 0xd3, 0x82, 0x40, 0x91,
0x07, 0x70, 0x2d, 0x4e, 0x64, 0x87, 0x2b, 0xc5, 0x03, 0x3f, 0x96, 0x27, 0x26, 0x46, 0x5c, 0xc4,
0xda, 0x4f, 0xa4, 0xd4, 0x69, 0x91, 0xbe, 0xbf, 0x8a, 0x6f, 0xba, 0x92, 0x21, 0xf7, 0xe4, 0x89,
0x67, 0x71, 0x9e, 0x94, 0xda, 0xd5, 0x6c, 0x1f, 0xae, 0x74, 0x58, 0x14, 0x18, 0xd2, 0xe0, 0x43,
0xa6, 0x14, 0xfd, 0x60, 0x15, 0xdd, 0x7e, 0x7d, 0xec, 0x61, 0xa6, 0xba, 0x7b, 0xf2, 0x9d, 0x82,
0x71, 0xe7, 0x3b, 0xed, 0xe4, 0xe2, 0xe2, 0xde, 0x8a, 0x34, 0x61, 0xb6, 0xc7, 0x23, 0xae, 0x84,
0xf2, 0x0d, 0xdf, 0xd3, 0xef, 0x5f, 0xc7, 0x13, 0x9d, 0x71, 0x8b, 0x8f, 0xc5, 0x11, 0x27, 0x6f,
0xc1, 0x85, 0xae, 0x4c, 0x0e, 0xfd, 0x80, 0x69, 0x46, 0x7f, 0x60, 0x00, 0x33, 0x5b, 0x6b, 0xe3,
0x1c, 0xb9, 0x27, 0x93, 0xc3, 0xbb, 0x4c, 0x33, 0x6f, 0xba, 0xeb, 0xfe, 0x91, 0x87, 0x00, 0x19,
0x1d, 0x2a, 0xfa, 0xc3, 0x47, 0x9f, 0xaa, 0x43, 0x20, 0x6f, 0x14, 0xf4, 0xc9, 0x5b, 0x70, 0x29,
0x67, 0x63, 0xc5, 0xcb, 0x4d, 0xe1, 0x47, 0x8f, 0x8c, 0xfb, 0xa8, 0xb3, 0x94, 0xa1, 0xf6, 0x79,
0xb1, 0x21, 0x3c, 0x04, 0x28, 0x14, 0xc9, 0x8f, 0x1f, 0x7d, 0xaa, 0x22, 0xb1, 0xde, 0xe4, 0xfa,
0xa4, 0x09, 0x90, 0x53, 0x38, 0xfd, 0x89, 0xd9, 0x7e, 0x16, 0x41, 0x17, 0x32, 0xfe, 0x26, 0xdf,
0xab, 0xc0, 0xb5, 0x4f, 0x24, 0x38, 0xfa, 0xd3, 0x47, 0x9f, 0x89, 0xdf, 0x70, 0xb3, 0xd5, 0x4f,
0xe0, 0x38, 0x72, 0xdb, 0x14, 0x83, 0xd2, 0xfe, 0x00, 0x9b, 0xfc, 0x2c, 0x0f, 0x57, 0xc3, 0xc8,
0xef, 0x95, 0x58, 0x25, 0x55, 0x1a, 0xe0, 0xb8, 0x9f, 0x0f, 0x28, 0x95, 0x39, 0xb1, 0x05, 0xf5,
0x02, 0x5e, 0x27, 0x9c, 0x1d, 0xd2, 0x5f, 0xe4, 0x1a, 0xb5, 0x9c, 0xe8, 0x50, 0x66, 0x36, 0xb1,
0x6d, 0xed, 0xa0, 0xdf, 0xed, 0x86, 0x22, 0xea, 0x61, 0x83, 0xa3, 0xbf, 0xcc, 0x23, 0xd9, 0xc0,
0xee, 0x96, 0x8a, 0x4d, 0x9b, 0x23, 0x77, 0xe1, 0x6a, 0xc0, 0x63, 0xa9, 0x84, 0x56, 0x05, 0x8e,
0x10, 0x91, 0x1f, 0xf3, 0x44, 0xc8, 0x80, 0xfe, 0xca, 0xc4, 0xd2, 0x6e, 0x78, 0x29, 0x05, 0x66,
0x2c, 0xf1, 0x20, 0xda, 0x43, 0x14, 0xf9, 0x0a, 0xe4, 0x5d, 0xdf, 0xb5, 0x73, 0x53, 0xb2, 0xb6,
0xa7, 0xd3, 0x5f, 0xe7, 0x1e, 0x2c, 0x67, 0x30, 0xec, 0xe2, 0xa6, 0x62, 0xb1, 0x93, 0x93, 0x9b,
0x50, 0xef, 0xf4, 0x93, 0xc4, 0x9c, 0x2a, 0x12, 0x94, 0xe2, 0x4f, 0xe9, 0x6f, 0xf2, 0x97, 0x9d,
0x77, 0x42, 0xc3, 0x4b, 0xfb, 0xfc, 0x29, 0x79, 0x13, 0x96, 0x0e, 0x23, 0x79, 0x12, 0x0d, 0xd5,
0x37, 0xfd, 0x6d, 0xbe, 0xd9, 0x45, 0x84, 0x94, 0xeb, 0xd4, 0xb8, 0x3a, 0x9e, 0x1d, 0xe8, 0xef,
0x0a, 0xae, 0x8e, 0xa9, 0x74, 0xf2, 0x0d, 0x58, 0x1b, 0x6f, 0xc1, 0x3f, 0x96, 0x9a, 0x2b, 0xfa,
0xfb, 0xdc, 0xf5, 0xab, 0x63, 0xec, 0x3c, 0x31, 0x40, 0xc2, 0x61, 0x21, 0xb6, 0x3c, 0x59, 0x26,
0xd7, 0x0f, 0x6c, 0x0e, 0xdf, 0x1c, 0x97, 0xc3, 0xdb, 0xbd, 0x5e, 0xc2, 0x7b, 0x4c, 0xf3, 0xa0,
0x40, 0xa3, 0xf6, 0xad, 0xe3, 0x21, 0xde, 0x55, 0xcd, 0xef, 0xc0, 0x74, 0x4a, 0x27, 0x64, 0x1d,
0xea, 0x71, 0xc2, 0x7d, 0x24, 0xa2, 0x63, 0x93, 0xed, 0x32, 0xa2, 0x15, 0xe4, 0xaa, 0xf9, 0x38,
0xe1, 0x06, 0xf6, 0xc4, 0xae, 0x92, 0x57, 0xa1, 0x11, 0x4b, 0x93, 0xeb, 0x45, 0xa8, 0x9d, 0x16,
0x6b, 0x46, 0x50, 0xc4, 0x5e, 0x71, 0xd4, 0x86, 0x89, 0x6d, 0x27, 0x41, 0xe4, 0x2d, 0x93, 0xca,
0xcd, 0xef, 0xc2, 0xca, 0x73, 0x69, 0x95, 0xdc, 0x87, 0x6b, 0xcf, 0x89, 0xa9, 0xa3, 0xff, 0x0a,
0x8e, 0x68, 0x2b, 0x63, 0xe2, 0xe9, 0xd8, 0x7f, 0x01, 0xce, 0xd9, 0x23, 0xb0, 0x7e, 0xda, 0x87,
0xe6, 0xbf, 0x2a, 0x40, 0xc7, 0xf5, 0x23, 0xf2, 0x25, 0xa8, 0x22, 0x21, 0x57, 0x90, 0x8f, 0xc7,
0x12, 0x58, 0x41, 0x11, 0x69, 0x19, 0x95, 0xc8, 0xeb, 0xb0, 0x14, 0xb3, 0x44, 0x8b, 0x8e, 0x88,
0x6d, 0x3b, 0xcf, 0x06, 0x92, 0x09, 0x74, 0x77, 0xb1, 0x24, 0xcd, 0xe6, 0x91, 0x0d, 0x93, 0xef,
0x4a, 0xcb, 0xe0, 0x2c, 0x57, 0x98, 0xb4, 0xe3, 0xaa, 0x5b, 0xcf, 0xa0, 0x2f, 0xc3, 0x1c, 0x4e,
0x3a, 0x22, 0xea, 0x84, 0xfd, 0x80, 0x07, 0x38, 0x18, 0x57, 0xbd, 0x59, 0xb3, 0xf8, 0xc0, 0xad,
0x35, 0xff, 0x3d, 0x01, 0xb5, 0x01, 0x07, 0x09, 0x81, 0x2a, 0x9e, 0x86, 0x3d, 0x5c, 0xfc, 0x6f,
0xc2, 0x83, 0x93, 0x67, 0x1a, 0x1e, 0x7c, 0x20, 0x2d, 0xb8, 0x68, 0xdf, 0xb5, 0x34, 0x5a, 0x38,
0x87, 0x1a, 0x56, 0x54, 0x18, 0x2c, 0xc8, 0x16, 0x2c, 0xf2, 0x58, 0x76, 0x0e, 0xfc, 0xb6, 0xec,
0x47, 0x01, 0x4b, 0xce, 0xca, 0x33, 0xfb, 0x45, 0x14, 0xee, 0x38, 0x99, 0xd3, 0xb9, 0x01, 0xc4,
0x8e, 0xd2, 0xa5, 0x2d, 0xce, 0xa1, 0x42, 0x1d, 0x25, 0xc5, 0x1d, 0xde, 0x80, 0xe5, 0xc1, 0x39,
0x2c, 0x55, 0x39, 0x6f, 0xe3, 0x3a, 0x30, 0x63, 0x39, 0xbd, 0x57, 0x86, 0x06, 0xc9, 0xa9, 0x51,
0x73, 0xe4, 0x17, 0x61, 0x29, 0x87, 0x95, 0x1c, 0x9a, 0x46, 0xeb, 0x0b, 0x99, 0xb4, 0xe0, 0x54,
0xf3, 0x0f, 0x13, 0x50, 0x1b, 0x68, 0xaa, 0x64, 0x09, 0xce, 0xc7, 0xfd, 0xf6, 0x21, 0x3f, 0x73,
0xe9, 0xe9, 0x9e, 0xcc, 0x01, 0x9f, 0x08, 0x7d, 0x10, 0x24, 0xec, 0x84, 0x85, 0x7e, 0x31, 0xe6,
0xb5, 0x7c, 0x1d, 0x3b, 0x11, 0xb9, 0x09, 0xa4, 0x00, 0x65, 0x41, 0x90, 0x70, 0xa5, 0xd2, 0xe0,
0xe7, 0x92, 0x6d, 0x2b, 0x28, 0xdc, 0x75, 0x6c, 0xff, 0xc3, 0x9e, 0x67, 0x03, 0x5f, 0xb7, 0x82,
0xdd, 0x6c, 0x9d, 0x50, 0x98, 0x72, 0xb3, 0x1e, 0x86, 0xba, 0xea, 0xa5, 0x8f, 0xc6, 0x71, 0x93,
0x2c, 0x7d, 0x85, 0x01, 0xad, 0x7a, 0xee, 0xc9, 0x14, 0xb2, 0x65, 0xe0, 0x3c, 0x78, 0xd3, 0x66,
0x01, 0xe3, 0x76, 0x03, 0x88, 0xdb, 0xbb, 0x70, 0x8b, 0xc4, 0x98, 0x55, 0xd3, 0xcd, 0xf3, 0x5b,
0x63, 0x33, 0x84, 0xe5, 0x31, 0xbd, 0x96, 0x5c, 0x87, 0x5a, 0xde, 0x31, 0x44, 0x14, 0xf0, 0x53,
0x8c, 0xdf, 0x9c, 0x37, 0x9f, 0x2d, 0x3f, 0x30, 0xab, 0x63, 0x12, 0x36, 0x4d, 0xed, 0xc9, 0x3c,
0xb5, 0x9b, 0xcf, 0x26, 0x60, 0x71, 0x24, 0x2d, 0x92, 0xa5, 0x62, 0x21, 0x20, 0x49, 0xda, 0x62,
0xa0, 0x25, 0xdb, 0x28, 0x70, 0xf6, 0x37, 0x86, 0xd2, 0x68, 0x32, 0x83, 0x0c, 0xa5, 0xd2, 0xc2,
0xa8, 0x54, 0xb2, 0x27, 0x82, 0x0a, 0x64, 0x38, 0x99, 0xc8, 0x0d, 0xa8, 0x0f, 0x56, 0x83, 0xad,
0x05, 0xdb, 0xee, 0xca, 0xf5, 0x40, 0x36, 0xa1, 0x61, 0xbb, 0x03, 0x4f, 0x72, 0xba, 0x38, 0x9f,
0xc1, 0xeb, 0xa9, 0x30, 0xe3, 0x8c, 0x37, 0x60, 0x51, 0xb6, 0x43, 0xf1, 0xb4, 0xcf, 0xfd, 0x98,
0x61, 0x57, 0x35, 0x3b, 0x70, 0x45, 0xcd, 0xd5, 0xcf, 0x75, 0x47, 0x07, 0xd8, 0x43, 0xf9, 0x7d,
0x14, 0x93, 0xeb, 0x30, 0xc7, 0xd2, 0x10, 0xfa, 0x4a, 0xf4, 0xe8, 0x74, 0xd6, 0xfe, 0x67, 0x33,
0xc1, 0xbe, 0xe8, 0x35, 0xef, 0xc0, 0xdc, 0x7e, 0xcc, 0x3b, 0x82, 0x85, 0xee, 0x40, 0x09, 0x54,
0x0f, 0x45, 0x14, 0xb8, 0x53, 0xc4, 0xff, 0x66, 0x0d, 0x89, 0x75, 0x02, 0xc7, 0x76, 0xfc, 0xdf,
0xfc, 0x16, 0xd4, 0x06, 0x26, 0x41, 0xd3, 0x90, 0x86, 0x62, 0x61, 0x8b, 0x69, 0x30, 0x0e, 0xe9,
0xb1, 0x4f, 0x14, 0x8e, 0xfd, 0x3d, 0x58, 0x1a, 0x7d, 0xc7, 0x26, 0x01, 0x5c, 0x62, 0xe6, 0x8f,
0x3f, 0xe2, 0x0a, 0xef, 0xbe, 0xae, 0x6c, 0xbc, 0xf0, 0xb5, 0xdd, 0x5b, 0x42, 0x5b, 0x43, 0xeb,
0xcd, 0xaf, 0x41, 0x63, 0x68, 0x31, 0xcf, 0xda, 0x4a, 0x31, 0x6b, 0xaf, 0xc2, 0x85, 0xdc, 0x01,
0x13, 0x94, 0x39, 0x2f, 0x5f, 0x68, 0xbe, 0x7f, 0x2e, 0xfd, 0x2a, 0x84, 0x2f, 0x3c, 0x92, 0xbe,
0x5f, 0x83, 0x05, 0x57, 0x7f, 0x09, 0x3f, 0xe6, 0x2c, 0x4c, 0x59, 0xcb, 0xf6, 0x1a, 0x57, 0x9b,
0x1e, 0x8a, 0x1c, 0x21, 0xbe, 0x50, 0x67, 0x9d, 0x7c, 0x91, 0xce, 0xba, 0x01, 0x75, 0xbc, 0x0f,
0x9a, 0x8a, 0x4d, 0xef, 0x9e, 0x55, 0x3c, 0xd9, 0x5a, 0xba, 0x9e, 0xde, 0x3b, 0x5f, 0x85, 0x86,
0xbb, 0xe9, 0x16, 0x36, 0xb1, 0x54, 0x5f, 0x43, 0x41, 0xc1, 0xec, 0xdb, 0x30, 0x5b, 0x9a, 0x7c,
0xce, 0x7f, 0xd6, 0xc1, 0xa7, 0x64, 0x86, 0x6c, 0xc3, 0xb4, 0xb2, 0x09, 0x6a, 0x93, 0x7e, 0x66,
0xeb, 0x95, 0xb1, 0x67, 0x5d, 0x4c, 0x64, 0x2f, 0x53, 0x33, 0xbc, 0x1c, 0x27, 0x32, 0x96, 0x8a,
0x27, 0xa6, 0x16, 0x22, 0xa6, 0xfb, 0x09, 0xc7, 0x8a, 0x98, 0xf5, 0x1a, 0xa9, 0x64, 0x3f, 0x15,
0x90, 0x1b, 0x50, 0x2b, 0xc5, 0x87, 0x2b, 0xfa, 0x2c, 0x2f, 0xb7, 0xf9, 0x62, 0x8c, 0xb8, 0x22,
0xeb, 0x30, 0x57, 0x3a, 0x49, 0xfa, 0xe1, 0x54, 0x56, 0xcf, 0xb3, 0xc5, 0x73, 0x34, 0x35, 0x69,
0xce, 0xcd, 0x7e, 0x1f, 0x4b, 0x78, 0x97, 0x7e, 0x94, 0x23, 0x67, 0x62, 0x79, 0x82, 0x03, 0xb4,
0xc7, 0xbb, 0xe6, 0x06, 0x95, 0x47, 0x9d, 0x7e, 0x9c, 0xa3, 0x2e, 0x64, 0x31, 0x27, 0x5f, 0x86,
0x0b, 0xd9, 0xd7, 0x48, 0xfa, 0xdf, 0x29, 0x9c, 0x78, 0x2e, 0xb7, 0xec, 0x07, 0xcb, 0x56, 0xfa,
0xc1, 0xb2, 0xf5, 0x38, 0x85, 0x58, 0xf5, 0x4c, 0xa3, 0x7d, 0x1e, 0x21, 0xb7, 0xff, 0x1f, 0x00,
0x00, 0xff, 0xff, 0xe7, 0x68, 0x24, 0xbd, 0x1c, 0x15, 0x00, 0x00,
0x11, 0x0e, 0x48, 0x8a, 0x47, 0xf3, 0x00, 0x30, 0x22, 0xc1, 0x11, 0x25, 0x5a, 0x14, 0x1c, 0x47,
0xa4, 0x23, 0x41, 0x36, 0x15, 0x5b, 0x72, 0xa5, 0xe2, 0x0a, 0x49, 0x45, 0x91, 0x12, 0x45, 0x61,
0x2d, 0x64, 0xb9, 0x2a, 0x2f, 0x5b, 0x83, 0xdd, 0x01, 0x38, 0xe6, 0x72, 0x67, 0x35, 0x33, 0xe0,
0x91, 0xaa, 0x38, 0x79, 0x4d, 0x9e, 0x72, 0x3b, 0x77, 0x95, 0xfd, 0x2f, 0x72, 0xfd, 0x88, 0x1c,
0xcf, 0x79, 0xc8, 0x5b, 0x64, 0x3b, 0xf9, 0x0b, 0xa9, 0x39, 0xf6, 0xc2, 0x21, 0xcb, 0x7e, 0x02,
0x76, 0xfa, 0xeb, 0x9e, 0xde, 0x9e, 0xee, 0xaf, 0x7b, 0x16, 0xe6, 0xd5, 0x59, 0x42, 0x65, 0x2b,
0x11, 0x5c, 0x71, 0xd4, 0xa0, 0xea, 0x80, 0x0a, 0xda, 0x3f, 0x6a, 0x75, 0x28, 0x09, 0x78, 0xdc,
0x4a, 0xb6, 0x93, 0xd6, 0xf1, 0xab, 0x6b, 0x97, 0x7b, 0x9c, 0xf7, 0x22, 0x7a, 0xc3, 0xa0, 0x3a,
0xfd, 0xee, 0x0d, 0xc5, 0x8e, 0xa8, 0x54, 0xe4, 0x28, 0xb1, 0x8a, 0xcd, 0xff, 0x2d, 0xc3, 0xfc,
0xae, 0x51, 0x69, 0x2b, 0xa2, 0x28, 0x7a, 0x0c, 0xe8, 0x98, 0x44, 0x2c, 0x24, 0x8a, 0x0b, 0x5f,
0xd0, 0x1e, 0x93, 0x4a, 0x9c, 0xe1, 0xca, 0xc6, 0xe4, 0xe6, 0xfc, 0xf6, 0xd5, 0xd6, 0xe8, 0x5d,
0x5a, 0x8f, 0x53, 0x0d, 0x8f, 0x06, 0x5c, 0x84, 0x5e, 0xfd, 0x38, 0x5f, 0xb0, 0x16, 0xd0, 0x03,
0x78, 0x71, 0xd8, 0xae, 0x1f, 0x11, 0xa9, 0xfc, 0xe0, 0x80, 0xc4, 0x3d, 0xea, 0xcb, 0x88, 0x2b,
0x3c, 0xb1, 0x51, 0xd9, 0x9c, 0xf2, 0x2e, 0x0f, 0xe9, 0x3f, 0x20, 0x52, 0xed, 0x19, 0x5c, 0x3b,
0xe2, 0x0a, 0xed, 0xc0, 0xfa, 0x08, 0x6b, 0xf4, 0x94, 0x29, 0x3f, 0xe0, 0xfd, 0x58, 0xe1, 0x49,
0x63, 0x67, 0x6d, 0xc8, 0xce, 0xd7, 0x4e, 0x99, 0xda, 0xd3, 0x08, 0xf4, 0x36, 0x6c, 0x8d, 0x30,
0x11, 0xd2, 0x48, 0x11, 0xed, 0x11, 0x8b, 0x7d, 0xc5, 0x12, 0xff, 0x80, 0xc8, 0x83, 0x9b, 0xdb,
0x78, 0x6a, 0xa3, 0xb2, 0xb9, 0xe0, 0x7d, 0x7e, 0xc8, 0xdc, 0x1d, 0x0d, 0xdf, 0xd3, 0xe8, 0x47,
0x2c, 0xb9, 0x67, 0xb0, 0xe8, 0x8b, 0x50, 0x17, 0x24, 0x0e, 0x09, 0xf7, 0x8f, 0xd8, 0x69, 0x6a,
0xe0, 0x3f, 0x33, 0xc6, 0x42, 0xd5, 0x4a, 0xbe, 0xc5, 0x4e, 0x1d, 0x78, 0x0b, 0x6a, 0x31, 0x3d,
0x55, 0xbe, 0xa4, 0x34, 0x4c, 0xb1, 0x4f, 0x2d, 0x76, 0x49, 0x0b, 0xda, 0x94, 0x86, 0x0e, 0x2a,
0xe1, 0x05, 0x79, 0x40, 0x44, 0xe8, 0x93, 0x38, 0xf4, 0x03, 0x7e, 0x74, 0xc4, 0x94, 0xa2, 0x54,
0xfa, 0x5d, 0x2e, 0x4c, 0xec, 0x24, 0xfe, 0x70, 0xc6, 0x1c, 0x53, 0x6b, 0xdc, 0x31, 0xb5, 0xb5,
0xfa, 0x4e, 0x1c, 0xee, 0xa5, 0xca, 0x3b, 0x42, 0x90, 0x33, 0x6f, 0x4d, 0x0e, 0xae, 0xcb, 0xbb,
0x5c, 0xe8, 0x38, 0x4b, 0x74, 0x1b, 0x56, 0x12, 0x2a, 0x24, 0x93, 0x8a, 0xc6, 0xaa, 0xb0, 0x2b,
0xfe, 0x48, 0xef, 0xb5, 0xb8, 0x3b, 0x81, 0x2b, 0xde, 0x72, 0x8e, 0xc8, 0x2d, 0xa0, 0x77, 0xa1,
0x39, 0x4a, 0xd3, 0x17, 0x94, 0x48, 0xc9, 0x7a, 0xf1, 0x11, 0x8d, 0x95, 0xc4, 0x1f, 0x5b, 0x97,
0x6f, 0x3c, 0xd3, 0x65, 0xaf, 0xa0, 0xe2, 0x32, 0x6c, 0x63, 0xc4, 0x9e, 0x45, 0x98, 0x44, 0xb7,
0x60, 0x35, 0x11, 0xf4, 0x98, 0xf1, 0xbe, 0xf4, 0xdf, 0xe9, 0x4b, 0xc5, 0xba, 0x8c, 0x86, 0x36,
0xc9, 0xfe, 0x56, 0x35, 0xd9, 0xb1, 0x92, 0xca, 0xbf, 0x91, 0x8a, 0x4d, 0x6e, 0x7d, 0x01, 0x96,
0x06, 0xf0, 0x7f, 0xb7, 0xf8, 0xc5, 0x77, 0x4a, 0xb8, 0x5b, 0xb0, 0x5a, 0xc6, 0xf9, 0x1d, 0xa6,
0xba, 0x8c, 0x46, 0x21, 0xfe, 0x87, 0xdb, 0xa0, 0xa4, 0xb0, 0xeb, 0xa4, 0x7a, 0x83, 0x2e, 0x8b,
0x49, 0xc4, 0xbe, 0x9b, 0x6e, 0xf0, 0x4f, 0xb7, 0x41, 0xb6, 0x6c, 0x36, 0x78, 0x0b, 0xea, 0x11,
0x51, 0x54, 0x57, 0x88, 0xe0, 0x52, 0x46, 0x2c, 0x3e, 0x94, 0xf8, 0x8f, 0xab, 0xcf, 0x2e, 0xc5,
0xbd, 0x14, 0xea, 0x02, 0x55, 0xb3, 0x26, 0xb2, 0x65, 0x89, 0x76, 0x61, 0xdd, 0x94, 0x9d, 0xd4,
0xf5, 0xee, 0x0b, 0x1a, 0x90, 0x28, 0xe8, 0x47, 0x44, 0x31, 0x1e, 0x5b, 0x6f, 0xfe, 0xb4, 0x6a,
0x8b, 0x47, 0xa3, 0x0c, 0x29, 0x78, 0x45, 0x8c, 0x71, 0xed, 0x55, 0x58, 0x76, 0xae, 0x75, 0x22,
0x1e, 0x1c, 0xba, 0xcc, 0x95, 0xf8, 0xcf, 0xda, 0xbb, 0x05, 0x0f, 0x59, 0xe1, 0xae, 0x96, 0xd9,
0xec, 0x95, 0xe8, 0x0e, 0xbc, 0xe0, 0x54, 0x12, 0x9a, 0xbe, 0xbc, 0x29, 0xd8, 0x0e, 0x89, 0x48,
0x1c, 0x50, 0x89, 0xff, 0xa2, 0x95, 0xa7, 0xbc, 0x8b, 0x16, 0xb6, 0x9f, 0xa2, 0x74, 0xc9, 0xee,
0x3a, 0x0c, 0xea, 0xc0, 0x79, 0x67, 0x85, 0x28, 0xfd, 0x63, 0x5c, 0x92, 0xf8, 0xaf, 0x36, 0x2a,
0xaf, 0x8c, 0x8b, 0xca, 0x3e, 0x8d, 0x43, 0x16, 0xf7, 0x76, 0x72, 0x1d, 0x17, 0x1e, 0xe7, 0x69,
0x41, 0x20, 0xd1, 0x7d, 0xb8, 0x92, 0x08, 0x1e, 0x50, 0x29, 0x69, 0xe8, 0x27, 0xfc, 0x44, 0xc7,
0x88, 0xb2, 0x44, 0xf9, 0x82, 0x73, 0x95, 0x16, 0xe9, 0xfb, 0x97, 0xcd, 0x9b, 0xae, 0x67, 0xc8,
0x7d, 0x7e, 0xe2, 0x59, 0x9c, 0xc7, 0xb9, 0x72, 0x35, 0xdb, 0x87, 0x8b, 0x01, 0x89, 0x43, 0x4d,
0x1a, 0x74, 0xc8, 0x94, 0xc4, 0x1f, 0x5c, 0x36, 0x6e, 0xbf, 0x36, 0xf6, 0x30, 0x53, 0xdd, 0x7d,
0xfe, 0x76, 0xc1, 0xb8, 0xf3, 0x1d, 0x07, 0xb9, 0xb8, 0xb8, 0xb7, 0x44, 0x4d, 0x58, 0xe8, 0xd1,
0x98, 0x4a, 0x26, 0x7d, 0xcd, 0xf7, 0xf8, 0x87, 0x57, 0xcd, 0x89, 0xce, 0xbb, 0xc5, 0x47, 0xec,
0x88, 0xa2, 0x37, 0x61, 0xae, 0xcb, 0xc5, 0xa1, 0x1f, 0x12, 0x45, 0xf0, 0x8f, 0x34, 0x60, 0x7e,
0x7b, 0x63, 0x9c, 0x23, 0x77, 0xb9, 0x38, 0xbc, 0x43, 0x14, 0xf1, 0x66, 0xbb, 0xee, 0x1f, 0x7a,
0x00, 0x90, 0xd1, 0xa1, 0xc4, 0x3f, 0x7e, 0xf8, 0xa9, 0x3a, 0x84, 0xe1, 0x8d, 0x82, 0x3e, 0x7a,
0x13, 0x2e, 0xe4, 0x6c, 0x2c, 0x69, 0xb9, 0x29, 0xfc, 0xe4, 0xa1, 0x76, 0xdf, 0xe8, 0x34, 0x32,
0x54, 0x9b, 0x16, 0x1b, 0xc2, 0x03, 0x80, 0x42, 0x91, 0xfc, 0xf4, 0xe1, 0xa7, 0x2a, 0x12, 0xeb,
0x4d, 0xae, 0x8f, 0x9a, 0x00, 0x39, 0x85, 0xe3, 0x9f, 0xe9, 0xed, 0x17, 0x0c, 0x68, 0x2e, 0xe3,
0x6f, 0xf4, 0x83, 0x0a, 0x5c, 0xf9, 0x44, 0x82, 0xc3, 0x3f, 0x7f, 0xf8, 0x99, 0xf8, 0xcd, 0x6c,
0x76, 0xf9, 0x13, 0x38, 0x0e, 0xdd, 0xd4, 0xc5, 0x20, 0x95, 0x3f, 0xc0, 0x26, 0xbf, 0xc8, 0xc3,
0x55, 0xd7, 0xf2, 0xbb, 0x25, 0x56, 0x49, 0x95, 0x06, 0x38, 0xee, 0x97, 0x03, 0x4a, 0x65, 0x4e,
0x6c, 0x41, 0xad, 0x80, 0x57, 0x82, 0x92, 0x43, 0xfc, 0x5e, 0xae, 0x51, 0xcd, 0x89, 0xce, 0xc8,
0xf4, 0x26, 0xb6, 0xad, 0x1d, 0xf4, 0xbb, 0xdd, 0x88, 0xc5, 0x3d, 0xd3, 0xe0, 0xf0, 0xaf, 0xf2,
0x48, 0xd6, 0x4d, 0x77, 0x4b, 0xc5, 0xba, 0xcd, 0xa1, 0x3b, 0x70, 0x29, 0xa4, 0x09, 0x97, 0x4c,
0xc9, 0x02, 0x47, 0xb0, 0xd8, 0x4f, 0xa8, 0x60, 0x3c, 0xc4, 0xbf, 0xd6, 0xb1, 0xb4, 0x1b, 0x5e,
0x48, 0x81, 0x19, 0x4b, 0xdc, 0x8f, 0xf7, 0x0d, 0x0a, 0x7d, 0x15, 0xf2, 0xae, 0xef, 0xda, 0xb9,
0x2e, 0x59, 0xdb, 0xd3, 0xf1, 0x6f, 0x72, 0x0f, 0x56, 0x33, 0x98, 0xe9, 0xe2, 0xba, 0x62, 0x4d,
0x27, 0x47, 0xd7, 0xa1, 0x16, 0xf4, 0x85, 0xd0, 0xa7, 0x6a, 0x08, 0x4a, 0xd2, 0x27, 0xf8, 0xb7,
0xf9, 0xcb, 0x2e, 0x39, 0xa1, 0xe6, 0xa5, 0x36, 0x7d, 0x82, 0x6e, 0x43, 0xe3, 0x30, 0xe6, 0x27,
0xf1, 0x50, 0x7d, 0xe3, 0xdf, 0xe5, 0x9b, 0x9d, 0x37, 0x90, 0x72, 0x9d, 0x6a, 0x57, 0xc7, 0xb3,
0x03, 0xfe, 0x7d, 0xc1, 0xd5, 0x31, 0x95, 0x8e, 0xbe, 0x09, 0x1b, 0xe3, 0x2d, 0xf8, 0xc7, 0x5c,
0x51, 0x89, 0xff, 0x90, 0xbb, 0x7e, 0x69, 0x8c, 0x9d, 0xc7, 0x1a, 0x88, 0x28, 0x2c, 0x27, 0x96,
0x27, 0xcb, 0xe4, 0xfa, 0x81, 0xcd, 0xe1, 0xeb, 0xe3, 0x72, 0x78, 0xa7, 0xd7, 0x13, 0xb4, 0x47,
0x14, 0x0d, 0x0b, 0x34, 0x6a, 0xdf, 0x3a, 0x19, 0xe2, 0x5d, 0xd9, 0xfc, 0x1e, 0xcc, 0xa6, 0x74,
0x82, 0x36, 0xa1, 0x96, 0x08, 0xea, 0x1b, 0x22, 0x3a, 0xd6, 0xd9, 0xce, 0x63, 0x5c, 0x31, 0x5c,
0xb5, 0x94, 0x08, 0xaa, 0x61, 0x8f, 0xed, 0x2a, 0x7a, 0x19, 0xea, 0x09, 0xd7, 0xb9, 0x5e, 0x84,
0xda, 0x69, 0xb1, 0xaa, 0x05, 0x45, 0xec, 0x45, 0x47, 0x6d, 0x26, 0xb1, 0xed, 0x24, 0x68, 0x78,
0x4b, 0xa7, 0x72, 0xf3, 0xfb, 0xb0, 0xfe, 0x4c, 0x5a, 0x45, 0xf7, 0xe0, 0xca, 0x33, 0x62, 0xea,
0xe8, 0xbf, 0x62, 0x46, 0xb4, 0xf5, 0x31, 0xf1, 0x74, 0xec, 0xbf, 0x0c, 0xe7, 0xec, 0x11, 0x58,
0x3f, 0xed, 0x43, 0xf3, 0x5f, 0x15, 0xc0, 0xe3, 0xfa, 0x11, 0xfa, 0x32, 0x4c, 0x19, 0x42, 0xae,
0x18, 0x3e, 0x1e, 0x4b, 0x60, 0x05, 0x45, 0x43, 0xcb, 0x46, 0x09, 0xbd, 0x06, 0x8d, 0x84, 0x08,
0xc5, 0x02, 0x96, 0xd8, 0x76, 0x9e, 0x0d, 0x24, 0x13, 0xc6, 0xdd, 0x95, 0x92, 0x34, 0x9b, 0x47,
0xb6, 0x74, 0xbe, 0x4b, 0xc5, 0xc3, 0xb3, 0x5c, 0x61, 0xd2, 0x8e, 0xab, 0x6e, 0x3d, 0x83, 0xbe,
0x08, 0x8b, 0x66, 0xd2, 0x61, 0x71, 0x10, 0xf5, 0x43, 0x1a, 0x9a, 0xc1, 0x78, 0xca, 0x5b, 0xd0,
0x8b, 0xf7, 0xdd, 0x5a, 0xf3, 0xdf, 0x13, 0x50, 0x1d, 0x70, 0x10, 0x21, 0x98, 0x32, 0xa7, 0x61,
0x0f, 0xd7, 0xfc, 0xd7, 0xe1, 0x31, 0x93, 0x67, 0x1a, 0x1e, 0xf3, 0x80, 0x5a, 0x70, 0xde, 0xbe,
0x6b, 0x69, 0xb4, 0x70, 0x0e, 0xd5, 0xad, 0xa8, 0x30, 0x58, 0xa0, 0x6d, 0x58, 0xa1, 0x09, 0x0f,
0x0e, 0xfc, 0x0e, 0xef, 0xc7, 0x21, 0x11, 0x67, 0xe5, 0x99, 0xfd, 0xbc, 0x11, 0xee, 0x3a, 0x99,
0xd3, 0xb9, 0x06, 0xc8, 0x8e, 0xd2, 0xa5, 0x2d, 0xce, 0x19, 0x85, 0x9a, 0x91, 0x14, 0x77, 0x78,
0x1d, 0x56, 0x07, 0xe7, 0xb0, 0x54, 0x65, 0xda, 0xc6, 0x75, 0x60, 0xc6, 0x72, 0x7a, 0x2f, 0x0d,
0x0d, 0x92, 0x33, 0xa3, 0xe6, 0xc8, 0x2f, 0x41, 0x23, 0x87, 0x95, 0x1c, 0x9a, 0x35, 0xd6, 0x97,
0x33, 0x69, 0xc1, 0xa9, 0xe6, 0x7b, 0x53, 0x50, 0x1d, 0x68, 0xaa, 0xa8, 0x01, 0xd3, 0x49, 0xbf,
0x73, 0x48, 0xcf, 0x5c, 0x7a, 0xba, 0x27, 0x9d, 0x17, 0x27, 0x4c, 0x1d, 0x84, 0x82, 0x9c, 0x90,
0xc8, 0x0f, 0x04, 0x0d, 0x69, 0xac, 0x18, 0x89, 0x64, 0x9a, 0x17, 0xb9, 0x74, 0x2f, 0x17, 0xa2,
0xdb, 0x80, 0x5d, 0x17, 0xb4, 0xcd, 0x4d, 0xf7, 0x9c, 0xf2, 0x71, 0x34, 0xac, 0x7c, 0x2f, 0x13,
0xbb, 0x37, 0xbf, 0x02, 0x0b, 0x4e, 0x53, 0x1e, 0xb2, 0x44, 0xba, 0x2c, 0x99, 0xb7, 0x6b, 0x6d,
0xbd, 0x84, 0x30, 0xcc, 0xb8, 0xc1, 0xcf, 0xc4, 0x7d, 0xca, 0x4b, 0x1f, 0xd1, 0x77, 0x60, 0x5e,
0x67, 0x4e, 0x5f, 0xfa, 0x01, 0x0f, 0xa9, 0x09, 0xf1, 0xd2, 0xf6, 0x1b, 0xcf, 0x39, 0x58, 0x98,
0x67, 0x33, 0x1e, 0xe8, 0xc1, 0x75, 0x8f, 0x87, 0xd4, 0x03, 0x6b, 0x4d, 0xff, 0x47, 0x6f, 0xc0,
0x05, 0x77, 0x94, 0xe9, 0x16, 0x85, 0x31, 0xc3, 0x9e, 0x4e, 0xc3, 0x02, 0xda, 0x56, 0x29, 0x9f,
0x30, 0xd6, 0x01, 0x0a, 0xf7, 0xcb, 0x59, 0x83, 0x9d, 0xa3, 0xd9, 0x75, 0x72, 0x0d, 0xa6, 0xad,
0x49, 0x3c, 0x97, 0xd1, 0xad, 0x5b, 0x69, 0x46, 0x50, 0x1f, 0x72, 0x0b, 0x35, 0x00, 0x65, 0x6c,
0x1b, 0x28, 0x76, 0x6c, 0x6a, 0xa5, 0xf6, 0x39, 0x04, 0x30, 0x6d, 0x9e, 0x69, 0xad, 0x82, 0xd6,
0xa0, 0xa1, 0x77, 0xa0, 0xa1, 0xaf, 0x4f, 0x88, 0xf7, 0xdd, 0xec, 0xac, 0xce, 0x6a, 0x13, 0x68,
0x15, 0xce, 0x17, 0x64, 0x99, 0x60, 0xb2, 0x19, 0xc1, 0xea, 0x98, 0xa9, 0x02, 0x5d, 0x85, 0x6a,
0xde, 0x1b, 0x59, 0x1c, 0xd2, 0x53, 0x93, 0x29, 0x8b, 0xde, 0x52, 0xb6, 0x7c, 0x5f, 0xaf, 0x8e,
0x29, 0xcd, 0xb4, 0x88, 0x27, 0xf3, 0x22, 0x6e, 0x3e, 0x9d, 0x80, 0x95, 0x91, 0x0d, 0x00, 0x35,
0x8a, 0x25, 0x6f, 0xe2, 0x61, 0xcb, 0x1e, 0x97, 0x6c, 0x1b, 0x81, 0xb3, 0xbf, 0x35, 0x54, 0x30,
0x93, 0x19, 0x64, 0xa8, 0x68, 0x96, 0x47, 0x15, 0x8d, 0x2d, 0x7a, 0xa3, 0x80, 0x86, 0xcb, 0x06,
0x5d, 0x83, 0xda, 0x60, 0xdd, 0xdb, 0xaa, 0xb7, 0x8d, 0xbd, 0x5c, 0xf9, 0xe8, 0x06, 0xd4, 0x6d,
0x1f, 0xa4, 0x22, 0x27, 0xc6, 0xe9, 0x0c, 0x5e, 0x4b, 0x85, 0x19, 0x3b, 0xbe, 0x0e, 0x2b, 0xbc,
0x13, 0xb1, 0x27, 0x7d, 0xea, 0x27, 0x44, 0xa4, 0xd5, 0x42, 0x25, 0xd6, 0x97, 0x5c, 0x37, 0x07,
0x38, 0xc0, 0xbe, 0x91, 0xdf, 0x33, 0x62, 0x74, 0x15, 0x16, 0x49, 0x1a, 0x42, 0x5f, 0xb2, 0x1e,
0x9e, 0xcd, 0x06, 0x9d, 0x85, 0x4c, 0xd0, 0x66, 0xbd, 0xe6, 0x2d, 0x58, 0x6c, 0x27, 0x34, 0x60,
0x24, 0x72, 0x07, 0x8a, 0x60, 0xea, 0x90, 0xc5, 0xa1, 0x3b, 0x45, 0xf3, 0x5f, 0xaf, 0x99, 0x16,
0x32, 0x61, 0x2e, 0x28, 0xe6, 0x7f, 0xf3, 0xdb, 0x50, 0x1d, 0x98, 0x79, 0x75, 0xeb, 0x1d, 0x8a,
0x85, 0xa5, 0x8d, 0xc1, 0x38, 0xa4, 0xc7, 0x3e, 0x51, 0x38, 0xf6, 0x77, 0xa1, 0x31, 0xfa, 0x6b,
0x02, 0x0a, 0xe1, 0x02, 0xd1, 0x7f, 0xfc, 0x11, 0x1f, 0x2b, 0xdc, 0x77, 0xa4, 0xad, 0xe7, 0xfe,
0x40, 0xe1, 0x35, 0x8c, 0xad, 0xa1, 0xf5, 0xe6, 0xd7, 0xa1, 0x3e, 0xb4, 0x98, 0x67, 0x6d, 0xa5,
0x98, 0xb5, 0x97, 0x60, 0x2e, 0x77, 0x40, 0x07, 0x65, 0xd1, 0xcb, 0x17, 0x9a, 0xef, 0x9f, 0x4b,
0xbf, 0x7f, 0x99, 0x17, 0x1e, 0xd9, 0xa8, 0x5e, 0x81, 0x65, 0x47, 0x67, 0x82, 0x1e, 0x53, 0x12,
0xa5, 0x24, 0x68, 0xd9, 0x13, 0x59, 0x99, 0x67, 0x44, 0x8e, 0x00, 0x9f, 0x6b, 0x86, 0x98, 0x7c,
0x9e, 0x19, 0x62, 0x0b, 0x6a, 0xe6, 0xe6, 0xab, 0x2b, 0x36, 0xbd, 0x65, 0x4f, 0x99, 0x93, 0xad,
0xa6, 0xeb, 0xe9, 0x0d, 0xfb, 0x65, 0xa8, 0xbb, 0x3b, 0x7d, 0x61, 0x13, 0xdb, 0xd4, 0xaa, 0x46,
0x50, 0x30, 0xfb, 0x16, 0x2c, 0x94, 0x66, 0xbc, 0xe9, 0xcf, 0x3a, 0xe2, 0x95, 0xcc, 0xa0, 0x1d,
0x98, 0x95, 0x36, 0x41, 0x6d, 0xd2, 0xcf, 0x6f, 0xbf, 0x34, 0xf6, 0xac, 0x8b, 0x89, 0xec, 0x65,
0x6a, 0xe8, 0x3a, 0xa0, 0x44, 0xf0, 0x84, 0x4b, 0x2a, 0x74, 0x2d, 0xc4, 0x44, 0xf5, 0x05, 0x35,
0x15, 0xb1, 0xe0, 0xd5, 0x53, 0x49, 0x3b, 0x15, 0xa0, 0x6b, 0x50, 0x2d, 0xc5, 0x87, 0x4a, 0xfc,
0x34, 0x2f, 0xb7, 0xa5, 0x62, 0x8c, 0xa8, 0x44, 0x9b, 0xb0, 0x58, 0x3a, 0x49, 0xfc, 0xe1, 0x4c,
0x56, 0xcf, 0x0b, 0xc5, 0x73, 0xd4, 0x35, 0xa9, 0xcf, 0xcd, 0x7e, 0x09, 0x14, 0xb4, 0x8b, 0x3f,
0xca, 0x91, 0xf3, 0x09, 0x3f, 0x31, 0x57, 0x05, 0x8f, 0x76, 0xf5, 0x5d, 0x31, 0x8f, 0x3a, 0xfe,
0x38, 0x47, 0xcd, 0x65, 0x31, 0x47, 0x5f, 0x81, 0xb9, 0xec, 0xbb, 0x2b, 0xfe, 0xef, 0x8c, 0x99,
0xed, 0xd6, 0x5a, 0xf6, 0xd3, 0x6c, 0x2b, 0xfd, 0x34, 0xdb, 0x7a, 0x94, 0x42, 0xac, 0x7a, 0xa6,
0xd1, 0x99, 0x36, 0x90, 0x9b, 0xff, 0x0f, 0x00, 0x00, 0xff, 0xff, 0x2c, 0x68, 0x61, 0x44, 0xf2,
0x15, 0x00, 0x00,
}

View File

@@ -16,7 +16,7 @@ message BeaconState {
bytes randao_mix_hash32 = 1001;
bytes next_seed_hash32 = 1002;
repeated ShardAndCommitteeArray shard_and_committees_for_slots = 1003;
// TODO: Persistent committees should be a 2d uint24 array.
// TODO(781): Persistent committees should be a 2d uint24 array.
repeated uint32 persistent_committees = 1004 [deprecated=true];
// repeated Uint32Array persistent_committees = 1004;
repeated ShardReassignmentRecord persistent_committee_reassignments = 1005;
@@ -38,7 +38,7 @@ message BeaconState {
repeated bytes processed_pow_receipt_root_hash32 = 4001;
repeated CandidatePoWReceiptRootRecord candidate_pow_receipt_roots = 4002;
// Miscellanous [5001-6000]
// Miscellaneous [5001-6000]
uint64 genesis_time = 5001;
ForkData fork_data = 5002;
@@ -95,13 +95,24 @@ message AttestationData {
message ValidatorRecord {
bytes pubkey = 1;
uint64 withdrawal_shard = 2;
bytes withdrawal_address = 3;
bytes randao_commitment = 4;
// TODO(781): The usage of withdrawal_credentials is not defined in spec. Not used in Prysm yet.
bytes withdrawal_credentials = 2;
bytes randao_commitment_hash32 = 3;
uint64 randao_skips = 4;
// Balance in Gwei
uint64 balance = 5;
uint64 status = 6;
uint64 exit_slot = 7;
uint64 randao_last_change = 8;
// Possible validator status code:
// https://github.com/ethereum/eth2.0-specs/blob/master/specs/core/0_beacon-chain.md#constants
enum ValiatorStateCode {
pending_activation = 0;
active = 1;
exited_without_penalty = 2;
exited_with_penalty = 3;
}
ValiatorStateCode status_code = 6;
uint64 latest_status_change_slot = 7;
uint64 exit_count = 8;
uint64 status = 9 [deprecated=true]; // Replaced by status_code
}
message ShardReassignmentRecord {
@@ -150,7 +161,7 @@ message BeaconBlock {
// for i in the range of 0 to 31.
repeated bytes ancestor_hash32s = 4;
bytes state_root_hash32 = 5;
// TODO: attestations should be a list of attestionRecords according to spec
// TODO(781): attestations should be a list of attestionRecords according to spec
// at ethereum/eth2.0-specs@11d4473. Update this field to AttestionRecord
// and remove the AggregatedAttestion message.
repeated AggregatedAttestation attestations = 6 [deprecated=true];