@ape.swap/bonds-sdk 6.1.15-test.0 → 6.1.17-test.1
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/ConnectButton/index.js +3 -4
- package/dist/components/ConnectButton/index.js.map +1 -1
- package/dist/components/ConnectSolanaWalletButton/ConnectSolanaWalletButton.js +5 -3
- package/dist/components/ConnectSolanaWalletButton/ConnectSolanaWalletButton.js.map +1 -1
- package/dist/components/ConnectoToVmBanners/ConnectToAptosBanner.js +7 -2
- package/dist/components/ConnectoToVmBanners/ConnectToAptosBanner.js.map +1 -1
- package/dist/components/ConnectoToVmBanners/ConnectToSolanaBanner.js +5 -1
- package/dist/components/ConnectoToVmBanners/ConnectToSolanaBanner.js.map +1 -1
- package/dist/components/ConnectoToVmBanners/ConnectToSuiBanner.js +9 -2
- package/dist/components/ConnectoToVmBanners/ConnectToSuiBanner.js.map +1 -1
- package/dist/config/constants/aptosZapTokens.js +1 -15
- package/dist/config/constants/aptosZapTokens.js.map +1 -1
- package/dist/config/constants/walletConnectors.d.ts +6 -0
- package/dist/config/constants/walletConnectors.js +25 -0
- package/dist/config/constants/walletConnectors.js.map +1 -0
- package/dist/constants/aptosConstants.js +1 -5
- package/dist/constants/aptosConstants.js.map +1 -1
- package/dist/constants/suiConstants.js +1 -3
- package/dist/constants/suiConstants.js.map +1 -1
- package/dist/state/useSDKConfig.d.ts +13 -3
- package/dist/state/useSDKConfig.js +22 -10
- package/dist/state/useSDKConfig.js.map +1 -1
- package/dist/utils/aptosHelpers.js +1 -25
- package/dist/utils/aptosHelpers.js.map +1 -1
- package/dist/views/BuyBond/BuyBondModal.js +14 -3
- package/dist/views/BuyBond/BuyBondModal.js.map +1 -1
- package/dist/views/YourBonds/components/UserBondRow/UserBondRowSolana.js +3 -1
- package/dist/views/YourBonds/components/UserBondRow/UserBondRowSolana.js.map +1 -1
- package/dist/views/YourBondsModal/components/TransferBondModal/TransferActionSolana.js +5 -1
- package/dist/views/YourBondsModal/components/TransferBondModal/TransferActionSolana.js.map +1 -1
- package/package.json +1 -2
- package/dist/components/ConnectAptosWalletButton/ConnectAptosWalletButton.js +0 -39
- package/dist/components/ConnectAptosWalletButton/ConnectAptosWalletButton.js.map +0 -1
- package/dist/components/ConnectButton/AppKitButton.d.ts +0 -3
- package/dist/components/ConnectButton/AppKitButton.js +0 -9
- package/dist/components/ConnectButton/AppKitButton.js.map +0 -1
- package/dist/components/ConnectButton/RainbowKitButton.d.ts +0 -3
- package/dist/components/ConnectButton/RainbowKitButton.js +0 -22
- package/dist/components/ConnectButton/RainbowKitButton.js.map +0 -1
- package/dist/config/constants/suiCallbacks.d.ts +0 -2
- package/dist/config/constants/suiCallbacks.js +0 -17
- package/dist/config/constants/suiCallbacks.js.map +0 -1
- package/dist/config/constants/suiZapTokens.js +0 -36
- package/dist/config/constants/suiZapTokens.js.map +0 -1
- package/dist/state/zap/useAptosZapQuote.js +0 -83
- package/dist/state/zap/useAptosZapQuote.js.map +0 -1
- package/dist/state/zap/useSuiZapQuote.js +0 -96
- package/dist/state/zap/useSuiZapQuote.js.map +0 -1
- package/dist/views/BuyBond/BuyComponentAptos.js +0 -349
- package/dist/views/BuyBond/BuyComponentAptos.js.map +0 -1
- package/dist/views/BuyBond/BuyComponentSui.js +0 -500
- package/dist/views/BuyBond/BuyComponentSui.js.map +0 -1
|
@@ -1,12 +1,11 @@
|
|
|
1
1
|
import { jsx } from 'theme-ui/jsx-runtime';
|
|
2
|
-
import { useSDKConfig } from '../../state/useSDKConfig.js';
|
|
3
2
|
import Button from '../uikit-sdk/Button/Button.js';
|
|
4
|
-
import
|
|
5
|
-
import
|
|
3
|
+
import { openEvmWalletConnector } from '../../config/constants/walletConnectors.js';
|
|
4
|
+
import { useSDKConfig } from '../../state/useSDKConfig.js';
|
|
6
5
|
|
|
7
6
|
const ConnectButton = () => {
|
|
8
7
|
const config = useSDKConfig();
|
|
9
|
-
return
|
|
8
|
+
return (jsx(Button, { fullWidth: true, onClick: openEvmWalletConnector, disabled: !config?.openWalletConnector?.evm, children: "Connect wallet" }));
|
|
10
9
|
};
|
|
11
10
|
|
|
12
11
|
export { ConnectButton as default };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../../src/components/ConnectButton/index.tsx"],"sourcesContent":["import React from 'react'\nimport
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../src/components/ConnectButton/index.tsx"],"sourcesContent":["import React from 'react'\nimport Button from '../uikit-sdk/Button/Button'\nimport { openEvmWalletConnector } from '../../config/constants/walletConnectors'\nimport { useSDKConfig } from '../../state/useSDKConfig'\n\nconst ConnectButton = () => {\n const config = useSDKConfig()\n\n return (\n <Button fullWidth onClick={openEvmWalletConnector} disabled={!config?.openWalletConnector?.evm}>\n Connect wallet\n </Button>\n )\n}\n\nexport default ConnectButton\n"],"names":["_jsx"],"mappings":";;;;;AAKA,MAAM,aAAa,GAAG,MAAK;AACzB,IAAA,MAAM,MAAM,GAAG,YAAY,EAAE;IAE7B,QACEA,IAAC,MAAM,EAAA,EAAC,SAAS,EAAA,IAAA,EAAC,OAAO,EAAE,sBAAsB,EAAE,QAAQ,EAAE,CAAC,MAAM,EAAE,mBAAmB,EAAE,GAAG,EAAA,QAAA,EAAA,gBAAA,EAAA,CAErF;AAEb;;;;"}
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
import { jsx } from 'theme-ui/jsx-runtime';
|
|
2
2
|
import { useWalletModal } from '@solana/wallet-adapter-react-ui';
|
|
3
3
|
import useSOLAccount from '../../hooks/accounts/useSOLAccount.js';
|
|
4
|
+
import { useSDKConfig } from '../../state/useSDKConfig.js';
|
|
5
|
+
import { openSolWalletConnector } from '../../config/constants/walletConnectors.js';
|
|
4
6
|
import Flex from '../uikit-sdk/Flex/index.js';
|
|
5
7
|
import Button from '../uikit-sdk/Button/Button.js';
|
|
6
8
|
import Text from '../uikit-sdk/Text/index.js';
|
|
@@ -8,9 +10,9 @@ import Text from '../uikit-sdk/Text/index.js';
|
|
|
8
10
|
const ConnectSolanaWallet = ({ navBarFlag }) => {
|
|
9
11
|
const { setVisible } = useWalletModal();
|
|
10
12
|
const { publicKey, disconnect, connecting } = useSOLAccount();
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
13
|
+
const config = useSDKConfig();
|
|
14
|
+
const handleConnect = config?.openWalletConnector?.sol ? openSolWalletConnector : () => setVisible(true);
|
|
15
|
+
return (jsx(Flex, { sx: { height: '100%', width: navBarFlag ? 'auto' : '100%', alignItems: 'center' }, children: !publicKey ? (jsx(Button, { fullWidth: true, onClick: handleConnect, sx: {
|
|
14
16
|
height: navBarFlag ? '32.5px' : '45px',
|
|
15
17
|
padding: '10px 10px',
|
|
16
18
|
alignItems: 'center',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ConnectSolanaWalletButton.js","sources":["../../../src/components/ConnectSolanaWalletButton/ConnectSolanaWalletButton.tsx"],"sourcesContent":["import { useWalletModal } from '@solana/wallet-adapter-react-ui'\nimport useSOLAccount from '../../hooks/accounts/useSOLAccount'\nimport Flex from '../uikit-sdk/Flex'\nimport Button from '../uikit-sdk/Button/Button'\nimport Text from '../uikit-sdk/Text'\n\nconst ConnectSolanaWallet = ({ navBarFlag }: { navBarFlag?: boolean }) => {\n const { setVisible } = useWalletModal()\n const { publicKey, disconnect, connecting } = useSOLAccount()\n\n return (\n <Flex sx={{ height: '100%', width: navBarFlag ? 'auto' : '100%', alignItems: 'center' }}>\n {!publicKey ? (\n <Button\n fullWidth\n onClick={
|
|
1
|
+
{"version":3,"file":"ConnectSolanaWalletButton.js","sources":["../../../src/components/ConnectSolanaWalletButton/ConnectSolanaWalletButton.tsx"],"sourcesContent":["import { useWalletModal } from '@solana/wallet-adapter-react-ui'\nimport useSOLAccount from '../../hooks/accounts/useSOLAccount'\nimport { useSDKConfig } from '../../state/useSDKConfig'\nimport { openSolWalletConnector } from '../../config/constants/walletConnectors'\nimport Flex from '../uikit-sdk/Flex'\nimport Button from '../uikit-sdk/Button/Button'\nimport Text from '../uikit-sdk/Text'\n\nconst ConnectSolanaWallet = ({ navBarFlag }: { navBarFlag?: boolean }) => {\n const { setVisible } = useWalletModal()\n const { publicKey, disconnect, connecting } = useSOLAccount()\n const config = useSDKConfig()\n const handleConnect = config?.openWalletConnector?.sol ? openSolWalletConnector : () => setVisible(true)\n\n return (\n <Flex sx={{ height: '100%', width: navBarFlag ? 'auto' : '100%', alignItems: 'center' }}>\n {!publicKey ? (\n <Button\n fullWidth\n onClick={handleConnect}\n sx={{\n height: navBarFlag ? '32.5px' : '45px',\n padding: '10px 10px',\n alignItems: 'center',\n backgroundColor: navBarFlag ? '#00c59a' : '',\n }}\n >\n <Text\n color=\"primaryBright\"\n size={navBarFlag ? '14px' : '16px'}\n weight={navBarFlag ? 600 : 700}\n sx={{ mt: '1px' }}\n >\n {connecting ? 'Connecting...' : 'Connect to Solana'}\n </Text>\n </Button>\n ) : (\n <Button\n fullWidth\n onClick={() => {\n disconnect()\n }}\n sx={{\n height: navBarFlag ? '32.5px' : '45px',\n padding: '10px 10px',\n alignItems: 'center',\n backgroundColor: navBarFlag ? '#00c59a' : '',\n }}\n >\n <Text\n color=\"primaryBright\"\n size={navBarFlag ? '14px' : '16px'}\n weight={navBarFlag ? 600 : 700}\n sx={{ mt: '1px' }}\n >\n {'Disconnect from Solana'}\n </Text>\n </Button>\n )}\n </Flex>\n )\n}\n\nexport default ConnectSolanaWallet\n"],"names":["_jsx"],"mappings":";;;;;;;;;AAQA,MAAM,mBAAmB,GAAG,CAAC,EAAE,UAAU,EAA4B,KAAI;AACvE,IAAA,MAAM,EAAE,UAAU,EAAE,GAAG,cAAc,EAAE;IACvC,MAAM,EAAE,SAAS,EAAE,UAAU,EAAE,UAAU,EAAE,GAAG,aAAa,EAAE;AAC7D,IAAA,MAAM,MAAM,GAAG,YAAY,EAAE;IAC7B,MAAM,aAAa,GAAG,MAAM,EAAE,mBAAmB,EAAE,GAAG,GAAG,sBAAsB,GAAG,MAAM,UAAU,CAAC,IAAI,CAAC;IAExG,QACEA,IAAC,IAAI,EAAA,EAAC,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,GAAG,MAAM,GAAG,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,EAAA,QAAA,EACpF,CAAC,SAAS,IACTA,IAAC,MAAM,EAAA,EACL,SAAS,EAAA,IAAA,EACT,OAAO,EAAE,aAAa,EACtB,EAAE,EAAE;gBACF,MAAM,EAAE,UAAU,GAAG,QAAQ,GAAG,MAAM;AACtC,gBAAA,OAAO,EAAE,WAAW;AACpB,gBAAA,UAAU,EAAE,QAAQ;gBACpB,eAAe,EAAE,UAAU,GAAG,SAAS,GAAG,EAAE;AAC7C,aAAA,EAAA,QAAA,EAEDA,GAAA,CAAC,IAAI,EAAA,EACH,KAAK,EAAC,eAAe,EACrB,IAAI,EAAE,UAAU,GAAG,MAAM,GAAG,MAAM,EAClC,MAAM,EAAE,UAAU,GAAG,GAAG,GAAG,GAAG,EAC9B,EAAE,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,EAAA,QAAA,EAEhB,UAAU,GAAG,eAAe,GAAG,mBAAmB,EAAA,CAC9C,EAAA,CACA,KAETA,GAAA,CAAC,MAAM,EAAA,EACL,SAAS,EAAA,IAAA,EACT,OAAO,EAAE,MAAK;AACZ,gBAAA,UAAU,EAAE;YACd,CAAC,EACD,EAAE,EAAE;gBACF,MAAM,EAAE,UAAU,GAAG,QAAQ,GAAG,MAAM;AACtC,gBAAA,OAAO,EAAE,WAAW;AACpB,gBAAA,UAAU,EAAE,QAAQ;gBACpB,eAAe,EAAE,UAAU,GAAG,SAAS,GAAG,EAAE;aAC7C,EAAA,QAAA,EAEDA,GAAA,CAAC,IAAI,EAAA,EACH,KAAK,EAAC,eAAe,EACrB,IAAI,EAAE,UAAU,GAAG,MAAM,GAAG,MAAM,EAClC,MAAM,EAAE,UAAU,GAAG,GAAG,GAAG,GAAG,EAC9B,EAAE,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,EAAA,QAAA,EAEhB,wBAAwB,GACpB,EAAA,CACA,CACV,EAAA,CACI;AAEX;;;;"}
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
import { jsxs, jsx } from 'theme-ui/jsx-runtime';
|
|
2
2
|
import { useState } from 'react';
|
|
3
3
|
import { WalletSelector } from '@aptos-labs/wallet-adapter-ant-design';
|
|
4
|
+
import { useSDKConfig } from '../../state/useSDKConfig.js';
|
|
5
|
+
import { openAptosWalletConnector } from '../../config/constants/walletConnectors.js';
|
|
4
6
|
import Flex from '../uikit-sdk/Flex/index.js';
|
|
5
7
|
import Button from '../uikit-sdk/Button/Button.js';
|
|
6
8
|
import Text from '../uikit-sdk/Text/index.js';
|
|
@@ -13,6 +15,9 @@ import APTOS from '../uikit-sdk/Svg/tokens/APTOS.js';
|
|
|
13
15
|
// so each entry point controls its own modal visibility.
|
|
14
16
|
function ConnectToAptosBanner() {
|
|
15
17
|
const [isModalOpen, setModalOpen] = useState(false);
|
|
18
|
+
const config = useSDKConfig();
|
|
19
|
+
const useCustomConnector = !!config?.openWalletConnector?.aptos;
|
|
20
|
+
const handleConnect = useCustomConnector ? openAptosWalletConnector : () => setModalOpen(true);
|
|
16
21
|
return (jsxs(Flex, { sx: {
|
|
17
22
|
width: '100%',
|
|
18
23
|
height: '75px',
|
|
@@ -33,7 +38,7 @@ function ConnectToAptosBanner() {
|
|
|
33
38
|
borderRadius: '4px',
|
|
34
39
|
marginLeft: '6px',
|
|
35
40
|
marginRight: '6px',
|
|
36
|
-
}, children: "NEW" })] }), jsx(Text, { sx: { fontSize: '11px', fontWeight: '400', lineHeight: '16px', color: 'white' }, children: "Connect your wallet to view your Aptos Bonds!" })] })] }), jsx(Flex, { sx: { minWidth: '100px' }, children: jsx(Button, { onClick:
|
|
41
|
+
}, children: "NEW" })] }), jsx(Text, { sx: { fontSize: '11px', fontWeight: '400', lineHeight: '16px', color: 'white' }, children: "Connect your wallet to view your Aptos Bonds!" })] })] }), jsx(Flex, { sx: { minWidth: '100px' }, children: jsx(Button, { onClick: handleConnect, sx: {
|
|
37
42
|
background: 'text',
|
|
38
43
|
color: 'primaryButton',
|
|
39
44
|
border: 'none',
|
|
@@ -42,7 +47,7 @@ function ConnectToAptosBanner() {
|
|
|
42
47
|
fontSize: '14px',
|
|
43
48
|
fontWeight: '700',
|
|
44
49
|
'&:hover': { color: 'text' },
|
|
45
|
-
}, children: "Connect" }) }), jsx("div", { style: { display: 'none' }, children: jsx(WalletSelector, { isModalOpen: isModalOpen, setModalOpen: setModalOpen }) })] }));
|
|
50
|
+
}, children: "Connect" }) }), !useCustomConnector && (jsx("div", { style: { display: 'none' }, children: jsx(WalletSelector, { isModalOpen: isModalOpen, setModalOpen: setModalOpen }) }))] }));
|
|
46
51
|
}
|
|
47
52
|
|
|
48
53
|
export { ConnectToAptosBanner as default };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ConnectToAptosBanner.js","sources":["../../../src/components/ConnectoToVmBanners/ConnectToAptosBanner.tsx"],"sourcesContent":["import { useState } from 'react'\nimport { WalletSelector } from '@aptos-labs/wallet-adapter-ant-design'\nimport Flex from '../uikit-sdk/Flex'\nimport Button from '../uikit-sdk/Button/Button'\nimport Text from '../uikit-sdk/Text'\nimport APTOS from '../uikit-sdk/Svg/tokens/APTOS'\n\n// Banner rendered in Your Bonds when the user has not connected an Aptos\n// wallet. Uses the same visual language as `ConnectToSolanaBanner` (see the\n// sibling file) but hosts the Ant Design `WalletSelector` modal internally\n// — Aptos does not expose a global `useWalletModal` hook like Solana does,\n// so each entry point controls its own modal visibility.\nexport default function ConnectToAptosBanner() {\n const [isModalOpen, setModalOpen] = useState(false)\n return (\n <Flex\n sx={{\n width: '100%',\n height: '75px',\n background: 'linear-gradient(135deg, #2B2B2B 0%, #1A1A2E 100%)',\n p: '10px',\n borderRadius: '10px',\n justifyContent: 'space-between',\n alignItems: 'center',\n border: 'none',\n cursor: 'pointer',\n }}\n >\n <Flex sx={{ width: '100%', maxWidth: '300px', gap: '10px', alignItems: 'center' }}>\n <Flex sx={{ minWidth: '30px', minHeight: '30px', borderRadius: '50%', overflow: 'hidden' }}>\n <APTOS width=\"30\" />\n </Flex>\n <Flex sx={{ flexDirection: 'column' }}>\n <Text\n sx={{ fontSize: '18px', fontWeight: '700', lineHeight: '18.5px', display: 'flex', alignItems: 'center' }}\n >\n Aptos\n <Text\n sx={{\n fontSize: '10px',\n fontWeight: '600',\n lineHeight: '8px',\n color: '#FAFAFA',\n padding: '4px 6px',\n background: 'rgba(250, 250, 250, 0.3)',\n borderRadius: '4px',\n marginLeft: '6px',\n marginRight: '6px',\n }}\n >\n NEW\n </Text>\n </Text>\n <Text sx={{ fontSize: '11px', fontWeight: '400', lineHeight: '16px', color: 'white' }}>\n Connect your wallet to view your Aptos Bonds!\n </Text>\n </Flex>\n </Flex>\n <Flex sx={{ minWidth: '100px' }}>\n <Button\n onClick={
|
|
1
|
+
{"version":3,"file":"ConnectToAptosBanner.js","sources":["../../../src/components/ConnectoToVmBanners/ConnectToAptosBanner.tsx"],"sourcesContent":["import { useState } from 'react'\nimport { WalletSelector } from '@aptos-labs/wallet-adapter-ant-design'\nimport { useSDKConfig } from '../../state/useSDKConfig'\nimport { openAptosWalletConnector } from '../../config/constants/walletConnectors'\nimport Flex from '../uikit-sdk/Flex'\nimport Button from '../uikit-sdk/Button/Button'\nimport Text from '../uikit-sdk/Text'\nimport APTOS from '../uikit-sdk/Svg/tokens/APTOS'\n\n// Banner rendered in Your Bonds when the user has not connected an Aptos\n// wallet. Uses the same visual language as `ConnectToSolanaBanner` (see the\n// sibling file) but hosts the Ant Design `WalletSelector` modal internally\n// — Aptos does not expose a global `useWalletModal` hook like Solana does,\n// so each entry point controls its own modal visibility.\nexport default function ConnectToAptosBanner() {\n const [isModalOpen, setModalOpen] = useState(false)\n const config = useSDKConfig()\n const useCustomConnector = !!config?.openWalletConnector?.aptos\n const handleConnect = useCustomConnector ? openAptosWalletConnector : () => setModalOpen(true)\n return (\n <Flex\n sx={{\n width: '100%',\n height: '75px',\n background: 'linear-gradient(135deg, #2B2B2B 0%, #1A1A2E 100%)',\n p: '10px',\n borderRadius: '10px',\n justifyContent: 'space-between',\n alignItems: 'center',\n border: 'none',\n cursor: 'pointer',\n }}\n >\n <Flex sx={{ width: '100%', maxWidth: '300px', gap: '10px', alignItems: 'center' }}>\n <Flex sx={{ minWidth: '30px', minHeight: '30px', borderRadius: '50%', overflow: 'hidden' }}>\n <APTOS width=\"30\" />\n </Flex>\n <Flex sx={{ flexDirection: 'column' }}>\n <Text\n sx={{ fontSize: '18px', fontWeight: '700', lineHeight: '18.5px', display: 'flex', alignItems: 'center' }}\n >\n Aptos\n <Text\n sx={{\n fontSize: '10px',\n fontWeight: '600',\n lineHeight: '8px',\n color: '#FAFAFA',\n padding: '4px 6px',\n background: 'rgba(250, 250, 250, 0.3)',\n borderRadius: '4px',\n marginLeft: '6px',\n marginRight: '6px',\n }}\n >\n NEW\n </Text>\n </Text>\n <Text sx={{ fontSize: '11px', fontWeight: '400', lineHeight: '16px', color: 'white' }}>\n Connect your wallet to view your Aptos Bonds!\n </Text>\n </Flex>\n </Flex>\n <Flex sx={{ minWidth: '100px' }}>\n <Button\n onClick={handleConnect}\n sx={{\n background: 'text',\n color: 'primaryButton',\n border: 'none',\n height: '31px',\n width: ['210px', '210px', '210px', '210px', '210px', '100px'],\n fontSize: '14px',\n fontWeight: '700',\n '&:hover': { color: 'text' },\n }}\n >\n Connect\n </Button>\n </Flex>\n {/* WalletSelector renders its own \"Connect Wallet\" trigger alongside\n the modal. We only want the modal (which is a portal into\n document.body), so we hide the wrapper with display: none. */}\n {!useCustomConnector && (\n <div style={{ display: 'none' }}>\n <WalletSelector isModalOpen={isModalOpen} setModalOpen={setModalOpen} />\n </div>\n )}\n </Flex>\n )\n}\n"],"names":["_jsxs","_jsx"],"mappings":"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"}
|
|
@@ -1,11 +1,15 @@
|
|
|
1
1
|
import { jsxs, jsx } from 'theme-ui/jsx-runtime';
|
|
2
2
|
import { useWalletModal } from '@solana/wallet-adapter-react-ui';
|
|
3
|
+
import { useSDKConfig } from '../../state/useSDKConfig.js';
|
|
4
|
+
import { openSolWalletConnector } from '../../config/constants/walletConnectors.js';
|
|
3
5
|
import Flex from '../uikit-sdk/Flex/index.js';
|
|
4
6
|
import Button from '../uikit-sdk/Button/Button.js';
|
|
5
7
|
import Text from '../uikit-sdk/Text/index.js';
|
|
6
8
|
|
|
7
9
|
function ConnectToSolanaCard() {
|
|
8
10
|
const { setVisible } = useWalletModal();
|
|
11
|
+
const config = useSDKConfig();
|
|
12
|
+
const handleConnect = config?.openWalletConnector?.sol ? openSolWalletConnector : () => setVisible(true);
|
|
9
13
|
return (jsxs(Flex, { sx: {
|
|
10
14
|
width: '100%',
|
|
11
15
|
height: '75px',
|
|
@@ -31,7 +35,7 @@ function ConnectToSolanaCard() {
|
|
|
31
35
|
display: 'flex',
|
|
32
36
|
alignItems: 'center',
|
|
33
37
|
gap: '5px',
|
|
34
|
-
}, children: ["Solana", jsx("img", { src: "https://ape.bond/images/connect-to-vm/svm-compatible-wallets.png", alt: "solana compatible wallets", width: 43, height: 17 })] }), jsx(Text, { sx: { fontSize: '11px', fontWeight: '400', lineHeight: '16px', color: 'white' }, children: "Connect your wallet to view your Solana Bonds!" })] })] }), jsx(Flex, { sx: { minWidth: '100px' }, children: jsx(Button, { onClick:
|
|
38
|
+
}, children: ["Solana", jsx("img", { src: "https://ape.bond/images/connect-to-vm/svm-compatible-wallets.png", alt: "solana compatible wallets", width: 43, height: 17 })] }), jsx(Text, { sx: { fontSize: '11px', fontWeight: '400', lineHeight: '16px', color: 'white' }, children: "Connect your wallet to view your Solana Bonds!" })] })] }), jsx(Flex, { sx: { minWidth: '100px' }, children: jsx(Button, { onClick: handleConnect, sx: {
|
|
35
39
|
background: 'text',
|
|
36
40
|
color: 'primaryButton',
|
|
37
41
|
border: 'none',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ConnectToSolanaBanner.js","sources":["../../../src/components/ConnectoToVmBanners/ConnectToSolanaBanner.tsx"],"sourcesContent":["import { useWalletModal } from '@solana/wallet-adapter-react-ui'\nimport Flex from '../uikit-sdk/Flex'\nimport Button from '../uikit-sdk/Button/Button'\nimport Text from '../uikit-sdk/Text'\n\nexport default function ConnectToSolanaCard() {\n const { setVisible } = useWalletModal()\n return (\n <Flex\n sx={{\n width: '100%',\n height: '75px',\n background: `url('https://ape.bond/images/connect-to-vm/solana-card-background.png') no-repeat center center`,\n backgroundSize: 'cover',\n p: '10px',\n borderRadius: '10px',\n justifyContent: 'space-between',\n alignItems: 'center',\n border: 'none',\n cursor: 'pointer',\n }}\n >\n <Flex\n sx={{\n width: '100%',\n maxWidth: '300px',\n gap: '10px',\n alignItems: 'center',\n }}\n >\n <img\n src=\"https://ape.bond/images/connect-to-vm/solana-icon.png\"\n alt=\"solana icon\"\n width={30}\n height={30}\n style={{ borderRadius: '50px' }}\n />\n <Flex\n sx={{\n flexDirection: 'column',\n }}\n >\n <Text\n sx={{\n fontSize: '18px',\n fontWeight: '700',\n lineHeight: '18.5px',\n display: 'flex',\n alignItems: 'center',\n gap: '5px',\n }}\n >\n Solana\n <img\n src=\"https://ape.bond/images/connect-to-vm/svm-compatible-wallets.png\"\n alt=\"solana compatible wallets\"\n width={43}\n height={17}\n />\n </Text>\n <Text sx={{ fontSize: '11px', fontWeight: '400', lineHeight: '16px', color: 'white' }}>\n Connect your wallet to view your Solana Bonds!\n </Text>\n </Flex>\n </Flex>\n <Flex sx={{ minWidth: '100px' }}>\n <Button\n onClick={
|
|
1
|
+
{"version":3,"file":"ConnectToSolanaBanner.js","sources":["../../../src/components/ConnectoToVmBanners/ConnectToSolanaBanner.tsx"],"sourcesContent":["import { useWalletModal } from '@solana/wallet-adapter-react-ui'\nimport { useSDKConfig } from '../../state/useSDKConfig'\nimport { openSolWalletConnector } from '../../config/constants/walletConnectors'\nimport Flex from '../uikit-sdk/Flex'\nimport Button from '../uikit-sdk/Button/Button'\nimport Text from '../uikit-sdk/Text'\n\nexport default function ConnectToSolanaCard() {\n const { setVisible } = useWalletModal()\n const config = useSDKConfig()\n const handleConnect = config?.openWalletConnector?.sol ? openSolWalletConnector : () => setVisible(true)\n return (\n <Flex\n sx={{\n width: '100%',\n height: '75px',\n background: `url('https://ape.bond/images/connect-to-vm/solana-card-background.png') no-repeat center center`,\n backgroundSize: 'cover',\n p: '10px',\n borderRadius: '10px',\n justifyContent: 'space-between',\n alignItems: 'center',\n border: 'none',\n cursor: 'pointer',\n }}\n >\n <Flex\n sx={{\n width: '100%',\n maxWidth: '300px',\n gap: '10px',\n alignItems: 'center',\n }}\n >\n <img\n src=\"https://ape.bond/images/connect-to-vm/solana-icon.png\"\n alt=\"solana icon\"\n width={30}\n height={30}\n style={{ borderRadius: '50px' }}\n />\n <Flex\n sx={{\n flexDirection: 'column',\n }}\n >\n <Text\n sx={{\n fontSize: '18px',\n fontWeight: '700',\n lineHeight: '18.5px',\n display: 'flex',\n alignItems: 'center',\n gap: '5px',\n }}\n >\n Solana\n <img\n src=\"https://ape.bond/images/connect-to-vm/svm-compatible-wallets.png\"\n alt=\"solana compatible wallets\"\n width={43}\n height={17}\n />\n </Text>\n <Text sx={{ fontSize: '11px', fontWeight: '400', lineHeight: '16px', color: 'white' }}>\n Connect your wallet to view your Solana Bonds!\n </Text>\n </Flex>\n </Flex>\n <Flex sx={{ minWidth: '100px' }}>\n <Button\n onClick={handleConnect}\n sx={{\n background: 'text',\n color: 'primaryButton',\n border: 'none',\n height: '31px',\n width: ['210px', '210px', '210px', '210px', '210px', '100px'],\n fontSize: '14px',\n fontWeight: '700',\n '&:hover': { color: 'text' },\n }}\n >\n Connect\n </Button>\n </Flex>\n </Flex>\n )\n}\n"],"names":["_jsxs","_jsx"],"mappings":"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"}
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
import { jsxs, jsx } from 'theme-ui/jsx-runtime';
|
|
2
2
|
import { useState } from 'react';
|
|
3
3
|
import { ConnectModal } from '@mysten/dapp-kit';
|
|
4
|
+
import { useSDKConfig } from '../../state/useSDKConfig.js';
|
|
5
|
+
import { openSuiWalletConnector } from '../../config/constants/walletConnectors.js';
|
|
4
6
|
import Flex from '../uikit-sdk/Flex/index.js';
|
|
5
7
|
import Button from '../uikit-sdk/Button/Button.js';
|
|
6
8
|
import Text from '../uikit-sdk/Text/index.js';
|
|
@@ -8,6 +10,9 @@ import SUI from '../uikit-sdk/Svg/tokens/SUI.js';
|
|
|
8
10
|
|
|
9
11
|
function ConnectToSuiBanner() {
|
|
10
12
|
const [modalOpen, setModalOpen] = useState(false);
|
|
13
|
+
const config = useSDKConfig();
|
|
14
|
+
const useCustomConnector = !!config?.openWalletConnector?.sui;
|
|
15
|
+
const handleConnect = useCustomConnector ? openSuiWalletConnector : () => setModalOpen(true);
|
|
11
16
|
return (jsxs(Flex, { sx: {
|
|
12
17
|
width: '100%',
|
|
13
18
|
height: '75px',
|
|
@@ -28,7 +33,7 @@ function ConnectToSuiBanner() {
|
|
|
28
33
|
borderRadius: '4px',
|
|
29
34
|
marginLeft: '6px',
|
|
30
35
|
marginRight: '6px',
|
|
31
|
-
}, children: "NEW" })] }), jsx(Text, { sx: { fontSize: '11px', fontWeight: '400', lineHeight: '16px', color: 'white' }, children: "Connect your wallet to view your Sui Bonds!" })] })] }), jsx(Flex, { sx: { minWidth: '100px' }, children: jsx(Button, { onClick:
|
|
36
|
+
}, children: "NEW" })] }), jsx(Text, { sx: { fontSize: '11px', fontWeight: '400', lineHeight: '16px', color: 'white' }, children: "Connect your wallet to view your Sui Bonds!" })] })] }), jsx(Flex, { sx: { minWidth: '100px' }, children: jsx(Button, { onClick: handleConnect, sx: {
|
|
32
37
|
background: 'text',
|
|
33
38
|
color: 'primaryButton',
|
|
34
39
|
border: 'none',
|
|
@@ -37,7 +42,9 @@ function ConnectToSuiBanner() {
|
|
|
37
42
|
fontSize: '14px',
|
|
38
43
|
fontWeight: '700',
|
|
39
44
|
'&:hover': { color: 'text' },
|
|
40
|
-
}, children: "Connect" }) }),
|
|
45
|
+
}, children: "Connect" }) }), !useCustomConnector && (
|
|
46
|
+
// @ts-ignore
|
|
47
|
+
jsx(ConnectModal, { open: modalOpen, onOpenChange: setModalOpen }))] }));
|
|
41
48
|
}
|
|
42
49
|
|
|
43
50
|
export { ConnectToSuiBanner as default };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ConnectToSuiBanner.js","sources":["../../../src/components/ConnectoToVmBanners/ConnectToSuiBanner.tsx"],"sourcesContent":["import { useState } from 'react'\nimport { ConnectModal } from '@mysten/dapp-kit'\nimport Flex from '../uikit-sdk/Flex'\nimport Button from '../uikit-sdk/Button/Button'\nimport Text from '../uikit-sdk/Text'\nimport SUI from '../uikit-sdk/Svg/tokens/SUI'\n\nexport default function ConnectToSuiBanner() {\n const [modalOpen, setModalOpen] = useState(false)\n return (\n <Flex\n sx={{\n width: '100%',\n height: '75px',\n background: 'linear-gradient(135deg, #2B2B2B 0%, #1A1A2E 100%)',\n p: '10px',\n borderRadius: '10px',\n justifyContent: 'space-between',\n alignItems: 'center',\n border: 'none',\n cursor: 'pointer',\n }}\n >\n <Flex sx={{ width: '100%', maxWidth: '300px', gap: '10px', alignItems: 'center' }}>\n <Flex sx={{ minWidth: '30px', minHeight: '30px', borderRadius: '50%', overflow: 'hidden' }}>\n <SUI width=\"30\" />\n </Flex>\n <Flex sx={{ flexDirection: 'column' }}>\n <Text\n sx={{ fontSize: '18px', fontWeight: '700', lineHeight: '18.5px', display: 'flex', alignItems: 'center' }}\n >\n Sui\n <Text\n sx={{\n fontSize: '10px',\n fontWeight: '600',\n lineHeight: '8px',\n color: '#FAFAFA',\n padding: '4px 6px',\n background: 'rgba(250, 250, 250, 0.3)',\n borderRadius: '4px',\n marginLeft: '6px',\n marginRight: '6px',\n }}\n >\n NEW\n </Text>\n </Text>\n <Text sx={{ fontSize: '11px', fontWeight: '400', lineHeight: '16px', color: 'white' }}>\n Connect your wallet to view your Sui Bonds!\n </Text>\n </Flex>\n </Flex>\n <Flex sx={{ minWidth: '100px' }}>\n <Button\n onClick={
|
|
1
|
+
{"version":3,"file":"ConnectToSuiBanner.js","sources":["../../../src/components/ConnectoToVmBanners/ConnectToSuiBanner.tsx"],"sourcesContent":["import { useState } from 'react'\nimport { ConnectModal } from '@mysten/dapp-kit'\nimport { useSDKConfig } from '../../state/useSDKConfig'\nimport { openSuiWalletConnector } from '../../config/constants/walletConnectors'\nimport Flex from '../uikit-sdk/Flex'\nimport Button from '../uikit-sdk/Button/Button'\nimport Text from '../uikit-sdk/Text'\nimport SUI from '../uikit-sdk/Svg/tokens/SUI'\n\nexport default function ConnectToSuiBanner() {\n const [modalOpen, setModalOpen] = useState(false)\n const config = useSDKConfig()\n const useCustomConnector = !!config?.openWalletConnector?.sui\n const handleConnect = useCustomConnector ? openSuiWalletConnector : () => setModalOpen(true)\n return (\n <Flex\n sx={{\n width: '100%',\n height: '75px',\n background: 'linear-gradient(135deg, #2B2B2B 0%, #1A1A2E 100%)',\n p: '10px',\n borderRadius: '10px',\n justifyContent: 'space-between',\n alignItems: 'center',\n border: 'none',\n cursor: 'pointer',\n }}\n >\n <Flex sx={{ width: '100%', maxWidth: '300px', gap: '10px', alignItems: 'center' }}>\n <Flex sx={{ minWidth: '30px', minHeight: '30px', borderRadius: '50%', overflow: 'hidden' }}>\n <SUI width=\"30\" />\n </Flex>\n <Flex sx={{ flexDirection: 'column' }}>\n <Text\n sx={{ fontSize: '18px', fontWeight: '700', lineHeight: '18.5px', display: 'flex', alignItems: 'center' }}\n >\n Sui\n <Text\n sx={{\n fontSize: '10px',\n fontWeight: '600',\n lineHeight: '8px',\n color: '#FAFAFA',\n padding: '4px 6px',\n background: 'rgba(250, 250, 250, 0.3)',\n borderRadius: '4px',\n marginLeft: '6px',\n marginRight: '6px',\n }}\n >\n NEW\n </Text>\n </Text>\n <Text sx={{ fontSize: '11px', fontWeight: '400', lineHeight: '16px', color: 'white' }}>\n Connect your wallet to view your Sui Bonds!\n </Text>\n </Flex>\n </Flex>\n <Flex sx={{ minWidth: '100px' }}>\n <Button\n onClick={handleConnect}\n sx={{\n background: 'text',\n color: 'primaryButton',\n border: 'none',\n height: '31px',\n width: ['210px', '210px', '210px', '210px', '210px', '100px'],\n fontSize: '14px',\n fontWeight: '700',\n '&:hover': { color: 'text' },\n }}\n >\n Connect\n </Button>\n </Flex>\n {!useCustomConnector && (\n // @ts-ignore\n <ConnectModal open={modalOpen} onOpenChange={setModalOpen} />\n )}\n </Flex>\n )\n}\n"],"names":["_jsxs","_jsx"],"mappings":";;;;;;;;;;AASc,SAAU,kBAAkB,GAAA;IACxC,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC;AACjD,IAAA,MAAM,MAAM,GAAG,YAAY,EAAE;IAC7B,MAAM,kBAAkB,GAAG,CAAC,CAAC,MAAM,EAAE,mBAAmB,EAAE,GAAG;AAC7D,IAAA,MAAM,aAAa,GAAG,kBAAkB,GAAG,sBAAsB,GAAG,MAAM,YAAY,CAAC,IAAI,CAAC;AAC5F,IAAA,QACEA,IAAA,CAAC,IAAI,EAAA,EACH,EAAE,EAAE;AACF,YAAA,KAAK,EAAE,MAAM;AACb,YAAA,MAAM,EAAE,MAAM;AACd,YAAA,UAAU,EAAE,mDAAmD;AAC/D,YAAA,CAAC,EAAE,MAAM;AACT,YAAA,YAAY,EAAE,MAAM;AACpB,YAAA,cAAc,EAAE,eAAe;AAC/B,YAAA,UAAU,EAAE,QAAQ;AACpB,YAAA,MAAM,EAAE,MAAM;AACd,YAAA,MAAM,EAAE,SAAS;SAClB,EAAA,QAAA,EAAA,CAEDA,IAAA,CAAC,IAAI,EAAA,EAAC,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,EAAA,QAAA,EAAA,CAC/EC,IAAC,IAAI,EAAA,EAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,YAAY,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAA,QAAA,EACxFA,GAAA,CAAC,GAAG,IAAC,KAAK,EAAC,IAAI,EAAA,CAAG,EAAA,CACb,EACPD,IAAA,CAAC,IAAI,IAAC,EAAE,EAAE,EAAE,aAAa,EAAE,QAAQ,EAAE,EAAA,QAAA,EAAA,CACnCA,KAAC,IAAI,EAAA,EACH,EAAE,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,oBAGxGC,GAAA,CAAC,IAAI,EAAA,EACH,EAAE,EAAE;AACF,4CAAA,QAAQ,EAAE,MAAM;AAChB,4CAAA,UAAU,EAAE,KAAK;AACjB,4CAAA,UAAU,EAAE,KAAK;AACjB,4CAAA,KAAK,EAAE,SAAS;AAChB,4CAAA,OAAO,EAAE,SAAS;AAClB,4CAAA,UAAU,EAAE,0BAA0B;AACtC,4CAAA,YAAY,EAAE,KAAK;AACnB,4CAAA,UAAU,EAAE,KAAK;AACjB,4CAAA,WAAW,EAAE,KAAK;yCACnB,EAAA,QAAA,EAAA,KAAA,EAAA,CAGI,CAAA,EAAA,CACF,EACPA,GAAA,CAAC,IAAI,IAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,EAAA,QAAA,EAAA,6CAAA,EAAA,CAE9E,CAAA,EAAA,CACF,IACF,EACPA,GAAA,CAAC,IAAI,EAAA,EAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAA,QAAA,EAC7BA,IAAC,MAAM,EAAA,EACL,OAAO,EAAE,aAAa,EACtB,EAAE,EAAE;AACF,wBAAA,UAAU,EAAE,MAAM;AAClB,wBAAA,KAAK,EAAE,eAAe;AACtB,wBAAA,MAAM,EAAE,MAAM;AACd,wBAAA,MAAM,EAAE,MAAM;AACd,wBAAA,KAAK,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC;AAC7D,wBAAA,QAAQ,EAAE,MAAM;AAChB,wBAAA,UAAU,EAAE,KAAK;AACjB,wBAAA,SAAS,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE;AAC7B,qBAAA,EAAA,QAAA,EAAA,SAAA,EAAA,CAGM,EAAA,CACJ,EACN,CAAC,kBAAkB;;AAElB,YAAAA,GAAA,CAAC,YAAY,EAAA,EAAC,IAAI,EAAE,SAAS,EAAE,YAAY,EAAE,YAAY,EAAA,CAAI,CAC9D,CAAA,EAAA,CACI;AAEX;;;;"}
|
|
@@ -47,20 +47,6 @@ const APTOS_ZAP_TOKENS_TESTNET = [
|
|
|
47
47
|
},
|
|
48
48
|
];
|
|
49
49
|
const APTOS_ZAP_TOKENS = IS_APTOS_MAINNET ? APTOS_ZAP_TOKENS_MAINNET : APTOS_ZAP_TOKENS_TESTNET;
|
|
50
|
-
// APT entry used only by findAptosZapToken for zap quote resolution.
|
|
51
|
-
// Not in APTOS_ZAP_TOKENS to avoid duplicate in the selector (NATIVE covers it).
|
|
52
|
-
const APT_TOKEN = { symbol: 'APT', name: 'Aptos Coin', faAddress: '0xa', decimals: 8 };
|
|
53
|
-
/**
|
|
54
|
-
* Find a zap token by its FA address. Includes APT even though it's not in the
|
|
55
|
-
* selector list (NATIVE resolves to APT for quote purposes).
|
|
56
|
-
*/
|
|
57
|
-
const findAptosZapToken = (faAddress) => {
|
|
58
|
-
if (!faAddress)
|
|
59
|
-
return undefined;
|
|
60
|
-
if (faAddress.toLowerCase() === '0xa')
|
|
61
|
-
return APT_TOKEN;
|
|
62
|
-
return APTOS_ZAP_TOKENS.find((t) => t.faAddress.toLowerCase() === faAddress.toLowerCase());
|
|
63
|
-
};
|
|
64
50
|
|
|
65
|
-
export { APTOS_ZAP_TOKENS
|
|
51
|
+
export { APTOS_ZAP_TOKENS };
|
|
66
52
|
//# sourceMappingURL=aptosZapTokens.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"aptosZapTokens.js","sources":["../../../src/config/constants/aptosZapTokens.ts"],"sourcesContent":["// =============================================================================\n// Aptos zap tokens — static list of tokens available for zap on Aptos\n// =============================================================================\n//\n// Equivalent to zapInputTokens[ChainId.SOL] from @ape.swap/apeswap-lists.\n// Until that package supports Aptos, we maintain this local list.\n//\n// Token addresses are FA (Fungible Asset) addresses from Panora's verified\n// token list. Only \"Native, Verified\" tokens are included for safety.\n//\n// TODO(aptos): Move to @ape.swap/apeswap-lists when it supports Aptos.\n\nimport { ChainId } from '@ape.swap/apeswap-lists'\nimport { IS_APTOS_MAINNET } from '../../constants/aptosConstants'\n\nexport interface AptosZapToken {\n symbol: string\n name: string\n faAddress: string\n decimals: number\n logoUrl?: string\n}\n\nconst APTOS_KEY = ChainId.APTOS\n\n// APT is NOT included here — it is covered by the 'NATIVE' entry that\n// useSortedZapList injects automatically (via WNATIVE[ChainId.APTOS]).\n// Including it would cause a duplicate in the token selector.\nconst APTOS_ZAP_TOKENS_MAINNET: AptosZapToken[] = [\n {\n symbol: 'USDC',\n name: 'USD Coin',\n faAddress: '0xbae207659db88bea0cbead6da0ed00aac12edcdda169e591cd41c94180b46f3b',\n decimals: 6,\n },\n {\n symbol: 'USDt',\n name: 'Tether USD',\n faAddress: '0x357b0b74bc833e95a115ad22604854d6b0fca151cecd94111770e5d6ffc9dc2b',\n decimals: 6,\n },\n]\n\nconst APTOS_ZAP_TOKENS_TESTNET: AptosZapToken[] = [\n {\n symbol: 'USDC',\n name: 'USDC',\n faAddress: '0x69091fbab5f7d635ee7ac5098cf0c1efbe31d68fec0f2cd565e8d168daf52832',\n decimals: 6,\n },\n {\n symbol: 'USDt',\n name: 'Tether USD',\n // TODO(aptos): Replace with the correct testnet USDt FA address once identified.\n // Using mainnet address as placeholder — balance will show 0 on testnet.\n faAddress: '0x357b0b74bc833e95a115ad22604854d6b0fca151cecd94111770e5d6ffc9dc2b',\n decimals: 6,\n },\n]\n\nexport const APTOS_ZAP_TOKENS: AptosZapToken[] = IS_APTOS_MAINNET ? APTOS_ZAP_TOKENS_MAINNET : APTOS_ZAP_TOKENS_TESTNET\n\nexport const getAptosZapTokens = (): AptosZapToken[] => APTOS_ZAP_TOKENS\n\n// APT entry used only by findAptosZapToken for zap quote resolution.\n// Not in APTOS_ZAP_TOKENS to avoid duplicate in the selector (NATIVE covers it).\nconst APT_TOKEN: AptosZapToken = { symbol: 'APT', name: 'Aptos Coin', faAddress: '0xa', decimals: 8 }\n\n/**\n * Find a zap token by its FA address. Includes APT even though it's not in the\n * selector list (NATIVE resolves to APT for quote purposes).\n */\nexport const findAptosZapToken = (faAddress: string | undefined): AptosZapToken | undefined => {\n if (!faAddress) return undefined\n if (faAddress.toLowerCase() === '0xa') return APT_TOKEN\n return APTOS_ZAP_TOKENS.find((t) => t.faAddress.toLowerCase() === faAddress.toLowerCase())\n}\n\n/**\n * Check if a given FA address matches the bond's principal token.\n * Used to determine if zap is needed (input !== principal → zap).\n */\nexport const isAptosPrincipalToken = (\n faAddress: string | undefined,\n bond: { lpToken?: { address?: Record<number, string> } },\n): boolean => {\n if (!faAddress || !bond?.lpToken?.address?.[APTOS_KEY]) return false\n return faAddress.toLowerCase() === bond.lpToken.address[APTOS_KEY]!.toLowerCase()\n}\n"],"names":[],"mappings":";;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAakB,OAAO,CAAC;AAE1B;AACA;AACA;AACA,MAAM,wBAAwB,GAAoB;AAChD,IAAA;AACE,QAAA,MAAM,EAAE,MAAM;AACd,QAAA,IAAI,EAAE,UAAU;AAChB,QAAA,SAAS,EAAE,oEAAoE;AAC/E,QAAA,QAAQ,EAAE,CAAC;AACZ,KAAA;AACD,IAAA;AACE,QAAA,MAAM,EAAE,MAAM;AACd,QAAA,IAAI,EAAE,YAAY;AAClB,QAAA,SAAS,EAAE,oEAAoE;AAC/E,QAAA,QAAQ,EAAE,CAAC;AACZ,KAAA;CACF;AAED,MAAM,wBAAwB,GAAoB;AAChD,IAAA;AACE,QAAA,MAAM,EAAE,MAAM;AACd,QAAA,IAAI,EAAE,MAAM;AACZ,QAAA,SAAS,EAAE,oEAAoE;AAC/E,QAAA,QAAQ,EAAE,CAAC;AACZ,KAAA;AACD,IAAA;AACE,QAAA,MAAM,EAAE,MAAM;AACd,QAAA,IAAI,EAAE,YAAY;;;AAGlB,QAAA,SAAS,EAAE,oEAAoE;AAC/E,QAAA,QAAQ,EAAE,CAAC;AACZ,KAAA;CACF;AAEM,MAAM,gBAAgB,GAAoB,gBAAgB,GAAG,wBAAwB,GAAG
|
|
1
|
+
{"version":3,"file":"aptosZapTokens.js","sources":["../../../src/config/constants/aptosZapTokens.ts"],"sourcesContent":["// =============================================================================\n// Aptos zap tokens — static list of tokens available for zap on Aptos\n// =============================================================================\n//\n// Equivalent to zapInputTokens[ChainId.SOL] from @ape.swap/apeswap-lists.\n// Until that package supports Aptos, we maintain this local list.\n//\n// Token addresses are FA (Fungible Asset) addresses from Panora's verified\n// token list. Only \"Native, Verified\" tokens are included for safety.\n//\n// TODO(aptos): Move to @ape.swap/apeswap-lists when it supports Aptos.\n\nimport { ChainId } from '@ape.swap/apeswap-lists'\nimport { IS_APTOS_MAINNET } from '../../constants/aptosConstants'\n\nexport interface AptosZapToken {\n symbol: string\n name: string\n faAddress: string\n decimals: number\n logoUrl?: string\n}\n\nconst APTOS_KEY = ChainId.APTOS\n\n// APT is NOT included here — it is covered by the 'NATIVE' entry that\n// useSortedZapList injects automatically (via WNATIVE[ChainId.APTOS]).\n// Including it would cause a duplicate in the token selector.\nconst APTOS_ZAP_TOKENS_MAINNET: AptosZapToken[] = [\n {\n symbol: 'USDC',\n name: 'USD Coin',\n faAddress: '0xbae207659db88bea0cbead6da0ed00aac12edcdda169e591cd41c94180b46f3b',\n decimals: 6,\n },\n {\n symbol: 'USDt',\n name: 'Tether USD',\n faAddress: '0x357b0b74bc833e95a115ad22604854d6b0fca151cecd94111770e5d6ffc9dc2b',\n decimals: 6,\n },\n]\n\nconst APTOS_ZAP_TOKENS_TESTNET: AptosZapToken[] = [\n {\n symbol: 'USDC',\n name: 'USDC',\n faAddress: '0x69091fbab5f7d635ee7ac5098cf0c1efbe31d68fec0f2cd565e8d168daf52832',\n decimals: 6,\n },\n {\n symbol: 'USDt',\n name: 'Tether USD',\n // TODO(aptos): Replace with the correct testnet USDt FA address once identified.\n // Using mainnet address as placeholder — balance will show 0 on testnet.\n faAddress: '0x357b0b74bc833e95a115ad22604854d6b0fca151cecd94111770e5d6ffc9dc2b',\n decimals: 6,\n },\n]\n\nexport const APTOS_ZAP_TOKENS: AptosZapToken[] = IS_APTOS_MAINNET ? APTOS_ZAP_TOKENS_MAINNET : APTOS_ZAP_TOKENS_TESTNET\n\nexport const getAptosZapTokens = (): AptosZapToken[] => APTOS_ZAP_TOKENS\n\n// APT entry used only by findAptosZapToken for zap quote resolution.\n// Not in APTOS_ZAP_TOKENS to avoid duplicate in the selector (NATIVE covers it).\nconst APT_TOKEN: AptosZapToken = { symbol: 'APT', name: 'Aptos Coin', faAddress: '0xa', decimals: 8 }\n\n/**\n * Find a zap token by its FA address. Includes APT even though it's not in the\n * selector list (NATIVE resolves to APT for quote purposes).\n */\nexport const findAptosZapToken = (faAddress: string | undefined): AptosZapToken | undefined => {\n if (!faAddress) return undefined\n if (faAddress.toLowerCase() === '0xa') return APT_TOKEN\n return APTOS_ZAP_TOKENS.find((t) => t.faAddress.toLowerCase() === faAddress.toLowerCase())\n}\n\n/**\n * Check if a given FA address matches the bond's principal token.\n * Used to determine if zap is needed (input !== principal → zap).\n */\nexport const isAptosPrincipalToken = (\n faAddress: string | undefined,\n bond: { lpToken?: { address?: Record<number, string> } },\n): boolean => {\n if (!faAddress || !bond?.lpToken?.address?.[APTOS_KEY]) return false\n return faAddress.toLowerCase() === bond.lpToken.address[APTOS_KEY]!.toLowerCase()\n}\n"],"names":[],"mappings":";;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAakB,OAAO,CAAC;AAE1B;AACA;AACA;AACA,MAAM,wBAAwB,GAAoB;AAChD,IAAA;AACE,QAAA,MAAM,EAAE,MAAM;AACd,QAAA,IAAI,EAAE,UAAU;AAChB,QAAA,SAAS,EAAE,oEAAoE;AAC/E,QAAA,QAAQ,EAAE,CAAC;AACZ,KAAA;AACD,IAAA;AACE,QAAA,MAAM,EAAE,MAAM;AACd,QAAA,IAAI,EAAE,YAAY;AAClB,QAAA,SAAS,EAAE,oEAAoE;AAC/E,QAAA,QAAQ,EAAE,CAAC;AACZ,KAAA;CACF;AAED,MAAM,wBAAwB,GAAoB;AAChD,IAAA;AACE,QAAA,MAAM,EAAE,MAAM;AACd,QAAA,IAAI,EAAE,MAAM;AACZ,QAAA,SAAS,EAAE,oEAAoE;AAC/E,QAAA,QAAQ,EAAE,CAAC;AACZ,KAAA;AACD,IAAA;AACE,QAAA,MAAM,EAAE,MAAM;AACd,QAAA,IAAI,EAAE,YAAY;;;AAGlB,QAAA,SAAS,EAAE,oEAAoE;AAC/E,QAAA,QAAQ,EAAE,CAAC;AACZ,KAAA;CACF;AAEM,MAAM,gBAAgB,GAAoB,gBAAgB,GAAG,wBAAwB,GAAG;;;;"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export type Ecosystem = 'evm' | 'sol' | 'sui' | 'aptos';
|
|
2
|
+
export declare const setWalletConnectorOpener: (ecosystem: Ecosystem, fn?: () => void) => void;
|
|
3
|
+
export declare const openEvmWalletConnector: () => void;
|
|
4
|
+
export declare const openSolWalletConnector: () => void;
|
|
5
|
+
export declare const openSuiWalletConnector: () => void;
|
|
6
|
+
export declare const openAptosWalletConnector: () => void;
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
// Module-level singleton for wallet-connect-modal openers injected by the SDK consumer
|
|
2
|
+
// via `SDKPropsDTO.openWalletConnector`. Each ecosystem's "Connect" UI calls the matching
|
|
3
|
+
// `open<Ecosystem>WalletConnector` function instead of reaching into ecosystem-specific
|
|
4
|
+
// wallet libraries (RainbowKit, Solana wallet-adapter, Aptos wallet-adapter, dapp-kit)
|
|
5
|
+
// directly, so those libraries can eventually be dropped from the SDK.
|
|
6
|
+
const openers = {};
|
|
7
|
+
const setWalletConnectorOpener = (ecosystem, fn) => {
|
|
8
|
+
openers[ecosystem] = fn;
|
|
9
|
+
};
|
|
10
|
+
const callOpener = (ecosystem) => {
|
|
11
|
+
const fn = openers[ecosystem];
|
|
12
|
+
if (!fn) {
|
|
13
|
+
console.error(`[ApeBond SDK] openWalletConnector.${ecosystem} was called but no opener has been registered via SDKPropsDTO.openWalletConnector.${ecosystem}`);
|
|
14
|
+
}
|
|
15
|
+
else {
|
|
16
|
+
fn();
|
|
17
|
+
}
|
|
18
|
+
};
|
|
19
|
+
const openEvmWalletConnector = () => callOpener('evm');
|
|
20
|
+
const openSolWalletConnector = () => callOpener('sol');
|
|
21
|
+
const openSuiWalletConnector = () => callOpener('sui');
|
|
22
|
+
const openAptosWalletConnector = () => callOpener('aptos');
|
|
23
|
+
|
|
24
|
+
export { openAptosWalletConnector, openEvmWalletConnector, openSolWalletConnector, openSuiWalletConnector, setWalletConnectorOpener };
|
|
25
|
+
//# sourceMappingURL=walletConnectors.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"walletConnectors.js","sources":["../../../src/config/constants/walletConnectors.ts"],"sourcesContent":["// Module-level singleton for wallet-connect-modal openers injected by the SDK consumer\n// via `SDKPropsDTO.openWalletConnector`. Each ecosystem's \"Connect\" UI calls the matching\n// `open<Ecosystem>WalletConnector` function instead of reaching into ecosystem-specific\n// wallet libraries (RainbowKit, Solana wallet-adapter, Aptos wallet-adapter, dapp-kit)\n// directly, so those libraries can eventually be dropped from the SDK.\n\nexport type Ecosystem = 'evm' | 'sol' | 'sui' | 'aptos'\n\nconst openers: Partial<Record<Ecosystem, () => void>> = {}\n\nexport const setWalletConnectorOpener = (ecosystem: Ecosystem, fn?: () => void) => {\n openers[ecosystem] = fn\n}\n\nconst callOpener = (ecosystem: Ecosystem) => {\n const fn = openers[ecosystem]\n if (!fn) {\n console.error(\n `[ApeBond SDK] openWalletConnector.${ecosystem} was called but no opener has been registered via SDKPropsDTO.openWalletConnector.${ecosystem}`,\n )\n } else {\n fn()\n }\n}\n\nexport const openEvmWalletConnector = () => callOpener('evm')\nexport const openSolWalletConnector = () => callOpener('sol')\nexport const openSuiWalletConnector = () => callOpener('sui')\nexport const openAptosWalletConnector = () => callOpener('aptos')\n"],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AAIA,MAAM,OAAO,GAA2C,EAAE;MAE7C,wBAAwB,GAAG,CAAC,SAAoB,EAAE,EAAe,KAAI;AAChF,IAAA,OAAO,CAAC,SAAS,CAAC,GAAG,EAAE;AACzB;AAEA,MAAM,UAAU,GAAG,CAAC,SAAoB,KAAI;AAC1C,IAAA,MAAM,EAAE,GAAG,OAAO,CAAC,SAAS,CAAC;IAC7B,IAAI,CAAC,EAAE,EAAE;QACP,OAAO,CAAC,KAAK,CACX,CAAA,kCAAA,EAAqC,SAAS,CAAA,kFAAA,EAAqF,SAAS,CAAA,CAAE,CAC/I;IACH;SAAO;AACL,QAAA,EAAE,EAAE;IACN;AACF,CAAC;AAEM,MAAM,sBAAsB,GAAG,MAAM,UAAU,CAAC,KAAK;AACrD,MAAM,sBAAsB,GAAG,MAAM,UAAU,CAAC,KAAK;AACrD,MAAM,sBAAsB,GAAG,MAAM,UAAU,CAAC,KAAK;AACrD,MAAM,wBAAwB,GAAG,MAAM,UAAU,CAAC,OAAO;;;;"}
|
|
@@ -50,10 +50,6 @@ const getRandomAptosApiKey = () => {
|
|
|
50
50
|
return undefined;
|
|
51
51
|
return pool[Math.floor(Math.random() * pool.length)];
|
|
52
52
|
};
|
|
53
|
-
// Typed narrowly so the Aptos ts-sdk `InputEntryFunctionData.function` field
|
|
54
|
-
// (which expects `${string}::${string}::${string}`) accepts them directly.
|
|
55
|
-
// Entry functions (write path)
|
|
56
|
-
const APTOS_DEPOSIT_FUNCTION = `${APTOS_CONTRACT_ADDRESS}::bond::deposit`;
|
|
57
53
|
const APTOS_CLAIM_FUNCTION = `${APTOS_CONTRACT_ADDRESS}::bond::claim`;
|
|
58
54
|
// View functions (read path, PLAN_001 Etapa 5b).
|
|
59
55
|
// Names verified against apebond-move-playground routes:
|
|
@@ -74,5 +70,5 @@ const APTOS_VIEW_NFT_ADDRESS = `${APTOS_CONTRACT_ADDRESS}::bond_nft::nft_address
|
|
|
74
70
|
// ---------------------------------------------------------------------------
|
|
75
71
|
const APTOS_PLACEHOLDER_BILL_IMAGE = 'https://www.ape.bond/images/bills/hidden-bill.jpg';
|
|
76
72
|
|
|
77
|
-
export { APTOS_API_KEYS_MAINNET, APTOS_API_KEYS_TESTNET, APTOS_CLAIM_FUNCTION, APTOS_CONTRACT_ADDRESS,
|
|
73
|
+
export { APTOS_API_KEYS_MAINNET, APTOS_API_KEYS_TESTNET, APTOS_CLAIM_FUNCTION, APTOS_CONTRACT_ADDRESS, APTOS_FULLNODE_URL, APTOS_NETWORK, APTOS_PLACEHOLDER_BILL_IMAGE, APTOS_VIEW_BILL_INFO, APTOS_VIEW_BOND_MARKET_BY_ID, APTOS_VIEW_MARKET_INFO, APTOS_VIEW_NFT_ADDRESS, APTOS_VIEW_USER_BILLS, APTOS_VIEW_VESTING_PROGRESS, IS_APTOS_MAINNET, getRandomAptosApiKey };
|
|
78
74
|
//# sourceMappingURL=aptosConstants.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"aptosConstants.js","sources":["../../src/constants/aptosConstants.ts"],"sourcesContent":["import { Network } from '@aptos-labs/ts-sdk'\n\n// ---------------------------------------------------------------------------\n// Env gating — use NEXT_PUBLIC_APTOS_NETWORK to control mainnet vs testnet.\n// Defaults to testnet until mainnet contracts are deployed and verified.\n// Set NEXT_PUBLIC_APTOS_NETWORK=mainnet to switch to mainnet.\n// ---------------------------------------------------------------------------\nexport const IS_APTOS_MAINNET = typeof process !== 'undefined' && process.env?.NEXT_PUBLIC_APTOS_NETWORK === 'mainnet'\n\nexport const APTOS_NETWORK: Network = IS_APTOS_MAINNET ? Network.MAINNET : Network.TESTNET\n\n// ---------------------------------------------------------------------------\n// Contract address (single Move package containing bond, factory, treasury)\n// ---------------------------------------------------------------------------\n// Testnet address is the current apebond-move deployment (see CLAUDE.md).\n// Mainnet is a placeholder until PLAN_002 or a future mainnet deploy lands.\n// TODO(aptos): Replace APTOS_CONTRACT_ADDRESS_MAINNET when mainnet is deployed.\nconst APTOS_CONTRACT_ADDRESS_TESTNET = '0xa1cec270b22272c801092d031ba609091f2164988a5b96cde8d9bdac0de4287b'\nconst APTOS_CONTRACT_ADDRESS_MAINNET = '0x0000000000000000000000000000000000000000000000000000000000000000'\n\nexport const APTOS_CONTRACT_ADDRESS = IS_APTOS_MAINNET ? APTOS_CONTRACT_ADDRESS_MAINNET : APTOS_CONTRACT_ADDRESS_TESTNET\n\n// Warn loudly if we ever end up in production with the placeholder address —\n// that would silently break every Aptos interaction.\nif (\n typeof window !== 'undefined' &&\n IS_APTOS_MAINNET &&\n APTOS_CONTRACT_ADDRESS === APTOS_CONTRACT_ADDRESS_MAINNET &&\n APTOS_CONTRACT_ADDRESS_MAINNET.startsWith('0x0000')\n) {\n console.warn(\n '[ApeBond SDK] APTOS_CONTRACT_ADDRESS is still the placeholder in production. ' +\n 'Replace APTOS_CONTRACT_ADDRESS_MAINNET in src/constants/aptosConstants.ts before shipping.',\n )\n}\n\n// ---------------------------------------------------------------------------\n// Network endpoints (fullnode + indexer + explorer)\n// ---------------------------------------------------------------------------\n// Note: Aptos Labs authenticates via the `Authorization: Bearer <key>` header,\n// NOT via query parameters (unlike Helius). We therefore keep the URLs clean\n// and inject the key through `clientConfig.HEADERS` (see aptosHelpers.ts).\nexport const APTOS_FULLNODE_URL = IS_APTOS_MAINNET\n ? 'https://api.mainnet.aptoslabs.com/v1'\n : 'https://api.testnet.aptoslabs.com/v1'\n\nexport const APTOS_INDEXER_URL = IS_APTOS_MAINNET\n ? 'https://api.mainnet.aptoslabs.com/v1/graphql'\n : 'https://api.testnet.aptoslabs.com/v1/graphql'\n\nexport const APTOS_EXPLORER_URL = 'https://explorer.aptoslabs.com'\n\n// ---------------------------------------------------------------------------\n// API key rotation (same pattern as HELIUS_SOL_RPC_ENDPOINTS in networks.ts)\n// ---------------------------------------------------------------------------\n// TODO(APTOS): the testnet key below is a temporary dev key owned by Tomás.\n// Rotate it and add more keys for load balancing before the public testnet\n// launch.\nexport const APTOS_API_KEYS_TESTNET: string[] = ['aptoslabs_WmE77ykde6q_5vYSpFBrmsexdQF71Rp44az5BQNt51DeV']\n\n// TODO(APTOS): mainnet keys are pending — they will be generated once a\n// production deployment exists.\nexport const APTOS_API_KEYS_MAINNET: string[] = []\n\nexport const getRandomAptosApiKey = (): string | undefined => {\n const pool = IS_APTOS_MAINNET ? APTOS_API_KEYS_MAINNET : APTOS_API_KEYS_TESTNET\n if (pool.length === 0) return undefined\n return pool[Math.floor(Math.random() * pool.length)]\n}\n\n// ---------------------------------------------------------------------------\n// Module / entry function paths (stable across networks)\n// ---------------------------------------------------------------------------\n// Built directly from `APTOS_CONTRACT_ADDRESS` so TypeScript infers each\n// entry as `${string}::${string}::${string}`, which is exactly what the\n// Aptos ts-sdk's `InputEntryFunctionData.function` field expects. Going via\n// an intermediate `APTOS_BOND_MODULE` constant makes TS collapse the inner\n// template literal and lose the third segment — avoid that.\nexport const APTOS_BOND_MODULE = `${APTOS_CONTRACT_ADDRESS}::bond`\n// Typed narrowly so the Aptos ts-sdk `InputEntryFunctionData.function` field\n// (which expects `${string}::${string}::${string}`) accepts them directly.\n\n// Entry functions (write path)\nexport const APTOS_DEPOSIT_FUNCTION: `${string}::${string}::${string}` = `${APTOS_CONTRACT_ADDRESS}::bond::deposit`\nexport const APTOS_CLAIM_FUNCTION: `${string}::${string}::${string}` = `${APTOS_CONTRACT_ADDRESS}::bond::claim`\n\n// View functions (read path, PLAN_001 Etapa 5b).\n// Names verified against apebond-move-playground routes:\n// - app/bond-market-info → bond::market_info\n// - app/bond-bill-info → bond::bill_info\n// - app/bond-nft-user-bills → bond_nft::user_bills\n// - app/bond-nft-vesting-progress → bond_nft::vesting_progress\n// - app/bond-nft-bond-market-by-id → bond_nft::bond_market_by_id\n// - app/bond-nft-nft-address → bond_nft::nft_address\nexport const APTOS_VIEW_MARKET_INFO: `${string}::${string}::${string}` = `${APTOS_CONTRACT_ADDRESS}::bond::market_info`\nexport const APTOS_VIEW_BILL_INFO: `${string}::${string}::${string}` = `${APTOS_CONTRACT_ADDRESS}::bond::bill_info`\nexport const APTOS_VIEW_USER_BILLS: `${string}::${string}::${string}` = `${APTOS_CONTRACT_ADDRESS}::bond_nft::user_bills`\nexport const APTOS_VIEW_VESTING_PROGRESS: `${string}::${string}::${string}` = `${APTOS_CONTRACT_ADDRESS}::bond::vesting_progress`\nexport const APTOS_VIEW_BOND_MARKET_BY_ID: `${string}::${string}::${string}` = `${APTOS_CONTRACT_ADDRESS}::bond_nft::bond_market_by_id`\nexport const APTOS_VIEW_NFT_ADDRESS: `${string}::${string}::${string}` = `${APTOS_CONTRACT_ADDRESS}::bond_nft::nft_address`\n\n// ---------------------------------------------------------------------------\n// Placeholder bill image (shown until backend enrichment is available)\n// ---------------------------------------------------------------------------\nexport const APTOS_PLACEHOLDER_BILL_IMAGE = 'https://www.ape.bond/images/bills/hidden-bill.jpg'\n"],"names":[],"mappings":";;AAEA;AACA;AACA;AACA;AACA;AACO,MAAM,gBAAgB,GAAG,OAAO,OAAO,KAAK,WAAW,IAAI,OAAO,CAAC,GAAG,EAAE,yBAAyB,KAAK;AAEtG,MAAM,aAAa,GAAY,gBAAgB,GAAG,OAAO,CAAC,OAAO,GAAG,OAAO,CAAC;AAEnF;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,8BAA8B,GAAG,oEAAoE;AAC3G,MAAM,8BAA8B,GAAG,oEAAoE;AAEpG,MAAM,sBAAsB,GAAG,gBAAgB,GAAG,8BAA8B,GAAG;AAE1F;AACA;AACA,IACE,OAAO,MAAM,KAAK,WAAW;IAC7B,gBAAgB;AAChB,IAAA,sBAAsB,KAAK,8BAA8B;AACzD,IAAA,8BAA8B,CAAC,UAAU,CAAC,QAAQ,CAAC,EACnD;IACA,OAAO,CAAC,IAAI,CACV,+EAA+E;AAC7E,QAAA,4FAA4F,CAC/F;AACH;AAEA;AACA;AACA;AACA;AACA;AACA;AACO,MAAM,kBAAkB,GAAG;AAChC,MAAE;MACA;AAQJ;AACA;AACA;AACA;AACA;AACA;AACO,MAAM,sBAAsB,GAAa,CAAC,yDAAyD;AAE1G;AACA;AACO,MAAM,sBAAsB,GAAa;AAEzC,MAAM,oBAAoB,GAAG,MAAyB;IAC3D,MAAM,IAAI,GAAG,gBAAgB,GAAG,sBAAsB,GAAG,sBAAsB;AAC/E,IAAA,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;AAAE,QAAA,OAAO,SAAS;AACvC,IAAA,OAAO,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC;AACtD;
|
|
1
|
+
{"version":3,"file":"aptosConstants.js","sources":["../../src/constants/aptosConstants.ts"],"sourcesContent":["import { Network } from '@aptos-labs/ts-sdk'\n\n// ---------------------------------------------------------------------------\n// Env gating — use NEXT_PUBLIC_APTOS_NETWORK to control mainnet vs testnet.\n// Defaults to testnet until mainnet contracts are deployed and verified.\n// Set NEXT_PUBLIC_APTOS_NETWORK=mainnet to switch to mainnet.\n// ---------------------------------------------------------------------------\nexport const IS_APTOS_MAINNET = typeof process !== 'undefined' && process.env?.NEXT_PUBLIC_APTOS_NETWORK === 'mainnet'\n\nexport const APTOS_NETWORK: Network = IS_APTOS_MAINNET ? Network.MAINNET : Network.TESTNET\n\n// ---------------------------------------------------------------------------\n// Contract address (single Move package containing bond, factory, treasury)\n// ---------------------------------------------------------------------------\n// Testnet address is the current apebond-move deployment (see CLAUDE.md).\n// Mainnet is a placeholder until PLAN_002 or a future mainnet deploy lands.\n// TODO(aptos): Replace APTOS_CONTRACT_ADDRESS_MAINNET when mainnet is deployed.\nconst APTOS_CONTRACT_ADDRESS_TESTNET = '0xa1cec270b22272c801092d031ba609091f2164988a5b96cde8d9bdac0de4287b'\nconst APTOS_CONTRACT_ADDRESS_MAINNET = '0x0000000000000000000000000000000000000000000000000000000000000000'\n\nexport const APTOS_CONTRACT_ADDRESS = IS_APTOS_MAINNET ? APTOS_CONTRACT_ADDRESS_MAINNET : APTOS_CONTRACT_ADDRESS_TESTNET\n\n// Warn loudly if we ever end up in production with the placeholder address —\n// that would silently break every Aptos interaction.\nif (\n typeof window !== 'undefined' &&\n IS_APTOS_MAINNET &&\n APTOS_CONTRACT_ADDRESS === APTOS_CONTRACT_ADDRESS_MAINNET &&\n APTOS_CONTRACT_ADDRESS_MAINNET.startsWith('0x0000')\n) {\n console.warn(\n '[ApeBond SDK] APTOS_CONTRACT_ADDRESS is still the placeholder in production. ' +\n 'Replace APTOS_CONTRACT_ADDRESS_MAINNET in src/constants/aptosConstants.ts before shipping.',\n )\n}\n\n// ---------------------------------------------------------------------------\n// Network endpoints (fullnode + indexer + explorer)\n// ---------------------------------------------------------------------------\n// Note: Aptos Labs authenticates via the `Authorization: Bearer <key>` header,\n// NOT via query parameters (unlike Helius). We therefore keep the URLs clean\n// and inject the key through `clientConfig.HEADERS` (see aptosHelpers.ts).\nexport const APTOS_FULLNODE_URL = IS_APTOS_MAINNET\n ? 'https://api.mainnet.aptoslabs.com/v1'\n : 'https://api.testnet.aptoslabs.com/v1'\n\nexport const APTOS_INDEXER_URL = IS_APTOS_MAINNET\n ? 'https://api.mainnet.aptoslabs.com/v1/graphql'\n : 'https://api.testnet.aptoslabs.com/v1/graphql'\n\nexport const APTOS_EXPLORER_URL = 'https://explorer.aptoslabs.com'\n\n// ---------------------------------------------------------------------------\n// API key rotation (same pattern as HELIUS_SOL_RPC_ENDPOINTS in networks.ts)\n// ---------------------------------------------------------------------------\n// TODO(APTOS): the testnet key below is a temporary dev key owned by Tomás.\n// Rotate it and add more keys for load balancing before the public testnet\n// launch.\nexport const APTOS_API_KEYS_TESTNET: string[] = ['aptoslabs_WmE77ykde6q_5vYSpFBrmsexdQF71Rp44az5BQNt51DeV']\n\n// TODO(APTOS): mainnet keys are pending — they will be generated once a\n// production deployment exists.\nexport const APTOS_API_KEYS_MAINNET: string[] = []\n\nexport const getRandomAptosApiKey = (): string | undefined => {\n const pool = IS_APTOS_MAINNET ? APTOS_API_KEYS_MAINNET : APTOS_API_KEYS_TESTNET\n if (pool.length === 0) return undefined\n return pool[Math.floor(Math.random() * pool.length)]\n}\n\n// ---------------------------------------------------------------------------\n// Module / entry function paths (stable across networks)\n// ---------------------------------------------------------------------------\n// Built directly from `APTOS_CONTRACT_ADDRESS` so TypeScript infers each\n// entry as `${string}::${string}::${string}`, which is exactly what the\n// Aptos ts-sdk's `InputEntryFunctionData.function` field expects. Going via\n// an intermediate `APTOS_BOND_MODULE` constant makes TS collapse the inner\n// template literal and lose the third segment — avoid that.\nexport const APTOS_BOND_MODULE = `${APTOS_CONTRACT_ADDRESS}::bond`\n// Typed narrowly so the Aptos ts-sdk `InputEntryFunctionData.function` field\n// (which expects `${string}::${string}::${string}`) accepts them directly.\n\n// Entry functions (write path)\nexport const APTOS_DEPOSIT_FUNCTION: `${string}::${string}::${string}` = `${APTOS_CONTRACT_ADDRESS}::bond::deposit`\nexport const APTOS_CLAIM_FUNCTION: `${string}::${string}::${string}` = `${APTOS_CONTRACT_ADDRESS}::bond::claim`\n\n// View functions (read path, PLAN_001 Etapa 5b).\n// Names verified against apebond-move-playground routes:\n// - app/bond-market-info → bond::market_info\n// - app/bond-bill-info → bond::bill_info\n// - app/bond-nft-user-bills → bond_nft::user_bills\n// - app/bond-nft-vesting-progress → bond_nft::vesting_progress\n// - app/bond-nft-bond-market-by-id → bond_nft::bond_market_by_id\n// - app/bond-nft-nft-address → bond_nft::nft_address\nexport const APTOS_VIEW_MARKET_INFO: `${string}::${string}::${string}` = `${APTOS_CONTRACT_ADDRESS}::bond::market_info`\nexport const APTOS_VIEW_BILL_INFO: `${string}::${string}::${string}` = `${APTOS_CONTRACT_ADDRESS}::bond::bill_info`\nexport const APTOS_VIEW_USER_BILLS: `${string}::${string}::${string}` = `${APTOS_CONTRACT_ADDRESS}::bond_nft::user_bills`\nexport const APTOS_VIEW_VESTING_PROGRESS: `${string}::${string}::${string}` = `${APTOS_CONTRACT_ADDRESS}::bond::vesting_progress`\nexport const APTOS_VIEW_BOND_MARKET_BY_ID: `${string}::${string}::${string}` = `${APTOS_CONTRACT_ADDRESS}::bond_nft::bond_market_by_id`\nexport const APTOS_VIEW_NFT_ADDRESS: `${string}::${string}::${string}` = `${APTOS_CONTRACT_ADDRESS}::bond_nft::nft_address`\n\n// ---------------------------------------------------------------------------\n// Placeholder bill image (shown until backend enrichment is available)\n// ---------------------------------------------------------------------------\nexport const APTOS_PLACEHOLDER_BILL_IMAGE = 'https://www.ape.bond/images/bills/hidden-bill.jpg'\n"],"names":[],"mappings":";;AAEA;AACA;AACA;AACA;AACA;AACO,MAAM,gBAAgB,GAAG,OAAO,OAAO,KAAK,WAAW,IAAI,OAAO,CAAC,GAAG,EAAE,yBAAyB,KAAK;AAEtG,MAAM,aAAa,GAAY,gBAAgB,GAAG,OAAO,CAAC,OAAO,GAAG,OAAO,CAAC;AAEnF;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,8BAA8B,GAAG,oEAAoE;AAC3G,MAAM,8BAA8B,GAAG,oEAAoE;AAEpG,MAAM,sBAAsB,GAAG,gBAAgB,GAAG,8BAA8B,GAAG;AAE1F;AACA;AACA,IACE,OAAO,MAAM,KAAK,WAAW;IAC7B,gBAAgB;AAChB,IAAA,sBAAsB,KAAK,8BAA8B;AACzD,IAAA,8BAA8B,CAAC,UAAU,CAAC,QAAQ,CAAC,EACnD;IACA,OAAO,CAAC,IAAI,CACV,+EAA+E;AAC7E,QAAA,4FAA4F,CAC/F;AACH;AAEA;AACA;AACA;AACA;AACA;AACA;AACO,MAAM,kBAAkB,GAAG;AAChC,MAAE;MACA;AAQJ;AACA;AACA;AACA;AACA;AACA;AACO,MAAM,sBAAsB,GAAa,CAAC,yDAAyD;AAE1G;AACA;AACO,MAAM,sBAAsB,GAAa;AAEzC,MAAM,oBAAoB,GAAG,MAAyB;IAC3D,MAAM,IAAI,GAAG,gBAAgB,GAAG,sBAAsB,GAAG,sBAAsB;AAC/E,IAAA,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;AAAE,QAAA,OAAO,SAAS;AACvC,IAAA,OAAO,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC;AACtD;AAgBO,MAAM,oBAAoB,GAAsC,CAAA,EAAG,sBAAsB;AAEhG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,MAAM,sBAAsB,GAAsC,CAAA,EAAG,sBAAsB;AAC3F,MAAM,oBAAoB,GAAsC,CAAA,EAAG,sBAAsB;AACzF,MAAM,qBAAqB,GAAsC,CAAA,EAAG,sBAAsB;AAC1F,MAAM,2BAA2B,GAAsC,CAAA,EAAG,sBAAsB;AAChG,MAAM,4BAA4B,GAAsC,CAAA,EAAG,sBAAsB;AACjG,MAAM,sBAAsB,GAAsC,CAAA,EAAG,sBAAsB;AAElG;AACA;AACA;AACO,MAAM,4BAA4B,GAAG;;;;"}
|
|
@@ -15,13 +15,11 @@ if (typeof window !== 'undefined' &&
|
|
|
15
15
|
console.warn('[ApeBond SDK] SUI_PACKAGE_ID is still the placeholder in production. ' +
|
|
16
16
|
'Replace SUI_PACKAGE_ID_MAINNET in src/constants/suiConstants.ts before shipping.');
|
|
17
17
|
}
|
|
18
|
-
// Entry functions (write path)
|
|
19
|
-
const SUI_DEPOSIT_FUNCTION = `${SUI_PACKAGE_ID}::bond::deposit`;
|
|
20
18
|
const SUI_CLAIM_FUNCTION = `${SUI_PACKAGE_ID}::bond::claim`;
|
|
21
19
|
// ---------------------------------------------------------------------------
|
|
22
20
|
// Placeholder bill image (shown until backend enrichment is available)
|
|
23
21
|
// ---------------------------------------------------------------------------
|
|
24
22
|
const SUI_PLACEHOLDER_BILL_IMAGE = 'https://www.ape.bond/images/bills/hidden-bill.jpg';
|
|
25
23
|
|
|
26
|
-
export { IS_SUI_MAINNET, SUI_CLAIM_FUNCTION,
|
|
24
|
+
export { IS_SUI_MAINNET, SUI_CLAIM_FUNCTION, SUI_PACKAGE_ID, SUI_PLACEHOLDER_BILL_IMAGE };
|
|
27
25
|
//# sourceMappingURL=suiConstants.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"suiConstants.js","sources":["../../src/constants/suiConstants.ts"],"sourcesContent":["// ---------------------------------------------------------------------------\n// Env gating — use NEXT_PUBLIC_SUI_NETWORK to control mainnet vs testnet.\n// Defaults to testnet until mainnet contracts are deployed and verified.\n// Set NEXT_PUBLIC_SUI_NETWORK=mainnet to switch to mainnet.\n// ---------------------------------------------------------------------------\nexport const IS_SUI_MAINNET = true\n\nexport const SUI_NETWORK: 'mainnet' | 'testnet' = IS_SUI_MAINNET ? 'mainnet' : 'testnet'\n\n// ---------------------------------------------------------------------------\n// Package ID (single Move package containing bond, factory, treasury modules)\n// ---------------------------------------------------------------------------\n// Testnet address is the current apebond-move-sui deployment.\n// MAINNET-TODO: Replace with your mainnet package ID after deploying contracts.\nconst SUI_PACKAGE_ID_TESTNET = '0x50c08fbf9c330f7658e1400f847f46b76165c8a68630e09a2d5ade0ceaa47264'\nconst SUI_PACKAGE_ID_MAINNET = '0x802ed2854f6523fc106644da079e0758ca759f63d9d577774b79c51b91f1a460'\n\nexport const SUI_PACKAGE_ID = IS_SUI_MAINNET ? SUI_PACKAGE_ID_MAINNET : SUI_PACKAGE_ID_TESTNET\n\n// Warn loudly if we ever end up in production with the placeholder address —\n// that would silently break every Sui interaction.\nif (\n typeof window !== 'undefined' &&\n IS_SUI_MAINNET &&\n SUI_PACKAGE_ID === SUI_PACKAGE_ID_MAINNET &&\n SUI_PACKAGE_ID_MAINNET.startsWith('0x0000')\n) {\n console.warn(\n '[ApeBond SDK] SUI_PACKAGE_ID is still the placeholder in production. ' +\n 'Replace SUI_PACKAGE_ID_MAINNET in src/constants/suiConstants.ts before shipping.',\n )\n}\n\n// ---------------------------------------------------------------------------\n// Module / entry function paths (stable across networks)\n// ---------------------------------------------------------------------------\n// Built directly from `SUI_PACKAGE_ID` so each path follows the\n// `package::module::function` convention used by the Sui Move VM.\nexport const SUI_BOND_MODULE = `${SUI_PACKAGE_ID}::bond`\n\n// Entry functions (write path)\nexport const SUI_DEPOSIT_FUNCTION = `${SUI_PACKAGE_ID}::bond::deposit`\nexport const SUI_CLAIM_FUNCTION = `${SUI_PACKAGE_ID}::bond::claim`\n\n// View / read functions\nexport const SUI_VIEW_MARKET_INFO = `${SUI_PACKAGE_ID}::bond::market_info`\nexport const SUI_VIEW_BILL_INFO = `${SUI_PACKAGE_ID}::bond::bill_info`\nexport const SUI_VIEW_VESTING_PROGRESS = `${SUI_PACKAGE_ID}::bond::vesting_progress`\nexport const SUI_VIEW_USER_BILLS = `${SUI_PACKAGE_ID}::bond_nft::user_bills`\n\n// ---------------------------------------------------------------------------\n// Placeholder bill image (shown until backend enrichment is available)\n// ---------------------------------------------------------------------------\nexport const SUI_PLACEHOLDER_BILL_IMAGE = 'https://www.ape.bond/images/bills/hidden-bill.jpg'\n"],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACO,MAAM,cAAc,GAAG;AAU9B,MAAM,sBAAsB,GAAG,oEAAoE;AAE5F,MAAM,cAAc,GAAoB,sBAAsB;AAErE;AACA;AACA,IACE,OAAO,MAAM,KAAK,WAAW;IAC7B,cAAc;AACd,IAAA,cAAc,KAAK,sBAAsB;AACzC,IAAA,sBAAsB,CAAC,UAAU,CAAC,QAAQ,CAAC,EAC3C;IACA,OAAO,CAAC,IAAI,CACV,uEAAuE;AACrE,QAAA,kFAAkF,CACrF;AACH;
|
|
1
|
+
{"version":3,"file":"suiConstants.js","sources":["../../src/constants/suiConstants.ts"],"sourcesContent":["// ---------------------------------------------------------------------------\n// Env gating — use NEXT_PUBLIC_SUI_NETWORK to control mainnet vs testnet.\n// Defaults to testnet until mainnet contracts are deployed and verified.\n// Set NEXT_PUBLIC_SUI_NETWORK=mainnet to switch to mainnet.\n// ---------------------------------------------------------------------------\nexport const IS_SUI_MAINNET = true\n\nexport const SUI_NETWORK: 'mainnet' | 'testnet' = IS_SUI_MAINNET ? 'mainnet' : 'testnet'\n\n// ---------------------------------------------------------------------------\n// Package ID (single Move package containing bond, factory, treasury modules)\n// ---------------------------------------------------------------------------\n// Testnet address is the current apebond-move-sui deployment.\n// MAINNET-TODO: Replace with your mainnet package ID after deploying contracts.\nconst SUI_PACKAGE_ID_TESTNET = '0x50c08fbf9c330f7658e1400f847f46b76165c8a68630e09a2d5ade0ceaa47264'\nconst SUI_PACKAGE_ID_MAINNET = '0x802ed2854f6523fc106644da079e0758ca759f63d9d577774b79c51b91f1a460'\n\nexport const SUI_PACKAGE_ID = IS_SUI_MAINNET ? SUI_PACKAGE_ID_MAINNET : SUI_PACKAGE_ID_TESTNET\n\n// Warn loudly if we ever end up in production with the placeholder address —\n// that would silently break every Sui interaction.\nif (\n typeof window !== 'undefined' &&\n IS_SUI_MAINNET &&\n SUI_PACKAGE_ID === SUI_PACKAGE_ID_MAINNET &&\n SUI_PACKAGE_ID_MAINNET.startsWith('0x0000')\n) {\n console.warn(\n '[ApeBond SDK] SUI_PACKAGE_ID is still the placeholder in production. ' +\n 'Replace SUI_PACKAGE_ID_MAINNET in src/constants/suiConstants.ts before shipping.',\n )\n}\n\n// ---------------------------------------------------------------------------\n// Module / entry function paths (stable across networks)\n// ---------------------------------------------------------------------------\n// Built directly from `SUI_PACKAGE_ID` so each path follows the\n// `package::module::function` convention used by the Sui Move VM.\nexport const SUI_BOND_MODULE = `${SUI_PACKAGE_ID}::bond`\n\n// Entry functions (write path)\nexport const SUI_DEPOSIT_FUNCTION = `${SUI_PACKAGE_ID}::bond::deposit`\nexport const SUI_CLAIM_FUNCTION = `${SUI_PACKAGE_ID}::bond::claim`\n\n// View / read functions\nexport const SUI_VIEW_MARKET_INFO = `${SUI_PACKAGE_ID}::bond::market_info`\nexport const SUI_VIEW_BILL_INFO = `${SUI_PACKAGE_ID}::bond::bill_info`\nexport const SUI_VIEW_VESTING_PROGRESS = `${SUI_PACKAGE_ID}::bond::vesting_progress`\nexport const SUI_VIEW_USER_BILLS = `${SUI_PACKAGE_ID}::bond_nft::user_bills`\n\n// ---------------------------------------------------------------------------\n// Placeholder bill image (shown until backend enrichment is available)\n// ---------------------------------------------------------------------------\nexport const SUI_PLACEHOLDER_BILL_IMAGE = 'https://www.ape.bond/images/bills/hidden-bill.jpg'\n"],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACO,MAAM,cAAc,GAAG;AAU9B,MAAM,sBAAsB,GAAG,oEAAoE;AAE5F,MAAM,cAAc,GAAoB,sBAAsB;AAErE;AACA;AACA,IACE,OAAO,MAAM,KAAK,WAAW;IAC7B,cAAc;AACd,IAAA,cAAc,KAAK,sBAAsB;AACzC,IAAA,sBAAsB,CAAC,UAAU,CAAC,QAAQ,CAAC,EAC3C;IACA,OAAO,CAAC,IAAI,CACV,uEAAuE;AACrE,QAAA,kFAAkF,CACrF;AACH;AAWO,MAAM,kBAAkB,GAAG,CAAA,EAAG,cAAc;AAQnD;AACA;AACA;AACO,MAAM,0BAA0B,GAAG;;;;"}
|
|
@@ -1,9 +1,14 @@
|
|
|
1
1
|
import { ChainId } from '@ape.swap/apeswap-lists';
|
|
2
|
+
export interface OpenWalletConnectorsDTO {
|
|
3
|
+
evm?: () => void;
|
|
4
|
+
sol?: () => void;
|
|
5
|
+
sui?: () => void;
|
|
6
|
+
aptos?: () => void;
|
|
7
|
+
}
|
|
2
8
|
export interface SDKPropsDTO {
|
|
3
9
|
referenceId: string;
|
|
4
10
|
chains: number[];
|
|
5
11
|
hotBondChains?: number[];
|
|
6
|
-
connector?: 'rainbowkit' | 'appkit' | 'default';
|
|
7
12
|
useHotBonds?: boolean;
|
|
8
13
|
useTiers?: boolean;
|
|
9
14
|
useTGEBonds?: boolean;
|
|
@@ -18,7 +23,7 @@ export interface SDKPropsDTO {
|
|
|
18
23
|
customBranch?: string;
|
|
19
24
|
highlightedBond?: string;
|
|
20
25
|
customRPCS?: Partial<Record<ChainId, string[]>>;
|
|
21
|
-
|
|
26
|
+
openWalletConnectors?: OpenWalletConnectorsDTO;
|
|
22
27
|
aptosAddress?: string;
|
|
23
28
|
suiAddress?: string;
|
|
24
29
|
suiTreasuryAddresses?: string[];
|
|
@@ -27,7 +32,12 @@ export interface SDKProps {
|
|
|
27
32
|
referenceId: string;
|
|
28
33
|
chains: number[];
|
|
29
34
|
hotBondChains: number[];
|
|
30
|
-
|
|
35
|
+
openWalletConnector?: {
|
|
36
|
+
evm?: boolean;
|
|
37
|
+
sol?: boolean;
|
|
38
|
+
sui?: boolean;
|
|
39
|
+
aptos?: boolean;
|
|
40
|
+
};
|
|
31
41
|
useHotBonds: boolean;
|
|
32
42
|
useTiers: boolean;
|
|
33
43
|
useTGEBonds: boolean;
|
|
@@ -3,7 +3,7 @@ import { useQuery } from '@tanstack/react-query';
|
|
|
3
3
|
import { QUERY_KEYS } from '../config/constants/queryKeys.js';
|
|
4
4
|
import { ChainId } from '@ape.swap/apeswap-lists';
|
|
5
5
|
import { setCustomRPCS } from '../config/constants/networks.js';
|
|
6
|
-
import {
|
|
6
|
+
import { setWalletConnectorOpener } from '../config/constants/walletConnectors.js';
|
|
7
7
|
|
|
8
8
|
// Prod URLS. Do not make changes here
|
|
9
9
|
const defaultUrls = {
|
|
@@ -24,7 +24,6 @@ const useSDKConfig = (config) => {
|
|
|
24
24
|
chains: [],
|
|
25
25
|
hotBondChains: [ChainId.BSC, ChainId.MATIC],
|
|
26
26
|
useHotBonds: true,
|
|
27
|
-
connector: 'default',
|
|
28
27
|
useTGEBonds: false,
|
|
29
28
|
showLowValueBonds: false,
|
|
30
29
|
bondPartner: undefined,
|
|
@@ -33,20 +32,33 @@ const useSDKConfig = (config) => {
|
|
|
33
32
|
blockSales: false,
|
|
34
33
|
customBranch: '',
|
|
35
34
|
...config,
|
|
35
|
+
openWalletConnector: {
|
|
36
|
+
evm: !!config?.openWalletConnectors?.evm,
|
|
37
|
+
sol: !!config?.openWalletConnectors?.sol,
|
|
38
|
+
sui: !!config?.openWalletConnectors?.sui,
|
|
39
|
+
aptos: !!config?.openWalletConnectors?.aptos,
|
|
40
|
+
},
|
|
36
41
|
useTiers: config?.namingPreference === 'Discount' ? false : (config?.useTiers ?? false), // for the time being we'll assume discount preference does not want to useTiers
|
|
37
42
|
urls: { ...urls, ...config?.urls },
|
|
38
43
|
highestCompatibleVersion: '2.2.0',
|
|
39
44
|
};
|
|
45
|
+
const hasConfig = config !== undefined;
|
|
46
|
+
const customRPCS = config?.customRPCS;
|
|
47
|
+
const evmConnectorOpener = config?.openWalletConnectors?.evm;
|
|
48
|
+
const solConnectorOpener = config?.openWalletConnectors?.sol;
|
|
49
|
+
const suiConnectorOpener = config?.openWalletConnectors?.sui;
|
|
50
|
+
const aptosConnectorOpener = config?.openWalletConnectors?.aptos;
|
|
40
51
|
useEffect(() => {
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
}, [config?.customRPCS]);
|
|
45
|
-
useEffect(() => {
|
|
46
|
-
if (config?.openSuiConnectModal) {
|
|
47
|
-
setSuiConnectModalOpener(config.openSuiConnectModal);
|
|
52
|
+
// Calls without config only read shared settings and must not overwrite their registries.
|
|
53
|
+
if (!hasConfig) {
|
|
54
|
+
return;
|
|
48
55
|
}
|
|
49
|
-
|
|
56
|
+
setCustomRPCS(customRPCS ?? {});
|
|
57
|
+
setWalletConnectorOpener('evm', evmConnectorOpener);
|
|
58
|
+
setWalletConnectorOpener('sol', solConnectorOpener);
|
|
59
|
+
setWalletConnectorOpener('sui', suiConnectorOpener);
|
|
60
|
+
setWalletConnectorOpener('aptos', aptosConnectorOpener);
|
|
61
|
+
}, [hasConfig, customRPCS, evmConnectorOpener, solConnectorOpener, suiConnectorOpener, aptosConnectorOpener]);
|
|
50
62
|
const { data } = useQuery({
|
|
51
63
|
queryKey: [QUERY_KEYS.SDK_CONFIG],
|
|
52
64
|
queryFn: () => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useSDKConfig.js","sources":["../../src/state/useSDKConfig.ts"],"sourcesContent":["import { useEffect } from 'react'\nimport { useQuery } from '@tanstack/react-query'\nimport { QUERY_KEYS } from '../config/constants/queryKeys'\nimport { ChainId } from '@ape.swap/apeswap-lists'\nimport { setCustomRPCS } from '../config/constants/networks'\nimport {
|
|
1
|
+
{"version":3,"file":"useSDKConfig.js","sources":["../../src/state/useSDKConfig.ts"],"sourcesContent":["import { useEffect } from 'react'\nimport { useQuery } from '@tanstack/react-query'\nimport { QUERY_KEYS } from '../config/constants/queryKeys'\nimport { ChainId } from '@ape.swap/apeswap-lists'\nimport { setCustomRPCS } from '../config/constants/networks'\nimport { setWalletConnectorOpener } from '../config/constants/walletConnectors'\n\n// Prod URLS. Do not make changes here\nconst defaultUrls = {\n apiV2: 'https://api.ape.bond',\n realTimeApi: 'https://realtime-api.ape.bond',\n mainUrl: 'https://ape.bond',\n}\n\n// Staging URLS.\nconst stagingUrls = {\n apiV2: 'https://staging-api.ape.bond',\n realTimeApi: 'https://realtime-api-staging.ape.bond',\n mainUrl: 'https://staging.ape.bond',\n}\n\nexport interface OpenWalletConnectorsDTO {\n evm?: () => void\n sol?: () => void\n sui?: () => void\n aptos?: () => void\n}\n\nexport interface SDKPropsDTO {\n referenceId: string\n chains: number[]\n hotBondChains?: number[]\n useHotBonds?: boolean\n useTiers?: boolean\n useTGEBonds?: boolean\n useCardsView?: boolean\n showLowValueBonds?: boolean\n bondPartner?: string\n namingPreference?: 'Discount' | 'Bonus'\n urls?: Partial<Record<URLKeys, string>>\n theme?: any\n highestCompatibleVersion?: string\n blockSales?: boolean\n customBranch?: string\n highlightedBond?: string\n customRPCS?: Partial<Record<ChainId, string[]>>\n openWalletConnectors?: OpenWalletConnectorsDTO\n aptosAddress?: string\n suiAddress?: string\n suiTreasuryAddresses?: string[]\n}\n\nexport interface SDKProps {\n referenceId: string\n chains: number[]\n hotBondChains: number[]\n openWalletConnector?: {\n evm?: boolean\n sol?: boolean\n sui?: boolean\n aptos?: boolean\n }\n useHotBonds: boolean\n useTiers: boolean\n useTGEBonds: boolean\n showLowValueBonds: boolean\n bondPartner?: string\n namingPreference: 'Discount' | 'Bonus'\n urls: Record<URLKeys, string>\n theme?: any\n highestCompatibleVersion?: string\n evmAddress?: string\n solAddress?: string\n aptosAddress?: string\n suiAddress?: string\n useCardsView?: boolean\n blockSales?: boolean\n customBranch?: string\n highlightedBond?: string\n}\n\nexport const useSDKConfig = (config?: SDKPropsDTO): SDKProps => {\n const urls = process.env.NODE_ENV === 'production' ? defaultUrls : stagingUrls\n\n const initialData: SDKProps = {\n referenceId: '',\n chains: [],\n hotBondChains: [ChainId.BSC, ChainId.MATIC],\n useHotBonds: true,\n useTGEBonds: false,\n showLowValueBonds: false,\n bondPartner: undefined,\n namingPreference: 'Bonus',\n useCardsView: false,\n blockSales: false,\n customBranch: '',\n ...config,\n openWalletConnector: {\n evm: !!config?.openWalletConnectors?.evm,\n sol: !!config?.openWalletConnectors?.sol,\n sui: !!config?.openWalletConnectors?.sui,\n aptos: !!config?.openWalletConnectors?.aptos,\n },\n useTiers: config?.namingPreference === 'Discount' ? false : (config?.useTiers ?? false), // for the time being we'll assume discount preference does not want to useTiers\n urls: { ...urls, ...config?.urls },\n highestCompatibleVersion: '2.2.0',\n }\n\n const hasConfig = config !== undefined\n const customRPCS = config?.customRPCS\n const evmConnectorOpener = config?.openWalletConnectors?.evm\n const solConnectorOpener = config?.openWalletConnectors?.sol\n const suiConnectorOpener = config?.openWalletConnectors?.sui\n const aptosConnectorOpener = config?.openWalletConnectors?.aptos\n\n useEffect(() => {\n // Calls without config only read shared settings and must not overwrite their registries.\n if (!hasConfig) {\n return\n }\n setCustomRPCS(customRPCS ?? {})\n setWalletConnectorOpener('evm', evmConnectorOpener)\n setWalletConnectorOpener('sol', solConnectorOpener)\n setWalletConnectorOpener('sui', suiConnectorOpener)\n setWalletConnectorOpener('aptos', aptosConnectorOpener)\n }, [hasConfig, customRPCS, evmConnectorOpener, solConnectorOpener, suiConnectorOpener, aptosConnectorOpener])\n\n const { data } = useQuery({\n queryKey: [QUERY_KEYS.SDK_CONFIG],\n queryFn: () => {\n throw new Error('Just a hotfix for latest versions of react-query that make queryFn a required prop')\n },\n initialData,\n })\n return data as SDKProps\n}\n\nexport type URLKeys = 'apiV2' | 'realTimeApi' | 'mainUrl'\n\nexport const useURLByEnvironment = (key: URLKeys) => {\n const config = useSDKConfig()\n return config?.urls?.[key] as string\n}\n"],"names":[],"mappings":"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"}
|