difftreelog
refactor evm type names
in: master
30 files changed
pallets/common/src/erc.rsdiffbeforeafterboth--- a/pallets/common/src/erc.rs
+++ b/pallets/common/src/erc.rs
@@ -35,8 +35,7 @@
use crate::{
Pallet, CollectionHandle, Config, CollectionProperties, SelfWeightOf,
eth::{
- Property as PropertyStruct, EthCrossAccount, CollectionPermissions as EvmPermissions,
- CollectionLimitField as EvmCollectionLimits, self,
+ CollectionPermissions as EvmPermissions, CollectionLimitField as EvmCollectionLimits, self,
},
weights::WeightInfo,
};
@@ -122,13 +121,13 @@
fn set_collection_properties(
&mut self,
caller: caller,
- properties: Vec<PropertyStruct>,
+ properties: Vec<eth::Property>,
) -> Result<void> {
let caller = T::CrossAccountId::from_eth(caller);
let properties = properties
.into_iter()
- .map(|PropertyStruct { key, value }| {
+ .map(|eth::Property { key, value }| {
let key = <Vec<u8>>::from(key)
.try_into()
.map_err(|_| "key too large")?;
@@ -196,7 +195,7 @@
///
/// @param keys Properties keys. Empty keys for all propertyes.
/// @return Vector of properties key/value pairs.
- fn collection_properties(&self, keys: Vec<string>) -> Result<Vec<PropertyStruct>> {
+ fn collection_properties(&self, keys: Vec<string>) -> Result<Vec<eth::Property>> {
let keys = keys
.into_iter()
.map(|key| {
@@ -218,7 +217,7 @@
let key =
string::from_utf8(p.key.into()).map_err(|e| Error::Revert(format!("{}", e)))?;
let value = bytes(p.value.to_vec());
- Ok(PropertyStruct { key, value })
+ Ok(eth::Property { key, value })
})
.collect::<Result<Vec<_>>>()?;
Ok(properties)
@@ -248,7 +247,7 @@
fn set_collection_sponsor_cross(
&mut self,
caller: caller,
- sponsor: EthCrossAccount,
+ sponsor: eth::CrossAccount,
) -> Result<void> {
self.consume_store_reads_and_writes(1, 1)?;
@@ -288,13 +287,13 @@
/// Get current sponsor.
///
/// @return Tuble with sponsor address and his substrate mirror. If there is no confirmed sponsor error "Contract has no sponsor" throw.
- fn collection_sponsor(&self) -> Result<EthCrossAccount> {
+ fn collection_sponsor(&self) -> Result<eth::CrossAccount> {
let sponsor = match self.collection.sponsorship.sponsor() {
Some(sponsor) => sponsor,
None => return Ok(Default::default()),
};
- Ok(EthCrossAccount::from_sub::<T>(&sponsor))
+ Ok(eth::CrossAccount::from_sub::<T>(&sponsor))
}
/// Get current collection limits.
@@ -377,7 +376,7 @@
fn add_collection_admin_cross(
&mut self,
caller: caller,
- new_admin: EthCrossAccount,
+ new_admin: eth::CrossAccount,
) -> Result<void> {
self.consume_store_reads_and_writes(2, 2)?;
@@ -392,7 +391,7 @@
fn remove_collection_admin_cross(
&mut self,
caller: caller,
- admin: EthCrossAccount,
+ admin: eth::CrossAccount,
) -> Result<void> {
self.consume_store_reads_and_writes(2, 2)?;
@@ -534,7 +533,7 @@
/// Checks that user allowed to operate with collection.
///
/// @param user User address to check.
- fn allowlisted_cross(&self, user: EthCrossAccount) -> Result<bool> {
+ fn allowlisted_cross(&self, user: eth::CrossAccount) -> Result<bool> {
let user = user.into_sub_cross_account::<T>()?;
Ok(Pallet::<T>::allowed(self.id, user))
}
@@ -558,7 +557,7 @@
fn add_to_collection_allow_list_cross(
&mut self,
caller: caller,
- user: EthCrossAccount,
+ user: eth::CrossAccount,
) -> Result<void> {
self.consume_store_writes(1)?;
@@ -587,7 +586,7 @@
fn remove_from_collection_allow_list_cross(
&mut self,
caller: caller,
- user: EthCrossAccount,
+ user: eth::CrossAccount,
) -> Result<void> {
self.consume_store_writes(1)?;
@@ -625,7 +624,7 @@
///
/// @param user User cross account to verify
/// @return "true" if account is the owner or admin
- fn is_owner_or_admin_cross(&self, user: EthCrossAccount) -> Result<bool> {
+ fn is_owner_or_admin_cross(&self, user: eth::CrossAccount) -> Result<bool> {
let user = user.into_sub_cross_account::<T>()?;
Ok(self.is_owner_or_admin(&user))
}
@@ -646,8 +645,8 @@
///
/// @return Tuble with sponsor address and his substrate mirror.
/// If address is canonical then substrate mirror is zero and vice versa.
- fn collection_owner(&self) -> Result<EthCrossAccount> {
- Ok(EthCrossAccount::from_sub_cross_account::<T>(
+ fn collection_owner(&self) -> Result<eth::CrossAccount> {
+ Ok(eth::CrossAccount::from_sub_cross_account::<T>(
&T::CrossAccountId::from_sub(self.owner.clone()),
))
}
@@ -670,9 +669,9 @@
///
/// @return Vector of tuples with admins address and his substrate mirror.
/// If address is canonical then substrate mirror is zero and vice versa.
- fn collection_admins(&self) -> Result<Vec<EthCrossAccount>> {
+ fn collection_admins(&self) -> Result<Vec<eth::CrossAccount>> {
let result = crate::IsAdmin::<T>::iter_prefix((self.id,))
- .map(|(admin, _)| EthCrossAccount::from_sub_cross_account::<T>(&admin))
+ .map(|(admin, _)| eth::CrossAccount::from_sub_cross_account::<T>(&admin))
.collect();
Ok(result)
}
@@ -684,7 +683,7 @@
fn change_collection_owner_cross(
&mut self,
caller: caller,
- new_owner: EthCrossAccount,
+ new_owner: eth::CrossAccount,
) -> Result<void> {
self.consume_store_writes(1)?;
@@ -693,29 +692,6 @@
self.change_owner(caller, new_owner)
.map_err(dispatch_to_evm::<T>)
}
-}
-
-/// ### Note
-/// Do not forget to add: `self.consume_store_reads(1)?;`
-fn check_is_owner_or_admin<T: Config>(
- caller: caller,
- collection: &CollectionHandle<T>,
-) -> Result<T::CrossAccountId> {
- let caller = T::CrossAccountId::from_eth(caller);
- collection
- .check_is_owner_or_admin(&caller)
- .map_err(dispatch_to_evm::<T>)?;
- Ok(caller)
-}
-
-/// ### Note
-/// Do not forget to add: `self.consume_store_writes(1)?;`
-fn save<T: Config>(collection: &CollectionHandle<T>) -> Result<void> {
- collection
- .check_is_internal()
- .map_err(dispatch_to_evm::<T>)?;
- collection.save().map_err(dispatch_to_evm::<T>)?;
- Ok(())
}
/// Contains static property keys and values.
pallets/common/src/eth.rsdiffbeforeafterboth--- a/pallets/common/src/eth.rs
+++ b/pallets/common/src/eth.rs
@@ -68,13 +68,13 @@
/// Cross account struct
#[derive(Debug, Default, AbiCoder)]
-pub struct EthCrossAccount {
+pub struct CrossAccount {
pub(crate) eth: address,
pub(crate) sub: uint256,
}
-impl EthCrossAccount {
- /// Converts `CrossAccountId` to `EthCrossAccountId`
+impl CrossAccount {
+ /// Converts `CrossAccountId` to [`CrossAccount`]
pub fn from_sub_cross_account<T>(cross_account_id: &T::CrossAccountId) -> Self
where
T: pallet_evm::Config,
@@ -89,7 +89,7 @@
}
}
}
- /// Creates `EthCrossAccount` from substrate account
+ /// Creates [`CrossAccount`] from substrate account
pub fn from_sub<T>(account_id: &T::AccountId) -> Self
where
T: pallet_evm::Config,
@@ -100,7 +100,7 @@
sub: uint256::from_big_endian(account_id.as_ref()),
}
}
- /// Converts `EthCrossAccount` to `CrossAccountId`
+ /// Converts [`CrossAccount`] to `CrossAccountId`
pub fn into_sub_cross_account<T>(&self) -> evm_coder::execution::Result<T::CrossAccountId>
where
T: pallet_evm::Config,
@@ -127,7 +127,7 @@
pub value: evm_coder::types::bytes,
}
-/// [`CollectionLimits`](up_data_structs::CollectionLimits) representation for EVM.
+/// [`CollectionLimits`](up_data_structs::CollectionLimits) fields representation for EVM.
#[derive(Debug, Default, Clone, Copy, AbiCoder)]
#[repr(u8)]
pub enum CollectionLimitField {
@@ -160,6 +160,7 @@
TransferEnabled,
}
+/// [`CollectionLimits`](up_data_structs::CollectionLimits) field representation for EVM.
#[derive(Debug, Default, AbiCoder)]
pub struct CollectionLimit {
field: CollectionLimitField,
@@ -168,6 +169,7 @@
}
impl CollectionLimit {
+ /// Make [`CollectionLimit`] from [`CollectionLimitField`] and int value.
pub fn from_int(field: CollectionLimitField, value: u32) -> Self {
Self {
field,
@@ -176,6 +178,7 @@
}
}
+ /// Make [`CollectionLimit`] from [`CollectionLimitField`] and optional int value.
pub fn from_opt_int(field: CollectionLimitField, value: Option<u32>) -> Self {
value
.map(|v| Self {
@@ -190,6 +193,7 @@
})
}
+ /// Make [`CollectionLimit`] from [`CollectionLimitField`] and bool value.
pub fn from_opt_bool(field: CollectionLimitField, value: Option<bool>) -> Self {
value
.map(|v| Self {
@@ -306,6 +310,7 @@
}
impl PropertyPermission {
+ /// Make vector of [`PropertyPermission`] from [`up_data_structs::PropertyPermission`].
pub fn into_vec(pp: up_data_structs::PropertyPermission) -> Vec<Self> {
vec![
PropertyPermission {
@@ -323,6 +328,7 @@
]
}
+ /// Make [`up_data_structs::PropertyPermission`] from vector of [`PropertyPermission`].
pub fn from_vec(permission: Vec<Self>) -> up_data_structs::PropertyPermission {
let mut token_permission = up_data_structs::PropertyPermission::default();
@@ -367,6 +373,7 @@
}
impl TokenPropertyPermission {
+ /// Convert vector of [`TokenPropertyPermission`] into vector of [`up_data_structs::PropertyKeyPermission`].
pub fn into_property_key_permissions(
permissions: Vec<TokenPropertyPermission>,
) -> evm_coder::execution::Result<Vec<up_data_structs::PropertyKeyPermission>> {
pallets/evm-contract-helpers/src/eth.rsdiffbeforeafterboth--- a/pallets/evm-contract-helpers/src/eth.rs
+++ b/pallets/evm-contract-helpers/src/eth.rs
@@ -25,7 +25,6 @@
types::*,
ToLog,
};
-use pallet_common::eth::EthCrossAccount;
use pallet_evm::{
ExitRevert, OnCreate, OnMethodCall, PrecompileResult, PrecompileFailure, PrecompileHandle,
account::CrossAccountId,
@@ -175,10 +174,12 @@
///
/// @param contractAddress The contract for which a sponsor is requested.
/// @return Tuble with sponsor address and his substrate mirror. If there is no confirmed sponsor error "Contract has no sponsor" throw.
- fn sponsor(&self, contract_address: address) -> Result<EthCrossAccount> {
- Ok(EthCrossAccount::from_sub_cross_account::<T>(
- &Pallet::<T>::get_sponsor(contract_address).ok_or("Contract has no sponsor")?,
- ))
+ fn sponsor(&self, contract_address: address) -> Result<pallet_common::eth::CrossAccount> {
+ Ok(
+ pallet_common::eth::CrossAccount::from_sub_cross_account::<T>(
+ &Pallet::<T>::get_sponsor(contract_address).ok_or("Contract has no sponsor")?,
+ ),
+ )
}
/// Check tat contract has confirmed sponsor.
pallets/evm-contract-helpers/src/stubs/ContractHelpers.rawdiffbeforeafterbothbinary blob — no preview
pallets/evm-contract-helpers/src/stubs/ContractHelpers.soldiffbeforeafterboth--- a/pallets/evm-contract-helpers/src/stubs/ContractHelpers.sol
+++ b/pallets/evm-contract-helpers/src/stubs/ContractHelpers.sol
@@ -96,11 +96,11 @@
/// @return Tuble with sponsor address and his substrate mirror. If there is no confirmed sponsor error "Contract has no sponsor" throw.
/// @dev EVM selector for this function is: 0x766c4f37,
/// or in textual repr: sponsor(address)
- function sponsor(address contractAddress) public view returns (EthCrossAccount memory) {
+ function sponsor(address contractAddress) public view returns (CrossAccount memory) {
require(false, stub_error);
contractAddress;
dummy;
- return EthCrossAccount(0x0000000000000000000000000000000000000000, 0);
+ return CrossAccount(0x0000000000000000000000000000000000000000, 0);
}
/// Check tat contract has confirmed sponsor.
@@ -266,7 +266,7 @@
}
/// @dev Cross account struct
-struct EthCrossAccount {
+struct CrossAccount {
address eth;
uint256 sub;
}
pallets/fungible/src/erc.rsdiffbeforeafterboth--- a/pallets/fungible/src/erc.rs
+++ b/pallets/fungible/src/erc.rs
@@ -27,7 +27,6 @@
use pallet_common::{
CollectionHandle,
erc::{CommonEvmHandler, PrecompileResult, CollectionCall},
- eth::EthCrossAccount,
};
use sp_std::vec::Vec;
use pallet_evm::{account::CrossAccountId, PrecompileHandle};
@@ -175,7 +174,12 @@
}
#[weight(<SelfWeightOf<T>>::create_item())]
- fn mint_cross(&mut self, caller: caller, to: EthCrossAccount, amount: uint256) -> Result<bool> {
+ fn mint_cross(
+ &mut self,
+ caller: caller,
+ to: pallet_common::eth::CrossAccount,
+ amount: uint256,
+ ) -> Result<bool> {
let caller = T::CrossAccountId::from_eth(caller);
let to = to.into_sub_cross_account::<T>()?;
let amount = amount.try_into().map_err(|_| "amount overflow")?;
@@ -191,7 +195,7 @@
fn approve_cross(
&mut self,
caller: caller,
- spender: EthCrossAccount,
+ spender: pallet_common::eth::CrossAccount,
amount: uint256,
) -> Result<bool> {
let caller = T::CrossAccountId::from_eth(caller);
@@ -232,7 +236,7 @@
fn burn_from_cross(
&mut self,
caller: caller,
- from: EthCrossAccount,
+ from: pallet_common::eth::CrossAccount,
amount: uint256,
) -> Result<bool> {
let caller = T::CrossAccountId::from_eth(caller);
@@ -274,7 +278,7 @@
fn transfer_cross(
&mut self,
caller: caller,
- to: EthCrossAccount,
+ to: pallet_common::eth::CrossAccount,
amount: uint256,
) -> Result<bool> {
let caller = T::CrossAccountId::from_eth(caller);
@@ -292,8 +296,8 @@
fn transfer_from_cross(
&mut self,
caller: caller,
- from: EthCrossAccount,
- to: EthCrossAccount,
+ from: pallet_common::eth::CrossAccount,
+ to: pallet_common::eth::CrossAccount,
amount: uint256,
) -> Result<bool> {
let caller = T::CrossAccountId::from_eth(caller);
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
@@ -114,7 +114,7 @@
/// @param sponsor Cross account address of the sponsor from whose account funds will be debited for operations with the contract.
/// @dev EVM selector for this function is: 0x84a1d5a8,
/// or in textual repr: setCollectionSponsorCross((address,uint256))
- function setCollectionSponsorCross(EthCrossAccount memory sponsor) public {
+ function setCollectionSponsorCross(CrossAccount memory sponsor) public {
require(false, stub_error);
sponsor;
dummy = 0;
@@ -152,10 +152,10 @@
/// @return Tuble with sponsor address and his substrate mirror. If there is no confirmed sponsor error "Contract has no sponsor" throw.
/// @dev EVM selector for this function is: 0x6ec0a9f1,
/// or in textual repr: collectionSponsor()
- function collectionSponsor() public view returns (EthCrossAccount memory) {
+ function collectionSponsor() public view returns (CrossAccount memory) {
require(false, stub_error);
dummy;
- return EthCrossAccount(0x0000000000000000000000000000000000000000, 0);
+ return CrossAccount(0x0000000000000000000000000000000000000000, 0);
}
/// Get current collection limits.
@@ -193,7 +193,7 @@
/// @param newAdmin Cross account administrator address.
/// @dev EVM selector for this function is: 0x859aa7d6,
/// or in textual repr: addCollectionAdminCross((address,uint256))
- function addCollectionAdminCross(EthCrossAccount memory newAdmin) public {
+ function addCollectionAdminCross(CrossAccount memory newAdmin) public {
require(false, stub_error);
newAdmin;
dummy = 0;
@@ -203,7 +203,7 @@
/// @param admin Cross account administrator address.
/// @dev EVM selector for this function is: 0x6c0cd173,
/// or in textual repr: removeCollectionAdminCross((address,uint256))
- function removeCollectionAdminCross(EthCrossAccount memory admin) public {
+ function removeCollectionAdminCross(CrossAccount memory admin) public {
require(false, stub_error);
admin;
dummy = 0;
@@ -289,7 +289,7 @@
/// @param user User address to check.
/// @dev EVM selector for this function is: 0x91b6df49,
/// or in textual repr: allowlistedCross((address,uint256))
- function allowlistedCross(EthCrossAccount memory user) public view returns (bool) {
+ function allowlistedCross(CrossAccount memory user) public view returns (bool) {
require(false, stub_error);
user;
dummy;
@@ -312,7 +312,7 @@
/// @param user User cross account address.
/// @dev EVM selector for this function is: 0xa0184a3a,
/// or in textual repr: addToCollectionAllowListCross((address,uint256))
- function addToCollectionAllowListCross(EthCrossAccount memory user) public {
+ function addToCollectionAllowListCross(CrossAccount memory user) public {
require(false, stub_error);
user;
dummy = 0;
@@ -334,7 +334,7 @@
/// @param user User cross account address.
/// @dev EVM selector for this function is: 0x09ba452a,
/// or in textual repr: removeFromCollectionAllowListCross((address,uint256))
- function removeFromCollectionAllowListCross(EthCrossAccount memory user) public {
+ function removeFromCollectionAllowListCross(CrossAccount memory user) public {
require(false, stub_error);
user;
dummy = 0;
@@ -370,7 +370,7 @@
/// @return "true" if account is the owner or admin
/// @dev EVM selector for this function is: 0x3e75a905,
/// or in textual repr: isOwnerOrAdminCross((address,uint256))
- function isOwnerOrAdminCross(EthCrossAccount memory user) public view returns (bool) {
+ function isOwnerOrAdminCross(CrossAccount memory user) public view returns (bool) {
require(false, stub_error);
user;
dummy;
@@ -394,10 +394,10 @@
/// If address is canonical then substrate mirror is zero and vice versa.
/// @dev EVM selector for this function is: 0xdf727d3b,
/// or in textual repr: collectionOwner()
- function collectionOwner() public view returns (EthCrossAccount memory) {
+ function collectionOwner() public view returns (CrossAccount memory) {
require(false, stub_error);
dummy;
- return EthCrossAccount(0x0000000000000000000000000000000000000000, 0);
+ return CrossAccount(0x0000000000000000000000000000000000000000, 0);
}
// /// Changes collection owner to another account
@@ -418,10 +418,10 @@
/// If address is canonical then substrate mirror is zero and vice versa.
/// @dev EVM selector for this function is: 0x5813216b,
/// or in textual repr: collectionAdmins()
- function collectionAdmins() public view returns (EthCrossAccount[] memory) {
+ function collectionAdmins() public view returns (CrossAccount[] memory) {
require(false, stub_error);
dummy;
- return new EthCrossAccount[](0);
+ return new CrossAccount[](0);
}
/// Changes collection owner to another account
@@ -430,7 +430,7 @@
/// @param newOwner new owner cross account
/// @dev EVM selector for this function is: 0x6496c497,
/// or in textual repr: changeCollectionOwnerCross((address,uint256))
- function changeCollectionOwnerCross(EthCrossAccount memory newOwner) public {
+ function changeCollectionOwnerCross(CrossAccount memory newOwner) public {
require(false, stub_error);
newOwner;
dummy = 0;
@@ -438,7 +438,7 @@
}
/// @dev Cross account struct
-struct EthCrossAccount {
+struct CrossAccount {
address eth;
uint256 sub;
}
@@ -463,13 +463,14 @@
uint256[] field_1;
}
+/// @dev [`CollectionLimits`](up_data_structs::CollectionLimits) field representation for EVM.
struct CollectionLimit {
CollectionLimitField field;
bool status;
uint256 value;
}
-/// @dev [`CollectionLimits`](up_data_structs::CollectionLimits) representation for EVM.
+/// @dev [`CollectionLimits`](up_data_structs::CollectionLimits) fields representation for EVM.
enum CollectionLimitField {
/// @dev How many tokens can a user have on one account.
AccountTokenOwnership,
@@ -512,7 +513,7 @@
/// @dev EVM selector for this function is: 0x269e6158,
/// or in textual repr: mintCross((address,uint256),uint256)
- function mintCross(EthCrossAccount memory to, uint256 amount) public returns (bool) {
+ function mintCross(CrossAccount memory to, uint256 amount) public returns (bool) {
require(false, stub_error);
to;
amount;
@@ -522,7 +523,7 @@
/// @dev EVM selector for this function is: 0x0ecd0ab0,
/// or in textual repr: approveCross((address,uint256),uint256)
- function approveCross(EthCrossAccount memory spender, uint256 amount) public returns (bool) {
+ function approveCross(CrossAccount memory spender, uint256 amount) public returns (bool) {
require(false, stub_error);
spender;
amount;
@@ -552,7 +553,7 @@
/// @param amount The amount that will be burnt.
/// @dev EVM selector for this function is: 0xbb2f5a58,
/// or in textual repr: burnFromCross((address,uint256),uint256)
- function burnFromCross(EthCrossAccount memory from, uint256 amount) public returns (bool) {
+ function burnFromCross(CrossAccount memory from, uint256 amount) public returns (bool) {
require(false, stub_error);
from;
amount;
@@ -573,7 +574,7 @@
/// @dev EVM selector for this function is: 0x2ada85ff,
/// or in textual repr: transferCross((address,uint256),uint256)
- function transferCross(EthCrossAccount memory to, uint256 amount) public returns (bool) {
+ function transferCross(CrossAccount memory to, uint256 amount) public returns (bool) {
require(false, stub_error);
to;
amount;
@@ -584,8 +585,8 @@
/// @dev EVM selector for this function is: 0xd5cf430b,
/// or in textual repr: transferFromCross((address,uint256),(address,uint256),uint256)
function transferFromCross(
- EthCrossAccount memory from,
- EthCrossAccount memory to,
+ CrossAccount memory from,
+ CrossAccount memory to,
uint256 amount
) public returns (bool) {
require(false, stub_error);
pallets/nonfungible/src/erc.rsdiffbeforeafterboth--- a/pallets/nonfungible/src/erc.rs
+++ b/pallets/nonfungible/src/erc.rs
@@ -38,7 +38,6 @@
use pallet_common::{
CollectionHandle, CollectionPropertyPermissions, CommonCollectionOperations,
erc::{CommonEvmHandler, PrecompileResult, CollectionCall, static_property::key},
- eth::{Property as PropertyStruct, EthCrossAccount},
};
use pallet_evm::{account::CrossAccountId, PrecompileHandle};
use pallet_evm_coder_substrate::call;
@@ -160,7 +159,7 @@
&mut self,
caller: caller,
token_id: uint256,
- properties: Vec<PropertyStruct>,
+ properties: Vec<pallet_common::eth::Property>,
) -> Result<()> {
let caller = T::CrossAccountId::from_eth(caller);
let token_id: u32 = token_id.try_into().map_err(|_| "token id overflow")?;
@@ -171,7 +170,7 @@
let properties = properties
.into_iter()
- .map(|PropertyStruct { key, value }| {
+ .map(|pallet_common::eth::Property { key, value }| {
let key = <Vec<u8>>::from(key)
.try_into()
.map_err(|_| "key too large")?;
@@ -762,9 +761,9 @@
/// Returns the owner (in cross format) of the token.
///
/// @param tokenId Id for the token.
- fn cross_owner_of(&self, token_id: uint256) -> Result<EthCrossAccount> {
+ fn cross_owner_of(&self, token_id: uint256) -> Result<pallet_common::eth::CrossAccount> {
Self::token_owner(&self, token_id.try_into()?)
- .map(|o| EthCrossAccount::from_sub_cross_account::<T>(&o))
+ .map(|o| pallet_common::eth::CrossAccount::from_sub_cross_account::<T>(&o))
.ok_or(Error::Revert("key too large".into()))
}
@@ -773,7 +772,11 @@
/// @param tokenId Id for the token.
/// @param keys Properties keys. Empty keys for all propertyes.
/// @return Vector of properties key/value pairs.
- fn properties(&self, token_id: uint256, keys: Vec<string>) -> Result<Vec<PropertyStruct>> {
+ fn properties(
+ &self,
+ token_id: uint256,
+ keys: Vec<string>,
+ ) -> Result<Vec<pallet_common::eth::Property>> {
let keys = keys
.into_iter()
.map(|key| {
@@ -793,7 +796,7 @@
let key = string::from_utf8(p.key.to_vec())
.map_err(|e| Error::Revert(alloc::format!("{}", e)))?;
let value = bytes(p.value.to_vec());
- Ok(PropertyStruct { key, value })
+ Ok(pallet_common::eth::Property { key, value })
})
.collect::<Result<Vec<_>>>()
}
@@ -808,7 +811,7 @@
fn approve_cross(
&mut self,
caller: caller,
- approved: EthCrossAccount,
+ approved: pallet_common::eth::CrossAccount,
token_id: uint256,
) -> Result<void> {
let caller = T::CrossAccountId::from_eth(caller);
@@ -847,7 +850,7 @@
fn transfer_cross(
&mut self,
caller: caller,
- to: EthCrossAccount,
+ to: pallet_common::eth::CrossAccount,
token_id: uint256,
) -> Result<void> {
let caller = T::CrossAccountId::from_eth(caller);
@@ -871,8 +874,8 @@
fn transfer_from_cross(
&mut self,
caller: caller,
- from: EthCrossAccount,
- to: EthCrossAccount,
+ from: pallet_common::eth::CrossAccount,
+ to: pallet_common::eth::CrossAccount,
token_id: uint256,
) -> Result<void> {
let caller = T::CrossAccountId::from_eth(caller);
@@ -918,7 +921,7 @@
fn burn_from_cross(
&mut self,
caller: caller,
- from: EthCrossAccount,
+ from: pallet_common::eth::CrossAccount,
token_id: uint256,
) -> Result<void> {
let caller = T::CrossAccountId::from_eth(caller);
@@ -1040,8 +1043,8 @@
fn mint_cross(
&mut self,
caller: caller,
- to: EthCrossAccount,
- properties: Vec<PropertyStruct>,
+ to: pallet_common::eth::CrossAccount,
+ properties: Vec<pallet_common::eth::Property>,
) -> Result<uint256> {
let token_id = <TokensMinted<T>>::get(self.id)
.checked_add(1)
@@ -1051,7 +1054,7 @@
let properties = properties
.into_iter()
- .map(|PropertyStruct { key, value }| {
+ .map(|pallet_common::eth::Property { key, value }| {
let key = <Vec<u8>>::from(key)
.try_into()
.map_err(|_| "key too large")?;
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
@@ -258,7 +258,7 @@
/// @param sponsor Cross account address of the sponsor from whose account funds will be debited for operations with the contract.
/// @dev EVM selector for this function is: 0x84a1d5a8,
/// or in textual repr: setCollectionSponsorCross((address,uint256))
- function setCollectionSponsorCross(EthCrossAccount memory sponsor) public {
+ function setCollectionSponsorCross(CrossAccount memory sponsor) public {
require(false, stub_error);
sponsor;
dummy = 0;
@@ -296,10 +296,10 @@
/// @return Tuble with sponsor address and his substrate mirror. If there is no confirmed sponsor error "Contract has no sponsor" throw.
/// @dev EVM selector for this function is: 0x6ec0a9f1,
/// or in textual repr: collectionSponsor()
- function collectionSponsor() public view returns (EthCrossAccount memory) {
+ function collectionSponsor() public view returns (CrossAccount memory) {
require(false, stub_error);
dummy;
- return EthCrossAccount(0x0000000000000000000000000000000000000000, 0);
+ return CrossAccount(0x0000000000000000000000000000000000000000, 0);
}
/// Get current collection limits.
@@ -337,7 +337,7 @@
/// @param newAdmin Cross account administrator address.
/// @dev EVM selector for this function is: 0x859aa7d6,
/// or in textual repr: addCollectionAdminCross((address,uint256))
- function addCollectionAdminCross(EthCrossAccount memory newAdmin) public {
+ function addCollectionAdminCross(CrossAccount memory newAdmin) public {
require(false, stub_error);
newAdmin;
dummy = 0;
@@ -347,7 +347,7 @@
/// @param admin Cross account administrator address.
/// @dev EVM selector for this function is: 0x6c0cd173,
/// or in textual repr: removeCollectionAdminCross((address,uint256))
- function removeCollectionAdminCross(EthCrossAccount memory admin) public {
+ function removeCollectionAdminCross(CrossAccount memory admin) public {
require(false, stub_error);
admin;
dummy = 0;
@@ -433,7 +433,7 @@
/// @param user User address to check.
/// @dev EVM selector for this function is: 0x91b6df49,
/// or in textual repr: allowlistedCross((address,uint256))
- function allowlistedCross(EthCrossAccount memory user) public view returns (bool) {
+ function allowlistedCross(CrossAccount memory user) public view returns (bool) {
require(false, stub_error);
user;
dummy;
@@ -456,7 +456,7 @@
/// @param user User cross account address.
/// @dev EVM selector for this function is: 0xa0184a3a,
/// or in textual repr: addToCollectionAllowListCross((address,uint256))
- function addToCollectionAllowListCross(EthCrossAccount memory user) public {
+ function addToCollectionAllowListCross(CrossAccount memory user) public {
require(false, stub_error);
user;
dummy = 0;
@@ -478,7 +478,7 @@
/// @param user User cross account address.
/// @dev EVM selector for this function is: 0x09ba452a,
/// or in textual repr: removeFromCollectionAllowListCross((address,uint256))
- function removeFromCollectionAllowListCross(EthCrossAccount memory user) public {
+ function removeFromCollectionAllowListCross(CrossAccount memory user) public {
require(false, stub_error);
user;
dummy = 0;
@@ -514,7 +514,7 @@
/// @return "true" if account is the owner or admin
/// @dev EVM selector for this function is: 0x3e75a905,
/// or in textual repr: isOwnerOrAdminCross((address,uint256))
- function isOwnerOrAdminCross(EthCrossAccount memory user) public view returns (bool) {
+ function isOwnerOrAdminCross(CrossAccount memory user) public view returns (bool) {
require(false, stub_error);
user;
dummy;
@@ -538,10 +538,10 @@
/// If address is canonical then substrate mirror is zero and vice versa.
/// @dev EVM selector for this function is: 0xdf727d3b,
/// or in textual repr: collectionOwner()
- function collectionOwner() public view returns (EthCrossAccount memory) {
+ function collectionOwner() public view returns (CrossAccount memory) {
require(false, stub_error);
dummy;
- return EthCrossAccount(0x0000000000000000000000000000000000000000, 0);
+ return CrossAccount(0x0000000000000000000000000000000000000000, 0);
}
// /// Changes collection owner to another account
@@ -562,10 +562,10 @@
/// If address is canonical then substrate mirror is zero and vice versa.
/// @dev EVM selector for this function is: 0x5813216b,
/// or in textual repr: collectionAdmins()
- function collectionAdmins() public view returns (EthCrossAccount[] memory) {
+ function collectionAdmins() public view returns (CrossAccount[] memory) {
require(false, stub_error);
dummy;
- return new EthCrossAccount[](0);
+ return new CrossAccount[](0);
}
/// Changes collection owner to another account
@@ -574,7 +574,7 @@
/// @param newOwner new owner cross account
/// @dev EVM selector for this function is: 0x6496c497,
/// or in textual repr: changeCollectionOwnerCross((address,uint256))
- function changeCollectionOwnerCross(EthCrossAccount memory newOwner) public {
+ function changeCollectionOwnerCross(CrossAccount memory newOwner) public {
require(false, stub_error);
newOwner;
dummy = 0;
@@ -582,7 +582,7 @@
}
/// @dev Cross account struct
-struct EthCrossAccount {
+struct CrossAccount {
address eth;
uint256 sub;
}
@@ -607,13 +607,14 @@
uint256[] field_1;
}
+/// @dev [`CollectionLimits`](up_data_structs::CollectionLimits) field representation for EVM.
struct CollectionLimit {
CollectionLimitField field;
bool status;
uint256 value;
}
-/// @dev [`CollectionLimits`](up_data_structs::CollectionLimits) representation for EVM.
+/// @dev [`CollectionLimits`](up_data_structs::CollectionLimits) fields representation for EVM.
enum CollectionLimitField {
/// @dev How many tokens can a user have on one account.
AccountTokenOwnership,
@@ -813,11 +814,11 @@
/// @param tokenId Id for the token.
/// @dev EVM selector for this function is: 0x2b29dace,
/// or in textual repr: crossOwnerOf(uint256)
- function crossOwnerOf(uint256 tokenId) public view returns (EthCrossAccount memory) {
+ function crossOwnerOf(uint256 tokenId) public view returns (CrossAccount memory) {
require(false, stub_error);
tokenId;
dummy;
- return EthCrossAccount(0x0000000000000000000000000000000000000000, 0);
+ return CrossAccount(0x0000000000000000000000000000000000000000, 0);
}
/// Returns the token properties.
@@ -843,7 +844,7 @@
/// @param tokenId The NFT to approve
/// @dev EVM selector for this function is: 0x0ecd0ab0,
/// or in textual repr: approveCross((address,uint256),uint256)
- function approveCross(EthCrossAccount memory approved, uint256 tokenId) public {
+ function approveCross(CrossAccount memory approved, uint256 tokenId) public {
require(false, stub_error);
approved;
tokenId;
@@ -871,7 +872,7 @@
/// @param tokenId The NFT to transfer
/// @dev EVM selector for this function is: 0x2ada85ff,
/// or in textual repr: transferCross((address,uint256),uint256)
- function transferCross(EthCrossAccount memory to, uint256 tokenId) public {
+ function transferCross(CrossAccount memory to, uint256 tokenId) public {
require(false, stub_error);
to;
tokenId;
@@ -887,8 +888,8 @@
/// @dev EVM selector for this function is: 0xd5cf430b,
/// or in textual repr: transferFromCross((address,uint256),(address,uint256),uint256)
function transferFromCross(
- EthCrossAccount memory from,
- EthCrossAccount memory to,
+ CrossAccount memory from,
+ CrossAccount memory to,
uint256 tokenId
) public {
require(false, stub_error);
@@ -921,7 +922,7 @@
/// @param tokenId The NFT to transfer
/// @dev EVM selector for this function is: 0xbb2f5a58,
/// or in textual repr: burnFromCross((address,uint256),uint256)
- function burnFromCross(EthCrossAccount memory from, uint256 tokenId) public {
+ function burnFromCross(CrossAccount memory from, uint256 tokenId) public {
require(false, stub_error);
from;
tokenId;
@@ -973,7 +974,7 @@
/// @return uint256 The id of the newly minted token
/// @dev EVM selector for this function is: 0xb904db03,
/// or in textual repr: mintCross((address,uint256),(string,bytes)[])
- function mintCross(EthCrossAccount memory to, Property[] memory properties) public returns (uint256) {
+ function mintCross(CrossAccount memory to, Property[] memory properties) public returns (uint256) {
require(false, stub_error);
to;
properties;
pallets/refungible/src/erc.rsdiffbeforeafterboth--- a/pallets/refungible/src/erc.rs
+++ b/pallets/refungible/src/erc.rs
@@ -33,7 +33,6 @@
use pallet_common::{
CollectionHandle, CollectionPropertyPermissions, CommonCollectionOperations,
erc::{CommonEvmHandler, CollectionCall, static_property::key},
- eth::{Property as PropertyStruct, EthCrossAccount},
Error as CommonError,
};
use pallet_evm::{account::CrossAccountId, PrecompileHandle};
@@ -163,7 +162,7 @@
&mut self,
caller: caller,
token_id: uint256,
- properties: Vec<PropertyStruct>,
+ properties: Vec<pallet_common::eth::Property>,
) -> Result<()> {
let caller = T::CrossAccountId::from_eth(caller);
let token_id: u32 = token_id.try_into().map_err(|_| "token id overflow")?;
@@ -174,7 +173,7 @@
let properties = properties
.into_iter()
- .map(|PropertyStruct { key, value }| {
+ .map(|pallet_common::eth::Property { key, value }| {
let key = <Vec<u8>>::from(key)
.try_into()
.map_err(|_| "key too large")?;
@@ -797,9 +796,9 @@
/// Returns the owner (in cross format) of the token.
///
/// @param tokenId Id for the token.
- fn cross_owner_of(&self, token_id: uint256) -> Result<EthCrossAccount> {
+ fn cross_owner_of(&self, token_id: uint256) -> Result<pallet_common::eth::CrossAccount> {
Self::token_owner(&self, token_id.try_into()?)
- .map(|o| EthCrossAccount::from_sub_cross_account::<T>(&o))
+ .map(|o| pallet_common::eth::CrossAccount::from_sub_cross_account::<T>(&o))
.ok_or(Error::Revert("key too large".into()))
}
@@ -808,7 +807,11 @@
/// @param tokenId Id for the token.
/// @param keys Properties keys. Empty keys for all propertyes.
/// @return Vector of properties key/value pairs.
- fn properties(&self, token_id: uint256, keys: Vec<string>) -> Result<Vec<PropertyStruct>> {
+ fn properties(
+ &self,
+ token_id: uint256,
+ keys: Vec<string>,
+ ) -> Result<Vec<pallet_common::eth::Property>> {
let keys = keys
.into_iter()
.map(|key| {
@@ -828,7 +831,7 @@
let key = string::from_utf8(p.key.to_vec())
.map_err(|e| Error::Revert(alloc::format!("{}", e)))?;
let value = bytes(p.value.to_vec());
- Ok(PropertyStruct { key, value })
+ Ok(pallet_common::eth::Property { key, value })
})
.collect::<Result<Vec<_>>>()
}
@@ -865,7 +868,7 @@
fn transfer_cross(
&mut self,
caller: caller,
- to: EthCrossAccount,
+ to: pallet_common::eth::CrossAccount,
token_id: uint256,
) -> Result<void> {
let caller = T::CrossAccountId::from_eth(caller);
@@ -893,8 +896,8 @@
fn transfer_from_cross(
&mut self,
caller: caller,
- from: EthCrossAccount,
- to: EthCrossAccount,
+ from: pallet_common::eth::CrossAccount,
+ to: pallet_common::eth::CrossAccount,
token_id: uint256,
) -> Result<void> {
let caller = T::CrossAccountId::from_eth(caller);
@@ -949,7 +952,7 @@
fn burn_from_cross(
&mut self,
caller: caller,
- from: EthCrossAccount,
+ from: pallet_common::eth::CrossAccount,
token_id: uint256,
) -> Result<void> {
let caller = T::CrossAccountId::from_eth(caller);
@@ -1086,8 +1089,8 @@
fn mint_cross(
&mut self,
caller: caller,
- to: EthCrossAccount,
- properties: Vec<PropertyStruct>,
+ to: pallet_common::eth::CrossAccount,
+ properties: Vec<pallet_common::eth::Property>,
) -> Result<uint256> {
let token_id = <TokensMinted<T>>::get(self.id)
.checked_add(1)
@@ -1097,7 +1100,7 @@
let properties = properties
.into_iter()
- .map(|PropertyStruct { key, value }| {
+ .map(|pallet_common::eth::Property { key, value }| {
let key = <Vec<u8>>::from(key)
.try_into()
.map_err(|_| "key too large")?;
pallets/refungible/src/erc_token.rsdiffbeforeafterboth--- a/pallets/refungible/src/erc_token.rs
+++ b/pallets/refungible/src/erc_token.rs
@@ -30,7 +30,7 @@
use pallet_common::{
CommonWeightInfo,
erc::{CommonEvmHandler, PrecompileResult},
- eth::{collection_id_to_address, EthCrossAccount},
+ eth::collection_id_to_address,
};
use pallet_evm::{account::CrossAccountId, PrecompileHandle};
use pallet_evm_coder_substrate::{call, dispatch_to_evm, WithRecorder};
@@ -224,7 +224,7 @@
fn burn_from_cross(
&mut self,
caller: caller,
- from: EthCrossAccount,
+ from: pallet_common::eth::CrossAccount,
amount: uint256,
) -> Result<bool> {
let caller = T::CrossAccountId::from_eth(caller);
@@ -250,7 +250,7 @@
fn approve_cross(
&mut self,
caller: caller,
- spender: EthCrossAccount,
+ spender: pallet_common::eth::CrossAccount,
amount: uint256,
) -> Result<bool> {
let caller = T::CrossAccountId::from_eth(caller);
@@ -280,7 +280,7 @@
fn transfer_cross(
&mut self,
caller: caller,
- to: EthCrossAccount,
+ to: pallet_common::eth::CrossAccount,
amount: uint256,
) -> Result<bool> {
let caller = T::CrossAccountId::from_eth(caller);
@@ -303,8 +303,8 @@
fn transfer_from_cross(
&mut self,
caller: caller,
- from: EthCrossAccount,
- to: EthCrossAccount,
+ from: pallet_common::eth::CrossAccount,
+ to: pallet_common::eth::CrossAccount,
amount: uint256,
) -> Result<bool> {
let caller = T::CrossAccountId::from_eth(caller);
pallets/refungible/src/lib.rsdiffbeforeafterboth--- a/pallets/refungible/src/lib.rs
+++ b/pallets/refungible/src/lib.rs
@@ -92,12 +92,8 @@
use codec::{Encode, Decode, MaxEncodedLen};
use core::ops::Deref;
-use derivative::Derivative;
use evm_coder::ToLog;
-use frame_support::{
- BoundedBTreeMap, BoundedVec, ensure, fail, storage::with_transaction, transactional,
- pallet_prelude::ConstU32,
-};
+use frame_support::{BoundedVec, ensure, fail, storage::with_transaction, transactional};
use pallet_evm::{account::CrossAccountId, Pallet as PalletEvm};
use pallet_evm_coder_substrate::WithRecorder;
use pallet_common::{
@@ -110,11 +106,10 @@
use sp_runtime::{ArithmeticError, DispatchError, DispatchResult, TransactionOutcome};
use sp_std::{vec::Vec, vec, collections::btree_map::BTreeMap};
use up_data_structs::{
- AccessMode, budget::Budget, CollectionId, CollectionFlags, CollectionPropertiesVec,
- CreateCollectionData, CustomDataLimit, mapping::TokenAddressMapping, MAX_ITEMS_PER_BATCH,
- MAX_REFUNGIBLE_PIECES, Property, PropertyKey, PropertyKeyPermission, PropertyPermission,
- PropertyScope, PropertyValue, TokenId, TrySetProperty, PropertiesPermissionMap,
- CreateRefungibleExMultipleOwners,
+ AccessMode, budget::Budget, CollectionId, CollectionFlags, CreateCollectionData,
+ CustomDataLimit, mapping::TokenAddressMapping, MAX_REFUNGIBLE_PIECES, Property, PropertyKey,
+ PropertyKeyPermission, PropertyPermission, PropertyScope, PropertyValue, TokenId,
+ TrySetProperty, PropertiesPermissionMap, CreateRefungibleExMultipleOwners,
};
pub use pallet::*;
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
@@ -258,7 +258,7 @@
/// @param sponsor Cross account address of the sponsor from whose account funds will be debited for operations with the contract.
/// @dev EVM selector for this function is: 0x84a1d5a8,
/// or in textual repr: setCollectionSponsorCross((address,uint256))
- function setCollectionSponsorCross(EthCrossAccount memory sponsor) public {
+ function setCollectionSponsorCross(CrossAccount memory sponsor) public {
require(false, stub_error);
sponsor;
dummy = 0;
@@ -296,10 +296,10 @@
/// @return Tuble with sponsor address and his substrate mirror. If there is no confirmed sponsor error "Contract has no sponsor" throw.
/// @dev EVM selector for this function is: 0x6ec0a9f1,
/// or in textual repr: collectionSponsor()
- function collectionSponsor() public view returns (EthCrossAccount memory) {
+ function collectionSponsor() public view returns (CrossAccount memory) {
require(false, stub_error);
dummy;
- return EthCrossAccount(0x0000000000000000000000000000000000000000, 0);
+ return CrossAccount(0x0000000000000000000000000000000000000000, 0);
}
/// Get current collection limits.
@@ -337,7 +337,7 @@
/// @param newAdmin Cross account administrator address.
/// @dev EVM selector for this function is: 0x859aa7d6,
/// or in textual repr: addCollectionAdminCross((address,uint256))
- function addCollectionAdminCross(EthCrossAccount memory newAdmin) public {
+ function addCollectionAdminCross(CrossAccount memory newAdmin) public {
require(false, stub_error);
newAdmin;
dummy = 0;
@@ -347,7 +347,7 @@
/// @param admin Cross account administrator address.
/// @dev EVM selector for this function is: 0x6c0cd173,
/// or in textual repr: removeCollectionAdminCross((address,uint256))
- function removeCollectionAdminCross(EthCrossAccount memory admin) public {
+ function removeCollectionAdminCross(CrossAccount memory admin) public {
require(false, stub_error);
admin;
dummy = 0;
@@ -433,7 +433,7 @@
/// @param user User address to check.
/// @dev EVM selector for this function is: 0x91b6df49,
/// or in textual repr: allowlistedCross((address,uint256))
- function allowlistedCross(EthCrossAccount memory user) public view returns (bool) {
+ function allowlistedCross(CrossAccount memory user) public view returns (bool) {
require(false, stub_error);
user;
dummy;
@@ -456,7 +456,7 @@
/// @param user User cross account address.
/// @dev EVM selector for this function is: 0xa0184a3a,
/// or in textual repr: addToCollectionAllowListCross((address,uint256))
- function addToCollectionAllowListCross(EthCrossAccount memory user) public {
+ function addToCollectionAllowListCross(CrossAccount memory user) public {
require(false, stub_error);
user;
dummy = 0;
@@ -478,7 +478,7 @@
/// @param user User cross account address.
/// @dev EVM selector for this function is: 0x09ba452a,
/// or in textual repr: removeFromCollectionAllowListCross((address,uint256))
- function removeFromCollectionAllowListCross(EthCrossAccount memory user) public {
+ function removeFromCollectionAllowListCross(CrossAccount memory user) public {
require(false, stub_error);
user;
dummy = 0;
@@ -514,7 +514,7 @@
/// @return "true" if account is the owner or admin
/// @dev EVM selector for this function is: 0x3e75a905,
/// or in textual repr: isOwnerOrAdminCross((address,uint256))
- function isOwnerOrAdminCross(EthCrossAccount memory user) public view returns (bool) {
+ function isOwnerOrAdminCross(CrossAccount memory user) public view returns (bool) {
require(false, stub_error);
user;
dummy;
@@ -538,10 +538,10 @@
/// If address is canonical then substrate mirror is zero and vice versa.
/// @dev EVM selector for this function is: 0xdf727d3b,
/// or in textual repr: collectionOwner()
- function collectionOwner() public view returns (EthCrossAccount memory) {
+ function collectionOwner() public view returns (CrossAccount memory) {
require(false, stub_error);
dummy;
- return EthCrossAccount(0x0000000000000000000000000000000000000000, 0);
+ return CrossAccount(0x0000000000000000000000000000000000000000, 0);
}
// /// Changes collection owner to another account
@@ -562,10 +562,10 @@
/// If address is canonical then substrate mirror is zero and vice versa.
/// @dev EVM selector for this function is: 0x5813216b,
/// or in textual repr: collectionAdmins()
- function collectionAdmins() public view returns (EthCrossAccount[] memory) {
+ function collectionAdmins() public view returns (CrossAccount[] memory) {
require(false, stub_error);
dummy;
- return new EthCrossAccount[](0);
+ return new CrossAccount[](0);
}
/// Changes collection owner to another account
@@ -574,7 +574,7 @@
/// @param newOwner new owner cross account
/// @dev EVM selector for this function is: 0x6496c497,
/// or in textual repr: changeCollectionOwnerCross((address,uint256))
- function changeCollectionOwnerCross(EthCrossAccount memory newOwner) public {
+ function changeCollectionOwnerCross(CrossAccount memory newOwner) public {
require(false, stub_error);
newOwner;
dummy = 0;
@@ -582,7 +582,7 @@
}
/// @dev Cross account struct
-struct EthCrossAccount {
+struct CrossAccount {
address eth;
uint256 sub;
}
@@ -607,13 +607,14 @@
uint256[] field_1;
}
+/// @dev [`CollectionLimits`](up_data_structs::CollectionLimits) field representation for EVM.
struct CollectionLimit {
CollectionLimitField field;
bool status;
uint256 value;
}
-/// @dev [`CollectionLimits`](up_data_structs::CollectionLimits) representation for EVM.
+/// @dev [`CollectionLimits`](up_data_structs::CollectionLimits) fields representation for EVM.
enum CollectionLimitField {
/// @dev How many tokens can a user have on one account.
AccountTokenOwnership,
@@ -811,11 +812,11 @@
/// @param tokenId Id for the token.
/// @dev EVM selector for this function is: 0x2b29dace,
/// or in textual repr: crossOwnerOf(uint256)
- function crossOwnerOf(uint256 tokenId) public view returns (EthCrossAccount memory) {
+ function crossOwnerOf(uint256 tokenId) public view returns (CrossAccount memory) {
require(false, stub_error);
tokenId;
dummy;
- return EthCrossAccount(0x0000000000000000000000000000000000000000, 0);
+ return CrossAccount(0x0000000000000000000000000000000000000000, 0);
}
/// Returns the token properties.
@@ -856,7 +857,7 @@
/// @param tokenId The RFT to transfer
/// @dev EVM selector for this function is: 0x2ada85ff,
/// or in textual repr: transferCross((address,uint256),uint256)
- function transferCross(EthCrossAccount memory to, uint256 tokenId) public {
+ function transferCross(CrossAccount memory to, uint256 tokenId) public {
require(false, stub_error);
to;
tokenId;
@@ -872,8 +873,8 @@
/// @dev EVM selector for this function is: 0xd5cf430b,
/// or in textual repr: transferFromCross((address,uint256),(address,uint256),uint256)
function transferFromCross(
- EthCrossAccount memory from,
- EthCrossAccount memory to,
+ CrossAccount memory from,
+ CrossAccount memory to,
uint256 tokenId
) public {
require(false, stub_error);
@@ -908,7 +909,7 @@
/// @param tokenId The RFT to transfer
/// @dev EVM selector for this function is: 0xbb2f5a58,
/// or in textual repr: burnFromCross((address,uint256),uint256)
- function burnFromCross(EthCrossAccount memory from, uint256 tokenId) public {
+ function burnFromCross(CrossAccount memory from, uint256 tokenId) public {
require(false, stub_error);
from;
tokenId;
@@ -960,7 +961,7 @@
/// @return uint256 The id of the newly minted token
/// @dev EVM selector for this function is: 0xb904db03,
/// or in textual repr: mintCross((address,uint256),(string,bytes)[])
- function mintCross(EthCrossAccount memory to, Property[] memory properties) public returns (uint256) {
+ function mintCross(CrossAccount memory to, Property[] memory properties) public returns (uint256) {
require(false, stub_error);
to;
properties;
pallets/refungible/src/stubs/UniqueRefungibleToken.rawdiffbeforeafterbothbinary blob — no preview
pallets/refungible/src/stubs/UniqueRefungibleToken.soldiffbeforeafterboth--- a/pallets/refungible/src/stubs/UniqueRefungibleToken.sol
+++ b/pallets/refungible/src/stubs/UniqueRefungibleToken.sol
@@ -58,7 +58,7 @@
/// @param amount The amount that will be burnt.
/// @dev EVM selector for this function is: 0xbb2f5a58,
/// or in textual repr: burnFromCross((address,uint256),uint256)
- function burnFromCross(EthCrossAccount memory from, uint256 amount) public returns (bool) {
+ function burnFromCross(CrossAccount memory from, uint256 amount) public returns (bool) {
require(false, stub_error);
from;
amount;
@@ -75,7 +75,7 @@
/// @param amount The amount of tokens to be spent.
/// @dev EVM selector for this function is: 0x0ecd0ab0,
/// or in textual repr: approveCross((address,uint256),uint256)
- function approveCross(EthCrossAccount memory spender, uint256 amount) public returns (bool) {
+ function approveCross(CrossAccount memory spender, uint256 amount) public returns (bool) {
require(false, stub_error);
spender;
amount;
@@ -100,7 +100,7 @@
/// @param amount The amount to be transferred.
/// @dev EVM selector for this function is: 0x2ada85ff,
/// or in textual repr: transferCross((address,uint256),uint256)
- function transferCross(EthCrossAccount memory to, uint256 amount) public returns (bool) {
+ function transferCross(CrossAccount memory to, uint256 amount) public returns (bool) {
require(false, stub_error);
to;
amount;
@@ -115,8 +115,8 @@
/// @dev EVM selector for this function is: 0xd5cf430b,
/// or in textual repr: transferFromCross((address,uint256),(address,uint256),uint256)
function transferFromCross(
- EthCrossAccount memory from,
- EthCrossAccount memory to,
+ CrossAccount memory from,
+ CrossAccount memory to,
uint256 amount
) public returns (bool) {
require(false, stub_error);
@@ -129,7 +129,7 @@
}
/// @dev Cross account struct
-struct EthCrossAccount {
+struct CrossAccount {
address eth;
uint256 sub;
}
tests/src/eth/abi/contractHelpers.jsondiffbeforeafterboth--- a/tests/src/eth/abi/contractHelpers.json
+++ b/tests/src/eth/abi/contractHelpers.json
@@ -226,7 +226,7 @@
{ "internalType": "address", "name": "eth", "type": "address" },
{ "internalType": "uint256", "name": "sub", "type": "uint256" }
],
- "internalType": "struct EthCrossAccount",
+ "internalType": "struct CrossAccount",
"name": "",
"type": "tuple"
}
tests/src/eth/abi/fungible.jsondiffbeforeafterboth--- a/tests/src/eth/abi/fungible.json
+++ b/tests/src/eth/abi/fungible.json
@@ -56,7 +56,7 @@
{ "internalType": "address", "name": "eth", "type": "address" },
{ "internalType": "uint256", "name": "sub", "type": "uint256" }
],
- "internalType": "struct EthCrossAccount",
+ "internalType": "struct CrossAccount",
"name": "newAdmin",
"type": "tuple"
}
@@ -73,7 +73,7 @@
{ "internalType": "address", "name": "eth", "type": "address" },
{ "internalType": "uint256", "name": "sub", "type": "uint256" }
],
- "internalType": "struct EthCrossAccount",
+ "internalType": "struct CrossAccount",
"name": "user",
"type": "tuple"
}
@@ -100,7 +100,7 @@
{ "internalType": "address", "name": "eth", "type": "address" },
{ "internalType": "uint256", "name": "sub", "type": "uint256" }
],
- "internalType": "struct EthCrossAccount",
+ "internalType": "struct CrossAccount",
"name": "user",
"type": "tuple"
}
@@ -127,7 +127,7 @@
{ "internalType": "address", "name": "eth", "type": "address" },
{ "internalType": "uint256", "name": "sub", "type": "uint256" }
],
- "internalType": "struct EthCrossAccount",
+ "internalType": "struct CrossAccount",
"name": "spender",
"type": "tuple"
},
@@ -154,7 +154,7 @@
{ "internalType": "address", "name": "eth", "type": "address" },
{ "internalType": "uint256", "name": "sub", "type": "uint256" }
],
- "internalType": "struct EthCrossAccount",
+ "internalType": "struct CrossAccount",
"name": "from",
"type": "tuple"
},
@@ -172,7 +172,7 @@
{ "internalType": "address", "name": "eth", "type": "address" },
{ "internalType": "uint256", "name": "sub", "type": "uint256" }
],
- "internalType": "struct EthCrossAccount",
+ "internalType": "struct CrossAccount",
"name": "newOwner",
"type": "tuple"
}
@@ -191,7 +191,7 @@
{ "internalType": "address", "name": "eth", "type": "address" },
{ "internalType": "uint256", "name": "sub", "type": "uint256" }
],
- "internalType": "struct EthCrossAccount[]",
+ "internalType": "struct CrossAccount[]",
"name": "",
"type": "tuple[]"
}
@@ -279,7 +279,7 @@
{ "internalType": "address", "name": "eth", "type": "address" },
{ "internalType": "uint256", "name": "sub", "type": "uint256" }
],
- "internalType": "struct EthCrossAccount",
+ "internalType": "struct CrossAccount",
"name": "",
"type": "tuple"
}
@@ -322,7 +322,7 @@
{ "internalType": "address", "name": "eth", "type": "address" },
{ "internalType": "uint256", "name": "sub", "type": "uint256" }
],
- "internalType": "struct EthCrossAccount",
+ "internalType": "struct CrossAccount",
"name": "",
"type": "tuple"
}
@@ -381,7 +381,7 @@
{ "internalType": "address", "name": "eth", "type": "address" },
{ "internalType": "uint256", "name": "sub", "type": "uint256" }
],
- "internalType": "struct EthCrossAccount",
+ "internalType": "struct CrossAccount",
"name": "user",
"type": "tuple"
}
@@ -425,7 +425,7 @@
{ "internalType": "address", "name": "eth", "type": "address" },
{ "internalType": "uint256", "name": "sub", "type": "uint256" }
],
- "internalType": "struct EthCrossAccount",
+ "internalType": "struct CrossAccount",
"name": "to",
"type": "tuple"
},
@@ -450,7 +450,7 @@
{ "internalType": "address", "name": "eth", "type": "address" },
{ "internalType": "uint256", "name": "sub", "type": "uint256" }
],
- "internalType": "struct EthCrossAccount",
+ "internalType": "struct CrossAccount",
"name": "admin",
"type": "tuple"
}
@@ -474,7 +474,7 @@
{ "internalType": "address", "name": "eth", "type": "address" },
{ "internalType": "uint256", "name": "sub", "type": "uint256" }
],
- "internalType": "struct EthCrossAccount",
+ "internalType": "struct CrossAccount",
"name": "user",
"type": "tuple"
}
@@ -565,7 +565,7 @@
{ "internalType": "address", "name": "eth", "type": "address" },
{ "internalType": "uint256", "name": "sub", "type": "uint256" }
],
- "internalType": "struct EthCrossAccount",
+ "internalType": "struct CrossAccount",
"name": "sponsor",
"type": "tuple"
}
@@ -615,7 +615,7 @@
{ "internalType": "address", "name": "eth", "type": "address" },
{ "internalType": "uint256", "name": "sub", "type": "uint256" }
],
- "internalType": "struct EthCrossAccount",
+ "internalType": "struct CrossAccount",
"name": "to",
"type": "tuple"
},
@@ -644,7 +644,7 @@
{ "internalType": "address", "name": "eth", "type": "address" },
{ "internalType": "uint256", "name": "sub", "type": "uint256" }
],
- "internalType": "struct EthCrossAccount",
+ "internalType": "struct CrossAccount",
"name": "from",
"type": "tuple"
},
@@ -653,7 +653,7 @@
{ "internalType": "address", "name": "eth", "type": "address" },
{ "internalType": "uint256", "name": "sub", "type": "uint256" }
],
- "internalType": "struct EthCrossAccount",
+ "internalType": "struct CrossAccount",
"name": "to",
"type": "tuple"
},
tests/src/eth/abi/nonFungible.jsondiffbeforeafterboth1[2 {3 "anonymous": false,4 "inputs": [5 {6 "indexed": true,7 "internalType": "address",8 "name": "owner",9 "type": "address"10 },11 {12 "indexed": true,13 "internalType": "address",14 "name": "approved",15 "type": "address"16 },17 {18 "indexed": true,19 "internalType": "uint256",20 "name": "tokenId",21 "type": "uint256"22 }23 ],24 "name": "Approval",25 "type": "event"26 },27 {28 "anonymous": false,29 "inputs": [30 {31 "indexed": true,32 "internalType": "address",33 "name": "owner",34 "type": "address"35 },36 {37 "indexed": true,38 "internalType": "address",39 "name": "operator",40 "type": "address"41 },42 {43 "indexed": false,44 "internalType": "bool",45 "name": "approved",46 "type": "bool"47 }48 ],49 "name": "ApprovalForAll",50 "type": "event"51 },52 {53 "anonymous": false,54 "inputs": [],55 "name": "MintingFinished",56 "type": "event"57 },58 {59 "anonymous": false,60 "inputs": [61 {62 "indexed": true,63 "internalType": "address",64 "name": "from",65 "type": "address"66 },67 {68 "indexed": true,69 "internalType": "address",70 "name": "to",71 "type": "address"72 },73 {74 "indexed": true,75 "internalType": "uint256",76 "name": "tokenId",77 "type": "uint256"78 }79 ],80 "name": "Transfer",81 "type": "event"82 },83 {84 "inputs": [85 {86 "components": [87 { "internalType": "address", "name": "eth", "type": "address" },88 { "internalType": "uint256", "name": "sub", "type": "uint256" }89 ],90 "internalType": "struct EthCrossAccount",91 "name": "newAdmin",92 "type": "tuple"93 }94 ],95 "name": "addCollectionAdminCross",96 "outputs": [],97 "stateMutability": "nonpayable",98 "type": "function"99 },100 {101 "inputs": [102 {103 "components": [104 { "internalType": "address", "name": "eth", "type": "address" },105 { "internalType": "uint256", "name": "sub", "type": "uint256" }106 ],107 "internalType": "struct EthCrossAccount",108 "name": "user",109 "type": "tuple"110 }111 ],112 "name": "addToCollectionAllowListCross",113 "outputs": [],114 "stateMutability": "nonpayable",115 "type": "function"116 },117 {118 "inputs": [119 {120 "components": [121 { "internalType": "address", "name": "eth", "type": "address" },122 { "internalType": "uint256", "name": "sub", "type": "uint256" }123 ],124 "internalType": "struct EthCrossAccount",125 "name": "user",126 "type": "tuple"127 }128 ],129 "name": "allowlistedCross",130 "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }],131 "stateMutability": "view",132 "type": "function"133 },134 {135 "inputs": [136 { "internalType": "address", "name": "approved", "type": "address" },137 { "internalType": "uint256", "name": "tokenId", "type": "uint256" }138 ],139 "name": "approve",140 "outputs": [],141 "stateMutability": "nonpayable",142 "type": "function"143 },144 {145 "inputs": [146 {147 "components": [148 { "internalType": "address", "name": "eth", "type": "address" },149 { "internalType": "uint256", "name": "sub", "type": "uint256" }150 ],151 "internalType": "struct EthCrossAccount",152 "name": "approved",153 "type": "tuple"154 },155 { "internalType": "uint256", "name": "tokenId", "type": "uint256" }156 ],157 "name": "approveCross",158 "outputs": [],159 "stateMutability": "nonpayable",160 "type": "function"161 },162 {163 "inputs": [164 { "internalType": "address", "name": "owner", "type": "address" }165 ],166 "name": "balanceOf",167 "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }],168 "stateMutability": "view",169 "type": "function"170 },171 {172 "inputs": [173 { "internalType": "uint256", "name": "tokenId", "type": "uint256" }174 ],175 "name": "burn",176 "outputs": [],177 "stateMutability": "nonpayable",178 "type": "function"179 },180 {181 "inputs": [182 {183 "components": [184 { "internalType": "address", "name": "eth", "type": "address" },185 { "internalType": "uint256", "name": "sub", "type": "uint256" }186 ],187 "internalType": "struct EthCrossAccount",188 "name": "from",189 "type": "tuple"190 },191 { "internalType": "uint256", "name": "tokenId", "type": "uint256" }192 ],193 "name": "burnFromCross",194 "outputs": [],195 "stateMutability": "nonpayable",196 "type": "function"197 },198 {199 "inputs": [200 {201 "components": [202 { "internalType": "address", "name": "eth", "type": "address" },203 { "internalType": "uint256", "name": "sub", "type": "uint256" }204 ],205 "internalType": "struct EthCrossAccount",206 "name": "newOwner",207 "type": "tuple"208 }209 ],210 "name": "changeCollectionOwnerCross",211 "outputs": [],212 "stateMutability": "nonpayable",213 "type": "function"214 },215 {216 "inputs": [],217 "name": "collectionAdmins",218 "outputs": [219 {220 "components": [221 { "internalType": "address", "name": "eth", "type": "address" },222 { "internalType": "uint256", "name": "sub", "type": "uint256" }223 ],224 "internalType": "struct EthCrossAccount[]",225 "name": "",226 "type": "tuple[]"227 }228 ],229 "stateMutability": "view",230 "type": "function"231 },232 {233 "inputs": [],234 "name": "collectionHelperAddress",235 "outputs": [{ "internalType": "address", "name": "", "type": "address" }],236 "stateMutability": "view",237 "type": "function"238 },239 {240 "inputs": [],241 "name": "collectionLimits",242 "outputs": [243 {244 "components": [245 {246 "internalType": "enum CollectionLimitField",247 "name": "field",248 "type": "uint8"249 },250 { "internalType": "bool", "name": "status", "type": "bool" },251 { "internalType": "uint256", "name": "value", "type": "uint256" }252 ],253 "internalType": "struct CollectionLimit[]",254 "name": "",255 "type": "tuple[]"256 }257 ],258 "stateMutability": "view",259 "type": "function"260 },261 {262 "inputs": [],263 "name": "collectionNestingPermissions",264 "outputs": [265 {266 "components": [267 {268 "internalType": "enum CollectionPermissions",269 "name": "field_0",270 "type": "uint8"271 },272 { "internalType": "bool", "name": "field_1", "type": "bool" }273 ],274 "internalType": "struct Tuple45[]",275 "name": "",276 "type": "tuple[]"277 }278 ],279 "stateMutability": "view",280 "type": "function"281 },282 {283 "inputs": [],284 "name": "collectionNestingRestrictedCollectionIds",285 "outputs": [286 {287 "components": [288 { "internalType": "bool", "name": "field_0", "type": "bool" },289 {290 "internalType": "uint256[]",291 "name": "field_1",292 "type": "uint256[]"293 }294 ],295 "internalType": "struct Tuple42",296 "name": "",297 "type": "tuple"298 }299 ],300 "stateMutability": "view",301 "type": "function"302 },303 {304 "inputs": [],305 "name": "collectionOwner",306 "outputs": [307 {308 "components": [309 { "internalType": "address", "name": "eth", "type": "address" },310 { "internalType": "uint256", "name": "sub", "type": "uint256" }311 ],312 "internalType": "struct EthCrossAccount",313 "name": "",314 "type": "tuple"315 }316 ],317 "stateMutability": "view",318 "type": "function"319 },320 {321 "inputs": [322 { "internalType": "string[]", "name": "keys", "type": "string[]" }323 ],324 "name": "collectionProperties",325 "outputs": [326 {327 "components": [328 { "internalType": "string", "name": "key", "type": "string" },329 { "internalType": "bytes", "name": "value", "type": "bytes" }330 ],331 "internalType": "struct Property[]",332 "name": "",333 "type": "tuple[]"334 }335 ],336 "stateMutability": "view",337 "type": "function"338 },339 {340 "inputs": [{ "internalType": "string", "name": "key", "type": "string" }],341 "name": "collectionProperty",342 "outputs": [{ "internalType": "bytes", "name": "", "type": "bytes" }],343 "stateMutability": "view",344 "type": "function"345 },346 {347 "inputs": [],348 "name": "collectionSponsor",349 "outputs": [350 {351 "components": [352 { "internalType": "address", "name": "eth", "type": "address" },353 { "internalType": "uint256", "name": "sub", "type": "uint256" }354 ],355 "internalType": "struct EthCrossAccount",356 "name": "",357 "type": "tuple"358 }359 ],360 "stateMutability": "view",361 "type": "function"362 },363 {364 "inputs": [],365 "name": "confirmCollectionSponsorship",366 "outputs": [],367 "stateMutability": "nonpayable",368 "type": "function"369 },370 {371 "inputs": [],372 "name": "contractAddress",373 "outputs": [{ "internalType": "address", "name": "", "type": "address" }],374 "stateMutability": "view",375 "type": "function"376 },377 {378 "inputs": [379 { "internalType": "uint256", "name": "tokenId", "type": "uint256" }380 ],381 "name": "crossOwnerOf",382 "outputs": [383 {384 "components": [385 { "internalType": "address", "name": "eth", "type": "address" },386 { "internalType": "uint256", "name": "sub", "type": "uint256" }387 ],388 "internalType": "struct EthCrossAccount",389 "name": "",390 "type": "tuple"391 }392 ],393 "stateMutability": "view",394 "type": "function"395 },396 {397 "inputs": [398 { "internalType": "string[]", "name": "keys", "type": "string[]" }399 ],400 "name": "deleteCollectionProperties",401 "outputs": [],402 "stateMutability": "nonpayable",403 "type": "function"404 },405 {406 "inputs": [407 { "internalType": "uint256", "name": "tokenId", "type": "uint256" },408 { "internalType": "string[]", "name": "keys", "type": "string[]" }409 ],410 "name": "deleteProperties",411 "outputs": [],412 "stateMutability": "nonpayable",413 "type": "function"414 },415 {416 "inputs": [],417 "name": "description",418 "outputs": [{ "internalType": "string", "name": "", "type": "string" }],419 "stateMutability": "view",420 "type": "function"421 },422 {423 "inputs": [],424 "name": "finishMinting",425 "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }],426 "stateMutability": "nonpayable",427 "type": "function"428 },429 {430 "inputs": [431 { "internalType": "uint256", "name": "tokenId", "type": "uint256" }432 ],433 "name": "getApproved",434 "outputs": [{ "internalType": "address", "name": "", "type": "address" }],435 "stateMutability": "view",436 "type": "function"437 },438 {439 "inputs": [],440 "name": "hasCollectionPendingSponsor",441 "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }],442 "stateMutability": "view",443 "type": "function"444 },445 {446 "inputs": [447 { "internalType": "address", "name": "owner", "type": "address" },448 { "internalType": "address", "name": "operator", "type": "address" }449 ],450 "name": "isApprovedForAll",451 "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }],452 "stateMutability": "view",453 "type": "function"454 },455 {456 "inputs": [457 {458 "components": [459 { "internalType": "address", "name": "eth", "type": "address" },460 { "internalType": "uint256", "name": "sub", "type": "uint256" }461 ],462 "internalType": "struct EthCrossAccount",463 "name": "user",464 "type": "tuple"465 }466 ],467 "name": "isOwnerOrAdminCross",468 "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }],469 "stateMutability": "view",470 "type": "function"471 },472 {473 "inputs": [{ "internalType": "address", "name": "to", "type": "address" }],474 "name": "mint",475 "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }],476 "stateMutability": "nonpayable",477 "type": "function"478 },479 {480 "inputs": [481 {482 "components": [483 { "internalType": "address", "name": "eth", "type": "address" },484 { "internalType": "uint256", "name": "sub", "type": "uint256" }485 ],486 "internalType": "struct EthCrossAccount",487 "name": "to",488 "type": "tuple"489 },490 {491 "components": [492 { "internalType": "string", "name": "key", "type": "string" },493 { "internalType": "bytes", "name": "value", "type": "bytes" }494 ],495 "internalType": "struct Property[]",496 "name": "properties",497 "type": "tuple[]"498 }499 ],500 "name": "mintCross",501 "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }],502 "stateMutability": "nonpayable",503 "type": "function"504 },505 {506 "inputs": [507 { "internalType": "address", "name": "to", "type": "address" },508 { "internalType": "string", "name": "tokenUri", "type": "string" }509 ],510 "name": "mintWithTokenURI",511 "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }],512 "stateMutability": "nonpayable",513 "type": "function"514 },515 {516 "inputs": [],517 "name": "mintingFinished",518 "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }],519 "stateMutability": "view",520 "type": "function"521 },522 {523 "inputs": [],524 "name": "name",525 "outputs": [{ "internalType": "string", "name": "", "type": "string" }],526 "stateMutability": "view",527 "type": "function"528 },529 {530 "inputs": [],531 "name": "nextTokenId",532 "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }],533 "stateMutability": "view",534 "type": "function"535 },536 {537 "inputs": [538 { "internalType": "uint256", "name": "tokenId", "type": "uint256" }539 ],540 "name": "ownerOf",541 "outputs": [{ "internalType": "address", "name": "", "type": "address" }],542 "stateMutability": "view",543 "type": "function"544 },545 {546 "inputs": [547 { "internalType": "uint256", "name": "tokenId", "type": "uint256" },548 { "internalType": "string[]", "name": "keys", "type": "string[]" }549 ],550 "name": "properties",551 "outputs": [552 {553 "components": [554 { "internalType": "string", "name": "key", "type": "string" },555 { "internalType": "bytes", "name": "value", "type": "bytes" }556 ],557 "internalType": "struct Property[]",558 "name": "",559 "type": "tuple[]"560 }561 ],562 "stateMutability": "view",563 "type": "function"564 },565 {566 "inputs": [567 { "internalType": "uint256", "name": "tokenId", "type": "uint256" },568 { "internalType": "string", "name": "key", "type": "string" }569 ],570 "name": "property",571 "outputs": [{ "internalType": "bytes", "name": "", "type": "bytes" }],572 "stateMutability": "view",573 "type": "function"574 },575 {576 "inputs": [577 {578 "components": [579 { "internalType": "address", "name": "eth", "type": "address" },580 { "internalType": "uint256", "name": "sub", "type": "uint256" }581 ],582 "internalType": "struct EthCrossAccount",583 "name": "admin",584 "type": "tuple"585 }586 ],587 "name": "removeCollectionAdminCross",588 "outputs": [],589 "stateMutability": "nonpayable",590 "type": "function"591 },592 {593 "inputs": [],594 "name": "removeCollectionSponsor",595 "outputs": [],596 "stateMutability": "nonpayable",597 "type": "function"598 },599 {600 "inputs": [601 {602 "components": [603 { "internalType": "address", "name": "eth", "type": "address" },604 { "internalType": "uint256", "name": "sub", "type": "uint256" }605 ],606 "internalType": "struct EthCrossAccount",607 "name": "user",608 "type": "tuple"609 }610 ],611 "name": "removeFromCollectionAllowListCross",612 "outputs": [],613 "stateMutability": "nonpayable",614 "type": "function"615 },616 {617 "inputs": [618 { "internalType": "address", "name": "from", "type": "address" },619 { "internalType": "address", "name": "to", "type": "address" },620 { "internalType": "uint256", "name": "tokenId", "type": "uint256" }621 ],622 "name": "safeTransferFrom",623 "outputs": [],624 "stateMutability": "nonpayable",625 "type": "function"626 },627 {628 "inputs": [629 { "internalType": "address", "name": "from", "type": "address" },630 { "internalType": "address", "name": "to", "type": "address" },631 { "internalType": "uint256", "name": "tokenId", "type": "uint256" },632 { "internalType": "bytes", "name": "data", "type": "bytes" }633 ],634 "name": "safeTransferFrom",635 "outputs": [],636 "stateMutability": "nonpayable",637 "type": "function"638 },639 {640 "inputs": [641 { "internalType": "address", "name": "operator", "type": "address" },642 { "internalType": "bool", "name": "approved", "type": "bool" }643 ],644 "name": "setApprovalForAll",645 "outputs": [],646 "stateMutability": "nonpayable",647 "type": "function"648 },649 {650 "inputs": [{ "internalType": "uint8", "name": "mode", "type": "uint8" }],651 "name": "setCollectionAccess",652 "outputs": [],653 "stateMutability": "nonpayable",654 "type": "function"655 },656 {657 "inputs": [658 {659 "components": [660 {661 "internalType": "enum CollectionLimitField",662 "name": "field",663 "type": "uint8"664 },665 { "internalType": "bool", "name": "status", "type": "bool" },666 { "internalType": "uint256", "name": "value", "type": "uint256" }667 ],668 "internalType": "struct CollectionLimit",669 "name": "limit",670 "type": "tuple"671 }672 ],673 "name": "setCollectionLimit",674 "outputs": [],675 "stateMutability": "nonpayable",676 "type": "function"677 },678 {679 "inputs": [{ "internalType": "bool", "name": "mode", "type": "bool" }],680 "name": "setCollectionMintMode",681 "outputs": [],682 "stateMutability": "nonpayable",683 "type": "function"684 },685 {686 "inputs": [{ "internalType": "bool", "name": "enable", "type": "bool" }],687 "name": "setCollectionNesting",688 "outputs": [],689 "stateMutability": "nonpayable",690 "type": "function"691 },692 {693 "inputs": [694 { "internalType": "bool", "name": "enable", "type": "bool" },695 {696 "internalType": "address[]",697 "name": "collections",698 "type": "address[]"699 }700 ],701 "name": "setCollectionNesting",702 "outputs": [],703 "stateMutability": "nonpayable",704 "type": "function"705 },706 {707 "inputs": [708 {709 "components": [710 { "internalType": "string", "name": "key", "type": "string" },711 { "internalType": "bytes", "name": "value", "type": "bytes" }712 ],713 "internalType": "struct Property[]",714 "name": "properties",715 "type": "tuple[]"716 }717 ],718 "name": "setCollectionProperties",719 "outputs": [],720 "stateMutability": "nonpayable",721 "type": "function"722 },723 {724 "inputs": [725 {726 "components": [727 { "internalType": "address", "name": "eth", "type": "address" },728 { "internalType": "uint256", "name": "sub", "type": "uint256" }729 ],730 "internalType": "struct EthCrossAccount",731 "name": "sponsor",732 "type": "tuple"733 }734 ],735 "name": "setCollectionSponsorCross",736 "outputs": [],737 "stateMutability": "nonpayable",738 "type": "function"739 },740 {741 "inputs": [742 { "internalType": "uint256", "name": "tokenId", "type": "uint256" },743 {744 "components": [745 { "internalType": "string", "name": "key", "type": "string" },746 { "internalType": "bytes", "name": "value", "type": "bytes" }747 ],748 "internalType": "struct Property[]",749 "name": "properties",750 "type": "tuple[]"751 }752 ],753 "name": "setProperties",754 "outputs": [],755 "stateMutability": "nonpayable",756 "type": "function"757 },758 {759 "inputs": [760 {761 "components": [762 { "internalType": "string", "name": "key", "type": "string" },763 {764 "components": [765 {766 "internalType": "enum TokenPermissionField",767 "name": "code",768 "type": "uint8"769 },770 { "internalType": "bool", "name": "value", "type": "bool" }771 ],772 "internalType": "struct PropertyPermission[]",773 "name": "permissions",774 "type": "tuple[]"775 }776 ],777 "internalType": "struct TokenPropertyPermission[]",778 "name": "permissions",779 "type": "tuple[]"780 }781 ],782 "name": "setTokenPropertyPermissions",783 "outputs": [],784 "stateMutability": "nonpayable",785 "type": "function"786 },787 {788 "inputs": [789 { "internalType": "bytes4", "name": "interfaceID", "type": "bytes4" }790 ],791 "name": "supportsInterface",792 "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }],793 "stateMutability": "view",794 "type": "function"795 },796 {797 "inputs": [],798 "name": "symbol",799 "outputs": [{ "internalType": "string", "name": "", "type": "string" }],800 "stateMutability": "view",801 "type": "function"802 },803 {804 "inputs": [805 { "internalType": "uint256", "name": "index", "type": "uint256" }806 ],807 "name": "tokenByIndex",808 "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }],809 "stateMutability": "view",810 "type": "function"811 },812 {813 "inputs": [814 { "internalType": "address", "name": "owner", "type": "address" },815 { "internalType": "uint256", "name": "index", "type": "uint256" }816 ],817 "name": "tokenOfOwnerByIndex",818 "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }],819 "stateMutability": "view",820 "type": "function"821 },822 {823 "inputs": [],824 "name": "tokenPropertyPermissions",825 "outputs": [826 {827 "components": [828 { "internalType": "string", "name": "key", "type": "string" },829 {830 "components": [831 {832 "internalType": "enum TokenPermissionField",833 "name": "code",834 "type": "uint8"835 },836 { "internalType": "bool", "name": "value", "type": "bool" }837 ],838 "internalType": "struct PropertyPermission[]",839 "name": "permissions",840 "type": "tuple[]"841 }842 ],843 "internalType": "struct TokenPropertyPermission[]",844 "name": "",845 "type": "tuple[]"846 }847 ],848 "stateMutability": "view",849 "type": "function"850 },851 {852 "inputs": [853 { "internalType": "uint256", "name": "tokenId", "type": "uint256" }854 ],855 "name": "tokenURI",856 "outputs": [{ "internalType": "string", "name": "", "type": "string" }],857 "stateMutability": "view",858 "type": "function"859 },860 {861 "inputs": [],862 "name": "totalSupply",863 "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }],864 "stateMutability": "view",865 "type": "function"866 },867 {868 "inputs": [869 { "internalType": "address", "name": "to", "type": "address" },870 { "internalType": "uint256", "name": "tokenId", "type": "uint256" }871 ],872 "name": "transfer",873 "outputs": [],874 "stateMutability": "nonpayable",875 "type": "function"876 },877 {878 "inputs": [879 {880 "components": [881 { "internalType": "address", "name": "eth", "type": "address" },882 { "internalType": "uint256", "name": "sub", "type": "uint256" }883 ],884 "internalType": "struct EthCrossAccount",885 "name": "to",886 "type": "tuple"887 },888 { "internalType": "uint256", "name": "tokenId", "type": "uint256" }889 ],890 "name": "transferCross",891 "outputs": [],892 "stateMutability": "nonpayable",893 "type": "function"894 },895 {896 "inputs": [897 { "internalType": "address", "name": "from", "type": "address" },898 { "internalType": "address", "name": "to", "type": "address" },899 { "internalType": "uint256", "name": "tokenId", "type": "uint256" }900 ],901 "name": "transferFrom",902 "outputs": [],903 "stateMutability": "nonpayable",904 "type": "function"905 },906 {907 "inputs": [908 {909 "components": [910 { "internalType": "address", "name": "eth", "type": "address" },911 { "internalType": "uint256", "name": "sub", "type": "uint256" }912 ],913 "internalType": "struct EthCrossAccount",914 "name": "from",915 "type": "tuple"916 },917 {918 "components": [919 { "internalType": "address", "name": "eth", "type": "address" },920 { "internalType": "uint256", "name": "sub", "type": "uint256" }921 ],922 "internalType": "struct EthCrossAccount",923 "name": "to",924 "type": "tuple"925 },926 { "internalType": "uint256", "name": "tokenId", "type": "uint256" }927 ],928 "name": "transferFromCross",929 "outputs": [],930 "stateMutability": "nonpayable",931 "type": "function"932 },933 {934 "inputs": [],935 "name": "uniqueCollectionType",936 "outputs": [{ "internalType": "string", "name": "", "type": "string" }],937 "stateMutability": "view",938 "type": "function"939 }940]tests/src/eth/abi/reFungible.jsondiffbeforeafterboth--- a/tests/src/eth/abi/reFungible.json
+++ b/tests/src/eth/abi/reFungible.json
@@ -87,7 +87,7 @@
{ "internalType": "address", "name": "eth", "type": "address" },
{ "internalType": "uint256", "name": "sub", "type": "uint256" }
],
- "internalType": "struct EthCrossAccount",
+ "internalType": "struct CrossAccount",
"name": "newAdmin",
"type": "tuple"
}
@@ -104,7 +104,7 @@
{ "internalType": "address", "name": "eth", "type": "address" },
{ "internalType": "uint256", "name": "sub", "type": "uint256" }
],
- "internalType": "struct EthCrossAccount",
+ "internalType": "struct CrossAccount",
"name": "user",
"type": "tuple"
}
@@ -121,7 +121,7 @@
{ "internalType": "address", "name": "eth", "type": "address" },
{ "internalType": "uint256", "name": "sub", "type": "uint256" }
],
- "internalType": "struct EthCrossAccount",
+ "internalType": "struct CrossAccount",
"name": "user",
"type": "tuple"
}
@@ -166,7 +166,7 @@
{ "internalType": "address", "name": "eth", "type": "address" },
{ "internalType": "uint256", "name": "sub", "type": "uint256" }
],
- "internalType": "struct EthCrossAccount",
+ "internalType": "struct CrossAccount",
"name": "from",
"type": "tuple"
},
@@ -184,7 +184,7 @@
{ "internalType": "address", "name": "eth", "type": "address" },
{ "internalType": "uint256", "name": "sub", "type": "uint256" }
],
- "internalType": "struct EthCrossAccount",
+ "internalType": "struct CrossAccount",
"name": "newOwner",
"type": "tuple"
}
@@ -203,7 +203,7 @@
{ "internalType": "address", "name": "eth", "type": "address" },
{ "internalType": "uint256", "name": "sub", "type": "uint256" }
],
- "internalType": "struct EthCrossAccount[]",
+ "internalType": "struct CrossAccount[]",
"name": "",
"type": "tuple[]"
}
@@ -291,7 +291,7 @@
{ "internalType": "address", "name": "eth", "type": "address" },
{ "internalType": "uint256", "name": "sub", "type": "uint256" }
],
- "internalType": "struct EthCrossAccount",
+ "internalType": "struct CrossAccount",
"name": "",
"type": "tuple"
}
@@ -334,7 +334,7 @@
{ "internalType": "address", "name": "eth", "type": "address" },
{ "internalType": "uint256", "name": "sub", "type": "uint256" }
],
- "internalType": "struct EthCrossAccount",
+ "internalType": "struct CrossAccount",
"name": "",
"type": "tuple"
}
@@ -367,7 +367,7 @@
{ "internalType": "address", "name": "eth", "type": "address" },
{ "internalType": "uint256", "name": "sub", "type": "uint256" }
],
- "internalType": "struct EthCrossAccount",
+ "internalType": "struct CrossAccount",
"name": "",
"type": "tuple"
}
@@ -441,7 +441,7 @@
{ "internalType": "address", "name": "eth", "type": "address" },
{ "internalType": "uint256", "name": "sub", "type": "uint256" }
],
- "internalType": "struct EthCrossAccount",
+ "internalType": "struct CrossAccount",
"name": "user",
"type": "tuple"
}
@@ -465,7 +465,7 @@
{ "internalType": "address", "name": "eth", "type": "address" },
{ "internalType": "uint256", "name": "sub", "type": "uint256" }
],
- "internalType": "struct EthCrossAccount",
+ "internalType": "struct CrossAccount",
"name": "to",
"type": "tuple"
},
@@ -561,7 +561,7 @@
{ "internalType": "address", "name": "eth", "type": "address" },
{ "internalType": "uint256", "name": "sub", "type": "uint256" }
],
- "internalType": "struct EthCrossAccount",
+ "internalType": "struct CrossAccount",
"name": "admin",
"type": "tuple"
}
@@ -585,7 +585,7 @@
{ "internalType": "address", "name": "eth", "type": "address" },
{ "internalType": "uint256", "name": "sub", "type": "uint256" }
],
- "internalType": "struct EthCrossAccount",
+ "internalType": "struct CrossAccount",
"name": "user",
"type": "tuple"
}
@@ -709,7 +709,7 @@
{ "internalType": "address", "name": "eth", "type": "address" },
{ "internalType": "uint256", "name": "sub", "type": "uint256" }
],
- "internalType": "struct EthCrossAccount",
+ "internalType": "struct CrossAccount",
"name": "sponsor",
"type": "tuple"
}
@@ -872,7 +872,7 @@
{ "internalType": "address", "name": "eth", "type": "address" },
{ "internalType": "uint256", "name": "sub", "type": "uint256" }
],
- "internalType": "struct EthCrossAccount",
+ "internalType": "struct CrossAccount",
"name": "to",
"type": "tuple"
},
@@ -901,7 +901,7 @@
{ "internalType": "address", "name": "eth", "type": "address" },
{ "internalType": "uint256", "name": "sub", "type": "uint256" }
],
- "internalType": "struct EthCrossAccount",
+ "internalType": "struct CrossAccount",
"name": "from",
"type": "tuple"
},
@@ -910,7 +910,7 @@
{ "internalType": "address", "name": "eth", "type": "address" },
{ "internalType": "uint256", "name": "sub", "type": "uint256" }
],
- "internalType": "struct EthCrossAccount",
+ "internalType": "struct CrossAccount",
"name": "to",
"type": "tuple"
},
tests/src/eth/abi/reFungibleToken.jsondiffbeforeafterboth--- a/tests/src/eth/abi/reFungibleToken.json
+++ b/tests/src/eth/abi/reFungibleToken.json
@@ -76,7 +76,7 @@
{ "internalType": "address", "name": "eth", "type": "address" },
{ "internalType": "uint256", "name": "sub", "type": "uint256" }
],
- "internalType": "struct EthCrossAccount",
+ "internalType": "struct CrossAccount",
"name": "spender",
"type": "tuple"
},
@@ -113,7 +113,7 @@
{ "internalType": "address", "name": "eth", "type": "address" },
{ "internalType": "uint256", "name": "sub", "type": "uint256" }
],
- "internalType": "struct EthCrossAccount",
+ "internalType": "struct CrossAccount",
"name": "from",
"type": "tuple"
},
@@ -201,7 +201,7 @@
{ "internalType": "address", "name": "eth", "type": "address" },
{ "internalType": "uint256", "name": "sub", "type": "uint256" }
],
- "internalType": "struct EthCrossAccount",
+ "internalType": "struct CrossAccount",
"name": "to",
"type": "tuple"
},
@@ -230,7 +230,7 @@
{ "internalType": "address", "name": "eth", "type": "address" },
{ "internalType": "uint256", "name": "sub", "type": "uint256" }
],
- "internalType": "struct EthCrossAccount",
+ "internalType": "struct CrossAccount",
"name": "from",
"type": "tuple"
},
@@ -239,7 +239,7 @@
{ "internalType": "address", "name": "eth", "type": "address" },
{ "internalType": "uint256", "name": "sub", "type": "uint256" }
],
- "internalType": "struct EthCrossAccount",
+ "internalType": "struct CrossAccount",
"name": "to",
"type": "tuple"
},
tests/src/eth/api/ContractHelpers.soldiffbeforeafterboth--- a/tests/src/eth/api/ContractHelpers.sol
+++ b/tests/src/eth/api/ContractHelpers.sol
@@ -69,7 +69,7 @@
/// @return Tuble with sponsor address and his substrate mirror. If there is no confirmed sponsor error "Contract has no sponsor" throw.
/// @dev EVM selector for this function is: 0x766c4f37,
/// or in textual repr: sponsor(address)
- function sponsor(address contractAddress) external view returns (EthCrossAccount memory);
+ function sponsor(address contractAddress) external view returns (CrossAccount memory);
/// Check tat contract has confirmed sponsor.
///
@@ -172,7 +172,7 @@
}
/// @dev Cross account struct
-struct EthCrossAccount {
+struct CrossAccount {
address eth;
uint256 sub;
}
tests/src/eth/api/UniqueFungible.soldiffbeforeafterboth--- a/tests/src/eth/api/UniqueFungible.sol
+++ b/tests/src/eth/api/UniqueFungible.sol
@@ -78,7 +78,7 @@
/// @param sponsor Cross account address of the sponsor from whose account funds will be debited for operations with the contract.
/// @dev EVM selector for this function is: 0x84a1d5a8,
/// or in textual repr: setCollectionSponsorCross((address,uint256))
- function setCollectionSponsorCross(EthCrossAccount memory sponsor) external;
+ function setCollectionSponsorCross(CrossAccount memory sponsor) external;
/// Whether there is a pending sponsor.
/// @dev EVM selector for this function is: 0x058ac185,
@@ -102,7 +102,7 @@
/// @return Tuble with sponsor address and his substrate mirror. If there is no confirmed sponsor error "Contract has no sponsor" throw.
/// @dev EVM selector for this function is: 0x6ec0a9f1,
/// or in textual repr: collectionSponsor()
- function collectionSponsor() external view returns (EthCrossAccount memory);
+ function collectionSponsor() external view returns (CrossAccount memory);
/// Get current collection limits.
///
@@ -127,13 +127,13 @@
/// @param newAdmin Cross account administrator address.
/// @dev EVM selector for this function is: 0x859aa7d6,
/// or in textual repr: addCollectionAdminCross((address,uint256))
- function addCollectionAdminCross(EthCrossAccount memory newAdmin) external;
+ function addCollectionAdminCross(CrossAccount memory newAdmin) external;
/// Remove collection admin.
/// @param admin Cross account administrator address.
/// @dev EVM selector for this function is: 0x6c0cd173,
/// or in textual repr: removeCollectionAdminCross((address,uint256))
- function removeCollectionAdminCross(EthCrossAccount memory admin) external;
+ function removeCollectionAdminCross(CrossAccount memory admin) external;
// /// Add collection admin.
// /// @param newAdmin Address of the added administrator.
@@ -186,7 +186,7 @@
/// @param user User address to check.
/// @dev EVM selector for this function is: 0x91b6df49,
/// or in textual repr: allowlistedCross((address,uint256))
- function allowlistedCross(EthCrossAccount memory user) external view returns (bool);
+ function allowlistedCross(CrossAccount memory user) external view returns (bool);
// /// Add the user to the allowed list.
// ///
@@ -200,7 +200,7 @@
/// @param user User cross account address.
/// @dev EVM selector for this function is: 0xa0184a3a,
/// or in textual repr: addToCollectionAllowListCross((address,uint256))
- function addToCollectionAllowListCross(EthCrossAccount memory user) external;
+ function addToCollectionAllowListCross(CrossAccount memory user) external;
// /// Remove the user from the allowed list.
// ///
@@ -214,7 +214,7 @@
/// @param user User cross account address.
/// @dev EVM selector for this function is: 0x09ba452a,
/// or in textual repr: removeFromCollectionAllowListCross((address,uint256))
- function removeFromCollectionAllowListCross(EthCrossAccount memory user) external;
+ function removeFromCollectionAllowListCross(CrossAccount memory user) external;
/// Switch permission for minting.
///
@@ -237,7 +237,7 @@
/// @return "true" if account is the owner or admin
/// @dev EVM selector for this function is: 0x3e75a905,
/// or in textual repr: isOwnerOrAdminCross((address,uint256))
- function isOwnerOrAdminCross(EthCrossAccount memory user) external view returns (bool);
+ function isOwnerOrAdminCross(CrossAccount memory user) external view returns (bool);
/// Returns collection type
///
@@ -252,7 +252,7 @@
/// If address is canonical then substrate mirror is zero and vice versa.
/// @dev EVM selector for this function is: 0xdf727d3b,
/// or in textual repr: collectionOwner()
- function collectionOwner() external view returns (EthCrossAccount memory);
+ function collectionOwner() external view returns (CrossAccount memory);
// /// Changes collection owner to another account
// ///
@@ -268,7 +268,7 @@
/// If address is canonical then substrate mirror is zero and vice versa.
/// @dev EVM selector for this function is: 0x5813216b,
/// or in textual repr: collectionAdmins()
- function collectionAdmins() external view returns (EthCrossAccount[] memory);
+ function collectionAdmins() external view returns (CrossAccount[] memory);
/// Changes collection owner to another account
///
@@ -276,11 +276,11 @@
/// @param newOwner new owner cross account
/// @dev EVM selector for this function is: 0x6496c497,
/// or in textual repr: changeCollectionOwnerCross((address,uint256))
- function changeCollectionOwnerCross(EthCrossAccount memory newOwner) external;
+ function changeCollectionOwnerCross(CrossAccount memory newOwner) external;
}
/// @dev Cross account struct
-struct EthCrossAccount {
+struct CrossAccount {
address eth;
uint256 sub;
}
@@ -305,13 +305,14 @@
uint256[] field_1;
}
+/// @dev [`CollectionLimits`](up_data_structs::CollectionLimits) field representation for EVM.
struct CollectionLimit {
CollectionLimitField field;
bool status;
uint256 value;
}
-/// @dev [`CollectionLimits`](up_data_structs::CollectionLimits) representation for EVM.
+/// @dev [`CollectionLimits`](up_data_structs::CollectionLimits) fields representation for EVM.
enum CollectionLimitField {
/// @dev How many tokens can a user have on one account.
AccountTokenOwnership,
@@ -350,11 +351,11 @@
/// @dev EVM selector for this function is: 0x269e6158,
/// or in textual repr: mintCross((address,uint256),uint256)
- function mintCross(EthCrossAccount memory to, uint256 amount) external returns (bool);
+ function mintCross(CrossAccount memory to, uint256 amount) external returns (bool);
/// @dev EVM selector for this function is: 0x0ecd0ab0,
/// or in textual repr: approveCross((address,uint256),uint256)
- function approveCross(EthCrossAccount memory spender, uint256 amount) external returns (bool);
+ function approveCross(CrossAccount memory spender, uint256 amount) external returns (bool);
// /// Burn tokens from account
// /// @dev Function that burns an `amount` of the tokens of a given account,
@@ -372,7 +373,7 @@
/// @param amount The amount that will be burnt.
/// @dev EVM selector for this function is: 0xbb2f5a58,
/// or in textual repr: burnFromCross((address,uint256),uint256)
- function burnFromCross(EthCrossAccount memory from, uint256 amount) external returns (bool);
+ function burnFromCross(CrossAccount memory from, uint256 amount) external returns (bool);
/// Mint tokens for multiple accounts.
/// @param amounts array of pairs of account address and amount
@@ -382,13 +383,13 @@
/// @dev EVM selector for this function is: 0x2ada85ff,
/// or in textual repr: transferCross((address,uint256),uint256)
- function transferCross(EthCrossAccount memory to, uint256 amount) external returns (bool);
+ function transferCross(CrossAccount memory to, uint256 amount) external returns (bool);
/// @dev EVM selector for this function is: 0xd5cf430b,
/// or in textual repr: transferFromCross((address,uint256),(address,uint256),uint256)
function transferFromCross(
- EthCrossAccount memory from,
- EthCrossAccount memory to,
+ CrossAccount memory from,
+ CrossAccount memory to,
uint256 amount
) external returns (bool);
}
tests/src/eth/api/UniqueNFT.soldiffbeforeafterboth--- a/tests/src/eth/api/UniqueNFT.sol
+++ b/tests/src/eth/api/UniqueNFT.sol
@@ -180,7 +180,7 @@
/// @param sponsor Cross account address of the sponsor from whose account funds will be debited for operations with the contract.
/// @dev EVM selector for this function is: 0x84a1d5a8,
/// or in textual repr: setCollectionSponsorCross((address,uint256))
- function setCollectionSponsorCross(EthCrossAccount memory sponsor) external;
+ function setCollectionSponsorCross(CrossAccount memory sponsor) external;
/// Whether there is a pending sponsor.
/// @dev EVM selector for this function is: 0x058ac185,
@@ -204,7 +204,7 @@
/// @return Tuble with sponsor address and his substrate mirror. If there is no confirmed sponsor error "Contract has no sponsor" throw.
/// @dev EVM selector for this function is: 0x6ec0a9f1,
/// or in textual repr: collectionSponsor()
- function collectionSponsor() external view returns (EthCrossAccount memory);
+ function collectionSponsor() external view returns (CrossAccount memory);
/// Get current collection limits.
///
@@ -229,13 +229,13 @@
/// @param newAdmin Cross account administrator address.
/// @dev EVM selector for this function is: 0x859aa7d6,
/// or in textual repr: addCollectionAdminCross((address,uint256))
- function addCollectionAdminCross(EthCrossAccount memory newAdmin) external;
+ function addCollectionAdminCross(CrossAccount memory newAdmin) external;
/// Remove collection admin.
/// @param admin Cross account administrator address.
/// @dev EVM selector for this function is: 0x6c0cd173,
/// or in textual repr: removeCollectionAdminCross((address,uint256))
- function removeCollectionAdminCross(EthCrossAccount memory admin) external;
+ function removeCollectionAdminCross(CrossAccount memory admin) external;
// /// Add collection admin.
// /// @param newAdmin Address of the added administrator.
@@ -288,7 +288,7 @@
/// @param user User address to check.
/// @dev EVM selector for this function is: 0x91b6df49,
/// or in textual repr: allowlistedCross((address,uint256))
- function allowlistedCross(EthCrossAccount memory user) external view returns (bool);
+ function allowlistedCross(CrossAccount memory user) external view returns (bool);
// /// Add the user to the allowed list.
// ///
@@ -302,7 +302,7 @@
/// @param user User cross account address.
/// @dev EVM selector for this function is: 0xa0184a3a,
/// or in textual repr: addToCollectionAllowListCross((address,uint256))
- function addToCollectionAllowListCross(EthCrossAccount memory user) external;
+ function addToCollectionAllowListCross(CrossAccount memory user) external;
// /// Remove the user from the allowed list.
// ///
@@ -316,7 +316,7 @@
/// @param user User cross account address.
/// @dev EVM selector for this function is: 0x09ba452a,
/// or in textual repr: removeFromCollectionAllowListCross((address,uint256))
- function removeFromCollectionAllowListCross(EthCrossAccount memory user) external;
+ function removeFromCollectionAllowListCross(CrossAccount memory user) external;
/// Switch permission for minting.
///
@@ -339,7 +339,7 @@
/// @return "true" if account is the owner or admin
/// @dev EVM selector for this function is: 0x3e75a905,
/// or in textual repr: isOwnerOrAdminCross((address,uint256))
- function isOwnerOrAdminCross(EthCrossAccount memory user) external view returns (bool);
+ function isOwnerOrAdminCross(CrossAccount memory user) external view returns (bool);
/// Returns collection type
///
@@ -354,7 +354,7 @@
/// If address is canonical then substrate mirror is zero and vice versa.
/// @dev EVM selector for this function is: 0xdf727d3b,
/// or in textual repr: collectionOwner()
- function collectionOwner() external view returns (EthCrossAccount memory);
+ function collectionOwner() external view returns (CrossAccount memory);
// /// Changes collection owner to another account
// ///
@@ -370,7 +370,7 @@
/// If address is canonical then substrate mirror is zero and vice versa.
/// @dev EVM selector for this function is: 0x5813216b,
/// or in textual repr: collectionAdmins()
- function collectionAdmins() external view returns (EthCrossAccount[] memory);
+ function collectionAdmins() external view returns (CrossAccount[] memory);
/// Changes collection owner to another account
///
@@ -378,11 +378,11 @@
/// @param newOwner new owner cross account
/// @dev EVM selector for this function is: 0x6496c497,
/// or in textual repr: changeCollectionOwnerCross((address,uint256))
- function changeCollectionOwnerCross(EthCrossAccount memory newOwner) external;
+ function changeCollectionOwnerCross(CrossAccount memory newOwner) external;
}
/// @dev Cross account struct
-struct EthCrossAccount {
+struct CrossAccount {
address eth;
uint256 sub;
}
@@ -407,13 +407,14 @@
uint256[] field_1;
}
+/// @dev [`CollectionLimits`](up_data_structs::CollectionLimits) field representation for EVM.
struct CollectionLimit {
CollectionLimitField field;
bool status;
uint256 value;
}
-/// @dev [`CollectionLimits`](up_data_structs::CollectionLimits) representation for EVM.
+/// @dev [`CollectionLimits`](up_data_structs::CollectionLimits) fields representation for EVM.
enum CollectionLimitField {
/// @dev How many tokens can a user have on one account.
AccountTokenOwnership,
@@ -552,7 +553,7 @@
/// @param tokenId Id for the token.
/// @dev EVM selector for this function is: 0x2b29dace,
/// or in textual repr: crossOwnerOf(uint256)
- function crossOwnerOf(uint256 tokenId) external view returns (EthCrossAccount memory);
+ function crossOwnerOf(uint256 tokenId) external view returns (CrossAccount memory);
/// Returns the token properties.
///
@@ -571,7 +572,7 @@
/// @param tokenId The NFT to approve
/// @dev EVM selector for this function is: 0x0ecd0ab0,
/// or in textual repr: approveCross((address,uint256),uint256)
- function approveCross(EthCrossAccount memory approved, uint256 tokenId) external;
+ function approveCross(CrossAccount memory approved, uint256 tokenId) external;
/// @notice Transfer ownership of an NFT
/// @dev Throws unless `msg.sender` is the current owner. Throws if `to`
@@ -589,7 +590,7 @@
/// @param tokenId The NFT to transfer
/// @dev EVM selector for this function is: 0x2ada85ff,
/// or in textual repr: transferCross((address,uint256),uint256)
- function transferCross(EthCrossAccount memory to, uint256 tokenId) external;
+ function transferCross(CrossAccount memory to, uint256 tokenId) external;
/// @notice Transfer ownership of an NFT from cross account address to cross account address
/// @dev Throws unless `msg.sender` is the current owner. Throws if `to`
@@ -600,8 +601,8 @@
/// @dev EVM selector for this function is: 0xd5cf430b,
/// or in textual repr: transferFromCross((address,uint256),(address,uint256),uint256)
function transferFromCross(
- EthCrossAccount memory from,
- EthCrossAccount memory to,
+ CrossAccount memory from,
+ CrossAccount memory to,
uint256 tokenId
) external;
@@ -623,7 +624,7 @@
/// @param tokenId The NFT to transfer
/// @dev EVM selector for this function is: 0xbb2f5a58,
/// or in textual repr: burnFromCross((address,uint256),uint256)
- function burnFromCross(EthCrossAccount memory from, uint256 tokenId) external;
+ function burnFromCross(CrossAccount memory from, uint256 tokenId) external;
/// @notice Returns next free NFT ID.
/// @dev EVM selector for this function is: 0x75794a3c,
@@ -654,7 +655,7 @@
/// @return uint256 The id of the newly minted token
/// @dev EVM selector for this function is: 0xb904db03,
/// or in textual repr: mintCross((address,uint256),(string,bytes)[])
- function mintCross(EthCrossAccount memory to, Property[] memory properties) external returns (uint256);
+ function mintCross(CrossAccount memory to, Property[] memory properties) external returns (uint256);
}
/// @dev anonymous struct
tests/src/eth/api/UniqueRefungible.soldiffbeforeafterboth--- a/tests/src/eth/api/UniqueRefungible.sol
+++ b/tests/src/eth/api/UniqueRefungible.sol
@@ -180,7 +180,7 @@
/// @param sponsor Cross account address of the sponsor from whose account funds will be debited for operations with the contract.
/// @dev EVM selector for this function is: 0x84a1d5a8,
/// or in textual repr: setCollectionSponsorCross((address,uint256))
- function setCollectionSponsorCross(EthCrossAccount memory sponsor) external;
+ function setCollectionSponsorCross(CrossAccount memory sponsor) external;
/// Whether there is a pending sponsor.
/// @dev EVM selector for this function is: 0x058ac185,
@@ -204,7 +204,7 @@
/// @return Tuble with sponsor address and his substrate mirror. If there is no confirmed sponsor error "Contract has no sponsor" throw.
/// @dev EVM selector for this function is: 0x6ec0a9f1,
/// or in textual repr: collectionSponsor()
- function collectionSponsor() external view returns (EthCrossAccount memory);
+ function collectionSponsor() external view returns (CrossAccount memory);
/// Get current collection limits.
///
@@ -229,13 +229,13 @@
/// @param newAdmin Cross account administrator address.
/// @dev EVM selector for this function is: 0x859aa7d6,
/// or in textual repr: addCollectionAdminCross((address,uint256))
- function addCollectionAdminCross(EthCrossAccount memory newAdmin) external;
+ function addCollectionAdminCross(CrossAccount memory newAdmin) external;
/// Remove collection admin.
/// @param admin Cross account administrator address.
/// @dev EVM selector for this function is: 0x6c0cd173,
/// or in textual repr: removeCollectionAdminCross((address,uint256))
- function removeCollectionAdminCross(EthCrossAccount memory admin) external;
+ function removeCollectionAdminCross(CrossAccount memory admin) external;
// /// Add collection admin.
// /// @param newAdmin Address of the added administrator.
@@ -288,7 +288,7 @@
/// @param user User address to check.
/// @dev EVM selector for this function is: 0x91b6df49,
/// or in textual repr: allowlistedCross((address,uint256))
- function allowlistedCross(EthCrossAccount memory user) external view returns (bool);
+ function allowlistedCross(CrossAccount memory user) external view returns (bool);
// /// Add the user to the allowed list.
// ///
@@ -302,7 +302,7 @@
/// @param user User cross account address.
/// @dev EVM selector for this function is: 0xa0184a3a,
/// or in textual repr: addToCollectionAllowListCross((address,uint256))
- function addToCollectionAllowListCross(EthCrossAccount memory user) external;
+ function addToCollectionAllowListCross(CrossAccount memory user) external;
// /// Remove the user from the allowed list.
// ///
@@ -316,7 +316,7 @@
/// @param user User cross account address.
/// @dev EVM selector for this function is: 0x09ba452a,
/// or in textual repr: removeFromCollectionAllowListCross((address,uint256))
- function removeFromCollectionAllowListCross(EthCrossAccount memory user) external;
+ function removeFromCollectionAllowListCross(CrossAccount memory user) external;
/// Switch permission for minting.
///
@@ -339,7 +339,7 @@
/// @return "true" if account is the owner or admin
/// @dev EVM selector for this function is: 0x3e75a905,
/// or in textual repr: isOwnerOrAdminCross((address,uint256))
- function isOwnerOrAdminCross(EthCrossAccount memory user) external view returns (bool);
+ function isOwnerOrAdminCross(CrossAccount memory user) external view returns (bool);
/// Returns collection type
///
@@ -354,7 +354,7 @@
/// If address is canonical then substrate mirror is zero and vice versa.
/// @dev EVM selector for this function is: 0xdf727d3b,
/// or in textual repr: collectionOwner()
- function collectionOwner() external view returns (EthCrossAccount memory);
+ function collectionOwner() external view returns (CrossAccount memory);
// /// Changes collection owner to another account
// ///
@@ -370,7 +370,7 @@
/// If address is canonical then substrate mirror is zero and vice versa.
/// @dev EVM selector for this function is: 0x5813216b,
/// or in textual repr: collectionAdmins()
- function collectionAdmins() external view returns (EthCrossAccount[] memory);
+ function collectionAdmins() external view returns (CrossAccount[] memory);
/// Changes collection owner to another account
///
@@ -378,11 +378,11 @@
/// @param newOwner new owner cross account
/// @dev EVM selector for this function is: 0x6496c497,
/// or in textual repr: changeCollectionOwnerCross((address,uint256))
- function changeCollectionOwnerCross(EthCrossAccount memory newOwner) external;
+ function changeCollectionOwnerCross(CrossAccount memory newOwner) external;
}
/// @dev Cross account struct
-struct EthCrossAccount {
+struct CrossAccount {
address eth;
uint256 sub;
}
@@ -407,13 +407,14 @@
uint256[] field_1;
}
+/// @dev [`CollectionLimits`](up_data_structs::CollectionLimits) field representation for EVM.
struct CollectionLimit {
CollectionLimitField field;
bool status;
uint256 value;
}
-/// @dev [`CollectionLimits`](up_data_structs::CollectionLimits) representation for EVM.
+/// @dev [`CollectionLimits`](up_data_structs::CollectionLimits) fields representation for EVM.
enum CollectionLimitField {
/// @dev How many tokens can a user have on one account.
AccountTokenOwnership,
@@ -550,7 +551,7 @@
/// @param tokenId Id for the token.
/// @dev EVM selector for this function is: 0x2b29dace,
/// or in textual repr: crossOwnerOf(uint256)
- function crossOwnerOf(uint256 tokenId) external view returns (EthCrossAccount memory);
+ function crossOwnerOf(uint256 tokenId) external view returns (CrossAccount memory);
/// Returns the token properties.
///
@@ -579,7 +580,7 @@
/// @param tokenId The RFT to transfer
/// @dev EVM selector for this function is: 0x2ada85ff,
/// or in textual repr: transferCross((address,uint256),uint256)
- function transferCross(EthCrossAccount memory to, uint256 tokenId) external;
+ function transferCross(CrossAccount memory to, uint256 tokenId) external;
/// @notice Transfer ownership of an RFT
/// @dev Throws unless `msg.sender` is the current owner. Throws if `to`
@@ -590,8 +591,8 @@
/// @dev EVM selector for this function is: 0xd5cf430b,
/// or in textual repr: transferFromCross((address,uint256),(address,uint256),uint256)
function transferFromCross(
- EthCrossAccount memory from,
- EthCrossAccount memory to,
+ CrossAccount memory from,
+ CrossAccount memory to,
uint256 tokenId
) external;
@@ -615,7 +616,7 @@
/// @param tokenId The RFT to transfer
/// @dev EVM selector for this function is: 0xbb2f5a58,
/// or in textual repr: burnFromCross((address,uint256),uint256)
- function burnFromCross(EthCrossAccount memory from, uint256 tokenId) external;
+ function burnFromCross(CrossAccount memory from, uint256 tokenId) external;
/// @notice Returns next free RFT ID.
/// @dev EVM selector for this function is: 0x75794a3c,
@@ -646,7 +647,7 @@
/// @return uint256 The id of the newly minted token
/// @dev EVM selector for this function is: 0xb904db03,
/// or in textual repr: mintCross((address,uint256),(string,bytes)[])
- function mintCross(EthCrossAccount memory to, Property[] memory properties) external returns (uint256);
+ function mintCross(CrossAccount memory to, Property[] memory properties) external returns (uint256);
/// Returns EVM address for refungible token
///
tests/src/eth/api/UniqueRefungibleToken.soldiffbeforeafterboth--- a/tests/src/eth/api/UniqueRefungibleToken.sol
+++ b/tests/src/eth/api/UniqueRefungibleToken.sol
@@ -39,7 +39,7 @@
/// @param amount The amount that will be burnt.
/// @dev EVM selector for this function is: 0xbb2f5a58,
/// or in textual repr: burnFromCross((address,uint256),uint256)
- function burnFromCross(EthCrossAccount memory from, uint256 amount) external returns (bool);
+ function burnFromCross(CrossAccount memory from, uint256 amount) external returns (bool);
/// @dev Approve the passed address to spend the specified amount of tokens on behalf of `msg.sender`.
/// Beware that changing an allowance with this method brings the risk that someone may use both the old
@@ -50,7 +50,7 @@
/// @param amount The amount of tokens to be spent.
/// @dev EVM selector for this function is: 0x0ecd0ab0,
/// or in textual repr: approveCross((address,uint256),uint256)
- function approveCross(EthCrossAccount memory spender, uint256 amount) external returns (bool);
+ function approveCross(CrossAccount memory spender, uint256 amount) external returns (bool);
/// @dev Function that changes total amount of the tokens.
/// Throws if `msg.sender` doesn't owns all of the tokens.
@@ -64,7 +64,7 @@
/// @param amount The amount to be transferred.
/// @dev EVM selector for this function is: 0x2ada85ff,
/// or in textual repr: transferCross((address,uint256),uint256)
- function transferCross(EthCrossAccount memory to, uint256 amount) external returns (bool);
+ function transferCross(CrossAccount memory to, uint256 amount) external returns (bool);
/// @dev Transfer tokens from one address to another
/// @param from The address which you want to send tokens from
@@ -73,14 +73,14 @@
/// @dev EVM selector for this function is: 0xd5cf430b,
/// or in textual repr: transferFromCross((address,uint256),(address,uint256),uint256)
function transferFromCross(
- EthCrossAccount memory from,
- EthCrossAccount memory to,
+ CrossAccount memory from,
+ CrossAccount memory to,
uint256 amount
) external returns (bool);
}
/// @dev Cross account struct
-struct EthCrossAccount {
+struct CrossAccount {
address eth;
uint256 sub;
}
tests/src/eth/fractionalizer/Fractionalizer.soldiffbeforeafterboth--- a/tests/src/eth/fractionalizer/Fractionalizer.sol
+++ b/tests/src/eth/fractionalizer/Fractionalizer.sol
@@ -3,7 +3,7 @@
import {CollectionHelpers} from "../api/CollectionHelpers.sol";
import {ContractHelpers} from "../api/ContractHelpers.sol";
import {UniqueRefungibleToken} from "../api/UniqueRefungibleToken.sol";
-import {UniqueRefungible, EthCrossAccount} from "../api/UniqueRefungible.sol";
+import {UniqueRefungible, CrossAccount} from "../api/UniqueRefungible.sol";
import {UniqueNFT} from "../api/UniqueNFT.sol";
/// @dev Fractionalization contract. It stores mappings between NFT and RFT tokens,
@@ -63,7 +63,7 @@
"Wrong collection type. Collection is not refungible."
);
require(
- refungibleContract.isOwnerOrAdminCross(EthCrossAccount({eth: address(this), sub: uint256(0)})),
+ refungibleContract.isOwnerOrAdminCross(CrossAccount({eth: address(this), sub: uint256(0)})),
"Fractionalizer contract should be an admin of the collection"
);
rftCollection = _collection;
@@ -128,7 +128,7 @@
address rftTokenAddress;
UniqueRefungibleToken rftTokenContract;
if (nft2rftMapping[_collection][_token] == 0) {
- rftTokenId = rftCollectionContract.mint(address(this));
+ rftTokenId = rftCollectionContract.mint(address(this));
rftTokenAddress = rftCollectionContract.tokenContractAddress(rftTokenId);
nft2rftMapping[_collection][_token] = rftTokenId;
rft2nftMapping[rftTokenAddress] = Token(_collection, _token);
tests/src/eth/util/playgrounds/types.tsdiffbeforeafterboth--- a/tests/src/eth/util/playgrounds/types.ts
+++ b/tests/src/eth/util/playgrounds/types.ts
@@ -25,6 +25,7 @@
TokenOwner,
CollectionAdmin
}
+
export enum CollectionLimitField {
AccountTokenOwnership,
SponsoredDataSize,
@@ -37,8 +38,8 @@
TransferEnabled
}
-export interface EthCollectionLimit {
+export interface CollectionLimit {
field: CollectionLimitField,
status: boolean,
- value: bigint,
+ value: bigint | number,
}