github.com/fibonacci-chain/fbc@v0.0.0-20231124064014-c7636198c1e9/libs/cosmos-sdk/x/mint/client/utils/utils.go (about)

     1  package utils
     2  
     3  import (
     4  	"github.com/fibonacci-chain/fbc/libs/cosmos-sdk/codec"
     5  	sdk "github.com/fibonacci-chain/fbc/libs/cosmos-sdk/types"
     6  	"github.com/fibonacci-chain/fbc/libs/cosmos-sdk/x/mint/internal/types"
     7  	"io/ioutil"
     8  )
     9  
    10  // ManageTreasuresProposalJSON defines a ManageTreasureProposal with a deposit used to parse
    11  // manage treasures proposals from a JSON file.
    12  type ManageTreasuresProposalJSON struct {
    13  	Title       string           `json:"title" yaml:"title"`
    14  	Description string           `json:"description" yaml:"description"`
    15  	Treasures   []types.Treasure `json:"treasures" yaml:"treasures"`
    16  	IsAdded     bool             `json:"is_added" yaml:"is_added"`
    17  	Deposit     sdk.SysCoins     `json:"deposit" yaml:"deposit"`
    18  }
    19  
    20  // ParseManageTreasuresProposalJSON parses json from proposal file to ManageTreasuresProposalJSON struct
    21  func ParseManageTreasuresProposalJSON(cdc *codec.Codec, proposalFilePath string) (
    22  	proposal ManageTreasuresProposalJSON, err error) {
    23  	contents, err := ioutil.ReadFile(proposalFilePath)
    24  	if err != nil {
    25  		return
    26  	}
    27  
    28  	cdc.MustUnmarshalJSON(contents, &proposal)
    29  	return
    30  }
    31  
    32  // ModifyNextBlockUpdateProposalJSON defines a ModifyNextBlockUpdateProposal with a deposit used to parse
    33  // manage treasures proposals from a JSON file.
    34  type ModifyNextBlockUpdateProposalJSON struct {
    35  	Title       string       `json:"title" yaml:"title"`
    36  	Description string       `json:"description" yaml:"description"`
    37  	Deposit     sdk.SysCoins `json:"deposit" yaml:"deposit"`
    38  	BlockNum    uint64       `json:"block_num" yaml:"block_num"`
    39  }
    40  
    41  // ParseModifyNextBlockUpdateProposalJSON parses json from proposal file to ModifyNextBlockUpdateProposalJSON struct
    42  func ParseModifyNextBlockUpdateProposalJSON(cdc *codec.Codec, proposalFilePath string) (
    43  	proposal ModifyNextBlockUpdateProposalJSON, err error) {
    44  	contents, err := ioutil.ReadFile(proposalFilePath)
    45  	if err != nil {
    46  		return
    47  	}
    48  
    49  	cdc.MustUnmarshalJSON(contents, &proposal)
    50  	return
    51  }