Refactor all (demo) runtime modules to use new storage#98
Conversation
Not yet complete but 75% there.
| vec![ | ||
| (&session::SESSION_LENGTH[..], vec![].and(&self.session_length)), | ||
| (&session::VALIDATOR_COUNT[..], vec![].and(&(self.validators.len() as u32))), | ||
| (session::SessionLength::key(), vec![].and(&self.session_length)), |
| } | ||
|
|
||
| struct RuntimeStorage; | ||
| pub struct RuntimeStorage; |
There was a problem hiding this comment.
doe it need to be pub? should have docs if so
There was a problem hiding this comment.
yup it's needed for the macro
|
|
||
| use codec; | ||
| use rstd::vec::Vec; | ||
| pub use rstd::borrow::Borrow; |
|
|
||
| /// Load the bytes of a key from storage. Can panic if the type is incorrect. | ||
| fn load<T: codec::Slicable>(&self, key: &[u8]) -> Option<T>; | ||
| fn require<T: codec::Slicable>(&self, key: &[u8]) -> T { self.get(key).expect("Required values must be in storage") } |
There was a problem hiding this comment.
doc string should specify that it panics if it's not there
| } | ||
|
|
||
| /// Take a value from storage, deleting it after reading. | ||
| fn seize<T: codec::Slicable>(&self, key: &[u8]) -> T { self.take(key).expect("Required values must be in storage") } |
There was a problem hiding this comment.
take/seize is confusing. take_required?
| (($($vis:tt)*) $name: ident: $key: expr => $ty:ty) => { | ||
| (($($vis:tt)*) ($get_fn:ident) ($gettype:ty) ($getter:ident) ($taker:ident) $name:ident : $key:expr => $ty:ty) => { | ||
| __storage_items_internal!{ ($($vis)*) () ($gettype) ($getter) ($taker) $name : $key => $ty } | ||
| pub fn $get_fn() -> $gettype { <$name as $crate::storage::generator::StorageValue<$ty>> :: get(&$crate::storage::RuntimeStorage) } |
There was a problem hiding this comment.
tightly coupling the macro to RuntimeStorage (which is useless outside of runtime context) isn't helpful.
We have a $name::get() function anyway via the parent storage module.
There was a problem hiding this comment.
yeah but it's crappy to have half of the getters use the idiomatic lower_case_function() and half using PascalCaseName::get(). you need to guess which is which.
There was a problem hiding this comment.
if there's a better way of doing this, then happy to go with it, but i don't see it.
There was a problem hiding this comment.
fine for now, although I dislike the coupling. maybe could have a separate macro for generating the getter
* bump substrate version * fix polkadot-collator
* Rebuild runtime * Remove invalid value from chainspec (paritytech#68) * service: use grandpa block import for locally sealed aura blocks (paritytech#85) * bump version to v0.3.1 * Update lock file. * limit number of transactions when building blocks (paritytech#91) * Update to latest Substrate * Bump to 0.3.2 * Actually bump. * v0.3.2 (paritytech#98) * bump substrate version * fix polkadot-collator * point to alexander-backports of substrate * bump version * cli: fix node shutdown (paritytech#100) * update to latest substrate, change to v0.3.4 * update to latest substrate, bump version to 0.3.5 * v0.3.6 * try to build on every v0.3 commit and update alexander-backports * bump to v0.3.7 * bump to 0.3.8 * Bump to 0.3.9: network and pruning improvements * Bump to 0.3.10: reduce network bandwidth usage * Use libp2p-kad 0.3.2 (paritytech#122) * Bump libp2p-identify to 0.3.1 (paritytech#123) * Bump to 0.3.12 (paritytech#127) * Update Substrate again (paritytech#128) * update substrate and bump version to v0.3.13 * bump version to v0.3.14: fix --reserved-nodes * add a manually curated grandpa module (paritytech#136) * updating v0.3 to use substrate v0.10 (paritytech#146) * updating to latest substrate v0.10 * better handling of outer poll * nit * fix tests * remove comment * reduce indentation * use self.poll * bring oneshot into scope * spaces * wrap * remove match * wrap * Update primitives/Cargo.toml Co-Authored-By: gterzian <2792687+gterzian@users.noreply.github.com> * Update runtime/wasm/Cargo.toml Co-Authored-By: gterzian <2792687+gterzian@users.noreply.github.com> * Update runtime/wasm/Cargo.toml Co-Authored-By: gterzian <2792687+gterzian@users.noreply.github.com> * Update test-parachains/adder/collator/src/main.rs Co-Authored-By: gterzian <2792687+gterzian@users.noreply.github.com> * indent * add paranthese * config: fix wrong ip for alexander bootnode (paritytech#161) * fix curated-grandpa and rebuild wasm (paritytech#162) * [v0.3] Integrates new gossip system into Polkadot (paritytech#166) * new gossip validation in network * integrate new gossip into service * network: guard validation network future under exit signal (paritytech#168) * bump version to v0.3.15: substrate v0.10 * [v0.3] update to substrate master (paritytech#175) * update to substrate master * fix test * service: fix telemetry endpoints on alexander chainspec (paritytech#169) (paritytech#178) * Update v0.3 to latest Substrate master (paritytech#177) * update substrate v0.3 to latest master * bump spec version * update to latest master: remove fees module * update runtime blobs * bump version to 0.3.16 * replace sr25519 accountid with anysigner * bump version to v0.3.17 * Some PoC-3 GRANDPA tweaks (paritytech#181) * call on_finalise after triggering curated_grandpa change * make grandpa rounds shorter for faster finalization * use authorities when calculating duty roster (paritytech#185) * [v0.3] Update to substrate master (paritytech#183) * update to latest substrate master * bump version to 0.3.18 * update to latest substrate master * bump spec version * update runtime wasm blobs * remove current_offline_slash from chain spec * update to substrate master: bump version to v0.3.19 (paritytech#188) * update to substrate master: bump version to v0.3.19 libp2p network improvements * network: replace NodeIndex with PeerId * network: fix tests * polkadot v0.3.20 (paritytech#190) * update to substrate master: bump version to 0.3.20 * runtime: add offchain worker trait * runtime: rebuild wasm blobs * bump spec version (paritytech#191) * Fix compilation * Update version to 0.4.0 * Switch to use `polkadot-master` branch from substrate * Remove unused struct * Remove `grandpa::SyncedAuthorities` from `OnSessionChange`
* withdrawal module init and rename some dir module * withdrawal module finish * withdrawal finish
…Info Remove WeightInfo in pallet-offences-subspace
* Add missing license headers and add CI check * Remove log line * Remove stale todos
No description provided.