github.com/mavryk-network/mvgo@v1.19.9/rpc/issuance.go (about)

     1  // Copyright (c) 2023 Blockwatch Data Inc.
     2  // Author: alex@blockwatch.cc
     3  
     4  package rpc
     5  
     6  import (
     7  	"context"
     8  	"fmt"
     9  )
    10  
    11  type IssuanceParameters struct {
    12  	Cycle           int64 `json:"cycle"`
    13  	BakingReward    int64 `json:"baking_reward_fixed_portion,string"`
    14  	BakingBonus     int64 `json:"baking_reward_bonus_per_slot,string"`
    15  	AttestingReward int64 `json:"attesting_reward_per_slot,string"`
    16  	LBSubsidy       int64 `json:"liquidity_baking_subsidy,string"`
    17  	SeedNonceTip    int64 `json:"seed_nonce_revelation_tip,string"`
    18  	VdfTip          int64 `json:"vdf_revelation_tip,string"`
    19  }
    20  
    21  // GetIssuance returns expected xtz issuance for known future cycles
    22  func (c *Client) GetIssuance(ctx context.Context, id BlockID) ([]IssuanceParameters, error) {
    23  	u := fmt.Sprintf("chains/main/blocks/%s/context/issuance/expected_issuance", id)
    24  	p := make([]IssuanceParameters, 0, 5)
    25  	if err := c.Get(ctx, u, p); err != nil {
    26  		return nil, err
    27  	}
    28  	return p, nil
    29  }