Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
20 changes: 10 additions & 10 deletions node/block_data.go
Original file line number Diff line number Diff line change
Expand Up @@ -30,29 +30,29 @@ type BlockMetadata struct {
TestChainStatus struct {
Status string `json:"status"`
} `json:"test_chain_status"`
MaxOperationsTTL int `json:"max_operations_ttl"`
MaxOperationDataLength int `json:"max_operation_data_length"`
MaxBlockHeaderLength int `json:"max_block_header_length"`
MaxOperationsTTL uint64 `json:"max_operations_ttl"`
MaxOperationDataLength uint64 `json:"max_operation_data_length"`
MaxBlockHeaderLength uint64 `json:"max_block_header_length"`
MaxOperationListLength []struct {
MaxSize int `json:"max_size"`
MaxOp int `json:"max_op,omitempty"`
MaxSize uint64 `json:"max_size"`
MaxOp uint64 `json:"max_op,omitempty"`
} `json:"max_operation_list_length"`
Baker string `json:"baker"`
LevelInfo LevelInfo `json:"level_info"`
VotingPeriodInfo struct {
VotingPeriod struct {
Index int `json:"index"`
Index uint64 `json:"index"`
Kind string `json:"kind"`
StartPosition int `json:"start_position"`
StartPosition uint64 `json:"start_position"`
} `json:"voting_period"`
Position int `json:"position"`
Remaining int `json:"remaining"`
Position uint64 `json:"position"`
Remaining uint64 `json:"remaining"`
} `json:"voting_period_info"`
NonceHash string `json:"nonce_hash"`
ConsumedGas string `json:"consumed_gas"`
Deactivated []interface{} `json:"deactivated"`
BalanceUpdates []BalanceUpdate `json:"balance_updates"`
LiquidityBakingEscapeEma int `json:"liquidity_baking_escape_ema"`
LiquidityBakingEscapeEma uint64 `json:"liquidity_baking_escape_ema"`
ImplicitOperationsResults []ImplicitOperationsResult `json:"implicit_operations_results"`
}

Expand Down
2 changes: 1 addition & 1 deletion node/chain_data.go
Original file line number Diff line number Diff line change
Expand Up @@ -134,5 +134,5 @@ func (c *Content) UnmarshalJSON(data []byte) error {

// IsManager -
func IsManager(kind string) bool {
return kind == KindDelegation || kind == KindOrigination || kind == KindReveal || kind == KindTransaction
return kind == KindDelegation || kind == KindOrigination || kind == KindReveal || kind == KindTransaction || kind == KindSetDepositsLimit
}
3 changes: 3 additions & 0 deletions node/consts.go
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,9 @@ const (
KindNonceRevelation = "seed_nonce_revelation"
KindTransaction = "transaction"
KindRegisterGlobalConstant = "register_global_constant"
KindPreendorsement = "preendorsement"
KindSetDepositsLimit = "set_deposits_limit"
KindDoublePreendorsement = "double_preendorsement_evidence"
)

const (
Expand Down
1 change: 1 addition & 0 deletions node/context_data.go
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,7 @@ type Constants struct {
MinProposalQuorum int64 `json:"min_proposal_quorum"`
InitialEndorsers int64 `json:"initial_endorsers"`
DelayPerMissingEndorsement int64 `json:"delay_per_missing_endorsement,string"`
MinimalBlockDelay int64 `json:"minimal_block_delay,string,omitempty"`
}

// Int64StringSlice -
Expand Down
7 changes: 7 additions & 0 deletions node/general.go
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,8 @@ type GeneralAPI interface {
Version(ctx context.Context) (Version, error)
StatsGC(ctx context.Context) (StatsGC, error)
StatsMemory(ctx context.Context) (StatsMemory, error)

URL() string
}

// General -
Expand All @@ -23,6 +25,11 @@ func NewGeneral(baseURL string) *General {
}
}

// URL -
func (api *General) URL() string {
return api.baseURL
}

// Version -
func (api *General) Version(ctx context.Context) (Version, error) {
req, err := newGetRequest(api.baseURL, "version", nil)
Expand Down
100 changes: 98 additions & 2 deletions node/operations.go
Original file line number Diff line number Diff line change
Expand Up @@ -109,6 +109,24 @@ func (op *Operation) UnmarshalJSON(data []byte) error {
return err
}
op.Body = register
case KindDoublePreendorsement:
var doublePreendorsement DoublePreendorsementEvidence
if err := json.Unmarshal(data, &doublePreendorsement); err != nil {
return err
}
op.Body = doublePreendorsement
case KindSetDepositsLimit:
var setDepositsLimit SetDepositsLimit
if err := json.Unmarshal(data, &setDepositsLimit); err != nil {
return err
}
op.Body = setDepositsLimit
case KindPreendorsement:
var preendorsement Preendorsement
if err := json.Unmarshal(data, &preendorsement); err != nil {
return err
}
op.Body = preendorsement
}
return nil
}
Expand Down Expand Up @@ -158,6 +176,21 @@ func (op Operation) Endorsement() (Endorsement, error) {
return endorsement, nil
}

