stackswap-front-api-test-02 0.10.3 → 0.10.4

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 (127) hide show
  1. package/dist/esm/index.d.ts +106 -0
  2. package/dist/esm/index.js +196 -0
  3. package/dist/esm/index.js.map +1 -0
  4. package/dist/esm/stackswap/config.d.ts +172 -0
  5. package/dist/esm/stackswap/config.js +302 -0
  6. package/dist/esm/stackswap/config.js.map +1 -0
  7. package/dist/esm/stackswap/manager/bridge.manager.d.ts +27 -0
  8. package/dist/esm/stackswap/manager/bridge.manager.js +215 -0
  9. package/dist/esm/stackswap/manager/bridge.manager.js.map +1 -0
  10. package/dist/esm/stackswap/manager/farm.manager.d.ts +41 -0
  11. package/dist/esm/stackswap/manager/farm.manager.js +293 -0
  12. package/dist/esm/stackswap/manager/farm.manager.js.map +1 -0
  13. package/dist/esm/stackswap/manager/farm2.manager.d.ts +106 -0
  14. package/dist/esm/stackswap/manager/farm2.manager.js +625 -0
  15. package/dist/esm/stackswap/manager/farm2.manager.js.map +1 -0
  16. package/dist/esm/stackswap/manager/farm3.manager.d.ts +121 -0
  17. package/dist/esm/stackswap/manager/farm3.manager.js +557 -0
  18. package/dist/esm/stackswap/manager/farm3.manager.js.map +1 -0
  19. package/dist/esm/stackswap/manager/governance.manager.d.ts +9 -0
  20. package/dist/esm/stackswap/manager/governance.manager.js +68 -0
  21. package/dist/esm/stackswap/manager/governance.manager.js.map +1 -0
  22. package/dist/esm/stackswap/manager/groupfarm.manager.d.ts +70 -0
  23. package/dist/esm/stackswap/manager/groupfarm.manager.js +379 -0
  24. package/dist/esm/stackswap/manager/groupfarm.manager.js.map +1 -0
  25. package/dist/esm/stackswap/manager/launchpad.manager.d.ts +18 -0
  26. package/dist/esm/stackswap/manager/launchpad.manager.js +253 -0
  27. package/dist/esm/stackswap/manager/launchpad.manager.js.map +1 -0
  28. package/dist/esm/stackswap/manager/lbtc.manager.d.ts +31 -0
  29. package/dist/esm/stackswap/manager/lbtc.manager.js +327 -0
  30. package/dist/esm/stackswap/manager/lbtc.manager.js.map +1 -0
  31. package/dist/esm/stackswap/manager/lbtcstaking.manager.d.ts +61 -0
  32. package/dist/esm/stackswap/manager/lbtcstaking.manager.js +248 -0
  33. package/dist/esm/stackswap/manager/lbtcstaking.manager.js.map +1 -0
  34. package/dist/esm/stackswap/manager/multisig.manager.d.ts +11 -0
  35. package/dist/esm/stackswap/manager/multisig.manager.js +50 -0
  36. package/dist/esm/stackswap/manager/multisig.manager.js.map +1 -0
  37. package/dist/esm/stackswap/manager/nft.manager.d.ts +55 -0
  38. package/dist/esm/stackswap/manager/nft.manager.js +274 -0
  39. package/dist/esm/stackswap/manager/nft.manager.js.map +1 -0
  40. package/dist/esm/stackswap/manager/operator.manager.d.ts +17 -0
  41. package/dist/esm/stackswap/manager/operator.manager.js +86 -0
  42. package/dist/esm/stackswap/manager/operator.manager.js.map +1 -0
  43. package/dist/esm/stackswap/manager/other.manager.d.ts +9 -0
  44. package/dist/esm/stackswap/manager/other.manager.js +41 -0
  45. package/dist/esm/stackswap/manager/other.manager.js.map +1 -0
  46. package/dist/esm/stackswap/manager/pool.manager.d.ts +34 -0
  47. package/dist/esm/stackswap/manager/pool.manager.js +172 -0
  48. package/dist/esm/stackswap/manager/pool.manager.js.map +1 -0
  49. package/dist/esm/stackswap/manager/poxl.manager.d.ts +16 -0
  50. package/dist/esm/stackswap/manager/poxl.manager.js +72 -0
  51. package/dist/esm/stackswap/manager/poxl.manager.js.map +1 -0
  52. package/dist/esm/stackswap/manager/staking.manager.d.ts +40 -0
  53. package/dist/esm/stackswap/manager/staking.manager.js +295 -0
  54. package/dist/esm/stackswap/manager/staking.manager.js.map +1 -0
  55. package/dist/esm/stackswap/manager/swap.manager.d.ts +71 -0
  56. package/dist/esm/stackswap/manager/swap.manager.js +730 -0
  57. package/dist/esm/stackswap/manager/swap.manager.js.map +1 -0
  58. package/dist/esm/stackswap/manager/token.manager.d.ts +32 -0
  59. package/dist/esm/stackswap/manager/token.manager.js +142 -0
  60. package/dist/esm/stackswap/manager/token.manager.js.map +1 -0
  61. package/dist/esm/stackswap/util.d.ts +35 -0
  62. package/dist/esm/stackswap/util.js +202 -0
  63. package/dist/esm/stackswap/util.js.map +1 -0
  64. package/dist/index.d.ts +106 -0
  65. package/dist/index.js +206 -0
  66. package/dist/index.js.map +1 -0
  67. package/dist/stackswap/config.d.ts +172 -0
  68. package/dist/stackswap/config.js +308 -0
  69. package/dist/stackswap/config.js.map +1 -0
  70. package/dist/stackswap/manager/bridge.manager.d.ts +27 -0
  71. package/dist/stackswap/manager/bridge.manager.js +222 -0
  72. package/dist/stackswap/manager/bridge.manager.js.map +1 -0
  73. package/dist/stackswap/manager/farm.manager.d.ts +41 -0
  74. package/dist/stackswap/manager/farm.manager.js +301 -0
  75. package/dist/stackswap/manager/farm.manager.js.map +1 -0
  76. package/dist/stackswap/manager/farm2.manager.d.ts +106 -0
  77. package/dist/stackswap/manager/farm2.manager.js +632 -0
  78. package/dist/stackswap/manager/farm2.manager.js.map +1 -0
  79. package/dist/stackswap/manager/farm3.manager.d.ts +121 -0
  80. package/dist/stackswap/manager/farm3.manager.js +564 -0
  81. package/dist/stackswap/manager/farm3.manager.js.map +1 -0
  82. package/dist/stackswap/manager/governance.manager.d.ts +9 -0
  83. package/dist/stackswap/manager/governance.manager.js +75 -0
  84. package/dist/stackswap/manager/governance.manager.js.map +1 -0
  85. package/dist/stackswap/manager/groupfarm.manager.d.ts +70 -0
  86. package/dist/stackswap/manager/groupfarm.manager.js +386 -0
  87. package/dist/stackswap/manager/groupfarm.manager.js.map +1 -0
  88. package/dist/stackswap/manager/launchpad.manager.d.ts +18 -0
  89. package/dist/stackswap/manager/launchpad.manager.js +257 -0
  90. package/dist/stackswap/manager/launchpad.manager.js.map +1 -0
  91. package/dist/stackswap/manager/lbtc.manager.d.ts +31 -0
  92. package/dist/stackswap/manager/lbtc.manager.js +334 -0
  93. package/dist/stackswap/manager/lbtc.manager.js.map +1 -0
  94. package/dist/stackswap/manager/lbtcstaking.manager.d.ts +61 -0
  95. package/dist/stackswap/manager/lbtcstaking.manager.js +255 -0
  96. package/dist/stackswap/manager/lbtcstaking.manager.js.map +1 -0
  97. package/dist/stackswap/manager/multisig.manager.d.ts +11 -0
  98. package/dist/stackswap/manager/multisig.manager.js +54 -0
  99. package/dist/stackswap/manager/multisig.manager.js.map +1 -0
  100. package/dist/stackswap/manager/nft.manager.d.ts +55 -0
  101. package/dist/stackswap/manager/nft.manager.js +281 -0
  102. package/dist/stackswap/manager/nft.manager.js.map +1 -0
  103. package/dist/stackswap/manager/operator.manager.d.ts +17 -0
  104. package/dist/stackswap/manager/operator.manager.js +93 -0
  105. package/dist/stackswap/manager/operator.manager.js.map +1 -0
  106. package/dist/stackswap/manager/other.manager.d.ts +9 -0
  107. package/dist/stackswap/manager/other.manager.js +45 -0
  108. package/dist/stackswap/manager/other.manager.js.map +1 -0
  109. package/dist/stackswap/manager/pool.manager.d.ts +34 -0
  110. package/dist/stackswap/manager/pool.manager.js +180 -0
  111. package/dist/stackswap/manager/pool.manager.js.map +1 -0
  112. package/dist/stackswap/manager/poxl.manager.d.ts +16 -0
  113. package/dist/stackswap/manager/poxl.manager.js +79 -0
  114. package/dist/stackswap/manager/poxl.manager.js.map +1 -0
  115. package/dist/stackswap/manager/staking.manager.d.ts +40 -0
  116. package/dist/stackswap/manager/staking.manager.js +302 -0
  117. package/dist/stackswap/manager/staking.manager.js.map +1 -0
  118. package/dist/stackswap/manager/swap.manager.d.ts +71 -0
  119. package/dist/stackswap/manager/swap.manager.js +737 -0
  120. package/dist/stackswap/manager/swap.manager.js.map +1 -0
  121. package/dist/stackswap/manager/token.manager.d.ts +32 -0
  122. package/dist/stackswap/manager/token.manager.js +150 -0
  123. package/dist/stackswap/manager/token.manager.js.map +1 -0
  124. package/dist/stackswap/util.d.ts +35 -0
  125. package/dist/stackswap/util.js +219 -0
  126. package/dist/stackswap/util.js.map +1 -0
  127. package/package.json +1 -1
