stackswap-front-api-test-02 1.1.2 → 1.1.5

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.
@@ -16,3 +16,12 @@
16
16
  /*! scure-base - MIT License (c) 2022 Paul Miller (paulmillr.com) */
17
17
 
18
18
  /*! scure-bip39 - MIT License (c) 2022 Patricio Palladino, Paul Miller (paulmillr.com) */
19
+
20
+ /**
21
+ * @license
22
+ * Lodash <https://lodash.com/>
23
+ * Copyright OpenJS Foundation and other contributors <https://openjsf.org/>
24
+ * Released under MIT license <https://lodash.com/license>
25
+ * Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE>
26
+ * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
27
+ */
@@ -80,6 +80,12 @@ export declare class Farm2Manager {
80
80
  oracle_stsw: any;
81
81
  oracle_lbtc: any;
82
82
  }, type: Mode): Promise<any>;
83
+ localCache: {
84
+ [name: string]: {
85
+ block_height: string;
86
+ data: any;
87
+ };
88
+ };
83
89
  getFarmDataMinimal(farm: any, farm_round: any, block_height: string, farming_contract: string, oracle_data: {
84
90
  oracle_stx: any;
85
91
  oracle_stsw: any;
@@ -8,6 +8,7 @@ const transactions_1 = require("@stacks/transactions");
8
8
  const bignumber_js_1 = __importDefault(require("bignumber.js"));
9
9
  const connect_1 = require("@stacks/connect");
10
10
  const util_1 = require("../util");
11
+ const lodash_1 = __importDefault(require("lodash"));
11
12
  var Mode;
12
13
  (function (Mode) {
13
14
  Mode[Mode["WITH_SERVER"] = 0] = "WITH_SERVER";
@@ -15,6 +16,7 @@ var Mode;
15
16
  })(Mode = exports.Mode || (exports.Mode = {}));
16
17
  class Farm2Manager {
17
18
  constructor(stackswap) {
19
+ this.localCache = {};
18
20
  ``;
19
21
  this.stackswap = stackswap;
20
22
  }
@@ -317,7 +319,6 @@ class Farm2Manager {
317
319
  break;
318
320
  }
319
321
  }
320
- console.log({ tvls });
321
322
  for (const farm_temp of farms) {
322
323
  switch (farm_temp.farm_group) {
323
324
  case 1:
@@ -391,7 +392,6 @@ class Farm2Manager {
391
392
  value.farm_contract = farming_contract;
392
393
  farms.push(value);
393
394
  this.checkAndSetFarmAPR(farms, farm_length, oracle_data);
394
- console.log("let's callback");
395
395
  callback({ farms, farm_round, oracle_data });
396
396
  });
397
397
  }
@@ -423,24 +423,25 @@ class Farm2Manager {
423
423
  async getEachFarmDataSerialDash(data, bh, oracle_data, type) {
424
424
  const farms = [];
425
425
  const farm_length = data.length;
426
- for (let i = 0; i < farm_length; i++) {
426
+ for (let i = 0; i < 16; i++) {
427
427
  farms.push([]);
428
428
  }
429
429
  const farm_round = await this.getCurrentFarmingRound2(this.stackswap.config.CONTRACT_NAME_STACKSWAP_FARMING2_1());
430
430
  for (let farm_round_iter = Number(farm_round); farm_round_iter < Number(farm_round) + 16; farm_round_iter++) {
431
431
  for (let i = 0; i < data.length; i++) {
432
+ const farm_data = lodash_1.default.cloneDeep(data[i]);
432
433
  let farming_contract = '';
433
- if (data[i].farm_group === 1) {
434
+ if (farm_data.farm_group === 1) {
434
435
  farming_contract = this.stackswap.config.CONTRACT_NAME_STACKSWAP_FARMING2_1();
435
436
  }
436
- else if (data[i].farm_group === 2) {
437
+ else if (farm_data.farm_group === 2) {
437
438
  farming_contract = this.stackswap.config.CONTRACT_NAME_STACKSWAP_FARMING2_2();
438
439
  }
439
- else if (data[i].farm_group === 5) {
440
+ else if (farm_data.farm_group === 5) {
440
441
  farming_contract = this.stackswap.config.CONTRACT_NAME_STACKSWAP_FARMING2_5();
441
442
  }
442
- const value = await this.getFarmDataMinimal(data[i], farm_round_iter, bh, farming_contract, oracle_data, type);
443
- value.farm_group = data[i].farm_group;
443
+ const value = await this.getFarmDataMinimal(farm_data, farm_round_iter, bh, farming_contract, oracle_data, type);
444
+ value.farm_group = farm_data.farm_group;
444
445
  value.farm_contract = farming_contract;
445
446
  farms[farm_round_iter - Number(farm_round)].push(value);
446
447
  }
@@ -475,22 +476,55 @@ class Farm2Manager {
475
476
  async getFarmDataMinimal(farm, farm_round, block_height, farming_contract, oracle_data, type) {
476
477
  farm.valid = false;
477
478
  farm.cur_round = farm_round;
478
- switch (type) {
479
- case Mode.ONLY_BLOCKCHAIN:
480
- farm.pair = (await this.stackswap.poolManager.getPairDataFromContract(farm.token_x, farm.token_y));
481
- break;
482
- case Mode.WITH_SERVER:
483
- farm.pair = (await this.stackswap.swapManager.findRouter(farm.token_x, farm.token_y, Number(block_height))).pair;
484
- break;
479
+ if (this.localCache[`${farm.name}|FarmPairData`] != null) {
480
+ if (Number(this.localCache[`${farm.name}|FarmPairData`].block_height) < Number(block_height)) {
481
+ switch (type) {
482
+ case Mode.ONLY_BLOCKCHAIN:
483
+ farm.pair = (await this.stackswap.poolManager.getPairDataFromContract(farm.token_x, farm.token_y));
484
+ break;
485
+ case Mode.WITH_SERVER:
486
+ farm.pair = (await this.stackswap.swapManager.findRouter(farm.token_x, farm.token_y, Number(block_height))).pair;
487
+ break;
488
+ }
489
+ this.localCache[`${farm.name}|FarmPairData`] = {
490
+ block_height: block_height,
491
+ data: farm.pair,
492
+ };
493
+ }
494
+ else {
495
+ farm.pair = this.localCache[`${farm.name}|FarmPairData`].data;
496
+ }
485
497
  }
486
498
  farm.pair.price = (farm.pair.balance_y / (10 ** farm.token_y.decimal)) / (farm.pair.balance_x / (10 ** farm.token_x.decimal));
487
499
  const temp_farm_round_data = await this.getFarmingTotalPoolStatusCycle2(farm.pair.token_lp.addr, farm_round, farming_contract);
488
- console.log(temp_farm_round_data);
489
500
  farm.total_locked_lp = temp_farm_round_data.amountLP.value;
490
501
  farm.TVL = this.getPoolUSDPriceFarm(farm, farm.total_locked_lp, oracle_data);
491
- const farm_temp_total_data = await this.getFarmingTotalStatusCycle2(farm_round, farming_contract);
492
- farm.reward = farm_temp_total_data.reward;
493
- const lpTotalData = await this.getFarmingTotalPoolStatus2(farm.pair.token_lp.addr, farming_contract);
502
+ if (this.localCache[`${farm.farm_group}|FarmReward`] != null) {
503
+ if (Number(this.localCache[`${farm.farm_group}|FarmReward`].block_height) < Number(block_height)) {
504
+ const farm_temp_total_data = await this.getFarmingTotalStatusCycle2(farm_round, farming_contract);
505
+ farm.reward = temp_farm_round_data.reward;
506
+ this.localCache[`${farm.farm_group}|FarmReward`] = {
507
+ block_height: block_height,
508
+ data: farm_temp_total_data.reward,
509
+ };
510
+ }
511
+ else {
512
+ farm.reward = this.localCache[`${farm.farm_group}|FarmReward`].data;
513
+ }
514
+ }
515
+ let lpTotalData = null;
516
+ if (this.localCache[`${farm.name}|'FarmTotalPool`] != null) {
517
+ if (Number(this.localCache[`${farm.name}|'FarmTotalPool`].block_height) < Number(block_height)) {
518
+ lpTotalData = await this.getFarmingTotalPoolStatus2(farm.pair.token_lp.addr, farming_contract);
519
+ this.localCache[`${farm.name}|'FarmTotalPool`] = {
520
+ block_height: block_height,
521
+ data: lpTotalData,
522
+ };
523
+ }
524
+ else {
525
+ lpTotalData = this.localCache[`${farm.name}|'FarmTotalPool`].data;
526
+ }
527
+ }
494
528
  farm.weight = lpTotalData.weight;
495
529
  farm.valid = true;
496
530
  return farm;
@@ -506,7 +540,6 @@ class Farm2Manager {
506
540
  farm.user_TVL = this.getPoolUSDPriceFarm(farm, farm.pooled_stsw, oracle_data);
507
541
  this.getRewardBalanceFromFarming2(farm.pair.token_lp.addr, status_v2.unclaimedList, farming_contract).then(reward_v2 => {
508
542
  this.stackswap.farmManager.getRewardBalanceFromFarming(farm.pair.token_lp.addr, status_v1.unclaimedList).then(reward_v1 => {
509
- console.log({ reward_v2 });
510
543
  farm.total_reward = new bignumber_js_1.default(reward_v2).plus(reward_v1).toString();
511
544
  callback(farm);
512
545
  });
@@ -514,13 +547,11 @@ class Farm2Manager {
514
547
  });
515
548
  }
516
549
  else {
517
- console.log('not yet migrated', status_v2);
518
550
  farm.claimable_list = status_v2.unclaimedList;
519
551
  farm.pooled_stsw = status_v2.pooledToken;
520
552
  farm.stakedList = status_v2.stakedList;
521
553
  farm.user_TVL = this.getPoolUSDPriceFarm(farm, farm.pooled_stsw, oracle_data);
522
554
  this.getRewardBalanceFromFarming2(farm.token_swapr, status_v2.unclaimedList, farming_contract).then(reward => {
523
- console.log({ reward });
524
555
  farm.total_reward = reward;
525
556
  callback(farm);
526
557
  });
@@ -546,7 +577,6 @@ class Farm2Manager {
546
577
  farm.user_TVL = this.getPoolUSDPriceFarm(farm, farm.pooled_stsw, oracle_data);
547
578
  this.getRewardBalanceFromFarming2(farm.pair.token_lp.addr, status_v2.unclaimedList, farming_contract).then(reward_v2 => {
548
579
  this.stackswap.farmManager.getRewardBalanceFromFarming(farm.pair.token_lp.addr, status_v1.unclaimedList).then(reward_v1 => {
549
- console.log({ reward_v2 });
550
580
  farm.total_reward = new bignumber_js_1.default(reward_v2).plus(reward_v1).toString();
551
581
  callback(farm);
552
582
  });
@@ -1 +1 @@
1
- {"version":3,"file":"farm2.manager.js","sourceRoot":"","sources":["../../../src/stackswap/manager/farm2.manager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"farm2.manager.js","sourceRoot":"","sources":["../../../src/stackswap/manager/farm2.manager.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "stackswap-front-api-test-02",
3
- "version": "1.1.2",
3
+ "version": "1.1.5",
4
4
  "description": "",
5
5
  "scripts": {
6
6
  "start": "tsc -b tsconfig.build.json --watch --verbose",
@@ -10,6 +10,7 @@ import BigNumber from 'bignumber.js';
10
10
  import {openContractCall} from '@stacks/connect';
11
11
  import {getPostConditionFromAsset, getReadOptions, getWriteOptions, num2decimal} from "../util";
12
12
  import {StackswapAPI} from "../../index";
13
+ import _ from 'lodash';
13
14
 
14
15
  export enum Mode {
15
16
  WITH_SERVER,
@@ -369,7 +370,7 @@ export class Farm2Manager {
369
370
  break;
370
371
  }
371
372
  }
372
- console.log({tvls})
373
+ // console.log({tvls})
373
374
  for (const farm_temp of farms) {
374
375
  switch (farm_temp.farm_group) {
375
376
  case 1:
@@ -451,7 +452,7 @@ export class Farm2Manager {
451
452
  farms.push(value);
452
453
  this.checkAndSetFarmAPR(farms, farm_length, oracle_data);
453
454
 
454
- console.log("let's callback");
455
+ // console.log("let's callback");
455
456
  callback({farms, farm_round, oracle_data});
456
457
  })
457
458
  }
@@ -487,23 +488,24 @@ export class Farm2Manager {
487
488
 
488
489
  const farms : any[][] = [];
489
490
  const farm_length: number = data.length;
490
- for (let i = 0; i < farm_length; i++) {
491
+ for (let i = 0; i < 16; i++) {
491
492
  farms.push([]);
492
493
  }
493
494
  const farm_round = await this.getCurrentFarmingRound2(this.stackswap.config.CONTRACT_NAME_STACKSWAP_FARMING2_1());
494
495
  for (let farm_round_iter = Number(farm_round); farm_round_iter < Number(farm_round) + 16 ; farm_round_iter++) {
495
496
  for (let i = 0; i < data.length; i++) {
497
+ const farm_data = _.cloneDeep(data[i]);
496
498
  let farming_contract = '';
497
- if (data[i].farm_group === 1) {
499
+ if (farm_data.farm_group === 1) {
498
500
  farming_contract = this.stackswap.config.CONTRACT_NAME_STACKSWAP_FARMING2_1();
499
- } else if (data[i].farm_group === 2) {
501
+ } else if (farm_data.farm_group === 2) {
500
502
  farming_contract = this.stackswap.config.CONTRACT_NAME_STACKSWAP_FARMING2_2();
501
- } else if (data[i].farm_group === 5) {
503
+ } else if (farm_data.farm_group === 5) {
502
504
  farming_contract = this.stackswap.config.CONTRACT_NAME_STACKSWAP_FARMING2_5();
503
505
  }
504
506
 
505
- const value = await this.getFarmDataMinimal(data[i], farm_round_iter, bh, farming_contract, oracle_data, type);
506
- value.farm_group = data[i].farm_group;
507
+ const value = await this.getFarmDataMinimal(farm_data, farm_round_iter, bh, farming_contract, oracle_data, type);
508
+ value.farm_group = farm_data.farm_group;
507
509
  value.farm_contract = farming_contract;
508
510
 
509
511
  farms[farm_round_iter-Number(farm_round)].push(value);
@@ -543,29 +545,67 @@ export class Farm2Manager {
543
545
  }
544
546
 
545
547
 
548
+ localCache:{[name: string]: {block_height: string, data: any} } = {};
549
+
546
550
  async getFarmDataMinimal(farm: any, farm_round: any, block_height: string, farming_contract: string, oracle_data: { oracle_stx: any, oracle_stsw: any, oracle_lbtc: any }, type : Mode ) {
547
551
  farm.valid = false;
548
552
  farm.cur_round = farm_round;
549
- switch (type) {
550
- case Mode.ONLY_BLOCKCHAIN:
551
- farm.pair = (await this.stackswap.poolManager.getPairDataFromContract(farm.token_x, farm.token_y));
552
- break;
553
- case Mode.WITH_SERVER:
554
- farm.pair = (await this.stackswap.swapManager.findRouter(farm.token_x, farm.token_y, Number(block_height))).pair;
555
- break;
553
+
554
+ if(this.localCache[`${farm.name}|FarmPairData`] != null ){
555
+ if(Number(this.localCache[`${farm.name}|FarmPairData`].block_height) < Number(block_height) ){
556
+ switch (type) {
557
+ case Mode.ONLY_BLOCKCHAIN:
558
+ farm.pair = (await this.stackswap.poolManager.getPairDataFromContract(farm.token_x, farm.token_y));
559
+ break;
560
+ case Mode.WITH_SERVER:
561
+ farm.pair = (await this.stackswap.swapManager.findRouter(farm.token_x, farm.token_y, Number(block_height))).pair;
562
+ break;
563
+ }
564
+ this.localCache[`${farm.name}|FarmPairData`] = {
565
+ block_height : block_height,
566
+ data : farm.pair,
567
+ }
568
+ }else {
569
+ farm.pair = this.localCache[`${farm.name}|FarmPairData`].data;
570
+ }
556
571
  }
572
+
557
573
  // farm.pair.sharetoken = {balance: 0, addr: farm.pair.token_lp.addr};
558
574
  farm.pair.price = (farm.pair.balance_y / (10 ** farm.token_y.decimal)) / (farm.pair.balance_x / (10 ** farm.token_x.decimal));
559
575
  // const farm_total_v2 = await this.getFarmBalance2(farm.pair.token_lp, farming_contract);
560
576
  // const farm_total_v1 = await this.stackswap.farmManager.getFarmBalance(farm.pair.token_lp);
561
577
  const temp_farm_round_data= await this.getFarmingTotalPoolStatusCycle2(farm.pair.token_lp.addr, farm_round, farming_contract);
562
- console.log(temp_farm_round_data);
578
+ // console.log(temp_farm_round_data);
563
579
  farm.total_locked_lp = temp_farm_round_data.amountLP.value;
564
580
  farm.TVL = this.getPoolUSDPriceFarm(farm, farm.total_locked_lp, oracle_data);
565
581
 
566
- const farm_temp_total_data = await this.getFarmingTotalStatusCycle2(farm_round, farming_contract);
567
- farm.reward = farm_temp_total_data.reward;
568
- const lpTotalData = await this.getFarmingTotalPoolStatus2(farm.pair.token_lp.addr, farming_contract);
582
+
583
+
584
+ if(this.localCache[`${farm.farm_group}|FarmReward`] != null ){
585
+ if(Number(this.localCache[`${farm.farm_group}|FarmReward`].block_height) < Number(block_height) ){
586
+ const farm_temp_total_data = await this.getFarmingTotalStatusCycle2(farm_round, farming_contract);
587
+ farm.reward = temp_farm_round_data.reward;
588
+ this.localCache[`${farm.farm_group}|FarmReward`] = {
589
+ block_height : block_height,
590
+ data : farm_temp_total_data.reward,
591
+ }
592
+ }else {
593
+ farm.reward = this.localCache[`${farm.farm_group}|FarmReward`].data;
594
+ }
595
+ }
596
+
597
+ let lpTotalData : any = null;
598
+ if(this.localCache[`${farm.name}|'FarmTotalPool`] != null ){
599
+ if(Number(this.localCache[`${farm.name}|'FarmTotalPool`].block_height) < Number(block_height) ){
600
+ lpTotalData = await this.getFarmingTotalPoolStatus2(farm.pair.token_lp.addr, farming_contract);
601
+ this.localCache[`${farm.name}|'FarmTotalPool`] = {
602
+ block_height : block_height,
603
+ data : lpTotalData,
604
+ }
605
+ }else {
606
+ lpTotalData = this.localCache[`${farm.name}|'FarmTotalPool`].data;
607
+ }
608
+ }
569
609
  farm.weight = lpTotalData.weight; //TODO if weight chanages, use temp_farm_round_Data.weight
570
610
  // tvl_apr = tvl_apr.plus(new BigNumber(this.getPoolUSDPriceFarm(farm, farm.total_locked_lp, oracle_data)).multipliedBy(farm.weight));
571
611
  // console.log(farming_contract, farm.TVL, tvl_apr);
@@ -586,7 +626,7 @@ export class Farm2Manager {
586
626
  // console.log('migrated', status_v2, status_v1);
587
627
  this.getRewardBalanceFromFarming2(farm.pair.token_lp.addr, status_v2.unclaimedList, farming_contract).then(reward_v2 => {
588
628
  this.stackswap.farmManager.getRewardBalanceFromFarming(farm.pair.token_lp.addr, status_v1.unclaimedList).then(reward_v1 => {
589
- console.log({reward_v2})
629
+ // console.log({reward_v2})
590
630
  farm.total_reward = new BigNumber(reward_v2).plus(reward_v1).toString();
591
631
  callback(farm);
592
632
  }
@@ -594,13 +634,13 @@ export class Farm2Manager {
594
634
  });
595
635
  });
596
636
  } else {
597
- console.log('not yet migrated', status_v2);
637
+ // console.log('not yet migrated', status_v2);
598
638
  farm.claimable_list = status_v2.unclaimedList;
599
639
  farm.pooled_stsw = status_v2.pooledToken;
600
640
  farm.stakedList = status_v2.stakedList;
601
641
  farm.user_TVL = this.getPoolUSDPriceFarm(farm, farm.pooled_stsw, oracle_data);
602
642
  this.getRewardBalanceFromFarming2(farm.token_swapr, status_v2.unclaimedList, farming_contract).then(reward => {
603
- console.log({reward})
643
+ // console.log({reward})
604
644
  farm.total_reward = reward;
605
645
  callback(farm);
606
646
  });
@@ -628,7 +668,7 @@ export class Farm2Manager {
628
668
  // console.log('migrated', status_v2, status_v1);
629
669
  this.getRewardBalanceFromFarming2(farm.pair.token_lp.addr, status_v2.unclaimedList, farming_contract).then(reward_v2 => {
630
670
  this.stackswap.farmManager.getRewardBalanceFromFarming(farm.pair.token_lp.addr, status_v1.unclaimedList).then(reward_v1 => {
631
- console.log({reward_v2})
671
+ // console.log({reward_v2})
632
672
  farm.total_reward = new BigNumber(reward_v2).plus(reward_v1).toString();
633
673
  callback(farm);
634
674
  }