UNPKG

@gear-js/api

Version:

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

33 lines (30 loc) 1.4 kB
'use strict'; class GearWaitlist { _api; constructor(_api) { this._api = _api; } async read(programId, messageIdOrNumberOfMessages) { const [messageId, numberOfMessages] = typeof messageIdOrNumberOfMessages === 'string' ? [messageIdOrNumberOfMessages, undefined] : [undefined, messageIdOrNumberOfMessages || 1000]; if (messageId) { const waitlist = await this._api.query.gearMessenger.waitlist(programId, messageId); const typedWaitlist = this._api.createType('Option<(GearCoreMessageStoredStoredDispatch, GearCommonStoragePrimitivesInterval)>', waitlist); return typedWaitlist.unwrapOr(null); } else { const keyPrefix = this._api.query.gearMessenger.waitlist.keyPrefix(programId); const keysPaged = await this._api.rpc.state.getKeysPaged(keyPrefix, numberOfMessages, keyPrefix); if (keysPaged.length === 0) { return []; } const waitlist = (await this._api.rpc.state.queryStorageAt(keysPaged)); return waitlist.map((item) => { const typedItem = this._api.createType('Option<(GearCoreMessageStoredStoredDispatch, GearCommonStoragePrimitivesInterval)>', item); return typedItem.unwrapOr(null); }); } } } exports.GearWaitlist = GearWaitlist;