1
1
const ADDRESSES = require ( '../helper/coreAssets.json' )
2
- const { sumTokensAndLPsSharedOwners, sumTokens2, genericUnwrapCvx } = require ( '../helper/unwrapLPs' )
3
- const sdk = require ( '@defillama/sdk' )
2
+ const { sumTokens2, genericUnwrapCvx } = require ( '../helper/unwrapLPs' )
4
3
5
4
const treasuries = [ "0xa52fd396891e7a74b641a2cb1a6999fcf56b077e" , "0x086c98855df3c78c6b481b6e1d47bef42e9ac36b" ]
6
5
@@ -20,110 +19,72 @@ const BTRFLYV2 = '0xc55126051B22eBb829D00368f4B12Bde432de5Da'
20
19
const cvxCRVPool = '0x0392321e86F42C2F94FBb0c6853052487db521F0'
21
20
22
21
const rlBTRFLYAbi = {
23
- lockedSupply : "uint256:lockedSupply" ,
24
- }
25
-
26
- async function tvl ( timestamp , block , chainBlocks ) {
27
- const balances = { }
28
-
29
- //Add tokens/curve LPs in wallet
30
- await sumTokensAndLPsSharedOwners ( balances , [
31
- [ CVX , false ] ,
32
- [ cvxCRV , false ] ,
33
- [ FXS , false ] ,
34
- [ CRV , false ] ,
35
- [ AURA , false ] ,
36
- // BTRFLY/ETH Curve LP
37
- [ '0x7483Dd57f6488b0e194A151C57Df6Ec85C00aCE9' , false ] ,
38
- [ ADDRESSES . ethereum . USDC , false ] ,
39
- [ ADDRESSES . ethereum . FRAX , false ] ,
40
- ] , treasuries , block )
41
-
42
- //Add UniswapV3 LPs
43
- await sumTokens2 ( { balances, owners : treasuries , block, resolveUniV3 : true , } )
44
-
45
- //Add convex deposited curve LPs
46
- await genericUnwrapCvx ( balances , treasuries [ 0 ] , cvxCRVPool , block , 'ethereum' )
47
-
48
- //This causes an error and not sure why
49
- //await genericUnwrapCvx(balances, treasuries[0], cvxFXSPool, block, 'ethereum')
50
-
51
- //Add vlCVX as CVX
52
- const vlCVXBalance = await sdk . api . erc20 . balanceOf ( {
53
- target : ADDRESSES . ethereum . vlCVX ,
54
- owner : treasuries [ 0 ] ,
55
- chain : 'ethereum' ,
56
- block : chainBlocks [ 'ethereum' ]
57
- } ) . then ( result => result . output )
58
- sdk . util . sumSingleBalance ( balances , CVX , vlCVXBalance )
22
+ lockedSupply : "uint256:lockedSupply" ,
23
+ }
59
24
60
- //Add vlAURA as AURA
61
- const vlAURABalance = await sdk . api . erc20 . balanceOf ( {
62
- target : AURALocker ,
63
- owner : treasuries [ 0 ] ,
64
- chain : 'ethereum' ,
65
- block : chainBlocks [ 'ethereum' ]
66
- } ) . then ( result => result . output )
67
- sdk . util . sumSingleBalance ( balances , AURA , vlAURABalance )
25
+ async function tvl ( api ) {
26
+ const block = api . block
27
+ const balances = api . getBalances ( )
28
+ const tokens = [
29
+ CVX ,
30
+ cvxCRV ,
31
+ FXS ,
32
+ CRV ,
33
+ AURA ,
34
+ // BTRFLY/ETH Curve LP
35
+ '0x7483Dd57f6488b0e194A151C57Df6Ec85C00aCE9' ,
36
+ ADDRESSES . ethereum . USDC ,
37
+ ADDRESSES . ethereum . FRAX ,
38
+ ]
68
39
69
- //Add staked cvxCRV as cvxCRV
70
- const cvxCRVStakedBalance = await sdk . api . erc20 . balanceOf ( {
71
- target : cvxCRVStaking ,
72
- owner : treasuries [ 0 ] ,
73
- chain : 'ethereum' ,
74
- block : chainBlocks [ 'ethereum' ]
75
- } ) . then ( result => result . output )
76
- sdk . util . sumSingleBalance ( balances , cvxCRV , cvxCRVStakedBalance )
40
+ //Add tokens/curve LPs in wallet
41
+ await api . sumTokens ( { owners : treasuries , tokens } )
77
42
78
- //Add veFXS as 1/4 FXS since locked for 4 years
79
- const veFXSBalance = await sdk . api . erc20 . balanceOf ( {
80
- target : veFXS ,
81
- owner : treasuries [ 0 ] ,
82
- chain : 'ethereum' ,
83
- block : chainBlocks [ 'ethereum' ]
84
- } ) . then ( result => result . output )
85
- sdk . util . sumSingleBalance ( balances , FXS , veFXSBalance / 4 )
43
+ //Add UniswapV3 LPs
44
+ await sumTokens2 ( { api, owners : treasuries , resolveUniV3 : true , } )
86
45
87
- //Add veCRV as 1 CRV since locked for 4 years
88
- const veCRVBalance = await sdk . api . erc20 . balanceOf ( {
89
- target : veCRV ,
90
- owner : treasuries [ 0 ] ,
91
- chain : 'ethereum' ,
92
- block : chainBlocks [ 'ethereum' ]
93
- } ) . then ( result => result . output )
94
- sdk . util . sumSingleBalance ( balances , CRV , veCRVBalance )
46
+ //Add convex deposited curve LPs
47
+ await genericUnwrapCvx ( balances , treasuries [ 0 ] , cvxCRVPool , block )
95
48
96
- //Add sOHM as OHM since 1:1
97
- const sOHMBalance = await sdk . api . erc20 . balanceOf ( {
98
- target : sOHM ,
99
- owner : treasuries [ 1 ] ,
100
- chain : 'ethereum' ,
101
- block : chainBlocks [ 'ethereum' ]
102
- } ) . then ( result => result . output )
103
- sdk . util . sumSingleBalance ( balances , OHM , sOHMBalance )
49
+ //This causes an error and not sure why
50
+ //await genericUnwrapCvx(balances, treasuries[0], cvxFXSPool, block, 'ethereum')
104
51
105
- return balances
52
+ //Add vlCVX as CVX
53
+ const [ vlCVXBalance , vlAURABalance , cvxCRVStakedBalance , veFXSBalance , veCRVBalance , sOHMBalance ] = await api . multiCall ( {
54
+ abi : 'erc20:balanceOf' ,
55
+ calls : [
56
+ { target : ADDRESSES . ethereum . vlCVX , params : treasuries [ 0 ] } ,
57
+ { target : AURALocker , params : treasuries [ 0 ] } ,
58
+ { target : cvxCRVStaking , params : treasuries [ 0 ] } ,
59
+ { target : veFXS , params : treasuries [ 0 ] } ,
60
+ { target : veCRV , params : treasuries [ 0 ] } ,
61
+ { target : sOHM , params : treasuries [ 1 ] } ,
62
+ ]
63
+ } )
64
+ api . add ( CVX , vlCVXBalance )
65
+ api . add ( AURA , vlAURABalance )
66
+ api . add ( cvxCRV , cvxCRVStakedBalance )
67
+ api . add ( CRV , veCRVBalance )
68
+ api . add ( OHM , sOHMBalance )
69
+ api . add ( FXS , veFXSBalance / 4 )
70
+ //Add vlAURA as AURA
71
+ //Add staked cvxCRV as cvxCRV
72
+ //Add veFXS as 1/4 FXS since locked for 4 years
73
+ //Add veCRV as 1 CRV since locked for 4 years
74
+ //Add sOHM as OHM since 1:1
106
75
}
107
76
108
- async function staking ( timestamp , block , chainBlocks ) {
109
- const balances = { }
110
-
111
- //Adding locked BTRFLY
112
- const lockedBTRFLY = await sdk . api . abi . call ( {
113
- abi : rlBTRFLYAbi . lockedSupply ,
114
- target : rlBTRFLY ,
115
- chain : 'ethereum' ,
116
- block : chainBlocks [ 'ethereum' ] ,
117
- } ) . then ( result => result . output )
118
- sdk . util . sumSingleBalance ( balances , BTRFLYV2 , lockedBTRFLY )
119
-
120
- return balances
77
+ async function staking ( api ) {
78
+
79
+ //Adding locked BTRFLY
80
+ const lockedBTRFLY = await api . call ( { abi : rlBTRFLYAbi . lockedSupply , target : rlBTRFLY , } )
81
+ api . add ( BTRFLYV2 , lockedBTRFLY )
121
82
}
122
83
123
84
module . exports = {
124
- methodology : "tvl = Treasury assets (bonding). staking = rlBTRFLY (locked tokens)" ,
125
- ethereum :{
126
- tvl,
127
- staking
128
- } ,
85
+ methodology : "tvl = Treasury assets (bonding). staking = rlBTRFLY (locked tokens)" ,
86
+ ethereum : {
87
+ tvl,
88
+ staking
89
+ } ,
129
90
}
0 commit comments