@ape.swap/bonds-sdk 1.0.352 → 1.0.354

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 (36) hide show
  1. package/dist/components/BondModal/BondModal.js +1 -1
  2. package/dist/components/YourBonds/YourBonds.js +40 -66
  3. package/dist/components/YourBonds/fetchBillsUser.d.ts +3 -3
  4. package/dist/components/YourBonds/fetchBillsUser.js +4 -4
  5. package/dist/types/bonds.d.ts +0 -62
  6. package/dist/types/yourbonds.d.ts +0 -4
  7. package/package.json +1 -1
  8. package/dist/config/abi/erc20.json +0 -117
  9. package/dist/config/abi/price-getter-linea.json +0 -1448
  10. package/dist/config/abi/price-getter.json +0 -1309
  11. package/dist/hooks/PriceGetter/usePricesFromPriceGetter.d.ts +0 -17
  12. package/dist/hooks/PriceGetter/usePricesFromPriceGetter.js +0 -205
  13. package/dist/state/bills/cleanBillsData.d.ts +0 -5
  14. package/dist/state/bills/cleanBillsData.js +0 -41
  15. package/dist/state/bills/fetchBills.d.ts +0 -4
  16. package/dist/state/bills/fetchBills.js +0 -61
  17. package/dist/state/bills/fetchBillsCalls.d.ts +0 -4
  18. package/dist/state/bills/fetchBillsCalls.js +0 -27
  19. package/dist/state/bills/fetchBillsUser.d.ts +0 -15
  20. package/dist/state/bills/fetchBillsUser.js +0 -171
  21. package/dist/state/bills/getBillNftData.d.ts +0 -9
  22. package/dist/state/bills/getBillNftData.js +0 -109
  23. package/dist/state/bills/hooks.d.ts +0 -4
  24. package/dist/state/bills/hooks.js +0 -142
  25. package/dist/state/bills/index.d.ts +0 -48
  26. package/dist/state/bills/index.js +0 -293
  27. package/dist/state/bills/types.d.ts +0 -168
  28. package/dist/state/bills/types.js +0 -1
  29. package/dist/state/tokenPrices/fetchTokenPricesForMultipleChains.d.ts +0 -4
  30. package/dist/state/tokenPrices/fetchTokenPricesForMultipleChains.js +0 -68
  31. package/dist/state/tokenPrices/getAllTokenPrices.d.ts +0 -5
  32. package/dist/state/tokenPrices/getAllTokenPrices.js +0 -288
  33. package/dist/state/tokenPrices/useTokenPricesNew.d.ts +0 -11
  34. package/dist/state/tokenPrices/useTokenPricesNew.js +0 -72
  35. package/dist/types/dexFactories.d.ts +0 -11
  36. package/dist/types/dexFactories.js +0 -2
