git.delta.rocks / unique-network / refs/commits / c535db977251

difftreelog

fix token uri == const_data

Yaroslav Bolyukin2021-08-11parent: #cc62c5a.patch.diff
in: master

2 files changed

modifiedpallets/nft/src/eth/erc.rsdiffbeforeafterboth
2use 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,
4645
47#[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}
5459
modifiedpallets/nft/src/eth/stubs/ERC721.soldiffbeforeafterboth
140}140}
141141
142contract 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;