55 AssetService ,
66 BlockchainService ,
77 EpochInvestOrderService ,
8- EpochRedeemOrderService ,
98 InvestOrderService ,
10- RedeemOrderService ,
119 TokenInstancePositionService ,
1210 TokenInstanceService ,
1311 TokenService ,
@@ -300,9 +298,8 @@ multiMapper("vault:RedeemClaimable", async ({ event, context }) => {
300298 centrifugeId,
301299 } ) ) as VaultService ;
302300 if ( ! vault ) return serviceError ( `Vault not found. Cannot retrieve vault configuration` ) ;
303- const { poolId, tokenId, kind , assetAddress } = vault . read ( ) ;
301+ const { poolId, tokenId, assetAddress } = vault . read ( ) ;
304302
305- if ( kind === "Sync" ) return ;
306303
307304 const asset = ( await AssetService . get ( context , {
308305 address : assetAddress ,
@@ -411,8 +408,23 @@ multiMapper("vault:Deposit", async ({ event, context }) => {
411408 switch ( kind ) {
412409 case "Async" :
413410 await InvestorTransactionService . claimDeposit ( context , itData , event ) ;
411+ const vaultInvestOrder = ( await VaultInvestOrderService . getOrInit (
412+ context ,
413+ {
414+ centrifugeId,
415+ poolId,
416+ tokenId,
417+ assetId,
418+ accountAddress : investorAddress ,
419+ } ,
420+ event ,
421+ undefined ,
422+ true
423+ ) ) as VaultInvestOrderService ;
424+ await vaultInvestOrder . deposit ( assets ) . saveOrClear ( event ) ;
414425 break ;
415- default :
426+ case "SyncDepositAsyncRedeem" :
427+ case "Sync" :
416428 await InvestorTransactionService . syncDeposit ( context , itData , event ) ;
417429 const investOrderIndex =
418430 ( await InvestOrderService . count ( context , {
@@ -435,6 +447,7 @@ multiMapper("vault:Deposit", async ({ event, context }) => {
435447 issuedSharesAmount : shares ,
436448 issuedWithNavAssetPerShare : getSharePrice ( assets , shares , assetDecimals , shareDecimals ) ,
437449 ...timestamper ( "claimed" , event ) ,
450+ claimedSharesAmount : shares ,
438451 } ,
439452 event
440453 ) ;
@@ -464,22 +477,9 @@ multiMapper("vault:Deposit", async ({ event, context }) => {
464477 event
465478 ) ) as EpochInvestOrderService ;
466479 break ;
480+ default :
481+ return serviceError ( "Unknown vault kind" ) ;
467482 }
468-
469- const vaultInvestOrder = ( await VaultInvestOrderService . getOrInit (
470- context ,
471- {
472- centrifugeId,
473- poolId,
474- tokenId,
475- assetId,
476- accountAddress : investorAddress ,
477- } ,
478- event ,
479- undefined ,
480- true
481- ) ) as VaultInvestOrderService ;
482- await vaultInvestOrder . deposit ( assets ) . saveOrClear ( event ) ;
483483} ) ;
484484
485485multiMapper ( "vault:Withdraw" , async ( { event, context } ) => {
@@ -530,79 +530,32 @@ multiMapper("vault:Withdraw", async ({ event, context }) => {
530530 currencyAssetId : assetId ,
531531 } ;
532532
533+
533534 switch ( kind ) {
534535 case "Sync" :
535- await InvestorTransactionService . syncRedeem ( context , itData , event ) ;
536- const redeemOrderIndex =
537- ( await RedeemOrderService . count ( context , {
538- poolId,
539- tokenId,
540- account : investorAddress ,
541- index_lte : 0 ,
542- } ) ) * - 1 ;
543- await RedeemOrderService . insert (
544- context ,
545- {
546- poolId,
547- tokenId,
548- assetId,
549- account : investorAddress ,
550- index : redeemOrderIndex ,
551- ...timestamper ( "approved" , event ) ,
552- approvedSharesAmount : shares ,
553- ...timestamper ( "revoked" , event ) ,
554- revokedAssetsAmount : assets ,
555- revokedPoolAmount : assets ,
556- revokedWithNavAssetPerShare : getSharePrice ( assets , shares , assetDecimals , shareDecimals ) ,
557- ...timestamper ( "claimed" , event ) ,
558- } ,
559- event
560- ) ;
561-
562- const epochRedeemIndex =
563- ( await EpochRedeemOrderService . count ( context , {
564- poolId,
565- tokenId,
566- assetId,
567- index_lte : 0 ,
568- } ) ) * - 1 ;
569- ( await EpochRedeemOrderService . insert (
536+ return serviceError ( "Sync vaults are not supported yet" ) ;
537+ case "SyncDepositAsyncRedeem" :
538+ case "Async" :
539+ const vaultRedeemOrder = ( await VaultRedeemOrderService . getOrInit (
570540 context ,
571541 {
542+ centrifugeId,
572543 poolId,
573544 tokenId,
574545 assetId,
575- index : epochRedeemIndex ,
576- ...timestamper ( "approved" , event ) ,
577- approvedSharesAmount : shares ,
578- approvedPercentageOfTotalPending : 100n * 10n ** BigInt ( shareDecimals ) ,
579- ...timestamper ( "revoked" , event ) ,
580- revokedAssetsAmount : assets ,
581- revokedWithNavAssetPerShare : getSharePrice ( assets , shares , assetDecimals , shareDecimals ) ,
546+ accountAddress : investorAddress ,
582547 } ,
583- event
584- ) ) as EpochRedeemOrderService ;
548+ event ,
549+ undefined ,
550+ true
551+ ) ) as VaultRedeemOrderService ;
552+ await vaultRedeemOrder . redeem ( shares ) . saveOrClear ( event ) ;
585553
586- break ;
587- default :
588554 await InvestorTransactionService . claimRedeem ( context , itData , event ) ;
589555 break ;
556+ default :
557+ return serviceError ( "Unknown vault kind" ) ;
590558 }
591-
592- const vaultRedeemOrder = ( await VaultRedeemOrderService . getOrInit (
593- context ,
594- {
595- centrifugeId,
596- poolId,
597- tokenId,
598- assetId,
599- accountAddress : investorAddress ,
600- } ,
601- event ,
602- undefined ,
603- true
604- ) ) as VaultRedeemOrderService ;
605- await vaultRedeemOrder . redeem ( shares ) . saveOrClear ( event ) ;
606559} ) ;
607560
608561/**
0 commit comments