stackswap-front-api-test-02 1.0.40 → 1.0.46
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 +10 -4
- package/dist/esm/index.js +38 -18
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/stackswap/config.d.ts +29 -3
- package/dist/esm/stackswap/config.js +62 -3
- package/dist/esm/stackswap/config.js.map +1 -1
- package/dist/esm/stackswap/manager/farm2.manager.d.ts +39 -20
- package/dist/esm/stackswap/manager/farm2.manager.js +158 -62
- package/dist/esm/stackswap/manager/farm2.manager.js.map +1 -1
- package/dist/index.d.ts +10 -4
- package/dist/index.js +40 -18
- package/dist/index.js.map +1 -1
- package/dist/index.umd.js +1 -1
- package/dist/stackswap/config.d.ts +29 -3
- package/dist/stackswap/config.js +64 -4
- package/dist/stackswap/config.js.map +1 -1
- package/dist/stackswap/manager/farm2.manager.d.ts +39 -20
- package/dist/stackswap/manager/farm2.manager.js +157 -61
- package/dist/stackswap/manager/farm2.manager.js.map +1 -1
- package/package.json +1 -1
- package/src/index.ts +43 -18
- package/src/stackswap/config.ts +79 -5
- package/src/stackswap/manager/farm2.manager.ts +189 -126
|
@@ -11,9 +11,13 @@ export interface StackswapConfig {
|
|
|
11
11
|
CONTRACT_NAME_STACKSWAP_ONE_STEP_MINT: () => string;
|
|
12
12
|
CONTRACT_NAME_STACKSWAP_DAO: () => string;
|
|
13
13
|
CONTRACT_NAME_STACKSWAP_GOVERNANCE: () => string;
|
|
14
|
-
CONTRACT_NAME_STACKSWAP_FARMING: () => string;
|
|
15
|
-
CONTRACT_NAME_STACKSWAP_FARMING2: () => string;
|
|
16
14
|
CONTRACT_NAME_STACKSWAP_STACKING: () => string;
|
|
15
|
+
CONTRACT_NAME_STACKSWAP_FARMING: () => string;
|
|
16
|
+
CONTRACT_NAME_STACKSWAP_FARMING2_1: () => string;
|
|
17
|
+
CONTRACT_NAME_STACKSWAP_FARMING2_2: () => string;
|
|
18
|
+
CONTRACT_NAME_STACKSWAP_FARMING2_3: () => string;
|
|
19
|
+
CONTRACT_NAME_STACKSWAP_FARMING2_4: () => string;
|
|
20
|
+
CONTRACT_NAME_STACKSWAP_FARMING2_5: () => string;
|
|
17
21
|
CONTRACT_NAME_STACKSWAP_ROUTER_SWAP: () => string;
|
|
18
22
|
CONTRACT_NAME_COLLATERAL_TYPES: () => string;
|
|
19
23
|
CONTRACT_NAME_AINFT: () => string;
|
|
@@ -41,6 +45,8 @@ export interface StackswapConfig {
|
|
|
41
45
|
STSW_LBTC_LP: () => string;
|
|
42
46
|
}
|
|
43
47
|
export declare class StackswapMainetConfig implements StackswapConfig {
|
|
48
|
+
farm_end_cycle: string;
|
|
49
|
+
constructor(farm_end_cycle?: string);
|
|
44
50
|
CONTRACT_NAME_AINFT(): string;
|
|
45
51
|
CONTRACT_NAME_COLLATERAL_TYPES(): string;
|
|
46
52
|
CONTRACT_NAME_COMMISSION(): string;
|
|
@@ -57,7 +63,11 @@ export declare class StackswapMainetConfig implements StackswapConfig {
|
|
|
57
63
|
CONTRACT_NAME_STACKER4(): string;
|
|
58
64
|
CONTRACT_NAME_STACKSWAP_DAO(): string;
|
|
59
65
|
CONTRACT_NAME_STACKSWAP_FARMING(): string;
|
|
60
|
-
|
|
66
|
+
CONTRACT_NAME_STACKSWAP_FARMING2_1(): string;
|
|
67
|
+
CONTRACT_NAME_STACKSWAP_FARMING2_2(): string;
|
|
68
|
+
CONTRACT_NAME_STACKSWAP_FARMING2_3(): string;
|
|
69
|
+
CONTRACT_NAME_STACKSWAP_FARMING2_4(): string;
|
|
70
|
+
CONTRACT_NAME_STACKSWAP_FARMING2_5(): string;
|
|
61
71
|
CONTRACT_NAME_STACKSWAP_GOVERNANCE(): string;
|
|
62
72
|
CONTRACT_NAME_STACKSWAP_ONE_STEP_MINT(): string;
|
|
63
73
|
CONTRACT_NAME_STACKSWAP_ROUTER_SWAP(): string;
|
|
@@ -82,3 +92,19 @@ export declare class StackswapMainetConfig implements StackswapConfig {
|
|
|
82
92
|
STX_STSW_LP(): string;
|
|
83
93
|
STSW_LBTC_LP(): string;
|
|
84
94
|
}
|
|
95
|
+
export declare class StackswapDevnetConfig extends StackswapMainetConfig {
|
|
96
|
+
CONTRACT_NAME_POX(): string;
|
|
97
|
+
FARM_V1_END_CYCLE(): string;
|
|
98
|
+
STACKSWAP_ADDRESS(): string;
|
|
99
|
+
STACKS_API_URL(): string;
|
|
100
|
+
STACKS_BACKEND_PARAM(): string;
|
|
101
|
+
STACKS_BACKEND_URL(): string;
|
|
102
|
+
isMainnet(): boolean;
|
|
103
|
+
MODE(): string;
|
|
104
|
+
BASE_WSTX_DATA(): any;
|
|
105
|
+
BASE_STSW_DATA(): any;
|
|
106
|
+
BASE_vSTSW_DATA(): any;
|
|
107
|
+
BASE_LBTC_DATA(): any;
|
|
108
|
+
STX_STSW_LP(): string;
|
|
109
|
+
STSW_LBTC_LP(): string;
|
|
110
|
+
}
|
package/dist/stackswap/config.js
CHANGED
|
@@ -1,7 +1,10 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.StackswapMainetConfig = void 0;
|
|
3
|
+
exports.StackswapDevnetConfig = exports.StackswapMainetConfig = void 0;
|
|
4
4
|
class StackswapMainetConfig {
|
|
5
|
+
constructor(farm_end_cycle = '99999') {
|
|
6
|
+
this.farm_end_cycle = farm_end_cycle;
|
|
7
|
+
}
|
|
5
8
|
CONTRACT_NAME_AINFT() {
|
|
6
9
|
return 'stackswap-leonardoughdavinci-v1b';
|
|
7
10
|
}
|
|
@@ -50,8 +53,20 @@ class StackswapMainetConfig {
|
|
|
50
53
|
CONTRACT_NAME_STACKSWAP_FARMING() {
|
|
51
54
|
return 'stackswap-farming-v1l';
|
|
52
55
|
}
|
|
53
|
-
|
|
54
|
-
return 'stackswap-farming-
|
|
56
|
+
CONTRACT_NAME_STACKSWAP_FARMING2_1() {
|
|
57
|
+
return 'stackswap-farming-v2b1';
|
|
58
|
+
}
|
|
59
|
+
CONTRACT_NAME_STACKSWAP_FARMING2_2() {
|
|
60
|
+
return 'stackswap-farming-v2b2';
|
|
61
|
+
}
|
|
62
|
+
CONTRACT_NAME_STACKSWAP_FARMING2_3() {
|
|
63
|
+
return 'stackswap-farming-v2b3';
|
|
64
|
+
}
|
|
65
|
+
CONTRACT_NAME_STACKSWAP_FARMING2_4() {
|
|
66
|
+
return 'stackswap-farming-v2b4';
|
|
67
|
+
}
|
|
68
|
+
CONTRACT_NAME_STACKSWAP_FARMING2_5() {
|
|
69
|
+
return 'stackswap-farming-v2b5';
|
|
55
70
|
}
|
|
56
71
|
CONTRACT_NAME_STACKSWAP_GOVERNANCE() {
|
|
57
72
|
return 'stackswap-governance-v5k';
|
|
@@ -75,7 +90,7 @@ class StackswapMainetConfig {
|
|
|
75
90
|
return 'stackswap-vault-data-v1c';
|
|
76
91
|
}
|
|
77
92
|
FARM_V1_END_CYCLE() {
|
|
78
|
-
return
|
|
93
|
+
return this.farm_end_cycle;
|
|
79
94
|
}
|
|
80
95
|
STACKSWAP_ADDRESS() {
|
|
81
96
|
return 'SP1Z92MPDQEWZXW36VX71Q25HKF5K2EPCJ304F275';
|
|
@@ -124,4 +139,49 @@ class StackswapMainetConfig {
|
|
|
124
139
|
}
|
|
125
140
|
}
|
|
126
141
|
exports.StackswapMainetConfig = StackswapMainetConfig;
|
|
142
|
+
class StackswapDevnetConfig extends StackswapMainetConfig {
|
|
143
|
+
CONTRACT_NAME_POX() {
|
|
144
|
+
return 'ST000000000000000000002AMW42H';
|
|
145
|
+
}
|
|
146
|
+
FARM_V1_END_CYCLE() {
|
|
147
|
+
return '9999';
|
|
148
|
+
}
|
|
149
|
+
STACKSWAP_ADDRESS() {
|
|
150
|
+
return 'ST2REHHS5J3CERCRBEPMGH7921Q6PYKAADT7JP2VB';
|
|
151
|
+
}
|
|
152
|
+
STACKS_API_URL() {
|
|
153
|
+
return 'http://localhost:3999';
|
|
154
|
+
}
|
|
155
|
+
STACKS_BACKEND_PARAM() {
|
|
156
|
+
return '7777';
|
|
157
|
+
}
|
|
158
|
+
STACKS_BACKEND_URL() {
|
|
159
|
+
return 'https://app.stackswap.org';
|
|
160
|
+
}
|
|
161
|
+
isMainnet() {
|
|
162
|
+
return false;
|
|
163
|
+
}
|
|
164
|
+
MODE() {
|
|
165
|
+
return 'devnet';
|
|
166
|
+
}
|
|
167
|
+
BASE_WSTX_DATA() {
|
|
168
|
+
return JSON.parse('{"name":"STX","decimal":6,"icon":"https://app.stackswap.org/icon/stx.svg","addr":"ST2REHHS5J3CERCRBEPMGH7921Q6PYKAADT7JP2VB.wstx-token-v4a"}');
|
|
169
|
+
}
|
|
170
|
+
BASE_STSW_DATA() {
|
|
171
|
+
return JSON.parse('{"name":"Stackswap","decimal":6,"icon":"https://app.stackswap.org/icon/stsw.svg","addr":"ST2REHHS5J3CERCRBEPMGH7921Q6PYKAADT7JP2VB.stsw-token-v4a","symbol":"STSW"}');
|
|
172
|
+
}
|
|
173
|
+
BASE_vSTSW_DATA() {
|
|
174
|
+
return JSON.parse('{"name":"vSTACKSWAP","decimal":6,"icon":"https://app.stackswap.org/icon/stsw.svg","addr":"ST2REHHS5J3CERCRBEPMGH7921Q6PYKAADT7JP2VB.vstsw-token-v1k","symbol":"vSTSW"}');
|
|
175
|
+
}
|
|
176
|
+
BASE_LBTC_DATA() {
|
|
177
|
+
return JSON.parse('{"name":"Lucid Bitcoin","decimal":8,"icon":"https://app.stackswap.org/icon/lbtc.svg","addr":"ST2REHHS5J3CERCRBEPMGH7921Q6PYKAADT7JP2VB.lbtc-token-v1c","symbol":"lBTC"}');
|
|
178
|
+
}
|
|
179
|
+
STX_STSW_LP() {
|
|
180
|
+
return 'ST2REHHS5J3CERCRBEPMGH7921Q6PYKAADT7JP2VB.liquidity-token-stx-stsw';
|
|
181
|
+
}
|
|
182
|
+
STSW_LBTC_LP() {
|
|
183
|
+
return 'ST2REHHS5J3CERCRBEPMGH7921Q6PYKAADT7JP2VB.liquidity-token-v5krqbd8nh6';
|
|
184
|
+
}
|
|
185
|
+
}
|
|
186
|
+
exports.StackswapDevnetConfig = StackswapDevnetConfig;
|
|
127
187
|
//# sourceMappingURL=config.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/stackswap/config.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/stackswap/config.ts"],"names":[],"mappings":";;;AAkDA,MAAa,qBAAqB;IAEhC,YAAY,iBAAyB,OAAO;QAC1C,IAAI,CAAC,cAAc,GAAG,cAAc,CAAC;IACvC,CAAC;IACD,mBAAmB;QACjB,OAAO,kCAAkC,CAAC;IAC5C,CAAC;IAED,8BAA8B;QAC5B,OAAO,gCAAgC,CAAC;IAC1C,CAAC;IAED,wBAAwB;QACtB,OAAO,8BAA8B,CAAC;IACxC,CAAC;IAED,uBAAuB;QACrB,OAAO,yBAAyB,CAAC;IACnC,CAAC;IAED,uBAAuB;QACrB,OAAO,yBAAyB,CAAC;IACnC,CAAC;IAED,oBAAoB;QAClB,OAAO,qBAAqB,CAAC;IAC/B,CAAC;IAED,iBAAiB;QACf,OAAO,+BAA+B,CAAC;IACzC,CAAC;IAED,wBAAwB;QACtB,OAAO,oBAAoB,CAAC;IAC9B,CAAC;IAED,yBAAyB;QACvB,OAAO,2BAA2B,CAAC;IACrC,CAAC;IAED,2BAA2B;QACzB,OAAO,6BAA6B,CAAC;IACvC,CAAC;IAED,sBAAsB;QACpB,OAAO,wBAAwB,CAAC;IAClC,CAAC;IAED,sBAAsB;QACpB,OAAO,wBAAwB,CAAC;IAClC,CAAC;IAED,sBAAsB;QACpB,OAAO,wBAAwB,CAAC;IAClC,CAAC;IAED,sBAAsB;QACpB,OAAO,wBAAwB,CAAC;IAClC,CAAC;IAED,2BAA2B;QACzB,OAAO,mBAAmB,CAAC;IAC7B,CAAC;IAED,+BAA+B;QAC7B,OAAO,uBAAuB,CAAC;IACjC,CAAC;IAED,kCAAkC;QAChC,OAAO,wBAAwB,CAAC;IAClC,CAAC;IACD,kCAAkC;QAChC,OAAO,wBAAwB,CAAC;IAClC,CAAC;IACD,kCAAkC;QAChC,OAAO,wBAAwB,CAAC;IAClC,CAAC;IACD,kCAAkC;QAChC,OAAO,wBAAwB,CAAC;IAClC,CAAC;IACD,kCAAkC;QAChC,OAAO,wBAAwB,CAAC;IAClC,CAAC;IAED,kCAAkC;QAChC,OAAO,0BAA0B,CAAC;IACpC,CAAC;IAED,qCAAqC;QACnC,OAAO,6BAA6B,CAAC;IACvC,CAAC;IAED,mCAAmC;QACjC,OAAO,2BAA2B,CAAC;IACrC,CAAC;IAED,gCAAgC;QAC9B,OAAO,uBAAuB,CAAC;IACjC,CAAC;IAED,4BAA4B;QAC1B,OAAO,oBAAoB,CAAC;IAC9B,CAAC;IAED,yBAAyB;QACvB,OAAO,2BAA2B,CAAC;IACrC,CAAC;IAED,wBAAwB;QACtB,OAAO,0BAA0B,CAAC;IACpC,CAAC;IAED,iBAAiB;QACf,OAAO,IAAI,CAAC,cAAc,CAAC;IAC7B,CAAC;IAED,iBAAiB;QACf,OAAO,2CAA2C,CAAC;IACrD,CAAC;IAED,cAAc;QACZ,OAAO,2CAA2C,CAAC;IACrD,CAAC;IAED,oBAAoB;QAClB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,2BAA2B;QACzB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,kBAAkB;QAChB,OAAO,2BAA2B,CAAC;IACrC,CAAC;IAED,SAAS;QACP,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI;QACF,OAAO,SAAS,CAAC;IACnB,CAAC;IAGD,cAAc;QACZ,OAAO,IAAI,CAAC,KAAK,CAAC,gKAAgK,CAAC,CAAC;IACtL,CAAC;IACD,UAAU;QACR,OAAO,IAAI,CAAC,KAAK,CAAC,mPAAmP,CAAC,CAAC;IACzQ,CAAC;IACD,YAAY;QACV,OAAO,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IACxB,CAAC;IACD,cAAc;QACZ,OAAO,IAAI,CAAC,KAAK,CAAC,qKAAqK,CAAC,CAAC;IAC3L,CAAC;IACD,eAAe;QACb,OAAO,IAAI,CAAC,KAAK,CAAC,wKAAwK,CAAC,CAAC;IAC9L,CAAC;IACD,cAAc;QACZ,OAAO,IAAI,CAAC,KAAK,CAAC,yKAAyK,CAAC,CAAC;IAC/L,CAAC;IACD,WAAW;QACT,OAAO,oEAAoE,CAAC;IAC9E,CAAC;IACD,YAAY;QACV,OAAO,uEAAuE,CAAC;IACjF,CAAC;CAEF;AA3KD,sDA2KC;AACD,MAAa,qBAAsB,SAAQ,qBAAqB;IAE9D,iBAAiB;QACf,OAAO,+BAA+B,CAAC;IACzC,CAAC;IAED,iBAAiB;QACf,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,iBAAiB;QACf,OAAO,2CAA2C,CAAC;IACrD,CAAC;IAED,cAAc;QACZ,OAAO,uBAAuB,CAAC;IACjC,CAAC;IAED,oBAAoB;QAClB,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,kBAAkB;QAChB,OAAO,2BAA2B,CAAC;IACrC,CAAC;IAED,SAAS;QACP,OAAO,KAAK,CAAC;IACf,CAAC;IAED,IAAI;QACF,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,cAAc;QACZ,OAAO,IAAI,CAAC,KAAK,CAAC,8IAA8I,CAAC,CAAC;IACpK,CAAC;IAED,cAAc;QACZ,OAAO,IAAI,CAAC,KAAK,CAAC,qKAAqK,CAAC,CAAC;IAC3L,CAAC;IACD,eAAe;QACb,OAAO,IAAI,CAAC,KAAK,CAAC,wKAAwK,CAAC,CAAC;IAC9L,CAAC;IACD,cAAc;QACZ,OAAO,IAAI,CAAC,KAAK,CAAC,yKAAyK,CAAC,CAAC;IAC/L,CAAC;IACD,WAAW;QACT,OAAO,oEAAoE,CAAC;IAC9E,CAAC;IACD,YAAY;QACV,OAAO,uEAAuE,CAAC;IACjF,CAAC;CACF;AArDD,sDAqDC"}
|
|
@@ -3,35 +3,54 @@ import { StackswapAPI } from "../../index";
|
|
|
3
3
|
export declare class Farm2Manager {
|
|
4
4
|
stackswap: StackswapAPI;
|
|
5
5
|
constructor(stackswap: StackswapAPI);
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
getPoolUSDPriceFarm(farm: any, farm_total: any,
|
|
10
|
-
|
|
11
|
-
|
|
6
|
+
getFarmingRound2(bh: number, farming_contract: string): Promise<any>;
|
|
7
|
+
getFarmingRoundFirstBlock2(cycle: number, farming_contract: string): Promise<any>;
|
|
8
|
+
isUserMigratable2(pool_address: string, farming_contract: string): Promise<any>;
|
|
9
|
+
getPoolUSDPriceFarm(farm: any, farm_total: any, oracle_data: {
|
|
10
|
+
oracle_stx: any;
|
|
11
|
+
oracle_stsw: any;
|
|
12
|
+
oracle_lbtc: any;
|
|
13
|
+
}): number;
|
|
14
|
+
getFarmingStakerStatus2(pool_address: string, cur_round: number, farming_contract: string): Promise<{
|
|
12
15
|
pooledToken: any;
|
|
13
16
|
unclaimedList: any[];
|
|
14
17
|
stakedList: any[];
|
|
15
18
|
}>;
|
|
16
|
-
|
|
19
|
+
getFarmingTotalStatusCycle2(cycle: number, farming_contract: string): Promise<{
|
|
17
20
|
reward: any;
|
|
18
21
|
value: any;
|
|
19
22
|
}>;
|
|
20
|
-
|
|
23
|
+
getFarmingTotalPoolStatus2(pool_address: string, farming_contract: string): Promise<{
|
|
21
24
|
amountLP: any;
|
|
22
25
|
weight: any;
|
|
23
26
|
}>;
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
migrateToVersion2(pool_address: string, callback
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
27
|
+
getFarmingTotalPoolStatusCycle2(pool_address: string, cycle: number, farming_contract: string): Promise<string>;
|
|
28
|
+
getFarmingTotalValue2(pool_address: string, farming_contract: string): Promise<any>;
|
|
29
|
+
getFarmingUserRewardPerCycle2(pool_address: string, cycle: number, farming_contract: string): Promise<any>;
|
|
30
|
+
getFarmingUserRewardList2(pool_address: string, unclaimed_list: any, farming_contract: string): Promise<any>;
|
|
31
|
+
getFarmingRewardInfo2(pool_address: string, cycle: number, farming_contract: string): Promise<any>;
|
|
32
|
+
migrateToVersion2(pool_address: string, farming_contract: string, callback: any): Promise<void>;
|
|
33
|
+
stakeFarmingContract2(pool_address: string, amountTokens: string, lockPeriod: number, callback: any, farming_contract: string): Promise<void>;
|
|
34
|
+
getFarmBalance2(token: any, farming_contract: string): Promise<any>;
|
|
35
|
+
claimFarmingContract2(pool_address: string, cycle: number, amount_STSW: string, amount_LP: string, callback: any, farming_contract: string): Promise<void>;
|
|
36
|
+
unstakeFarmingContract2(pool_address: string, cycle: number, amount_LP: string, callback: any, farming_contract: string): Promise<void>;
|
|
37
|
+
getCurrentFarmingRound2(farming_contract: string): Promise<any>;
|
|
38
|
+
getRewardBalanceFromFarming2(pool_addr: string, unclaimed_list: any, farming_contract: string): Promise<BigNumber>;
|
|
36
39
|
getFarmingAPR(tvl: string, stsw_price: string, reward: string, weight: string): string;
|
|
40
|
+
getFarmDataFromData(data: any): Promise<any[]>;
|
|
41
|
+
getEachFarmData(data: any, bh: string, oracle_data: {
|
|
42
|
+
oracle_stx: any;
|
|
43
|
+
oracle_stsw: any;
|
|
44
|
+
oracle_lbtc: any;
|
|
45
|
+
}): Promise<any[]>;
|
|
46
|
+
getFarmData(farm: any, farm_round: any, block_height: string, tvl_apr: BigNumber, farming_contract: string, oracle_data: {
|
|
47
|
+
oracle_stx: any;
|
|
48
|
+
oracle_stsw: any;
|
|
49
|
+
oracle_lbtc: any;
|
|
50
|
+
}): Promise<any>;
|
|
51
|
+
getFarmUserData(farm: any, farm_round: string, farming_contract: string, oracle_data: {
|
|
52
|
+
oracle_stx: any;
|
|
53
|
+
oracle_stsw: any;
|
|
54
|
+
oracle_lbtc: any;
|
|
55
|
+
}): Promise<void>;
|
|
37
56
|
}
|
|
@@ -12,9 +12,9 @@ class Farm2Manager {
|
|
|
12
12
|
constructor(stackswap) {
|
|
13
13
|
this.stackswap = stackswap;
|
|
14
14
|
}
|
|
15
|
-
async
|
|
15
|
+
async getFarmingRound2(bh, farming_contract) {
|
|
16
16
|
try {
|
|
17
|
-
const function_option = (0, util_1.getReadOptions)(this.stackswap,
|
|
17
|
+
const function_option = (0, util_1.getReadOptions)(this.stackswap, farming_contract, 'getRewardRound', [
|
|
18
18
|
(0, transactions_1.uintCV)(bh)
|
|
19
19
|
]);
|
|
20
20
|
const result_raw = await (0, transactions_1.callReadOnlyFunction)(function_option);
|
|
@@ -25,17 +25,17 @@ class Farm2Manager {
|
|
|
25
25
|
return 0;
|
|
26
26
|
}
|
|
27
27
|
}
|
|
28
|
-
async
|
|
29
|
-
const function_option = (0, util_1.getReadOptions)(this.stackswap,
|
|
28
|
+
async getFarmingRoundFirstBlock2(cycle, farming_contract) {
|
|
29
|
+
const function_option = (0, util_1.getReadOptions)(this.stackswap, farming_contract, 'getFirstBlockOfRound', [
|
|
30
30
|
(0, transactions_1.uintCV)(cycle)
|
|
31
31
|
]);
|
|
32
32
|
const result_raw = await (0, transactions_1.callReadOnlyFunction)(function_option);
|
|
33
33
|
const result = (0, transactions_1.cvToValue)(result_raw);
|
|
34
34
|
return result;
|
|
35
35
|
}
|
|
36
|
-
async
|
|
36
|
+
async isUserMigratable2(pool_address, farming_contract) {
|
|
37
37
|
const address = pool_address.split('.');
|
|
38
|
-
const function_option = (0, util_1.getReadOptions)(this.stackswap,
|
|
38
|
+
const function_option = (0, util_1.getReadOptions)(this.stackswap, farming_contract, 'isUserMigratable', [
|
|
39
39
|
(0, transactions_1.contractPrincipalCV)(address[0], address[1]),
|
|
40
40
|
(0, transactions_1.standardPrincipalCV)(this.stackswap.getSenderAddress()),
|
|
41
41
|
]);
|
|
@@ -48,31 +48,31 @@ class Farm2Manager {
|
|
|
48
48
|
return true;
|
|
49
49
|
}
|
|
50
50
|
}
|
|
51
|
-
getPoolUSDPriceFarm(farm, farm_total,
|
|
51
|
+
getPoolUSDPriceFarm(farm, farm_total, oracle_data) {
|
|
52
52
|
let tvl = 0;
|
|
53
53
|
switch (farm.BASE) {
|
|
54
54
|
case 'STX':
|
|
55
55
|
if (farm.token_x.symbol === farm.BASE) {
|
|
56
|
-
tvl = (new bignumber_js_1.default(farm.pair['balance-x'].value).multipliedBy(farm_total).dividedBy(farm.pair['shares-total'].value).dividedBy(new bignumber_js_1.default(10 ** 12))).multipliedBy(2).multipliedBy(new bignumber_js_1.default(oracle_stx)).toNumber();
|
|
56
|
+
tvl = (new bignumber_js_1.default(farm.pair['balance-x'].value).multipliedBy(farm_total).dividedBy(farm.pair['shares-total'].value).dividedBy(new bignumber_js_1.default(10 ** 12))).multipliedBy(2).multipliedBy(new bignumber_js_1.default(oracle_data.oracle_stx)).toNumber();
|
|
57
57
|
}
|
|
58
58
|
else {
|
|
59
|
-
tvl = (new bignumber_js_1.default(farm.pair['balance-y'].value).multipliedBy(farm_total).dividedBy(farm.pair['shares-total'].value).dividedBy(new bignumber_js_1.default(10 ** 12))).multipliedBy(2).multipliedBy(new bignumber_js_1.default(oracle_stx)).toNumber();
|
|
59
|
+
tvl = (new bignumber_js_1.default(farm.pair['balance-y'].value).multipliedBy(farm_total).dividedBy(farm.pair['shares-total'].value).dividedBy(new bignumber_js_1.default(10 ** 12))).multipliedBy(2).multipliedBy(new bignumber_js_1.default(oracle_data.oracle_stx)).toNumber();
|
|
60
60
|
}
|
|
61
61
|
break;
|
|
62
62
|
case 'STSW':
|
|
63
63
|
if (farm.token_x.symbol === farm.BASE) {
|
|
64
|
-
tvl = (new bignumber_js_1.default(farm.pair['balance-x'].value).multipliedBy(farm_total).dividedBy(farm.pair['shares-total'].value).dividedBy(new bignumber_js_1.default(10 ** 12))).multipliedBy(2).multipliedBy(new bignumber_js_1.default(oracle_stsw)).toNumber();
|
|
64
|
+
tvl = (new bignumber_js_1.default(farm.pair['balance-x'].value).multipliedBy(farm_total).dividedBy(farm.pair['shares-total'].value).dividedBy(new bignumber_js_1.default(10 ** 12))).multipliedBy(2).multipliedBy(new bignumber_js_1.default(oracle_data.oracle_stsw)).toNumber();
|
|
65
65
|
}
|
|
66
66
|
else {
|
|
67
|
-
tvl = (new bignumber_js_1.default(farm.pair['balance-y'].value).multipliedBy(farm_total).dividedBy(farm.pair['shares-total'].value).dividedBy(new bignumber_js_1.default(10 ** 12))).multipliedBy(2).multipliedBy(new bignumber_js_1.default(oracle_stsw)).toNumber();
|
|
67
|
+
tvl = (new bignumber_js_1.default(farm.pair['balance-y'].value).multipliedBy(farm_total).dividedBy(farm.pair['shares-total'].value).dividedBy(new bignumber_js_1.default(10 ** 12))).multipliedBy(2).multipliedBy(new bignumber_js_1.default(oracle_data.oracle_stsw)).toNumber();
|
|
68
68
|
}
|
|
69
69
|
break;
|
|
70
70
|
case 'lBTC':
|
|
71
71
|
if (farm.token_x.symbol === farm.BASE) {
|
|
72
|
-
tvl = (new bignumber_js_1.default(farm.pair['balance-x'].value).multipliedBy(farm_total).dividedBy(farm.pair['shares-total'].value).dividedBy(new bignumber_js_1.default(10 ** 14))).multipliedBy(2).multipliedBy(new bignumber_js_1.default(oracle_lbtc)).toNumber();
|
|
72
|
+
tvl = (new bignumber_js_1.default(farm.pair['balance-x'].value).multipliedBy(farm_total).dividedBy(farm.pair['shares-total'].value).dividedBy(new bignumber_js_1.default(10 ** 14))).multipliedBy(2).multipliedBy(new bignumber_js_1.default(oracle_data.oracle_lbtc)).toNumber();
|
|
73
73
|
}
|
|
74
74
|
else {
|
|
75
|
-
tvl = (new bignumber_js_1.default(farm.pair['balance-y'].value).multipliedBy(farm_total).dividedBy(farm.pair['shares-total'].value).dividedBy(new bignumber_js_1.default(10 ** 14))).multipliedBy(2).multipliedBy(new bignumber_js_1.default(oracle_lbtc)).toNumber();
|
|
75
|
+
tvl = (new bignumber_js_1.default(farm.pair['balance-y'].value).multipliedBy(farm_total).dividedBy(farm.pair['shares-total'].value).dividedBy(new bignumber_js_1.default(10 ** 14))).multipliedBy(2).multipliedBy(new bignumber_js_1.default(oracle_data.oracle_lbtc)).toNumber();
|
|
76
76
|
}
|
|
77
77
|
break;
|
|
78
78
|
default:
|
|
@@ -80,27 +80,17 @@ class Farm2Manager {
|
|
|
80
80
|
}
|
|
81
81
|
return tvl;
|
|
82
82
|
}
|
|
83
|
-
async
|
|
84
|
-
const x_token_addr = token_x.addr;
|
|
85
|
-
const y_token_addr = token_y.addr;
|
|
86
|
-
let total_balacne = new bignumber_js_1.default(-1);
|
|
87
|
-
if (x_token_addr === this.stackswap.config.BASE_WSTX_DATA().addr) {
|
|
88
|
-
total_balacne = (new bignumber_js_1.default(pair['balance-x'].value).multipliedBy(farm_total).dividedBy(pair['shares-total'].value).dividedBy(new bignumber_js_1.default(10 ** token_x.decimal))).multipliedBy(2);
|
|
89
|
-
}
|
|
90
|
-
else if (y_token_addr === this.stackswap.config.BASE_WSTX_DATA().addr) {
|
|
91
|
-
total_balacne = (new bignumber_js_1.default(pair['balance-y'].value).multipliedBy(farm_total).dividedBy(pair['shares-total'].value).dividedBy(new bignumber_js_1.default(10 ** token_y.decimal))).multipliedBy(2);
|
|
92
|
-
}
|
|
93
|
-
return total_balacne;
|
|
94
|
-
}
|
|
95
|
-
async getFarmingStakerStatus(pool_address, cur_round) {
|
|
83
|
+
async getFarmingStakerStatus2(pool_address, cur_round, farming_contract) {
|
|
96
84
|
const address = pool_address.split('.');
|
|
97
|
-
|
|
85
|
+
console.log('getFarmingStakerStatus', farming_contract);
|
|
86
|
+
const function_option = (0, util_1.getReadOptions)(this.stackswap, farming_contract, 'getLPUserData', [
|
|
98
87
|
(0, transactions_1.contractPrincipalCV)(address[0], address[1]),
|
|
99
88
|
(0, transactions_1.standardPrincipalCV)(this.stackswap.getSenderAddress()),
|
|
100
89
|
]);
|
|
101
90
|
const result_raw = await (0, transactions_1.callReadOnlyFunction)(function_option);
|
|
102
91
|
const result = (0, transactions_1.cvToValue)(result_raw);
|
|
103
92
|
try {
|
|
93
|
+
console.log('getFarmingStakerStatus', result);
|
|
104
94
|
const pooledToken = result.value.amountLP.value;
|
|
105
95
|
const unclaimedList = [];
|
|
106
96
|
const stakedList = [];
|
|
@@ -113,11 +103,12 @@ class Farm2Manager {
|
|
|
113
103
|
return { pooledToken, unclaimedList, stakedList };
|
|
114
104
|
}
|
|
115
105
|
catch (e) {
|
|
106
|
+
console.log(e);
|
|
116
107
|
return { pooledToken: 0, unclaimedList: [], stakedList: [] };
|
|
117
108
|
}
|
|
118
109
|
}
|
|
119
|
-
async
|
|
120
|
-
const function_option = (0, util_1.getReadOptions)(this.stackswap,
|
|
110
|
+
async getFarmingTotalStatusCycle2(cycle, farming_contract) {
|
|
111
|
+
const function_option = (0, util_1.getReadOptions)(this.stackswap, farming_contract, 'getTotalRoundDataOrDefault', [
|
|
121
112
|
(0, transactions_1.uintCV)(cycle),
|
|
122
113
|
]);
|
|
123
114
|
const result_raw = await (0, transactions_1.callReadOnlyFunction)(function_option);
|
|
@@ -135,9 +126,9 @@ class Farm2Manager {
|
|
|
135
126
|
};
|
|
136
127
|
}
|
|
137
128
|
}
|
|
138
|
-
async
|
|
129
|
+
async getFarmingTotalPoolStatus2(pool_address, farming_contract) {
|
|
139
130
|
const address = pool_address.split('.');
|
|
140
|
-
const function_option = (0, util_1.getReadOptions)(this.stackswap,
|
|
131
|
+
const function_option = (0, util_1.getReadOptions)(this.stackswap, farming_contract, 'getLPTotalData', [
|
|
141
132
|
(0, transactions_1.contractPrincipalCV)(address[0], address[1]),
|
|
142
133
|
]);
|
|
143
134
|
const result_raw = await (0, transactions_1.callReadOnlyFunction)(function_option);
|
|
@@ -149,9 +140,9 @@ class Farm2Manager {
|
|
|
149
140
|
return { amountLP: '0', weight: '1' };
|
|
150
141
|
}
|
|
151
142
|
}
|
|
152
|
-
async
|
|
143
|
+
async getFarmingTotalPoolStatusCycle2(pool_address, cycle, farming_contract) {
|
|
153
144
|
const address = pool_address.split('.');
|
|
154
|
-
const function_option = (0, util_1.getReadOptions)(this.stackswap,
|
|
145
|
+
const function_option = (0, util_1.getReadOptions)(this.stackswap, farming_contract, 'getLPRoundData', [
|
|
155
146
|
(0, transactions_1.contractPrincipalCV)(address[0], address[1]),
|
|
156
147
|
(0, transactions_1.uintCV)(cycle),
|
|
157
148
|
]);
|
|
@@ -164,10 +155,10 @@ class Farm2Manager {
|
|
|
164
155
|
return '0';
|
|
165
156
|
}
|
|
166
157
|
}
|
|
167
|
-
async
|
|
158
|
+
async getFarmingTotalValue2(pool_address, farming_contract) {
|
|
168
159
|
try {
|
|
169
160
|
const address = pool_address.split('.');
|
|
170
|
-
const function_option = (0, util_1.getReadOptions)(this.stackswap,
|
|
161
|
+
const function_option = (0, util_1.getReadOptions)(this.stackswap, farming_contract, 'getLPTotalData', [
|
|
171
162
|
(0, transactions_1.contractPrincipalCV)(address[0], address[1]),
|
|
172
163
|
]);
|
|
173
164
|
const result_raw = await (0, transactions_1.callReadOnlyFunction)(function_option);
|
|
@@ -178,9 +169,9 @@ class Farm2Manager {
|
|
|
178
169
|
return 0;
|
|
179
170
|
}
|
|
180
171
|
}
|
|
181
|
-
async
|
|
172
|
+
async getFarmingUserRewardPerCycle2(pool_address, cycle, farming_contract) {
|
|
182
173
|
const address = pool_address.split('.');
|
|
183
|
-
const function_option = (0, util_1.getReadOptions)(this.stackswap,
|
|
174
|
+
const function_option = (0, util_1.getReadOptions)(this.stackswap, farming_contract, 'getFarmingReward', [
|
|
184
175
|
(0, transactions_1.contractPrincipalCV)(address[0], address[1]),
|
|
185
176
|
(0, transactions_1.standardPrincipalCV)(this.stackswap.getSenderAddress()),
|
|
186
177
|
(0, transactions_1.uintCV)(cycle),
|
|
@@ -189,9 +180,9 @@ class Farm2Manager {
|
|
|
189
180
|
const result = (0, transactions_1.cvToValue)(result_raw);
|
|
190
181
|
return result;
|
|
191
182
|
}
|
|
192
|
-
async
|
|
183
|
+
async getFarmingUserRewardList2(pool_address, unclaimed_list, farming_contract) {
|
|
193
184
|
const address = pool_address.split('.');
|
|
194
|
-
const function_option = (0, util_1.getReadOptions)(this.stackswap,
|
|
185
|
+
const function_option = (0, util_1.getReadOptions)(this.stackswap, farming_contract, 'getFarmingRewardFromList', [
|
|
195
186
|
(0, transactions_1.standardPrincipalCV)(this.stackswap.getSenderAddress()),
|
|
196
187
|
(0, transactions_1.contractPrincipalCV)(address[0], address[1]),
|
|
197
188
|
(0, transactions_1.listCV)(unclaimed_list),
|
|
@@ -200,9 +191,9 @@ class Farm2Manager {
|
|
|
200
191
|
const result = (0, transactions_1.cvToValue)(result_raw);
|
|
201
192
|
return result;
|
|
202
193
|
}
|
|
203
|
-
async
|
|
194
|
+
async getFarmingRewardInfo2(pool_address, cycle, farming_contract) {
|
|
204
195
|
const address = pool_address.split('.');
|
|
205
|
-
const function_option = (0, util_1.getReadOptions)(this.stackswap,
|
|
196
|
+
const function_option = (0, util_1.getReadOptions)(this.stackswap, farming_contract, 'getLPUserRoundData', [
|
|
206
197
|
(0, transactions_1.contractPrincipalCV)(address[0], address[1]),
|
|
207
198
|
(0, transactions_1.standardPrincipalCV)(this.stackswap.getSenderAddress()),
|
|
208
199
|
(0, transactions_1.uintCV)(cycle),
|
|
@@ -211,17 +202,17 @@ class Farm2Manager {
|
|
|
211
202
|
const result = (0, transactions_1.cvToValue)(result_raw);
|
|
212
203
|
return result.value.returnLP.value;
|
|
213
204
|
}
|
|
214
|
-
async migrateToVersion2(pool_address, callback
|
|
205
|
+
async migrateToVersion2(pool_address, farming_contract, callback) {
|
|
215
206
|
const address = pool_address.split('.');
|
|
216
|
-
const function_option = (0, util_1.getWriteOptions)(this.stackswap,
|
|
207
|
+
const function_option = (0, util_1.getWriteOptions)(this.stackswap, farming_contract, 'migrateFromVersion1', [
|
|
217
208
|
(0, transactions_1.contractPrincipalCV)(address[0], address[1]),
|
|
218
209
|
], [], callback);
|
|
219
210
|
await (0, connect_1.openContractCall)(function_option);
|
|
220
211
|
}
|
|
221
|
-
async
|
|
212
|
+
async stakeFarmingContract2(pool_address, amountTokens, lockPeriod, callback, farming_contract) {
|
|
222
213
|
const address = pool_address.split('.');
|
|
223
214
|
const amount = new bignumber_js_1.default(amountTokens).multipliedBy(10 ** 6).toFixed(0).toString();
|
|
224
|
-
const function_option = (0, util_1.getWriteOptions)(this.stackswap,
|
|
215
|
+
const function_option = (0, util_1.getWriteOptions)(this.stackswap, farming_contract, 'stakeTokens', [
|
|
225
216
|
(0, transactions_1.uintCV)(amount),
|
|
226
217
|
(0, transactions_1.contractPrincipalCV)(address[0], address[1]),
|
|
227
218
|
(0, transactions_1.uintCV)(lockPeriod),
|
|
@@ -229,8 +220,8 @@ class Farm2Manager {
|
|
|
229
220
|
], [await (0, util_1.getPostConditionFromAsset)(this.stackswap, this.stackswap.getSenderAddress(), pool_address, amount, transactions_1.FungibleConditionCode.Equal)], callback);
|
|
230
221
|
await (0, connect_1.openContractCall)(function_option);
|
|
231
222
|
}
|
|
232
|
-
async
|
|
233
|
-
const pair_details_options = (0, util_1.getReadOptions)(this.stackswap, token.addr, 'get-balance', [(0, transactions_1.contractPrincipalCV)(this.stackswap.config.STACKSWAP_ADDRESS(),
|
|
223
|
+
async getFarmBalance2(token, farming_contract) {
|
|
224
|
+
const pair_details_options = (0, util_1.getReadOptions)(this.stackswap, token.addr, 'get-balance', [(0, transactions_1.contractPrincipalCV)(this.stackswap.config.STACKSWAP_ADDRESS(), farming_contract)]);
|
|
234
225
|
try {
|
|
235
226
|
const result = await (0, transactions_1.callReadOnlyFunction)(pair_details_options);
|
|
236
227
|
return (0, transactions_1.cvToValue)(result).value;
|
|
@@ -239,47 +230,50 @@ class Farm2Manager {
|
|
|
239
230
|
return 0;
|
|
240
231
|
}
|
|
241
232
|
}
|
|
242
|
-
async
|
|
233
|
+
async claimFarmingContract2(pool_address, cycle, amount_STSW, amount_LP, callback, farming_contract) {
|
|
243
234
|
const address = pool_address.split('.');
|
|
244
235
|
const post_condition = [];
|
|
245
|
-
post_condition.push(await (0, util_1.getPostConditionFromAsset)(this.stackswap, this.stackswap.config.STACKSWAP_ADDRESS() + '.' +
|
|
246
|
-
post_condition.push(await (0, util_1.getPostConditionFromAsset)(this.stackswap, this.stackswap.config.STACKSWAP_ADDRESS() + '.' +
|
|
247
|
-
const function_option = (0, util_1.getWriteOptions)(this.stackswap,
|
|
236
|
+
post_condition.push(await (0, util_1.getPostConditionFromAsset)(this.stackswap, this.stackswap.config.STACKSWAP_ADDRESS() + '.' + farming_contract, this.stackswap.config.BASE_STSW_DATA().addr, amount_STSW, transactions_1.FungibleConditionCode.Equal));
|
|
237
|
+
post_condition.push(await (0, util_1.getPostConditionFromAsset)(this.stackswap, this.stackswap.config.STACKSWAP_ADDRESS() + '.' + farming_contract, pool_address, amount_LP, transactions_1.FungibleConditionCode.Equal));
|
|
238
|
+
const function_option = (0, util_1.getWriteOptions)(this.stackswap, farming_contract, 'claimStakingReward', [
|
|
248
239
|
(0, transactions_1.uintCV)(cycle),
|
|
249
240
|
(0, transactions_1.contractPrincipalCV)(address[0], address[1]),
|
|
250
241
|
(0, transactions_1.contractPrincipalCV)(this.stackswap.config.STACKSWAP_ADDRESS(), this.stackswap.config.CONTRACT_NAME_ORACLE())
|
|
251
242
|
], post_condition, callback);
|
|
252
243
|
await (0, connect_1.openContractCall)(function_option);
|
|
253
244
|
}
|
|
254
|
-
async
|
|
245
|
+
async unstakeFarmingContract2(pool_address, cycle, amount_LP, callback, farming_contract) {
|
|
255
246
|
const address = pool_address.split('.');
|
|
256
247
|
const post_condition = [];
|
|
257
|
-
post_condition.push(await (0, util_1.getPostConditionFromAsset)(this.stackswap, this.stackswap.config.STACKSWAP_ADDRESS() + '.' +
|
|
258
|
-
const function_option = (0, util_1.getWriteOptions)(this.stackswap,
|
|
248
|
+
post_condition.push(await (0, util_1.getPostConditionFromAsset)(this.stackswap, this.stackswap.config.STACKSWAP_ADDRESS() + '.' + farming_contract, pool_address, amount_LP, transactions_1.FungibleConditionCode.Equal));
|
|
249
|
+
const function_option = (0, util_1.getWriteOptions)(this.stackswap, farming_contract, 'unstake-from-farming', [
|
|
259
250
|
(0, transactions_1.uintCV)(cycle),
|
|
260
251
|
(0, transactions_1.contractPrincipalCV)(address[0], address[1]),
|
|
261
252
|
], post_condition, callback);
|
|
262
253
|
await (0, connect_1.openContractCall)(function_option);
|
|
263
254
|
}
|
|
264
|
-
async
|
|
265
|
-
const bh =
|
|
266
|
-
return await this.
|
|
255
|
+
async getCurrentFarmingRound2(farming_contract) {
|
|
256
|
+
const bh = await this.stackswap.getCurrentBlock();
|
|
257
|
+
return await this.getFarmingRound2(Number(bh), farming_contract);
|
|
267
258
|
}
|
|
268
|
-
async
|
|
259
|
+
async getRewardBalanceFromFarming2(pool_addr, unclaimed_list, farming_contract) {
|
|
269
260
|
const num_list = [];
|
|
270
261
|
for (const unclaimed of unclaimed_list) {
|
|
271
262
|
num_list.push((0, transactions_1.uintCV)(unclaimed));
|
|
272
263
|
}
|
|
273
264
|
let reward_num = new bignumber_js_1.default(0);
|
|
265
|
+
console.log(pool_addr, num_list, farming_contract);
|
|
274
266
|
try {
|
|
275
267
|
for (let i = 0; i < num_list.length; i += 4) {
|
|
276
|
-
|
|
268
|
+
console.log(pool_addr, num_list.slice(i, i + 4 < num_list.length ? i + 4 : num_list.length), farming_contract);
|
|
269
|
+
const result = await this.getFarmingUserRewardList2(pool_addr, num_list.slice(i, i + 4 < num_list.length ? i + 4 : num_list.length), farming_contract);
|
|
270
|
+
console.log('temp result', result.rewardSum.value);
|
|
277
271
|
reward_num = reward_num.plus(new bignumber_js_1.default(result.rewardSum.value));
|
|
278
272
|
}
|
|
279
|
-
return (0, util_1.
|
|
273
|
+
return (0, util_1.num2decimal)(reward_num.toString(), 6);
|
|
280
274
|
}
|
|
281
275
|
catch (e) {
|
|
282
|
-
return (0, util_1.
|
|
276
|
+
return (0, util_1.num2decimal)(reward_num.toString(), 6);
|
|
283
277
|
}
|
|
284
278
|
}
|
|
285
279
|
getFarmingAPR(tvl, stsw_price, reward, weight) {
|
|
@@ -296,6 +290,108 @@ class Farm2Manager {
|
|
|
296
290
|
return new_reward_apr.toFixed(3).toString();
|
|
297
291
|
}
|
|
298
292
|
}
|
|
293
|
+
async getFarmDataFromData(data) {
|
|
294
|
+
const oracle_stsw = (await this.stackswap.lbtcManager.getPrice('STSW'))['last-price'].value;
|
|
295
|
+
const oracle_stx = (await this.stackswap.lbtcManager.getPrice('STX'))['last-price'].value;
|
|
296
|
+
const oracle_lbtc = (await this.stackswap.lbtcManager.getPrice('lBTC'))['last-price'].value;
|
|
297
|
+
const bh = await this.stackswap.getCurrentBlock();
|
|
298
|
+
return await this.getEachFarmData(data, bh, { oracle_stsw, oracle_lbtc, oracle_stx });
|
|
299
|
+
}
|
|
300
|
+
async getEachFarmData(data, bh, oracle_data) {
|
|
301
|
+
const tvl_apr = new bignumber_js_1.default(0);
|
|
302
|
+
const farms = [];
|
|
303
|
+
const farm_length = data.length;
|
|
304
|
+
for (let i = 0; i < data.length; i++) {
|
|
305
|
+
let farming_contract = '';
|
|
306
|
+
if (data[i].farm_group === 1) {
|
|
307
|
+
farming_contract = this.stackswap.config.CONTRACT_NAME_STACKSWAP_FARMING2_1();
|
|
308
|
+
}
|
|
309
|
+
else if (data[i].farm_group === 5) {
|
|
310
|
+
farming_contract = this.stackswap.config.CONTRACT_NAME_STACKSWAP_FARMING2_5();
|
|
311
|
+
}
|
|
312
|
+
const farm_round = await this.getCurrentFarmingRound2(farming_contract);
|
|
313
|
+
this.getFarmData(data[i], farm_round, bh, tvl_apr, farming_contract, oracle_data).then((value) => {
|
|
314
|
+
value.farm_group = data[i].farm_group;
|
|
315
|
+
value.farm_contract = farming_contract;
|
|
316
|
+
farms.push(value);
|
|
317
|
+
if (farms.length === farm_length) {
|
|
318
|
+
const tvls = { 'group1': '0', 'group5': '0' };
|
|
319
|
+
for (const farm_temp of farms) {
|
|
320
|
+
switch (farm_temp.farm_group) {
|
|
321
|
+
case 1:
|
|
322
|
+
tvls.group1 = new bignumber_js_1.default(tvls.group1).plus(new bignumber_js_1.default(this.getPoolUSDPriceFarm(farm_temp, farm_temp.total_locked_lp, oracle_data)).multipliedBy(farm_temp.weight)).toString();
|
|
323
|
+
break;
|
|
324
|
+
case 5:
|
|
325
|
+
tvls.group5 = new bignumber_js_1.default(tvls.group5).plus(new bignumber_js_1.default(this.getPoolUSDPriceFarm(farm_temp, farm_temp.total_locked_lp, oracle_data)).multipliedBy(farm_temp.weight)).toString();
|
|
326
|
+
break;
|
|
327
|
+
}
|
|
328
|
+
}
|
|
329
|
+
console.log({ tvls });
|
|
330
|
+
for (const farm_temp of farms) {
|
|
331
|
+
switch (farm_temp.farm_group) {
|
|
332
|
+
case 1:
|
|
333
|
+
farm_temp.APR = this.getFarmingAPR(tvls.group1, oracle_data.oracle_stsw, farm_temp.reward, farm_temp.weight);
|
|
334
|
+
break;
|
|
335
|
+
case 5:
|
|
336
|
+
farm_temp.APR = this.getFarmingAPR(tvls.group5, oracle_data.oracle_stsw, farm_temp.reward, farm_temp.weight);
|
|
337
|
+
break;
|
|
338
|
+
}
|
|
339
|
+
console.log(farm_temp.APR);
|
|
340
|
+
}
|
|
341
|
+
}
|
|
342
|
+
});
|
|
343
|
+
}
|
|
344
|
+
return farms;
|
|
345
|
+
}
|
|
346
|
+
async getFarmData(farm, farm_round, block_height, tvl_apr, farming_contract, oracle_data) {
|
|
347
|
+
farm.valid = false;
|
|
348
|
+
farm.cur_round = farm_round;
|
|
349
|
+
farm.pair = (await this.stackswap.swapManager.findRouter(farm.token_x, farm.token_y, Number(block_height))).pair;
|
|
350
|
+
farm.pair.sharetoken = { balance: 0, addr: farm.pair['liquidity-token'].value };
|
|
351
|
+
farm.pair.price = (farm.pair['balance-y'].value / (10 ** farm.token_y.decimal)) / (farm.pair['balance-x'].value / (10 ** farm.token_x.decimal));
|
|
352
|
+
const farm_total_v2 = await this.getFarmBalance2(farm.pair.sharetoken, farming_contract);
|
|
353
|
+
const farm_total_v1 = await this.stackswap.farmManager.getFarmBalance(farm.pair.sharetoken);
|
|
354
|
+
farm.TVL = this.getPoolUSDPriceFarm(farm, new bignumber_js_1.default(farm_total_v1).plus(farm_total_v2).toString(), oracle_data);
|
|
355
|
+
farm.total_locked_lp = new bignumber_js_1.default(farm_total_v1).plus(farm_total_v2).toString();
|
|
356
|
+
const farm_temp_total_data = await this.getFarmingTotalStatusCycle2(farm_round, farming_contract);
|
|
357
|
+
farm.reward = farm_temp_total_data.reward;
|
|
358
|
+
const lpTotalData = await this.getFarmingTotalPoolStatus2(farm.token_swapr, farming_contract);
|
|
359
|
+
farm.weight = lpTotalData.weight;
|
|
360
|
+
tvl_apr = tvl_apr.plus(new bignumber_js_1.default(this.getPoolUSDPriceFarm(farm, farm.total_locked_lp, oracle_data)).multipliedBy(farm.weight));
|
|
361
|
+
console.log(farming_contract, farm.TVL, tvl_apr);
|
|
362
|
+
farm.valid = true;
|
|
363
|
+
return farm;
|
|
364
|
+
}
|
|
365
|
+
async getFarmUserData(farm, farm_round, farming_contract, oracle_data) {
|
|
366
|
+
farm.isMigratable = await this.isUserMigratable2(farm.pair['liquidity-token'].value, farming_contract);
|
|
367
|
+
this.getFarmingStakerStatus2(farm.token_swapr, Number(farm_round), farming_contract).then((status_v2) => {
|
|
368
|
+
if (!farm.isMigratable) {
|
|
369
|
+
this.stackswap.farmManager.getFarmingStakerStatus(farm.token_swapr, Number(farm_round)).then((status_v1) => {
|
|
370
|
+
farm.claimable_list = status_v2.unclaimedList.concat(status_v1.unclaimedList);
|
|
371
|
+
farm.pooled_stsw = new bignumber_js_1.default(status_v2.pooledToken).plus(status_v1.pooledToken).toString();
|
|
372
|
+
farm.stakedList = status_v2.stakedList;
|
|
373
|
+
farm.user_TVL = this.getPoolUSDPriceFarm(farm, farm.pooled_stsw, oracle_data);
|
|
374
|
+
this.getRewardBalanceFromFarming2(farm.token_swapr, status_v2.unclaimedList, farming_contract).then(reward_v2 => {
|
|
375
|
+
this.stackswap.farmManager.getRewardBalanceFromFarming(farm.token_swapr, status_v1.unclaimedList).then(reward_v1 => {
|
|
376
|
+
console.log({ reward_v2 });
|
|
377
|
+
farm.total_reward = new bignumber_js_1.default(reward_v2).plus(reward_v1).toString();
|
|
378
|
+
});
|
|
379
|
+
});
|
|
380
|
+
});
|
|
381
|
+
}
|
|
382
|
+
else {
|
|
383
|
+
console.log('not yet migrated', status_v2);
|
|
384
|
+
farm.claimable_list = status_v2.unclaimedList;
|
|
385
|
+
farm.pooled_stsw = status_v2.pooledToken;
|
|
386
|
+
farm.stakedList = status_v2.stakedList;
|
|
387
|
+
farm.user_TVL = this.getPoolUSDPriceFarm(farm, farm.pooled_stsw, oracle_data);
|
|
388
|
+
this.getRewardBalanceFromFarming2(farm.token_swapr, status_v2.unclaimedList, farming_contract).then(reward => {
|
|
389
|
+
console.log({ reward });
|
|
390
|
+
farm.total_reward = reward;
|
|
391
|
+
});
|
|
392
|
+
}
|
|
393
|
+
});
|
|
394
|
+
}
|
|
299
395
|
}
|
|
300
396
|
exports.Farm2Manager = Farm2Manager;
|
|
301
397
|
//# sourceMappingURL=farm2.manager.js.map
|