git.delta.rocks / unique-network / refs/commits / 890b4afabe76

difftreelog

Merge branch 'develop' into feature/CORE-324

Yaroslav Bolyukin2022-04-01parents: #4b84a72 #a961c1a.patch.diff
in: master

17 files changed

modified.envdiffbeforeafterboth
1RUST_TOOLCHAIN=nightly-2021-11-111RUST_TOOLCHAIN=nightly-2021-11-11
2RUST_C=1.58.0-nightly2RUST_C=1.58.0-nightly
3POLKA_VERSION=release-v0.9.173POLKA_VERSION=release-v0.9.18
4UNIQUE_BRANCH=develop4UNIQUE_BRANCH=develop
5USER=***5USER=***
6PASS=***6PASS=***
modifiedCargo.lockdiffbeforeafterboth
55755575
5576[[package]]5576[[package]]
5577name = "opal-runtime"5577name = "opal-runtime"
5578version = "0.1.0"5578version = "0.9.18"
5579dependencies = [5579dependencies = [
5580 "cumulus-pallet-aura-ext",5580 "cumulus-pallet-aura-ext",
5581 "cumulus-pallet-dmp-queue",5581 "cumulus-pallet-dmp-queue",
87098709
8710[[package]]8710[[package]]
8711name = "quartz-runtime"8711name = "quartz-runtime"
8712version = "0.1.0"8712version = "0.9.18"
8713dependencies = [8713dependencies = [
8714 "cumulus-pallet-aura-ext",8714 "cumulus-pallet-aura-ext",
8715 "cumulus-pallet-dmp-queue",8715 "cumulus-pallet-dmp-queue",
8723 "fp-evm-mapping",8723 "fp-evm-mapping",
8724 "fp-rpc",8724 "fp-rpc",
8725 "fp-self-contained",8725 "fp-self-contained",
8726 "frame-benchmarking",
8727 "frame-executive",8726 "frame-executive",
8728 "frame-support",8727 "frame-support",
8729 "frame-system",8728 "frame-system",
8730 "frame-system-benchmarking",
8731 "frame-system-rpc-runtime-api",8729 "frame-system-rpc-runtime-api",
8732 "hex-literal",
8733 "orml-vesting",8730 "orml-vesting",
8734 "pallet-aura",8731 "pallet-aura",
8735 "pallet-balances",8732 "pallet-balances",
1255112548
12552[[package]]12549[[package]]
12553name = "unique-runtime"12550name = "unique-runtime"
12554version = "0.9.17"12551version = "0.9.18"
12555dependencies = [12552dependencies = [
12556 "cumulus-pallet-aura-ext",12553 "cumulus-pallet-aura-ext",
12557 "cumulus-pallet-dmp-queue",12554 "cumulus-pallet-dmp-queue",
1262712624
12628[[package]]12625[[package]]
12629name = "unique-runtime-common"12626name = "unique-runtime-common"
12630version = "0.1.0"12627version = "0.9.18"
12631dependencies = [12628dependencies = [
12632 "fp-rpc",12629 "fp-rpc",
12633 "frame-support",12630 "frame-support",
modifiedCargo.tomldiffbeforeafterboth
5 'pallets/*',5 'pallets/*',
6 'client/*',6 'client/*',
7 'primitives/*',7 'primitives/*',
8 'runtime/*',
9 'crates/*',8 'crates/*',
10]9]
10exclude = [
11 "runtime/unique",
12 "runtime/quartz"
13]
11[profile.release]14[profile.release]
12panic = 'unwind'15panic = 'unwind'
1316
modifiedDockerfile-parachaindiffbeforeafterboth
1# ===== Rust builder =====1# ===== Rust builder =====
2FROM phusion/baseimage:focal-1.0.0 as rust-builder2FROM phusion/baseimage:focal-1.1.0 as rust-builder
3LABEL maintainer="Unique.Network"3LABEL maintainer="Unique.Network"
44
5ARG RUST_TOOLCHAIN=nightly-2021-11-115ARG RUST_TOOLCHAIN=nightly-2021-11-11
7777
78# ===== RUN ======78# ===== RUN ======
7979
80FROM phusion/baseimage:focal-1.0.080FROM phusion/baseimage:focal-1.1.0
8181
82ARG PROFILE=release82ARG PROFILE=release
8383
modifiedREADME.mddiffbeforeafterboth
6363
645. Build:645. Build:
65```bash65```bash
66cargo build66cargo build --features=unique-runtime,quartz-runtime --release
67```67```
6868
69optionally, build in release:
70```bash
71cargo build --release
72```
73
74## Building as Parachain locally69## Building as Parachain locally
7570
76Note: checkout this project and all related projects (see below) in the sibling folders (both under the same folder)71Note: checkout this project and all related projects (see below) in the sibling folders (both under the same folder)
modifiednode/cli/Cargo.tomldiffbeforeafterboth
312unique-rpc = { default-features = false, path = "../rpc" }312unique-rpc = { default-features = false, path = "../rpc" }
313313
314[features]314[features]
315default = ["unique-runtime", "quartz-runtime"]315default = []
316runtime-benchmarks = [316runtime-benchmarks = [
317 'unique-runtime/runtime-benchmarks',317 'unique-runtime/runtime-benchmarks',
318 'polkadot-service/runtime-benchmarks',318 'polkadot-service/runtime-benchmarks',
modifiednode/cli/src/chain_spec.rsdiffbeforeafterboth
14// You should have received a copy of the GNU General Public License14// You should have received a copy of the GNU General Public License
15// along with Unique Network. If not, see <http://www.gnu.org/licenses/>.15// along with Unique Network. If not, see <http://www.gnu.org/licenses/>.
1616
17use cumulus_primitives_core::ParaId;
18use sc_chain_spec::{ChainSpecExtension, ChainSpecGroup};17use sc_chain_spec::{ChainSpecExtension, ChainSpecGroup};
19use sc_service::ChainType;18use sc_service::ChainType;
20use sp_core::{sr25519, Pair, Public};19use sp_core::{sr25519, Pair, Public};
2625
27use unique_runtime_common::types::*;26use unique_runtime_common::types::*;
27
28#[cfg(feature = "unique-runtime")]
29use unique_runtime as default_runtime;
30
31#[cfg(all(not(feature = "unique-runtime"), feature = "quartz-runtime"))]
32use quartz_runtime as default_runtime;
33
34#[cfg(all(not(feature = "unique-runtime"), not(feature = "quartz-runtime")))]
35use opal_runtime as default_runtime;
2836
29/// The `ChainSpec` parameterized for the unique runtime.37/// The `ChainSpec` parameterized for the unique runtime.
30#[cfg(feature = "unique-runtime")]38#[cfg(feature = "unique-runtime")]
37/// The `ChainSpec` parameterized for the opal runtime.45/// The `ChainSpec` parameterized for the opal runtime.
38pub type OpalChainSpec = sc_service::GenericChainSpec<opal_runtime::GenesisConfig, Extensions>;46pub type OpalChainSpec = sc_service::GenericChainSpec<opal_runtime::GenesisConfig, Extensions>;
47
48#[cfg(feature = "unique-runtime")]
49pub type DefaultChainSpec = UniqueChainSpec;
50
51#[cfg(all(not(feature = "unique-runtime"), feature = "quartz-runtime"))]
52pub type DefaultChainSpec = QuartzChainSpec;
53
54#[cfg(all(not(feature = "unique-runtime"), not(feature = "quartz-runtime")))]
55pub type DefaultChainSpec = OpalChainSpec;
3956
40pub enum RuntimeId {57pub enum RuntimeId {
58 #[cfg(feature = "unique-runtime")]
41 Unique,59 Unique,
60
61 #[cfg(feature = "quartz-runtime")]
42 Quartz,62 Quartz,
63
43 Opal,64 Opal,
51impl RuntimeIdentification for Box<dyn sc_service::ChainSpec> {72impl RuntimeIdentification for Box<dyn sc_service::ChainSpec> {
52 fn runtime_id(&self) -> RuntimeId {73 fn runtime_id(&self) -> RuntimeId {
53 #[cfg(feature = "unique-runtime")]74 #[cfg(feature = "unique-runtime")]
54 if self.id().starts_with("unique") {75 if self.id().starts_with("unique") || self.id().starts_with("unq") {
55 return RuntimeId::Unique;76 return RuntimeId::Unique;
56 }77 }
5778
58 #[cfg(feature = "quartz-runtime")]79 #[cfg(feature = "quartz-runtime")]
59 if self.id().starts_with("quartz") {80 if self.id().starts_with("quartz") || self.id().starts_with("qtz") {
60 return RuntimeId::Quartz;81 return RuntimeId::Quartz;
61 }82 }
6283
121 AccountPublic::from(get_from_seed::<TPublic>(seed)).into_account()142 AccountPublic::from(get_from_seed::<TPublic>(seed)).into_account()
122}143}
144
145macro_rules! testnet_genesis {
146 (
147 $runtime:path,
148 $root_key:expr,
149 $initial_authorities:expr,
150 $endowed_accounts:expr,
151 $id:expr
152 ) => {{
153 use $runtime::*;
154
155 GenesisConfig {
156 system: SystemConfig {
157 code: WASM_BINARY
158 .expect("WASM binary was not build, please build it!")
159 .to_vec(),
160 },
161 balances: BalancesConfig {
162 balances: $endowed_accounts
163 .iter()
164 .cloned()
165 // 1e13 UNQ
166 .map(|k| (k, 1 << 100))
167 .collect(),
168 },
169 treasury: Default::default(),
170 sudo: SudoConfig {
171 key: Some($root_key),
172 },
173 vesting: VestingConfig { vesting: vec![] },
174 parachain_info: ParachainInfoConfig {
175 parachain_id: $id.into(),
176 },
177 parachain_system: Default::default(),
178 aura: AuraConfig {
179 authorities: $initial_authorities,
180 },
181 aura_ext: Default::default(),
182 evm: EVMConfig {
183 accounts: BTreeMap::new(),
184 },
185 ethereum: EthereumConfig {},
186 }
187 }};
188}
123189
124pub fn development_config() -> OpalChainSpec {190pub fn development_config() -> OpalChainSpec {
125 let mut properties = Map::new();191 let mut properties = Map::new();
126 properties.insert("tokenSymbol".into(), "OPL".into());192 properties.insert("tokenSymbol".into(), opal_runtime::TOKEN_SYMBOL.into());
127 properties.insert("tokenDecimals".into(), 15.into());193 properties.insert("tokenDecimals".into(), 18.into());
128 properties.insert("ss58Format".into(), 42.into());194 properties.insert("ss58Format".into(), opal_runtime::SS58Prefix::get().into());
129195
130 OpalChainSpec::from_genesis(196 OpalChainSpec::from_genesis(
131 // Name197 // Name
132 "Development",198 "OPAL by UNIQUE",
133 // ID199 // ID
134 "dev",200 "opal_dev",
135 ChainType::Local,201 ChainType::Local,
136 move || {202 move || {
137 testnet_genesis(203 testnet_genesis!(
204 opal_runtime,
138 // Sudo account205 // Sudo account
139 get_account_id_from_seed::<sr25519::Public>("Alice"),206 get_account_id_from_seed::<sr25519::Public>("Alice"),
140 vec![207 vec![
141 get_from_seed::<AuraId>("Alice"),208 get_from_seed::<AuraId>("Alice"),
142 get_from_seed::<AuraId>("Bob"),209 get_from_seed::<AuraId>("Bob"),
146 get_account_id_from_seed::<sr25519::Public>("Alice"),213 get_account_id_from_seed::<sr25519::Public>("Alice"),
147 get_account_id_from_seed::<sr25519::Public>("Bob"),214 get_account_id_from_seed::<sr25519::Public>("Bob"),
148 ],215 ],
149 1000.into(),216 1000
150 )217 )
151 },218 },
152 // Bootnodes219 // Bootnodes
166 )233 )
167}234}
168235
169pub fn local_testnet_rococo_config() -> OpalChainSpec {236pub fn local_testnet_rococo_config() -> DefaultChainSpec {
237 let mut properties = Map::new();
238 properties.insert("tokenSymbol".into(), default_runtime::TOKEN_SYMBOL.into());
239 properties.insert("tokenDecimals".into(), 18.into());
240 properties.insert(
241 "ss58Format".into(),
242 default_runtime::SS58Prefix::get().into(),
243 );
244
170 OpalChainSpec::from_genesis(245 DefaultChainSpec::from_genesis(
171 // Name246 // Name
247 format!(
248 "{}{}",
249 default_runtime::RUNTIME_NAME.to_uppercase(),
250 if cfg!(feature = "unique-runtime") {
251 ""
252 } else {
253 " by UNIQUE"
254 }
255 )
172 "Local Testnet",256 .as_str(),
173 // ID257 // ID
174 "local_testnet",258 format!("{}_local", default_runtime::RUNTIME_NAME).as_str(),
175 ChainType::Local,259 ChainType::Local,
176 move || {260 move || {
177 testnet_genesis(261 testnet_genesis!(
262 default_runtime,
178 // Sudo account263 // Sudo account
179 get_account_id_from_seed::<sr25519::Public>("Alice"),264 get_account_id_from_seed::<sr25519::Public>("Alice"),
180 vec![265 vec![
181 get_from_seed::<AuraId>("Alice"),266 get_from_seed::<AuraId>("Alice"),
182 get_from_seed::<AuraId>("Bob"),267 get_from_seed::<AuraId>("Bob"),
196 get_account_id_from_seed::<sr25519::Public>("Eve//stash"),281 get_account_id_from_seed::<sr25519::Public>("Eve//stash"),
197 get_account_id_from_seed::<sr25519::Public>("Ferdie//stash"),282 get_account_id_from_seed::<sr25519::Public>("Ferdie//stash"),
198 ],283 ],
199 1000.into(),284 1000
200 )285 )
201 },286 },
202 // Bootnodes287 // Bootnodes
207 None,292 None,
208 None,293 None,
209 // Properties294 // Properties
210 None,295 Some(properties),
211 // Extensions296 // Extensions
212 Extensions {297 Extensions {
213 relay_chain: "rococo-local".into(),298 relay_chain: "rococo-local".into(),
216 )301 )
217}302}
218
219fn testnet_genesis(
220 root_key: AccountId,
221 initial_authorities: Vec<AuraId>,
222 endowed_accounts: Vec<AccountId>,
223 id: ParaId,
224) -> opal_runtime::GenesisConfig {
225 use opal_runtime::*;
226
227 GenesisConfig {
228 system: SystemConfig {
229 code: WASM_BINARY
230 .expect("WASM binary was not build, please build it!")
231 .to_vec(),
232 },
233 balances: BalancesConfig {
234 balances: endowed_accounts
235 .iter()
236 .cloned()
237 // 1e13 UNQ
238 .map(|k| (k, 1 << 100))
239 .collect(),
240 },
241 treasury: Default::default(),
242 sudo: SudoConfig {
243 key: Some(root_key),
244 },
245 vesting: VestingConfig { vesting: vec![] },
246 parachain_info: ParachainInfoConfig { parachain_id: id },
247 parachain_system: Default::default(),
248 aura: AuraConfig {
249 authorities: initial_authorities,
250 },
251 aura_ext: Default::default(),
252 evm: EVMConfig {
253 accounts: BTreeMap::new(),
254 },
255 ethereum: EthereumConfig {},
256 }
257}
258303
modifiednode/cli/src/service.rsdiffbeforeafterboth
6161
62use unique_runtime_common::types::{AuraId, RuntimeInstance, AccountId, Balance, Index, Hash, Block};62use unique_runtime_common::types::{AuraId, RuntimeInstance, AccountId, Balance, Index, Hash, Block};
6363
64/// Native executor instance.64/// Unique native executor instance.
65#[cfg(feature = "unique-runtime")]
65pub struct UniqueRuntimeExecutor;66pub struct UniqueRuntimeExecutor;
67
68#[cfg(feature = "quartz-runtime")]
69/// Quartz native executor instance.
70
66pub struct QuartzRuntimeExecutor;71pub struct QuartzRuntimeExecutor;
72
73/// Opal native executor instance.
67pub struct OpalRuntimeExecutor;74pub struct OpalRuntimeExecutor;
6875
69#[cfg(feature = "unique-runtime")]76#[cfg(feature = "unique-runtime")]
modifiedpallets/unique/src/eth/sponsoring.rsdiffbeforeafterboth
24use up_sponsorship::SponsorshipHandler;24use up_sponsorship::SponsorshipHandler;
25use core::marker::PhantomData;25use core::marker::PhantomData;
26use core::convert::TryInto;26use core::convert::TryInto;
27use up_data_structs::TokenId;
28use pallet_evm::account::CrossAccountId;27use pallet_evm::account::CrossAccountId;
2928
30use pallet_nonfungible::erc::{UniqueNFTCall, ERC721UniqueExtensionsCall, ERC721Call};29use pallet_nonfungible::erc::{
30 UniqueNFTCall, ERC721UniqueExtensionsCall, ERC721MintableCall, ERC721Call,
31};
31use pallet_fungible::erc::{UniqueFungibleCall, ERC20Call};32use pallet_fungible::erc::{UniqueFungibleCall, ERC20Call};
32use up_data_structs::{CreateItemData, CreateNftData};33use up_data_structs::{TokenId, CreateItemData, CreateNftData};
3334
34pub struct UniqueEthSponsorshipHandler<T: Config>(PhantomData<*const T>);35pub struct UniqueEthSponsorshipHandler<T: Config>(PhantomData<*const T>);
35impl<T: Config> SponsorshipHandler<T::CrossAccountId, (H160, Vec<u8>)>36impl<T: Config> SponsorshipHandler<T::CrossAccountId, (H160, Vec<u8>)>
50 let token_id: TokenId = token_id.try_into().ok()?;51 let token_id: TokenId = token_id.try_into().ok()?;
51 withdraw_transfer::<T>(&collection, &who, &token_id).map(|()| sponsor)52 withdraw_transfer::<T>(&collection, &who, &token_id).map(|()| sponsor)
52 }53 }
54 UniqueNFTCall::ERC721Mintable(
55 ERC721MintableCall::Mint { token_id, .. }
56 | ERC721MintableCall::MintWithTokenUri { token_id, .. },
57 ) => {
58 let _token_id: TokenId = token_id.try_into().ok()?;
59 withdraw_create_item::<T>(
60 &collection,
61 &who,
62 &CreateItemData::NFT(CreateNftData::default()),
63 )
64 .map(|()| sponsor)
65 }
53 UniqueNFTCall::ERC721(ERC721Call::TransferFrom { token_id, from, .. }) => {66 UniqueNFTCall::ERC721(ERC721Call::TransferFrom { token_id, from, .. }) => {
54 let token_id: TokenId = token_id.try_into().ok()?;67 let token_id: TokenId = token_id.try_into().ok()?;
55 let from = T::CrossAccountId::from_eth(from);68 let from = T::CrossAccountId::from_eth(from);
60 withdraw_approve::<T>(&collection, who.as_sub(), &token_id)73 withdraw_approve::<T>(&collection, who.as_sub(), &token_id)
61 .map(|()| sponsor)74 .map(|()| sponsor)
62 }75 }
63 UniqueNFTCall::ERC721Mintable(call) => match call {
64 pallet_nonfungible::erc::ERC721MintableCall::Mint { .. }
65 | pallet_nonfungible::erc::ERC721MintableCall::MintWithTokenUri {
66 ..
67 } => withdraw_create_item(
68 &collection,
69 who.as_sub(),
70 &CreateItemData::NFT(CreateNftData::default()),
71 )
72 .map(|()| sponsor),
73 _ => None,
74 },
75 _ => None,76 _ => None,
76 }77 }
77 }78 }
modifiedpallets/unique/src/sponsorship.rsdiffbeforeafterboth
103103
104pub fn withdraw_create_item<T: Config>(104pub fn withdraw_create_item<T: Config>(
105 collection: &CollectionHandle<T>,105 collection: &CollectionHandle<T>,
106 who: &T::AccountId,106 who: &T::CrossAccountId,
107 _properties: &CreateItemData,107 _properties: &CreateItemData,
108) -> Option<()> {108) -> Option<()> {
109 if _properties.data_size() as u32 > collection.limits.sponsored_data_size() {109 if _properties.data_size() as u32 > collection.limits.sponsored_data_size() {
120 CreateItemData::ReFungible(_) => REFUNGIBLE_SPONSOR_TRANSFER_TIMEOUT,120 CreateItemData::ReFungible(_) => REFUNGIBLE_SPONSOR_TRANSFER_TIMEOUT,
121 });121 });
122122
123 if let Some(last_tx_block) = <CreateItemBasket<T>>::get((collection.id, &who)) {123 if let Some(last_tx_block) = <CreateItemBasket<T>>::get((collection.id, who.as_sub())) {
124 let timeout = last_tx_block + limit.into();124 let timeout = last_tx_block + limit.into();
125 if block_number < timeout {125 if block_number < timeout {
126 return None;126 return None;
127 }127 }
128 }128 }
129129
130 CreateItemBasket::<T>::insert((collection.id, who.clone()), block_number);130 CreateItemBasket::<T>::insert((collection.id, who.as_sub()), block_number);
131131
132 Some(())132 Some(())
133}133}
248 let (sponsor, collection) = load(*collection_id)?;248 let (sponsor, collection) = load(*collection_id)?;
249 withdraw_create_item::<T>(&collection, who, data).map(|()| sponsor)249 withdraw_create_item::<T>(
250 &collection,
251 &T::CrossAccountId::from_sub(who.clone()),
252 data,
253 )
254 .map(|()| sponsor)
250 }255 }
modifiedruntime/common/Cargo.tomldiffbeforeafterboth
6license = 'All Rights Reserved'6license = 'All Rights Reserved'
7name = 'unique-runtime-common'7name = 'unique-runtime-common'
8repository = 'https://github.com/UniqueNetwork/unique-chain'8repository = 'https://github.com/UniqueNetwork/unique-chain'
9version = '0.1.0'9version = '0.9.18'
1010
11[features]11[features]
12default = ['std']12default = ['std']
modifiedruntime/opal/Cargo.tomldiffbeforeafterboth
10license = 'GPLv3'10license = 'GPLv3'
11name = 'opal-runtime'11name = 'opal-runtime'
12repository = 'https://github.com/UniqueNetwork/unique-chain'12repository = 'https://github.com/UniqueNetwork/unique-chain'
13version = '0.1.0'13version = '0.9.18'
1414
15[package.metadata.docs.rs]15[package.metadata.docs.rs]
16targets = ['x86_64-unknown-linux-gnu']16targets = ['x86_64-unknown-linux-gnu']
modifiedruntime/opal/src/lib.rsdiffbeforeafterboth
116116
117use unique_runtime_common::{impl_common_runtime_apis, types::*, constants::*};117use unique_runtime_common::{impl_common_runtime_apis, types::*, constants::*};
118118
119pub const RUNTIME_NAME: &str = "Opal";119pub const RUNTIME_NAME: &str = "opal";
120pub const TOKEN_SYMBOL: &str = "OPL";
120121
121type CrossAccountId = pallet_evm::account::BasicCrossAccountId<Runtime>;122type CrossAccountId = pallet_evm::account::BasicCrossAccountId<Runtime>;
122123
168 spec_name: create_runtime_str!(RUNTIME_NAME),169 spec_name: create_runtime_str!(RUNTIME_NAME),
169 impl_name: create_runtime_str!(RUNTIME_NAME),170 impl_name: create_runtime_str!(RUNTIME_NAME),
170 authoring_version: 1,171 authoring_version: 1,
171 spec_version: 917004,172 spec_version: 918001,
172 impl_version: 0,173 impl_version: 0,
173 apis: RUNTIME_API_VERSIONS,174 apis: RUNTIME_API_VERSIONS,
174 transaction_version: 1,175 transaction_version: 1,
modifiedruntime/quartz/Cargo.tomldiffbeforeafterboth
10license = 'GPLv3'10license = 'GPLv3'
11name = 'quartz-runtime'11name = 'quartz-runtime'
12repository = 'https://github.com/UniqueNetwork/unique-chain'12repository = 'https://github.com/UniqueNetwork/unique-chain'
13version = '0.1.0'13version = '0.9.18'
1414
15[package.metadata.docs.rs]15[package.metadata.docs.rs]
16targets = ['x86_64-unknown-linux-gnu']16targets = ['x86_64-unknown-linux-gnu']
modifiedruntime/quartz/src/lib.rsdiffbeforeafterboth
116116
117use unique_runtime_common::{impl_common_runtime_apis, types::*, constants::*};117use unique_runtime_common::{impl_common_runtime_apis, types::*, constants::*};
118118
119pub const RUNTIME_NAME: &str = "Quartz";119pub const RUNTIME_NAME: &str = "quartz";
120pub const TOKEN_SYMBOL: &str = "QTZ";
120121
121type CrossAccountId = pallet_evm::account::BasicCrossAccountId<Runtime>;122type CrossAccountId = pallet_evm::account::BasicCrossAccountId<Runtime>;
122123
153 spec_name: create_runtime_str!(RUNTIME_NAME),154 spec_name: create_runtime_str!(RUNTIME_NAME),
154 impl_name: create_runtime_str!(RUNTIME_NAME),155 impl_name: create_runtime_str!(RUNTIME_NAME),
155 authoring_version: 1,156 authoring_version: 1,
156 spec_version: 917004,157 spec_version: 918001,
157 impl_version: 0,158 impl_version: 0,
158 apis: RUNTIME_API_VERSIONS,159 apis: RUNTIME_API_VERSIONS,
159 transaction_version: 1,160 transaction_version: 1,
modifiedruntime/unique/Cargo.tomldiffbeforeafterboth
10license = 'GPLv3'10license = 'GPLv3'
11name = 'unique-runtime'11name = 'unique-runtime'
12repository = 'https://github.com/UniqueNetwork/unique-chain'12repository = 'https://github.com/UniqueNetwork/unique-chain'
13version = '0.9.17'13version = '0.9.18'
1414
15[package.metadata.docs.rs]15[package.metadata.docs.rs]
16targets = ['x86_64-unknown-linux-gnu']16targets = ['x86_64-unknown-linux-gnu']
modifiedruntime/unique/src/lib.rsdiffbeforeafterboth
115115
116use unique_runtime_common::{impl_common_runtime_apis, types::*, constants::*};116use unique_runtime_common::{impl_common_runtime_apis, types::*, constants::*};
117117
118pub const RUNTIME_NAME: &str = "Unique";118pub const RUNTIME_NAME: &str = "unique";
119pub const TOKEN_SYMBOL: &str = "UNQ";
119120
120type CrossAccountId = pallet_evm::account::BasicCrossAccountId<Runtime>;121type CrossAccountId = pallet_evm::account::BasicCrossAccountId<Runtime>;
121122
152 spec_name: create_runtime_str!(RUNTIME_NAME),153 spec_name: create_runtime_str!(RUNTIME_NAME),
153 impl_name: create_runtime_str!(RUNTIME_NAME),154 impl_name: create_runtime_str!(RUNTIME_NAME),
154 authoring_version: 1,155 authoring_version: 1,
155 spec_version: 917004,156 spec_version: 918001,
156 impl_version: 0,157 impl_version: 0,
157 apis: RUNTIME_API_VERSIONS,158 apis: RUNTIME_API_VERSIONS,
158 transaction_version: 1,159 transaction_version: 1,