@affluent-org/sdk 0.0.2 → 0.0.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (104) hide show
  1. package/dist/build/Account.compiled.json +1 -0
  2. package/dist/build/Receipt.compiled.json +1 -0
  3. package/dist/build/WTONWallet.compiled.json +1 -0
  4. package/dist/common/cache.d.ts +16 -0
  5. package/dist/common/cache.js +96 -0
  6. package/dist/common/service.d.ts +20 -0
  7. package/dist/common/service.js +69 -0
  8. package/dist/common/type.d.ts +14 -0
  9. package/dist/common/type.js +2 -0
  10. package/dist/common/unknown-contract.d.ts +14 -0
  11. package/dist/common/unknown-contract.js +18 -0
  12. package/dist/common/versions.d.ts +14 -0
  13. package/dist/common/versions.js +22 -0
  14. package/dist/constants/pool.d.ts +1 -0
  15. package/dist/constants/pool.js +2 -0
  16. package/dist/contracts/_mock/simple-oracle.d.ts +34 -0
  17. package/dist/contracts/_mock/simple-oracle.js +73 -0
  18. package/dist/contracts/vault/share-vault/type.d.ts +30 -0
  19. package/dist/contracts/vault/share-vault/type.js +2 -0
  20. package/dist/contracts/vault/strategy-vault/utils.d.ts +6 -0
  21. package/dist/contracts/vault/strategy-vault/utils.js +32 -0
  22. package/dist/factorial.d.ts +14 -0
  23. package/dist/factorial.js +20 -0
  24. package/dist/farm.d.ts +92 -0
  25. package/dist/farm.js +209 -0
  26. package/dist/monitor.d.ts +57 -0
  27. package/dist/monitor.js +527 -0
  28. package/dist/monitorCacheV1.d.ts +52 -0
  29. package/dist/monitorCacheV1.js +504 -0
  30. package/dist/oracle/oracle-v2.d.ts +39 -0
  31. package/dist/oracle/oracle-v2.js +151 -0
  32. package/dist/oracle/oracle.d.ts +107 -0
  33. package/dist/oracle/oracle.js +392 -0
  34. package/dist/periphery.d.ts +259 -0
  35. package/dist/periphery.js +1087 -0
  36. package/dist/pool.d.ts +216 -0
  37. package/dist/pool.js +2298 -0
  38. package/dist/poolCacheV1.d.ts +139 -0
  39. package/dist/poolCacheV1.js +1841 -0
  40. package/dist/rfq-auction.d.ts +75 -0
  41. package/dist/rfq-auction.js +220 -0
  42. package/dist/rfq-batch.d.ts +112 -0
  43. package/dist/rfq-batch.js +284 -0
  44. package/dist/services/share-vault/computation.d.ts +14 -17
  45. package/dist/services/share-vault/computation.js +39 -0
  46. package/dist/services/share-vault/index.js +6 -3
  47. package/dist/services/share-vault/query.d.ts +38 -8
  48. package/dist/services/share-vault/query.js +20 -27
  49. package/dist/services/share-vault/type.d.ts +19 -0
  50. package/dist/services/share-vault/type.js +2 -0
  51. package/dist/services/share-vault/user/index.js +3 -1
  52. package/dist/services/strategy-vault/computation.d.ts +1 -0
  53. package/dist/services/strategy-vault/computation.js +15 -0
  54. package/dist/services/strategy-vault/query.d.ts +147 -0
  55. package/dist/services/strategy-vault/query.js +67 -0
  56. package/dist/services/strategy-vault/type.d.ts +2 -0
  57. package/dist/services/strategy-vault/type.js +2 -0
  58. package/dist/share-vault.d.ts +91 -0
  59. package/dist/share-vault.js +747 -0
  60. package/dist/stonfi.d.ts +18 -0
  61. package/dist/stonfi.js +76 -0
  62. package/dist/strategy_vault/base.d.ts +399 -0
  63. package/dist/strategy_vault/base.js +1199 -0
  64. package/dist/strategy_vault/index.d.ts +3 -0
  65. package/dist/strategy_vault/index.js +7 -0
  66. package/dist/strategy_vault/steps.d.ts +49 -0
  67. package/dist/strategy_vault/steps.js +170 -0
  68. package/dist/types/action.d.ts +55 -0
  69. package/dist/types/action.js +2 -0
  70. package/dist/types/messages.d.ts +7 -0
  71. package/dist/types/messages.js +2 -0
  72. package/dist/types/params.d.ts +19 -0
  73. package/dist/types/params.js +2 -0
  74. package/dist/types/pool.d.ts +83 -0
  75. package/dist/types/pool.js +2 -0
  76. package/dist/types/transaction.d.ts +40 -0
  77. package/dist/types/transaction.js +2 -0
  78. package/dist/utils/_parse_temp/JumpIRM.d.ts +37 -0
  79. package/dist/utils/_parse_temp/JumpIRM.js +71 -0
  80. package/dist/utils/_parse_temp/Pool.d.ts +559 -0
  81. package/dist/utils/_parse_temp/Pool.js +1023 -0
  82. package/dist/utils/_parse_temp/ShareVault.d.ts +264 -0
  83. package/dist/utils/_parse_temp/ShareVault.js +479 -0
  84. package/dist/utils/_parse_temp/StrategyVault.d.ts +729 -0
  85. package/dist/utils/_parse_temp/StrategyVault.js +1865 -0
  86. package/dist/utils/_parse_temp/parseMsgBody.d.ts +13 -0
  87. package/dist/utils/_parse_temp/parseMsgBody.js +313 -0
  88. package/dist/utils/assert.d.ts +1 -0
  89. package/dist/utils/assert.js +9 -0
  90. package/dist/utils/client-for-parameter.d.ts +12 -0
  91. package/dist/utils/client-for-parameter.js +97 -0
  92. package/dist/utils/oracle/index.d.ts +4 -0
  93. package/dist/utils/oracle/index.js +19 -0
  94. package/dist/utils/oracle/redstone/helper.d.ts +22 -0
  95. package/dist/utils/oracle/redstone/helper.js +186 -0
  96. package/dist/utils/tracer.d.ts +13 -0
  97. package/dist/utils/tracer.js +137 -0
  98. package/dist/utils/tracker/index.d.ts +5 -0
  99. package/dist/utils/tracker/index.js +118 -0
  100. package/dist/utils/tracker/query-id-generactor.d.ts +2 -0
  101. package/dist/utils/tracker/query-id-generactor.js +12 -0
  102. package/dist/utils/tracker/type.d.ts +34 -0
  103. package/dist/utils/tracker/type.js +2 -0
  104. package/package.json +1 -1
@@ -0,0 +1,1023 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Pool = void 0;
4
+ exports.poolConfigToCell = poolConfigToCell;
5
+ const core_1 = require("@ton/core");
6
+ const JumpIRM_1 = require("./JumpIRM");
7
+ const PERCENT_BIT = 14;
8
+ function poolConfigToCell(config) {
9
+ return (0, core_1.beginCell)()
10
+ .storeAddress(config.feeConfigurer)
11
+ .storeAddress(config.owner)
12
+ .storeAddress(config.oracle)
13
+ .storeDict(config.assets)
14
+ .storeRef(config.accountCode)
15
+ .endCell();
16
+ }
17
+ class Pool {
18
+ address;
19
+ init;
20
+ constructor(address, init) {
21
+ this.address = address;
22
+ this.init = init;
23
+ }
24
+ static Op = {
25
+ Supply: 0x480074d8,
26
+ Withdraw: 0xcb03bfaf,
27
+ Borrow: 0xcfc248e4,
28
+ Repay: 0xee555a2c,
29
+ InitWalletAddress: 0x9648dcfb,
30
+ AccrueInterest: 0x597b3dea,
31
+ Liquidate: 0xcc52bae3,
32
+ Initialize: 0xd80dee82,
33
+ ExecuteAccountAction: 0x8479ff77,
34
+ SetOracle: 0x34fb5566,
35
+ SetGasFee: 0x50d87d1d,
36
+ Excess: 0xd53276db,
37
+ ActionNotification: 0xa1b21e8b,
38
+ TransferNotification: 0x7362d09c,
39
+ ProvideAsset: 0x7fe37dc6,
40
+ TakeAsset: 0x5c3d8ba8,
41
+ SetProtocolFeeRate: 0x8213a90b,
42
+ SetFeeConfigurer: 0x8f357657,
43
+ CollectFee: 0x9d21f1da,
44
+ SetOracleConfig: 0xd93126de,
45
+ SetOwner: 0xa31c7c0,
46
+ AddAsset: 0xeebc8d47,
47
+ SetIsBorrowable: 0x7d77d338,
48
+ SetLiquidationIncentiveRate: 0xc4fc4237,
49
+ SetMaxLoanLeverageRatio: 0x2938ba22,
50
+ SetMaxLoanVarRatio: 0x3db301dc,
51
+ SetLiquidateLeverageRatio: 0xcc4a34da,
52
+ SetLiquidateVarRatio: 0xc2de485,
53
+ SetLiquidateCloseRatio: 0xd6ff9cdf,
54
+ SetIrmConfig: 0xfd5c44b6,
55
+ UpgradeCode: 0x61bddf8b,
56
+ ExecuteAction: 0x2be12d37,
57
+ UpdateAccountStatus: 0x1c5ee1c3,
58
+ ProcessBorrowActionResult: 0x72097fe2,
59
+ SetWalletAddress: 0x234476d2,
60
+ SetIsCollateral: 0xeef995e2,
61
+ SetNewAccountCode: 0x7abd941,
62
+ SetVersion: 0xbb05e778,
63
+ SetRiskFactor: 0x588f0bb2,
64
+ LiquidateNotification: 0x2ad4bcab,
65
+ };
66
+ static Error = {
67
+ CellUnderflow: 9,
68
+ Unauthorized: 1000,
69
+ InvalidAsset: 1001,
70
+ InvalidWallet: 1002,
71
+ InvalidAddress: 1003,
72
+ AlreadyInitialized: 1004,
73
+ NotEnoughCash: 1005,
74
+ NotEnoughShare: 1006,
75
+ NotEnoughLiquidity: 1007,
76
+ NotFoundPrice: 1008,
77
+ NotFoundAccount: 1009,
78
+ EnoughLiquidity: 1010,
79
+ AlreadyLocked: 1011,
80
+ NotBorrowableAsset: 1012,
81
+ ExpiredAction: 1013,
82
+ InvalidAction: 1014,
83
+ AlreadyExistAsset: 1015,
84
+ LockedAccount: 1016,
85
+ NotEnoughGas: 1017,
86
+ ActionTimeout: 1018,
87
+ SeizeAssetIsRepayAsset: 1019,
88
+ ExceededMaxLoanVarRatio: 1020,
89
+ ExceededMaxLoanLeverageRatio: 1021,
90
+ InvalidLiquidateAmount: 1022,
91
+ UnknownOp: 0xffff,
92
+ };
93
+ static createFromAddress(address) {
94
+ return new Pool(address);
95
+ }
96
+ static createFromConfig(config, code, workchain = 0) {
97
+ const data = poolConfigToCell(config);
98
+ const init = { code, data };
99
+ return new Pool((0, core_1.contractAddress)(workchain, init), init);
100
+ }
101
+ async sendDeploy(provider, via, value) {
102
+ await provider.internal(via, {
103
+ value,
104
+ sendMode: core_1.SendMode.PAY_GAS_SEPARATELY,
105
+ body: (0, core_1.beginCell)().endCell(),
106
+ });
107
+ }
108
+ async sendSetOwner(provider, via, value, opts) {
109
+ await provider.internal(via, {
110
+ value: value,
111
+ sendMode: core_1.SendMode.PAY_GAS_SEPARATELY,
112
+ body: Pool.createSetOwnerMsgBody(opts),
113
+ });
114
+ }
115
+ async sendSetFeeConfigurer(provider, via, value, opts) {
116
+ await provider.internal(via, {
117
+ value: value,
118
+ sendMode: core_1.SendMode.PAY_GAS_SEPARATELY,
119
+ body: Pool.createSetFeeConfigurerMsgBody(opts),
120
+ });
121
+ }
122
+ async sendSetRiskFactor(provider, via, value, opts) {
123
+ await provider.internal(via, {
124
+ value: value,
125
+ sendMode: core_1.SendMode.PAY_GAS_SEPARATELY,
126
+ body: Pool.createSetRiskFactorMsgBody(opts),
127
+ });
128
+ }
129
+ static createSupplyMsg({ asset, recipient, deadline, response, forwardPayload }) {
130
+ let msg = (0, core_1.beginCell)()
131
+ .storeAddress(recipient)
132
+ .storeUint(Pool.Op.Supply, 32)
133
+ .storeAddress(asset)
134
+ .storeAddress(response || recipient)
135
+ .storeCoins(0)
136
+ .storeUint(0, 1);
137
+ if (forwardPayload) {
138
+ msg = msg.storeSlice(forwardPayload);
139
+ }
140
+ return msg.endCell();
141
+ }
142
+ static createRepayMsg({ asset, recipient, deadline, response, forwardPayload }) {
143
+ let msg = (0, core_1.beginCell)()
144
+ .storeAddress(recipient)
145
+ .storeUint(Pool.Op.Repay, 32)
146
+ .storeAddress(asset)
147
+ .storeAddress(response || recipient)
148
+ .storeCoins(0)
149
+ .storeUint(0, 1);
150
+ if (forwardPayload) {
151
+ msg = msg.storeSlice(forwardPayload);
152
+ }
153
+ return msg.endCell();
154
+ }
155
+ static createLiquidateMsg({ oracleParams, repayAsset, borrower, seizeAsset, response, deadline, forwardPayload }) {
156
+ let subMsg = (0, core_1.beginCell)()
157
+ .storeAddress(seizeAsset);
158
+ if (forwardPayload) {
159
+ subMsg = subMsg.storeSlice(forwardPayload);
160
+ }
161
+ let msg = (0, core_1.beginCell)()
162
+ .storeAddress(borrower)
163
+ .storeUint(Pool.Op.Liquidate, 32)
164
+ .storeAddress(repayAsset)
165
+ .storeAddress(response)
166
+ .storeCoins(0)
167
+ .storeUint(0, 1)
168
+ .storeRef(oracleParams)
169
+ .storeRef(subMsg.endCell());
170
+ return msg.endCell();
171
+ }
172
+ static assetConfigToCell(assetConfig) {
173
+ return (0, core_1.beginCell)()
174
+ .storeAddress(assetConfig.wallet)
175
+ .storeAddress(assetConfig.irm)
176
+ .storeRef(assetConfig.irmData)
177
+ .storeUint(assetConfig.riskFactor, PERCENT_BIT)
178
+ .storeUint(assetConfig.lir, PERCENT_BIT)
179
+ .storeUint(assetConfig.isCollateral, 1)
180
+ .storeUint(assetConfig.isBorrowable, 1)
181
+ .endCell();
182
+ }
183
+ static createGasFeeConfig(supplyFee, withdrawFee, borrowFee, repayFee, liquidateFee, account_status_update, jetton_transfer, oracle_calculate, interest_rate_update) {
184
+ return (0, core_1.beginCell)()
185
+ .storeCoins(supplyFee)
186
+ .storeCoins(withdrawFee)
187
+ .storeCoins(borrowFee)
188
+ .storeCoins(repayFee)
189
+ .storeCoins(liquidateFee)
190
+ .storeCoins(account_status_update)
191
+ .storeCoins(jetton_transfer)
192
+ .storeCoins(oracle_calculate)
193
+ .storeCoins(interest_rate_update)
194
+ .endCell();
195
+ }
196
+ async sendMsgBody(provider, via, value, opts) {
197
+ await provider.internal(via, {
198
+ value: value,
199
+ sendMode: core_1.SendMode.PAY_GAS_SEPARATELY,
200
+ body: opts.body,
201
+ });
202
+ }
203
+ async sendWithdraw(provider, via, value, opts) {
204
+ let bodyMsg = (0, core_1.beginCell)()
205
+ .storeUint(Pool.Op.Withdraw, 32)
206
+ .storeUint(opts.queryID ?? 0, 64)
207
+ .storeMaybeRef(opts.oracleParams)
208
+ .storeAddress(opts.asset)
209
+ .storeUint(opts.isShare ? 1 : 0, 1)
210
+ .storeCoins(opts.amount)
211
+ .storeAddress(opts.recipient)
212
+ .storeAddress(opts.response || opts.recipient)
213
+ .storeCoins(0)
214
+ .storeUint(0, 1);
215
+ if (opts.forwardPayload) {
216
+ bodyMsg = bodyMsg.storeSlice(opts.forwardPayload);
217
+ }
218
+ await provider.internal(via, {
219
+ value: value,
220
+ sendMode: core_1.SendMode.PAY_GAS_SEPARATELY,
221
+ body: bodyMsg.endCell()
222
+ });
223
+ }
224
+ async sendBorrow(provider, via, value, opts) {
225
+ let bodyMsg = (0, core_1.beginCell)()
226
+ .storeUint(Pool.Op.Borrow, 32)
227
+ .storeUint(opts.queryID ?? 0, 64)
228
+ .storeMaybeRef(opts.oracleParams)
229
+ .storeAddress(opts.asset)
230
+ .storeUint(opts.isShare ? 1 : 0, 1)
231
+ .storeCoins(opts.amount)
232
+ .storeAddress(opts.recipient)
233
+ .storeAddress(opts.response || opts.recipient)
234
+ .storeCoins(0)
235
+ .storeUint(0, 1);
236
+ if (opts.forwardPayload) {
237
+ bodyMsg = bodyMsg.storeSlice(opts.forwardPayload);
238
+ }
239
+ await provider.internal(via, {
240
+ value: value,
241
+ sendMode: core_1.SendMode.PAY_GAS_SEPARATELY,
242
+ body: bodyMsg.endCell()
243
+ });
244
+ }
245
+ async sendInitialize(provider, via, opts) {
246
+ await provider.internal(via, {
247
+ value: opts.value,
248
+ sendMode: core_1.SendMode.PAY_GAS_SEPARATELY,
249
+ body: (0, core_1.beginCell)()
250
+ .storeUint(Pool.Op.Initialize, 32)
251
+ .storeUint(opts.queryID ?? 0, 64)
252
+ .endCell(),
253
+ });
254
+ }
255
+ async sendAccrueInterest(provider, via, opts) {
256
+ await provider.internal(via, {
257
+ value: opts.value,
258
+ sendMode: core_1.SendMode.PAY_GAS_SEPARATELY,
259
+ body: (0, core_1.beginCell)()
260
+ .storeUint(Pool.Op.AccrueInterest, 32)
261
+ .storeUint(opts.queryID ?? 0, 64)
262
+ .storeAddress(opts.asset)
263
+ .endCell(),
264
+ });
265
+ }
266
+ async sendExecuteAction(provider, via, value, opts) {
267
+ return await provider.internal(via, {
268
+ value: value,
269
+ sendMode: core_1.SendMode.PAY_GAS_SEPARATELY,
270
+ body: (0, core_1.beginCell)()
271
+ .storeUint(Pool.Op.ExecuteAction, 32)
272
+ .storeUint(opts.queryID ?? 0, 64)
273
+ .storeBuilder(opts.forwardPayload)
274
+ .endCell(),
275
+ });
276
+ }
277
+ async sendSetOracle(provider, via, value, opts) {
278
+ await provider.internal(via, {
279
+ value: value,
280
+ sendMode: core_1.SendMode.PAY_GAS_SEPARATELY,
281
+ body: Pool.createSetOracleMsgBody(opts),
282
+ });
283
+ }
284
+ async sendSetOracleConfig(provider, via, value, opts) {
285
+ await provider.internal(via, {
286
+ value: value,
287
+ sendMode: core_1.SendMode.PAY_GAS_SEPARATELY,
288
+ body: Pool.createSetOracleConfigMsgBody(opts),
289
+ });
290
+ }
291
+ async sendAddAsset(provider, via, value, opts) {
292
+ await provider.internal(via, {
293
+ value: value,
294
+ sendMode: core_1.SendMode.PAY_GAS_SEPARATELY,
295
+ body: Pool.createAddAssetMsgBody(opts),
296
+ });
297
+ }
298
+ async sendUpgradeCode(provider, via, value, opts) {
299
+ await provider.internal(via, {
300
+ value: value,
301
+ sendMode: core_1.SendMode.PAY_GAS_SEPARATELY,
302
+ body: Pool.createUpgradeCodeMsgBody(opts),
303
+ });
304
+ }
305
+ async sendSetGasFee(provider, via, value, opts) {
306
+ await provider.internal(via, {
307
+ value: value,
308
+ sendMode: core_1.SendMode.PAY_GAS_SEPARATELY,
309
+ body: Pool.createSetGasFeeMsgBody(opts),
310
+ });
311
+ }
312
+ async sendProvideAsset(provider, via, value, opts) {
313
+ await provider.internal(via, {
314
+ value: value,
315
+ sendMode: core_1.SendMode.PAY_GAS_SEPARATELY,
316
+ body: (0, core_1.beginCell)()
317
+ .storeUint(Pool.Op.ProvideAsset, 32)
318
+ .storeUint(opts.queryID ?? 0, 64)
319
+ .storeAddress(opts.asset)
320
+ .endCell(),
321
+ });
322
+ }
323
+ async sendSetProtocolFeeRate(provider, via, value, opts) {
324
+ await provider.internal(via, {
325
+ value: value,
326
+ sendMode: core_1.SendMode.PAY_GAS_SEPARATELY,
327
+ body: Pool.createSetProtocolFeeRateMsgBody(opts),
328
+ });
329
+ }
330
+ async sendSetMaxLoanLeverageRatio(provider, via, value, opts) {
331
+ await provider.internal(via, {
332
+ value: value,
333
+ sendMode: core_1.SendMode.PAY_GAS_SEPARATELY,
334
+ body: Pool.createSetMaxLoanLeverageRatioMsgBody(opts),
335
+ });
336
+ }
337
+ async sendSetMaxLoanVarRatio(provider, via, value, opts) {
338
+ await provider.internal(via, {
339
+ value: value,
340
+ sendMode: core_1.SendMode.PAY_GAS_SEPARATELY,
341
+ body: Pool.createSetMaxLoanVarRatioMsgBody(opts),
342
+ });
343
+ }
344
+ async sendSetLiquidateLeverageRatio(provider, via, value, opts) {
345
+ await provider.internal(via, {
346
+ value: value,
347
+ sendMode: core_1.SendMode.PAY_GAS_SEPARATELY,
348
+ body: Pool.createSetLiquidateLeverageRatioMsgBody(opts),
349
+ });
350
+ }
351
+ async sendSetLiquidateVarRatio(provider, via, value, opts) {
352
+ await provider.internal(via, {
353
+ value: value,
354
+ sendMode: core_1.SendMode.PAY_GAS_SEPARATELY,
355
+ body: Pool.createSetLiquidateVarRatioMsgBody(opts),
356
+ });
357
+ }
358
+ async sendSetLiquidateCloseRatio(provider, via, value, opts) {
359
+ await provider.internal(via, {
360
+ value: value,
361
+ sendMode: core_1.SendMode.PAY_GAS_SEPARATELY,
362
+ body: Pool.createSetLiquidateCloseRatioMsgBody(opts),
363
+ });
364
+ }
365
+ async sendSetWalletAddress(provider, via, value, opts) {
366
+ await provider.internal(via, {
367
+ value: value,
368
+ sendMode: core_1.SendMode.PAY_GAS_SEPARATELY,
369
+ body: Pool.createSetWalletAddressMsgBody(opts),
370
+ });
371
+ }
372
+ async sendCollectFee(provider, via, value, opts) {
373
+ await provider.internal(via, {
374
+ value: value,
375
+ sendMode: core_1.SendMode.PAY_GAS_SEPARATELY,
376
+ body: Pool.createCollectFeeMsgBody(opts),
377
+ });
378
+ }
379
+ async sendSetIrmConfig(provider, via, value, opts) {
380
+ await provider.internal(via, {
381
+ value: value,
382
+ sendMode: core_1.SendMode.PAY_GAS_SEPARATELY,
383
+ body: Pool.createSetIrmConfigMsgBody(opts),
384
+ });
385
+ }
386
+ async sendSetLiquidateionIncentiveRate(provider, via, value, opts) {
387
+ await provider.internal(via, {
388
+ value: value,
389
+ sendMode: core_1.SendMode.PAY_GAS_SEPARATELY,
390
+ body: Pool.createSetLiquidationIncentiveRateMsgBody(opts),
391
+ });
392
+ }
393
+ async sendSetIsBorrowable(provider, via, value, opts) {
394
+ await provider.internal(via, {
395
+ value: value,
396
+ sendMode: core_1.SendMode.PAY_GAS_SEPARATELY,
397
+ body: Pool.createSetIsBorrowableMsgBody(opts),
398
+ });
399
+ }
400
+ async sendSetIsCollateral(provider, via, value, opts) {
401
+ await provider.internal(via, {
402
+ value: value,
403
+ sendMode: core_1.SendMode.PAY_GAS_SEPARATELY,
404
+ body: Pool.createSetIsCollateralMsgBody(opts),
405
+ });
406
+ }
407
+ async sendSetNewAccountCode(provider, via, value, opts) {
408
+ await provider.internal(via, {
409
+ value: value,
410
+ sendMode: core_1.SendMode.PAY_GAS_SEPARATELY,
411
+ body: Pool.createSetNewAccountCodeMsgBody(opts),
412
+ });
413
+ }
414
+ async sendSetVersion(provider, via, value, opts) {
415
+ await provider.internal(via, {
416
+ value: value,
417
+ sendMode: core_1.SendMode.PAY_GAS_SEPARATELY,
418
+ body: Pool.createSetVersionMsgBody(opts),
419
+ });
420
+ }
421
+ async getState(provider) {
422
+ return await provider.getState();
423
+ }
424
+ async getPoolData(provider) {
425
+ const state = await provider.getState();
426
+ if (state.state.type !== "active")
427
+ throw "not active";
428
+ if (!state.state.data)
429
+ throw "not active";
430
+ const data = core_1.Cell.fromBoc(state.state.data)[0].beginParse();
431
+ const initialized = data.loadBit();
432
+ const id = data.loadCoins();
433
+ const owner = data.loadAddressAny();
434
+ const feeConfigurer = data.loadAddressAny();
435
+ const protocolFeeRate = data.loadUintBig(14);
436
+ const oracle = data.loadAddressAny();
437
+ const oracleConfig = data.loadRef();
438
+ const maxLoanLeverageRatio = data.loadUintBig(20);
439
+ const maxLoanVarRatio = data.loadUintBig(14);
440
+ const liquidateLeverageRatio = data.loadUintBig(20);
441
+ const liquidateVarRatio = data.loadUintBig(14);
442
+ const minLiquidateCloseRatio = data.loadUintBig(14);
443
+ const maxLiquidateCloseRatio = data.loadUintBig(14);
444
+ const gasCell = data.loadRef();
445
+ const assetsDict = data.loadDict(core_1.Dictionary.Keys.Address(), Pool.Dictiory.Values.Asset());
446
+ const assets = assetsDict.keys().reduce((acc, cur) => {
447
+ acc[cur.toString()] = assetsDict.get(cur);
448
+ return acc;
449
+ }, {});
450
+ return {
451
+ initialized: !!initialized,
452
+ id,
453
+ owner,
454
+ feeConfigurer,
455
+ protocolFeeRate,
456
+ oracle,
457
+ oracleConfig,
458
+ maxLoanLeverageRatio,
459
+ maxLoanVarRatio,
460
+ liquidateLeverageRatio,
461
+ liquidateVarRatio,
462
+ minLiquidateCloseRatio,
463
+ maxLiquidateCloseRatio,
464
+ assets,
465
+ gasCell,
466
+ getAsset: (value) => {
467
+ if (value instanceof core_1.Address) {
468
+ return assets[value.toString()];
469
+ }
470
+ else {
471
+ return assets[value.address.toString()];
472
+ }
473
+ }
474
+ };
475
+ }
476
+ async getPoolDataWithGetMethod(provider) {
477
+ const result = await provider.get('get_pool_data', []);
478
+ const initialized = result.stack.readNumber();
479
+ const id = result.stack.readBigNumber();
480
+ const owner = result.stack.readAddressOpt();
481
+ const feeConfigurer = result.stack.readAddressOpt();
482
+ const protocolFeeRate = result.stack.readBigNumber();
483
+ const oracle = result.stack.readAddressOpt();
484
+ const oracleConfig = result.stack.readCellOpt();
485
+ const maxLoanLeverageRatio = result.stack.readBigNumber();
486
+ const maxLoanVarRatio = result.stack.readBigNumber();
487
+ const liquidateLeverageRatio = result.stack.readBigNumber();
488
+ const liquidateVarRatio = result.stack.readBigNumber();
489
+ const minLiquidateCloseRatio = result.stack.readBigNumber();
490
+ const maxLiquidateCloseRatio = result.stack.readBigNumber();
491
+ const _assets = result.stack.readTupleOpt();
492
+ const gasCell = result.stack.readCellOpt();
493
+ const accountCode = result.stack.readCell();
494
+ // ============== parse assets ==============
495
+ let assets = {};
496
+ if (_assets) {
497
+ while (_assets.remaining) {
498
+ const result = _assets.readTuple();
499
+ const lastUpdatedTime = result.readBigNumber();
500
+ const storedInterestRate = result.readBigNumber();
501
+ const collectedProtocolFee = result.readBigNumber();
502
+ const cash = result.readBigNumber();
503
+ const totalSupply = result.readBigNumber();
504
+ const totalBorrow = result.readBigNumber();
505
+ const supplyShare = result.readBigNumber();
506
+ const borrowShare = result.readBigNumber();
507
+ const wallet = result.readAddressOpt();
508
+ const irm = result.readAddressOpt();
509
+ const _irmData = result.readCellOpt();
510
+ const irmData = _irmData ? JumpIRM_1.JumpIRM.parseJumpIRMConfig(_irmData) : null;
511
+ const riskFactor = result.readBigNumber();
512
+ const liquidationIncentive = result.readBigNumber();
513
+ const isCollateral = result.readBigNumber() === 0n ? false : true;
514
+ const isBorrowable = result.readBigNumber() === 0n ? false : true;
515
+ const assetAddress = result.readAddress();
516
+ assets[assetAddress.toString()] = {
517
+ wallet,
518
+ irm,
519
+ irmData,
520
+ riskFactor,
521
+ liquidationIncentive,
522
+ isCollateral,
523
+ isBorrowable,
524
+ lastUpdatedTime,
525
+ storedInterestRate,
526
+ collectedProtocolFee,
527
+ cash,
528
+ totalSupply,
529
+ totalBorrow,
530
+ supplyShare,
531
+ borrowShare
532
+ };
533
+ }
534
+ }
535
+ return {
536
+ initialized: !!initialized,
537
+ id,
538
+ owner,
539
+ feeConfigurer,
540
+ protocolFeeRate,
541
+ oracle,
542
+ oracleConfig,
543
+ maxLoanLeverageRatio,
544
+ maxLoanVarRatio,
545
+ liquidateLeverageRatio,
546
+ liquidateVarRatio,
547
+ minLiquidateCloseRatio,
548
+ maxLiquidateCloseRatio,
549
+ assets,
550
+ gasCell,
551
+ getAsset: (value) => {
552
+ if (value instanceof core_1.Address) {
553
+ return assets[value.toString()];
554
+ }
555
+ else {
556
+ return assets[value.address.toString()];
557
+ }
558
+ }
559
+ };
560
+ }
561
+ async getAccountAddress(provider, owner) {
562
+ const tis = {
563
+ type: 'slice',
564
+ cell: (0, core_1.beginCell)().storeAddress(owner).endCell(),
565
+ };
566
+ const result = await provider.get('get_account_address', [tis]);
567
+ return result.stack.readAddress();
568
+ }
569
+ // ============== PAYLOAD GENERATION METHODS ==============
570
+ static createSetOwnerMsgBody(opts) {
571
+ return (0, core_1.beginCell)()
572
+ .storeUint(Pool.Op.SetOwner, 32)
573
+ .storeUint(opts.queryID ?? 0, 64)
574
+ .storeAddress(opts.newOwner)
575
+ .endCell();
576
+ }
577
+ static parseSetOwnerMsgBody(cell) {
578
+ const slice = cell.beginParse();
579
+ const op = slice.loadUint(32);
580
+ const queryID = slice.loadUint(64);
581
+ const newOwner = slice.loadAddress();
582
+ return { op, queryID, newOwner };
583
+ }
584
+ static createSetFeeConfigurerMsgBody(opts) {
585
+ return (0, core_1.beginCell)()
586
+ .storeUint(Pool.Op.SetFeeConfigurer, 32)
587
+ .storeUint(opts.queryID ?? 0, 64)
588
+ .storeAddress(opts.newFeeConfigurer)
589
+ .endCell();
590
+ }
591
+ static parseSetFeeConfigurerMsgBody(cell) {
592
+ const slice = cell.beginParse();
593
+ const op = slice.loadUint(32);
594
+ const queryID = slice.loadUint(64);
595
+ const newFeeConfigurer = slice.loadAddress();
596
+ return { op, queryID, newFeeConfigurer };
597
+ }
598
+ static createSetRiskFactorMsgBody(opts) {
599
+ return (0, core_1.beginCell)()
600
+ .storeUint(Pool.Op.SetRiskFactor, 32)
601
+ .storeUint(opts.queryID ?? 0, 64)
602
+ .storeAddress(opts.asset)
603
+ .storeUint(opts.riskFactor, 14)
604
+ .endCell();
605
+ }
606
+ static parseSetRiskFactorMsgBody(cell) {
607
+ const slice = cell.beginParse();
608
+ const op = slice.loadUint(32);
609
+ const queryID = slice.loadUint(64);
610
+ const asset = slice.loadAddress();
611
+ const riskFactor = BigInt(slice.loadUint(14));
612
+ return { op, queryID, asset, riskFactor };
613
+ }
614
+ static createSetOracleMsgBody(opts) {
615
+ return (0, core_1.beginCell)()
616
+ .storeUint(Pool.Op.SetOracle, 32)
617
+ .storeUint(opts.queryID ?? 0, 64)
618
+ .storeAddress(opts.oracle)
619
+ .endCell();
620
+ }
621
+ static parseSetOracleMsgBody(cell) {
622
+ const slice = cell.beginParse();
623
+ const op = slice.loadUint(32);
624
+ const queryID = slice.loadUint(64);
625
+ const oracle = slice.loadAddress();
626
+ return { op, queryID, oracle };
627
+ }
628
+ static createSetOracleConfigMsgBody(opts) {
629
+ return (0, core_1.beginCell)()
630
+ .storeUint(Pool.Op.SetOracleConfig, 32)
631
+ .storeUint(opts.queryID ?? 0, 64)
632
+ .storeRef(opts.oracleConfig)
633
+ .endCell();
634
+ }
635
+ static parseSetOracleConfigMsgBody(cell) {
636
+ const slice = cell.beginParse();
637
+ const op = slice.loadUint(32);
638
+ const queryID = slice.loadUint(64);
639
+ const oracleConfig = slice.loadRef();
640
+ return { op, queryID, oracleConfig };
641
+ }
642
+ static createSetGasFeeMsgBody(opts) {
643
+ return (0, core_1.beginCell)()
644
+ .storeUint(Pool.Op.SetGasFee, 32)
645
+ .storeUint(opts.queryID ?? 0, 64)
646
+ .storeCoins(opts.supplyFee)
647
+ .storeCoins(opts.withdrawFee)
648
+ .storeCoins(opts.borrowFee)
649
+ .storeCoins(opts.repayFee)
650
+ .storeCoins(opts.liquidateFee)
651
+ .storeCoins(opts.asuFee)
652
+ .storeCoins(opts.jtFee)
653
+ .storeCoins(opts.ocFee)
654
+ .storeCoins(opts.iruFee)
655
+ .endCell();
656
+ }
657
+ static parseSetGasFeeMsgBody(cell) {
658
+ const slice = cell.beginParse();
659
+ const op = slice.loadUint(32);
660
+ const queryID = slice.loadUint(64);
661
+ const supplyFee = slice.loadCoins();
662
+ const withdrawFee = slice.loadCoins();
663
+ const borrowFee = slice.loadCoins();
664
+ const repayFee = slice.loadCoins();
665
+ const liquidateFee = slice.loadCoins();
666
+ const asuFee = slice.loadCoins();
667
+ const jtFee = slice.loadCoins();
668
+ const ocFee = slice.loadCoins();
669
+ const iruFee = slice.loadCoins();
670
+ return { op, queryID, supplyFee, withdrawFee, borrowFee, repayFee, liquidateFee, asuFee, jtFee, ocFee, iruFee };
671
+ }
672
+ static createSetProtocolFeeRateMsgBody(opts) {
673
+ return (0, core_1.beginCell)()
674
+ .storeUint(Pool.Op.SetProtocolFeeRate, 32)
675
+ .storeUint(opts.queryID ?? 0, 64)
676
+ .storeUint(opts.rate, 14)
677
+ .endCell();
678
+ }
679
+ static parseSetProtocolFeeRateMsgBody(cell) {
680
+ const slice = cell.beginParse();
681
+ const op = slice.loadUint(32);
682
+ const queryID = slice.loadUint(64);
683
+ const rate = BigInt(slice.loadUint(14));
684
+ return { op, queryID, rate };
685
+ }
686
+ static createAddAssetMsgBody(opts) {
687
+ return (0, core_1.beginCell)()
688
+ .storeUint(Pool.Op.AddAsset, 32)
689
+ .storeUint(opts.queryID ?? 0, 64)
690
+ .storeAddress(opts.asset)
691
+ .storeRef(opts.assetConfig)
692
+ .endCell();
693
+ }
694
+ static parseAddAssetMsgBody(cell) {
695
+ const slice = cell.beginParse();
696
+ const op = slice.loadUint(32);
697
+ const queryID = slice.loadUint(64);
698
+ const asset = slice.loadAddress();
699
+ const assetConfig = slice.loadRef();
700
+ return { op, queryID, asset, assetConfig };
701
+ }
702
+ static createSetIsBorrowableMsgBody(opts) {
703
+ return (0, core_1.beginCell)()
704
+ .storeUint(Pool.Op.SetIsBorrowable, 32)
705
+ .storeUint(opts.queryID ?? 0, 64)
706
+ .storeAddress(opts.assetAddress)
707
+ .storeUint(opts.isBorrowable ? 1 : 0, 1)
708
+ .endCell();
709
+ }
710
+ static parseSetIsBorrowableMsgBody(cell) {
711
+ const slice = cell.beginParse();
712
+ const op = slice.loadUint(32);
713
+ const queryID = slice.loadUint(64);
714
+ const assetAddress = slice.loadAddress();
715
+ const isBorrowable = slice.loadUint(1) === 1;
716
+ return { op, queryID, assetAddress, isBorrowable };
717
+ }
718
+ static createSetIsCollateralMsgBody(opts) {
719
+ return (0, core_1.beginCell)()
720
+ .storeUint(Pool.Op.SetIsCollateral, 32)
721
+ .storeUint(opts.queryID ?? 0, 64)
722
+ .storeAddress(opts.assetAddress)
723
+ .storeUint(opts.isCollateral ? 1 : 0, 1)
724
+ .endCell();
725
+ }
726
+ static parseSetIsCollateralMsgBody(cell) {
727
+ const slice = cell.beginParse();
728
+ const op = slice.loadUint(32);
729
+ const queryID = slice.loadUint(64);
730
+ const assetAddress = slice.loadAddress();
731
+ const isCollateral = slice.loadUint(1) === 1;
732
+ return { op, queryID, assetAddress, isCollateral };
733
+ }
734
+ static createSetNewAccountCodeMsgBody(opts) {
735
+ return (0, core_1.beginCell)()
736
+ .storeUint(Pool.Op.SetNewAccountCode, 32)
737
+ .storeUint(opts.queryID ?? 0, 64)
738
+ .storeRef(opts.newAccountCode)
739
+ .endCell();
740
+ }
741
+ static parseSetNewAccountCodeMsgBody(cell) {
742
+ const slice = cell.beginParse();
743
+ const op = slice.loadUint(32);
744
+ const queryID = slice.loadUint(64);
745
+ const newAccountCode = slice.loadRef();
746
+ return { op, queryID, newAccountCode };
747
+ }
748
+ static createSetVersionMsgBody(opts) {
749
+ return (0, core_1.beginCell)()
750
+ .storeUint(Pool.Op.SetVersion, 32)
751
+ .storeUint(opts.queryID ?? 0, 64)
752
+ .storeUint(opts.version, 32)
753
+ .endCell();
754
+ }
755
+ static parseSetVersionMsgBody(cell) {
756
+ const slice = cell.beginParse();
757
+ const op = slice.loadUint(32);
758
+ const queryID = slice.loadUint(64);
759
+ const version = slice.loadUint(32);
760
+ return { op, queryID, version };
761
+ }
762
+ static createSetLiquidationIncentiveRateMsgBody(opts) {
763
+ return (0, core_1.beginCell)()
764
+ .storeUint(Pool.Op.SetLiquidationIncentiveRate, 32)
765
+ .storeUint(opts.queryID ?? 0, 64)
766
+ .storeAddress(opts.assetAddress)
767
+ .storeUint(opts.lir, 14)
768
+ .endCell();
769
+ }
770
+ static parseSetLiquidationIncentiveRateMsgBody(cell) {
771
+ const slice = cell.beginParse();
772
+ const op = slice.loadUint(32);
773
+ const queryID = slice.loadUint(64);
774
+ const assetAddress = slice.loadAddress();
775
+ const lir = BigInt(slice.loadUint(14));
776
+ return { op, queryID, assetAddress, lir };
777
+ }
778
+ static createSetMaxLoanLeverageRatioMsgBody(opts) {
779
+ return (0, core_1.beginCell)()
780
+ .storeUint(Pool.Op.SetMaxLoanLeverageRatio, 32)
781
+ .storeUint(opts.queryID ?? 0, 64)
782
+ .storeUint(opts.rate, 20)
783
+ .endCell();
784
+ }
785
+ static parseSetMaxLoanLeverageRatioMsgBody(cell) {
786
+ const slice = cell.beginParse();
787
+ const op = slice.loadUint(32);
788
+ const queryID = slice.loadUint(64);
789
+ const rate = BigInt(slice.loadUint(20));
790
+ return { op, queryID, rate };
791
+ }
792
+ static createSetMaxLoanVarRatioMsgBody(opts) {
793
+ return (0, core_1.beginCell)()
794
+ .storeUint(Pool.Op.SetMaxLoanVarRatio, 32)
795
+ .storeUint(opts.queryID ?? 0, 64)
796
+ .storeUint(opts.rate, 14)
797
+ .endCell();
798
+ }
799
+ static parseSetMaxLoanVarRatioMsgBody(cell) {
800
+ const slice = cell.beginParse();
801
+ const op = slice.loadUint(32);
802
+ const queryID = slice.loadUint(64);
803
+ const rate = BigInt(slice.loadUint(14));
804
+ return { op, queryID, rate };
805
+ }
806
+ static createSetLiquidateLeverageRatioMsgBody(opts) {
807
+ return (0, core_1.beginCell)()
808
+ .storeUint(Pool.Op.SetLiquidateLeverageRatio, 32)
809
+ .storeUint(opts.queryID ?? 0, 64)
810
+ .storeUint(opts.rate, 20)
811
+ .endCell();
812
+ }
813
+ static parseSetLiquidateLeverageRatioMsgBody(cell) {
814
+ const slice = cell.beginParse();
815
+ const op = slice.loadUint(32);
816
+ const queryID = slice.loadUint(64);
817
+ const rate = BigInt(slice.loadUint(20));
818
+ return { op, queryID, rate };
819
+ }
820
+ static createSetLiquidateVarRatioMsgBody(opts) {
821
+ return (0, core_1.beginCell)()
822
+ .storeUint(Pool.Op.SetLiquidateVarRatio, 32)
823
+ .storeUint(opts.queryID ?? 0, 64)
824
+ .storeUint(opts.rate, 14)
825
+ .endCell();
826
+ }
827
+ static parseSetLiquidateVarRatioMsgBody(cell) {
828
+ const slice = cell.beginParse();
829
+ const op = slice.loadUint(32);
830
+ const queryID = slice.loadUint(64);
831
+ const rate = BigInt(slice.loadUint(14));
832
+ return { op, queryID, rate };
833
+ }
834
+ static createSetLiquidateCloseRatioMsgBody(opts) {
835
+ return (0, core_1.beginCell)()
836
+ .storeUint(Pool.Op.SetLiquidateCloseRatio, 32)
837
+ .storeUint(opts.queryID ?? 0, 64)
838
+ .storeUint(opts.minCloseRatio, 14)
839
+ .storeUint(opts.maxCloseRatio, 14)
840
+ .endCell();
841
+ }
842
+ static parseSetLiquidateCloseRatioMsgBody(cell) {
843
+ const slice = cell.beginParse();
844
+ const op = slice.loadUint(32);
845
+ const queryID = slice.loadUint(64);
846
+ const minCloseRatio = BigInt(slice.loadUint(14));
847
+ const maxCloseRatio = BigInt(slice.loadUint(14));
848
+ return { op, queryID, minCloseRatio, maxCloseRatio };
849
+ }
850
+ static createSetIrmConfigMsgBody(opts) {
851
+ return (0, core_1.beginCell)()
852
+ .storeUint(Pool.Op.SetIrmConfig, 32)
853
+ .storeUint(opts.queryID ?? 0, 64)
854
+ .storeAddress(opts.assetAddress)
855
+ .storeRef(opts.irmConfig)
856
+ .endCell();
857
+ }
858
+ static parseSetIrmConfigMsgBody(cell) {
859
+ const slice = cell.beginParse();
860
+ const op = slice.loadUint(32);
861
+ const queryID = slice.loadUint(64);
862
+ const assetAddress = slice.loadAddress();
863
+ const irmConfig = slice.loadRef();
864
+ return { op, queryID, assetAddress, irmConfig };
865
+ }
866
+ static createSetWalletAddressMsgBody(opts) {
867
+ return (0, core_1.beginCell)()
868
+ .storeUint(Pool.Op.SetWalletAddress, 32)
869
+ .storeUint(opts.queryID ?? 0, 64)
870
+ .storeAddress(opts.asset)
871
+ .storeAddress(opts.wallet)
872
+ .endCell();
873
+ }
874
+ static parseSetWalletAddressMsgBody(cell) {
875
+ const slice = cell.beginParse();
876
+ const op = slice.loadUint(32);
877
+ const queryID = slice.loadUint(64);
878
+ const asset = slice.loadAddress();
879
+ const wallet = slice.loadAddress();
880
+ return { op, queryID, asset, wallet };
881
+ }
882
+ static createCollectFeeMsgBody(opts) {
883
+ return (0, core_1.beginCell)()
884
+ .storeUint(Pool.Op.CollectFee, 32)
885
+ .storeUint(opts.queryID ?? 0, 64)
886
+ .storeAddress(opts.assetAddress)
887
+ .storeCoins(opts.amount)
888
+ .storeAddress(opts.recipientAddress)
889
+ .endCell();
890
+ }
891
+ static parseCollectFeeMsgBody(cell) {
892
+ const slice = cell.beginParse();
893
+ const op = slice.loadUint(32);
894
+ const queryID = slice.loadUint(64);
895
+ const assetAddress = slice.loadAddress();
896
+ const amount = slice.loadCoins();
897
+ const recipientAddress = slice.loadAddress();
898
+ return { op, queryID, assetAddress, amount, recipientAddress };
899
+ }
900
+ static createUpgradeCodeMsgBody(opts) {
901
+ return (0, core_1.beginCell)()
902
+ .storeUint(Pool.Op.UpgradeCode, 32)
903
+ .storeUint(opts.queryID ?? 0, 64)
904
+ .storeRef(opts.newCode)
905
+ .endCell();
906
+ }
907
+ static parseUpgradeCodeMsgBody(cell) {
908
+ const slice = cell.beginParse();
909
+ const op = slice.loadUint(32);
910
+ const queryID = slice.loadUint(64);
911
+ const newCode = slice.loadRef();
912
+ return { op, queryID, newCode };
913
+ }
914
+ static Dictiory = {
915
+ Values: {
916
+ Asset: () => ({
917
+ serialize: (src, builder) => { },
918
+ parse: (src) => {
919
+ const lastUpdatedTime = src.loadUintBig(40);
920
+ const storedInterestRate = src.loadCoins();
921
+ const collectedProtocolFee = src.loadCoins();
922
+ const cash = src.loadCoins();
923
+ const totalSupply = src.loadCoins();
924
+ const totalBorrow = src.loadCoins();
925
+ const supplyShare = src.loadCoins();
926
+ const borrowShare = src.loadCoins();
927
+ const config = src.loadRef().beginParse();
928
+ const wallet = config.loadAddressAny();
929
+ const irm = config.loadAddressAny();
930
+ const _irmData = config.loadRef();
931
+ const irmData = _irmData ? JumpIRM_1.JumpIRM.parseJumpIRMConfig(_irmData) : null;
932
+ const riskFactor = config.loadUintBig(14);
933
+ const liquidationIncentive = config.loadUintBig(14);
934
+ const isCollateral = config.loadBit();
935
+ const isBorrowable = config.loadBit();
936
+ return {
937
+ wallet,
938
+ irm,
939
+ irmData,
940
+ riskFactor,
941
+ liquidationIncentive,
942
+ isCollateral,
943
+ isBorrowable,
944
+ lastUpdatedTime,
945
+ storedInterestRate,
946
+ collectedProtocolFee,
947
+ cash,
948
+ totalSupply,
949
+ totalBorrow,
950
+ supplyShare,
951
+ borrowShare
952
+ };
953
+ }
954
+ })
955
+ }
956
+ };
957
+ static getOpName(opCode) {
958
+ const opEntries = Object.entries(Pool.Op);
959
+ const opMap = Object.fromEntries(opEntries);
960
+ const opName = Object.keys(opMap).find(key => opMap[key] === opCode);
961
+ return opName || `UnknownOp(${opCode.toString(16)})`;
962
+ }
963
+ static getErrorName(errorCode) {
964
+ const errorEntries = Object.entries(Pool.Error);
965
+ const errorMap = Object.fromEntries(errorEntries);
966
+ const errorName = Object.keys(errorMap).find(key => errorMap[key] === errorCode);
967
+ return errorName || `UnknownError(${errorCode})`;
968
+ }
969
+ // Get available pool actions that have createXXXMsgBody methods
970
+ static getAvailableActions() {
971
+ const availableActions = [
972
+ 'SetOwner',
973
+ 'SetFeeConfigurer',
974
+ 'SetRiskFactor',
975
+ 'SetOracle',
976
+ 'SetOracleConfig',
977
+ 'SetGasFee',
978
+ 'SetProtocolFeeRate',
979
+ 'AddAsset',
980
+ 'SetIsBorrowable',
981
+ 'SetLiquidationIncentiveRate',
982
+ 'SetMaxLoanLeverageRatio',
983
+ 'SetMaxLoanVarRatio',
984
+ 'SetLiquidateLeverageRatio',
985
+ 'SetLiquidateVarRatio',
986
+ 'SetLiquidateCloseRatio',
987
+ 'SetIrmConfig',
988
+ 'SetWalletAddress',
989
+ 'CollectFee',
990
+ 'UpgradeCode'
991
+ ];
992
+ return availableActions;
993
+ }
994
+ // Get available pool actions (keeping original PascalCase)
995
+ static getAvailableActionsOriginal() {
996
+ const availableActions = [
997
+ 'SetOwner',
998
+ 'SetFeeConfigurer',
999
+ 'SetRiskFactor',
1000
+ 'SetOracle',
1001
+ 'SetOracleConfig',
1002
+ 'SetGasFee',
1003
+ 'SetProtocolFeeRate',
1004
+ 'AddAsset',
1005
+ 'SetIsBorrowable',
1006
+ 'SetLiquidationIncentiveRate',
1007
+ 'SetMaxLoanLeverageRatio',
1008
+ 'SetMaxLoanVarRatio',
1009
+ 'SetLiquidateLeverageRatio',
1010
+ 'SetLiquidateVarRatio',
1011
+ 'SetLiquidateCloseRatio',
1012
+ 'SetIrmConfig',
1013
+ 'SetWalletAddress',
1014
+ 'CollectFee',
1015
+ 'UpgradeCode',
1016
+ 'SetIsCollateral',
1017
+ 'SetNewAccountCode',
1018
+ 'SetVersion'
1019
+ ];
1020
+ return availableActions;
1021
+ }
1022
+ }
1023
+ exports.Pool = Pool;