diff --git a/src/sync/upstream/events/garage.ts b/src/sync/upstream/events/garage.ts index d5d2f2d..92bcb55 100644 --- a/src/sync/upstream/events/garage.ts +++ b/src/sync/upstream/events/garage.ts @@ -1,4 +1,4 @@ -import { Account } from "@planetarium/account"; +import { Account, Address } from "@planetarium/account"; import { signTx } from "@planetarium/tx"; import { ResponseType } from "@prisma/client"; import { @@ -16,6 +16,10 @@ export async function responseTransactionsFromGarageEvents( networkId: string, genesisHash: Uint8Array, startNonce: bigint, + vaultAddresses: { + agentAddress: Address; + avatarAddress: Address; + }, ): Promise { const signerAddress = await account.getAddress(); const responses: BridgeResponse[] = []; @@ -28,10 +32,17 @@ export async function responseTransactionsFromGarageEvents( } of events) { const requests: (IFungibleAssetValues | IFungibleItems)[] = []; for (const fa of fungibleAssetValues) { - requests.push({ - recipient: agentAddress, - amount: fa[1], - }); + if (fa[0].equals(vaultAddresses.agentAddress)) { + requests.push({ + recipient: agentAddress, + amount: fa[1], + }); + } else if (fa[0].equals(vaultAddresses.avatarAddress)) { + requests.push({ + recipient: avatarAddress, + amount: fa[1], + }); + } } for (const fi of fungibleItems) { diff --git a/src/sync/upstream/index.ts b/src/sync/upstream/index.ts index 63791ff..760f7a3 100644 --- a/src/sync/upstream/index.ts +++ b/src/sync/upstream/index.ts @@ -150,6 +150,10 @@ export async function processUpstreamEvents( downstreamNetworkId, downstreamGenesisHash, downstreamNextTxNonce, + { + agentAddress, + avatarAddress, + }, )), ...(await responseTransactionsFromTransferEvents( transferAssetEvents,