ignite scaffold message mint-production production:coins --module machine

Signed-off-by: Lorenz Herzberger <lorenzherzberger@gmail.com>
This commit is contained in:
Lorenz Herzberger 2024-08-05 15:22:59 +02:00
parent c473ccc252
commit 7b658121ee
No known key found for this signature in database
GPG Key ID: FA5EE906EB55316A
11 changed files with 648 additions and 42 deletions

View File

@ -77242,6 +77242,8 @@ definitions:
type: string
planetmintgo.machine.MsgAttestMachineResponse:
type: object
planetmintgo.machine.MsgBurnConsumptionResponse:
type: object
planetmintgo.machine.MsgMintProductionResponse:
type: object
planetmintgo.machine.MsgNotarizeLiquidAssetResponse:

View File

@ -21,6 +21,7 @@ service Msg {
rpc NotarizeLiquidAsset (MsgNotarizeLiquidAsset) returns (MsgNotarizeLiquidAssetResponse);
rpc UpdateParams (MsgUpdateParams ) returns (MsgUpdateParamsResponse );
rpc MintProduction (MsgMintProduction ) returns (MsgMintProductionResponse );
rpc BurnConsumption (MsgBurnConsumption ) returns (MsgBurnConsumptionResponse );
}
message MsgAttestMachine {
string creator = 1;
@ -64,3 +65,10 @@ message MsgMintProduction {
message MsgMintProductionResponse {}
message MsgBurnConsumption {
string creator = 1;
repeated cosmos.base.v1beta1.Coin consumption = 2 [(gogoproto.nullable) = false];
}
message MsgBurnConsumptionResponse {}

View File

@ -29,6 +29,7 @@ func GetTxCmd() *cobra.Command {
cmd.AddCommand(CmdNotarizeLiquidAsset())
cmd.AddCommand(CmdUpdateParams())
cmd.AddCommand(CmdMintProduction())
cmd.AddCommand(CmdBurnConsumption())
// this line is used by starport scaffolding # 1
return cmd

View File

@ -0,0 +1,46 @@
package cli
import (
"strconv"
"github.com/cosmos/cosmos-sdk/client"
"github.com/cosmos/cosmos-sdk/client/flags"
"github.com/cosmos/cosmos-sdk/client/tx"
sdk "github.com/cosmos/cosmos-sdk/types"
"github.com/planetmint/planetmint-go/x/machine/types"
"github.com/spf13/cobra"
)
var _ = strconv.Itoa(0)
func CmdBurnConsumption() *cobra.Command {
cmd := &cobra.Command{
Use: "burn-consumption [consumption]",
Short: "Broadcast message burn-consumption",
Args: cobra.ExactArgs(1),
RunE: func(cmd *cobra.Command, args []string) (err error) {
argConsumption, err := sdk.ParseCoinsNormalized(args[0])
if err != nil {
return err
}
clientCtx, err := client.GetClientTxContext(cmd)
if err != nil {
return err
}
msg := types.NewMsgBurnConsumption(
clientCtx.GetFromAddress().String(),
argConsumption,
)
if err := msg.ValidateBasic(); err != nil {
return err
}
return tx.GenerateOrBroadcastTxCLI(clientCtx, cmd.Flags(), msg)
},
}
flags.AddTxFlagsToCmd(cmd)
return cmd
}

View File

@ -0,0 +1,17 @@
package keeper
import (
"context"
sdk "github.com/cosmos/cosmos-sdk/types"
"github.com/planetmint/planetmint-go/x/machine/types"
)
func (k msgServer) BurnConsumption(goCtx context.Context, msg *types.MsgBurnConsumption) (*types.MsgBurnConsumptionResponse, error) {
ctx := sdk.UnwrapSDKContext(goCtx)
// TODO: Handling the message
_ = ctx
return &types.MsgBurnConsumptionResponse{}, nil
}

View File

@ -43,6 +43,10 @@ const (
// TODO: Determine the simulation weight value
defaultWeightMsgMintProduction int = 100
opWeightMsgBurnConsumption = "op_weight_msg_burn_consumption"
// TODO: Determine the simulation weight value
defaultWeightMsgBurnConsumption int = 100
// this line is used by starport scaffolding # simapp/module/const
)
@ -128,6 +132,17 @@ func (am AppModule) WeightedOperations(simState module.SimulationState) []simtyp
machinesimulation.SimulateMsgMintProduction(am.accountKeeper, am.bankKeeper, am.keeper),
))
var weightMsgBurnConsumption int
simState.AppParams.GetOrGenerate(simState.Cdc, opWeightMsgBurnConsumption, &weightMsgBurnConsumption, nil,
func(_ *rand.Rand) {
weightMsgBurnConsumption = defaultWeightMsgBurnConsumption
},
)
operations = append(operations, simulation.NewWeightedOperation(
weightMsgBurnConsumption,
machinesimulation.SimulateMsgBurnConsumption(am.accountKeeper, am.bankKeeper, am.keeper),
))
// this line is used by starport scaffolding # simapp/module/operation
return operations
@ -176,6 +191,14 @@ func (am AppModule) ProposalMsgs(_ module.SimulationState) []simtypes.WeightedPr
return nil
},
),
simulation.NewWeightedProposalMsg(
opWeightMsgBurnConsumption,
defaultWeightMsgBurnConsumption,
func(r *rand.Rand, ctx sdk.Context, accs []simtypes.Account) sdk.Msg {
machinesimulation.SimulateMsgBurnConsumption(am.accountKeeper, am.bankKeeper, am.keeper)
return nil
},
),
// this line is used by starport scaffolding # simapp/module/OpMsg
}
}

