@ape.swap/bonds-sdk 5.1.49-test.2 → 5.1.49-test.4
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/config/constants/chains.js +1 -1
- package/dist/config/constants/chains.js.map +1 -1
- package/dist/config/constants/suiCallbacks.d.ts +2 -0
- package/dist/config/constants/suiCallbacks.js +17 -0
- package/dist/config/constants/suiCallbacks.js.map +1 -0
- package/dist/config/constants/suiZapTokens.js +19 -7
- package/dist/config/constants/suiZapTokens.js.map +1 -1
- package/dist/constants/suiConstants.d.ts +1 -7
- package/dist/constants/suiConstants.js +6 -34
- package/dist/constants/suiConstants.js.map +1 -1
- package/dist/state/bonds/discoverSuiBonds.d.ts +6 -0
- package/dist/state/bonds/fetchBondsDataSui.js +38 -11
- package/dist/state/bonds/fetchBondsDataSui.js.map +1 -1
- package/dist/state/bonds/useBondsData.js +17 -9
- package/dist/state/bonds/useBondsData.js.map +1 -1
- package/dist/state/bonds/useBondsList.js +22 -22
- package/dist/state/bonds/useBondsList.js.map +1 -1
- package/dist/state/tokenPrices/useTokenPrices.js +1 -13
- package/dist/state/tokenPrices/useTokenPrices.js.map +1 -1
- package/dist/state/useSDKConfig.d.ts +2 -0
- package/dist/state/useSDKConfig.js +6 -0
- package/dist/state/useSDKConfig.js.map +1 -1
- package/dist/state/zap/useSuiZapQuote.js +5 -28
- package/dist/state/zap/useSuiZapQuote.js.map +1 -1
- package/dist/utils/suiHelpers.d.ts +1 -1
- package/dist/utils/suiHelpers.js +5 -5
- package/dist/utils/suiHelpers.js.map +1 -1
- package/dist/views/BuyBond/BuyComponentSui.js +133 -57
- package/dist/views/BuyBond/BuyComponentSui.js.map +1 -1
- package/dist/views/BuyBond/utils.js +3 -0
- package/dist/views/BuyBond/utils.js.map +1 -1
- package/dist/views/YourBonds/components/UserBondRow/UserBondRowSui.js +2 -2
- package/dist/views/YourBonds/components/UserBondRow/UserBondRowSui.js.map +1 -1
- package/dist/views/YourBondsModal/components/Actions/ActionsSui.js +2 -2
- package/dist/views/YourBondsModal/components/Actions/ActionsSui.js.map +1 -1
- package/dist/views/YourBondsModal/components/TransferBondModal/TransferActionSui.d.ts +9 -0
- package/dist/views/YourBondsModal/components/TransferBondModal/TransferActionSui.js +71 -0
- package/dist/views/YourBondsModal/components/TransferBondModal/TransferActionSui.js.map +1 -0
- package/dist/views/YourBondsModal/components/TransferBondModal/index.js +2 -1
- package/dist/views/YourBondsModal/components/TransferBondModal/index.js.map +1 -1
- package/package.json +1 -1
- package/dist/state/bonds/aptosBondsConfig.js +0 -183
- package/dist/state/bonds/aptosBondsConfig.js.map +0 -1
- package/dist/state/bonds/suiBondsConfig.d.ts +0 -4
- package/dist/state/bonds/suiBondsConfig.js +0 -227
- package/dist/state/bonds/suiBondsConfig.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../../../../src/views/YourBondsModal/components/TransferBondModal/index.tsx"],"sourcesContent":["import React, { useState } from 'react'\nimport BigNumber from 'bignumber.js'\nimport Flex from '../../../../components/uikit-sdk/Flex'\nimport Modal from '../../../../components/uikit-sdk/Modal'\nimport Text from '../../../../components/uikit-sdk/Text'\nimport Checkbox from '../../../../components/uikit-sdk/Checkbox'\nimport { UserBill } from '../../../../types/yourbonds'\nimport { getBalanceNumber } from '../../../../utils/getBalanceNumber'\nimport { ChainId } from '@ape.swap/apeswap-lists'\nimport TokenImage from '../../../../components/uikit-sdk/TokenImage'\nimport Input from '../../../../components/uikit-sdk/Input/Input'\nimport TransferAction from './TransferAction'\nimport { getPendingVestingString, getTimeLeftForFullyVested } from '../../../../utils/displayHelpers'\nimport TransferActionSolana from './TransferActionSolana'\nimport TransferActionAptos from './TransferActionAptos'\n\ninterface TransferBillModalProps {\n onDismiss?: () => void\n userBill?: UserBill\n}\n\nconst TransferModal: React.FC<TransferBillModalProps> = ({ onDismiss, userBill }) => {\n // State\n const [confirmSend, setConfirmSend] = useState(false)\n const [toAddress, setToAddress] = useState('')\n\n // Data\n const bond = userBill?.bond\n const chainId = bond?.chainId\n const pending =\n chainId &&\n getBalanceNumber(\n new BigNumber(userBill?.payout ?? 0),\n bond?.earnToken?.decimals?.[chainId as ChainId] ?? 18,\n )?.toFixed(4)\n\n return (\n <Modal onDismiss={onDismiss} title=\"Transfer Bond\">\n <Flex sx={{ mt: '20px' }}>\n <Text sx={{ fontWeight: 700 }}> Transferring: </Text>\n </Flex>\n <Flex sx={{ flexDirection: 'column', alignItems: 'center', mt: '30px', mr: '10px' }}>\n <Text sx={{ fontWeight: 700, fontSize: '25px' }}>\n {bond?.earnToken?.symbol} Bond - ID # {userBill?.id}\n </Text>\n <Flex sx={{ mt: '5px' }}>\n <Flex sx={{ flexDirection: 'column', mr: '20px' }}>\n <Text sx={{ textAlign: 'center', width: '100%', fontSize: '12px', opacity: 0.6 }}>Vesting time</Text>\n {getTimeLeftForFullyVested(userBill) > 0 ? `Ends in ${getPendingVestingString(userBill)}` : `Fully Vested`}\n </Flex>\n <Flex sx={{ flexDirection: 'column', ml: '20px' }}>\n <Text sx={{ textAlign: 'center', width: '100%', fontSize: '12px', opacity: 0.6 }}>Pending</Text>\n <Flex>\n <TokenImage\n symbol={userBill?.bond?.showcaseTokenName ?? userBill?.bond?.earnToken?.symbol}\n size={20}\n chain={userBill?.bond?.chainId}\n />\n <Text sx={{ fontWeight: 700, ml: '5px' }}>{pending}</Text>\n </Flex>\n </Flex>\n </Flex>\n </Flex>\n <Flex sx={{ flexDirection: 'column', mt: '30px' }}>\n <Text sx={{ fontWeight: 700 }}>Receiving Address:</Text>\n <Input\n mt=\"10px\"\n size=\"lg\"\n placeholder={'Paste the address here'}\n value={toAddress}\n onChange={(e: any) => setToAddress(e.target.value)}\n style={{ width: '345px', border: 'none' }}\n />\n </Flex>\n <Flex sx={{ mt: '15px' }}>\n <Text sx={{ lineHeight: '18px', fontSize: '12px', color: 'rgba(223, 65, 65, 1)' }}>\n <Text\n sx={{ display: 'block', width: '100%', fontWeight: 700, fontSize: '13px', color: 'rgba(223, 65, 65, 1)' }}\n >\n WARNING\n </Text>\n When transfering the NFT all pending rewards will also be transfered to the receiver address.\n </Text>\n </Flex>\n <Flex onClick={() => setConfirmSend(!confirmSend)} sx={{ mt: '20px', cursor: 'pointer', alignItems: 'center' }}>\n <Checkbox\n checked={confirmSend}\n onChange={(event: React.MouseEvent) => {\n setConfirmSend(!confirmSend)\n event.stopPropagation()\n }}\n />\n <Text sx={{ ml: '10px', fontSize: '12px', fontWeight: 500, lineHeight: '18px' }}>\n I understand the new wallet gains ownership of all unclaimed assets.\n </Text>\n </Flex>\n <Flex sx={{ justifyContent: 'center', mt: '15px' }}>\n {chainId === ChainId.SOL ? (\n <TransferActionSolana userBill={userBill} toAddress={toAddress} disabled={!confirmSend || !toAddress} />\n ) : chainId === ChainId.APTOS ? (\n <TransferActionAptos userBill={userBill} toAddress={toAddress} disabled={!confirmSend || !toAddress} />\n ) : (\n <TransferAction userBill={userBill} toAddress={toAddress} disabled={!confirmSend || !toAddress} />\n )}\n </Flex>\n </Modal>\n )\n}\n\nexport default React.memo(TransferModal)\n"],"names":["_jsxs","_jsx","TransferActionSolana","TransferAction"],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../../../src/views/YourBondsModal/components/TransferBondModal/index.tsx"],"sourcesContent":["import React, { useState } from 'react'\nimport BigNumber from 'bignumber.js'\nimport Flex from '../../../../components/uikit-sdk/Flex'\nimport Modal from '../../../../components/uikit-sdk/Modal'\nimport Text from '../../../../components/uikit-sdk/Text'\nimport Checkbox from '../../../../components/uikit-sdk/Checkbox'\nimport { UserBill } from '../../../../types/yourbonds'\nimport { getBalanceNumber } from '../../../../utils/getBalanceNumber'\nimport { ChainId } from '@ape.swap/apeswap-lists'\nimport TokenImage from '../../../../components/uikit-sdk/TokenImage'\nimport Input from '../../../../components/uikit-sdk/Input/Input'\nimport TransferAction from './TransferAction'\nimport { getPendingVestingString, getTimeLeftForFullyVested } from '../../../../utils/displayHelpers'\nimport TransferActionSolana from './TransferActionSolana'\nimport TransferActionAptos from './TransferActionAptos'\nimport TransferActionSui from './TransferActionSui'\n\ninterface TransferBillModalProps {\n onDismiss?: () => void\n userBill?: UserBill\n}\n\nconst TransferModal: React.FC<TransferBillModalProps> = ({ onDismiss, userBill }) => {\n // State\n const [confirmSend, setConfirmSend] = useState(false)\n const [toAddress, setToAddress] = useState('')\n\n // Data\n const bond = userBill?.bond\n const chainId = bond?.chainId\n const pending =\n chainId &&\n getBalanceNumber(\n new BigNumber(userBill?.payout ?? 0),\n bond?.earnToken?.decimals?.[chainId as ChainId] ?? 18,\n )?.toFixed(4)\n\n return (\n <Modal onDismiss={onDismiss} title=\"Transfer Bond\">\n <Flex sx={{ mt: '20px' }}>\n <Text sx={{ fontWeight: 700 }}> Transferring: </Text>\n </Flex>\n <Flex sx={{ flexDirection: 'column', alignItems: 'center', mt: '30px', mr: '10px' }}>\n <Text sx={{ fontWeight: 700, fontSize: '25px' }}>\n {bond?.earnToken?.symbol} Bond - ID # {userBill?.id}\n </Text>\n <Flex sx={{ mt: '5px' }}>\n <Flex sx={{ flexDirection: 'column', mr: '20px' }}>\n <Text sx={{ textAlign: 'center', width: '100%', fontSize: '12px', opacity: 0.6 }}>Vesting time</Text>\n {getTimeLeftForFullyVested(userBill) > 0 ? `Ends in ${getPendingVestingString(userBill)}` : `Fully Vested`}\n </Flex>\n <Flex sx={{ flexDirection: 'column', ml: '20px' }}>\n <Text sx={{ textAlign: 'center', width: '100%', fontSize: '12px', opacity: 0.6 }}>Pending</Text>\n <Flex>\n <TokenImage\n symbol={userBill?.bond?.showcaseTokenName ?? userBill?.bond?.earnToken?.symbol}\n size={20}\n chain={userBill?.bond?.chainId}\n />\n <Text sx={{ fontWeight: 700, ml: '5px' }}>{pending}</Text>\n </Flex>\n </Flex>\n </Flex>\n </Flex>\n <Flex sx={{ flexDirection: 'column', mt: '30px' }}>\n <Text sx={{ fontWeight: 700 }}>Receiving Address:</Text>\n <Input\n mt=\"10px\"\n size=\"lg\"\n placeholder={'Paste the address here'}\n value={toAddress}\n onChange={(e: any) => setToAddress(e.target.value)}\n style={{ width: '345px', border: 'none' }}\n />\n </Flex>\n <Flex sx={{ mt: '15px' }}>\n <Text sx={{ lineHeight: '18px', fontSize: '12px', color: 'rgba(223, 65, 65, 1)' }}>\n <Text\n sx={{ display: 'block', width: '100%', fontWeight: 700, fontSize: '13px', color: 'rgba(223, 65, 65, 1)' }}\n >\n WARNING\n </Text>\n When transfering the NFT all pending rewards will also be transfered to the receiver address.\n </Text>\n </Flex>\n <Flex onClick={() => setConfirmSend(!confirmSend)} sx={{ mt: '20px', cursor: 'pointer', alignItems: 'center' }}>\n <Checkbox\n checked={confirmSend}\n onChange={(event: React.MouseEvent) => {\n setConfirmSend(!confirmSend)\n event.stopPropagation()\n }}\n />\n <Text sx={{ ml: '10px', fontSize: '12px', fontWeight: 500, lineHeight: '18px' }}>\n I understand the new wallet gains ownership of all unclaimed assets.\n </Text>\n </Flex>\n <Flex sx={{ justifyContent: 'center', mt: '15px' }}>\n {chainId === ChainId.SOL ? (\n <TransferActionSolana userBill={userBill} toAddress={toAddress} disabled={!confirmSend || !toAddress} />\n ) : chainId === ChainId.APTOS ? (\n <TransferActionAptos userBill={userBill} toAddress={toAddress} disabled={!confirmSend || !toAddress} />\n ) : chainId === ChainId.SUI ? (\n <TransferActionSui\n userBill={userBill}\n toAddress={toAddress}\n disabled={!confirmSend || !toAddress}\n onDismiss={onDismiss}\n />\n ) : (\n <TransferAction userBill={userBill} toAddress={toAddress} disabled={!confirmSend || !toAddress} />\n )}\n </Flex>\n </Modal>\n )\n}\n\nexport default React.memo(TransferModal)\n"],"names":["_jsxs","_jsx","TransferActionSolana","TransferAction"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,183 +0,0 @@
|
|
|
1
|
-
import { ChainId, BillArtCollection, BillVersion } from '@ape.swap/apeswap-lists';
|
|
2
|
-
import { APTOS_CONTRACT_ADDRESS } from '../../constants/aptosConstants.js';
|
|
3
|
-
import { APTOS_ZAP_TOKENS } from '../../config/constants/aptosZapTokens.js';
|
|
4
|
-
|
|
5
|
-
// =============================================================================
|
|
6
|
-
// Aptos bonds config — static bond listing for on-chain first architecture
|
|
7
|
-
// =============================================================================
|
|
8
|
-
//
|
|
9
|
-
// api-v2 and realtime-api do NOT support Aptos. Bond listing comes from this
|
|
10
|
-
// static config. Enrichment (prices, discounts, vesting) is read on-chain via
|
|
11
|
-
// bond::market_info view function.
|
|
12
|
-
//
|
|
13
|
-
// TODO(aptos): Replace placeholder addresses with real deployed market addresses.
|
|
14
|
-
// TODO(aptos): Consider indexing BondMarketCreatedEvent for automatic market
|
|
15
|
-
// discovery instead of maintaining this static list.
|
|
16
|
-
//
|
|
17
|
-
// Call sites:
|
|
18
|
-
// - useBondsList.ts → getAptosBondsList()
|
|
19
|
-
// - useTokenPrices.ts → getAptosFallbackPrices()
|
|
20
|
-
const APTOS_KEY = ChainId.APTOS;
|
|
21
|
-
// TODO(aptos): For mainnet launch, update these three addresses:
|
|
22
|
-
// 1. APTOS_BOND_MARKET_ADDRESS → mainnet bond market object address
|
|
23
|
-
// 2. APTOS_PAYOUT_TOKEN_ADDRESS → mainnet payout token FA address (real token, not tAPE)
|
|
24
|
-
// 3. Add additional bond entries to APTOS_BONDS_CONFIG for each mainnet market
|
|
25
|
-
// Also update APTOS_CONTRACT_ADDRESS_MAINNET in aptosConstants.ts.
|
|
26
|
-
// tAPE payout token metadata
|
|
27
|
-
const APTOS_PAYOUT_TOKEN_ADDRESS = '0xff27a471b7d44e2a8eae1b8693190d4322f4e28cd9a4dd9d8fff7ed74a47556e';
|
|
28
|
-
// APT principal token metadata
|
|
29
|
-
const APTOS_PRINCIPAL_TOKEN_ADDRESS = '0xa';
|
|
30
|
-
// Bond market addresses from testnet deploy (fee-formula-fix verification, 5%/5% fees)
|
|
31
|
-
const APTOS_BOND_10PCT = '0x7ef38a4a4a2205c6efca8c279931f01bbbe27dbd7149a9d1733e7da4d9bbd68';
|
|
32
|
-
const APTOS_BOND_5PCT = '0xecf8c233149e617b323335788370ae49878e0a8a5aadeaa6523ff93df6b8661c';
|
|
33
|
-
const APTOS_BOND_35PCT = '0xcb28b74a3b458d6f9e8a570767928fd2e2d5ac8b9039003597cdab8d008df2a3';
|
|
34
|
-
const APTOS_BONDS_CONFIG = [
|
|
35
|
-
{
|
|
36
|
-
index: 99001,
|
|
37
|
-
version: '2.0.0',
|
|
38
|
-
chainId: APTOS_KEY,
|
|
39
|
-
billVersion: BillVersion.V2,
|
|
40
|
-
billType: 'reserve',
|
|
41
|
-
soldOut: false,
|
|
42
|
-
contractAddress: {
|
|
43
|
-
[APTOS_KEY]: APTOS_BOND_10PCT,
|
|
44
|
-
},
|
|
45
|
-
billNnftAddress: {
|
|
46
|
-
[APTOS_KEY]: `${APTOS_CONTRACT_ADDRESS}::bond_nft::COLLECTION`,
|
|
47
|
-
},
|
|
48
|
-
lpToken: {
|
|
49
|
-
symbol: 'APT',
|
|
50
|
-
address: {
|
|
51
|
-
[APTOS_KEY]: APTOS_PRINCIPAL_TOKEN_ADDRESS,
|
|
52
|
-
},
|
|
53
|
-
decimals: { [APTOS_KEY]: 8 },
|
|
54
|
-
active: true,
|
|
55
|
-
},
|
|
56
|
-
earnToken: {
|
|
57
|
-
symbol: 'tAPE',
|
|
58
|
-
address: {
|
|
59
|
-
[APTOS_KEY]: APTOS_PAYOUT_TOKEN_ADDRESS,
|
|
60
|
-
},
|
|
61
|
-
decimals: { [APTOS_KEY]: 8 },
|
|
62
|
-
active: true,
|
|
63
|
-
},
|
|
64
|
-
billArt: { collection: BillArtCollection.ApeBond_Collection1 },
|
|
65
|
-
shortDescription: '10% discount bond — CV=812, fee 5%/5%',
|
|
66
|
-
fullDescription: 'Aptos bond with 10% target discount and 5% fee in principal + 5% fee in payout. Expected SDK bonus: ~11.11%.',
|
|
67
|
-
vestingTerm: 172800,
|
|
68
|
-
tags: ['Aptos'],
|
|
69
|
-
},
|
|
70
|
-
{
|
|
71
|
-
index: 99002,
|
|
72
|
-
version: '2.0.0',
|
|
73
|
-
chainId: APTOS_KEY,
|
|
74
|
-
billVersion: BillVersion.V2,
|
|
75
|
-
billType: 'reserve',
|
|
76
|
-
soldOut: false,
|
|
77
|
-
contractAddress: {
|
|
78
|
-
[APTOS_KEY]: APTOS_BOND_5PCT,
|
|
79
|
-
},
|
|
80
|
-
billNnftAddress: {
|
|
81
|
-
[APTOS_KEY]: `${APTOS_CONTRACT_ADDRESS}::bond_nft::COLLECTION`,
|
|
82
|
-
},
|
|
83
|
-
lpToken: {
|
|
84
|
-
symbol: 'APT',
|
|
85
|
-
address: {
|
|
86
|
-
[APTOS_KEY]: APTOS_PRINCIPAL_TOKEN_ADDRESS,
|
|
87
|
-
},
|
|
88
|
-
decimals: { [APTOS_KEY]: 8 },
|
|
89
|
-
active: true,
|
|
90
|
-
},
|
|
91
|
-
earnToken: {
|
|
92
|
-
symbol: 'tAPE',
|
|
93
|
-
address: {
|
|
94
|
-
[APTOS_KEY]: APTOS_PAYOUT_TOKEN_ADDRESS,
|
|
95
|
-
},
|
|
96
|
-
decimals: { [APTOS_KEY]: 8 },
|
|
97
|
-
active: true,
|
|
98
|
-
},
|
|
99
|
-
billArt: { collection: BillArtCollection.ApeBond_Collection1 },
|
|
100
|
-
shortDescription: '5% discount bond — CV=857, fee 5%/5%',
|
|
101
|
-
fullDescription: 'Aptos bond with 5% target discount and 5% fee in principal + 5% fee in payout. Expected SDK bonus: ~5.26%.',
|
|
102
|
-
vestingTerm: 172800,
|
|
103
|
-
tags: ['Aptos'],
|
|
104
|
-
},
|
|
105
|
-
{
|
|
106
|
-
index: 99003,
|
|
107
|
-
version: '2.0.0',
|
|
108
|
-
chainId: APTOS_KEY,
|
|
109
|
-
billVersion: BillVersion.V2,
|
|
110
|
-
billType: 'reserve',
|
|
111
|
-
soldOut: false,
|
|
112
|
-
contractAddress: {
|
|
113
|
-
[APTOS_KEY]: APTOS_BOND_35PCT,
|
|
114
|
-
},
|
|
115
|
-
billNnftAddress: {
|
|
116
|
-
[APTOS_KEY]: `${APTOS_CONTRACT_ADDRESS}::bond_nft::COLLECTION`,
|
|
117
|
-
},
|
|
118
|
-
lpToken: {
|
|
119
|
-
symbol: 'APT',
|
|
120
|
-
address: {
|
|
121
|
-
[APTOS_KEY]: APTOS_PRINCIPAL_TOKEN_ADDRESS,
|
|
122
|
-
},
|
|
123
|
-
decimals: { [APTOS_KEY]: 8 },
|
|
124
|
-
active: true,
|
|
125
|
-
},
|
|
126
|
-
earnToken: {
|
|
127
|
-
symbol: 'tAPE',
|
|
128
|
-
address: {
|
|
129
|
-
[APTOS_KEY]: APTOS_PAYOUT_TOKEN_ADDRESS,
|
|
130
|
-
},
|
|
131
|
-
decimals: { [APTOS_KEY]: 8 },
|
|
132
|
-
active: true,
|
|
133
|
-
},
|
|
134
|
-
billArt: { collection: BillArtCollection.ApeBond_Collection1 },
|
|
135
|
-
shortDescription: '35% discount bond — CV=587, fee 5%/5%',
|
|
136
|
-
fullDescription: 'Aptos bond with 35% target discount and 5% fee in principal + 5% fee in payout. Expected SDK bonus: ~53.85%.',
|
|
137
|
-
vestingTerm: 172800,
|
|
138
|
-
tags: ['Aptos'],
|
|
139
|
-
},
|
|
140
|
-
];
|
|
141
|
-
// Fallback prices used until price-api.ape.bond supports Aptos tokens.
|
|
142
|
-
// TODO(aptos): Remove fallback prices when price-api returns Aptos token prices.
|
|
143
|
-
// Update APT and payout token prices to current values before mainnet launch.
|
|
144
|
-
[
|
|
145
|
-
{
|
|
146
|
-
chainId: ChainId.APTOS,
|
|
147
|
-
chainName: 'Aptos',
|
|
148
|
-
tokenAddress: APTOS_PRINCIPAL_TOKEN_ADDRESS,
|
|
149
|
-
name: 'Aptos Coin',
|
|
150
|
-
symbol: 'APT',
|
|
151
|
-
price: 5.5,
|
|
152
|
-
priceSource: 'fallback',
|
|
153
|
-
updatedAt: 0,
|
|
154
|
-
secondsAgoUpdated: 0,
|
|
155
|
-
},
|
|
156
|
-
{
|
|
157
|
-
chainId: ChainId.APTOS,
|
|
158
|
-
chainName: 'Aptos',
|
|
159
|
-
tokenAddress: APTOS_PAYOUT_TOKEN_ADDRESS,
|
|
160
|
-
name: 'Test APE',
|
|
161
|
-
symbol: 'tAPE',
|
|
162
|
-
price: 0.60,
|
|
163
|
-
priceSource: 'fallback',
|
|
164
|
-
updatedAt: 0,
|
|
165
|
-
secondsAgoUpdated: 0,
|
|
166
|
-
},
|
|
167
|
-
// Zap tokens — addresses come from aptosZapTokens.ts (testnet/mainnet aware)
|
|
168
|
-
...APTOS_ZAP_TOKENS.map((t) => ({
|
|
169
|
-
chainId: ChainId.APTOS,
|
|
170
|
-
chainName: 'Aptos',
|
|
171
|
-
tokenAddress: t.faAddress,
|
|
172
|
-
name: t.name,
|
|
173
|
-
symbol: t.symbol,
|
|
174
|
-
price: t.symbol === 'USDC' || t.symbol === 'USDt' ? 1.0 : 0,
|
|
175
|
-
priceSource: 'fallback',
|
|
176
|
-
updatedAt: 0,
|
|
177
|
-
secondsAgoUpdated: 0,
|
|
178
|
-
})),
|
|
179
|
-
];
|
|
180
|
-
const getAptosBondsList = () => APTOS_BONDS_CONFIG;
|
|
181
|
-
|
|
182
|
-
export { getAptosBondsList };
|
|
183
|
-
//# sourceMappingURL=aptosBondsConfig.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"aptosBondsConfig.js","sources":["../../../src/state/bonds/aptosBondsConfig.ts"],"sourcesContent":["// =============================================================================\n// Aptos bonds config — static bond listing for on-chain first architecture\n// =============================================================================\n//\n// api-v2 and realtime-api do NOT support Aptos. Bond listing comes from this\n// static config. Enrichment (prices, discounts, vesting) is read on-chain via\n// bond::market_info view function.\n//\n// TODO(aptos): Replace placeholder addresses with real deployed market addresses.\n// TODO(aptos): Consider indexing BondMarketCreatedEvent for automatic market\n// discovery instead of maintaining this static list.\n//\n// Call sites:\n// - useBondsList.ts → getAptosBondsList()\n// - useTokenPrices.ts → getAptosFallbackPrices()\n\nimport { BillArtCollection, BillsConfig, BillVersion, ChainId } from '@ape.swap/apeswap-lists'\nimport { APTOS_CONTRACT_ADDRESS } from '../../constants/aptosConstants'\nimport { APTOS_ZAP_TOKENS } from '../../config/constants/aptosZapTokens'\nimport type { TokenPrices } from '../tokenPrices/useTokenPrices'\n\nconst APTOS_KEY = ChainId.APTOS\n\n// TODO(aptos): For mainnet launch, update these three addresses:\n// 1. APTOS_BOND_MARKET_ADDRESS → mainnet bond market object address\n// 2. APTOS_PAYOUT_TOKEN_ADDRESS → mainnet payout token FA address (real token, not tAPE)\n// 3. Add additional bond entries to APTOS_BONDS_CONFIG for each mainnet market\n// Also update APTOS_CONTRACT_ADDRESS_MAINNET in aptosConstants.ts.\n\n// tAPE payout token metadata\nconst APTOS_PAYOUT_TOKEN_ADDRESS = '0xff27a471b7d44e2a8eae1b8693190d4322f4e28cd9a4dd9d8fff7ed74a47556e'\n// APT principal token metadata\nconst APTOS_PRINCIPAL_TOKEN_ADDRESS = '0xa'\n\n// Bond market addresses from testnet deploy (fee-formula-fix verification, 5%/5% fees)\nconst APTOS_BOND_10PCT = '0x7ef38a4a4a2205c6efca8c279931f01bbbe27dbd7149a9d1733e7da4d9bbd68'\nconst APTOS_BOND_5PCT = '0xecf8c233149e617b323335788370ae49878e0a8a5aadeaa6523ff93df6b8661c'\nconst APTOS_BOND_35PCT = '0xcb28b74a3b458d6f9e8a570767928fd2e2d5ac8b9039003597cdab8d008df2a3'\n\nconst APTOS_BONDS_CONFIG: BillsConfig[] = [\n {\n index: 99001,\n version: '2.0.0',\n chainId: APTOS_KEY,\n billVersion: BillVersion.V2,\n billType: 'reserve',\n soldOut: false,\n contractAddress: {\n [APTOS_KEY]: APTOS_BOND_10PCT,\n },\n billNnftAddress: {\n [APTOS_KEY]: `${APTOS_CONTRACT_ADDRESS}::bond_nft::COLLECTION`,\n },\n lpToken: {\n symbol: 'APT',\n address: {\n [APTOS_KEY]: APTOS_PRINCIPAL_TOKEN_ADDRESS,\n },\n decimals: { [APTOS_KEY]: 8 },\n active: true,\n },\n earnToken: {\n symbol: 'tAPE',\n address: {\n [APTOS_KEY]: APTOS_PAYOUT_TOKEN_ADDRESS,\n },\n decimals: { [APTOS_KEY]: 8 },\n active: true,\n },\n billArt: { collection: BillArtCollection.ApeBond_Collection1 },\n shortDescription: '10% discount bond — CV=812, fee 5%/5%',\n fullDescription:\n 'Aptos bond with 10% target discount and 5% fee in principal + 5% fee in payout. Expected SDK bonus: ~11.11%.',\n vestingTerm: 172800,\n tags: ['Aptos'],\n },\n {\n index: 99002,\n version: '2.0.0',\n chainId: APTOS_KEY,\n billVersion: BillVersion.V2,\n billType: 'reserve',\n soldOut: false,\n contractAddress: {\n [APTOS_KEY]: APTOS_BOND_5PCT,\n },\n billNnftAddress: {\n [APTOS_KEY]: `${APTOS_CONTRACT_ADDRESS}::bond_nft::COLLECTION`,\n },\n lpToken: {\n symbol: 'APT',\n address: {\n [APTOS_KEY]: APTOS_PRINCIPAL_TOKEN_ADDRESS,\n },\n decimals: { [APTOS_KEY]: 8 },\n active: true,\n },\n earnToken: {\n symbol: 'tAPE',\n address: {\n [APTOS_KEY]: APTOS_PAYOUT_TOKEN_ADDRESS,\n },\n decimals: { [APTOS_KEY]: 8 },\n active: true,\n },\n billArt: { collection: BillArtCollection.ApeBond_Collection1 },\n shortDescription: '5% discount bond — CV=857, fee 5%/5%',\n fullDescription:\n 'Aptos bond with 5% target discount and 5% fee in principal + 5% fee in payout. Expected SDK bonus: ~5.26%.',\n vestingTerm: 172800,\n tags: ['Aptos'],\n },\n {\n index: 99003,\n version: '2.0.0',\n chainId: APTOS_KEY,\n billVersion: BillVersion.V2,\n billType: 'reserve',\n soldOut: false,\n contractAddress: {\n [APTOS_KEY]: APTOS_BOND_35PCT,\n },\n billNnftAddress: {\n [APTOS_KEY]: `${APTOS_CONTRACT_ADDRESS}::bond_nft::COLLECTION`,\n },\n lpToken: {\n symbol: 'APT',\n address: {\n [APTOS_KEY]: APTOS_PRINCIPAL_TOKEN_ADDRESS,\n },\n decimals: { [APTOS_KEY]: 8 },\n active: true,\n },\n earnToken: {\n symbol: 'tAPE',\n address: {\n [APTOS_KEY]: APTOS_PAYOUT_TOKEN_ADDRESS,\n },\n decimals: { [APTOS_KEY]: 8 },\n active: true,\n },\n billArt: { collection: BillArtCollection.ApeBond_Collection1 },\n shortDescription: '35% discount bond — CV=587, fee 5%/5%',\n fullDescription:\n 'Aptos bond with 35% target discount and 5% fee in principal + 5% fee in payout. Expected SDK bonus: ~53.85%.',\n vestingTerm: 172800,\n tags: ['Aptos'],\n },\n]\n\n// Fallback prices used until price-api.ape.bond supports Aptos tokens.\n// TODO(aptos): Remove fallback prices when price-api returns Aptos token prices.\n// Update APT and payout token prices to current values before mainnet launch.\nconst APTOS_FALLBACK_PRICES: TokenPrices[] = [\n {\n chainId: ChainId.APTOS,\n chainName: 'Aptos',\n tokenAddress: APTOS_PRINCIPAL_TOKEN_ADDRESS,\n name: 'Aptos Coin',\n symbol: 'APT',\n price: 5.5,\n priceSource: 'fallback',\n updatedAt: 0,\n secondsAgoUpdated: 0,\n },\n {\n chainId: ChainId.APTOS,\n chainName: 'Aptos',\n tokenAddress: APTOS_PAYOUT_TOKEN_ADDRESS,\n name: 'Test APE',\n symbol: 'tAPE',\n price: 0.60,\n priceSource: 'fallback',\n updatedAt: 0,\n secondsAgoUpdated: 0,\n },\n // Zap tokens — addresses come from aptosZapTokens.ts (testnet/mainnet aware)\n ...APTOS_ZAP_TOKENS.map((t) => ({\n chainId: ChainId.APTOS as ChainId,\n chainName: 'Aptos',\n tokenAddress: t.faAddress,\n name: t.name,\n symbol: t.symbol,\n price: t.symbol === 'USDC' || t.symbol === 'USDt' ? 1.0 : 0,\n priceSource: 'fallback' as const,\n updatedAt: 0,\n secondsAgoUpdated: 0,\n })),\n]\n\nexport const getAptosBondsList = (): BillsConfig[] => APTOS_BONDS_CONFIG\n\nexport const getAptosFallbackPrices = (): TokenPrices[] => APTOS_FALLBACK_PRICES\n"],"names":[],"mappings":"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"}
|
|
@@ -1,227 +0,0 @@
|
|
|
1
|
-
import { ChainId, BillArtCollection, BillVersion } from '@ape.swap/apeswap-lists';
|
|
2
|
-
import { SUI_PACKAGE_ID } from '../../constants/suiConstants.js';
|
|
3
|
-
|
|
4
|
-
// =============================================================================
|
|
5
|
-
// Sui bonds config — static bond listing for on-chain first architecture
|
|
6
|
-
// =============================================================================
|
|
7
|
-
//
|
|
8
|
-
// api-v2 and realtime-api do NOT support Sui. Bond listing comes from this
|
|
9
|
-
// static config. Enrichment (prices, discounts, vesting) is read on-chain via
|
|
10
|
-
// bond::market_info view function.
|
|
11
|
-
//
|
|
12
|
-
// TODO(sui): Replace placeholder addresses with real deployed market addresses.
|
|
13
|
-
// TODO(sui): Consider indexing BondMarketCreatedEvent for automatic market
|
|
14
|
-
// discovery instead of maintaining this static list.
|
|
15
|
-
//
|
|
16
|
-
// Call sites:
|
|
17
|
-
// - useBondsList.ts → getSuiBondsList()
|
|
18
|
-
// - useTokenPrices.ts → getSuiFallbackPrices()
|
|
19
|
-
const SUI_KEY = ChainId.SUI;
|
|
20
|
-
// TODO(sui): For mainnet launch, update these addresses:
|
|
21
|
-
// 1. SUI_BOND_MARKET_ADDRESS → mainnet bond market object address
|
|
22
|
-
// 2. SUI_PAYOUT_TOKEN_COIN_TYPE → mainnet payout token coin type (real token, not tAPE)
|
|
23
|
-
// 3. Add additional bond entries to SUI_BONDS_CONFIG for each mainnet market
|
|
24
|
-
// Also update SUI_PACKAGE_ID_MAINNET in suiConstants.ts.
|
|
25
|
-
// tAPE payout token coin type
|
|
26
|
-
const SUI_PAYOUT_TOKEN_COIN_TYPE = `${SUI_PACKAGE_ID}::test_payout_token::TEST_PAYOUT_TOKEN`;
|
|
27
|
-
// tUSDC principal token coin type
|
|
28
|
-
const SUI_PRINCIPAL_TOKEN_COIN_TYPE = `${SUI_PACKAGE_ID}::test_principal_token::TEST_PRINCIPAL_TOKEN`;
|
|
29
|
-
// SUI native token
|
|
30
|
-
const SUI_NATIVE_TOKEN_ADDRESS = '0x2::sui::SUI';
|
|
31
|
-
// Bond market addresses from testnet deploy (fee-formula-fix verification, 5%/5% fees)
|
|
32
|
-
const SUI_BOND_10PCT = '0x4d089b56e47eaf892bf7be3f1cbc1348047a9c8722b864d566d42e2268de2e5d';
|
|
33
|
-
const SUI_BOND_5PCT = '0x1296c566ea44ab0a2482c0e43a64dfaea4856486b3825722d55ffcd3ff1c9d5d';
|
|
34
|
-
const SUI_BOND_35PCT = '0x6aadcfce1d8ee9ff29af6b5d4733942ec8f31d0ee871a85015809b8ecd0e3dfc';
|
|
35
|
-
// SUI-payout (9-dec) test bonds — CV uses PRICE_DECIMALS=1e8 (not 10^payoutDec)
|
|
36
|
-
// Old bonds with wrong CV (10x too small): 0x68ae322a..., 0xce07b3b4... — show spinner, kept for reference
|
|
37
|
-
const SUI_9DEC_CORRECT_CV = '0x49aaf697a4136aae4640bb63b26a4640a0313394b0bf1357dd0f3c4f2393e795';
|
|
38
|
-
const SUI_BONDS_CONFIG = [
|
|
39
|
-
{
|
|
40
|
-
index: 99101,
|
|
41
|
-
version: '2.0.0',
|
|
42
|
-
chainId: SUI_KEY,
|
|
43
|
-
billVersion: BillVersion.V2,
|
|
44
|
-
billType: 'reserve',
|
|
45
|
-
soldOut: false,
|
|
46
|
-
contractAddress: {
|
|
47
|
-
[SUI_KEY]: SUI_BOND_10PCT,
|
|
48
|
-
},
|
|
49
|
-
billNnftAddress: {
|
|
50
|
-
[SUI_KEY]: `${SUI_PACKAGE_ID}::bond_nft::COLLECTION`,
|
|
51
|
-
},
|
|
52
|
-
lpToken: {
|
|
53
|
-
symbol: 'tUSDC',
|
|
54
|
-
address: {
|
|
55
|
-
[SUI_KEY]: SUI_PRINCIPAL_TOKEN_COIN_TYPE,
|
|
56
|
-
},
|
|
57
|
-
decimals: { [SUI_KEY]: 6 },
|
|
58
|
-
active: true,
|
|
59
|
-
},
|
|
60
|
-
earnToken: {
|
|
61
|
-
symbol: 'tAPE',
|
|
62
|
-
address: {
|
|
63
|
-
[SUI_KEY]: SUI_PAYOUT_TOKEN_COIN_TYPE,
|
|
64
|
-
},
|
|
65
|
-
decimals: { [SUI_KEY]: 8 },
|
|
66
|
-
active: true,
|
|
67
|
-
},
|
|
68
|
-
billArt: { collection: BillArtCollection.ApeBond_Collection1 },
|
|
69
|
-
shortDescription: '10% discount bond — CV=81225, fee 5%/5%',
|
|
70
|
-
fullDescription: 'Sui bond with 10% target discount and 5% fee in principal + 5% fee in payout. Expected SDK bonus: ~11.11%.',
|
|
71
|
-
vestingTerm: 172800,
|
|
72
|
-
vestingCliff: 300,
|
|
73
|
-
tags: ['Sui'],
|
|
74
|
-
},
|
|
75
|
-
{
|
|
76
|
-
index: 99102,
|
|
77
|
-
version: '2.0.0',
|
|
78
|
-
chainId: SUI_KEY,
|
|
79
|
-
billVersion: BillVersion.V2,
|
|
80
|
-
billType: 'reserve',
|
|
81
|
-
soldOut: false,
|
|
82
|
-
contractAddress: {
|
|
83
|
-
[SUI_KEY]: SUI_BOND_5PCT,
|
|
84
|
-
},
|
|
85
|
-
billNnftAddress: {
|
|
86
|
-
[SUI_KEY]: `${SUI_PACKAGE_ID}::bond_nft::COLLECTION`,
|
|
87
|
-
},
|
|
88
|
-
lpToken: {
|
|
89
|
-
symbol: 'tUSDC',
|
|
90
|
-
address: {
|
|
91
|
-
[SUI_KEY]: SUI_PRINCIPAL_TOKEN_COIN_TYPE,
|
|
92
|
-
},
|
|
93
|
-
decimals: { [SUI_KEY]: 6 },
|
|
94
|
-
active: true,
|
|
95
|
-
},
|
|
96
|
-
earnToken: {
|
|
97
|
-
symbol: 'tAPE',
|
|
98
|
-
address: {
|
|
99
|
-
[SUI_KEY]: SUI_PAYOUT_TOKEN_COIN_TYPE,
|
|
100
|
-
},
|
|
101
|
-
decimals: { [SUI_KEY]: 8 },
|
|
102
|
-
active: true,
|
|
103
|
-
},
|
|
104
|
-
billArt: { collection: BillArtCollection.ApeBond_Collection1 },
|
|
105
|
-
shortDescription: '5% discount bond — CV=85738, fee 5%/5%',
|
|
106
|
-
fullDescription: 'Sui bond with 5% target discount and 5% fee in principal + 5% fee in payout. Expected SDK bonus: ~5.26%.',
|
|
107
|
-
vestingTerm: 172800,
|
|
108
|
-
vestingCliff: 300,
|
|
109
|
-
tags: ['Sui'],
|
|
110
|
-
},
|
|
111
|
-
{
|
|
112
|
-
index: 99103,
|
|
113
|
-
version: '2.0.0',
|
|
114
|
-
chainId: SUI_KEY,
|
|
115
|
-
billVersion: BillVersion.V2,
|
|
116
|
-
billType: 'reserve',
|
|
117
|
-
soldOut: false,
|
|
118
|
-
contractAddress: {
|
|
119
|
-
[SUI_KEY]: SUI_BOND_35PCT,
|
|
120
|
-
},
|
|
121
|
-
billNnftAddress: {
|
|
122
|
-
[SUI_KEY]: `${SUI_PACKAGE_ID}::bond_nft::COLLECTION`,
|
|
123
|
-
},
|
|
124
|
-
lpToken: {
|
|
125
|
-
symbol: 'tUSDC',
|
|
126
|
-
address: {
|
|
127
|
-
[SUI_KEY]: SUI_PRINCIPAL_TOKEN_COIN_TYPE,
|
|
128
|
-
},
|
|
129
|
-
decimals: { [SUI_KEY]: 6 },
|
|
130
|
-
active: true,
|
|
131
|
-
},
|
|
132
|
-
earnToken: {
|
|
133
|
-
symbol: 'tAPE',
|
|
134
|
-
address: {
|
|
135
|
-
[SUI_KEY]: SUI_PAYOUT_TOKEN_COIN_TYPE,
|
|
136
|
-
},
|
|
137
|
-
decimals: { [SUI_KEY]: 8 },
|
|
138
|
-
active: true,
|
|
139
|
-
},
|
|
140
|
-
billArt: { collection: BillArtCollection.ApeBond_Collection1 },
|
|
141
|
-
shortDescription: '35% discount bond — CV=58662, fee 5%/5%',
|
|
142
|
-
fullDescription: 'Sui bond with 35% target discount and 5% fee in principal + 5% fee in payout. Expected SDK bonus: ~53.85%.',
|
|
143
|
-
vestingTerm: 172800,
|
|
144
|
-
vestingCliff: 300,
|
|
145
|
-
tags: ['Sui'],
|
|
146
|
-
},
|
|
147
|
-
// --- SUI-payout (9-dec) bond with correct CV (PRICE_DECIMALS=1e8) ---
|
|
148
|
-
{
|
|
149
|
-
index: 99201,
|
|
150
|
-
version: '2.0.0',
|
|
151
|
-
chainId: SUI_KEY,
|
|
152
|
-
billVersion: BillVersion.V2,
|
|
153
|
-
billType: 'reserve',
|
|
154
|
-
soldOut: false,
|
|
155
|
-
contractAddress: {
|
|
156
|
-
[SUI_KEY]: SUI_9DEC_CORRECT_CV,
|
|
157
|
-
},
|
|
158
|
-
billNnftAddress: {
|
|
159
|
-
[SUI_KEY]: `${SUI_PACKAGE_ID}::bond_nft::COLLECTION`,
|
|
160
|
-
},
|
|
161
|
-
lpToken: {
|
|
162
|
-
symbol: 'tUSDC',
|
|
163
|
-
address: {
|
|
164
|
-
[SUI_KEY]: SUI_PRINCIPAL_TOKEN_COIN_TYPE,
|
|
165
|
-
},
|
|
166
|
-
decimals: { [SUI_KEY]: 6 },
|
|
167
|
-
active: true,
|
|
168
|
-
},
|
|
169
|
-
earnToken: {
|
|
170
|
-
symbol: 'SUI',
|
|
171
|
-
address: {
|
|
172
|
-
[SUI_KEY]: SUI_NATIVE_TOKEN_ADDRESS,
|
|
173
|
-
},
|
|
174
|
-
decimals: { [SUI_KEY]: 9 },
|
|
175
|
-
active: true,
|
|
176
|
-
},
|
|
177
|
-
billArt: { collection: BillArtCollection.ApeBond_Collection1 },
|
|
178
|
-
shortDescription: '10% discount SUI bond (9-dec) — CV=4061250, fee 5%/5%',
|
|
179
|
-
fullDescription: 'SUI-payout bond with 9 decimals. CV calculated using PRICE_DECIMALS=1e8. Expected SDK bonus: ~11.11%.',
|
|
180
|
-
vestingTerm: 172800,
|
|
181
|
-
vestingCliff: 300,
|
|
182
|
-
tags: ['Sui'],
|
|
183
|
-
},
|
|
184
|
-
];
|
|
185
|
-
// Fallback prices used until price-api.ape.bond supports Sui tokens.
|
|
186
|
-
// TODO(sui): Remove fallback prices when price-api returns Sui token prices.
|
|
187
|
-
// Update SUI and payout token prices to current values before mainnet launch.
|
|
188
|
-
const SUI_FALLBACK_PRICES = [
|
|
189
|
-
{
|
|
190
|
-
chainId: ChainId.SUI,
|
|
191
|
-
chainName: 'Sui',
|
|
192
|
-
tokenAddress: SUI_PRINCIPAL_TOKEN_COIN_TYPE,
|
|
193
|
-
name: 'Test USDC',
|
|
194
|
-
symbol: 'tUSDC',
|
|
195
|
-
price: 1.0,
|
|
196
|
-
priceSource: 'fallback',
|
|
197
|
-
updatedAt: 0,
|
|
198
|
-
secondsAgoUpdated: 0,
|
|
199
|
-
},
|
|
200
|
-
{
|
|
201
|
-
chainId: ChainId.SUI,
|
|
202
|
-
chainName: 'Sui',
|
|
203
|
-
tokenAddress: SUI_PAYOUT_TOKEN_COIN_TYPE,
|
|
204
|
-
name: 'Test APE',
|
|
205
|
-
symbol: 'tAPE',
|
|
206
|
-
price: 50.0, // testnet: inflated so bond shows a positive bonus
|
|
207
|
-
priceSource: 'fallback',
|
|
208
|
-
updatedAt: 0,
|
|
209
|
-
secondsAgoUpdated: 0,
|
|
210
|
-
},
|
|
211
|
-
{
|
|
212
|
-
chainId: ChainId.SUI,
|
|
213
|
-
chainName: 'Sui',
|
|
214
|
-
tokenAddress: SUI_NATIVE_TOKEN_ADDRESS,
|
|
215
|
-
name: 'Sui',
|
|
216
|
-
symbol: 'SUI',
|
|
217
|
-
price: 3.5,
|
|
218
|
-
priceSource: 'fallback',
|
|
219
|
-
updatedAt: 0,
|
|
220
|
-
secondsAgoUpdated: 0,
|
|
221
|
-
},
|
|
222
|
-
];
|
|
223
|
-
const getSuiBondsList = () => SUI_BONDS_CONFIG;
|
|
224
|
-
const getSuiFallbackPrices = () => SUI_FALLBACK_PRICES;
|
|
225
|
-
|
|
226
|
-
export { getSuiBondsList, getSuiFallbackPrices };
|
|
227
|
-
//# sourceMappingURL=suiBondsConfig.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"suiBondsConfig.js","sources":["../../../src/state/bonds/suiBondsConfig.ts"],"sourcesContent":["// =============================================================================\n// Sui bonds config — static bond listing for on-chain first architecture\n// =============================================================================\n//\n// api-v2 and realtime-api do NOT support Sui. Bond listing comes from this\n// static config. Enrichment (prices, discounts, vesting) is read on-chain via\n// bond::market_info view function.\n//\n// TODO(sui): Replace placeholder addresses with real deployed market addresses.\n// TODO(sui): Consider indexing BondMarketCreatedEvent for automatic market\n// discovery instead of maintaining this static list.\n//\n// Call sites:\n// - useBondsList.ts → getSuiBondsList()\n// - useTokenPrices.ts → getSuiFallbackPrices()\n\nimport { BillArtCollection, BillsConfig, BillVersion, ChainId } from '@ape.swap/apeswap-lists'\nimport { SUI_PACKAGE_ID } from '../../constants/suiConstants'\nimport type { TokenPrices } from '../tokenPrices/useTokenPrices'\n\nconst SUI_KEY = ChainId.SUI\n\n// TODO(sui): For mainnet launch, update these addresses:\n// 1. SUI_BOND_MARKET_ADDRESS → mainnet bond market object address\n// 2. SUI_PAYOUT_TOKEN_COIN_TYPE → mainnet payout token coin type (real token, not tAPE)\n// 3. Add additional bond entries to SUI_BONDS_CONFIG for each mainnet market\n// Also update SUI_PACKAGE_ID_MAINNET in suiConstants.ts.\n\n// tAPE payout token coin type\nconst SUI_PAYOUT_TOKEN_COIN_TYPE = `${SUI_PACKAGE_ID}::test_payout_token::TEST_PAYOUT_TOKEN`\n// tUSDC principal token coin type\nconst SUI_PRINCIPAL_TOKEN_COIN_TYPE = `${SUI_PACKAGE_ID}::test_principal_token::TEST_PRINCIPAL_TOKEN`\n// SUI native token\nconst SUI_NATIVE_TOKEN_ADDRESS = '0x2::sui::SUI'\n\n// Bond market addresses from testnet deploy (fee-formula-fix verification, 5%/5% fees)\nconst SUI_BOND_10PCT = '0x4d089b56e47eaf892bf7be3f1cbc1348047a9c8722b864d566d42e2268de2e5d'\nconst SUI_BOND_5PCT = '0x1296c566ea44ab0a2482c0e43a64dfaea4856486b3825722d55ffcd3ff1c9d5d'\nconst SUI_BOND_35PCT = '0x6aadcfce1d8ee9ff29af6b5d4733942ec8f31d0ee871a85015809b8ecd0e3dfc'\n\n// SUI-payout (9-dec) test bonds — CV uses PRICE_DECIMALS=1e8 (not 10^payoutDec)\n// Old bonds with wrong CV (10x too small): 0x68ae322a..., 0xce07b3b4... — show spinner, kept for reference\nconst SUI_9DEC_CORRECT_CV = '0x49aaf697a4136aae4640bb63b26a4640a0313394b0bf1357dd0f3c4f2393e795'\n\nconst SUI_BONDS_CONFIG: BillsConfig[] = [\n {\n index: 99101,\n version: '2.0.0',\n chainId: SUI_KEY,\n billVersion: BillVersion.V2,\n billType: 'reserve',\n soldOut: false,\n contractAddress: {\n [SUI_KEY]: SUI_BOND_10PCT,\n },\n billNnftAddress: {\n [SUI_KEY]: `${SUI_PACKAGE_ID}::bond_nft::COLLECTION`,\n },\n lpToken: {\n symbol: 'tUSDC',\n address: {\n [SUI_KEY]: SUI_PRINCIPAL_TOKEN_COIN_TYPE,\n },\n decimals: { [SUI_KEY]: 6 },\n active: true,\n },\n earnToken: {\n symbol: 'tAPE',\n address: {\n [SUI_KEY]: SUI_PAYOUT_TOKEN_COIN_TYPE,\n },\n decimals: { [SUI_KEY]: 8 },\n active: true,\n },\n billArt: { collection: BillArtCollection.ApeBond_Collection1 },\n shortDescription: '10% discount bond — CV=81225, fee 5%/5%',\n fullDescription:\n 'Sui bond with 10% target discount and 5% fee in principal + 5% fee in payout. Expected SDK bonus: ~11.11%.',\n vestingTerm: 172800,\n vestingCliff: 300,\n tags: ['Sui'],\n },\n {\n index: 99102,\n version: '2.0.0',\n chainId: SUI_KEY,\n billVersion: BillVersion.V2,\n billType: 'reserve',\n soldOut: false,\n contractAddress: {\n [SUI_KEY]: SUI_BOND_5PCT,\n },\n billNnftAddress: {\n [SUI_KEY]: `${SUI_PACKAGE_ID}::bond_nft::COLLECTION`,\n },\n lpToken: {\n symbol: 'tUSDC',\n address: {\n [SUI_KEY]: SUI_PRINCIPAL_TOKEN_COIN_TYPE,\n },\n decimals: { [SUI_KEY]: 6 },\n active: true,\n },\n earnToken: {\n symbol: 'tAPE',\n address: {\n [SUI_KEY]: SUI_PAYOUT_TOKEN_COIN_TYPE,\n },\n decimals: { [SUI_KEY]: 8 },\n active: true,\n },\n billArt: { collection: BillArtCollection.ApeBond_Collection1 },\n shortDescription: '5% discount bond — CV=85738, fee 5%/5%',\n fullDescription:\n 'Sui bond with 5% target discount and 5% fee in principal + 5% fee in payout. Expected SDK bonus: ~5.26%.',\n vestingTerm: 172800,\n vestingCliff: 300,\n tags: ['Sui'],\n },\n {\n index: 99103,\n version: '2.0.0',\n chainId: SUI_KEY,\n billVersion: BillVersion.V2,\n billType: 'reserve',\n soldOut: false,\n contractAddress: {\n [SUI_KEY]: SUI_BOND_35PCT,\n },\n billNnftAddress: {\n [SUI_KEY]: `${SUI_PACKAGE_ID}::bond_nft::COLLECTION`,\n },\n lpToken: {\n symbol: 'tUSDC',\n address: {\n [SUI_KEY]: SUI_PRINCIPAL_TOKEN_COIN_TYPE,\n },\n decimals: { [SUI_KEY]: 6 },\n active: true,\n },\n earnToken: {\n symbol: 'tAPE',\n address: {\n [SUI_KEY]: SUI_PAYOUT_TOKEN_COIN_TYPE,\n },\n decimals: { [SUI_KEY]: 8 },\n active: true,\n },\n billArt: { collection: BillArtCollection.ApeBond_Collection1 },\n shortDescription: '35% discount bond — CV=58662, fee 5%/5%',\n fullDescription:\n 'Sui bond with 35% target discount and 5% fee in principal + 5% fee in payout. Expected SDK bonus: ~53.85%.',\n vestingTerm: 172800,\n vestingCliff: 300,\n tags: ['Sui'],\n },\n // --- SUI-payout (9-dec) bond with correct CV (PRICE_DECIMALS=1e8) ---\n {\n index: 99201,\n version: '2.0.0',\n chainId: SUI_KEY,\n billVersion: BillVersion.V2,\n billType: 'reserve',\n soldOut: false,\n contractAddress: {\n [SUI_KEY]: SUI_9DEC_CORRECT_CV,\n },\n billNnftAddress: {\n [SUI_KEY]: `${SUI_PACKAGE_ID}::bond_nft::COLLECTION`,\n },\n lpToken: {\n symbol: 'tUSDC',\n address: {\n [SUI_KEY]: SUI_PRINCIPAL_TOKEN_COIN_TYPE,\n },\n decimals: { [SUI_KEY]: 6 },\n active: true,\n },\n earnToken: {\n symbol: 'SUI',\n address: {\n [SUI_KEY]: SUI_NATIVE_TOKEN_ADDRESS,\n },\n decimals: { [SUI_KEY]: 9 },\n active: true,\n },\n billArt: { collection: BillArtCollection.ApeBond_Collection1 },\n shortDescription: '10% discount SUI bond (9-dec) — CV=4061250, fee 5%/5%',\n fullDescription:\n 'SUI-payout bond with 9 decimals. CV calculated using PRICE_DECIMALS=1e8. Expected SDK bonus: ~11.11%.',\n vestingTerm: 172800,\n vestingCliff: 300,\n tags: ['Sui'],\n },\n]\n\n// Fallback prices used until price-api.ape.bond supports Sui tokens.\n// TODO(sui): Remove fallback prices when price-api returns Sui token prices.\n// Update SUI and payout token prices to current values before mainnet launch.\nconst SUI_FALLBACK_PRICES: TokenPrices[] = [\n {\n chainId: ChainId.SUI,\n chainName: 'Sui',\n tokenAddress: SUI_PRINCIPAL_TOKEN_COIN_TYPE,\n name: 'Test USDC',\n symbol: 'tUSDC',\n price: 1.0,\n priceSource: 'fallback',\n updatedAt: 0,\n secondsAgoUpdated: 0,\n },\n {\n chainId: ChainId.SUI,\n chainName: 'Sui',\n tokenAddress: SUI_PAYOUT_TOKEN_COIN_TYPE,\n name: 'Test APE',\n symbol: 'tAPE',\n price: 50.0, // testnet: inflated so bond shows a positive bonus\n priceSource: 'fallback',\n updatedAt: 0,\n secondsAgoUpdated: 0,\n },\n {\n chainId: ChainId.SUI,\n chainName: 'Sui',\n tokenAddress: SUI_NATIVE_TOKEN_ADDRESS,\n name: 'Sui',\n symbol: 'SUI',\n price: 3.5,\n priceSource: 'fallback',\n updatedAt: 0,\n secondsAgoUpdated: 0,\n },\n]\n\nexport const getSuiBondsList = (): BillsConfig[] => SUI_BONDS_CONFIG\n\nexport const getSuiFallbackPrices = (): TokenPrices[] => SUI_FALLBACK_PRICES\n"],"names":[],"mappings":"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"}
|