1// SPDX-License-Identifier: OTHER2// This code is automatically generated34pragma solidity >=0.8.0 <0.9.0;56// Anonymous struct7struct Tuple0 {8 address field_0;9 uint256 field_1;10}1112// Common stubs holder13contract Dummy {14 uint8 dummy;15 string stub_error = "this contract is implemented in native";16}1718contract ERC165 is Dummy {19 function supportsInterface(bytes4 interfaceID)20 external21 view22 returns (bool)23 {24 require(false, stub_error);25 interfaceID;26 return true;27 }28}2930// Inline31contract ERC20Events {32 event Transfer(address indexed from, address indexed to, uint256 value);33 event Approval(34 address indexed owner,35 address indexed spender,36 uint256 value37 );38}3940// Selector: 40c10f1941contract ERC20Mintable is Dummy, ERC165 {42 // Selector: mint(address,uint256) 40c10f1943 function mint(address to, uint256 amount) public returns (bool) {44 require(false, stub_error);45 to;46 amount;47 dummy = 0;48 return false;49 }50}5152// Selector: 63034ac553contract ERC20UniqueExtensions is Dummy, ERC165 {54 // Selector: burnFrom(address,uint256) 79cc679055 function burnFrom(address from, uint256 amount) public returns (bool) {56 require(false, stub_error);57 from;58 amount;59 dummy = 0;60 return false;61 }6263 // Selector: mintBulk((address,uint256)[]) 1acf2d5564 function mintBulk(Tuple0[] memory amounts) public returns (bool) {65 require(false, stub_error);66 amounts;67 dummy = 0;68 return false;69 }70}7172// Selector: 6cf113cd73contract Collection is Dummy, ERC165 {74 /// Set collection property.75 ///76 /// @param key Property key.77 /// @param value Propery value.78 /// @dev EVM selector for this function is: 0x2f073f66,79 /// or in textual repr: setCollectionProperty(string,bytes)80 function setCollectionProperty(string memory key, bytes memory value)81 public82 {83 require(false, stub_error);84 key;85 value;86 dummy = 0;87 }8889 /// Delete collection property.90 ///91 /// @param key Property key.92 /// @dev EVM selector for this function is: 0x7b7debce,93 /// or in textual repr: deleteCollectionProperty(string)94 function deleteCollectionProperty(string memory key) public {95 require(false, stub_error);96 key;97 dummy = 0;98 }99100 /// Get collection property.101 ///102 /// @dev Throws error if key not found.103 ///104 /// @param key Property key.105 /// @return bytes The property corresponding to the key.106 /// @dev EVM selector for this function is: 0xcf24fd6d,107 /// or in textual repr: collectionProperty(string)108 function collectionProperty(string memory key)109 public110 view111 returns (bytes memory)112 {113 require(false, stub_error);114 key;115 dummy;116 return hex"";117 }118119 /// Set the sponsor of the collection.120 ///121 /// @dev In order for sponsorship to work, it must be confirmed on behalf of the sponsor.122 ///123 /// @param sponsor Address of the sponsor from whose account funds will be debited for operations with the contract.124 /// @dev EVM selector for this function is: 0x7623402e,125 /// or in textual repr: setCollectionSponsor(address)126 function setCollectionSponsor(address sponsor) public {127 require(false, stub_error);128 sponsor;129 dummy = 0;130 }131132 /// Set the substrate sponsor of the collection.133 ///134 /// @dev In order for sponsorship to work, it must be confirmed on behalf of the sponsor.135 ///136 /// @param sponsor Substrate address of the sponsor from whose account funds will be debited for operations with the contract.137 /// @dev EVM selector for this function is: 0xc74d6751,138 /// or in textual repr: setCollectionSponsorSubstrate(uint256)139 function setCollectionSponsorSubstrate(uint256 sponsor) public {140 require(false, stub_error);141 sponsor;142 dummy = 0;143 }144145 /// @dev EVM selector for this function is: 0x058ac185,146 /// or in textual repr: hasCollectionPendingSponsor()147 function hasCollectionPendingSponsor() public view returns (bool) {148 require(false, stub_error);149 dummy;150 return false;151 }152153 /// Collection sponsorship confirmation.154 ///155 /// @dev After setting the sponsor for the collection, it must be confirmed with this function.156 /// @dev EVM selector for this function is: 0x3c50e97a,157 /// or in textual repr: confirmCollectionSponsorship()158 function confirmCollectionSponsorship() public {159 require(false, stub_error);160 dummy = 0;161 }162163 /// Remove collection sponsor.164 /// @dev EVM selector for this function is: 0x6e0326a3,165 /// or in textual repr: removeCollectionSponsor()166 function removeCollectionSponsor() public {167 require(false, stub_error);168 dummy = 0;169 }170171 /// Get current sponsor.172 ///173 /// @return Tuble with sponsor address and his substrate mirror. If there is no confirmed sponsor error "Contract has no sponsor" throw.174 /// @dev EVM selector for this function is: 0xb66bbc14,175 /// or in textual repr: getCollectionSponsor()176 function getCollectionSponsor() public view returns (Tuple6 memory) {177 require(false, stub_error);178 dummy;179 return Tuple6(0x0000000000000000000000000000000000000000, 0);180 }181182 /// Set limits for the collection.183 /// @dev Throws error if limit not found.184 /// @param limit Name of the limit. Valid names:185 /// "accountTokenOwnershipLimit",186 /// "sponsoredDataSize",187 /// "sponsoredDataRateLimit",188 /// "tokenLimit",189 /// "sponsorTransferTimeout",190 /// "sponsorApproveTimeout"191 /// @param value Value of the limit.192 /// @dev EVM selector for this function is: 0x6a3841db,193 /// or in textual repr: setCollectionLimit(string,uint32)194 function setCollectionLimit(string memory limit, uint32 value) public {195 require(false, stub_error);196 limit;197 value;198 dummy = 0;199 }200201 /// Set limits for the collection.202 /// @dev Throws error if limit not found.203 /// @param limit Name of the limit. Valid names:204 /// "ownerCanTransfer",205 /// "ownerCanDestroy",206 /// "transfersEnabled"207 /// @param value Value of the limit.208 /// @dev EVM selector for this function is: 0x993b7fba,209 /// or in textual repr: setCollectionLimit(string,bool)210 function setCollectionLimit(string memory limit, bool value) public {211 require(false, stub_error);212 limit;213 value;214 dummy = 0;215 }216217 /// Get contract address.218 /// @dev EVM selector for this function is: 0xf6b4dfb4,219 /// or in textual repr: contractAddress()220 function contractAddress() public view returns (address) {221 require(false, stub_error);222 dummy;223 return 0x0000000000000000000000000000000000000000;224 }225226 /// Add collection admin by substrate address.227 /// @param newAdmin Substrate administrator address.228 /// @dev EVM selector for this function is: 0x5730062b,229 /// or in textual repr: addCollectionAdminSubstrate(uint256)230 function addCollectionAdminSubstrate(uint256 newAdmin) public {231 require(false, stub_error);232 newAdmin;233 dummy = 0;234 }235236 /// Remove collection admin by substrate address.237 /// @param admin Substrate administrator address.238 /// @dev EVM selector for this function is: 0x4048fcf9,239 /// or in textual repr: removeCollectionAdminSubstrate(uint256)240 function removeCollectionAdminSubstrate(uint256 admin) public {241 require(false, stub_error);242 admin;243 dummy = 0;244 }245246 /// Add collection admin.247 /// @param newAdmin Address of the added administrator.248 /// @dev EVM selector for this function is: 0x92e462c7,249 /// or in textual repr: addCollectionAdmin(address)250 function addCollectionAdmin(address newAdmin) public {251 require(false, stub_error);252 newAdmin;253 dummy = 0;254 }255256 /// Remove collection admin.257 ///258 /// @param admin Address of the removed administrator.259 /// @dev EVM selector for this function is: 0xfafd7b42,260 /// or in textual repr: removeCollectionAdmin(address)261 function removeCollectionAdmin(address admin) public {262 require(false, stub_error);263 admin;264 dummy = 0;265 }266267 /// Toggle accessibility of collection nesting.268 ///269 /// @param enable If "true" degenerates to nesting: 'Owner' else to nesting: 'Disabled'270 /// @dev EVM selector for this function is: 0x112d4586,271 /// or in textual repr: setCollectionNesting(bool)272 function setCollectionNesting(bool enable) public {273 require(false, stub_error);274 enable;275 dummy = 0;276 }277278 /// Toggle accessibility of collection nesting.279 ///280 /// @param enable If "true" degenerates to nesting: {OwnerRestricted: [1, 2, 3]} else to nesting: 'Disabled'281 /// @param collections Addresses of collections that will be available for nesting.282 /// @dev EVM selector for this function is: 0x64872396,283 /// or in textual repr: setCollectionNesting(bool,address[])284 function setCollectionNesting(bool enable, address[] memory collections)285 public286 {287 require(false, stub_error);288 enable;289 collections;290 dummy = 0;291 }292293 /// Set the collection access method.294 /// @param mode Access mode295 /// 0 for Normal296 /// 1 for AllowList297 /// @dev EVM selector for this function is: 0x41835d4c,298 /// or in textual repr: setCollectionAccess(uint8)299 function setCollectionAccess(uint8 mode) public {300 require(false, stub_error);301 mode;302 dummy = 0;303 }304305 /// Add the user to the allowed list.306 ///307 /// @param user Address of a trusted user.308 /// @dev EVM selector for this function is: 0x67844fe6,309 /// or in textual repr: addToCollectionAllowList(address)310 function addToCollectionAllowList(address user) public {311 require(false, stub_error);312 user;313 dummy = 0;314 }315316 /// Remove the user from the allowed list.317 ///318 /// @param user Address of a removed user.319 /// @dev EVM selector for this function is: 0x85c51acb,320 /// or in textual repr: removeFromCollectionAllowList(address)321 function removeFromCollectionAllowList(address user) public {322 require(false, stub_error);323 user;324 dummy = 0;325 }326327 /// Switch permission for minting.328 ///329 /// @param mode Enable if "true".330 /// @dev EVM selector for this function is: 0x00018e84,331 /// or in textual repr: setCollectionMintMode(bool)332 function setCollectionMintMode(bool mode) public {333 require(false, stub_error);334 mode;335 dummy = 0;336 }337338 /// Check that account is the owner or admin of the collection339 ///340 /// @param user account to verify341 /// @return "true" if account is the owner or admin342 /// @dev EVM selector for this function is: 0x9811b0c7,343 /// or in textual repr: isOwnerOrAdmin(address)344 function isOwnerOrAdmin(address user) public view returns (bool) {345 require(false, stub_error);346 user;347 dummy;348 return false;349 }350351 /// Check that substrate account is the owner or admin of the collection352 ///353 /// @param user account to verify354 /// @return "true" if account is the owner or admin355 /// @dev EVM selector for this function is: 0x68910e00,356 /// or in textual repr: isOwnerOrAdminSubstrate(uint256)357 function isOwnerOrAdminSubstrate(uint256 user) public view returns (bool) {358 require(false, stub_error);359 user;360 dummy;361 return false;362 }363364 /// Returns collection type365 ///366 /// @return `Fungible` or `NFT` or `ReFungible`367 /// @dev EVM selector for this function is: 0xd34b55b8,368 /// or in textual repr: uniqueCollectionType()369 function uniqueCollectionType() public returns (string memory) {370 require(false, stub_error);371 dummy = 0;372 return "";373 }374375 /// Changes collection owner to another account376 ///377 /// @dev Owner can be changed only by current owner378 /// @param newOwner new owner account379 /// @dev EVM selector for this function is: 0x13af4035,380 /// or in textual repr: setOwner(address)381 function setOwner(address newOwner) public {382 require(false, stub_error);383 newOwner;384 dummy = 0;385 }386387 /// Changes collection owner to another substrate account388 ///389 /// @dev Owner can be changed only by current owner390 /// @param newOwner new owner substrate account391 /// @dev EVM selector for this function is: 0xb212138f,392 /// or in textual repr: setOwnerSubstrate(uint256)393 function setOwnerSubstrate(uint256 newOwner) public {394 require(false, stub_error);395 newOwner;396 dummy = 0;397 }398}399400/// @dev anonymous struct401struct Tuple6 {402 address field_0;403 uint256 field_1;404}405406/// @dev the ERC-165 identifier for this interface is 0x79cc6790407contract ERC20UniqueExtensions is Dummy, ERC165 {408 /// @dev EVM selector for this function is: 0x79cc6790,409 /// or in textual repr: burnFrom(address,uint256)410 function burnFrom(address from, uint256 amount) public returns (bool) {411 require(false, stub_error);412 from;413 amount;414 dummy = 0;415 return false;416 }417}418419/// @dev inlined interface420contract ERC20Events {421 event Transfer(address indexed from, address indexed to, uint256 value);422 event Approval(423 address indexed owner,424 address indexed spender,425 uint256 value426 );427}428429/// @dev the ERC-165 identifier for this interface is 0x942e8b22430contract ERC20 is Dummy, ERC165, ERC20Events {431 /// @dev EVM selector for this function is: 0x06fdde03,432 /// or in textual repr: name()433 function name() public view returns (string memory) {434 require(false, stub_error);435 dummy;436 return "";437 }438439 /// @dev EVM selector for this function is: 0x95d89b41,440 /// or in textual repr: symbol()441 function symbol() public view returns (string memory) {442 require(false, stub_error);443 dummy;444 return "";445 }446447 /// @dev EVM selector for this function is: 0x18160ddd,448 /// or in textual repr: totalSupply()449 function totalSupply() public view returns (uint256) {450 require(false, stub_error);451 dummy;452 return 0;453 }454455 /// @dev EVM selector for this function is: 0x313ce567,456 /// or in textual repr: decimals()457 function decimals() public view returns (uint8) {458 require(false, stub_error);459 dummy;460 return 0;461 }462463 /// @dev EVM selector for this function is: 0x70a08231,464 /// or in textual repr: balanceOf(address)465 function balanceOf(address owner) public view returns (uint256) {466 require(false, stub_error);467 owner;468 dummy;469 return 0;470 }471472 /// @dev EVM selector for this function is: 0xa9059cbb,473 /// or in textual repr: transfer(address,uint256)474 function transfer(address to, uint256 amount) public returns (bool) {475 require(false, stub_error);476 to;477 amount;478 dummy = 0;479 return false;480 }481482 /// @dev EVM selector for this function is: 0x23b872dd,483 /// or in textual repr: transferFrom(address,address,uint256)484 function transferFrom(485 address from,486 address to,487 uint256 amount488 ) public returns (bool) {489 require(false, stub_error);490 from;491 to;492 amount;493 dummy = 0;494 return false;495 }496497 /// @dev EVM selector for this function is: 0x095ea7b3,498 /// or in textual repr: approve(address,uint256)499 function approve(address spender, uint256 amount) public returns (bool) {500 require(false, stub_error);501 spender;502 amount;503 dummy = 0;504 return false;505 }506507 /// @dev EVM selector for this function is: 0xdd62ed3e,508 /// or in textual repr: allowance(address,address)509 function allowance(address owner, address spender)510 public511 view512 returns (uint256)513 {514 require(false, stub_error);515 owner;516 spender;517 dummy;518 return 0;519 }520}521522contract UniqueFungible is523 Dummy,524 ERC165,525 ERC20,526 ERC20Mintable,527 ERC20UniqueExtensions,528 Collection529{}