From 76124313918412291dc94291f2322e1d3156c0ae Mon Sep 17 00:00:00 2001 From: Toms Veidemanis Date: Fri, 21 Jun 2024 01:02:04 +0300 Subject: [PATCH] =?UTF-8?q?fix:=20=F0=9F=90=9B=20get=20portfolio=20transac?= =?UTF-8?q?tions=20error?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/middleware/queries.ts | 8 -------- src/utils/__tests__/conversion.ts | 18 ++++++++++++++++++ src/utils/conversion.ts | 15 ++++++++++++--- 3 files changed, 30 insertions(+), 11 deletions(-) diff --git a/src/middleware/queries.ts b/src/middleware/queries.ts index 06b719846b..76d3529ad9 100644 --- a/src/middleware/queries.ts +++ b/src/middleware/queries.ts @@ -1177,15 +1177,7 @@ function buildPortfolioMovementsQuery(args: string, filter: string): DocumentNod nodes { id fromId - from { - identityId - number - } toId - to { - identityId - number - } assetId amount address diff --git a/src/utils/__tests__/conversion.ts b/src/utils/__tests__/conversion.ts index 9ab29f10a2..2430ab056a 100644 --- a/src/utils/__tests__/conversion.ts +++ b/src/utils/__tests__/conversion.ts @@ -286,6 +286,7 @@ import { permissionGroupIdentifierToAgentGroup, permissionsLikeToPermissions, permissionsToMeshPermissions, + portfolioIdStringToPortfolio, portfolioIdToMeshPortfolioId, portfolioLikeToPortfolio, portfolioLikeToPortfolioId, @@ -10167,3 +10168,20 @@ describe('receiptDetailsToMeshReceiptDetails', () => { expect(result).toEqual(fakeResult); }); }); + +describe('portfolioIdStringToPortfolio', () => { + test('should convert a valid id string to MiddlewarePortfolio object', () => { + const id = '12345/678'; + const expectedOutput = { identityId: '12345', number: 678 }; + + expect(portfolioIdStringToPortfolio(id)).toEqual(expectedOutput); + }); + + test('should return NaN for invalid number part', () => { + const id = '12345/abc'; + const result = portfolioIdStringToPortfolio(id); + + expect(result.identityId).toBe('12345'); + expect(result.number).toBeNaN(); + }); +}); diff --git a/src/utils/conversion.ts b/src/utils/conversion.ts index d6e769b36c..b9af2540df 100644 --- a/src/utils/conversion.ts +++ b/src/utils/conversion.ts @@ -4764,6 +4764,15 @@ export function toCustomClaimTypeWithIdentity( })); } +/** + * @hidden + */ +export function portfolioIdStringToPortfolio(id: string): MiddlewarePortfolio { + const [identityId, number] = id.split('/'); + + return { identityId, number: parseInt(number, 10) } as MiddlewarePortfolio; +} + /** * @hidden */ @@ -4832,7 +4841,7 @@ export function toHistoricalSettlements( }); portfolioMovementsResult.data.portfolioMovements.nodes.forEach( - ({ createdBlock, from, to, fromId, toId, assetId, amount, address: accountAddress }) => { + ({ createdBlock, fromId, toId, assetId, amount, address: accountAddress }) => { const { blockId, hash } = createdBlock!; data.push({ blockNumber: new BigNumber(blockId), @@ -4844,8 +4853,8 @@ export function toHistoricalSettlements( asset: new FungibleAsset({ ticker: assetId }, context), amount: new BigNumber(amount).shiftedBy(-6), direction: getDirection(fromId, toId), - from: middlewarePortfolioToPortfolio(from!, context), - to: middlewarePortfolioToPortfolio(to!, context), + from: middlewarePortfolioToPortfolio(portfolioIdStringToPortfolio(fromId), context), + to: middlewarePortfolioToPortfolio(portfolioIdStringToPortfolio(toId), context), }, ], });