difftreelog
misk: Turn off eth metods for substrate addresses.
in: master
16 files changed
pallets/common/src/erc.rsdiffbeforeafterboth--- a/pallets/common/src/erc.rs
+++ b/pallets/common/src/erc.rs
@@ -139,25 +139,26 @@
save(self)
}
- /// Set the substrate sponsor of the collection.
- ///
- /// @dev In order for sponsorship to work, it must be confirmed on behalf of the sponsor.
- ///
- /// @param sponsor Substrate address of the sponsor from whose account funds will be debited for operations with the contract.
- fn set_collection_sponsor_substrate(
- &mut self,
- caller: caller,
- sponsor: uint256,
- ) -> Result<void> {
- self.consume_store_reads_and_writes(1, 1)?;
+ // TODO: Temprorary off. Need refactor
+ // /// Set the substrate sponsor of the collection.
+ // ///
+ // /// @dev In order for sponsorship to work, it must be confirmed on behalf of the sponsor.
+ // ///
+ // /// @param sponsor Substrate address of the sponsor from whose account funds will be debited for operations with the contract.
+ // fn set_collection_sponsor_substrate(
+ // &mut self,
+ // caller: caller,
+ // sponsor: uint256,
+ // ) -> Result<void> {
+ // self.consume_store_reads_and_writes(1, 1)?;
- check_is_owner_or_admin(caller, self)?;
+ // check_is_owner_or_admin(caller, self)?;
- let sponsor = convert_uint256_to_cross_account::<T>(sponsor);
- self.set_sponsor(sponsor.as_sub().clone())
- .map_err(dispatch_to_evm::<T>)?;
- save(self)
- }
+ // let sponsor = convert_uint256_to_cross_account::<T>(sponsor);
+ // self.set_sponsor(sponsor.as_sub().clone())
+ // .map_err(dispatch_to_evm::<T>)?;
+ // save(self)
+ // }
/// Whether there is a pending sponsor.
fn has_collection_pending_sponsor(&self) -> Result<bool> {
@@ -299,35 +300,37 @@
Ok(crate::eth::collection_id_to_address(self.id))
}
- /// Add collection admin by substrate address.
- /// @param newAdmin Substrate administrator address.
- fn add_collection_admin_substrate(
- &mut self,
- caller: caller,
- new_admin: uint256,
- ) -> Result<void> {
- self.consume_store_writes(2)?;
+ // TODO: Temprorary off. Need refactor
+ // /// Add collection admin by substrate address.
+ // /// @param newAdmin Substrate administrator address.
+ // fn add_collection_admin_substrate(
+ // &mut self,
+ // caller: caller,
+ // new_admin: uint256,
+ // ) -> Result<void> {
+ // self.consume_store_writes(2)?;
- let caller = T::CrossAccountId::from_eth(caller);
- let new_admin = convert_uint256_to_cross_account::<T>(new_admin);
- <Pallet<T>>::toggle_admin(self, &caller, &new_admin, true).map_err(dispatch_to_evm::<T>)?;
- Ok(())
- }
+ // let caller = T::CrossAccountId::from_eth(caller);
+ // let new_admin = convert_uint256_to_cross_account::<T>(new_admin);
+ // <Pallet<T>>::toggle_admin(self, &caller, &new_admin, true).map_err(dispatch_to_evm::<T>)?;
+ // Ok(())
+ // }
- /// Remove collection admin by substrate address.
- /// @param admin Substrate administrator address.
- fn remove_collection_admin_substrate(
- &mut self,
- caller: caller,
- admin: uint256,
- ) -> Result<void> {
- self.consume_store_writes(2)?;
+ // TODO: Temprorary off. Need refactor
+ // /// Remove collection admin by substrate address.
+ // /// @param admin Substrate administrator address.
+ // fn remove_collection_admin_substrate(
+ // &mut self,
+ // caller: caller,
+ // admin: uint256,
+ // ) -> Result<void> {
+ // self.consume_store_writes(2)?;
- let caller = T::CrossAccountId::from_eth(caller);
- let admin = convert_uint256_to_cross_account::<T>(admin);
- <Pallet<T>>::toggle_admin(self, &caller, &admin, false).map_err(dispatch_to_evm::<T>)?;
- Ok(())
- }
+ // let caller = T::CrossAccountId::from_eth(caller);
+ // let admin = convert_uint256_to_cross_account::<T>(admin);
+ // <Pallet<T>>::toggle_admin(self, &caller, &admin, false).map_err(dispatch_to_evm::<T>)?;
+ // Ok(())
+ // }
/// Add collection admin.
/// @param newAdmin Address of the added administrator.
@@ -476,21 +479,22 @@
Ok(())
}
- /// Add substrate user to allowed list.
- ///
- /// @param user User substrate address.
- fn add_to_collection_allow_list_substrate(
- &mut self,
- caller: caller,
- user: uint256,
- ) -> Result<void> {
- self.consume_store_writes(1)?;
+ // TODO: Temprorary off. Need refactor
+ // /// Add substrate user to allowed list.
+ // ///
+ // /// @param user User substrate address.
+ // fn add_to_collection_allow_list_substrate(
+ // &mut self,
+ // caller: caller,
+ // user: uint256,
+ // ) -> Result<void> {
+ // self.consume_store_writes(1)?;
- let caller = T::CrossAccountId::from_eth(caller);
- let user = convert_uint256_to_cross_account::<T>(user);
- Pallet::<T>::toggle_allowlist(self, &caller, &user, true).map_err(dispatch_to_evm::<T>)?;
- Ok(())
- }
+ // let caller = T::CrossAccountId::from_eth(caller);
+ // let user = convert_uint256_to_cross_account::<T>(user);
+ // Pallet::<T>::toggle_allowlist(self, &caller, &user, true).map_err(dispatch_to_evm::<T>)?;
+ // Ok(())
+ // }
/// Remove the user from the allowed list.
///
@@ -504,21 +508,22 @@
Ok(())
}
- /// Remove substrate user from allowed list.
- ///
- /// @param user User substrate address.
- fn remove_from_collection_allow_list_substrate(
- &mut self,
- caller: caller,
- user: uint256,
- ) -> Result<void> {
- self.consume_store_writes(1)?;
+ // TODO: Temprorary off. Need refactor
+ // /// Remove substrate user from allowed list.
+ // ///
+ // /// @param user User substrate address.
+ // fn remove_from_collection_allow_list_substrate(
+ // &mut self,
+ // caller: caller,
+ // user: uint256,
+ // ) -> Result<void> {
+ // self.consume_store_writes(1)?;
- let caller = T::CrossAccountId::from_eth(caller);
- let user = convert_uint256_to_cross_account::<T>(user);
- Pallet::<T>::toggle_allowlist(self, &caller, &user, false).map_err(dispatch_to_evm::<T>)?;
- Ok(())
- }
+ // let caller = T::CrossAccountId::from_eth(caller);
+ // let user = convert_uint256_to_cross_account::<T>(user);
+ // Pallet::<T>::toggle_allowlist(self, &caller, &user, false).map_err(dispatch_to_evm::<T>)?;
+ // Ok(())
+ // }
/// Switch permission for minting.
///
@@ -551,14 +556,15 @@
Ok(self.is_owner_or_admin(&user))
}
- /// Check that substrate account is the owner or admin of the collection
- ///
- /// @param user account to verify
- /// @return "true" if account is the owner or admin
- fn is_owner_or_admin_substrate(&self, user: uint256) -> Result<bool> {
- let user = convert_uint256_to_cross_account::<T>(user);
- Ok(self.is_owner_or_admin(&user))
- }
+ // TODO: Temprorary off. Need refactor
+ // /// Check that substrate account is the owner or admin of the collection
+ // ///
+ // /// @param user account to verify
+ // /// @return "true" if account is the owner or admin
+ // fn is_owner_or_admin_substrate(&self, user: uint256) -> Result<bool> {
+ // let user = convert_uint256_to_cross_account::<T>(user);
+ // Ok(self.is_owner_or_admin(&user))
+ // }
/// Returns collection type
///
@@ -595,18 +601,19 @@
.map_err(dispatch_to_evm::<T>)
}
- /// Changes collection owner to another substrate account
- ///
- /// @dev Owner can be changed only by current owner
- /// @param newOwner new owner substrate account
- fn set_owner_substrate(&mut self, caller: caller, new_owner: uint256) -> Result<void> {
- self.consume_store_writes(1)?;
+ // TODO: Temprorary off. Need refactor
+ // /// Changes collection owner to another substrate account
+ // ///
+ // /// @dev Owner can be changed only by current owner
+ // /// @param newOwner new owner substrate account
+ // fn set_owner_substrate(&mut self, caller: caller, new_owner: uint256) -> Result<void> {
+ // self.consume_store_writes(1)?;
- let caller = T::CrossAccountId::from_eth(caller);
- let new_owner = convert_uint256_to_cross_account::<T>(new_owner);
- self.set_owner_internal(caller, new_owner)
- .map_err(dispatch_to_evm::<T>)
- }
+ // let caller = T::CrossAccountId::from_eth(caller);
+ // let new_owner = convert_uint256_to_cross_account::<T>(new_owner);
+ // self.set_owner_internal(caller, new_owner)
+ // .map_err(dispatch_to_evm::<T>)
+ // }
// TODO: need implement AbiWriter for &Vec<T>
// fn collection_admins(&self) -> Result<Vec<(address, uint256)>> {
pallets/fungible/src/stubs/UniqueFungible.rawdiffbeforeafterbothbinary blob — no preview
pallets/fungible/src/stubs/UniqueFungible.soldiffbeforeafterboth--- a/pallets/fungible/src/stubs/UniqueFungible.sol
+++ b/pallets/fungible/src/stubs/UniqueFungible.sol
@@ -18,7 +18,7 @@
}
/// @title A contract that allows you to work with collections.
-/// @dev the ERC-165 identifier for this interface is 0x47dbc105
+/// @dev the ERC-165 identifier for this interface is 0x3e1e8083
contract Collection is Dummy, ERC165 {
/// Set collection property.
///
@@ -72,19 +72,6 @@
dummy = 0;
}
- /// Set the substrate sponsor of the collection.
- ///
- /// @dev In order for sponsorship to work, it must be confirmed on behalf of the sponsor.
- ///
- /// @param sponsor Substrate address of the sponsor from whose account funds will be debited for operations with the contract.
- /// @dev EVM selector for this function is: 0xc74d6751,
- /// or in textual repr: setCollectionSponsorSubstrate(uint256)
- function setCollectionSponsorSubstrate(uint256 sponsor) public {
- require(false, stub_error);
- sponsor;
- dummy = 0;
- }
-
/// Whether there is a pending sponsor.
/// @dev EVM selector for this function is: 0x058ac185,
/// or in textual repr: hasCollectionPendingSponsor()
@@ -167,26 +154,6 @@
return 0x0000000000000000000000000000000000000000;
}
- /// Add collection admin by substrate address.
- /// @param newAdmin Substrate administrator address.
- /// @dev EVM selector for this function is: 0x5730062b,
- /// or in textual repr: addCollectionAdminSubstrate(uint256)
- function addCollectionAdminSubstrate(uint256 newAdmin) public {
- require(false, stub_error);
- newAdmin;
- dummy = 0;
- }
-
- /// Remove collection admin by substrate address.
- /// @param admin Substrate administrator address.
- /// @dev EVM selector for this function is: 0x4048fcf9,
- /// or in textual repr: removeCollectionAdminSubstrate(uint256)
- function removeCollectionAdminSubstrate(uint256 admin) public {
- require(false, stub_error);
- admin;
- dummy = 0;
- }
-
/// Add collection admin.
/// @param newAdmin Address of the added administrator.
/// @dev EVM selector for this function is: 0x92e462c7,
@@ -262,17 +229,6 @@
/// @dev EVM selector for this function is: 0x67844fe6,
/// or in textual repr: addToCollectionAllowList(address)
function addToCollectionAllowList(address user) public {
- require(false, stub_error);
- user;
- dummy = 0;
- }
-
- /// Add substrate user to allowed list.
- ///
- /// @param user User substrate address.
- /// @dev EVM selector for this function is: 0xd06ad267,
- /// or in textual repr: addToCollectionAllowListSubstrate(uint256)
- function addToCollectionAllowListSubstrate(uint256 user) public {
require(false, stub_error);
user;
dummy = 0;
@@ -289,17 +245,6 @@
dummy = 0;
}
- /// Remove substrate user from allowed list.
- ///
- /// @param user User substrate address.
- /// @dev EVM selector for this function is: 0xa31913ed,
- /// or in textual repr: removeFromCollectionAllowListSubstrate(uint256)
- function removeFromCollectionAllowListSubstrate(uint256 user) public {
- require(false, stub_error);
- user;
- dummy = 0;
- }
-
/// Switch permission for minting.
///
/// @param mode Enable if "true".
@@ -324,19 +269,6 @@
return false;
}
- /// Check that substrate account is the owner or admin of the collection
- ///
- /// @param user account to verify
- /// @return "true" if account is the owner or admin
- /// @dev EVM selector for this function is: 0x68910e00,
- /// or in textual repr: isOwnerOrAdminSubstrate(uint256)
- function isOwnerOrAdminSubstrate(uint256 user) public view returns (bool) {
- require(false, stub_error);
- user;
- dummy;
- return false;
- }
-
/// Returns collection type
///
/// @return `Fungible` or `NFT` or `ReFungible`
@@ -367,18 +299,6 @@
/// @dev EVM selector for this function is: 0x13af4035,
/// or in textual repr: setOwner(address)
function setOwner(address newOwner) public {
- require(false, stub_error);
- newOwner;
- dummy = 0;
- }
-
- /// Changes collection owner to another substrate account
- ///
- /// @dev Owner can be changed only by current owner
- /// @param newOwner new owner substrate account
- /// @dev EVM selector for this function is: 0xb212138f,
- /// or in textual repr: setOwnerSubstrate(uint256)
- function setOwnerSubstrate(uint256 newOwner) public {
require(false, stub_error);
newOwner;
dummy = 0;
pallets/nonfungible/src/stubs/UniqueNFT.rawdiffbeforeafterbothbinary blob — no preview
pallets/nonfungible/src/stubs/UniqueNFT.soldiffbeforeafterboth--- a/pallets/nonfungible/src/stubs/UniqueNFT.sol
+++ b/pallets/nonfungible/src/stubs/UniqueNFT.sol
@@ -91,7 +91,7 @@
}
/// @title A contract that allows you to work with collections.
-/// @dev the ERC-165 identifier for this interface is 0x47dbc105
+/// @dev the ERC-165 identifier for this interface is 0x3e1e8083
contract Collection is Dummy, ERC165 {
/// Set collection property.
///
@@ -145,19 +145,6 @@
dummy = 0;
}
- /// Set the substrate sponsor of the collection.
- ///
- /// @dev In order for sponsorship to work, it must be confirmed on behalf of the sponsor.
- ///
- /// @param sponsor Substrate address of the sponsor from whose account funds will be debited for operations with the contract.
- /// @dev EVM selector for this function is: 0xc74d6751,
- /// or in textual repr: setCollectionSponsorSubstrate(uint256)
- function setCollectionSponsorSubstrate(uint256 sponsor) public {
- require(false, stub_error);
- sponsor;
- dummy = 0;
- }
-
/// Whether there is a pending sponsor.
/// @dev EVM selector for this function is: 0x058ac185,
/// or in textual repr: hasCollectionPendingSponsor()
@@ -240,26 +227,6 @@
return 0x0000000000000000000000000000000000000000;
}
- /// Add collection admin by substrate address.
- /// @param newAdmin Substrate administrator address.
- /// @dev EVM selector for this function is: 0x5730062b,
- /// or in textual repr: addCollectionAdminSubstrate(uint256)
- function addCollectionAdminSubstrate(uint256 newAdmin) public {
- require(false, stub_error);
- newAdmin;
- dummy = 0;
- }
-
- /// Remove collection admin by substrate address.
- /// @param admin Substrate administrator address.
- /// @dev EVM selector for this function is: 0x4048fcf9,
- /// or in textual repr: removeCollectionAdminSubstrate(uint256)
- function removeCollectionAdminSubstrate(uint256 admin) public {
- require(false, stub_error);
- admin;
- dummy = 0;
- }
-
/// Add collection admin.
/// @param newAdmin Address of the added administrator.
/// @dev EVM selector for this function is: 0x92e462c7,
@@ -335,17 +302,6 @@
/// @dev EVM selector for this function is: 0x67844fe6,
/// or in textual repr: addToCollectionAllowList(address)
function addToCollectionAllowList(address user) public {
- require(false, stub_error);
- user;
- dummy = 0;
- }
-
- /// Add substrate user to allowed list.
- ///
- /// @param user User substrate address.
- /// @dev EVM selector for this function is: 0xd06ad267,
- /// or in textual repr: addToCollectionAllowListSubstrate(uint256)
- function addToCollectionAllowListSubstrate(uint256 user) public {
require(false, stub_error);
user;
dummy = 0;
@@ -362,17 +318,6 @@
dummy = 0;
}
- /// Remove substrate user from allowed list.
- ///
- /// @param user User substrate address.
- /// @dev EVM selector for this function is: 0xa31913ed,
- /// or in textual repr: removeFromCollectionAllowListSubstrate(uint256)
- function removeFromCollectionAllowListSubstrate(uint256 user) public {
- require(false, stub_error);
- user;
- dummy = 0;
- }
-
/// Switch permission for minting.
///
/// @param mode Enable if "true".
@@ -397,19 +342,6 @@
return false;
}
- /// Check that substrate account is the owner or admin of the collection
- ///
- /// @param user account to verify
- /// @return "true" if account is the owner or admin
- /// @dev EVM selector for this function is: 0x68910e00,
- /// or in textual repr: isOwnerOrAdminSubstrate(uint256)
- function isOwnerOrAdminSubstrate(uint256 user) public view returns (bool) {
- require(false, stub_error);
- user;
- dummy;
- return false;
- }
-
/// Returns collection type
///
/// @return `Fungible` or `NFT` or `ReFungible`
@@ -440,18 +372,6 @@
/// @dev EVM selector for this function is: 0x13af4035,
/// or in textual repr: setOwner(address)
function setOwner(address newOwner) public {
- require(false, stub_error);
- newOwner;
- dummy = 0;
- }
-
- /// Changes collection owner to another substrate account
- ///
- /// @dev Owner can be changed only by current owner
- /// @param newOwner new owner substrate account
- /// @dev EVM selector for this function is: 0xb212138f,
- /// or in textual repr: setOwnerSubstrate(uint256)
- function setOwnerSubstrate(uint256 newOwner) public {
require(false, stub_error);
newOwner;
dummy = 0;
pallets/refungible/src/stubs/UniqueRefungible.rawdiffbeforeafterbothbinary blob — no preview
pallets/refungible/src/stubs/UniqueRefungible.soldiffbeforeafterboth--- a/pallets/refungible/src/stubs/UniqueRefungible.sol
+++ b/pallets/refungible/src/stubs/UniqueRefungible.sol
@@ -91,7 +91,7 @@
}
/// @title A contract that allows you to work with collections.
-/// @dev the ERC-165 identifier for this interface is 0x47dbc105
+/// @dev the ERC-165 identifier for this interface is 0x3e1e8083
contract Collection is Dummy, ERC165 {
/// Set collection property.
///
@@ -145,19 +145,6 @@
dummy = 0;
}
- /// Set the substrate sponsor of the collection.
- ///
- /// @dev In order for sponsorship to work, it must be confirmed on behalf of the sponsor.
- ///
- /// @param sponsor Substrate address of the sponsor from whose account funds will be debited for operations with the contract.
- /// @dev EVM selector for this function is: 0xc74d6751,
- /// or in textual repr: setCollectionSponsorSubstrate(uint256)
- function setCollectionSponsorSubstrate(uint256 sponsor) public {
- require(false, stub_error);
- sponsor;
- dummy = 0;
- }
-
/// Whether there is a pending sponsor.
/// @dev EVM selector for this function is: 0x058ac185,
/// or in textual repr: hasCollectionPendingSponsor()
@@ -240,26 +227,6 @@
return 0x0000000000000000000000000000000000000000;
}
- /// Add collection admin by substrate address.
- /// @param newAdmin Substrate administrator address.
- /// @dev EVM selector for this function is: 0x5730062b,
- /// or in textual repr: addCollectionAdminSubstrate(uint256)
- function addCollectionAdminSubstrate(uint256 newAdmin) public {
- require(false, stub_error);
- newAdmin;
- dummy = 0;
- }
-
- /// Remove collection admin by substrate address.
- /// @param admin Substrate administrator address.
- /// @dev EVM selector for this function is: 0x4048fcf9,
- /// or in textual repr: removeCollectionAdminSubstrate(uint256)
- function removeCollectionAdminSubstrate(uint256 admin) public {
- require(false, stub_error);
- admin;
- dummy = 0;
- }
-
/// Add collection admin.
/// @param newAdmin Address of the added administrator.
/// @dev EVM selector for this function is: 0x92e462c7,
@@ -335,17 +302,6 @@
/// @dev EVM selector for this function is: 0x67844fe6,
/// or in textual repr: addToCollectionAllowList(address)
function addToCollectionAllowList(address user) public {
- require(false, stub_error);
- user;
- dummy = 0;
- }
-
- /// Add substrate user to allowed list.
- ///
- /// @param user User substrate address.
- /// @dev EVM selector for this function is: 0xd06ad267,
- /// or in textual repr: addToCollectionAllowListSubstrate(uint256)
- function addToCollectionAllowListSubstrate(uint256 user) public {
require(false, stub_error);
user;
dummy = 0;
@@ -362,17 +318,6 @@
dummy = 0;
}
- /// Remove substrate user from allowed list.
- ///
- /// @param user User substrate address.
- /// @dev EVM selector for this function is: 0xa31913ed,
- /// or in textual repr: removeFromCollectionAllowListSubstrate(uint256)
- function removeFromCollectionAllowListSubstrate(uint256 user) public {
- require(false, stub_error);
- user;
- dummy = 0;
- }
-
/// Switch permission for minting.
///
/// @param mode Enable if "true".
@@ -397,19 +342,6 @@
return false;
}
- /// Check that substrate account is the owner or admin of the collection
- ///
- /// @param user account to verify
- /// @return "true" if account is the owner or admin
- /// @dev EVM selector for this function is: 0x68910e00,
- /// or in textual repr: isOwnerOrAdminSubstrate(uint256)
- function isOwnerOrAdminSubstrate(uint256 user) public view returns (bool) {
- require(false, stub_error);
- user;
- dummy;
- return false;
- }
-
/// Returns collection type
///
/// @return `Fungible` or `NFT` or `ReFungible`
@@ -440,18 +372,6 @@
/// @dev EVM selector for this function is: 0x13af4035,
/// or in textual repr: setOwner(address)
function setOwner(address newOwner) public {
- require(false, stub_error);
- newOwner;
- dummy = 0;
- }
-
- /// Changes collection owner to another substrate account
- ///
- /// @dev Owner can be changed only by current owner
- /// @param newOwner new owner substrate account
- /// @dev EVM selector for this function is: 0xb212138f,
- /// or in textual repr: setOwnerSubstrate(uint256)
- function setOwnerSubstrate(uint256 newOwner) public {
require(false, stub_error);
newOwner;
dummy = 0;
tests/src/eth/allowlist.test.tsdiffbeforeafterboth--- a/tests/src/eth/allowlist.test.ts
+++ b/tests/src/eth/allowlist.test.ts
@@ -95,20 +95,21 @@
expect(await collectionEvm.methods.allowed(user).call({from: owner})).to.be.false;
});
- itEth('Collection allowlist can be added and removed by [sub] address', async ({helper}) => {
- const owner = await helper.eth.createAccountWithBalance(donor);
- const user = donor;
+ // TODO: Temprorary off. Need refactor
+ // itEth('Collection allowlist can be added and removed by [sub] address', async ({helper}) => {
+ // const owner = await helper.eth.createAccountWithBalance(donor);
+ // const user = donor;
- const {collectionAddress, collectionId} = await helper.eth.createNonfungibleCollection(owner, 'A', 'B', 'C');
- const collectionEvm = helper.ethNativeContract.collection(collectionAddress, 'nft', owner);
+ // const {collectionAddress, collectionId} = await helper.eth.createNonfungibleCollection(owner, 'A', 'B', 'C');
+ // const collectionEvm = helper.ethNativeContract.collection(collectionAddress, 'nft', owner);
- expect(await helper.collection.allowed(collectionId, {Substrate: user.address})).to.be.false;
- await collectionEvm.methods.addToCollectionAllowListSubstrate(user.addressRaw).send({from: owner});
- expect(await helper.collection.allowed(collectionId, {Substrate: user.address})).to.be.true;
+ // expect(await helper.collection.allowed(collectionId, {Substrate: user.address})).to.be.false;
+ // await collectionEvm.methods.addToCollectionAllowListSubstrate(user.addressRaw).send({from: owner});
+ // expect(await helper.collection.allowed(collectionId, {Substrate: user.address})).to.be.true;
- await collectionEvm.methods.removeFromCollectionAllowListSubstrate(user.addressRaw).send({from: owner});
- expect(await helper.collection.allowed(collectionId, {Substrate: user.address})).to.be.false;
- });
+ // await collectionEvm.methods.removeFromCollectionAllowListSubstrate(user.addressRaw).send({from: owner});
+ // expect(await helper.collection.allowed(collectionId, {Substrate: user.address})).to.be.false;
+ // });
itEth('Collection allowlist can not be add and remove [eth] address by not owner', async ({helper}) => {
const owner = await helper.eth.createAccountWithBalance(donor);
@@ -128,21 +129,22 @@
expect(await collectionEvm.methods.allowed(user).call({from: owner})).to.be.true;
});
- itEth('Collection allowlist can not be add and remove [sub] address by not owner', async ({helper}) => {
- const owner = await helper.eth.createAccountWithBalance(donor);
- const notOwner = await helper.eth.createAccountWithBalance(donor);
- const user = donor;
+ // TODO: Temprorary off. Need refactor
+ // itEth('Collection allowlist can not be add and remove [sub] address by not owner', async ({helper}) => {
+ // const owner = await helper.eth.createAccountWithBalance(donor);
+ // const notOwner = await helper.eth.createAccountWithBalance(donor);
+ // const user = donor;
- const {collectionAddress, collectionId} = await helper.eth.createNonfungibleCollection(owner, 'A', 'B', 'C');
- const collectionEvm = helper.ethNativeContract.collection(collectionAddress, 'nft', owner);
+ // const {collectionAddress, collectionId} = await helper.eth.createNonfungibleCollection(owner, 'A', 'B', 'C');
+ // const collectionEvm = helper.ethNativeContract.collection(collectionAddress, 'nft', owner);
- expect(await helper.collection.allowed(collectionId, {Substrate: user.address})).to.be.false;
- await expect(collectionEvm.methods.addToCollectionAllowListSubstrate(user.addressRaw).call({from: notOwner})).to.be.rejectedWith('NoPermission');
- expect(await helper.collection.allowed(collectionId, {Substrate: user.address})).to.be.false;
- await collectionEvm.methods.addToCollectionAllowListSubstrate(user.addressRaw).send({from: owner});
+ // expect(await helper.collection.allowed(collectionId, {Substrate: user.address})).to.be.false;
+ // await expect(collectionEvm.methods.addToCollectionAllowListSubstrate(user.addressRaw).call({from: notOwner})).to.be.rejectedWith('NoPermission');
+ // expect(await helper.collection.allowed(collectionId, {Substrate: user.address})).to.be.false;
+ // await collectionEvm.methods.addToCollectionAllowListSubstrate(user.addressRaw).send({from: owner});
- expect(await helper.collection.allowed(collectionId, {Substrate: user.address})).to.be.true;
- await expect(collectionEvm.methods.removeFromCollectionAllowListSubstrate(user.addressRaw).call({from: notOwner})).to.be.rejectedWith('NoPermission');
- expect(await helper.collection.allowed(collectionId, {Substrate: user.address})).to.be.true;
- });
+ // expect(await helper.collection.allowed(collectionId, {Substrate: user.address})).to.be.true;
+ // await expect(collectionEvm.methods.removeFromCollectionAllowListSubstrate(user.addressRaw).call({from: notOwner})).to.be.rejectedWith('NoPermission');
+ // expect(await helper.collection.allowed(collectionId, {Substrate: user.address})).to.be.true;
+ // });
});
tests/src/eth/api/UniqueFungible.soldiffbeforeafterboth--- a/tests/src/eth/api/UniqueFungible.sol
+++ b/tests/src/eth/api/UniqueFungible.sol
@@ -13,7 +13,7 @@
}
/// @title A contract that allows you to work with collections.
-/// @dev the ERC-165 identifier for this interface is 0x47dbc105
+/// @dev the ERC-165 identifier for this interface is 0x3e1e8083
interface Collection is Dummy, ERC165 {
/// Set collection property.
///
@@ -48,15 +48,6 @@
/// @dev EVM selector for this function is: 0x7623402e,
/// or in textual repr: setCollectionSponsor(address)
function setCollectionSponsor(address sponsor) external;
-
- /// Set the substrate sponsor of the collection.
- ///
- /// @dev In order for sponsorship to work, it must be confirmed on behalf of the sponsor.
- ///
- /// @param sponsor Substrate address of the sponsor from whose account funds will be debited for operations with the contract.
- /// @dev EVM selector for this function is: 0xc74d6751,
- /// or in textual repr: setCollectionSponsorSubstrate(uint256)
- function setCollectionSponsorSubstrate(uint256 sponsor) external;
/// Whether there is a pending sponsor.
/// @dev EVM selector for this function is: 0x058ac185,
@@ -112,18 +103,6 @@
/// or in textual repr: contractAddress()
function contractAddress() external view returns (address);
- /// Add collection admin by substrate address.
- /// @param newAdmin Substrate administrator address.
- /// @dev EVM selector for this function is: 0x5730062b,
- /// or in textual repr: addCollectionAdminSubstrate(uint256)
- function addCollectionAdminSubstrate(uint256 newAdmin) external;
-
- /// Remove collection admin by substrate address.
- /// @param admin Substrate administrator address.
- /// @dev EVM selector for this function is: 0x4048fcf9,
- /// or in textual repr: removeCollectionAdminSubstrate(uint256)
- function removeCollectionAdminSubstrate(uint256 admin) external;
-
/// Add collection admin.
/// @param newAdmin Address of the added administrator.
/// @dev EVM selector for this function is: 0x92e462c7,
@@ -174,13 +153,6 @@
/// or in textual repr: addToCollectionAllowList(address)
function addToCollectionAllowList(address user) external;
- /// Add substrate user to allowed list.
- ///
- /// @param user User substrate address.
- /// @dev EVM selector for this function is: 0xd06ad267,
- /// or in textual repr: addToCollectionAllowListSubstrate(uint256)
- function addToCollectionAllowListSubstrate(uint256 user) external;
-
/// Remove the user from the allowed list.
///
/// @param user Address of a removed user.
@@ -188,13 +160,6 @@
/// or in textual repr: removeFromCollectionAllowList(address)
function removeFromCollectionAllowList(address user) external;
- /// Remove substrate user from allowed list.
- ///
- /// @param user User substrate address.
- /// @dev EVM selector for this function is: 0xa31913ed,
- /// or in textual repr: removeFromCollectionAllowListSubstrate(uint256)
- function removeFromCollectionAllowListSubstrate(uint256 user) external;
-
/// Switch permission for minting.
///
/// @param mode Enable if "true".
@@ -209,14 +174,6 @@
/// @dev EVM selector for this function is: 0x9811b0c7,
/// or in textual repr: isOwnerOrAdmin(address)
function isOwnerOrAdmin(address user) external view returns (bool);
-
- /// Check that substrate account is the owner or admin of the collection
- ///
- /// @param user account to verify
- /// @return "true" if account is the owner or admin
- /// @dev EVM selector for this function is: 0x68910e00,
- /// or in textual repr: isOwnerOrAdminSubstrate(uint256)
- function isOwnerOrAdminSubstrate(uint256 user) external view returns (bool);
/// Returns collection type
///
@@ -240,14 +197,6 @@
/// @dev EVM selector for this function is: 0x13af4035,
/// or in textual repr: setOwner(address)
function setOwner(address newOwner) external;
-
- /// Changes collection owner to another substrate account
- ///
- /// @dev Owner can be changed only by current owner
- /// @param newOwner new owner substrate account
- /// @dev EVM selector for this function is: 0xb212138f,
- /// or in textual repr: setOwnerSubstrate(uint256)
- function setOwnerSubstrate(uint256 newOwner) external;
}
/// @dev the ERC-165 identifier for this interface is 0x63034ac5
tests/src/eth/api/UniqueNFT.soldiffbeforeafterboth--- a/tests/src/eth/api/UniqueNFT.sol
+++ b/tests/src/eth/api/UniqueNFT.sol
@@ -62,7 +62,7 @@
}
/// @title A contract that allows you to work with collections.
-/// @dev the ERC-165 identifier for this interface is 0x47dbc105
+/// @dev the ERC-165 identifier for this interface is 0x3e1e8083
interface Collection is Dummy, ERC165 {
/// Set collection property.
///
@@ -97,15 +97,6 @@
/// @dev EVM selector for this function is: 0x7623402e,
/// or in textual repr: setCollectionSponsor(address)
function setCollectionSponsor(address sponsor) external;
-
- /// Set the substrate sponsor of the collection.
- ///
- /// @dev In order for sponsorship to work, it must be confirmed on behalf of the sponsor.
- ///
- /// @param sponsor Substrate address of the sponsor from whose account funds will be debited for operations with the contract.
- /// @dev EVM selector for this function is: 0xc74d6751,
- /// or in textual repr: setCollectionSponsorSubstrate(uint256)
- function setCollectionSponsorSubstrate(uint256 sponsor) external;
/// Whether there is a pending sponsor.
/// @dev EVM selector for this function is: 0x058ac185,
@@ -161,18 +152,6 @@
/// or in textual repr: contractAddress()
function contractAddress() external view returns (address);
- /// Add collection admin by substrate address.
- /// @param newAdmin Substrate administrator address.
- /// @dev EVM selector for this function is: 0x5730062b,
- /// or in textual repr: addCollectionAdminSubstrate(uint256)
- function addCollectionAdminSubstrate(uint256 newAdmin) external;
-
- /// Remove collection admin by substrate address.
- /// @param admin Substrate administrator address.
- /// @dev EVM selector for this function is: 0x4048fcf9,
- /// or in textual repr: removeCollectionAdminSubstrate(uint256)
- function removeCollectionAdminSubstrate(uint256 admin) external;
-
/// Add collection admin.
/// @param newAdmin Address of the added administrator.
/// @dev EVM selector for this function is: 0x92e462c7,
@@ -223,13 +202,6 @@
/// or in textual repr: addToCollectionAllowList(address)
function addToCollectionAllowList(address user) external;
- /// Add substrate user to allowed list.
- ///
- /// @param user User substrate address.
- /// @dev EVM selector for this function is: 0xd06ad267,
- /// or in textual repr: addToCollectionAllowListSubstrate(uint256)
- function addToCollectionAllowListSubstrate(uint256 user) external;
-
/// Remove the user from the allowed list.
///
/// @param user Address of a removed user.
@@ -237,13 +209,6 @@
/// or in textual repr: removeFromCollectionAllowList(address)
function removeFromCollectionAllowList(address user) external;
- /// Remove substrate user from allowed list.
- ///
- /// @param user User substrate address.
- /// @dev EVM selector for this function is: 0xa31913ed,
- /// or in textual repr: removeFromCollectionAllowListSubstrate(uint256)
- function removeFromCollectionAllowListSubstrate(uint256 user) external;
-
/// Switch permission for minting.
///
/// @param mode Enable if "true".
@@ -258,14 +223,6 @@
/// @dev EVM selector for this function is: 0x9811b0c7,
/// or in textual repr: isOwnerOrAdmin(address)
function isOwnerOrAdmin(address user) external view returns (bool);
-
- /// Check that substrate account is the owner or admin of the collection
- ///
- /// @param user account to verify
- /// @return "true" if account is the owner or admin
- /// @dev EVM selector for this function is: 0x68910e00,
- /// or in textual repr: isOwnerOrAdminSubstrate(uint256)
- function isOwnerOrAdminSubstrate(uint256 user) external view returns (bool);
/// Returns collection type
///
@@ -289,14 +246,6 @@
/// @dev EVM selector for this function is: 0x13af4035,
/// or in textual repr: setOwner(address)
function setOwner(address newOwner) external;
-
- /// Changes collection owner to another substrate account
- ///
- /// @dev Owner can be changed only by current owner
- /// @param newOwner new owner substrate account
- /// @dev EVM selector for this function is: 0xb212138f,
- /// or in textual repr: setOwnerSubstrate(uint256)
- function setOwnerSubstrate(uint256 newOwner) external;
}
/// @dev anonymous struct
tests/src/eth/api/UniqueRefungible.soldiffbeforeafterboth--- a/tests/src/eth/api/UniqueRefungible.sol
+++ b/tests/src/eth/api/UniqueRefungible.sol
@@ -62,7 +62,7 @@
}
/// @title A contract that allows you to work with collections.
-/// @dev the ERC-165 identifier for this interface is 0x47dbc105
+/// @dev the ERC-165 identifier for this interface is 0x3e1e8083
interface Collection is Dummy, ERC165 {
/// Set collection property.
///
@@ -97,15 +97,6 @@
/// @dev EVM selector for this function is: 0x7623402e,
/// or in textual repr: setCollectionSponsor(address)
function setCollectionSponsor(address sponsor) external;
-
- /// Set the substrate sponsor of the collection.
- ///
- /// @dev In order for sponsorship to work, it must be confirmed on behalf of the sponsor.
- ///
- /// @param sponsor Substrate address of the sponsor from whose account funds will be debited for operations with the contract.
- /// @dev EVM selector for this function is: 0xc74d6751,
- /// or in textual repr: setCollectionSponsorSubstrate(uint256)
- function setCollectionSponsorSubstrate(uint256 sponsor) external;
/// Whether there is a pending sponsor.
/// @dev EVM selector for this function is: 0x058ac185,
@@ -161,18 +152,6 @@
/// or in textual repr: contractAddress()
function contractAddress() external view returns (address);
- /// Add collection admin by substrate address.
- /// @param newAdmin Substrate administrator address.
- /// @dev EVM selector for this function is: 0x5730062b,
- /// or in textual repr: addCollectionAdminSubstrate(uint256)
- function addCollectionAdminSubstrate(uint256 newAdmin) external;
-
- /// Remove collection admin by substrate address.
- /// @param admin Substrate administrator address.
- /// @dev EVM selector for this function is: 0x4048fcf9,
- /// or in textual repr: removeCollectionAdminSubstrate(uint256)
- function removeCollectionAdminSubstrate(uint256 admin) external;
-
/// Add collection admin.
/// @param newAdmin Address of the added administrator.
/// @dev EVM selector for this function is: 0x92e462c7,
@@ -223,13 +202,6 @@
/// or in textual repr: addToCollectionAllowList(address)
function addToCollectionAllowList(address user) external;
- /// Add substrate user to allowed list.
- ///
- /// @param user User substrate address.
- /// @dev EVM selector for this function is: 0xd06ad267,
- /// or in textual repr: addToCollectionAllowListSubstrate(uint256)
- function addToCollectionAllowListSubstrate(uint256 user) external;
-
/// Remove the user from the allowed list.
///
/// @param user Address of a removed user.
@@ -237,13 +209,6 @@
/// or in textual repr: removeFromCollectionAllowList(address)
function removeFromCollectionAllowList(address user) external;
- /// Remove substrate user from allowed list.
- ///
- /// @param user User substrate address.
- /// @dev EVM selector for this function is: 0xa31913ed,
- /// or in textual repr: removeFromCollectionAllowListSubstrate(uint256)
- function removeFromCollectionAllowListSubstrate(uint256 user) external;
-
/// Switch permission for minting.
///
/// @param mode Enable if "true".
@@ -258,14 +223,6 @@
/// @dev EVM selector for this function is: 0x9811b0c7,
/// or in textual repr: isOwnerOrAdmin(address)
function isOwnerOrAdmin(address user) external view returns (bool);
-
- /// Check that substrate account is the owner or admin of the collection
- ///
- /// @param user account to verify
- /// @return "true" if account is the owner or admin
- /// @dev EVM selector for this function is: 0x68910e00,
- /// or in textual repr: isOwnerOrAdminSubstrate(uint256)
- function isOwnerOrAdminSubstrate(uint256 user) external view returns (bool);
/// Returns collection type
///
@@ -289,14 +246,6 @@
/// @dev EVM selector for this function is: 0x13af4035,
/// or in textual repr: setOwner(address)
function setOwner(address newOwner) external;
-
- /// Changes collection owner to another substrate account
- ///
- /// @dev Owner can be changed only by current owner
- /// @param newOwner new owner substrate account
- /// @dev EVM selector for this function is: 0xb212138f,
- /// or in textual repr: setOwnerSubstrate(uint256)
- function setOwnerSubstrate(uint256 newOwner) external;
}
/// @dev anonymous struct
tests/src/eth/collectionAdmin.test.tsdiffbeforeafterboth--- a/tests/src/eth/collectionAdmin.test.ts
+++ b/tests/src/eth/collectionAdmin.test.ts
@@ -44,23 +44,24 @@
.to.be.eq(newAdmin.toLocaleLowerCase());
});
- itWeb3('Add substrate admin by owner', async ({api, web3, privateKeyWrapper}) => {
- const owner = await createEthAccountWithBalance(api, web3, privateKeyWrapper);
- const collectionHelper = evmCollectionHelpers(web3, owner);
+ // TODO: Temprorary off. Need refactor
+ // itWeb3('Add substrate admin by owner', async ({api, web3, privateKeyWrapper}) => {
+ // const owner = await createEthAccountWithBalance(api, web3, privateKeyWrapper);
+ // const collectionHelper = evmCollectionHelpers(web3, owner);
- const result = await collectionHelper.methods
- .createNonfungibleCollection('A', 'B', 'C')
- .send();
- const {collectionIdAddress, collectionId} = await getCollectionAddressFromResult(api, result);
+ // const result = await collectionHelper.methods
+ // .createNonfungibleCollection('A', 'B', 'C')
+ // .send();
+ // const {collectionIdAddress, collectionId} = await getCollectionAddressFromResult(api, result);
- const newAdmin = privateKeyWrapper('//Alice');
- const collectionEvm = evmCollection(web3, owner, collectionIdAddress);
- await collectionEvm.methods.addCollectionAdminSubstrate(newAdmin.addressRaw).send();
+ // const newAdmin = privateKeyWrapper('//Alice');
+ // const collectionEvm = evmCollection(web3, owner, collectionIdAddress);
+ // await collectionEvm.methods.addCollectionAdminSubstrate(newAdmin.addressRaw).send();
- const adminList = await api.rpc.unique.adminlist(collectionId);
- expect(adminList[0].asSubstrate.toString().toLocaleLowerCase())
- .to.be.eq(newAdmin.address.toLocaleLowerCase());
- });
+ // const adminList = await api.rpc.unique.adminlist(collectionId);
+ // expect(adminList[0].asSubstrate.toString().toLocaleLowerCase())
+ // .to.be.eq(newAdmin.address.toLocaleLowerCase());
+ // });
itWeb3('Verify owner or admin', async ({api, web3, privateKeyWrapper}) => {
const owner = await createEthAccountWithBalance(api, web3, privateKeyWrapper);
@@ -121,47 +122,49 @@
expect(adminList.length).to.be.eq(0);
});
- itWeb3('(!negative tests!) Add substrate admin by ADMIN is not allowed', async ({api, web3, privateKeyWrapper}) => {
- const owner = await createEthAccountWithBalance(api, web3, privateKeyWrapper);
- const collectionHelper = evmCollectionHelpers(web3, owner);
+ // TODO: Temprorary off. Need refactor
+ // itWeb3('(!negative tests!) Add substrate admin by ADMIN is not allowed', async ({api, web3, privateKeyWrapper}) => {
+ // const owner = await createEthAccountWithBalance(api, web3, privateKeyWrapper);
+ // const collectionHelper = evmCollectionHelpers(web3, owner);
- const result = await collectionHelper.methods
- .createNonfungibleCollection('A', 'B', 'C')
- .send();
- const {collectionIdAddress, collectionId} = await getCollectionAddressFromResult(api, result);
+ // const result = await collectionHelper.methods
+ // .createNonfungibleCollection('A', 'B', 'C')
+ // .send();
+ // const {collectionIdAddress, collectionId} = await getCollectionAddressFromResult(api, result);
- const admin = await createEthAccountWithBalance(api, web3, privateKeyWrapper);
- const collectionEvm = evmCollection(web3, owner, collectionIdAddress);
- await collectionEvm.methods.addCollectionAdmin(admin).send();
+ // const admin = await createEthAccountWithBalance(api, web3, privateKeyWrapper);
+ // const collectionEvm = evmCollection(web3, owner, collectionIdAddress);
+ // await collectionEvm.methods.addCollectionAdmin(admin).send();
- const notAdmin = privateKey('//Alice');
- await expect(collectionEvm.methods.addCollectionAdminSubstrate(notAdmin.addressRaw).call({from: admin}))
- .to.be.rejectedWith('NoPermission');
+ // const notAdmin = privateKey('//Alice');
+ // await expect(collectionEvm.methods.addCollectionAdminSubstrate(notAdmin.addressRaw).call({from: admin}))
+ // .to.be.rejectedWith('NoPermission');
- const adminList = await api.rpc.unique.adminlist(collectionId);
- expect(adminList.length).to.be.eq(1);
- expect(adminList[0].asEthereum.toString().toLocaleLowerCase())
- .to.be.eq(admin.toLocaleLowerCase());
- });
+ // const adminList = await api.rpc.unique.adminlist(collectionId);
+ // expect(adminList.length).to.be.eq(1);
+ // expect(adminList[0].asEthereum.toString().toLocaleLowerCase())
+ // .to.be.eq(admin.toLocaleLowerCase());
+ // });
- itWeb3('(!negative tests!) Add substrate admin by USER is not allowed', async ({api, web3, privateKeyWrapper}) => {
- const owner = await createEthAccountWithBalance(api, web3, privateKeyWrapper);
- const collectionHelper = evmCollectionHelpers(web3, owner);
+ // TODO: Temprorary off. Need refactor
+ // itWeb3('(!negative tests!) Add substrate admin by USER is not allowed', async ({api, web3, privateKeyWrapper}) => {
+ // const owner = await createEthAccountWithBalance(api, web3, privateKeyWrapper);
+ // const collectionHelper = evmCollectionHelpers(web3, owner);
- const result = await collectionHelper.methods
- .createNonfungibleCollection('A', 'B', 'C')
- .send();
- const {collectionIdAddress, collectionId} = await getCollectionAddressFromResult(api, result);
+ // const result = await collectionHelper.methods
+ // .createNonfungibleCollection('A', 'B', 'C')
+ // .send();
+ // const {collectionIdAddress, collectionId} = await getCollectionAddressFromResult(api, result);
- const notAdmin0 = await createEthAccountWithBalance(api, web3, privateKeyWrapper);
- const collectionEvm = evmCollection(web3, owner, collectionIdAddress);
- const notAdmin1 = privateKey('//Alice');
- await expect(collectionEvm.methods.addCollectionAdminSubstrate(notAdmin1.addressRaw).call({from: notAdmin0}))
- .to.be.rejectedWith('NoPermission');
+ // const notAdmin0 = await createEthAccountWithBalance(api, web3, privateKeyWrapper);
+ // const collectionEvm = evmCollection(web3, owner, collectionIdAddress);
+ // const notAdmin1 = privateKey('//Alice');
+ // await expect(collectionEvm.methods.addCollectionAdminSubstrate(notAdmin1.addressRaw).call({from: notAdmin0}))
+ // .to.be.rejectedWith('NoPermission');
- const adminList = await api.rpc.unique.adminlist(collectionId);
- expect(adminList.length).to.be.eq(0);
- });
+ // const adminList = await api.rpc.unique.adminlist(collectionId);
+ // expect(adminList.length).to.be.eq(0);
+ // });
});
describe('Remove collection admins', () => {
@@ -189,28 +192,29 @@
expect(adminList.length).to.be.eq(0);
});
- itWeb3('Remove substrate admin by owner', async ({api, web3, privateKeyWrapper}) => {
- const owner = await createEthAccountWithBalance(api, web3, privateKeyWrapper);
- const collectionHelper = evmCollectionHelpers(web3, owner);
+ // TODO: Temprorary off. Need refactor
+ // itWeb3('Remove substrate admin by owner', async ({api, web3, privateKeyWrapper}) => {
+ // const owner = await createEthAccountWithBalance(api, web3, privateKeyWrapper);
+ // const collectionHelper = evmCollectionHelpers(web3, owner);
- const result = await collectionHelper.methods
- .createNonfungibleCollection('A', 'B', 'C')
- .send();
- const {collectionIdAddress, collectionId} = await getCollectionAddressFromResult(api, result);
+ // const result = await collectionHelper.methods
+ // .createNonfungibleCollection('A', 'B', 'C')
+ // .send();
+ // const {collectionIdAddress, collectionId} = await getCollectionAddressFromResult(api, result);
- const newAdmin = privateKeyWrapper('//Alice');
- const collectionEvm = evmCollection(web3, owner, collectionIdAddress);
- await collectionEvm.methods.addCollectionAdminSubstrate(newAdmin.addressRaw).send();
- {
- const adminList = await api.rpc.unique.adminlist(collectionId);
- expect(adminList[0].asSubstrate.toString().toLocaleLowerCase())
- .to.be.eq(newAdmin.address.toLocaleLowerCase());
- }
+ // const newAdmin = privateKeyWrapper('//Alice');
+ // const collectionEvm = evmCollection(web3, owner, collectionIdAddress);
+ // await collectionEvm.methods.addCollectionAdminSubstrate(newAdmin.addressRaw).send();
+ // {
+ // const adminList = await api.rpc.unique.adminlist(collectionId);
+ // expect(adminList[0].asSubstrate.toString().toLocaleLowerCase())
+ // .to.be.eq(newAdmin.address.toLocaleLowerCase());
+ // }
- await collectionEvm.methods.removeCollectionAdminSubstrate(newAdmin.addressRaw).send();
- const adminList = await api.rpc.unique.adminlist(collectionId);
- expect(adminList.length).to.be.eq(0);
- });
+ // await collectionEvm.methods.removeCollectionAdminSubstrate(newAdmin.addressRaw).send();
+ // const adminList = await api.rpc.unique.adminlist(collectionId);
+ // expect(adminList.length).to.be.eq(0);
+ // });
itWeb3('(!negative tests!) Remove admin by ADMIN is not allowed', async ({api, web3, privateKeyWrapper}) => {
const owner = await createEthAccountWithBalance(api, web3, privateKeyWrapper);
@@ -264,53 +268,55 @@
}
});
- itWeb3('(!negative tests!) Remove substrate admin by ADMIN is not allowed', async ({api, web3, privateKeyWrapper}) => {
- const owner = await createEthAccountWithBalance(api, web3, privateKeyWrapper);
- const collectionHelper = evmCollectionHelpers(web3, owner);
+ // TODO: Temprorary off. Need refactor
+ // itWeb3('(!negative tests!) Remove substrate admin by ADMIN is not allowed', async ({api, web3, privateKeyWrapper}) => {
+ // const owner = await createEthAccountWithBalance(api, web3, privateKeyWrapper);
+ // const collectionHelper = evmCollectionHelpers(web3, owner);
- const result = await collectionHelper.methods
- .createNonfungibleCollection('A', 'B', 'C')
- .send();
- const {collectionIdAddress, collectionId} = await getCollectionAddressFromResult(api, result);
+ // const result = await collectionHelper.methods
+ // .createNonfungibleCollection('A', 'B', 'C')
+ // .send();
+ // const {collectionIdAddress, collectionId} = await getCollectionAddressFromResult(api, result);
- const adminSub = privateKeyWrapper('//Alice');
- const collectionEvm = evmCollection(web3, owner, collectionIdAddress);
- await collectionEvm.methods.addCollectionAdminSubstrate(adminSub.addressRaw).send();
- const adminEth = await createEthAccountWithBalance(api, web3, privateKeyWrapper);
- await collectionEvm.methods.addCollectionAdmin(adminEth).send();
+ // const adminSub = privateKeyWrapper('//Alice');
+ // const collectionEvm = evmCollection(web3, owner, collectionIdAddress);
+ // await collectionEvm.methods.addCollectionAdminSubstrate(adminSub.addressRaw).send();
+ // const adminEth = await createEthAccountWithBalance(api, web3, privateKeyWrapper);
+ // await collectionEvm.methods.addCollectionAdmin(adminEth).send();
- await expect(collectionEvm.methods.removeCollectionAdminSubstrate(adminSub.addressRaw).call({from: adminEth}))
- .to.be.rejectedWith('NoPermission');
+ // await expect(collectionEvm.methods.removeCollectionAdminSubstrate(adminSub.addressRaw).call({from: adminEth}))
+ // .to.be.rejectedWith('NoPermission');
- const adminList = await api.rpc.unique.adminlist(collectionId);
- expect(adminList.length).to.be.eq(2);
- expect(adminList.toString().toLocaleLowerCase())
- .to.be.deep.contains(adminSub.address.toLocaleLowerCase())
- .to.be.deep.contains(adminEth.toLocaleLowerCase());
- });
+ // const adminList = await api.rpc.unique.adminlist(collectionId);
+ // expect(adminList.length).to.be.eq(2);
+ // expect(adminList.toString().toLocaleLowerCase())
+ // .to.be.deep.contains(adminSub.address.toLocaleLowerCase())
+ // .to.be.deep.contains(adminEth.toLocaleLowerCase());
+ // });
- itWeb3('(!negative tests!) Remove substrate admin by USER is not allowed', async ({api, web3, privateKeyWrapper}) => {
- const owner = await createEthAccountWithBalance(api, web3, privateKeyWrapper);
- const collectionHelper = evmCollectionHelpers(web3, owner);
+ // TODO: Temprorary off. Need refactor
+ // itWeb3('(!negative tests!) Remove substrate admin by USER is not allowed', async ({api, web3, privateKeyWrapper}) => {
+ // const owner = await createEthAccountWithBalance(api, web3, privateKeyWrapper);
+ // const collectionHelper = evmCollectionHelpers(web3, owner);
- const result = await collectionHelper.methods
- .createNonfungibleCollection('A', 'B', 'C')
- .send();
- const {collectionIdAddress, collectionId} = await getCollectionAddressFromResult(api, result);
+ // const result = await collectionHelper.methods
+ // .createNonfungibleCollection('A', 'B', 'C')
+ // .send();
+ // const {collectionIdAddress, collectionId} = await getCollectionAddressFromResult(api, result);
- const adminSub = privateKeyWrapper('//Alice');
- const collectionEvm = evmCollection(web3, owner, collectionIdAddress);
- await collectionEvm.methods.addCollectionAdminSubstrate(adminSub.addressRaw).send();
- const notAdminEth = await createEthAccountWithBalance(api, web3, privateKeyWrapper);
+ // const adminSub = privateKeyWrapper('//Alice');
+ // const collectionEvm = evmCollection(web3, owner, collectionIdAddress);
+ // await collectionEvm.methods.addCollectionAdminSubstrate(adminSub.addressRaw).send();
+ // const notAdminEth = await createEthAccountWithBalance(api, web3, privateKeyWrapper);
- await expect(collectionEvm.methods.removeCollectionAdminSubstrate(adminSub.addressRaw).call({from: notAdminEth}))
- .to.be.rejectedWith('NoPermission');
+ // await expect(collectionEvm.methods.removeCollectionAdminSubstrate(adminSub.addressRaw).call({from: notAdminEth}))
+ // .to.be.rejectedWith('NoPermission');
- const adminList = await api.rpc.unique.adminlist(collectionId);
- expect(adminList.length).to.be.eq(1);
- expect(adminList[0].asSubstrate.toString().toLocaleLowerCase())
- .to.be.eq(adminSub.address.toLocaleLowerCase());
- });
+ // const adminList = await api.rpc.unique.adminlist(collectionId);
+ // expect(adminList.length).to.be.eq(1);
+ // expect(adminList[0].asSubstrate.toString().toLocaleLowerCase())
+ // .to.be.eq(adminSub.address.toLocaleLowerCase());
+ // });
});
describe('Change owner tests', () => {
@@ -361,52 +367,55 @@
});
describe('Change substrate owner tests', () => {
- itWeb3('Change owner', async ({api, web3, privateKeyWrapper}) => {
- const owner = await createEthAccountWithBalance(api, web3, privateKeyWrapper);
- const newOwner = privateKeyWrapper('//Alice');
- const collectionHelper = evmCollectionHelpers(web3, owner);
- const result = await collectionHelper.methods
- .createNonfungibleCollection('A', 'B', 'C')
- .send();
- const {collectionIdAddress} = await getCollectionAddressFromResult(api, result);
- const collectionEvm = evmCollection(web3, owner, collectionIdAddress);
+ // TODO: Temprorary off. Need refactor
+ // itWeb3('Change owner', async ({api, web3, privateKeyWrapper}) => {
+ // const owner = await createEthAccountWithBalance(api, web3, privateKeyWrapper);
+ // const newOwner = privateKeyWrapper('//Alice');
+ // const collectionHelper = evmCollectionHelpers(web3, owner);
+ // const result = await collectionHelper.methods
+ // .createNonfungibleCollection('A', 'B', 'C')
+ // .send();
+ // const {collectionIdAddress} = await getCollectionAddressFromResult(api, result);
+ // const collectionEvm = evmCollection(web3, owner, collectionIdAddress);
- expect(await collectionEvm.methods.isOwnerOrAdmin(owner).call()).to.be.true;
- expect(await collectionEvm.methods.isOwnerOrAdminSubstrate(newOwner.addressRaw).call()).to.be.false;
+ // expect(await collectionEvm.methods.isOwnerOrAdmin(owner).call()).to.be.true;
+ // expect(await collectionEvm.methods.isOwnerOrAdminSubstrate(newOwner.addressRaw).call()).to.be.false;
- await collectionEvm.methods.setOwnerSubstrate(newOwner.addressRaw).send();
+ // await collectionEvm.methods.setOwnerSubstrate(newOwner.addressRaw).send();
- expect(await collectionEvm.methods.isOwnerOrAdmin(owner).call()).to.be.false;
- expect(await collectionEvm.methods.isOwnerOrAdminSubstrate(newOwner.addressRaw).call()).to.be.true;
- });
+ // expect(await collectionEvm.methods.isOwnerOrAdmin(owner).call()).to.be.false;
+ // expect(await collectionEvm.methods.isOwnerOrAdminSubstrate(newOwner.addressRaw).call()).to.be.true;
+ // });
- itWeb3('change owner call fee', async ({web3, api, privateKeyWrapper}) => {
- const owner = await createEthAccountWithBalance(api, web3, privateKeyWrapper);
- const newOwner = privateKeyWrapper('//Alice');
- const collectionHelper = evmCollectionHelpers(web3, owner);
- const result = await collectionHelper.methods
- .createNonfungibleCollection('A', 'B', 'C')
- .send();
- const {collectionIdAddress} = await getCollectionAddressFromResult(api, result);
- const collectionEvm = evmCollection(web3, owner, collectionIdAddress);
+ // TODO: Temprorary off. Need refactor
+ // itWeb3('change owner call fee', async ({web3, api, privateKeyWrapper}) => {
+ // const owner = await createEthAccountWithBalance(api, web3, privateKeyWrapper);
+ // const newOwner = privateKeyWrapper('//Alice');
+ // const collectionHelper = evmCollectionHelpers(web3, owner);
+ // const result = await collectionHelper.methods
+ // .createNonfungibleCollection('A', 'B', 'C')
+ // .send();
+ // const {collectionIdAddress} = await getCollectionAddressFromResult(api, result);
+ // const collectionEvm = evmCollection(web3, owner, collectionIdAddress);
- const cost = await recordEthFee(api, owner, () => collectionEvm.methods.setOwnerSubstrate(newOwner.addressRaw).send());
- expect(cost < BigInt(0.2 * Number(UNIQUE)));
- expect(cost > 0);
- });
+ // const cost = await recordEthFee(api, owner, () => collectionEvm.methods.setOwnerSubstrate(newOwner.addressRaw).send());
+ // expect(cost < BigInt(0.2 * Number(UNIQUE)));
+ // expect(cost > 0);
+ // });
- itWeb3('(!negative tests!) call setOwner by non owner', async ({api, web3, privateKeyWrapper}) => {
- const owner = await createEthAccountWithBalance(api, web3, privateKeyWrapper);
- const otherReceiver = await createEthAccountWithBalance(api, web3, privateKeyWrapper);
- const newOwner = privateKeyWrapper('//Alice');
- const collectionHelper = evmCollectionHelpers(web3, owner);
- const result = await collectionHelper.methods
- .createNonfungibleCollection('A', 'B', 'C')
- .send();
- const {collectionIdAddress} = await getCollectionAddressFromResult(api, result);
- const collectionEvm = evmCollection(web3, owner, collectionIdAddress);
+ // TODO: Temprorary off. Need refactor
+ // itWeb3('(!negative tests!) call setOwner by non owner', async ({api, web3, privateKeyWrapper}) => {
+ // const owner = await createEthAccountWithBalance(api, web3, privateKeyWrapper);
+ // const otherReceiver = await createEthAccountWithBalance(api, web3, privateKeyWrapper);
+ // const newOwner = privateKeyWrapper('//Alice');
+ // const collectionHelper = evmCollectionHelpers(web3, owner);
+ // const result = await collectionHelper.methods
+ // .createNonfungibleCollection('A', 'B', 'C')
+ // .send();
+ // const {collectionIdAddress} = await getCollectionAddressFromResult(api, result);
+ // const collectionEvm = evmCollection(web3, owner, collectionIdAddress);
- await expect(collectionEvm.methods.setOwnerSubstrate(newOwner.addressRaw).send({from: otherReceiver})).to.be.rejected;
- expect(await collectionEvm.methods.isOwnerOrAdminSubstrate(newOwner.addressRaw).call()).to.be.false;
- });
+ // await expect(collectionEvm.methods.setOwnerSubstrate(newOwner.addressRaw).send({from: otherReceiver})).to.be.rejected;
+ // expect(await collectionEvm.methods.isOwnerOrAdminSubstrate(newOwner.addressRaw).call()).to.be.false;
+ // });
});
\ No newline at end of file
tests/src/eth/collectionSponsoring.test.tsdiffbeforeafterboth1import {addToAllowListExpectSuccess, bigIntToSub, confirmSponsorshipExpectSuccess, createCollectionExpectSuccess, enablePublicMintingExpectSuccess, getDetailedCollectionInfo, setCollectionSponsorExpectSuccess} from '../util/helpers';2import {itWeb3, createEthAccount, collectionIdToAddress, GAS_ARGS, normalizeEvents, createEthAccountWithBalance, evmCollectionHelpers, getCollectionAddressFromResult, evmCollection, ethBalanceViaSub} from './util/helpers';3import nonFungibleAbi from './nonFungibleAbi.json';4import {expect} from 'chai';5import {evmToAddress} from '@polkadot/util-crypto';6import {submitTransactionAsync} from '../substrate/substrate-api';7import getBalance from '../substrate/get-balance';89describe('evm collection sponsoring', () => {10 itWeb3('sponsors mint transactions', async ({web3, privateKeyWrapper}) => {11 const alice = privateKeyWrapper('//Alice');1213 const collection = await createCollectionExpectSuccess();14 await setCollectionSponsorExpectSuccess(collection, alice.address);15 await confirmSponsorshipExpectSuccess(collection);1617 const minter = createEthAccount(web3);18 expect(await web3.eth.getBalance(minter)).to.equal('0');1920 const address = collectionIdToAddress(collection);21 const contract = new web3.eth.Contract(nonFungibleAbi as any, collectionIdToAddress(collection), {from: minter, ...GAS_ARGS});2223 await enablePublicMintingExpectSuccess(alice, collection);24 await addToAllowListExpectSuccess(alice, collection, {Ethereum: minter});2526 const nextTokenId = await contract.methods.nextTokenId().call();27 expect(nextTokenId).to.equal('1');28 const result = await contract.methods.mint(minter, nextTokenId).send();29 const events = normalizeEvents(result.events);30 expect(events).to.be.deep.equal([31 {32 address,33 event: 'Transfer',34 args: {35 from: '0x0000000000000000000000000000000000000000',36 to: minter,37 tokenId: nextTokenId,38 },39 },40 ]);41 });4243 itWeb3('Set substrate sponsor', async ({api, web3, privateKeyWrapper}) => {44 const owner = await createEthAccountWithBalance(api, web3, privateKeyWrapper);45 const collectionHelpers = evmCollectionHelpers(web3, owner);46 let result = await collectionHelpers.methods.createNonfungibleCollection('Sponsor collection', '1', '1').send();47 const {collectionIdAddress, collectionId} = await getCollectionAddressFromResult(api, result);48 const sponsor = privateKeyWrapper('//Alice');49 const collectionEvm = evmCollection(web3, owner, collectionIdAddress);5051 expect(await collectionEvm.methods.hasCollectionPendingSponsor().call({from: owner})).to.be.false;52 result = await collectionEvm.methods.setCollectionSponsorSubstrate(sponsor.addressRaw).send({from: owner});53 expect(await collectionEvm.methods.hasCollectionPendingSponsor().call({from: owner})).to.be.true;54 55 const confirmTx = await api.tx.unique.confirmSponsorship(collectionId);56 await submitTransactionAsync(sponsor, confirmTx);57 expect(await collectionEvm.methods.hasCollectionPendingSponsor().call({from: owner})).to.be.false;58 59 const sponsorTuple = await collectionEvm.methods.collectionSponsor().call({from: owner});60 expect(bigIntToSub(api, BigInt(sponsorTuple[1]))).to.be.eq(sponsor.address);61 });6263 itWeb3('Remove sponsor', async ({api, web3, privateKeyWrapper}) => {64 const owner = await createEthAccountWithBalance(api, web3, privateKeyWrapper);65 const collectionHelpers = evmCollectionHelpers(web3, owner);66 let result = await collectionHelpers.methods.createNonfungibleCollection('Sponsor collection', '1', '1').send();67 const {collectionIdAddress} = await getCollectionAddressFromResult(api, result);68 const sponsor = await createEthAccountWithBalance(api, web3, privateKeyWrapper);69 const collectionEvm = evmCollection(web3, owner, collectionIdAddress);7071 expect(await collectionEvm.methods.hasCollectionPendingSponsor().call({from: owner})).to.be.false;72 result = await collectionEvm.methods.setCollectionSponsor(sponsor).send({from: owner});73 expect(await collectionEvm.methods.hasCollectionPendingSponsor().call({from: owner})).to.be.true;74 75 await collectionEvm.methods.confirmCollectionSponsorship().send({from: sponsor});76 expect(await collectionEvm.methods.hasCollectionPendingSponsor().call({from: owner})).to.be.false;77 78 await collectionEvm.methods.removeCollectionSponsor().send({from: owner});79 80 const sponsorTuple = await collectionEvm.methods.collectionSponsor().call({from: owner});81 expect(sponsorTuple.field_0).to.be.eq('0x0000000000000000000000000000000000000000');82 });8384 itWeb3('Sponsoring collection from evm address via access list', async ({api, web3, privateKeyWrapper}) => {85 const owner = await createEthAccountWithBalance(api, web3, privateKeyWrapper);86 const collectionHelpers = evmCollectionHelpers(web3, owner);87 let result = await collectionHelpers.methods.createNonfungibleCollection('Sponsor collection', '1', '1').send();88 const {collectionIdAddress, collectionId} = await getCollectionAddressFromResult(api, result);89 const sponsor = await createEthAccountWithBalance(api, web3, privateKeyWrapper);90 const collectionEvm = evmCollection(web3, owner, collectionIdAddress);91 result = await collectionEvm.methods.setCollectionSponsor(sponsor).send({from: owner});92 let collectionSub = (await getDetailedCollectionInfo(api, collectionId))!;93 const ss58Format = (api.registry.getChainProperties())!.toJSON().ss58Format;94 expect(collectionSub.sponsorship.isUnconfirmed).to.be.true;95 expect(collectionSub.sponsorship.asUnconfirmed.toHuman()).to.be.eq(evmToAddress(sponsor, Number(ss58Format)));96 await expect(collectionEvm.methods.confirmCollectionSponsorship().call()).to.be.rejectedWith('caller is not set as sponsor');9798 await collectionEvm.methods.confirmCollectionSponsorship().send({from: sponsor});99 collectionSub = (await getDetailedCollectionInfo(api, collectionId))!;100 expect(collectionSub.sponsorship.isConfirmed).to.be.true;101 expect(collectionSub.sponsorship.asConfirmed.toHuman()).to.be.eq(evmToAddress(sponsor, Number(ss58Format)));102103 const user = createEthAccount(web3);104 const nextTokenId = await collectionEvm.methods.nextTokenId().call();105 expect(nextTokenId).to.be.equal('1');106107 const oldPermissions = (await getDetailedCollectionInfo(api, collectionId))!.permissions.toHuman();108 expect(oldPermissions.mintMode).to.be.false;109 expect(oldPermissions.access).to.be.equal('Normal');110111 await collectionEvm.methods.setCollectionAccess(1 /*'AllowList'*/).send({from: owner});112 await collectionEvm.methods.addToCollectionAllowList(user).send({from: owner});113 await collectionEvm.methods.setCollectionMintMode(true).send({from: owner});114115 const newPermissions = (await getDetailedCollectionInfo(api, collectionId))!.permissions.toHuman();116 expect(newPermissions.mintMode).to.be.true;117 expect(newPermissions.access).to.be.equal('AllowList');118119 const ownerBalanceBefore = await ethBalanceViaSub(api, owner);120 const sponsorBalanceBefore = await ethBalanceViaSub(api, sponsor);121122 {123 const nextTokenId = await collectionEvm.methods.nextTokenId().call();124 expect(nextTokenId).to.be.equal('1');125 const result = await collectionEvm.methods.mintWithTokenURI(126 user,127 nextTokenId,128 'Test URI',129 ).send({from: user});130 const events = normalizeEvents(result.events);131132 expect(events).to.be.deep.equal([133 {134 address: collectionIdAddress,135 event: 'Transfer',136 args: {137 from: '0x0000000000000000000000000000000000000000',138 to: user,139 tokenId: nextTokenId,140 },141 },142 ]);143144 const ownerBalanceAfter = await ethBalanceViaSub(api, owner);145 const sponsorBalanceAfter = await ethBalanceViaSub(api, sponsor);146147 expect(await collectionEvm.methods.tokenURI(nextTokenId).call()).to.be.equal('Test URI');148 expect(ownerBalanceBefore).to.be.eq(ownerBalanceAfter);149 expect(sponsorBalanceBefore > sponsorBalanceAfter).to.be.true;150 }151 });152153 itWeb3('Sponsoring collection from substrate address via access list', async ({api, web3, privateKeyWrapper}) => {154 const owner = await createEthAccountWithBalance(api, web3, privateKeyWrapper);155 const collectionHelpers = evmCollectionHelpers(web3, owner);156 const result = await collectionHelpers.methods.createNonfungibleCollection('Sponsor collection', '1', '1').send();157 const {collectionIdAddress, collectionId} = await getCollectionAddressFromResult(api, result);158 const sponsor = privateKeyWrapper('//Alice');159 const collectionEvm = evmCollection(web3, owner, collectionIdAddress);160161 await collectionEvm.methods.setCollectionSponsorSubstrate(sponsor.addressRaw).send({from: owner});162 163 const confirmTx = await api.tx.unique.confirmSponsorship(collectionId);164 await submitTransactionAsync(sponsor, confirmTx);165 166 const user = createEthAccount(web3);167 const nextTokenId = await collectionEvm.methods.nextTokenId().call();168 expect(nextTokenId).to.be.equal('1');169170 await collectionEvm.methods.setCollectionAccess(1 /*'AllowList'*/).send({from: owner});171 await collectionEvm.methods.addToCollectionAllowList(user).send({from: owner});172 await collectionEvm.methods.setCollectionMintMode(true).send({from: owner});173174 const ownerBalanceBefore = await ethBalanceViaSub(api, owner);175 const sponsorBalanceBefore = (await getBalance(api, [sponsor.address]))[0];176177 {178 const nextTokenId = await collectionEvm.methods.nextTokenId().call();179 expect(nextTokenId).to.be.equal('1');180 const result = await collectionEvm.methods.mintWithTokenURI(181 user,182 nextTokenId,183 'Test URI',184 ).send({from: user});185 const events = normalizeEvents(result.events);186187 expect(events).to.be.deep.equal([188 {189 address: collectionIdAddress,190 event: 'Transfer',191 args: {192 from: '0x0000000000000000000000000000000000000000',193 to: user,194 tokenId: nextTokenId,195 },196 },197 ]);198199 const ownerBalanceAfter = await ethBalanceViaSub(api, owner);200 const sponsorBalanceAfter = (await getBalance(api, [sponsor.address]))[0];201202 expect(await collectionEvm.methods.tokenURI(nextTokenId).call()).to.be.equal('Test URI');203 expect(ownerBalanceBefore).to.be.eq(ownerBalanceAfter);204 expect(sponsorBalanceBefore > sponsorBalanceAfter).to.be.true;205 }206 });207208 itWeb3('Check that transaction via EVM spend money from sponsor address', async ({api, web3, privateKeyWrapper}) => {209 const owner = await createEthAccountWithBalance(api, web3, privateKeyWrapper);210 const collectionHelpers = evmCollectionHelpers(web3, owner);211 let result = await collectionHelpers.methods.createNonfungibleCollection('Sponsor collection', '1', '1').send();212 const {collectionIdAddress, collectionId} = await getCollectionAddressFromResult(api, result);213 const sponsor = await createEthAccountWithBalance(api, web3, privateKeyWrapper);214 const collectionEvm = evmCollection(web3, owner, collectionIdAddress);215 result = await collectionEvm.methods.setCollectionSponsor(sponsor).send();216 let collectionSub = (await getDetailedCollectionInfo(api, collectionId))!;217 const ss58Format = (api.registry.getChainProperties())!.toJSON().ss58Format;218 expect(collectionSub.sponsorship.isUnconfirmed).to.be.true;219 expect(collectionSub.sponsorship.asUnconfirmed.toHuman()).to.be.eq(evmToAddress(sponsor, Number(ss58Format)));220 await expect(collectionEvm.methods.confirmCollectionSponsorship().call()).to.be.rejectedWith('caller is not set as sponsor');221 const sponsorCollection = evmCollection(web3, sponsor, collectionIdAddress);222 await sponsorCollection.methods.confirmCollectionSponsorship().send();223 collectionSub = (await getDetailedCollectionInfo(api, collectionId))!;224 expect(collectionSub.sponsorship.isConfirmed).to.be.true;225 expect(collectionSub.sponsorship.asConfirmed.toHuman()).to.be.eq(evmToAddress(sponsor, Number(ss58Format)));226227 const user = createEthAccount(web3);228 await collectionEvm.methods.addCollectionAdmin(user).send();229 230 const ownerBalanceBefore = await ethBalanceViaSub(api, owner);231 const sponsorBalanceBefore = await ethBalanceViaSub(api, sponsor);232 233 234 const userCollectionEvm = evmCollection(web3, user, collectionIdAddress);235 const nextTokenId = await userCollectionEvm.methods.nextTokenId().call();236 expect(nextTokenId).to.be.equal('1');237 result = await userCollectionEvm.methods.mintWithTokenURI(238 user,239 nextTokenId,240 'Test URI',241 ).send();242243 const events = normalizeEvents(result.events);244 const address = collectionIdToAddress(collectionId);245246 expect(events).to.be.deep.equal([247 {248 address,249 event: 'Transfer',250 args: {251 from: '0x0000000000000000000000000000000000000000',252 to: user,253 tokenId: nextTokenId,254 },255 },256 ]);257 expect(await userCollectionEvm.methods.tokenURI(nextTokenId).call()).to.be.equal('Test URI');258 259 const ownerBalanceAfter = await ethBalanceViaSub(api, owner);260 expect(ownerBalanceAfter).to.be.eq(ownerBalanceBefore);261 const sponsorBalanceAfter = await ethBalanceViaSub(api, sponsor);262 expect(sponsorBalanceAfter < sponsorBalanceBefore).to.be.true;263 });264});tests/src/eth/fungibleAbi.jsondiffbeforeafterboth--- a/tests/src/eth/fungibleAbi.json
+++ b/tests/src/eth/fungibleAbi.json
@@ -60,27 +60,9 @@
},
{
"inputs": [
- { "internalType": "uint256", "name": "newAdmin", "type": "uint256" }
- ],
- "name": "addCollectionAdminSubstrate",
- "outputs": [],
- "stateMutability": "nonpayable",
- "type": "function"
- },
- {
- "inputs": [
{ "internalType": "address", "name": "user", "type": "address" }
],
"name": "addToCollectionAllowList",
- "outputs": [],
- "stateMutability": "nonpayable",
- "type": "function"
- },
- {
- "inputs": [
- { "internalType": "uint256", "name": "user", "type": "uint256" }
- ],
- "name": "addToCollectionAllowListSubstrate",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
@@ -214,15 +196,6 @@
{ "internalType": "address", "name": "user", "type": "address" }
],
"name": "isOwnerOrAdmin",
- "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [
- { "internalType": "uint256", "name": "user", "type": "uint256" }
- ],
- "name": "isOwnerOrAdminSubstrate",
"outputs": [{ "internalType": "bool", "name": "", "type": "bool" }],
"stateMutability": "view",
"type": "function"
@@ -271,15 +244,6 @@
"type": "function"
},
{
- "inputs": [
- { "internalType": "uint256", "name": "admin", "type": "uint256" }
- ],
- "name": "removeCollectionAdminSubstrate",
- "outputs": [],
- "stateMutability": "nonpayable",
- "type": "function"
- },
- {
"inputs": [],
"name": "removeCollectionSponsor",
"outputs": [],
@@ -291,15 +255,6 @@
{ "internalType": "address", "name": "user", "type": "address" }
],
"name": "removeFromCollectionAllowList",
- "outputs": [],
- "stateMutability": "nonpayable",
- "type": "function"
- },
- {
- "inputs": [
- { "internalType": "uint256", "name": "user", "type": "uint256" }
- ],
- "name": "removeFromCollectionAllowListSubstrate",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
@@ -380,27 +335,9 @@
},
{
"inputs": [
- { "internalType": "uint256", "name": "sponsor", "type": "uint256" }
- ],
- "name": "setCollectionSponsorSubstrate",
- "outputs": [],
- "stateMutability": "nonpayable",
- "type": "function"
- },
- {
- "inputs": [
{ "internalType": "address", "name": "newOwner", "type": "address" }
],
"name": "setOwner",
- "outputs": [],
- "stateMutability": "nonpayable",
- "type": "function"
- },
- {
- "inputs": [
- { "internalType": "uint256", "name": "newOwner", "type": "uint256" }
- ],
- "name": "setOwnerSubstrate",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
tests/src/eth/nonFungibleAbi.jsondiffbeforeafterboth--- a/tests/src/eth/nonFungibleAbi.json
+++ b/tests/src/eth/nonFungibleAbi.json
@@ -91,27 +91,9 @@
},
{
"inputs": [
- { "internalType": "uint256", "name": "newAdmin", "type": "uint256" }
- ],
- "name": "addCollectionAdminSubstrate",
- "outputs": [],
- "stateMutability": "nonpayable",
- "type": "function"
- },
- {
- "inputs": [
{ "internalType": "address", "name": "user", "type": "address" }
],
"name": "addToCollectionAllowList",
- "outputs": [],
- "stateMutability": "nonpayable",
- "type": "function"
- },
- {
- "inputs": [
- { "internalType": "uint256", "name": "user", "type": "uint256" }
- ],
- "name": "addToCollectionAllowListSubstrate",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
@@ -273,15 +255,6 @@
{ "internalType": "address", "name": "user", "type": "address" }
],
"name": "isOwnerOrAdmin",
- "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [
- { "internalType": "uint256", "name": "user", "type": "uint256" }
- ],
- "name": "isOwnerOrAdminSubstrate",
"outputs": [{ "internalType": "bool", "name": "", "type": "bool" }],
"stateMutability": "view",
"type": "function"
@@ -385,15 +358,6 @@
"type": "function"
},
{
- "inputs": [
- { "internalType": "uint256", "name": "admin", "type": "uint256" }
- ],
- "name": "removeCollectionAdminSubstrate",
- "outputs": [],
- "stateMutability": "nonpayable",
- "type": "function"
- },
- {
"inputs": [],
"name": "removeCollectionSponsor",
"outputs": [],
@@ -405,15 +369,6 @@
{ "internalType": "address", "name": "user", "type": "address" }
],
"name": "removeFromCollectionAllowList",
- "outputs": [],
- "stateMutability": "nonpayable",
- "type": "function"
- },
- {
- "inputs": [
- { "internalType": "uint256", "name": "user", "type": "uint256" }
- ],
- "name": "removeFromCollectionAllowListSubstrate",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
@@ -527,27 +482,9 @@
},
{
"inputs": [
- { "internalType": "uint256", "name": "sponsor", "type": "uint256" }
- ],
- "name": "setCollectionSponsorSubstrate",
- "outputs": [],
- "stateMutability": "nonpayable",
- "type": "function"
- },
- {
- "inputs": [
{ "internalType": "address", "name": "newOwner", "type": "address" }
],
"name": "setOwner",
- "outputs": [],
- "stateMutability": "nonpayable",
- "type": "function"
- },
- {
- "inputs": [
- { "internalType": "uint256", "name": "newOwner", "type": "uint256" }
- ],
- "name": "setOwnerSubstrate",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
tests/src/eth/reFungibleAbi.jsondiffbeforeafterboth--- a/tests/src/eth/reFungibleAbi.json
+++ b/tests/src/eth/reFungibleAbi.json
@@ -91,27 +91,9 @@
},
{
"inputs": [
- { "internalType": "uint256", "name": "newAdmin", "type": "uint256" }
- ],
- "name": "addCollectionAdminSubstrate",
- "outputs": [],
- "stateMutability": "nonpayable",
- "type": "function"
- },
- {
- "inputs": [
{ "internalType": "address", "name": "user", "type": "address" }
],
"name": "addToCollectionAllowList",
- "outputs": [],
- "stateMutability": "nonpayable",
- "type": "function"
- },
- {
- "inputs": [
- { "internalType": "uint256", "name": "user", "type": "uint256" }
- ],
- "name": "addToCollectionAllowListSubstrate",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
@@ -273,15 +255,6 @@
{ "internalType": "address", "name": "user", "type": "address" }
],
"name": "isOwnerOrAdmin",
- "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [
- { "internalType": "uint256", "name": "user", "type": "uint256" }
- ],
- "name": "isOwnerOrAdminSubstrate",
"outputs": [{ "internalType": "bool", "name": "", "type": "bool" }],
"stateMutability": "view",
"type": "function"
@@ -385,15 +358,6 @@
"type": "function"
},
{
- "inputs": [
- { "internalType": "uint256", "name": "admin", "type": "uint256" }
- ],
- "name": "removeCollectionAdminSubstrate",
- "outputs": [],
- "stateMutability": "nonpayable",
- "type": "function"
- },
- {
"inputs": [],
"name": "removeCollectionSponsor",
"outputs": [],
@@ -405,15 +369,6 @@
{ "internalType": "address", "name": "user", "type": "address" }
],
"name": "removeFromCollectionAllowList",
- "outputs": [],
- "stateMutability": "nonpayable",
- "type": "function"
- },
- {
- "inputs": [
- { "internalType": "uint256", "name": "user", "type": "uint256" }
- ],
- "name": "removeFromCollectionAllowListSubstrate",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
@@ -527,27 +482,9 @@
},
{
"inputs": [
- { "internalType": "uint256", "name": "sponsor", "type": "uint256" }
- ],
- "name": "setCollectionSponsorSubstrate",
- "outputs": [],
- "stateMutability": "nonpayable",
- "type": "function"
- },
- {
- "inputs": [
{ "internalType": "address", "name": "newOwner", "type": "address" }
],
"name": "setOwner",
- "outputs": [],
- "stateMutability": "nonpayable",
- "type": "function"
- },
- {
- "inputs": [
- { "internalType": "uint256", "name": "newOwner", "type": "uint256" }
- ],
- "name": "setOwnerSubstrate",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"