@ape.swap/bonds-sdk 1.0.314 → 1.0.316

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.
@@ -48,7 +48,7 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
48
48
  import { jsxs as _jsxs, jsx as _jsx } from "theme-ui/jsx-runtime";
49
49
  /** @jsxImportSource theme-ui */
50
50
  import React, { useEffect, useState } from 'react';
51
- import { Flex, Input, ThemeUIProvider } from 'theme-ui';
51
+ import { Flex, ThemeUIProvider } from 'theme-ui';
52
52
  import { useWeb3React } from '@web3-react/core';
53
53
  import { defaultTheme } from '../../theme';
54
54
  import '../../scss/BondModal.scss';
@@ -56,14 +56,15 @@ import getTimePeriods from '../../utils/getTimePeriods';
56
56
  import axios from 'axios';
57
57
  import { BigNumber } from 'bignumber.js';
58
58
  import { getFirstNonZeroDigits } from '../../utils/roundNumber';
59
- import { isNumber } from '../../utils/numbers';
60
59
  import { TooltipBubble, Button, Svg, ListTag } from '../uikit-sdk';
61
60
  import { TooltipText } from '../../enum/tooltips';
62
- import { formatNumberSI } from '../../utils/formatNumber';
63
- import { ethers } from 'ethers';
64
- import { adjustDecimals } from "../../utils/convertToTokenValue";
65
- import { BondAbi } from '../../enum/abis';
61
+ import billAbi from '../../config/abi/bond.json';
66
62
  import TokenImage from '../uikit-sdk/TokenImage';
63
+ import { getBalanceNumber } from '../../utils/getBalanceNumber';
64
+ import multicall from '../../utils/multicall';
65
+ import { BillVersion } from '../../enum/apeswaplists';
66
+ import { ACF_TO_ABOND } from '../../config/constants/addresses';
67
+ import { MAINNET_CHAINS } from '../../config/constants/chains';
67
68
  var YourBondsModal = function (_a) {
68
69
  var isOpen = _a.isOpen, onClose = _a.onClose, bondAddress = _a.bondAddress;
69
70
  if (!isOpen)
@@ -79,141 +80,162 @@ var YourBondsModal = function (_a) {
79
80
  setBondData(bond);
80
81
  });
81
82
  }, [bondAddress]);
82
- var getDiscountColor = function (discount) {
83
- return discount < 0 ? 'discount-negative' : 'discount-positive';
84
- };
85
- var discountEarnTokenPrice = function (bond) {
86
- var _a, _b;
87
- var earnTokenPrice = parseFloat((_a = bond === null || bond === void 0 ? void 0 : bond.payoutTokenPrice) !== null && _a !== void 0 ? _a : '0');
88
- return getFirstNonZeroDigits(earnTokenPrice - earnTokenPrice * (((_b = bond === null || bond === void 0 ? void 0 : bond.discount) !== null && _b !== void 0 ? _b : 0) / 100));
89
- };
90
- var earnTokenPrice = function (bond) {
91
- var _a;
92
- return getFirstNonZeroDigits(parseFloat((_a = bond === null || bond === void 0 ? void 0 : bond.payoutTokenPrice) !== null && _a !== void 0 ? _a : '0'));
93
- };
94
- var maxBuy = function (bond) {
95
- var _a, _b, _c, _d;
96
- var available = new BigNumber((_a = bond === null || bond === void 0 ? void 0 : bond.tokensRemaining) !== null && _a !== void 0 ? _a : '0');
97
- var threshold = 5;
98
- var thresholdToShow = new BigNumber(threshold).div((_b = bond === null || bond === void 0 ? void 0 : bond.payoutTokenPrice) !== null && _b !== void 0 ? _b : 0);
99
- var safeAvailable = available.minus(thresholdToShow);
100
- var singlePurchaseLimit = new BigNumber((_c = bond === null || bond === void 0 ? void 0 : bond.maxPayout) !== null && _c !== void 0 ? _c : 0).div(new BigNumber(10).pow((_d = bond === null || bond === void 0 ? void 0 : bond.payoutTokenDecimals) !== null && _d !== void 0 ? _d : 18));
101
- return !available ? 0 : (singlePurchaseLimit.lt(safeAvailable) ? singlePurchaseLimit : safeAvailable);
102
- };
103
- var _d = useState(''), inputValue = _d[0], setInputValue = _d[1];
104
- var handleInputChange = function (event) {
105
- setInputValue(event.target.value);
106
- };
107
83
  // const [selectedBond, setSelectedBond] = useState<BondsDataResponse | null>(null);
