1
+ {
2
+ "events" : [],
3
+ "accounts" : [{"discriminator" : [142 , 49 , 166 , 242 , 50 , 66 , 97 , 188 ], "name" : " Bank" }],
4
+ "address" : " Astro1oWvtB7cBTwi3efLMFB47WXx7DJDQeoxi235kA" ,
5
+ "instructions" : [],
6
+ "metadata" : {"description" : " Created with Anchor" , "name" : " astrolend" , "spec" : " 0.1.0" , "version" : " 0.1.0" },
7
+ "types" : [
8
+ {
9
+ "name" : " Bank" ,
10
+ "repr" : {"kind" : " c" },
11
+ "serialization" : " bytemuckunsafe" ,
12
+ "type" : {
13
+ "fields" : [
14
+ {"name" : " mint" , "type" : " pubkey" },
15
+ {"name" : " mint_decimals" , "type" : " u8" },
16
+ {"name" : " group" , "type" : " pubkey" },
17
+ {"name" : " _pad0" , "type" : {"array" : [" u8" , 7 ]}},
18
+ {"name" : " asset_share_value" , "type" : {"defined" : {"name" : " WrappedI80F48" }}},
19
+ {"name" : " liability_share_value" , "type" : {"defined" : {"name" : " WrappedI80F48" }}},
20
+ {"name" : " liquidity_vault" , "type" : " pubkey" },
21
+ {"name" : " liquidity_vault_bump" , "type" : " u8" },
22
+ {"name" : " liquidity_vault_authority_bump" , "type" : " u8" },
23
+ {"name" : " insurance_vault" , "type" : " pubkey" },
24
+ {"name" : " insurance_vault_bump" , "type" : " u8" },
25
+ {"name" : " insurance_vault_authority_bump" , "type" : " u8" },
26
+ {"name" : " _pad1" , "type" : {"array" : [" u8" , 4 ]}},
27
+ {"name" : " collected_insurance_fees_outstanding" , "type" : {"defined" : {"name" : " WrappedI80F48" }}},
28
+ {"name" : " fee_vault" , "type" : " pubkey" },
29
+ {"name" : " fee_vault_bump" , "type" : " u8" },
30
+ {"name" : " fee_vault_authority_bump" , "type" : " u8" },
31
+ {"name" : " _pad2" , "type" : {"array" : [" u8" , 6 ]}},
32
+ {"name" : " collected_group_fees_outstanding" , "type" : {"defined" : {"name" : " WrappedI80F48" }}},
33
+ {"name" : " total_liability_shares" , "type" : {"defined" : {"name" : " WrappedI80F48" }}},
34
+ {"name" : " total_asset_shares" , "type" : {"defined" : {"name" : " WrappedI80F48" }}},
35
+ {"name" : " last_update" , "type" : " i64" },
36
+ {"name" : " config" , "type" : {"defined" : {"name" : " BankConfig" }}},
37
+ {
38
+ "docs" : [
39
+ " Bank Config Flags" ,
40
+ " " ,
41
+ " - EMISSIONS_FLAG_BORROW_ACTIVE: 1" ,
42
+ " - EMISSIONS_FLAG_LENDING_ACTIVE: 2" ,
43
+ " - PERMISSIONLESS_BAD_DEBT_SETTLEMENT: 4" ,
44
+ " "
45
+ ],
46
+ "name" : " flags" ,
47
+ "type" : " u64"
48
+ },
49
+ {
50
+ "docs" : [
51
+ " Emissions APR." ,
52
+ " Number of emitted tokens (emissions_mint) per 1e(bank.mint_decimal) tokens (bank mint) (native amount) per 1 YEAR."
53
+ ],
54
+ "name" : " emissions_rate" ,
55
+ "type" : " u64"
56
+ },
57
+ {"name" : " emissions_remaining" , "type" : {"defined" : {"name" : " WrappedI80F48" }}},
58
+ {"name" : " emissions_mint" , "type" : " pubkey" },
59
+ {"name" : " _padding_0" , "type" : {"array" : [{"array" : [" u64" , 2 ]}, 28 ]}},
60
+ {"name" : " _padding_1" , "type" : {"array" : [{"array" : [" u64" , 2 ]}, 32 ]}}
61
+ ],
62
+ "kind" : " struct"
63
+ }
64
+ },
65
+ {
66
+ "name" : " WrappedI80F48" ,
67
+ "repr" : {"align" : 8 , "kind" : " c" },
68
+ "serialization" : " bytemuck" ,
69
+ "type" : {"fields" : [{"name" : " value" , "type" : {"array" : [" u8" , 16 ]}}], "kind" : " struct" }
70
+ },
71
+ {
72
+ "docs" : [" TODO: Convert weights to (u64, u64) to avoid precision loss (maybe?)" ],
73
+ "name" : " BankConfig" ,
74
+ "repr" : {"kind" : " c" },
75
+ "serialization" : " bytemuckunsafe" ,
76
+ "type" : {
77
+ "fields" : [
78
+ {"name" : " asset_weight_init" , "type" : {"defined" : {"name" : " WrappedI80F48" }}},
79
+ {"name" : " asset_weight_maint" , "type" : {"defined" : {"name" : " WrappedI80F48" }}},
80
+ {"name" : " liability_weight_init" , "type" : {"defined" : {"name" : " WrappedI80F48" }}},
81
+ {"name" : " liability_weight_maint" , "type" : {"defined" : {"name" : " WrappedI80F48" }}},
82
+ {"name" : " deposit_limit" , "type" : " u64" },
83
+ {"name" : " interest_rate_config" , "type" : {"defined" : {"name" : " InterestRateConfig" }}},
84
+ {"name" : " operational_state" , "type" : {"defined" : {"name" : " BankOperationalState" }}},
85
+ {"name" : " oracle_setup" , "type" : {"defined" : {"name" : " OracleSetup" }}},
86
+ {"name" : " oracle_keys" , "type" : {"array" : [" pubkey" , 5 ]}},
87
+ {"name" : " _pad0" , "type" : {"array" : [" u8" , 6 ]}},
88
+ {"name" : " borrow_limit" , "type" : " u64" },
89
+ {"name" : " risk_tier" , "type" : {"defined" : {"name" : " RiskTier" }}},
90
+ {"name" : " auto_padding_0" , "type" : {"array" : [" u8" , 7 ]}},
91
+ {"name" : " _pad1" , "type" : {"array" : [" u8" , 7 ]}},
92
+ {
93
+ "docs" : [
94
+ " USD denominated limit for calculating asset value for initialization astrol requirements." ,
95
+ " Example, if total SOL deposits are equal to $1M and the limit it set to $500K," ,
96
+ " then SOL assets will be discounted by 50%." ,
97
+ " " ,
98
+ " In other words the max value of liabilities that can be backed by the asset is $500K." ,
99
+ " This is useful for limiting the damage of orcale attacks." ,
100
+ " " ,
101
+ " Value is UI USD value, for example value 100 -> $100"
102
+ ],
103
+ "name" : " total_asset_value_init_limit" ,
104
+ "type" : " u64"
105
+ },
106
+ {"docs" : [" Time window in seconds for the oracle price feed to be considered live." ], "name" : " oracle_max_age" , "type" : " u16" },
107
+ {"name" : " _padding" , "type" : {"array" : [" u8" , 38 ]}}
108
+ ],
109
+ "kind" : " struct"
110
+ }
111
+ },
112
+ {
113
+ "name" : " InterestRateConfig" ,
114
+ "repr" : {"kind" : " c" },
115
+ "serialization" : " bytemuck" ,
116
+ "type" : {
117
+ "fields" : [
118
+ {"name" : " optimal_utilization_rate" , "type" : {"defined" : {"name" : " WrappedI80F48" }}},
119
+ {"name" : " plateau_interest_rate" , "type" : {"defined" : {"name" : " WrappedI80F48" }}},
120
+ {"name" : " max_interest_rate" , "type" : {"defined" : {"name" : " WrappedI80F48" }}},
121
+ {"name" : " insurance_fee_fixed_apr" , "type" : {"defined" : {"name" : " WrappedI80F48" }}},
122
+ {"name" : " insurance_ir_fee" , "type" : {"defined" : {"name" : " WrappedI80F48" }}},
123
+ {"name" : " protocol_fixed_fee_apr" , "type" : {"defined" : {"name" : " WrappedI80F48" }}},
124
+ {"name" : " protocol_ir_fee" , "type" : {"defined" : {"name" : " WrappedI80F48" }}},
125
+ {"name" : " _padding" , "type" : {"array" : [{"array" : [" u64" , 2 ]}, 8 ]}}
126
+ ],
127
+ "kind" : " struct"
128
+ }
129
+ },
130
+ {
131
+ "name" : " BankOperationalState" ,
132
+ "repr" : {"kind" : " rust" },
133
+ "type" : {"kind" : " enum" , "variants" : [{"name" : " Paused" }, {"name" : " Operational" }, {"name" : " ReduceOnly" }]}
134
+ },
135
+ {
136
+ "name" : " OracleSetup" ,
137
+ "repr" : {"kind" : " rust" },
138
+ "type" : {
139
+ "kind" : " enum" ,
140
+ "variants" : [{"name" : " None" }, {"name" : " PythLegacy" }, {"name" : " SwitchboardV2" }, {"name" : " PythPushOracle" }, {"name" : " SwitchboardPull" }]
141
+ }
142
+ },
143
+ {"name" : " RiskTier" , "repr" : {"kind" : " rust" }, "type" : {"kind" : " enum" , "variants" : [{"name" : " Collateral" }, {"name" : " Isolated" }]}}
144
+ ],
145
+ "errors" : []
146
+ }
0 commit comments