cosmos-sdk/x/params/client/utils/utils.go

48 lines
1.4 KiB
Go

package utils
import (
"io/ioutil"
"github.com/cosmos/cosmos-sdk/codec"
sdk "github.com/cosmos/cosmos-sdk/types"
"github.com/cosmos/cosmos-sdk/types/rest"
"github.com/cosmos/cosmos-sdk/x/params"
)
// ParamChangeProposalJSON defines a ParameterChangeProposal with a deposit used
// to parse parameter change proposals from a JSON file.
type ParamChangeProposalJSON struct {
Title string `json:"title"`
Description string `json:"description"`
Changes []params.ParamChange `json:"changes"`
Deposit sdk.Coins `json:"deposit"`
}
// ParamChangeProposalReq defines a parameter change proposal request body.
type ParamChangeProposalReq struct {
BaseReq rest.BaseReq `json:"base_req"`
Title string `json:"title"`
Description string `json:"description"`
Changes []params.ParamChange `json:"changes"`
Proposer sdk.AccAddress `json:"proposer"`
Deposit sdk.Coins `json:"deposit"`
}
// ParseParamChangeProposalJSON reads and parses a ParamChangeProposalJSON from
// file.
func ParseParamChangeProposalJSON(cdc *codec.Codec, proposalFile string) (ParamChangeProposalJSON, error) {
proposal := ParamChangeProposalJSON{}
contents, err := ioutil.ReadFile(proposalFile)
if err != nil {
return proposal, err
}
if err := cdc.UnmarshalJSON(contents, &proposal); err != nil {
return proposal, err
}
return proposal, nil
}