Skip to content

Instantly share code, notes, and snippets.

@harsh-98
Last active April 19, 2022 18:38
Show Gist options
  • Save harsh-98/6769109acae6f9fd328febdf93dce0f1 to your computer and use it in GitHub Desktop.
Save harsh-98/6769109acae6f9fd328febdf93dce0f1 to your computer and use it in GitHub Desktop.
package main
import (
"github.com/Gearbox-protocol/sdk-go/artifacts/poolService"
"github.com/Gearbox-protocol/sdk-go/core"
"github.com/Gearbox-protocol/sdk-go/core/schemas"
"github.com/Gearbox-protocol/sdk-go/ethclient"
"github.com/Gearbox-protocol/sdk-go/log"
"github.com/Gearbox-protocol/sdk-go/utils"
dcm "github.com/Gearbox-protocol/sdk-go/artifacts/dataCompressor/mainnet"
"math/big"
"github.com/ethereum/go-ethereum/accounts/abi/bind"
"github.com/ethereum/go-ethereum/common"
"github.com/ethereum/go-ethereum/core/types"
)
func main() {
var startBlock int64 = 14557642
var endBlock int64 = 14614290
pool := "0x24946bCbBd028D5ABb62ad9B635EB1b1a67AF668"
dc := "0x0050b1ABD1DD2D9b01ce954E663ff3DbCa9193B1"
client, err := ethclient.Dial("")
if err != nil {
log.Fatal("err", err)
}
node := core.Node{Client: client}
removeLiq, addLiq := new(big.Int), new(big.Int)
poolObj , err := poolService.NewPoolService(common.HexToAddress(pool), client)
log.CheckFatal(err)
logs, err := node.GetLogs(startBlock+1, endBlock, []common.Address{common.HexToAddress(pool)}, [][]common.Hash{})
log.CheckFatal(err)
for _, txLog := range logs {
switch txLog.Topics[0] {
case core.Topic("AddLiquidity(address,address,uint256,uint256)"):
parsedLog, err := poolObj.ParseAddLiquidity(txLog)
log.CheckFatal(err)
addLiq = new(big.Int).Add(addLiq, parsedLog.Amount)
case core.Topic("RemoveLiquidity(address,address,uint256)"):
parsedLog, err := poolObj.ParseRemoveLiquidity(txLog)
log.CheckFatal(err)
removeLiq = new(big.Int).Add(removeLiq, parsedLog.Amount)
}
}
dcObj , err := dcm.NewDataCompressor(common.HexToAddress(dc), client)
log.CheckFatal(err)
dataAgo , err := dcObj.GetPoolData(&bind.CallOpts{BlockNumber: big.NewInt(startBlock)}, common.HexToAddress(pool))
log.CheckFatal(err)
dataCurrent , err := dcObj.GetPoolData(&bind.CallOpts{BlockNumber: big.NewInt(endBlock)}, common.HexToAddress(pool))
log.CheckFatal(err)
log.Infof("From %d to %d", startBlock, endBlock)
log.Info("RemoveLiq", removeLiq)
log.Info("AddLiq", addLiq)
log.Info("expected liq week ago", dataAgo.ExpectedLiquidity)
log.Info("current expected liq", dataCurrent.ExpectedLiquidity)
earned := utils.GetFloat64Decimal(dataCurrent.ExpectedLiquidity, 18) -
utils.GetFloat64Decimal(dataAgo.ExpectedLiquidity, 18) -
utils.GetFloat64Decimal(new(big.Int).Sub(addLiq, removeLiq), 18)
log.Info("earned(7d)", earned)
}
@harsh-98
Copy link
Author

logs are :

2022/04/20 00:00:46 [Info]:  /Users/harshjain/crypto/third-eye/test.go:58 From 14557642 to 14614290
2022/04/20 00:00:46 [Info]:  /Users/harshjain/crypto/third-eye/test.go:59  RemoveLiq 720126277692869770163395
2022/04/20 00:00:46 [Info]:  /Users/harshjain/crypto/third-eye/test.go:60  AddLiq 781180660645070300043215
2022/04/20 00:00:46 [Info]:  /Users/harshjain/crypto/third-eye/test.go:61  expected liq week ago 2943271579746401305448425
2022/04/20 00:00:46 [Info]:  /Users/harshjain/crypto/third-eye/test.go:62  current expected liq 3004163127636436098577021
2022/04/20 00:00:46 [Info]:  /Users/harshjain/crypto/third-eye/test.go:66  earned(7d) -162.83506216602837

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment