@affluent-org/sdk 0.0.1

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 (218) hide show
  1. package/.prettierrc +11 -0
  2. package/Refactoring.md +548 -0
  3. package/dist/_compiled/Account.compiled.json +1 -0
  4. package/dist/_compiled/Receipt.compiled.json +1 -0
  5. package/dist/_compiled/WTONWallet.compiled.json +1 -0
  6. package/dist/_compiled/index.d.ts +4 -0
  7. package/dist/_compiled/index.js +12 -0
  8. package/dist/affluent.d.ts +14 -0
  9. package/dist/affluent.js +20 -0
  10. package/dist/constants/constants.d.ts +2 -0
  11. package/dist/constants/constants.js +5 -0
  12. package/dist/constants/contracts.d.ts +9 -0
  13. package/dist/constants/contracts.js +18 -0
  14. package/dist/context.d.ts +43 -0
  15. package/dist/context.js +90 -0
  16. package/dist/contracts/common/type.d.ts +16 -0
  17. package/dist/contracts/common/type.js +2 -0
  18. package/dist/contracts/common/utils.d.ts +3 -0
  19. package/dist/contracts/common/utils.js +16 -0
  20. package/dist/contracts/core/account/index.d.ts +38 -0
  21. package/dist/contracts/core/account/index.js +128 -0
  22. package/dist/contracts/core/account/type.d.ts +18 -0
  23. package/dist/contracts/core/account/type.js +2 -0
  24. package/dist/contracts/core/pool/index.d.ts +149 -0
  25. package/dist/contracts/core/pool/index.js +379 -0
  26. package/dist/contracts/core/pool/serializer.d.ts +15 -0
  27. package/dist/contracts/core/pool/serializer.js +307 -0
  28. package/dist/contracts/core/pool/type.d.ts +136 -0
  29. package/dist/contracts/core/pool/type.js +2 -0
  30. package/dist/contracts/dedust-farm/MockDedustFarm.d.ts +41 -0
  31. package/dist/contracts/dedust-farm/MockDedustFarm.js +79 -0
  32. package/dist/contracts/external/tonstaker.d.ts +18 -0
  33. package/dist/contracts/external/tonstaker.js +26 -0
  34. package/dist/contracts/factory/factory.d.ts +24 -0
  35. package/dist/contracts/factory/factory.js +58 -0
  36. package/dist/contracts/factory/type.d.ts +11 -0
  37. package/dist/contracts/factory/type.js +2 -0
  38. package/dist/contracts/farm/distributor.d.ts +43 -0
  39. package/dist/contracts/farm/distributor.js +83 -0
  40. package/dist/contracts/farm/receipt.d.ts +40 -0
  41. package/dist/contracts/farm/receipt.js +68 -0
  42. package/dist/contracts/irm/jump-irm/serializer.d.ts +4 -0
  43. package/dist/contracts/irm/jump-irm/serializer.js +26 -0
  44. package/dist/contracts/irm/jump-irm/type.d.ts +8 -0
  45. package/dist/contracts/irm/jump-irm/type.js +2 -0
  46. package/dist/contracts/jetton/jetton-minter.d.ts +23 -0
  47. package/dist/contracts/jetton/jetton-minter.js +46 -0
  48. package/dist/contracts/jetton/jetton-wallet.d.ts +67 -0
  49. package/dist/contracts/jetton/jetton-wallet.js +119 -0
  50. package/dist/contracts/jetton/type.d.ts +7 -0
  51. package/dist/contracts/jetton/type.js +2 -0
  52. package/dist/contracts/liquid_token/dedust/minter.d.ts +56 -0
  53. package/dist/contracts/liquid_token/dedust/minter.js +112 -0
  54. package/dist/contracts/liquid_token/dedust/wallet.d.ts +127 -0
  55. package/dist/contracts/liquid_token/dedust/wallet.js +213 -0
  56. package/dist/contracts/liquid_token/stonfi/LFStonfiJettonMinter.d.ts +53 -0
  57. package/dist/contracts/liquid_token/stonfi/LFStonfiJettonMinter.js +110 -0
  58. package/dist/contracts/liquid_token/stonfi/LFStonfiJettonWallet.d.ts +169 -0
  59. package/dist/contracts/liquid_token/stonfi/LFStonfiJettonWallet.js +288 -0
  60. package/dist/contracts/oracle/composite-onchain-oracle/index.d.ts +108 -0
  61. package/dist/contracts/oracle/composite-onchain-oracle/index.js +185 -0
  62. package/dist/contracts/oracle/parser.d.ts +7 -0
  63. package/dist/contracts/oracle/parser.js +77 -0
  64. package/dist/contracts/oracle/redstone-onchain-oracle/index.d.ts +56 -0
  65. package/dist/contracts/oracle/redstone-onchain-oracle/index.js +159 -0
  66. package/dist/contracts/oracle/redstone-onchain-oracle/serializer.d.ts +4 -0
  67. package/dist/contracts/oracle/redstone-onchain-oracle/serializer.js +137 -0
  68. package/dist/contracts/oracle/redstone-onchain-oracle/type.d.ts +57 -0
  69. package/dist/contracts/oracle/redstone-onchain-oracle/type.js +18 -0
  70. package/dist/contracts/oracle/redstone-oracle/serializer.d.ts +3 -0
  71. package/dist/contracts/oracle/redstone-oracle/serializer.js +30 -0
  72. package/dist/contracts/oracle/redstone-oracle/type.d.ts +9 -0
  73. package/dist/contracts/oracle/redstone-oracle/type.js +2 -0
  74. package/dist/contracts/oracle/redstone-parser.d.ts +9 -0
  75. package/dist/contracts/oracle/redstone-parser.js +58 -0
  76. package/dist/contracts/rfq/rfq_auction/index.d.ts +216 -0
  77. package/dist/contracts/rfq/rfq_auction/index.js +334 -0
  78. package/dist/contracts/rfq/rfq_batch/index.d.ts +346 -0
  79. package/dist/contracts/rfq/rfq_batch/index.js +448 -0
  80. package/dist/contracts/rfq/rfq_event_emitter/index.d.ts +132 -0
  81. package/dist/contracts/rfq/rfq_event_emitter/index.js +143 -0
  82. package/dist/contracts/stonfi-farm/MockStonfiFarmItem.d.ts +41 -0
  83. package/dist/contracts/stonfi-farm/MockStonfiFarmItem.js +83 -0
  84. package/dist/contracts/stonfi-farm/MockStonfiFarmMinter.d.ts +45 -0
  85. package/dist/contracts/stonfi-farm/MockStonfiFarmMinter.js +92 -0
  86. package/dist/contracts/unknown-contract/index.d.ts +14 -0
  87. package/dist/contracts/unknown-contract/index.js +18 -0
  88. package/dist/contracts/vault/share-vault/index.d.ts +206 -0
  89. package/dist/contracts/vault/share-vault/index.js +373 -0
  90. package/dist/contracts/vault/strategy-vault/codec.d.ts +710 -0
  91. package/dist/contracts/vault/strategy-vault/codec.js +1256 -0
  92. package/dist/contracts/vault/strategy-vault/computation.d.ts +11 -0
  93. package/dist/contracts/vault/strategy-vault/computation.js +56 -0
  94. package/dist/contracts/vault/strategy-vault/constants.d.ts +163 -0
  95. package/dist/contracts/vault/strategy-vault/constants.js +170 -0
  96. package/dist/contracts/vault/strategy-vault/index.d.ts +587 -0
  97. package/dist/contracts/vault/strategy-vault/index.js +406 -0
  98. package/dist/contracts/vault/strategy-vault/type.d.ts +115 -0
  99. package/dist/contracts/vault/strategy-vault/type.js +2 -0
  100. package/dist/contracts/wton/jetton-minter.d.ts +35 -0
  101. package/dist/contracts/wton/jetton-minter.js +71 -0
  102. package/dist/contracts/wton/jetton-wallet.d.ts +90 -0
  103. package/dist/contracts/wton/jetton-wallet.js +153 -0
  104. package/dist/contracts/wton/type.d.ts +7 -0
  105. package/dist/contracts/wton/type.js +2 -0
  106. package/dist/index.d.ts +34 -0
  107. package/dist/index.js +65 -0
  108. package/dist/lib/assert.d.ts +1 -0
  109. package/dist/lib/assert.js +9 -0
  110. package/dist/lib/query-cache.d.ts +5 -0
  111. package/dist/lib/query-cache.js +57 -0
  112. package/dist/lib/send-msg.d.ts +11 -0
  113. package/dist/lib/send-msg.js +9 -0
  114. package/dist/services/composite-oracle/computation.d.ts +55 -0
  115. package/dist/services/composite-oracle/computation.js +295 -0
  116. package/dist/services/composite-oracle/index.d.ts +45 -0
  117. package/dist/services/composite-oracle/index.js +110 -0
  118. package/dist/services/composite-oracle/query.d.ts +36 -0
  119. package/dist/services/composite-oracle/query.js +251 -0
  120. package/dist/services/composite-oracle/types.d.ts +82 -0
  121. package/dist/services/composite-oracle/types.js +11 -0
  122. package/dist/services/pool/computation.d.ts +75 -0
  123. package/dist/services/pool/computation.js +219 -0
  124. package/dist/services/pool/index.d.ts +94 -0
  125. package/dist/services/pool/index.js +139 -0
  126. package/dist/services/pool/oracle.d.ts +20 -0
  127. package/dist/services/pool/oracle.js +61 -0
  128. package/dist/services/pool/owner/index.d.ts +37 -0
  129. package/dist/services/pool/owner/index.js +76 -0
  130. package/dist/services/pool/owner/types.d.ts +18 -0
  131. package/dist/services/pool/owner/types.js +2 -0
  132. package/dist/services/pool/query.d.ts +64 -0
  133. package/dist/services/pool/query.js +282 -0
  134. package/dist/services/pool/user/index.d.ts +86 -0
  135. package/dist/services/pool/user/index.js +285 -0
  136. package/dist/services/pool/user/types.d.ts +44 -0
  137. package/dist/services/pool/user/types.js +2 -0
  138. package/dist/services/rfq-auction/index.d.ts +81 -0
  139. package/dist/services/rfq-auction/index.js +93 -0
  140. package/dist/services/rfq-auction/oracle.d.ts +19 -0
  141. package/dist/services/rfq-auction/oracle.js +60 -0
  142. package/dist/services/rfq-auction/query.d.ts +50 -0
  143. package/dist/services/rfq-auction/query.js +19 -0
  144. package/dist/services/rfq-auction/user/index.d.ts +63 -0
  145. package/dist/services/rfq-auction/user/index.js +218 -0
  146. package/dist/services/rfq-auction/user/types.d.ts +29 -0
  147. package/dist/services/rfq-auction/user/types.js +2 -0
  148. package/dist/services/rfq-batch/index.d.ts +78 -0
  149. package/dist/services/rfq-batch/index.js +132 -0
  150. package/dist/services/rfq-batch/oracle.d.ts +22 -0
  151. package/dist/services/rfq-batch/oracle.js +54 -0
  152. package/dist/services/rfq-batch/query.d.ts +46 -0
  153. package/dist/services/rfq-batch/query.js +34 -0
  154. package/dist/services/rfq-batch/user/index.d.ts +79 -0
  155. package/dist/services/rfq-batch/user/index.js +171 -0
  156. package/dist/services/rfq-batch/user/types.d.ts +37 -0
  157. package/dist/services/rfq-batch/user/types.js +2 -0
  158. package/dist/services/share-vault/computation.d.ts +24 -0
  159. package/dist/services/share-vault/computation.js +42 -0
  160. package/dist/services/share-vault/index.d.ts +90 -0
  161. package/dist/services/share-vault/index.js +128 -0
  162. package/dist/services/share-vault/manager/index.d.ts +40 -0
  163. package/dist/services/share-vault/manager/index.js +111 -0
  164. package/dist/services/share-vault/manager/types.d.ts +23 -0
  165. package/dist/services/share-vault/manager/types.js +2 -0
  166. package/dist/services/share-vault/owner/index.d.ts +64 -0
  167. package/dist/services/share-vault/owner/index.js +122 -0
  168. package/dist/services/share-vault/owner/types.d.ts +33 -0
  169. package/dist/services/share-vault/owner/types.js +2 -0
  170. package/dist/services/share-vault/query.d.ts +34 -0
  171. package/dist/services/share-vault/query.js +138 -0
  172. package/dist/services/share-vault/user/index.d.ts +33 -0
  173. package/dist/services/share-vault/user/index.js +106 -0
  174. package/dist/services/share-vault/user/types.d.ts +13 -0
  175. package/dist/services/share-vault/user/types.js +2 -0
  176. package/dist/services/strategy-vault/index.d.ts +2124 -0
  177. package/dist/services/strategy-vault/index.js +268 -0
  178. package/dist/services/strategy-vault/manager/index.d.ts +1968 -0
  179. package/dist/services/strategy-vault/manager/index.js +475 -0
  180. package/dist/services/strategy-vault/manager/types.d.ts +144 -0
  181. package/dist/services/strategy-vault/manager/types.js +2 -0
  182. package/dist/services/strategy-vault/oracle.d.ts +66 -0
  183. package/dist/services/strategy-vault/oracle.js +162 -0
  184. package/dist/services/strategy-vault/owner/index.d.ts +277 -0
  185. package/dist/services/strategy-vault/owner/index.js +333 -0
  186. package/dist/services/strategy-vault/owner/types.d.ts +146 -0
  187. package/dist/services/strategy-vault/owner/types.js +2 -0
  188. package/dist/services/strategy-vault/query.d.ts +138 -0
  189. package/dist/services/strategy-vault/query.js +59 -0
  190. package/dist/services/strategy-vault/user/index.d.ts +89 -0
  191. package/dist/services/strategy-vault/user/index.js +219 -0
  192. package/dist/services/strategy-vault/user/types.d.ts +46 -0
  193. package/dist/services/strategy-vault/user/types.js +2 -0
  194. package/dist/types/sender.d.ts +7 -0
  195. package/dist/types/sender.js +2 -0
  196. package/dist/utils/action-parser.d.ts +7 -0
  197. package/dist/utils/action-parser.js +20 -0
  198. package/dist/utils/external-message-hash.d.ts +45 -0
  199. package/dist/utils/external-message-hash.js +65 -0
  200. package/dist/utils/oracle/redstone/readonlyCachedRedstone.d.ts +3 -0
  201. package/dist/utils/oracle/redstone/readonlyCachedRedstone.js +25 -0
  202. package/dist/utils/oracle/redstone/redstoneHelper.d.ts +21 -0
  203. package/dist/utils/oracle/redstone/redstoneHelper.js +228 -0
  204. package/dist/utils/parser.d.ts +40 -0
  205. package/dist/utils/parser.js +580 -0
  206. package/dist/utils/pending-tracker/index.d.ts +14 -0
  207. package/dist/utils/pending-tracker/index.js +34 -0
  208. package/dist/utils/pending-tracker/trackable-sender.d.ts +16 -0
  209. package/dist/utils/pending-tracker/trackable-sender.js +87 -0
  210. package/dist/utils/pending-tracker/type.d.ts +78 -0
  211. package/dist/utils/pending-tracker/type.js +2 -0
  212. package/dist/utils/pending-tracker/v3-client.d.ts +31 -0
  213. package/dist/utils/pending-tracker/v3-client.js +104 -0
  214. package/dist/utils/risk_calculator/risk_calculator.d.ts +45 -0
  215. package/dist/utils/risk_calculator/risk_calculator.js +332 -0
  216. package/dist/utils/utils.d.ts +5 -0
  217. package/dist/utils/utils.js +12 -0
  218. package/package.json +46 -0
