Skip to content

Commit 0a94efa

Browse files
committed
feat: add script for getting entry/close formula prices
1 parent 5babafe commit 0a94efa

File tree

4 files changed

+52
-5
lines changed

4 files changed

+52
-5
lines changed

go.mod

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ module github.com/Gearbox-protocol/third-eye
33
go 1.19
44

55
require (
6-
github.com/Gearbox-protocol/sdk-go v0.0.0-20240103182332-5d7fd4cab47a
6+
github.com/Gearbox-protocol/sdk-go v0.0.0-20240105211751-432014a52146
77
github.com/ethereum/go-ethereum v1.10.17
88
github.com/go-playground/validator/v10 v10.4.1
99
github.com/google/go-cmp v0.5.8

go.sum

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -43,10 +43,8 @@ github.com/BurntSushi/toml v0.3.1 h1:WXkYYl6Yr3qBf1K79EBnL4mak0OimBfB0XUf9Vl28OQ
4343
github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU=
4444
github.com/BurntSushi/xgb v0.0.0-20160522181843-27f122750802/go.mod h1:IVnqGOEym/WlBOVXweHU+Q+/VP0lqqI8lqeDx9IjBqo=
4545
github.com/DATA-DOG/go-sqlmock v1.3.3/go.mod h1:f/Ixk793poVmq4qj/V1dPUg2JEAKC73Q5eFN3EC/SaM=
46-
github.com/Gearbox-protocol/sdk-go v0.0.0-20240103143350-2c9eeb3eb34f h1:q0/7wPSwma8mCcjazEhaRiLA8C1EHFbdRcyaLal09FI=
47-
github.com/Gearbox-protocol/sdk-go v0.0.0-20240103143350-2c9eeb3eb34f/go.mod h1:GniLx/DU7tCT+QSlKt9REqUaF748X8rbDNR4vAd1m+Y=
48-
github.com/Gearbox-protocol/sdk-go v0.0.0-20240103182332-5d7fd4cab47a h1:HCPoIdqk7zLVnc+6KXhq4jTjuHKhIQ2U3uKS9IYFR/k=
49-
github.com/Gearbox-protocol/sdk-go v0.0.0-20240103182332-5d7fd4cab47a/go.mod h1:GniLx/DU7tCT+QSlKt9REqUaF748X8rbDNR4vAd1m+Y=
46+
github.com/Gearbox-protocol/sdk-go v0.0.0-20240105211751-432014a52146 h1:0yBVB0VxHqAKrMSxLlY5iQqARjc32WFbzBD//84nLIs=
47+
github.com/Gearbox-protocol/sdk-go v0.0.0-20240105211751-432014a52146/go.mod h1:GniLx/DU7tCT+QSlKt9REqUaF748X8rbDNR4vAd1m+Y=
5048
github.com/Masterminds/semver/v3 v3.1.1 h1:hLg3sBzpNErnxhQtUy/mmLR2I9foDujNK030IGemrRc=
5149
github.com/Masterminds/semver/v3 v3.1.1/go.mod h1:VPu/7SZ7ePZ3QOrcuXROw5FAcLl4a0cBrbBpGY/8hQs=
5250
github.com/OneOfOne/xxhash v1.2.2/go.mod h1:HSdplMjZKSmBqAxg5vPj2TmRDmfkzw+cTzAElWljhcU=
Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
1+
package main
2+
3+
import (
4+
"github.com/Gearbox-protocol/sdk-go/calc"
5+
"github.com/Gearbox-protocol/sdk-go/core/schemas/schemas_v3"
6+
"github.com/Gearbox-protocol/sdk-go/log"
7+
"github.com/Gearbox-protocol/sdk-go/pkg/priceFetcher"
8+
"github.com/Gearbox-protocol/third-eye/config"
9+
"github.com/Gearbox-protocol/third-eye/ethclient"
10+
"github.com/Gearbox-protocol/third-eye/repository"
11+
)
12+
13+
func main() {
14+
cfg := config.NewConfig()
15+
db := repository.NewDBClient(cfg)
16+
client := ethclient.NewEthClient(cfg)
17+
18+
tStore := priceFetcher.NewTokensStore(client)
19+
20+
sessions := []*schemas_v3.TradingPriceObj{}
21+
err := db.Raw(`WITH cs as (select id, cm.underlying_token, since, remaining_funds from credit_sessions _cs
22+
JOIN credit_managers cm on cm.address = _cs.credit_manager where version=300),
23+
css AS (select distinct on (session_id) cs.since, _css.block_num, session_id, balances,
24+
borrowed_amount_bi, collateral_underlying FROM credit_session_snapshots _css
25+
JOIN cs ON cs.id =_css.session_id
26+
WHERE (SELECT count(*) FROM (select * from jsonb_object_keys(_css.balances) union (select cs.underlying_token)) t)>=2
27+
ORDER BY session_id, block_num)
28+
SELECT * FROM cs JOIN css ON css.session_id = cs.id`).Find(&sessions).Error
29+
log.CheckFatal(err)
30+
//
31+
for _, session := range sessions {
32+
price := calc.CalcEntryPriceBySession(1, tStore, session)
33+
log.Info("session", session.SessionId, "entryPrice", price)
34+
}
35+
//
36+
37+
err = db.Raw(`WITH cs as (select id, credit_manager, closed_at, remaining_funds from credit_sessions where version=300),
38+
debts as (select distinct on (session_id) session_id, cal_borrowed_amt_with_interest_bi from debts where session_id in (select id from cs) order by session_id, block_num desc)
39+
SELECT cs.*, debts.cal_borrowed_amt_with_interest_bi, cm.underlying_token, css.borrowed_amount_bi, css.collateral_underlying, css.balances FROM cs
40+
JOIN credit_session_snapshots css ON css.session_id = cs.id AND css.block_num = cs.closed_at-1
41+
JOIN credit_managers cm ON cm.address = cs.credit_manager
42+
LEFT JOIN debts ON debts.session_id = cs.id`).Find(&sessions).Error
43+
log.CheckFatal(err)
44+
45+
for _, session := range sessions {
46+
price := calc.CalcClosePriceBySession(1, tStore, session)
47+
log.Info("session", session.SessionId, "closePrice", price)
48+
}
49+
}

0 commit comments

Comments
 (0)