stackswap-front-api-test-02 1.0.115 → 1.0.118
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.
- package/dist/esm/index.d.ts +3 -0
- package/dist/esm/index.js +2 -0
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/stackswap/config.d.ts +4 -0
- package/dist/esm/stackswap/config.js +9 -0
- package/dist/esm/stackswap/config.js.map +1 -1
- package/dist/esm/stackswap/manager/farm.manager.js +0 -1
- package/dist/esm/stackswap/manager/farm.manager.js.map +1 -1
- package/dist/esm/stackswap/manager/farm2.manager.js +13 -2
- package/dist/esm/stackswap/manager/farm2.manager.js.map +1 -1
- package/dist/esm/stackswap/manager/groupfarm.manager.d.ts +33 -0
- package/dist/esm/stackswap/manager/groupfarm.manager.js +254 -0
- package/dist/esm/stackswap/manager/groupfarm.manager.js.map +1 -0
- package/dist/esm/stackswap/manager/launchpad.manager.d.ts +2 -0
- package/dist/esm/stackswap/manager/launchpad.manager.js +37 -2
- package/dist/esm/stackswap/manager/launchpad.manager.js.map +1 -1
- package/dist/esm/stackswap/manager/lbtcstaking.manager.js +1 -1
- package/dist/esm/stackswap/manager/lbtcstaking.manager.js.map +1 -1
- package/dist/index.d.ts +3 -0
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -1
- package/dist/index.umd.js +1 -1
- package/dist/stackswap/config.d.ts +4 -0
- package/dist/stackswap/config.js +9 -0
- package/dist/stackswap/config.js.map +1 -1
- package/dist/stackswap/manager/farm.manager.js +0 -1
- package/dist/stackswap/manager/farm.manager.js.map +1 -1
- package/dist/stackswap/manager/farm2.manager.js +13 -2
- package/dist/stackswap/manager/farm2.manager.js.map +1 -1
- package/dist/stackswap/manager/groupfarm.manager.d.ts +33 -0
- package/dist/stackswap/manager/groupfarm.manager.js +261 -0
- package/dist/stackswap/manager/groupfarm.manager.js.map +1 -0
- package/dist/stackswap/manager/launchpad.manager.d.ts +2 -0
- package/dist/stackswap/manager/launchpad.manager.js +35 -0
- package/dist/stackswap/manager/launchpad.manager.js.map +1 -1
- package/dist/stackswap/manager/lbtcstaking.manager.js +1 -1
- package/dist/stackswap/manager/lbtcstaking.manager.js.map +1 -1
- package/package.json +1 -1
- package/src/index.ts +5 -0
- package/src/stackswap/config.ts +12 -0
- package/src/stackswap/manager/farm.manager.ts +1 -1
- package/src/stackswap/manager/farm2.manager.ts +12 -2
- package/src/stackswap/manager/groupfarm.manager.ts +307 -0
- package/src/stackswap/manager/launchpad.manager.ts +45 -2
- package/src/stackswap/manager/lbtcstaking.manager.ts +1 -1
|
@@ -0,0 +1,307 @@
|
|
|
1
|
+
import {
|
|
2
|
+
callReadOnlyFunction,
|
|
3
|
+
contractPrincipalCV,
|
|
4
|
+
cvToValue, FungibleConditionCode,
|
|
5
|
+
listCV,
|
|
6
|
+
standardPrincipalCV,
|
|
7
|
+
uintCV
|
|
8
|
+
} from '@stacks/transactions';
|
|
9
|
+
import BigNumber from 'bignumber.js';
|
|
10
|
+
import {openContractCall} from '@stacks/connect';
|
|
11
|
+
import {getPostConditionFromAsset, getReadOptions, getWriteOptions, num2decimal, parseAddressToCV} from "../util";
|
|
12
|
+
import {StackswapAPI} from "../../index";
|
|
13
|
+
|
|
14
|
+
export enum Mode {
|
|
15
|
+
WITH_SERVER,
|
|
16
|
+
ONLY_BLOCKCHAIN
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
export class GroupFarmManager {
|
|
20
|
+
stackswap: StackswapAPI;
|
|
21
|
+
|
|
22
|
+
constructor(stackswap: StackswapAPI) {``
|
|
23
|
+
this.stackswap = stackswap;
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
async getAllDatas(farming_contract: string) {
|
|
27
|
+
const function_option = getReadOptions(this.stackswap, farming_contract, 'getAllDatas', [
|
|
28
|
+
]);
|
|
29
|
+
const result_raw = await callReadOnlyFunction(function_option);
|
|
30
|
+
const result = cvToValue(result_raw);
|
|
31
|
+
// console.log('getFarmingUserRewardTotal', result);
|
|
32
|
+
return result;
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
async getFarmingRound(bh: number, farming_contract: string) {
|
|
36
|
+
try {
|
|
37
|
+
const function_option = getReadOptions(this.stackswap, farming_contract, 'getRewardRound', [
|
|
38
|
+
uintCV(bh)
|
|
39
|
+
]);
|
|
40
|
+
const result_raw = await callReadOnlyFunction(function_option);
|
|
41
|
+
const result = cvToValue(result_raw);
|
|
42
|
+
// console.log('farming round', result);
|
|
43
|
+
return result.value;
|
|
44
|
+
} catch (e) {
|
|
45
|
+
return 0;
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
async getCurrentFarmingRound2(farming_contract: string) {
|
|
50
|
+
const bh = await this.stackswap.getCurrentBlock();
|
|
51
|
+
return await this.getFarmingRound(Number(bh), farming_contract);
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
|
|
55
|
+
async getFarmingRoundFirstBlock(cycle: number, farming_contract: string) {
|
|
56
|
+
const function_option = getReadOptions(this.stackswap, farming_contract, 'getFirstBlockOfRound', [
|
|
57
|
+
uintCV(cycle)
|
|
58
|
+
]);
|
|
59
|
+
const result_raw = await callReadOnlyFunction(function_option);
|
|
60
|
+
const result = cvToValue(result_raw);
|
|
61
|
+
// console.log(result);
|
|
62
|
+
return result;
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
|
|
66
|
+
async getFarmingStakerStatus(stakingToken: string, cur_round: number, farming_contract: string) {
|
|
67
|
+
const address = stakingToken.split('.');
|
|
68
|
+
console.log('getFarmingStakerStatus', farming_contract);
|
|
69
|
+
const function_option = getReadOptions(this.stackswap, farming_contract, 'getUserData', [
|
|
70
|
+
contractPrincipalCV(address[0], address[1]),
|
|
71
|
+
standardPrincipalCV(this.stackswap.getSenderAddress()),
|
|
72
|
+
]);
|
|
73
|
+
const result_raw = await callReadOnlyFunction(function_option);
|
|
74
|
+
const result = cvToValue(result_raw);
|
|
75
|
+
try {
|
|
76
|
+
console.log('getFarmingStakerStatus', result);
|
|
77
|
+
const pooledToken = result.value.amountLP.value;
|
|
78
|
+
const unclaimedList = [];
|
|
79
|
+
const stakedList = []
|
|
80
|
+
for (const unclaimedElement of result.value.unclaimedList.value) {
|
|
81
|
+
if (unclaimedElement.value < cur_round) {
|
|
82
|
+
unclaimedList.push(unclaimedElement.value);
|
|
83
|
+
// console.log('TTT', unclaimedElement.value)
|
|
84
|
+
}
|
|
85
|
+
stakedList.push(unclaimedElement.value);
|
|
86
|
+
}
|
|
87
|
+
// console.log({pooledToken, unclaimedList, stakedList});
|
|
88
|
+
return {pooledToken, unclaimedList, stakedList};
|
|
89
|
+
} catch (e) {
|
|
90
|
+
console.log(e);
|
|
91
|
+
return {pooledToken: 0, unclaimedList: [], stakedList: []}
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
|
|
96
|
+
async getTotalData(stakingToken: string, farming_contract: string) {
|
|
97
|
+
const address = stakingToken.split('.');
|
|
98
|
+
const function_option = getReadOptions(this.stackswap, farming_contract, 'getTotalData', [
|
|
99
|
+
contractPrincipalCV(address[0], address[1]),
|
|
100
|
+
]);
|
|
101
|
+
const result_raw = await callReadOnlyFunction(function_option);
|
|
102
|
+
const result = cvToValue(result_raw);
|
|
103
|
+
// console.log('lp total data', result);
|
|
104
|
+
try {
|
|
105
|
+
return result.value;
|
|
106
|
+
// return {amountLP: result.value.amountLP.value, weight: '3'};
|
|
107
|
+
} catch (e) {
|
|
108
|
+
return 0;
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
async getRoundData(stakingToken: string, cycle: number, farming_contract: string) {
|
|
113
|
+
const address = stakingToken.split('.');
|
|
114
|
+
const function_option = getReadOptions(this.stackswap, farming_contract, 'getRoundData', [
|
|
115
|
+
contractPrincipalCV(address[0], address[1]),
|
|
116
|
+
uintCV(cycle),
|
|
117
|
+
]);
|
|
118
|
+
const result_raw = await callReadOnlyFunction(function_option);
|
|
119
|
+
const result = cvToValue(result_raw);
|
|
120
|
+
// console.log('lp round data', result);
|
|
121
|
+
try {
|
|
122
|
+
return new result.value;
|
|
123
|
+
} catch (e) {
|
|
124
|
+
return '0';
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
|
|
128
|
+
async getUserData(stakingToken: string, farming_contract: string) {
|
|
129
|
+
try {
|
|
130
|
+
const address = stakingToken.split('.');
|
|
131
|
+
const function_option = getReadOptions(this.stackswap, farming_contract, 'getUserData', [
|
|
132
|
+
contractPrincipalCV(address[0], address[1]),
|
|
133
|
+
standardPrincipalCV(this.stackswap.getSenderAddress()),
|
|
134
|
+
]);
|
|
135
|
+
const result_raw = await callReadOnlyFunction(function_option);
|
|
136
|
+
const result = cvToValue(result_raw);
|
|
137
|
+
// console.log('get_farming_total',result.value);
|
|
138
|
+
return result.value;
|
|
139
|
+
} catch (e) {
|
|
140
|
+
return 0;
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
|
|
144
|
+
async getUserNFTData( farming_contract: string) {
|
|
145
|
+
try {
|
|
146
|
+
const function_option = getReadOptions(this.stackswap, farming_contract, 'getUserNFTData', [
|
|
147
|
+
standardPrincipalCV(this.stackswap.getSenderAddress()),
|
|
148
|
+
]);
|
|
149
|
+
const result_raw = await callReadOnlyFunction(function_option);
|
|
150
|
+
const result = cvToValue(result_raw);
|
|
151
|
+
// console.log('get_farming_total',result.value);
|
|
152
|
+
return result.value;
|
|
153
|
+
} catch (e) {
|
|
154
|
+
return 0;
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
|
|
158
|
+
async getUserRoundData(stakingToken: string, cycle: number, farming_contract: string) {
|
|
159
|
+
const address = stakingToken.split('.');
|
|
160
|
+
const function_option = getReadOptions(this.stackswap, farming_contract, 'getUserRoundData', [
|
|
161
|
+
contractPrincipalCV(address[0], address[1]),
|
|
162
|
+
standardPrincipalCV(this.stackswap.getSenderAddress()),
|
|
163
|
+
uintCV(cycle),
|
|
164
|
+
]);
|
|
165
|
+
const result_raw = await callReadOnlyFunction(function_option);
|
|
166
|
+
const result = cvToValue(result_raw);
|
|
167
|
+
// console.log('reward', result);
|
|
168
|
+
return result;
|
|
169
|
+
}
|
|
170
|
+
|
|
171
|
+
async getFarmingReward(stakingToken: string, round: number | bigint, farming_contract: string) {
|
|
172
|
+
const address = stakingToken.split('.');
|
|
173
|
+
const function_option = getReadOptions(this.stackswap, farming_contract, 'getFarmingReward', [
|
|
174
|
+
contractPrincipalCV(address[0], address[1]),
|
|
175
|
+
standardPrincipalCV(this.stackswap.getSenderAddress()),
|
|
176
|
+
uintCV(round),
|
|
177
|
+
]);
|
|
178
|
+
const result_raw = await callReadOnlyFunction(function_option);
|
|
179
|
+
const result = cvToValue(result_raw);
|
|
180
|
+
// console.log('getFarmingUserRewardTotal', result);
|
|
181
|
+
return result;
|
|
182
|
+
}
|
|
183
|
+
|
|
184
|
+
async getNFTFarmingReward(farming_contract: string) {
|
|
185
|
+
const function_option = getReadOptions(this.stackswap, farming_contract, 'getNFTFarmingReward', [
|
|
186
|
+
standardPrincipalCV(this.stackswap.getSenderAddress()),
|
|
187
|
+
]);
|
|
188
|
+
const result_raw = await callReadOnlyFunction(function_option);
|
|
189
|
+
const result = cvToValue(result_raw);
|
|
190
|
+
// console.log('getFarmingUserRewardTotal', result);
|
|
191
|
+
return result;
|
|
192
|
+
}
|
|
193
|
+
|
|
194
|
+
async getFarmingUserRewardList2(stakingToken: string, unclaimed_list: any, farming_contract: string) {
|
|
195
|
+
const address = stakingToken.split('.');
|
|
196
|
+
const function_option = getReadOptions(this.stackswap, farming_contract, 'getFarmingRewardFromList', [
|
|
197
|
+
standardPrincipalCV(this.stackswap.getSenderAddress()),
|
|
198
|
+
contractPrincipalCV(address[0], address[1]),
|
|
199
|
+
listCV(unclaimed_list),
|
|
200
|
+
]);
|
|
201
|
+
const result_raw = await callReadOnlyFunction(function_option);
|
|
202
|
+
const result = cvToValue(result_raw);
|
|
203
|
+
// console.log('getFarmingUserRewardTotal', result);
|
|
204
|
+
return result;
|
|
205
|
+
}
|
|
206
|
+
|
|
207
|
+
async getFarmBalance(token: any, farming_contract: string) {
|
|
208
|
+
// console.log("getBalance", token)
|
|
209
|
+
const pair_details_options: any = getReadOptions(this.stackswap, token.addr, 'get-balance',
|
|
210
|
+
[contractPrincipalCV(this.stackswap.config.STACKSWAP_ADDRESS(), farming_contract)]);
|
|
211
|
+
try {
|
|
212
|
+
const result = await callReadOnlyFunction(pair_details_options);
|
|
213
|
+
return cvToValue(result).value;
|
|
214
|
+
} catch (e) {
|
|
215
|
+
return 0;
|
|
216
|
+
}
|
|
217
|
+
}
|
|
218
|
+
|
|
219
|
+
|
|
220
|
+
async stakeTokens(stakingToken: string, amountTokens: string, lockPeriod: number, callback: any, farming_contract: string) {
|
|
221
|
+
const address = stakingToken.split('.');
|
|
222
|
+
// console.log(amountTokens);
|
|
223
|
+
const amount = new BigNumber(amountTokens).multipliedBy(10 ** 6).toFixed(0).toString();
|
|
224
|
+
const function_option = getWriteOptions(this.stackswap, farming_contract, 'stakeTokens', [
|
|
225
|
+
uintCV(amount),
|
|
226
|
+
contractPrincipalCV(address[0], address[1]),
|
|
227
|
+
uintCV(lockPeriod)
|
|
228
|
+
], [await getPostConditionFromAsset(this.stackswap, this.stackswap.getSenderAddress(), stakingToken, amount, FungibleConditionCode.Equal)], callback);
|
|
229
|
+
await openContractCall(function_option);
|
|
230
|
+
}
|
|
231
|
+
|
|
232
|
+
|
|
233
|
+
|
|
234
|
+
async claimStakingReward(stakingToken: string, cycle: number, amount_STSW: string, amount_LP: string, rewardToken1: string, rewardToken2: string, rewardToken3: string, rewardToken4: string, rewardList: any, callback: any, farming_contract: string) {
|
|
235
|
+
const address = stakingToken.split('.');
|
|
236
|
+
const post_condition = [];
|
|
237
|
+
post_condition.push(await getPostConditionFromAsset(this.stackswap, farming_contract, this.stackswap.config.BASE_STSW_DATA().addr, amount_STSW, FungibleConditionCode.Equal));
|
|
238
|
+
post_condition.push(await getPostConditionFromAsset(this.stackswap, farming_contract, stakingToken, amount_LP, FungibleConditionCode.Equal));
|
|
239
|
+
const function_option = getWriteOptions(this.stackswap, farming_contract, 'claimStakingReward', [
|
|
240
|
+
uintCV(cycle),
|
|
241
|
+
contractPrincipalCV(address[0], address[1]),
|
|
242
|
+
parseAddressToCV(rewardToken1),
|
|
243
|
+
parseAddressToCV(rewardToken2),
|
|
244
|
+
parseAddressToCV(rewardToken3),
|
|
245
|
+
parseAddressToCV(rewardToken4),
|
|
246
|
+
], post_condition, callback, true); //TODO post condition
|
|
247
|
+
console.log(rewardList);
|
|
248
|
+
await openContractCall(function_option);
|
|
249
|
+
}
|
|
250
|
+
|
|
251
|
+
async stakeNFTs(goldList: number[], silverList: number[], callback: any, farming_contract: string) {
|
|
252
|
+
// console.log(amountTokens);
|
|
253
|
+
const gold_list = [];
|
|
254
|
+
const silver_list = [];
|
|
255
|
+
for (const gold of goldList) {
|
|
256
|
+
gold_list.push(uintCV(gold))
|
|
257
|
+
}
|
|
258
|
+
for (const silver of silverList) {
|
|
259
|
+
silver_list.push(uintCV(silver))
|
|
260
|
+
}
|
|
261
|
+
const function_option = getWriteOptions(this.stackswap, farming_contract, 'stakeTokens', [
|
|
262
|
+
listCV(gold_list),
|
|
263
|
+
listCV(silver_list)
|
|
264
|
+
], [], callback, true); //TODO post Condition
|
|
265
|
+
await openContractCall(function_option);
|
|
266
|
+
}
|
|
267
|
+
|
|
268
|
+
|
|
269
|
+
async claimNFTStakingReward( rewardToken1: string, rewardToken2: string, rewardToken3: string, rewardToken4: string, rewardList: any, reclaimList: string[], callback: any, farming_contract: string) {
|
|
270
|
+
const post_condition: any = [];
|
|
271
|
+
const function_option = getWriteOptions(this.stackswap, farming_contract, 'claimNFTStakingReward', [
|
|
272
|
+
parseAddressToCV(rewardToken1),
|
|
273
|
+
parseAddressToCV(rewardToken2),
|
|
274
|
+
parseAddressToCV(rewardToken3),
|
|
275
|
+
parseAddressToCV(rewardToken4),
|
|
276
|
+
], post_condition, callback, true); //TODO post condition
|
|
277
|
+
console.log(rewardList, reclaimList);
|
|
278
|
+
await openContractCall(function_option);
|
|
279
|
+
}
|
|
280
|
+
|
|
281
|
+
|
|
282
|
+
async getRewardBalanceFromFarming2(pool_addr: string, unclaimed_list: any, farming_contract: string) {
|
|
283
|
+
// let reward_balance = new BigNumber(0);
|
|
284
|
+
const num_list = [];
|
|
285
|
+
for (const unclaimed of unclaimed_list) {
|
|
286
|
+
num_list.push(uintCV(unclaimed));
|
|
287
|
+
}
|
|
288
|
+
let reward_num = new BigNumber(0);
|
|
289
|
+
console.log(pool_addr, num_list, farming_contract)
|
|
290
|
+
try {
|
|
291
|
+
for (let i = 0; i < num_list.length; i += 4) {
|
|
292
|
+
console.log(pool_addr, num_list.slice(i, i + 4 < num_list.length ? i + 4 : num_list.length), farming_contract);
|
|
293
|
+
const result = await this.getFarmingUserRewardList2(pool_addr, num_list.slice(i, i + 4 < num_list.length ? i + 4 : num_list.length), farming_contract);
|
|
294
|
+
// rewardSum.value;
|
|
295
|
+
console.log('temp result', result.rewardSum.value);
|
|
296
|
+
reward_num = reward_num.plus(new BigNumber(result.rewardSum.value));
|
|
297
|
+
}
|
|
298
|
+
return num2decimal(reward_num.toString(), 6);
|
|
299
|
+
} catch (e) {
|
|
300
|
+
// console.log(e);
|
|
301
|
+
return num2decimal(reward_num.toString(), 6);
|
|
302
|
+
}
|
|
303
|
+
}
|
|
304
|
+
|
|
305
|
+
|
|
306
|
+
|
|
307
|
+
}
|
|
@@ -2,12 +2,12 @@ import {
|
|
|
2
2
|
getAmountStringWithDecimal,
|
|
3
3
|
getAmountWithDecimalString,
|
|
4
4
|
getPostConditionFromAsset, getReadOptions,
|
|
5
|
-
getWriteOptions
|
|
5
|
+
getWriteOptions, parseAddressToCV
|
|
6
6
|
} from "../util";
|
|
7
7
|
import {
|
|
8
8
|
callReadOnlyFunction, contractPrincipalCV,
|
|
9
9
|
cvToValue,
|
|
10
|
-
FungibleConditionCode,
|
|
10
|
+
FungibleConditionCode, listCV,
|
|
11
11
|
stringAsciiCV,
|
|
12
12
|
stringUtf8CV,
|
|
13
13
|
uintCV
|
|
@@ -77,6 +77,17 @@ export class LaunchpadManager {
|
|
|
77
77
|
}
|
|
78
78
|
}
|
|
79
79
|
|
|
80
|
+
async geTemplatetFarmList() {
|
|
81
|
+
const pair_details_options : any = getReadOptions(this.stackswap, this.stackswap.config.CONTRACT_NAME_STACKSWAP_ONE_STEP_GROUP_FARM(), 'get-group-farm-list', []);
|
|
82
|
+
try {
|
|
83
|
+
const result = cvToValue(await callReadOnlyFunction(pair_details_options)).value;
|
|
84
|
+
|
|
85
|
+
return result[this.getRandomIntNum(0, result.length-1)].value;
|
|
86
|
+
} catch (e) {
|
|
87
|
+
return('');
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
|
|
80
91
|
async mintSIPContractCall(soft_token: string, liquidity_token: string, data : any, callback: any = null) {
|
|
81
92
|
const token_y_addr = soft_token.split('.');
|
|
82
93
|
const pair_addr = liquidity_token.split('.');
|
|
@@ -261,4 +272,36 @@ export class LaunchpadManager {
|
|
|
261
272
|
], post_condition, callback);
|
|
262
273
|
openContractCall(options);
|
|
263
274
|
}
|
|
275
|
+
|
|
276
|
+
async mintGroupContractCall(data : any, callback: any = null) {
|
|
277
|
+
// const token_y_addr = city_token.split('.');
|
|
278
|
+
// const pair_addr = liquidity_token.split('.');
|
|
279
|
+
const post_condition: any = [];
|
|
280
|
+
// post_condition.push(await getPostConditionFromAsset(this.stackswap,this.stackswap.getSenderAddress(), this.stackswap.config.BASE_STSW_DATA().addr, getAmountWithDecimalString(data.initial_amount_x, 6), FungibleConditionCode.Equal));
|
|
281
|
+
// post_condition.push(await getPostConditionFromAsset(this.stackswap, this.stackswap.getSenderAddress(), city_token, 0, FungibleConditionCode.GreaterEqual));
|
|
282
|
+
const options = getWriteOptions(this.stackswap, this.stackswap.config.CONTRACT_NAME_STACKSWAP_ONE_STEP_MINT_CITY(),
|
|
283
|
+
'create-pair-new-city-token-with-stsw',
|
|
284
|
+
[
|
|
285
|
+
parseAddressToCV(data.templateFarm),
|
|
286
|
+
stringAsciiCV( data.name),
|
|
287
|
+
stringUtf8CV( data.uri),
|
|
288
|
+
parseAddressToCV(data.project_token),
|
|
289
|
+
parseAddressToCV(data.project_lp_token),
|
|
290
|
+
uintCV(data.lp_lock_amount),
|
|
291
|
+
parseAddressToCV(data.reward_token_1_in),
|
|
292
|
+
parseAddressToCV(data.reward_token_2_in),
|
|
293
|
+
parseAddressToCV(data.reward_token_3_in),
|
|
294
|
+
parseAddressToCV(data.reward_token_4_in),
|
|
295
|
+
listCV([uintCV(data.reward1List[0]),uintCV(data.reward1List[1]),uintCV(data.reward1List[2]),uintCV(data.reward1List[3]),]),
|
|
296
|
+
listCV([uintCV(data.reward2List[0]),uintCV(data.reward2List[1]),uintCV(data.reward2List[2]),uintCV(data.reward2List[3]),]),
|
|
297
|
+
listCV([uintCV(data.reward3List[0]),uintCV(data.reward3List[1]),uintCV(data.reward3List[2]),uintCV(data.reward3List[3]),]),
|
|
298
|
+
uintCV(data.first_farming_block_in),
|
|
299
|
+
uintCV(data.reward_round_length_in),
|
|
300
|
+
uintCV(data.max_farming_rounds_in),
|
|
301
|
+
uintCV(data.nft_end_block_in),
|
|
302
|
+
uintCV(data.nft_count_limit_in),
|
|
303
|
+
uintCV(data.nft_count_takes_in),
|
|
304
|
+
], post_condition, callback,true);
|
|
305
|
+
openContractCall(options);
|
|
306
|
+
}
|
|
264
307
|
}
|
|
@@ -256,7 +256,7 @@ export class LBTCStakingManager {
|
|
|
256
256
|
|
|
257
257
|
const tvl_lbtc = await this.stackswap.tokenManager.getBalanceOf(Token.getBaseTokens(this.stackswap, BaseToken.lBTC), this.stackswap.config.STACKSWAP_ADDRESS()+'.'+this.stackswap.config.CONTRACT_NAME_STACKSWAP_LBTC_STACKING());
|
|
258
258
|
|
|
259
|
-
const apr_bn = new BigNumber(
|
|
259
|
+
const apr_bn = new BigNumber(round_reward).multipliedBy(10**4).multipliedBy(oracle_stsw).dividedBy(new BigNumber(tvl_apr).plus(1)).dividedBy(oracle_lbtc);
|
|
260
260
|
const max_apr = numFormat_(apr_bn.multipliedBy(8).toString(),3);
|
|
261
261
|
const min_apr = numFormat_(apr_bn.toString(),3);
|
|
262
262
|
const tvl_usd = numFormat_(new BigNumber(tvl_lbtc).multipliedBy(oracle_lbtc).div(10**8).toString(),2);
|