@ape.swap/bonds-sdk 1.0.358 → 1.0.361
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/components/BondModal/BondModal.js +17 -64
- package/dist/components/BondModal/helper.d.ts +9 -0
- package/dist/components/BondModal/helper.js +53 -0
- package/dist/components/YourBonds/YourBonds.js +6 -45
- package/dist/components/YourBondsModal/YourBondsModal.js +56 -44
- package/dist/scss/YourBondsModal.scss +7 -6
- package/package.json +1 -1
- package/dist/enum/abis.d.ts +0 -80
- package/dist/enum/abis.js +0 -1
- package/dist/state/bills/cleanBillsData.d.ts +0 -5
- package/dist/state/bills/cleanBillsData.js +0 -41
- package/dist/state/bills/fetchBills.d.ts +0 -4
- package/dist/state/bills/fetchBills.js +0 -61
- package/dist/state/bills/fetchBillsCalls.d.ts +0 -4
- package/dist/state/bills/fetchBillsCalls.js +0 -27
- package/dist/state/bills/fetchBillsUser.d.ts +0 -15
- package/dist/state/bills/fetchBillsUser.js +0 -171
- package/dist/state/bills/getBillNftData.d.ts +0 -9
- package/dist/state/bills/getBillNftData.js +0 -109
- package/dist/state/bills/hooks.d.ts +0 -4
- package/dist/state/bills/hooks.js +0 -142
- package/dist/state/bills/index.d.ts +0 -48
- package/dist/state/bills/index.js +0 -293
- package/dist/state/bills/types.d.ts +0 -168
- package/dist/state/bills/types.js +0 -1
|
@@ -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,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
|
-
};
|