diff --git a/packages/workflows/package.json b/packages/workflows/package.json index f685a77b0..879bcaf77 100644 --- a/packages/workflows/package.json +++ b/packages/workflows/package.json @@ -1,6 +1,6 @@ { "name": "@my/workflows", - "version": "0.0.8", + "version": "0.0.9", "files": [ "package.json", "src" diff --git a/packages/workflows/src/transfer-workflow/workflow.ts b/packages/workflows/src/transfer-workflow/workflow.ts index b749d260a..2a4460bd5 100644 --- a/packages/workflows/src/transfer-workflow/workflow.ts +++ b/packages/workflows/src/transfer-workflow/workflow.ts @@ -13,6 +13,9 @@ const { decodeTransferUserOpActivity, updateTemporalSendAccountTransferActivity, getEventFromTransferActivity, + readBalanceActivity, + persistBalanceActivity, + upsertSendTokenHodlerVerificationActivity, } = proxyActivities>({ // TODO: make this configurable startToCloseTimeout: '10 minutes', @@ -129,6 +132,39 @@ export async function transfer(userOp: UserOperation<'v0.7'>, note?: string) { to, }) + // After confirmation, read and persist balances for SEND-only + if (token) { + const fromRead = await readBalanceActivity({ token, account: from }) + if (fromRead) { + await persistBalanceActivity({ + userId: fromRead.userId, + token: fromRead.token, + balance: fromRead.balance, + address: fromRead.address, + chainId: fromRead.chainId, + }) + await upsertSendTokenHodlerVerificationActivity({ + userId: fromRead.userId, + balance: fromRead.balance, + }) + } + + const toRead = await readBalanceActivity({ token, account: to }) + if (toRead) { + await persistBalanceActivity({ + userId: toRead.userId, + token: toRead.token, + balance: toRead.balance, + address: toRead.address, + chainId: toRead.chainId, + }) + await upsertSendTokenHodlerVerificationActivity({ + userId: toRead.userId, + balance: toRead.balance, + }) + } + } + await updateTemporalSendAccountTransferActivity({ workflow_id: workflowId, status: 'confirmed',