11const truffleContract = require ( "@truffle/contract" )
22const clc = require ( "cli-color" ) ;
33
4+ const contractHelper = require ( "./lib/contract-helper" )
5+
46const KeepTokenJson = require ( "@keep-network/keep-core/artifacts/KeepToken.json" )
57const TokenStakingJson = require ( "@keep-network/keep-core/artifacts/TokenStaking.json" )
68const KeepBondingJson = require ( "@keep-network/keep-ecdsa/artifacts/KeepBonding.json" )
@@ -39,6 +41,11 @@ module.exports = async function() {
3941 const keepBonding = await KeepBonding . deployed ( )
4042 const tbtcSystem = await TBTCSystem . deployed ( )
4143
44+ const deploymentBlock = await contractHelper . getDeploymentBlockNumber (
45+ KeepBondingJson ,
46+ web3 ,
47+ )
48+
4249 console . log ( clc . yellow ( `*** Contract Addresses ***` ) )
4350 console . log ( `KeepToken: ${ keepToken . address } ` )
4451 console . log ( `TokenStaking: ${ tokenStaking . address } ` )
@@ -85,9 +92,36 @@ module.exports = async function() {
8592 console . log ( clc . italic ( `Fetching staking info for [${ ecdsaOperators . length } ] ECDSA operators...` ) )
8693 console . log ( `` )
8794
95+ const bondCreatedEvents = await keepBonding . getPastEvents ( "BondCreated" , {
96+ fromBlock : deploymentBlock ,
97+ toBlock : "latest" ,
98+ } )
99+
100+ const totalOperatorBondsAmount = { }
101+ const totalBondedAmount = web3 . utils . toBN ( 0 )
102+
103+ for ( let i = 0 ; i < bondCreatedEvents . length ; i ++ ) {
104+ const event = bondCreatedEvents [ i ]
105+
106+ const operator = event . args . operator . toLowerCase ( )
107+ const bondAmount = web3 . utils . toBN ( event . args . amount )
108+
109+ totalBondedAmount . iadd ( bondAmount )
110+
111+ if ( totalOperatorBondsAmount [ operator ] === undefined ) {
112+ totalOperatorBondsAmount [ operator ] = bondAmount
113+ } else {
114+ totalOperatorBondsAmount [ operator ] . iadd ( bondAmount )
115+ }
116+ }
117+
118+ console . log (
119+ `Total bonded ETH: ${ web3 . utils . fromWei ( totalBondedAmount ) . toString ( ) } ` ,
120+ )
121+
88122 const ecdsaSummary = [ ]
89123 for ( let i = 0 ; i < ecdsaOperators . length ; i ++ ) {
90- const operator = ecdsaOperators [ i ]
124+ const operator = ecdsaOperators [ i ] . toLowerCase ( )
91125
92126 const eligibleStake = await tokenStaking . eligibleStake ( operator , keepRandomBeaconOperator . address )
93127 const eligibleStakeKeep = eligibleStake . div ( tokenDecimalMultiplier )
@@ -107,17 +141,23 @@ module.exports = async function() {
107141 isUpToDateInTbtcPool = "N/A"
108142 }
109143
144+ const bondsAmountEth = web3 . utils . fromWei (
145+ web3 . utils . toBN ( totalOperatorBondsAmount [ operator ] || 0 ) ,
146+ )
147+
110148 ecdsaSummary . push ( {
111149 address : operator ,
112150 eligibleStakeKeep : eligibleStakeKeep . toString ( ) ,
113151 operatorBalanceEth : operatorBalanceEth . toString ( ) ,
114152 unbondedValueEth : unbondedValueEth . toString ( ) ,
153+ bondsAmountEth : bondsAmountEth . toString ( ) ,
115154 isRegisteredInTbtcPool : isRegisteredInTbtcPool ,
116155 isUpToDateInTbtcPool : isUpToDateInTbtcPool
117156 } )
118157 }
119158
120159 console . log ( clc . yellow ( `*** ECDSA Operators ***` ) )
160+
121161 if ( process . env . OUTPUT_MODE === "text" ) {
122162 ecdsaSummary . forEach ( ( s ) =>
123163 console . log (
0 commit comments