syntax = "proto3";
package osmosis.tokenfactory.v1beta1;

import "gogoproto/gogo.proto";
import "cosmos/base/v1beta1/coin.proto";
import "cosmos/bank/v1beta1/bank.proto";
import "osmosis/tokenfactory/v1beta1/params.proto";
import "cosmos/msg/v1/msg.proto";
import "cosmos_proto/cosmos.proto";

option go_package = "github.com/CosmosContracts/juno/x/tokenfactory/types";

// Msg defines the tokefactory module's gRPC message service.
service Msg {
  rpc CreateDenom(MsgCreateDenom) returns (MsgCreateDenomResponse);
  rpc Mint(MsgMint) returns (MsgMintResponse);
  rpc Burn(MsgBurn) returns (MsgBurnResponse);
  rpc ChangeAdmin(MsgChangeAdmin) returns (MsgChangeAdminResponse);
  rpc SetDenomMetadata(MsgSetDenomMetadata)
      returns (MsgSetDenomMetadataResponse);
  rpc ForceTransfer(MsgForceTransfer) returns (MsgForceTransferResponse);

  // UpdateParams defines a governance operation for updating the x/mint module
  // parameters. The authority is hard-coded to the x/gov module account.
  //
  // Since: cosmos-sdk 0.47
  rpc UpdateParams(MsgUpdateParams) returns (MsgUpdateParamsResponse);
}

// MsgCreateDenom defines the message structure for the CreateDenom gRPC service
// method. It allows an account to create a new denom. It requires a sender
// address and a sub denomination. The (sender_address, sub_denomination) tuple
// must be unique and cannot be re-used.
//
// The resulting denom created is defined as
// <factory/{creatorAddress}/{subdenom}>. The resulting denom's admin is
// originally set to be the creator, but this can be changed later. The token
// denom does not indicate the current admin.
message MsgCreateDenom {
  string sender = 1 [ (gogoproto.moretags) = "yaml:\"sender\"" ];
  // subdenom can be up to 44 "alphanumeric" characters long.
  string subdenom = 2 [ (gogoproto.moretags) = "yaml:\"subdenom\"" ];
}

// MsgCreateDenomResponse is the return value of MsgCreateDenom
// It returns the full string of the newly created denom
message MsgCreateDenomResponse {
  string new_token_denom = 1
      [ (gogoproto.moretags) = "yaml:\"new_token_denom\"" ];
}

// MsgMint is the sdk.Msg type for allowing an admin account to mint
// more of a token.  For now, we only support minting to the sender account
message MsgMint {
  string sender = 1 [ (gogoproto.moretags) = "yaml:\"sender\"" ];
  cosmos.base.v1beta1.Coin amount = 2 [
    (gogoproto.moretags) = "yaml:\"amount\"",
    (gogoproto.nullable) = false
  ];
  string mintToAddress = 3
      [ (gogoproto.moretags) = "yaml:\"mint_to_address\"" ];
}

message MsgMintResponse {}

// MsgBurn is the sdk.Msg type for allowing an admin account to burn
// a token.  For now, we only support burning from the sender account.
message MsgBurn {
  string sender = 1 [ (gogoproto.moretags) = "yaml:\"sender\"" ];
  cosmos.base.v1beta1.Coin amount = 2 [
    (gogoproto.moretags) = "yaml:\"amount\"",
    (gogoproto.nullable) = false
  ];
  string burnFromAddress = 3
      [ (gogoproto.moretags) = "yaml:\"burn_from_address\"" ];
}

message MsgBurnResponse {}

// MsgChangeAdmin is the sdk.Msg type for allowing an admin account to reassign
// adminship of a denom to a new account
message MsgChangeAdmin {
  string sender = 1 [ (gogoproto.moretags) = "yaml:\"sender\"" ];
  string denom = 2 [ (gogoproto.moretags) = "yaml:\"denom\"" ];
  string new_admin = 3 [ (gogoproto.moretags) = "yaml:\"new_admin\"" ];
}

// MsgChangeAdminResponse defines the response structure for an executed
// MsgChangeAdmin message.
message MsgChangeAdminResponse {}

// MsgSetDenomMetadata is the sdk.Msg type for allowing an admin account to set
// the denom's bank metadata
message MsgSetDenomMetadata {
  string sender = 1 [ (gogoproto.moretags) = "yaml:\"sender\"" ];
  cosmos.bank.v1beta1.Metadata metadata = 2 [
    (gogoproto.moretags) = "yaml:\"metadata\"",
    (gogoproto.nullable) = false
  ];
}

// MsgSetDenomMetadataResponse defines the response structure for an executed
// MsgSetDenomMetadata message.
message MsgSetDenomMetadataResponse {}

