@mutopad/connex-framework
Version:
A library implements VeChain Connex interface
75 lines (74 loc) • 2.94 kB
TypeScript
/// <reference types="@mutopad/connex-types" />
/// <reference types="@mutopad/connex-types" />
/// <reference types="@mutopad/connex-types" />
/// <reference types="@mutopad/connex-types" />
/// <reference types="@mutopad/connex-types" />
/// <reference types="@mutopad/connex-types" />
/// <reference types="@mutopad/connex-types" />
/** Connex driver interface */
declare namespace Connex {
interface Driver {
readonly genesis: Thor.Block;
/** current known head */
readonly head: Thor.Status['head'];
/**
* poll new head
* rejected only when driver closed
*/
pollHead(): Promise<Thor.Status['head']>;
getBlock(revision: string | number): Promise<Thor.Block | null>;
getTransaction(id: string, allowPending: boolean): Promise<Thor.Transaction | null>;
getReceipt(id: string): Promise<Thor.Transaction.Receipt | null>;
getAccount(addr: string, revision: string): Promise<Thor.Account>;
getCode(addr: string, revision: string): Promise<Thor.Account.Code>;
getStorage(addr: string, key: string, revision: string): Promise<Thor.Account.Storage>;
explain(arg: Driver.ExplainArg, revision: string, cacheHints?: string[]): Promise<VM.Output[]>;
filterEventLogs(arg: Driver.FilterEventLogsArg, cacheHints?: string[]): Promise<Thor.Filter.Row<'event'>[]>;
filterTransferLogs(arg: Driver.FilterTransferLogsArg, cacheHints?: string[]): Promise<Thor.Filter.Row<'transfer'>[]>;
signTx(msg: Vendor.TxMessage, options: Driver.TxOptions): Promise<Vendor.TxResponse>;
signCert(msg: Vendor.CertMessage, option: Driver.CertOptions): Promise<Vendor.CertResponse>;
}
namespace Driver {
type ExplainArg = {
clauses: Thor.Transaction['clauses'];
caller?: string;
gas?: number;
gasPrice?: string;
};
type FilterEventLogsArg = {
range: Thor.Filter.Range;
options: {
offset: number;
limit: number;
};
criteriaSet: Thor.Filter.Criteria<'event'>[];
order: 'asc' | 'desc';
};
type FilterTransferLogsArg = {
range: Thor.Filter.Range;
options: {
offset: number;
limit: number;
};
criteriaSet: Thor.Filter.Criteria<'transfer'>[];
order: 'asc' | 'desc';
};
type TxOptions = {
signer?: string;
gas?: number;
dependsOn?: string;
link?: string;
comment?: string;
delegator?: {
url: string;
signer?: string;
};
onAccepted?: () => void;
};
type CertOptions = {
signer?: string;
link?: string;
onAccepted?: () => void;
};
}
}