-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathuser-loan-info.ts
68 lines (57 loc) · 1.85 KB
/
user-loan-info.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
import { createClient, http } from "viem";
import {
CHAIN_VIEM,
FOLKS_CHAIN_ID,
FolksCore,
FolksLoan,
FolksOracle,
FolksPool,
NetworkType,
TESTNET_FOLKS_TOKEN_ID,
TESTNET_LOAN_TYPE_ID,
} from "../src/index.js";
import type { AccountId, FolksCoreConfig, PoolInfo, FolksTokenId } from "../src/index.js";
async function main() {
const network = NetworkType.TESTNET;
const folksConfig: FolksCoreConfig = {
network,
provider: {
evm: {
[FOLKS_CHAIN_ID.AVALANCHE_FUJI]: createClient({
chain: CHAIN_VIEM[FOLKS_CHAIN_ID.AVALANCHE_FUJI],
transport: http("https://my-rpc.avax-testnet.network/<API_KEY>"),
}),
},
},
};
FolksCore.init(folksConfig);
FolksCore.setNetwork(network);
const poolsInfo: Partial<Record<FolksTokenId, PoolInfo>> = {};
await Promise.all(
Object.values(TESTNET_FOLKS_TOKEN_ID).map(async (folksTokenId) => {
const poolInfo = await FolksPool.read.poolInfo(folksTokenId);
poolsInfo[folksTokenId] = poolInfo;
}),
);
const loanTypeInfo = {
[TESTNET_LOAN_TYPE_ID.GENERAL]: await FolksLoan.read.loanTypeInfo(TESTNET_LOAN_TYPE_ID.GENERAL),
};
const oraclePrices = await FolksOracle.read.oraclePrices();
const accountId: AccountId = "0x7d6...b66" as AccountId;
const loanIds = await FolksLoan.read.userLoansIds(accountId, [TESTNET_LOAN_TYPE_ID.GENERAL]);
const generalLoansIds = loanIds.get(TESTNET_LOAN_TYPE_ID.GENERAL);
if (!generalLoansIds) {
console.log("No general loans found");
return;
}
const userGeneralLoans = await FolksLoan.read.userLoans(generalLoansIds);
const userGeneralLoansInfo = FolksLoan.util.userLoansInfo(userGeneralLoans, poolsInfo, loanTypeInfo, oraclePrices);
console.log(userGeneralLoansInfo);
}
main()
.then(() => {
console.log("done");
})
.catch((error: unknown) => {
console.error(error);
});