message MsgForceTransfer {
  string sender = 1 [ (gogoproto.moretags) = "yaml:\"sender\"" ];
  cosmos.base.v1beta1.Coin amount = 2 [
    (gogoproto.moretags) = "yaml:\"amount\"",
    (gogoproto.nullable) = false
  ];
  string transferFromAddress = 3
      [ (gogoproto.moretags) = "yaml:\"transfer_from_address\"" ];
  string transferToAddress = 4
      [ (gogoproto.moretags) = "yaml:\"transfer_to_address\"" ];
}

message MsgForceTransferResponse {}

// MsgUpdateParams is the Msg/UpdateParams request type.
//
// Since: cosmos-sdk 0.47
message MsgUpdateParams {
  option (cosmos.msg.v1.signer) = "authority";

  // authority is the address of the governance account.
  string authority = 1 [ (cosmos_proto.scalar) = "cosmos.AddressString" ];

  // params defines the x/mint parameters to update.
  //
  // NOTE: All parameters must be supplied.
  Params params = 2 [ (gogoproto.nullable) = false ];
}

// MsgUpdateParamsResponse defines the response structure for executing a
// MsgUpdateParams message.
//
// Since: cosmos-sdk 0.47
message MsgUpdateParamsResponse {}

Synonyms

go-cyber/proto/cyber/clock/v1/tx.proto
go-cyber/proto/cyber/rank/v1beta1/tx.proto
go-cyber/proto/cyber/resources/v1beta1/tx.proto
space-pussy/proto/cyber/dmn/v1beta1/tx.proto
go-cyber/proto/cyber/bandwidth/v1beta1/tx.proto
space-pussy/proto/cyber/grid/v1beta1/tx.proto
go-cyber/proto/cyber/grid/v1beta1/tx.proto
go-cyber/proto/cyber/dmn/v1beta1/tx.proto
space-pussy/proto/cyber/graph/v1beta1/tx.proto
go-cyber/proto/cyber/graph/v1beta1/tx.proto
go-cyber/proto/cyber/liquidity/v1beta1/tx.proto
space-pussy/proto/cyber/resources/v1beta1/tx.proto
cyber-ts/packages/cyber-ts/proto/cosmos/gov/v1/tx.proto
cyber-ts/packages/cyber-ts/proto/cyber/resources/v1beta1/tx.proto
cyber-ts/packages/cyber-ts/proto/cosmos/bank/v1beta1/tx.proto
cyber-ts/packages/cyber-ts/proto/cosmos/staking/v1beta1/tx.proto
cyber-ts/packages/cyber-ts/proto/cosmos/authz/v1beta1/tx.proto
cyber-ts/packages/cyber-ts/proto/cosmos/upgrade/v1beta1/tx.proto
cyber-ts/packages/cyber-ts/proto/osmosis/tokenfactory/v1beta1/tx.proto
cyber-ts/packages/cyber-ts/proto/cosmos/tx/v1beta1/tx.proto
cyber-ts/packages/cyber-ts/proto/cosmos/nft/v1beta1/tx.proto
cyber-ts/packages/cyber-ts/proto/cyber/rank/v1beta1/tx.proto
cyber-ts/packages/cyber-ts/proto/cyber/grid/v1beta1/tx.proto
cyber-ts/packages/cyber-ts/proto/cosmos/distribution/v1beta1/tx.proto
cyber-ts/packages/cyber-ts/proto/cosmos/evidence/v1beta1/tx.proto
cyber-ts/packages/cyber-ts/proto/cyber/liquidity/v1beta1/tx.proto
cyber-ts/packages/cyber-ts/proto/cosmwasm/wasm/v1/tx.proto
cyber-ts/packages/cyber-ts/proto/cyber/clock/v1/tx.proto
cyber-ts/packages/cyber-ts/proto/cosmos/slashing/v1beta1/tx.proto
cyber-ts/packages/cyber-ts/proto/cyber/graph/v1beta1/tx.proto
cyber-ts/packages/cyber-ts/proto/cosmos/group/v1/tx.proto
cyber-ts/packages/cyber-ts/proto/cosmos/gov/v1beta1/tx.proto
cyber-ts/packages/cyber-ts/proto/cosmos/crisis/v1beta1/tx.proto
cyber-ts/packages/cyber-ts/proto/cyber/dmn/v1beta1/tx.proto
cyber-ts/packages/cyber-ts/proto/cyber/bandwidth/v1beta1/tx.proto
cyber-ts/packages/cyber-ts/proto/cosmos/vesting/v1beta1/tx.proto
cyber-ts/packages/cyber-ts/proto/cosmos/feegrant/v1beta1/tx.proto

Neighbours