@@ -12,6 +12,8 @@ const addresses = {
12
12
} ,
13
13
neutron : {
14
14
redBank : 'neutron1n97wnm7q6d2hrcna3rqlnyqw2we6k0l8uqvmyqq6gsml92epdu7quugyph' ,
15
+ creditManager : 'neutron1qdzn3l4kn7gsjna2tfpg3g3mwd6kunx4p50lfya59k02846xas6qslgs3r' ,
16
+ params : 'neutron1x4rgd7ry23v2n49y7xdzje0743c5tgrnqrqsvwyya2h6m48tz4jqqex06x'
15
17
}
16
18
}
17
19
@@ -22,100 +24,15 @@ async function osmosisTVL() {
22
24
let balances = { } ;
23
25
await addRedBankTvl ( balances , 'osmosis' ) ;
24
26
await addCreditManagerTvl ( balances , 'osmosis' ) ;
25
- await osmosisSumVaultsTVL ( balances ) ;
26
27
return balances ;
27
28
}
28
29
29
- async function osmosisSumVaultsTVL ( balances ) {
30
- let coins = [ ] ;
31
- let vaultPagesRemaining = true ;
32
- let startAfter = null ;
33
- const pageLimit = 10 ;
34
- const osmosisDenomTransform = await getChainTransform ( 'osmosis' ) ;
35
-
36
- while ( vaultPagesRemaining ) {
37
- const roverVaultConfigs = await queryContract ( {
38
- contract : addresses . osmosis . params ,
39
- chain : 'osmosis' ,
40
- data : { 'all_vault_configs' : { limit : pageLimit , 'start_after' : startAfter } }
41
- } ) ;
42
-
43
- if ( roverVaultConfigs . length === pageLimit ) {
44
- startAfter = roverVaultConfigs [ roverVaultConfigs . length - 1 ] . vault ;
45
- vaultPagesRemaining = true
46
- } else {
47
- vaultPagesRemaining = false ;
48
- }
49
-
50
- await osmosisAddCoinsForVaultsInfoPage ( coins , roverVaultConfigs ) ;
51
- }
52
-
53
- coins . forEach ( coin => {
54
- sdk . util . sumSingleBalance ( balances , osmosisDenomTransform ( coin . denom ) , coin . amount ) ;
55
- } )
56
- }
57
-
58
- async function osmosisAddCoinsForVaultsInfoPage ( coins , roverVaultConfigsPage ) {
59
- let vaultsMetadata = roverVaultConfigsPage . map ( rvi => ( { fieldsVaultInfo : rvi } ) ) ;
60
-
61
- // query the vault info for the vault contract itself to get the vault's
62
- // base token
63
- await Promise . all ( vaultsMetadata . map ( async vm => {
64
- let vaultInfo = await queryContract ( {
65
- contract : vm . fieldsVaultInfo . addr ,
66
- chain : 'osmosis' ,
67
- data : { 'info' : { } }
68
- } ) ;
69
- vm . vaultInfo = vaultInfo ;
70
- } ) ) ;
71
-
72
- // get total vault shares owned by fields for each vault
73
- await Promise . all ( vaultsMetadata . map ( async vm => {
74
- let vaultShares = await cosmosDenomBalanceStr (
75
- 'osmosis' ,
76
- vm . vaultInfo . vault_token ,
77
- addresses . osmosis . creditManager
78
- ) ;
79
- vm . vaultShares = vaultShares ;
80
- } ) ) ;
81
-
82
- // convert vault shares to vault base asset
83
- await Promise . all ( vaultsMetadata . map ( async vm => {
84
- let query = {
85
- contract : vm . fieldsVaultInfo . addr ,
86
- chain : 'osmosis' ,
87
- data : { 'convert_to_assets' : { amount : vm . vaultShares } }
88
- } ;
89
- let amount = await queryContract ( query ) ;
90
- vm . baseTokenAmount = amount ;
91
- } ) ) ;
92
-
93
- // Add coins to then be added to balances
94
- // * For gamm lp tokens compute the share of underlying assets and add those
95
- // * For other assets, add as is
96
- await Promise . all ( vaultsMetadata . map ( async vm => {
97
- const baseToken = vm . vaultInfo [ 'base_token' ] ;
98
- if ( baseToken . startsWith ( 'gamm/pool/' ) ) {
99
- let poolId = baseToken . split ( '/' ) [ 2 ] ;
100
- const url = `osmosis/gamm/v1beta1/pools/${ poolId } ` ;
101
- const query = await cosmosLCDQuery ( url , 'osmosis' ) ;
102
- const pool = query . pool ;
103
- pool [ 'pool_assets' ] . forEach ( asset => {
104
- const denom = asset . token . denom ;
105
- const amount = asset . token . amount * vm . baseTokenAmount / pool [ 'total_shares' ] . amount ;
106
- coins . push ( { denom, amount} ) ;
107
- } ) ;
108
- } else {
109
- coins . push ( { denom : baseToken , amount : vm . baseTokenAmount } ) ;
110
- }
111
- } ) ) ;
112
- }
113
-
114
30
// NEUTRON
115
31
116
32
async function neutronTVL ( ) {
117
33
let balances = { } ;
118
34
await addRedBankTvl ( balances , 'neutron' ) ;
35
+ await addCreditManagerTvl ( balances , 'neutron' ) ;
119
36
return balances ;
120
37
}
121
38
@@ -163,5 +80,6 @@ module.exports = {
163
80
[ 1675774800 , 'Relaunch on Osmosis' ] ,
164
81
[ 1690945200 , 'Red Bank launch on Neutron' ] ,
165
82
[ 1696906800 , 'Mars V2 launch on Osmosis' ] ,
83
+ [ 1724166000 , 'Mars v2 Launch on Neutron' ]
166
84
]
167
85
} ;
0 commit comments