@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,373 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ShareVault = void 0;
4
+ const core_1 = require("@ton/core");
5
+ const jetton_minter_1 = require("../../wton/jetton-minter");
6
+ class ShareVault {
7
+ address;
8
+ init;
9
+ constructor(address, init) {
10
+ this.address = address;
11
+ this.init = init;
12
+ }
13
+ static Op = {
14
+ // owner
15
+ SetWhitelistPools: 0x59292de8,
16
+ SetTargetWeight: 0x73ffc8,
17
+ SetGasFee: 0x50d87d1d,
18
+ ChangeManager: 0x6780b0d9,
19
+ UpgradeCode: 0x61bddf8b,
20
+ ChangeAdmin: 0x4840664f,
21
+ // manager
22
+ SupplyToPool: 0x996bd32d,
23
+ WithdrawFromPool: 0x188047fa,
24
+ // user
25
+ Supply: 0x480074d8,
26
+ Withdraw: 0xcb03bfaf,
27
+ RequestAssetWalletAddress: 0x16359e7d,
28
+ ActionNotification: 0xa1b21e8b,
29
+ ProvideAggregatedPool: 0xb2a4c51b,
30
+ TakeAggregatedPool: 0x75a40ce7,
31
+ };
32
+ static Error = {
33
+ UnknownOp: 0xffff,
34
+ InvalidWallet: 1002,
35
+ InvalidAddress: 1003,
36
+ NotFoundPoolState: 1004,
37
+ ActionTimeout: 1005,
38
+ InvalidBurnRequest: 1006,
39
+ NotWhitelistedPool: 1007,
40
+ NotEnoughCash: 1008,
41
+ NotEnoughBalance: 1009,
42
+ };
43
+ static Gas = {
44
+ baseFee: (0, core_1.toNano)(0.1),
45
+ };
46
+ static createFromAddress(address) {
47
+ return new ShareVault(address);
48
+ }
49
+ async sendMsgBody(provider, via, value, body) {
50
+ await provider.internal(via, {
51
+ value,
52
+ sendMode: core_1.SendMode.PAY_GAS_SEPARATELY,
53
+ body: body,
54
+ });
55
+ return body;
56
+ }
57
+ async sendSetTargetWeight(provider, via, value, opts) {
58
+ const body = (0, core_1.beginCell)()
59
+ .storeUint(ShareVault.Op.SetTargetWeight, 32)
60
+ .storeUint(opts.queryID ?? 0, 64)
61
+ .storeAddress(opts.pool)
62
+ .storeUint(opts.targetWeight, 14)
63
+ .endCell();
64
+ await provider.internal(via, {
65
+ value,
66
+ sendMode: core_1.SendMode.PAY_GAS_SEPARATELY,
67
+ body: body,
68
+ });
69
+ return body;
70
+ }
71
+ async sendSetGasFee(provider, via, value, opts) {
72
+ const body = ShareVault.createSetGasConfigMsgBody(opts);
73
+ await provider.internal(via, {
74
+ value,
75
+ sendMode: core_1.SendMode.PAY_GAS_SEPARATELY,
76
+ body: body,
77
+ });
78
+ return body;
79
+ }
80
+ async sendSupplyToPool(provider, via, value, opts) {
81
+ const body = (0, core_1.beginCell)()
82
+ .storeUint(ShareVault.Op.SupplyToPool, 32)
83
+ .storeUint(opts.queryID ?? 0, 64)
84
+ .storeAddress(opts.pool)
85
+ .storeCoins(opts.amount)
86
+ .endCell();
87
+ await provider.internal(via, {
88
+ value,
89
+ sendMode: core_1.SendMode.PAY_GAS_SEPARATELY,
90
+ body: body,
91
+ });
92
+ return body;
93
+ }
94
+ async sendWithdrawFromPool(provider, via, value, opts) {
95
+ const body = (0, core_1.beginCell)()
96
+ .storeUint(ShareVault.Op.WithdrawFromPool, 32)
97
+ .storeUint(opts.queryID ?? 0, 64)
98
+ .storeAddress(opts.pool)
99
+ .storeUint(opts.isShare ? 1 : 0, 1)
100
+ .storeCoins(opts.amount)
101
+ .endCell();
102
+ await provider.internal(via, {
103
+ value,
104
+ sendMode: core_1.SendMode.PAY_GAS_SEPARATELY,
105
+ body: body,
106
+ });
107
+ return body;
108
+ }
109
+ async sendChangeManager(provider, via, value, opts) {
110
+ await provider.internal(via, {
111
+ value: value,
112
+ sendMode: core_1.SendMode.PAY_GAS_SEPARATELY,
113
+ body: (0, core_1.beginCell)()
114
+ .storeUint(ShareVault.Op.ChangeManager, 32)
115
+ .storeUint(opts.queryID ?? 0, 64)
116
+ .storeAddress(opts.address)
117
+ .endCell(),
118
+ });
119
+ }
120
+ async sendChangeAdmin(provider, via, value, opts) {
121
+ await provider.internal(via, {
122
+ value: value,
123
+ sendMode: core_1.SendMode.PAY_GAS_SEPARATELY,
124
+ body: ShareVault.createChangeAdminMsgBody(opts),
125
+ });
126
+ }
127
+ static createChangeAdminMsgBody(opts) {
128
+ return (0, core_1.beginCell)()
129
+ .storeUint(ShareVault.Op.ChangeAdmin, 32)
130
+ .storeUint(opts.queryID ?? 0, 64)
131
+ .storeAddress(opts.address)
132
+ .endCell();
133
+ }
134
+ static parseChangeAdminMsgBody(cell) {
135
+ const slice = cell.beginParse();
136
+ const op = slice.loadUint(32);
137
+ const queryID = slice.loadUint(64);
138
+ const address = slice.loadAddress();
139
+ return { op, queryID, address };
140
+ }
141
+ static createSetGasConfigMsgBody(params) {
142
+ const gasFeeCell = (0, core_1.beginCell)()
143
+ .storeCoins(params.gasFee.supply)
144
+ .storeCoins(params.gasFee.withdraw)
145
+ .storeCoins(params.gasFee.factorialSupply)
146
+ .storeCoins(params.gasFee.factorialWithdraw)
147
+ .storeCoins(params.gasFee.mintVaultShareTokens)
148
+ .endCell();
149
+ return (0, core_1.beginCell)()
150
+ .storeUint(ShareVault.Op.SetGasFee, 32)
151
+ .storeUint(params.queryID ?? 0, 64)
152
+ .storeRef(gasFeeCell)
153
+ .endCell();
154
+ }
155
+ static createSetWhitelistPoolsMsgBody(params) {
156
+ return (0, core_1.beginCell)()
157
+ .storeUint(ShareVault.Op.SetWhitelistPools, 32)
158
+ .storeUint(params.queryID ?? 0, 64)
159
+ .storeRef(ShareVault.createWhitelistsCell(params.whitelists))
160
+ .endCell();
161
+ }
162
+ static createChangeManagerMsgBody(params) {
163
+ return (0, core_1.beginCell)()
164
+ .storeUint(ShareVault.Op.ChangeManager, 32)
165
+ .storeUint(params.queryID ?? 0, 64)
166
+ .storeAddress(params.manager)
167
+ .endCell();
168
+ }
169
+ static createWhitelistsCell(whitelists) {
170
+ const chunkedWhitelists = [];
171
+ for (let i = 0; i < whitelists.length; i += 3) {
172
+ chunkedWhitelists.push(whitelists.slice(i, i + 3));
173
+ }
174
+ const cells = chunkedWhitelists.map((chunk) => {
175
+ let cell = (0, core_1.beginCell)();
176
+ cell = cell.storeUint(chunk.length, 2);
177
+ chunk.forEach(([address, flag]) => {
178
+ cell = cell.storeAddress(address).storeUint(flag, 1);
179
+ });
180
+ return cell;
181
+ });
182
+ const finalCell = cells.reduce((acc, cur) => {
183
+ return acc ? cur.storeRef(acc) : cur;
184
+ }, null);
185
+ return finalCell?.endCell() || (0, core_1.beginCell)().endCell();
186
+ }
187
+ async getWalletAddress(provider, address) {
188
+ const result = await provider.get("get_wallet_address", [
189
+ {
190
+ type: "slice",
191
+ cell: (0, core_1.beginCell)().storeAddress(address).endCell(),
192
+ },
193
+ ]);
194
+ return result.stack.readAddress();
195
+ }
196
+ async getPoolAggregatorAddress(provider, address) {
197
+ const result = await provider.get("get_pool_aggregator_address", [
198
+ {
199
+ type: "slice",
200
+ cell: (0, core_1.beginCell)().storeAddress(address).endCell(),
201
+ },
202
+ ]);
203
+ return result.stack.readAddress();
204
+ }
205
+ static calculateGasFee(actionOp, baseFee, poolCount, gas, isWTON = false) {
206
+ if (actionOp === ShareVault.Op.Supply) {
207
+ let totalFee = baseFee;
208
+ totalFee += gas.supply;
209
+ totalFee += gas.factorialSupply;
210
+ if (isWTON)
211
+ totalFee += jetton_minter_1.WTON_UNWRAP_GAS;
212
+ return totalFee;
213
+ }
214
+ else if (actionOp === ShareVault.Op.Withdraw) {
215
+ let totalFee = baseFee;
216
+ totalFee += gas.withdraw;
217
+ totalFee += BigInt(poolCount) * gas.factorialWithdraw;
218
+ if (isWTON)
219
+ totalFee += BigInt(poolCount) * jetton_minter_1.WTON_UNWRAP_GAS;
220
+ return totalFee;
221
+ }
222
+ else if (actionOp === ShareVault.Op.SupplyToPool) {
223
+ let totalFee = baseFee;
224
+ totalFee += gas.supply;
225
+ totalFee += gas.factorialSupply;
226
+ return totalFee;
227
+ }
228
+ else if (actionOp === ShareVault.Op.WithdrawFromPool) {
229
+ let totalFee = baseFee;
230
+ totalFee += gas.withdraw;
231
+ totalFee += gas.factorialWithdraw;
232
+ return totalFee;
233
+ }
234
+ throw "invalid opcode";
235
+ }
236
+ async getJettonData(provider) {
237
+ const _result = await provider.get("get_jetton_data", []);
238
+ const totalSupply = _result.stack.readBigNumber();
239
+ _result.stack.readBigNumber();
240
+ const admin = _result.stack.readAddress();
241
+ const content = _result.stack.readStringOpt();
242
+ return {
243
+ totalSupply,
244
+ admin,
245
+ content,
246
+ };
247
+ }
248
+ async sendUpgradeCode(provider, via, value, opts) {
249
+ await provider.internal(via, {
250
+ value: value,
251
+ sendMode: core_1.SendMode.PAY_GAS_SEPARATELY,
252
+ body: ShareVault.createUpgradeCodeMsgBody(opts),
253
+ });
254
+ }
255
+ async getVaultData(provider) {
256
+ const state = await provider.getState();
257
+ if (state.state.type !== "active")
258
+ throw "not active";
259
+ if (!state.state.data)
260
+ throw "not active";
261
+ const data = core_1.Cell.fromBoc(state.state.data)[0];
262
+ return {
263
+ code: core_1.Cell.fromBoc(state.state.code)[0],
264
+ address: this.address,
265
+ ...ShareVault.parseVaultData(data),
266
+ };
267
+ }
268
+ static parseVaultData(_data) {
269
+ const data = _data.beginParse();
270
+ const totalSupply = data.loadCoins();
271
+ const ownerAddress = data.loadMaybeAddress();
272
+ const managerAddress = data.loadMaybeAddress();
273
+ const assetBalance = data.loadCoins();
274
+ const cash = data.loadCoins();
275
+ const totalTargetWeight = data.loadCoins();
276
+ const nextAggregatorIndex = data.loadCoins();
277
+ const isWtonVault = data.loadBoolean();
278
+ const _whitelistedPools = data.loadDict(core_1.Dictionary.Keys.Address(), DictioryValueAccountWhitelistPool);
279
+ const whitelistedPools = _whitelistedPools.keys().reduce((acc, cur) => {
280
+ acc[cur.toString()] = {
281
+ address: cur,
282
+ ..._whitelistedPools.get(cur),
283
+ };
284
+ return acc;
285
+ }, {});
286
+ const config = data.loadRef().beginParse();
287
+ const assetAddress = config.loadAddress();
288
+ const assetWalletAddress = config.loadMaybeAddress();
289
+ const content = config.loadRef();
290
+ const walletCode = config.loadRef();
291
+ const pool_aggregator_code = config.loadRef();
292
+ const gasConfig = ShareVault.parseGasConfig(data.loadRef());
293
+ return {
294
+ totalSupply,
295
+ owner: ownerAddress,
296
+ manager: managerAddress,
297
+ asset: assetAddress,
298
+ balance: assetBalance,
299
+ cash,
300
+ totalTargetWeight,
301
+ nextAggregatorIndex,
302
+ isWtonVault,
303
+ assetWallet: assetWalletAddress,
304
+ whitelistedPools,
305
+ minimumGasFee: gasConfig,
306
+ };
307
+ }
308
+ static parseGasConfig(cell) {
309
+ const slice = cell.beginParse();
310
+ return {
311
+ supply: slice.loadCoins(),
312
+ withdraw: slice.loadCoins(),
313
+ factorialSupply: slice.loadCoins(),
314
+ factorialWithdraw: slice.loadCoins(),
315
+ mintVaultShareTokens: slice.loadCoins(),
316
+ };
317
+ }
318
+ static createSupplyForwardPayload(opts) {
319
+ return (0, core_1.beginCell)()
320
+ .storeAddress(opts.responseAddress)
321
+ .storeCoins(opts.jettonForwardTonAmount ?? 0n)
322
+ .storeMaybeRef(opts.jettonForwardPayload)
323
+ .storeCoins(opts.actionForwardTonAmount ?? 0n)
324
+ .storeMaybeRef(opts.actionForwardPayload)
325
+ .endCell();
326
+ }
327
+ static createWithdrawForwardPayload(opts = {}) {
328
+ return (0, core_1.beginCell)()
329
+ .storeCoins(opts.jettonForwardTonAmount ?? 0n)
330
+ .storeMaybeRef(opts.jettonForwardPayload)
331
+ .storeCoins(opts.actionForwardTonAmount ?? 0n)
332
+ .storeMaybeRef(opts.actionForwardPayload)
333
+ .endCell();
334
+ }
335
+ static createSetGasFeeMsgBody(opts) {
336
+ return (0, core_1.beginCell)()
337
+ .storeUint(ShareVault.Op.SetGasFee, 32)
338
+ .storeUint(opts.queryID ?? 0, 64)
339
+ .storeRef(opts.gasFee)
340
+ .endCell();
341
+ }
342
+ static parseSetGasFeeMsgBody(cell) {
343
+ const slice = cell.beginParse();
344
+ const op = slice.loadUint(32);
345
+ const queryID = slice.loadUint(64);
346
+ const gasFee = slice.loadRef();
347
+ return { op, queryID, gasFee };
348
+ }
349
+ async getState(provider) {
350
+ return await provider.getState();
351
+ }
352
+ static createUpgradeCodeMsgBody(opts) {
353
+ return (0, core_1.beginCell)()
354
+ .storeUint(ShareVault.Op.UpgradeCode, 32)
355
+ .storeUint(opts.queryID ?? 0, 64)
356
+ .storeRef(opts.newCode)
357
+ .endCell();
358
+ }
359
+ }
360
+ exports.ShareVault = ShareVault;
361
+ const DictioryValueAccountWhitelistPool = {
362
+ serialize: (src, builder) => { },
363
+ parse: (src) => {
364
+ const isWhitelisted = src.loadBit();
365
+ const targetWeight = BigInt(src.loadUint(14));
366
+ const supply = src.loadCoins();
367
+ return {
368
+ isWhitelisted,
369
+ targetWeight,
370
+ supply,
371
+ };
372
+ },
373
+ };