@polkadot/types
Version:
Implementation of the Parity codec
109 lines (108 loc) • 4.46 kB
TypeScript
import type { HexString } from '@polkadot/util/types';
export type DefinitionTypeType = string;
export type DefinitionTypeEnum = {
_fallback?: DefinitionTypeType;
} & ({
_enum: DefinitionTypeType[];
} | {
_enum: Record<string, DefinitionTypeType | null>;
});
export interface DefinitionTypeSet {
_fallback?: DefinitionTypeType;
_set: Record<string, number>;
}
type DefinitionTypeStructExtra = {
_alias?: Record<string, DefinitionTypeType>;
_fallback?: DefinitionTypeType;
} & Record<string, unknown>;
export type DefinitionTypeStruct = Record<string, DefinitionTypeType> | DefinitionTypeStructExtra;
export type DefinitionType = string | DefinitionTypeEnum | DefinitionTypeSet | DefinitionTypeStruct;
export interface DefinitionRpcParam {
/** true if the parameter is a blockhash that is to be used in historic queries */
isHistoric?: boolean;
/** true if this is an optional parameter (we forgo the use of Option<T> types) */
isOptional?: boolean;
/** The name of the parameter */
name: string;
/** The type of the parameter */
type: DefinitionTypeType;
}
export interface DefinitionRpc {
/** Alias to a specific method (this allows replacements and renames) */
alias?: string[];
/** Alias to a section */
aliasSection?: string;
/** A string describing a deprecated interface, along with to-use information */
deprecated?: string;
/** The description for this RPC call */
description: string;
/** The (optional) endpoint override. If not specified the section_method is used */
endpoint?: string;
/** true if this needs a signed submission, e.g. when submitting extrinsics */
isSigned?: boolean;
/** true if this is an RPC call that has been marked unsafe */
isUnsafe?: boolean;
/** Don't log any errors if they occur (should be used sparingly for exceptions only) */
noErrorLog?: boolean;
/** The applicable parameters for the call */
params: DefinitionRpcParam[];
/** The return type for the RPC call */
type: DefinitionTypeType;
}
export interface DefinitionRpcExt extends DefinitionRpc {
/** true if this is a method yielding a subscription */
isSubscription: boolean;
/** The jsonrpc name for this method, typically section_method */
jsonrpc: string;
/** The method name for this RPC */
method: string;
/** Optional subscription information in the form [subscription name, subscribe method, unsubscribe method] */
pubsub?: [subname: string, subscribe: string, unsubscribe: string];
/** The section name for this RPC */
section: string;
}
export interface DefinitionCallParam {
/** The name for this parameter */
name: string;
/** The return type for this parameter */
type: DefinitionTypeType;
}
export interface DefinitionCall {
/** The description of this runtime call (generally extracted from the Rust code as-is) */
description: string;
/** The applicable call parameters */
params: DefinitionCallParam[];
/** The return type for this call */
type: DefinitionTypeType;
}
export interface DefinitionRpcSub extends DefinitionRpc {
/** Subscription information in the form [subscription name, subscribe method, unsubscribe method] */
pubsub: [subname: string, subscribe: string, unsubscribe: string];
}
export type DefinitionsRpc = Record<string, DefinitionRpc | DefinitionRpcSub>;
export interface DefinitionsCallEntry {
/** The method that are available on this interface */
methods: Record<string, DefinitionCall>;
/** The version of the runtime api that this definition applies to */
version: number;
}
export type DefinitionsCall = Record<string, DefinitionsCallEntry[]>;
export interface DefinitionCallNamed extends DefinitionCall {
/** The method for this call (combined with section to form name) */
method: string;
/** The actual name of the runtime call as exposed by the runtime itself */
name: string;
/** The section for this call (combined with method to form name) */
section: string;
/** The hash of this section (these map to what is available in state_getRuntimeVersion) */
sectionHash: HexString;
/** The version of the runtime interface */
version: number;
}
export type DefinitionsTypes = Record<string, DefinitionType>;
export interface Definitions {
rpc?: DefinitionsRpc;
runtime?: DefinitionsCall;
types: DefinitionsTypes;
}
export {};