From 0ebea2bec68c3033f631e815d788ee0e0061e83f Mon Sep 17 00:00:00 2001 From: PopcornPaws Date: Mon, 16 Jan 2023 12:17:29 +0100 Subject: [PATCH] Oracle pallet cleanup. --- Cargo.toml | 4 +- gn-client/artifacts/metadata.scale | Bin 39713 -> 39723 bytes gn-client/src/lib.rs | 2 +- gn-client/src/queries.rs | 6 +- gn-client/src/transactions/mod.rs | 4 +- gn-oracle/src/main.rs | 2 +- gn-pallets/pallet-chainlink/LICENSE | 24 ---- gn-pallets/pallet-chainlink/README.md | 122 ------------------ gn-pallets/pallet-guild/Cargo.toml | 4 +- gn-pallets/pallet-guild/src/benchmarking.rs | 10 +- gn-pallets/pallet-guild/src/lib.rs | 24 ++-- gn-pallets/pallet-guild/src/test.rs | 49 ++++--- .../Cargo.toml | 6 +- .../src/benchmarking.rs | 8 +- .../src/lib.rs | 34 ++--- .../src/weights.rs | 18 +-- gn-pallets/pallet-test-caller/Cargo.toml | 22 ++-- gn-pallets/pallet-test-caller/src/lib.rs | 6 +- gn-pallets/pallet-test-caller/src/test.rs | 112 ++++++++-------- gn-runtime/Cargo.toml | 6 +- gn-runtime/src/lib.rs | 13 +- gn-test-runtime/src/lib.rs | 4 +- 22 files changed, 161 insertions(+), 319 deletions(-) delete mode 100644 gn-pallets/pallet-chainlink/LICENSE delete mode 100644 gn-pallets/pallet-chainlink/README.md rename gn-pallets/{pallet-chainlink => pallet-oracle}/Cargo.toml (92%) rename gn-pallets/{pallet-chainlink => pallet-oracle}/src/benchmarking.rs (81%) rename gn-pallets/{pallet-chainlink => pallet-oracle}/src/lib.rs (92%) rename gn-pallets/{pallet-chainlink => pallet-oracle}/src/weights.rs (85%) diff --git a/Cargo.toml b/Cargo.toml index 7fce6a9e..743fabe8 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -5,7 +5,7 @@ members = [ "gn-frontend", "gn-node", "gn-oracle", - "gn-pallets/pallet-chainlink", + "gn-pallets/pallet-oracle", "gn-pallets/pallet-guild", "gn-pallets/pallet-test-caller", "gn-runtime", @@ -19,7 +19,7 @@ default-members = [ "gn-common", "gn-node", "gn-oracle", - "gn-pallets/pallet-chainlink", + "gn-pallets/pallet-oracle", "gn-pallets/pallet-guild", "gn-pallets/pallet-test-caller", "gn-runtime", diff --git a/gn-client/artifacts/metadata.scale b/gn-client/artifacts/metadata.scale index de2f7da957bd18711b678289aea7b8b1e84260ae..84e67d238af388a7afe2cb0f55460e065e20480e 100644 GIT binary patch delta 226 zcmZ3ujcN5ZrVR}&k`n$!iOD&sEDUoPO9~Qma#Bm;^T8sU=d*n0=QBYSTP~8~!VA}O zlaX=l&wNY$YatjBh$&-VUu40OAHcftSB8sq& Q5y9MSJVTFZa_6i?02(JyTmS$7 diff --git a/gn-client/src/lib.rs b/gn-client/src/lib.rs index db45d65d..f88f0422 100644 --- a/gn-client/src/lib.rs +++ b/gn-client/src/lib.rs @@ -31,7 +31,7 @@ pub type BlockNumber = u32; pub type BlockSubscription = Subscription; pub type GuildCall = runtime::runtime_types::pallet_guild::pallet::Call; pub type Index = u32; -pub type OracleRequest = runtime::runtime_types::pallet_chainlink::pallet::GenericRequest< +pub type OracleRequest = runtime::runtime_types::pallet_oracle::pallet::GenericRequest< AccountId, GuildCall, u32, diff --git a/gn-client/src/queries.rs b/gn-client/src/queries.rs index 2e6ac87d..20512507 100644 --- a/gn-client/src/queries.rs +++ b/gn-client/src/queries.rs @@ -17,7 +17,7 @@ pub struct GuildFilter { } pub async fn registered_operators(api: Api) -> Result, SubxtError> { - let operators = runtime::storage().chainlink().operators(); + let operators = runtime::storage().oracle().operators(); Ok(api .storage() .fetch(&operators, None) @@ -136,7 +136,7 @@ pub async fn role_id( } pub async fn oracle_request(api: Api, id: RequestIdentifier) -> Result { - let key = runtime::storage().chainlink().requests(id); + let key = runtime::storage().oracle().requests(id); let request = api .storage() .fetch(&key, None) @@ -152,7 +152,7 @@ pub async fn oracle_requests( api: Api, page_size: u32, ) -> Result, SubxtError> { - let root = runtime::storage().chainlink().requests_root(); + let root = runtime::storage().oracle().requests_root(); let mut map = BTreeMap::new(); let mut iter = api.storage().iter(root, page_size, None).await?; diff --git a/gn-client/src/transactions/mod.rs b/gn-client/src/transactions/mod.rs index c1ed4fcf..a4690e0c 100644 --- a/gn-client/src/transactions/mod.rs +++ b/gn-client/src/transactions/mod.rs @@ -19,11 +19,11 @@ pub fn fund_account(account: &AccountId, amount: u128) -> impl TxPayload { } pub fn register_operator() -> impl TxPayload { - runtime::tx().chainlink().register_operator() + runtime::tx().oracle().register_operator() } pub fn oracle_callback(request_id: u64, data: Vec) -> impl TxPayload { - runtime::tx().chainlink().callback(request_id, data) + runtime::tx().oracle().callback(request_id, data) } pub fn create_guild(guild: Guild) -> Result { diff --git a/gn-oracle/src/main.rs b/gn-oracle/src/main.rs index ee80e604..9392fb17 100644 --- a/gn-oracle/src/main.rs +++ b/gn-oracle/src/main.rs @@ -1,6 +1,6 @@ use futures::StreamExt; use gn_client::queries::{oracle_request, requirements, user_identity}; -use gn_client::runtime::chainlink::events::OracleRequest; +use gn_client::runtime::oracle::events::OracleRequest; use gn_client::transactions::{ oracle_callback, register_operator, send_tx_in_block, send_tx_ready, }; diff --git a/gn-pallets/pallet-chainlink/LICENSE b/gn-pallets/pallet-chainlink/LICENSE deleted file mode 100644 index cf1ab25d..00000000 --- a/gn-pallets/pallet-chainlink/LICENSE +++ /dev/null @@ -1,24 +0,0 @@ -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. - -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. - -For more information, please refer to diff --git a/gn-pallets/pallet-chainlink/README.md b/gn-pallets/pallet-chainlink/README.md deleted file mode 100644 index 66f89e73..00000000 --- a/gn-pallets/pallet-chainlink/README.md +++ /dev/null @@ -1,122 +0,0 @@ -# Chainlink pallet - -## Purpose - -This pallet allows your substrate built parachain/blockchain to interract with [chainlink](https://chain.link/). [Pallets](https://substrate.dev/docs/en/tutorials/build-a-dapp/pallet) are modular pieces of the Polkadot Substrate that make it easier for your parachain to interact with technologies. This is essential for working with any kind of external data API from outside your blockchain. - -Essentially, a pallet is a lego piece you can add to another blockchain built on the Substrate/Polkadot infrastructure. - - -## Installation - -Using `pallet-chainlink` is fairly straightforward and requires a couple easy steps: - -- add the correct dependency to your runtime -- use some of the pallet bundled functions - -### Add the pallet dependency - -Update `Cargo.toml` to reference `pallet-chainlink`. - -Add the following section: - -```toml -[dependencies.chainlink] -default_features = false -package = 'pallet-chainlink' -git = 'https://github.com/smartcontractkit/chainlink-polkadot.git' -``` - -And amend the `std` section so that it shows like this: - -```toml -std = [ - ... // all the existing pallets - 'chainlink/std' -] -``` - -### Use provided functions - -Edit `lib.rs` to that it references `pallet-chainlink`: - -```rust -... -// Add the chainlink Config Trait -impl chainlink::Config for Runtime { - type Event = Event; - type Currency = balances::Module; - type Callback = example_module::Call; - type ValidityPeriod = ValidityPeriod; -} - -parameter_types! { - pub const ValidityPeriod: u32 = 50; -} -... -// In construct_runtime!, add the pallet -... -construct_runtime!( - ... - Chainlink: chainlink::{Pallet, Call, Storage, Event}, - } -); -``` - -Add necessary `use` declarations: - -```rust -use chainlink::{CallbackWithParameter, Event, Config as ChainlinkConfig}; - -pub trait Config: chainlink::Config + ChainlinkTrait { - type Event: From> + Into<::Event>; - type Callback: From> + Into<::Callback>; -} -``` - -You can now call the right chainlink Extrinsic: - -```rust -pub fn send_request(origin, operator: T::AccountId) -> DispatchResult { - let parameters = ("get", "https://min-api.cryptocompare.com/data/pricemultifull?fsyms=ETH&tsyms=USD", "path", "RAW.ETH.USD.PRICE", "times", "100000000"); - let call: ::Callback = Call::callback(vec![]).into(); - chainlink::Pallet::::initiate_request(origin, operator, 1, 0, parameters.encode(), 100, call.into())?; - - Ok(()) -} -``` - -This call refers to a callback Extrinsic that mut be define in the pallet. It will receive back the chainlink Operator's result: - -```rust -pub fn callback(origin, result: u128) -> DispatchResult { - ensure_root(origin)?; - - let r : u128 = u128::decode(&mut &result[..]).map_err(|err| err.what())?; - ::put(r); - Ok(()) -} - -impl CallbackWithParameter for Call { - fn with_result(&self, result: u128) -> Option { - match *self { - Call::callback(_) => Some(Call::callback(result)), - _ => None - } - } -} -``` - -Under the hood a specific event will be picked up by chainlink nodes that will in turn call be a well-known Extrinsic. - -### Genesis Configuration - -This template pallet does not have any genesis configuration. - -## Reference Docs - -You can view the reference docs for this pallet by running: - -``` -cargo doc --open -``` diff --git a/gn-pallets/pallet-guild/Cargo.toml b/gn-pallets/pallet-guild/Cargo.toml index d6a6a875..1731f8c7 100644 --- a/gn-pallets/pallet-guild/Cargo.toml +++ b/gn-pallets/pallet-guild/Cargo.toml @@ -11,7 +11,7 @@ std = [ "frame-support/std", "frame-system/std", "gn-common/std", - "pallet-chainlink/std", + "pallet-oracle/std", "scale-info/std", "sp-std/std", ] @@ -25,7 +25,7 @@ frame-benchmarking = { default-features = false, version = "4.0.0-dev", git = "h frame-support = { default-features = false, version = "4.0.0-dev", git = "https://github.com/paritytech/substrate.git", branch = "polkadot-v0.9.25" } frame-system = { default-features = false, version = "4.0.0-dev", git = "https://github.com/paritytech/substrate.git", branch = "polkadot-v0.9.25" } hashbrown = "0.13.1" -pallet-chainlink = { version = "3.0.0-alpha", default-features = false, path = "../pallet-chainlink" } +pallet-oracle = { version = "0.0.1-alpha", default-features = false, path = "../pallet-oracle" } scale-info = { version = "2.1.1", default-features = false, features = ["derive"] } sp-std = { default-features = false, version = "4.0.0-dev", git = "https://github.com/paritytech/substrate.git", branch = "polkadot-v0.9.25" } diff --git a/gn-pallets/pallet-guild/src/benchmarking.rs b/gn-pallets/pallet-guild/src/benchmarking.rs index 2f962269..a5de04d2 100644 --- a/gn-pallets/pallet-guild/src/benchmarking.rs +++ b/gn-pallets/pallet-guild/src/benchmarking.rs @@ -6,7 +6,7 @@ use frame_support::traits::Currency; use frame_system::RawOrigin; use gn_common::identities::IdentityWithAuth; use gn_common::RequestData; -use pallet_chainlink::Pallet as Chainlink; +use pallet_oracle::Pallet as Oracle; use sp_std::vec; benchmarks! { @@ -32,7 +32,7 @@ benchmarks! { let operator: T::AccountId = whitelisted_caller(); T::Currency::make_free_balance_be(&caller, T::Currency::minimum_balance() + 2_000_000_000u32.into()); - Chainlink::::register_operator(RawOrigin::Signed(operator).into())?; + Oracle::::register_operator(RawOrigin::Signed(operator).into())?; }: _( RawOrigin::Signed(caller), RequestData::Register(vec![ @@ -45,7 +45,7 @@ benchmarks! { ]) ) verify { - assert!(Chainlink::::request(0).is_some()) + assert!(Oracle::::request(0).is_some()) } join_guild { @@ -61,10 +61,10 @@ benchmarks! { } T::Currency::make_free_balance_be(&caller, T::Currency::minimum_balance() + 2_000_000_000u32.into()); - Chainlink::::register_operator(RawOrigin::Signed(operator).into())?; + Oracle::::register_operator(RawOrigin::Signed(operator).into())?; Guild::::create_guild(RawOrigin::Signed(caller.clone()).into(), guild_name, guild_metadata, roles)?; }: _(RawOrigin::Signed(caller), RequestData::Join { guild: guild_name, role: [10u8; 32] }) verify { - assert!(Chainlink::::request(0).is_some()); + assert!(Oracle::::request(0).is_some()); } } diff --git a/gn-pallets/pallet-guild/src/lib.rs b/gn-pallets/pallet-guild/src/lib.rs index 5e1d9ee8..69091290 100644 --- a/gn-pallets/pallet-guild/src/lib.rs +++ b/gn-pallets/pallet-guild/src/lib.rs @@ -23,10 +23,10 @@ pub mod pallet { use gn_common::identities::Platform; use gn_common::utils::detect_duplicates; use gn_common::{GuildName, Request, RequestData, RequestIdentifier, RoleName}; - use pallet_chainlink::{CallbackWithParameter, Config as ChainlinkConfig}; + use pallet_oracle::{CallbackWithParameter, Config as OracleConfig, OracleAnswer}; use sp_std::vec::Vec as SpVec; - type BalanceOf = <::Currency as Currency< + type BalanceOf = <::Currency as Currency< ::AccountId, >>::Balance; @@ -101,7 +101,7 @@ pub mod pallet { StorageMap<_, Blake2_128Concat, T::AccountId, SpVec, OptionQuery>; #[pallet::config] - pub trait Config: ChainlinkConfig> + frame_system::Config { + pub trait Config: OracleConfig> + frame_system::Config { type WeightInfo: WeightInfo; type Event: From> + IsType<::Event>; type MyRandomness: Randomness; @@ -192,12 +192,11 @@ pub mod pallet { let request = Request:: { requester, data }; - let call: ::Callback = Call::callback { + let call: ::Callback = Call::callback { result: SpVec::new(), }; - // TODO set unique fee - let fee = BalanceOf::::unique_saturated_from(100_000_000u32); - >::initiate_request(origin, call, request.encode(), fee)?; + let fee = BalanceOf::::unique_saturated_from(::MinimumFee::get()); + >::initiate_request(origin, call, request.encode(), fee)?; Ok(()) } @@ -262,12 +261,11 @@ pub mod pallet { // after all successful checks, we can create our request let request = Request:: { requester, data }; - let call: ::Callback = Call::callback { + let call: ::Callback = Call::callback { result: SpVec::new(), }; - // TODO set unique fee - let fee = BalanceOf::::unique_saturated_from(100_000_000u32); - >::initiate_request(origin, call, request.encode(), fee)?; + let fee = BalanceOf::::unique_saturated_from(::MinimumFee::get()); + >::initiate_request(origin, call, request.encode(), fee)?; Ok(()) } @@ -280,8 +278,8 @@ pub mod pallet { // cannot wrap codec::Error in this error type because // it doesn't implement the required traits - let answer = pallet_chainlink::OracleAnswer::decode(&mut result.as_slice()) - .map_err(|_| Error::::CodecError)?; + let answer = + OracleAnswer::decode(&mut result.as_slice()).map_err(|_| Error::::CodecError)?; ensure!(answer.result.len() == 1, Error::::InvalidOracleAnswer); diff --git a/gn-pallets/pallet-guild/src/test.rs b/gn-pallets/pallet-guild/src/test.rs index 4f16990f..6d5f605a 100644 --- a/gn-pallets/pallet-guild/src/test.rs +++ b/gn-pallets/pallet-guild/src/test.rs @@ -46,13 +46,13 @@ fn dummy_answer( result: Vec, requester: AccountId, request_data: RequestData, -) -> pallet_chainlink::OracleAnswer { +) -> pallet_oracle::OracleAnswer { let data = gn_common::Request:: { requester, data: request_data, } .encode(); - pallet_chainlink::OracleAnswer { data, result } + pallet_oracle::OracleAnswer { data, result } } #[test] @@ -140,7 +140,7 @@ fn register_user() { let user_1 = 1; let user_2 = 2; - ::register_operator(Origin::signed(operator)).unwrap(); + ::register_operator(Origin::signed(operator)).unwrap(); // wrong request data variant let error = ::register( @@ -224,7 +224,7 @@ fn invalid_multiple_type_register() { let operator = 0; let user = 2; - ::register_operator(Origin::signed(operator)).unwrap(); + ::register_operator(Origin::signed(operator)).unwrap(); let identities_with_auth = vec![ IdentityWithAuth::EvmChain([11; 20], [92; 65]), @@ -298,7 +298,7 @@ fn valid_join_guild_request() { role: role_name, }; - ::register_operator(Origin::signed(signer)).unwrap(); + ::register_operator(Origin::signed(signer)).unwrap(); ::create_guild( Origin::signed(signer), guild_name, @@ -310,18 +310,18 @@ fn valid_join_guild_request() { ::register(Origin::signed(signer), register.clone()).unwrap(); let mut request_id = 0; - let request = ::request(request_id).unwrap(); + let request = ::request(request_id).unwrap(); assert_eq!(request.requester, signer); assert_eq!(request.operator, signer); let request_data = Request::::decode(&mut request.data.as_slice()).unwrap(); assert_eq!(request_data.data, register); - ::callback(Origin::signed(signer), request_id, vec![u8::from(true)]).unwrap(); + ::callback(Origin::signed(signer), request_id, vec![u8::from(true)]).unwrap(); ::join_guild(Origin::signed(signer), join.clone()).unwrap(); request_id += 1; - let request = ::request(request_id).unwrap(); + let request = ::request(request_id).unwrap(); assert_eq!(request.requester, signer); assert_eq!(request.operator, signer); let request_data = Request::::decode(&mut request.data.as_slice()).unwrap(); @@ -339,7 +339,7 @@ fn joining_a_guild() { let signer = 1; let mut request_id = 0; - ::register_operator(Origin::signed(signer)).unwrap(); + ::register_operator(Origin::signed(signer)).unwrap(); ::create_guild( Origin::signed(signer), guild_name, @@ -352,7 +352,7 @@ fn joining_a_guild() { ::register(Origin::signed(signer), RequestData::Register(vec![])).unwrap(); // registration = ok - ::callback(Origin::signed(signer), request_id, vec![u8::from(true)]).unwrap(); + ::callback(Origin::signed(signer), request_id, vec![u8::from(true)]).unwrap(); assert!(::user_data(signer).is_some()); request_id += 1; @@ -367,7 +367,7 @@ fn joining_a_guild() { .unwrap(); // access = true - ::callback(Origin::signed(signer), request_id, vec![u8::from(true)]).unwrap(); + ::callback(Origin::signed(signer), request_id, vec![u8::from(true)]).unwrap(); request_id += 1; assert_eq!( @@ -397,9 +397,8 @@ fn joining_a_guild() { .unwrap(); // access = false - let error = - ::callback(Origin::signed(signer), request_id, vec![u8::from(false)]) - .unwrap_err(); + let error = ::callback(Origin::signed(signer), request_id, vec![u8::from(false)]) + .unwrap_err(); assert_eq!(error_msg(error), "AccessDenied"); request_id += 1; @@ -417,7 +416,7 @@ fn joining_a_guild() { .unwrap(); // access = true - ::callback(Origin::signed(signer), request_id, vec![u8::from(true)]).unwrap(); + ::callback(Origin::signed(signer), request_id, vec![u8::from(true)]).unwrap(); assert!(::member(role_1_id, signer).is_some()); assert!(::member(role_2_id, signer).is_some()); @@ -443,7 +442,7 @@ fn joining_the_same_role_in_a_guild_twice_fails() { let signer = 1; let mut request_id = 0; - ::register_operator(Origin::signed(signer)).unwrap(); + ::register_operator(Origin::signed(signer)).unwrap(); ::create_guild( Origin::signed(signer), guild_name, @@ -453,7 +452,7 @@ fn joining_the_same_role_in_a_guild_twice_fails() { .unwrap(); // register first ::register(Origin::signed(signer), RequestData::Register(vec![])).unwrap(); - ::callback(Origin::signed(signer), request_id, vec![u8::from(true)]).unwrap(); + ::callback(Origin::signed(signer), request_id, vec![u8::from(true)]).unwrap(); request_id += 1; // join first time @@ -466,7 +465,7 @@ fn joining_the_same_role_in_a_guild_twice_fails() { ) .unwrap(); - ::callback(Origin::signed(signer), request_id, vec![u8::from(true)]).unwrap(); + ::callback(Origin::signed(signer), request_id, vec![u8::from(true)]).unwrap(); let guild_id = ::guild_id(guild_name).unwrap(); let role_id = ::role_id(guild_id, role_name).unwrap(); @@ -506,7 +505,7 @@ fn joining_multiple_guilds() { let user_1_id = vec![Identity::EvmChain([0; 20])]; let user_2_id = vec![Identity::Discord(999)]; - ::register_operator(Origin::signed(signer_1)).unwrap(); + ::register_operator(Origin::signed(signer_1)).unwrap(); // create first guild ::create_guild( @@ -531,8 +530,8 @@ fn joining_multiple_guilds() { ::register(Origin::signed(signer_2), RequestData::Register(user_2_auth)).unwrap(); // registrations - ::callback(Origin::signed(signer_1), 0, vec![u8::from(true)]).unwrap(); - ::callback(Origin::signed(signer_1), 1, vec![u8::from(true)]).unwrap(); + ::callback(Origin::signed(signer_1), 0, vec![u8::from(true)]).unwrap(); + ::callback(Origin::signed(signer_1), 1, vec![u8::from(true)]).unwrap(); // signer 1 wants to join both guilds ::join_guild( @@ -571,12 +570,12 @@ fn joining_multiple_guilds() { .unwrap(); // join requests - ::callback(Origin::signed(signer_1), 2, vec![u8::from(true)]).unwrap(); - ::callback(Origin::signed(signer_1), 3, vec![u8::from(true)]).unwrap(); + ::callback(Origin::signed(signer_1), 2, vec![u8::from(true)]).unwrap(); + ::callback(Origin::signed(signer_1), 3, vec![u8::from(true)]).unwrap(); let error = - ::callback(Origin::signed(signer_1), 4, vec![u8::from(false)]).unwrap_err(); + ::callback(Origin::signed(signer_1), 4, vec![u8::from(false)]).unwrap_err(); assert_eq!(error_msg(error), "AccessDenied"); - ::callback(Origin::signed(signer_1), 5, vec![u8::from(true)]).unwrap(); + ::callback(Origin::signed(signer_1), 5, vec![u8::from(true)]).unwrap(); let guild_1_id = ::guild_id(guild_1_name).unwrap(); let guild_2_id = ::guild_id(guild_2_name).unwrap(); diff --git a/gn-pallets/pallet-chainlink/Cargo.toml b/gn-pallets/pallet-oracle/Cargo.toml similarity index 92% rename from gn-pallets/pallet-chainlink/Cargo.toml rename to gn-pallets/pallet-oracle/Cargo.toml index 8de28e30..8ca9a4f5 100644 --- a/gn-pallets/pallet-chainlink/Cargo.toml +++ b/gn-pallets/pallet-oracle/Cargo.toml @@ -1,8 +1,8 @@ [package] -authors = ["Parity Technologies "] +authors = ["Guild Network "] edition = "2021" -name = "pallet-chainlink" -version = "3.0.0-alpha" +name = "pallet-oracle" +version = "0.0.1-alpha" [package.metadata.docs.rs] targets = ["x86_64-unknown-linux-gnu"] diff --git a/gn-pallets/pallet-chainlink/src/benchmarking.rs b/gn-pallets/pallet-oracle/src/benchmarking.rs similarity index 81% rename from gn-pallets/pallet-chainlink/src/benchmarking.rs rename to gn-pallets/pallet-oracle/src/benchmarking.rs index e641651e..9cf1a7a1 100644 --- a/gn-pallets/pallet-chainlink/src/benchmarking.rs +++ b/gn-pallets/pallet-oracle/src/benchmarking.rs @@ -1,5 +1,5 @@ use super::*; -use crate::Pallet as Chainlink; +use crate::Pallet as Oracle; use frame_benchmarking::{benchmarks, whitelisted_caller}; use frame_system::RawOrigin; @@ -12,7 +12,7 @@ benchmarks! { } deregister_operator { let operator: T::AccountId = whitelisted_caller(); - Chainlink::::register_operator(RawOrigin::Signed(operator.clone()).into())?; + Oracle::::register_operator(RawOrigin::Signed(operator.clone()).into())?; }: _(RawOrigin::Signed(operator)) verify { } @@ -22,7 +22,7 @@ benchmarks! { // let caller: T::AccountId = whitelisted_caller(); // let operator: T::AccountId = account("operator", 1, 123); - // Chainlink::::register_operator(RawOrigin::Signed(operator.clone()).into())?; + // Oracle::::register_operator(RawOrigin::Signed(operator.clone()).into())?; // let spec_index = vec![0; 5]; // let data_version = 987_u64; @@ -38,7 +38,7 @@ benchmarks! { // let request_id = 128_u64; // let operator: T::AccountId = account("operator", 1, 123); - // Chainlink::::register_operator(RawOrigin::Signed(operator.clone()).into())?; + // Oracle::::register_operator(RawOrigin::Signed(operator.clone()).into())?; // // TODO should add an initiate request //}: _(RawOrigin::Signed(caller), request_id, vec![0; b as usize]) diff --git a/gn-pallets/pallet-chainlink/src/lib.rs b/gn-pallets/pallet-oracle/src/lib.rs similarity index 92% rename from gn-pallets/pallet-chainlink/src/lib.rs rename to gn-pallets/pallet-oracle/src/lib.rs index 22457fb0..384557e2 100644 --- a/gn-pallets/pallet-chainlink/src/lib.rs +++ b/gn-pallets/pallet-oracle/src/lib.rs @@ -1,20 +1,18 @@ -//! # A pallet to interact with Chainlink nodes +//! # A pallet to interact with oracle nodes //! -//! \## Overview +//! ## Overview //! -//! `pallet-chainlink` allows to request external data from chainlink operators. This is done by -//! emitting a well-known event (`OracleEvent`) embedding all required data. This event is listened -//! by operators that in turns call back the `callback` function with the associated data. +//! `pallet-oracle` allows to request external data from oracle operators. This +//! is done by emitting a well-known event (`OracleEvent`) embedding all +//! required data. This event is listened by operators that in turns call back +//! the `callback` function with the associated data. //! -//! To initiate a request, users call `initiate_request` with the relevant details, the `operator` -//! AccountId and the `fee` they agree to spend to get the result. +//! To initiate a request, users call `initiate_request` with the relevant +//! details, the operator's `AccountId` and the fee they agree to spend to get +//! the result. //! -//! To be valid, an operator must register its AccountId first hand via `register_operator`. -//! -//! \## Terminology -//! Operator: a member of chainlink that provides result to requests, in exchange of a fee payment -//! Request: details about what the user expects as result. Must match a Specification supported by -//! an identified Operator Fee: the amount of token a users pays to an operator +//! To be valid, an operator must register its `AccountId` first hand via +//! `register_operator`. #![cfg_attr(not(feature = "std"), no_std)] #![deny(clippy::all)] @@ -47,17 +45,17 @@ pub mod pallet { type WeightInfo: WeightInfo; type Event: From> + IsType<::Event>; type Currency: ReservableCurrency; - // A reference to an Extrinsic that can have a result injected. Used as Chainlink callback + // A reference to an Extrinsic that can have a result injected. Used as Oracle callback type Callback: Parameter + UnfilteredDispatchable + Codec + Eq + CallbackWithParameter; - - // NOTE: The following two types could be `const` // Period during which a request is valid + #[pallet::constant] type ValidityPeriod: Get; // Minimum fee paid for all requests to disincentivize spam requests + #[pallet::constant] type MinimumFee: Get; } @@ -239,10 +237,6 @@ pub mod pallet { NextOperator::::put(next_operator.wrapping_add(1)); - // Currency::minimum_balance() is equivalent to ExistentialDeposit in the - // pallet_balances config of the runtime - // ensure!(fee > T::Currency::minimum_balance(), Error::::InsufficientFee); - // NOTE: this might not be necessary since it seems that reserved // tokens are only moved from the `free` balance of an account and // it is not stored in a totally new account However, a minimum diff --git a/gn-pallets/pallet-chainlink/src/weights.rs b/gn-pallets/pallet-oracle/src/weights.rs similarity index 85% rename from gn-pallets/pallet-chainlink/src/weights.rs rename to gn-pallets/pallet-oracle/src/weights.rs index 57ac0437..37880497 100644 --- a/gn-pallets/pallet-chainlink/src/weights.rs +++ b/gn-pallets/pallet-oracle/src/weights.rs @@ -15,7 +15,7 @@ // See the License for the specific language governing permissions and // limitations under the License. -//! Autogenerated weights for pallet_chainlink +//! Autogenerated weights for pallet_oracle //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev //! DATE: 2022-09-23, STEPS: `50`, REPEAT: 20, LOW RANGE: `[]`, HIGH RANGE: `[]` @@ -29,7 +29,7 @@ // --chain // dev // --pallet -// pallet_chainlink +// pallet_oracle // --extrinsic // * // --execution=wasm @@ -41,7 +41,7 @@ // --template // frame-weight-template.hbs // --output -// ./pallets/pallet-chainlink/src/weights.rs +// ./pallets/pallet-oracle/src/weights.rs #![cfg_attr(rustfmt, rustfmt_skip)] #![allow(unused_parens)] @@ -50,22 +50,22 @@ use frame_support::{traits::Get, weights::{Weight, constants::RocksDbWeight}}; use sp_std::marker::PhantomData; -/// Weight functions needed for pallet_chainlink. +/// Weight functions needed for pallet_oracle. pub trait WeightInfo { fn register_operator() -> Weight; fn deregister_operator() -> Weight; } -/// Weights for pallet_chainlink using the Substrate node and recommended hardware. +/// Weights for pallet_oracle using the Substrate node and recommended hardware. pub struct SubstrateWeight(PhantomData); impl WeightInfo for SubstrateWeight { - // Storage: Chainlink Operators (r:1 w:1) + // Storage: Oracle Operators (r:1 w:1) fn register_operator() -> Weight { (16_972_000 as Weight) .saturating_add(T::DbWeight::get().reads(1 as Weight)) .saturating_add(T::DbWeight::get().writes(1 as Weight)) } - // Storage: Chainlink Operators (r:1 w:1) + // Storage: Oracle Operators (r:1 w:1) fn deregister_operator() -> Weight { (16_862_000 as Weight) .saturating_add(T::DbWeight::get().reads(1 as Weight)) @@ -75,13 +75,13 @@ impl WeightInfo for SubstrateWeight { // For backwards compatibility and tests impl WeightInfo for () { - // Storage: Chainlink Operators (r:1 w:1) + // Storage: Oracle Operators (r:1 w:1) fn register_operator() -> Weight { (16_972_000 as Weight) .saturating_add(RocksDbWeight::get().reads(1 as Weight)) .saturating_add(RocksDbWeight::get().writes(1 as Weight)) } - // Storage: Chainlink Operators (r:1 w:1) + // Storage: Oracle Operators (r:1 w:1) fn deregister_operator() -> Weight { (16_862_000 as Weight) .saturating_add(RocksDbWeight::get().reads(1 as Weight)) diff --git a/gn-pallets/pallet-test-caller/Cargo.toml b/gn-pallets/pallet-test-caller/Cargo.toml index 1abe0ead..7811210f 100644 --- a/gn-pallets/pallet-test-caller/Cargo.toml +++ b/gn-pallets/pallet-test-caller/Cargo.toml @@ -4,17 +4,17 @@ name = "pallet-test-caller" version = "0.1.0" [dependencies] -codec = {package = "parity-scale-codec", version = "3.0.0", default-features = false, features = ["derive"]} -frame-support = {version = "4.0.0-dev", git = "https://github.com/paritytech/substrate.git", branch = "polkadot-v0.9.25"} -frame-system = {version = "4.0.0-dev", git = "https://github.com/paritytech/substrate.git", branch = "polkadot-v0.9.25"} -scale-info = {version = "2.1.1", default-features = false, features = ["derive"]} +codec = { package = "parity-scale-codec", version = "3.0.0", default-features = false, features = ["derive"] } +frame-support = { version = "4.0.0-dev", git = "https://github.com/paritytech/substrate.git", branch = "polkadot-v0.9.25" } +frame-system = { version = "4.0.0-dev", git = "https://github.com/paritytech/substrate.git", branch = "polkadot-v0.9.25" } +scale-info = { version = "2.1.1", default-features = false, features = ["derive"] } -pallet-chainlink = {path = "../pallet-chainlink"} +pallet-oracle = { path = "../pallet-oracle" } [dev-dependencies] -pallet-balances = {version = "4.0.0-dev", git = "https://github.com/paritytech/substrate.git", branch = "polkadot-v0.9.25"} -pallet-randomness-collective-flip = {version = "4.0.0-dev", git = "https://github.com/paritytech/substrate.git", branch = "polkadot-v0.9.25"} -sp-core = {default-features = false, version = "6.0.0", git = "https://github.com/paritytech/substrate.git", branch = "polkadot-v0.9.25"} -sp-io = {default-features = false, version = "6.0.0", git = "https://github.com/paritytech/substrate.git", branch = "polkadot-v0.9.25"} -sp-runtime = {default-features = false, version = "6.0.0", git = "https://github.com/paritytech/substrate.git", branch = "polkadot-v0.9.25"} -test-runtime = {package = "gn-test-runtime", path = "../../gn-test-runtime"} +pallet-balances = { version = "4.0.0-dev", git = "https://github.com/paritytech/substrate.git", branch = "polkadot-v0.9.25" } +pallet-randomness-collective-flip = { version = "4.0.0-dev", git = "https://github.com/paritytech/substrate.git", branch = "polkadot-v0.9.25" } +sp-core = { default-features = false, version = "6.0.0", git = "https://github.com/paritytech/substrate.git", branch = "polkadot-v0.9.25" } +sp-io = { default-features = false, version = "6.0.0", git = "https://github.com/paritytech/substrate.git", branch = "polkadot-v0.9.25" } +sp-runtime = { default-features = false, version = "6.0.0", git = "https://github.com/paritytech/substrate.git", branch = "polkadot-v0.9.25" } +test-runtime = { package = "gn-test-runtime", path = "../../gn-test-runtime" } diff --git a/gn-pallets/pallet-test-caller/src/lib.rs b/gn-pallets/pallet-test-caller/src/lib.rs index bb178d43..fe0fbe8e 100644 --- a/gn-pallets/pallet-test-caller/src/lib.rs +++ b/gn-pallets/pallet-test-caller/src/lib.rs @@ -8,10 +8,10 @@ pub mod pallet { use frame_support::traits::Randomness; use frame_support::{dispatch::DispatchResult, pallet_prelude::*}; use frame_system::{ensure_root, pallet_prelude::*}; - use pallet_chainlink::{CallbackWithParameter, Config as ChainlinkConfig}; + use pallet_oracle::{CallbackWithParameter, Config as OracleConfig}; #[pallet::config] - pub trait Config: ChainlinkConfig> + frame_system::Config { + pub trait Config: OracleConfig> + frame_system::Config { type Event: From> + IsType<::Event>; type WeightInfo: Sized; type MyRandomness: Randomness; @@ -22,7 +22,7 @@ pub mod pallet { #[pallet::weight(1_000_000)] pub fn callback(origin: OriginFor, result: Vec) -> DispatchResult { ensure_root(origin)?; - let answer = pallet_chainlink::OracleAnswer::decode(&mut result.as_slice()) + let answer = pallet_oracle::OracleAnswer::decode(&mut result.as_slice()) .map_err(|_| Error::::DecodingFailed)?; let num = u64::from_le_bytes( answer diff --git a/gn-pallets/pallet-test-caller/src/test.rs b/gn-pallets/pallet-test-caller/src/test.rs index 59f4f550..35bc1baf 100644 --- a/gn-pallets/pallet-test-caller/src/test.rs +++ b/gn-pallets/pallet-test-caller/src/test.rs @@ -9,8 +9,8 @@ pub fn last_event() -> Event { System::events() .into_iter() .filter_map(|e| { - if let Event::Chainlink(inner) = e.event { - Some(Event::Chainlink(inner)) + if let Event::Oracle(inner) = e.event { + Some(Event::Oracle(inner)) } else { None } @@ -20,7 +20,7 @@ pub fn last_event() -> Event { } fn get_minimum_fee() -> u64 { - ::MinimumFee::get() as u64 + ::MinimumFee::get() as u64 } #[test] @@ -29,25 +29,25 @@ fn operator_registration_valid() { // This is required for some reason otherwise the last_event() method fails System::set_block_number(1); - assert!(::operators().is_empty()); - assert!(::register_operator(Origin::signed(1)).is_ok()); + assert!(::operators().is_empty()); + assert!(::register_operator(Origin::signed(1)).is_ok()); assert_eq!( last_event(), - Event::Chainlink(pallet_chainlink::Event::OperatorRegistered(1)) + Event::Oracle(pallet_oracle::Event::OperatorRegistered(1)) ); - assert_eq!(::operators(), vec![1]); + assert_eq!(::operators(), vec![1]); }); } #[test] fn operator_registration_invalid_operator_already_registered() { new_test_runtime().execute_with(|| { - assert!(::register_operator(Origin::signed(1)).is_ok()); - assert_eq!(::operators(), vec![1]); + assert!(::register_operator(Origin::signed(1)).is_ok()); + assert_eq!(::operators(), vec![1]); // Operator already registered error - assert!(::register_operator(Origin::signed(1)).is_err()); - assert_eq!(::operators(), vec![1]); + assert!(::register_operator(Origin::signed(1)).is_err()); + assert_eq!(::operators(), vec![1]); }); } @@ -57,13 +57,13 @@ fn operator_unregistration_valid() { // This is required for some reason otherwise the last_event() method fails System::set_block_number(1); - assert!(::register_operator(Origin::signed(1)).is_ok()); - assert!(::deregister_operator(Origin::signed(1)).is_ok()); - assert!(::operators().is_empty()); + assert!(::register_operator(Origin::signed(1)).is_ok()); + assert!(::deregister_operator(Origin::signed(1)).is_ok()); + assert!(::operators().is_empty()); assert_eq!( last_event(), - Event::Chainlink(pallet_chainlink::Event::OperatorDeregistered(1)) + Event::Oracle(pallet_oracle::Event::OperatorDeregistered(1)) ); }); } @@ -72,8 +72,8 @@ fn operator_unregistration_valid() { fn operator_unregistration_invalid_unknown_operator() { new_test_runtime().execute_with(|| { // Unknown operator error - assert!(::deregister_operator(Origin::signed(1)).is_err()); - assert!(::operators().is_empty()); + assert!(::deregister_operator(Origin::signed(1)).is_err()); + assert!(::operators().is_empty()); }); } @@ -86,15 +86,15 @@ fn initiate_requests_valid() { let callback = pallet_test_caller::Call::::callback { result: vec![] }; let fee = get_minimum_fee(); - assert!(::register_operator(Origin::signed(operator)).is_ok()); + assert!(::register_operator(Origin::signed(operator)).is_ok()); assert_eq!( last_event(), - Event::Chainlink(pallet_chainlink::Event::OperatorRegistered(operator)) + Event::Oracle(pallet_oracle::Event::OperatorRegistered(operator)) ); let parameters = ("a", "b"); let data = parameters.encode(); - assert!(::initiate_request( + assert!(::initiate_request( Origin::signed(requester), callback.clone(), data.clone(), @@ -105,7 +105,7 @@ fn initiate_requests_valid() { let request_id = 0; assert_eq!( last_event(), - Event::Chainlink(pallet_chainlink::Event::OracleRequest { + Event::Oracle(pallet_oracle::Event::OracleRequest { request_id, operator, callback, @@ -117,13 +117,11 @@ fn initiate_requests_valid() { assert_eq!("a", std::str::from_utf8(&r).unwrap()); let result: u64 = 10; - assert!( - ::callback(Origin::signed(operator), request_id, result.encode()).is_ok() - ); + assert!(::callback(Origin::signed(operator), request_id, result.encode()).is_ok()); assert_eq!( last_event(), - Event::Chainlink(pallet_chainlink::Event::OracleAnswer { + Event::Oracle(pallet_oracle::Event::OracleAnswer { request_id, operator, fee, @@ -153,12 +151,12 @@ fn linear_request_delegation() { let fee = get_minimum_fee(); let mut request_id = 0; - assert!(::register_operator(Origin::signed(operator_0)).is_ok()); - assert!(::register_operator(Origin::signed(operator_1)).is_ok()); - assert!(::register_operator(Origin::signed(operator_2)).is_ok()); - assert!(::register_operator(Origin::signed(operator_3)).is_ok()); + assert!(::register_operator(Origin::signed(operator_0)).is_ok()); + assert!(::register_operator(Origin::signed(operator_1)).is_ok()); + assert!(::register_operator(Origin::signed(operator_2)).is_ok()); + assert!(::register_operator(Origin::signed(operator_3)).is_ok()); - assert!(::initiate_request( + assert!(::initiate_request( Origin::signed(signer), callback.clone(), data.clone(), @@ -168,7 +166,7 @@ fn linear_request_delegation() { assert_eq!( last_event(), - Event::Chainlink(pallet_chainlink::Event::OracleRequest { + Event::Oracle(pallet_oracle::Event::OracleRequest { request_id, operator: operator_0, callback: callback.clone(), @@ -177,7 +175,7 @@ fn linear_request_delegation() { ); request_id += 1; - assert!(::initiate_request( + assert!(::initiate_request( Origin::signed(signer), callback.clone(), data.clone(), @@ -187,7 +185,7 @@ fn linear_request_delegation() { assert_eq!( last_event(), - Event::Chainlink(pallet_chainlink::Event::OracleRequest { + Event::Oracle(pallet_oracle::Event::OracleRequest { request_id, operator: operator_1, callback: callback.clone(), @@ -196,7 +194,7 @@ fn linear_request_delegation() { ); request_id += 1; - assert!(::initiate_request( + assert!(::initiate_request( Origin::signed(signer), callback.clone(), data.clone(), @@ -206,7 +204,7 @@ fn linear_request_delegation() { assert_eq!( last_event(), - Event::Chainlink(pallet_chainlink::Event::OracleRequest { + Event::Oracle(pallet_oracle::Event::OracleRequest { request_id, operator: operator_2, callback: callback.clone(), @@ -215,7 +213,7 @@ fn linear_request_delegation() { ); request_id += 1; - assert!(::initiate_request( + assert!(::initiate_request( Origin::signed(signer), callback.clone(), data.clone(), @@ -225,7 +223,7 @@ fn linear_request_delegation() { assert_eq!( last_event(), - Event::Chainlink(pallet_chainlink::Event::OracleRequest { + Event::Oracle(pallet_oracle::Event::OracleRequest { request_id, operator: operator_3, callback: callback.clone(), @@ -235,13 +233,13 @@ fn linear_request_delegation() { request_id += 1; assert!( - ::initiate_request(Origin::signed(signer), callback.clone(), data, fee,) + ::initiate_request(Origin::signed(signer), callback.clone(), data, fee,) .is_ok() ); assert_eq!( last_event(), - Event::Chainlink(pallet_chainlink::Event::OracleRequest { + Event::Oracle(pallet_oracle::Event::OracleRequest { request_id, operator: operator_0, callback, @@ -255,7 +253,7 @@ fn linear_request_delegation() { fn initiate_requests_invalid_unknown_operator() { new_test_runtime().execute_with(|| { // No operator registered error - assert!(::initiate_request( + assert!(::initiate_request( Origin::signed(2), pallet_test_caller::Call::::callback { result: vec![] }, vec![], @@ -268,9 +266,9 @@ fn initiate_requests_invalid_unknown_operator() { #[test] fn initiate_requests_invalid_insufficient_fee() { new_test_runtime().execute_with(|| { - assert!(::register_operator(Origin::signed(1)).is_ok()); + assert!(::register_operator(Origin::signed(1)).is_ok()); // Insufficient fee error - assert!(::initiate_request( + assert!(::initiate_request( Origin::signed(2), pallet_test_caller::Call::::callback { result: vec![] }, vec![], @@ -283,10 +281,10 @@ fn initiate_requests_invalid_insufficient_fee() { #[test] fn initiate_requests_invalid_insufficient_balance_for_fee() { new_test_runtime().execute_with(|| { - assert!(::register_operator(Origin::signed(1)).is_ok()); + assert!(::register_operator(Origin::signed(1)).is_ok()); // Insufficient balance error (System error) - assert!(::initiate_request( + assert!(::initiate_request( Origin::signed(2), pallet_test_caller::Call::::callback { result: vec![] }, vec![], @@ -299,8 +297,8 @@ fn initiate_requests_invalid_insufficient_balance_for_fee() { #[test] fn initiate_requests_invalid_wrong_operator() { new_test_runtime().execute_with(|| { - assert!(::register_operator(Origin::signed(1)).is_ok()); - assert!(::initiate_request( + assert!(::register_operator(Origin::signed(1)).is_ok()); + assert!(::initiate_request( Origin::signed(2), pallet_test_caller::Call::::callback { result: vec![] }, vec![], @@ -308,7 +306,7 @@ fn initiate_requests_invalid_wrong_operator() { ) .is_ok()); // Wrong operator error - assert!(::callback(Origin::signed(3), 0, 10.encode()).is_err()); + assert!(::callback(Origin::signed(3), 0, 10.encode()).is_err()); }); } @@ -316,15 +314,15 @@ fn initiate_requests_invalid_wrong_operator() { fn callback_invalid_unknown_request() { new_test_runtime().execute_with(|| { // Unknown request error - assert!(::callback(Origin::signed(1), 0, 10.encode()).is_err()); + assert!(::callback(Origin::signed(1), 0, 10.encode()).is_err()); }); } #[test] fn kill_request() { new_test_runtime().execute_with(|| { - assert!(::register_operator(Origin::signed(1)).is_ok()); - assert!(::initiate_request( + assert!(::register_operator(Origin::signed(1)).is_ok()); + assert!(::initiate_request( Origin::signed(2), pallet_test_caller::Call::::callback { result: vec![] }, vec![], @@ -332,18 +330,18 @@ fn kill_request() { ) .is_ok()); - >::on_finalize( - ::ValidityPeriod::get() - 1, + >::on_finalize( + ::ValidityPeriod::get() - 1, ); - assert!(::request(0).is_some()); + assert!(::request(0).is_some()); - >::on_finalize( - ::ValidityPeriod::get() + 1, + >::on_finalize( + ::ValidityPeriod::get() + 1, ); // Request has been killed, too old // Unknown request error - assert!(::callback(Origin::signed(1), 0, 10.encode()).is_err()); - assert!(::request(0).is_none()); + assert!(::callback(Origin::signed(1), 0, 10.encode()).is_err()); + assert!(::request(0).is_none()); }); } diff --git a/gn-runtime/Cargo.toml b/gn-runtime/Cargo.toml index 7a18621f..9c0d5b79 100644 --- a/gn-runtime/Cargo.toml +++ b/gn-runtime/Cargo.toml @@ -21,7 +21,7 @@ runtime-benchmarks = [ "frame-system/runtime-benchmarks", "hex-literal", "pallet-balances/runtime-benchmarks", - "pallet-chainlink/runtime-benchmarks", + "pallet-oracle/runtime-benchmarks", "pallet-grandpa/runtime-benchmarks", "pallet-guild/runtime-benchmarks", "pallet-timestamp/runtime-benchmarks", @@ -37,7 +37,7 @@ std = [ "frame-try-runtime/std", "pallet-aura/std", "pallet-balances/std", - "pallet-chainlink/std", + "pallet-oracle/std", "pallet-grandpa/std", "pallet-guild/std", "pallet-nicks/std", @@ -87,7 +87,7 @@ hex-literal = {version = "0.3.4", optional = true} pallet-aura = {version = "4.0.0-dev", default-features = false, git = "https://github.com/paritytech/substrate.git", branch = "polkadot-v0.9.25"} pallet-balances = {version = "4.0.0-dev", default-features = false, git = "https://github.com/paritytech/substrate.git", branch = "polkadot-v0.9.25"} -pallet-chainlink = {version = "3.0.0-alpha", default-features = false, path = "../gn-pallets/pallet-chainlink"} +pallet-oracle = {version = "0.0.1-alpha", default-features = false, path = "../gn-pallets/pallet-oracle"} pallet-grandpa = {version = "4.0.0-dev", default-features = false, git = "https://github.com/paritytech/substrate.git", branch = "polkadot-v0.9.25"} pallet-guild = {version = "0.1.0-alpha", default-features = false, path = "../gn-pallets/pallet-guild"} pallet-nicks = {version = "4.0.0-dev", default-features = false, git = "https://github.com/paritytech/substrate.git", branch = "polkadot-v0.9.25"} diff --git a/gn-runtime/src/lib.rs b/gn-runtime/src/lib.rs index 3d2ad5d9..a7fdb81e 100644 --- a/gn-runtime/src/lib.rs +++ b/gn-runtime/src/lib.rs @@ -47,8 +47,8 @@ use pallet_transaction_payment::CurrencyAdapter; pub use sp_runtime::BuildStorage; pub use sp_runtime::{Perbill, Permill}; -pub use pallet_chainlink; pub use pallet_guild; +pub use pallet_oracle; /// An index to a block. pub type BlockNumber = u32; @@ -150,8 +150,7 @@ parameter_types! { ::max_with_normal_ratio(5 * 1024 * 1024, NORMAL_DISPATCH_RATIO); pub const SS58Prefix: u8 = 42; pub const ValidityPeriod: u32 = 50; - /// This is a placeholder value further discussion is required - pub const MinimumFee: u32 = 1_000; + pub const MinimumFee: u32 = 0; } // Configure FRAME pallets to include in runtime. @@ -277,7 +276,7 @@ impl pallet_guild::Config for Runtime { type MyRandomness = RandomnessCollectiveFlip; } -impl pallet_chainlink::Config for Runtime { +impl pallet_oracle::Config for Runtime { type WeightInfo = (); type Event = Event; type Currency = Balances; @@ -302,7 +301,7 @@ construct_runtime!( TransactionPayment: pallet_transaction_payment, Sudo: pallet_sudo, Guild: pallet_guild, - Chainlink: pallet_chainlink, + Oracle: pallet_oracle, } ); @@ -348,7 +347,7 @@ mod benches { [pallet_balances, Balances] [pallet_timestamp, Timestamp] [pallet_guild, Guild] - [pallet_chainlink, Chainlink] + [pallet_oracle, Oracle] ); } @@ -527,7 +526,7 @@ impl_runtime_apis! { let params = (&config, &whitelist); add_benchmark!(params, batches, pallet_guild, Guild); - add_benchmark!(params, batches, pallet_chainlink, Chainlink); + add_benchmark!(params, batches, pallet_oracle, Oracle); Ok(batches) } } diff --git a/gn-test-runtime/src/lib.rs b/gn-test-runtime/src/lib.rs index 444a0d4d..1630da88 100644 --- a/gn-test-runtime/src/lib.rs +++ b/gn-test-runtime/src/lib.rs @@ -15,7 +15,7 @@ macro_rules! test_runtime { UncheckedExtrinsic = UncheckedExtrinsic, { Balances: pallet_balances::{Pallet, Call, Storage, Config, Event}, - Chainlink: pallet_chainlink::{Pallet, Call, Storage, Event}, + Oracle: pallet_oracle::{Pallet, Call, Storage, Event}, $name: $pallet::{Pallet, Call, Storage, Event}, System: frame_system::{Pallet, Call, Config, Storage, Event}, RandomnessCollectiveFlip: pallet_randomness_collective_flip, @@ -78,7 +78,7 @@ macro_rules! test_runtime { type ReserveIdentifier = [u8; 8]; } - impl pallet_chainlink::Config for TestRuntime { + impl pallet_oracle::Config for TestRuntime { type Event = Event; type Currency = pallet_balances::Pallet; type Callback = $pallet::Call;