UNPKG

@gear-js/api

Version:

A JavaScript library that provides functionality to connect GEAR Component APIs.

59 lines (58 loc) 2.42 kB
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>; }