View File

@ -0,0 +1,29 @@
package simulation
import (
"math/rand"
"github.com/cosmos/cosmos-sdk/baseapp"
sdk "github.com/cosmos/cosmos-sdk/types"
simtypes "github.com/cosmos/cosmos-sdk/types/simulation"
"github.com/planetmint/planetmint-go/x/machine/keeper"
"github.com/planetmint/planetmint-go/x/machine/types"
)
func SimulateMsgBurnConsumption(
ak types.AccountKeeper,
bk types.BankKeeper,
k keeper.Keeper,
) simtypes.Operation {
return func(r *rand.Rand, app *baseapp.BaseApp, ctx sdk.Context, accs []simtypes.Account, chainID string,
) (simtypes.OperationMsg, []simtypes.FutureOperation, error) {
simAccount, _ := simtypes.RandomAcc(r, accs)
msg := &types.MsgBurnConsumption{
Creator: simAccount.Address.String(),
}
// TODO: Handling the BurnConsumption simulation
return simtypes.NoOpMsg(types.ModuleName, msg.Type(), "BurnConsumption simulation not implemented"), nil, nil
}
}

View File

@ -13,6 +13,7 @@ func RegisterCodec(cdc *codec.LegacyAmino) {
cdc.RegisterConcrete(&MsgNotarizeLiquidAsset{}, "machine/NotarizeLiquidAsset", nil)
cdc.RegisterConcrete(&MsgUpdateParams{}, "machine/UpdateParams", nil)
cdc.RegisterConcrete(&MsgMintProduction{}, "machine/MintProduction", nil)
cdc.RegisterConcrete(&MsgBurnConsumption{}, "machine/BurnConsumption", nil)
// this line is used by starport scaffolding # 2
}
@ -32,6 +33,9 @@ func RegisterInterfaces(registry cdctypes.InterfaceRegistry) {
registry.RegisterImplementations((*sdk.Msg)(nil),
&MsgMintProduction{},
)
registry.RegisterImplementations((*sdk.Msg)(nil),
&MsgBurnConsumption{},
)
// this line is used by starport scaffolding # 3
msgservice.RegisterMsgServiceDesc(registry, &_Msg_serviceDesc)

View File

@ -0,0 +1,46 @@
package types
import (
sdk "github.com/cosmos/cosmos-sdk/types"
sdkerrors "github.com/cosmos/cosmos-sdk/types/errors"
)
const TypeMsgBurnConsumption = "burn_consumption"
var _ sdk.Msg = &MsgBurnConsumption{}
func NewMsgBurnConsumption(creator string, consumption sdk.Coins) *MsgBurnConsumption {
return &MsgBurnConsumption{
Creator: creator,
Consumption: consumption,
}
}
func (msg *MsgBurnConsumption) Route() string {
return RouterKey
}
func (msg *MsgBurnConsumption) Type() string {
return TypeMsgBurnConsumption
}
func (msg *MsgBurnConsumption) GetSigners() []sdk.AccAddress {
creator, err := sdk.AccAddressFromBech32(msg.Creator)
if err != nil {
panic(err)
}
return []sdk.AccAddress{creator}
}
func (msg *MsgBurnConsumption) GetSignBytes() []byte {
bz := ModuleCdc.MustMarshalJSON(msg)
return sdk.MustSortJSON(bz)
}
func (msg *MsgBurnConsumption) ValidateBasic() error {
_, err := sdk.AccAddressFromBech32(msg.Creator)
if err != nil {
return sdkerrors.Wrapf(sdkerrors.ErrInvalidAddress, "invalid creator address (%s)", err)
}
return nil
}

View File

@ -0,0 +1,40 @@
package types
import (
"testing"
sdkerrors "github.com/cosmos/cosmos-sdk/types/errors"
"github.com/planetmint/planetmint-go/testutil/sample"
"github.com/stretchr/testify/require"
)
func TestMsgBurnConsumption_ValidateBasic(t *testing.T) {
tests := []struct {
name string
msg MsgBurnConsumption
err error
}{
{
name: "invalid address",
msg: MsgBurnConsumption{
Creator: "invalid_address",
},
err: sdkerrors.ErrInvalidAddress,
}, {
name: "valid address",
msg: MsgBurnConsumption{
Creator: sample.AccAddress(),
},
},
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
err := tt.msg.ValidateBasic()
if tt.err != nil {
require.ErrorIs(t, err, tt.err)
return
}
require.NoError(t, err)
})
}
}

View File

