-
Notifications
You must be signed in to change notification settings - Fork 10
/
Copy pathcdp_calculations.ts
101 lines (75 loc) · 3.75 KB
/
cdp_calculations.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
import BigNumber from "bignumber.js";
import * as BIP39 from "bip39";
// @ts-ignore
import { CarbonSDK } from "./_sdk";
// @ts-ignore
import "./_setup";
import Long from "long";
(async () => {
const mnemonics = process.env.MNEMONICS ?? BIP39.generateMnemonic();
console.log("mnemonics", mnemonics);
const sdk = await CarbonSDK.instance({
network: CarbonSDK.Network.LocalHost,
config: {
tmRpcUrl: process.env.TRPC_ENDPOINT,
},
});
const address = "tswth17tek8m2y6n0d7xczvvednq76v789ewds6adcc2"
const denom = "usdc"
const cdpDenom = `cibt/${denom}`
const connectedSDK = await sdk.connectWithMnemonic(mnemonics);
console.log("connected sdk");
const accData = await sdk.cdp.getAccountData(address)
console.log("\ngetAccountData", JSON.stringify(accData));
const accCollateral = await sdk.query.cdp.AccountCollateral({ address: address, cdpDenom: cdpDenom });
console.log("\nAccountCollateral", JSON.stringify(accCollateral));
const debt = await sdk.query.cdp.AccountDebt({ address: address, denom: denom })
console.log("\nAccountDebt", JSON.stringify(debt))
const assetParamsAll = await sdk.query.cdp.AssetAll({})
console.log("\nAssetAll", JSON.stringify(assetParamsAll))
const tokenDebts = await sdk.query.cdp.TokenDebtAll({})
console.log("\nTokenDebtsAll", JSON.stringify(tokenDebts))
const tokenDebt = await sdk.query.cdp.TokenDebt({ denom })
console.log("\nTokenDebt", JSON.stringify(tokenDebt))
const accountTokenDebt = await sdk.cdp.getTotalAccountTokenDebt(address, denom)
console.log("\ngetTotalAccountTokenDebt", JSON.stringify(tokenDebt))
const tokenDebtUSD = await sdk.cdp.getTotalAccountTokenDebtUsdVal(address, denom)
console.log("\ngetTotalAccountTokenDebtUsdVal", JSON.stringify(tokenDebtUSD))
const cim = await sdk.cdp.recalculateCIM("eth")
console.log("\nrecalculateCIM", cim.cim.toNumber())
const stablecoinDebt = await sdk.query.cdp.StablecoinDebt({})
console.log("\nStablecoinDebt", JSON.stringify(stablecoinDebt))
const accountStablecoin = await sdk.query.cdp.AccountStablecoin({ address: address })
console.log("\nAccountStablecoin", JSON.stringify(accountStablecoin))
const params = await sdk.query.cdp.Params({})
console.log(`\nParams ${JSON.stringify(params)}`)
const totalTokenDebt = await sdk.cdp.getTotalTokenDebt(denom)
console.log("\getTotalTokenDebt", JSON.stringify(totalTokenDebt))
const ratio = await sdk.cdp.getCdpToActualRatio(cdpDenom, totalTokenDebt)
console.log("\ngetCdpToActualRatio", JSON.stringify(ratio))
const amt = new BigNumber("1000000")
const cdpTokenValue = await sdk.cdp.getCdpTokenUsdVal(cdpDenom, amt)
console.log("\ngetCdpTokenUsdVal", cdpTokenValue?.toNumber())
const cdpTokenPrice = await sdk.cdp.getCdpTokenPrice(cdpDenom)
console.log("\ngetCdpTokenPrice", cdpTokenPrice?.toNumber())
const totalCollateral = await sdk.cdp.getModuleTotalCollateralUsdVal()
console.log("\ngetModuleTotalCollateralUsdVal", totalCollateral?.toNumber())
const totalDebt = await sdk.cdp.getModuleTotalDebtUsdVal()
console.log("\ngetModuleTotalDebtUsdVal", totalDebt?.toNumber())
const maxCollateralsForUnlock = await sdk.cdp.getMaxCollateralForUnlock(address, cdpDenom)
console.log("\ngetMaxCollateralForUnlock", maxCollateralsForUnlock?.toNumber())
const positionsAll = await sdk.query.cdp.PositionsAll({
maxHealthFactor: "999999999999999999999",
minHealthFactor: "1",
pagination: {
key: new Uint8Array,
countTotal: false,
reverse: false,
offset: new Long(0),
limit: new Long(1),
}
})
console.log("\nPositionsAll", JSON.stringify(positionsAll))
const asset = await sdk.query.cdp.Asset({ denom: denom })
console.log(`\nAsset ${JSON.stringify(asset)}`)
})().catch(console.error).finally(() => process.exit(0));