1// SPDX-License-Identifier: OTHER2// This code is automatically generated34pragma solidity >=0.8.0 <0.9.0;56/// @dev common stubs holder7contract Dummy {8 uint8 dummy;9 string stub_error = "this contract is implemented in native";10}1112contract ERC165 is Dummy {13 function supportsInterface(bytes4 interfaceID) external view returns (bool) {14 require(false, stub_error);15 interfaceID;16 return true;17 }18}1920/// @title A contract that allows you to work with collections.21/// @dev the ERC-165 identifier for this interface is 0x324a7f5b22contract Collection is Dummy, ERC165 {23 // /// Set collection property.24 // ///25 // /// @param key Property key.26 // /// @param value Propery value.27 // /// @dev EVM selector for this function is: 0x2f073f66,28 // /// or in textual repr: setCollectionProperty(string,bytes)29 // function setCollectionProperty(string memory key, bytes memory value) public {30 // require(false, stub_error);31 // key;32 // value;33 // dummy = 0;34 // }3536 /// Set collection properties.37 ///38 /// @param properties Vector of properties key/value pair.39 /// @dev EVM selector for this function is: 0x50b26b2a,40 /// or in textual repr: setCollectionProperties((string,bytes)[])41 function setCollectionProperties(Property[] memory properties) public {42 require(false, stub_error);43 properties;44 dummy = 0;45 }4647 // /// Delete collection property.48 // ///49 // /// @param key Property key.50 // /// @dev EVM selector for this function is: 0x7b7debce,51 // /// or in textual repr: deleteCollectionProperty(string)52 // function deleteCollectionProperty(string memory key) public {53 // require(false, stub_error);54 // key;55 // dummy = 0;56 // }5758 /// Delete collection properties.59 ///60 /// @param keys Properties keys.61 /// @dev EVM selector for this function is: 0xee206ee3,62 /// or in textual repr: deleteCollectionProperties(string[])63 function deleteCollectionProperties(string[] memory keys) public {64 require(false, stub_error);65 keys;66 dummy = 0;67 }6869 /// Get collection property.70 ///71 /// @dev Throws error if key not found.72 ///73 /// @param key Property key.74 /// @return bytes The property corresponding to the key.75 /// @dev EVM selector for this function is: 0xcf24fd6d,76 /// or in textual repr: collectionProperty(string)77 function collectionProperty(string memory key) public view returns (bytes memory) {78 require(false, stub_error);79 key;80 dummy;81 return hex"";82 }8384 /// Get collection properties.85 ///86 /// @param keys Properties keys. Empty keys for all propertyes.87 /// @return Vector of properties key/value pairs.88 /// @dev EVM selector for this function is: 0x285fb8e6,89 /// or in textual repr: collectionProperties(string[])90 function collectionProperties(string[] memory keys) public view returns (Tuple16[] memory) {91 require(false, stub_error);92 keys;93 dummy;94 return new Tuple16[](0);95 }9697 // /// Set the sponsor of the collection.98 // ///99 // /// @dev In order for sponsorship to work, it must be confirmed on behalf of the sponsor.100 // ///101 // /// @param sponsor Address of the sponsor from whose account funds will be debited for operations with the contract.102 // /// @dev EVM selector for this function is: 0x7623402e,103 // /// or in textual repr: setCollectionSponsor(address)104 // function setCollectionSponsor(address sponsor) public {105 // require(false, stub_error);106 // sponsor;107 // dummy = 0;108 // }109110 /// Set the sponsor of the collection.111 ///112 /// @dev In order for sponsorship to work, it must be confirmed on behalf of the sponsor.113 ///114 /// @param sponsor Cross account address of the sponsor from whose account funds will be debited for operations with the contract.115 /// @dev EVM selector for this function is: 0x84a1d5a8,116 /// or in textual repr: setCollectionSponsorCross((address,uint256))117 function setCollectionSponsorCross(EthCrossAccount memory sponsor) public {118 require(false, stub_error);119 sponsor;120 dummy = 0;121 }122123 /// Whether there is a pending sponsor.124 /// @dev EVM selector for this function is: 0x058ac185,125 /// or in textual repr: hasCollectionPendingSponsor()126 function hasCollectionPendingSponsor() public view returns (bool) {127 require(false, stub_error);128 dummy;129 return false;130 }131132 /// Collection sponsorship confirmation.133 ///134 /// @dev After setting the sponsor for the collection, it must be confirmed with this function.135 /// @dev EVM selector for this function is: 0x3c50e97a,136 /// or in textual repr: confirmCollectionSponsorship()137 function confirmCollectionSponsorship() public {138 require(false, stub_error);139 dummy = 0;140 }141142 /// Remove collection sponsor.143 /// @dev EVM selector for this function is: 0x6e0326a3,144 /// or in textual repr: removeCollectionSponsor()145 function removeCollectionSponsor() public {146 require(false, stub_error);147 dummy = 0;148 }149150 /// Get current sponsor.151 ///152 /// @return Tuble with sponsor address and his substrate mirror. If there is no confirmed sponsor error "Contract has no sponsor" throw.153 /// @dev EVM selector for this function is: 0x6ec0a9f1,154 /// or in textual repr: collectionSponsor()155 function collectionSponsor() public view returns (Tuple8 memory) {156 require(false, stub_error);157 dummy;158 return Tuple8(0x0000000000000000000000000000000000000000, 0);159 }160161 /// Set limits for the collection.162 /// @dev Throws error if limit not found.163 /// @param limit Name of the limit. Valid names:164 /// "accountTokenOwnershipLimit",165 /// "sponsoredDataSize",166 /// "sponsoredDataRateLimit",167 /// "tokenLimit",168 /// "sponsorTransferTimeout",169 /// "sponsorApproveTimeout"170 /// @param value Value of the limit.171 /// @dev EVM selector for this function is: 0x6a3841db,172 /// or in textual repr: setCollectionLimit(string,uint32)173 function setCollectionLimit(string memory limit, uint32 value) public {174 require(false, stub_error);175 limit;176 value;177 dummy = 0;178 }179180 /// Set limits for the collection.181 /// @dev Throws error if limit not found.182 /// @param limit Name of the limit. Valid names:183 /// "ownerCanTransfer",184 /// "ownerCanDestroy",185 /// "transfersEnabled"186 /// @param value Value of the limit.187 /// @dev EVM selector for this function is: 0x993b7fba,188 /// or in textual repr: setCollectionLimit(string,bool)189 function setCollectionLimit(string memory limit, bool value) public {190 require(false, stub_error);191 limit;192 value;193 dummy = 0;194 }195196 /// Get contract address.197 /// @dev EVM selector for this function is: 0xf6b4dfb4,198 /// or in textual repr: contractAddress()199 function contractAddress() public view returns (address) {200 require(false, stub_error);201 dummy;202 return 0x0000000000000000000000000000000000000000;203 }204205 /// Add collection admin.206 /// @param newAdmin Cross account administrator address.207 /// @dev EVM selector for this function is: 0x859aa7d6,208 /// or in textual repr: addCollectionAdminCross((address,uint256))209 function addCollectionAdminCross(EthCrossAccount memory newAdmin) public {210 require(false, stub_error);211 newAdmin;212 dummy = 0;213 }214215 /// Remove collection admin.216 /// @param admin Cross account administrator address.217 /// @dev EVM selector for this function is: 0x6c0cd173,218 /// or in textual repr: removeCollectionAdminCross((address,uint256))219 function removeCollectionAdminCross(EthCrossAccount memory admin) public {220 require(false, stub_error);221 admin;222 dummy = 0;223 }224225 // /// Add collection admin.226 // /// @param newAdmin Address of the added administrator.227 // /// @dev EVM selector for this function is: 0x92e462c7,228 // /// or in textual repr: addCollectionAdmin(address)229 // function addCollectionAdmin(address newAdmin) public {230 // require(false, stub_error);231 // newAdmin;232 // dummy = 0;233 // }234235 // /// Remove collection admin.236 // ///237 // /// @param admin Address of the removed administrator.238 // /// @dev EVM selector for this function is: 0xfafd7b42,239 // /// or in textual repr: removeCollectionAdmin(address)240 // function removeCollectionAdmin(address admin) public {241 // require(false, stub_error);242 // admin;243 // dummy = 0;244 // }245246 /// Toggle accessibility of collection nesting.247 ///248 /// @param enable If "true" degenerates to nesting: 'Owner' else to nesting: 'Disabled'249 /// @dev EVM selector for this function is: 0x112d4586,250 /// or in textual repr: setCollectionNesting(bool)251 function setCollectionNesting(bool enable) public {252 require(false, stub_error);253 enable;254 dummy = 0;255 }256257 /// Toggle accessibility of collection nesting.258 ///259 /// @param enable If "true" degenerates to nesting: {OwnerRestricted: [1, 2, 3]} else to nesting: 'Disabled'260 /// @param collections Addresses of collections that will be available for nesting.261 /// @dev EVM selector for this function is: 0x64872396,262 /// or in textual repr: setCollectionNesting(bool,address[])263 function setCollectionNesting(bool enable, address[] memory collections) public {264 require(false, stub_error);265 enable;266 collections;267 dummy = 0;268 }269270 /// Set the collection access method.271 /// @param mode Access mode272 /// 0 for Normal273 /// 1 for AllowList274 /// @dev EVM selector for this function is: 0x41835d4c,275 /// or in textual repr: setCollectionAccess(uint8)276 function setCollectionAccess(uint8 mode) public {277 require(false, stub_error);278 mode;279 dummy = 0;280 }281282 /// Checks that user allowed to operate with collection.283 ///284 /// @param user User address to check.285 /// @dev EVM selector for this function is: 0xd63a8e11,286 /// or in textual repr: allowed(address)287 function allowed(address user) public view returns (bool) {288 require(false, stub_error);289 user;290 dummy;291 return false;292 }293294 // /// Add the user to the allowed list.295 // ///296 // /// @param user Address of a trusted user.297 // /// @dev EVM selector for this function is: 0x67844fe6,298 // /// or in textual repr: addToCollectionAllowList(address)299 // function addToCollectionAllowList(address user) public {300 // require(false, stub_error);301 // user;302 // dummy = 0;303 // }304305 /// Add user to allowed list.306 ///307 /// @param user User cross account address.308 /// @dev EVM selector for this function is: 0xa0184a3a,309 /// or in textual repr: addToCollectionAllowListCross((address,uint256))310 function addToCollectionAllowListCross(EthCrossAccount memory 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 /// Remove user from allowed list.328 ///329 /// @param user User cross account address.330 /// @dev EVM selector for this function is: 0x09ba452a,331 /// or in textual repr: removeFromCollectionAllowListCross((address,uint256))332 function removeFromCollectionAllowListCross(EthCrossAccount memory user) public {333 require(false, stub_error);334 user;335 dummy = 0;336 }337338 /// Switch permission for minting.339 ///340 /// @param mode Enable if "true".341 /// @dev EVM selector for this function is: 0x00018e84,342 /// or in textual repr: setCollectionMintMode(bool)343 function setCollectionMintMode(bool mode) public {344 require(false, stub_error);345 mode;346 dummy = 0;347 }348349 // /// Check that account is the owner or admin of the collection350 // ///351 // /// @param user account to verify352 // /// @return "true" if account is the owner or admin353 // /// @dev EVM selector for this function is: 0x9811b0c7,354 // /// or in textual repr: isOwnerOrAdmin(address)355 // function isOwnerOrAdmin(address user) public view returns (bool) {356 // require(false, stub_error);357 // user;358 // dummy;359 // return false;360 // }361362 /// Check that account is the owner or admin of the collection363 ///364 /// @param user User cross account to verify365 /// @return "true" if account is the owner or admin366 /// @dev EVM selector for this function is: 0x3e75a905,367 /// or in textual repr: isOwnerOrAdminCross((address,uint256))368 function isOwnerOrAdminCross(EthCrossAccount memory user) public view returns (bool) {369 require(false, stub_error);370 user;371 dummy;372 return false;373 }374375 /// Returns collection type376 ///377 /// @return `Fungible` or `NFT` or `ReFungible`378 /// @dev EVM selector for this function is: 0xd34b55b8,379 /// or in textual repr: uniqueCollectionType()380 function uniqueCollectionType() public view returns (string memory) {381 require(false, stub_error);382 dummy;383 return "";384 }385386 /// Get collection owner.387 ///388 /// @return Tuble with sponsor address and his substrate mirror.389 /// If address is canonical then substrate mirror is zero and vice versa.390 /// @dev EVM selector for this function is: 0xdf727d3b,391 /// or in textual repr: collectionOwner()392 function collectionOwner() public view returns (EthCrossAccount memory) {393 require(false, stub_error);394 dummy;395 return EthCrossAccount(0x0000000000000000000000000000000000000000, 0);396 }397398 // /// Changes collection owner to another account399 // ///400 // /// @dev Owner can be changed only by current owner401 // /// @param newOwner new owner account402 // /// @dev EVM selector for this function is: 0x4f53e226,403 // /// or in textual repr: changeCollectionOwner(address)404 // function changeCollectionOwner(address newOwner) public {405 // require(false, stub_error);406 // newOwner;407 // dummy = 0;408 // }409410 /// Get collection administrators411 ///412 /// @return Vector of tuples with admins address and his substrate mirror.413 /// If address is canonical then substrate mirror is zero and vice versa.414 /// @dev EVM selector for this function is: 0x5813216b,415 /// or in textual repr: collectionAdmins()416 function collectionAdmins() public view returns (EthCrossAccount[] memory) {417 require(false, stub_error);418 dummy;419 return new EthCrossAccount[](0);420 }421422 /// Changes collection owner to another account423 ///424 /// @dev Owner can be changed only by current owner425 /// @param newOwner new owner cross account426 /// @dev EVM selector for this function is: 0x6496c497,427 /// or in textual repr: changeCollectionOwnerCross((address,uint256))428 function changeCollectionOwnerCross(EthCrossAccount memory newOwner) public {429 require(false, stub_error);430 newOwner;431 dummy = 0;432 }433}434435/// @dev Cross account struct436struct EthCrossAccount {437 address eth;438 uint256 sub;439}440441/// @dev anonymous struct442struct Tuple16 {443 string field_0;444 bytes field_1;445}446447/// @dev Property struct448struct Property {449 string key;450 bytes value;451}452453/// @dev the ERC-165 identifier for this interface is 0x29f4dcd9454contract ERC20UniqueExtensions is Dummy, ERC165 {455 /// @dev EVM selector for this function is: 0x0ecd0ab0,456 /// or in textual repr: approveCross((address,uint256),uint256)457 function approveCross(EthCrossAccount memory spender, uint256 amount) public returns (bool) {458 require(false, stub_error);459 spender;460 amount;461 dummy = 0;462 return false;463 }464465 // /// Burn tokens from account466 // /// @dev Function that burns an `amount` of the tokens of a given account,467 // /// deducting from the sender's allowance for said account.468 // /// @param from The account whose tokens will be burnt.469 // /// @param amount The amount that will be burnt.470 // /// @dev EVM selector for this function is: 0x79cc6790,471 // /// or in textual repr: burnFrom(address,uint256)472 // function burnFrom(address from, uint256 amount) public returns (bool) {473 // require(false, stub_error);474 // from;475 // amount;476 // dummy = 0;477 // return false;478 // }479480 /// Burn tokens from account481 /// @dev Function that burns an `amount` of the tokens of a given account,482 /// deducting from the sender's allowance for said account.483 /// @param from The account whose tokens will be burnt.484 /// @param amount The amount that will be burnt.485 /// @dev EVM selector for this function is: 0xbb2f5a58,486 /// or in textual repr: burnFromCross((address,uint256),uint256)487 function burnFromCross(EthCrossAccount memory from, uint256 amount) public returns (bool) {488 require(false, stub_error);489 from;490 amount;491 dummy = 0;492 return false;493 }494495 /// Mint tokens for multiple accounts.496 /// @param amounts array of pairs of account address and amount497 /// @dev EVM selector for this function is: 0x1acf2d55,498 /// or in textual repr: mintBulk((address,uint256)[])499 function mintBulk(Tuple8[] memory amounts) public returns (bool) {500 require(false, stub_error);501 amounts;502 dummy = 0;503 return false;504 }505506 /// @dev EVM selector for this function is: 0x2ada85ff,507 /// or in textual repr: transferCross((address,uint256),uint256)508 function transferCross(EthCrossAccount memory to, uint256 amount) public returns (bool) {509 require(false, stub_error);510 to;511 amount;512 dummy = 0;513 return false;514 }515516 /// @dev EVM selector for this function is: 0xd5cf430b,517 /// or in textual repr: transferFromCross((address,uint256),(address,uint256),uint256)518 function transferFromCross(519 EthCrossAccount memory from,520 EthCrossAccount memory to,521 uint256 amount522 ) public returns (bool) {523 require(false, stub_error);524 from;525 to;526 amount;527 dummy = 0;528 return false;529 }530}531532/// @dev anonymous struct533struct Tuple8 {534 address field_0;535 uint256 field_1;536}537538/// @dev the ERC-165 identifier for this interface is 0x40c10f19539contract ERC20Mintable is Dummy, ERC165 {540 /// Mint tokens for `to` account.541 /// @param to account that will receive minted tokens542 /// @param amount amount of tokens to mint543 /// @dev EVM selector for this function is: 0x40c10f19,544 /// or in textual repr: mint(address,uint256)545 function mint(address to, uint256 amount) public returns (bool) {546 require(false, stub_error);547 to;548 amount;549 dummy = 0;550 return false;551 }552}553554/// @dev inlined interface555contract ERC20Events {556 event Transfer(address indexed from, address indexed to, uint256 value);557 event Approval(address indexed owner, address indexed spender, uint256 value);558}559560/// @dev the ERC-165 identifier for this interface is 0x942e8b22561contract ERC20 is Dummy, ERC165, ERC20Events {562 /// @dev EVM selector for this function is: 0x06fdde03,563 /// or in textual repr: name()564 function name() public view returns (string memory) {565 require(false, stub_error);566 dummy;567 return "";568 }569570 /// @dev EVM selector for this function is: 0x95d89b41,571 /// or in textual repr: symbol()572 function symbol() public view returns (string memory) {573 require(false, stub_error);574 dummy;575 return "";576 }577578 /// @dev EVM selector for this function is: 0x18160ddd,579 /// or in textual repr: totalSupply()580 function totalSupply() public view returns (uint256) {581 require(false, stub_error);582 dummy;583 return 0;584 }585586 /// @dev EVM selector for this function is: 0x313ce567,587 /// or in textual repr: decimals()588 function decimals() public view returns (uint8) {589 require(false, stub_error);590 dummy;591 return 0;592 }593594 /// @dev EVM selector for this function is: 0x70a08231,595 /// or in textual repr: balanceOf(address)596 function balanceOf(address owner) public view returns (uint256) {597 require(false, stub_error);598 owner;599 dummy;600 return 0;601 }602603 /// @dev EVM selector for this function is: 0xa9059cbb,604 /// or in textual repr: transfer(address,uint256)605 function transfer(address to, uint256 amount) public returns (bool) {606 require(false, stub_error);607 to;608 amount;609 dummy = 0;610 return false;611 }612613 /// @dev EVM selector for this function is: 0x23b872dd,614 /// or in textual repr: transferFrom(address,address,uint256)615 function transferFrom(616 address from,617 address to,618 uint256 amount619 ) public returns (bool) {620 require(false, stub_error);621 from;622 to;623 amount;624 dummy = 0;625 return false;626 }627628 /// @dev EVM selector for this function is: 0x095ea7b3,629 /// or in textual repr: approve(address,uint256)630 function approve(address spender, uint256 amount) public returns (bool) {631 require(false, stub_error);632 spender;633 amount;634 dummy = 0;635 return false;636 }637638 /// @dev EVM selector for this function is: 0xdd62ed3e,639 /// or in textual repr: allowance(address,address)640 function allowance(address owner, address spender) public view returns (uint256) {641 require(false, stub_error);642 owner;643 spender;644 dummy;645 return 0;646 }647}648649contract UniqueFungible is Dummy, ERC165, ERC20, ERC20Mintable, ERC20UniqueExtensions, Collection {}