diff --git a/api/CHANGELOG.md b/api/CHANGELOG.md index 9f7f0aaee5..1cf8177fce 100644 --- a/api/CHANGELOG.md +++ b/api/CHANGELOG.md @@ -1,3 +1,11 @@ +## 0.38.1 + +_05/22/2024_ + +### Changes +https://github.com/gear-tech/gear-js/pull/1544 +- Update getting program pages according to https://github.com/gear-tech/gear/pull/3791 + ## 0.38.0 _04/26/2024_ diff --git a/api/package.json b/api/package.json index 65d2208c5f..4f515bf9b7 100644 --- a/api/package.json +++ b/api/package.json @@ -1,6 +1,6 @@ { "name": "@gear-js/api", - "version": "0.38.0", + "version": "0.38.1", "description": "A JavaScript library that provides functionality to connect GEAR Component APIs.", "main": "cjs/index.js", "module": "index.js", diff --git a/api/src/Storage.ts b/api/src/Storage.ts index 11cbd66c4e..dc1ee10273 100644 --- a/api/src/Storage.ts +++ b/api/src/Storage.ts @@ -55,10 +55,10 @@ export class GearProgramStorage { const args = this._api.specVersion >= SPEC_VERSION.V1100 ? [programId, program.memoryInfix] : [programId]; - for (const page of program.pagesWithData) { - pages[page.toNumber()] = u8aToU8a( - await this._api.provider.send('state_getStorage', [query.key(...args, page), at]), - ); + for (const [start, end] of program.pagesWithData.inner) { + for (let page = start.toNumber(); page <= end.toNumber(); page++) { + pages[page] = u8aToU8a(await this._api.provider.send('state_getStorage', [query.key(...args, page), at])); + } } return pages; } diff --git a/api/src/types/lookup.ts b/api/src/types/lookup.ts index 1f92343279..64bb3bf1e8 100644 --- a/api/src/types/lookup.ts +++ b/api/src/types/lookup.ts @@ -563,10 +563,12 @@ export interface GearCommonProgram extends Enum { readonly type: 'Active' | 'Exited' | 'Terminated'; } -/** @name GearCommonActiveProgram (581) */ +/** @name GearCommonActiveProgram (593) */ export interface GearCommonActiveProgram extends Struct { - readonly allocations: BTreeSet; - readonly pagesWithData: BTreeSet; + readonly allocations: { + readonly inner: BTreeMap; + } & Struct; + readonly pagesWithData: NumeratedTreeIntervalsTree; readonly memoryInfix: u32; readonly gasReservationMap: BTreeMap; readonly codeHash: H256; @@ -576,6 +578,11 @@ export interface GearCommonActiveProgram extends Struct { readonly expirationBlock: u32; } +/** @name NumeratedTreeIntervalsTree (598) */ +export interface NumeratedTreeIntervalsTree extends Struct { + readonly inner: BTreeMap; +} + /** @name GearCoreReservationGasReservationSlot (586) */ export interface GearCoreReservationGasReservationSlot extends Struct { readonly amount: u64;