github.com/Finschia/finschia-sdk@v0.48.1/proto/lbm/collection/v1/collection.proto (about)

     1  syntax = "proto3";
     2  package lbm.collection.v1;
     3  
     4  option go_package                      = "github.com/Finschia/finschia-sdk/x/collection";
     5  option (gogoproto.equal_all)           = false;
     6  option (gogoproto.goproto_getters_all) = false;
     7  
     8  import "gogoproto/gogo.proto";
     9  import "cosmos_proto/cosmos.proto";
    10  
    11  // Params defines the parameters for the collection module.
    12  message Params {
    13    uint32 depth_limit = 1;
    14    uint32 width_limit = 2;
    15  }
    16  
    17  // Contract defines the information of the contract for the collection.
    18  message Contract {
    19    // contract_id defines the unique identifier of the contract.
    20    string id = 1;
    21    // name defines the human-readable name of the contract.
    22    string name = 2;
    23    // meta is a brief description of the contract.
    24    string meta = 3;
    25    // uri for the contract image stored off chain.
    26    string uri = 4;
    27  }
    28  
    29  // FTClass defines the class of fungible token.
    30  //
    31  // Since: 0.46.0 (finschia)
    32  message FTClass {
    33    option (gogoproto.goproto_getters)         = true;
    34    option (cosmos_proto.implements_interface) = "TokenClass";
    35  
    36    // id defines the unique identifier of the token class.
    37    // Note: size of the class id is 8 in length.
    38    // Note: token id of the fungible token would be `id` + `00000000`.
    39    string id = 1;
    40    // name defines the human-readable name of the token class.
    41    string name = 2;
    42    // meta is a brief description of the token class.
    43    string meta = 3;
    44    // decimals is the number of decimals which one must divide the amount by to get its user representation.
    45    int32 decimals = 4;
    46    // mintable represents whether the token class is allowed to mint or burn its tokens.
    47    bool mintable = 5;
    48  }
    49  
    50  // NFTClass defines the class of non-fungible token.
    51  //
    52  // Since: 0.46.0 (finschia)
    53  message NFTClass {
    54    option (gogoproto.goproto_getters)         = true;
    55    option (cosmos_proto.implements_interface) = "TokenClass";
    56  
    57    // id defines the unique identifier of the token class.
    58    // Note: size of the class id is 8 in length.
    59    string id = 1;
    60    // name defines the human-readable name of the token class.
    61    string name = 2;
    62    // meta is a brief description of the token class.
    63    string meta = 3;
    64  }
    65  
    66  // NFT defines the information of non-fungible token.
    67  //
    68  // Since: 0.46.0 (finschia)
    69  message NFT {
    70    // token id defines the unique identifier of the token.
    71    string token_id = 1;
    72    // name defines the human-readable name of the token.
    73    string name = 2;
    74    // meta is a brief description of the token.
    75    string meta = 3;
    76  }
    77  
    78  // Deprecated: use NFT
    79  //
    80  // OwnerNFT defines the information of non-fungible token.
    81  message OwnerNFT {
    82    option (cosmos_proto.implements_interface) = "Token";
    83  
    84    // contract id associated with the contract.
    85    string contract_id = 1;
    86    // id defines the unique identifier of the token.
    87    string token_id = 2;
    88    // name defines the human-readable name of the token.
    89    string name = 3;
    90    // meta is a brief description of the token.
    91    string meta = 4;
    92  
    93    // owner of the token.
    94    string owner = 5;
    95  }
    96  
    97  // Deprecated: use FTClass
    98  //
    99  // FT defines the information of fungible token.
   100  message FT {
   101    option (cosmos_proto.implements_interface) = "Token";
   102  
   103    // contract id associated with the contract.
   104    string contract_id = 1;
   105    // token id defines the unique identifier of the fungible token.
   106    string token_id = 2;
   107    // name defines the human-readable name of the fungible token.
   108    string name = 3;
   109    // meta is a brief description of the fungible token.
   110    string meta = 4;
   111    // decimals is the number of decimals which one must divide the amount by to get its user representation.
   112    int32 decimals = 5;
   113    // mintable represents whether the fungible token is allowed to be minted or burnt.
   114    bool mintable = 6;
   115  }
   116  
   117  // Deprecated: use TokenClass
   118  //
   119  // TokenType defines the information of token type.
   120  // It represents a NFTClass whose class_id is token_type.
   121  //
   122  // Note: There is no TokenType instance for FTClass.
   123  message TokenType {
   124    // contract id associated with the contract.
   125    string contract_id = 1;
   126    // token type defines the unique identifier of the token type.
   127    // the format of the value is identical to that of class_id.
   128    string token_type = 2;
   129    // name defines the human-readable name of the token type.
   130    string name = 3;
   131    // meta is a brief description of the token type.
   132    string meta = 4;
   133  }
   134  
   135  // Coin defines a token with a token id and an amount.
   136  message Coin {
   137    option (gogoproto.goproto_stringer) = false;
   138    option (gogoproto.equal)            = true;
   139  
   140    // token id associated with the token.
   141    string token_id = 1;
   142    // amount of the token.
   143    string amount = 2 [(gogoproto.customtype) = "github.com/Finschia/finschia-sdk/types.Int", (gogoproto.nullable) = false];
   144  }
   145  
   146  // Grant defines permission given to a grantee.
   147  //
   148  // Since: 0.46.0 (finschia)
   149  message Grant {
   150    // address of the grantee.
   151    string grantee = 1;
   152    // permission on the contract.
   153    Permission permission = 2;
   154  }
   155  
   156  // Permission enumerates the valid permissions on a contract.
   157  enum Permission {
   158    option (gogoproto.goproto_enum_prefix) = false;
   159  
   160    // unspecified defines the default permission which is invalid.
   161    PERMISSION_UNSPECIFIED = 0 [(gogoproto.enumvalue_customname) = "PermissionUnspecified"];
   162  
   163    // PERMISSION_ISSUE defines a permission to create a token class.
   164    PERMISSION_ISSUE = 1 [(gogoproto.enumvalue_customname) = "PermissionIssue"];
   165    // PERMISSION_MODIFY defines a permission to modify a contract.
   166    PERMISSION_MODIFY = 2 [(gogoproto.enumvalue_customname) = "PermissionModify"];
   167    // PERMISSION_MINT defines a permission to mint tokens of a contract.
   168    PERMISSION_MINT = 3 [(gogoproto.enumvalue_customname) = "PermissionMint"];
   169    // PERMISSION_BURN defines a permission to burn tokens of a contract.
   170    PERMISSION_BURN = 4 [(gogoproto.enumvalue_customname) = "PermissionBurn"];
   171  }
   172  
   173  // Deprecated: use Permission
   174  //
   175  // LegacyPermission enumerates the valid permissions on a contract.
   176  enum LegacyPermission {
   177    option (gogoproto.goproto_enum_stringer) = false;
   178    option (gogoproto.goproto_enum_prefix)   = false;
   179  
   180    // unspecified defines the default permission which is invalid.
   181    LEGACY_PERMISSION_UNSPECIFIED = 0 [(gogoproto.enumvalue_customname) = "LegacyPermissionUnspecified"];
   182  
   183    // issue defines a permission to create a token class.
   184    LEGACY_PERMISSION_ISSUE = 1 [(gogoproto.enumvalue_customname) = "LegacyPermissionIssue"];
   185    // modify defines a permission to modify a contract.
   186    LEGACY_PERMISSION_MODIFY = 2 [(gogoproto.enumvalue_customname) = "LegacyPermissionModify"];
   187    // mint defines a permission to mint tokens of a contract.
   188    LEGACY_PERMISSION_MINT = 3 [(gogoproto.enumvalue_customname) = "LegacyPermissionMint"];
   189    // burn defines a permission to burn tokens of a contract.
   190    LEGACY_PERMISSION_BURN = 4 [(gogoproto.enumvalue_customname) = "LegacyPermissionBurn"];
   191  }
   192  
   193  // Authorization defines an authorization given to the operator on tokens of the holder.
   194  //
   195  // Since: 0.46.0 (finschia)
   196  message Authorization {
   197    // address of the holder which authorizes the manipulation of its tokens.
   198    string holder = 1;
   199    // address of the operator which the authorization is granted to.
   200    string operator = 2;
   201  }
   202  
   203  // Attribute defines a key and value of the attribute.
   204  //
   205  // Since: 0.46.0 (finschia)
   206  message Attribute {
   207    string key   = 1;
   208    string value = 2;
   209  }