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.jsondiffbeforeafterboth--- a/tests/src/eth/abi/nonFungible.json
+++ b/tests/src/eth/abi/nonFungible.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"
}
@@ -148,7 +148,7 @@
{ "internalType": "address", "name": "eth", "type": "address" },
{ "internalType": "uint256", "name": "sub", "type": "uint256" }
],
- "internalType": "struct EthCrossAccount",
+ "internalType": "struct CrossAccount",
"name": "approved",
"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": "from",
"type": "tuple"
},
@@ -202,7 +202,7 @@
{ "internalType": "address", "name": "eth", "type": "address" },
{ "internalType": "uint256", "name": "sub", "type": "uint256" }
],
- "internalType": "struct EthCrossAccount",
+ "internalType": "struct CrossAccount",
"name": "newOwner",
"type": "tuple"
}
@@ -221,7 +221,7 @@
{ "internalType": "address", "name": "eth", "type": "address" },
{ "internalType": "uint256", "name": "sub", "type": "uint256" }
],
- "internalType": "struct EthCrossAccount[]",
+ "internalType": "struct CrossAccount[]",
"name": "",
"type": "tuple[]"
}
@@ -309,7 +309,7 @@
{ "internalType": "address", "name": "eth", "type": "address" },
{ "internalType": "uint256", "name": "sub", "type": "uint256" }
],
- "internalType": "struct EthCrossAccount",
+ "internalType": "struct CrossAccount",
"name": "",
"type": "tuple"
}
@@ -352,7 +352,7 @@
{ "internalType": "address", "name": "eth", "type": "address" },
{ "internalType": "uint256", "name": "sub", "type": "uint256" }
],
- "internalType": "struct EthCrossAccount",
+ "internalType": "struct CrossAccount",
"name": "",
"type": "tuple"
}
@@ -385,7 +385,7 @@
{ "internalType": "address", "name": "eth", "type": "address" },
{ "internalType": "uint256", "name": "sub", "type": "uint256" }
],
- "internalType": "struct EthCrossAccount",
+ "internalType": "struct CrossAccount",
"name": "",
"type": "tuple"
}
@@ -459,7 +459,7 @@
{ "internalType": "address", "name": "eth", "type": "address" },
{ "internalType": "uint256", "name": "sub", "type": "uint256" }
],
- "internalType": "struct EthCrossAccount",
+ "internalType": "struct CrossAccount",
"name": "user",
"type": "tuple"
}
@@ -483,7 +483,7 @@
{ "internalType": "address", "name": "eth", "type": "address" },
{ "internalType": "uint256", "name": "sub", "type": "uint256" }
],
- "internalType": "struct EthCrossAccount",
+ "internalType": "struct CrossAccount",
"name": "to",
"type": "tuple"
},
@@ -579,7 +579,7 @@
{ "internalType": "address", "name": "eth", "type": "address" },
{ "internalType": "uint256", "name": "sub", "type": "uint256" }
],
- "internalType": "struct EthCrossAccount",
+ "internalType": "struct CrossAccount",
"name": "admin",
"type": "tuple"
}
@@ -603,7 +603,7 @@
{ "internalType": "address", "name": "eth", "type": "address" },
{ "internalType": "uint256", "name": "sub", "type": "uint256" }
],
- "internalType": "struct EthCrossAccount",
+ "internalType": "struct CrossAccount",
"name": "user",
"type": "tuple"
}
@@ -727,7 +727,7 @@
{ "internalType": "address", "name": "eth", "type": "address" },
{ "internalType": "uint256", "name": "sub", "type": "uint256" }
],
- "internalType": "struct EthCrossAccount",
+ "internalType": "struct CrossAccount",
"name": "sponsor",
"type": "tuple"
}
@@ -881,7 +881,7 @@
{ "internalType": "address", "name": "eth", "type": "address" },
{ "internalType": "uint256", "name": "sub", "type": "uint256" }
],
- "internalType": "struct EthCrossAccount",
+ "internalType": "struct CrossAccount",
"name": "to",
"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": "from",
"type": "tuple"
},
@@ -919,7 +919,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/reFungible.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 CrossAccount",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 CrossAccount",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 CrossAccount",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 { "internalType": "address", "name": "owner", "type": "address" }147 ],148 "name": "balanceOf",149 "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }],150 "stateMutability": "view",151 "type": "function"152 },153 {154 "inputs": [155 { "internalType": "uint256", "name": "tokenId", "type": "uint256" }156 ],157 "name": "burn",158 "outputs": [],159 "stateMutability": "nonpayable",160 "type": "function"161 },162 {163 "inputs": [164 {165 "components": [166 { "internalType": "address", "name": "eth", "type": "address" },167 { "internalType": "uint256", "name": "sub", "type": "uint256" }168 ],169 "internalType": "struct CrossAccount",170 "name": "from",171 "type": "tuple"172 },173 { "internalType": "uint256", "name": "tokenId", "type": "uint256" }174 ],175 "name": "burnFromCross",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 CrossAccount",188 "name": "newOwner",189 "type": "tuple"190 }191 ],192 "name": "changeCollectionOwnerCross",193 "outputs": [],194 "stateMutability": "nonpayable",195 "type": "function"196 },197 {198 "inputs": [],199 "name": "collectionAdmins",200 "outputs": [201 {202 "components": [203 { "internalType": "address", "name": "eth", "type": "address" },204 { "internalType": "uint256", "name": "sub", "type": "uint256" }205 ],206 "internalType": "struct CrossAccount[]",207 "name": "",208 "type": "tuple[]"209 }210 ],211 "stateMutability": "view",212 "type": "function"213 },214 {215 "inputs": [],216 "name": "collectionHelperAddress",217 "outputs": [{ "internalType": "address", "name": "", "type": "address" }],218 "stateMutability": "view",219 "type": "function"220 },221 {222 "inputs": [],223 "name": "collectionLimits",224 "outputs": [225 {226 "components": [227 {228 "internalType": "enum CollectionLimitField",229 "name": "field",230 "type": "uint8"231 },232 { "internalType": "bool", "name": "status", "type": "bool" },233 { "internalType": "uint256", "name": "value", "type": "uint256" }234 ],235 "internalType": "struct CollectionLimit[]",236 "name": "",237 "type": "tuple[]"238 }239 ],240 "stateMutability": "view",241 "type": "function"242 },243 {244 "inputs": [],245 "name": "collectionNestingPermissions",246 "outputs": [247 {248 "components": [249 {250 "internalType": "enum CollectionPermissions",251 "name": "field_0",252 "type": "uint8"253 },254 { "internalType": "bool", "name": "field_1", "type": "bool" }255 ],256 "internalType": "struct Tuple44[]",257 "name": "",258 "type": "tuple[]"259 }260 ],261 "stateMutability": "view",262 "type": "function"263 },264 {265 "inputs": [],266 "name": "collectionNestingRestrictedCollectionIds",267 "outputs": [268 {269 "components": [270 { "internalType": "bool", "name": "field_0", "type": "bool" },271 {272 "internalType": "uint256[]",273 "name": "field_1",274 "type": "uint256[]"275 }276 ],277 "internalType": "struct Tuple41",278 "name": "",279 "type": "tuple"280 }281 ],282 "stateMutability": "view",283 "type": "function"284 },285 {286 "inputs": [],287 "name": "collectionOwner",288 "outputs": [289 {290 "components": [291 { "internalType": "address", "name": "eth", "type": "address" },292 { "internalType": "uint256", "name": "sub", "type": "uint256" }293 ],294 "internalType": "struct CrossAccount",295 "name": "",296 "type": "tuple"297 }298 ],299 "stateMutability": "view",300 "type": "function"301 },302 {303 "inputs": [304 { "internalType": "string[]", "name": "keys", "type": "string[]" }305 ],306 "name": "collectionProperties",307 "outputs": [308 {309 "components": [310 { "internalType": "string", "name": "key", "type": "string" },311 { "internalType": "bytes", "name": "value", "type": "bytes" }312 ],313 "internalType": "struct Property[]",314 "name": "",315 "type": "tuple[]"316 }317 ],318 "stateMutability": "view",319 "type": "function"320 },321 {322 "inputs": [{ "internalType": "string", "name": "key", "type": "string" }],323 "name": "collectionProperty",324 "outputs": [{ "internalType": "bytes", "name": "", "type": "bytes" }],325 "stateMutability": "view",326 "type": "function"327 },328 {329 "inputs": [],330 "name": "collectionSponsor",331 "outputs": [332 {333 "components": [334 { "internalType": "address", "name": "eth", "type": "address" },335 { "internalType": "uint256", "name": "sub", "type": "uint256" }336 ],337 "internalType": "struct CrossAccount",338 "name": "",339 "type": "tuple"340 }341 ],342 "stateMutability": "view",343 "type": "function"344 },345 {346 "inputs": [],347 "name": "confirmCollectionSponsorship",348 "outputs": [],349 "stateMutability": "nonpayable",350 "type": "function"351 },352 {353 "inputs": [],354 "name": "contractAddress",355 "outputs": [{ "internalType": "address", "name": "", "type": "address" }],356 "stateMutability": "view",357 "type": "function"358 },359 {360 "inputs": [361 { "internalType": "uint256", "name": "tokenId", "type": "uint256" }362 ],363 "name": "crossOwnerOf",364 "outputs": [365 {366 "components": [367 { "internalType": "address", "name": "eth", "type": "address" },368 { "internalType": "uint256", "name": "sub", "type": "uint256" }369 ],370 "internalType": "struct CrossAccount",371 "name": "",372 "type": "tuple"373 }374 ],375 "stateMutability": "view",376 "type": "function"377 },378 {379 "inputs": [380 { "internalType": "string[]", "name": "keys", "type": "string[]" }381 ],382 "name": "deleteCollectionProperties",383 "outputs": [],384 "stateMutability": "nonpayable",385 "type": "function"386 },387 {388 "inputs": [389 { "internalType": "uint256", "name": "tokenId", "type": "uint256" },390 { "internalType": "string[]", "name": "keys", "type": "string[]" }391 ],392 "name": "deleteProperties",393 "outputs": [],394 "stateMutability": "nonpayable",395 "type": "function"396 },397 {398 "inputs": [],399 "name": "description",400 "outputs": [{ "internalType": "string", "name": "", "type": "string" }],401 "stateMutability": "view",402 "type": "function"403 },404 {405 "inputs": [],406 "name": "finishMinting",407 "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }],408 "stateMutability": "nonpayable",409 "type": "function"410 },411 {412 "inputs": [413 { "internalType": "uint256", "name": "tokenId", "type": "uint256" }414 ],415 "name": "getApproved",416 "outputs": [{ "internalType": "address", "name": "", "type": "address" }],417 "stateMutability": "view",418 "type": "function"419 },420 {421 "inputs": [],422 "name": "hasCollectionPendingSponsor",423 "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }],424 "stateMutability": "view",425 "type": "function"426 },427 {428 "inputs": [429 { "internalType": "address", "name": "owner", "type": "address" },430 { "internalType": "address", "name": "operator", "type": "address" }431 ],432 "name": "isApprovedForAll",433 "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }],434 "stateMutability": "view",435 "type": "function"436 },437 {438 "inputs": [439 {440 "components": [441 { "internalType": "address", "name": "eth", "type": "address" },442 { "internalType": "uint256", "name": "sub", "type": "uint256" }443 ],444 "internalType": "struct CrossAccount",445 "name": "user",446 "type": "tuple"447 }448 ],449 "name": "isOwnerOrAdminCross",450 "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }],451 "stateMutability": "view",452 "type": "function"453 },454 {455 "inputs": [{ "internalType": "address", "name": "to", "type": "address" }],456 "name": "mint",457 "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }],458 "stateMutability": "nonpayable",459 "type": "function"460 },461 {462 "inputs": [463 {464 "components": [465 { "internalType": "address", "name": "eth", "type": "address" },466 { "internalType": "uint256", "name": "sub", "type": "uint256" }467 ],468 "internalType": "struct CrossAccount",469 "name": "to",470 "type": "tuple"471 },472 {473 "components": [474 { "internalType": "string", "name": "key", "type": "string" },475 { "internalType": "bytes", "name": "value", "type": "bytes" }476 ],477 "internalType": "struct Property[]",478 "name": "properties",479 "type": "tuple[]"480 }481 ],482 "name": "mintCross",483 "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }],484 "stateMutability": "nonpayable",485 "type": "function"486 },487 {488 "inputs": [489 { "internalType": "address", "name": "to", "type": "address" },490 { "internalType": "string", "name": "tokenUri", "type": "string" }491 ],492 "name": "mintWithTokenURI",493 "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }],494 "stateMutability": "nonpayable",495 "type": "function"496 },497 {498 "inputs": [],499 "name": "mintingFinished",500 "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }],501 "stateMutability": "view",502 "type": "function"503 },504 {505 "inputs": [],506 "name": "name",507 "outputs": [{ "internalType": "string", "name": "", "type": "string" }],508 "stateMutability": "view",509 "type": "function"510 },511 {512 "inputs": [],513 "name": "nextTokenId",514 "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }],515 "stateMutability": "view",516 "type": "function"517 },518 {519 "inputs": [520 { "internalType": "uint256", "name": "tokenId", "type": "uint256" }521 ],522 "name": "ownerOf",523 "outputs": [{ "internalType": "address", "name": "", "type": "address" }],524 "stateMutability": "view",525 "type": "function"526 },527 {528 "inputs": [529 { "internalType": "uint256", "name": "tokenId", "type": "uint256" },530 { "internalType": "string[]", "name": "keys", "type": "string[]" }531 ],532 "name": "properties",533 "outputs": [534 {535 "components": [536 { "internalType": "string", "name": "key", "type": "string" },537 { "internalType": "bytes", "name": "value", "type": "bytes" }538 ],539 "internalType": "struct Property[]",540 "name": "",541 "type": "tuple[]"542 }543 ],544 "stateMutability": "view",545 "type": "function"546 },547 {548 "inputs": [549 { "internalType": "uint256", "name": "tokenId", "type": "uint256" },550 { "internalType": "string", "name": "key", "type": "string" }551 ],552 "name": "property",553 "outputs": [{ "internalType": "bytes", "name": "", "type": "bytes" }],554 "stateMutability": "view",555 "type": "function"556 },557 {558 "inputs": [559 {560 "components": [561 { "internalType": "address", "name": "eth", "type": "address" },562 { "internalType": "uint256", "name": "sub", "type": "uint256" }563 ],564 "internalType": "struct CrossAccount",565 "name": "admin",566 "type": "tuple"567 }568 ],569 "name": "removeCollectionAdminCross",570 "outputs": [],571 "stateMutability": "nonpayable",572 "type": "function"573 },574 {575 "inputs": [],576 "name": "removeCollectionSponsor",577 "outputs": [],578 "stateMutability": "nonpayable",579 "type": "function"580 },581 {582 "inputs": [583 {584 "components": [585 { "internalType": "address", "name": "eth", "type": "address" },586 { "internalType": "uint256", "name": "sub", "type": "uint256" }587 ],588 "internalType": "struct CrossAccount",589 "name": "user",590 "type": "tuple"591 }592 ],593 "name": "removeFromCollectionAllowListCross",594 "outputs": [],595 "stateMutability": "nonpayable",596 "type": "function"597 },598 {599 "inputs": [600 { "internalType": "address", "name": "from", "type": "address" },601 { "internalType": "address", "name": "to", "type": "address" },602 { "internalType": "uint256", "name": "tokenId", "type": "uint256" }603 ],604 "name": "safeTransferFrom",605 "outputs": [],606 "stateMutability": "nonpayable",607 "type": "function"608 },609 {610 "inputs": [611 { "internalType": "address", "name": "from", "type": "address" },612 { "internalType": "address", "name": "to", "type": "address" },613 { "internalType": "uint256", "name": "tokenId", "type": "uint256" },614 { "internalType": "bytes", "name": "data", "type": "bytes" }615 ],616 "name": "safeTransferFromWithData",617 "outputs": [],618 "stateMutability": "nonpayable",619 "type": "function"620 },621 {622 "inputs": [623 { "internalType": "address", "name": "operator", "type": "address" },624 { "internalType": "bool", "name": "approved", "type": "bool" }625 ],626 "name": "setApprovalForAll",627 "outputs": [],628 "stateMutability": "nonpayable",629 "type": "function"630 },631 {632 "inputs": [{ "internalType": "uint8", "name": "mode", "type": "uint8" }],633 "name": "setCollectionAccess",634 "outputs": [],635 "stateMutability": "nonpayable",636 "type": "function"637 },638 {639 "inputs": [640 {641 "components": [642 {643 "internalType": "enum CollectionLimitField",644 "name": "field",645 "type": "uint8"646 },647 { "internalType": "bool", "name": "status", "type": "bool" },648 { "internalType": "uint256", "name": "value", "type": "uint256" }649 ],650 "internalType": "struct CollectionLimit",651 "name": "limit",652 "type": "tuple"653 }654 ],655 "name": "setCollectionLimit",656 "outputs": [],657 "stateMutability": "nonpayable",658 "type": "function"659 },660 {661 "inputs": [{ "internalType": "bool", "name": "mode", "type": "bool" }],662 "name": "setCollectionMintMode",663 "outputs": [],664 "stateMutability": "nonpayable",665 "type": "function"666 },667 {668 "inputs": [{ "internalType": "bool", "name": "enable", "type": "bool" }],669 "name": "setCollectionNesting",670 "outputs": [],671 "stateMutability": "nonpayable",672 "type": "function"673 },674 {675 "inputs": [676 { "internalType": "bool", "name": "enable", "type": "bool" },677 {678 "internalType": "address[]",679 "name": "collections",680 "type": "address[]"681 }682 ],683 "name": "setCollectionNesting",684 "outputs": [],685 "stateMutability": "nonpayable",686 "type": "function"687 },688 {689 "inputs": [690 {691 "components": [692 { "internalType": "string", "name": "key", "type": "string" },693 { "internalType": "bytes", "name": "value", "type": "bytes" }694 ],695 "internalType": "struct Property[]",696 "name": "properties",697 "type": "tuple[]"698 }699 ],700 "name": "setCollectionProperties",701 "outputs": [],702 "stateMutability": "nonpayable",703 "type": "function"704 },705 {706 "inputs": [707 {708 "components": [709 { "internalType": "address", "name": "eth", "type": "address" },710 { "internalType": "uint256", "name": "sub", "type": "uint256" }711 ],712 "internalType": "struct CrossAccount",713 "name": "sponsor",714 "type": "tuple"715 }716 ],717 "name": "setCollectionSponsorCross",718 "outputs": [],719 "stateMutability": "nonpayable",720 "type": "function"721 },722 {723 "inputs": [724 { "internalType": "uint256", "name": "tokenId", "type": "uint256" },725 {726 "components": [727 { "internalType": "string", "name": "key", "type": "string" },728 { "internalType": "bytes", "name": "value", "type": "bytes" }729 ],730 "internalType": "struct Property[]",731 "name": "properties",732 "type": "tuple[]"733 }734 ],735 "name": "setProperties",736 "outputs": [],737 "stateMutability": "nonpayable",738 "type": "function"739 },740 {741 "inputs": [742 {743 "components": [744 { "internalType": "string", "name": "key", "type": "string" },745 {746 "components": [747 {748 "internalType": "enum TokenPermissionField",749 "name": "code",750 "type": "uint8"751 },752 { "internalType": "bool", "name": "value", "type": "bool" }753 ],754 "internalType": "struct PropertyPermission[]",755 "name": "permissions",756 "type": "tuple[]"757 }758 ],759 "internalType": "struct TokenPropertyPermission[]",760 "name": "permissions",761 "type": "tuple[]"762 }763 ],764 "name": "setTokenPropertyPermissions",765 "outputs": [],766 "stateMutability": "nonpayable",767 "type": "function"768 },769 {770 "inputs": [771 { "internalType": "bytes4", "name": "interfaceID", "type": "bytes4" }772 ],773 "name": "supportsInterface",774 "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }],775 "stateMutability": "view",776 "type": "function"777 },778 {779 "inputs": [],780 "name": "symbol",781 "outputs": [{ "internalType": "string", "name": "", "type": "string" }],782 "stateMutability": "view",783 "type": "function"784 },785 {786 "inputs": [787 { "internalType": "uint256", "name": "index", "type": "uint256" }788 ],789 "name": "tokenByIndex",790 "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }],791 "stateMutability": "view",792 "type": "function"793 },794 {795 "inputs": [796 { "internalType": "uint256", "name": "token", "type": "uint256" }797 ],798 "name": "tokenContractAddress",799 "outputs": [{ "internalType": "address", "name": "", "type": "address" }],800 "stateMutability": "view",801 "type": "function"802 },803 {804 "inputs": [805 { "internalType": "address", "name": "owner", "type": "address" },806 { "internalType": "uint256", "name": "index", "type": "uint256" }807 ],808 "name": "tokenOfOwnerByIndex",809 "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }],810 "stateMutability": "view",811 "type": "function"812 },813 {814 "inputs": [],815 "name": "tokenPropertyPermissions",816 "outputs": [817 {818 "components": [819 { "internalType": "string", "name": "key", "type": "string" },820 {821 "components": [822 {823 "internalType": "enum TokenPermissionField",824 "name": "code",825 "type": "uint8"826 },827 { "internalType": "bool", "name": "value", "type": "bool" }828 ],829 "internalType": "struct PropertyPermission[]",830 "name": "permissions",831 "type": "tuple[]"832 }833 ],834 "internalType": "struct TokenPropertyPermission[]",835 "name": "",836 "type": "tuple[]"837 }838 ],839 "stateMutability": "view",840 "type": "function"841 },842 {843 "inputs": [844 { "internalType": "uint256", "name": "tokenId", "type": "uint256" }845 ],846 "name": "tokenURI",847 "outputs": [{ "internalType": "string", "name": "", "type": "string" }],848 "stateMutability": "view",849 "type": "function"850 },851 {852 "inputs": [],853 "name": "totalSupply",854 "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }],855 "stateMutability": "view",856 "type": "function"857 },858 {859 "inputs": [860 { "internalType": "address", "name": "to", "type": "address" },861 { "internalType": "uint256", "name": "tokenId", "type": "uint256" }862 ],863 "name": "transfer",864 "outputs": [],865 "stateMutability": "nonpayable",866 "type": "function"867 },868 {869 "inputs": [870 {871 "components": [872 { "internalType": "address", "name": "eth", "type": "address" },873 { "internalType": "uint256", "name": "sub", "type": "uint256" }874 ],875 "internalType": "struct CrossAccount",876 "name": "to",877 "type": "tuple"878 },879 { "internalType": "uint256", "name": "tokenId", "type": "uint256" }880 ],881 "name": "transferCross",882 "outputs": [],883 "stateMutability": "nonpayable",884 "type": "function"885 },886 {887 "inputs": [888 { "internalType": "address", "name": "from", "type": "address" },889 { "internalType": "address", "name": "to", "type": "address" },890 { "internalType": "uint256", "name": "tokenId", "type": "uint256" }891 ],892 "name": "transferFrom",893 "outputs": [],894 "stateMutability": "nonpayable",895 "type": "function"896 },897 {898 "inputs": [899 {900 "components": [901 { "internalType": "address", "name": "eth", "type": "address" },902 { "internalType": "uint256", "name": "sub", "type": "uint256" }903 ],904 "internalType": "struct CrossAccount",905 "name": "from",906 "type": "tuple"907 },908 {909 "components": [910 { "internalType": "address", "name": "eth", "type": "address" },911 { "internalType": "uint256", "name": "sub", "type": "uint256" }912 ],913 "internalType": "struct CrossAccount",914 "name": "to",915 "type": "tuple"916 },917 { "internalType": "uint256", "name": "tokenId", "type": "uint256" }918 ],919 "name": "transferFromCross",920 "outputs": [],921 "stateMutability": "nonpayable",922 "type": "function"923 },924 {925 "inputs": [],926 "name": "uniqueCollectionType",927 "outputs": [{ "internalType": "string", "name": "", "type": "string" }],928 "stateMutability": "view",929 "type": "function"930 }931]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,
}