difftreelog
Merge pull request #827 from UniqueNetwork/fix/frontier-get-code
in: master
Fix eth_getCode
15 files changed
Cargo.lockdiffbeforeafterboth2467[[package]]2467[[package]]2468name = "fc-consensus"2468name = "fc-consensus"2469version = "2.0.0-dev"2469version = "2.0.0-dev"2470source = "git+https://github.com/uniquenetwork/frontier?branch=unique-polkadot-v0.9.36#cf1894629c7df1c4dafe58aa773627a3d940da14"2470source = "git+https://github.com/uniquenetwork/frontier?branch=unique-polkadot-v0.9.36#ef8d2809ed05da0664e9b43cb87436451295b634"2471dependencies = [2471dependencies = [2472 "async-trait",2472 "async-trait",2473 "fc-db",2473 "fc-db",2486[[package]]2486[[package]]2487name = "fc-db"2487name = "fc-db"2488version = "2.0.0-dev"2488version = "2.0.0-dev"2489source = "git+https://github.com/uniquenetwork/frontier?branch=unique-polkadot-v0.9.36#cf1894629c7df1c4dafe58aa773627a3d940da14"2489source = "git+https://github.com/uniquenetwork/frontier?branch=unique-polkadot-v0.9.36#ef8d2809ed05da0664e9b43cb87436451295b634"2490dependencies = [2490dependencies = [2491 "fp-storage",2491 "fp-storage",2492 "kvdb-rocksdb",2492 "kvdb-rocksdb",2505[[package]]2505[[package]]2506name = "fc-mapping-sync"2506name = "fc-mapping-sync"2507version = "2.0.0-dev"2507version = "2.0.0-dev"2508source = "git+https://github.com/uniquenetwork/frontier?branch=unique-polkadot-v0.9.36#cf1894629c7df1c4dafe58aa773627a3d940da14"2508source = "git+https://github.com/uniquenetwork/frontier?branch=unique-polkadot-v0.9.36#ef8d2809ed05da0664e9b43cb87436451295b634"2509dependencies = [2509dependencies = [2510 "fc-db",2510 "fc-db",2511 "fp-consensus",2511 "fp-consensus",2522[[package]]2522[[package]]2523name = "fc-rpc"2523name = "fc-rpc"2524version = "2.0.0-dev"2524version = "2.0.0-dev"2525source = "git+https://github.com/uniquenetwork/frontier?branch=unique-polkadot-v0.9.36#cf1894629c7df1c4dafe58aa773627a3d940da14"2525source = "git+https://github.com/uniquenetwork/frontier?branch=unique-polkadot-v0.9.36#ef8d2809ed05da0664e9b43cb87436451295b634"2526dependencies = [2526dependencies = [2527 "ethereum 0.14.0",2527 "ethereum 0.14.0",2528 "ethereum-types 0.14.1",2528 "ethereum-types 0.14.1",2565[[package]]2565[[package]]2566name = "fc-rpc-core"2566name = "fc-rpc-core"2567version = "1.1.0-dev"2567version = "1.1.0-dev"2568source = "git+https://github.com/uniquenetwork/frontier?branch=unique-polkadot-v0.9.36#cf1894629c7df1c4dafe58aa773627a3d940da14"2568source = "git+https://github.com/uniquenetwork/frontier?branch=unique-polkadot-v0.9.36#ef8d2809ed05da0664e9b43cb87436451295b634"2569dependencies = [2569dependencies = [2570 "ethereum 0.14.0",2570 "ethereum 0.14.0",2571 "ethereum-types 0.14.1",2571 "ethereum-types 0.14.1",2730[[package]]2730[[package]]2731name = "fp-consensus"2731name = "fp-consensus"2732version = "2.0.0-dev"2732version = "2.0.0-dev"2733source = "git+https://github.com/uniquenetwork/frontier?branch=unique-polkadot-v0.9.36#cf1894629c7df1c4dafe58aa773627a3d940da14"2733source = "git+https://github.com/uniquenetwork/frontier?branch=unique-polkadot-v0.9.36#ef8d2809ed05da0664e9b43cb87436451295b634"2734dependencies = [2734dependencies = [2735 "ethereum 0.14.0",2735 "ethereum 0.14.0",2736 "parity-scale-codec 3.2.1",2736 "parity-scale-codec 3.2.1",2742[[package]]2742[[package]]2743name = "fp-ethereum"2743name = "fp-ethereum"2744version = "1.0.0-dev"2744version = "1.0.0-dev"2745source = "git+https://github.com/uniquenetwork/frontier?branch=unique-polkadot-v0.9.36#cf1894629c7df1c4dafe58aa773627a3d940da14"2745source = "git+https://github.com/uniquenetwork/frontier?branch=unique-polkadot-v0.9.36#ef8d2809ed05da0664e9b43cb87436451295b634"2746dependencies = [2746dependencies = [2747 "ethereum 0.14.0",2747 "ethereum 0.14.0",2748 "ethereum-types 0.14.1",2748 "ethereum-types 0.14.1",2757[[package]]2757[[package]]2758name = "fp-evm"2758name = "fp-evm"2759version = "3.0.0-dev"2759version = "3.0.0-dev"2760source = "git+https://github.com/uniquenetwork/frontier?branch=unique-polkadot-v0.9.36#cf1894629c7df1c4dafe58aa773627a3d940da14"2760source = "git+https://github.com/uniquenetwork/frontier?branch=unique-polkadot-v0.9.36#ef8d2809ed05da0664e9b43cb87436451295b634"2761dependencies = [2761dependencies = [2762 "evm",2762 "evm",2763 "frame-support",2763 "frame-support",2771[[package]]2771[[package]]2772name = "fp-evm-mapping"2772name = "fp-evm-mapping"2773version = "0.1.0"2773version = "0.1.0"2774source = "git+https://github.com/uniquenetwork/frontier?branch=unique-polkadot-v0.9.36#cf1894629c7df1c4dafe58aa773627a3d940da14"2774source = "git+https://github.com/uniquenetwork/frontier?branch=unique-polkadot-v0.9.36#ef8d2809ed05da0664e9b43cb87436451295b634"2775dependencies = [2775dependencies = [2776 "frame-support",2776 "frame-support",2777 "sp-core",2777 "sp-core",2780[[package]]2780[[package]]2781name = "fp-rpc"2781name = "fp-rpc"2782version = "3.0.0-dev"2782version = "3.0.0-dev"2783source = "git+https://github.com/uniquenetwork/frontier?branch=unique-polkadot-v0.9.36#cf1894629c7df1c4dafe58aa773627a3d940da14"2783source = "git+https://github.com/uniquenetwork/frontier?branch=unique-polkadot-v0.9.36#ef8d2809ed05da0664e9b43cb87436451295b634"2784dependencies = [2784dependencies = [2785 "ethereum 0.14.0",2785 "ethereum 0.14.0",2786 "ethereum-types 0.14.1",2786 "ethereum-types 0.14.1",2797[[package]]2797[[package]]2798name = "fp-self-contained"2798name = "fp-self-contained"2799version = "1.0.0-dev"2799version = "1.0.0-dev"2800source = "git+https://github.com/uniquenetwork/frontier?branch=unique-polkadot-v0.9.36#cf1894629c7df1c4dafe58aa773627a3d940da14"2800source = "git+https://github.com/uniquenetwork/frontier?branch=unique-polkadot-v0.9.36#ef8d2809ed05da0664e9b43cb87436451295b634"2801dependencies = [2801dependencies = [2802 "ethereum 0.14.0",2802 "ethereum 0.14.0",2803 "frame-support",2803 "frame-support",2810[[package]]2810[[package]]2811name = "fp-storage"2811name = "fp-storage"2812version = "2.0.0"2812version = "2.0.0"2813source = "git+https://github.com/uniquenetwork/frontier?branch=unique-polkadot-v0.9.36#cf1894629c7df1c4dafe58aa773627a3d940da14"2813source = "git+https://github.com/uniquenetwork/frontier?branch=unique-polkadot-v0.9.36#ef8d2809ed05da0664e9b43cb87436451295b634"2814dependencies = [2814dependencies = [2815 "parity-scale-codec 3.2.1",2815 "parity-scale-codec 3.2.1",2816 "serde",2816 "serde",5687[[package]]5687[[package]]5688name = "pallet-base-fee"5688name = "pallet-base-fee"5689version = "1.0.0"5689version = "1.0.0"5690source = "git+https://github.com/uniquenetwork/frontier?branch=unique-polkadot-v0.9.36#cf1894629c7df1c4dafe58aa773627a3d940da14"5690source = "git+https://github.com/uniquenetwork/frontier?branch=unique-polkadot-v0.9.36#ef8d2809ed05da0664e9b43cb87436451295b634"5691dependencies = [5691dependencies = [5692 "fp-evm",5692 "fp-evm",5693 "frame-support",5693 "frame-support",5952[[package]]5952[[package]]5953name = "pallet-ethereum"5953name = "pallet-ethereum"5954version = "4.0.0-dev"5954version = "4.0.0-dev"5955source = "git+https://github.com/uniquenetwork/frontier?branch=unique-polkadot-v0.9.36#cf1894629c7df1c4dafe58aa773627a3d940da14"5955source = "git+https://github.com/uniquenetwork/frontier?branch=unique-polkadot-v0.9.36#ef8d2809ed05da0664e9b43cb87436451295b634"5956dependencies = [5956dependencies = [5957 "ethereum 0.14.0",5957 "ethereum 0.14.0",5958 "ethereum-types 0.14.1",5958 "ethereum-types 0.14.1",5980[[package]]5980[[package]]5981name = "pallet-evm"5981name = "pallet-evm"5982version = "6.0.0-dev"5982version = "6.0.0-dev"5983source = "git+https://github.com/uniquenetwork/frontier?branch=unique-polkadot-v0.9.36#cf1894629c7df1c4dafe58aa773627a3d940da14"5983source = "git+https://github.com/uniquenetwork/frontier?branch=unique-polkadot-v0.9.36#ef8d2809ed05da0664e9b43cb87436451295b634"5984dependencies = [5984dependencies = [5985 "environmental",5985 "environmental",5986 "evm",5986 "evm",6066[[package]]6066[[package]]6067name = "pallet-evm-precompile-simple"6067name = "pallet-evm-precompile-simple"6068version = "2.0.0-dev"6068version = "2.0.0-dev"6069source = "git+https://github.com/uniquenetwork/frontier?branch=unique-polkadot-v0.9.36#cf1894629c7df1c4dafe58aa773627a3d940da14"6069source = "git+https://github.com/uniquenetwork/frontier?branch=unique-polkadot-v0.9.36#ef8d2809ed05da0664e9b43cb87436451295b634"6070dependencies = [6070dependencies = [6071 "fp-evm",6071 "fp-evm",6072 "ripemd",6072 "ripemd",crates/evm-coder/procedural/src/solidity_interface.rsdiffbeforeafterboth811 let list = generics_list(gen);811 let list = generics_list(gen);812 quote! { <#list> }812 quote! { <#list> }813}813}814fn generics_stub(gen: &Generics) -> proc_macro2::TokenStream {815 if gen.params.is_empty() {816 return quote! {};817 }818 let params = (0..gen.params.len()).map(|_| quote! {()});819 quote! {<#(#params,)*>}820}814fn generics_data(gen: &Generics) -> proc_macro2::TokenStream {821fn generics_data(gen: &Generics) -> proc_macro2::TokenStream {815 let list = generics_list(gen);822 let list = generics_list(gen);816 if gen.params.len() == 1 {823 if gen.params.len() == 1 {866 let generics = self.generics;873 let generics = self.generics;867 let gen_ref = generics_reference(&generics);874 let gen_ref = generics_reference(&generics);868 let gen_data = generics_data(&generics);875 let gen_data = generics_data(&generics);876 let gen_stub = generics_stub(&generics);869 let gen_where = &generics.where_clause;877 let gen_where = &generics.where_clause;870878871 let call_sub = self879 let call_sub = self936 let solidity_events_idents = self.info.events.0.iter().map(|is| is.name.clone());944 let solidity_events_idents = self.info.events.0.iter().map(|is| is.name.clone());937 let docs = &self.docs;945 let docs = &self.docs;946947 let expect_selector = self.info.expect_selector.map(|s| {948 quote! {949 const _: () = assert!(#s == u32::from_be_bytes(<#call_name #gen_stub>::interface_id()), "selector mismatch, review contained function selectors");950 }951 });938952939 quote! {953 quote! {940 #(954 #(953 )*967 )*954 }968 }969970 #expect_selector971955 impl #gen_ref #call_name #gen_ref {972 impl #gen_ref #call_name #gen_ref {956 #(973 #(957 #consts974 #consts958 )*975 )*959 /// Return this call ERC165 selector976 /// Return this call ERC165 selector960 pub fn interface_id() -> ::evm_coder::types::bytes4 {977 pub const fn interface_id() -> ::evm_coder::types::bytes4 {961 let mut interface_id = 0;978 let mut interface_id = 0;962 #(#interface_id)*979 #(#interface_id)*963 #(#inline_interface_id)*980 #(#inline_interface_id)*pallets/nonfungible/src/erc.rsdiffbeforeafterboth525 Ok(<Pallet<T>>::allowance_for_all(self, &owner, &operator))525 Ok(<Pallet<T>>::allowance_for_all(self, &owner, &operator))526 }526 }527528 /// @notice Returns collection helper contract address529 fn collection_helper_address(&self) -> Result<address> {530 Ok(T::ContractAddress::get())531 }532}527}533528534/// @title ERC721 Token that can be irreversibly burned (destroyed).529/// @title ERC721 Token that can be irreversibly burned (destroyed).1059 Ok(token_id.into())1054 Ok(token_id.into())1060 }1055 }10561057 /// @notice Returns collection helper contract address1058 fn collection_helper_address(&self) -> Result<address> {1059 Ok(T::ContractAddress::get())1060 }1061}1061}106210621063#[solidity_interface(1063#[solidity_interface(pallets/nonfungible/src/stubs/UniqueNFT.rawdiffbeforeafterbothbinary blob — no preview
pallets/nonfungible/src/stubs/UniqueNFT.soldiffbeforeafterboth785}785}786786787/// @title Unique extensions for ERC721.787/// @title Unique extensions for ERC721.788/// @dev the ERC-165 identifier for this interface is 0x0e48fdb4788/// @dev the ERC-165 identifier for this interface is 0x16de3152789contract ERC721UniqueExtensions is Dummy, ERC165 {789contract ERC721UniqueExtensions is Dummy, ERC165 {790 /// @notice A descriptive name for a collection of NFTs in this contract790 /// @notice A descriptive name for a collection of NFTs in this contract791 /// @dev EVM selector for this function is: 0x06fdde03,791 /// @dev EVM selector for this function is: 0x06fdde03,987 return 0;987 return 0;988 }988 }989990 /// @notice Returns collection helper contract address991 /// @dev EVM selector for this function is: 0x1896cce6,992 /// or in textual repr: collectionHelperAddress()993 function collectionHelperAddress() public view returns (address) {994 require(false, stub_error);995 dummy;996 return 0x0000000000000000000000000000000000000000;997 }989}998}990999991/// @dev anonymous struct1000/// @dev anonymous struct104310521044/// @title ERC-721 Non-Fungible Token Standard1053/// @title ERC-721 Non-Fungible Token Standard1045/// @dev See https://github.com/ethereum/EIPs/blob/master/EIPS/eip-721.md1054/// @dev See https://github.com/ethereum/EIPs/blob/master/EIPS/eip-721.md1046/// @dev the ERC-165 identifier for this interface is 0x983a942b1055/// @dev the ERC-165 identifier for this interface is 0x80ac58cd1047contract ERC721 is Dummy, ERC165, ERC721Events {1056contract ERC721 is Dummy, ERC165, ERC721Events {1048 /// @notice Count all NFTs assigned to an owner1057 /// @notice Count all NFTs assigned to an owner1049 /// @dev NFTs assigned to the zero address are considered invalid, and this1058 /// @dev NFTs assigned to the zero address are considered invalid, and this1177 return false;1186 return false;1178 }1187 }11791180 /// @notice Returns collection helper contract address1181 /// @dev EVM selector for this function is: 0x1896cce6,1182 /// or in textual repr: collectionHelperAddress()1183 function collectionHelperAddress() public view returns (address) {1184 require(false, stub_error);1185 dummy;1186 return 0x0000000000000000000000000000000000000000;1187 }1188}1188}118911891190contract UniqueNFT is1190contract UniqueNFT ispallets/refungible/src/erc.rsdiffbeforeafterboth295 MintingFinished {},295 MintingFinished {},296}296}297297298/// @title ERC-721 Non-Fungible Token Standard, optional metadata extension299/// @dev See https://eips.ethereum.org/EIPS/eip-721298#[solidity_interface(name = ERC721Metadata)]300#[solidity_interface(name = ERC721Metadata, expect_selector = 0x5b5e139f)]299impl<T: Config> RefungibleHandle<T>301impl<T: Config> RefungibleHandle<T>300where302where301 T::AccountId: From<[u8; 32]> + AsRef<[u8; 32]>,303 T::AccountId: From<[u8; 32]> + AsRef<[u8; 32]>,364366365/// @title ERC-721 Non-Fungible Token Standard, optional enumeration extension367/// @title ERC-721 Non-Fungible Token Standard, optional enumeration extension366/// @dev See https://eips.ethereum.org/EIPS/eip-721368/// @dev See https://eips.ethereum.org/EIPS/eip-721367#[solidity_interface(name = ERC721Enumerable)]369#[solidity_interface(name = ERC721Enumerable, expect_selector = 0x780e9d63)]368impl<T: Config> RefungibleHandle<T> {370impl<T: Config> RefungibleHandle<T> {369 /// @notice Enumerate valid RFTs371 /// @notice Enumerate valid RFTs370 /// @param index A counter less than `totalSupply()`372 /// @param index A counter less than `totalSupply()`391393392/// @title ERC-721 Non-Fungible Token Standard394/// @title ERC-721 Non-Fungible Token Standard393/// @dev See https://github.com/ethereum/EIPs/blob/master/EIPS/eip-721.md395/// @dev See https://github.com/ethereum/EIPs/blob/master/EIPS/eip-721.md394#[solidity_interface(name = ERC721, events(ERC721Events))]396#[solidity_interface(name = ERC721, events(ERC721Events), expect_selector = 0x80ac58cd)]395impl<T: Config> RefungibleHandle<T> {397impl<T: Config> RefungibleHandle<T> {396 /// @notice Count all RFTs assigned to an owner398 /// @notice Count all RFTs assigned to an owner397 /// @dev RFTs assigned to the zero address are considered invalid, and this399 /// @dev RFTs assigned to the zero address are considered invalid, and this422 }424 }423425424 /// @dev Not implemented426 /// @dev Not implemented427 #[solidity(rename_selector = "safeTransferFrom")]425 fn safe_transfer_from_with_data(428 fn safe_transfer_from_with_data(426 &mut self,429 &mut self,427 _from: address,430 _from: address,434 }437 }435438436 /// @dev Not implemented439 /// @dev Not implemented440 #[solidity(rename_selector = "safeTransferFrom")]437 fn safe_transfer_from(441 fn safe_transfer_from(438 &mut self,442 &mut self,439 _from: address,443 _from: address,518 Ok(<Pallet<T>>::allowance_for_all(self, &owner, &operator))522 Ok(<Pallet<T>>::allowance_for_all(self, &owner, &operator))519 }523 }520521 /// @notice Returns collection helper contract address522 fn collection_helper_address(&self) -> Result<address> {523 Ok(T::ContractAddress::get())524 }525}524}526525527/// Returns amount of pieces of `token` that `owner` have526/// Returns amount of pieces of `token` that `owner` have1117 ))1116 ))1118 }1117 }11181119 /// @notice Returns collection helper contract address1120 fn collection_helper_address(&self) -> Result<address> {1121 Ok(T::ContractAddress::get())1122 }1119}1123}112011241121#[solidity_interface(1125#[solidity_interface(pallets/refungible/src/stubs/UniqueRefungible.rawdiffbeforeafterbothbinary blob — no preview
pallets/refungible/src/stubs/UniqueRefungible.soldiffbeforeafterboth641 TransferEnabled641 TransferEnabled642}642}643643644/// @title ERC-721 Non-Fungible Token Standard, optional metadata extension645/// @dev See https://eips.ethereum.org/EIPS/eip-721644/// @dev the ERC-165 identifier for this interface is 0x5b5e139f646/// @dev the ERC-165 identifier for this interface is 0x5b5e139f645contract ERC721Metadata is Dummy, ERC165 {647contract ERC721Metadata is Dummy, ERC165 {646 // /// @notice A descriptive name for a collection of NFTs in this contract648 // /// @notice A descriptive name for a collection of NFTs in this contract783}785}784786785/// @title Unique extensions for ERC721.787/// @title Unique extensions for ERC721.786/// @dev the ERC-165 identifier for this interface is 0xabf30dc2788/// @dev the ERC-165 identifier for this interface is 0xb365c124787contract ERC721UniqueExtensions is Dummy, ERC165 {789contract ERC721UniqueExtensions is Dummy, ERC165 {788 /// @notice A descriptive name for a collection of NFTs in this contract790 /// @notice A descriptive name for a collection of NFTs in this contract789 /// @dev EVM selector for this function is: 0x06fdde03,791 /// @dev EVM selector for this function is: 0x06fdde03,986 return 0x0000000000000000000000000000000000000000;988 return 0x0000000000000000000000000000000000000000;987 }989 }990991 /// @notice Returns collection helper contract address992 /// @dev EVM selector for this function is: 0x1896cce6,993 /// or in textual repr: collectionHelperAddress()994 function collectionHelperAddress() public view returns (address) {995 require(false, stub_error);996 dummy;997 return 0x0000000000000000000000000000000000000000;998 }988}999}9891000990/// @dev anonymous struct1001/// @dev anonymous struct104210531043/// @title ERC-721 Non-Fungible Token Standard1054/// @title ERC-721 Non-Fungible Token Standard1044/// @dev See https://github.com/ethereum/EIPs/blob/master/EIPS/eip-721.md1055/// @dev See https://github.com/ethereum/EIPs/blob/master/EIPS/eip-721.md1045/// @dev the ERC-165 identifier for this interface is 0x4016cd871056/// @dev the ERC-165 identifier for this interface is 0x80ac58cd1046contract ERC721 is Dummy, ERC165, ERC721Events {1057contract ERC721 is Dummy, ERC165, ERC721Events {1047 /// @notice Count all RFTs assigned to an owner1058 /// @notice Count all RFTs assigned to an owner1048 /// @dev RFTs assigned to the zero address are considered invalid, and this1059 /// @dev RFTs assigned to the zero address are considered invalid, and this1075 }1086 }107610871077 /// @dev Not implemented1088 /// @dev Not implemented1078 /// @dev EVM selector for this function is: 0x60a11672,1089 /// @dev EVM selector for this function is: 0xb88d4fde,1079 /// or in textual repr: safeTransferFromWithData(address,address,uint256,bytes)1090 /// or in textual repr: safeTransferFrom(address,address,uint256,bytes)1080 function safeTransferFromWithData(1091 function safeTransferFrom(1081 address from,1092 address from,1082 address to,1093 address to,1083 uint256 tokenId,1094 uint256 tokenId,1174 return false;1185 return false;1175 }1186 }11761177 /// @notice Returns collection helper contract address1178 /// @dev EVM selector for this function is: 0x1896cce6,1179 /// or in textual repr: collectionHelperAddress()1180 function collectionHelperAddress() public view returns (address) {1181 require(false, stub_error);1182 dummy;1183 return 0x0000000000000000000000000000000000000000;1184 }1185}1187}118611881187contract UniqueRefungible is1189contract UniqueRefungible isruntime/common/ethereum/sponsoring/refungible.rsdiffbeforeafterboth140 | OwnerOf { .. }140 | OwnerOf { .. }141 | GetApproved { .. }141 | GetApproved { .. }142 | IsApprovedForAll { .. }142 | IsApprovedForAll { .. } => None,143 | CollectionHelperAddress => None,144143145 // Not sponsored144 // Not sponsored146 SafeTransferFromWithData { .. }145 SafeTransferFromWithData { .. }231 | Properties { .. }230 | Properties { .. }232 | NextTokenId231 | NextTokenId233 | TokenContractAddress { .. } => None,232 | TokenContractAddress { .. }233 | CollectionHelperAddress => None,234234235 // Not sponsored235 // Not sponsored236 BurnFrom { .. }236 BurnFrom { .. }runtime/common/runtime_apis.rsdiffbeforeafterboth451 }451 }452452453 fn account_code_at(address: H160) -> Vec<u8> {453 fn account_code_at(address: H160) -> Vec<u8> {454 use pallet_evm::OnMethodCall;455 <Runtime as pallet_evm::Config>::OnMethodCall::get_code(&address)454 EVM::account_codes(address)456 .unwrap_or_else(|| EVM::account_codes(address))455 }457 }456458457 fn author() -> H160 {459 fn author() -> H160 {tests/src/eth/abi/nonFungible.jsondiffbeforeafterboth49 "name": "ApprovalForAll",49 "name": "ApprovalForAll",50 "type": "event"50 "type": "event"51 },51 },52 {53 "anonymous": false,54 "inputs": [],55 "name": "MintingFinished",56 "type": "event"57 },52 {58 {53 "anonymous": false,59 "anonymous": false,54 "inputs": [60 "inputs": [416 "stateMutability": "view",422 "stateMutability": "view",417 "type": "function"423 "type": "function"418 },424 },425 {426 "inputs": [],427 "name": "finishMinting",428 "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }],429 "stateMutability": "nonpayable",430 "type": "function"431 },419 {432 {420 "inputs": [433 "inputs": [421 { "internalType": "uint256", "name": "tokenId", "type": "uint256" }434 { "internalType": "uint256", "name": "tokenId", "type": "uint256" }502 "stateMutability": "nonpayable",515 "stateMutability": "nonpayable",503 "type": "function"516 "type": "function"504 },517 },518 {519 "inputs": [],520 "name": "mintingFinished",521 "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }],522 "stateMutability": "view",523 "type": "function"524 },505 {525 {506 "inputs": [],526 "inputs": [],507 "name": "name",527 "name": "name",tests/src/eth/abi/reFungible.jsondiffbeforeafterboth49 "name": "ApprovalForAll",49 "name": "ApprovalForAll",50 "type": "event"50 "type": "event"51 },51 },52 {53 "anonymous": false,54 "inputs": [],55 "name": "MintingFinished",56 "type": "event"57 },52 {58 {53 "anonymous": false,59 "anonymous": false,54 "inputs": [60 "inputs": [398 "stateMutability": "view",404 "stateMutability": "view",399 "type": "function"405 "type": "function"400 },406 },407 {408 "inputs": [],409 "name": "finishMinting",410 "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }],411 "stateMutability": "nonpayable",412 "type": "function"413 },401 {414 {402 "inputs": [415 "inputs": [403 { "internalType": "uint256", "name": "tokenId", "type": "uint256" }416 { "internalType": "uint256", "name": "tokenId", "type": "uint256" }484 "stateMutability": "nonpayable",497 "stateMutability": "nonpayable",485 "type": "function"498 "type": "function"486 },499 },500 {501 "inputs": [],502 "name": "mintingFinished",503 "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }],504 "stateMutability": "view",505 "type": "function"506 },487 {507 {488 "inputs": [],508 "inputs": [],489 "name": "name",509 "name": "name",596 { "internalType": "uint256", "name": "tokenId", "type": "uint256" },616 { "internalType": "uint256", "name": "tokenId", "type": "uint256" },597 { "internalType": "bytes", "name": "data", "type": "bytes" }617 { "internalType": "bytes", "name": "data", "type": "bytes" }598 ],618 ],599 "name": "safeTransferFromWithData",619 "name": "safeTransferFrom",600 "outputs": [],620 "outputs": [],601 "stateMutability": "nonpayable",621 "stateMutability": "nonpayable",602 "type": "function"622 "type": "function"tests/src/eth/abi/reFungibleToken.jsondiffbeforeafterboth96 "stateMutability": "view",96 "stateMutability": "view",97 "type": "function"97 "type": "function"98 },98 },99 {100 "inputs": [101 { "internalType": "address", "name": "from", "type": "address" },102 { "internalType": "uint256", "name": "amount", "type": "uint256" }103 ],104 "name": "burnFrom",105 "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }],106 "stateMutability": "nonpayable",107 "type": "function"108 },99 {109 {100 "inputs": [110 "inputs": [101 {111 {tests/src/eth/api/UniqueNFT.soldiffbeforeafterboth536}536}537537538/// @title Unique extensions for ERC721.538/// @title Unique extensions for ERC721.539/// @dev the ERC-165 identifier for this interface is 0x0e48fdb4539/// @dev the ERC-165 identifier for this interface is 0x16de3152540interface ERC721UniqueExtensions is Dummy, ERC165 {540interface ERC721UniqueExtensions is Dummy, ERC165 {541 /// @notice A descriptive name for a collection of NFTs in this contract541 /// @notice A descriptive name for a collection of NFTs in this contract542 /// @dev EVM selector for this function is: 0x06fdde03,542 /// @dev EVM selector for this function is: 0x06fdde03,662 /// or in textual repr: mintCross((address,uint256),(string,bytes)[])662 /// or in textual repr: mintCross((address,uint256),(string,bytes)[])663 function mintCross(CrossAddress memory to, Property[] memory properties) external returns (uint256);663 function mintCross(CrossAddress memory to, Property[] memory properties) external returns (uint256);664665 /// @notice Returns collection helper contract address666 /// @dev EVM selector for this function is: 0x1896cce6,667 /// or in textual repr: collectionHelperAddress()668 function collectionHelperAddress() external view returns (address);664}669}665670666/// @dev anonymous struct671/// @dev anonymous struct703708704/// @title ERC-721 Non-Fungible Token Standard709/// @title ERC-721 Non-Fungible Token Standard705/// @dev See https://github.com/ethereum/EIPs/blob/master/EIPS/eip-721.md710/// @dev See https://github.com/ethereum/EIPs/blob/master/EIPS/eip-721.md706/// @dev the ERC-165 identifier for this interface is 0x983a942b711/// @dev the ERC-165 identifier for this interface is 0x80ac58cd707interface ERC721 is Dummy, ERC165, ERC721Events {712interface ERC721 is Dummy, ERC165, ERC721Events {708 /// @notice Count all NFTs assigned to an owner713 /// @notice Count all NFTs assigned to an owner709 /// @dev NFTs assigned to the zero address are considered invalid, and this714 /// @dev NFTs assigned to the zero address are considered invalid, and this787 /// or in textual repr: isApprovedForAll(address,address)792 /// or in textual repr: isApprovedForAll(address,address)788 function isApprovedForAll(address owner, address operator) external view returns (bool);793 function isApprovedForAll(address owner, address operator) external view returns (bool);789790 /// @notice Returns collection helper contract address791 /// @dev EVM selector for this function is: 0x1896cce6,792 /// or in textual repr: collectionHelperAddress()793 function collectionHelperAddress() external view returns (address);794}794}795795796interface UniqueNFT is796interface UniqueNFT istests/src/eth/api/UniqueRefungible.soldiffbeforeafterboth441 TransferEnabled441 TransferEnabled442}442}443443444/// @title ERC-721 Non-Fungible Token Standard, optional metadata extension445/// @dev See https://eips.ethereum.org/EIPS/eip-721444/// @dev the ERC-165 identifier for this interface is 0x5b5e139f446/// @dev the ERC-165 identifier for this interface is 0x5b5e139f445interface ERC721Metadata is Dummy, ERC165 {447interface ERC721Metadata is Dummy, ERC165 {446 // /// @notice A descriptive name for a collection of NFTs in this contract448 // /// @notice A descriptive name for a collection of NFTs in this contract534}536}535537536/// @title Unique extensions for ERC721.538/// @title Unique extensions for ERC721.537/// @dev the ERC-165 identifier for this interface is 0xabf30dc2539/// @dev the ERC-165 identifier for this interface is 0xb365c124538interface ERC721UniqueExtensions is Dummy, ERC165 {540interface ERC721UniqueExtensions is Dummy, ERC165 {539 /// @notice A descriptive name for a collection of NFTs in this contract541 /// @notice A descriptive name for a collection of NFTs in this contract540 /// @dev EVM selector for this function is: 0x06fdde03,542 /// @dev EVM selector for this function is: 0x06fdde03,661 /// or in textual repr: tokenContractAddress(uint256)663 /// or in textual repr: tokenContractAddress(uint256)662 function tokenContractAddress(uint256 token) external view returns (address);664 function tokenContractAddress(uint256 token) external view returns (address);665666 /// @notice Returns collection helper contract address667 /// @dev EVM selector for this function is: 0x1896cce6,668 /// or in textual repr: collectionHelperAddress()669 function collectionHelperAddress() external view returns (address);663}670}664671665/// @dev anonymous struct672/// @dev anonymous struct702709703/// @title ERC-721 Non-Fungible Token Standard710/// @title ERC-721 Non-Fungible Token Standard704/// @dev See https://github.com/ethereum/EIPs/blob/master/EIPS/eip-721.md711/// @dev See https://github.com/ethereum/EIPs/blob/master/EIPS/eip-721.md705/// @dev the ERC-165 identifier for this interface is 0x4016cd87712/// @dev the ERC-165 identifier for this interface is 0x80ac58cd706interface ERC721 is Dummy, ERC165, ERC721Events {713interface ERC721 is Dummy, ERC165, ERC721Events {707 /// @notice Count all RFTs assigned to an owner714 /// @notice Count all RFTs assigned to an owner708 /// @dev RFTs assigned to the zero address are considered invalid, and this715 /// @dev RFTs assigned to the zero address are considered invalid, and this725 function ownerOf(uint256 tokenId) external view returns (address);732 function ownerOf(uint256 tokenId) external view returns (address);726733727 /// @dev Not implemented734 /// @dev Not implemented728 /// @dev EVM selector for this function is: 0x60a11672,735 /// @dev EVM selector for this function is: 0xb88d4fde,729 /// or in textual repr: safeTransferFromWithData(address,address,uint256,bytes)736 /// or in textual repr: safeTransferFrom(address,address,uint256,bytes)730 function safeTransferFromWithData(737 function safeTransferFrom(731 address from,738 address from,732 address to,739 address to,733 uint256 tokenId,740 uint256 tokenId,784 /// or in textual repr: isApprovedForAll(address,address)791 /// or in textual repr: isApprovedForAll(address,address)785 function isApprovedForAll(address owner, address operator) external view returns (bool);792 function isApprovedForAll(address owner, address operator) external view returns (bool);786787 /// @notice Returns collection helper contract address788 /// @dev EVM selector for this function is: 0x1896cce6,789 /// or in textual repr: collectionHelperAddress()790 function collectionHelperAddress() external view returns (address);791}793}792794793interface UniqueRefungible is795interface UniqueRefungible is