@@ -1,109 +0,0 @@
1
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3
- return new (P || (P = Promise))(function (resolve, reject) {
4
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
5
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
6
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
7
- step((generator = generator.apply(thisArg, _arguments || [])).next());
8
- });
9
- };
10
- var __generator = (this && this.__generator) || function (thisArg, body) {
11
- var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
12
- return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
13
- function verb(n) { return function (v) { return step([n, v]); }; }
14
- function step(op) {
15
- if (f) throw new TypeError("Generator is already executing.");
16
- while (g && (g = 0, op[0] && (_ = 0)), _) try {
17
- if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
18
- if (y = 0, t) op = [op[0] & 2, t.value];
19
- switch (op[0]) {
20
- case 0: case 1: t = op; break;
21
- case 4: _.label++; return { value: op[1], done: false };
22
- case 5: _.label++; y = op[1]; op = [0]; continue;
23
- case 7: op = _.ops.pop(); _.trys.pop(); continue;
24
- default:
25
- if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
26
- if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
27
- if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
28
- if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
29
- if (t[2]) _.ops.pop();
30
- _.trys.pop(); continue;
31
- }
32
- op = body.call(thisArg, _);
33
- } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
34
- if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
35
- }
36
- };
37
- import axiosRetry from 'axios-retry';
38
- import axios from 'axios';
39
- import { apiV2BaseUrl } from '../../config/constants/api';
40
- export var getBillNftData = function (billNftId, billNftAddress, chainId) { return __awaiter(void 0, void 0, void 0, function () {
41
- var response, billNftDataResp, error_1;
42
- return __generator(this, function (_a) {
43
- switch (_a.label) {
44
- case 0:
45
- _a.trys.push([0, 3, , 4]);
46
- axiosRetry(axios, {
47
- retries: 5,
48
- retryCondition: function () { return true; },
49
- });
50
- return [4 /*yield*/, axios.get("".concat(apiV2BaseUrl, "/bills/single/").concat(chainId, "/").concat(billNftAddress, "/").concat(billNftId))];
51
- case 1:
52
- response = _a.sent();
53
- return [4 /*yield*/, response.data];
54
- case 2:
55
- billNftDataResp = _a.sent();
56
- if (billNftDataResp.statusCode === 500) {
57
- return [2 /*return*/, null];
58
- }
59
- return [2 /*return*/, billNftDataResp];
60
- case 3:
61
- error_1 = _a.sent();
62
- return [2 /*return*/, null];
63
- case 4: return [2 /*return*/];
64
- }
65
- });
66
- }); };
67
- /**
68
- * Retrieves batch data for a list of bill NFT IDs from the API.
69
- * @param billNftIds - An array of bill NFT IDs to retrieve data for.
70
- * @param billNftAddress - The address of the bill NFT contract.
71
- * @param chainId - The ID of the blockchain network to retrieve data from.
72
- * @returns A Promise that resolves to the batch data for the specified bill NFT IDs, or null if an error occurs.
73
- */
74
- export var getBillNftBatchData = function (billNftIds, billNftAddress, chainId) { return __awaiter(void 0, void 0, void 0, function () {
75
- var response, billNftDataResp, error_2;
76
- return __generator(this, function (_a) {
77
- switch (_a.label) {
78
- case 0:
79
- _a.trys.push([0, 3, , 4]);
80
- // Retry the request up to 5 times if it fails
81
- axiosRetry(axios, {
82
- retries: 5,
83
- retryCondition: function () { return true; },
84
- });
85
- // If no bill NFT IDs are provided, return null
86
- if (!billNftIds || billNftIds.length === 0) {
87
- return [2 /*return*/, null];
88
- }
89
- return [4 /*yield*/, axios.get("".concat(apiV2BaseUrl, "/bills/batch/").concat(chainId, "/").concat(billNftAddress, "/?billIds[]=").concat(billNftIds.join('&billIds[]=')))
90
- // If the response status code is 500, return null
91
- ];
92
- case 1:
93
- response = _a.sent();
94
- return [4 /*yield*/, response.data];
95
- case 2:
96
- billNftDataResp = _a.sent();
97
- if (billNftDataResp.statusCode === 500) {
98
- return [2 /*return*/, null];
99
- }
100
- // Return the batch data for the specified bill NFT IDs
101
- return [2 /*return*/, billNftDataResp];
102
- case 3:
103
- error_2 = _a.sent();
104
- // If an error occurs, return null
105
- return [2 /*return*/, null];
106
- case 4: return [2 /*return*/];
107
- }
108
- });
109
- }); };
@@ -1,4 +0,0 @@
1
- import { ChainId } from '../../enum/apeswaplists';
2
- export declare const usePollBills: () => void;
3
- export declare const usePollSingleBill: (chainId?: ChainId, capturedBillAddress?: string) => void;
4
- export declare const usePollUserBills: () => any[];
@@ -1,142 +0,0 @@
1
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3
- return new (P || (P = Promise))(function (resolve, reject) {
4
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
5
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
6
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
7
- step((generator = generator.apply(thisArg, _arguments || [])).next());
8
- });
9
- };
10
- var __generator = (this && this.__generator) || function (thisArg, body) {
11
- var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
12
- return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
13
- function verb(n) { return function (v) { return step([n, v]); }; }
14
- function step(op) {
15
- if (f) throw new TypeError("Generator is already executing.");
16
- while (g && (g = 0, op[0] && (_ = 0)), _) try {
17
- if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
18
- if (y = 0, t) op = [op[0] & 2, t.value];
19
- switch (op[0]) {
20
- case 0: case 1: t = op; break;
21
- case 4: _.label++; return { value: op[1], done: false };
22
- case 5: _.label++; y = op[1]; op = [0]; continue;
23
- case 7: op = _.ops.pop(); _.trys.pop(); continue;
24
- default:
25
- if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
26
- if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
27
- if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
28
- if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
29
- if (t[2]) _.ops.pop();
30
- _.trys.pop(); continue;
31
- }
32
- op = body.call(thisArg, _);
33
- } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
34
- if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
35
- }
36
- };
37
- import { useEffect, useState } from 'react';
38
- import { fetchBondsStats, fetchSingleBillPublicData, fetchUserOwnedBillsDataAsync } from '.';
39
- import { useWeb3React } from '@web3-react/core';
40
- import useRefresh from '../../hooks/useRefresh';
41
- import useTokenPricesNew from '../tokenPrices/useTokenPricesNew';
42
- import { MAINNET_CHAINS } from '../../config/constants/chains';
43
- // export const usePollBondsList = (bondApiList: CleanedBondsState[] | null) => {
44
- // const hasRun = useRef(false)
45
- // useEffect(() => {
46
- // if (!hasRun.current) {
47
- // const fetchBillsList = async () => {
48
- // try {
49
- // const response = await axios.get(`${APESWAP_LISTS_URL}/config/bills.json`)
50
- // const billsList: BillsConfig[] = response.data
51
- // console.log('fetch list')
52
- // const bondsData: CleanedBondsState[] = billsList.map((billConfig: BillsConfig) => {
53
- // const billApiData: CleanedBondsState | undefined = bondApiList?.find(
54
- // (bond: CleanedBondsState) => bond.index === billConfig.index,
55
- // )
56
- // return {
57
- // index: billConfig.index,
58
- // //@ts-ignore
59
- // cmcId: billConfig.cmcId ?? null,
60
- // chainId: billConfig.chainId,
61
- // principalTokenName: billConfig.lpToken.symbol,
62
- // principalToken: billConfig.lpToken.address[billConfig.chainId] as string,
63
- // principalTokenDecimals: billConfig.lpToken.decimals?.[billConfig.chainId] as number,
64
- // payoutTokenName: billConfig.earnToken.symbol,
65
- // payoutToken: billConfig.earnToken.address[billConfig.chainId] as string,
66
- // payoutTokenDecimals: billConfig.earnToken.decimals?.[billConfig.chainId] as number,
67
- // soldOut: billConfig.soldOut,
68
- // tags: billConfig.tags,
69
- // contractAddress: billConfig.contractAddress[billConfig.chainId] as string,
70
- // billNftAddress: billConfig.billNnftAddress[billConfig.chainId] as string,
71
- // inactive: billConfig.inactive,
72
- // showcaseTokenName: billConfig.showcaseToken?.symbol,
73
- // twitter: billConfig.twitter,
74
- // projectLink: billConfig.projectLink,
75
- // audit: billConfig.audit,
76
- // shortDescription: billConfig.shortDescription,
77
- // fullDescription: billConfig.fullDescription,
78
- // lpToken: billConfig.lpToken,
79
- // billType: billConfig.billType,
80
- // billVersion: billConfig.billVersion,
81
- // featuredURLS: billConfig.featuredURLS,
82
- // partnersURLS: billConfig.partnersURLS,
83
- // ...billApiData,
84
- // }
85
- // })
86
- // console.log('Set List data to State')
87
- // setBillsList({ value: bondsData })
88
- // } catch (error) {
89
- // console.log(error)
90
- // }
91
- // }
92
- // fetchBillsList()
93
- // hasRun.current = true
94
- // }
95
- // /* eslint-disable react-hooks/exhaustive-deps */
96
- // }, [])
97
- // }
98
- export var usePollBills = function () {
99
- var slowRefresh = useRefresh().slowRefresh;
100
- var tokenPrices = useTokenPricesNew().data;
101
- useEffect(function () {
102
- if (tokenPrices)
103
- fetchBondsStats(tokenPrices);
104
- }, [slowRefresh, tokenPrices === null || tokenPrices === void 0 ? void 0 : tokenPrices.length]);
105
- };
106
- export var usePollSingleBill = function (chainId, capturedBillAddress) {
107
- var tokenPrices = useTokenPricesNew().data;
108
- var slowRefresh = useRefresh().slowRefresh;
109
- useEffect(function () {
110
- if (chainId && capturedBillAddress && tokenPrices && (tokenPrices === null || tokenPrices === void 0 ? void 0 : tokenPrices.length) > 0) {
111
- fetchSingleBillPublicData(chainId, tokenPrices, capturedBillAddress);
112
- }
113
- /* eslint-disable react-hooks/exhaustive-deps */
114
- }, [slowRefresh, capturedBillAddress, chainId, tokenPrices === null || tokenPrices === void 0 ? void 0 : tokenPrices.length]);
115
- };
116
- export var usePollUserBills = function () {
117
- var slowRefresh = useRefresh().slowRefresh;
118
- var account = useWeb3React().account;
119
- var _a = useState([]), billsData = _a[0], setBillsData = _a[1];
120
- useEffect(function () {
121
- var fetchData = function () { return __awaiter(void 0, void 0, void 0, function () {
122
- var data;
123
- return __generator(this, function (_a) {
124
- switch (_a.label) {
125
- case 0:
126
- if (!account) return [3 /*break*/, 2];
127
- return [4 /*yield*/, Promise.all(MAINNET_CHAINS.map(function (chain) { return fetchUserOwnedBillsDataAsync(chain, account); }))];
128
- case 1:
129
- data = _a.sent();
130
- setBillsData(data);
131
- _a.label = 2;
132
- case 2: return [2 /*return*/];
133
- }
134
- });
135
- }); };
136
- fetchData();
137
- }, [account, slowRefresh]);
138
- return billsData;
139
- };
140
- // export const useBills = (): CleanedBondsState[] | undefined => {
141
- // return useSelector((state: AppState) => state.bills.data)
142
- // }
@@ -1,48 +0,0 @@
1
- import { Dispatch } from '@reduxjs/toolkit';
2
- import { TokenPrices } from '../tokenPrices/useTokenPricesNew';
3
- import { BondsDataResponse, CleanedBondsState } from '../../types/bonds';
4
- import { ChainId } from '../../enum/apeswaplists';
5
- export interface BillsState {
6
- isListFetched: boolean;
7
- data: CleanedBondsState[];
8
- }
9
- export declare const billsSlice: import("@reduxjs/toolkit").Slice<BillsState, {
10
- setBillsList: (state: any, action: {
11
- payload: {
12
- value: CleanedBondsState[];
13
- };
14
- }) => void;
15
- setBillsPublicData: (state: any, action: {
16
- payload: {
17
- value: CleanedBondsState[];
18
- };
19
- }) => void;
20
- setUserOwnedBillsData: (state: any, action: {
21
- payload: any;
22
- type: string;
23
- }) => void;
24
- setUserOwnedBillsNftData: (state: any, action: {
25
- payload: any;
26
- type: string;
27
- }) => void;
28
- }, "Bills", "Bills", import("@reduxjs/toolkit").SliceSelectors<BillsState>>;
29
- export declare const setBillsList: import("@reduxjs/toolkit").ActionCreatorWithPayload<{
30
- value: CleanedBondsState[];
31
- }, "Bills/setBillsList">, setBillsPublicData: import("@reduxjs/toolkit").ActionCreatorWithPayload<{
32
- value: CleanedBondsState[];
33
- }, "Bills/setBillsPublicData">, setUserOwnedBillsData: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, "Bills/setUserOwnedBillsData">, setUserOwnedBillsNftData: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, "Bills/setUserOwnedBillsNftData">;
34
- export declare const fetchBondsStats: (tokenPrices: TokenPrices[]) => (dispatch: Dispatch, getState: any) => Promise<void>;
35
- export declare const fetchSingleBillPublicData: (chainId: ChainId, tokenPrices: TokenPrices[], bondAddress: string) => (dispatch: Dispatch, getState: any) => Promise<void>;
36
- export declare const fetchUserOwnedBillsDataAsync: (chainId: ChainId, account: string) => (dispatch: Dispatch, getState: any) => Promise<{
37
- userOwnedBillsData: {
38
- index: number;
39
- userOwnedBills: import("../../types/bonds").UserBill[];
40
- }[];
41
- ownedBillsWithNftData: {
42
- index: number;
43
- userOwnedBillsNfts: any[];
44
- }[];
45
- }>;
46
- declare const _default: import("redux").Reducer<BillsState, import("redux").UnknownAction, BillsState>;
47
- export default _default;
48
- export declare const parseBondApiData: (billApiData: BondsDataResponse) => CleanedBondsState;
@@ -1,293 +0,0 @@
1
- var __assign = (this && this.__assign) || function () {
2
- __assign = Object.assign || function(t) {
3
- for (var s, i = 1, n = arguments.length; i < n; i++) {
4
- s = arguments[i];
5
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
6
- t[p] = s[p];
7
- }
8
- return t;
9
- };
10
- return __assign.apply(this, arguments);
11
- };
12
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
13
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
14
- return new (P || (P = Promise))(function (resolve, reject) {
15
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
16
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
17
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
18
- step((generator = generator.apply(thisArg, _arguments || [])).next());
19
- });
20
- };
21
- var __generator = (this && this.__generator) || function (thisArg, body) {
22
- var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
23
- return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
24
- function verb(n) { return function (v) { return step([n, v]); }; }
25
- function step(op) {
26
- if (f) throw new TypeError("Generator is already executing.");
27
- while (g && (g = 0, op[0] && (_ = 0)), _) try {
28
- if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
29
- if (y = 0, t) op = [op[0] & 2, t.value];
30
- switch (op[0]) {
31
- case 0: case 1: t = op; break;
32
- case 4: _.label++; return { value: op[1], done: false };
33
- case 5: _.label++; y = op[1]; op = [0]; continue;
34
- case 7: op = _.ops.pop(); _.trys.pop(); continue;
35
- default:
36
- if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
37
- if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
38
- if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
39
- if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
40
- if (t[2]) _.ops.pop();
41
- _.trys.pop(); continue;
42
- }
43
- op = body.call(thisArg, _);
44
- } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
45
- if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
46
- }
47
- };
48
- var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
49
- if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
50
- if (ar || !(i in from)) {
51
- if (!ar) ar = Array.prototype.slice.call(from, 0, i);
52
- ar[i] = from[i];
53
- }
54
- }
55
- return to.concat(ar || Array.prototype.slice.call(from));
56
- };
57
- var _a;
58
- import { createSlice } from '@reduxjs/toolkit';
59
- import { fetchUserOwnedBills, fetchUserOwnedBillNftData } from './fetchBillsUser';
60
- import fetchBills from './fetchBills';
61
- import axios from 'axios';
62
- import { MAINNET_CHAINS } from '../../config/constants/chains';
63
- import { bondsRealTimeApi } from '../../config/constants/api';
64
- import { ACF_TO_ABOND } from '../../config/constants/addresses';
65
- import { BillVersion } from '../../enum/apeswaplists';
66
- var initialState = {
67
- isListFetched: false,
68
- data: [],
69
- };
70
- export var billsSlice = createSlice({
71
- name: 'Bills',
72
- initialState: initialState,
73
- reducers: {
74
- setBillsList: function (state, action) {
75
- var liveBillsData = action.payload.value;
76
- state.data = liveBillsData;
77
- state.isListFetched = true;
78
- },
79
- setBillsPublicData: function (state, action) {
80
- var liveBillsData = action.payload.value;
81
- state.data = state.data.map(function (bill) {
82
- var liveBillData = liveBillsData.find(function (entry) { return entry.index === bill.index; });
83
- return __assign(__assign({}, bill), liveBillData);
84
- });
85
- },
86
- setUserOwnedBillsData: function (state, action) {
87
- var userData = action.payload.value;
88
- userData.forEach(function (data) {
89
- var indexToUpdate = state.data.findIndex(function (bill) { return bill.index === data.index; });
90
- if (indexToUpdate !== -1) {
91
- state.data[indexToUpdate].userOwnedBillsData = data.userOwnedBills;
92
- }
93
- });
94
- },
95
- setUserOwnedBillsNftData: function (state, action) {
96
- var userData = action.payload.value;
97
- userData.forEach(function (data) {
98
- var indexToUpdate = state.data.findIndex(function (bill) { return bill.index === data.index; });
99
- if (indexToUpdate !== -1) {
100
- state.data[indexToUpdate].userOwnedBillsNftData = data === null || data === void 0 ? void 0 : data.userOwnedBillsNfts;
101
- }
102
- });
103
- },
104
- },
105
- });
106
- // Actions
107
- export var setBillsList = (_a = billsSlice.actions, _a.setBillsList), setBillsPublicData = _a.setBillsPublicData, setUserOwnedBillsData = _a.setUserOwnedBillsData, setUserOwnedBillsNftData = _a.setUserOwnedBillsNftData;
108
- // Thunks
109
- export var fetchBondsStats = function (tokenPrices) {
110
- return function (dispatch, getState) { return __awaiter(void 0, void 0, void 0, function () {
111
- var bondsFromState, res, bondsApiData_1, bondsData, error_1;
112
- var _a, _b, _c, _d;
113
- return __generator(this, function (_e) {
114
- switch (_e.label) {
115
- case 0:
116
- bondsFromState = (_b = (_a = getState()) === null || _a === void 0 ? void 0 : _a.bills) === null || _b === void 0 ? void 0 : _b.data;
117
- if (!(bondsFromState && bondsFromState.length > 0)) return [3 /*break*/, 4];
118
- _e.label = 1;
119
- case 1:
120
- _e.trys.push([1, 3, , 4]);
121
- // Try real time API endpoint first
122
- console.log('Attempting to fetch data from api');
123
- return [4 /*yield*/, axios.get(bondsRealTimeApi, { timeout: 2500 })];
124
- case 2:
125
- res = _e.sent();
126
- bondsApiData_1 = (_d = (_c = res === null || res === void 0 ? void 0 : res.data) === null || _c === void 0 ? void 0 : _c.bonds) === null || _d === void 0 ? void 0 : _d.map(function (bond) {
127
- return parseBondApiData(bond);
128
- });
129
- if (bondsApiData_1 && bondsApiData_1.length > 0) {
130
- bondsData = bondsFromState.map(function (bondFromState) {
131
- var billApiData = bondsApiData_1.find(function (bond) { return bond.index === bondFromState.index; });
132
- return __assign(__assign({}, bondFromState), billApiData);
133
- });
134
- console.log('Save data from api');
135
- dispatch(setBillsPublicData({ value: bondsData }));
136
- }
137
- return [3 /*break*/, 4];
138
- case 3:
139
- error_1 = _e.sent();
140
- // If API is down/fails load stats manually
141
- console.log(error_1);
142
- console.log('Bonds api fetching failed, using fallback strategy');
143
- if (tokenPrices.length > 0) {
144
- MAINNET_CHAINS.map(function (chainId) { return __awaiter(void 0, void 0, void 0, function () {
145
- var bills, returnedBills;
146
- var _a, _b, _c;
147
- return __generator(this, function (_d) {
148
- switch (_d.label) {
149
- case 0:
150
- bills = (_c = (_b = (_a = getState()) === null || _a === void 0 ? void 0 : _a.bills) === null || _b === void 0 ? void 0 : _b.data) === null || _c === void 0 ? void 0 : _c.filter(function (bill) {
151
- var _a, _b;
152
- // @ts-ignore
153
- return ((_b = (_a = bill === null || bill === void 0 ? void 0 : bill.contractAddress) === null || _a === void 0 ? void 0 : _a[chainId]) === null || _b === void 0 ? void 0 : _b.toLowerCase()) !== ACF_TO_ABOND.toLowerCase() &&
154
- !bill.soldOut &&
155
- //@ts-ignore
156
- bill.chainId === chainId;
157
- });
158
- return [4 /*yield*/, fetchBills(chainId, tokenPrices, bills)];
159
- case 1:
160
- returnedBills = _d.sent();
161
- dispatch(setBillsPublicData({ value: returnedBills }));
162
- return [2 /*return*/];
163
- }
164
- });
165
- }); });
166
- }
167
- else {
168
- console.log('Prices have not been fetched yet');
169
- }
170
- return [3 /*break*/, 4];
171
- case 4: return [2 /*return*/];
172
- }
173
- });
174
- }); };
175
- };
176
- export var fetchSingleBillPublicData = function (chainId, tokenPrices, bondAddress) {
177
- return function (dispatch, getState) { return __awaiter(void 0, void 0, void 0, function () {
178
- var bills, bill, returnedBills, error_2;
179
- return __generator(this, function (_a) {
180
- switch (_a.label) {
181
- case 0:
182
- _a.trys.push([0, 3, , 4]);
183
- bills = getState().bills.data;
184
- bill = bills === null || bills === void 0 ? void 0 : bills.find(function (billToSearch) {
185
- var _a;
186
- if (!chainId)
187
- return;
188
- var address = (_a = billToSearch === null || billToSearch === void 0 ? void 0 : billToSearch.contractAddress) === null || _a === void 0 ? void 0 : _a[chainId];
189
- if (address === undefined || bondAddress === undefined) {
190
- return false;
191
- }
192
- return (address === null || address === void 0 ? void 0 : address.toUpperCase()) === (bondAddress === null || bondAddress === void 0 ? void 0 : bondAddress.toUpperCase());
193
- });
194
- if (!bill) return [3 /*break*/, 2];
195
- return [4 /*yield*/, fetchBills(chainId, tokenPrices, [bill])];
196
- case 1:
197
- returnedBills = _a.sent();
198
- dispatch(setBillsPublicData({ value: returnedBills }));
199
- _a.label = 2;
200
- case 2: return [3 /*break*/, 4];
201
- case 3:
202
- error_2 = _a.sent();
203
- console.warn(error_2);
204
- return [3 /*break*/, 4];
205
- case 4: return [2 /*return*/];
206
- }
207
- });
208
- }); };
209
- };
210
- export var fetchUserOwnedBillsDataAsync = function (chainId, account) {
211
- return function (dispatch, getState) { return __awaiter(void 0, void 0, void 0, function () {
212
- var bills_1, userOwnedBills_1, mapUserOwnedBills_1, userOwnedBillsData, ownedBillsData, userBillNftData_1, ownedBillsWithNftData, error_3;
213
- return __generator(this, function (_a) {
214
- switch (_a.label) {
215
- case 0:
216
- _a.trys.push([0, 3, , 4]);
217
- bills_1 = getState().bills.data.filter(function (bond) {
218
- return bond.billVersion !== BillVersion.FixedPrice &&
219
- (bond === null || bond === void 0 ? void 0 : bond.chainId) === chainId &&
220
- bond.billType !== 'migration' &&
221
- bond.contractAddress.toLowerCase() !== ACF_TO_ABOND.toLowerCase();
222
- });
223
- return [4 /*yield*/, fetchUserOwnedBills(chainId, account, bills_1)];
224
- case 1:
225
- userOwnedBills_1 = _a.sent();
226
- mapUserOwnedBills_1 = bills_1.map(function (bill) {
227
- return userOwnedBills_1.filter(function (b) { return b.address.toLowerCase() === bill.contractAddress.toLowerCase(); });
228
- });
229
- userOwnedBillsData = bills_1.map(function (bill, i) { return ({
230
- index: bill.index,
231
- userOwnedBills: mapUserOwnedBills_1[i],
232
- }); });
233
- dispatch(setUserOwnedBillsData({ value: userOwnedBillsData }));
234
- ownedBillsData = mapUserOwnedBills_1.flatMap(function (bs) {
235
- return bs.map(function (b) {
236
- return { id: b.id, billNftAddress: b.billNftAddress, contractAddress: b.address };
237
- });
238
- });
239
- return [4 /*yield*/, fetchUserOwnedBillNftData(ownedBillsData, chainId, bills_1)];
240
- case 2:
241
- userBillNftData_1 = _a.sent();
242
- ownedBillsWithNftData = mapUserOwnedBills_1.map(function (bs, index) {
243
- return {
244
- index: bills_1[index].index,
245
- userOwnedBillsNfts: __spreadArray([], bs.map(function (b) {
246
- var _a;
247
- return (_a = userBillNftData_1.find(function (nftB) { return parseInt(nftB.id) === parseInt(b.id); })) === null || _a === void 0 ? void 0 : _a.data;
248
- }), true),
249
- };
250
- });
251
- dispatch(setUserOwnedBillsNftData({ value: ownedBillsWithNftData }));
252
- // Return the data
253
- return [2 /*return*/, { userOwnedBillsData: userOwnedBillsData, ownedBillsWithNftData: ownedBillsWithNftData }];
254
- case 3:
255
- error_3 = _a.sent();
256
- console.warn(error_3);
257
- return [2 /*return*/, { userOwnedBillsData: [], ownedBillsWithNftData: [] }];
258
- case 4: return [2 /*return*/];
259
- }
260
- });
261
- }); };
262
- };
263
- export default billsSlice.reducer;
264
- export var parseBondApiData = function (billApiData) {
265
- var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x, _y;
266
- return {
267
- index: billApiData.index,
268
- cmcId: (_a = billApiData.cmcId) !== null && _a !== void 0 ? _a : null,
269
- chainId: (_b = billApiData.chainId) !== null && _b !== void 0 ? _b : null,
270
- vestingTerm: (_c = billApiData.vestingTerm) !== null && _c !== void 0 ? _c : null,
271
- discount: (_d = billApiData === null || billApiData === void 0 ? void 0 : billApiData.discount) !== null && _d !== void 0 ? _d : null,
272
- principalTokenName: (_e = billApiData.principalTokenName) !== null && _e !== void 0 ? _e : null,
273
- principalToken: (_f = billApiData.principalToken) !== null && _f !== void 0 ? _f : null,
274
- principalTokenDecimals: (_g = billApiData.principalTokenDecimals) !== null && _g !== void 0 ? _g : null,
275
- principalTokenPrice: (_h = billApiData.principalTokenPrice) !== null && _h !== void 0 ? _h : null,
276
- payoutTokenName: (_j = billApiData.payoutTokenName) !== null && _j !== void 0 ? _j : null,
277
- payoutToken: (_k = billApiData.payoutToken) !== null && _k !== void 0 ? _k : null,
278
- payoutTokenDecimals: (_l = billApiData.payoutTokenDecimals) !== null && _l !== void 0 ? _l : null,
279
- payoutTokenPrice: (_m = billApiData.payoutTokenPrice) !== null && _m !== void 0 ? _m : null,
280
- soldOut: (_o = billApiData.soldOut) !== null && _o !== void 0 ? _o : null,
281
- billType: (_p = billApiData.type) !== null && _p !== void 0 ? _p : null,
282
- tokensRemaining: (_q = billApiData.tokensRemaining) !== null && _q !== void 0 ? _q : null,
283
- tags: billApiData.tags,
284
- contractAddress: (_r = billApiData.billAddress) !== null && _r !== void 0 ? _r : null,
285
- inactive: (_s = billApiData.inactive) !== null && _s !== void 0 ? _s : null,
286
- showcaseTokenName: (_t = billApiData.showcaseTokenName) !== null && _t !== void 0 ? _t : null,
287
- maxTotalPayout: (_u = billApiData.maxTotalPayout) !== null && _u !== void 0 ? _u : null,
288
- billNftAddress: (_v = billApiData.billNftAddress) !== null && _v !== void 0 ? _v : null,
289
- trueBillPrice: (_w = billApiData.trueBillPrice) !== null && _w !== void 0 ? _w : null,
290
- maxPayout: (_x = billApiData.maxPayout) !== null && _x !== void 0 ? _x : null,
291
- totalPayoutGiven: (_y = billApiData.totalPayoutGiven) !== null && _y !== void 0 ? _y : null,
292
- };
293
- };