1+ import { Context } from "../context/context"
2+ import { AssetManagerSettings } from "../orm/entities"
3+ import { CoreVaultManagerSettings } from "../orm/entities/state/settings"
4+ import { FASSETS , FAssetType } from "../shared"
5+
6+
7+ export async function ensureData ( context : Context ) {
8+ await ensureAssetManagerSettings ( context )
9+ await ensureCoreVaultManagerSettings ( context )
10+ }
11+
12+ async function ensureAssetManagerSettings ( context : Context ) {
13+ for ( const _fasset of FASSETS ) {
14+ const fasset = FAssetType [ _fasset ]
15+ if ( ! context . supportsFAsset ( fasset ) ) continue
16+ await context . orm . em . transactional ( async em => {
17+ let assetManagerSettings = await em . findOne ( AssetManagerSettings , { fasset } )
18+ if ( assetManagerSettings == null ) {
19+ const assetManagerAddress = context . fAssetTypeToAssetManagerAddress ( fasset )
20+ const assetManager = context . getAssetManagerContract ( assetManagerAddress )
21+ const settings = await assetManager . getSettings ( )
22+ assetManagerSettings = new AssetManagerSettings ( fasset , settings . lotSizeAMG )
23+ em . persist ( assetManagerSettings )
24+ }
25+ } )
26+ }
27+ }
28+
29+ async function ensureCoreVaultManagerSettings ( context : Context ) {
30+ const fasset = FAssetType . FXRP
31+ await context . orm . em . transactional ( async em => {
32+ let coreVaultManagerSettings = await em . findOne ( CoreVaultManagerSettings , { fasset } )
33+ if ( coreVaultManagerSettings == null ) {
34+ const coreVaultManagerAddress = context . fassetTypeToCoreVaultManagerAddress ( fasset )
35+ const coreVaultManager = context . getCoreVaultManagerContract ( coreVaultManagerAddress )
36+ const settings = await coreVaultManager . getSettings ( )
37+ coreVaultManagerSettings = new CoreVaultManagerSettings ( fasset ,
38+ settings . _escrowAmount , settings . _minimalAmount ,
39+ Number ( settings . _escrowEndTimeSeconds ) , settings . _fee
40+ )
41+ em . persist ( coreVaultManagerSettings )
42+ }
43+ } )
44+ }
0 commit comments