108
84
  // const navigate = useNavigate();
109
85
  // const projectInfo = (bond: BondsDataResponse) => {
110
86
  // setSelectedBond(bond);
111
87
  // navigate(`/bondsingle/${bond.billAddress}`);
112
88
  // };
113
- function formatNumber(input) {
114
- var number = new BigNumber(input);
115
- if (number.isNaN())
116
- return '0';
117
- return number.gt(1000000)
118
- ? formatNumberSI(number.toNumber())
119
- : number.gt(1000)
120
- ? number.toNumber().toLocaleString(undefined, { maximumFractionDigits: 0 })
121
- : number.gt(0.01)
122
- ? parseFloat(number.toFixed(2)).toLocaleString(undefined)
123
- : parseFloat(number.toPrecision(5)).toLocaleString(undefined);
124
- }
125
- function formatUSDNumber(input) {
126
- var number = new BigNumber(input);
127
- if (number.isNaN())
128
- return '0';
129
- // If the number is greater than 0 but less than 0.01
130
- if (number.gt(0) && number.lt(0.01)) {
131
- return '< 0.01';
132
- }
133
- // If the number is greater than 1k, round to no decimals.
134
- if (number.gt(1000)) {
135
- return number.toNumber().toLocaleString(undefined, { maximumFractionDigits: 0 });
136
- }
137
- // Note: Between 1k and 0.01 show 2 decimals
138
- return parseFloat(number.toFixed(2)).toLocaleString(undefined);
139
- }
140
- var youSpend = formatNumber(inputValue);
141
- var youSpendUSD = function (bond) {
142
- return (parseFloat(inputValue) * parseFloat(bond.principalTokenPrice)).toString();
143
- };
144
- var youGet = function (bond) {
145
- var _a;
146
- var bigValue = new BigNumber(inputValue).times(new BigNumber(10).pow(18));
147
- var billValue = bigValue.div(new BigNumber((_a = bond.trueBillPrice) !== null && _a !== void 0 ? _a : 0));
148
- return formatNumber(billValue.toString());
149
- };
150
- var youGetUSD = function (bond) {
151
- var _a;
152
- var bigValue = new BigNumber(inputValue).times(new BigNumber(10).pow(18));
153
- var billValue = bigValue.div(new BigNumber((_a = bond.trueBillPrice) !== null && _a !== void 0 ? _a : 0));
154
- return (billValue.toNumber() * parseFloat(bond.payoutTokenPrice)).toString();
155
- };
156
- var premium = function (bond) {
157
- var premiumUSD = parseFloat(youGetUSD(bond)) - parseFloat(youSpendUSD(bond));
158
- return formatUSDNumber(premiumUSD.toString());
159
- };
160
- var getPremiumColor = function (bond) {
161
- var getPremium = premium(bond);
162
- return parseFloat(getPremium) < 0 ? 'premium-negative' : 'premium-positive';
163
- };
164
- var handleBuy = function () { return __awaiter(void 0, void 0, void 0, function () {
165
- var provider, signer, bondContract, maxPrice, amount, tx, error_1;
89
+ var _d = useState([]), userOwnedBillsData = _d[0], setUserOwnedBillsData = _d[1];
90
+ useEffect(function () {
91
+ var fetchData = function () { return __awaiter(void 0, void 0, void 0, function () {
92
+ var results, error_1;
93
+ return __generator(this, function (_a) {
94
+ switch (_a.label) {
95
+ case 0:
96
+ if (!account) return [3 /*break*/, 4];
97
+ _a.label = 1;
98
+ case 1:
99
+ _a.trys.push([1, 3, , 4]);
100
+ return [4 /*yield*/, Promise.all(MAINNET_CHAINS.map(function (chain) { return fetchUserOwnedBillsDataAsync(chain, account); }))];
101
+ case 2:
102
+ results = _a.sent();
103
+ setUserOwnedBillsData(results);
104
+ return [3 /*break*/, 4];
105
+ case 3:
106
+ error_1 = _a.sent();
107
+ console.error('Error fetching user owned bills data:', error_1);
108
+ return [3 /*break*/, 4];
109
+ case 4: return [2 /*return*/];
110
+ }
111
+ });
112
+ }); };
113
+ fetchData();
114
+ }, [account]);
115
+ var fetchUserOwnedBillsDataAsync = function (chainId, account) { return __awaiter(void 0, void 0, void 0, function () {
116
+ var bonds, userOwnedBills_1, mapUserOwnedBills_1, userOwnedBillsData_1, error_2;
166
117
  return __generator(this, function (_a) {
167
118
  switch (_a.label) {
168
119
  case 0:
169
- console.log('handle buy clicked');
170
- if (!window.ethereum) {
171
- console.error('No Ethereum provider found');
172
- alert('No Ethereum provider found');
173
- return [2 /*return*/];
174
- }
175
- provider = new ethers.providers.Web3Provider(window.ethereum);
176
- signer = provider.getSigner();
177
- bondContract = new ethers.Contract(bondAddress !== null && bondAddress !== void 0 ? bondAddress : "", BondAbi, signer);
178
- _a.label = 1;
120
+ _a.trys.push([0, 2, , 3]);
121
+ bonds = bondData.filter(function (bond) {
122
+ return bond.billVersion !== BillVersion.FixedPrice &&
123
+ (bond === null || bond === void 0 ? void 0 : bond.chainId) === chainId &&
124
+ bond.type !== 'migration' &&
125
+ bond.billAddress.toLowerCase() !== ACF_TO_ABOND.toLowerCase();
126
+ });
127
+ return [4 /*yield*/, fetchUserOwnedBills(chainId, account, bonds)];
128
+ case 1:
129
+ userOwnedBills_1 = _a.sent();
130
+ mapUserOwnedBills_1 = bonds.map(function (bill) {
131
+ return userOwnedBills_1.filter(function (b) { return b.address.toLowerCase() === bill.billAddress.toLowerCase(); });
132
+ });
133
+ userOwnedBillsData_1 = bonds.map(function (bill, i) { return ({
134
+ index: bill.index,
135
+ userOwnedBills: mapUserOwnedBills_1[i],
136
+ }); });
137
+ return [2 /*return*/, Promise.resolve(userOwnedBillsData_1)];
138
+ case 2:
139
+ error_2 = _a.sent();
140
+ console.error('Error fetching user owned bills data:', error_2);
141
+ return [2 /*return*/, Promise.reject(error_2)];
142
+ case 3: return [2 /*return*/];
143
+ }
144
+ });
145
+ }); };
146
+ var fetchUserOwnedBills = function (chainId, account, bonds) { return __awaiter(void 0, void 0, void 0, function () {
147
+ var billIdCalls, billIds, billsPendingRewardCall, billDataCalls, billVersions, billData, pendingRewardsCall, result, i, billDataPos, data;
148
+ var _a, _b, _c, _d, _e;
149
+ return __generator(this, function (_f) {
150
+ switch (_f.label) {
151
+ case 0:
152
+ billIdCalls = bonds.map(function (b) { return ({
153
+ address: b.billAddress,
154
+ name: 'getBillIds',
155
+ params: [account],
156
+ }); });
157
+ return [4 /*yield*/, multicall(chainId, billAbi, billIdCalls, true, 15)];
179
158
  case 1:
180
- _a.trys.push([1, 4, , 5]);
181
- maxPrice = new BigNumber(bondData[0].trueBillPrice).times(102).div(100);
182
- amount = adjustDecimals(inputValue);
183
- return [4 /*yield*/, bondContract.deposit(amount, maxPrice, account)];
159
+ billIds = _f.sent();
160
+ billsPendingRewardCall = [];
161
+ billDataCalls = [];
162
+ billVersions = [];
163
+ billIds.forEach(function (idArray, index) {
164
+ return idArray[0].forEach(function (id) {
165
+ return id.gt(0) &&
166
+ (billDataCalls.push({
167
+ address: bonds[index].billAddress,
168
+ name: bonds[index].billVersion !== BillVersion.V1 ? 'getBillInfo' : 'billInfo',
169
+ params: [id],
170
+ bond: bonds[index]
171
+ }),
172
+ billDataCalls.push({ address: bonds[index].billAddress, name: 'billNft' }),
173
+ billsPendingRewardCall.push({
174
+ address: bonds[index].billAddress,
175
+ name: bonds[index].billVersion !== BillVersion.V1 ? 'claimablePayout' : 'pendingPayoutFor',
176
+ params: [id],
177
+ bond: bonds[index]
178
+ }),
179
+ billVersions.push(bonds[index].billVersion));
180
+ });
181
+ });
182
+ return [4 /*yield*/, multicall(chainId, billAbi, billDataCalls, true, 150)];
184
183
  case 2:
185
- tx = _a.sent();
186
- return [4 /*yield*/, tx.wait()];
184
+ billData = _f.sent();
185
+ return [4 /*yield*/, multicall(chainId, billAbi, billsPendingRewardCall)];
187
186
  case 3:
188
- _a.sent();
189
- alert('Buy Successful');
190
- return [3 /*break*/, 5];
191
- case 4:
192
- error_1 = _a.sent();
193
- console.error('Approval error', error_1);
194
- alert('Approval Failed');
195
- return [3 /*break*/, 5];
196
- case 5: return [2 /*return*/];
187
+ pendingRewardsCall = _f.sent();
188
+ result = [];
189
+ for (i = 0; i < billsPendingRewardCall.length; i++) {
190
+ billDataPos = i === 0 ? 0 : i * 2;
191
+ data = billVersions[i] !== BillVersion.V1
192
+ ? {
193
+ address: billsPendingRewardCall[i].address,
194
+ id: billsPendingRewardCall[i].params[0].toString(),
195
+ payout: new BigNumber((_a = billData[billDataPos][0]) === null || _a === void 0 ? void 0 : _a.payout.toString())
196
+ .minus((_b = billData[billDataPos][0]) === null || _b === void 0 ? void 0 : _b.payoutClaimed.toString())
197
+ .toString(),
198
+ billNftAddress: billData[billDataPos + 1][0].toString(),
199
+ vesting: (_c = billData[billDataPos][0]) === null || _c === void 0 ? void 0 : _c.vesting.toString(),
200
+ lastBlockTimestamp: (_d = billData[billDataPos][0]) === null || _d === void 0 ? void 0 : _d.lastClaimTimestamp.toString(),
201
+ truePricePaid: (_e = billData[billDataPos][0]) === null || _e === void 0 ? void 0 : _e.truePricePaid.toString(),
202
+ pendingRewards: pendingRewardsCall[i][0].toString(),
203
+ bond: billsPendingRewardCall[i].bond
204
+ }
205
+ : {
206
+ address: billsPendingRewardCall[i].address,
207
+ id: billsPendingRewardCall[i].params[0].toString(),
208
+ payout: billData[billDataPos][0].toString(),
209
+ billNftAddress: billData[billDataPos + 1][0].toString(),
210
+ vesting: billData[billDataPos][1].toString(),
211
+ lastBlockTimestamp: billData[billDataPos][2].toString(),
212
+ truePricePaid: billData[billDataPos][3].toString(),
213
+ pendingRewards: pendingRewardsCall[i][0].toString(),
214
+ bond: billsPendingRewardCall[i].bond
215
+ };
216
+ result.push(data);
217
+ }
218
+ return [2 /*return*/, result];
197
219
  }
198
220
  });
199
221
  }); };
200
- return (_jsx(ThemeUIProvider, __assign({ theme: defaultTheme }, { children: bondData.map(function (bond) {
201
- var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k;
202
- return (_jsx(React.Fragment, { children: _jsx(Flex, __assign({ className: "modal modal-backdrop" }, { children: _jsxs(Flex, __assign({ className: "modal modal-content" }, { children: [isActive && account && (_jsxs("p", { children: ["Wallet Address: ", account] })), _jsx(Flex, __assign({ className: "modal modal-header" }, { children: _jsx(Flex, __assign({ className: "svg-close", onClick: onClose }, { children: _jsx(Svg, { icon: "close" }) })) })), _jsxs(Flex, __assign({ className: "modal-container table-container" }, { children: [_jsxs(Flex, __assign({ className: "modal-container title-container" }, { children: [_jsx(Flex, __assign({ className: "title-container bondicon" }, { children: _jsx(TokenImage, { symbol: (_a = bond.showcaseTokenName) !== null && _a !== void 0 ? _a : bond.payoutTokenName, size: 50 }) })), _jsx(Flex, __assign({ className: "title-container bondname" }, { children: bond === null || bond === void 0 ? void 0 : bond.showcaseTokenName })), _jsxs(Flex, __assign({ className: "title-container price-container" }, { children: [_jsxs(Flex, __assign({ className: "price-container price" }, { children: ["$", earnTokenPrice(bond)] })), _jsxs(Flex, __assign({ className: "price-container discounted" }, { children: ["$", discountEarnTokenPrice(bond)] }))] })), _jsx(Flex, __assign({ className: "title-container tokentags" }, { children: _jsx(ListTag, { text: (_b = bond === null || bond === void 0 ? void 0 : bond.tags) === null || _b === void 0 ? void 0 : _b[0], variant: ((_c = bond === null || bond === void 0 ? void 0 : bond.tags) === null || _c === void 0 ? void 0 : _c[0]) === 'Cex Fund' ? 'cex_fund' : 'liquidity' }) }))] })), _jsx(Flex, __assign({ className: "modal-container description-container" }, { children: bond === null || bond === void 0 ? void 0 : bond.shortDescription })), _jsxs(Flex, __assign({ className: "modal-container blocks-container" }, { children: [_jsxs(Flex, __assign({ className: "modal-block column-discount ".concat(getDiscountColor(bond === null || bond === void 0 ? void 0 : bond.discount)) }, { children: [_jsxs(Flex, __assign({ className: "block-header header" }, { children: ["Discount", _jsx(TooltipBubble, __assign({ body: _jsx(Flex, { children: TooltipText.Discount }), width: "230px", placement: "bottomLeft", transformTip: "translate(-5%, -5%)" }, { children: _jsx(Flex, __assign({ className: "block-header icon" }, { children: _jsx(Svg, { icon: "questionCircle", width: "12px" }) })) }))] })), "".concat((_d = bond === null || bond === void 0 ? void 0 : bond.discount) === null || _d === void 0 ? void 0 : _d.toFixed(2), "%")] })), _jsxs(Flex, __assign({ className: "modal-block column-arr" }, { children: [_jsxs(Flex, __assign({ className: "block-header header" }, { children: ["ARR", _jsx(TooltipBubble, __assign({ body: _jsx(Flex, { children: TooltipText.ARR }), width: "230px", placement: "bottomLeft", transformTip: "translate(-5%, -5%)" }, { children: _jsx(Flex, __assign({ className: "block-header icon" }, { children: _jsx(Svg, { icon: "questionCircle", width: "12px" }) })) }))] })), "".concat(((((_e = bond === null || bond === void 0 ? void 0 : bond.discount) !== null && _e !== void 0 ? _e : 0) * 365) / vestingTime((_f = bond === null || bond === void 0 ? void 0 : bond.vestingTerm) !== null && _f !== void 0 ? _f : 0).days).toFixed(2), "%")] })), _jsxs(Flex, __assign({ className: "modal-block column-term" }, { children: [_jsxs(Flex, __assign({ className: "block-header header" }, { children: ["Terms", _jsx(TooltipBubble, __assign({ body: _jsx(Flex, { children: TooltipText.Terms }), width: "230px", placement: "bottomLeft", transformTip: "translate(-5%, -5%)" }, { children: _jsx(Flex, __assign({ className: "block-header icon" }, { children: _jsx(Svg, { icon: "questionCircle", width: "12px" }) })) }))] })), vestingTime((_g = bond === null || bond === void 0 ? void 0 : bond.vestingTerm) !== null && _g !== void 0 ? _g : 0).days ? "".concat(vestingTime((_h = bond === null || bond === void 0 ? void 0 : bond.vestingTerm) !== null && _h !== void 0 ? _h : 0).days, " D") : '-'] })), _jsxs(Flex, __assign({ className: "modal-block column-maxbuy" }, { children: [_jsxs(Flex, __assign({ className: "block-header header" }, { children: ["Max Buy", _jsx(TooltipBubble, __assign({ body: _jsx(Flex, { children: TooltipText.MaxBuy(bond.payoutTokenName) }), width: "230px", placement: "bottomLeft", transformTip: "translate(-5%, -5%)" }, { children: _jsx(Flex, __assign({ className: "block-header icon" }, { children: _jsx(Svg, { icon: "questionCircle", width: "12px" }) })) }))] })), (_j = parseFloat(maxBuy(bond).toFixed(0))) === null || _j === void 0 ? void 0 : _j.toLocaleString('en-US')] }))] })), _jsxs(Flex, __assign({ className: "modal-container text-container" }, { children: [_jsxs(Flex, __assign({ className: "text-container row" }, { children: [_jsx(Flex, __assign({ className: "row-container spend" }, { children: "You spend:" })), _jsxs(Flex, __assign({ className: "row-container spend-val" }, { children: [youSpend, " ", bond.principalTokenName, " = $ ", formatUSDNumber(youSpendUSD(bond))] }))] })), _jsxs(Flex, __assign({ className: "text-container row" }, { children: [_jsxs(Flex, __assign({ className: "row-container premium" }, { children: ["Premium:", _jsx(TooltipBubble, __assign({ body: _jsx(Flex, { children: TooltipText.Premium }), width: "230px", placement: "bottomLeft", transformTip: "translate(-5%, -5%)" }, { children: _jsx(Flex, __assign({ className: "row-container premium-icon" }, { children: _jsx(Svg, { icon: "questionCircle", width: "12px" }) })) }))] })), _jsxs(Flex, __assign({ className: "row-container premium-val ".concat(getPremiumColor(bond)) }, { children: ["$ ", premium(bond)] }))] })), _jsxs(Flex, __assign({ className: "text-container row" }, { children: [_jsxs(Flex, __assign({ className: "row-container get" }, { children: ["You get (over ", vestingTime((_k = bond === null || bond === void 0 ? void 0 : bond.vestingTerm) !== null && _k !== void 0 ? _k : 0).days, " days):"] })), _jsxs(Flex, __assign({ className: "row-container get-val" }, { children: [youGet(bond), " ", bond === null || bond === void 0 ? void 0 : bond.showcaseTokenName, " = $ ", formatUSDNumber(youGetUSD(bond))] }))] }))] })), _jsxs(Flex, __assign({ className: "modal-container input-container" }, { children: [_jsx(Flex, __assign({ className: "input-container input" }, { children: _jsx(Input, { placeholder: "0.0", value: inputValue, pattern: "^[0-9]*[.,]?[0-9]*$", onChange: handleInputChange, onInput: function (v) {
203
- if (v.currentTarget.value.includes(',')) {
204
- v.currentTarget.value = v.currentTarget.value.replace(/,/g, '.');
205
- }
206
- if (v.currentTarget.value.includes('%')) {
207
- v.currentTarget.value = v.currentTarget.value.replace(/[^0-9]/g, '');
208
- }
209
- if (v.currentTarget.value === '.') {
210
- v.currentTarget.value = '0.';
211
- }
212
- v.currentTarget.value =
213
- !!v.currentTarget.value && isNumber(v.currentTarget.value) && parseFloat(v.currentTarget.value) >= 0
214
- ? v.currentTarget.value
215
- : v.currentTarget.value.slice(0, v.currentTarget.value.length - 1);
216
- } }) })), _jsx(Flex, __assign({ className: "input-container token" }, { children: bond === null || bond === void 0 ? void 0 : bond.principalTokenName }))] })), _jsxs(Flex, __assign({ className: "modal-container button-container" }, { children: [_jsx(Flex, __assign({ className: "button-container get" }, { children: _jsxs(Button, { children: ["Get ", bond === null || bond === void 0 ? void 0 : bond.principalTokenName] }) })), _jsx(Flex, __assign({ className: "button-container buy" }, { children: _jsxs(Button, __assign({ onClick: handleBuy }, { children: ["Buy ", bond === null || bond === void 0 ? void 0 : bond.showcaseTokenName] })) }))] }))] }))] })) })) }, bond.billAddress));
222
+ var chainId = useWeb3React().chainId;
223
+ var totalPending = function (userBill) {
224
+ var _a, _b, _c, _d;
225
+ return getBalanceNumber(new BigNumber((_a = userBill === null || userBill === void 0 ? void 0 : userBill.payout) !== null && _a !== void 0 ? _a : 0), (_d = (_c = (_b = userBill.bond.earnToken) === null || _b === void 0 ? void 0 : _b.decimals) === null || _c === void 0 ? void 0 : _c[chainId]) !== null && _d !== void 0 ? _d : 18);
226
+ };
227
+ var claimable = function (userBill) {
228
+ var _a, _b, _c;
229
+ return getBalanceNumber(new BigNumber(userBill.pendingRewards), (_c = (_b = (_a = userBill.bond.earnToken) === null || _a === void 0 ? void 0 : _a.decimals) === null || _b === void 0 ? void 0 : _b[chainId]) !== null && _c !== void 0 ? _c : 18);
230
+ };
231
+ var earnTokenPrice = function (bond) {
232
+ var _a;
233
+ return getFirstNonZeroDigits(parseFloat((_a = bond === null || bond === void 0 ? void 0 : bond.payoutTokenPrice) !== null && _a !== void 0 ? _a : '0'));
234
+ };
235
+ return (_jsx(ThemeUIProvider, __assign({ theme: defaultTheme }, { children: userOwnedBillsData.flat().map(function (data) {
236
+ var _a, _b, _c, _d, _e, _f, _g;
237
+ var userBill = data.userOwnedBills.find(function (bill) { return bill.address === bondAddress; });
238
+ return userBill ? (_jsx(React.Fragment, { children: _jsx(Flex, __assign({ className: "modal modal-backdrop" }, { children: _jsxs(Flex, __assign({ className: "modal modal-content" }, { children: [isActive && account && (_jsxs("p", { children: ["Wallet Address: ", account] })), _jsx(Flex, __assign({ className: "modal modal-header" }, { children: _jsx(Flex, __assign({ className: "svg-close", onClick: onClose }, { children: _jsx(Svg, { icon: "close" }) })) })), _jsxs(Flex, __assign({ className: "modal-container table-container" }, { children: [_jsxs(Flex, __assign({ className: "modal-container title-container" }, { children: [_jsx(Flex, __assign({ className: "title-container bondicon" }, { children: _jsx(TokenImage, { symbol: (_a = userBill.bond.showcaseTokenName) !== null && _a !== void 0 ? _a : userBill.bond.payoutTokenName, size: 50 }) })), _jsx(Flex, __assign({ className: "title-container bondname" }, { children: (_b = userBill.bond) === null || _b === void 0 ? void 0 : _b.showcaseTokenName })), _jsxs(Flex, __assign({ className: "title-container price-container" }, { children: [_jsx(Flex, __assign({ className: "price-container price" }, { children: "$" })), _jsx(Flex, __assign({ className: "price-container discounted" }, { children: "$" }))] })), _jsx(Flex, __assign({ className: "title-container tokentags" }, { children: _jsx(ListTag, { text: (_d = (_c = userBill.bond) === null || _c === void 0 ? void 0 : _c.tags) === null || _d === void 0 ? void 0 : _d[0], variant: ((_f = (_e = userBill.bond) === null || _e === void 0 ? void 0 : _e.tags) === null || _f === void 0 ? void 0 : _f[0]) === 'Cex Fund' ? 'cex_fund' : 'liquidity' }) }))] })), _jsx(Flex, { className: "modal-container description-container" }), _jsxs(Flex, __assign({ className: "modal-container blocks-container" }, { children: [_jsx(Flex, __assign({ className: "modal-block column-discount" }, { children: _jsx(Flex, __assign({ className: "block-header header" }, { children: "Discount" })) })), _jsx(Flex, __assign({ className: "modal-block column-arr" }, { children: _jsx(Flex, __assign({ className: "block-header header" }, { children: "ARR" })) })), _jsx(Flex, __assign({ className: "modal-block column-term" }, { children: _jsx(Flex, __assign({ className: "block-header header" }, { children: "Terms" })) })), _jsx(Flex, __assign({ className: "modal-block column-maxbuy" }, { children: _jsx(Flex, __assign({ className: "block-header header" }, { children: "Max Buy" })) }))] })), _jsxs(Flex, __assign({ className: "modal-container text-container" }, { children: [_jsxs(Flex, __assign({ className: "text-container row" }, { children: [_jsx(Flex, __assign({ className: "row-container spend" }, { children: "You spend:" })), _jsx(Flex, { className: "row-container spend-val" })] })), _jsxs(Flex, __assign({ className: "text-container row" }, { children: [_jsxs(Flex, __assign({ className: "row-container premium" }, { children: ["Premium:", _jsx(TooltipBubble, __assign({ body: _jsx(Flex, { children: TooltipText.Premium }), width: "230px", placement: "bottomLeft", transformTip: "translate(-5%, -5%)" }, { children: _jsx(Flex, __assign({ className: "row-container premium-icon" }, { children: _jsx(Svg, { icon: "questionCircle", width: "12px" }) })) }))] })), _jsx(Flex, __assign({ className: "row-container premium-val" }, { children: "$" }))] })), _jsx(Flex, __assign({ className: "text-container row" }, { children: _jsx(Flex, __assign({ className: "row-container get" }, { children: "You get" })) }))] })), _jsxs(Flex, __assign({ className: "modal-container input-container" }, { children: [_jsx(Flex, { className: "input-container input" }), _jsx(Flex, __assign({ className: "input-container token" }, { children: (_g = userBill.bond) === null || _g === void 0 ? void 0 : _g.principalTokenName }))] })), _jsxs(Flex, __assign({ className: "modal-container button-container" }, { children: [_jsx(Flex, __assign({ className: "button-container get" }, { children: _jsx(Button, { children: "CLAIM" }) })), _jsx(Flex, __assign({ className: "button-container buy" }, { children: _jsx(Button, { children: "TRANSFER" }) }))] }))] }))] })) })) }, userBill.address)) : null;
217
239
  }) })));
218
240
  };
219
241
  export default YourBondsModal;
@@ -9,6 +9,7 @@
9
9
  justify-content: center;
10
10
  align-items: center;
11
11
  z-index: 1000;
12
+ overflow: auto;
12
13
  }
13
14
 
14
15
  .modal.modal-content {
@@ -19,8 +20,9 @@
19
20
  padding: 10px;
20
21
  border-radius: 10px;
21
22
  z-index: 1001;
22
- max-width: 700px;
23
+ max-width: 1200px;
23
24
  min-width: 700px;
25
+ overflow: auto;
24
26
  }
25
27
 
26
28
  .modal.modal-header {
package/package.json CHANGED
@@ -3,7 +3,7 @@
3
3
  "description": "Ape Bond SDK",
4
4
  "author": "Ape Bond",
5
5
  "license": "MIT",
6
- "version": "1.0.314",
6
+ "version": "1.0.316",
7
7
  "main": "dist/index.js",
8
8
  "module": "dist/index.es.js",
9
9
  "types": "dist/index.d.ts",