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 }