@@ -0,0 +1,557 @@
1
+ import { callReadOnlyFunction, contractPrincipalCV, cvToValue, FungibleConditionCode, listCV, standardPrincipalCV, uintCV } from '@stacks/transactions';
2
+ import BigNumber from 'bignumber.js';
3
+ import { openContractCall } from '@stacks/connect';
4
+ import { getPostConditionFromAsset, getReadOptions, getWriteOptions, num2decimal, parseAddressToCV } from "../util";
5
+ import _ from 'lodash';
6
+ export var Mode;
7
+ (function (Mode) {
8
+ Mode[Mode["WITH_SERVER"] = 0] = "WITH_SERVER";
9
+ Mode[Mode["ONLY_BLOCKCHAIN"] = 1] = "ONLY_BLOCKCHAIN";
10
+ })(Mode || (Mode = {}));
11
+ export class Farm3Manager {
12
+ constructor(stackswap) {
13
+ this.getStakingAmountAtRound = (round, lpUser) => {
14
+ if (round > Number(lpUser.StartRound)) {
15
+ return lpUser.StakingLockedAmt;
16
+ }
17
+ else if (round === Number(lpUser.StartRound)) {
18
+ return lpUser.StartRoundAmt;
19
+ }
20
+ else if (round < Number(lpUser.StartRound)) {
21
+ return 0;
22
+ }
23
+ };
24
+ this.localCache = {};
25
+ ``;
26
+ this.stackswap = stackswap;
27
+ }
28
+ async getFarmingRound3(bh) {
29
+ try {
30
+ return Math.floor((Number(bh) - 70843) / 504);
31
+ }
32
+ catch (e) {
33
+ return 0;
34
+ }
35
+ }
36
+ async getCurrentFarmingRound3() {
37
+ const bh = await this.stackswap.getCurrentBlocks();
38
+ return await this.getFarmingRound3(Number(bh.tenure_block_height));
39
+ }
40
+ async getFarmingRoundFirstBlock3(cycle) {
41
+ return 70843 + 504 * Number(cycle);
42
+ }
43
+ getPoolUSDPriceFarm(farm, farm_total, oracle_data) {
44
+ let tvl = 0;
45
+ switch (farm.BASE) {
46
+ case 'STX':
47
+ if (farm.token_x.symbol === farm.BASE) {
48
+ tvl = (new BigNumber(farm.pair.balance_x).multipliedBy(farm_total).dividedBy(farm.pair.share_total).dividedBy(new BigNumber(10 ** 12))).multipliedBy(2).multipliedBy(new BigNumber(oracle_data.oracle_stx)).toNumber();
49
+ }
50
+ else {
51
+ tvl = (new BigNumber(farm.pair.balance_y).multipliedBy(farm_total).dividedBy(farm.pair.share_total).dividedBy(new BigNumber(10 ** 12))).multipliedBy(2).multipliedBy(new BigNumber(oracle_data.oracle_stx)).toNumber();
52
+ }
53
+ break;
54
+ case 'STSW':
55
+ if (farm.token_x.symbol === farm.BASE) {
56
+ tvl = (new BigNumber(farm.pair.balance_x).multipliedBy(farm_total).dividedBy(farm.pair.share_total).dividedBy(new BigNumber(10 ** 12))).multipliedBy(2).multipliedBy(new BigNumber(oracle_data.oracle_stsw)).toNumber();
57
+ }
58
+ else {
59
+ tvl = (new BigNumber(farm.pair.balance_y).multipliedBy(farm_total).dividedBy(farm.pair.share_total).dividedBy(new BigNumber(10 ** 12))).multipliedBy(2).multipliedBy(new BigNumber(oracle_data.oracle_stsw)).toNumber();
60
+ }
61
+ break;
62
+ case 'lBTC':
63
+ if (farm.token_x.symbol === farm.BASE) {
64
+ tvl = (new BigNumber(farm.pair.balance_x).multipliedBy(farm_total).dividedBy(farm.pair.share_total).dividedBy(new BigNumber(10 ** 14))).multipliedBy(2).multipliedBy(new BigNumber(oracle_data.oracle_lbtc)).toNumber();
65
+ }
66
+ else {
67
+ tvl = (new BigNumber(farm.pair.balance_y).multipliedBy(farm_total).dividedBy(farm.pair.share_total).dividedBy(new BigNumber(10 ** 14))).multipliedBy(2).multipliedBy(new BigNumber(oracle_data.oracle_lbtc)).toNumber();
68
+ }
69
+ break;
70
+ default:
71
+ tvl = 0;
72
+ }
73
+ return tvl;
74
+ }
75
+ async getLPUser(pool_address) {
76
+ const address = pool_address.split('.');
77
+ const function_option = getReadOptions(this.stackswap, this.stackswap.config.CONTRACT_NAME_STACKSWAP_FARMING_DATA_3(), 'getLPUserOrDefault', [
78
+ contractPrincipalCV(address[0], address[1]),
79
+ standardPrincipalCV(this.stackswap.getSenderAddress()),
80
+ ]);
81
+ const result_raw = await callReadOnlyFunction(function_option);
82
+ const result = cvToValue(result_raw);
83
+ try {
84
+ return {
85
+ ViewAmt: result.ViewAmt.value,
86
+ StakingLockedAmt: result.StakingLockedAmt.value,
87
+ StartRound: result.StartRound.value,
88
+ StartRoundAmt: result.StartRoundAmt.value
89
+ };
90
+ }
91
+ catch (e) {
92
+ console.log(e);
93
+ return {
94
+ ViewAmt: '0',
95
+ StakingLockedAmt: '0',
96
+ StartRound: '0',
97
+ StartRoundAmt: '0'
98
+ };
99
+ }
100
+ }
101
+ async getFarmingStakerStatus3(pool_address, cur_round) {
102
+ const address = pool_address.split('.');
103
+ const function_option = getReadOptions(this.stackswap, this.stackswap.config.CONTRACT_NAME_STACKSWAP_FARMING_DATA_3(), 'getLPUserOrDefault', [
104
+ contractPrincipalCV(address[0], address[1]),
105
+ standardPrincipalCV(this.stackswap.getSenderAddress()),
106
+ ]);
107
+ const result_raw = await callReadOnlyFunction(function_option);
108
+ const result = cvToValue(result_raw);
109
+ try {
110
+ const startRound = Number(result.StartRound.value);
111
+ const pooledToken = result.ViewAmt.value;
112
+ const unclaimedList = [];
113
+ for (let i = startRound; i < cur_round; i++) {
114
+ unclaimedList.push(i);
115
+ }
116
+ const stakedList = unclaimedList;
117
+ return { pooledToken, unclaimedList, stakedList };
118
+ }
119
+ catch (e) {
120
+ console.log(e);
121
+ return { pooledToken: 0, unclaimedList: [], stakedList: [] };
122
+ }
123
+ }
124
+ async getFarmingTotalStatusCycle3(cycle, group) {
125
+ const function_option = getReadOptions(this.stackswap, this.stackswap.config.CONTRACT_NAME_STACKSWAP_FARMING_DATA_3(), 'getGroupHistoryOrDefault', [
126
+ uintCV(cycle),
127
+ uintCV(group),
128
+ ]);
129
+ const result_raw = await callReadOnlyFunction(function_option);
130
+ const result = cvToValue(result_raw);
131
+ try {
132
+ return {
133
+ reward: result.GroupRewardAmt.value,
134
+ value: result.GroupWeightedTVL.value
135
+ };
136
+ }
137
+ catch (e) {
138
+ return {
139
+ reward: 0,
140
+ value: 0
141
+ };
142
+ }
143
+ }
144
+ async getFarmingTotalPoolStatus3(pool_address) {
145
+ const address = pool_address.split('.');
146
+ const function_option = getReadOptions(this.stackswap, this.stackswap.config.CONTRACT_NAME_STACKSWAP_FARMING_DATA_3(), 'getLPOrDefault', [
147
+ contractPrincipalCV(address[0], address[1]),
148
+ ]);
149
+ const result_raw = await callReadOnlyFunction(function_option);
150
+ const result = cvToValue(result_raw);
151
+ try {
152
+ return { amountLP: '0', weight: result.CurWeight.value };
153
+ }
154
+ catch (e) {
155
+ return { amountLP: '0', weight: '1' };
156
+ }
157
+ }
158
+ async getFarmingTotalPoolStatusCycle3(pool_address, cycle) {
159
+ const address = pool_address.split('.');
160
+ const function_option = getReadOptions(this.stackswap, this.stackswap.config.CONTRACT_NAME_STACKSWAP_FARMING_DATA_3(), 'getLPHistoryOrDefault', [
161
+ contractPrincipalCV(address[0], address[1]),
162
+ uintCV(cycle),
163
+ ]);
164
+ const result_raw = await callReadOnlyFunction(function_option);
165
+ const result = cvToValue(result_raw);
166
+ try {
167
+ return {
168
+ value: result.WeightedTVL.value,
169
+ weight: result.Weight.value,
170
+ amountLP: result.LockedAmt.value,
171
+ price: result.Price.value
172
+ };
173
+ }
174
+ catch (e) {
175
+ return {
176
+ value: 0,
177
+ weight: 0,
178
+ amountLP: 0,
179
+ price: 0
180
+ };
181
+ }
182
+ }
183
+ async getFarmingTotalValue3(group) {
184
+ try {
185
+ const function_option = getReadOptions(this.stackswap, this.stackswap.config.CONTRACT_NAME_STACKSWAP_FARMING_DATA_3(), 'getGroupOrDefault', [
186
+ uintCV(group)
187
+ ]);
188
+ const result_raw = await callReadOnlyFunction(function_option);
189
+ const result = cvToValue(result_raw);
190
+ return result.CurRewardAmt.value;
191
+ }
192
+ catch (e) {
193
+ return 0;
194
+ }
195
+ }
196
+ async getFarmingUserRewardPerCycle3(pool_address, cycle) {
197
+ const function_option = getReadOptions(this.stackswap, this.stackswap.config.CONTRACT_NAME_STACKSWAP_FARMING_LOGIC_3(), 'getUserStakingRewardAtRound', [
198
+ parseAddressToCV(pool_address),
199
+ standardPrincipalCV(this.stackswap.getSenderAddress()),
200
+ uintCV(cycle),
201
+ ]);
202
+ const result_raw = await callReadOnlyFunction(function_option);
203
+ const result = cvToValue(result_raw);
204
+ return result;
205
+ }
206
+ async getFarmingUserRewardList3(pool_address, unclaimed_list) {
207
+ const address = pool_address.split('.');
208
+ const function_option = getReadOptions(this.stackswap, this.stackswap.config.CONTRACT_NAME_STACKSWAP_FARMING_LOGIC_3(), 'getFarmingRewardFromList', [
209
+ standardPrincipalCV(this.stackswap.getSenderAddress()),
210
+ contractPrincipalCV(address[0], address[1]),
211
+ listCV(unclaimed_list),
212
+ ]);
213
+ console.log('fkk', {
214
+ addr: this.stackswap.getSenderAddress(),
215
+ pool_address,
216
+ unclaimed_list,
217
+ });
218
+ const result_raw = await callReadOnlyFunction(function_option);
219
+ const result = cvToValue(result_raw);
220
+ console.log('getFarmingUserRewardTotal', result);
221
+ return result;
222
+ }
223
+ async getFarmBalance3(token) {
224
+ const pair_details_options = getReadOptions(this.stackswap, token.addr, 'get-balance', [contractPrincipalCV(this.stackswap.config.STACKSWAP_ADDRESS(), this.stackswap.config.CONTRACT_NAME_STACKSWAP_FARMING_DATA_3())]);
225
+ try {
226
+ const result = await callReadOnlyFunction(pair_details_options);
227
+ return cvToValue(result).value;
228
+ }
229
+ catch (e) {
230
+ return 0;
231
+ }
232
+ }
233
+ async stakeFarmingContract3(pool_address, amountTokens, amountRewards, callback) {
234
+ const address = pool_address.split('.');
235
+ const post_condition = [];
236
+ const amount = new BigNumber(amountTokens).multipliedBy(10 ** 6).toFixed(0).toString();
237
+ post_condition.push(await getPostConditionFromAsset(this.stackswap, this.stackswap.getSenderAddress(), pool_address, amount, FungibleConditionCode.Equal));
238
+ post_condition.push(await getPostConditionFromAsset(this.stackswap, this.stackswap.config.STACKSWAP_ADDRESS() + '.' + this.stackswap.config.CONTRACT_NAME_STACKSWAP_FARMING_DATA_3(), this.stackswap.config.BASE_STSW_DATA().addr, new BigNumber(amountRewards).multipliedBy(10 ** 6).toFixed(0), FungibleConditionCode.Equal));
239
+ const function_option = getWriteOptions(this.stackswap, this.stackswap.config.CONTRACT_NAME_STACKSWAP_FARMING_LOGIC_3(), 'stake', [
240
+ contractPrincipalCV(address[0], address[1]),
241
+ uintCV(amount),
242
+ contractPrincipalCV(this.stackswap.config.STACKSWAP_ADDRESS(), this.stackswap.config.CONTRACT_NAME_ORACLE())
243
+ ], post_condition, callback);
244
+ await openContractCall(function_option);
245
+ }
246
+ async claimFarmingContract3(pool_address, amount_STSW, callback, mode = false) {
247
+ const address = pool_address.split('.');
248
+ if (mode) {
249
+ const post_condition = [];
250
+ post_condition.push(await getPostConditionFromAsset(this.stackswap, this.stackswap.config.STACKSWAP_ADDRESS() + '.' + this.stackswap.config.CONTRACT_NAME_STACKSWAP_FARMING_DATA_3(), this.stackswap.config.BASE_STSW_DATA().addr, amount_STSW, FungibleConditionCode.Equal));
251
+ post_condition.push(await getPostConditionFromAsset(this.stackswap, this.stackswap.config.STACKSWAP_ADDRESS() + '.' + this.stackswap.config.CONTRACT_NAME_REWARD_BALANCER(), this.stackswap.config.BASE_STSW_DATA().addr, 0, FungibleConditionCode.GreaterEqual));
252
+ post_condition.push(await getPostConditionFromAsset(this.stackswap, this.stackswap.config.STACKSWAP_ADDRESS() + '.' + this.stackswap.config.CONTRACT_NAME_REWARD_BALANCER(), this.stackswap.config.BASE_LBTC_DATA().addr, 0, FungibleConditionCode.GreaterEqual));
253
+ post_condition.push(await getPostConditionFromAsset(this.stackswap, this.stackswap.config.STSW_LBTC_LP(), this.stackswap.config.BASE_STSW_DATA().addr, 0, FungibleConditionCode.GreaterEqual));
254
+ post_condition.push(await getPostConditionFromAsset(this.stackswap, this.stackswap.config.STSW_LBTC_LP(), this.stackswap.config.BASE_LBTC_DATA().addr, 0, FungibleConditionCode.GreaterEqual));
255
+ post_condition.push(await getPostConditionFromAsset(this.stackswap, this.stackswap.getSenderAddress(), this.stackswap.config.BASE_STSW_DATA().addr, amount_STSW, FungibleConditionCode.Equal));
256
+ const function_option = getWriteOptions(this.stackswap, this.stackswap.config.CONTRACT_NAME_REWARD_BALANCER(), 'CLAIM_FROM_FARM', [
257
+ contractPrincipalCV(address[0], address[1]),
258
+ contractPrincipalCV(this.stackswap.config.STACKSWAP_ADDRESS(), this.stackswap.config.CONTRACT_NAME_ORACLE())
259
+ ], post_condition, callback);
260
+ await openContractCall(function_option);
261
+ }
262
+ else {
263
+ const post_condition = [];
264
+ post_condition.push(await getPostConditionFromAsset(this.stackswap, this.stackswap.config.STACKSWAP_ADDRESS() + '.' + this.stackswap.config.CONTRACT_NAME_STACKSWAP_FARMING_DATA_3(), this.stackswap.config.BASE_STSW_DATA().addr, new BigNumber(amount_STSW).multipliedBy(10 ** 6).toFixed(0), FungibleConditionCode.Equal));
265
+ const function_option = getWriteOptions(this.stackswap, this.stackswap.config.CONTRACT_NAME_STACKSWAP_FARMING_LOGIC_3(), 'claimReward', [
266
+ contractPrincipalCV(address[0], address[1]),
267
+ contractPrincipalCV(this.stackswap.config.STACKSWAP_ADDRESS(), this.stackswap.config.CONTRACT_NAME_ORACLE())
268
+ ], post_condition, callback);
269
+ await openContractCall(function_option);
270
+ }
271
+ }
272
+ async unstakeFarmingContract3(pool_address, amount_LP, amountRewards, callback) {
273
+ const address = pool_address.split('.');
274
+ const post_condition = [];
275
+ const newAmount = new BigNumber(amount_LP).multipliedBy(10 ** 6).toFixed();
276
+ post_condition.push(await getPostConditionFromAsset(this.stackswap, this.stackswap.config.STACKSWAP_ADDRESS() + '.' + this.stackswap.config.CONTRACT_NAME_STACKSWAP_FARMING_DATA_3(), pool_address, newAmount, FungibleConditionCode.Equal));
277
+ post_condition.push(await getPostConditionFromAsset(this.stackswap, this.stackswap.config.STACKSWAP_ADDRESS() + '.' + this.stackswap.config.CONTRACT_NAME_STACKSWAP_FARMING_DATA_3(), this.stackswap.config.BASE_STSW_DATA().addr, new BigNumber(amountRewards).multipliedBy(10 ** 6).toFixed(0), FungibleConditionCode.Equal));
278
+ const function_option = getWriteOptions(this.stackswap, this.stackswap.config.CONTRACT_NAME_STACKSWAP_FARMING_LOGIC_3(), 'withdrawDirect', [
279
+ contractPrincipalCV(address[0], address[1]),
280
+ uintCV(newAmount),
281
+ contractPrincipalCV(this.stackswap.config.STACKSWAP_ADDRESS(), this.stackswap.config.CONTRACT_NAME_ORACLE())
282
+ ], post_condition, callback);
283
+ await openContractCall(function_option);
284
+ }
285
+ async getRewardBalanceFromFarming3(pool_addr, unclaimed_list) {
286
+ const num_list = [];
287
+ for (const unclaimed of unclaimed_list) {
288
+ num_list.push(uintCV(unclaimed));
289
+ }
290
+ let reward_num = new BigNumber(0);
291
+ try {
292
+ for (let i = 0; i < num_list.length; i += 4) {
293
+ const result = await this.getFarmingUserRewardList3(pool_addr, num_list.slice(i, i + 4 < num_list.length ? i + 4 : num_list.length));
294
+ reward_num = reward_num.plus(new BigNumber(result.value.rewardSum.value));
295
+ }
296
+ return num2decimal(reward_num.toString(), 6);
297
+ }
298
+ catch (e) {
299
+ console.log(e);
300
+ return num2decimal(reward_num.toString(), 6);
301
+ }
302
+ }
303
+ getFarmingAPR(tvl, stsw_price, reward, weight) {
304
+ if (!tvl || new BigNumber(tvl) <= new BigNumber(0)) {
305
+ const temp = new BigNumber(reward).dividedBy(10 ** 12).multipliedBy(10400).multipliedBy(stsw_price);
306
+ return temp.toFixed(3).toString();
307
+ }
308
+ else {
309
+ const tvl_bn = new BigNumber(tvl).multipliedBy(10 ** 12);
310
+ const reward_usd = new BigNumber(reward).multipliedBy(stsw_price);
311
+ const new_reward = reward_usd.div(tvl_bn);
312
+ const new_reward_apr = new_reward.multipliedBy(10400).multipliedBy(weight);
313
+ return new_reward_apr.toFixed(3).toString();
314
+ }
315
+ }
316
+ async getFarmDataFromData(data, type, callback) {
317
+ const oracle_stsw = (await this.stackswap.lbtcManager.getPrice('STSW'))['last-price'].value;
318
+ const oracle_stx = (await this.stackswap.lbtcManager.getPrice('STX'))['last-price'].value;
319
+ const oracle_lbtc = (await this.stackswap.lbtcManager.getPrice('lBTC'))['last-price'].value;
320
+ const bh = await this.stackswap.getCurrentBlocks();
321
+ return await this.getEachFarmData(data, bh.tenure_block_height, { oracle_stsw, oracle_lbtc, oracle_stx }, type, callback);
322
+ }
323
+ checkAndSetFarmAPR(farms, farm_length, oracle_data) {
324
+ if (farms.length === farm_length) {
325
+ const tvls = { 'group1': '0', 'group2': '0', 'group5': '0' };
326
+ for (const farm_temp of farms) {
327
+ switch (farm_temp.farm_group) {
328
+ case 1:
329
+ tvls.group1 = new BigNumber(tvls.group1).plus(new BigNumber(this.getPoolUSDPriceFarm(farm_temp, farm_temp.farm_total_v3, oracle_data)).multipliedBy(farm_temp.weight)).toString();
330
+ break;
331
+ case 2:
332
+ tvls.group2 = new BigNumber(tvls.group2).plus(new BigNumber(this.getPoolUSDPriceFarm(farm_temp, farm_temp.farm_total_v3, oracle_data)).multipliedBy(farm_temp.weight)).toString();
333
+ break;
334
+ case 5:
335
+ tvls.group5 = new BigNumber(tvls.group5).plus(new BigNumber(this.getPoolUSDPriceFarm(farm_temp, farm_temp.farm_total_v3, oracle_data)).multipliedBy(farm_temp.weight)).toString();
336
+ break;
337
+ }
338
+ }
339
+ for (const farm_temp of farms) {
340
+ switch (farm_temp.farm_group) {
341
+ case 1:
342
+ farm_temp.APR = this.getFarmingAPR(tvls.group1, oracle_data.oracle_stsw, farm_temp.reward, farm_temp.weight);
343
+ break;
344
+ case 2:
345
+ farm_temp.APR = this.getFarmingAPR(tvls.group2, oracle_data.oracle_stsw, farm_temp.reward, farm_temp.weight);
346
+ break;
347
+ case 5:
348
+ farm_temp.APR = this.getFarmingAPR(tvls.group5, oracle_data.oracle_stsw, farm_temp.reward, farm_temp.weight);
349
+ break;
350
+ }
351
+ }
352
+ }
353
+ return farms;
354
+ }
355
+ checkAndSetFarmAPR_Dash(farms, farm_length, oracle_data) {
356
+ if (farms.length === farm_length) {
357
+ const tvls = { 'group1': '0', 'group2': '0', 'group5': '0' };
358
+ for (const farm_temp of farms) {
359
+ switch (farm_temp.farm_group) {
360
+ case 1:
361
+ tvls.group1 = new BigNumber(tvls.group1).plus(new BigNumber(this.getPoolUSDPriceFarm(farm_temp, farm_temp.total_locked_lp, oracle_data)).multipliedBy(farm_temp.weight)).toString();
362
+ break;
363
+ case 2:
364
+ tvls.group2 = new BigNumber(tvls.group2).plus(new BigNumber(this.getPoolUSDPriceFarm(farm_temp, farm_temp.total_locked_lp, oracle_data)).multipliedBy(farm_temp.weight)).toString();
365
+ break;
366
+ case 5:
367
+ tvls.group5 = new BigNumber(tvls.group5).plus(new BigNumber(this.getPoolUSDPriceFarm(farm_temp, farm_temp.total_locked_lp, oracle_data)).multipliedBy(farm_temp.weight)).toString();
368
+ break;
369
+ }
370
+ farm_temp.value_per_1LP = new BigNumber(this.getPoolUSDPriceFarm(farm_temp, 1000000, oracle_data)).multipliedBy(farm_temp.weight).toString();
371
+ }
372
+ for (const farm_temp of farms) {
373
+ switch (farm_temp.farm_group) {
374
+ case 1:
375
+ farm_temp.APR = this.getFarmingAPR(tvls.group1, oracle_data.oracle_stsw, farm_temp.reward, farm_temp.weight);
376
+ farm_temp.group_value = tvls.group1;
377
+ break;
378
+ case 2:
379
+ farm_temp.APR = this.getFarmingAPR(tvls.group2, oracle_data.oracle_stsw, farm_temp.reward, farm_temp.weight);
380
+ farm_temp.group_value = tvls.group2;
381
+ break;
382
+ case 5:
383
+ farm_temp.APR = this.getFarmingAPR(tvls.group5, oracle_data.oracle_stsw, farm_temp.reward, farm_temp.weight);
384
+ farm_temp.group_value = tvls.group5;
385
+ break;
386
+ }
387
+ }
388
+ }
389
+ return farms;
390
+ }
391
+ async getEachFarmData(data, bh, oracle_data, type, callback) {
392
+ const tvl_apr = new BigNumber(0);
393
+ const farms = [];
394
+ const farm_length = data.length;
395
+ for (let i = 0; i < data.length; i++) {
396
+ const farm_round = await this.getCurrentFarmingRound3();
397
+ this.getFarmData(data[i], farm_round, bh, tvl_apr, oracle_data, type).then((value) => {
398
+ value.farm_group = data[i].farm_group;
399
+ value.farm_contract = this.stackswap.config.CONTRACT_NAME_STACKSWAP_FARMING_LOGIC_3();
400
+ farms.push(value);
401
+ this.checkAndSetFarmAPR(farms, farm_length, oracle_data);
402
+ callback({ farms, farm_round, oracle_data });
403
+ });
404
+ }
405
+ }
406
+ async getEachFarmDataSerial(data, bh, oracle_data, type) {
407
+ const tvl_apr = new BigNumber(0);
408
+ const farms = [];
409
+ const farm_length = data.length;
410
+ const farm_round = await this.getCurrentFarmingRound3();
411
+ for (let i = 0; i < data.length; i++) {
412
+ const value = await this.getFarmData(data[i], farm_round, bh, tvl_apr, oracle_data, type);
413
+ value.farm_group = data[i].farm_group;
414
+ value.farm_contract = this.stackswap.config.CONTRACT_NAME_STACKSWAP_FARMING_LOGIC_3();
415
+ farms.push(value);
416
+ }
417
+ this.checkAndSetFarmAPR(farms, farm_length, oracle_data);
418
+ return { farms, farm_round, oracle_data };
419
+ }
420
+ delay(ms) {
421
+ return new Promise(resolve => setTimeout(resolve, ms));
422
+ }
423
+ async getEachFarmDataSerialDash(data, bh, oracle_data, type, amount, delayTime = 0) {
424
+ const farms = [];
425
+ const farm_length = data.length;
426
+ for (let i = 0; i < amount; i++) {
427
+ farms.push([]);
428
+ }
429
+ let farm_round = await this.getCurrentFarmingRound3();
430
+ if (farm_round < 65)
431
+ farm_round = 65;
432
+ for (let farm_round_iter = Number(farm_round); farm_round_iter < Number(farm_round) + amount; farm_round_iter++) {
433
+ for (let i = 0; i < data.length; i++) {
434
+ const farm_data = _.cloneDeep(data[i]);
435
+ const value = await this.getFarmDataMinimal(farm_data, farm_round_iter, bh, oracle_data, type, farm_round);
436
+ value.farm_group = farm_data.farm_group;
437
+ value.farm_contract = this.stackswap.config.CONTRACT_NAME_STACKSWAP_FARMING_LOGIC_3();
438
+ farms[farm_round_iter - Number(farm_round)].push(value);
439
+ await this.delay(delayTime);
440
+ }
441
+ this.checkAndSetFarmAPR_Dash(farms[farm_round_iter - Number(farm_round)], farm_length, oracle_data);
442
+ }
443
+ return { farms, farm_round, oracle_data };
444
+ }
445
+ async getFarmData(farm, farm_round, block_height, tvl_apr, oracle_data, type) {
446
+ farm.valid = false;
447
+ farm.cur_round = farm_round;
448
+ switch (type) {
449
+ case Mode.ONLY_BLOCKCHAIN:
450
+ farm.pair = (await this.stackswap.poolManager.getPairDataFromContract(farm.token_x, farm.token_y));
451
+ break;
452
+ case Mode.WITH_SERVER:
453
+ farm.pair = (await this.stackswap.swapManager.findRouterAll(farm.token_x, farm.token_y, Number(block_height))).pair;
454
+ break;
455
+ }
456
+ farm.pair.price = (farm.pair.balance_y / (10 ** farm.token_y.decimal)) / (farm.pair.balance_x / (10 ** farm.token_x.decimal));
457
+ const farm_total_v3 = await this.getFarmBalance3(farm.pair.token_lp);
458
+ farm.TVL = this.getPoolUSDPriceFarm(farm, new BigNumber(farm_total_v3).toString(), oracle_data);
459
+ farm.total_locked_lp = new BigNumber(farm_total_v3).toString();
460
+ farm.farm_total_v3 = (await this.getFarmingTotalPoolStatusCycle3(farm.pair.token_lp.addr, farm_round)).amountLP;
461
+ const farm_temp_total_data = await this.getFarmingTotalValue3(farm.farm_group);
462
+ farm.reward = farm_temp_total_data;
463
+ const lpTotalData = await this.getFarmingTotalPoolStatus3(farm.pair.token_lp.addr);
464
+ farm.weight = lpTotalData.weight;
465
+ tvl_apr = tvl_apr.plus(new BigNumber(this.getPoolUSDPriceFarm(farm, farm.total_locked_lp, oracle_data)).multipliedBy(farm.weight));
466
+ farm.valid = true;
467
+ return farm;
468
+ }
469
+ async getFarmDataMinimal(farm, farm_round, block_height, oracle_data, type, current_round = null) {
470
+ farm.valid = false;
471
+ farm.cur_round = farm_round;
472
+ if (current_round && Number(current_round) + 1 < Number(farm_round))
473
+ farm_round = Number(current_round) + 1;
474
+ if (this.localCache[`${farm.token_swapr}|FarmPairData`] == null ||
475
+ Number(this.localCache[`${farm.token_swapr}|FarmPairData`].block_height) < Number(block_height)) {
476
+ switch (type) {
477
+ case Mode.ONLY_BLOCKCHAIN:
478
+ farm.pair = (await this.stackswap.poolManager.getPairDataFromContract(farm.token_x, farm.token_y));
479
+ break;
480
+ case Mode.WITH_SERVER:
481
+ farm.pair = (await this.stackswap.swapManager.findRouterAll(farm.token_x, farm.token_y, Number(block_height))).pair;
482
+ break;
483
+ }
484
+ this.localCache[`${farm.token_swapr}|FarmPairData`] = {
485
+ block_height: block_height,
486
+ data: farm.pair,
487
+ };
488
+ }
489
+ else {
490
+ farm.pair = this.localCache[`${farm.token_swapr}|FarmPairData`].data;
491
+ }
492
+ farm.pair.price = (farm.pair.balance_y / (10 ** farm.token_y.decimal)) / (farm.pair.balance_x / (10 ** farm.token_x.decimal));
493
+ const temp_farm_round_data = await this.getFarmingTotalPoolStatusCycle3(farm.pair.token_lp.addr, farm_round);
494
+ farm.total_locked_lp = temp_farm_round_data.amountLP;
495
+ farm.TVL = this.getPoolUSDPriceFarm(farm, farm.total_locked_lp, oracle_data);
496
+ if (this.localCache[`${farm.farm_group}|FarmReward`] == null ||
497
+ Number(this.localCache[`${farm.farm_group}|FarmReward`].block_height) < Number(block_height)) {
498
+ const farm_temp_total_data = await this.getFarmingTotalValue3(farm.farm_group);
499
+ farm.reward = farm_temp_total_data;
500
+ this.localCache[`${farm.farm_group}|FarmReward`] = {
501
+ block_height: block_height,
502
+ data: farm_temp_total_data,
503
+ };
504
+ }
505
+ else {
506
+ farm.reward = this.localCache[`${farm.farm_group}|FarmReward`].data;
507
+ }
508
+ let lpTotalData = null;
509
+ if (this.localCache[`${farm.token_swapr}|'FarmTotalPool`] == null ||
510
+ Number(this.localCache[`${farm.token_swapr}|'FarmTotalPool`].block_height) < Number(block_height)) {
511
+ lpTotalData = await this.getFarmingTotalPoolStatus3(farm.pair.token_lp.addr);
512
+ this.localCache[`${farm.token_swapr}|'FarmTotalPool`] = {
513
+ block_height: block_height,
514
+ data: lpTotalData,
515
+ };
516
+ }
517
+ else {
518
+ lpTotalData = this.localCache[`${farm.token_swapr}|'FarmTotalPool`].data;
519
+ }
520
+ farm.weight = lpTotalData.weight;
521
+ farm.valid = true;
522
+ return farm;
523
+ }
524
+ async getFarmUserData3(farm, farm_round, oracle_data, callback) {
525
+ const status_v3 = await this.getFarmingStakerStatus3(farm.pair.token_lp.addr, Number(farm_round));
526
+ farm.claimable_list = status_v3.unclaimedList;
527
+ farm.pooled_lp_v3 = status_v3.pooledToken;
528
+ farm.pooled_stsw = new BigNumber(status_v3.pooledToken).toString();
529
+ farm.stakedList = status_v3.stakedList;
530
+ farm.user_TVL = this.getPoolUSDPriceFarm(farm, farm.pooled_stsw, oracle_data);
531
+ const reward_v2 = await this.getRewardBalanceFromFarming3(farm.pair.token_lp.addr, status_v3.unclaimedList);
532
+ farm.total_reward = new BigNumber(reward_v2).toString();
533
+ callback(farm);
534
+ }
535
+ async getFarmUserData3_seperate(farm, farm_round, oracle_data, callback) {
536
+ const status_v3 = await this.getFarmingStakerStatus3(farm.pair.token_lp.addr, Number(farm_round));
537
+ const pooled_lp_v3 = status_v3.pooledToken;
538
+ const pooled_lp = new BigNumber(status_v3.pooledToken).toString();
539
+ const claimable_list = Number(pooled_lp_v3) == 0 ? [] : status_v3.unclaimedList;
540
+ const stakedList = Number(pooled_lp_v3) == 0 ? [] : status_v3.stakedList;
541
+ const user_TVL = this.getPoolUSDPriceFarm(farm, pooled_lp, oracle_data);
542
+ const reward_v2 = await this.getRewardBalanceFromFarming3(farm.pair.token_lp.addr, claimable_list);
543
+ const total_reward = new BigNumber(reward_v2).toString();
544
+ const userdata = {
545
+ claimable_list: claimable_list,
546
+ pooled_lp_v3: pooled_lp_v3,
547
+ pooled_lp: pooled_lp,
548
+ stakedList: stakedList,
549
+ user_TVL: user_TVL,
550
+ total_reward: total_reward,
551
+ };
552
+ if (callback)
553
+ callback(userdata);
554
+ return userdata;
555
+ }
556
+ }
557
+ //# sourceMappingURL=farm3.manager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"farm3.manager.js","sourceRoot":"","sources":["../../../../src/stackswap/manager/farm3.manager.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ import { StackswapAPI } from "../../index";
2
+ export declare class GovernanceManager {
3
+ stackswap: StackswapAPI;
4
+ constructor(stackswap: StackswapAPI);
5
+ getProposalsList(): Promise<any>;
6
+ getNumVoting(proposal_id: number, governance_name?: string): Promise<any[]>;
7
+ txWithdrawVoting(proposal_id: number, _amount: string, callback?: any, governance_name?: string): Promise<void>;
8
+ txVote(proposal_id: number, vote_mode: string, vote_amount: any, callback?: any, governance_name?: string): Promise<void>;
9
+ }