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.rsdiffbeforeafterboth39use pallet_evm::{account::CrossAccountId, PrecompileHandle};39use pallet_evm::{account::CrossAccountId, PrecompileHandle};40use pallet_evm_coder_substrate::{call, dispatch_to_evm};40use pallet_evm_coder_substrate::{call, dispatch_to_evm};41use pallet_structure::{SelfWeightOf as StructureWeight, weights::WeightInfo as _};41use pallet_structure::{SelfWeightOf as StructureWeight, weights::WeightInfo as _};42use sp_core::{H160, Get};42use sp_core::{H160, U256, Get};43use sp_std::{collections::btree_map::BTreeMap, vec::Vec, vec};43use sp_std::{collections::btree_map::BTreeMap, vec::Vec, vec};44use up_data_structs::{44use up_data_structs::{45 CollectionId, CollectionPropertiesVec, mapping::TokenAddressMapping, Property, PropertyKey,45 CollectionId, CollectionPropertiesVec, mapping::TokenAddressMapping, Property, PropertyKey,125 fn set_property(125 fn set_property(126 &mut self,126 &mut self,127 caller: caller,127 caller: caller,128 token_id: uint256,128 token_id: U256,129 key: string,129 key: string,130 value: bytes,130 value: bytes,131 ) -> Result<()> {131 ) -> Result<()> {158 fn set_properties(158 fn set_properties(159 &mut self,159 &mut self,160 caller: caller,160 caller: caller,161 token_id: uint256,161 token_id: U256,162 properties: Vec<eth::Property>,162 properties: Vec<eth::Property>,163 ) -> Result<()> {163 ) -> Result<()> {164 let caller = T::CrossAccountId::from_eth(caller);164 let caller = T::CrossAccountId::from_eth(caller);190 /// @param key Property key.190 /// @param key Property key.191 #[solidity(hide)]191 #[solidity(hide)]192 #[weight(<SelfWeightOf<T>>::delete_token_properties(1))]192 #[weight(<SelfWeightOf<T>>::delete_token_properties(1))]193 fn delete_property(&mut self, token_id: uint256, caller: caller, key: string) -> Result<()> {193 fn delete_property(&mut self, token_id: U256, caller: caller, key: string) -> Result<()> {194 let caller = T::CrossAccountId::from_eth(caller);194 let caller = T::CrossAccountId::from_eth(caller);195 let token_id: u32 = token_id.try_into().map_err(|_| "token id overflow")?;195 let token_id: u32 = token_id.try_into().map_err(|_| "token id overflow")?;196 let key = <Vec<u8>>::from(key)196 let key = <Vec<u8>>::from(key)212 #[weight(<SelfWeightOf<T>>::delete_token_properties(keys.len() as u32))]212 #[weight(<SelfWeightOf<T>>::delete_token_properties(keys.len() as u32))]213 fn delete_properties(213 fn delete_properties(214 &mut self,214 &mut self,215 token_id: uint256,215 token_id: U256,216 caller: caller,216 caller: caller,217 keys: Vec<string>,217 keys: Vec<string>,218 ) -> Result<()> {218 ) -> Result<()> {242 /// @param tokenId ID of the token.242 /// @param tokenId ID of the token.243 /// @param key Property key.243 /// @param key Property key.244 /// @return Property value bytes244 /// @return Property value bytes245 fn property(&self, token_id: uint256, key: string) -> Result<bytes> {245 fn property(&self, token_id: U256, key: string) -> Result<bytes> {246 let token_id: u32 = token_id.try_into().map_err(|_| "token id overflow")?;246 let token_id: u32 = token_id.try_into().map_err(|_| "token id overflow")?;247 let key = <Vec<u8>>::from(key)247 let key = <Vec<u8>>::from(key)248 .try_into()248 .try_into()266 #[indexed]266 #[indexed]267 to: address,267 to: address,268 #[indexed]268 #[indexed]269 token_id: uint256,269 token_id: U256,270 },270 },271 /// @dev Not supported271 /// @dev Not supported272 Approval {272 Approval {275 #[indexed]275 #[indexed]276 approved: address,276 approved: address,277 #[indexed]277 #[indexed]278 token_id: uint256,278 token_id: U256,279 },279 },280 /// @dev Not supported280 /// @dev Not supported281 #[allow(dead_code)]281 #[allow(dead_code)]319 ///319 ///320 /// @return token's const_metadata320 /// @return token's const_metadata321 #[solidity(rename_selector = "tokenURI")]321 #[solidity(rename_selector = "tokenURI")]322 fn token_uri(&self, token_id: uint256) -> Result<string> {322 fn token_uri(&self, token_id: U256) -> Result<string> {323 let token_id_u32: u32 = token_id.try_into().map_err(|_| "token id overflow")?;323 let token_id_u32: u32 = token_id.try_into().map_err(|_| "token id overflow")?;324324325 match get_token_property(self, token_id_u32, &key::url()).as_deref() {325 match get_token_property(self, token_id_u32, &key::url()).as_deref() {365 /// @param index A counter less than `totalSupply()`365 /// @param index A counter less than `totalSupply()`366 /// @return The token identifier for the `index`th NFT,366 /// @return The token identifier for the `index`th NFT,367 /// (sort order not specified)367 /// (sort order not specified)368 fn token_by_index(&self, index: uint256) -> Result<uint256> {368 fn token_by_index(&self, index: U256) -> Result<U256> {369 Ok(index)369 Ok(index)370 }370 }371371372 /// Not implemented372 /// Not implemented373 fn token_of_owner_by_index(&self, _owner: address, _index: uint256) -> Result<uint256> {373 fn token_of_owner_by_index(&self, _owner: address, _index: U256) -> Result<U256> {374 // TODO: Not implemetable374 // TODO: Not implemetable375 Err("not implemented".into())375 Err("not implemented".into())376 }376 }377377378 /// @notice Count RFTs tracked by this contract378 /// @notice Count RFTs tracked by this contract379 /// @return A count of valid RFTs tracked by this contract, where each one of379 /// @return A count of valid RFTs tracked by this contract, where each one of380 /// them has an assigned and queryable owner not equal to the zero address380 /// them has an assigned and queryable owner not equal to the zero address381 fn total_supply(&self) -> Result<uint256> {381 fn total_supply(&self) -> Result<U256> {382 self.consume_store_reads(1)?;382 self.consume_store_reads(1)?;383 Ok(<Pallet<T>>::total_supply(self).into())383 Ok(<Pallet<T>>::total_supply(self).into())384 }384 }393 /// function throws for queries about the zero address.393 /// function throws for queries about the zero address.394 /// @param owner An address for whom to query the balance394 /// @param owner An address for whom to query the balance395 /// @return The number of RFTs owned by `owner`, possibly zero395 /// @return The number of RFTs owned by `owner`, possibly zero396 fn balance_of(&self, owner: address) -> Result<uint256> {396 fn balance_of(&self, owner: address) -> Result<U256> {397 self.consume_store_reads(1)?;397 self.consume_store_reads(1)?;398 let owner = T::CrossAccountId::from_eth(owner);398 let owner = T::CrossAccountId::from_eth(owner);399 let balance = <AccountBalance<T>>::get((self.id, owner));399 let balance = <AccountBalance<T>>::get((self.id, owner));407 /// the tokens that are partially owned.407 /// the tokens that are partially owned.408 /// @param tokenId The identifier for an RFT408 /// @param tokenId The identifier for an RFT409 /// @return The address of the owner of the RFT409 /// @return The address of the owner of the RFT410 fn owner_of(&self, token_id: uint256) -> Result<address> {410 fn owner_of(&self, token_id: U256) -> Result<address> {411 self.consume_store_reads(2)?;411 self.consume_store_reads(2)?;412 let token = token_id.try_into()?;412 let token = token_id.try_into()?;413 let owner = <Pallet<T>>::token_owner(self.id, token);413 let owner = <Pallet<T>>::token_owner(self.id, token);422 &mut self,422 &mut self,423 _from: address,423 _from: address,424 _to: address,424 _to: address,425 _token_id: uint256,425 _token_id: U256,426 _data: bytes,426 _data: bytes,427 ) -> Result<()> {427 ) -> Result<()> {428 // TODO: Not implemetable428 // TODO: Not implemetable431431432 /// @dev Not implemented432 /// @dev Not implemented433 #[solidity(rename_selector = "safeTransferFrom")]433 #[solidity(rename_selector = "safeTransferFrom")]434 fn safe_transfer_from(434 fn safe_transfer_from(&mut self, _from: address, _to: address, _token_id: U256) -> Result<()> {435 &mut self,436 _from: address,437 _to: address,438 _token_id: uint256,439 ) -> Result<()> {440 // TODO: Not implemetable435 // TODO: Not implemetable441 Err("not implemented".into())436 Err("not implemented".into())457 caller: caller,452 caller: caller,458 from: address,453 from: address,459 to: address,454 to: address,460 token_id: uint256,455 token_id: U256,461 ) -> Result<()> {456 ) -> Result<()> {462 let caller = T::CrossAccountId::from_eth(caller);457 let caller = T::CrossAccountId::from_eth(caller);463 let from = T::CrossAccountId::from_eth(from);458 let from = T::CrossAccountId::from_eth(from);477 }472 }478473479 /// @dev Not implemented474 /// @dev Not implemented480 fn approve(&mut self, _caller: caller, _approved: address, _token_id: uint256) -> Result<()> {475 fn approve(&mut self, _caller: caller, _approved: address, _token_id: U256) -> Result<()> {481 Err("not implemented".into())476 Err("not implemented".into())482 }477 }483478501 }496 }502497503 /// @dev Not implemented498 /// @dev Not implemented504 fn get_approved(&self, _token_id: uint256) -> Result<address> {499 fn get_approved(&self, _token_id: U256) -> Result<address> {505 // TODO: Not implemetable500 // TODO: Not implemetable506 Err("not implemented".into())501 Err("not implemented".into())507 }502 }556 /// operator of the current owner.551 /// operator of the current owner.557 /// @param tokenId The RFT to approve552 /// @param tokenId The RFT to approve558 #[weight(<SelfWeightOf<T>>::burn_item_fully())]553 #[weight(<SelfWeightOf<T>>::burn_item_fully())]559 fn burn(&mut self, caller: caller, token_id: uint256) -> Result<()> {554 fn burn(&mut self, caller: caller, token_id: U256) -> Result<()> {560 let caller = T::CrossAccountId::from_eth(caller);555 let caller = T::CrossAccountId::from_eth(caller);561 let token = token_id.try_into()?;556 let token = token_id.try_into()?;562557575 /// @param to The new owner570 /// @param to The new owner576 /// @return uint256 The id of the newly minted token571 /// @return uint256 The id of the newly minted token577 #[weight(<SelfWeightOf<T>>::create_item())]572 #[weight(<SelfWeightOf<T>>::create_item())]578 fn mint(&mut self, caller: caller, to: address) -> Result<uint256> {573 fn mint(&mut self, caller: caller, to: address) -> Result<U256> {579 let token_id: uint256 = <TokensMinted<T>>::get(self.id)574 let token_id: U256 = <TokensMinted<T>>::get(self.id)580 .checked_add(1)575 .checked_add(1)581 .ok_or("item id overflow")?576 .ok_or("item id overflow")?582 .into();577 .into();591 /// @param tokenId ID of the minted RFT586 /// @param tokenId ID of the minted RFT592 #[solidity(hide, rename_selector = "mint")]587 #[solidity(hide, rename_selector = "mint")]593 #[weight(<SelfWeightOf<T>>::create_item())]588 #[weight(<SelfWeightOf<T>>::create_item())]594 fn mint_check_id(&mut self, caller: caller, to: address, token_id: uint256) -> Result<bool> {589 fn mint_check_id(&mut self, caller: caller, to: address, token_id: U256) -> Result<bool> {595 let caller = T::CrossAccountId::from_eth(caller);590 let caller = T::CrossAccountId::from_eth(caller);596 let to = T::CrossAccountId::from_eth(to);591 let to = T::CrossAccountId::from_eth(to);597 let token_id: u32 = token_id.try_into()?;592 let token_id: u32 = token_id.try_into()?;637 caller: caller,632 caller: caller,638 to: address,633 to: address,639 token_uri: string,634 token_uri: string,640 ) -> Result<uint256> {635 ) -> Result<U256> {641 let token_id: uint256 = <TokensMinted<T>>::get(self.id)636 let token_id: U256 = <TokensMinted<T>>::get(self.id)642 .checked_add(1)637 .checked_add(1)643 .ok_or("item id overflow")?638 .ok_or("item id overflow")?644 .into();639 .into();658 &mut self,653 &mut self,659 caller: caller,654 caller: caller,660 to: address,655 to: address,661 token_id: uint256,656 token_id: U256,662 token_uri: string,657 token_uri: string,663 ) -> Result<bool> {658 ) -> Result<bool> {664 let key = key::url();659 let key = key::url();768 /// Returns the owner (in cross format) of the token.763 /// Returns the owner (in cross format) of the token.769 ///764 ///770 /// @param tokenId Id for the token.765 /// @param tokenId Id for the token.771 fn cross_owner_of(&self, token_id: uint256) -> Result<eth::CrossAddress> {766 fn cross_owner_of(&self, token_id: U256) -> Result<eth::CrossAddress> {772 Self::token_owner(&self, token_id.try_into()?)767 Self::token_owner(&self, token_id.try_into()?)773 .map(|o| eth::CrossAddress::from_sub_cross_account::<T>(&o))768 .map(|o| eth::CrossAddress::from_sub_cross_account::<T>(&o))774 .ok_or(Error::Revert("key too large".into()))769 .ok_or(Error::Revert("key too large".into()))779 /// @param tokenId Id for the token.774 /// @param tokenId Id for the token.780 /// @param keys Properties keys. Empty keys for all propertyes.775 /// @param keys Properties keys. Empty keys for all propertyes.781 /// @return Vector of properties key/value pairs.776 /// @return Vector of properties key/value pairs.782 fn properties(&self, token_id: uint256, keys: Vec<string>) -> Result<Vec<eth::Property>> {777 fn properties(&self, token_id: U256, keys: Vec<string>) -> Result<Vec<eth::Property>> {783 let keys = keys778 let keys = keys784 .into_iter()779 .into_iter()785 .map(|key| {780 .map(|key| {805 /// @param to The new owner800 /// @param to The new owner806 /// @param tokenId The RFT to transfer801 /// @param tokenId The RFT to transfer807 #[weight(<SelfWeightOf<T>>::transfer_creating_removing())]802 #[weight(<SelfWeightOf<T>>::transfer_creating_removing())]808 fn transfer(&mut self, caller: caller, to: address, token_id: uint256) -> Result<()> {803 fn transfer(&mut self, caller: caller, to: address, token_id: U256) -> Result<()> {809 let caller = T::CrossAccountId::from_eth(caller);804 let caller = T::CrossAccountId::from_eth(caller);810 let to = T::CrossAccountId::from_eth(to);805 let to = T::CrossAccountId::from_eth(to);811 let token = token_id.try_into()?;806 let token = token_id.try_into()?;832 &mut self,827 &mut self,833 caller: caller,828 caller: caller,834 to: eth::CrossAddress,829 to: eth::CrossAddress,835 token_id: uint256,830 token_id: U256,836 ) -> Result<()> {831 ) -> Result<()> {837 let caller = T::CrossAccountId::from_eth(caller);832 let caller = T::CrossAccountId::from_eth(caller);838 let to = to.into_sub_cross_account::<T>()?;833 let to = to.into_sub_cross_account::<T>()?;861 caller: caller,856 caller: caller,862 from: eth::CrossAddress,857 from: eth::CrossAddress,863 to: eth::CrossAddress,858 to: eth::CrossAddress,864 token_id: uint256,859 token_id: U256,865 ) -> Result<()> {860 ) -> Result<()> {866 let caller = T::CrossAccountId::from_eth(caller);861 let caller = T::CrossAccountId::from_eth(caller);867 let from = from.into_sub_cross_account::<T>()?;862 let from = from.into_sub_cross_account::<T>()?;888 /// @param tokenId The RFT to transfer883 /// @param tokenId The RFT to transfer889 #[solidity(hide)]884 #[solidity(hide)]890 #[weight(<SelfWeightOf<T>>::burn_from())]885 #[weight(<SelfWeightOf<T>>::burn_from())]891 fn burn_from(&mut self, caller: caller, from: address, token_id: uint256) -> Result<()> {886 fn burn_from(&mut self, caller: caller, from: address, token_id: U256) -> Result<()> {892 let caller = T::CrossAccountId::from_eth(caller);887 let caller = T::CrossAccountId::from_eth(caller);893 let from = T::CrossAccountId::from_eth(from);888 let from = T::CrossAccountId::from_eth(from);894 let token = token_id.try_into()?;889 let token = token_id.try_into()?;916 &mut self,911 &mut self,917 caller: caller,912 caller: caller,918 from: eth::CrossAddress,913 from: eth::CrossAddress,919 token_id: uint256,914 token_id: U256,920 ) -> Result<()> {915 ) -> Result<()> {921 let caller = T::CrossAccountId::from_eth(caller);916 let caller = T::CrossAccountId::from_eth(caller);922 let from = from.into_sub_cross_account::<T>()?;917 let from = from.into_sub_cross_account::<T>()?;934 }929 }935930936 /// @notice Returns next free RFT ID.931 /// @notice Returns next free RFT ID.937 fn next_token_id(&self) -> Result<uint256> {932 fn next_token_id(&self) -> Result<U256> {938 self.consume_store_reads(1)?;933 self.consume_store_reads(1)?;939 Ok(<TokensMinted<T>>::get(self.id)934 Ok(<TokensMinted<T>>::get(self.id)940 .checked_add(1)935 .checked_add(1)949 /// @param tokenIds IDs of the minted RFTs944 /// @param tokenIds IDs of the minted RFTs950 #[solidity(hide)]945 #[solidity(hide)]951 #[weight(<SelfWeightOf<T>>::create_multiple_items(token_ids.len() as u32))]946 #[weight(<SelfWeightOf<T>>::create_multiple_items(token_ids.len() as u32))]952 fn mint_bulk(&mut self, caller: caller, to: address, token_ids: Vec<uint256>) -> Result<bool> {947 fn mint_bulk(&mut self, caller: caller, to: address, token_ids: Vec<U256>) -> Result<bool> {953 let caller = T::CrossAccountId::from_eth(caller);948 let caller = T::CrossAccountId::from_eth(caller);954 let to = T::CrossAccountId::from_eth(to);949 let to = T::CrossAccountId::from_eth(to);955 let mut expected_index = <TokensMinted<T>>::get(self.id)950 let mut expected_index = <TokensMinted<T>>::get(self.id)996 &mut self,991 &mut self,997 caller: caller,992 caller: caller,998 to: address,993 to: address,999 tokens: Vec<(uint256, string)>,994 tokens: Vec<(U256, string)>,1000 ) -> Result<bool> {995 ) -> Result<bool> {1001 let key = key::url();996 let key = key::url();1002 let caller = T::CrossAccountId::from_eth(caller);997 let caller = T::CrossAccountId::from_eth(caller);1054 caller: caller,1049 caller: caller,1055 to: eth::CrossAddress,1050 to: eth::CrossAddress,1056 properties: Vec<eth::Property>,1051 properties: Vec<eth::Property>,1057 ) -> Result<uint256> {1052 ) -> Result<U256> {1058 let token_id = <TokensMinted<T>>::get(self.id)1053 let token_id = <TokensMinted<T>>::get(self.id)1059 .checked_add(1)1054 .checked_add(1)1060 .ok_or("item id overflow")?;1055 .ok_or("item id overflow")?;1093 /// Returns EVM address for refungible token1088 /// Returns EVM address for refungible token1094 ///1089 ///1095 /// @param token ID of the token1090 /// @param token ID of the token1096 fn token_contract_address(&self, token: uint256) -> Result<address> {1091 fn token_contract_address(&self, token: U256) -> Result<address> {1097 Ok(T::EvmTokenAddressMapping::token_to_address(1092 Ok(T::EvmTokenAddressMapping::token_to_address(1098 self.id,1093 self.id,1099 token.try_into().map_err(|_| "token id overflow")?,1094 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.jsondiffbeforeafterboth--- a/tests/src/eth/abi/nonFungible.json
+++ b/tests/src/eth/abi/nonFungible.json
@@ -51,6 +51,12 @@
},
{
"anonymous": false,
+ "inputs": [],
+ "name": "MintingFinished",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
"inputs": [
{
"indexed": true,
@@ -417,6 +423,13 @@
"type": "function"
},
{
+ "inputs": [],
+ "name": "finishMinting",
+ "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
"inputs": [
{ "internalType": "uint256", "name": "tokenId", "type": "uint256" }
],
@@ -504,6 +517,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/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" },