// Preendorsement -
func (op Operation) Preendorsement() (Preendorsement, error) {
if op.Kind != KindPreendorsement {
return Preendorsement{}, errors.Errorf("invalid kind of operation: %s", op.Kind)
}
if op.Body == nil {
return Preendorsement{}, errors.New("nil operation body")
}
preendorsement, ok := op.Body.(Preendorsement)
if !ok {
return Preendorsement{}, errors.Errorf("invalid body type: %T", op.Body)
}
return preendorsement, nil
}

// EndorsementWithSlot -
func (op Operation) EndorsementWithSlot() (EndorsementWithSlot, error) {
if op.Kind != KindEndorsementWithSlot {
Expand Down Expand Up @@ -293,6 +326,21 @@ func (op Operation) SeedNonceRevelation() (SeedNonceRevelation, error) {
return seed, nil
}

// SetDepositsLimit -
func (op Operation) SetDepositsLimit() (SetDepositsLimit, error) {
if op.Kind != KindSetDepositsLimit {
return SetDepositsLimit{}, errors.Errorf("invalid kind of operation: %s", op.Kind)
}
if op.Body == nil {
return SetDepositsLimit{}, errors.New("nil operation body")
}
tx, ok := op.Body.(SetDepositsLimit)
if !ok {
return SetDepositsLimit{}, errors.Errorf("invalid body type: %T", op.Body)
}
return tx, nil
}

// Transaction -
func (op Operation) Transaction() (Transaction, error) {
if op.Kind != KindTransaction {
Expand Down Expand Up @@ -336,6 +384,19 @@ type EndorsementWithSlot struct {
Metadata *EndorsementMetadata `json:"metadata,omitempty"`
}

// Preendorsement -
type Preendorsement struct {
Slot uint64 `json:"slot"`
Level uint64 `json:"level"`
Round int64 `json:"round"`
BlockPayloadHash string `json:"block_payload_hash"`
Metadata struct {
BalanceUpdates []interface{} `json:"balance_updates"`
Delegate string `json:"delegate"`
PreendorsementPower int `json:"preendorsement_power"`
} `json:"metadata"`
}

// Delegation -
type Delegation struct {
Source string `json:"source"`
Expand All @@ -356,8 +417,15 @@ type DoubleBakingEvidence struct {

// DoubleEndorsementEvidence -
type DoubleEndorsementEvidence struct {
Op1 *InlinedEndorsement `json:"Op1"`
Op2 *InlinedEndorsement `json:"Op2"`
Op1 *InlinedEndorsement `json:"op1"`
Op2 *InlinedEndorsement `json:"op2"`
Metadata *OnlyBalanceUpdatesMetadata `json:"metadata,omitempty"`
}

// DoublePreendorsementEvidence -
type DoublePreendorsementEvidence struct {
Op1 *InlinedEndorsement `json:"op1"`
Op2 *InlinedEndorsement `json:"op2"`
Metadata *OnlyBalanceUpdatesMetadata `json:"metadata,omitempty"`
}

Expand Down Expand Up @@ -410,6 +478,18 @@ type SeedNonceRevelation struct {
Metadata *OnlyBalanceUpdatesMetadata `json:"metadata,omitempty"`
}

// SetDepositsLimit -
type SetDepositsLimit struct {
Kind string `json:"kind"`
Source string `json:"source"`
Fee string `json:"fee"`
Counter string `json:"counter"`
GasLimit string `json:"gas_limit"`
StorageLimit string `json:"storage_limit"`
Limit *string `json:"limit,omitempty"`
Metadata *ManagerOperationMetadata `json:"metadata"`
}

// Transaction -
type Transaction struct {
Source string `json:"source"`
Expand Down Expand Up @@ -597,6 +677,22 @@ type InlinedEndorsementOperations struct {
Level int `json:"level"`
}

// InlinedPreendorsement -
type InlinedPreendorsement struct {
Branch string `json:"branch"`
Operations *InlinedPreendorsementOperations `json:"operations,omitempty"`
Signature string `json:"signature"`
}

// InlinedPreendorsementOperations -
type InlinedPreendorsementOperations struct {
Kind string `json:"kind"`
Slot uint64 `json:"slot"`
Level uint64 `json:"level"`
Round int64 `json:"round"`
BlockPayloadHash string `json:"block_payload_hash"`
}

// EndorsementWithSlotEntity -
type EndorsementWithSlotEntity struct {
Branch string `json:"branch"`
Expand Down
6 changes: 3 additions & 3 deletions node/protocols_api.go
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ import (

// ProtocolsAPI -
type ProtocolsAPI interface {
Protocols(ctx context.Context) ([]string, error)
GetProtocols(ctx context.Context) ([]string, error)
Protocol(ctx context.Context, hash string) (ProtocolInfo, error)
Environment(ctx context.Context, hash string) (int, error)
}
Expand All @@ -26,8 +26,8 @@ func NewProtocols(baseURL string) *Protocols {
}
}

// Protocols -
func (api *Protocols) Protocols(ctx context.Context) ([]string, error) {
// GetProtocols -
func (api *Protocols) GetProtocols(ctx context.Context) ([]string, error) {
req, err := newGetRequest(api.baseURL, "protocols", nil)
if err != nil {
return nil, err
Expand Down