difftreelog
fix token uri == const_data
in: master
2 files changed
pallets/nft/src/eth/erc.rsdiffbeforeafterboth2use evm_coder::{ToLog, execution::Result, solidity, solidity_interface, types::*};2use evm_coder::{ToLog, execution::Result, solidity, solidity_interface, types::*};3use nft_data_structs::{CreateItemData, CreateNftData};3use nft_data_structs::{CreateItemData, CreateNftData};4use core::convert::TryInto;4use core::convert::TryInto;5use alloc::format;6use crate::{5use crate::{7 Allowances, Module, Balance, CollectionHandle, CollectionMode, Config, NftItemList,6 Allowances, Module, Balance, CollectionHandle, CollectionMode, Config, NftItemList,8 ItemListIndex,7 ItemListIndex,464547#[solidity_interface(name = "ERC721Metadata", inline_is(InlineNameSymbol))]46#[solidity_interface(name = "ERC721Metadata", inline_is(InlineNameSymbol))]48impl<T: Config> CollectionHandle<T> {47impl<T: Config> CollectionHandle<T> {48 #[solidity(rename_selector = "tokenURI")]49 fn token_uri(&self, token_id: uint256) -> Result<string> {49 fn token_uri(&self, token_id: uint256) -> Result<string> {50 // TODO: We should standartize url prefix, maybe via offchain schema?50 let token_id: u32 = token_id.try_into().map_err(|_| "token id overflow")?;51 Ok(format!("unique.network/{}/{}", self.id, token_id))51 Ok(string::from_utf8_lossy(52 &<NftItemList<T>>::get(self.id, token_id)53 .ok_or("token not found")?54 .const_data,55 )56 .into())52 }57 }53}58}5459pallets/nft/src/eth/stubs/ERC721.soldiffbeforeafterboth140}140}141141142contract ERC721Metadata is Dummy, InlineNameSymbol {142contract ERC721Metadata is Dummy, InlineNameSymbol {143 function tokenUri(uint256 tokenId) public view returns (string memory) {143 function tokenURI(uint256 tokenId) public view returns (string memory) {144 require(false, stub_error);144 require(false, stub_error);145 tokenId;145 tokenId;146 dummy;146 dummy;