mirror of
https://github.com/pezkuwichain/pezkuwi-subxt.git
synced 2026-06-11 13:01:07 +00:00
Introduce srml/im-online (#3079)
* Fix grammar and typo * Extend network service * Extend offchain API * Support creating unsigned UncheckedExtrinsic * Introduce srml/im-online * Bump impl and spec version * Fix web-wasm test * Apply suggestions from code review Remove parity-multiaddr dependency Co-Authored-By: Pierre Krieger <pierre.krieger1708@gmail.com> * Replace transmute with from_raw_parts * Replace PeerId.to_string() with .to_base58() Co-Authored-By: Pierre Krieger <pierre.krieger1708@gmail.com> * Update Cargo.lock * Bump impl and spec version (again) It was updated in master in the meantime. * Apply suggestions from code review Co-Authored-By: Sergei Pepyakin <sergei@parity.io> * Address comments * Add public function is_online_in_current_session() * Bump spec_version * Fix doc tests * Improve comments * Remove superfluous line * Name parameters consistently * Implement comments * Switch From to TryFrom * Use Vec instead of HashSet * Fix tests * Revert me: local testing * Fix check if already sent during session We gossip each session, hence we need to check if already sent in this session (not era). * Fix typos * Consistent terminology * Revert "Revert me: local testing" This reverts commit 73fbc29ff3e5ed71d99436318260b4f007e837f4. * Introduce IsMember trait * Implement misc comments * Remove unused function * Fix test * Fix external_addresses being written * Fix test * Add necessary trait bound * Do not increment version * Update lib.rs
This commit is contained in:
committed by
Gavin Wood
parent
a757dfb222
commit
c70b81444a
@@ -26,6 +26,7 @@ use wasmi::{
|
||||
};
|
||||
use state_machine::{Externalities, ChildStorageKey};
|
||||
use crate::error::{Error, Result};
|
||||
use parity_codec::Encode;
|
||||
use primitives::{blake2_128, blake2_256, twox_64, twox_128, twox_256, ed25519, sr25519, Pair};
|
||||
use primitives::offchain;
|
||||
use primitives::hexdisplay::HexDisplay;
|
||||
@@ -767,6 +768,42 @@ impl_function_executor!(this: FunctionExecutor<'e, E>,
|
||||
|
||||
Ok(offset)
|
||||
},
|
||||
ext_network_state(written_out: *mut u32) -> *mut u8 => {
|
||||
let res = this.ext.offchain()
|
||||
.map(|api| api.network_state())
|
||||
.ok_or_else(|| "Calling unavailable API ext_network_state: wasm")?;
|
||||
|
||||
let encoded = res.encode();
|
||||
let len = encoded.len() as u32;
|
||||
let offset = this.heap.allocate(len)? as u32;
|
||||
this.memory.set(offset, &encoded)
|
||||
.map_err(|_| "Invalid attempt to set memory in ext_network_state")?;
|
||||
|
||||
this.memory.write_primitive(written_out, len)
|
||||
.map_err(|_| "Invalid attempt to write written_out in ext_network_state")?;
|
||||
|
||||
Ok(offset)
|
||||
},
|
||||
ext_authority_pubkey(
|
||||
kind: u32,
|
||||
written_out: *mut u32
|
||||
) -> *mut u8 => {
|
||||
let kind = offchain::CryptoKind::try_from(kind)
|
||||
.map_err(|_| "crypto kind OOB while ext_authority_pubkey: wasm")?;
|
||||
|
||||
let res = this.ext.offchain()
|
||||
.map(|api| api.authority_pubkey(kind))
|
||||
.ok_or_else(|| "Calling unavailable API ext_authority_pubkey: wasm")?;
|
||||
|
||||
let encoded = res.encode();
|
||||
let len = encoded.len() as u32;
|
||||
let offset = this.heap.allocate(len)? as u32;
|
||||
this.memory.set(offset, &encoded)
|
||||
.map_err(|_| "Invalid attempt to set memory in ext_authority_pubkey")?;
|
||||
this.memory.write_primitive(written_out, len)
|
||||
.map_err(|_| "Invalid attempt to write written_out in ext_authority_pubkey")?;
|
||||
Ok(offset)
|
||||
},
|
||||
ext_decrypt(
|
||||
key: u32,
|
||||
kind: u32,
|
||||
|
||||
Reference in New Issue
Block a user