diff --git a/package-lock.json b/package-lock.json index 5beda89..60c2570 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "unique-marketplace-backend", - "version": "3.0.260", + "version": "3.0.261", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "unique-marketplace-backend", - "version": "3.0.260", + "version": "3.0.261", "license": "GPL-3.0", "dependencies": { "@commitlint/cli": "^17.6.1", diff --git a/package.json b/package.json index 83fc97c..d3c4db0 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "unique-marketplace-backend", - "version": "3.0.260", + "version": "3.0.261", "description": "Backend project for unique marketplace", "author": "Unique Network", "private": true, diff --git a/packages/common/modules/database/services/offer.service.ts b/packages/common/modules/database/services/offer.service.ts index 132722e..bc61efb 100644 --- a/packages/common/modules/database/services/offer.service.ts +++ b/packages/common/modules/database/services/offer.service.ts @@ -7,6 +7,7 @@ import { ContractEntity, OfferEntity } from '../entities'; import { OfferStatus } from '../../types'; import { ChainPropertiesResponse } from '@unique-nft/sdk/full'; import { Market } from '../../../../contracts/assemblies/3/market'; +import { formatCrossAccount } from '../../../src/lib/utils'; interface FindOptions { contract?: ContractEntity; @@ -49,7 +50,7 @@ export class OfferService { offer.orderId = Number(order.id); offer.collectionId = Number(order.collectionId); offer.tokenId = Number(order.tokenId); - offer.seller = Address.extract.addressNormalized(order.seller); + offer.seller = Address.extract.addressNormalized(formatCrossAccount(order.seller)); } const priceOrder = BigInt(order.price); const priceDir = parseFloat(priceOrder.toString()) / 10 ** 18; diff --git a/packages/common/src/lib/utils.ts b/packages/common/src/lib/utils.ts new file mode 100644 index 0000000..9621e99 --- /dev/null +++ b/packages/common/src/lib/utils.ts @@ -0,0 +1,6 @@ +export const formatCrossAccount = (address: [string, bigint]): { sub: string; eth: string } => { + return { + eth: address[0], + sub: `0x${address[1].toString(16)}`, + }; +}; diff --git a/packages/escrow/src/app/contract-events/handlers/contract-events.handler.ts b/packages/escrow/src/app/contract-events/handlers/contract-events.handler.ts index 0b6dbb6..bd5c247 100644 --- a/packages/escrow/src/app/contract-events/handlers/contract-events.handler.ts +++ b/packages/escrow/src/app/contract-events/handlers/contract-events.handler.ts @@ -17,6 +17,7 @@ import { Sdk, SocketClient } from '@unique-nft/sdk/full'; import { Address } from '@unique-nft/utils'; import { CollectionsService } from '../../../collections/collections.service'; import { TokensService } from '../../../collections/tokens.service'; +import { formatCrossAccount } from '@app/common/src/lib/utils'; type LogEventHandler = ( extrinsic: Extrinsic, @@ -148,7 +149,7 @@ export class ContractEventsHandler { // @ts-ignore const blockId = extrinsic.blockId || extrinsic.block?.id || 0; - const address = crossAddress ? Address.extract.addressNormalized(crossAddress) : null; + const address = crossAddress ? Address.extract.addressNormalized(formatCrossAccount(crossAddress)) : null; // todo fix double events error const foundEvent = await this.offerEventService.find(offer, eventType, blockId, address);