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 }