github.com/Finschia/finschia-sdk@v0.49.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 [deprecated = true];
    14    uint32 width_limit = 2 [deprecated = true];
    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 deprecated                          = true;
    34    option (gogoproto.goproto_getters)         = true;
    35    option (cosmos_proto.implements_interface) = "TokenClass";
    36  
    37    // id defines the unique identifier of the token class.
    38    // Note: size of the class id is 8 in length.
    39    // Note: token id of the fungible token would be `id` + `00000000`.
    40    string id = 1;
    41    // name defines the human-readable name of the token class.
    42    string name = 2;
    43    // meta is a brief description of the token class.
    44    string meta = 3;
    45    // decimals is the number of decimals which one must divide the amount by to get its user representation.
    46    int32 decimals = 4;
    47    // mintable represents whether the token class is allowed to mint or burn its tokens.
    48    bool mintable = 5;
    49  }
    50  
    51  // NFTClass defines the class of non-fungible token.
    52  //
    53  // Since: 0.46.0 (finschia)
    54  message NFTClass {
    55    option (gogoproto.goproto_getters)         = true;
    56    option (cosmos_proto.implements_interface) = "TokenClass";
    57  
    58    // id defines the unique identifier of the token class.
    59    // Note: size of the class id is 8 in length.
    60    string id = 1;
    61    // name defines the human-readable name of the token class.
    62    string name = 2;
    63    // meta is a brief description of the token class.
    64    string meta = 3;
    65  }
    66  
    67  // NFT defines the information of non-fungible token.
    68  //
    69  // Since: 0.46.0 (finschia)
    70  message NFT {
    71    // token id defines the unique identifier of the token.
    72    string token_id = 1;
    73    // name defines the human-readable name of the token.
    74    string name = 2;
    75    // meta is a brief description of the token.
    76    string meta = 3;
    77  }
    78  
    79  // Deprecated: use NFT
    80  //
    81  // OwnerNFT defines the information of non-fungible token.
    82  message OwnerNFT {
    83    option (cosmos_proto.implements_interface) = "Token";
    84  
    85    // contract id associated with the contract.
    86    string contract_id = 1;
    87    // id defines the unique identifier of the token.
    88    string token_id = 2;
    89    // name defines the human-readable name of the token.
    90    string name = 3;
    91    // meta is a brief description of the token.
    92    string meta = 4;
    93  
    94    // owner of the token.
    95    string owner = 5;
    96  }
    97  
    98  // FT defines the information of fungible token.
    99  message FT {
   100    option deprecated                          = true;
   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
   144        [(gogoproto.customtype) = "github.com/Finschia/finschia-sdk/types.Int", (gogoproto.nullable) = false];
   145  }
   146  
   147  // Grant defines permission given to a grantee.
   148  //
   149  // Since: 0.46.0 (finschia)
   150  message Grant {
   151    // address of the grantee.
   152    string grantee = 1;
   153    // permission on the contract.
   154    Permission permission = 2;
   155  }
   156  
   157  // Permission enumerates the valid permissions on a contract.
   158  enum Permission {
   159    option (gogoproto.goproto_enum_prefix) = false;
   160  
   161    // unspecified defines the default permission which is invalid.
   162    PERMISSION_UNSPECIFIED = 0 [(gogoproto.enumvalue_customname) = "PermissionUnspecified"];
   163  
   164    // PERMISSION_ISSUE defines a permission to create a token class.
   165    PERMISSION_ISSUE = 1 [(gogoproto.enumvalue_customname) = "PermissionIssue"];
   166    // PERMISSION_MODIFY defines a permission to modify a contract.
   167    PERMISSION_MODIFY = 2 [(gogoproto.enumvalue_customname) = "PermissionModify"];
   168    // PERMISSION_MINT defines a permission to mint tokens of a contract.
   169    PERMISSION_MINT = 3 [(gogoproto.enumvalue_customname) = "PermissionMint"];
   170    // PERMISSION_BURN defines a permission to burn tokens of a contract.
   171    PERMISSION_BURN = 4 [(gogoproto.enumvalue_customname) = "PermissionBurn"];
   172  }
   173  
   174  // Deprecated: use Permission
   175  //
   176  // LegacyPermission enumerates the valid permissions on a contract.
   177  enum LegacyPermission {
   178    option (gogoproto.goproto_enum_stringer) = false;
   179    option (gogoproto.goproto_enum_prefix)   = false;
   180  
   181    // unspecified defines the default permission which is invalid.
   182    LEGACY_PERMISSION_UNSPECIFIED = 0 [(gogoproto.enumvalue_customname) = "LegacyPermissionUnspecified"];
   183  
   184    // issue defines a permission to create a token class.
   185    LEGACY_PERMISSION_ISSUE = 1 [(gogoproto.enumvalue_customname) = "LegacyPermissionIssue"];
   186    // modify defines a permission to modify a contract.
   187    LEGACY_PERMISSION_MODIFY = 2 [(gogoproto.enumvalue_customname) = "LegacyPermissionModify"];
   188    // mint defines a permission to mint tokens of a contract.
   189    LEGACY_PERMISSION_MINT = 3 [(gogoproto.enumvalue_customname) = "LegacyPermissionMint"];
   190    // burn defines a permission to burn tokens of a contract.
   191    LEGACY_PERMISSION_BURN = 4 [(gogoproto.enumvalue_customname) = "LegacyPermissionBurn"];
   192  }
   193  
   194  // Authorization defines an authorization given to the operator on tokens of the holder.
   195  //
   196  // Since: 0.46.0 (finschia)
   197  message Authorization {
   198    // address of the holder which authorizes the manipulation of its tokens.
   199    string holder = 1;
   200    // address of the operator which the authorization is granted to.
   201    string operator = 2;
   202  }
   203  
   204  // Attribute defines a key and value of the attribute.
   205  //
   206  // Since: 0.46.0 (finschia)
   207  message Attribute {
   208    string key   = 1;
   209    string value = 2;
   210  }