@gear-js/api
Version:
A JavaScript library that provides functionality to connect GEAR Component APIs.
59 lines (58 loc) • 2.42 kB
TypeScript
import { ISubmittableResult } from '@polkadot/types/types';
import { SubmittableExtrinsic } from '@polkadot/api/types';
import { IResumeSessionCommitArgs, IResumeSessionInitArgs, IResumeSessionPushArgs } from '../types';
import { GearApi } from '../GearApi';
import { GearTransaction } from './Transaction';
export declare class GearResumeSession extends GearTransaction {
protected _api: GearApi;
constructor(_api: GearApi);
/**
* ## Create a session for program resume. Get session id from `ProgramResumeSessionStarted` event
* @param args Resume program args
* @returns Submittable result
* @example
* ```javascript
* const program = await api.programStorage.getProgram(programId, oneBlockBeforePauseHash);
* const initTx = api.program.resumeSession.init({
* programId,
* allocations: program.allocations,
* codeHash: program.codeHash.toHex(),
* });
*
* let sessionId: HexString;
* initTx.signAndSend(account, ({ events }) => {
* events.forEach(({ event: { method, data }}) => {
* if (method === 'ProgramResumeSessionStarted') {
* sessionId = data.sessionId.toNumber();
* }
* })
* })
* ```
*/
init({ programId, allocations, codeHash, }: IResumeSessionInitArgs): SubmittableExtrinsic<'promise', ISubmittableResult>;
/**
* ## Append program memory pages to the session data.
* @param args Push pages args
* @returns Submittable result
* @example
* ```javascript
* const pages = await api.programStorage.getProgramPages(programId, program, oneBlockBeforePauseHash);
* for (const memPage of Object.entries(page)) {
* const tx = api.program.resumeSession.push({ sessionId, memoryPages: [memPage] });
* tx.signAndSend(account);
* }
* ```
*/
push({ sessionId, memoryPages }: IResumeSessionPushArgs): SubmittableExtrinsic<'promise', ISubmittableResult>;
/**
* ## Finish program resume session with the given key `sessionId`.
* @param args Commit session args
* @returns Submittable result
* @example
* ```javascript
* const tx = api.program.resumeSession.commit({ sessionId, blockCount: 20_000 });
* tx.signAndSend(account);
* ```
*/
commit({ sessionId, blockCount }: IResumeSessionCommitArgs): SubmittableExtrinsic<'promise', ISubmittableResult>;
}