UNPKG

@polkadot/types

Version:
109 lines (108 loc) 4.46 kB
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 {};