git.delta.rocks / unique-network / refs/commits / 7d68ab6c6ac0

difftreelog

CORE-346 Add static tokenURI key

Trubnikov Sergey2022-05-27parent: #ffa590c.patch.diff
in: master

5 files changed

modifiedCargo.lockdiffbeforeafterboth
--- a/Cargo.lock
+++ b/Cargo.lock
@@ -4290,6 +4290,9 @@
 version = "1.4.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646"
+dependencies = [
+ "spin",
+]
 
 [[package]]
 name = "lazycell"
@@ -5917,6 +5920,7 @@
  "frame-benchmarking",
  "frame-support",
  "frame-system",
+ "lazy_static",
  "pallet-evm",
  "pallet-evm-coder-substrate",
  "parity-scale-codec 3.1.2",
modifiedpallets/common/Cargo.tomldiffbeforeafterboth
--- a/pallets/common/Cargo.toml
+++ b/pallets/common/Cargo.toml
@@ -16,16 +16,18 @@
 sp-runtime = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.21" }
 sp-std = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.21" }
 sp-core = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.21" }
+frame-benchmarking = { default-features = false, optional = true, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.21" }
 fp-evm-mapping = { default-features = false, git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.21-logs" }
 up-data-structs = { default-features = false, path = '../../primitives/data-structs' }
 pallet-evm-coder-substrate = { default-features = false, path = '../../pallets/evm-coder-substrate' }
 evm-coder = { default-features = false, path = '../../crates/evm-coder' }
 pallet-evm = { default-features = false, git = "https://github.com/uniquenetwork/frontier", branch = "unique-polkadot-v0.9.21-logs" }
+
 serde = { version = "1.0.130", default-features = false }
 scale-info = { version = "2.0.1", default-features = false, features = [
     "derive",
 ] }
-frame-benchmarking = { default-features = false, optional = true, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.21" }
+lazy_static = { version = "1.4.0", default-features = false, features = ["spin_no_std"] }
 
 [features]
 default = ["std"]
modifiedpallets/common/src/eth.rsdiffbeforeafterboth
--- a/pallets/common/src/eth.rs
+++ b/pallets/common/src/eth.rs
@@ -17,6 +17,14 @@
 use up_data_structs::CollectionId;
 use sp_core::H160;
 
+lazy_static::lazy_static! {
+	pub static ref KEY_TOKEN_URI: up_data_structs::PropertyKey = {
+		let key: evm_coder::types::string = "tokenURI".into(); //TODO: make static
+		let key: up_data_structs::PropertyKey = key.into_bytes().try_into().expect("Can't create \"tokenURI\" key");
+		key
+	};
+}
+
 // 0x17c4e6453Cc49AAAaEACA894e6D9683e00000001 - collection 1
 // TODO: Unhardcode prefix
 const ETH_COLLECTION_PREFIX: [u8; 16] = [
modifiedpallets/nonfungible/src/erc.rsdiffbeforeafterboth
158 /// Returns token's const_metadata158 /// Returns token's const_metadata
159 #[solidity(rename_selector = "tokenURI")]159 #[solidity(rename_selector = "tokenURI")]
160 fn token_uri(&self, token_id: uint256) -> Result<string> {160 fn token_uri(&self, token_id: uint256) -> Result<string> {
161 let key: string = "tokenURI".into(); //TODO: make static
162 let key: up_data_structs::PropertyKey = key.into_bytes().try_into()161 let key = pallet_common::eth::KEY_TOKEN_URI.clone();
163 .map_err(|_| Error::Revert("".into()))?;
164 let permission = get_token_permission::<T>(self.id, &key)?;162 let permission = get_token_permission::<T>(self.id, &key)?;
165 if !permission.collection_admin {163 if !permission.collection_admin {
166 return Err("Operation is not allowed".into());164 return Err("Operation is not allowed".into());
362 token_id: uint256,360 token_id: uint256,
363 token_uri: string,361 token_uri: string,
364 ) -> Result<bool> {362 ) -> Result<bool> {
365 let key: string = "tokenURI".into(); //TODO: make static
366 let key: up_data_structs::PropertyKey = key.into_bytes().try_into()363 let key = pallet_common::eth::KEY_TOKEN_URI.clone();
367 .map_err(|_| Error::Revert("".into()))?;
368 let permission = get_token_permission::<T>(self.id, &key)?;364 let permission = get_token_permission::<T>(self.id, &key)?;
369 if !permission.collection_admin {365 if !permission.collection_admin {
370 return Err("Operation is not allowed".into());366 return Err("Operation is not allowed".into());
modifiedpallets/unique/src/eth/mod.rsdiffbeforeafterboth
--- a/pallets/unique/src/eth/mod.rs
+++ b/pallets/unique/src/eth/mod.rs
@@ -77,8 +77,7 @@
 			.try_into()
 			.map_err(|_| error_feild_too_long(stringify!(token_prefix), MAX_TOKEN_PREFIX_LENGTH))?;
 
-		let key: string = "tokenURI".into(); //TODO: make static
-		let key: up_data_structs::PropertyKey = key.into_bytes().try_into().map_err(|_| Error::Revert("".into()))?;
+		let key = pallet_common::eth::KEY_TOKEN_URI.clone();
 		let permission = up_data_structs::PropertyPermission {
 			mutable: true,
 			collection_admin: true,