@@ -0,0 +1,475 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ exports.createSupplyToFactorialMsg = createSupplyToFactorialMsg;
18
+ exports.createBorrowFromFactorialMsg = createBorrowFromFactorialMsg;
19
+ exports.createRepayToFactorialMsg = createRepayToFactorialMsg;
20
+ exports.createWithdrawFromFactorialMsg = createWithdrawFromFactorialMsg;
21
+ exports.createLiquidateToFactorialMsg = createLiquidateToFactorialMsg;
22
+ exports.createDepositToVaultMsg = createDepositToVaultMsg;
23
+ exports.createWithdrawFromVaultMsg = createWithdrawFromVaultMsg;
24
+ exports.createDepositToVaultQueueMsg = createDepositToVaultQueueMsg;
25
+ exports.createWithdrawFromVaultQueueMsg = createWithdrawFromVaultQueueMsg;
26
+ exports.createDepositToVaultQueueCancelMsg = createDepositToVaultQueueCancelMsg;
27
+ exports.createWithdrawFromVaultQueueCancelMsg = createWithdrawFromVaultQueueCancelMsg;
28
+ exports.createAmountRFQMsg = createAmountRFQMsg;
29
+ exports.createSlippageRFQMsg = createSlippageRFQMsg;
30
+ exports.createCancelRFQMsg = createCancelRFQMsg;
31
+ exports.sendUnwrapWTON = sendUnwrapWTON;
32
+ exports.createConfirmQueueMsg = createConfirmQueueMsg;
33
+ exports.createExecuteDepositQueueMsg = createExecuteDepositQueueMsg;
34
+ exports.createExecuteWithdrawQueueMsg = createExecuteWithdrawQueueMsg;
35
+ const core_1 = require("@ton/core");
36
+ const utils_1 = require("../../../contracts/common/utils");
37
+ const jetton_minter_1 = require("../../../contracts/jetton/jetton-minter");
38
+ const pool_1 = require("../../../contracts/core/pool");
39
+ const strategy_vault_1 = require("../../../contracts/vault/strategy-vault");
40
+ const codec_1 = require("../../../contracts/vault/strategy-vault/codec");
41
+ const share_vault_1 = require("../../../contracts/vault/share-vault");
42
+ const oracle_1 = require("../oracle");
43
+ const share_vault_2 = require("../../share-vault");
44
+ const computation_1 = require("../../../contracts/vault/strategy-vault/computation");
45
+ const query_1 = require("../query");
46
+ const oracle_2 = require("../oracle");
47
+ __exportStar(require("./types"), exports);
48
+ // ============================================================
49
+ // Factorial Pool Operations
50
+ // ============================================================
51
+ async function createSupplyToFactorialMsg(ctx, sender, params, value) {
52
+ const strategyVault = ctx.getByContract(strategy_vault_1.StrategyVault, params.strategyVaultAddress);
53
+ const vaultData = await strategyVault.getVaultData();
54
+ const poolAddress = (0, utils_1.toAddress)(params.poolAddress);
55
+ const assetAddress = (0, utils_1.toAddress)(params.assetAddress);
56
+ const to = strategyVault.address;
57
+ const resolvedValue = value ??
58
+ vaultData.gasConfig[strategy_vault_1.StrategyVault.GasKey.FactorialTransferIn] +
59
+ vaultData.gasConfig[strategy_vault_1.StrategyVault.GasKey.ExecuteStrategy] +
60
+ (0, core_1.toNano)(0.1);
61
+ const body = strategy_vault_1.StrategyVault.createSupplyToFactorialMsgBody(poolAddress, assetAddress, params.assetAmount, sender.address, params.queryId);
62
+ return {
63
+ opts: { strategyVault, vaultData, poolAddress, assetAddress },
64
+ input: { to, value: resolvedValue, body },
65
+ };
66
+ }
67
+ async function createBorrowFromFactorialMsg(ctx, sender, params, value) {
68
+ const strategyVault = ctx.getByContract(strategy_vault_1.StrategyVault, params.strategyVaultAddress);
69
+ const oracleLibs = new oracle_1.OracleHelper(ctx);
70
+ const vaultData = await strategyVault.getVaultData();
71
+ const { oracleParams: oraclePayload } = await oracleLibs.getOracleParamsForStrategyVaultV2(vaultData, [
72
+ params.assetAddress.toString(),
73
+ ...Object.keys(vaultData.assets),
74
+ ]);
75
+ const oracleCalculateGas = BigInt(Object.keys(vaultData.assets).length + Object.keys(vaultData.factorialPools).length) * (0, core_1.toNano)(0.05);
76
+ const poolAddress = (0, utils_1.toAddress)(params.poolAddress);
77
+ const assetAddress = (0, utils_1.toAddress)(params.assetAddress);
78
+ const to = strategyVault.address;
79
+ const resolvedValue = value ??
80
+ vaultData.gasConfig[strategy_vault_1.StrategyVault.GasKey.FactorialTransferOut] +
81
+ vaultData.gasConfig[strategy_vault_1.StrategyVault.GasKey.ExecuteStrategy] +
82
+ oracleCalculateGas +
83
+ (0, core_1.toNano)(0.1);
84
+ const body = strategy_vault_1.StrategyVault.createBorrowFromFactorialMsgBody(oraclePayload, poolAddress, assetAddress, params.assetAmount, params.isShare, sender.address, params.queryId);
85
+ return {
86
+ opts: { strategyVault, vaultData, oraclePayload, oracleCalculateGas, poolAddress, assetAddress },
87
+ input: { to, value: resolvedValue, body },
88
+ };
89
+ }
90
+ async function createRepayToFactorialMsg(ctx, sender, params, value) {
91
+ const strategyVault = ctx.getByContract(strategy_vault_1.StrategyVault, params.strategyVaultAddress);
92
+ const vaultData = await strategyVault.getVaultData();
93
+ const poolAddress = (0, utils_1.toAddress)(params.poolAddress);
94
+ const assetAddress = (0, utils_1.toAddress)(params.assetAddress);
95
+ const to = strategyVault.address;
96
+ const resolvedValue = value ??
97
+ vaultData.gasConfig[strategy_vault_1.StrategyVault.GasKey.FactorialTransferIn] +
98
+ vaultData.gasConfig[strategy_vault_1.StrategyVault.GasKey.ExecuteStrategy] +
99
+ (0, core_1.toNano)(0.1);
100
+ const body = strategy_vault_1.StrategyVault.createRepayToFactorialMsgBody(poolAddress, assetAddress, params.assetAmount, sender.address, params.queryId);
101
+ return {
102
+ opts: { strategyVault, vaultData, poolAddress, assetAddress },
103
+ input: { to, value: resolvedValue, body },
104
+ };
105
+ }
106
+ async function createWithdrawFromFactorialMsg(ctx, sender, params, value) {
107
+ const strategyVault = ctx.getByContract(strategy_vault_1.StrategyVault, params.strategyVaultAddress);
108
+ const pool = ctx.getByContract(pool_1.Pool, params.poolAddress);
109
+ const oracleLibs = new oracle_1.OracleHelper(ctx);
110
+ const vaultData = await strategyVault.getVaultData();
111
+ const poolData = await pool.getPoolData();
112
+ const poolOraclePayload = await oracleLibs.getOracleParamsForPool(poolData, [params.assetAddress.toString()]);
113
+ const poolAddress = (0, utils_1.toAddress)(params.poolAddress);
114
+ const assetAddress = (0, utils_1.toAddress)(params.assetAddress);
115
+ const to = strategyVault.address;
116
+ const resolvedValue = value ??
117
+ vaultData.gasConfig[strategy_vault_1.StrategyVault.GasKey.FactorialTransferOut] +
118
+ vaultData.gasConfig[strategy_vault_1.StrategyVault.GasKey.ExecuteStrategy] +
119
+ (0, core_1.toNano)(0.1);
120
+ const body = strategy_vault_1.StrategyVault.createWithdrawFromFactorialMsgBody(poolOraclePayload, poolAddress, assetAddress, params.assetAmount, params.isShare, sender.address, params.queryId);
121
+ return {
122
+ opts: { strategyVault, pool, vaultData, poolData, poolOraclePayload, poolAddress, assetAddress },
123
+ input: { to, value: resolvedValue, body },
124
+ };
125
+ }
126
+ async function createLiquidateToFactorialMsg(ctx, sender, params, value) {
127
+ const strategyVault = ctx.getByContract(strategy_vault_1.StrategyVault, params.strategyVaultAddress);
128
+ const vaultData = await strategyVault.getVaultData();
129
+ const oraclePayload = await (0, oracle_2.getOracleParams)(ctx, strategyVault.address);
130
+ const oracleCalculateGas = BigInt(Object.keys(vaultData.assets).length + Object.keys(vaultData.factorialPools).length) * (0, core_1.toNano)(0.05);
131
+ const poolAddress = (0, utils_1.toAddress)(params.poolAddress);
132
+ const borrowerAddress = (0, utils_1.toAddress)(params.borrowerAddress);
133
+ const repayAssetAddress = (0, utils_1.toAddress)(params.repayAssetAddress);
134
+ const seizeAssetAddress = (0, utils_1.toAddress)(params.seizeAssetAddress);
135
+ const to = strategyVault.address;
136
+ const resolvedValue = value ??
137
+ vaultData.gasConfig[strategy_vault_1.StrategyVault.GasKey.FactorialLiquidate] +
138
+ vaultData.gasConfig[strategy_vault_1.StrategyVault.GasKey.ExecuteStrategy] +
139
+ oracleCalculateGas +
140
+ (0, core_1.toNano)(0.1);
141
+ const body = strategy_vault_1.StrategyVault.createLiquidateToFactorialMsgBody(oraclePayload, poolAddress, borrowerAddress, repayAssetAddress, seizeAssetAddress, params.repayAmount, sender.address, params.queryId);
142
+ return {
143
+ opts: { strategyVault, vaultData, oraclePayload, oracleCalculateGas, poolAddress, borrowerAddress, repayAssetAddress, seizeAssetAddress },
144
+ input: { to, value: resolvedValue, body },
145
+ };
146
+ }
147
+ // ============================================================
148
+ // Vault-to-Vault Operations
149
+ // ============================================================
150
+ async function createDepositToVaultMsg(ctx, sender, params) {
151
+ const oracle = new oracle_1.OracleHelper(ctx);
152
+ const strategyVault = (0, query_1.getVault)(ctx, params.strategyVaultAddress);
153
+ const strategyVaultData = await strategyVault.getVaultData();
154
+ const targetVaultType = await ctx.getAssetType(params.depositToVault);
155
+ const strategyResponseGas = strategyVaultData.gasConfig[strategy_vault_1.StrategyVault.GasKey.IncreaseBalance] +
156
+ strategyVaultData.gasConfig[strategy_vault_1.StrategyVault.GasKey.ActionNotification];
157
+ const bucket = (0, oracle_1.createOracleExposures)();
158
+ let targetVaultOracleParams;
159
+ let forwardTonAmount = 0n;
160
+ if (targetVaultType.type === "share-vault") {
161
+ const depositToVault = ctx.getByContract(share_vault_1.ShareVault, params.depositToVault);
162
+ const shareVaultData = await depositToVault.getVaultData();
163
+ const shareVaultSupplyGas = share_vault_1.ShareVault.calculateGasFee(share_vault_1.ShareVault.Op.Supply, share_vault_1.ShareVault.Gas.baseFee, Object.keys(shareVaultData.whitelistedPools).length, shareVaultData.minimumGasFee);
164
+ forwardTonAmount = shareVaultSupplyGas + strategyResponseGas;
165
+ }
166
+ else if (targetVaultType.type === "strategy-vault") {
167
+ const depositToVault = (0, query_1.getVault)(ctx, params.depositToVault);
168
+ const depositToVaultData = await depositToVault.getVaultData();
169
+ const targetVaultOracleInfo = await oracle.getOracleParamsForStrategyVault(depositToVault.address, depositToVaultData, bucket);
170
+ targetVaultOracleParams = targetVaultOracleInfo.oracleParams;
171
+ const targetDepositGas = depositToVaultData.gasConfig[strategy_vault_1.StrategyVault.GasKey.Deposit];
172
+ forwardTonAmount = (0, core_1.toNano)(bucket.totalSize() * 0.05) + targetDepositGas + strategyResponseGas;
173
+ }
174
+ else {
175
+ throw new Error("Invalid target vault type");
176
+ }
177
+ const { oracleParams } = await oracle.getOracleParamsForStrategyVault(strategyVault.address, strategyVaultData, bucket);
178
+ const vaultStrategyGas = (0, core_1.toNano)(bucket.totalSize() * 0.05) +
179
+ strategyVaultData.gasConfig[strategy_vault_1.StrategyVault.GasKey.VaultInteraction];
180
+ const sendValue = params.value ?? vaultStrategyGas + forwardTonAmount + (0, core_1.toNano)(0.1);
181
+ const to = strategyVault.address;
182
+ const body = strategy_vault_1.StrategyVault.createDepositToVaultMsgBody({
183
+ oracleParams,
184
+ vaultInteractParams: {
185
+ vaultAddress: (0, utils_1.toAddress)(params.depositToVault),
186
+ assetAddress: (0, utils_1.toAddress)(params.assetAddress),
187
+ assetAmount: params.amount,
188
+ forwardTonAmount,
189
+ },
190
+ targetVaultOracleParams,
191
+ queryId: params.queryId,
192
+ });
193
+ return {
194
+ opts: { strategyVault, strategyVaultData, targetVaultType, oracleParams, targetVaultOracleParams, forwardTonAmount, vaultStrategyGas },
195
+ input: { to, value: sendValue, body },
196
+ };
197
+ }
198
+ async function createWithdrawFromVaultMsg(ctx, sender, params) {
199
+ const oracle = new oracle_1.OracleHelper(ctx);
200
+ const strategyVault = (0, query_1.getVault)(ctx, params.strategyVaultAddress);
201
+ const strategyVaultData = await strategyVault.getVaultData();
202
+ const targetVaultType = await ctx.getAssetType(params.withdrawFromVault);
203
+ const strategyResponseGas = strategyVaultData.gasConfig[strategy_vault_1.StrategyVault.GasKey.IncreaseBalance] +
204
+ 2n * strategyVaultData.gasConfig[strategy_vault_1.StrategyVault.GasKey.ActionNotification];
205
+ const bucket = (0, oracle_1.createOracleExposures)();
206
+ let targetVaultOracleParams;
207
+ let forwardTonAmount = 0n;
208
+ if (targetVaultType.type === "share-vault") {
209
+ const withdrawFromVault = ctx.getByContract(share_vault_1.ShareVault, params.withdrawFromVault);
210
+ const shareVaultData = await withdrawFromVault.getVaultData();
211
+ const { count } = await new share_vault_2.ShareVaultServiceV1(ctx).estimateWithdrawLiquidityFulfillmentPoolCount(shareVaultData, params.withdrawAmount);
212
+ const targetWithdrawGas = share_vault_1.ShareVault.calculateGasFee(share_vault_1.ShareVault.Op.Withdraw, share_vault_1.ShareVault.Gas.baseFee, count, shareVaultData.minimumGasFee);
213
+ forwardTonAmount = targetWithdrawGas + strategyResponseGas + (0, core_1.toNano)(0.1);
214
+ }
215
+ else if (targetVaultType.type === "strategy-vault") {
216
+ const withdrawFromVault = (0, query_1.getVault)(ctx, params.withdrawFromVault);
217
+ const withdrawFromVaultData = await withdrawFromVault.getVaultData();
218
+ const targetVaultOracleInfo = await oracle.getOracleParamsForStrategyVault(withdrawFromVault.address, withdrawFromVaultData, bucket);
219
+ targetVaultOracleParams = targetVaultOracleInfo.oracleParams;
220
+ const targetWithdrawGas = withdrawFromVaultData.gasConfig[strategy_vault_1.StrategyVault.GasKey.Withdraw];
221
+ forwardTonAmount = (0, core_1.toNano)(bucket.totalSize() * 0.05) + targetWithdrawGas + strategyResponseGas;
222
+ }
223
+ else {
224
+ throw new Error("Invalid target vault type");
225
+ }
226
+ const { oracleParams } = await oracle.getOracleParamsForStrategyVault(strategyVault.address, strategyVaultData, bucket);
227
+ const vaultStrategyGas = (0, core_1.toNano)(bucket.totalSize() * 0.05) +
228
+ strategyVaultData.gasConfig[strategy_vault_1.StrategyVault.GasKey.VaultInteraction];
229
+ const sendValue = params.value ?? vaultStrategyGas + forwardTonAmount + (0, core_1.toNano)(0.1);
230
+ const to = strategyVault.address;
231
+ const body = (0, codec_1.createWithdrawFromVaultMsgBody)({
232
+ oracleParams,
233
+ vaultInteractParams: {
234
+ targetVaultAddress: (0, utils_1.toAddress)(params.withdrawFromVault),
235
+ targetVaultAmount: params.withdrawAmount,
236
+ assetAddress: (0, utils_1.toAddress)(params.assetAddress),
237
+ forwardTonAmount,
238
+ },
239
+ targetVaultOracleParams,
240
+ queryId: params.queryId,
241
+ });
242
+ return {
243
+ opts: { strategyVault, strategyVaultData, targetVaultType, oracleParams, targetVaultOracleParams, forwardTonAmount, vaultStrategyGas },
244
+ input: { to, value: sendValue, body },
245
+ };
246
+ }
247
+ async function createDepositToVaultQueueMsg(ctx, sender, params) {
248
+ const oracle = new oracle_1.OracleHelper(ctx);
249
+ const strategyVault = (0, query_1.getVault)(ctx, params.strategyVaultAddress);
250
+ const strategyVaultData = await strategyVault.getVaultData();
251
+ const targetVault = ctx.getByContract(strategy_vault_1.StrategyVault, params.depositToVaultQueue);
252
+ const targetVaultData = await targetVault.getVaultData();
253
+ const { oracleParams, bucket } = await oracle.getOracleParamsForStrategyVault(strategyVault.address, strategyVaultData);
254
+ const vaultStrategyGas = (0, core_1.toNano)(bucket.totalSize() * 0.05) +
255
+ strategyVaultData.gasConfig[strategy_vault_1.StrategyVault.GasKey.JettonTransfer] +
256
+ strategyVaultData.gasConfig[strategy_vault_1.StrategyVault.GasKey.VaultInteraction];
257
+ const forwardTonAmount = strategy_vault_1.StrategyVault.calcQueueResistGas(targetVaultData, {
258
+ actionForwardTonAmount: strategyVaultData.gasConfig[strategy_vault_1.StrategyVault.GasKey.ActionNotification],
259
+ jettonForwardTonAmount: strategyVaultData.gasConfig[strategy_vault_1.StrategyVault.GasKey.IncreaseBalance],
260
+ });
261
+ const sendValue = params.value ?? vaultStrategyGas + forwardTonAmount + (0, core_1.toNano)(0.1);
262
+ const to = strategyVault.address;
263
+ const body = (0, codec_1.createDepositToVaultQueueMsgBody)({
264
+ oracleParams,
265
+ vaultQueueInteractParams: {
266
+ vaultAddress: (0, utils_1.toAddress)(params.depositToVaultQueue),
267
+ assetAddress: (0, utils_1.toAddress)(params.assetAddress),
268
+ assetAmount: params.amount,
269
+ },
270
+ queryId: params.queryId,
271
+ });
272
+ return {
273
+ opts: { strategyVault, strategyVaultData, targetVault, targetVaultData, oracleParams, vaultStrategyGas, forwardTonAmount },
274
+ input: { to, value: sendValue, body },
275
+ };
276
+ }
277
+ async function createWithdrawFromVaultQueueMsg(ctx, sender, params) {
278
+ const oracle = new oracle_1.OracleHelper(ctx);
279
+ const strategyVault = (0, query_1.getVault)(ctx, params.strategyVaultAddress);
280
+ const strategyVaultData = await strategyVault.getVaultData();
281
+ const targetVault = ctx.getByContract(strategy_vault_1.StrategyVault, params.withdrawFromVaultQueue);
282
+ const targetVaultData = await targetVault.getVaultData();
283
+ const { oracleParams, bucket } = await oracle.getOracleParamsForStrategyVault(strategyVault.address, strategyVaultData);
284
+ const vaultStrategyGas = (0, core_1.toNano)(bucket.totalSize() * 0.05) +
285
+ strategyVaultData.gasConfig[strategy_vault_1.StrategyVault.GasKey.JettonTransfer] +
286
+ strategyVaultData.gasConfig[strategy_vault_1.StrategyVault.GasKey.VaultInteraction];
287
+ const forwardTonAmount = strategy_vault_1.StrategyVault.calcQueueResistGas(targetVaultData, {
288
+ actionForwardTonAmount: strategyVaultData.gasConfig[strategy_vault_1.StrategyVault.GasKey.ActionNotification],
289
+ jettonForwardTonAmount: strategyVaultData.gasConfig[strategy_vault_1.StrategyVault.GasKey.IncreaseBalance],
290
+ });
291
+ const sendValue = params.value ?? vaultStrategyGas + forwardTonAmount + (0, core_1.toNano)(0.1);
292
+ const to = strategyVault.address;
293
+ const body = (0, codec_1.createWithdrawFromVaultQueueMsgBody)({
294
+ oracleParams,
295
+ vaultQueueInteractParams: {
296
+ targetVaultAddress: (0, utils_1.toAddress)(params.withdrawFromVaultQueue),
297
+ targetVaultAmount: params.amount,
298
+ assetAddress: (0, utils_1.toAddress)(params.assetAddress),
299
+ },
300
+ queryId: params.queryId,
301
+ });
302
+ return {
303
+ opts: { strategyVault, strategyVaultData, targetVault, targetVaultData, oracleParams, vaultStrategyGas, forwardTonAmount },
304
+ input: { to, value: sendValue, body },
305
+ };
306
+ }
307
+ async function createDepositToVaultQueueCancelMsg(ctx, sender, params) {
308
+ const strategyVault = (0, query_1.getVault)(ctx, params.strategyVaultAddress);
309
+ const sendValue = params.value ?? (0, core_1.toNano)(0.1);
310
+ const to = strategyVault.address;
311
+ const body = (0, codec_1.createCancelDepositToVaultQueueMsgBody)((0, utils_1.toAddress)(params.depositToVaultQueue), (0, utils_1.toAddress)(params.assetAddress), params.queryId);
312
+ return {
313
+ opts: { strategyVault },
314
+ input: { to, value: sendValue, body },
315
+ };
316
+ }
317
+ async function createWithdrawFromVaultQueueCancelMsg(ctx, sender, params) {
318
+ const strategyVault = (0, query_1.getVault)(ctx, params.strategyVaultAddress);
319
+ const sendValue = params.value ?? (0, core_1.toNano)(0.1);
320
+ const to = strategyVault.address;
321
+ const body = (0, codec_1.createCancelWithdrawFromVaultQueueMsgBody)((0, utils_1.toAddress)(params.withdrawFromVaultQueue), (0, utils_1.toAddress)(params.assetAddress), params.queryId);
322
+ return {
323
+ opts: { strategyVault },
324
+ input: { to, value: sendValue, body },
325
+ };
326
+ }
327
+ // ============================================================
328
+ // RFQ Operations
329
+ // ============================================================
330
+ async function createAmountRFQMsg(ctx, sender, params, value) {
331
+ const strategyVault = (0, query_1.getVault)(ctx, params.strategyVaultAddress);
332
+ const vaultData = await strategyVault.getVaultData();
333
+ const rfqIndex = vaultData.rfqIndex;
334
+ const rfqAuctionAddress = await strategyVault.getRFQAddress(rfqIndex);
335
+ const sellAssetAddress = (0, utils_1.toAddress)(params.sellAssetAddress);
336
+ const buyAssetAddress = (0, utils_1.toAddress)(params.buyAssetAddress);
337
+ const sellAssetRFQWallet = await ctx.getByContract(jetton_minter_1.JettonMinter, sellAssetAddress).getWalletAddress(rfqAuctionAddress);
338
+ const buyAssetRFQWallet = await ctx.getByContract(jetton_minter_1.JettonMinter, buyAssetAddress).getWalletAddress(rfqAuctionAddress);
339
+ const oracleLibs = new oracle_1.OracleHelper(ctx);
340
+ const { oracleParams, bucket } = await oracleLibs.getOracleParamsForStrategyVaultV2(vaultData, [
341
+ ...Object.keys(vaultData.assets),
342
+ ]);
343
+ const oracleCalculateGas = BigInt(bucket.assets.size + bucket.pools.size + bucket.vaults.size) * (0, core_1.toNano)(0.05);
344
+ const to = strategyVault.address;
345
+ const resolvedValue = value ??
346
+ vaultData.gasConfig[strategy_vault_1.StrategyVault.GasKey.ExecuteStrategy] +
347
+ vaultData.gasConfig[strategy_vault_1.StrategyVault.GasKey.CreateRFQ] +
348
+ oracleCalculateGas +
349
+ (0, core_1.toNano)(0.1);
350
+ const body = strategy_vault_1.StrategyVault.createCreateRFQMsgBody(rfqIndex, sellAssetAddress, buyAssetAddress, params.sellAssetAmount, params.minBuyAssetAmount, params.maxBuyAssetAmount, sellAssetRFQWallet, buyAssetRFQWallet, oracleParams, params.period, params.allowSellerCancel, params.allowBidderCancel, true, // isAmountBid
351
+ params.queryId);
352
+ return {
353
+ opts: { strategyVault, vaultData, rfqIndex, rfqAuctionAddress, sellAssetAddress, buyAssetAddress, sellAssetRFQWallet, buyAssetRFQWallet, oracleParams, oracleCalculateGas },
354
+ input: { to, value: resolvedValue, body },
355
+ };
356
+ }
357
+ async function createSlippageRFQMsg(ctx, sender, params, value) {
358
+ const strategyVault = (0, query_1.getVault)(ctx, params.strategyVaultAddress);
359
+ const vaultData = await strategyVault.getVaultData();
360
+ const rfqIndex = vaultData.rfqIndex;
361
+ const rfqAuctionAddress = await strategyVault.getRFQAddress(rfqIndex);
362
+ const sellAssetAddress = (0, utils_1.toAddress)(params.sellAssetAddress);
363
+ const buyAssetAddress = (0, utils_1.toAddress)(params.buyAssetAddress);
364
+ const sellAssetRFQWallet = await ctx.getByContract(jetton_minter_1.JettonMinter, sellAssetAddress).getWalletAddress(rfqAuctionAddress);
365
+ const buyAssetRFQWallet = await ctx.getByContract(jetton_minter_1.JettonMinter, buyAssetAddress).getWalletAddress(rfqAuctionAddress);
366
+ const oracleLibs = new oracle_1.OracleHelper(ctx);
367
+ const { oracleParams, bucket } = await oracleLibs.getOracleParamsForStrategyVaultV2(vaultData, [
368
+ ...Object.keys(vaultData.assets),
369
+ ]);
370
+ const oracleCalculateGas = BigInt(bucket.assets.size + bucket.pools.size + bucket.vaults.size) * (0, core_1.toNano)(0.05);
371
+ const slippageBoundConfig = (0, computation_1.toSlippageConfig)(params.slippageBound);
372
+ const to = strategyVault.address;
373
+ const resolvedValue = value ??
374
+ vaultData.gasConfig[strategy_vault_1.StrategyVault.GasKey.ExecuteStrategy] +
375
+ vaultData.gasConfig[strategy_vault_1.StrategyVault.GasKey.CreateRFQ] +
376
+ oracleCalculateGas +
377
+ (0, core_1.toNano)(0.1);
378
+ const body = strategy_vault_1.StrategyVault.createCreateRFQMsgBody(rfqIndex, sellAssetAddress, buyAssetAddress, params.sellAssetAmount, slippageBoundConfig.min, slippageBoundConfig.max, sellAssetRFQWallet, buyAssetRFQWallet, oracleParams, params.period, params.allowSellerCancel, params.allowBidderCancel, false, // isAmountBid
379
+ params.queryId);
380
+ return {
381
+ opts: { strategyVault, vaultData, rfqIndex, rfqAuctionAddress, sellAssetAddress, buyAssetAddress, sellAssetRFQWallet, buyAssetRFQWallet, oracleParams, oracleCalculateGas, slippageBoundConfig },
382
+ input: { to, value: resolvedValue, body },
383
+ };
384
+ }
385
+ async function createCancelRFQMsg(ctx, sender, params, value) {
386
+ const strategyVault = ctx.getByContract(strategy_vault_1.StrategyVault, params.strategyVaultAddress);
387
+ const to = strategyVault.address;
388
+ const resolvedValue = value ?? (0, core_1.toNano)(0.05);
389
+ const body = strategy_vault_1.StrategyVault.createCancelRFQMsgBody(params.rfqIndex, params.queryID);
390
+ return {
391
+ opts: { strategyVault },
392
+ input: { to, value: resolvedValue, body },
393
+ };
394
+ }
395
+ async function sendUnwrapWTON(ctx, sender, params, value) {
396
+ if (!ctx.isWTON(params.wtonAddress)) {
397
+ throw new Error("WTON address is not valid");
398
+ }
399
+ const senderAddress = (0, utils_1.toAddress)(params.senderAddress);
400
+ const wtonAddress = (0, utils_1.toAddress)(params.wtonAddress);
401
+ }
402
+ // ============================================================
403
+ // Queue Confirm/Execute Operations
404
+ // ============================================================
405
+ async function createConfirmQueueMsg(ctx, sender, params) {
406
+ const vault = (0, query_1.getVault)(ctx, params.strategyVaultAddress);
407
+ const vaultData = await vault.getVaultData();
408
+ const gasConfig = vaultData.gasConfig;
409
+ const oracle = new oracle_1.OracleHelper(ctx);
410
+ const oracleParams = params.oracleParams ??
411
+ (await oracle.getOracleParamsForStrategyVaultV2(vaultData, [...Object.keys(vaultData.assets)])).oracleParams;
412
+ const depositAssets = params.depositAssets ??
413
+ Object.entries(vaultData.depositQueueManager.pendingAssetQueue)
414
+ .filter(([key, value]) => {
415
+ return value.sum > 0n && !vaultData.depositQueueManager.confirmedAssetQueue[key];
416
+ })
417
+ .map(([key]) => (0, utils_1.toAddress)(key));
418
+ const withdrawAssets = params.withdrawAssets ??
419
+ Object.entries(vaultData.withdrawQueueManager.pendingAssetQueue)
420
+ .filter(([key, value]) => {
421
+ return value.sum > 0n && !vaultData.withdrawQueueManager.confirmedAssetQueue[key];
422
+ })
423
+ .map(([key]) => (0, utils_1.toAddress)(key));
424
+ const depositLogicGas = depositAssets.length
425
+ ? gasConfig[strategy_vault_1.StrategyVault.GasKey.Deposit] +
426
+ gasConfig[strategy_vault_1.StrategyVault.GasKey.DepositLogic] * BigInt(depositAssets.length)
427
+ : 0n;
428
+ const withdrawLogicGas = withdrawAssets.length
429
+ ? gasConfig[strategy_vault_1.StrategyVault.GasKey.Withdraw] +
430
+ gasConfig[strategy_vault_1.StrategyVault.GasKey.WithdrawLogic] * BigInt(withdrawAssets.length)
431
+ : 0n;
432
+ const estimateGas = withdrawLogicGas + depositLogicGas + (0, core_1.toNano)(0.05);
433
+ const to = (0, utils_1.toAddress)(params.strategyVaultAddress);
434
+ const value = params.value ?? estimateGas + (0, core_1.toNano)(0.05);
435
+ const queryId = params.queryId ?? 0n;
436
+ return {
437
+ opts: { vault, vaultData, to, value, depositAssets, withdrawAssets, oracleParams, queryId },
438
+ input: {
439
+ to,
440
+ value,
441
+ body: strategy_vault_1.StrategyVault.createConfirmQueueBody({ depositAssets, withdrawAssets, oracleParams, queryId }),
442
+ },
443
+ };
444
+ }
445
+ async function createExecuteDepositQueueMsg(ctx, sender, params) {
446
+ params.count ??= 50n;
447
+ const to = (0, utils_1.toAddress)(params.strategyVaultAddress);
448
+ const value = params.value ?? (0, core_1.toNano)(0.05);
449
+ const asset = (0, utils_1.toAddress)(params.assetAddress);
450
+ const count = params.count;
451
+ const queryId = params.queryId ?? 0n;
452
+ return {
453
+ opts: { to, value, asset, count, queryId },
454
+ input: {
455
+ to,
456
+ value,
457
+ body: strategy_vault_1.StrategyVault.createExecuteDepositQueueBody({ asset, count, queryId }),
458
+ },
459
+ };
460
+ }
461
+ async function createExecuteWithdrawQueueMsg(ctx, sender, params) {
462
+ const to = (0, utils_1.toAddress)(params.strategyVaultAddress);
463
+ const value = params.value ?? (0, core_1.toNano)(0.05);
464
+ const asset = (0, utils_1.toAddress)(params.assetAddress);
465
+ const count = params.count ?? 50n;
466
+ const queryId = params.queryId ?? 0n;
467
+ return {
468
+ opts: { to, value, asset, count, queryId },
469
+ input: {
470
+ to,
471
+ value,
472
+ body: strategy_vault_1.StrategyVault.createExecuteWithdrawQueueBody({ asset, count, queryId }),
473
+ },
474
+ };
475
+ }
@@ -0,0 +1,144 @@
1
+ import { Address, Cell } from "@ton/core";
2
+ import { AddressInput, AddressLike } from "../../../contracts/common/type";
3
+ import { SippageBoundInput } from "../../../contracts/vault/strategy-vault/computation";
4
+ export type SupplyToFactorialParams = {
5
+ strategyVaultAddress: AddressInput;
6
+ poolAddress: AddressLike;
7
+ assetAddress: AddressLike;
8
+ assetAmount: bigint;
9
+ queryId?: number;
10
+ };
11
+ export type BorrowFromFactorialParams = {
12
+ strategyVaultAddress: AddressInput;
13
+ poolAddress: AddressLike;
14
+ assetAddress: AddressLike;
15
+ assetAmount: bigint;
16
+ isShare: boolean;
17
+ queryId?: number;
18
+ };
19
+ export type RepayToFactorialParams = {
20
+ strategyVaultAddress: AddressInput;
21
+ poolAddress: AddressLike;
22
+ assetAddress: AddressLike;
23
+ assetAmount: bigint;
24
+ queryId?: number;
25
+ };
26
+ export type WithdrawFromFactorialParams = {
27
+ strategyVaultAddress: AddressInput;
28
+ poolAddress: AddressLike;
29
+ assetAddress: AddressLike;
30
+ assetAmount: bigint;
31
+ isShare: boolean;
32
+ queryId?: number;
33
+ };
34
+ export type LiquidateToFactorialParams = {
35
+ strategyVaultAddress: AddressInput;
36
+ poolAddress: AddressLike;
37
+ borrowerAddress: AddressLike;
38
+ repayAssetAddress: AddressLike;
39
+ seizeAssetAddress: AddressLike;
40
+ repayAmount: bigint;
41
+ queryId?: number;
42
+ };
43
+ export type DepositToVaultParams = {
44
+ strategyVaultAddress: AddressInput;
45
+ depositToVault: AddressInput;
46
+ assetAddress: AddressInput;
47
+ amount: bigint;
48
+ value?: bigint;
49
+ queryId?: bigint;
50
+ };
51
+ export type WithdrawFromVaultParams = {
52
+ strategyVaultAddress: AddressInput;
53
+ withdrawFromVault: AddressInput;
54
+ withdrawAmount: bigint;
55
+ assetAddress: AddressInput;
56
+ value?: bigint;
57
+ queryId?: bigint;
58
+ };
59
+ export type DepositToVaultQueueParams = {
60
+ strategyVaultAddress: AddressInput;
61
+ depositToVaultQueue: AddressInput;
62
+ assetAddress: AddressInput;
63
+ amount: bigint;
64
+ value?: bigint;
65
+ queryId?: bigint;
66
+ };
67
+ export type WithdrawFromVaultQueueParams = {
68
+ strategyVaultAddress: AddressInput;
69
+ withdrawFromVaultQueue: AddressInput;
70
+ assetAddress: AddressInput;
71
+ amount: bigint;
72
+ value?: bigint;
73
+ queryId?: bigint;
74
+ };
75
+ export type DepositToVaultQueueCancelParams = {
76
+ strategyVaultAddress: AddressInput;
77
+ depositToVaultQueue: AddressInput;
78
+ assetAddress: AddressInput;
79
+ value?: bigint;
80
+ queryId?: bigint;
81
+ };
82
+ export type WithdrawFromVaultQueueCancelParams = {
83
+ strategyVaultAddress: AddressInput;
84
+ withdrawFromVaultQueue: AddressInput;
85
+ assetAddress: AddressInput;
86
+ value?: bigint;
87
+ queryId?: bigint;
88
+ };
89
+ export type CreateAmountRFQParams = {
90
+ strategyVaultAddress: AddressInput;
91
+ sellAssetAddress: AddressLike;
92
+ buyAssetAddress: AddressLike;
93
+ sellAssetAmount: bigint;
94
+ minBuyAssetAmount: bigint;
95
+ maxBuyAssetAmount: bigint;
96
+ period: number;
97
+ allowSellerCancel: boolean;
98
+ allowBidderCancel: boolean;
99
+ queryId?: number;
100
+ };
101
+ export type CreateSlippageRFQParams = {
102
+ strategyVaultAddress: AddressInput;
103
+ sellAssetAddress: AddressLike;
104
+ buyAssetAddress: AddressLike;
105
+ sellAssetAmount: bigint;
106
+ slippageBound: SippageBoundInput;
107
+ period: number;
108
+ allowSellerCancel: boolean;
109
+ allowBidderCancel: boolean;
110
+ queryId?: number;
111
+ };
112
+ export type CancelRFQParams = {
113
+ strategyVaultAddress: AddressInput;
114
+ rfqIndex: bigint;
115
+ queryID?: number;
116
+ };
117
+ export type UnwrapWTONParams = {
118
+ senderAddress: AddressLike;
119
+ wtonAddress: AddressLike;
120
+ amount: bigint;
121
+ queryId?: number;
122
+ };
123
+ export type SendConfirmQueueParams = {
124
+ strategyVaultAddress: AddressInput;
125
+ depositAssets?: Address[];
126
+ withdrawAssets?: Address[];
127
+ oracleParams?: Cell;
128
+ value?: bigint;
129
+ queryId?: bigint;
130
+ };
131
+ export type ExecuteDepositQueueParams = {
132
+ strategyVaultAddress: AddressInput;
133
+ assetAddress: AddressLike;
134
+ count?: bigint;
135
+ value?: bigint;
136
+ queryId?: bigint;
137
+ };
138
+ export type ExecuteWithdrawQueueParams = {
139
+ strategyVaultAddress: AddressInput;
140
+ assetAddress: AddressLike;
141
+ count?: bigint;
142
+ value?: bigint;
143
+ queryId?: bigint;
144
+ };
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });