difftreelog
misc: change uint256 to U256
in: master
10 files changed
crates/evm-coder/src/lib.rsdiffbeforeafterboth--- a/crates/evm-coder/src/lib.rs
+++ b/crates/evm-coder/src/lib.rs
@@ -132,7 +132,6 @@
use primitive_types::{U256, H160, H256};
pub type address = H160;
- pub type uint256 = U256;
pub type bytes4 = [u8; 4];
pub type topic = H256;
pallets/common/src/eth.rsdiffbeforeafterboth--- a/pallets/common/src/eth.rs
+++ b/pallets/common/src/eth.rs
@@ -18,12 +18,9 @@
use alloc::format;
use sp_std::{vec, vec::Vec};
-use evm_coder::{
- AbiCoder,
- types::{uint256, address},
-};
+use evm_coder::{AbiCoder, types::address};
pub use pallet_evm::{Config, account::CrossAccountId};
-use sp_core::H160;
+use sp_core::{H160, U256};
use up_data_structs::CollectionId;
// 0x17c4e6453Cc49AAAaEACA894e6D9683e00000001 - collection 1
@@ -55,8 +52,8 @@
address[0..16] == ETH_COLLECTION_PREFIX
}
-/// Convert `uint256` to `CrossAccountId`.
-pub fn convert_uint256_to_cross_account<T: Config>(from: uint256) -> T::CrossAccountId
+/// Convert `U256` to `CrossAccountId`.
+pub fn convert_uint256_to_cross_account<T: Config>(from: U256) -> T::CrossAccountId
where
T::AccountId: From<[u8; 32]>,
{
@@ -70,7 +67,7 @@
#[derive(Debug, Default, AbiCoder)]
pub struct CrossAddress {
pub(crate) eth: address,
- pub(crate) sub: uint256,
+ pub(crate) sub: U256,
}
impl CrossAddress {
@@ -97,7 +94,7 @@
{
Self {
eth: Default::default(),
- sub: uint256::from_big_endian(account_id.as_ref()),
+ sub: U256::from_big_endian(account_id.as_ref()),
}
}
/// Converts [`CrossAddress`] to `CrossAccountId`.
@@ -187,7 +184,7 @@
#[derive(Debug, Default, AbiCoder)]
pub struct CollectionLimit {
field: CollectionLimitField,
- value: Option<uint256>,
+ value: Option<U256>,
}
impl CollectionLimit {
@@ -393,12 +390,12 @@
#[derive(Debug, Default, AbiCoder)]
pub struct CollectionNesting {
token_owner: bool,
- ids: Vec<uint256>,
+ ids: Vec<U256>,
}
impl CollectionNesting {
/// Create [`CollectionNesting`].
- pub fn new(token_owner: bool, ids: Vec<uint256>) -> Self {
+ pub fn new(token_owner: bool, ids: Vec<U256>) -> Self {
Self { token_owner, ids }
}
}
pallets/evm-contract-helpers/src/eth.rsdiffbeforeafterboth--- a/pallets/evm-contract-helpers/src/eth.rs
+++ b/pallets/evm-contract-helpers/src/eth.rs
@@ -261,7 +261,7 @@
&mut self,
caller: caller,
contract_address: address,
- fee_limit: uint256,
+ fee_limit: U256,
) -> Result<()> {
self.recorder().consume_sload()?;
self.recorder().consume_sstore()?;
@@ -276,7 +276,7 @@
/// @param contractAddress Contract to get sponsoring fee limit of
/// @return uint256 Maximum amount of fee that could be spent by single
/// transaction
- fn sponsoring_fee_limit(&self, contract_address: address) -> Result<uint256> {
+ fn sponsoring_fee_limit(&self, contract_address: address) -> Result<U256> {
self.recorder().consume_sload()?;
Ok(get_sponsoring_fee_limit::<T>(contract_address))
@@ -441,7 +441,7 @@
}
}
-fn get_sponsoring_fee_limit<T: Config>(contract_address: address) -> uint256 {
+fn get_sponsoring_fee_limit<T: Config>(contract_address: address) -> U256 {
<SponsoringFeeLimit<T>>::get(contract_address)
.get(&0xffffffff)
.cloned()
pallets/fungible/src/erc.rsdiffbeforeafterboth--- a/pallets/fungible/src/erc.rs
+++ b/pallets/fungible/src/erc.rs
@@ -32,7 +32,7 @@
use pallet_evm::{account::CrossAccountId, PrecompileHandle};
use pallet_evm_coder_substrate::{call, dispatch_to_evm};
use pallet_structure::{SelfWeightOf as StructureWeight, weights::WeightInfo as _};
-use sp_core::Get;
+use sp_core::{U256, Get};
use crate::{
Allowance, Balance, Config, FungibleHandle, Pallet, SelfWeightOf, TotalSupply,
@@ -46,14 +46,14 @@
from: address,
#[indexed]
to: address,
- value: uint256,
+ value: U256,
},
Approval {
#[indexed]
owner: address,
#[indexed]
spender: address,
- value: uint256,
+ value: U256,
},
}
@@ -67,7 +67,7 @@
fn symbol(&self) -> Result<string> {
Ok(string::from_utf8_lossy(&self.token_prefix).into())
}
- fn total_supply(&self) -> Result<uint256> {
+ fn total_supply(&self) -> Result<U256> {
self.consume_store_reads(1)?;
Ok(<TotalSupply<T>>::get(self.id).into())
}
@@ -79,14 +79,14 @@
unreachable!()
})
}
- fn balance_of(&self, owner: address) -> Result<uint256> {
+ fn balance_of(&self, owner: address) -> Result<U256> {
self.consume_store_reads(1)?;
let owner = T::CrossAccountId::from_eth(owner);
let balance = <Balance<T>>::get((self.id, owner));
Ok(balance.into())
}
#[weight(<SelfWeightOf<T>>::transfer())]
- fn transfer(&mut self, caller: caller, to: address, amount: uint256) -> Result<bool> {
+ fn transfer(&mut self, caller: caller, to: address, amount: U256) -> Result<bool> {
let caller = T::CrossAccountId::from_eth(caller);
let to = T::CrossAccountId::from_eth(to);
let amount = amount.try_into().map_err(|_| "amount overflow")?;
@@ -104,7 +104,7 @@
caller: caller,
from: address,
to: address,
- amount: uint256,
+ amount: U256,
) -> Result<bool> {
let caller = T::CrossAccountId::from_eth(caller);
let from = T::CrossAccountId::from_eth(from);
@@ -119,7 +119,7 @@
Ok(true)
}
#[weight(<SelfWeightOf<T>>::approve())]
- fn approve(&mut self, caller: caller, spender: address, amount: uint256) -> Result<bool> {
+ fn approve(&mut self, caller: caller, spender: address, amount: U256) -> Result<bool> {
let caller = T::CrossAccountId::from_eth(caller);
let spender = T::CrossAccountId::from_eth(spender);
let amount = amount.try_into().map_err(|_| "amount overflow")?;
@@ -128,7 +128,7 @@
.map_err(dispatch_to_evm::<T>)?;
Ok(true)
}
- fn allowance(&self, owner: address, spender: address) -> Result<uint256> {
+ fn allowance(&self, owner: address, spender: address) -> Result<U256> {
self.consume_store_reads(1)?;
let owner = T::CrossAccountId::from_eth(owner);
let spender = T::CrossAccountId::from_eth(spender);
@@ -148,7 +148,7 @@
/// @param to account that will receive minted tokens
/// @param amount amount of tokens to mint
#[weight(<SelfWeightOf<T>>::create_item())]
- fn mint(&mut self, caller: caller, to: address, amount: uint256) -> Result<bool> {
+ fn mint(&mut self, caller: caller, to: address, amount: U256) -> Result<bool> {
let caller = T::CrossAccountId::from_eth(caller);
let to = T::CrossAccountId::from_eth(to);
let amount = amount.try_into().map_err(|_| "amount overflow")?;
@@ -178,7 +178,7 @@
&mut self,
caller: caller,
to: pallet_common::eth::CrossAddress,
- amount: uint256,
+ amount: U256,
) -> Result<bool> {
let caller = T::CrossAccountId::from_eth(caller);
let to = to.into_sub_cross_account::<T>()?;
@@ -196,7 +196,7 @@
&mut self,
caller: caller,
spender: pallet_common::eth::CrossAddress,
- amount: uint256,
+ amount: U256,
) -> Result<bool> {
let caller = T::CrossAccountId::from_eth(caller);
let spender = spender.into_sub_cross_account::<T>()?;
@@ -214,7 +214,7 @@
/// @param amount The amount that will be burnt.
#[solidity(hide)]
#[weight(<SelfWeightOf<T>>::burn_from())]
- fn burn_from(&mut self, caller: caller, from: address, amount: uint256) -> Result<bool> {
+ fn burn_from(&mut self, caller: caller, from: address, amount: U256) -> Result<bool> {
let caller = T::CrossAccountId::from_eth(caller);
let from = T::CrossAccountId::from_eth(from);
let amount = amount.try_into().map_err(|_| "amount overflow")?;
@@ -237,7 +237,7 @@
&mut self,
caller: caller,
from: pallet_common::eth::CrossAddress,
- amount: uint256,
+ amount: U256,
) -> Result<bool> {
let caller = T::CrossAccountId::from_eth(caller);
let from = from.into_sub_cross_account::<T>()?;
@@ -254,7 +254,7 @@
/// Mint tokens for multiple accounts.
/// @param amounts array of pairs of account address and amount
#[weight(<SelfWeightOf<T>>::create_multiple_items_ex(amounts.len() as u32))]
- fn mint_bulk(&mut self, caller: caller, amounts: Vec<(address, uint256)>) -> Result<bool> {
+ fn mint_bulk(&mut self, caller: caller, amounts: Vec<(address, U256)>) -> Result<bool> {
let caller = T::CrossAccountId::from_eth(caller);
let budget = self
.recorder
@@ -279,7 +279,7 @@
&mut self,
caller: caller,
to: pallet_common::eth::CrossAddress,
- amount: uint256,
+ amount: U256,
) -> Result<bool> {
let caller = T::CrossAccountId::from_eth(caller);
let to = to.into_sub_cross_account::<T>()?;
@@ -298,7 +298,7 @@
caller: caller,
from: pallet_common::eth::CrossAddress,
to: pallet_common::eth::CrossAddress,
- amount: uint256,
+ amount: U256,
) -> Result<bool> {
let caller = T::CrossAccountId::from_eth(caller);
let from = from.into_sub_cross_account::<T>()?;
pallets/nonfungible/src/erc.rsdiffbeforeafterboth--- a/pallets/nonfungible/src/erc.rs
+++ b/pallets/nonfungible/src/erc.rs
@@ -43,7 +43,7 @@
use pallet_evm::{account::CrossAccountId, PrecompileHandle};
use pallet_evm_coder_substrate::call;
use pallet_structure::{SelfWeightOf as StructureWeight, weights::WeightInfo as _};
-use sp_core::Get;
+use sp_core::{U256, Get};
use crate::{
AccountBalance, Config, CreateItemData, NonfungibleHandle, Pallet, TokenData, TokensMinted,
@@ -122,7 +122,7 @@
fn set_property(
&mut self,
caller: caller,
- token_id: uint256,
+ token_id: U256,
key: string,
value: bytes,
) -> Result<()> {
@@ -155,7 +155,7 @@
fn set_properties(
&mut self,
caller: caller,
- token_id: uint256,
+ token_id: U256,
properties: Vec<eth::Property>,
) -> Result<()> {
let caller = T::CrossAccountId::from_eth(caller);
@@ -187,7 +187,7 @@
/// @param key Property key.
#[solidity(hide)]
#[weight(<SelfWeightOf<T>>::delete_token_properties(1))]
- fn delete_property(&mut self, token_id: uint256, caller: caller, key: string) -> Result<()> {
+ fn delete_property(&mut self, token_id: U256, caller: caller, key: string) -> Result<()> {
let caller = T::CrossAccountId::from_eth(caller);
let token_id: u32 = token_id.try_into().map_err(|_| "token id overflow")?;
let key = <Vec<u8>>::from(key)
@@ -209,7 +209,7 @@
#[weight(<SelfWeightOf<T>>::delete_token_properties(keys.len() as u32))]
fn delete_properties(
&mut self,
- token_id: uint256,
+ token_id: U256,
caller: caller,
keys: Vec<string>,
) -> Result<()> {
@@ -239,7 +239,7 @@
/// @param tokenId ID of the token.
/// @param key Property key.
/// @return Property value bytes
- fn property(&self, token_id: uint256, key: string) -> Result<bytes> {
+ fn property(&self, token_id: U256, key: string) -> Result<bytes> {
let token_id: u32 = token_id.try_into().map_err(|_| "token id overflow")?;
let key = <Vec<u8>>::from(key)
.try_into()
@@ -265,7 +265,7 @@
#[indexed]
to: address,
#[indexed]
- token_id: uint256,
+ token_id: U256,
},
/// @dev This emits when the approved address for an NFT is changed or
/// reaffirmed. The zero address indicates there is no approved address.
@@ -277,7 +277,7 @@
#[indexed]
approved: address,
#[indexed]
- token_id: uint256,
+ token_id: U256,
},
/// @dev This emits when an operator is enabled or disabled for an owner.
/// The operator can manage all NFTs of the owner.
@@ -322,7 +322,7 @@
///
/// @return token's const_metadata
#[solidity(rename_selector = "tokenURI")]
- fn token_uri(&self, token_id: uint256) -> Result<string> {
+ fn token_uri(&self, token_id: U256) -> Result<string> {
let token_id_u32: u32 = token_id.try_into().map_err(|_| "token id overflow")?;
match get_token_property(self, token_id_u32, &key::url()).as_deref() {
@@ -368,12 +368,12 @@
/// @param index A counter less than `totalSupply()`
/// @return The token identifier for the `index`th NFT,
/// (sort order not specified)
- fn token_by_index(&self, index: uint256) -> Result<uint256> {
+ fn token_by_index(&self, index: U256) -> Result<U256> {
Ok(index)
}
/// @dev Not implemented
- fn token_of_owner_by_index(&self, _owner: address, _index: uint256) -> Result<uint256> {
+ fn token_of_owner_by_index(&self, _owner: address, _index: U256) -> Result<U256> {
// TODO: Not implemetable
Err("not implemented".into())
}
@@ -381,7 +381,7 @@
/// @notice Count NFTs tracked by this contract
/// @return A count of valid NFTs tracked by this contract, where each one of
/// them has an assigned and queryable owner not equal to the zero address
- fn total_supply(&self) -> Result<uint256> {
+ fn total_supply(&self) -> Result<U256> {
self.consume_store_reads(1)?;
Ok(<Pallet<T>>::total_supply(self).into())
}
@@ -396,7 +396,7 @@
/// function throws for queries about the zero address.
/// @param owner An address for whom to query the balance
/// @return The number of NFTs owned by `owner`, possibly zero
- fn balance_of(&self, owner: address) -> Result<uint256> {
+ fn balance_of(&self, owner: address) -> Result<U256> {
self.consume_store_reads(1)?;
let owner = T::CrossAccountId::from_eth(owner);
let balance = <AccountBalance<T>>::get((self.id, owner));
@@ -407,7 +407,7 @@
/// about them do throw.
/// @param tokenId The identifier for an NFT
/// @return The address of the owner of the NFT
- fn owner_of(&self, token_id: uint256) -> Result<address> {
+ fn owner_of(&self, token_id: U256) -> Result<address> {
self.consume_store_reads(1)?;
let token: TokenId = token_id.try_into()?;
Ok(*<TokenData<T>>::get((self.id, token))
@@ -421,19 +421,14 @@
&mut self,
_from: address,
_to: address,
- _token_id: uint256,
+ _token_id: U256,
_data: bytes,
) -> Result<()> {
// TODO: Not implemetable
Err("not implemented".into())
}
/// @dev Not implemented
- fn safe_transfer_from(
- &mut self,
- _from: address,
- _to: address,
- _token_id: uint256,
- ) -> Result<()> {
+ fn safe_transfer_from(&mut self, _from: address, _to: address, _token_id: U256) -> Result<()> {
// TODO: Not implemetable
Err("not implemented".into())
}
@@ -453,7 +448,7 @@
caller: caller,
from: address,
to: address,
- token_id: uint256,
+ token_id: U256,
) -> Result<()> {
let caller = T::CrossAccountId::from_eth(caller);
let from = T::CrossAccountId::from_eth(from);
@@ -475,7 +470,7 @@
/// @param approved The new approved NFT controller
/// @param tokenId The NFT to approve
#[weight(<SelfWeightOf<T>>::approve())]
- fn approve(&mut self, caller: caller, approved: address, token_id: uint256) -> Result<()> {
+ fn approve(&mut self, caller: caller, approved: address, token_id: U256) -> Result<()> {
let caller = T::CrossAccountId::from_eth(caller);
let approved = T::CrossAccountId::from_eth(approved);
let token = token_id.try_into()?;
@@ -505,7 +500,7 @@
}
/// @dev Not implemented
- fn get_approved(&self, _token_id: uint256) -> Result<address> {
+ fn get_approved(&self, _token_id: U256) -> Result<address> {
// TODO: Not implemetable
Err("not implemented".into())
}
@@ -528,7 +523,7 @@
/// operator of the current owner.
/// @param tokenId The NFT to approve
#[weight(<SelfWeightOf<T>>::burn_item())]
- fn burn(&mut self, caller: caller, token_id: uint256) -> Result<()> {
+ fn burn(&mut self, caller: caller, token_id: U256) -> Result<()> {
let caller = T::CrossAccountId::from_eth(caller);
let token = token_id.try_into()?;
@@ -544,8 +539,8 @@
/// @param to The new owner
/// @return uint256 The id of the newly minted token
#[weight(<SelfWeightOf<T>>::create_item())]
- fn mint(&mut self, caller: caller, to: address) -> Result<uint256> {
- let token_id: uint256 = <TokensMinted<T>>::get(self.id)
+ fn mint(&mut self, caller: caller, to: address) -> Result<U256> {
+ let token_id: U256 = <TokensMinted<T>>::get(self.id)
.checked_add(1)
.ok_or("item id overflow")?
.into();
@@ -560,7 +555,7 @@
/// @param tokenId ID of the minted NFT
#[solidity(hide, rename_selector = "mint")]
#[weight(<SelfWeightOf<T>>::create_item())]
- fn mint_check_id(&mut self, caller: caller, to: address, token_id: uint256) -> Result<bool> {
+ fn mint_check_id(&mut self, caller: caller, to: address, token_id: U256) -> Result<bool> {
let caller = T::CrossAccountId::from_eth(caller);
let to = T::CrossAccountId::from_eth(to);
let token_id: u32 = token_id.try_into()?;
@@ -601,8 +596,8 @@
caller: caller,
to: address,
token_uri: string,
- ) -> Result<uint256> {
- let token_id: uint256 = <TokensMinted<T>>::get(self.id)
+ ) -> Result<U256> {
+ let token_id: U256 = <TokensMinted<T>>::get(self.id)
.checked_add(1)
.ok_or("item id overflow")?
.into();
@@ -622,7 +617,7 @@
&mut self,
caller: caller,
to: address,
- token_id: uint256,
+ token_id: U256,
token_uri: string,
) -> Result<bool> {
let key = key::url();
@@ -730,7 +725,7 @@
/// Returns the owner (in cross format) of the token.
///
/// @param tokenId Id for the token.
- fn cross_owner_of(&self, token_id: uint256) -> Result<eth::CrossAddress> {
+ fn cross_owner_of(&self, token_id: U256) -> Result<eth::CrossAddress> {
Self::token_owner(&self, token_id.try_into()?)
.map(|o| eth::CrossAddress::from_sub_cross_account::<T>(&o))
.ok_or(Error::Revert("key too large".into()))
@@ -741,7 +736,7 @@
/// @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<eth::Property>> {
+ fn properties(&self, token_id: U256, keys: Vec<string>) -> Result<Vec<eth::Property>> {
let keys = keys
.into_iter()
.map(|key| {
@@ -772,7 +767,7 @@
&mut self,
caller: caller,
approved: eth::CrossAddress,
- token_id: uint256,
+ token_id: U256,
) -> Result<()> {
let caller = T::CrossAccountId::from_eth(caller);
let approved = approved.into_sub_cross_account::<T>()?;
@@ -789,7 +784,7 @@
/// @param to The new owner
/// @param tokenId The NFT to transfer
#[weight(<SelfWeightOf<T>>::transfer())]
- fn transfer(&mut self, caller: caller, to: address, token_id: uint256) -> Result<()> {
+ fn transfer(&mut self, caller: caller, to: address, token_id: U256) -> Result<()> {
let caller = T::CrossAccountId::from_eth(caller);
let to = T::CrossAccountId::from_eth(to);
let token = token_id.try_into()?;
@@ -811,7 +806,7 @@
&mut self,
caller: caller,
to: eth::CrossAddress,
- token_id: uint256,
+ token_id: U256,
) -> Result<()> {
let caller = T::CrossAccountId::from_eth(caller);
let to = to.into_sub_cross_account::<T>()?;
@@ -836,7 +831,7 @@
caller: caller,
from: eth::CrossAddress,
to: eth::CrossAddress,
- token_id: uint256,
+ token_id: U256,
) -> Result<()> {
let caller = T::CrossAccountId::from_eth(caller);
let from = from.into_sub_cross_account::<T>()?;
@@ -858,7 +853,7 @@
/// @param tokenId The NFT to transfer
#[solidity(hide)]
#[weight(<SelfWeightOf<T>>::burn_from())]
- fn burn_from(&mut self, caller: caller, from: address, token_id: uint256) -> Result<()> {
+ fn burn_from(&mut self, caller: caller, from: address, token_id: U256) -> Result<()> {
let caller = T::CrossAccountId::from_eth(caller);
let from = T::CrossAccountId::from_eth(from);
let token = token_id.try_into()?;
@@ -882,7 +877,7 @@
&mut self,
caller: caller,
from: eth::CrossAddress,
- token_id: uint256,
+ token_id: U256,
) -> Result<()> {
let caller = T::CrossAccountId::from_eth(caller);
let from = from.into_sub_cross_account::<T>()?;
@@ -897,7 +892,7 @@
}
/// @notice Returns next free NFT ID.
- fn next_token_id(&self) -> Result<uint256> {
+ fn next_token_id(&self) -> Result<U256> {
self.consume_store_reads(1)?;
Ok(<TokensMinted<T>>::get(self.id)
.checked_add(1)
@@ -912,7 +907,7 @@
/// @param tokenIds IDs of the minted NFTs
#[solidity(hide)]
#[weight(<SelfWeightOf<T>>::create_multiple_items(token_ids.len() as u32))]
- fn mint_bulk(&mut self, caller: caller, to: address, token_ids: Vec<uint256>) -> Result<bool> {
+ fn mint_bulk(&mut self, caller: caller, to: address, token_ids: Vec<U256>) -> Result<bool> {
let caller = T::CrossAccountId::from_eth(caller);
let to = T::CrossAccountId::from_eth(to);
let mut expected_index = <TokensMinted<T>>::get(self.id)
@@ -953,7 +948,7 @@
&mut self,
caller: caller,
to: address,
- tokens: Vec<(uint256, string)>,
+ tokens: Vec<(U256, string)>,
) -> Result<bool> {
let key = key::url();
let caller = T::CrossAccountId::from_eth(caller);
@@ -1005,7 +1000,7 @@
caller: caller,
to: eth::CrossAddress,
properties: Vec<eth::Property>,
- ) -> Result<uint256> {
+ ) -> Result<U256> {
let token_id = <TokensMinted<T>>::get(self.id)
.checked_add(1)
.ok_or("item id overflow")?;
pallets/refungible/src/erc.rsdiffbeforeafterboth--- a/pallets/refungible/src/erc.rs
+++ b/pallets/refungible/src/erc.rs
@@ -39,7 +39,7 @@
use pallet_evm::{account::CrossAccountId, PrecompileHandle};
use pallet_evm_coder_substrate::{call, dispatch_to_evm};
use pallet_structure::{SelfWeightOf as StructureWeight, weights::WeightInfo as _};
-use sp_core::{H160, Get};
+use sp_core::{H160, U256, Get};
use sp_std::{collections::btree_map::BTreeMap, vec::Vec, vec};
use up_data_structs::{
CollectionId, CollectionPropertiesVec, mapping::TokenAddressMapping, Property, PropertyKey,
@@ -125,7 +125,7 @@
fn set_property(
&mut self,
caller: caller,
- token_id: uint256,
+ token_id: U256,
key: string,
value: bytes,
) -> Result<()> {
@@ -158,7 +158,7 @@
fn set_properties(
&mut self,
caller: caller,
- token_id: uint256,
+ token_id: U256,
properties: Vec<eth::Property>,
) -> Result<()> {
let caller = T::CrossAccountId::from_eth(caller);
@@ -190,7 +190,7 @@
/// @param key Property key.
#[solidity(hide)]
#[weight(<SelfWeightOf<T>>::delete_token_properties(1))]
- fn delete_property(&mut self, token_id: uint256, caller: caller, key: string) -> Result<()> {
+ fn delete_property(&mut self, token_id: U256, caller: caller, key: string) -> Result<()> {
let caller = T::CrossAccountId::from_eth(caller);
let token_id: u32 = token_id.try_into().map_err(|_| "token id overflow")?;
let key = <Vec<u8>>::from(key)
@@ -212,7 +212,7 @@
#[weight(<SelfWeightOf<T>>::delete_token_properties(keys.len() as u32))]
fn delete_properties(
&mut self,
- token_id: uint256,
+ token_id: U256,
caller: caller,
keys: Vec<string>,
) -> Result<()> {
@@ -242,7 +242,7 @@
/// @param tokenId ID of the token.
/// @param key Property key.
/// @return Property value bytes
- fn property(&self, token_id: uint256, key: string) -> Result<bytes> {
+ fn property(&self, token_id: U256, key: string) -> Result<bytes> {
let token_id: u32 = token_id.try_into().map_err(|_| "token id overflow")?;
let key = <Vec<u8>>::from(key)
.try_into()
@@ -266,7 +266,7 @@
#[indexed]
to: address,
#[indexed]
- token_id: uint256,
+ token_id: U256,
},
/// @dev Not supported
Approval {
@@ -275,7 +275,7 @@
#[indexed]
approved: address,
#[indexed]
- token_id: uint256,
+ token_id: U256,
},
/// @dev Not supported
#[allow(dead_code)]
@@ -319,7 +319,7 @@
///
/// @return token's const_metadata
#[solidity(rename_selector = "tokenURI")]
- fn token_uri(&self, token_id: uint256) -> Result<string> {
+ fn token_uri(&self, token_id: U256) -> Result<string> {
let token_id_u32: u32 = token_id.try_into().map_err(|_| "token id overflow")?;
match get_token_property(self, token_id_u32, &key::url()).as_deref() {
@@ -365,12 +365,12 @@
/// @param index A counter less than `totalSupply()`
/// @return The token identifier for the `index`th NFT,
/// (sort order not specified)
- fn token_by_index(&self, index: uint256) -> Result<uint256> {
+ fn token_by_index(&self, index: U256) -> Result<U256> {
Ok(index)
}
/// Not implemented
- fn token_of_owner_by_index(&self, _owner: address, _index: uint256) -> Result<uint256> {
+ fn token_of_owner_by_index(&self, _owner: address, _index: U256) -> Result<U256> {
// TODO: Not implemetable
Err("not implemented".into())
}
@@ -378,7 +378,7 @@
/// @notice Count RFTs tracked by this contract
/// @return A count of valid RFTs tracked by this contract, where each one of
/// them has an assigned and queryable owner not equal to the zero address
- fn total_supply(&self) -> Result<uint256> {
+ fn total_supply(&self) -> Result<U256> {
self.consume_store_reads(1)?;
Ok(<Pallet<T>>::total_supply(self).into())
}
@@ -393,7 +393,7 @@
/// function throws for queries about the zero address.
/// @param owner An address for whom to query the balance
/// @return The number of RFTs owned by `owner`, possibly zero
- fn balance_of(&self, owner: address) -> Result<uint256> {
+ fn balance_of(&self, owner: address) -> Result<U256> {
self.consume_store_reads(1)?;
let owner = T::CrossAccountId::from_eth(owner);
let balance = <AccountBalance<T>>::get((self.id, owner));
@@ -407,7 +407,7 @@
/// the tokens that are partially owned.
/// @param tokenId The identifier for an RFT
/// @return The address of the owner of the RFT
- fn owner_of(&self, token_id: uint256) -> Result<address> {
+ fn owner_of(&self, token_id: U256) -> Result<address> {
self.consume_store_reads(2)?;
let token = token_id.try_into()?;
let owner = <Pallet<T>>::token_owner(self.id, token);
@@ -422,7 +422,7 @@
&mut self,
_from: address,
_to: address,
- _token_id: uint256,
+ _token_id: U256,
_data: bytes,
) -> Result<()> {
// TODO: Not implemetable
@@ -431,12 +431,7 @@
/// @dev Not implemented
#[solidity(rename_selector = "safeTransferFrom")]
- fn safe_transfer_from(
- &mut self,
- _from: address,
- _to: address,
- _token_id: uint256,
- ) -> Result<()> {
+ fn safe_transfer_from(&mut self, _from: address, _to: address, _token_id: U256) -> Result<()> {
// TODO: Not implemetable
Err("not implemented".into())
}
@@ -457,7 +452,7 @@
caller: caller,
from: address,
to: address,
- token_id: uint256,
+ token_id: U256,
) -> Result<()> {
let caller = T::CrossAccountId::from_eth(caller);
let from = T::CrossAccountId::from_eth(from);
@@ -477,7 +472,7 @@
}
/// @dev Not implemented
- fn approve(&mut self, _caller: caller, _approved: address, _token_id: uint256) -> Result<()> {
+ fn approve(&mut self, _caller: caller, _approved: address, _token_id: U256) -> Result<()> {
Err("not implemented".into())
}
@@ -501,7 +496,7 @@
}
/// @dev Not implemented
- fn get_approved(&self, _token_id: uint256) -> Result<address> {
+ fn get_approved(&self, _token_id: U256) -> Result<address> {
// TODO: Not implemetable
Err("not implemented".into())
}
@@ -556,7 +551,7 @@
/// operator of the current owner.
/// @param tokenId The RFT to approve
#[weight(<SelfWeightOf<T>>::burn_item_fully())]
- fn burn(&mut self, caller: caller, token_id: uint256) -> Result<()> {
+ fn burn(&mut self, caller: caller, token_id: U256) -> Result<()> {
let caller = T::CrossAccountId::from_eth(caller);
let token = token_id.try_into()?;
@@ -575,8 +570,8 @@
/// @param to The new owner
/// @return uint256 The id of the newly minted token
#[weight(<SelfWeightOf<T>>::create_item())]
- fn mint(&mut self, caller: caller, to: address) -> Result<uint256> {
- let token_id: uint256 = <TokensMinted<T>>::get(self.id)
+ fn mint(&mut self, caller: caller, to: address) -> Result<U256> {
+ let token_id: U256 = <TokensMinted<T>>::get(self.id)
.checked_add(1)
.ok_or("item id overflow")?
.into();
@@ -591,7 +586,7 @@
/// @param tokenId ID of the minted RFT
#[solidity(hide, rename_selector = "mint")]
#[weight(<SelfWeightOf<T>>::create_item())]
- fn mint_check_id(&mut self, caller: caller, to: address, token_id: uint256) -> Result<bool> {
+ fn mint_check_id(&mut self, caller: caller, to: address, token_id: U256) -> Result<bool> {
let caller = T::CrossAccountId::from_eth(caller);
let to = T::CrossAccountId::from_eth(to);
let token_id: u32 = token_id.try_into()?;
@@ -637,8 +632,8 @@
caller: caller,
to: address,
token_uri: string,
- ) -> Result<uint256> {
- let token_id: uint256 = <TokensMinted<T>>::get(self.id)
+ ) -> Result<U256> {
+ let token_id: U256 = <TokensMinted<T>>::get(self.id)
.checked_add(1)
.ok_or("item id overflow")?
.into();
@@ -658,7 +653,7 @@
&mut self,
caller: caller,
to: address,
- token_id: uint256,
+ token_id: U256,
token_uri: string,
) -> Result<bool> {
let key = key::url();
@@ -768,7 +763,7 @@
/// Returns the owner (in cross format) of the token.
///
/// @param tokenId Id for the token.
- fn cross_owner_of(&self, token_id: uint256) -> Result<eth::CrossAddress> {
+ fn cross_owner_of(&self, token_id: U256) -> Result<eth::CrossAddress> {
Self::token_owner(&self, token_id.try_into()?)
.map(|o| eth::CrossAddress::from_sub_cross_account::<T>(&o))
.ok_or(Error::Revert("key too large".into()))
@@ -779,7 +774,7 @@
/// @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<eth::Property>> {
+ fn properties(&self, token_id: U256, keys: Vec<string>) -> Result<Vec<eth::Property>> {
let keys = keys
.into_iter()
.map(|key| {
@@ -805,7 +800,7 @@
/// @param to The new owner
/// @param tokenId The RFT to transfer
#[weight(<SelfWeightOf<T>>::transfer_creating_removing())]
- fn transfer(&mut self, caller: caller, to: address, token_id: uint256) -> Result<()> {
+ fn transfer(&mut self, caller: caller, to: address, token_id: U256) -> Result<()> {
let caller = T::CrossAccountId::from_eth(caller);
let to = T::CrossAccountId::from_eth(to);
let token = token_id.try_into()?;
@@ -832,7 +827,7 @@
&mut self,
caller: caller,
to: eth::CrossAddress,
- token_id: uint256,
+ token_id: U256,
) -> Result<()> {
let caller = T::CrossAccountId::from_eth(caller);
let to = to.into_sub_cross_account::<T>()?;
@@ -861,7 +856,7 @@
caller: caller,
from: eth::CrossAddress,
to: eth::CrossAddress,
- token_id: uint256,
+ token_id: U256,
) -> Result<()> {
let caller = T::CrossAccountId::from_eth(caller);
let from = from.into_sub_cross_account::<T>()?;
@@ -888,7 +883,7 @@
/// @param tokenId The RFT to transfer
#[solidity(hide)]
#[weight(<SelfWeightOf<T>>::burn_from())]
- fn burn_from(&mut self, caller: caller, from: address, token_id: uint256) -> Result<()> {
+ fn burn_from(&mut self, caller: caller, from: address, token_id: U256) -> Result<()> {
let caller = T::CrossAccountId::from_eth(caller);
let from = T::CrossAccountId::from_eth(from);
let token = token_id.try_into()?;
@@ -916,7 +911,7 @@
&mut self,
caller: caller,
from: eth::CrossAddress,
- token_id: uint256,
+ token_id: U256,
) -> Result<()> {
let caller = T::CrossAccountId::from_eth(caller);
let from = from.into_sub_cross_account::<T>()?;
@@ -934,7 +929,7 @@
}
/// @notice Returns next free RFT ID.
- fn next_token_id(&self) -> Result<uint256> {
+ fn next_token_id(&self) -> Result<U256> {
self.consume_store_reads(1)?;
Ok(<TokensMinted<T>>::get(self.id)
.checked_add(1)
@@ -949,7 +944,7 @@
/// @param tokenIds IDs of the minted RFTs
#[solidity(hide)]
#[weight(<SelfWeightOf<T>>::create_multiple_items(token_ids.len() as u32))]
- fn mint_bulk(&mut self, caller: caller, to: address, token_ids: Vec<uint256>) -> Result<bool> {
+ fn mint_bulk(&mut self, caller: caller, to: address, token_ids: Vec<U256>) -> Result<bool> {
let caller = T::CrossAccountId::from_eth(caller);
let to = T::CrossAccountId::from_eth(to);
let mut expected_index = <TokensMinted<T>>::get(self.id)
@@ -996,7 +991,7 @@
&mut self,
caller: caller,
to: address,
- tokens: Vec<(uint256, string)>,
+ tokens: Vec<(U256, string)>,
) -> Result<bool> {
let key = key::url();
let caller = T::CrossAccountId::from_eth(caller);
@@ -1054,7 +1049,7 @@
caller: caller,
to: eth::CrossAddress,
properties: Vec<eth::Property>,
- ) -> Result<uint256> {
+ ) -> Result<U256> {
let token_id = <TokensMinted<T>>::get(self.id)
.checked_add(1)
.ok_or("item id overflow")?;
@@ -1093,7 +1088,7 @@
/// Returns EVM address for refungible token
///
/// @param token ID of the token
- fn token_contract_address(&self, token: uint256) -> Result<address> {
+ fn token_contract_address(&self, token: U256) -> Result<address> {
Ok(T::EvmTokenAddressMapping::token_to_address(
self.id,
token.try_into().map_err(|_| "token id overflow")?,
pallets/refungible/src/erc_token.rsdiffbeforeafterboth--- a/pallets/refungible/src/erc_token.rs
+++ b/pallets/refungible/src/erc_token.rs
@@ -37,6 +37,7 @@
use pallet_evm_coder_substrate::{call, dispatch_to_evm, WithRecorder};
use pallet_structure::{SelfWeightOf as StructureWeight, weights::WeightInfo as _};
use sp_std::vec::Vec;
+use sp_core::U256;
use up_data_structs::TokenId;
use crate::{
@@ -55,7 +56,7 @@
Ok(collection_id_to_address(self.id))
}
- fn parent_token_id(&self) -> Result<uint256> {
+ fn parent_token_id(&self) -> Result<U256> {
Ok(self.1.into())
}
}
@@ -71,7 +72,7 @@
from: address,
#[indexed]
to: address,
- value: uint256,
+ value: U256,
},
/// @dev This event is emitted when the amount of tokens (value) is approved
/// by the owner to be used by the spender.
@@ -80,7 +81,7 @@
owner: address,
#[indexed]
spender: address,
- value: uint256,
+ value: U256,
},
}
@@ -103,7 +104,7 @@
}
/// @dev Total number of tokens in existence
- fn total_supply(&self) -> Result<uint256> {
+ fn total_supply(&self) -> Result<U256> {
self.consume_store_reads(1)?;
Ok(<TotalSupply<T>>::get((self.id, self.1)).into())
}
@@ -117,7 +118,7 @@
/// @dev Gets the balance of the specified address.
/// @param owner The address to query the balance of.
/// @return An uint256 representing the amount owned by the passed address.
- fn balance_of(&self, owner: address) -> Result<uint256> {
+ fn balance_of(&self, owner: address) -> Result<U256> {
self.consume_store_reads(1)?;
let owner = T::CrossAccountId::from_eth(owner);
let balance = <Balance<T>>::get((self.id, self.1, owner));
@@ -128,7 +129,7 @@
/// @param to The address to transfer to.
/// @param amount The amount to be transferred.
#[weight(<CommonWeights<T>>::transfer())]
- fn transfer(&mut self, caller: caller, to: address, amount: uint256) -> Result<bool> {
+ fn transfer(&mut self, caller: caller, to: address, amount: U256) -> Result<bool> {
let caller = T::CrossAccountId::from_eth(caller);
let to = T::CrossAccountId::from_eth(to);
let amount = amount.try_into().map_err(|_| "amount overflow")?;
@@ -151,7 +152,7 @@
caller: caller,
from: address,
to: address,
- amount: uint256,
+ amount: U256,
) -> Result<bool> {
let caller = T::CrossAccountId::from_eth(caller);
let from = T::CrossAccountId::from_eth(from);
@@ -174,7 +175,7 @@
/// @param spender The address which will spend the funds.
/// @param amount The amount of tokens to be spent.
#[weight(<SelfWeightOf<T>>::approve())]
- fn approve(&mut self, caller: caller, spender: address, amount: uint256) -> Result<bool> {
+ fn approve(&mut self, caller: caller, spender: address, amount: U256) -> Result<bool> {
let caller = T::CrossAccountId::from_eth(caller);
let spender = T::CrossAccountId::from_eth(spender);
let amount = amount.try_into().map_err(|_| "amount overflow")?;
@@ -188,7 +189,7 @@
/// @param owner address The address which owns the funds.
/// @param spender address The address which will spend the funds.
/// @return A uint256 specifying the amount of tokens still available for the spender.
- fn allowance(&self, owner: address, spender: address) -> Result<uint256> {
+ fn allowance(&self, owner: address, spender: address) -> Result<U256> {
self.consume_store_reads(1)?;
let owner = T::CrossAccountId::from_eth(owner);
let spender = T::CrossAccountId::from_eth(spender);
@@ -208,7 +209,7 @@
/// @param amount The amount that will be burnt.
#[weight(<SelfWeightOf<T>>::burn_from())]
#[solidity(hide)]
- fn burn_from(&mut self, caller: caller, from: address, amount: uint256) -> Result<bool> {
+ fn burn_from(&mut self, caller: caller, from: address, amount: U256) -> Result<bool> {
let caller = T::CrossAccountId::from_eth(caller);
let from = T::CrossAccountId::from_eth(from);
let amount = amount.try_into().map_err(|_| "amount overflow")?;
@@ -230,7 +231,7 @@
&mut self,
caller: caller,
from: pallet_common::eth::CrossAddress,
- amount: uint256,
+ amount: U256,
) -> Result<bool> {
let caller = T::CrossAccountId::from_eth(caller);
let from = from.into_sub_cross_account::<T>()?;
@@ -256,7 +257,7 @@
&mut self,
caller: caller,
spender: pallet_common::eth::CrossAddress,
- amount: uint256,
+ amount: U256,
) -> Result<bool> {
let caller = T::CrossAccountId::from_eth(caller);
let spender = spender.into_sub_cross_account::<T>()?;
@@ -270,7 +271,7 @@
/// Throws if `msg.sender` doesn't owns all of the tokens.
/// @param amount New total amount of the tokens.
#[weight(<SelfWeightOf<T>>::repartition_item())]
- fn repartition(&mut self, caller: caller, amount: uint256) -> Result<bool> {
+ fn repartition(&mut self, caller: caller, amount: U256) -> Result<bool> {
let caller = T::CrossAccountId::from_eth(caller);
let amount = amount.try_into().map_err(|_| "amount overflow")?;
@@ -286,7 +287,7 @@
&mut self,
caller: caller,
to: pallet_common::eth::CrossAddress,
- amount: uint256,
+ amount: U256,
) -> Result<bool> {
let caller = T::CrossAccountId::from_eth(caller);
let to = to.into_sub_cross_account::<T>()?;
@@ -310,7 +311,7 @@
caller: caller,
from: pallet_common::eth::CrossAddress,
to: pallet_common::eth::CrossAddress,
- amount: uint256,
+ amount: U256,
) -> Result<bool> {
let caller = T::CrossAccountId::from_eth(caller);
let from = from.into_sub_cross_account::<T>()?;
tests/src/eth/abi/nonFungible.jsondiffbeforeafterboth1[2 {3 "anonymous": false,4 "inputs": [5 {6 "indexed": true,7 "internalType": "address",8 "name": "owner",9 "type": "address"10 },11 {12 "indexed": true,13 "internalType": "address",14 "name": "approved",15 "type": "address"16 },17 {18 "indexed": true,19 "internalType": "uint256",20 "name": "tokenId",21 "type": "uint256"22 }23 ],24 "name": "Approval",25 "type": "event"26 },27 {28 "anonymous": false,29 "inputs": [30 {31 "indexed": true,32 "internalType": "address",33 "name": "owner",34 "type": "address"35 },36 {37 "indexed": true,38 "internalType": "address",39 "name": "operator",40 "type": "address"41 },42 {43 "indexed": false,44 "internalType": "bool",45 "name": "approved",46 "type": "bool"47 }48 ],49 "name": "ApprovalForAll",50 "type": "event"51 },52 {53 "anonymous": false,54 "inputs": [55 {56 "indexed": true,57 "internalType": "address",58 "name": "from",59 "type": "address"60 },61 {62 "indexed": true,63 "internalType": "address",64 "name": "to",65 "type": "address"66 },67 {68 "indexed": true,69 "internalType": "uint256",70 "name": "tokenId",71 "type": "uint256"72 }73 ],74 "name": "Transfer",75 "type": "event"76 },77 {78 "inputs": [79 {80 "components": [81 { "internalType": "address", "name": "eth", "type": "address" },82 { "internalType": "uint256", "name": "sub", "type": "uint256" }83 ],84 "internalType": "struct CrossAddress",85 "name": "newAdmin",86 "type": "tuple"87 }88 ],89 "name": "addCollectionAdminCross",90 "outputs": [],91 "stateMutability": "nonpayable",92 "type": "function"93 },94 {95 "inputs": [96 {97 "components": [98 { "internalType": "address", "name": "eth", "type": "address" },99 { "internalType": "uint256", "name": "sub", "type": "uint256" }100 ],101 "internalType": "struct CrossAddress",102 "name": "user",103 "type": "tuple"104 }105 ],106 "name": "addToCollectionAllowListCross",107 "outputs": [],108 "stateMutability": "nonpayable",109 "type": "function"110 },111 {112 "inputs": [113 {114 "components": [115 { "internalType": "address", "name": "eth", "type": "address" },116 { "internalType": "uint256", "name": "sub", "type": "uint256" }117 ],118 "internalType": "struct CrossAddress",119 "name": "user",120 "type": "tuple"121 }122 ],123 "name": "allowlistedCross",124 "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }],125 "stateMutability": "view",126 "type": "function"127 },128 {129 "inputs": [130 { "internalType": "address", "name": "approved", "type": "address" },131 { "internalType": "uint256", "name": "tokenId", "type": "uint256" }132 ],133 "name": "approve",134 "outputs": [],135 "stateMutability": "nonpayable",136 "type": "function"137 },138 {139 "inputs": [140 {141 "components": [142 { "internalType": "address", "name": "eth", "type": "address" },143 { "internalType": "uint256", "name": "sub", "type": "uint256" }144 ],145 "internalType": "struct CrossAddress",146 "name": "approved",147 "type": "tuple"148 },149 { "internalType": "uint256", "name": "tokenId", "type": "uint256" }150 ],151 "name": "approveCross",152 "outputs": [],153 "stateMutability": "nonpayable",154 "type": "function"155 },156 {157 "inputs": [158 { "internalType": "address", "name": "owner", "type": "address" }159 ],160 "name": "balanceOf",161 "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }],162 "stateMutability": "view",163 "type": "function"164 },165 {166 "inputs": [167 { "internalType": "uint256", "name": "tokenId", "type": "uint256" }168 ],169 "name": "burn",170 "outputs": [],171 "stateMutability": "nonpayable",172 "type": "function"173 },174 {175 "inputs": [176 {177 "components": [178 { "internalType": "address", "name": "eth", "type": "address" },179 { "internalType": "uint256", "name": "sub", "type": "uint256" }180 ],181 "internalType": "struct CrossAddress",182 "name": "from",183 "type": "tuple"184 },185 { "internalType": "uint256", "name": "tokenId", "type": "uint256" }186 ],187 "name": "burnFromCross",188 "outputs": [],189 "stateMutability": "nonpayable",190 "type": "function"191 },192 {193 "inputs": [194 {195 "components": [196 { "internalType": "address", "name": "eth", "type": "address" },197 { "internalType": "uint256", "name": "sub", "type": "uint256" }198 ],199 "internalType": "struct CrossAddress",200 "name": "newOwner",201 "type": "tuple"202 }203 ],204 "name": "changeCollectionOwnerCross",205 "outputs": [],206 "stateMutability": "nonpayable",207 "type": "function"208 },209 {210 "inputs": [],211 "name": "collectionAdmins",212 "outputs": [213 {214 "components": [215 { "internalType": "address", "name": "eth", "type": "address" },216 { "internalType": "uint256", "name": "sub", "type": "uint256" }217 ],218 "internalType": "struct CrossAddress[]",219 "name": "",220 "type": "tuple[]"221 }222 ],223 "stateMutability": "view",224 "type": "function"225 },226 {227 "inputs": [],228 "name": "collectionHelperAddress",229 "outputs": [{ "internalType": "address", "name": "", "type": "address" }],230 "stateMutability": "view",231 "type": "function"232 },233 {234 "inputs": [],235 "name": "collectionLimits",236 "outputs": [237 {238 "components": [239 {240 "internalType": "enum CollectionLimitField",241 "name": "field",242 "type": "uint8"243 },244 {245 "components": [246 { "internalType": "bool", "name": "status", "type": "bool" },247 { "internalType": "uint256", "name": "value", "type": "uint256" }248 ],249 "internalType": "struct OptionUint256",250 "name": "value",251 "type": "tuple"252 }253 ],254 "internalType": "struct CollectionLimit[]",255 "name": "",256 "type": "tuple[]"257 }258 ],259 "stateMutability": "view",260 "type": "function"261 },262 {263 "inputs": [],264 "name": "collectionNestingPermissions",265 "outputs": [266 {267 "components": [268 {269 "internalType": "enum CollectionPermissionField",270 "name": "field",271 "type": "uint8"272 },273 { "internalType": "bool", "name": "value", "type": "bool" }274 ],275 "internalType": "struct CollectionNestingPermission[]",276 "name": "",277 "type": "tuple[]"278 }279 ],280 "stateMutability": "view",281 "type": "function"282 },283 {284 "inputs": [],285 "name": "collectionNestingRestrictedCollectionIds",286 "outputs": [287 {288 "components": [289 { "internalType": "bool", "name": "token_owner", "type": "bool" },290 { "internalType": "uint256[]", "name": "ids", "type": "uint256[]" }291 ],292 "internalType": "struct CollectionNesting",293 "name": "",294 "type": "tuple"295 }296 ],297 "stateMutability": "view",298 "type": "function"299 },300 {301 "inputs": [],302 "name": "collectionOwner",303 "outputs": [304 {305 "components": [306 { "internalType": "address", "name": "eth", "type": "address" },307 { "internalType": "uint256", "name": "sub", "type": "uint256" }308 ],309 "internalType": "struct CrossAddress",310 "name": "",311 "type": "tuple"312 }313 ],314 "stateMutability": "view",315 "type": "function"316 },317 {318 "inputs": [319 { "internalType": "string[]", "name": "keys", "type": "string[]" }320 ],321 "name": "collectionProperties",322 "outputs": [323 {324 "components": [325 { "internalType": "string", "name": "key", "type": "string" },326 { "internalType": "bytes", "name": "value", "type": "bytes" }327 ],328 "internalType": "struct Property[]",329 "name": "",330 "type": "tuple[]"331 }332 ],333 "stateMutability": "view",334 "type": "function"335 },336 {337 "inputs": [{ "internalType": "string", "name": "key", "type": "string" }],338 "name": "collectionProperty",339 "outputs": [{ "internalType": "bytes", "name": "", "type": "bytes" }],340 "stateMutability": "view",341 "type": "function"342 },343 {344 "inputs": [],345 "name": "collectionSponsor",346 "outputs": [347 {348 "components": [349 { "internalType": "address", "name": "eth", "type": "address" },350 { "internalType": "uint256", "name": "sub", "type": "uint256" }351 ],352 "internalType": "struct CrossAddress",353 "name": "",354 "type": "tuple"355 }356 ],357 "stateMutability": "view",358 "type": "function"359 },360 {361 "inputs": [],362 "name": "confirmCollectionSponsorship",363 "outputs": [],364 "stateMutability": "nonpayable",365 "type": "function"366 },367 {368 "inputs": [],369 "name": "contractAddress",370 "outputs": [{ "internalType": "address", "name": "", "type": "address" }],371 "stateMutability": "view",372 "type": "function"373 },374 {375 "inputs": [376 { "internalType": "uint256", "name": "tokenId", "type": "uint256" }377 ],378 "name": "crossOwnerOf",379 "outputs": [380 {381 "components": [382 { "internalType": "address", "name": "eth", "type": "address" },383 { "internalType": "uint256", "name": "sub", "type": "uint256" }384 ],385 "internalType": "struct CrossAddress",386 "name": "",387 "type": "tuple"388 }389 ],390 "stateMutability": "view",391 "type": "function"392 },393 {394 "inputs": [395 { "internalType": "string[]", "name": "keys", "type": "string[]" }396 ],397 "name": "deleteCollectionProperties",398 "outputs": [],399 "stateMutability": "nonpayable",400 "type": "function"401 },402 {403 "inputs": [404 { "internalType": "uint256", "name": "tokenId", "type": "uint256" },405 { "internalType": "string[]", "name": "keys", "type": "string[]" }406 ],407 "name": "deleteProperties",408 "outputs": [],409 "stateMutability": "nonpayable",410 "type": "function"411 },412 {413 "inputs": [],414 "name": "description",415 "outputs": [{ "internalType": "string", "name": "", "type": "string" }],416 "stateMutability": "view",417 "type": "function"418 },419 {420 "inputs": [421 { "internalType": "uint256", "name": "tokenId", "type": "uint256" }422 ],423 "name": "getApproved",424 "outputs": [{ "internalType": "address", "name": "", "type": "address" }],425 "stateMutability": "view",426 "type": "function"427 },428 {429 "inputs": [],430 "name": "hasCollectionPendingSponsor",431 "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }],432 "stateMutability": "view",433 "type": "function"434 },435 {436 "inputs": [437 { "internalType": "address", "name": "owner", "type": "address" },438 { "internalType": "address", "name": "operator", "type": "address" }439 ],440 "name": "isApprovedForAll",441 "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }],442 "stateMutability": "view",443 "type": "function"444 },445 {446 "inputs": [447 {448 "components": [449 { "internalType": "address", "name": "eth", "type": "address" },450 { "internalType": "uint256", "name": "sub", "type": "uint256" }451 ],452 "internalType": "struct CrossAddress",453 "name": "user",454 "type": "tuple"455 }456 ],457 "name": "isOwnerOrAdminCross",458 "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }],459 "stateMutability": "view",460 "type": "function"461 },462 {463 "inputs": [{ "internalType": "address", "name": "to", "type": "address" }],464 "name": "mint",465 "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }],466 "stateMutability": "nonpayable",467 "type": "function"468 },469 {470 "inputs": [471 {472 "components": [473 { "internalType": "address", "name": "eth", "type": "address" },474 { "internalType": "uint256", "name": "sub", "type": "uint256" }475 ],476 "internalType": "struct CrossAddress",477 "name": "to",478 "type": "tuple"479 },480 {481 "components": [482 { "internalType": "string", "name": "key", "type": "string" },483 { "internalType": "bytes", "name": "value", "type": "bytes" }484 ],485 "internalType": "struct Property[]",486 "name": "properties",487 "type": "tuple[]"488 }489 ],490 "name": "mintCross",491 "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }],492 "stateMutability": "nonpayable",493 "type": "function"494 },495 {496 "inputs": [497 { "internalType": "address", "name": "to", "type": "address" },498 { "internalType": "string", "name": "tokenUri", "type": "string" }499 ],500 "name": "mintWithTokenURI",501 "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }],502 "stateMutability": "nonpayable",503 "type": "function"504 },505 {506 "inputs": [],507 "name": "name",508 "outputs": [{ "internalType": "string", "name": "", "type": "string" }],509 "stateMutability": "view",510 "type": "function"511 },512 {513 "inputs": [],514 "name": "nextTokenId",515 "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }],516 "stateMutability": "view",517 "type": "function"518 },519 {520 "inputs": [521 { "internalType": "uint256", "name": "tokenId", "type": "uint256" }522 ],523 "name": "ownerOf",524 "outputs": [{ "internalType": "address", "name": "", "type": "address" }],525 "stateMutability": "view",526 "type": "function"527 },528 {529 "inputs": [530 { "internalType": "uint256", "name": "tokenId", "type": "uint256" },531 { "internalType": "string[]", "name": "keys", "type": "string[]" }532 ],533 "name": "properties",534 "outputs": [535 {536 "components": [537 { "internalType": "string", "name": "key", "type": "string" },538 { "internalType": "bytes", "name": "value", "type": "bytes" }539 ],540 "internalType": "struct Property[]",541 "name": "",542 "type": "tuple[]"543 }544 ],545 "stateMutability": "view",546 "type": "function"547 },548 {549 "inputs": [550 { "internalType": "uint256", "name": "tokenId", "type": "uint256" },551 { "internalType": "string", "name": "key", "type": "string" }552 ],553 "name": "property",554 "outputs": [{ "internalType": "bytes", "name": "", "type": "bytes" }],555 "stateMutability": "view",556 "type": "function"557 },558 {559 "inputs": [560 {561 "components": [562 { "internalType": "address", "name": "eth", "type": "address" },563 { "internalType": "uint256", "name": "sub", "type": "uint256" }564 ],565 "internalType": "struct CrossAddress",566 "name": "admin",567 "type": "tuple"568 }569 ],570 "name": "removeCollectionAdminCross",571 "outputs": [],572 "stateMutability": "nonpayable",573 "type": "function"574 },575 {576 "inputs": [],577 "name": "removeCollectionSponsor",578 "outputs": [],579 "stateMutability": "nonpayable",580 "type": "function"581 },582 {583 "inputs": [584 {585 "components": [586 { "internalType": "address", "name": "eth", "type": "address" },587 { "internalType": "uint256", "name": "sub", "type": "uint256" }588 ],589 "internalType": "struct CrossAddress",590 "name": "user",591 "type": "tuple"592 }593 ],594 "name": "removeFromCollectionAllowListCross",595 "outputs": [],596 "stateMutability": "nonpayable",597 "type": "function"598 },599 {600 "inputs": [601 { "internalType": "address", "name": "from", "type": "address" },602 { "internalType": "address", "name": "to", "type": "address" },603 { "internalType": "uint256", "name": "tokenId", "type": "uint256" }604 ],605 "name": "safeTransferFrom",606 "outputs": [],607 "stateMutability": "nonpayable",608 "type": "function"609 },610 {611 "inputs": [612 { "internalType": "address", "name": "from", "type": "address" },613 { "internalType": "address", "name": "to", "type": "address" },614 { "internalType": "uint256", "name": "tokenId", "type": "uint256" },615 { "internalType": "bytes", "name": "data", "type": "bytes" }616 ],617 "name": "safeTransferFrom",618 "outputs": [],619 "stateMutability": "nonpayable",620 "type": "function"621 },622 {623 "inputs": [624 { "internalType": "address", "name": "operator", "type": "address" },625 { "internalType": "bool", "name": "approved", "type": "bool" }626 ],627 "name": "setApprovalForAll",628 "outputs": [],629 "stateMutability": "nonpayable",630 "type": "function"631 },632 {633 "inputs": [{ "internalType": "uint8", "name": "mode", "type": "uint8" }],634 "name": "setCollectionAccess",635 "outputs": [],636 "stateMutability": "nonpayable",637 "type": "function"638 },639 {640 "inputs": [641 {642 "components": [643 {644 "internalType": "enum CollectionLimitField",645 "name": "field",646 "type": "uint8"647 },648 {649 "components": [650 { "internalType": "bool", "name": "status", "type": "bool" },651 { "internalType": "uint256", "name": "value", "type": "uint256" }652 ],653 "internalType": "struct OptionUint256",654 "name": "value",655 "type": "tuple"656 }657 ],658 "internalType": "struct CollectionLimit",659 "name": "limit",660 "type": "tuple"661 }662 ],663 "name": "setCollectionLimit",664 "outputs": [],665 "stateMutability": "nonpayable",666 "type": "function"667 },668 {669 "inputs": [{ "internalType": "bool", "name": "mode", "type": "bool" }],670 "name": "setCollectionMintMode",671 "outputs": [],672 "stateMutability": "nonpayable",673 "type": "function"674 },675 {676 "inputs": [{ "internalType": "bool", "name": "enable", "type": "bool" }],677 "name": "setCollectionNesting",678 "outputs": [],679 "stateMutability": "nonpayable",680 "type": "function"681 },682 {683 "inputs": [684 { "internalType": "bool", "name": "enable", "type": "bool" },685 {686 "internalType": "address[]",687 "name": "collections",688 "type": "address[]"689 }690 ],691 "name": "setCollectionNesting",692 "outputs": [],693 "stateMutability": "nonpayable",694 "type": "function"695 },696 {697 "inputs": [698 {699 "components": [700 { "internalType": "string", "name": "key", "type": "string" },701 { "internalType": "bytes", "name": "value", "type": "bytes" }702 ],703 "internalType": "struct Property[]",704 "name": "properties",705 "type": "tuple[]"706 }707 ],708 "name": "setCollectionProperties",709 "outputs": [],710 "stateMutability": "nonpayable",711 "type": "function"712 },713 {714 "inputs": [715 {716 "components": [717 { "internalType": "address", "name": "eth", "type": "address" },718 { "internalType": "uint256", "name": "sub", "type": "uint256" }719 ],720 "internalType": "struct CrossAddress",721 "name": "sponsor",722 "type": "tuple"723 }724 ],725 "name": "setCollectionSponsorCross",726 "outputs": [],727 "stateMutability": "nonpayable",728 "type": "function"729 },730 {731 "inputs": [732 { "internalType": "uint256", "name": "tokenId", "type": "uint256" },733 {734 "components": [735 { "internalType": "string", "name": "key", "type": "string" },736 { "internalType": "bytes", "name": "value", "type": "bytes" }737 ],738 "internalType": "struct Property[]",739 "name": "properties",740 "type": "tuple[]"741 }742 ],743 "name": "setProperties",744 "outputs": [],745 "stateMutability": "nonpayable",746 "type": "function"747 },748 {749 "inputs": [750 {751 "components": [752 { "internalType": "string", "name": "key", "type": "string" },753 {754 "components": [755 {756 "internalType": "enum TokenPermissionField",757 "name": "code",758 "type": "uint8"759 },760 { "internalType": "bool", "name": "value", "type": "bool" }761 ],762 "internalType": "struct PropertyPermission[]",763 "name": "permissions",764 "type": "tuple[]"765 }766 ],767 "internalType": "struct TokenPropertyPermission[]",768 "name": "permissions",769 "type": "tuple[]"770 }771 ],772 "name": "setTokenPropertyPermissions",773 "outputs": [],774 "stateMutability": "nonpayable",775 "type": "function"776 },777 {778 "inputs": [779 { "internalType": "bytes4", "name": "interfaceID", "type": "bytes4" }780 ],781 "name": "supportsInterface",782 "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }],783 "stateMutability": "view",784 "type": "function"785 },786 {787 "inputs": [],788 "name": "symbol",789 "outputs": [{ "internalType": "string", "name": "", "type": "string" }],790 "stateMutability": "view",791 "type": "function"792 },793 {794 "inputs": [795 { "internalType": "uint256", "name": "index", "type": "uint256" }796 ],797 "name": "tokenByIndex",798 "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }],799 "stateMutability": "view",800 "type": "function"801 },802 {803 "inputs": [804 { "internalType": "address", "name": "owner", "type": "address" },805 { "internalType": "uint256", "name": "index", "type": "uint256" }806 ],807 "name": "tokenOfOwnerByIndex",808 "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }],809 "stateMutability": "view",810 "type": "function"811 },812 {813 "inputs": [],814 "name": "tokenPropertyPermissions",815 "outputs": [816 {817 "components": [818 { "internalType": "string", "name": "key", "type": "string" },819 {820 "components": [821 {822 "internalType": "enum TokenPermissionField",823 "name": "code",824 "type": "uint8"825 },826 { "internalType": "bool", "name": "value", "type": "bool" }827 ],828 "internalType": "struct PropertyPermission[]",829 "name": "permissions",830 "type": "tuple[]"831 }832 ],833 "internalType": "struct TokenPropertyPermission[]",834 "name": "",835 "type": "tuple[]"836 }837 ],838 "stateMutability": "view",839 "type": "function"840 },841 {842 "inputs": [843 { "internalType": "uint256", "name": "tokenId", "type": "uint256" }844 ],845 "name": "tokenURI",846 "outputs": [{ "internalType": "string", "name": "", "type": "string" }],847 "stateMutability": "view",848 "type": "function"849 },850 {851 "inputs": [],852 "name": "totalSupply",853 "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }],854 "stateMutability": "view",855 "type": "function"856 },857 {858 "inputs": [859 { "internalType": "address", "name": "to", "type": "address" },860 { "internalType": "uint256", "name": "tokenId", "type": "uint256" }861 ],862 "name": "transfer",863 "outputs": [],864 "stateMutability": "nonpayable",865 "type": "function"866 },867 {868 "inputs": [869 {870 "components": [871 { "internalType": "address", "name": "eth", "type": "address" },872 { "internalType": "uint256", "name": "sub", "type": "uint256" }873 ],874 "internalType": "struct CrossAddress",875 "name": "to",876 "type": "tuple"877 },878 { "internalType": "uint256", "name": "tokenId", "type": "uint256" }879 ],880 "name": "transferCross",881 "outputs": [],882 "stateMutability": "nonpayable",883 "type": "function"884 },885 {886 "inputs": [887 { "internalType": "address", "name": "from", "type": "address" },888 { "internalType": "address", "name": "to", "type": "address" },889 { "internalType": "uint256", "name": "tokenId", "type": "uint256" }890 ],891 "name": "transferFrom",892 "outputs": [],893 "stateMutability": "nonpayable",894 "type": "function"895 },896 {897 "inputs": [898 {899 "components": [900 { "internalType": "address", "name": "eth", "type": "address" },901 { "internalType": "uint256", "name": "sub", "type": "uint256" }902 ],903 "internalType": "struct CrossAddress",904 "name": "from",905 "type": "tuple"906 },907 {908 "components": [909 { "internalType": "address", "name": "eth", "type": "address" },910 { "internalType": "uint256", "name": "sub", "type": "uint256" }911 ],912 "internalType": "struct CrossAddress",913 "name": "to",914 "type": "tuple"915 },916 { "internalType": "uint256", "name": "tokenId", "type": "uint256" }917 ],918 "name": "transferFromCross",919 "outputs": [],920 "stateMutability": "nonpayable",921 "type": "function"922 },923 {924 "inputs": [],925 "name": "uniqueCollectionType",926 "outputs": [{ "internalType": "string", "name": "", "type": "string" }],927 "stateMutability": "view",928 "type": "function"929 }930]tests/src/eth/abi/reFungible.jsondiffbeforeafterboth--- a/tests/src/eth/abi/reFungible.json
+++ b/tests/src/eth/abi/reFungible.json
@@ -51,6 +51,12 @@
},
{
"anonymous": false,
+ "inputs": [],
+ "name": "MintingFinished",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
"inputs": [
{
"indexed": true,
@@ -399,6 +405,13 @@
"type": "function"
},
{
+ "inputs": [],
+ "name": "finishMinting",
+ "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
"inputs": [
{ "internalType": "uint256", "name": "tokenId", "type": "uint256" }
],
@@ -486,6 +499,13 @@
},
{
"inputs": [],
+ "name": "mintingFinished",
+ "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
"name": "name",
"outputs": [{ "internalType": "string", "name": "", "type": "string" }],
"stateMutability": "view",
tests/src/eth/abi/reFungibleToken.jsondiffbeforeafterboth--- a/tests/src/eth/abi/reFungibleToken.json
+++ b/tests/src/eth/abi/reFungibleToken.json
@@ -98,6 +98,16 @@
},
{
"inputs": [
+ { "internalType": "address", "name": "from", "type": "address" },
+ { "internalType": "uint256", "name": "amount", "type": "uint256" }
+ ],
+ "name": "burnFrom",
+ "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
{
"components": [
{ "internalType": "address", "name": "eth", "type": "address" },