@alphafi/alphafi-sdk 0.0.36 → 0.0.38

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 (150) hide show
  1. package/README.md +130 -12
  2. package/dist/cjs/common/constants.d.ts +90 -0
  3. package/dist/cjs/common/constants.d.ts.map +1 -1
  4. package/dist/cjs/common/constants.js +67 -5
  5. package/dist/cjs/common/constants.js.map +1 -1
  6. package/dist/cjs/common/maps.d.ts +2 -0
  7. package/dist/cjs/common/maps.d.ts.map +1 -1
  8. package/dist/cjs/common/maps.js +94 -0
  9. package/dist/cjs/common/maps.js.map +1 -1
  10. package/dist/cjs/common/types.d.ts +2 -2
  11. package/dist/cjs/common/types.d.ts.map +1 -1
  12. package/dist/cjs/common/types.js.map +1 -1
  13. package/dist/cjs/getAllVaults.d.ts.map +1 -1
  14. package/dist/cjs/getAllVaults.js +5 -2
  15. package/dist/cjs/getAllVaults.js.map +1 -1
  16. package/dist/cjs/getVaultBalances.d.ts.map +1 -1
  17. package/dist/cjs/getVaultBalances.js +0 -1
  18. package/dist/cjs/getVaultBalances.js.map +1 -1
  19. package/dist/cjs/index.d.ts +5 -0
  20. package/dist/cjs/index.d.ts.map +1 -1
  21. package/dist/cjs/index.js +15 -2
  22. package/dist/cjs/index.js.map +1 -1
  23. package/dist/cjs/sui-sdk/events/fetchCheckRatioEvents.d.ts +3 -0
  24. package/dist/cjs/sui-sdk/events/fetchCheckRatioEvents.d.ts.map +1 -0
  25. package/dist/cjs/sui-sdk/events/fetchCheckRatioEvents.js +44 -0
  26. package/dist/cjs/sui-sdk/events/fetchCheckRatioEvents.js.map +1 -0
  27. package/dist/cjs/sui-sdk/events/fetchEvents.d.ts.map +1 -1
  28. package/dist/cjs/sui-sdk/events/fetchEvents.js +41 -0
  29. package/dist/cjs/sui-sdk/events/fetchEvents.js.map +1 -1
  30. package/dist/cjs/sui-sdk/events/types.d.ts +9 -1
  31. package/dist/cjs/sui-sdk/events/types.d.ts.map +1 -1
  32. package/dist/cjs/sui-sdk/events/types.js.map +1 -1
  33. package/dist/cjs/sui-sdk/functions/fetchUserVaults.d.ts.map +1 -1
  34. package/dist/cjs/sui-sdk/functions/fetchUserVaults.js +4 -2
  35. package/dist/cjs/sui-sdk/functions/fetchUserVaults.js.map +1 -1
  36. package/dist/cjs/sui-sdk/functions/getReceipts.d.ts +4 -4
  37. package/dist/cjs/sui-sdk/functions/getReceipts.d.ts.map +1 -1
  38. package/dist/cjs/sui-sdk/functions/getReceipts.js +26 -28
  39. package/dist/cjs/sui-sdk/functions/getReceipts.js.map +1 -1
  40. package/dist/cjs/transactions/alpha.d.ts +4 -0
  41. package/dist/cjs/transactions/alpha.d.ts.map +1 -0
  42. package/dist/cjs/transactions/alpha.js +104 -0
  43. package/dist/cjs/transactions/alpha.js.map +1 -0
  44. package/dist/cjs/transactions/bluefin.d.ts +15 -0
  45. package/dist/cjs/transactions/bluefin.d.ts.map +1 -0
  46. package/dist/cjs/transactions/bluefin.js +457 -0
  47. package/dist/cjs/transactions/bluefin.js.map +1 -0
  48. package/dist/cjs/transactions/bucket.d.ts +8 -0
  49. package/dist/cjs/transactions/bucket.d.ts.map +1 -0
  50. package/dist/cjs/transactions/bucket.js +131 -0
  51. package/dist/cjs/transactions/bucket.js.map +1 -0
  52. package/dist/cjs/transactions/cetus.d.ts +24 -0
  53. package/dist/cjs/transactions/cetus.d.ts.map +1 -0
  54. package/dist/cjs/transactions/cetus.js +552 -0
  55. package/dist/cjs/transactions/cetus.js.map +1 -0
  56. package/dist/cjs/transactions/collect_rewards.d.ts +3 -0
  57. package/dist/cjs/transactions/collect_rewards.d.ts.map +1 -0
  58. package/dist/cjs/transactions/collect_rewards.js +332 -0
  59. package/dist/cjs/transactions/collect_rewards.js.map +1 -0
  60. package/dist/cjs/transactions/deposit.d.ts +5 -0
  61. package/dist/cjs/transactions/deposit.d.ts.map +1 -0
  62. package/dist/cjs/transactions/deposit.js +57 -0
  63. package/dist/cjs/transactions/deposit.js.map +1 -0
  64. package/dist/cjs/transactions/navi.d.ts +9 -0
  65. package/dist/cjs/transactions/navi.d.ts.map +1 -0
  66. package/dist/cjs/transactions/navi.js +618 -0
  67. package/dist/cjs/transactions/navi.js.map +1 -0
  68. package/dist/cjs/transactions/withdraw.d.ts +6 -0
  69. package/dist/cjs/transactions/withdraw.d.ts.map +1 -0
  70. package/dist/cjs/transactions/withdraw.js +66 -0
  71. package/dist/cjs/transactions/withdraw.js.map +1 -0
  72. package/dist/cjs/transactions/zapDeposit.d.ts +1 -0
  73. package/dist/cjs/transactions/zapDeposit.d.ts.map +1 -0
  74. package/dist/cjs/transactions/zapDeposit.js +730 -0
  75. package/dist/cjs/transactions/zapDeposit.js.map +1 -0
  76. package/dist/esm/common/constants.d.ts +90 -0
  77. package/dist/esm/common/constants.d.ts.map +1 -1
  78. package/dist/esm/common/constants.js +67 -5
  79. package/dist/esm/common/constants.js.map +1 -1
  80. package/dist/esm/common/maps.d.ts +2 -0
  81. package/dist/esm/common/maps.d.ts.map +1 -1
  82. package/dist/esm/common/maps.js +94 -0
  83. package/dist/esm/common/maps.js.map +1 -1
  84. package/dist/esm/common/types.d.ts +2 -2
  85. package/dist/esm/common/types.d.ts.map +1 -1
  86. package/dist/esm/common/types.js.map +1 -1
  87. package/dist/esm/getAllVaults.d.ts.map +1 -1
  88. package/dist/esm/getAllVaults.js +5 -2
  89. package/dist/esm/getAllVaults.js.map +1 -1
  90. package/dist/esm/getVaultBalances.d.ts.map +1 -1
  91. package/dist/esm/getVaultBalances.js +0 -1
  92. package/dist/esm/getVaultBalances.js.map +1 -1
  93. package/dist/esm/index.d.ts +5 -0
  94. package/dist/esm/index.d.ts.map +1 -1
  95. package/dist/esm/index.js +5 -0
  96. package/dist/esm/index.js.map +1 -1
  97. package/dist/esm/sui-sdk/events/fetchCheckRatioEvents.d.ts +3 -0
  98. package/dist/esm/sui-sdk/events/fetchCheckRatioEvents.d.ts.map +1 -0
  99. package/dist/esm/sui-sdk/events/fetchCheckRatioEvents.js +41 -0
  100. package/dist/esm/sui-sdk/events/fetchCheckRatioEvents.js.map +1 -0
  101. package/dist/esm/sui-sdk/events/fetchEvents.d.ts.map +1 -1
  102. package/dist/esm/sui-sdk/events/fetchEvents.js +41 -0
  103. package/dist/esm/sui-sdk/events/fetchEvents.js.map +1 -1
  104. package/dist/esm/sui-sdk/events/types.d.ts +9 -1
  105. package/dist/esm/sui-sdk/events/types.d.ts.map +1 -1
  106. package/dist/esm/sui-sdk/events/types.js.map +1 -1
  107. package/dist/esm/sui-sdk/functions/fetchUserVaults.d.ts.map +1 -1
  108. package/dist/esm/sui-sdk/functions/fetchUserVaults.js +4 -2
  109. package/dist/esm/sui-sdk/functions/fetchUserVaults.js.map +1 -1
  110. package/dist/esm/sui-sdk/functions/getReceipts.d.ts +4 -4
  111. package/dist/esm/sui-sdk/functions/getReceipts.d.ts.map +1 -1
  112. package/dist/esm/sui-sdk/functions/getReceipts.js +26 -28
  113. package/dist/esm/sui-sdk/functions/getReceipts.js.map +1 -1
  114. package/dist/esm/transactions/alpha.d.ts +4 -0
  115. package/dist/esm/transactions/alpha.d.ts.map +1 -0
  116. package/dist/esm/transactions/alpha.js +99 -0
  117. package/dist/esm/transactions/alpha.js.map +1 -0
  118. package/dist/esm/transactions/bluefin.d.ts +15 -0
  119. package/dist/esm/transactions/bluefin.d.ts.map +1 -0
  120. package/dist/esm/transactions/bluefin.js +450 -0
  121. package/dist/esm/transactions/bluefin.js.map +1 -0
  122. package/dist/esm/transactions/bucket.d.ts +8 -0
  123. package/dist/esm/transactions/bucket.d.ts.map +1 -0
  124. package/dist/esm/transactions/bucket.js +127 -0
  125. package/dist/esm/transactions/bucket.js.map +1 -0
  126. package/dist/esm/transactions/cetus.d.ts +24 -0
  127. package/dist/esm/transactions/cetus.d.ts.map +1 -0
  128. package/dist/esm/transactions/cetus.js +539 -0
  129. package/dist/esm/transactions/cetus.js.map +1 -0
  130. package/dist/esm/transactions/collect_rewards.d.ts +3 -0
  131. package/dist/esm/transactions/collect_rewards.d.ts.map +1 -0
  132. package/dist/esm/transactions/collect_rewards.js +329 -0
  133. package/dist/esm/transactions/collect_rewards.js.map +1 -0
  134. package/dist/esm/transactions/deposit.d.ts +5 -0
  135. package/dist/esm/transactions/deposit.d.ts.map +1 -0
  136. package/dist/esm/transactions/deposit.js +53 -0
  137. package/dist/esm/transactions/deposit.js.map +1 -0
  138. package/dist/esm/transactions/navi.d.ts +9 -0
  139. package/dist/esm/transactions/navi.d.ts.map +1 -0
  140. package/dist/esm/transactions/navi.js +614 -0
  141. package/dist/esm/transactions/navi.js.map +1 -0
  142. package/dist/esm/transactions/withdraw.d.ts +6 -0
  143. package/dist/esm/transactions/withdraw.d.ts.map +1 -0
  144. package/dist/esm/transactions/withdraw.js +61 -0
  145. package/dist/esm/transactions/withdraw.js.map +1 -0
  146. package/dist/esm/transactions/zapDeposit.d.ts +2 -0
  147. package/dist/esm/transactions/zapDeposit.d.ts.map +1 -0
  148. package/dist/esm/transactions/zapDeposit.js +730 -0
  149. package/dist/esm/transactions/zapDeposit.js.map +1 -0
  150. package/package.json +4 -2
