48 lines
1.4 KiB
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
|
|
}
|