git.delta.rocks / unique-network / refs/commits / 45d19b2ecee4

difftreelog

refactor remove last anonimous structs

Trubnikov Sergey2022-12-21parent: #8ca834e.patch.diff
in: master

14 files changed

modifiedpallets/common/src/erc.rsdiffbeforeafterboth
35use 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};
490488
491 /// Returns nesting for a collection489 /// Returns nesting for a collection
492 #[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();
495493
496 Ok((494 Ok(eth::CollectionNesting::new(
497 nesting.token_owner,495 nesting.token_owner,
498 nesting496 nesting
499 .restricted497 .restricted
504 }502 }
505503
506 /// Returns permissions for a collection504 /// Returns permissions for a collection
507 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 }
modifiedpallets/common/src/eth.rsdiffbeforeafterboth
306/// 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}
434
435/// Nested collections.
436#[derive(Debug, Default, AbiCoder)]
437pub struct CollectionNesting {
438 token_owner: bool,
439 ids: Vec<uint256>,
440}
441
442impl CollectionNesting {
443 /// Create [`CollectionNesting`].
444 pub fn new(token_owner: bool, ids: Vec<uint256>) -> Self {
445 Self { token_owner, ids }
446 }
447}
448
449/// 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}
455
456impl CollectionNestingPermission {
457 /// Create [`CollectionNestingPermission`].
458 pub fn new(field: CollectionPermissionField, value: bool) -> Self {
459 Self { field, value }
460 }
461}
434462
modifiedpallets/fungible/src/stubs/UniqueFungible.rawdiffbeforeafterboth

binary blob — no preview

modifiedpallets/fungible/src/stubs/UniqueFungible.soldiffbeforeafterboth
257 /// Returns nesting for a collection257 /// Returns nesting for a collection
258 /// @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 }
265265
266 /// Returns permissions for a collection266 /// Returns permissions for a collection
267 /// @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 }
274274
275 /// Set the collection access method.275 /// Set the collection access method.
443 uint256 sub;443 uint256 sub;
444}444}
445
446/// @dev Ethereum representation of `NestingPermissions` (see [`up_data_structs::NestingPermissions`]) field.
447struct CollectionNestingPermission {
448 CollectionPermissionField field;
449 bool value;
450}
445451
446/// @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 CollectionAdmin
452}458}
453
454/// @dev anonymous struct
455struct Tuple36 {
456 CollectionPermissions field_0;
457 bool field_1;
458}
459459
460/// @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}
465465
466/// @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}
471471
472/// @dev Ethereum representation of Optional value with uint256.
472struct OptionUint {473struct OptionUint {
473 bool status;474 bool status;
474 uint256 value;475 uint256 value;
modifiedpallets/nonfungible/src/stubs/UniqueNFT.rawdiffbeforeafterboth

binary blob — no preview

modifiedpallets/nonfungible/src/stubs/UniqueNFT.soldiffbeforeafterboth
401 /// Returns nesting for a collection401 /// Returns nesting for a collection
402 /// @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 }
409409
410 /// Returns permissions for a collection410 /// Returns permissions for a collection
411 /// @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 }
418418
419 /// Set the collection access method.419 /// Set the collection access method.
587 uint256 sub;587 uint256 sub;
588}588}
589
590/// @dev Ethereum representation of `NestingPermissions` (see [`up_data_structs::NestingPermissions`]) field.
591struct CollectionNestingPermission {
592 CollectionPermissionField field;
593 bool value;
594}
589595
590/// @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 CollectionAdmin
596}602}
597
598/// @dev anonymous struct
599struct Tuple48 {
600 CollectionPermissions field_0;
601 bool field_1;
602}
603603
604/// @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}
609609
610/// @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}
615615
616/// @dev Ethereum representation of Optional value with uint256.
616struct OptionUint {617struct OptionUint {
617 bool status;618 bool status;
618 uint256 value;619 uint256 value;
modifiedpallets/refungible/src/stubs/UniqueRefungible.rawdiffbeforeafterboth

binary blob — no preview

modifiedpallets/refungible/src/stubs/UniqueRefungible.soldiffbeforeafterboth
401 /// Returns nesting for a collection401 /// Returns nesting for a collection
402 /// @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 }
409409
410 /// Returns permissions for a collection410 /// Returns permissions for a collection
411 /// @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 }
418418
419 /// Set the collection access method.419 /// Set the collection access method.
587 uint256 sub;587 uint256 sub;
588}588}
589
590/// @dev Ethereum representation of `NestingPermissions` (see [`up_data_structs::NestingPermissions`]) field.
591struct CollectionNestingPermission {
592 CollectionPermissionField field;
593 bool value;
594}
589595
590/// @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 CollectionAdmin
596}602}
597
598/// @dev anonymous struct
599struct Tuple47 {
600 CollectionPermissions field_0;
601 bool field_1;
602}
603603
604/// @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}
609609
610/// @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}
615615
616/// @dev Ethereum representation of Optional value with uint256.
616struct OptionUint {617struct OptionUint {
617 bool status;618 bool status;
618 uint256 value;619 uint256 value;
modifiedtests/src/eth/abi/fungible.jsondiffbeforeafterboth
242 {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 }
modifiedtests/src/eth/abi/nonFungible.jsondiffbeforeafterboth
272 {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 }
modifiedtests/src/eth/abi/reFungible.jsondiffbeforeafterboth
254 {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 }
modifiedtests/src/eth/api/UniqueFungible.soldiffbeforeafterboth
166 /// Returns nesting for a collection166 /// Returns nesting for a collection
167 /// @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);
170170
171 /// Returns permissions for a collection171 /// Returns permissions for a collection
172 /// @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);
175175
176 /// Set the collection access method.176 /// Set the collection access method.
177 /// @param mode Access mode177 /// @param mode Access mode
285 uint256 sub;285 uint256 sub;
286}286}
287287
288/// @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}
293293
294/// @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 CollectionAdmin
300}300}
301301
302/// @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}
307307
308/// @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}
313313
314/// @dev Ethereum representation of Optional value with uint256.
314struct OptionUint {315struct OptionUint {
315 bool status;316 bool status;
316 uint256 value;317 uint256 value;
modifiedtests/src/eth/api/UniqueNFT.soldiffbeforeafterboth
268 /// Returns nesting for a collection268 /// Returns nesting for a collection
269 /// @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);
272272
273 /// Returns permissions for a collection273 /// Returns permissions for a collection
274 /// @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);
277277
278 /// Set the collection access method.278 /// Set the collection access method.
279 /// @param mode Access mode279 /// @param mode Access mode
387 uint256 sub;387 uint256 sub;
388}388}
389389
390/// @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}
395395
396/// @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 CollectionAdmin
402}402}
403403
404/// @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}
409409
410/// @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}
415415
416/// @dev Ethereum representation of Optional value with uint256.
416struct OptionUint {417struct OptionUint {
417 bool status;418 bool status;
418 uint256 value;419 uint256 value;
modifiedtests/src/eth/api/UniqueRefungible.soldiffbeforeafterboth
268 /// Returns nesting for a collection268 /// Returns nesting for a collection
269 /// @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);
272272
273 /// Returns permissions for a collection273 /// Returns permissions for a collection
274 /// @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);
277277
278 /// Set the collection access method.278 /// Set the collection access method.
279 /// @param mode Access mode279 /// @param mode Access mode
387 uint256 sub;387 uint256 sub;
388}388}
389389
390/// @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}
395395
396/// @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 CollectionAdmin
402}402}
403403
404/// @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}
409409
410/// @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}
415415
416/// @dev Ethereum representation of Optional value with uint256.
416struct OptionUint {417struct OptionUint {
417 bool status;418 bool status;
418 uint256 value;419 uint256 value;