@@ -0,0 +1,450 @@
1
+ import { Transaction } from "@mysten/sui/transactions";
2
+ import { coinsList } from "../common/coins.js";
3
+ import { getConf } from "../common/constants.js";
4
+ import { cetusPoolMap, doubleAssetPoolCoinMap, poolInfo, } from "../common/maps.js";
5
+ import { getReceipts } from "../sui-sdk/functions/getReceipts.js";
6
+ import { getAmounts } from "./cetus.js";
7
+ import { getSuiClient } from "../sui-sdk/client.js";
8
+ export const depositBluefinSuiFirstTxb = async (amount, poolName, isAmountA, options, transaction = undefined) => {
9
+ const suiClient = getSuiClient();
10
+ const address = options.address;
11
+ let txb;
12
+ if (transaction)
13
+ txb = transaction;
14
+ else
15
+ txb = new Transaction();
16
+ poolName = poolName.toUpperCase();
17
+ const pool1 = doubleAssetPoolCoinMap[poolName].coin1;
18
+ const pool2 = doubleAssetPoolCoinMap[poolName].coin2;
19
+ const receipt = await getReceipts(poolName, address, true);
20
+ let coins1 = [];
21
+ let currentCursor = null;
22
+ do {
23
+ const response = await suiClient.getCoins({
24
+ owner: address,
25
+ coinType: coinsList[pool2].type,
26
+ cursor: currentCursor,
27
+ });
28
+ coins1 = coins1.concat(response.data);
29
+ // Check if there's a next page
30
+ if (response.hasNextPage && response.nextCursor) {
31
+ currentCursor = response.nextCursor;
32
+ }
33
+ else {
34
+ // No more pages available
35
+ // console.log("No more receipts available.");
36
+ break;
37
+ }
38
+ } while (true);
39
+ const amounts = await getAmounts(poolName, isAmountA, amount);
40
+ if (amounts) {
41
+ const amount1 = amounts[0];
42
+ const amount2 = amounts[1];
43
+ let coin1;
44
+ if (coins1.length >= 1) {
45
+ //coin1
46
+ [coin1] = txb.splitCoins(txb.object(coins1[0].coinObjectId), [0]);
47
+ txb.mergeCoins(coin1, coins1.map((c) => c.coinObjectId));
48
+ const [depositCoinB] = txb.splitCoins(coin1, [amount2]);
49
+ //coin2
50
+ const [depositCoinA] = txb.splitCoins(txb.gas, [amount1]);
51
+ const poolinfo = poolInfo[poolName];
52
+ let someReceipt;
53
+ if (receipt.length == 0) {
54
+ [someReceipt] = txb.moveCall({
55
+ target: `0x1::option::none`,
56
+ typeArguments: [poolinfo.receiptType],
57
+ arguments: [],
58
+ });
59
+ }
60
+ else {
61
+ [someReceipt] = txb.moveCall({
62
+ target: `0x1::option::some`,
63
+ typeArguments: [receipt[0].content.type],
64
+ arguments: [txb.object(receipt[0].objectId)],
65
+ });
66
+ }
67
+ console.log(poolinfo.poolId);
68
+ if (poolName === "BLUEFIN-SUI-USDC") {
69
+ txb.moveCall({
70
+ target: `${poolinfo.packageId}::alphafi_bluefin_sui_first_pool::user_deposit`,
71
+ typeArguments: [
72
+ coinsList[pool1].type,
73
+ coinsList[pool2].type,
74
+ coinsList["DEEP"].type,
75
+ coinsList["SUI"].type,
76
+ ],
77
+ arguments: [
78
+ txb.object(getConf().ALPHA_4_VERSION),
79
+ txb.object(getConf().VERSION),
80
+ someReceipt,
81
+ txb.object(poolinfo.poolId),
82
+ depositCoinA,
83
+ depositCoinB,
84
+ txb.object(getConf().ALPHA_DISTRIBUTOR),
85
+ txb.object(poolinfo.investorId),
86
+ txb.object(getConf().BLUEFIN_GLOBAL_CONFIG),
87
+ txb.object(getConf().CETUS_GLOBAL_CONFIG_ID),
88
+ txb.object(getConf().BLUEFIN_SUI_USDC_POOL),
89
+ txb.object(getConf().BLUEFIN_DEEP_SUI_POOL),
90
+ txb.object(cetusPoolMap["USDC-SUI"]),
91
+ txb.object(getConf().CLOCK_PACKAGE_ID),
92
+ ],
93
+ });
94
+ }
95
+ else if (poolName === "BLUEFIN-SUI-BUCK") {
96
+ txb.moveCall({
97
+ target: `${poolinfo.packageId}::alphafi_bluefin_sui_first_pool::user_deposit`,
98
+ typeArguments: [
99
+ coinsList[pool1].type,
100
+ coinsList[pool2].type,
101
+ coinsList["DEEP"].type,
102
+ coinsList["SUI"].type,
103
+ ],
104
+ arguments: [
105
+ txb.object(getConf().ALPHA_4_VERSION),
106
+ txb.object(getConf().VERSION),
107
+ someReceipt,
108
+ txb.object(poolinfo.poolId),
109
+ depositCoinA,
110
+ depositCoinB,
111
+ txb.object(getConf().ALPHA_DISTRIBUTOR),
112
+ txb.object(poolinfo.investorId),
113
+ txb.object(getConf().BLUEFIN_GLOBAL_CONFIG),
114
+ txb.object(getConf().CETUS_GLOBAL_CONFIG_ID),
115
+ txb.object(getConf().BLUEFIN_SUI_BUCK_POOL),
116
+ txb.object(getConf().BLUEFIN_DEEP_SUI_POOL),
117
+ txb.object(cetusPoolMap["BUCK-SUI"]),
118
+ txb.object(getConf().CLOCK_PACKAGE_ID),
119
+ ],
120
+ });
121
+ }
122
+ txb.transferObjects([coin1], address);
123
+ }
124
+ else {
125
+ throw new Error(`No ${pool1} or ${pool2} Coins`);
126
+ }
127
+ }
128
+ return txb;
129
+ };
130
+ export const depositBluefinType1Txb = async (amount, poolName, isAmountA, options, transaction = undefined) => {
131
+ const suiClient = getSuiClient();
132
+ const address = options.address;
133
+ let txb;
134
+ if (transaction)
135
+ txb = transaction;
136
+ else
137
+ txb = new Transaction();
138
+ poolName = poolName.toUpperCase();
139
+ const pool1 = doubleAssetPoolCoinMap[poolName].coin1;
140
+ const pool2 = doubleAssetPoolCoinMap[poolName].coin2;
141
+ const receipt = await getReceipts(poolName, address, true);
142
+ let coins1 = [];
143
+ let coins2 = [];
144
+ let currentCursor = null;
145
+ do {
146
+ const response = await suiClient.getCoins({
147
+ owner: address,
148
+ coinType: coinsList[pool1].type,
149
+ cursor: currentCursor,
150
+ });
151
+ coins1 = coins1.concat(response.data);
152
+ // Check if there's a next page
153
+ if (response.hasNextPage && response.nextCursor) {
154
+ currentCursor = response.nextCursor;
155
+ }
156
+ else {
157
+ // No more pages available
158
+ // console.log("No more receipts available.");
159
+ break;
160
+ }
161
+ } while (true);
162
+ currentCursor = null;
163
+ do {
164
+ const response = await suiClient.getCoins({
165
+ owner: address,
166
+ coinType: coinsList[pool2].type,
167
+ cursor: currentCursor,
168
+ });
169
+ coins2 = coins2.concat(response.data);
170
+ // Check if there's a next page
171
+ if (response.hasNextPage && response.nextCursor) {
172
+ currentCursor = response.nextCursor;
173
+ }
174
+ else {
175
+ // No more pages available
176
+ // console.log("No more receipts available.");
177
+ break;
178
+ }
179
+ } while (true);
180
+ const amounts = await getAmounts(poolName, isAmountA, amount);
181
+ if (amounts) {
182
+ const amount1 = amounts[0];
183
+ const amount2 = amounts[1];
184
+ let coin1;
185
+ let coin2;
186
+ if (coins1.length >= 1 && coins2.length >= 1) {
187
+ //coin1
188
+ [coin1] = txb.splitCoins(txb.object(coins1[0].coinObjectId), [0]);
189
+ txb.mergeCoins(coin1, coins1.map((c) => c.coinObjectId));
190
+ const [depositCoinA] = txb.splitCoins(coin1, [amount1]);
191
+ //coin2
192
+ [coin2] = txb.splitCoins(txb.object(coins2[0].coinObjectId), [0]);
193
+ txb.mergeCoins(coin2, coins2.map((c) => c.coinObjectId));
194
+ const [depositCoinB] = txb.splitCoins(coin2, [amount2]);
195
+ const poolinfo = poolInfo[poolName];
196
+ let someReceipt;
197
+ if (receipt.length == 0) {
198
+ [someReceipt] = txb.moveCall({
199
+ target: `0x1::option::none`,
200
+ typeArguments: [poolinfo.receiptType],
201
+ arguments: [],
202
+ });
203
+ }
204
+ else {
205
+ [someReceipt] = txb.moveCall({
206
+ target: `0x1::option::some`,
207
+ typeArguments: [receipt[0].content.type],
208
+ arguments: [txb.object(receipt[0].objectId)],
209
+ });
210
+ }
211
+ if (poolName === "BLUEFIN-USDT-USDC") {
212
+ txb.moveCall({
213
+ target: `${poolinfo.packageId}::alphafi_bluefin_type_1_pool::user_deposit`,
214
+ typeArguments: [
215
+ coinsList[pool1].type,
216
+ coinsList[pool2].type,
217
+ coinsList["DEEP"].type,
218
+ coinsList["SUI"].type,
219
+ ],
220
+ arguments: [
221
+ txb.object(getConf().ALPHA_4_VERSION),
222
+ txb.object(getConf().VERSION),
223
+ someReceipt,
224
+ txb.object(poolinfo.poolId),
225
+ depositCoinA,
226
+ depositCoinB,
227
+ txb.object(getConf().ALPHA_DISTRIBUTOR),
228
+ txb.object(poolinfo.investorId),
229
+ txb.object(getConf().BLUEFIN_GLOBAL_CONFIG),
230
+ txb.object(getConf().CETUS_GLOBAL_CONFIG_ID),
231
+ txb.object(getConf().BLUEFIN_USDT_USDC_POOL),
232
+ txb.object(getConf().BLUEFIN_DEEP_SUI_POOL),
233
+ txb.object(cetusPoolMap["USDC-USDT"]),
234
+ txb.object(cetusPoolMap["USDC-SUI"]),
235
+ txb.object(getConf().CLOCK_PACKAGE_ID),
236
+ ],
237
+ });
238
+ }
239
+ else if (poolName === "BLUEFIN-AUSD-USDC") {
240
+ txb.moveCall({
241
+ target: `${poolinfo.packageId}::alphafi_bluefin_type_1_pool::user_deposit`,
242
+ typeArguments: [
243
+ coinsList[pool1].type,
244
+ coinsList[pool2].type,
245
+ coinsList["DEEP"].type,
246
+ coinsList["SUI"].type,
247
+ ],
248
+ arguments: [
249
+ txb.object(getConf().ALPHA_4_VERSION),
250
+ txb.object(getConf().VERSION),
251
+ someReceipt,
252
+ txb.object(poolinfo.poolId),
253
+ depositCoinA,
254
+ depositCoinB,
255
+ txb.object(getConf().ALPHA_DISTRIBUTOR),
256
+ txb.object(poolinfo.investorId),
257
+ txb.object(getConf().BLUEFIN_GLOBAL_CONFIG),
258
+ txb.object(getConf().CETUS_GLOBAL_CONFIG_ID),
259
+ txb.object(getConf().BLUEFIN_AUSD_USDC_POOL),
260
+ txb.object(getConf().BLUEFIN_DEEP_SUI_POOL),
261
+ txb.object(cetusPoolMap["USDC-AUSD"]),
262
+ txb.object(cetusPoolMap["USDC-SUI"]),
263
+ txb.object(getConf().CLOCK_PACKAGE_ID),
264
+ ],
265
+ });
266
+ }
267
+ txb.transferObjects([coin1], address);
268
+ txb.transferObjects([coin2], address);
269
+ }
270
+ else {
271
+ throw new Error(`No ${pool1} or ${pool2} Coins`);
272
+ }
273
+ }
274
+ return txb;
275
+ };
276
+ export const withdrawBluefinSuiFirstTxb = async (xTokens, poolName, options) => {
277
+ const address = options.address;
278
+ const txb = new Transaction();
279
+ const pool1 = doubleAssetPoolCoinMap[poolName].coin1;
280
+ const pool2 = doubleAssetPoolCoinMap[poolName].coin2;
281
+ const receipt = await getReceipts(poolName, address, true);
282
+ const alphaReceipt = await getReceipts("ALPHA", address, true);
283
+ if (receipt.length > 0) {
284
+ let alpha_receipt;
285
+ if (alphaReceipt.length == 0) {
286
+ [alpha_receipt] = txb.moveCall({
287
+ target: `0x1::option::none`,
288
+ typeArguments: [getConf().ALPHA_POOL_RECEIPT],
289
+ arguments: [],
290
+ });
291
+ }
292
+ else {
293
+ [alpha_receipt] = txb.moveCall({
294
+ target: `0x1::option::some`,
295
+ typeArguments: [alphaReceipt[0].content.type],
296
+ arguments: [txb.object(alphaReceipt[0].objectId)],
297
+ });
298
+ }
299
+ const poolinfo = poolInfo[poolName];
300
+ if (poolName === "BLUEFIN-SUI-USDC") {
301
+ txb.moveCall({
302
+ target: `${poolinfo.packageId}::alphafi_bluefin_sui_first_pool::user_withdraw`,
303
+ typeArguments: [
304
+ coinsList[pool1].type,
305
+ coinsList[pool2].type,
306
+ coinsList["DEEP"].type,
307
+ coinsList["SUI"].type,
308
+ ],
309
+ arguments: [
310
+ txb.object(getConf().ALPHA_4_VERSION),
311
+ txb.object(getConf().VERSION),
312
+ txb.object(receipt[0].objectId),
313
+ alpha_receipt,
314
+ txb.object(getConf().ALPHA_POOL),
315
+ txb.object(poolinfo.poolId),
316
+ txb.object(getConf().ALPHA_DISTRIBUTOR),
317
+ txb.object(poolinfo.investorId),
318
+ txb.pure.u128(xTokens),
319
+ txb.object(getConf().BLUEFIN_GLOBAL_CONFIG),
320
+ txb.object(getConf().CETUS_GLOBAL_CONFIG_ID),
321
+ txb.object(getConf().BLUEFIN_SUI_USDC_POOL),
322
+ txb.object(getConf().BLUEFIN_DEEP_SUI_POOL),
323
+ txb.object(cetusPoolMap["USDC-SUI"]),
324
+ txb.object(getConf().CLOCK_PACKAGE_ID),
325
+ ],
326
+ });
327
+ }
328
+ else if (poolName === "BLUEFIN-SUI-BUCK") {
329
+ txb.moveCall({
330
+ target: `${poolinfo.packageId}::alphafi_bluefin_sui_first_pool::user_withdraw`,
331
+ typeArguments: [
332
+ coinsList[pool1].type,
333
+ coinsList[pool2].type,
334
+ coinsList["DEEP"].type,
335
+ coinsList["SUI"].type,
336
+ ],
337
+ arguments: [
338
+ txb.object(getConf().ALPHA_4_VERSION),
339
+ txb.object(getConf().VERSION),
340
+ txb.object(receipt[0].objectId),
341
+ alpha_receipt,
342
+ txb.object(getConf().ALPHA_POOL),
343
+ txb.object(poolinfo.poolId),
344
+ txb.object(getConf().ALPHA_DISTRIBUTOR),
345
+ txb.object(poolinfo.investorId),
346
+ txb.pure.u128(xTokens),
347
+ txb.object(getConf().BLUEFIN_GLOBAL_CONFIG),
348
+ txb.object(getConf().CETUS_GLOBAL_CONFIG_ID),
349
+ txb.object(getConf().BLUEFIN_SUI_BUCK_POOL),
350
+ txb.object(getConf().BLUEFIN_DEEP_SUI_POOL),
351
+ txb.object(cetusPoolMap["BUCK-SUI"]),
352
+ txb.object(getConf().CLOCK_PACKAGE_ID),
353
+ ],
354
+ });
355
+ }
356
+ }
357
+ else {
358
+ throw new Error("No receipt found!");
359
+ }
360
+ return txb;
361
+ };
362
+ export const withdrawBluefinType1Txb = async (xTokens, poolName, options) => {
363
+ const address = options.address;
364
+ const txb = new Transaction();
365
+ const pool1 = doubleAssetPoolCoinMap[poolName].coin1;
366
+ const pool2 = doubleAssetPoolCoinMap[poolName].coin2;
367
+ const receipt = await getReceipts(poolName, address, true);
368
+ const alphaReceipt = await getReceipts("ALPHA", address, true);
369
+ if (receipt.length > 0) {
370
+ let alpha_receipt;
371
+ if (alphaReceipt.length == 0) {
372
+ [alpha_receipt] = txb.moveCall({
373
+ target: `0x1::option::none`,
374
+ typeArguments: [getConf().ALPHA_POOL_RECEIPT],
375
+ arguments: [],
376
+ });
377
+ }
378
+ else {
379
+ [alpha_receipt] = txb.moveCall({
380
+ target: `0x1::option::some`,
381
+ typeArguments: [alphaReceipt[0].content.type],
382
+ arguments: [txb.object(alphaReceipt[0].objectId)],
383
+ });
384
+ }
385
+ const poolinfo = poolInfo[poolName];
386
+ if (poolName === "BLUEFIN-USDT-USDC") {
387
+ txb.moveCall({
388
+ target: `${poolinfo.packageId}::alphafi_bluefin_type_1_pool::user_withdraw`,
389
+ typeArguments: [
390
+ coinsList[pool1].type,
391
+ coinsList[pool2].type,
392
+ coinsList["DEEP"].type,
393
+ coinsList["SUI"].type,
394
+ ],
395
+ arguments: [
396
+ txb.object(getConf().ALPHA_4_VERSION),
397
+ txb.object(getConf().VERSION),
398
+ txb.object(receipt[0].objectId),
399
+ alpha_receipt,
400
+ txb.object(getConf().ALPHA_POOL),
401
+ txb.object(poolinfo.poolId),
402
+ txb.object(getConf().ALPHA_DISTRIBUTOR),
403
+ txb.object(poolinfo.investorId),
404
+ txb.pure.u128(xTokens),
405
+ txb.object(getConf().BLUEFIN_GLOBAL_CONFIG),
406
+ txb.object(getConf().CETUS_GLOBAL_CONFIG_ID),
407
+ txb.object(getConf().BLUEFIN_USDT_USDC_POOL),
408
+ txb.object(getConf().BLUEFIN_DEEP_SUI_POOL),
409
+ txb.object(cetusPoolMap["USDC-USDT"]),
410
+ txb.object(cetusPoolMap["USDC-SUI"]),
411
+ txb.object(getConf().CLOCK_PACKAGE_ID),
412
+ ],
413
+ });
414
+ }
415
+ else if (poolName === "BLUEFIN-AUSD-USDC") {
416
+ txb.moveCall({
417
+ target: `${poolinfo.packageId}::alphafi_bluefin_type_1_pool::user_withdraw`,
418
+ typeArguments: [
419
+ coinsList[pool1].type,
420
+ coinsList[pool2].type,
421
+ coinsList["DEEP"].type,
422
+ coinsList["SUI"].type,
423
+ ],
424
+ arguments: [
425
+ txb.object(getConf().ALPHA_4_VERSION),
426
+ txb.object(getConf().VERSION),
427
+ txb.object(receipt[0].objectId),
428
+ alpha_receipt,
429
+ txb.object(getConf().ALPHA_POOL),
430
+ txb.object(poolinfo.poolId),
431
+ txb.object(getConf().ALPHA_DISTRIBUTOR),
432
+ txb.object(poolinfo.investorId),
433
+ txb.pure.u128(xTokens),
434
+ txb.object(getConf().BLUEFIN_GLOBAL_CONFIG),
435
+ txb.object(getConf().CETUS_GLOBAL_CONFIG_ID),
436
+ txb.object(getConf().BLUEFIN_AUSD_USDC_POOL),
437
+ txb.object(getConf().BLUEFIN_DEEP_SUI_POOL),
438
+ txb.object(cetusPoolMap["USDC-AUSD"]),
439
+ txb.object(cetusPoolMap["USDC-SUI"]),
440
+ txb.object(getConf().CLOCK_PACKAGE_ID),
441
+ ],
442
+ });
443
+ }
444
+ }
445
+ else {
446
+ throw new Error("No receipt found!");
447
+ }
448
+ return txb;
449
+ };
450
+ //# sourceMappingURL=bluefin.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bluefin.js","sourceRoot":"","sources":["../../../src/transactions/bluefin.ts"],"names":[],"mappings":"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","sourcesContent":["import { Transaction } from \"@mysten/sui/transactions\";\nimport { CoinStruct } from \"@mysten/sui/client\";\nimport { coinsList } from \"../common/coins.js\";\nimport { getConf } from \"../common/constants.js\";\nimport {\n cetusPoolMap,\n doubleAssetPoolCoinMap,\n poolInfo,\n} from \"../common/maps.js\";\nimport { PoolName, Receipt } from \"../common/types.js\";\nimport { getReceipts } from \"../sui-sdk/functions/getReceipts.js\";\nimport { getAmounts } from \"./cetus.js\";\nimport { getSuiClient } from \"../sui-sdk/client.js\";\n\nexport const depositBluefinSuiFirstTxb = async (\n amount: string,\n poolName: PoolName,\n isAmountA: boolean,\n options: { address: string },\n transaction: Transaction | undefined = undefined,\n): Promise<Transaction> => {\n const suiClient = getSuiClient();\n const address = options.address;\n let txb;\n if (transaction) txb = transaction;\n else txb = new Transaction();\n poolName = poolName.toUpperCase() as PoolName;\n const pool1 = doubleAssetPoolCoinMap[poolName].coin1;\n const pool2 = doubleAssetPoolCoinMap[poolName].coin2;\n\n const receipt: Receipt[] = await getReceipts(poolName, address, true);\n let coins1: CoinStruct[] = [];\n\n let currentCursor: string | null | undefined = null;\n\n do {\n const response = await suiClient.getCoins({\n owner: address,\n coinType: coinsList[pool2].type,\n cursor: currentCursor,\n });\n\n coins1 = coins1.concat(response.data);\n\n // Check if there's a next page\n if (response.hasNextPage && response.nextCursor) {\n currentCursor = response.nextCursor;\n } else {\n // No more pages available\n // console.log(\"No more receipts available.\");\n break;\n }\n } while (true);\n\n const amounts = await getAmounts(poolName, isAmountA, amount);\n if (amounts) {\n const amount1 = amounts[0];\n const amount2 = amounts[1];\n\n let coin1: any;\n if (coins1.length >= 1) {\n //coin1\n [coin1] = txb.splitCoins(txb.object(coins1[0].coinObjectId), [0]);\n txb.mergeCoins(\n coin1,\n coins1.map((c) => c.coinObjectId),\n );\n const [depositCoinB] = txb.splitCoins(coin1, [amount2]);\n\n //coin2\n const [depositCoinA] = txb.splitCoins(txb.gas, [amount1]);\n const poolinfo = poolInfo[poolName];\n let someReceipt: any;\n if (receipt.length == 0) {\n [someReceipt] = txb.moveCall({\n target: `0x1::option::none`,\n typeArguments: [poolinfo.receiptType],\n arguments: [],\n });\n } else {\n [someReceipt] = txb.moveCall({\n target: `0x1::option::some`,\n typeArguments: [receipt[0].content.type],\n arguments: [txb.object(receipt[0].objectId)],\n });\n }\n console.log(poolinfo.poolId);\n\n if (poolName === \"BLUEFIN-SUI-USDC\") {\n txb.moveCall({\n target: `${poolinfo.packageId}::alphafi_bluefin_sui_first_pool::user_deposit`,\n typeArguments: [\n coinsList[pool1].type,\n coinsList[pool2].type,\n coinsList[\"DEEP\"].type,\n coinsList[\"SUI\"].type,\n ],\n arguments: [\n txb.object(getConf().ALPHA_4_VERSION),\n txb.object(getConf().VERSION),\n someReceipt,\n txb.object(poolinfo.poolId),\n depositCoinA,\n depositCoinB,\n txb.object(getConf().ALPHA_DISTRIBUTOR),\n txb.object(poolinfo.investorId),\n txb.object(getConf().BLUEFIN_GLOBAL_CONFIG),\n txb.object(getConf().CETUS_GLOBAL_CONFIG_ID),\n txb.object(getConf().BLUEFIN_SUI_USDC_POOL),\n txb.object(getConf().BLUEFIN_DEEP_SUI_POOL),\n txb.object(cetusPoolMap[\"USDC-SUI\"]),\n txb.object(getConf().CLOCK_PACKAGE_ID),\n ],\n });\n } else if (poolName === \"BLUEFIN-SUI-BUCK\") {\n txb.moveCall({\n target: `${poolinfo.packageId}::alphafi_bluefin_sui_first_pool::user_deposit`,\n typeArguments: [\n coinsList[pool1].type,\n coinsList[pool2].type,\n coinsList[\"DEEP\"].type,\n coinsList[\"SUI\"].type,\n ],\n arguments: [\n txb.object(getConf().ALPHA_4_VERSION),\n txb.object(getConf().VERSION),\n someReceipt,\n txb.object(poolinfo.poolId),\n depositCoinA,\n depositCoinB,\n txb.object(getConf().ALPHA_DISTRIBUTOR),\n txb.object(poolinfo.investorId),\n txb.object(getConf().BLUEFIN_GLOBAL_CONFIG),\n txb.object(getConf().CETUS_GLOBAL_CONFIG_ID),\n txb.object(getConf().BLUEFIN_SUI_BUCK_POOL),\n txb.object(getConf().BLUEFIN_DEEP_SUI_POOL),\n txb.object(cetusPoolMap[\"BUCK-SUI\"]),\n txb.object(getConf().CLOCK_PACKAGE_ID),\n ],\n });\n }\n\n txb.transferObjects([coin1], address);\n } else {\n throw new Error(`No ${pool1} or ${pool2} Coins`);\n }\n }\n\n return txb;\n};\n\nexport const depositBluefinType1Txb = async (\n amount: string,\n poolName: PoolName,\n isAmountA: boolean,\n options: { address: string },\n transaction: Transaction | undefined = undefined,\n): Promise<Transaction> => {\n const suiClient = getSuiClient();\n const address = options.address;\n let txb;\n if (transaction) txb = transaction;\n else txb = new Transaction();\n poolName = poolName.toUpperCase() as PoolName;\n const pool1 = doubleAssetPoolCoinMap[poolName].coin1;\n const pool2 = doubleAssetPoolCoinMap[poolName].coin2;\n\n const receipt: Receipt[] = await getReceipts(poolName, address, true);\n let coins1: CoinStruct[] = [];\n let coins2: CoinStruct[] = [];\n let currentCursor: string | null | undefined = null;\n\n do {\n const response = await suiClient.getCoins({\n owner: address,\n coinType: coinsList[pool1].type,\n cursor: currentCursor,\n });\n\n coins1 = coins1.concat(response.data);\n\n // Check if there's a next page\n if (response.hasNextPage && response.nextCursor) {\n currentCursor = response.nextCursor;\n } else {\n // No more pages available\n // console.log(\"No more receipts available.\");\n break;\n }\n } while (true);\n\n currentCursor = null;\n\n do {\n const response = await suiClient.getCoins({\n owner: address,\n coinType: coinsList[pool2].type,\n cursor: currentCursor,\n });\n\n coins2 = coins2.concat(response.data);\n\n // Check if there's a next page\n if (response.hasNextPage && response.nextCursor) {\n currentCursor = response.nextCursor;\n } else {\n // No more pages available\n // console.log(\"No more receipts available.\");\n break;\n }\n } while (true);\n\n const amounts = await getAmounts(poolName, isAmountA, amount);\n if (amounts) {\n const amount1 = amounts[0];\n const amount2 = amounts[1];\n\n let coin1: any;\n let coin2: any;\n if (coins1.length >= 1 && coins2.length >= 1) {\n //coin1\n [coin1] = txb.splitCoins(txb.object(coins1[0].coinObjectId), [0]);\n txb.mergeCoins(\n coin1,\n coins1.map((c) => c.coinObjectId),\n );\n const [depositCoinA] = txb.splitCoins(coin1, [amount1]);\n\n //coin2\n [coin2] = txb.splitCoins(txb.object(coins2[0].coinObjectId), [0]);\n txb.mergeCoins(\n coin2,\n coins2.map((c) => c.coinObjectId),\n );\n const [depositCoinB] = txb.splitCoins(coin2, [amount2]);\n const poolinfo = poolInfo[poolName];\n let someReceipt: any;\n if (receipt.length == 0) {\n [someReceipt] = txb.moveCall({\n target: `0x1::option::none`,\n typeArguments: [poolinfo.receiptType],\n arguments: [],\n });\n } else {\n [someReceipt] = txb.moveCall({\n target: `0x1::option::some`,\n typeArguments: [receipt[0].content.type],\n arguments: [txb.object(receipt[0].objectId)],\n });\n }\n\n if (poolName === \"BLUEFIN-USDT-USDC\") {\n txb.moveCall({\n target: `${poolinfo.packageId}::alphafi_bluefin_type_1_pool::user_deposit`,\n typeArguments: [\n coinsList[pool1].type,\n coinsList[pool2].type,\n coinsList[\"DEEP\"].type,\n coinsList[\"SUI\"].type,\n ],\n arguments: [\n txb.object(getConf().ALPHA_4_VERSION),\n txb.object(getConf().VERSION),\n someReceipt,\n txb.object(poolinfo.poolId),\n depositCoinA,\n depositCoinB,\n txb.object(getConf().ALPHA_DISTRIBUTOR),\n txb.object(poolinfo.investorId),\n txb.object(getConf().BLUEFIN_GLOBAL_CONFIG),\n txb.object(getConf().CETUS_GLOBAL_CONFIG_ID),\n txb.object(getConf().BLUEFIN_USDT_USDC_POOL),\n txb.object(getConf().BLUEFIN_DEEP_SUI_POOL),\n txb.object(cetusPoolMap[\"USDC-USDT\"]),\n txb.object(cetusPoolMap[\"USDC-SUI\"]),\n txb.object(getConf().CLOCK_PACKAGE_ID),\n ],\n });\n } else if (poolName === \"BLUEFIN-AUSD-USDC\") {\n txb.moveCall({\n target: `${poolinfo.packageId}::alphafi_bluefin_type_1_pool::user_deposit`,\n typeArguments: [\n coinsList[pool1].type,\n coinsList[pool2].type,\n coinsList[\"DEEP\"].type,\n coinsList[\"SUI\"].type,\n ],\n arguments: [\n txb.object(getConf().ALPHA_4_VERSION),\n txb.object(getConf().VERSION),\n someReceipt,\n txb.object(poolinfo.poolId),\n depositCoinA,\n depositCoinB,\n txb.object(getConf().ALPHA_DISTRIBUTOR),\n txb.object(poolinfo.investorId),\n txb.object(getConf().BLUEFIN_GLOBAL_CONFIG),\n txb.object(getConf().CETUS_GLOBAL_CONFIG_ID),\n txb.object(getConf().BLUEFIN_AUSD_USDC_POOL),\n txb.object(getConf().BLUEFIN_DEEP_SUI_POOL),\n txb.object(cetusPoolMap[\"USDC-AUSD\"]),\n txb.object(cetusPoolMap[\"USDC-SUI\"]),\n txb.object(getConf().CLOCK_PACKAGE_ID),\n ],\n });\n }\n\n txb.transferObjects([coin1], address);\n txb.transferObjects([coin2], address);\n } else {\n throw new Error(`No ${pool1} or ${pool2} Coins`);\n }\n }\n\n return txb;\n};\n\nexport const withdrawBluefinSuiFirstTxb = async (\n xTokens: string,\n poolName: PoolName,\n options: { address: string },\n) => {\n const address = options.address;\n const txb = new Transaction();\n const pool1 = doubleAssetPoolCoinMap[poolName].coin1;\n const pool2 = doubleAssetPoolCoinMap[poolName].coin2;\n\n const receipt: Receipt[] = await getReceipts(poolName, address, true);\n const alphaReceipt: Receipt[] = await getReceipts(\"ALPHA\", address, true);\n\n if (receipt.length > 0) {\n let alpha_receipt: any;\n if (alphaReceipt.length == 0) {\n [alpha_receipt] = txb.moveCall({\n target: `0x1::option::none`,\n typeArguments: [getConf().ALPHA_POOL_RECEIPT],\n arguments: [],\n });\n } else {\n [alpha_receipt] = txb.moveCall({\n target: `0x1::option::some`,\n typeArguments: [alphaReceipt[0].content.type],\n arguments: [txb.object(alphaReceipt[0].objectId)],\n });\n }\n const poolinfo = poolInfo[poolName];\n if (poolName === \"BLUEFIN-SUI-USDC\") {\n txb.moveCall({\n target: `${poolinfo.packageId}::alphafi_bluefin_sui_first_pool::user_withdraw`,\n typeArguments: [\n coinsList[pool1].type,\n coinsList[pool2].type,\n coinsList[\"DEEP\"].type,\n coinsList[\"SUI\"].type,\n ],\n arguments: [\n txb.object(getConf().ALPHA_4_VERSION),\n txb.object(getConf().VERSION),\n txb.object(receipt[0].objectId),\n alpha_receipt,\n txb.object(getConf().ALPHA_POOL),\n txb.object(poolinfo.poolId),\n txb.object(getConf().ALPHA_DISTRIBUTOR),\n txb.object(poolinfo.investorId),\n txb.pure.u128(xTokens),\n txb.object(getConf().BLUEFIN_GLOBAL_CONFIG),\n txb.object(getConf().CETUS_GLOBAL_CONFIG_ID),\n txb.object(getConf().BLUEFIN_SUI_USDC_POOL),\n txb.object(getConf().BLUEFIN_DEEP_SUI_POOL),\n txb.object(cetusPoolMap[\"USDC-SUI\"]),\n txb.object(getConf().CLOCK_PACKAGE_ID),\n ],\n });\n } else if (poolName === \"BLUEFIN-SUI-BUCK\") {\n txb.moveCall({\n target: `${poolinfo.packageId}::alphafi_bluefin_sui_first_pool::user_withdraw`,\n typeArguments: [\n coinsList[pool1].type,\n coinsList[pool2].type,\n coinsList[\"DEEP\"].type,\n coinsList[\"SUI\"].type,\n ],\n arguments: [\n txb.object(getConf().ALPHA_4_VERSION),\n txb.object(getConf().VERSION),\n txb.object(receipt[0].objectId),\n alpha_receipt,\n txb.object(getConf().ALPHA_POOL),\n txb.object(poolinfo.poolId),\n txb.object(getConf().ALPHA_DISTRIBUTOR),\n txb.object(poolinfo.investorId),\n txb.pure.u128(xTokens),\n txb.object(getConf().BLUEFIN_GLOBAL_CONFIG),\n txb.object(getConf().CETUS_GLOBAL_CONFIG_ID),\n txb.object(getConf().BLUEFIN_SUI_BUCK_POOL),\n txb.object(getConf().BLUEFIN_DEEP_SUI_POOL),\n txb.object(cetusPoolMap[\"BUCK-SUI\"]),\n txb.object(getConf().CLOCK_PACKAGE_ID),\n ],\n });\n }\n } else {\n throw new Error(\"No receipt found!\");\n }\n\n return txb;\n};\n\nexport const withdrawBluefinType1Txb = async (\n xTokens: string,\n poolName: PoolName,\n options: { address: string },\n) => {\n const address = options.address;\n const txb = new Transaction();\n const pool1 = doubleAssetPoolCoinMap[poolName].coin1;\n const pool2 = doubleAssetPoolCoinMap[poolName].coin2;\n\n const receipt: Receipt[] = await getReceipts(poolName, address, true);\n const alphaReceipt: Receipt[] = await getReceipts(\"ALPHA\", address, true);\n\n if (receipt.length > 0) {\n let alpha_receipt: any;\n if (alphaReceipt.length == 0) {\n [alpha_receipt] = txb.moveCall({\n target: `0x1::option::none`,\n typeArguments: [getConf().ALPHA_POOL_RECEIPT],\n arguments: [],\n });\n } else {\n [alpha_receipt] = txb.moveCall({\n target: `0x1::option::some`,\n typeArguments: [alphaReceipt[0].content.type],\n arguments: [txb.object(alphaReceipt[0].objectId)],\n });\n }\n const poolinfo = poolInfo[poolName];\n if (poolName === \"BLUEFIN-USDT-USDC\") {\n txb.moveCall({\n target: `${poolinfo.packageId}::alphafi_bluefin_type_1_pool::user_withdraw`,\n typeArguments: [\n coinsList[pool1].type,\n coinsList[pool2].type,\n coinsList[\"DEEP\"].type,\n coinsList[\"SUI\"].type,\n ],\n arguments: [\n txb.object(getConf().ALPHA_4_VERSION),\n txb.object(getConf().VERSION),\n txb.object(receipt[0].objectId),\n alpha_receipt,\n txb.object(getConf().ALPHA_POOL),\n txb.object(poolinfo.poolId),\n txb.object(getConf().ALPHA_DISTRIBUTOR),\n txb.object(poolinfo.investorId),\n txb.pure.u128(xTokens),\n txb.object(getConf().BLUEFIN_GLOBAL_CONFIG),\n txb.object(getConf().CETUS_GLOBAL_CONFIG_ID),\n txb.object(getConf().BLUEFIN_USDT_USDC_POOL),\n txb.object(getConf().BLUEFIN_DEEP_SUI_POOL),\n txb.object(cetusPoolMap[\"USDC-USDT\"]),\n txb.object(cetusPoolMap[\"USDC-SUI\"]),\n txb.object(getConf().CLOCK_PACKAGE_ID),\n ],\n });\n } else if (poolName === \"BLUEFIN-AUSD-USDC\") {\n txb.moveCall({\n target: `${poolinfo.packageId}::alphafi_bluefin_type_1_pool::user_withdraw`,\n typeArguments: [\n coinsList[pool1].type,\n coinsList[pool2].type,\n coinsList[\"DEEP\"].type,\n coinsList[\"SUI\"].type,\n ],\n arguments: [\n txb.object(getConf().ALPHA_4_VERSION),\n txb.object(getConf().VERSION),\n txb.object(receipt[0].objectId),\n alpha_receipt,\n txb.object(getConf().ALPHA_POOL),\n txb.object(poolinfo.poolId),\n txb.object(getConf().ALPHA_DISTRIBUTOR),\n txb.object(poolinfo.investorId),\n txb.pure.u128(xTokens),\n txb.object(getConf().BLUEFIN_GLOBAL_CONFIG),\n txb.object(getConf().CETUS_GLOBAL_CONFIG_ID),\n txb.object(getConf().BLUEFIN_AUSD_USDC_POOL),\n txb.object(getConf().BLUEFIN_DEEP_SUI_POOL),\n txb.object(cetusPoolMap[\"USDC-AUSD\"]),\n txb.object(cetusPoolMap[\"USDC-SUI\"]),\n txb.object(getConf().CLOCK_PACKAGE_ID),\n ],\n });\n }\n } else {\n throw new Error(\"No receipt found!\");\n }\n\n return txb;\n};\n"]}
@@ -0,0 +1,8 @@
1
+ import { Transaction } from "@mysten/sui/transactions";
2
+ export declare function bucketDepositTx(amount: number, options: {
3
+ address: string;
4
+ }): Promise<Transaction>;
5
+ export declare function bucketWithdrawTx(xTokens: string, options: {
6
+ address: string;
7
+ }): Promise<Transaction>;
8
+ //# sourceMappingURL=bucket.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bucket.d.ts","sourceRoot":"","sources":["../../../src/transactions/bucket.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAavD,wBAAsB,eAAe,CACnC,MAAM,EAAE,MAAM,EACd,OAAO,EAAE;IAAE,OAAO,EAAE,MAAM,CAAA;CAAE,GAC3B,OAAO,CAAC,WAAW,CAAC,CAgFtB;AAED,wBAAsB,gBAAgB,CACpC,OAAO,EAAE,MAAM,EACf,OAAO,EAAE;IAAE,OAAO,EAAE,MAAM,CAAA;CAAE,GAC3B,OAAO,CAAC,WAAW,CAAC,CA4DtB"}
@@ -0,0 +1,127 @@
1
+ import { Transaction } from "@mysten/sui/transactions";
2
+ import { cetusPoolMap, coinsList, getConf, getReceipts, getSuiClient, poolInfo, singleAssetPoolCoinMap, } from "../index.js";
3
+ export async function bucketDepositTx(amount, options) {
4
+ const C = await getConf();
5
+ const suiClient = getSuiClient();
6
+ const address = options.address;
7
+ const txb = new Transaction();
8
+ const poolData = poolInfo["BUCKET-BUCK"];
9
+ const receipt = await getReceipts("BUCKET-BUCK", address, true);
10
+ let coins = [];
11
+ let currentCursor = null;
12
+ do {
13
+ const response = await suiClient.getCoins({
14
+ owner: address,
15
+ coinType: coinsList[singleAssetPoolCoinMap["BUCKET-BUCK"].coin].type,
16
+ cursor: currentCursor,
17
+ });
18
+ coins = coins.concat(response.data);
19
+ // Check if there's a next page
20
+ if (response.hasNextPage && response.nextCursor) {
21
+ currentCursor = response.nextCursor;
22
+ }
23
+ else {
24
+ // No more pages available
25
+ // console.log("No more receipts available.");
26
+ break;
27
+ }
28
+ } while (true);
29
+ if (coins.length >= 1) {
30
+ const [coin] = txb.splitCoins(txb.object(coins[0].coinObjectId), [0]);
31
+ txb.mergeCoins(coin, coins.map((c) => c.coinObjectId));
32
+ const [depositCoin] = txb.splitCoins(coin, [amount]);
33
+ let someReceipt;
34
+ if (receipt.length == 0) {
35
+ [someReceipt] = txb.moveCall({
36
+ target: `0x1::option::none`,
37
+ typeArguments: [poolData.receiptType],
38
+ arguments: [],
39
+ });
40
+ }
41
+ else {
42
+ [someReceipt] = txb.moveCall({
43
+ target: `0x1::option::some`,
44
+ typeArguments: [receipt[0].content.type],
45
+ arguments: [txb.object(receipt[0].objectId)],
46
+ });
47
+ }
48
+ txb.moveCall({
49
+ target: `${poolData.packageId}::alphafi_bucket_pool_v1::user_deposit`,
50
+ arguments: [
51
+ txb.object(C.ALPHA_3_VERSION),
52
+ txb.object(C.VERSION),
53
+ someReceipt,
54
+ txb.object(poolData.poolId),
55
+ depositCoin,
56
+ txb.object(poolData.investorId),
57
+ txb.object(C.ALPHA_DISTRIBUTOR),
58
+ txb.object(C.BUCKET_PROTOCOL),
59
+ txb.object(C.FOUNTAIN),
60
+ txb.object(C.FLASK),
61
+ txb.object(cetusPoolMap["USDC-SUI"]),
62
+ txb.object(C.CETUS_GLOBAL_CONFIG_ID),
63
+ txb.object(C.CLOCK_PACKAGE_ID),
64
+ ],
65
+ });
66
+ txb.transferObjects([coin], address);
67
+ }
68
+ else {
69
+ throw new Error("No coin");
70
+ }
71
+ return txb;
72
+ }
73
+ export async function bucketWithdrawTx(xTokens, options) {
74
+ const C = await getConf();
75
+ const address = options.address;
76
+ const txb = new Transaction();
77
+ const poolData = poolInfo["BUCKET-BUCK"];
78
+ const receipt = await getReceipts("BUCKET-BUCK", address, true);
79
+ const alphaReceipt = await getReceipts("ALPHA", address, true);
80
+ if (receipt.length > 0) {
81
+ let alpha_receipt;
82
+ if (alphaReceipt.length == 0) {
83
+ [alpha_receipt] = txb.moveCall({
84
+ target: `0x1::option::none`,
85
+ typeArguments: [C.ALPHA_POOL_RECEIPT],
86
+ arguments: [],
87
+ });
88
+ }
89
+ else {
90
+ [alpha_receipt] = txb.moveCall({
91
+ target: `0x1::option::some`,
92
+ typeArguments: [alphaReceipt[0].content.type],
93
+ arguments: [txb.object(alphaReceipt[0].objectId)],
94
+ });
95
+ }
96
+ const [buck] = txb.moveCall({
97
+ target: `${poolData.packageId}::alphafi_bucket_pool_v1::user_withdraw`,
98
+ arguments: [
99
+ txb.object(C.ALPHA_3_VERSION),
100
+ txb.object(C.VERSION),
101
+ txb.object(receipt[0].objectId),
102
+ alpha_receipt,
103
+ txb.object(C.ALPHA_POOL),
104
+ txb.object(poolData.poolId),
105
+ txb.pure.u64(xTokens),
106
+ txb.object(poolData.investorId),
107
+ txb.object(C.ALPHA_DISTRIBUTOR),
108
+ txb.object(C.BUCKET_PROTOCOL),
109
+ txb.object(C.FOUNTAIN),
110
+ txb.object(C.FLASK),
111
+ txb.object(cetusPoolMap["USDC-SUI"]),
112
+ txb.object(C.CETUS_GLOBAL_CONFIG_ID),
113
+ txb.object(C.CLOCK_PACKAGE_ID),
114
+ ],
115
+ });
116
+ txb.moveCall({
117
+ target: `0x2::transfer::public_transfer`,
118
+ typeArguments: [`0x2::coin::Coin<${coinsList["BUCK"].type}>`],
119
+ arguments: [buck, txb.pure.address(address)],
120
+ });
121
+ }
122
+ else {
123
+ throw new Error(`No ${"BUCKET-BUCK"} Receipt`);
124
+ }
125
+ return txb;
126
+ }
127
+ //# sourceMappingURL=bucket.js.map