difftreelog
refactor remove last anonimous structs
in: master
14 files changed
pallets/common/src/erc.rsdiffbeforeafterboth35use crate::{35use crate::{36 Pallet, CollectionHandle, Config, CollectionProperties, SelfWeightOf,36 Pallet, CollectionHandle, Config, CollectionProperties, SelfWeightOf,37 eth::{37 eth::{CollectionLimitField as EvmCollectionLimits, self},38 CollectionPermissions as EvmPermissions, CollectionLimitField as EvmCollectionLimits, self,39 },40 weights::WeightInfo,38 weights::WeightInfo,41};39};490488491 /// Returns nesting for a collection489 /// Returns nesting for a collection492 #[solidity(rename_selector = "collectionNestingRestrictedCollectionIds")]490 #[solidity(rename_selector = "collectionNestingRestrictedCollectionIds")]493 fn collection_nesting_restricted_ids(&self) -> Result<(bool, Vec<uint256>)> {491 fn collection_nesting_restricted_ids(&self) -> Result<eth::CollectionNesting> {494 let nesting = self.collection.permissions.nesting();492 let nesting = self.collection.permissions.nesting();495493496 Ok((494 Ok(eth::CollectionNesting::new(497 nesting.token_owner,495 nesting.token_owner,498 nesting496 nesting499 .restricted497 .restricted504 }502 }505503506 /// Returns permissions for a collection504 /// Returns permissions for a collection507 fn collection_nesting_permissions(&self) -> Result<Vec<(EvmPermissions, bool)>> {505 fn collection_nesting_permissions(&self) -> Result<Vec<eth::CollectionNestingPermission>> {508 let nesting = self.collection.permissions.nesting();506 let nesting = self.collection.permissions.nesting();509 Ok(vec![507 Ok(vec![510 (EvmPermissions::CollectionAdmin, nesting.collection_admin),508 eth::CollectionNestingPermission::new(509 eth::CollectionPermissionField::CollectionAdmin,510 nesting.collection_admin,511 ),511 (EvmPermissions::TokenOwner, nesting.token_owner),512 eth::CollectionNestingPermission::new(513 eth::CollectionPermissionField::TokenOwner,514 nesting.token_owner,515 ),512 ])516 ])513 }517 }pallets/common/src/eth.rsdiffbeforeafterboth306/// Ethereum representation of `NestingPermissions` (see [`up_data_structs::NestingPermissions`]) fields as an enumeration.306/// Ethereum representation of `NestingPermissions` (see [`up_data_structs::NestingPermissions`]) fields as an enumeration.307#[derive(Default, Debug, Clone, Copy, AbiCoder)]307#[derive(Default, Debug, Clone, Copy, AbiCoder)]308#[repr(u8)]308#[repr(u8)]309pub enum CollectionPermissions {309pub enum CollectionPermissionField {310 /// Owner of token can nest tokens under it.310 /// Owner of token can nest tokens under it.311 #[default]311 #[default]312 TokenOwner,312 TokenOwner,432 }432 }433}433}434435/// Nested collections.436#[derive(Debug, Default, AbiCoder)]437pub struct CollectionNesting {438 token_owner: bool,439 ids: Vec<uint256>,440}441442impl CollectionNesting {443 /// Create [`CollectionNesting`].444 pub fn new(token_owner: bool, ids: Vec<uint256>) -> Self {445 Self { token_owner, ids }446 }447}448449/// Ethereum representation of `NestingPermissions` (see [`up_data_structs::NestingPermissions`]) field.450#[derive(Debug, Default, AbiCoder)]451pub struct CollectionNestingPermission {452 field: CollectionPermissionField,453 value: bool,454}455456impl CollectionNestingPermission {457 /// Create [`CollectionNestingPermission`].458 pub fn new(field: CollectionPermissionField, value: bool) -> Self {459 Self { field, value }460 }461}434462pallets/fungible/src/stubs/UniqueFungible.rawdiffbeforeafterbothbinary blob — no preview
pallets/fungible/src/stubs/UniqueFungible.soldiffbeforeafterboth257 /// Returns nesting for a collection257 /// Returns nesting for a collection258 /// @dev EVM selector for this function is: 0x22d25bfe,258 /// @dev EVM selector for this function is: 0x22d25bfe,259 /// or in textual repr: collectionNestingRestrictedCollectionIds()259 /// or in textual repr: collectionNestingRestrictedCollectionIds()260 function collectionNestingRestrictedCollectionIds() public view returns (Tuple33 memory) {260 function collectionNestingRestrictedCollectionIds() public view returns (CollectionNesting memory) {261 require(false, stub_error);261 require(false, stub_error);262 dummy;262 dummy;263 return Tuple33(false, new uint256[](0));263 return CollectionNesting(false, new uint256[](0));264 }264 }265265266 /// Returns permissions for a collection266 /// Returns permissions for a collection267 /// @dev EVM selector for this function is: 0x5b2eaf4b,267 /// @dev EVM selector for this function is: 0x5b2eaf4b,268 /// or in textual repr: collectionNestingPermissions()268 /// or in textual repr: collectionNestingPermissions()269 function collectionNestingPermissions() public view returns (Tuple36[] memory) {269 function collectionNestingPermissions() public view returns (CollectionNestingPermission[] memory) {270 require(false, stub_error);270 require(false, stub_error);271 dummy;271 dummy;272 return new Tuple36[](0);272 return new CollectionNestingPermission[](0);273 }273 }274274275 /// Set the collection access method.275 /// Set the collection access method.443 uint256 sub;443 uint256 sub;444}444}445446/// @dev Ethereum representation of `NestingPermissions` (see [`up_data_structs::NestingPermissions`]) field.447struct CollectionNestingPermission {448 CollectionPermissionField field;449 bool value;450}445451446/// @dev Ethereum representation of `NestingPermissions` (see [`up_data_structs::NestingPermissions`]) fields as an enumeration.452/// @dev Ethereum representation of `NestingPermissions` (see [`up_data_structs::NestingPermissions`]) fields as an enumeration.447enum CollectionPermissions {453enum CollectionPermissionField {448 /// @dev Owner of token can nest tokens under it.454 /// @dev Owner of token can nest tokens under it.449 TokenOwner,455 TokenOwner,450 /// @dev Admin of token collection can nest tokens under token.456 /// @dev Admin of token collection can nest tokens under token.451 CollectionAdmin457 CollectionAdmin452}458}453454/// @dev anonymous struct455struct Tuple36 {456 CollectionPermissions field_0;457 bool field_1;458}459459460/// @dev anonymous struct460/// @dev Nested collections.461struct Tuple33 {461struct CollectionNesting {462 bool field_0;462 bool token_owner;463 uint256[] field_1;463 uint256[] ids;464}464}465465466/// @dev [`CollectionLimits`](up_data_structs::CollectionLimits) field representation for EVM.466/// @dev [`CollectionLimits`](up_data_structs::CollectionLimits) field representation for EVM.469 OptionUint value;469 OptionUint value;470}470}471471472/// @dev Ethereum representation of Optional value with uint256.472struct OptionUint {473struct OptionUint {473 bool status;474 bool status;474 uint256 value;475 uint256 value;pallets/nonfungible/src/stubs/UniqueNFT.rawdiffbeforeafterbothbinary blob — no preview
pallets/nonfungible/src/stubs/UniqueNFT.soldiffbeforeafterboth401 /// Returns nesting for a collection401 /// Returns nesting for a collection402 /// @dev EVM selector for this function is: 0x22d25bfe,402 /// @dev EVM selector for this function is: 0x22d25bfe,403 /// or in textual repr: collectionNestingRestrictedCollectionIds()403 /// or in textual repr: collectionNestingRestrictedCollectionIds()404 function collectionNestingRestrictedCollectionIds() public view returns (Tuple45 memory) {404 function collectionNestingRestrictedCollectionIds() public view returns (CollectionNesting memory) {405 require(false, stub_error);405 require(false, stub_error);406 dummy;406 dummy;407 return Tuple45(false, new uint256[](0));407 return CollectionNesting(false, new uint256[](0));408 }408 }409409410 /// Returns permissions for a collection410 /// Returns permissions for a collection411 /// @dev EVM selector for this function is: 0x5b2eaf4b,411 /// @dev EVM selector for this function is: 0x5b2eaf4b,412 /// or in textual repr: collectionNestingPermissions()412 /// or in textual repr: collectionNestingPermissions()413 function collectionNestingPermissions() public view returns (Tuple48[] memory) {413 function collectionNestingPermissions() public view returns (CollectionNestingPermission[] memory) {414 require(false, stub_error);414 require(false, stub_error);415 dummy;415 dummy;416 return new Tuple48[](0);416 return new CollectionNestingPermission[](0);417 }417 }418418419 /// Set the collection access method.419 /// Set the collection access method.587 uint256 sub;587 uint256 sub;588}588}589590/// @dev Ethereum representation of `NestingPermissions` (see [`up_data_structs::NestingPermissions`]) field.591struct CollectionNestingPermission {592 CollectionPermissionField field;593 bool value;594}589595590/// @dev Ethereum representation of `NestingPermissions` (see [`up_data_structs::NestingPermissions`]) fields as an enumeration.596/// @dev Ethereum representation of `NestingPermissions` (see [`up_data_structs::NestingPermissions`]) fields as an enumeration.591enum CollectionPermissions {597enum CollectionPermissionField {592 /// @dev Owner of token can nest tokens under it.598 /// @dev Owner of token can nest tokens under it.593 TokenOwner,599 TokenOwner,594 /// @dev Admin of token collection can nest tokens under token.600 /// @dev Admin of token collection can nest tokens under token.595 CollectionAdmin601 CollectionAdmin596}602}597598/// @dev anonymous struct599struct Tuple48 {600 CollectionPermissions field_0;601 bool field_1;602}603603604/// @dev anonymous struct604/// @dev Nested collections.605struct Tuple45 {605struct CollectionNesting {606 bool field_0;606 bool token_owner;607 uint256[] field_1;607 uint256[] ids;608}608}609609610/// @dev [`CollectionLimits`](up_data_structs::CollectionLimits) field representation for EVM.610/// @dev [`CollectionLimits`](up_data_structs::CollectionLimits) field representation for EVM.613 OptionUint value;613 OptionUint value;614}614}615615616/// @dev Ethereum representation of Optional value with uint256.616struct OptionUint {617struct OptionUint {617 bool status;618 bool status;618 uint256 value;619 uint256 value;pallets/refungible/src/stubs/UniqueRefungible.rawdiffbeforeafterbothbinary blob — no preview
pallets/refungible/src/stubs/UniqueRefungible.soldiffbeforeafterboth401 /// Returns nesting for a collection401 /// Returns nesting for a collection402 /// @dev EVM selector for this function is: 0x22d25bfe,402 /// @dev EVM selector for this function is: 0x22d25bfe,403 /// or in textual repr: collectionNestingRestrictedCollectionIds()403 /// or in textual repr: collectionNestingRestrictedCollectionIds()404 function collectionNestingRestrictedCollectionIds() public view returns (Tuple44 memory) {404 function collectionNestingRestrictedCollectionIds() public view returns (CollectionNesting memory) {405 require(false, stub_error);405 require(false, stub_error);406 dummy;406 dummy;407 return Tuple44(false, new uint256[](0));407 return CollectionNesting(false, new uint256[](0));408 }408 }409409410 /// Returns permissions for a collection410 /// Returns permissions for a collection411 /// @dev EVM selector for this function is: 0x5b2eaf4b,411 /// @dev EVM selector for this function is: 0x5b2eaf4b,412 /// or in textual repr: collectionNestingPermissions()412 /// or in textual repr: collectionNestingPermissions()413 function collectionNestingPermissions() public view returns (Tuple47[] memory) {413 function collectionNestingPermissions() public view returns (CollectionNestingPermission[] memory) {414 require(false, stub_error);414 require(false, stub_error);415 dummy;415 dummy;416 return new Tuple47[](0);416 return new CollectionNestingPermission[](0);417 }417 }418418419 /// Set the collection access method.419 /// Set the collection access method.587 uint256 sub;587 uint256 sub;588}588}589590/// @dev Ethereum representation of `NestingPermissions` (see [`up_data_structs::NestingPermissions`]) field.591struct CollectionNestingPermission {592 CollectionPermissionField field;593 bool value;594}589595590/// @dev Ethereum representation of `NestingPermissions` (see [`up_data_structs::NestingPermissions`]) fields as an enumeration.596/// @dev Ethereum representation of `NestingPermissions` (see [`up_data_structs::NestingPermissions`]) fields as an enumeration.591enum CollectionPermissions {597enum CollectionPermissionField {592 /// @dev Owner of token can nest tokens under it.598 /// @dev Owner of token can nest tokens under it.593 TokenOwner,599 TokenOwner,594 /// @dev Admin of token collection can nest tokens under token.600 /// @dev Admin of token collection can nest tokens under token.595 CollectionAdmin601 CollectionAdmin596}602}597598/// @dev anonymous struct599struct Tuple47 {600 CollectionPermissions field_0;601 bool field_1;602}603603604/// @dev anonymous struct604/// @dev Nested collections.605struct Tuple44 {605struct CollectionNesting {606 bool field_0;606 bool token_owner;607 uint256[] field_1;607 uint256[] ids;608}608}609609610/// @dev [`CollectionLimits`](up_data_structs::CollectionLimits) field representation for EVM.610/// @dev [`CollectionLimits`](up_data_structs::CollectionLimits) field representation for EVM.613 OptionUint value;613 OptionUint value;614}614}615615616/// @dev Ethereum representation of Optional value with uint256.616struct OptionUint {617struct OptionUint {617 bool status;618 bool status;618 uint256 value;619 uint256 value;tests/src/eth/abi/fungible.jsondiffbeforeafterboth242 {242 {243 "components": [243 "components": [244 {244 {245 "internalType": "enum CollectionPermissions",245 "internalType": "enum CollectionPermissionField",246 "name": "field_0",246 "name": "field",247 "type": "uint8"247 "type": "uint8"248 },248 },249 { "internalType": "bool", "name": "field_1", "type": "bool" }249 { "internalType": "bool", "name": "value", "type": "bool" }250 ],250 ],251 "internalType": "struct Tuple36[]",251 "internalType": "struct CollectionNestingPermission[]",252 "name": "",252 "name": "",253 "type": "tuple[]"253 "type": "tuple[]"254 }254 }262 "outputs": [262 "outputs": [263 {263 {264 "components": [264 "components": [265 { "internalType": "bool", "name": "field_0", "type": "bool" },265 { "internalType": "bool", "name": "token_owner", "type": "bool" },266 {266 { "internalType": "uint256[]", "name": "ids", "type": "uint256[]" }267 "internalType": "uint256[]",268 "name": "field_1",269 "type": "uint256[]"270 }271 ],267 ],272 "internalType": "struct Tuple33",268 "internalType": "struct CollectionNesting",273 "name": "",269 "name": "",274 "type": "tuple"270 "type": "tuple"275 }271 }tests/src/eth/abi/nonFungible.jsondiffbeforeafterboth272 {272 {273 "components": [273 "components": [274 {274 {275 "internalType": "enum CollectionPermissions",275 "internalType": "enum CollectionPermissionField",276 "name": "field_0",276 "name": "field",277 "type": "uint8"277 "type": "uint8"278 },278 },279 { "internalType": "bool", "name": "field_1", "type": "bool" }279 { "internalType": "bool", "name": "value", "type": "bool" }280 ],280 ],281 "internalType": "struct Tuple48[]",281 "internalType": "struct CollectionNestingPermission[]",282 "name": "",282 "name": "",283 "type": "tuple[]"283 "type": "tuple[]"284 }284 }292 "outputs": [292 "outputs": [293 {293 {294 "components": [294 "components": [295 { "internalType": "bool", "name": "field_0", "type": "bool" },295 { "internalType": "bool", "name": "token_owner", "type": "bool" },296 {296 { "internalType": "uint256[]", "name": "ids", "type": "uint256[]" }297 "internalType": "uint256[]",298 "name": "field_1",299 "type": "uint256[]"300 }301 ],297 ],302 "internalType": "struct Tuple45",298 "internalType": "struct CollectionNesting",303 "name": "",299 "name": "",304 "type": "tuple"300 "type": "tuple"305 }301 }tests/src/eth/abi/reFungible.jsondiffbeforeafterboth254 {254 {255 "components": [255 "components": [256 {256 {257 "internalType": "enum CollectionPermissions",257 "internalType": "enum CollectionPermissionField",258 "name": "field_0",258 "name": "field",259 "type": "uint8"259 "type": "uint8"260 },260 },261 { "internalType": "bool", "name": "field_1", "type": "bool" }261 { "internalType": "bool", "name": "value", "type": "bool" }262 ],262 ],263 "internalType": "struct Tuple47[]",263 "internalType": "struct CollectionNestingPermission[]",264 "name": "",264 "name": "",265 "type": "tuple[]"265 "type": "tuple[]"266 }266 }274 "outputs": [274 "outputs": [275 {275 {276 "components": [276 "components": [277 { "internalType": "bool", "name": "field_0", "type": "bool" },277 { "internalType": "bool", "name": "token_owner", "type": "bool" },278 {278 { "internalType": "uint256[]", "name": "ids", "type": "uint256[]" }279 "internalType": "uint256[]",280 "name": "field_1",281 "type": "uint256[]"282 }283 ],279 ],284 "internalType": "struct Tuple44",280 "internalType": "struct CollectionNesting",285 "name": "",281 "name": "",286 "type": "tuple"282 "type": "tuple"287 }283 }tests/src/eth/api/UniqueFungible.soldiffbeforeafterboth166 /// Returns nesting for a collection166 /// Returns nesting for a collection167 /// @dev EVM selector for this function is: 0x22d25bfe,167 /// @dev EVM selector for this function is: 0x22d25bfe,168 /// or in textual repr: collectionNestingRestrictedCollectionIds()168 /// or in textual repr: collectionNestingRestrictedCollectionIds()169 function collectionNestingRestrictedCollectionIds() external view returns (Tuple28 memory);169 function collectionNestingRestrictedCollectionIds() external view returns (CollectionNesting memory);170170171 /// Returns permissions for a collection171 /// Returns permissions for a collection172 /// @dev EVM selector for this function is: 0x5b2eaf4b,172 /// @dev EVM selector for this function is: 0x5b2eaf4b,173 /// or in textual repr: collectionNestingPermissions()173 /// or in textual repr: collectionNestingPermissions()174 function collectionNestingPermissions() external view returns (Tuple31[] memory);174 function collectionNestingPermissions() external view returns (CollectionNestingPermission[] memory);175175176 /// Set the collection access method.176 /// Set the collection access method.177 /// @param mode Access mode177 /// @param mode Access mode285 uint256 sub;285 uint256 sub;286}286}287287288/// @dev anonymous struct288/// @dev Ethereum representation of `NestingPermissions` (see [`up_data_structs::NestingPermissions`]) field.289struct Tuple31 {289struct CollectionNestingPermission {290 CollectionPermissions field_0;290 CollectionPermissionField field;291 bool field_1;291 bool value;292}292}293293294/// @dev Ethereum representation of `NestingPermissions` (see [`up_data_structs::NestingPermissions`]) fields as an enumeration.294/// @dev Ethereum representation of `NestingPermissions` (see [`up_data_structs::NestingPermissions`]) fields as an enumeration.295enum CollectionPermissions {295enum CollectionPermissionField {296 /// @dev Owner of token can nest tokens under it.296 /// @dev Owner of token can nest tokens under it.297 TokenOwner,297 TokenOwner,298 /// @dev Admin of token collection can nest tokens under token.298 /// @dev Admin of token collection can nest tokens under token.299 CollectionAdmin299 CollectionAdmin300}300}301301302/// @dev anonymous struct302/// @dev Nested collections.303struct Tuple28 {303struct CollectionNesting {304 bool field_0;304 bool token_owner;305 uint256[] field_1;305 uint256[] ids;306}306}307307308/// @dev [`CollectionLimits`](up_data_structs::CollectionLimits) field representation for EVM.308/// @dev [`CollectionLimits`](up_data_structs::CollectionLimits) field representation for EVM.311 OptionUint value;311 OptionUint value;312}312}313313314/// @dev Ethereum representation of Optional value with uint256.314struct OptionUint {315struct OptionUint {315 bool status;316 bool status;316 uint256 value;317 uint256 value;tests/src/eth/api/UniqueNFT.soldiffbeforeafterboth268 /// Returns nesting for a collection268 /// Returns nesting for a collection269 /// @dev EVM selector for this function is: 0x22d25bfe,269 /// @dev EVM selector for this function is: 0x22d25bfe,270 /// or in textual repr: collectionNestingRestrictedCollectionIds()270 /// or in textual repr: collectionNestingRestrictedCollectionIds()271 function collectionNestingRestrictedCollectionIds() external view returns (Tuple38 memory);271 function collectionNestingRestrictedCollectionIds() external view returns (CollectionNesting memory);272272273 /// Returns permissions for a collection273 /// Returns permissions for a collection274 /// @dev EVM selector for this function is: 0x5b2eaf4b,274 /// @dev EVM selector for this function is: 0x5b2eaf4b,275 /// or in textual repr: collectionNestingPermissions()275 /// or in textual repr: collectionNestingPermissions()276 function collectionNestingPermissions() external view returns (Tuple41[] memory);276 function collectionNestingPermissions() external view returns (CollectionNestingPermission[] memory);277277278 /// Set the collection access method.278 /// Set the collection access method.279 /// @param mode Access mode279 /// @param mode Access mode387 uint256 sub;387 uint256 sub;388}388}389389390/// @dev anonymous struct390/// @dev Ethereum representation of `NestingPermissions` (see [`up_data_structs::NestingPermissions`]) field.391struct Tuple41 {391struct CollectionNestingPermission {392 CollectionPermissions field_0;392 CollectionPermissionField field;393 bool field_1;393 bool value;394}394}395395396/// @dev Ethereum representation of `NestingPermissions` (see [`up_data_structs::NestingPermissions`]) fields as an enumeration.396/// @dev Ethereum representation of `NestingPermissions` (see [`up_data_structs::NestingPermissions`]) fields as an enumeration.397enum CollectionPermissions {397enum CollectionPermissionField {398 /// @dev Owner of token can nest tokens under it.398 /// @dev Owner of token can nest tokens under it.399 TokenOwner,399 TokenOwner,400 /// @dev Admin of token collection can nest tokens under token.400 /// @dev Admin of token collection can nest tokens under token.401 CollectionAdmin401 CollectionAdmin402}402}403403404/// @dev anonymous struct404/// @dev Nested collections.405struct Tuple38 {405struct CollectionNesting {406 bool field_0;406 bool token_owner;407 uint256[] field_1;407 uint256[] ids;408}408}409409410/// @dev [`CollectionLimits`](up_data_structs::CollectionLimits) field representation for EVM.410/// @dev [`CollectionLimits`](up_data_structs::CollectionLimits) field representation for EVM.413 OptionUint value;413 OptionUint value;414}414}415415416/// @dev Ethereum representation of Optional value with uint256.416struct OptionUint {417struct OptionUint {417 bool status;418 bool status;418 uint256 value;419 uint256 value;tests/src/eth/api/UniqueRefungible.soldiffbeforeafterboth268 /// Returns nesting for a collection268 /// Returns nesting for a collection269 /// @dev EVM selector for this function is: 0x22d25bfe,269 /// @dev EVM selector for this function is: 0x22d25bfe,270 /// or in textual repr: collectionNestingRestrictedCollectionIds()270 /// or in textual repr: collectionNestingRestrictedCollectionIds()271 function collectionNestingRestrictedCollectionIds() external view returns (Tuple37 memory);271 function collectionNestingRestrictedCollectionIds() external view returns (CollectionNesting memory);272272273 /// Returns permissions for a collection273 /// Returns permissions for a collection274 /// @dev EVM selector for this function is: 0x5b2eaf4b,274 /// @dev EVM selector for this function is: 0x5b2eaf4b,275 /// or in textual repr: collectionNestingPermissions()275 /// or in textual repr: collectionNestingPermissions()276 function collectionNestingPermissions() external view returns (Tuple40[] memory);276 function collectionNestingPermissions() external view returns (CollectionNestingPermission[] memory);277277278 /// Set the collection access method.278 /// Set the collection access method.279 /// @param mode Access mode279 /// @param mode Access mode387 uint256 sub;387 uint256 sub;388}388}389389390/// @dev anonymous struct390/// @dev Ethereum representation of `NestingPermissions` (see [`up_data_structs::NestingPermissions`]) field.391struct Tuple40 {391struct CollectionNestingPermission {392 CollectionPermissions field_0;392 CollectionPermissionField field;393 bool field_1;393 bool value;394}394}395395396/// @dev Ethereum representation of `NestingPermissions` (see [`up_data_structs::NestingPermissions`]) fields as an enumeration.396/// @dev Ethereum representation of `NestingPermissions` (see [`up_data_structs::NestingPermissions`]) fields as an enumeration.397enum CollectionPermissions {397enum CollectionPermissionField {398 /// @dev Owner of token can nest tokens under it.398 /// @dev Owner of token can nest tokens under it.399 TokenOwner,399 TokenOwner,400 /// @dev Admin of token collection can nest tokens under token.400 /// @dev Admin of token collection can nest tokens under token.401 CollectionAdmin401 CollectionAdmin402}402}403403404/// @dev anonymous struct404/// @dev Nested collections.405struct Tuple37 {405struct CollectionNesting {406 bool field_0;406 bool token_owner;407 uint256[] field_1;407 uint256[] ids;408}408}409409410/// @dev [`CollectionLimits`](up_data_structs::CollectionLimits) field representation for EVM.410/// @dev [`CollectionLimits`](up_data_structs::CollectionLimits) field representation for EVM.413 OptionUint value;413 OptionUint value;414}414}415415416/// @dev Ethereum representation of Optional value with uint256.416struct OptionUint {417struct OptionUint {417 bool status;418 bool status;418 uint256 value;419 uint256 value;