Files
pezkuwi-sdk/vendor/pezkuwi-subxt/subxt/examples/setup_client_offline.rs
T
pezkuwichain 5113cd4264 fix: CI failures - EVM tests and metadata artifacts
- tests-evm.yml: use pezkuwichain/revive-differential-tests fork with
  pez-revive-dev-node platform aliases
- .gitignore: allow vendor/pezkuwi-subxt/artifacts/ to be tracked
- Add metadata .scale files for compile-time macro expansion
- Rename polkadot_metadata_* references to pezkuwi_metadata_*
2026-01-27 15:20:03 +03:00

33 lines
1.1 KiB
Rust

#![allow(missing_docs)]
use pezkuwi_subxt::{
config::PezkuwiConfig, ext::codec::Decode, metadata::Metadata, utils::H256, OfflineClient,
};
#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
// We need to obtain the following details for an OfflineClient to be instantiated:
// 1. Genesis hash (RPC call: chain_getBlockHash(0)):
let genesis_hash = {
let h = "91b171bb158e2d3848fa23a9f1c25182fb8e20313b2c1eb49219da7a70ce90c3";
let bytes = hex::decode(h).unwrap();
H256::from_slice(&bytes)
};
// 2. A runtime version (system_version constant on a Bizinikiwi node has these):
let runtime_version =
pezkuwi_subxt::client::RuntimeVersion { spec_version: 9370, transaction_version: 20 };
// 3. Metadata (I'll load it from the downloaded metadata, but you can use `subxt metadata >
// file.scale` to download it):
let metadata = {
let bytes = std::fs::read("./artifacts/pezkuwi_metadata_small.scale").unwrap();
Metadata::decode(&mut &*bytes).unwrap()
};
// Create an offline client using the details obtained above:
let _api = OfflineClient::<PezkuwiConfig>::new(genesis_hash, runtime_version, metadata);
Ok(())
}