@ -474,6 +474,94 @@ func (m *MsgMintProductionResponse) XXX_DiscardUnknown() {
var xxx_messageInfo_MsgMintProductionResponse proto.InternalMessageInfo
type MsgBurnConsumption struct {
Creator string `protobuf:"bytes,1,opt,name=creator,proto3" json:"creator,omitempty"`
Consumption []types.Coin `protobuf:"bytes,2,rep,name=consumption,proto3" json:"consumption"`
}
func (m *MsgBurnConsumption) Reset() { *m = MsgBurnConsumption{} }
func (m *MsgBurnConsumption) String() string { return proto.CompactTextString(m) }
func (*MsgBurnConsumption) ProtoMessage() {}
func (*MsgBurnConsumption) Descriptor() ([]byte, []int) {
return fileDescriptor_85ac37e5c8e5251d, []int{10}
}
func (m *MsgBurnConsumption) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
}
func (m *MsgBurnConsumption) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
if deterministic {
return xxx_messageInfo_MsgBurnConsumption.Marshal(b, m, deterministic)
} else {
b = b[:cap(b)]
n, err := m.MarshalToSizedBuffer(b)
if err != nil {
return nil, err
}
return b[:n], nil
}
}
func (m *MsgBurnConsumption) XXX_Merge(src proto.Message) {
xxx_messageInfo_MsgBurnConsumption.Merge(m, src)
}
func (m *MsgBurnConsumption) XXX_Size() int {
return m.Size()
}
func (m *MsgBurnConsumption) XXX_DiscardUnknown() {
xxx_messageInfo_MsgBurnConsumption.DiscardUnknown(m)
}
var xxx_messageInfo_MsgBurnConsumption proto.InternalMessageInfo
func (m *MsgBurnConsumption) GetCreator() string {
if m != nil {
return m.Creator
}
return ""
}
func (m *MsgBurnConsumption) GetConsumption() []types.Coin {
if m != nil {
return m.Consumption
}
return nil
}
type MsgBurnConsumptionResponse struct {
}
func (m *MsgBurnConsumptionResponse) Reset() { *m = MsgBurnConsumptionResponse{} }
func (m *MsgBurnConsumptionResponse) String() string { return proto.CompactTextString(m) }
func (*MsgBurnConsumptionResponse) ProtoMessage() {}
func (*MsgBurnConsumptionResponse) Descriptor() ([]byte, []int) {
return fileDescriptor_85ac37e5c8e5251d, []int{11}
}
func (m *MsgBurnConsumptionResponse) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
}
func (m *MsgBurnConsumptionResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
if deterministic {
return xxx_messageInfo_MsgBurnConsumptionResponse.Marshal(b, m, deterministic)
} else {
b = b[:cap(b)]
n, err := m.MarshalToSizedBuffer(b)
if err != nil {
return nil, err
}
return b[:n], nil
}
}
func (m *MsgBurnConsumptionResponse) XXX_Merge(src proto.Message) {
xxx_messageInfo_MsgBurnConsumptionResponse.Merge(m, src)
}
func (m *MsgBurnConsumptionResponse) XXX_Size() int {
return m.Size()
}
func (m *MsgBurnConsumptionResponse) XXX_DiscardUnknown() {
xxx_messageInfo_MsgBurnConsumptionResponse.DiscardUnknown(m)
}
var xxx_messageInfo_MsgBurnConsumptionResponse proto.InternalMessageInfo
func init() {
proto.RegisterType((*MsgAttestMachine)(nil), "planetmintgo.machine.MsgAttestMachine")
proto.RegisterType((*MsgAttestMachineResponse)(nil), "planetmintgo.machine.MsgAttestMachineResponse")
@ -485,53 +573,58 @@ func init() {
proto.RegisterType((*MsgUpdateParamsResponse)(nil), "planetmintgo.machine.MsgUpdateParamsResponse")
proto.RegisterType((*MsgMintProduction)(nil), "planetmintgo.machine.MsgMintProduction")
proto.RegisterType((*MsgMintProductionResponse)(nil), "planetmintgo.machine.MsgMintProductionResponse")
proto.RegisterType((*MsgBurnConsumption)(nil), "planetmintgo.machine.MsgBurnConsumption")
proto.RegisterType((*MsgBurnConsumptionResponse)(nil), "planetmintgo.machine.MsgBurnConsumptionResponse")
}
func init() { proto.RegisterFile("planetmintgo/machine/tx.proto", fileDescriptor_85ac37e5c8e5251d) }
var fileDescriptor_85ac37e5c8e5251d = []byte{
// 643 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x94, 0x55, 0x41, 0x4f, 0xd4, 0x4e,
0x1c, 0xdd, 0x02, 0x81, 0x30, 0xf0, 0xe7, 0x2f, 0x95, 0x48, 0xb7, 0x4a, 0x5d, 0x9a, 0x28, 0x84,
0x48, 0x1b, 0xc0, 0x68, 0xe2, 0x85, 0xec, 0x12, 0x6f, 0xd6, 0x90, 0xaa, 0x17, 0x2f, 0x64, 0xb6,
0x9d, 0xcc, 0x8e, 0xa1, 0x33, 0x75, 0x66, 0x16, 0x59, 0x8f, 0x7e, 0x02, 0xcf, 0x7e, 0x02, 0x8f,
0x1c, 0x8c, 0x9f, 0x81, 0x23, 0xf1, 0xe4, 0xc9, 0x18, 0x38, 0xf0, 0x35, 0x4c, 0xdb, 0xd9, 0xdd,
0xee, 0x3a, 0xdb, 0xe0, 0x65, 0x3b, 0xd3, 0xdf, 0xfb, 0xbd, 0xf7, 0xe6, 0x37, 0x6f, 0x77, 0xc1,
0x5a, 0x7a, 0x0c, 0x29, 0x92, 0x09, 0xa1, 0x12, 0x33, 0x3f, 0x81, 0x51, 0x87, 0x50, 0xe4, 0xcb,
0x53, 0x2f, 0xe5, 0x4c, 0x32, 0x73, 0xa5, 0x5c, 0xf6, 0x54, 0xd9, 0x76, 0xb5, 0x4d, 0xea, 0x59,
0x74, 0xda, 0x1b, 0x7a, 0x62, 0xde, 0x15, 0xf2, 0x08, 0xd2, 0xa8, 0xc3, 0x78, 0x25, 0xf0, 0x98,
0xbc, 0xef, 0x92, 0xf8, 0x08, 0x0a, 0x81, 0xa4, 0x02, 0xae, 0x6b, 0x81, 0x29, 0xe4, 0x30, 0x11,
0x0a, 0xb2, 0x0c, 0x13, 0x42, 0x99, 0x9f, 0x7f, 0xaa, 0x57, 0x2b, 0x98, 0x61, 0x96, 0x2f, 0xfd,
0x6c, 0xa5, 0xde, 0xd6, 0x23, 0x26, 0x12, 0x26, 0x8e, 0x8a, 0x42, 0xb1, 0x51, 0xa5, 0xd5, 0x62,
0xe7, 0x27, 0x02, 0xfb, 0x27, 0x3b, 0xd9, 0x43, 0x15, 0x1c, 0x55, 0x68, 0x43, 0x81, 0xfc, 0x93,
0x9d, 0x36, 0x92, 0x70, 0xc7, 0x8f, 0x18, 0xa1, 0x45, 0xdd, 0x45, 0xe0, 0x56, 0x20, 0x70, 0x53,
0x4a, 0x24, 0x64, 0x50, 0xb8, 0x33, 0x2d, 0x30, 0x17, 0x71, 0x04, 0x25, 0xe3, 0x96, 0xd1, 0x30,
0x36, 0xe7, 0xc3, 0xfe, 0xd6, 0x7c, 0x0a, 0xe6, 0xd4, 0x11, 0xac, 0xa9, 0x86, 0xb1, 0xb9, 0xb0,
0xbb, 0xe6, 0xe9, 0x66, 0xed, 0x29, 0xa6, 0xb0, 0x8f, 0x76, 0x6d, 0x60, 0x8d, 0xcb, 0x84, 0x48,
0xa4, 0x8c, 0x0a, 0xe4, 0x7e, 0x00, 0x77, 0x02, 0x81, 0x43, 0x84, 0x89, 0x90, 0x88, 0xbf, 0xce,
0x86, 0xdd, 0xcc, 0x67, 0x5d, 0x61, 0xe4, 0x00, 0x2c, 0xc8, 0x21, 0x50, 0x99, 0x59, 0xd7, 0x9b,
0x29, 0x31, 0x86, 0xe5, 0x2e, 0xb7, 0x01, 0x1c, 0xbd, 0xf0, 0xc0, 0x5a, 0x2f, 0xb7, 0xf6, 0x92,
0x49, 0xc8, 0xc9, 0x47, 0xf4, 0x22, 0xbf, 0xde, 0x66, 0x76, 0xbb, 0x15, 0xd6, 0x9e, 0x83, 0x45,
0x5a, 0x34, 0x40, 0x49, 0x18, 0xad, 0xf6, 0x56, 0xa2, 0x0c, 0x47, 0xda, 0x94, 0x39, 0x8d, 0xf4,
0xc0, 0xdc, 0x17, 0x03, 0xfc, 0x1f, 0x08, 0xfc, 0x26, 0x8d, 0xa1, 0x44, 0x87, 0x79, 0xa2, 0xcc,
0x27, 0x60, 0x1e, 0x76, 0x65, 0x87, 0x71, 0x22, 0x7b, 0x85, 0xb1, 0x96, 0xf5, 0xe3, 0xdb, 0xf6,
0x8a, 0x0a, 0x4b, 0x33, 0x8e, 0x39, 0x12, 0xe2, 0x95, 0xe4, 0x84, 0xe2, 0x70, 0x08, 0x35, 0xf7,
0xc1, 0x6c, 0x91, 0x49, 0x65, 0xf7, 0x9e, 0xde, 0x6e, 0xa1, 0xd2, 0x9a, 0x3f, 0xff, 0x75, 0xbf,
0xf6, 0xf5, 0xfa, 0x6c, 0xcb, 0x08, 0x55, 0xdb, 0xb3, 0xa5, 0x4f, 0xd7, 0x67, 0x5b, 0x43, 0x42,
0xb7, 0x0e, 0x56, 0xc7, 0xbc, 0x0d, 0x7c, 0x53, 0xb0, 0x1c, 0x08, 0x1c, 0x10, 0x2a, 0x0f, 0x39,
0x8b, 0xbb, 0x51, 0x76, 0xdc, 0x8a, 0x79, 0xee, 0x03, 0x90, 0x0e, 0x70, 0xd6, 0x54, 0x63, 0x7a,
0x73, 0x61, 0xb7, 0xee, 0xa9, 0x03, 0x65, 0xb1, 0xf6, 0x54, 0xac, 0xbd, 0x03, 0x46, 0x68, 0x6b,
0x26, 0xf3, 0x16, 0x96, 0x5a, 0xdc, 0xbb, 0xa0, 0xfe, 0x97, 0x5e, 0xdf, 0xcc, 0xee, 0xf7, 0x19,
0x30, 0x1d, 0x08, 0x6c, 0x62, 0xf0, 0xdf, 0xe8, 0x97, 0xe0, 0xe1, 0x84, 0x64, 0x8f, 0xa5, 0xd8,
0xf6, 0x6e, 0x86, 0xeb, 0x0b, 0x9a, 0x3d, 0x70, 0x5b, 0x17, 0xf5, 0x47, 0x13, 0x69, 0x34, 0x68,
0xfb, 0xf1, 0xbf, 0xa0, 0xcb, 0xd2, 0xba, 0x28, 0x4f, 0x96, 0xd6, 0xa0, 0x2b, 0xa4, 0x2b, 0xb2,
0x6a, 0xc6, 0x60, 0x71, 0x24, 0xa7, 0x0f, 0x26, 0xb2, 0x94, 0x61, 0xf6, 0xf6, 0x8d, 0x60, 0x03,
0x95, 0x77, 0x60, 0x69, 0x2c, 0x56, 0x1b, 0x13, 0x09, 0x46, 0x81, 0xb6, 0x7f, 0x43, 0x60, 0x5f,
0xab, 0x15, 0x9c, 0x5f, 0x3a, 0xc6, 0xc5, 0xa5, 0x63, 0xfc, 0xbe, 0x74, 0x8c, 0xcf, 0x57, 0x4e,
0xed, 0xe2, 0xca, 0xa9, 0xfd, 0xbc, 0x72, 0x6a, 0x6f, 0xf7, 0x30, 0x91, 0x9d, 0x6e, 0xdb, 0x8b,
0x58, 0xe2, 0x0f, 0x49, 0x4b, 0xcb, 0x6d, 0xcc, 0xfc, 0xd3, 0xe1, 0xbf, 0x4b, 0x2f, 0x45, 0xa2,
0x3d, 0x9b, 0xff, 0x1c, 0xef, 0xfd, 0x09, 0x00, 0x00, 0xff, 0xff, 0xef, 0x5b, 0x89, 0x1b, 0xdb,
0x06, 0x00, 0x00,
// 692 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x94, 0x95, 0xc1, 0x6f, 0xd3, 0x3e,
0x14, 0xc7, 0x9b, 0xed, 0xf7, 0xdb, 0x34, 0x77, 0x6c, 0x2c, 0x4c, 0xac, 0x0d, 0x5b, 0xe8, 0x22,
0xc1, 0xaa, 0x89, 0x25, 0x6c, 0x43, 0x20, 0x71, 0x99, 0xda, 0x89, 0x1b, 0x41, 0x53, 0x80, 0x0b,
0x97, 0xc9, 0x4d, 0x2d, 0xd7, 0x68, 0xb1, 0x33, 0xdb, 0x1d, 0x2b, 0x47, 0xfe, 0x02, 0xce, 0xdc,
0x91, 0x38, 0xee, 0xc0, 0x1f, 0xb1, 0xe3, 0xc4, 0x89, 0x13, 0x42, 0xdb, 0x61, 0xff, 0x06, 0x4a,
0xe2, 0xa6, 0x69, 0x97, 0x86, 0x72, 0x69, 0xed, 0xbc, 0xef, 0x7b, 0xdf, 0x8f, 0x9d, 0xf7, 0x14,
0xb0, 0x16, 0x1e, 0x41, 0x8a, 0x64, 0x40, 0xa8, 0xc4, 0xcc, 0x09, 0xa0, 0xdf, 0x21, 0x14, 0x39,
0xf2, 0xd4, 0x0e, 0x39, 0x93, 0x4c, 0x5f, 0xce, 0x86, 0x6d, 0x15, 0x36, 0xac, 0xdc, 0x24, 0xf5,
0x9f, 0x64, 0x1a, 0x1b, 0xf9, 0x85, 0x79, 0x57, 0xc8, 0x43, 0x48, 0xfd, 0x0e, 0xe3, 0x85, 0xc2,
0x23, 0x72, 0xdc, 0x25, 0xed, 0x43, 0x28, 0x04, 0x92, 0x4a, 0xb8, 0x9e, 0x2b, 0x0c, 0x21, 0x87,
0x81, 0x50, 0x92, 0x25, 0x18, 0x10, 0xca, 0x9c, 0xf8, 0x57, 0x3d, 0x5a, 0xc6, 0x0c, 0xb3, 0x78,
0xe9, 0x44, 0x2b, 0xf5, 0xb4, 0xea, 0x33, 0x11, 0x30, 0x71, 0x98, 0x04, 0x92, 0x8d, 0x0a, 0xad,
0x24, 0x3b, 0x27, 0x10, 0xd8, 0x39, 0xd9, 0x8e, 0xfe, 0x54, 0xc0, 0x54, 0x81, 0x16, 0x14, 0xc8,
0x39, 0xd9, 0x6e, 0x21, 0x09, 0xb7, 0x1d, 0x9f, 0x11, 0x9a, 0xc4, 0x2d, 0x04, 0x6e, 0xbb, 0x02,
0x37, 0xa4, 0x44, 0x42, 0xba, 0x09, 0x9d, 0x5e, 0x01, 0xb3, 0x3e, 0x47, 0x50, 0x32, 0x5e, 0xd1,
0x6a, 0x5a, 0x7d, 0xce, 0xeb, 0x6f, 0xf5, 0x67, 0x60, 0x56, 0x1d, 0xa1, 0x32, 0x55, 0xd3, 0xea,
0xe5, 0x9d, 0x35, 0x3b, 0xef, 0xae, 0x6d, 0x55, 0xc9, 0xeb, 0xab, 0x2d, 0x03, 0x54, 0x46, 0x6d,
0x3c, 0x24, 0x42, 0x46, 0x05, 0xb2, 0x3e, 0x80, 0xbb, 0xae, 0xc0, 0x1e, 0xc2, 0x44, 0x48, 0xc4,
0xdf, 0x44, 0x97, 0xdd, 0x88, 0xef, 0xba, 0x00, 0x64, 0x1f, 0x94, 0xe5, 0x40, 0xa8, 0x60, 0xd6,
0xf3, 0x61, 0x32, 0x15, 0xbd, 0x6c, 0x96, 0x55, 0x03, 0x66, 0xbe, 0x71, 0x8a, 0xd6, 0x8b, 0xd1,
0x5e, 0x31, 0x09, 0x39, 0xf9, 0x88, 0x5e, 0xc6, 0xaf, 0xb7, 0x11, 0xbd, 0xdd, 0x02, 0xb4, 0x17,
0x60, 0x9e, 0x26, 0x09, 0x50, 0x12, 0x46, 0x8b, 0xd9, 0x32, 0x25, 0xbd, 0xa1, 0x34, 0x05, 0x97,
0x63, 0x9d, 0xc2, 0x7d, 0xd1, 0xc0, 0xa2, 0x2b, 0xf0, 0xdb, 0xb0, 0x0d, 0x25, 0x3a, 0x88, 0x3b,
0x4a, 0x7f, 0x0a, 0xe6, 0x60, 0x57, 0x76, 0x18, 0x27, 0xb2, 0x97, 0x80, 0x35, 0x2b, 0x3f, 0xbe,
0x6f, 0x2d, 0xab, 0x66, 0x69, 0xb4, 0xdb, 0x1c, 0x09, 0xf1, 0x5a, 0x72, 0x42, 0xb1, 0x37, 0x90,
0xea, 0x7b, 0x60, 0x26, 0xe9, 0x49, 0x85, 0xbb, 0x9a, 0x8f, 0x9b, 0xb8, 0x34, 0xe7, 0xce, 0x7f,
0xdd, 0x2f, 0x7d, 0xbb, 0x3e, 0xdb, 0xd4, 0x3c, 0x95, 0xf6, 0x7c, 0xe1, 0xd3, 0xf5, 0xd9, 0xe6,
0xa0, 0xa0, 0x55, 0x05, 0x2b, 0x23, 0x6c, 0x29, 0x37, 0x05, 0x4b, 0xae, 0xc0, 0x2e, 0xa1, 0xf2,
0x80, 0xb3, 0x76, 0xd7, 0x8f, 0x8e, 0x5b, 0x70, 0x9f, 0x7b, 0x00, 0x84, 0xa9, 0xae, 0x32, 0x55,
0x9b, 0xae, 0x97, 0x77, 0xaa, 0xb6, 0x3a, 0x50, 0xd4, 0xd6, 0xb6, 0x6a, 0x6b, 0x7b, 0x9f, 0x11,
0xda, 0xfc, 0x2f, 0x62, 0xf3, 0x32, 0x29, 0xd6, 0x3d, 0x50, 0xbd, 0xe1, 0x97, 0xc2, 0x1c, 0x03,
0xdd, 0x15, 0xb8, 0xd9, 0xe5, 0x74, 0x9f, 0x51, 0xd1, 0x0d, 0xc2, 0xbf, 0xd0, 0x34, 0x40, 0xd9,
0x1f, 0x08, 0x27, 0xc5, 0xc9, 0xe6, 0x58, 0xab, 0xc0, 0xb8, 0x69, 0xd9, 0x07, 0xda, 0xf9, 0xfa,
0x3f, 0x98, 0x76, 0x05, 0xd6, 0x31, 0xb8, 0x35, 0x3c, 0x95, 0x0f, 0xc7, 0x8c, 0xda, 0xc8, 0x58,
0x19, 0xf6, 0x64, 0xba, 0xbe, 0xa1, 0xde, 0x03, 0x77, 0xf2, 0x66, 0xef, 0xd1, 0xd8, 0x32, 0x39,
0x6a, 0xe3, 0xc9, 0xbf, 0xa8, 0xb3, 0xd6, 0x79, 0xb3, 0x35, 0xde, 0x3a, 0x47, 0x5d, 0x60, 0x5d,
0x30, 0x3c, 0x7a, 0x1b, 0xcc, 0x0f, 0x0d, 0xce, 0x83, 0xb1, 0x55, 0xb2, 0x32, 0x63, 0x6b, 0x22,
0x59, 0xea, 0xf2, 0x1e, 0x2c, 0x8c, 0xf4, 0xf9, 0xc6, 0xd8, 0x02, 0xc3, 0x42, 0xc3, 0x99, 0x50,
0x98, 0x7a, 0x05, 0x60, 0x71, 0xb4, 0x8d, 0xeb, 0x63, 0x6b, 0x8c, 0x28, 0x8d, 0xc7, 0x93, 0x2a,
0xfb, 0x76, 0x4d, 0xf7, 0xfc, 0xd2, 0xd4, 0x2e, 0x2e, 0x4d, 0xed, 0xf7, 0xa5, 0xa9, 0x7d, 0xbe,
0x32, 0x4b, 0x17, 0x57, 0x66, 0xe9, 0xe7, 0x95, 0x59, 0x7a, 0xb7, 0x8b, 0x89, 0xec, 0x74, 0x5b,
0xb6, 0xcf, 0x02, 0x67, 0x50, 0x35, 0xb3, 0xdc, 0xc2, 0xcc, 0x39, 0x1d, 0x7c, 0x5d, 0x7b, 0x21,
0x12, 0xad, 0x99, 0xf8, 0x73, 0xb4, 0xfb, 0x27, 0x00, 0x00, 0xff, 0xff, 0x8c, 0x3b, 0xab, 0x34,
0xdb, 0x07, 0x00, 0x00,
}
// Reference imports to suppress errors if they are not otherwise used.
@ -551,6 +644,7 @@ type MsgClient interface {
NotarizeLiquidAsset(ctx context.Context, in *MsgNotarizeLiquidAsset, opts ...grpc.CallOption) (*MsgNotarizeLiquidAssetResponse, error)
UpdateParams(ctx context.Context, in *MsgUpdateParams, opts ...grpc.CallOption) (*MsgUpdateParamsResponse, error)
MintProduction(ctx context.Context, in *MsgMintProduction, opts ...grpc.CallOption) (*MsgMintProductionResponse, error)
BurnConsumption(ctx context.Context, in *MsgBurnConsumption, opts ...grpc.CallOption) (*MsgBurnConsumptionResponse, error)
}
type msgClient struct {
@ -606,6 +700,15 @@ func (c *msgClient) MintProduction(ctx context.Context, in *MsgMintProduction, o
return out, nil
}
func (c *msgClient) BurnConsumption(ctx context.Context, in *MsgBurnConsumption, opts ...grpc.CallOption) (*MsgBurnConsumptionResponse, error) {
out := new(MsgBurnConsumptionResponse)
err := c.cc.Invoke(ctx, "/planetmintgo.machine.Msg/BurnConsumption", in, out, opts...)
if err != nil {
return nil, err
}
return out, nil
}
// MsgServer is the server API for Msg service.
type MsgServer interface {
AttestMachine(context.Context, *MsgAttestMachine) (*MsgAttestMachineResponse, error)
@ -613,6 +716,7 @@ type MsgServer interface {
NotarizeLiquidAsset(context.Context, *MsgNotarizeLiquidAsset) (*MsgNotarizeLiquidAssetResponse, error)
UpdateParams(context.Context, *MsgUpdateParams) (*MsgUpdateParamsResponse, error)
MintProduction(context.Context, *MsgMintProduction) (*MsgMintProductionResponse, error)
BurnConsumption(context.Context, *MsgBurnConsumption) (*MsgBurnConsumptionResponse, error)
}
// UnimplementedMsgServer can be embedded to have forward compatible implementations.
@ -634,6 +738,9 @@ func (*UnimplementedMsgServer) UpdateParams(ctx context.Context, req *MsgUpdateP
func (*UnimplementedMsgServer) MintProduction(ctx context.Context, req *MsgMintProduction) (*MsgMintProductionResponse, error) {
return nil, status.Errorf(codes.Unimplemented, "method MintProduction not implemented")
}
func (*UnimplementedMsgServer) BurnConsumption(ctx context.Context, req *MsgBurnConsumption) (*MsgBurnConsumptionResponse, error) {
return nil, status.Errorf(codes.Unimplemented, "method BurnConsumption not implemented")
}
func RegisterMsgServer(s grpc1.Server, srv MsgServer) {
s.RegisterService(&_Msg_serviceDesc, srv)
@ -729,6 +836,24 @@ func _Msg_MintProduction_Handler(srv interface{}, ctx context.Context, dec func(
return interceptor(ctx, in, info, handler)
}
func _Msg_BurnConsumption_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
in := new(MsgBurnConsumption)
if err := dec(in); err != nil {
return nil, err
}
if interceptor == nil {
return srv.(MsgServer).BurnConsumption(ctx, in)
}
info := &grpc.UnaryServerInfo{
Server: srv,
FullMethod: "/planetmintgo.machine.Msg/BurnConsumption",
}
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
return srv.(MsgServer).BurnConsumption(ctx, req.(*MsgBurnConsumption))
}
return interceptor(ctx, in, info, handler)
}
var _Msg_serviceDesc = grpc.ServiceDesc{
ServiceName: "planetmintgo.machine.Msg",
HandlerType: (*MsgServer)(nil),
@ -753,6 +878,10 @@ var _Msg_serviceDesc = grpc.ServiceDesc{
MethodName: "MintProduction",
Handler: _Msg_MintProduction_Handler,
},
{
MethodName: "BurnConsumption",
Handler: _Msg_BurnConsumption_Handler,
},
},
Streams: []grpc.StreamDesc{},
Metadata: "planetmintgo/machine/tx.proto",
@ -1083,6 +1212,73 @@ func (m *MsgMintProductionResponse) MarshalToSizedBuffer(dAtA []byte) (int, erro
return len(dAtA) - i, nil
}
func (m *MsgBurnConsumption) Marshal() (dAtA []byte, err error) {
size := m.Size()
dAtA = make([]byte, size)
n, err := m.MarshalToSizedBuffer(dAtA[:size])
if err != nil {
return nil, err
}
return dAtA[:n], nil
}
func (m *MsgBurnConsumption) MarshalTo(dAtA []byte) (int, error) {
size := m.Size()
return m.MarshalToSizedBuffer(dAtA[:size])
}
func (m *MsgBurnConsumption) MarshalToSizedBuffer(dAtA []byte) (int, error) {
i := len(dAtA)
_ = i
var l int
_ = l
if len(m.Consumption) > 0 {
for iNdEx := len(m.Consumption) - 1; iNdEx >= 0; iNdEx-- {
{
size, err := m.Consumption[iNdEx].MarshalToSizedBuffer(dAtA[:i])
if err != nil {
return 0, err
}
i -= size
i = encodeVarintTx(dAtA, i, uint64(size))
}
i--
dAtA[i] = 0x12
}
}
if len(m.Creator) > 0 {
i -= len(m.Creator)
copy(dAtA[i:], m.Creator)
i = encodeVarintTx(dAtA, i, uint64(len(m.Creator)))
i--
dAtA[i] = 0xa
}
return len(dAtA) - i, nil
}
func (m *MsgBurnConsumptionResponse) Marshal() (dAtA []byte, err error) {
size := m.Size()
dAtA = make([]byte, size)
n, err := m.MarshalToSizedBuffer(dAtA[:size])
if err != nil {
return nil, err
}
return dAtA[:n], nil
}
func (m *MsgBurnConsumptionResponse) MarshalTo(dAtA []byte) (int, error) {
size := m.Size()
return m.MarshalToSizedBuffer(dAtA[:size])
}
func (m *MsgBurnConsumptionResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) {
i := len(dAtA)
_ = i
var l int
_ = l
return len(dAtA) - i, nil
}
func encodeVarintTx(dAtA []byte, offset int, v uint64) int {
offset -= sovTx(v)
base := offset
@ -1224,6 +1420,34 @@ func (m *MsgMintProductionResponse) Size() (n int) {
return n
}
func (m *MsgBurnConsumption) Size() (n int) {
if m == nil {
return 0
}
var l int
_ = l
l = len(m.Creator)
if l > 0 {
n += 1 + l + sovTx(uint64(l))
}
if len(m.Consumption) > 0 {
for _, e := range m.Consumption {
l = e.Size()
n += 1 + l + sovTx(uint64(l))
}
}
return n
}
func (m *MsgBurnConsumptionResponse) Size() (n int) {
if m == nil {
return 0
}
var l int
_ = l
return n
}
func sovTx(x uint64) (n int) {
return (math_bits.Len64(x|1) + 6) / 7
}
@ -2065,6 +2289,172 @@ func (m *MsgMintProductionResponse) Unmarshal(dAtA []byte) error {
}
return nil
}
func (m *MsgBurnConsumption) Unmarshal(dAtA []byte) error {
l := len(dAtA)
iNdEx := 0
for iNdEx < l {
preIndex := iNdEx
var wire uint64
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
return ErrIntOverflowTx
}
if iNdEx >= l {
return io.ErrUnexpectedEOF
}
b := dAtA[iNdEx]
iNdEx++
wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
}
fieldNum := int32(wire >> 3)
wireType := int(wire & 0x7)
if wireType == 4 {
return fmt.Errorf("proto: MsgBurnConsumption: wiretype end group for non-group")
}
if fieldNum <= 0 {
return fmt.Errorf("proto: MsgBurnConsumption: illegal tag %d (wire type %d)", fieldNum, wire)
}
switch fieldNum {
case 1:
if wireType != 2 {
return fmt.Errorf("proto: wrong wireType = %d for field Creator", wireType)
}
var stringLen uint64
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
return ErrIntOverflowTx
}
if iNdEx >= l {
return io.ErrUnexpectedEOF
}
b := dAtA[iNdEx]
iNdEx++
stringLen |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
}
intStringLen := int(stringLen)
if intStringLen < 0 {
return ErrInvalidLengthTx
}
postIndex := iNdEx + intStringLen
if postIndex < 0 {
return ErrInvalidLengthTx
}
if postIndex > l {
return io.ErrUnexpectedEOF
}
m.Creator = string(dAtA[iNdEx:postIndex])
iNdEx = postIndex
case 2:
if wireType != 2 {
return fmt.Errorf("proto: wrong wireType = %d for field Consumption", wireType)
}
var msglen int
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
return ErrIntOverflowTx
}
if iNdEx >= l {
return io.ErrUnexpectedEOF
}
b := dAtA[iNdEx]
iNdEx++
msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
}
if msglen < 0 {
return ErrInvalidLengthTx
}
postIndex := iNdEx + msglen
if postIndex < 0 {
return ErrInvalidLengthTx
}
if postIndex > l {
return io.ErrUnexpectedEOF
}
m.Consumption = append(m.Consumption, types.Coin{})
if err := m.Consumption[len(m.Consumption)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
return err
}
iNdEx = postIndex
default:
iNdEx = preIndex
skippy, err := skipTx(dAtA[iNdEx:])
if err != nil {
return err
}
if (skippy < 0) || (iNdEx+skippy) < 0 {
return ErrInvalidLengthTx
}
if (iNdEx + skippy) > l {
return io.ErrUnexpectedEOF
}
iNdEx += skippy
}
}
if iNdEx > l {
return io.ErrUnexpectedEOF
}
return nil
}
func (m *MsgBurnConsumptionResponse) Unmarshal(dAtA []byte) error {
l := len(dAtA)
iNdEx := 0
for iNdEx < l {
preIndex := iNdEx
var wire uint64
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
return ErrIntOverflowTx
}
if iNdEx >= l {
return io.ErrUnexpectedEOF
}
b := dAtA[iNdEx]
iNdEx++
wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
}
fieldNum := int32(wire >> 3)
wireType := int(wire & 0x7)
if wireType == 4 {
return fmt.Errorf("proto: MsgBurnConsumptionResponse: wiretype end group for non-group")
}
if fieldNum <= 0 {
return fmt.Errorf("proto: MsgBurnConsumptionResponse: illegal tag %d (wire type %d)", fieldNum, wire)
}
switch fieldNum {
default:
iNdEx = preIndex
skippy, err := skipTx(dAtA[iNdEx:])
if err != nil {
return err
}
if (skippy < 0) || (iNdEx+skippy) < 0 {
return ErrInvalidLengthTx
}
if (iNdEx + skippy) > l {
return io.ErrUnexpectedEOF
}
iNdEx += skippy
}
}
if iNdEx > l {
return io.ErrUnexpectedEOF
}
return nil
}
func skipTx(dAtA []byte) (n int, err error) {
l := len(dAtA)
iNdEx := 0