mirror of
https://github.com/pezkuwichain/pezkuwi-subxt.git
synced 2026-06-13 03:31:10 +00:00
Metadata V15: Derive TypeInfo for describing runtime types (#13272)
* scale_info: Derive TypeInfo for types present in runtime API Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io> * cargo: Update Cargo.lock Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io> --------- Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
This commit is contained in:
@@ -22,6 +22,7 @@ use frame_support::{
|
||||
pallet_prelude::*,
|
||||
traits::StorageInfo,
|
||||
};
|
||||
use scale_info::TypeInfo;
|
||||
#[cfg(feature = "std")]
|
||||
use serde::{Deserialize, Serialize};
|
||||
use sp_io::hashing::blake2_256;
|
||||
@@ -31,7 +32,7 @@ use sp_storage::TrackedStorageKey;
|
||||
|
||||
/// An alphabet of possible parameters to use for benchmarking.
|
||||
#[cfg_attr(feature = "std", derive(Serialize, Deserialize))]
|
||||
#[derive(Encode, Decode, Clone, Copy, PartialEq, Debug)]
|
||||
#[derive(Encode, Decode, Clone, Copy, PartialEq, Debug, TypeInfo)]
|
||||
#[allow(missing_docs)]
|
||||
#[allow(non_camel_case_types)]
|
||||
pub enum BenchmarkParameter {
|
||||
@@ -72,7 +73,7 @@ impl std::fmt::Display for BenchmarkParameter {
|
||||
|
||||
/// The results of a single of benchmark.
|
||||
#[cfg_attr(feature = "std", derive(Serialize, Deserialize))]
|
||||
#[derive(Encode, Decode, Clone, PartialEq, Debug)]
|
||||
#[derive(Encode, Decode, Clone, PartialEq, Debug, TypeInfo)]
|
||||
pub struct BenchmarkBatch {
|
||||
/// The pallet containing this benchmark.
|
||||
#[cfg_attr(feature = "std", serde(with = "serde_as_str"))]
|
||||
@@ -111,7 +112,7 @@ pub struct BenchmarkBatchSplitResults {
|
||||
/// Contains duration of the function call in nanoseconds along with the benchmark parameters
|
||||
/// used for that benchmark result.
|
||||
#[cfg_attr(feature = "std", derive(Serialize, Deserialize))]
|
||||
#[derive(Encode, Decode, Default, Clone, PartialEq, Debug)]
|
||||
#[derive(Encode, Decode, Default, Clone, PartialEq, Debug, TypeInfo)]
|
||||
pub struct BenchmarkResult {
|
||||
pub components: Vec<(BenchmarkParameter, u32)>,
|
||||
pub extrinsic_time: u128,
|
||||
@@ -199,7 +200,7 @@ impl From<DispatchError> for BenchmarkError {
|
||||
}
|
||||
|
||||
/// Configuration used to setup and run runtime benchmarks.
|
||||
#[derive(Encode, Decode, Default, Clone, PartialEq, Debug)]
|
||||
#[derive(Encode, Decode, Default, Clone, PartialEq, Debug, TypeInfo)]
|
||||
pub struct BenchmarkConfig {
|
||||
/// The encoded name of the pallet to benchmark.
|
||||
pub pallet: Vec<u8>,
|
||||
@@ -216,14 +217,14 @@ pub struct BenchmarkConfig {
|
||||
/// A list of benchmarks available for a particular pallet and instance.
|
||||
///
|
||||
/// All `Vec<u8>` must be valid utf8 strings.
|
||||
#[derive(Encode, Decode, Default, Clone, PartialEq, Debug)]
|
||||
#[derive(Encode, Decode, Default, Clone, PartialEq, Debug, TypeInfo)]
|
||||
pub struct BenchmarkList {
|
||||
pub pallet: Vec<u8>,
|
||||
pub instance: Vec<u8>,
|
||||
pub benchmarks: Vec<BenchmarkMetadata>,
|
||||
}
|
||||
|
||||
#[derive(Encode, Decode, Default, Clone, PartialEq, Debug)]
|
||||
#[derive(Encode, Decode, Default, Clone, PartialEq, Debug, TypeInfo)]
|
||||
pub struct BenchmarkMetadata {
|
||||
pub name: Vec<u8>,
|
||||
pub components: Vec<(BenchmarkParameter, u32, u32)>,
|
||||
|
||||
@@ -14,6 +14,7 @@ targets = ["x86_64-unknown-linux-gnu"]
|
||||
|
||||
[dependencies]
|
||||
bitflags = "1.0"
|
||||
scale-info = { version = "2.1.1", default-features = false, features = ["derive"] }
|
||||
codec = { package = "parity-scale-codec", version = "3.2.2", default-features = false, features = ["derive"] }
|
||||
|
||||
# Substrate Dependencies (This crate should not rely on frame)
|
||||
@@ -27,4 +28,5 @@ std = [
|
||||
"codec/std",
|
||||
"sp-runtime/std",
|
||||
"sp-std/std",
|
||||
"scale-info/std",
|
||||
]
|
||||
|
||||
@@ -21,6 +21,7 @@
|
||||
|
||||
use bitflags::bitflags;
|
||||
use codec::{Decode, Encode};
|
||||
use scale_info::TypeInfo;
|
||||
use sp_runtime::{
|
||||
traits::{Saturating, Zero},
|
||||
DispatchError, RuntimeDebug,
|
||||
@@ -31,7 +32,7 @@ use sp_weights::Weight;
|
||||
/// Result type of a `bare_call` or `bare_instantiate` call.
|
||||
///
|
||||
/// It contains the execution result together with some auxiliary information.
|
||||
#[derive(Eq, PartialEq, Encode, Decode, RuntimeDebug)]
|
||||
#[derive(Eq, PartialEq, Encode, Decode, RuntimeDebug, TypeInfo)]
|
||||
pub struct ContractResult<R, Balance> {
|
||||
/// How much weight was consumed during execution.
|
||||
pub gas_consumed: Weight,
|
||||
@@ -86,7 +87,7 @@ pub type CodeUploadResult<CodeHash, Balance> =
|
||||
pub type GetStorageResult = Result<Option<Vec<u8>>, ContractAccessError>;
|
||||
|
||||
/// The possible errors that can happen querying the storage of a contract.
|
||||
#[derive(Eq, PartialEq, Encode, Decode, RuntimeDebug)]
|
||||
#[derive(Eq, PartialEq, Encode, Decode, RuntimeDebug, TypeInfo)]
|
||||
pub enum ContractAccessError {
|
||||
/// The given address doesn't point to a contract.
|
||||
DoesntExist,
|
||||
@@ -96,7 +97,7 @@ pub enum ContractAccessError {
|
||||
|
||||
bitflags! {
|
||||
/// Flags used by a contract to customize exit behaviour.
|
||||
#[derive(Encode, Decode)]
|
||||
#[derive(Encode, Decode, TypeInfo)]
|
||||
pub struct ReturnFlags: u32 {
|
||||
/// If this bit is set all changes made by the contract execution are rolled back.
|
||||
const REVERT = 0x0000_0001;
|
||||
@@ -104,7 +105,7 @@ bitflags! {
|
||||
}
|
||||
|
||||
/// Output of a contract call or instantiation which ran to completion.
|
||||
#[derive(PartialEq, Eq, Encode, Decode, RuntimeDebug)]
|
||||
#[derive(PartialEq, Eq, Encode, Decode, RuntimeDebug, TypeInfo)]
|
||||
pub struct ExecReturnValue {
|
||||
/// Flags passed along by `seal_return`. Empty when `seal_return` was never called.
|
||||
pub flags: ReturnFlags,
|
||||
@@ -120,7 +121,7 @@ impl ExecReturnValue {
|
||||
}
|
||||
|
||||
/// The result of a successful contract instantiation.
|
||||
#[derive(PartialEq, Eq, Encode, Decode, RuntimeDebug)]
|
||||
#[derive(PartialEq, Eq, Encode, Decode, RuntimeDebug, TypeInfo)]
|
||||
pub struct InstantiateReturnValue<AccountId> {
|
||||
/// The output of the called constructor.
|
||||
pub result: ExecReturnValue,
|
||||
@@ -129,7 +130,7 @@ pub struct InstantiateReturnValue<AccountId> {
|
||||
}
|
||||
|
||||
/// The result of succesfully uploading a contract.
|
||||
#[derive(PartialEq, Eq, Encode, Decode, RuntimeDebug)]
|
||||
#[derive(PartialEq, Eq, Encode, Decode, RuntimeDebug, TypeInfo)]
|
||||
pub struct CodeUploadReturnValue<CodeHash, Balance> {
|
||||
/// The key under which the new code is stored.
|
||||
pub code_hash: CodeHash,
|
||||
@@ -138,7 +139,7 @@ pub struct CodeUploadReturnValue<CodeHash, Balance> {
|
||||
}
|
||||
|
||||
/// Reference to an existing code hash or a new wasm module.
|
||||
#[derive(Eq, PartialEq, Encode, Decode, RuntimeDebug)]
|
||||
#[derive(Eq, PartialEq, Encode, Decode, RuntimeDebug, TypeInfo)]
|
||||
pub enum Code<Hash> {
|
||||
/// A wasm module as raw bytes.
|
||||
Upload(Vec<u8>),
|
||||
@@ -153,7 +154,7 @@ impl<T: Into<Vec<u8>>, Hash> From<T> for Code<Hash> {
|
||||
}
|
||||
|
||||
/// The amount of balance that was either charged or refunded in order to pay for storage.
|
||||
#[derive(Eq, PartialEq, Ord, PartialOrd, Encode, Decode, RuntimeDebug, Clone)]
|
||||
#[derive(Eq, PartialEq, Ord, PartialOrd, Encode, Decode, RuntimeDebug, Clone, TypeInfo)]
|
||||
pub enum StorageDeposit<Balance> {
|
||||
/// The transaction reduced storage consumption.
|
||||
///
|
||||
|
||||
@@ -53,7 +53,9 @@ pub trait StorageInstance {
|
||||
}
|
||||
|
||||
/// Metadata about storage from the runtime.
|
||||
#[derive(codec::Encode, codec::Decode, crate::RuntimeDebug, Eq, PartialEq, Clone)]
|
||||
#[derive(
|
||||
codec::Encode, codec::Decode, crate::RuntimeDebug, Eq, PartialEq, Clone, scale_info::TypeInfo,
|
||||
)]
|
||||
pub struct StorageInfo {
|
||||
/// Encoded string of pallet name.
|
||||
pub pallet_name: Vec<u8>,
|
||||
|
||||
@@ -22,7 +22,7 @@ use sp_arithmetic::traits::AtLeast32BitUnsigned;
|
||||
use sp_std::prelude::*;
|
||||
|
||||
/// Which state tests to execute.
|
||||
#[derive(codec::Encode, codec::Decode, Clone)]
|
||||
#[derive(codec::Encode, codec::Decode, Clone, scale_info::TypeInfo)]
|
||||
pub enum Select {
|
||||
/// None of them.
|
||||
None,
|
||||
@@ -82,7 +82,7 @@ impl sp_std::str::FromStr for Select {
|
||||
}
|
||||
|
||||
/// Select which checks should be run when trying a runtime upgrade upgrade.
|
||||
#[derive(codec::Encode, codec::Decode, Clone, Debug, Copy)]
|
||||
#[derive(codec::Encode, codec::Decode, Clone, Debug, Copy, scale_info::TypeInfo)]
|
||||
pub enum UpgradeCheckSelect {
|
||||
/// Run no checks.
|
||||
None,
|
||||
|
||||
@@ -21,13 +21,15 @@ use codec::{Decode, Encode};
|
||||
#[cfg(feature = "std")]
|
||||
use serde::{Deserialize, Serialize};
|
||||
|
||||
use scale_info::TypeInfo;
|
||||
|
||||
use sp_runtime::traits::{AtLeast32BitUnsigned, Zero};
|
||||
use sp_std::prelude::*;
|
||||
|
||||
use frame_support::dispatch::DispatchClass;
|
||||
|
||||
/// The base fee and adjusted weight and length fees constitute the _inclusion fee_.
|
||||
#[derive(Encode, Decode, Clone, Eq, PartialEq)]
|
||||
#[derive(Encode, Decode, Clone, Eq, PartialEq, TypeInfo)]
|
||||
#[cfg_attr(feature = "std", derive(Debug, Serialize, Deserialize))]
|
||||
#[cfg_attr(feature = "std", serde(rename_all = "camelCase"))]
|
||||
pub struct InclusionFee<Balance> {
|
||||
@@ -63,7 +65,7 @@ impl<Balance: AtLeast32BitUnsigned + Copy> InclusionFee<Balance> {
|
||||
/// - (Optional) `inclusion_fee`: Only the `Pays::Yes` transaction can have the inclusion fee.
|
||||
/// - `tip`: If included in the transaction, the tip will be added on top. Only signed
|
||||
/// transactions can have a tip.
|
||||
#[derive(Encode, Decode, Clone, Eq, PartialEq)]
|
||||
#[derive(Encode, Decode, Clone, Eq, PartialEq, TypeInfo)]
|
||||
#[cfg_attr(feature = "std", derive(Debug, Serialize, Deserialize))]
|
||||
#[cfg_attr(feature = "std", serde(rename_all = "camelCase"))]
|
||||
pub struct FeeDetails<Balance> {
|
||||
@@ -91,7 +93,7 @@ impl<Balance: AtLeast32BitUnsigned + Copy> FeeDetails<Balance> {
|
||||
|
||||
/// Information related to a dispatchable's class, weight, and fee that can be queried from the
|
||||
/// runtime.
|
||||
#[derive(Eq, PartialEq, Encode, Decode, Default)]
|
||||
#[derive(Eq, PartialEq, Encode, Decode, Default, TypeInfo)]
|
||||
#[cfg_attr(feature = "std", derive(Debug, Serialize, Deserialize))]
|
||||
#[cfg_attr(feature = "std", serde(rename_all = "camelCase"))]
|
||||
#[cfg_attr(
|
||||
|
||||
Reference in New Issue
Block a user