mirror of
https://github.com/pezkuwichain/pezkuwi-subxt.git
synced 2026-04-26 19:17:58 +00:00
use new environmental API
This commit is contained in:
@@ -21,21 +21,17 @@ impl fmt::Display for NoError {
|
||||
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { write!(f, "") }
|
||||
}
|
||||
|
||||
pub struct ExternalitiesHolder<'a> {
|
||||
ext: &'a mut Externalities<Error=NoError>,
|
||||
}
|
||||
|
||||
declare_generic!(ext : ExternalitiesHolder);
|
||||
environmental!(ext : Externalities<Error=NoError> + 'static);
|
||||
|
||||
pub fn storage(key: &[u8]) -> Vec<u8> {
|
||||
ext::with(|holder| holder.ext.storage(key).ok().map(|s| s.to_vec()))
|
||||
ext::with(|ext| ext.storage(key).ok().map(|s| s.to_vec()))
|
||||
.unwrap_or(None)
|
||||
.unwrap_or_else(|| vec![])
|
||||
}
|
||||
|
||||
pub fn read_storage(key: &[u8], value_out: &mut [u8]) -> usize {
|
||||
ext::with(|holder| {
|
||||
if let Ok(value) = holder.ext.storage(key) {
|
||||
ext::with(|ext| {
|
||||
if let Ok(value) = ext.storage(key) {
|
||||
let written = ::std::cmp::min(value.len(), value_out.len());
|
||||
value_out[0..written].copy_from_slice(&value[0..written]);
|
||||
value.len()
|
||||
@@ -48,8 +44,8 @@ pub fn read_storage(key: &[u8], value_out: &mut [u8]) -> usize {
|
||||
pub fn storage_into<T: Sized>(_key: &[u8]) -> Option<T> {
|
||||
let size = size_of::<T>();
|
||||
|
||||
ext::with(|holder| {
|
||||
if let Ok(value) = holder.ext.storage(_key) {
|
||||
ext::with(|ext| {
|
||||
if let Ok(value) = ext.storage(_key) {
|
||||
if value.len() == size {
|
||||
unsafe {
|
||||
let mut result: T = std::mem::uninitialized();
|
||||
@@ -64,15 +60,15 @@ pub fn storage_into<T: Sized>(_key: &[u8]) -> Option<T> {
|
||||
}
|
||||
|
||||
pub fn set_storage(_key: &[u8], _value: &[u8]) {
|
||||
ext::with(|holder|
|
||||
holder.ext.set_storage(_key.to_vec(), _value.to_vec())
|
||||
ext::with(|ext|
|
||||
ext.set_storage(_key.to_vec(), _value.to_vec())
|
||||
);
|
||||
}
|
||||
|
||||
/// The current relay chain identifier.
|
||||
pub fn chain_id() -> u64 {
|
||||
ext::with(|holder|
|
||||
holder.ext.chain_id()
|
||||
ext::with(|ext|
|
||||
ext.chain_id()
|
||||
).unwrap_or(0)
|
||||
}
|
||||
|
||||
@@ -81,9 +77,8 @@ pub use tiny_keccak::keccak256;
|
||||
|
||||
/// Execute the given closure with global function available whose functionality routes into the
|
||||
/// externalities `ext`. Forwards the value that the closure returns.
|
||||
pub fn with_externalities<R, F: FnOnce() -> R>(ext: &mut Externalities<Error=NoError>, f: F) -> R {
|
||||
let mut h = ExternalitiesHolder { ext };
|
||||
ext::using(&mut h, f)
|
||||
pub fn with_externalities<R, F: FnOnce() -> R>(ext: &mut (Externalities<Error=NoError> + 'static), f: F) -> R {
|
||||
ext::using(ext, f)
|
||||
}
|
||||
|
||||
#[macro_export]
|
||||
|
||||
Reference in New Issue
Block a user