git.delta.rocks / unique-network / refs/commits / 6a580826c34a

difftreelog

source

pallets/unique/src/eth/stubs/CollectionHelpers.sol9.7 KiBsourcehistory
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/// @dev inlined interface21contract CollectionHelpersEvents {22	event CollectionCreated(address indexed owner, address indexed collectionId);23	event CollectionDestroyed(address indexed collectionId);24	event CollectionChanged(address indexed collectionId);25}2627/// @title Contract, which allows users to operate with collections28/// @dev the ERC-165 identifier for this interface is 0x94e5af0d29contract CollectionHelpers is Dummy, ERC165, CollectionHelpersEvents {30	/// Create a collection31	/// @return address Address of the newly created collection32	/// @dev EVM selector for this function is: 0x72b5bea7,33	///  or in textual repr: createCollection((string,string,string,uint8,uint8,(string,bytes)[],(string,(uint8,bool)[])[],(address,uint256)[],(bool,bool,address[]),(uint8,uint256)[],(address,uint256),uint8))34	function createCollection(CreateCollectionData memory data) public payable returns (address) {35		require(false, stub_error);36		data;37		dummy = 0;38		return 0x0000000000000000000000000000000000000000;39	}4041	/// Create an NFT collection42	/// @param name Name of the collection43	/// @param description Informative description of the collection44	/// @param tokenPrefix Token prefix to represent the collection tokens in UI and user applications45	/// @return address Address of the newly created collection46	/// @dev EVM selector for this function is: 0x844af658,47	///  or in textual repr: createNFTCollection(string,string,string)48	function createNFTCollection(49		string memory name,50		string memory description,51		string memory tokenPrefix52	) public payable returns (address) {53		require(false, stub_error);54		name;55		description;56		tokenPrefix;57		dummy = 0;58		return 0x0000000000000000000000000000000000000000;59	}6061	// /// Create an NFT collection62	// /// @param name Name of the collection63	// /// @param description Informative description of the collection64	// /// @param tokenPrefix Token prefix to represent the collection tokens in UI and user applications65	// /// @return address Address of the newly created collection66	// /// @dev EVM selector for this function is: 0xe34a6844,67	// ///  or in textual repr: createNonfungibleCollection(string,string,string)68	// function createNonfungibleCollection(string memory name, string memory description, string memory tokenPrefix) public payable returns (address) {69	// 	require(false, stub_error);70	// 	name;71	// 	description;72	// 	tokenPrefix;73	// 	dummy = 0;74	// 	return 0x0000000000000000000000000000000000000000;75	// }7677	/// @dev EVM selector for this function is: 0xab173450,78	///  or in textual repr: createRFTCollection(string,string,string)79	function createRFTCollection(80		string memory name,81		string memory description,82		string memory tokenPrefix83	) public payable returns (address) {84		require(false, stub_error);85		name;86		description;87		tokenPrefix;88		dummy = 0;89		return 0x0000000000000000000000000000000000000000;90	}9192	/// @dev EVM selector for this function is: 0x7335b79f,93	///  or in textual repr: createFTCollection(string,uint8,string,string)94	function createFTCollection(95		string memory name,96		uint8 decimals,97		string memory description,98		string memory tokenPrefix99	) public payable returns (address) {100		require(false, stub_error);101		name;102		decimals;103		description;104		tokenPrefix;105		dummy = 0;106		return 0x0000000000000000000000000000000000000000;107	}108109	/// @dev EVM selector for this function is: 0x85624258,110	///  or in textual repr: makeCollectionERC721MetadataCompatible(address,string)111	function makeCollectionERC721MetadataCompatible(address collection, string memory baseUri) public {112		require(false, stub_error);113		collection;114		baseUri;115		dummy = 0;116	}117118	/// @dev EVM selector for this function is: 0x564e321f,119	///  or in textual repr: destroyCollection(address)120	function destroyCollection(address collectionAddress) public {121		require(false, stub_error);122		collectionAddress;123		dummy = 0;124	}125126	/// Check if a collection exists127	/// @param collectionAddress Address of the collection in question128	/// @return bool Does the collection exist?129	/// @dev EVM selector for this function is: 0xc3de1494,130	///  or in textual repr: isCollectionExist(address)131	function isCollectionExist(address collectionAddress) public view returns (bool) {132		require(false, stub_error);133		collectionAddress;134		dummy;135		return false;136	}137138	/// @dev EVM selector for this function is: 0xd23a7ab1,139	///  or in textual repr: collectionCreationFee()140	function collectionCreationFee() public view returns (uint256) {141		require(false, stub_error);142		dummy;143		return 0;144	}145146	/// Returns address of a collection.147	/// @param collectionId  - CollectionId  of the collection148	/// @return eth mirror address of the collection149	/// @dev EVM selector for this function is: 0x2e716683,150	///  or in textual repr: collectionAddress(uint32)151	function collectionAddress(uint32 collectionId) public view returns (address) {152		require(false, stub_error);153		collectionId;154		dummy;155		return 0x0000000000000000000000000000000000000000;156	}157158	/// Returns collectionId of a collection.159	/// @param collectionAddress  - Eth address of the collection160	/// @return collectionId of the collection161	/// @dev EVM selector for this function is: 0xb5cb7498,162	///  or in textual repr: collectionId(address)163	function collectionId(address collectionAddress) public view returns (uint32) {164		require(false, stub_error);165		collectionAddress;166		dummy;167		return 0;168	}169}170171/// Collection properties172struct CreateCollectionData {173	/// Collection name174	string name;175	/// Collection description176	string description;177	/// Token prefix178	string token_prefix;179	/// Token type (NFT, FT or RFT)180	CollectionMode mode;181	/// Fungible token precision182	uint8 decimals;183	/// Custom Properties184	Property[] properties;185	/// Permissions for token properties186	TokenPropertyPermission[] token_property_permissions;187	/// Collection admins188	CrossAddress[] admin_list;189	/// Nesting settings190	CollectionNestingAndPermission nesting_settings;191	/// Collection limits192	CollectionLimitValue[] limits;193	/// Collection sponsor194	CrossAddress pending_sponsor;195	/// Extra collection flags196	CollectionFlags flags;197}198199type CollectionFlags is uint8;200201library CollectionFlagsLib {202	/// A collection of foreign assets203	CollectionFlags constant foreignField = CollectionFlags.wrap(128);204	/// Supports ERC721Metadata205	CollectionFlags constant erc721metadataField = CollectionFlags.wrap(64);206	/// External collections can't be managed using `unique` api207	CollectionFlags constant externalField = CollectionFlags.wrap(1);208209	/// Reserved flags210	function reservedField(uint8 value) public pure returns (CollectionFlags) {211		require(value < 1 << 5, "out of bound value");212		return CollectionFlags.wrap(value << 1);213	}214}215216/// Cross account struct217struct CrossAddress {218	address eth;219	uint256 sub;220}221222/// [`CollectionLimits`](up_data_structs::CollectionLimits) field representation for EVM.223struct CollectionLimitValue {224	CollectionLimitField field;225	uint256 value;226}227228/// [`CollectionLimits`](up_data_structs::CollectionLimits) fields representation for EVM.229enum CollectionLimitField {230	/// How many tokens can a user have on one account.231	AccountTokenOwnership,232	/// How many bytes of data are available for sponsorship.233	SponsoredDataSize,234	/// In any case, chain default: [`SponsoringRateLimit::SponsoringDisabled`]235	SponsoredDataRateLimit,236	/// How many tokens can be mined into this collection.237	TokenLimit,238	/// Timeouts for transfer sponsoring.239	SponsorTransferTimeout,240	/// Timeout for sponsoring an approval in passed blocks.241	SponsorApproveTimeout,242	/// Whether the collection owner of the collection can send tokens (which belong to other users).243	OwnerCanTransfer,244	/// Can the collection owner burn other people's tokens.245	OwnerCanDestroy,246	/// Is it possible to send tokens from this collection between users.247	TransferEnabled248}249250/// Nested collections and permissions251struct CollectionNestingAndPermission {252	/// Owner of token can nest tokens under it.253	bool token_owner;254	/// Admin of token collection can nest tokens under token.255	bool collection_admin;256	/// If set - only tokens from specified collections can be nested.257	address[] restricted;258}259260/// Ethereum representation of Token Property Permissions.261struct TokenPropertyPermission {262	/// Token property key.263	string key;264	/// Token property permissions.265	PropertyPermission[] permissions;266}267268/// Ethereum representation of TokenPermissions (see [`up_data_structs::PropertyPermission`]) as an key and value.269struct PropertyPermission {270	/// TokenPermission field.271	TokenPermissionField code;272	/// TokenPermission value.273	bool value;274}275276/// Ethereum representation of TokenPermissions (see [`up_data_structs::PropertyPermission`]) fields as an enumeration.277enum TokenPermissionField {278	/// Permission to change the property and property permission. See [`up_data_structs::PropertyPermission::mutable`]279	Mutable,280	/// Change permission for the collection administrator. See [`up_data_structs::PropertyPermission::token_owner`]281	TokenOwner,282	/// Permission to change the property for the owner of the token. See [`up_data_structs::PropertyPermission::collection_admin`]283	CollectionAdmin284}285286/// Ethereum representation of collection [`PropertyKey`](up_data_structs::PropertyKey) and [`PropertyValue`](up_data_structs::PropertyValue).287struct Property {288	string key;289	bytes value;290}291292/// Type of tokens in collection293enum CollectionMode {294	/// Nonfungible295	Nonfungible,296	/// Fungible297	Fungible,298	/// Refungible299	Refungible300}