difftreelog
Merge pull request #47 from usetech-llc/update_license
in: master
Update license information
25 files changed
LICENSEdiffbeforeafterboth--- a/LICENSE
+++ b/LICENSE
@@ -1,24 +1,15 @@
-This is free and unencumbered software released into the public domain.
-
-Anyone is free to copy, modify, publish, use, compile, sell, or
-distribute this software, either in source code form or as a compiled
-binary, for any purpose, commercial or non-commercial, and by any
-means.
-
-In jurisdictions that recognize copyright laws, the author or authors
-of this software dedicate any and all copyright interest in the
-software to the public domain. We make this dedication for the benefit
-of the public at large and to the detriment of our heirs and
-successors. We intend this dedication to be an overt act of
-relinquishment in perpetuity of all present and future rights to this
-software under copyright law.
+USETECH PROFESSIONAL CONFIDENTIAL
+__________________
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
-IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR
-OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
-ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
-OTHER DEALINGS IN THE SOFTWARE.
+ [2019] - [2020] UseTech Professional LTD.
+ All Rights Reserved.
-For more information, please refer to <http://unlicense.org>
+NOTICE: All information contained herein is, and remains
+the property of UseTech Professional LTD. and its suppliers,
+if any. The intellectual and technical concepts contained
+herein are proprietary to UseTech Professional LTD.
+and its suppliers and may be covered by U.S. and Foreign Patents,
+patents in process, and are protected by trade secret or copyright law.
+Dissemination of this information or reproduction of this material
+is strictly forbidden unless prior written permission is obtained
+from UseTech Professional LTD..
node/build.rsdiffbeforeafterboth--- a/node/build.rs
+++ b/node/build.rs
@@ -1,3 +1,8 @@
+//
+// This file is subject to the terms and conditions defined in
+// file 'LICENSE', which is part of this source code package.
+//
+
use substrate_build_script_utils::{generate_cargo_keys, rerun_if_git_head_changed};
fn main() {
node/src/chain_spec.rsdiffbeforeafterboth--- a/node/src/chain_spec.rs
+++ b/node/src/chain_spec.rs
@@ -1,3 +1,8 @@
+//
+// This file is subject to the terms and conditions defined in
+// file 'LICENSE', which is part of this source code package.
+//
+
// use nft_runtime::{
// AccountId, AuraConfig, BalancesConfig, GenesisConfig, GrandpaConfig, Signature, SudoConfig,
// SystemConfig, WASM_BINARY,
node/src/main.rsdiffbeforeafterboth--- a/node/src/main.rs
+++ b/node/src/main.rs
@@ -1,3 +1,8 @@
+//
+// This file is subject to the terms and conditions defined in
+// file 'LICENSE', which is part of this source code package.
+//
+
//! Substrate Node Template CLI library.
#![warn(missing_docs)]
node/src/service.rsdiffbeforeafterboth1//! Service and ServiceFactory implementation. Specialized wrapper over substrate service.23use std::sync::Arc;4use std::time::Duration;5use sc_client_api::{ExecutorProvider, RemoteBackend};6use nft_runtime::{self, opaque::Block, RuntimeApi};7use sc_service::{error::Error as ServiceError, Configuration, TaskManager};8use sp_inherents::InherentDataProviders;9use sc_executor::native_executor_instance;10pub use sc_executor::NativeExecutor;11use sp_consensus_aura::sr25519::{AuthorityPair as AuraPair};12use sc_finality_grandpa::{FinalityProofProvider as GrandpaFinalityProofProvider, SharedVoterState};1314// Our native executor instance.15native_executor_instance!(16 pub Executor,17 nft_runtime::api::dispatch,18 nft_runtime::native_version,19 frame_benchmarking::benchmarking::HostFunctions,20);2122type FullClient = sc_service::TFullClient<Block, RuntimeApi, Executor>;23type FullBackend = sc_service::TFullBackend<Block>;24type FullSelectChain = sc_consensus::LongestChain<FullBackend, Block>;2526pub fn new_partial(config: &Configuration) -> Result<sc_service::PartialComponents<27 FullClient, FullBackend, FullSelectChain,28 sp_consensus::DefaultImportQueue<Block, FullClient>,29 sc_transaction_pool::FullPool<Block, FullClient>,30 (31 sc_consensus_aura::AuraBlockImport<32 Block,33 FullClient,34 sc_finality_grandpa::GrandpaBlockImport<FullBackend, Block, FullClient, FullSelectChain>,35 AuraPair36 >,37 sc_finality_grandpa::LinkHalf<Block, FullClient, FullSelectChain>38 )39>, ServiceError> {40 let inherent_data_providers = sp_inherents::InherentDataProviders::new();4142 let (client, backend, keystore, task_manager) =43 sc_service::new_full_parts::<Block, RuntimeApi, Executor>(&config)?;44 let client = Arc::new(client);4546 let select_chain = sc_consensus::LongestChain::new(backend.clone());4748 let transaction_pool = sc_transaction_pool::BasicPool::new_full(49 config.transaction_pool.clone(),50 config.prometheus_registry(),51 task_manager.spawn_handle(),52 client.clone(),53 );5455 let (grandpa_block_import, grandpa_link) = sc_finality_grandpa::block_import(56 client.clone(), &(client.clone() as Arc<_>), select_chain.clone(),57 )?;5859 let aura_block_import = sc_consensus_aura::AuraBlockImport::<_, _, _, AuraPair>::new(60 grandpa_block_import.clone(), client.clone(),61 );6263 let import_queue = sc_consensus_aura::import_queue::<_, _, _, AuraPair, _, _>(64 sc_consensus_aura::slot_duration(&*client)?,65 aura_block_import.clone(),66 Some(Box::new(grandpa_block_import.clone())),67 None,68 client.clone(),69 inherent_data_providers.clone(),70 &task_manager.spawn_handle(),71 config.prometheus_registry(),72 sp_consensus::CanAuthorWithNativeVersion::new(client.executor().clone()),73 )?;7475 Ok(sc_service::PartialComponents {76 client, backend, task_manager, import_queue, keystore, select_chain, transaction_pool,77 inherent_data_providers,78 other: (aura_block_import, grandpa_link),79 })80}8182/// Builds a new service for a full client.83pub fn new_full(config: Configuration) -> Result<TaskManager, ServiceError> {84 let sc_service::PartialComponents {85 client, backend, mut task_manager, import_queue, keystore, select_chain, transaction_pool,86 inherent_data_providers,87 other: (block_import, grandpa_link),88 } = new_partial(&config)?;8990 let finality_proof_provider =91 GrandpaFinalityProofProvider::new_for_service(backend.clone(), client.clone());9293 let (network, network_status_sinks, system_rpc_tx, network_starter) =94 sc_service::build_network(sc_service::BuildNetworkParams {95 config: &config,96 client: client.clone(),97 transaction_pool: transaction_pool.clone(),98 spawn_handle: task_manager.spawn_handle(),99 import_queue,100 on_demand: None,101 block_announce_validator_builder: None,102 finality_proof_request_builder: None,103 finality_proof_provider: Some(finality_proof_provider.clone()),104 })?;105106 if config.offchain_worker.enabled {107 sc_service::build_offchain_workers(108 &config, backend.clone(), task_manager.spawn_handle(), client.clone(), network.clone(),109 );110 }111112 let role = config.role.clone();113 let force_authoring = config.force_authoring;114 let name = config.network.node_name.clone();115 let enable_grandpa = !config.disable_grandpa;116 let prometheus_registry = config.prometheus_registry().cloned();117 let telemetry_connection_sinks = sc_service::TelemetryConnectionSinks::default();118119 let rpc_extensions_builder = {120 let client = client.clone();121 let pool = transaction_pool.clone();122123 Box::new(move |deny_unsafe, _| {124 let deps = crate::rpc::FullDeps {125 client: client.clone(),126 pool: pool.clone(),127 deny_unsafe,128 };129130 crate::rpc::create_full(deps)131 })132 };133134 sc_service::spawn_tasks(sc_service::SpawnTasksParams {135 network: network.clone(),136 client: client.clone(),137 keystore: keystore.clone(),138 task_manager: &mut task_manager,139 transaction_pool: transaction_pool.clone(),140 telemetry_connection_sinks: telemetry_connection_sinks.clone(),141 rpc_extensions_builder: rpc_extensions_builder,142 on_demand: None,143 remote_blockchain: None,144 backend, network_status_sinks, system_rpc_tx, config,145 })?;146147 if role.is_authority() {148 let proposer = sc_basic_authorship::ProposerFactory::new(149 client.clone(),150 transaction_pool,151 prometheus_registry.as_ref(),152 );153154 let can_author_with =155 sp_consensus::CanAuthorWithNativeVersion::new(client.executor().clone());156157 let aura = sc_consensus_aura::start_aura::<_, _, _, _, _, AuraPair, _, _, _>(158 sc_consensus_aura::slot_duration(&*client)?,159 client.clone(),160 select_chain,161 block_import,162 proposer,163 network.clone(),164 inherent_data_providers.clone(),165 force_authoring,166 keystore.clone(),167 can_author_with,168 )?;169170 // the AURA authoring task is considered essential, i.e. if it171 // fails we take down the service with it.172 task_manager.spawn_essential_handle().spawn_blocking("aura", aura);173 }174175 // if the node isn't actively participating in consensus then it doesn't176 // need a keystore, regardless of which protocol we use below.177 let keystore = if role.is_authority() {178 Some(keystore as sp_core::traits::BareCryptoStorePtr)179 } else {180 None181 };182183 let grandpa_config = sc_finality_grandpa::Config {184 // FIXME #1578 make this available through chainspec185 gossip_duration: Duration::from_millis(333),186 justification_period: 512,187 name: Some(name),188 observer_enabled: false,189 keystore,190 is_authority: role.is_network_authority(),191 };192193 if enable_grandpa {194 // start the full GRANDPA voter195 // NOTE: non-authorities could run the GRANDPA observer protocol, but at196 // this point the full voter should provide better guarantees of block197 // and vote data availability than the observer. The observer has not198 // been tested extensively yet and having most nodes in a network run it199 // could lead to finality stalls.200 let grandpa_config = sc_finality_grandpa::GrandpaParams {201 config: grandpa_config,202 link: grandpa_link,203 network,204 inherent_data_providers,205 telemetry_on_connect: Some(telemetry_connection_sinks.on_connect_stream()),206 voting_rule: sc_finality_grandpa::VotingRulesBuilder::default().build(),207 prometheus_registry,208 shared_voter_state: SharedVoterState::empty(),209 };210211 // the GRANDPA voter task is considered infallible, i.e.212 // if it fails we take down the service with it.213 task_manager.spawn_essential_handle().spawn_blocking(214 "grandpa-voter",215 sc_finality_grandpa::run_grandpa_voter(grandpa_config)?216 );217 } else {218 sc_finality_grandpa::setup_disabled_grandpa(219 client,220 &inherent_data_providers,221 network,222 )?;223 }224225 network_starter.start_network();226 Ok(task_manager)227}228229/// Builds a new service for a light client.230pub fn new_light(config: Configuration) -> Result<TaskManager, ServiceError> {231 let (client, backend, keystore, mut task_manager, on_demand) =232 sc_service::new_light_parts::<Block, RuntimeApi, Executor>(&config)?;233234 let transaction_pool = Arc::new(sc_transaction_pool::BasicPool::new_light(235 config.transaction_pool.clone(),236 config.prometheus_registry(),237 task_manager.spawn_handle(),238 client.clone(),239 on_demand.clone(),240 ));241242 let grandpa_block_import = sc_finality_grandpa::light_block_import(243 client.clone(), backend.clone(), &(client.clone() as Arc<_>),244 Arc::new(on_demand.checker().clone()) as Arc<_>,245 )?;246 let finality_proof_import = grandpa_block_import.clone();247 let finality_proof_request_builder =248 finality_proof_import.create_finality_proof_request_builder();249250 let import_queue = sc_consensus_aura::import_queue::<_, _, _, AuraPair, _, _>(251 sc_consensus_aura::slot_duration(&*client)?,252 grandpa_block_import,253 None,254 Some(Box::new(finality_proof_import)),255 client.clone(),256 InherentDataProviders::new(),257 &task_manager.spawn_handle(),258 config.prometheus_registry(),259 sp_consensus::NeverCanAuthor,260 )?;261262 let finality_proof_provider =263 GrandpaFinalityProofProvider::new_for_service(backend.clone(), client.clone());264265 let (network, network_status_sinks, system_rpc_tx, network_starter) =266 sc_service::build_network(sc_service::BuildNetworkParams {267 config: &config,268 client: client.clone(),269 transaction_pool: transaction_pool.clone(),270 spawn_handle: task_manager.spawn_handle(),271 import_queue,272 on_demand: Some(on_demand.clone()),273 block_announce_validator_builder: None,274 finality_proof_request_builder: Some(finality_proof_request_builder),275 finality_proof_provider: Some(finality_proof_provider),276 })?;277278 if config.offchain_worker.enabled {279 sc_service::build_offchain_workers(280 &config, backend.clone(), task_manager.spawn_handle(), client.clone(), network.clone(),281 );282 }283284 sc_service::spawn_tasks(sc_service::SpawnTasksParams {285 remote_blockchain: Some(backend.remote_blockchain()),286 transaction_pool,287 task_manager: &mut task_manager,288 on_demand: Some(on_demand),289 rpc_extensions_builder: Box::new(|_, _| ()),290 telemetry_connection_sinks: sc_service::TelemetryConnectionSinks::default(),291 config,292 client,293 keystore,294 backend,295 network,296 network_status_sinks,297 system_rpc_tx,298 })?;299300 network_starter.start_network();301302 Ok(task_manager)303}1//! Service and ServiceFactory implementation. Specialized wrapper over substrate service.23//4// This file is subject to the terms and conditions defined in5// file 'LICENSE', which is part of this source code package.6//78use std::sync::Arc;9use std::time::Duration;10use sc_client_api::{ExecutorProvider, RemoteBackend};11use nft_runtime::{self, opaque::Block, RuntimeApi};12use sc_service::{error::Error as ServiceError, Configuration, TaskManager};13use sp_inherents::InherentDataProviders;14use sc_executor::native_executor_instance;15pub use sc_executor::NativeExecutor;16use sp_consensus_aura::sr25519::{AuthorityPair as AuraPair};17use sc_finality_grandpa::{FinalityProofProvider as GrandpaFinalityProofProvider, SharedVoterState};1819// Our native executor instance.20native_executor_instance!(21 pub Executor,22 nft_runtime::api::dispatch,23 nft_runtime::native_version,24 frame_benchmarking::benchmarking::HostFunctions,25);2627type FullClient = sc_service::TFullClient<Block, RuntimeApi, Executor>;28type FullBackend = sc_service::TFullBackend<Block>;29type FullSelectChain = sc_consensus::LongestChain<FullBackend, Block>;3031pub fn new_partial(config: &Configuration) -> Result<sc_service::PartialComponents<32 FullClient, FullBackend, FullSelectChain,33 sp_consensus::DefaultImportQueue<Block, FullClient>,34 sc_transaction_pool::FullPool<Block, FullClient>,35 (36 sc_consensus_aura::AuraBlockImport<37 Block,38 FullClient,39 sc_finality_grandpa::GrandpaBlockImport<FullBackend, Block, FullClient, FullSelectChain>,40 AuraPair41 >,42 sc_finality_grandpa::LinkHalf<Block, FullClient, FullSelectChain>43 )44>, ServiceError> {45 let inherent_data_providers = sp_inherents::InherentDataProviders::new();4647 let (client, backend, keystore, task_manager) =48 sc_service::new_full_parts::<Block, RuntimeApi, Executor>(&config)?;49 let client = Arc::new(client);5051 let select_chain = sc_consensus::LongestChain::new(backend.clone());5253 let transaction_pool = sc_transaction_pool::BasicPool::new_full(54 config.transaction_pool.clone(),55 config.prometheus_registry(),56 task_manager.spawn_handle(),57 client.clone(),58 );5960 let (grandpa_block_import, grandpa_link) = sc_finality_grandpa::block_import(61 client.clone(), &(client.clone() as Arc<_>), select_chain.clone(),62 )?;6364 let aura_block_import = sc_consensus_aura::AuraBlockImport::<_, _, _, AuraPair>::new(65 grandpa_block_import.clone(), client.clone(),66 );6768 let import_queue = sc_consensus_aura::import_queue::<_, _, _, AuraPair, _, _>(69 sc_consensus_aura::slot_duration(&*client)?,70 aura_block_import.clone(),71 Some(Box::new(grandpa_block_import.clone())),72 None,73 client.clone(),74 inherent_data_providers.clone(),75 &task_manager.spawn_handle(),76 config.prometheus_registry(),77 sp_consensus::CanAuthorWithNativeVersion::new(client.executor().clone()),78 )?;7980 Ok(sc_service::PartialComponents {81 client, backend, task_manager, import_queue, keystore, select_chain, transaction_pool,82 inherent_data_providers,83 other: (aura_block_import, grandpa_link),84 })85}8687/// Builds a new service for a full client.88pub fn new_full(config: Configuration) -> Result<TaskManager, ServiceError> {89 let sc_service::PartialComponents {90 client, backend, mut task_manager, import_queue, keystore, select_chain, transaction_pool,91 inherent_data_providers,92 other: (block_import, grandpa_link),93 } = new_partial(&config)?;9495 let finality_proof_provider =96 GrandpaFinalityProofProvider::new_for_service(backend.clone(), client.clone());9798 let (network, network_status_sinks, system_rpc_tx, network_starter) =99 sc_service::build_network(sc_service::BuildNetworkParams {100 config: &config,101 client: client.clone(),102 transaction_pool: transaction_pool.clone(),103 spawn_handle: task_manager.spawn_handle(),104 import_queue,105 on_demand: None,106 block_announce_validator_builder: None,107 finality_proof_request_builder: None,108 finality_proof_provider: Some(finality_proof_provider.clone()),109 })?;110111 if config.offchain_worker.enabled {112 sc_service::build_offchain_workers(113 &config, backend.clone(), task_manager.spawn_handle(), client.clone(), network.clone(),114 );115 }116117 let role = config.role.clone();118 let force_authoring = config.force_authoring;119 let name = config.network.node_name.clone();120 let enable_grandpa = !config.disable_grandpa;121 let prometheus_registry = config.prometheus_registry().cloned();122 let telemetry_connection_sinks = sc_service::TelemetryConnectionSinks::default();123124 let rpc_extensions_builder = {125 let client = client.clone();126 let pool = transaction_pool.clone();127128 Box::new(move |deny_unsafe, _| {129 let deps = crate::rpc::FullDeps {130 client: client.clone(),131 pool: pool.clone(),132 deny_unsafe,133 };134135 crate::rpc::create_full(deps)136 })137 };138139 sc_service::spawn_tasks(sc_service::SpawnTasksParams {140 network: network.clone(),141 client: client.clone(),142 keystore: keystore.clone(),143 task_manager: &mut task_manager,144 transaction_pool: transaction_pool.clone(),145 telemetry_connection_sinks: telemetry_connection_sinks.clone(),146 rpc_extensions_builder: rpc_extensions_builder,147 on_demand: None,148 remote_blockchain: None,149 backend, network_status_sinks, system_rpc_tx, config,150 })?;151152 if role.is_authority() {153 let proposer = sc_basic_authorship::ProposerFactory::new(154 client.clone(),155 transaction_pool,156 prometheus_registry.as_ref(),157 );158159 let can_author_with =160 sp_consensus::CanAuthorWithNativeVersion::new(client.executor().clone());161162 let aura = sc_consensus_aura::start_aura::<_, _, _, _, _, AuraPair, _, _, _>(163 sc_consensus_aura::slot_duration(&*client)?,164 client.clone(),165 select_chain,166 block_import,167 proposer,168 network.clone(),169 inherent_data_providers.clone(),170 force_authoring,171 keystore.clone(),172 can_author_with,173 )?;174175 // the AURA authoring task is considered essential, i.e. if it176 // fails we take down the service with it.177 task_manager.spawn_essential_handle().spawn_blocking("aura", aura);178 }179180 // if the node isn't actively participating in consensus then it doesn't181 // need a keystore, regardless of which protocol we use below.182 let keystore = if role.is_authority() {183 Some(keystore as sp_core::traits::BareCryptoStorePtr)184 } else {185 None186 };187188 let grandpa_config = sc_finality_grandpa::Config {189 // FIXME #1578 make this available through chainspec190 gossip_duration: Duration::from_millis(333),191 justification_period: 512,192 name: Some(name),193 observer_enabled: false,194 keystore,195 is_authority: role.is_network_authority(),196 };197198 if enable_grandpa {199 // start the full GRANDPA voter200 // NOTE: non-authorities could run the GRANDPA observer protocol, but at201 // this point the full voter should provide better guarantees of block202 // and vote data availability than the observer. The observer has not203 // been tested extensively yet and having most nodes in a network run it204 // could lead to finality stalls.205 let grandpa_config = sc_finality_grandpa::GrandpaParams {206 config: grandpa_config,207 link: grandpa_link,208 network,209 inherent_data_providers,210 telemetry_on_connect: Some(telemetry_connection_sinks.on_connect_stream()),211 voting_rule: sc_finality_grandpa::VotingRulesBuilder::default().build(),212 prometheus_registry,213 shared_voter_state: SharedVoterState::empty(),214 };215216 // the GRANDPA voter task is considered infallible, i.e.217 // if it fails we take down the service with it.218 task_manager.spawn_essential_handle().spawn_blocking(219 "grandpa-voter",220 sc_finality_grandpa::run_grandpa_voter(grandpa_config)?221 );222 } else {223 sc_finality_grandpa::setup_disabled_grandpa(224 client,225 &inherent_data_providers,226 network,227 )?;228 }229230 network_starter.start_network();231 Ok(task_manager)232}233234/// Builds a new service for a light client.235pub fn new_light(config: Configuration) -> Result<TaskManager, ServiceError> {236 let (client, backend, keystore, mut task_manager, on_demand) =237 sc_service::new_light_parts::<Block, RuntimeApi, Executor>(&config)?;238239 let transaction_pool = Arc::new(sc_transaction_pool::BasicPool::new_light(240 config.transaction_pool.clone(),241 config.prometheus_registry(),242 task_manager.spawn_handle(),243 client.clone(),244 on_demand.clone(),245 ));246247 let grandpa_block_import = sc_finality_grandpa::light_block_import(248 client.clone(), backend.clone(), &(client.clone() as Arc<_>),249 Arc::new(on_demand.checker().clone()) as Arc<_>,250 )?;251 let finality_proof_import = grandpa_block_import.clone();252 let finality_proof_request_builder =253 finality_proof_import.create_finality_proof_request_builder();254255 let import_queue = sc_consensus_aura::import_queue::<_, _, _, AuraPair, _, _>(256 sc_consensus_aura::slot_duration(&*client)?,257 grandpa_block_import,258 None,259 Some(Box::new(finality_proof_import)),260 client.clone(),261 InherentDataProviders::new(),262 &task_manager.spawn_handle(),263 config.prometheus_registry(),264 sp_consensus::NeverCanAuthor,265 )?;266267 let finality_proof_provider =268 GrandpaFinalityProofProvider::new_for_service(backend.clone(), client.clone());269270 let (network, network_status_sinks, system_rpc_tx, network_starter) =271 sc_service::build_network(sc_service::BuildNetworkParams {272 config: &config,273 client: client.clone(),274 transaction_pool: transaction_pool.clone(),275 spawn_handle: task_manager.spawn_handle(),276 import_queue,277 on_demand: Some(on_demand.clone()),278 block_announce_validator_builder: None,279 finality_proof_request_builder: Some(finality_proof_request_builder),280 finality_proof_provider: Some(finality_proof_provider),281 })?;282283 if config.offchain_worker.enabled {284 sc_service::build_offchain_workers(285 &config, backend.clone(), task_manager.spawn_handle(), client.clone(), network.clone(),286 );287 }288289 sc_service::spawn_tasks(sc_service::SpawnTasksParams {290 remote_blockchain: Some(backend.remote_blockchain()),291 transaction_pool,292 task_manager: &mut task_manager,293 on_demand: Some(on_demand),294 rpc_extensions_builder: Box::new(|_, _| ()),295 telemetry_connection_sinks: sc_service::TelemetryConnectionSinks::default(),296 config,297 client,298 keystore,299 backend,300 network,301 network_status_sinks,302 system_rpc_tx,303 })?;304305 network_starter.start_network();306307 Ok(task_manager)308}pallets/nft/src/lib.rsdiffbeforeafterboth--- a/pallets/nft/src/lib.rs
+++ b/pallets/nft/src/lib.rs
@@ -1,3 +1,8 @@
+//
+// This file is subject to the terms and conditions defined in
+// file 'LICENSE', which is part of this source code package.
+//
+
#![recursion_limit = "1024"]
#![cfg_attr(not(feature = "std"), no_std)]
runtime/src/lib.rsdiffbeforeafterboth--- a/runtime/src/lib.rs
+++ b/runtime/src/lib.rs
@@ -1,3 +1,8 @@
+//
+// This file is subject to the terms and conditions defined in
+// file 'LICENSE', which is part of this source code package.
+//
+
//! The Substrate Node Template runtime. This can be compiled with `#[no_std]`, ready for Wasm.
#![cfg_attr(not(feature = "std"), no_std)]
runtime/src/nft_weights.rsdiffbeforeafterboth--- a/runtime/src/nft_weights.rs
+++ b/runtime/src/nft_weights.rs
@@ -1,3 +1,8 @@
+//
+// This file is subject to the terms and conditions defined in
+// file 'LICENSE', which is part of this source code package.
+//
+
use frame_support::weights::{Weight, constants::RocksDbWeight as DbWeight};
pub struct WeightInfo;
tests/src/accounts.tsdiffbeforeafterboth--- a/tests/src/accounts.ts
+++ b/tests/src/accounts.ts
@@ -1,3 +1,8 @@
+//
+// This file is subject to the terms and conditions defined in
+// file 'LICENSE', which is part of this source code package.
+//
+
export const bobsPublicKey = '5FHneW46xGXgs5mUiveU4sbTyGBzmstUspZC92UhjJM694ty';
export const alicesPublicKey = '5GrwvaEF5zXb26Fz9rcQpDWS57CtERHpNehXCPcNoHGKutQY';
export const ferdiesPublicKey = '5CiPPseXPECbkjWCa6MnjNokrgYjMqmKndv2rSnekmSK2DjL';
tests/src/blocks-production.test.tsdiffbeforeafterboth--- a/tests/src/blocks-production.test.ts
+++ b/tests/src/blocks-production.test.ts
@@ -1,3 +1,8 @@
+//
+// This file is subject to the terms and conditions defined in
+// file 'LICENSE', which is part of this source code package.
+//
+
import usingApi from "./substrate/substrate-api";
import promisifySubstrate from "./substrate/promisify-substrate";
import { expect } from "chai";
tests/src/config.tsdiffbeforeafterboth--- a/tests/src/config.ts
+++ b/tests/src/config.ts
@@ -1,3 +1,8 @@
+//
+// This file is subject to the terms and conditions defined in
+// file 'LICENSE', which is part of this source code package.
+//
+
import process from 'process';
const config = {
tests/src/connection.test.tsdiffbeforeafterboth--- a/tests/src/connection.test.ts
+++ b/tests/src/connection.test.ts
@@ -1,3 +1,8 @@
+//
+// This file is subject to the terms and conditions defined in
+// file 'LICENSE', which is part of this source code package.
+//
+
import usingApi from "./substrate/substrate-api";
import { WsProvider } from '@polkadot/api';
import * as chai from 'chai';
tests/src/contracts.test.tsdiffbeforeafterboth--- a/tests/src/contracts.test.ts
+++ b/tests/src/contracts.test.ts
@@ -1,3 +1,8 @@
+//
+// This file is subject to the terms and conditions defined in
+// file 'LICENSE', which is part of this source code package.
+//
+
import { ApiPromise } from "@polkadot/api";
import { expect } from "chai";
import { default as usingApi, submitTransactionAsync } from "./substrate/substrate-api";
tests/src/createCollection.test.tsdiffbeforeafterboth--- a/tests/src/createCollection.test.ts
+++ b/tests/src/createCollection.test.ts
@@ -1,3 +1,8 @@
+//
+// This file is subject to the terms and conditions defined in
+// file 'LICENSE', which is part of this source code package.
+//
+
import chai from 'chai';
import chaiAsPromised from 'chai-as-promised';
import { default as usingApi } from "./substrate/substrate-api";
tests/src/createMultipleItems.test.tsdiffbeforeafterboth--- a/tests/src/createMultipleItems.test.ts
+++ b/tests/src/createMultipleItems.test.ts
@@ -1,3 +1,8 @@
+//
+// This file is subject to the terms and conditions defined in
+// file 'LICENSE', which is part of this source code package.
+//
+
import { assert } from 'chai';
import { alicesPublicKey } from './accounts';
import privateKey from './substrate/privateKey';
tests/src/creditFeesToTreasury.test.tsdiffbeforeafterboth--- a/tests/src/creditFeesToTreasury.test.ts
+++ b/tests/src/creditFeesToTreasury.test.ts
@@ -1,3 +1,8 @@
+//
+// This file is subject to the terms and conditions defined in
+// file 'LICENSE', which is part of this source code package.
+//
+
import chai from 'chai';
import chaiAsPromised from 'chai-as-promised';
import { default as usingApi, submitTransactionAsync } from "./substrate/substrate-api";
tests/src/pallet-presence.test.tsdiffbeforeafterboth--- a/tests/src/pallet-presence.test.ts
+++ b/tests/src/pallet-presence.test.ts
@@ -1,3 +1,8 @@
+//
+// This file is subject to the terms and conditions defined in
+// file 'LICENSE', which is part of this source code package.
+//
+
import { ApiPromise } from "@polkadot/api";
import { expect } from "chai";
import usingApi from "./substrate/substrate-api";
tests/src/substrate/get-balance.tsdiffbeforeafterboth--- a/tests/src/substrate/get-balance.ts
+++ b/tests/src/substrate/get-balance.ts
@@ -1,3 +1,8 @@
+//
+// This file is subject to the terms and conditions defined in
+// file 'LICENSE', which is part of this source code package.
+//
+
import { ApiPromise } from "@polkadot/api";
import promisifySubstrate from "./promisify-substrate";
import {AccountInfo} from "@polkadot/types/interfaces/system";
tests/src/substrate/privateKey.tsdiffbeforeafterboth--- a/tests/src/substrate/privateKey.ts
+++ b/tests/src/substrate/privateKey.ts
@@ -1,3 +1,8 @@
+//
+// This file is subject to the terms and conditions defined in
+// file 'LICENSE', which is part of this source code package.
+//
+
import { Keyring } from "@polkadot/api";
import { IKeyringPair } from "@polkadot/types/types";
tests/src/substrate/promisify-substrate.tsdiffbeforeafterboth--- a/tests/src/substrate/promisify-substrate.ts
+++ b/tests/src/substrate/promisify-substrate.ts
@@ -1,3 +1,8 @@
+//
+// This file is subject to the terms and conditions defined in
+// file 'LICENSE', which is part of this source code package.
+//
+
import ApiPromise from "@polkadot/api/promise/Api";
type PromiseType<T> = T extends PromiseLike<infer TInner> ? TInner : T;
tests/src/substrate/substrate-api.tsdiffbeforeafterboth--- a/tests/src/substrate/substrate-api.ts
+++ b/tests/src/substrate/substrate-api.ts
@@ -1,3 +1,8 @@
+//
+// This file is subject to the terms and conditions defined in
+// file 'LICENSE', which is part of this source code package.
+//
+
import { WsProvider, ApiPromise } from "@polkadot/api";
import type { AccountId, Address, ApplyExtrinsicResult, DispatchError, DispatchInfo, EventRecord, Extrinsic, ExtrinsicStatus, Hash, RuntimeDispatchInfo } from '@polkadot/types/interfaces';
import { IKeyringPair } from "@polkadot/types/types";
tests/src/substrate/wait-new-blocks.tsdiffbeforeafterboth--- a/tests/src/substrate/wait-new-blocks.ts
+++ b/tests/src/substrate/wait-new-blocks.ts
@@ -1,3 +1,8 @@
+//
+// This file is subject to the terms and conditions defined in
+// file 'LICENSE', which is part of this source code package.
+//
+
import { ApiPromise } from "@polkadot/api";
export default function waitNewBlocks(api: ApiPromise, blocksCount: number = 1): Promise<void> {
tests/src/transfer.test.tsdiffbeforeafterboth--- a/tests/src/transfer.test.ts
+++ b/tests/src/transfer.test.ts
@@ -1,3 +1,8 @@
+//
+// This file is subject to the terms and conditions defined in
+// file 'LICENSE', which is part of this source code package.
+//
+
import { expect, assert } from "chai";
import { default as usingApi, submitTransactionAsync } from "./substrate/substrate-api";
import { alicesPublicKey, bobsPublicKey, ferdiesPublicKey } from "./accounts";
tests/src/util/helpers.tsdiffbeforeafterboth--- a/tests/src/util/helpers.ts
+++ b/tests/src/util/helpers.ts
@@ -1,3 +1,8 @@
+//
+// This file is subject to the terms and conditions defined in
+// file 'LICENSE', which is part of this source code package.
+//
+
import chai from 'chai';
import chaiAsPromised from 'chai-as-promised';
import type { AccountId, EventRecord } from '@polkadot/types/interfaces';
tests/src/util/util.tsdiffbeforeafterboth--- a/tests/src/util/util.ts
+++ b/tests/src/util/util.ts
@@ -1,3 +1,8 @@
+//
+// This file is subject to the terms and conditions defined in
+// file 'LICENSE', which is part of this source code package.
+//
+
export function strToUTF16(str: string): any {
let buf: number[] = [];
for (let i=0, strLen=str.length; i < strLen; i++) {