@ape.swap/bonds-sdk 7.0.3 → 7.0.4-test.0
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/adapters/evm/index.d.ts +3 -2
- package/dist/adapters/evm/index.js +11 -2
- package/dist/adapters/evm/index.js.map +1 -1
- package/dist/adapters/evm/state/balances.js +1 -1
- package/dist/adapters/evm/state/balances.js.map +1 -1
- package/dist/adapters/evm/state/fetchBondsDataEVM.js +65 -2
- package/dist/adapters/evm/state/fetchBondsDataEVM.js.map +1 -1
- package/dist/adapters/evm/state/fetchUsersBondsEVM.js +234 -2
- package/dist/adapters/evm/state/fetchUsersBondsEVM.js.map +1 -1
- package/dist/adapters/evm/state/lpStaking/fetchLpStakingLimits.d.ts +24 -0
- package/dist/adapters/evm/state/lpStaking/fetchLpStakingLimits.js +118 -0
- package/dist/adapters/evm/state/lpStaking/fetchLpStakingLimits.js.map +1 -0
- package/dist/adapters/evm/state/lpStaking/useSoulZapLpStakingQuote.d.ts +4 -0
- package/dist/adapters/evm/state/lpStaking/useSoulZapLpStakingQuote.js +140 -0
- package/dist/adapters/evm/state/lpStaking/useSoulZapLpStakingQuote.js.map +1 -0
- package/dist/adapters/evm/state/useSoulZapBondQuote.js +1 -1
- package/dist/adapters/evm/views/BuyComponent.js +1 -1
- package/dist/adapters/evm/views/BuyComponent.js.map +1 -1
- package/dist/adapters/evm/views/lpStaking/BuyComponentLpStaking.d.ts +4 -0
- package/dist/adapters/evm/views/lpStaking/BuyComponentLpStaking.js +212 -0
- package/dist/adapters/evm/views/lpStaking/BuyComponentLpStaking.js.map +1 -0
- package/dist/adapters/evm/views/lpStaking/LpBondModalHeader.d.ts +7 -0
- package/dist/adapters/evm/views/lpStaking/LpBondModalHeader.js +66 -0
- package/dist/adapters/evm/views/lpStaking/LpBondModalHeader.js.map +1 -0
- package/dist/adapters/evm/views/lpStaking/LpStakingEstimations.d.ts +23 -0
- package/dist/adapters/evm/views/lpStaking/LpStakingEstimations.js +40 -0
- package/dist/adapters/evm/views/lpStaking/LpStakingEstimations.js.map +1 -0
- package/dist/adapters/evm/views/lpStaking/ModalHandlerLpStaking.d.ts +3 -0
- package/dist/adapters/evm/views/lpStaking/ModalHandlerLpStaking.js +90 -0
- package/dist/adapters/evm/views/lpStaking/ModalHandlerLpStaking.js.map +1 -0
- package/dist/adapters/evm/views/lpStaking/UserLpStakingBondRow.d.ts +5 -0
- package/dist/adapters/evm/views/lpStaking/UserLpStakingBondRow.js +32 -0
- package/dist/adapters/evm/views/lpStaking/UserLpStakingBondRow.js.map +1 -0
- package/dist/adapters/evm/views/lpStaking/YourLpBondModalHeader.d.ts +7 -0
- package/dist/adapters/evm/views/lpStaking/YourLpBondModalHeader.js +20 -0
- package/dist/adapters/evm/views/lpStaking/YourLpBondModalHeader.js.map +1 -0
- package/dist/adapters/evm/views/lpStaking/YourLpStakingBondModal.d.ts +7 -0
- package/dist/adapters/evm/views/lpStaking/YourLpStakingBondModal.js +78 -0
- package/dist/adapters/evm/views/lpStaking/YourLpStakingBondModal.js.map +1 -0
- package/dist/adapters/types.d.ts +20 -5
- package/dist/components/TokenInfoAndName/index.js +4 -1
- package/dist/components/TokenInfoAndName/index.js.map +1 -1
- package/dist/components/Tooltip/ButtonsRow.js +1 -1
- package/dist/components/Tooltip/ButtonsRow.js.map +1 -1
- package/dist/components/Tooltip/Tooltip.js +3 -2
- package/dist/components/Tooltip/Tooltip.js.map +1 -1
- package/dist/components/uikit-sdk/TokenImage/index.js +3 -1
- package/dist/components/uikit-sdk/TokenImage/index.js.map +1 -1
- package/dist/config/abi/apeBondPositionAdapter.json.js +1347 -0
- package/dist/config/abi/apeBondPositionAdapter.json.js.map +1 -0
- package/dist/config/abi/bonusEscrow.json.js +33 -0
- package/dist/config/abi/bonusEscrow.json.js.map +1 -0
- package/dist/config/abi/lpStakingVault.json.js +34 -0
- package/dist/config/abi/lpStakingVault.json.js.map +1 -0
- package/dist/config/abi/uniswapV3Pool.json.js +47 -0
- package/dist/config/abi/uniswapV3Pool.json.js.map +1 -0
- package/dist/config/abi/uniswapV3QuoterV2.json.js +66 -0
- package/dist/config/abi/uniswapV3QuoterV2.json.js.map +1 -0
- package/dist/config/constants/addresses.d.ts +1 -0
- package/dist/config/constants/addresses.js +7 -1
- package/dist/config/constants/addresses.js.map +1 -1
- package/dist/config/constants/chains.js +3 -1
- package/dist/config/constants/chains.js.map +1 -1
- package/dist/config/constants/networks.js +1 -1
- package/dist/config/constants/networks.js.map +1 -1
- package/dist/config/constants/variables.d.ts +2 -2
- package/dist/config/constants/variables.js +3 -1
- package/dist/config/constants/variables.js.map +1 -1
- package/dist/state/bonds/useBondsData.js +1 -0
- package/dist/state/bonds/useBondsData.js.map +1 -1
- package/dist/state/bonds/useUserBonds.d.ts +10 -1
- package/dist/state/bonds/useUserBonds.js +18 -11
- package/dist/state/bonds/useUserBonds.js.map +1 -1
- package/dist/state/useSDKConfig.js +2 -2
- package/dist/state/useSDKConfig.js.map +1 -1
- package/dist/state/zap/getChainParam.d.ts +1 -16
- package/dist/state/zap/getChainParam.js +16 -40
- package/dist/state/zap/getChainParam.js.map +1 -1
- package/dist/styles.css +1 -1
- package/dist/types/yourbonds.d.ts +24 -0
- package/dist/views/Bonds/components/BondRows/ActiveBondRows.js +19 -2
- package/dist/views/Bonds/components/BondRows/ActiveBondRows.js.map +1 -1
- package/dist/views/Bonds/components/BondRows/BondRow.d.ts +3 -2
- package/dist/views/Bonds/components/BondRows/BondRow.js +15 -10
- package/dist/views/Bonds/components/BondRows/BondRow.js.map +1 -1
- package/dist/views/Bonds/components/BondRows/ModalHandler.js +1 -1
- package/dist/views/Bonds/components/BondRows/ModalHandler.js.map +1 -1
- package/dist/views/Bonds/components/BondRows/SoldOutRows.js +1 -1
- package/dist/views/Bonds/components/BondRows/SoldOutRows.js.map +1 -1
- package/dist/views/Bonds/components/BondsMenu/BondsMenu.js +1 -1
- package/dist/views/Bonds/components/BondsMenu/BondsMenu.js.map +1 -1
- package/dist/views/Bonds/components/BonusComponents/BonusComponent.js +1 -1
- package/dist/views/Bonds/components/BonusComponents/BonusComponent.js.map +1 -1
- package/dist/views/Bonds/components/BuyAgainRow/index.js +1 -1
- package/dist/views/Bonds/components/BuyAgainRow/index.js.map +1 -1
- package/dist/views/Bonds/components/CheckURL/index.js +20 -15
- package/dist/views/Bonds/components/CheckURL/index.js.map +1 -1
- package/dist/views/BuyBond/ChainBuyComponent.d.ts +4 -1
- package/dist/views/BuyBond/ChainBuyComponent.js +14 -2
- package/dist/views/BuyBond/ChainBuyComponent.js.map +1 -1
- package/dist/views/BuyBond/components/BondCards/BondCards.js +1 -7
- package/dist/views/BuyBond/components/BondCards/BondCards.js.map +1 -1
- package/dist/views/BuyBond/components/BondModalHeader.d.ts +1 -2
- package/dist/views/BuyBond/components/BondModalHeader.js +13 -5
- package/dist/views/BuyBond/components/BondModalHeader.js.map +1 -1
- package/dist/views/BuyBond/components/Estimations.js +1 -1
- package/dist/views/BuyBond/components/Estimations.js.map +1 -1
- package/dist/views/BuyBond/components/ExpandedViewButton.d.ts +2 -2
- package/dist/views/BuyBond/components/ExpandedViewButton.js +2 -2
- package/dist/views/BuyBond/components/ExpandedViewButton.js.map +1 -1
- package/dist/views/FullBondsView/FullBondsView.js +2 -1
- package/dist/views/FullBondsView/FullBondsView.js.map +1 -1
- package/dist/views/FullBondsView/YourBondsStatus.d.ts +3 -0
- package/dist/views/FullBondsView/YourBondsStatus.js +54 -0
- package/dist/views/FullBondsView/YourBondsStatus.js.map +1 -0
- package/dist/views/SingleBond/SoldOutBuyBondPlaceholder.js +2 -5
- package/dist/views/SingleBond/SoldOutBuyBondPlaceholder.js.map +1 -1
- package/dist/views/YourBonds/YourBonds.js +6 -1
- package/dist/views/YourBonds/YourBonds.js.map +1 -1
- package/dist/views/YourBonds/components/YourBondsMenu/YourBondsMenu.js +2 -1
- package/dist/views/YourBonds/components/YourBondsMenu/YourBondsMenu.js.map +1 -1
- package/dist/views/YourBondsModal/components/YourBondModalHeader/YourBondModalHeader.d.ts +2 -1
- package/dist/views/YourBondsModal/components/YourBondModalHeader/YourBondModalHeader.js +2 -2
- package/dist/views/YourBondsModal/components/YourBondModalHeader/YourBondModalHeader.js.map +1 -1
- package/package.json +2 -2
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"apeBondPositionAdapter.json.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
var BONUS_ESCROW_ABI = [
|
|
2
|
+
{
|
|
3
|
+
inputs: [
|
|
4
|
+
],
|
|
5
|
+
name: "bonusToken",
|
|
6
|
+
outputs: [
|
|
7
|
+
{
|
|
8
|
+
internalType: "address",
|
|
9
|
+
name: "",
|
|
10
|
+
type: "address"
|
|
11
|
+
}
|
|
12
|
+
],
|
|
13
|
+
stateMutability: "view",
|
|
14
|
+
type: "function"
|
|
15
|
+
},
|
|
16
|
+
{
|
|
17
|
+
inputs: [
|
|
18
|
+
],
|
|
19
|
+
name: "totalReserved",
|
|
20
|
+
outputs: [
|
|
21
|
+
{
|
|
22
|
+
internalType: "uint256",
|
|
23
|
+
name: "",
|
|
24
|
+
type: "uint256"
|
|
25
|
+
}
|
|
26
|
+
],
|
|
27
|
+
stateMutability: "view",
|
|
28
|
+
type: "function"
|
|
29
|
+
}
|
|
30
|
+
];
|
|
31
|
+
|
|
32
|
+
export { BONUS_ESCROW_ABI as default };
|
|
33
|
+
//# sourceMappingURL=bonusEscrow.json.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bonusEscrow.json.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
var LP_STAKING_VAULT_ABI = [
|
|
2
|
+
{
|
|
3
|
+
inputs: [
|
|
4
|
+
],
|
|
5
|
+
name: "previewTwap",
|
|
6
|
+
outputs: [
|
|
7
|
+
{
|
|
8
|
+
internalType: "int24",
|
|
9
|
+
name: "currentTick",
|
|
10
|
+
type: "int24"
|
|
11
|
+
},
|
|
12
|
+
{
|
|
13
|
+
internalType: "int24",
|
|
14
|
+
name: "twapTick",
|
|
15
|
+
type: "int24"
|
|
16
|
+
},
|
|
17
|
+
{
|
|
18
|
+
internalType: "int24",
|
|
19
|
+
name: "maxDeviationTicks",
|
|
20
|
+
type: "int24"
|
|
21
|
+
},
|
|
22
|
+
{
|
|
23
|
+
internalType: "bool",
|
|
24
|
+
name: "withinBounds",
|
|
25
|
+
type: "bool"
|
|
26
|
+
}
|
|
27
|
+
],
|
|
28
|
+
stateMutability: "view",
|
|
29
|
+
type: "function"
|
|
30
|
+
}
|
|
31
|
+
];
|
|
32
|
+
|
|
33
|
+
export { LP_STAKING_VAULT_ABI as default };
|
|
34
|
+
//# sourceMappingURL=lpStakingVault.json.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lpStakingVault.json.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
var UNISWAP_V3_POOL_ABI = [
|
|
2
|
+
{
|
|
3
|
+
inputs: [
|
|
4
|
+
],
|
|
5
|
+
name: "token0",
|
|
6
|
+
outputs: [
|
|
7
|
+
{
|
|
8
|
+
internalType: "address",
|
|
9
|
+
name: "",
|
|
10
|
+
type: "address"
|
|
11
|
+
}
|
|
12
|
+
],
|
|
13
|
+
stateMutability: "view",
|
|
14
|
+
type: "function"
|
|
15
|
+
},
|
|
16
|
+
{
|
|
17
|
+
inputs: [
|
|
18
|
+
],
|
|
19
|
+
name: "token1",
|
|
20
|
+
outputs: [
|
|
21
|
+
{
|
|
22
|
+
internalType: "address",
|
|
23
|
+
name: "",
|
|
24
|
+
type: "address"
|
|
25
|
+
}
|
|
26
|
+
],
|
|
27
|
+
stateMutability: "view",
|
|
28
|
+
type: "function"
|
|
29
|
+
},
|
|
30
|
+
{
|
|
31
|
+
inputs: [
|
|
32
|
+
],
|
|
33
|
+
name: "fee",
|
|
34
|
+
outputs: [
|
|
35
|
+
{
|
|
36
|
+
internalType: "uint24",
|
|
37
|
+
name: "",
|
|
38
|
+
type: "uint24"
|
|
39
|
+
}
|
|
40
|
+
],
|
|
41
|
+
stateMutability: "view",
|
|
42
|
+
type: "function"
|
|
43
|
+
}
|
|
44
|
+
];
|
|
45
|
+
|
|
46
|
+
export { UNISWAP_V3_POOL_ABI as default };
|
|
47
|
+
//# sourceMappingURL=uniswapV3Pool.json.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"uniswapV3Pool.json.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
var UNISWAP_V3_QUOTER_V2_ABI = [
|
|
2
|
+
{
|
|
3
|
+
inputs: [
|
|
4
|
+
{
|
|
5
|
+
components: [
|
|
6
|
+
{
|
|
7
|
+
internalType: "address",
|
|
8
|
+
name: "tokenIn",
|
|
9
|
+
type: "address"
|
|
10
|
+
},
|
|
11
|
+
{
|
|
12
|
+
internalType: "address",
|
|
13
|
+
name: "tokenOut",
|
|
14
|
+
type: "address"
|
|
15
|
+
},
|
|
16
|
+
{
|
|
17
|
+
internalType: "uint256",
|
|
18
|
+
name: "amount",
|
|
19
|
+
type: "uint256"
|
|
20
|
+
},
|
|
21
|
+
{
|
|
22
|
+
internalType: "uint24",
|
|
23
|
+
name: "fee",
|
|
24
|
+
type: "uint24"
|
|
25
|
+
},
|
|
26
|
+
{
|
|
27
|
+
internalType: "uint160",
|
|
28
|
+
name: "sqrtPriceLimitX96",
|
|
29
|
+
type: "uint160"
|
|
30
|
+
}
|
|
31
|
+
],
|
|
32
|
+
internalType: "struct IQuoterV2.QuoteExactOutputSingleParams",
|
|
33
|
+
name: "params",
|
|
34
|
+
type: "tuple"
|
|
35
|
+
}
|
|
36
|
+
],
|
|
37
|
+
name: "quoteExactOutputSingle",
|
|
38
|
+
outputs: [
|
|
39
|
+
{
|
|
40
|
+
internalType: "uint256",
|
|
41
|
+
name: "amountIn",
|
|
42
|
+
type: "uint256"
|
|
43
|
+
},
|
|
44
|
+
{
|
|
45
|
+
internalType: "uint160",
|
|
46
|
+
name: "sqrtPriceX96After",
|
|
47
|
+
type: "uint160"
|
|
48
|
+
},
|
|
49
|
+
{
|
|
50
|
+
internalType: "uint32",
|
|
51
|
+
name: "initializedTicksCrossed",
|
|
52
|
+
type: "uint32"
|
|
53
|
+
},
|
|
54
|
+
{
|
|
55
|
+
internalType: "uint256",
|
|
56
|
+
name: "gasEstimate",
|
|
57
|
+
type: "uint256"
|
|
58
|
+
}
|
|
59
|
+
],
|
|
60
|
+
stateMutability: "nonpayable",
|
|
61
|
+
type: "function"
|
|
62
|
+
}
|
|
63
|
+
];
|
|
64
|
+
|
|
65
|
+
export { UNISWAP_V3_QUOTER_V2_ABI as default };
|
|
66
|
+
//# sourceMappingURL=uniswapV3QuoterV2.json.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"uniswapV3QuoterV2.json.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -5,6 +5,7 @@ type AddressMap = {
|
|
|
5
5
|
export declare const ABOND_ADDRESSES: {
|
|
6
6
|
56: string;
|
|
7
7
|
};
|
|
8
|
+
export declare const UNISWAP_V3_QUOTER_V2: AddressMap;
|
|
8
9
|
export declare const MULTICALL_V2: AddressMap;
|
|
9
10
|
export declare const SoulZapTokenManager: Partial<Record<ZapSupportedChainId, string>>;
|
|
10
11
|
export declare const ACF_TO_ABOND: string;
|
|
@@ -3,6 +3,11 @@ import { ChainId } from '@ape.swap/apeswap-lists';
|
|
|
3
3
|
const ABOND_ADDRESSES = {
|
|
4
4
|
[ChainId.BSC]: '0x34294AfABCbaFfc616ac6614F6d2e17260b78BEd',
|
|
5
5
|
};
|
|
6
|
+
// Uniswap v3 QuoterV2, used to size LP staking bond purchases against the pool's price guard
|
|
7
|
+
const UNISWAP_V3_QUOTER_V2 = {
|
|
8
|
+
[ChainId.MAINNET]: '0x61fFE014bA17989E743c5F6cB21bF9697530B21e',
|
|
9
|
+
[ChainId.SEPOLIA]: '0xEd1f6473345F45b75F8179591dd5bA1888cf2FB3',
|
|
10
|
+
};
|
|
6
11
|
const MULTICALL_V2 = {
|
|
7
12
|
[ChainId.BSC]: '0x38ce767d81de3940CFa5020B55af1A400ED4F657',
|
|
8
13
|
[ChainId.BSC_TESTNET]: '0x67ADCB4dF3931b0C5Da724058ADC2174a9844412',
|
|
@@ -41,6 +46,7 @@ const SoulZapTokenManager = {
|
|
|
41
46
|
[ChainId.ARBITRUM]: SOUL_ZAP_TOKEN_MANAGER,
|
|
42
47
|
[ChainId.HYPEREVM]: SOUL_ZAP_TOKEN_MANAGER,
|
|
43
48
|
[ChainId.ROBINHOOD]: SOUL_ZAP_TOKEN_MANAGER,
|
|
49
|
+
[ChainId.SEPOLIA]: SOUL_ZAP_TOKEN_MANAGER,
|
|
44
50
|
//
|
|
45
51
|
// Chains below this point have not been re-deployed yet
|
|
46
52
|
//
|
|
@@ -60,5 +66,5 @@ const SoulZapTokenManager = {
|
|
|
60
66
|
const ACF_TO_ABOND = '0xEce2b9C3704632Ce760271B0b84E3A4A698Ca962';
|
|
61
67
|
const LENS_CONTRACT = '0x6Fb7A34A271cc0F4016db6A3BAA6206757a9a164';
|
|
62
68
|
|
|
63
|
-
export { ABOND_ADDRESSES, ACF_TO_ABOND, LENS_CONTRACT, MULTICALL_V2, SoulZapTokenManager };
|
|
69
|
+
export { ABOND_ADDRESSES, ACF_TO_ABOND, LENS_CONTRACT, MULTICALL_V2, SoulZapTokenManager, UNISWAP_V3_QUOTER_V2 };
|
|
64
70
|
//# sourceMappingURL=addresses.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"addresses.js","sources":["../../../src/config/constants/addresses.ts"],"sourcesContent":["import { ChainId } from '@ape.swap/apeswap-lists'\nimport { ZapSupportedChainId } from './variables'\n\ntype AddressMap = { [chainId: number]: string }\n\nexport const ABOND_ADDRESSES = {\n [ChainId.BSC]: '0x34294AfABCbaFfc616ac6614F6d2e17260b78BEd',\n}\n\nexport const MULTICALL_V2: AddressMap = {\n [ChainId.BSC]: '0x38ce767d81de3940CFa5020B55af1A400ED4F657',\n [ChainId.BSC_TESTNET]: '0x67ADCB4dF3931b0C5Da724058ADC2174a9844412',\n [ChainId.MATIC]: '0x95028E5B8a734bb7E2071F96De89BABe75be9C8E',\n [ChainId.MAINNET]: '0xeefBa1e63905eF1D7ACbA5a8513c70307C1cE441',\n [ChainId.TLOS]: '0xa1a283f10f578201a97a8f69d8c15828b778f04b',\n [ChainId.ARBITRUM]: '0x089d8780e1c0789d0ef786bf001bee52d8351cad',\n [ChainId.SEPOLIA]: '0x4170Ebf53bbA01eb45594ad6F090d7FE5407be68',\n [ChainId.INEVM]: '0x7039F6DDB900762c33842e406fB908EB8a03fB84',\n [ChainId.LINEA]: '0x3f6F9c727C9fdf70Fe56f6e22Bc4dcb75206a78c',\n [ChainId.LIGHTLINK]: '0xb9a543d7B7dF05C8845AeA6627dE4a6622Ac863C',\n [ChainId.IOTA]: '0xcA11bde05977b3631167028862bE2a173976CA11',\n [ChainId.BASE]: '0xDF845ff2dA2325Df9C6CC3DDF7418C54E16bbFDF',\n [ChainId.GRAPHLINQ]: '0xCc88b233BbcE04c064C627ad5627da6e24a8A067',\n [ChainId.AVAX]: '0xcA11bde05977b3631167028862bE2a173976CA11',\n [ChainId.BLAST]: '0xcA11bde05977b3631167028862bE2a173976CA11',\n [ChainId.CROSSFI]: '0x007bAC6A07894A69fBcA94ED6274005093E1c44E',\n [ChainId.MONAD_TESTNET]: '0xcA11bde05977b3631167028862bE2a173976CA11',\n [ChainId.MONAD]: '0xcA11bde05977b3631167028862bE2a173976CA11',\n [ChainId.SONIC]: '0xcA11bde05977b3631167028862bE2a173976CA11',\n [ChainId.BERACHAIN]: '0xcA11bde05977b3631167028862bE2a173976CA11',\n [ChainId.KATANA]: '0xcA11bde05977b3631167028862bE2a173976CA11',\n [ChainId.UNICHAIN]: '0xcA11bde05977b3631167028862bE2a173976CA11',\n [ChainId.MEGAETH_TESTNET]: '0xcA11bde05977b3631167028862bE2a173976CA11',\n [ChainId.HYPEREVM]: '0xcA11bde05977b3631167028862bE2a173976CA11',\n [ChainId.BITTENSOR_TESTNET]: '0xcA11bde05977b3631167028862bE2a173976CA11',\n [ChainId.ROBINHOOD]: '0xcA11bde05977b3631167028862bE2a173976CA11',\n [ChainId.L1X]: '0x04476AdDf4B7C36e870D177db63B5e11380A834F',\n}\n\nconst SOUL_ZAP_TOKEN_MANAGER = '0x372F055470ef14EB79AfA1e1Ae301629FE1E050F'\n\nexport const SoulZapTokenManager: Partial<Record<ZapSupportedChainId, string>> = {\n [ChainId.MAINNET]: SOUL_ZAP_TOKEN_MANAGER,\n [ChainId.MATIC]: SOUL_ZAP_TOKEN_MANAGER,\n [ChainId.BSC]: SOUL_ZAP_TOKEN_MANAGER,\n [ChainId.BASE]: SOUL_ZAP_TOKEN_MANAGER,\n [ChainId.ARBITRUM]: SOUL_ZAP_TOKEN_MANAGER,\n [ChainId.HYPEREVM]: SOUL_ZAP_TOKEN_MANAGER,\n [ChainId.ROBINHOOD]: SOUL_ZAP_TOKEN_MANAGER,\n //\n // Chains below this point have not been re-deployed yet\n //\n // [ChainId.LINEA]: '',\n // [ChainId.AVAX]: '',\n // [ChainId.BLAST]: '',\n // [ChainId.BERACHAIN]: '',\n // [ChainId.SONIC]: '',\n // [ChainId.KATANA]: '',\n //\n // Chains bellow this point are just placeholders\n //\n [ChainId.SOL]: '', //placeholder for typecheck\n [ChainId.APTOS]: '', //placeholder for typecheck — Aptos zap uses Panora, not SoulZap\n [ChainId.SUI]: '', //placeholder for typecheck — Sui zap TBD0xB77eA97089Bf8B127732eaEf08E0019380fF70e6\n}\n\nexport const ACF_TO_ABOND: string = '0xEce2b9C3704632Ce760271B0b84E3A4A698Ca962'\n\nexport const LENS_CONTRACT = '0x6Fb7A34A271cc0F4016db6A3BAA6206757a9a164'\n"],"names":[],"mappings":";;AAKO,MAAM,eAAe,GAAG;AAC7B,IAAA,CAAC,OAAO,CAAC,GAAG,GAAG,4CAA4C;;
|
|
1
|
+
{"version":3,"file":"addresses.js","sources":["../../../src/config/constants/addresses.ts"],"sourcesContent":["import { ChainId } from '@ape.swap/apeswap-lists'\nimport { ZapSupportedChainId } from './variables'\n\ntype AddressMap = { [chainId: number]: string }\n\nexport const ABOND_ADDRESSES = {\n [ChainId.BSC]: '0x34294AfABCbaFfc616ac6614F6d2e17260b78BEd',\n}\n\n// Uniswap v3 QuoterV2, used to size LP staking bond purchases against the pool's price guard\nexport const UNISWAP_V3_QUOTER_V2: AddressMap = {\n [ChainId.MAINNET]: '0x61fFE014bA17989E743c5F6cB21bF9697530B21e',\n [ChainId.SEPOLIA]: '0xEd1f6473345F45b75F8179591dd5bA1888cf2FB3',\n}\n\nexport const MULTICALL_V2: AddressMap = {\n [ChainId.BSC]: '0x38ce767d81de3940CFa5020B55af1A400ED4F657',\n [ChainId.BSC_TESTNET]: '0x67ADCB4dF3931b0C5Da724058ADC2174a9844412',\n [ChainId.MATIC]: '0x95028E5B8a734bb7E2071F96De89BABe75be9C8E',\n [ChainId.MAINNET]: '0xeefBa1e63905eF1D7ACbA5a8513c70307C1cE441',\n [ChainId.TLOS]: '0xa1a283f10f578201a97a8f69d8c15828b778f04b',\n [ChainId.ARBITRUM]: '0x089d8780e1c0789d0ef786bf001bee52d8351cad',\n [ChainId.SEPOLIA]: '0x4170Ebf53bbA01eb45594ad6F090d7FE5407be68',\n [ChainId.INEVM]: '0x7039F6DDB900762c33842e406fB908EB8a03fB84',\n [ChainId.LINEA]: '0x3f6F9c727C9fdf70Fe56f6e22Bc4dcb75206a78c',\n [ChainId.LIGHTLINK]: '0xb9a543d7B7dF05C8845AeA6627dE4a6622Ac863C',\n [ChainId.IOTA]: '0xcA11bde05977b3631167028862bE2a173976CA11',\n [ChainId.BASE]: '0xDF845ff2dA2325Df9C6CC3DDF7418C54E16bbFDF',\n [ChainId.GRAPHLINQ]: '0xCc88b233BbcE04c064C627ad5627da6e24a8A067',\n [ChainId.AVAX]: '0xcA11bde05977b3631167028862bE2a173976CA11',\n [ChainId.BLAST]: '0xcA11bde05977b3631167028862bE2a173976CA11',\n [ChainId.CROSSFI]: '0x007bAC6A07894A69fBcA94ED6274005093E1c44E',\n [ChainId.MONAD_TESTNET]: '0xcA11bde05977b3631167028862bE2a173976CA11',\n [ChainId.MONAD]: '0xcA11bde05977b3631167028862bE2a173976CA11',\n [ChainId.SONIC]: '0xcA11bde05977b3631167028862bE2a173976CA11',\n [ChainId.BERACHAIN]: '0xcA11bde05977b3631167028862bE2a173976CA11',\n [ChainId.KATANA]: '0xcA11bde05977b3631167028862bE2a173976CA11',\n [ChainId.UNICHAIN]: '0xcA11bde05977b3631167028862bE2a173976CA11',\n [ChainId.MEGAETH_TESTNET]: '0xcA11bde05977b3631167028862bE2a173976CA11',\n [ChainId.HYPEREVM]: '0xcA11bde05977b3631167028862bE2a173976CA11',\n [ChainId.BITTENSOR_TESTNET]: '0xcA11bde05977b3631167028862bE2a173976CA11',\n [ChainId.ROBINHOOD]: '0xcA11bde05977b3631167028862bE2a173976CA11',\n [ChainId.L1X]: '0x04476AdDf4B7C36e870D177db63B5e11380A834F',\n}\n\nconst SOUL_ZAP_TOKEN_MANAGER = '0x372F055470ef14EB79AfA1e1Ae301629FE1E050F'\n\nexport const SoulZapTokenManager: Partial<Record<ZapSupportedChainId, string>> = {\n [ChainId.MAINNET]: SOUL_ZAP_TOKEN_MANAGER,\n [ChainId.MATIC]: SOUL_ZAP_TOKEN_MANAGER,\n [ChainId.BSC]: SOUL_ZAP_TOKEN_MANAGER,\n [ChainId.BASE]: SOUL_ZAP_TOKEN_MANAGER,\n [ChainId.ARBITRUM]: SOUL_ZAP_TOKEN_MANAGER,\n [ChainId.HYPEREVM]: SOUL_ZAP_TOKEN_MANAGER,\n [ChainId.ROBINHOOD]: SOUL_ZAP_TOKEN_MANAGER,\n [ChainId.SEPOLIA]: SOUL_ZAP_TOKEN_MANAGER,\n //\n // Chains below this point have not been re-deployed yet\n //\n // [ChainId.LINEA]: '',\n // [ChainId.AVAX]: '',\n // [ChainId.BLAST]: '',\n // [ChainId.BERACHAIN]: '',\n // [ChainId.SONIC]: '',\n // [ChainId.KATANA]: '',\n //\n // Chains bellow this point are just placeholders\n //\n [ChainId.SOL]: '', //placeholder for typecheck\n [ChainId.APTOS]: '', //placeholder for typecheck — Aptos zap uses Panora, not SoulZap\n [ChainId.SUI]: '', //placeholder for typecheck — Sui zap TBD0xB77eA97089Bf8B127732eaEf08E0019380fF70e6\n}\n\nexport const ACF_TO_ABOND: string = '0xEce2b9C3704632Ce760271B0b84E3A4A698Ca962'\n\nexport const LENS_CONTRACT = '0x6Fb7A34A271cc0F4016db6A3BAA6206757a9a164'\n"],"names":[],"mappings":";;AAKO,MAAM,eAAe,GAAG;AAC7B,IAAA,CAAC,OAAO,CAAC,GAAG,GAAG,4CAA4C;;AAG7D;AACO,MAAM,oBAAoB,GAAe;AAC9C,IAAA,CAAC,OAAO,CAAC,OAAO,GAAG,4CAA4C;AAC/D,IAAA,CAAC,OAAO,CAAC,OAAO,GAAG,4CAA4C;;AAG1D,MAAM,YAAY,GAAe;AACtC,IAAA,CAAC,OAAO,CAAC,GAAG,GAAG,4CAA4C;AAC3D,IAAA,CAAC,OAAO,CAAC,WAAW,GAAG,4CAA4C;AACnE,IAAA,CAAC,OAAO,CAAC,KAAK,GAAG,4CAA4C;AAC7D,IAAA,CAAC,OAAO,CAAC,OAAO,GAAG,4CAA4C;AAC/D,IAAA,CAAC,OAAO,CAAC,IAAI,GAAG,4CAA4C;AAC5D,IAAA,CAAC,OAAO,CAAC,QAAQ,GAAG,4CAA4C;AAChE,IAAA,CAAC,OAAO,CAAC,OAAO,GAAG,4CAA4C;AAC/D,IAAA,CAAC,OAAO,CAAC,KAAK,GAAG,4CAA4C;AAC7D,IAAA,CAAC,OAAO,CAAC,KAAK,GAAG,4CAA4C;AAC7D,IAAA,CAAC,OAAO,CAAC,SAAS,GAAG,4CAA4C;AACjE,IAAA,CAAC,OAAO,CAAC,IAAI,GAAG,4CAA4C;AAC5D,IAAA,CAAC,OAAO,CAAC,IAAI,GAAG,4CAA4C;AAC5D,IAAA,CAAC,OAAO,CAAC,SAAS,GAAG,4CAA4C;AACjE,IAAA,CAAC,OAAO,CAAC,IAAI,GAAG,4CAA4C;AAC5D,IAAA,CAAC,OAAO,CAAC,KAAK,GAAG,4CAA4C;AAC7D,IAAA,CAAC,OAAO,CAAC,OAAO,GAAG,4CAA4C;AAC/D,IAAA,CAAC,OAAO,CAAC,aAAa,GAAG,4CAA4C;AACrE,IAAA,CAAC,OAAO,CAAC,KAAK,GAAG,4CAA4C;AAC7D,IAAA,CAAC,OAAO,CAAC,KAAK,GAAG,4CAA4C;AAC7D,IAAA,CAAC,OAAO,CAAC,SAAS,GAAG,4CAA4C;AACjE,IAAA,CAAC,OAAO,CAAC,MAAM,GAAG,4CAA4C;AAC9D,IAAA,CAAC,OAAO,CAAC,QAAQ,GAAG,4CAA4C;AAChE,IAAA,CAAC,OAAO,CAAC,eAAe,GAAG,4CAA4C;AACvE,IAAA,CAAC,OAAO,CAAC,QAAQ,GAAG,4CAA4C;AAChE,IAAA,CAAC,OAAO,CAAC,iBAAiB,GAAG,4CAA4C;AACzE,IAAA,CAAC,OAAO,CAAC,SAAS,GAAG,4CAA4C;AACjE,IAAA,CAAC,OAAO,CAAC,GAAG,GAAG,4CAA4C;;AAG7D,MAAM,sBAAsB,GAAG,4CAA4C;AAEpE,MAAM,mBAAmB,GAAiD;AAC/E,IAAA,CAAC,OAAO,CAAC,OAAO,GAAG,sBAAsB;AACzC,IAAA,CAAC,OAAO,CAAC,KAAK,GAAG,sBAAsB;AACvC,IAAA,CAAC,OAAO,CAAC,GAAG,GAAG,sBAAsB;AACrC,IAAA,CAAC,OAAO,CAAC,IAAI,GAAG,sBAAsB;AACtC,IAAA,CAAC,OAAO,CAAC,QAAQ,GAAG,sBAAsB;AAC1C,IAAA,CAAC,OAAO,CAAC,QAAQ,GAAG,sBAAsB;AAC1C,IAAA,CAAC,OAAO,CAAC,SAAS,GAAG,sBAAsB;AAC3C,IAAA,CAAC,OAAO,CAAC,OAAO,GAAG,sBAAsB;;;;;;;;;;;;;AAazC,IAAA,CAAC,OAAO,CAAC,GAAG,GAAG,EAAE;AACjB,IAAA,CAAC,OAAO,CAAC,KAAK,GAAG,EAAE;AACnB,IAAA,CAAC,OAAO,CAAC,GAAG,GAAG,EAAE;;AAGZ,MAAM,YAAY,GAAW;AAE7B,MAAM,aAAa,GAAG;;;;"}
|
|
@@ -54,8 +54,9 @@ const MAINNET_CHAINS = [
|
|
|
54
54
|
ChainId.BITTENSOR_TESTNET,
|
|
55
55
|
ChainId.ROBINHOOD,
|
|
56
56
|
ChainId.L1X,
|
|
57
|
+
ChainId.SEPOLIA,
|
|
57
58
|
];
|
|
58
|
-
const TESTNET_CHAINS = [ChainId.MEGAETH_TESTNET];
|
|
59
|
+
const TESTNET_CHAINS = [ChainId.MEGAETH_TESTNET, ChainId.SEPOLIA];
|
|
59
60
|
// Network Icons
|
|
60
61
|
const NETWORK_ICONS = {
|
|
61
62
|
[ChainId.BSC]: BNB,
|
|
@@ -148,6 +149,7 @@ const SHORT_NETWORK_LABEL = {
|
|
|
148
149
|
[ChainId.BITTENSOR_TESTNET]: 'Bitt',
|
|
149
150
|
[ChainId.ROBINHOOD]: 'Robin',
|
|
150
151
|
[ChainId.L1X]: 'L1X',
|
|
152
|
+
[ChainId.SEPOLIA]: 'Sep',
|
|
151
153
|
};
|
|
152
154
|
// Network block explorers
|
|
153
155
|
const BLOCK_EXPLORER = {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chains.js","sources":["../../../src/config/constants/chains.ts"],"sourcesContent":["// Network chain ids\nimport type React from 'react'\nimport { ChainId } from '@ape.swap/apeswap-lists'\nimport { SvgProps } from '../../components/uikit-sdk/Svg/types'\nimport BNB from '../../components/uikit-sdk/Svg/tokens/BNB'\nimport POLYGON from '../../components/uikit-sdk/Svg/tokens/POLYGON'\nimport ETH from '../../components/uikit-sdk/Svg/tokens/ETH'\nimport TLOS from '../../components/uikit-sdk/Svg/tokens/TLOS'\nimport ARBITRUM from '../../components/uikit-sdk/Svg/tokens/ARBITRUM'\nimport INEVM from '../../components/uikit-sdk/Svg/tokens/INEVM'\nimport LINEA from '../../components/uikit-sdk/Svg/tokens/LINEA'\nimport LIGHTLINK from '../../components/uikit-sdk/Svg/tokens/LIGHTLINK'\nimport IOTA from '../../components/uikit-sdk/Svg/tokens/IOTA'\nimport BASE from '../../components/uikit-sdk/Svg/tokens/BASE'\nimport GRAPHLINQ from '../../components/uikit-sdk/Svg/tokens/GraphLinq'\nimport AVAX from '../../components/uikit-sdk/Svg/tokens/AVAX'\nimport BLAST from '../../components/uikit-sdk/Svg/tokens/BLAST'\nimport CROSSFI from '../../components/uikit-sdk/Svg/tokens/CROSSFI'\nimport MONAD from '../../components/uikit-sdk/Svg/tokens/MONAD'\nimport SONIC from '../../components/uikit-sdk/Svg/tokens/SONIC'\nimport BERA from '../../components/uikit-sdk/Svg/tokens/BERA'\nimport SOL from '../../components/uikit-sdk/Svg/tokens/SOL'\nimport KATANA from '../../components/uikit-sdk/Svg/tokens/KATANA'\nimport UNICHAIN from '../../components/uikit-sdk/Svg/tokens/UNICHAIN'\nimport MEGAETH from '../../components/uikit-sdk/Svg/tokens/MEGAETH'\nimport HYPEREVM from '../../components/uikit-sdk/Svg/tokens/HYPEREVM'\nimport APTOS from '../../components/uikit-sdk/Svg/tokens/APTOS'\nimport SUI from '../../components/uikit-sdk/Svg/tokens/SUI'\nimport BitTensor from '../../components/uikit-sdk/Svg/Icons/BitTensor'\nimport Robinhood from '../../components/uikit-sdk/Svg/Icons/Robinhood'\nimport L1X from '../../components/uikit-sdk/Svg/Icons/L1X'\n\n// These are the lists we will display to the user\nexport const MAINNET_CHAINS = [\n ChainId.MAINNET,\n ChainId.BSC,\n ChainId.MATIC,\n ChainId.BASE,\n ChainId.IOTA,\n ChainId.LINEA,\n ChainId.ARBITRUM,\n ChainId.APTOS,\n ChainId.SUI,\n ChainId.LIGHTLINK,\n ChainId.GRAPHLINQ,\n ChainId.AVAX,\n ChainId.BLAST,\n ChainId.CROSSFI,\n ChainId.SONIC,\n ChainId.MONAD,\n ChainId.BERACHAIN,\n ChainId.SOL,\n ChainId.KATANA,\n ChainId.UNICHAIN,\n ChainId.MEGAETH_TESTNET,\n ChainId.HYPEREVM,\n ChainId.BITTENSOR_TESTNET,\n ChainId.ROBINHOOD,\n ChainId.L1X,\n]\n\nexport const TESTNET_CHAINS = [ChainId.MEGAETH_TESTNET]\n\n// Network Icons\nexport const NETWORK_ICONS: Partial<Record<number, React.ComponentType<SvgProps>>> = {\n [ChainId.BSC]: BNB,\n [ChainId.MATIC]: POLYGON,\n [ChainId.MAINNET]: ETH,\n [ChainId.TLOS]: TLOS,\n [ChainId.ARBITRUM]: ARBITRUM,\n [ChainId.INEVM]: INEVM,\n [ChainId.SEPOLIA]: ETH,\n [ChainId.LINEA]: LINEA,\n [ChainId.LIGHTLINK]: LIGHTLINK,\n [ChainId.IOTA]: IOTA,\n [ChainId.BASE]: BASE,\n [ChainId.GRAPHLINQ]: GRAPHLINQ,\n [ChainId.AVAX]: AVAX,\n [ChainId.BLAST]: BLAST,\n [ChainId.CROSSFI]: CROSSFI,\n [ChainId.MONAD_TESTNET]: MONAD,\n [ChainId.MONAD]: MONAD,\n [ChainId.SONIC]: SONIC,\n [ChainId.BERACHAIN]: BERA,\n [ChainId.SOL]: SOL,\n [ChainId.KATANA]: KATANA,\n [ChainId.UNICHAIN]: UNICHAIN,\n [ChainId.MEGAETH_TESTNET]: MEGAETH,\n [ChainId.HYPEREVM]: HYPEREVM,\n [ChainId.APTOS]: APTOS,\n [ChainId.SUI]: SUI,\n [ChainId.BITTENSOR_TESTNET]: BitTensor,\n [ChainId.ROBINHOOD]: Robinhood,\n [ChainId.L1X]: L1X,\n}\n\n// Network labels\nexport const NETWORK_LABEL: Record<number, string> = {\n [ChainId.BSC]: 'BNB',\n [ChainId.BSC_TESTNET]: 'BNB Testnet',\n [ChainId.MATIC]: 'Polygon',\n [ChainId.MAINNET]: 'Ethereum',\n [ChainId.TLOS]: 'Telos',\n [ChainId.ARBITRUM]: 'Arbitrum',\n [ChainId.INEVM]: 'inEVM',\n [ChainId.SEPOLIA]: 'Sepolia',\n [ChainId.LINEA]: 'Linea',\n [ChainId.LIGHTLINK]: 'Lightlink',\n [ChainId.IOTA]: 'Iota',\n [ChainId.IOTA_TESTNET]: 'Iota Testnet',\n [ChainId.BASE]: 'Base',\n [ChainId.GRAPHLINQ]: 'GraphLinq',\n [ChainId.AVAX]: 'Avalanche',\n [ChainId.BLAST]: 'Blast',\n [ChainId.CROSSFI]: 'Crossfi',\n [ChainId.MONAD_TESTNET]: 'Monad Testnet',\n [ChainId.MONAD]: 'Monad',\n [ChainId.SONIC]: 'Sonic',\n [ChainId.BERACHAIN]: 'Berachain',\n [ChainId.SOL]: 'Solana',\n [ChainId.KATANA]: 'Katana',\n [ChainId.UNICHAIN]: 'Unichain',\n [ChainId.MEGAETH_TESTNET]: 'MegaETH Testnet',\n [ChainId.HYPEREVM]: 'HyperEVM',\n [ChainId.APTOS]: 'Aptos',\n [ChainId.SUI]: 'Sui',\n [ChainId.BITTENSOR_TESTNET]: 'Bittensor Testnet',\n [ChainId.ROBINHOOD]: 'Robinhood',\n [ChainId.L1X]: 'Layer One X',\n}\n\nexport const SHORT_NETWORK_LABEL: Record<number, string> = {\n [ChainId.BSC]: 'BNB',\n [ChainId.MATIC]: 'Pol',\n [ChainId.MAINNET]: 'Eth',\n [ChainId.TLOS]: 'Telo',\n [ChainId.ARBITRUM]: 'Arb',\n [ChainId.LINEA]: 'Line',\n [ChainId.LIGHTLINK]: 'Ligh',\n [ChainId.IOTA]: 'Iota',\n [ChainId.BASE]: 'Base',\n [ChainId.GRAPHLINQ]: 'Grap',\n [ChainId.AVAX]: 'Avax',\n [ChainId.BLAST]: 'Bla',\n [ChainId.CROSSFI]: 'Cro',\n [ChainId.MONAD]: 'Mona',\n [ChainId.SONIC]: 'Son',\n [ChainId.BERACHAIN]: 'Bera',\n [ChainId.SOL]: 'Sol',\n [ChainId.KATANA]: 'Kat',\n [ChainId.UNICHAIN]: 'Unic',\n [ChainId.HYPEREVM]: 'Hyp',\n [ChainId.APTOS]: 'Apt',\n [ChainId.SUI]: 'Sui',\n [ChainId.BITTENSOR_TESTNET]: 'Bitt',\n [ChainId.ROBINHOOD]: 'Robin',\n [ChainId.L1X]: 'L1X',\n}\n\n// Network block explorers\nexport const BLOCK_EXPLORER: Record<number, string> = {\n [ChainId.MAINNET]: 'https://etherscan.io',\n [ChainId.ARBITRUM]: 'https://arbiscan.io',\n [ChainId.MATIC]: 'https://polygonscan.com',\n [ChainId.BSC]: 'https://bscscan.com',\n [ChainId.BSC_TESTNET]: 'https://testnet.bscscan.com',\n [ChainId.TLOS]: 'https://www.teloscan.io',\n [ChainId.INEVM]: 'https://explorer.inevm.com',\n [ChainId.SEPOLIA]: 'https://sepolia.etherscan.io',\n [ChainId.LINEA]: 'https://lineascan.build',\n [ChainId.LIGHTLINK]: 'https://phoenix.lightlink.io',\n [ChainId.IOTA]: 'https://explorer.evm.iota.org',\n [ChainId.IOTA_TESTNET]: 'https://explorer.evm.testnet.iotaledger.net/',\n [ChainId.BASE]: 'https://basescan.org',\n [ChainId.GRAPHLINQ]: 'https://graphlinq.dex.guru',\n [ChainId.AVAX]: 'https://snowtrace.io/',\n [ChainId.BLAST]: 'https://blastscan.io',\n [ChainId.CROSSFI]: 'https://xfiscan.com',\n [ChainId.MONAD_TESTNET]: 'https://testnet.monadexplorer.com/',\n [ChainId.MONAD]: 'https://monadvision.com/',\n [ChainId.SONIC]: 'https://sonicscan.org',\n [ChainId.BERACHAIN]: 'https://berascan.com',\n [ChainId.SOL]: 'https://solscan.io',\n [ChainId.KATANA]: 'https://explorer.katanarpc.com',\n [ChainId.UNICHAIN]: 'https://uniscan.xyz',\n [ChainId.MEGAETH_TESTNET]: 'https://megaexplorer.xyz',\n [ChainId.HYPEREVM]: 'https://hyperevmscan.io',\n [ChainId.APTOS]: 'https://explorer.aptoslabs.com',\n [ChainId.SUI]: 'https://suiscan.xyz/mainnet',\n [ChainId.BITTENSOR_TESTNET]: 'https://evm-testscan.dev.opentensor.ai',\n [ChainId.ROBINHOOD]: 'https://robinhoodchain.blockscout.com',\n [ChainId.L1X]: 'https://explorer.l1xapp.com',\n}\n"],"names":["MONAD","SONIC"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAgCA;AACO,MAAM,cAAc,GAAG;AAC5B,IAAA,OAAO,CAAC,OAAO;AACf,IAAA,OAAO,CAAC,GAAG;AACX,IAAA,OAAO,CAAC,KAAK;AACb,IAAA,OAAO,CAAC,IAAI;AACZ,IAAA,OAAO,CAAC,IAAI;AACZ,IAAA,OAAO,CAAC,KAAK;AACb,IAAA,OAAO,CAAC,QAAQ;AAChB,IAAA,OAAO,CAAC,KAAK;AACb,IAAA,OAAO,CAAC,GAAG;AACX,IAAA,OAAO,CAAC,SAAS;AACjB,IAAA,OAAO,CAAC,SAAS;AACjB,IAAA,OAAO,CAAC,IAAI;AACZ,IAAA,OAAO,CAAC,KAAK;AACb,IAAA,OAAO,CAAC,OAAO;AACf,IAAA,OAAO,CAAC,KAAK;AACb,IAAA,OAAO,CAAC,KAAK;AACb,IAAA,OAAO,CAAC,SAAS;AACjB,IAAA,OAAO,CAAC,GAAG;AACX,IAAA,OAAO,CAAC,MAAM;AACd,IAAA,OAAO,CAAC,QAAQ;AAChB,IAAA,OAAO,CAAC,eAAe;AACvB,IAAA,OAAO,CAAC,QAAQ;AAChB,IAAA,OAAO,CAAC,iBAAiB;AACzB,IAAA,OAAO,CAAC,SAAS;AACjB,IAAA,OAAO,CAAC,GAAG;;MAGA,cAAc,GAAG,CAAC,OAAO,CAAC,eAAe;AAEtD;AACO,MAAM,aAAa,GAA2D;AACnF,IAAA,CAAC,OAAO,CAAC,GAAG,GAAG,GAAG;AAClB,IAAA,CAAC,OAAO,CAAC,KAAK,GAAG,OAAO;AACxB,IAAA,CAAC,OAAO,CAAC,OAAO,GAAG,GAAG;AACtB,IAAA,CAAC,OAAO,CAAC,IAAI,GAAG,IAAI;AACpB,IAAA,CAAC,OAAO,CAAC,QAAQ,GAAG,QAAQ;AAC5B,IAAA,CAAC,OAAO,CAAC,KAAK,GAAG,KAAK;AACtB,IAAA,CAAC,OAAO,CAAC,OAAO,GAAG,GAAG;AACtB,IAAA,CAAC,OAAO,CAAC,KAAK,GAAG,KAAK;AACtB,IAAA,CAAC,OAAO,CAAC,SAAS,GAAG,SAAS;AAC9B,IAAA,CAAC,OAAO,CAAC,IAAI,GAAG,IAAI;AACpB,IAAA,CAAC,OAAO,CAAC,IAAI,GAAG,IAAI;AACpB,IAAA,CAAC,OAAO,CAAC,SAAS,GAAG,SAAS;AAC9B,IAAA,CAAC,OAAO,CAAC,IAAI,GAAG,IAAI;AACpB,IAAA,CAAC,OAAO,CAAC,KAAK,GAAG,KAAK;AACtB,IAAA,CAAC,OAAO,CAAC,OAAO,GAAG,OAAO;AAC1B,IAAA,CAAC,OAAO,CAAC,aAAa,GAAGA,OAAK;AAC9B,IAAA,CAAC,OAAO,CAAC,KAAK,GAAGA,OAAK;AACtB,IAAA,CAAC,OAAO,CAAC,KAAK,GAAGC,KAAK;AACtB,IAAA,CAAC,OAAO,CAAC,SAAS,GAAG,IAAI;AACzB,IAAA,CAAC,OAAO,CAAC,GAAG,GAAG,GAAG;AAClB,IAAA,CAAC,OAAO,CAAC,MAAM,GAAG,MAAM;AACxB,IAAA,CAAC,OAAO,CAAC,QAAQ,GAAG,QAAQ;AAC5B,IAAA,CAAC,OAAO,CAAC,eAAe,GAAG,OAAO;AAClC,IAAA,CAAC,OAAO,CAAC,QAAQ,GAAG,QAAQ;AAC5B,IAAA,CAAC,OAAO,CAAC,KAAK,GAAG,KAAK;AACtB,IAAA,CAAC,OAAO,CAAC,GAAG,GAAG,GAAG;AAClB,IAAA,CAAC,OAAO,CAAC,iBAAiB,GAAG,SAAS;AACtC,IAAA,CAAC,OAAO,CAAC,SAAS,GAAG,SAAS;AAC9B,IAAA,CAAC,OAAO,CAAC,GAAG,GAAG,GAAG;;AAGpB;AACO,MAAM,aAAa,GAA2B;AACnD,IAAA,CAAC,OAAO,CAAC,GAAG,GAAG,KAAK;AACpB,IAAA,CAAC,OAAO,CAAC,WAAW,GAAG,aAAa;AACpC,IAAA,CAAC,OAAO,CAAC,KAAK,GAAG,SAAS;AAC1B,IAAA,CAAC,OAAO,CAAC,OAAO,GAAG,UAAU;AAC7B,IAAA,CAAC,OAAO,CAAC,IAAI,GAAG,OAAO;AACvB,IAAA,CAAC,OAAO,CAAC,QAAQ,GAAG,UAAU;AAC9B,IAAA,CAAC,OAAO,CAAC,KAAK,GAAG,OAAO;AACxB,IAAA,CAAC,OAAO,CAAC,OAAO,GAAG,SAAS;AAC5B,IAAA,CAAC,OAAO,CAAC,KAAK,GAAG,OAAO;AACxB,IAAA,CAAC,OAAO,CAAC,SAAS,GAAG,WAAW;AAChC,IAAA,CAAC,OAAO,CAAC,IAAI,GAAG,MAAM;AACtB,IAAA,CAAC,OAAO,CAAC,YAAY,GAAG,cAAc;AACtC,IAAA,CAAC,OAAO,CAAC,IAAI,GAAG,MAAM;AACtB,IAAA,CAAC,OAAO,CAAC,SAAS,GAAG,WAAW;AAChC,IAAA,CAAC,OAAO,CAAC,IAAI,GAAG,WAAW;AAC3B,IAAA,CAAC,OAAO,CAAC,KAAK,GAAG,OAAO;AACxB,IAAA,CAAC,OAAO,CAAC,OAAO,GAAG,SAAS;AAC5B,IAAA,CAAC,OAAO,CAAC,aAAa,GAAG,eAAe;AACxC,IAAA,CAAC,OAAO,CAAC,KAAK,GAAG,OAAO;AACxB,IAAA,CAAC,OAAO,CAAC,KAAK,GAAG,OAAO;AACxB,IAAA,CAAC,OAAO,CAAC,SAAS,GAAG,WAAW;AAChC,IAAA,CAAC,OAAO,CAAC,GAAG,GAAG,QAAQ;AACvB,IAAA,CAAC,OAAO,CAAC,MAAM,GAAG,QAAQ;AAC1B,IAAA,CAAC,OAAO,CAAC,QAAQ,GAAG,UAAU;AAC9B,IAAA,CAAC,OAAO,CAAC,eAAe,GAAG,iBAAiB;AAC5C,IAAA,CAAC,OAAO,CAAC,QAAQ,GAAG,UAAU;AAC9B,IAAA,CAAC,OAAO,CAAC,KAAK,GAAG,OAAO;AACxB,IAAA,CAAC,OAAO,CAAC,GAAG,GAAG,KAAK;AACpB,IAAA,CAAC,OAAO,CAAC,iBAAiB,GAAG,mBAAmB;AAChD,IAAA,CAAC,OAAO,CAAC,SAAS,GAAG,WAAW;AAChC,IAAA,CAAC,OAAO,CAAC,GAAG,GAAG,aAAa;;AAGvB,MAAM,mBAAmB,GAA2B;AACzD,IAAA,CAAC,OAAO,CAAC,GAAG,GAAG,KAAK;AACpB,IAAA,CAAC,OAAO,CAAC,KAAK,GAAG,KAAK;AACtB,IAAA,CAAC,OAAO,CAAC,OAAO,GAAG,KAAK;AACxB,IAAA,CAAC,OAAO,CAAC,IAAI,GAAG,MAAM;AACtB,IAAA,CAAC,OAAO,CAAC,QAAQ,GAAG,KAAK;AACzB,IAAA,CAAC,OAAO,CAAC,KAAK,GAAG,MAAM;AACvB,IAAA,CAAC,OAAO,CAAC,SAAS,GAAG,MAAM;AAC3B,IAAA,CAAC,OAAO,CAAC,IAAI,GAAG,MAAM;AACtB,IAAA,CAAC,OAAO,CAAC,IAAI,GAAG,MAAM;AACtB,IAAA,CAAC,OAAO,CAAC,SAAS,GAAG,MAAM;AAC3B,IAAA,CAAC,OAAO,CAAC,IAAI,GAAG,MAAM;AACtB,IAAA,CAAC,OAAO,CAAC,KAAK,GAAG,KAAK;AACtB,IAAA,CAAC,OAAO,CAAC,OAAO,GAAG,KAAK;AACxB,IAAA,CAAC,OAAO,CAAC,KAAK,GAAG,MAAM;AACvB,IAAA,CAAC,OAAO,CAAC,KAAK,GAAG,KAAK;AACtB,IAAA,CAAC,OAAO,CAAC,SAAS,GAAG,MAAM;AAC3B,IAAA,CAAC,OAAO,CAAC,GAAG,GAAG,KAAK;AACpB,IAAA,CAAC,OAAO,CAAC,MAAM,GAAG,KAAK;AACvB,IAAA,CAAC,OAAO,CAAC,QAAQ,GAAG,MAAM;AAC1B,IAAA,CAAC,OAAO,CAAC,QAAQ,GAAG,KAAK;AACzB,IAAA,CAAC,OAAO,CAAC,KAAK,GAAG,KAAK;AACtB,IAAA,CAAC,OAAO,CAAC,GAAG,GAAG,KAAK;AACpB,IAAA,CAAC,OAAO,CAAC,iBAAiB,GAAG,MAAM;AACnC,IAAA,CAAC,OAAO,CAAC,SAAS,GAAG,OAAO;AAC5B,IAAA,CAAC,OAAO,CAAC,GAAG,GAAG,KAAK;;AAGtB;AACO,MAAM,cAAc,GAA2B;AACpD,IAAA,CAAC,OAAO,CAAC,OAAO,GAAG,sBAAsB;AACzC,IAAA,CAAC,OAAO,CAAC,QAAQ,GAAG,qBAAqB;AACzC,IAAA,CAAC,OAAO,CAAC,KAAK,GAAG,yBAAyB;AAC1C,IAAA,CAAC,OAAO,CAAC,GAAG,GAAG,qBAAqB;AACpC,IAAA,CAAC,OAAO,CAAC,WAAW,GAAG,6BAA6B;AACpD,IAAA,CAAC,OAAO,CAAC,IAAI,GAAG,yBAAyB;AACzC,IAAA,CAAC,OAAO,CAAC,KAAK,GAAG,4BAA4B;AAC7C,IAAA,CAAC,OAAO,CAAC,OAAO,GAAG,8BAA8B;AACjD,IAAA,CAAC,OAAO,CAAC,KAAK,GAAG,yBAAyB;AAC1C,IAAA,CAAC,OAAO,CAAC,SAAS,GAAG,8BAA8B;AACnD,IAAA,CAAC,OAAO,CAAC,IAAI,GAAG,+BAA+B;AAC/C,IAAA,CAAC,OAAO,CAAC,YAAY,GAAG,8CAA8C;AACtE,IAAA,CAAC,OAAO,CAAC,IAAI,GAAG,sBAAsB;AACtC,IAAA,CAAC,OAAO,CAAC,SAAS,GAAG,4BAA4B;AACjD,IAAA,CAAC,OAAO,CAAC,IAAI,GAAG,uBAAuB;AACvC,IAAA,CAAC,OAAO,CAAC,KAAK,GAAG,sBAAsB;AACvC,IAAA,CAAC,OAAO,CAAC,OAAO,GAAG,qBAAqB;AACxC,IAAA,CAAC,OAAO,CAAC,aAAa,GAAG,oCAAoC;AAC7D,IAAA,CAAC,OAAO,CAAC,KAAK,GAAG,0BAA0B;AAC3C,IAAA,CAAC,OAAO,CAAC,KAAK,GAAG,uBAAuB;AACxC,IAAA,CAAC,OAAO,CAAC,SAAS,GAAG,sBAAsB;AAC3C,IAAA,CAAC,OAAO,CAAC,GAAG,GAAG,oBAAoB;AACnC,IAAA,CAAC,OAAO,CAAC,MAAM,GAAG,gCAAgC;AAClD,IAAA,CAAC,OAAO,CAAC,QAAQ,GAAG,qBAAqB;AACzC,IAAA,CAAC,OAAO,CAAC,eAAe,GAAG,0BAA0B;AACrD,IAAA,CAAC,OAAO,CAAC,QAAQ,GAAG,yBAAyB;AAC7C,IAAA,CAAC,OAAO,CAAC,KAAK,GAAG,gCAAgC;AACjD,IAAA,CAAC,OAAO,CAAC,GAAG,GAAG,6BAA6B;AAC5C,IAAA,CAAC,OAAO,CAAC,iBAAiB,GAAG,wCAAwC;AACrE,IAAA,CAAC,OAAO,CAAC,SAAS,GAAG,uCAAuC;AAC5D,IAAA,CAAC,OAAO,CAAC,GAAG,GAAG,6BAA6B;;;;;"}
|
|
1
|
+
{"version":3,"file":"chains.js","sources":["../../../src/config/constants/chains.ts"],"sourcesContent":["// Network chain ids\nimport type React from 'react'\nimport { ChainId } from '@ape.swap/apeswap-lists'\nimport { SvgProps } from '../../components/uikit-sdk/Svg/types'\nimport BNB from '../../components/uikit-sdk/Svg/tokens/BNB'\nimport POLYGON from '../../components/uikit-sdk/Svg/tokens/POLYGON'\nimport ETH from '../../components/uikit-sdk/Svg/tokens/ETH'\nimport TLOS from '../../components/uikit-sdk/Svg/tokens/TLOS'\nimport ARBITRUM from '../../components/uikit-sdk/Svg/tokens/ARBITRUM'\nimport INEVM from '../../components/uikit-sdk/Svg/tokens/INEVM'\nimport LINEA from '../../components/uikit-sdk/Svg/tokens/LINEA'\nimport LIGHTLINK from '../../components/uikit-sdk/Svg/tokens/LIGHTLINK'\nimport IOTA from '../../components/uikit-sdk/Svg/tokens/IOTA'\nimport BASE from '../../components/uikit-sdk/Svg/tokens/BASE'\nimport GRAPHLINQ from '../../components/uikit-sdk/Svg/tokens/GraphLinq'\nimport AVAX from '../../components/uikit-sdk/Svg/tokens/AVAX'\nimport BLAST from '../../components/uikit-sdk/Svg/tokens/BLAST'\nimport CROSSFI from '../../components/uikit-sdk/Svg/tokens/CROSSFI'\nimport MONAD from '../../components/uikit-sdk/Svg/tokens/MONAD'\nimport SONIC from '../../components/uikit-sdk/Svg/tokens/SONIC'\nimport BERA from '../../components/uikit-sdk/Svg/tokens/BERA'\nimport SOL from '../../components/uikit-sdk/Svg/tokens/SOL'\nimport KATANA from '../../components/uikit-sdk/Svg/tokens/KATANA'\nimport UNICHAIN from '../../components/uikit-sdk/Svg/tokens/UNICHAIN'\nimport MEGAETH from '../../components/uikit-sdk/Svg/tokens/MEGAETH'\nimport HYPEREVM from '../../components/uikit-sdk/Svg/tokens/HYPEREVM'\nimport APTOS from '../../components/uikit-sdk/Svg/tokens/APTOS'\nimport SUI from '../../components/uikit-sdk/Svg/tokens/SUI'\nimport BitTensor from '../../components/uikit-sdk/Svg/Icons/BitTensor'\nimport Robinhood from '../../components/uikit-sdk/Svg/Icons/Robinhood'\nimport L1X from '../../components/uikit-sdk/Svg/Icons/L1X'\n\n// These are the lists we will display to the user\nexport const MAINNET_CHAINS = [\n ChainId.MAINNET,\n ChainId.BSC,\n ChainId.MATIC,\n ChainId.BASE,\n ChainId.IOTA,\n ChainId.LINEA,\n ChainId.ARBITRUM,\n ChainId.APTOS,\n ChainId.SUI,\n ChainId.LIGHTLINK,\n ChainId.GRAPHLINQ,\n ChainId.AVAX,\n ChainId.BLAST,\n ChainId.CROSSFI,\n ChainId.SONIC,\n ChainId.MONAD,\n ChainId.BERACHAIN,\n ChainId.SOL,\n ChainId.KATANA,\n ChainId.UNICHAIN,\n ChainId.MEGAETH_TESTNET,\n ChainId.HYPEREVM,\n ChainId.BITTENSOR_TESTNET,\n ChainId.ROBINHOOD,\n ChainId.L1X,\n ChainId.SEPOLIA,\n]\n\nexport const TESTNET_CHAINS = [ChainId.MEGAETH_TESTNET, ChainId.SEPOLIA]\n\n// Network Icons\nexport const NETWORK_ICONS: Partial<Record<number, React.ComponentType<SvgProps>>> = {\n [ChainId.BSC]: BNB,\n [ChainId.MATIC]: POLYGON,\n [ChainId.MAINNET]: ETH,\n [ChainId.TLOS]: TLOS,\n [ChainId.ARBITRUM]: ARBITRUM,\n [ChainId.INEVM]: INEVM,\n [ChainId.SEPOLIA]: ETH,\n [ChainId.LINEA]: LINEA,\n [ChainId.LIGHTLINK]: LIGHTLINK,\n [ChainId.IOTA]: IOTA,\n [ChainId.BASE]: BASE,\n [ChainId.GRAPHLINQ]: GRAPHLINQ,\n [ChainId.AVAX]: AVAX,\n [ChainId.BLAST]: BLAST,\n [ChainId.CROSSFI]: CROSSFI,\n [ChainId.MONAD_TESTNET]: MONAD,\n [ChainId.MONAD]: MONAD,\n [ChainId.SONIC]: SONIC,\n [ChainId.BERACHAIN]: BERA,\n [ChainId.SOL]: SOL,\n [ChainId.KATANA]: KATANA,\n [ChainId.UNICHAIN]: UNICHAIN,\n [ChainId.MEGAETH_TESTNET]: MEGAETH,\n [ChainId.HYPEREVM]: HYPEREVM,\n [ChainId.APTOS]: APTOS,\n [ChainId.SUI]: SUI,\n [ChainId.BITTENSOR_TESTNET]: BitTensor,\n [ChainId.ROBINHOOD]: Robinhood,\n [ChainId.L1X]: L1X,\n}\n\n// Network labels\nexport const NETWORK_LABEL: Record<number, string> = {\n [ChainId.BSC]: 'BNB',\n [ChainId.BSC_TESTNET]: 'BNB Testnet',\n [ChainId.MATIC]: 'Polygon',\n [ChainId.MAINNET]: 'Ethereum',\n [ChainId.TLOS]: 'Telos',\n [ChainId.ARBITRUM]: 'Arbitrum',\n [ChainId.INEVM]: 'inEVM',\n [ChainId.SEPOLIA]: 'Sepolia',\n [ChainId.LINEA]: 'Linea',\n [ChainId.LIGHTLINK]: 'Lightlink',\n [ChainId.IOTA]: 'Iota',\n [ChainId.IOTA_TESTNET]: 'Iota Testnet',\n [ChainId.BASE]: 'Base',\n [ChainId.GRAPHLINQ]: 'GraphLinq',\n [ChainId.AVAX]: 'Avalanche',\n [ChainId.BLAST]: 'Blast',\n [ChainId.CROSSFI]: 'Crossfi',\n [ChainId.MONAD_TESTNET]: 'Monad Testnet',\n [ChainId.MONAD]: 'Monad',\n [ChainId.SONIC]: 'Sonic',\n [ChainId.BERACHAIN]: 'Berachain',\n [ChainId.SOL]: 'Solana',\n [ChainId.KATANA]: 'Katana',\n [ChainId.UNICHAIN]: 'Unichain',\n [ChainId.MEGAETH_TESTNET]: 'MegaETH Testnet',\n [ChainId.HYPEREVM]: 'HyperEVM',\n [ChainId.APTOS]: 'Aptos',\n [ChainId.SUI]: 'Sui',\n [ChainId.BITTENSOR_TESTNET]: 'Bittensor Testnet',\n [ChainId.ROBINHOOD]: 'Robinhood',\n [ChainId.L1X]: 'Layer One X',\n}\n\nexport const SHORT_NETWORK_LABEL: Record<number, string> = {\n [ChainId.BSC]: 'BNB',\n [ChainId.MATIC]: 'Pol',\n [ChainId.MAINNET]: 'Eth',\n [ChainId.TLOS]: 'Telo',\n [ChainId.ARBITRUM]: 'Arb',\n [ChainId.LINEA]: 'Line',\n [ChainId.LIGHTLINK]: 'Ligh',\n [ChainId.IOTA]: 'Iota',\n [ChainId.BASE]: 'Base',\n [ChainId.GRAPHLINQ]: 'Grap',\n [ChainId.AVAX]: 'Avax',\n [ChainId.BLAST]: 'Bla',\n [ChainId.CROSSFI]: 'Cro',\n [ChainId.MONAD]: 'Mona',\n [ChainId.SONIC]: 'Son',\n [ChainId.BERACHAIN]: 'Bera',\n [ChainId.SOL]: 'Sol',\n [ChainId.KATANA]: 'Kat',\n [ChainId.UNICHAIN]: 'Unic',\n [ChainId.HYPEREVM]: 'Hyp',\n [ChainId.APTOS]: 'Apt',\n [ChainId.SUI]: 'Sui',\n [ChainId.BITTENSOR_TESTNET]: 'Bitt',\n [ChainId.ROBINHOOD]: 'Robin',\n [ChainId.L1X]: 'L1X',\n [ChainId.SEPOLIA]: 'Sep',\n}\n\n// Network block explorers\nexport const BLOCK_EXPLORER: Record<number, string> = {\n [ChainId.MAINNET]: 'https://etherscan.io',\n [ChainId.ARBITRUM]: 'https://arbiscan.io',\n [ChainId.MATIC]: 'https://polygonscan.com',\n [ChainId.BSC]: 'https://bscscan.com',\n [ChainId.BSC_TESTNET]: 'https://testnet.bscscan.com',\n [ChainId.TLOS]: 'https://www.teloscan.io',\n [ChainId.INEVM]: 'https://explorer.inevm.com',\n [ChainId.SEPOLIA]: 'https://sepolia.etherscan.io',\n [ChainId.LINEA]: 'https://lineascan.build',\n [ChainId.LIGHTLINK]: 'https://phoenix.lightlink.io',\n [ChainId.IOTA]: 'https://explorer.evm.iota.org',\n [ChainId.IOTA_TESTNET]: 'https://explorer.evm.testnet.iotaledger.net/',\n [ChainId.BASE]: 'https://basescan.org',\n [ChainId.GRAPHLINQ]: 'https://graphlinq.dex.guru',\n [ChainId.AVAX]: 'https://snowtrace.io/',\n [ChainId.BLAST]: 'https://blastscan.io',\n [ChainId.CROSSFI]: 'https://xfiscan.com',\n [ChainId.MONAD_TESTNET]: 'https://testnet.monadexplorer.com/',\n [ChainId.MONAD]: 'https://monadvision.com/',\n [ChainId.SONIC]: 'https://sonicscan.org',\n [ChainId.BERACHAIN]: 'https://berascan.com',\n [ChainId.SOL]: 'https://solscan.io',\n [ChainId.KATANA]: 'https://explorer.katanarpc.com',\n [ChainId.UNICHAIN]: 'https://uniscan.xyz',\n [ChainId.MEGAETH_TESTNET]: 'https://megaexplorer.xyz',\n [ChainId.HYPEREVM]: 'https://hyperevmscan.io',\n [ChainId.APTOS]: 'https://explorer.aptoslabs.com',\n [ChainId.SUI]: 'https://suiscan.xyz/mainnet',\n [ChainId.BITTENSOR_TESTNET]: 'https://evm-testscan.dev.opentensor.ai',\n [ChainId.ROBINHOOD]: 'https://robinhoodchain.blockscout.com',\n [ChainId.L1X]: 'https://explorer.l1xapp.com',\n}\n"],"names":["MONAD","SONIC"],"mappings":"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"}
|
|
@@ -25,7 +25,7 @@ const PUBLIC_RPC_URLS = {
|
|
|
25
25
|
],
|
|
26
26
|
[ChainId.TLOS]: ['https://mainnet.telos.net/evm'],
|
|
27
27
|
[ChainId.INEVM]: ['https://mainnet.rpc.inevm.com/http'],
|
|
28
|
-
[ChainId.SEPOLIA]: ['https://
|
|
28
|
+
[ChainId.SEPOLIA]: ['https://ethereum-sepolia-rpc.publicnode.com'],
|
|
29
29
|
[ChainId.LINEA]: [
|
|
30
30
|
'https://rpc.linea.build',
|
|
31
31
|
'https://linea.drpc.org',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"networks.js","sources":["../../../src/config/constants/networks.ts"],"sourcesContent":["import { ChainId } from '@ape.swap/apeswap-lists'\nimport { APTOS_FULLNODE_URL } from '../../constants/aptosConstants'\n\nexport const PUBLIC_RPC_URLS: Partial<Record<ChainId, string[]>> = {\n [ChainId.BSC]: [\n 'https://bsc-dataseed.binance.org/',\n 'https://bsc-dataseed1.defibit.io',\n 'https://endpoints.omniatech.io/v1/bsc/mainnet/public',\n ],\n [ChainId.ARBITRUM]: ['https://arb1.arbitrum.io/rpc'],\n [ChainId.BSC_TESTNET]: ['https://data-seed-prebsc-2-s3.binance.org:8545/'],\n [ChainId.MATIC]: [\n 'https://polygon.drpc.org',\n 'https://1rpc.io/matic',\n 'https://polygon-rpc.com/', // this is now freemium\n 'https://polygon-mainnet.public.blastapi.io/',\n 'https://rpc-mainnet.matic.network',\n 'https://matic-mainnet.chainstacklabs.com',\n ],\n [ChainId.MAINNET]: [\n 'https://ethereum-rpc.publicnode.com',\n 'https://eth.drpc.org',\n 'https://eth-mainnet.public.blastapi.io',\n 'https://rpc.ankr.com/eth',\n ],\n [ChainId.TLOS]: ['https://mainnet.telos.net/evm'],\n [ChainId.INEVM]: ['https://mainnet.rpc.inevm.com/http'],\n [ChainId.SEPOLIA]: ['https://
|
|
1
|
+
{"version":3,"file":"networks.js","sources":["../../../src/config/constants/networks.ts"],"sourcesContent":["import { ChainId } from '@ape.swap/apeswap-lists'\nimport { APTOS_FULLNODE_URL } from '../../constants/aptosConstants'\n\nexport const PUBLIC_RPC_URLS: Partial<Record<ChainId, string[]>> = {\n [ChainId.BSC]: [\n 'https://bsc-dataseed.binance.org/',\n 'https://bsc-dataseed1.defibit.io',\n 'https://endpoints.omniatech.io/v1/bsc/mainnet/public',\n ],\n [ChainId.ARBITRUM]: ['https://arb1.arbitrum.io/rpc'],\n [ChainId.BSC_TESTNET]: ['https://data-seed-prebsc-2-s3.binance.org:8545/'],\n [ChainId.MATIC]: [\n 'https://polygon.drpc.org',\n 'https://1rpc.io/matic',\n 'https://polygon-rpc.com/', // this is now freemium\n 'https://polygon-mainnet.public.blastapi.io/',\n 'https://rpc-mainnet.matic.network',\n 'https://matic-mainnet.chainstacklabs.com',\n ],\n [ChainId.MAINNET]: [\n 'https://ethereum-rpc.publicnode.com',\n 'https://eth.drpc.org',\n 'https://eth-mainnet.public.blastapi.io',\n 'https://rpc.ankr.com/eth',\n ],\n [ChainId.TLOS]: ['https://mainnet.telos.net/evm'],\n [ChainId.INEVM]: ['https://mainnet.rpc.inevm.com/http'],\n [ChainId.SEPOLIA]: ['https://ethereum-sepolia-rpc.publicnode.com'],\n [ChainId.LINEA]: [\n 'https://rpc.linea.build',\n 'https://linea.drpc.org',\n 'https://linea.blockpi.network/v1/rpc/public',\n 'https://linea.decubate.com',\n ],\n [ChainId.LIGHTLINK]: [\n 'https://replicator.phoenix.lightlink.io/rpc/v1',\n 'https://endpoints.omniatech.io/v1/lightlink/phoenix/public',\n ],\n [ChainId.IOTA]: ['https://json-rpc.evm.iotaledger.net/'],\n [ChainId.IOTA_TESTNET]: ['https://json-rpc.evm.testnet.iotaledger.net/'],\n [ChainId.BASE]: ['https://base-rpc.publicnode.com', 'https://mainnet.base.org'],\n [ChainId.GRAPHLINQ]: ['https://glq-dataseed.graphlinq.io'],\n [ChainId.AVAX]: ['https://avalanche-c-chain-rpc.publicnode.com', 'https://avax.meowrpc.com'],\n [ChainId.BLAST]: ['https://rpc.blast.io'],\n [ChainId.CROSSFI]: ['https://rpc.mainnet.ms'],\n [ChainId.MONAD_TESTNET]: ['https://testnet-rpc2.monad.xyz/52227f026fa8fac9e2014c58fbf5643369b3bfc6'],\n [ChainId.MONAD]: [\n 'https://rpc.monad.xyz',\n 'https://rpc1.monad.xyz',\n 'https://rpc2.monad.xyz',\n 'https://rpc3.monad.xyz',\n 'https://rpc4.monad.xyz',\n ],\n [ChainId.SONIC]: ['https://rpc.soniclabs.com'],\n [ChainId.BERACHAIN]: ['https://rpc.berachain.com', 'https://berachain.drpc.org'],\n [ChainId.KATANA]: ['https://rpc-katana.t.conduit.xyz/NRcSLqEG4Hw55GzTSu6Sratq94kKtUGfH'],\n [ChainId.UNICHAIN]: ['https://unichain-rpc.publicnode.com', 'https://unichain.drpc.org'],\n [ChainId.MEGAETH_TESTNET]: ['https://carrot.megaeth.com/rpc'],\n [ChainId.HYPEREVM]: ['https://rpc.hyperliquid.xyz/evm'],\n [ChainId.BITTENSOR_TESTNET]: ['https://bittensor-testnet-lite-public.nodies.app'],\n [ChainId.ROBINHOOD]: ['https://rpc.mainnet.chain.robinhood.com'],\n [ChainId.L1X]: ['https://v2-mainnet-rpc.l1x.foundation'],\n\n // Aptos fullnode — URL is clean; the API key goes in the Authorization\n // header, not as a query param (see aptosConstants.ts). The cast on\n // APTOS_CHAIN_ID is required because the synthetic id is not in the\n // ChainId enum yet.\n [ChainId.APTOS]: [APTOS_FULLNODE_URL],\n\n // Sui fullnode — public RPC, no API key required (see suiConstants.ts).\n [ChainId.SUI]: ['https://fullnode.mainnet.sui.io:443'],\n\n // SOL RPC is not public. Production URL (morning-autumn-dream) is domain-protected, development URL (ancient-cold-sailboat) is free, use with caution.\n [ChainId.SOL]:\n process.env.NODE_ENV === 'production'\n ? ['https://morning-autumn-dream.solana-mainnet.quiknode.pro/1ef6069950c798a43a112c0fe5eb157309427db8']\n : [\n 'https://ancient-cold-sailboat.solana-mainnet.quiknode.pro/da13400ad8d0035313f3e71c6a37c107d0d0334b',\n 'https://mainnet.helius-rpc.com/?api-key=d80b11e0-692f-4da0-91d6-830799c8c385',\n ], // mainnet\n // [ChainId.SOL]: ['https://devnet.helius-rpc.com/?api-key=095f6fc7-1be0-4d94-a737-4a5ee0d82ea5'], // devnet\n}\n\n// Multiple Helius SOL RPC endpoints for rotation\nconst HELIUS_SOL_RPC_ENDPOINTS = [\n 'https://mainnet.helius-rpc.com/?api-key=d80b11e0-692f-4da0-91d6-830799c8c385', // apefede09@gmail.com\n 'https://mainnet.helius-rpc.com/?api-key=8631ce42-9000-490d-9ac3-f3a81de508b2', // apebond.design@gmail.com\n 'https://mainnet.helius-rpc.com/?api-key=c097651d-ae13-4ab4-ae4c-fef7e48d4561', // n0mbr3al3at0r10@gmail.com\n 'https://mainnet.helius-rpc.com/?api-key=a5c4ea36-fa6b-4bcc-a7a4-e10012b9ea7e', // RandomApe personal mail\n]\n\n// export const HELIUS_SOL_RPC_ENDPOINTS = ['https://devnet.helius-rpc.com/?api-key=095f6fc7-1be0-4d94-a737-4a5ee0d82ea5'] //devnet\n\n// Helius endpoints in random order, so load spreads across the keys and a retry can use a different one\nexport const getShuffledHeliusRPCs = (): string[] => {\n const endpoints = [...HELIUS_SOL_RPC_ENDPOINTS]\n for (let i = endpoints.length - 1; i > 0; i--) {\n const j = Math.floor(Math.random() * (i + 1))\n ;[endpoints[i], endpoints[j]] = [endpoints[j], endpoints[i]]\n }\n return endpoints\n}\n\n// Custom RPC registry — set by the consumer via the `customRPCS` prop\nlet _customRPCS: Partial<Record<ChainId, string[]>> = {}\n\nexport const setCustomRPCS = (urls: Partial<Record<ChainId, string[]>>) => {\n _customRPCS = urls\n}\n\nexport const getRPC = (chain: ChainId): string => {\n return _customRPCS?.[chain]?.[0] ?? (PUBLIC_RPC_URLS?.[chain]?.[0] as string)\n}\n"],"names":[],"mappings":";;;AAGO,MAAM,eAAe,GAAuC;AACjE,IAAA,CAAC,OAAO,CAAC,GAAG,GAAG;QACb,mCAAmC;QACnC,kCAAkC;QAClC,sDAAsD;AACvD,KAAA;AACD,IAAA,CAAC,OAAO,CAAC,QAAQ,GAAG,CAAC,8BAA8B,CAAC;AACpD,IAAA,CAAC,OAAO,CAAC,WAAW,GAAG,CAAC,iDAAiD,CAAC;AAC1E,IAAA,CAAC,OAAO,CAAC,KAAK,GAAG;QACf,0BAA0B;QAC1B,uBAAuB;AACvB,QAAA,0BAA0B;QAC1B,6CAA6C;QAC7C,mCAAmC;QACnC,0CAA0C;AAC3C,KAAA;AACD,IAAA,CAAC,OAAO,CAAC,OAAO,GAAG;QACjB,qCAAqC;QACrC,sBAAsB;QACtB,wCAAwC;QACxC,0BAA0B;AAC3B,KAAA;AACD,IAAA,CAAC,OAAO,CAAC,IAAI,GAAG,CAAC,+BAA+B,CAAC;AACjD,IAAA,CAAC,OAAO,CAAC,KAAK,GAAG,CAAC,oCAAoC,CAAC;AACvD,IAAA,CAAC,OAAO,CAAC,OAAO,GAAG,CAAC,6CAA6C,CAAC;AAClE,IAAA,CAAC,OAAO,CAAC,KAAK,GAAG;QACf,yBAAyB;QACzB,wBAAwB;QACxB,6CAA6C;QAC7C,4BAA4B;AAC7B,KAAA;AACD,IAAA,CAAC,OAAO,CAAC,SAAS,GAAG;QACnB,gDAAgD;QAChD,4DAA4D;AAC7D,KAAA;AACD,IAAA,CAAC,OAAO,CAAC,IAAI,GAAG,CAAC,sCAAsC,CAAC;AACxD,IAAA,CAAC,OAAO,CAAC,YAAY,GAAG,CAAC,8CAA8C,CAAC;IACxE,CAAC,OAAO,CAAC,IAAI,GAAG,CAAC,iCAAiC,EAAE,0BAA0B,CAAC;AAC/E,IAAA,CAAC,OAAO,CAAC,SAAS,GAAG,CAAC,mCAAmC,CAAC;IAC1D,CAAC,OAAO,CAAC,IAAI,GAAG,CAAC,8CAA8C,EAAE,0BAA0B,CAAC;AAC5F,IAAA,CAAC,OAAO,CAAC,KAAK,GAAG,CAAC,sBAAsB,CAAC;AACzC,IAAA,CAAC,OAAO,CAAC,OAAO,GAAG,CAAC,wBAAwB,CAAC;AAC7C,IAAA,CAAC,OAAO,CAAC,aAAa,GAAG,CAAC,yEAAyE,CAAC;AACpG,IAAA,CAAC,OAAO,CAAC,KAAK,GAAG;QACf,uBAAuB;QACvB,wBAAwB;QACxB,wBAAwB;QACxB,wBAAwB;QACxB,wBAAwB;AACzB,KAAA;AACD,IAAA,CAAC,OAAO,CAAC,KAAK,GAAG,CAAC,2BAA2B,CAAC;IAC9C,CAAC,OAAO,CAAC,SAAS,GAAG,CAAC,2BAA2B,EAAE,4BAA4B,CAAC;AAChF,IAAA,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,oEAAoE,CAAC;IACxF,CAAC,OAAO,CAAC,QAAQ,GAAG,CAAC,qCAAqC,EAAE,2BAA2B,CAAC;AACxF,IAAA,CAAC,OAAO,CAAC,eAAe,GAAG,CAAC,gCAAgC,CAAC;AAC7D,IAAA,CAAC,OAAO,CAAC,QAAQ,GAAG,CAAC,iCAAiC,CAAC;AACvD,IAAA,CAAC,OAAO,CAAC,iBAAiB,GAAG,CAAC,kDAAkD,CAAC;AACjF,IAAA,CAAC,OAAO,CAAC,SAAS,GAAG,CAAC,yCAAyC,CAAC;AAChE,IAAA,CAAC,OAAO,CAAC,GAAG,GAAG,CAAC,uCAAuC,CAAC;;;;;AAMxD,IAAA,CAAC,OAAO,CAAC,KAAK,GAAG,CAAC,kBAAkB,CAAC;;AAGrC,IAAA,CAAC,OAAO,CAAC,GAAG,GAAG,CAAC,qCAAqC,CAAC;;IAGtD,CAAC,OAAO,CAAC,GAAG,GACV,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK;UACrB,CAAC,mGAAmG;AACtG,UAAE;YACE,oGAAoG;YACpG,8EAA8E;AAC/E,SAAA;;;AAIT;AACA,MAAM,wBAAwB,GAAG;AAC/B,IAAA,8EAA8E;AAC9E,IAAA,8EAA8E;AAC9E,IAAA,8EAA8E;AAC9E,IAAA,8EAA8E;CAC/E;AAED;AAEA;AACO,MAAM,qBAAqB,GAAG,MAAe;AAClD,IAAA,MAAM,SAAS,GAAG,CAAC,GAAG,wBAAwB,CAAC;AAC/C,IAAA,KAAK,IAAI,CAAC,GAAG,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;AAC7C,QAAA,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;QAC5C,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC;IAC9D;AACA,IAAA,OAAO,SAAS;AAClB;AAEA;AACA,IAAI,WAAW,GAAuC,EAAE;AAEjD,MAAM,aAAa,GAAG,CAAC,IAAwC,KAAI;IACxE,WAAW,GAAG,IAAI;AACpB;AAEO,MAAM,MAAM,GAAG,CAAC,KAAc,KAAY;AAC/C,IAAA,OAAO,WAAW,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,IAAK,eAAe,GAAG,KAAK,CAAC,GAAG,CAAC,CAAY;AAC/E;;;;"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { ChainId } from '@ape.swap/apeswap-lists';
|
|
2
|
-
export declare const zapSupported: readonly [ChainId.MAINNET, ChainId.MATIC, ChainId.BSC, ChainId.BASE, ChainId.ARBITRUM, ChainId.HYPEREVM, ChainId.ROBINHOOD, ChainId.SOL, ChainId.APTOS, ChainId.SUI];
|
|
2
|
+
export declare const zapSupported: readonly [ChainId.MAINNET, ChainId.MATIC, ChainId.BSC, ChainId.BASE, ChainId.ARBITRUM, ChainId.HYPEREVM, ChainId.ROBINHOOD, ChainId.SEPOLIA, ChainId.SOL, ChainId.APTOS, ChainId.SUI];
|
|
3
3
|
/** Union of all chain IDs where zap is supported. Derived from `zapSupported`. */
|
|
4
4
|
export type ZapSupportedChainId = (typeof zapSupported)[number];
|
|
5
5
|
export declare const STRAPI_URL = "https://strapi-api.ape.bond";
|
|
6
|
-
export declare const SOUL_ZAP_API = "
|
|
6
|
+
export declare const SOUL_ZAP_API = "http://staging-api.soulsolidity.com/zap";
|
|
7
7
|
export declare const PRICE_API_URL = "https://price-api.ape.bond";
|
|
8
8
|
export declare const APEBOND = "https://ape.bond";
|
|
@@ -8,6 +8,7 @@ const zapSupported = [
|
|
|
8
8
|
ChainId.ARBITRUM,
|
|
9
9
|
ChainId.HYPEREVM,
|
|
10
10
|
ChainId.ROBINHOOD,
|
|
11
|
+
ChainId.SEPOLIA,
|
|
11
12
|
//
|
|
12
13
|
ChainId.SOL,
|
|
13
14
|
ChainId.APTOS,
|
|
@@ -23,7 +24,8 @@ const zapSupported = [
|
|
|
23
24
|
// ChainId.KATANA,
|
|
24
25
|
];
|
|
25
26
|
const STRAPI_URL = `https://strapi-api.ape.bond`;
|
|
26
|
-
const SOUL_ZAP_API = `https://api.soulsolidity.com/zap
|
|
27
|
+
// export const SOUL_ZAP_API = `https://api.soulsolidity.com/zap`
|
|
28
|
+
const SOUL_ZAP_API = `http://staging-api.soulsolidity.com/zap`;
|
|
27
29
|
const PRICE_API_URL = `https://price-api.ape.bond`;
|
|
28
30
|
const APEBOND = `https://ape.bond`;
|
|
29
31
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"variables.js","sources":["../../../src/config/constants/variables.ts"],"sourcesContent":["import { ChainId } from '@ape.swap/apeswap-lists'\n\nexport const zapSupported = [\n ChainId.MAINNET,\n ChainId.MATIC,\n ChainId.BSC,\n ChainId.BASE,\n ChainId.ARBITRUM,\n ChainId.HYPEREVM,\n ChainId.ROBINHOOD,\n //\n ChainId.SOL,\n ChainId.APTOS,\n ChainId.SUI,\n //\n // Chains below this point have not been re-deployed yet\n //\n // ChainId.LINEA,\n // ChainId.AVAX,\n // ChainId.BLAST,\n // ChainId.BERACHAIN,\n // ChainId.SONIC,\n // ChainId.KATANA,\n] as const\n\n/** Union of all chain IDs where zap is supported. Derived from `zapSupported`. */\nexport type ZapSupportedChainId = (typeof zapSupported)[number]\n\nexport const STRAPI_URL = `https://strapi-api.ape.bond`\
|
|
1
|
+
{"version":3,"file":"variables.js","sources":["../../../src/config/constants/variables.ts"],"sourcesContent":["import { ChainId } from '@ape.swap/apeswap-lists'\n\nexport const zapSupported = [\n ChainId.MAINNET,\n ChainId.MATIC,\n ChainId.BSC,\n ChainId.BASE,\n ChainId.ARBITRUM,\n ChainId.HYPEREVM,\n ChainId.ROBINHOOD,\n ChainId.SEPOLIA,\n //\n ChainId.SOL,\n ChainId.APTOS,\n ChainId.SUI,\n //\n // Chains below this point have not been re-deployed yet\n //\n // ChainId.LINEA,\n // ChainId.AVAX,\n // ChainId.BLAST,\n // ChainId.BERACHAIN,\n // ChainId.SONIC,\n // ChainId.KATANA,\n] as const\n\n/** Union of all chain IDs where zap is supported. Derived from `zapSupported`. */\nexport type ZapSupportedChainId = (typeof zapSupported)[number]\n\nexport const STRAPI_URL = `https://strapi-api.ape.bond`\n// export const SOUL_ZAP_API = `https://api.soulsolidity.com/zap`\nexport const SOUL_ZAP_API = `http://staging-api.soulsolidity.com/zap`\nexport const PRICE_API_URL = `https://price-api.ape.bond`\nexport const APEBOND = `https://ape.bond`\n"],"names":[],"mappings":";;AAEO,MAAM,YAAY,GAAG;AAC1B,IAAA,OAAO,CAAC,OAAO;AACf,IAAA,OAAO,CAAC,KAAK;AACb,IAAA,OAAO,CAAC,GAAG;AACX,IAAA,OAAO,CAAC,IAAI;AACZ,IAAA,OAAO,CAAC,QAAQ;AAChB,IAAA,OAAO,CAAC,QAAQ;AAChB,IAAA,OAAO,CAAC,SAAS;AACjB,IAAA,OAAO,CAAC,OAAO;;AAEf,IAAA,OAAO,CAAC,GAAG;AACX,IAAA,OAAO,CAAC,KAAK;AACb,IAAA,OAAO,CAAC,GAAG;;;;;;;;;;;AAeN,MAAM,UAAU,GAAG;AAC1B;AACO,MAAM,YAAY,GAAG;AACrB,MAAM,aAAa,GAAG;AACtB,MAAM,OAAO,GAAG;;;;"}
|
|
@@ -36,6 +36,7 @@ const calculateBondsData = async (queryClient) => {
|
|
|
36
36
|
// Fetch the realtime-API adapters' bonds (EVM incl. PreTGE, Solana)
|
|
37
37
|
let evmSolBondsData = [];
|
|
38
38
|
try {
|
|
39
|
+
throw new Error('Force fallback to on-chain reads');
|
|
39
40
|
// We first try to fetch from realtime; if it fails we fall back to each adapter's on-chain reads.
|
|
40
41
|
const realTimeApiResponse = await apiGet(`${realTimeApiUrl}/bonds`);
|
|
41
42
|
evmSolBondsData = realTimeApiResponse.bonds.filter((bond) => chains.includes(bond.chainId) && usesRealtimeApi(bond.chainId));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useBondsData.js","sources":["../../../src/state/bonds/useBondsData.ts"],"sourcesContent":["import { QueryClient, useQuery, UseQueryResult } from '@tanstack/react-query'\nimport { QUERY_KEYS } from '../../config/constants/queryKeys'\nimport { BondsData } from '../../types/bonds'\nimport { apiGet } from '../../utils/httpClient'\nimport { SDKProps } from '../useSDKConfig'\nimport useTokenPrices, { TokenPrices } from '../tokenPrices/useTokenPrices'\nimport useBondsList from './useBondsList'\nimport { BillsConfig, ChainId, PreTGEConfig } from '@ape.swap/apeswap-lists'\nimport useBondsListPreTGE from './useBondsListPreTGE'\nimport { getAdapterForChain } from '../../adapters/registry'\n\nexport default function useBondsData(): UseQueryResult<BondsData[]> {\n const { data: bondList } = useBondsList()\n const { data: preTGEList } = useBondsListPreTGE()\n const { data: tokenPrices } = useTokenPrices()\n const tokenPricesKey = Object.keys(tokenPrices ?? {})?.length\n\n return useQuery({\n queryKey: [QUERY_KEYS.BONDS_DATA],\n queryFn: ({ client }) => calculateBondsData(client),\n refetchInterval: 25000, // i.e. 25 sec\n enabled: !!bondList && !!preTGEList && !!tokenPricesKey,\n refetchOnWindowFocus: false,\n refetchOnMount: false,\n refetchOnReconnect: false,\n retry: 0,\n staleTime: 25000, // i.e. 25 sec\n })\n}\n\nexport const calculateBondsData = async (queryClient: QueryClient): Promise<BondsData[]> => {\n // ----------------------- Step 1 -----------------------\n // Fetch necessary data from the queryClient\n const { chains, urls } = queryClient?.getQueryData([QUERY_KEYS.SDK_CONFIG]) as SDKProps\n const realTimeApiUrl = urls['realTimeApi']\n const apiUrl = urls['apiV2']\n\n // Adapters that don't use the realtime API are read on-chain in step 3. Chains without a registered adapter are\n // unsupported.\n const usesRealtimeApi = (chainId: ChainId) => getAdapterForChain(chainId)?.usesRealtimeApi ?? false\n\n // ----------------------- Step 2 -----------------------\n // Fetch the realtime-API adapters' bonds (EVM incl. PreTGE, Solana)\n let evmSolBondsData: BondsData[] = []\n\n try {\n // We first try to fetch from realtime; if it fails we fall back to each adapter's on-chain reads.\n const realTimeApiResponse = await apiGet<{ bonds: BondsData[] }>(`${realTimeApiUrl}/bonds`)\n evmSolBondsData = realTimeApiResponse.bonds.filter(\n (bond: BondsData) => chains.includes(bond.chainId) && usesRealtimeApi(bond.chainId),\n )\n } catch {\n // Fallback strategy\n console.time('Fallback BondsData')\n const bondList = queryClient?.getQueryData([QUERY_KEYS.BONDS_LIST]) as Record<ChainId, BillsConfig[]>\n const preTGEList = queryClient?.getQueryData([QUERY_KEYS.BONDS_LIST_PRE_TGE]) as PreTGEConfig[]\n const tokenPrices = queryClient?.getQueryData([QUERY_KEYS.TOKEN_PRICES]) as Partial<Record<ChainId, TokenPrices[]>>\n const billData = await Promise.all([\n ...chains\n .filter((c) => usesRealtimeApi(c))\n .map(async (chainId: ChainId) => {\n if (!bondList[chainId]) return []\n return await getAdapterForChain(chainId)!.fetchBondsData(\n chainId,\n bondList[chainId],\n tokenPrices[chainId],\n apiUrl,\n )\n }),\n ...chains.map(async (chainId: ChainId) => {\n const preTGE = getAdapterForChain(chainId)?.preTGE\n if (!preTGE) return []\n const filteredBonds = preTGEList?.filter((bond) => bond.chainId === chainId) ?? []\n return await preTGE.fetchBondsData(chainId, tokenPrices, filteredBonds, apiUrl)\n }),\n ])\n console.timeEnd('Fallback BondsData')\n evmSolBondsData = billData.flat()\n }\n\n // ----------------------- Step 3 -----------------------\n // Fetch on-chain-only bonds: adapters that don't use the realtime API (e.g. Aptos, Sui)\n let onChainBonds: BondsData[] = []\n const onChainAdapterChains = (chains as ChainId[]).filter((chainId) => {\n const adapter = getAdapterForChain(chainId)\n return !!adapter && !adapter.usesRealtimeApi\n })\n\n if (onChainAdapterChains.length > 0) {\n try {\n const bondList = queryClient?.getQueryData([QUERY_KEYS.BONDS_LIST]) as Record<ChainId, BillsConfig[]>\n const tokenPrices = queryClient?.getQueryData([QUERY_KEYS.TOKEN_PRICES]) as Partial<\n Record<ChainId, TokenPrices[]>\n >\n const results = await Promise.all(\n onChainAdapterChains.map((chainId) =>\n getAdapterForChain(chainId)!.fetchBondsData(chainId, bondList[chainId] ?? [], tokenPrices[chainId], apiUrl),\n ),\n )\n onChainBonds = results.flat()\n } catch (e) {\n console.error(e)\n }\n }\n\n return [...evmSolBondsData, ...onChainBonds]\n}\n"],"names":[],"mappings":";;;;;;;;AAWc,SAAU,YAAY,GAAA;IAClC,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,YAAY,EAAE;IACzC,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,GAAG,kBAAkB,EAAE;IACjD,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,GAAG,cAAc,EAAE;AAC9C,IAAA,MAAM,cAAc,GAAG,MAAM,CAAC,IAAI,CAAC,WAAW,IAAI,EAAE,CAAC,EAAE,MAAM;AAE7D,IAAA,OAAO,QAAQ,CAAC;AACd,QAAA,QAAQ,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC;QACjC,OAAO,EAAE,CAAC,EAAE,MAAM,EAAE,KAAK,kBAAkB,CAAC,MAAM,CAAC;QACnD,eAAe,EAAE,KAAK;QACtB,OAAO,EAAE,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,UAAU,IAAI,CAAC,CAAC,cAAc;AACvD,QAAA,oBAAoB,EAAE,KAAK;AAC3B,QAAA,cAAc,EAAE,KAAK;AACrB,QAAA,kBAAkB,EAAE,KAAK;AACzB,QAAA,KAAK,EAAE,CAAC;QACR,SAAS,EAAE,KAAK;AACjB,KAAA,CAAC;AACJ;MAEa,kBAAkB,GAAG,OAAO,WAAwB,KAA0B;;;AAGzF,IAAA,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,WAAW,EAAE,YAAY,CAAC,CAAC,UAAU,CAAC,UAAU,CAAC,CAAa;AACvF,IAAA,MAAM,cAAc,GAAG,IAAI,CAAC,aAAa,CAAC;AAC1C,IAAA,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC;;;AAI5B,IAAA,MAAM,eAAe,GAAG,CAAC,OAAgB,KAAK,kBAAkB,CAAC,OAAO,CAAC,EAAE,eAAe,IAAI,KAAK;;;IAInG,IAAI,eAAe,GAAgB,EAAE;AAErC,IAAA,IAAI;;
|
|
1
|
+
{"version":3,"file":"useBondsData.js","sources":["../../../src/state/bonds/useBondsData.ts"],"sourcesContent":["import { QueryClient, useQuery, UseQueryResult } from '@tanstack/react-query'\nimport { QUERY_KEYS } from '../../config/constants/queryKeys'\nimport { BondsData } from '../../types/bonds'\nimport { apiGet } from '../../utils/httpClient'\nimport { SDKProps } from '../useSDKConfig'\nimport useTokenPrices, { TokenPrices } from '../tokenPrices/useTokenPrices'\nimport useBondsList from './useBondsList'\nimport { BillsConfig, ChainId, PreTGEConfig } from '@ape.swap/apeswap-lists'\nimport useBondsListPreTGE from './useBondsListPreTGE'\nimport { getAdapterForChain } from '../../adapters/registry'\n\nexport default function useBondsData(): UseQueryResult<BondsData[]> {\n const { data: bondList } = useBondsList()\n const { data: preTGEList } = useBondsListPreTGE()\n const { data: tokenPrices } = useTokenPrices()\n const tokenPricesKey = Object.keys(tokenPrices ?? {})?.length\n\n return useQuery({\n queryKey: [QUERY_KEYS.BONDS_DATA],\n queryFn: ({ client }) => calculateBondsData(client),\n refetchInterval: 25000, // i.e. 25 sec\n enabled: !!bondList && !!preTGEList && !!tokenPricesKey,\n refetchOnWindowFocus: false,\n refetchOnMount: false,\n refetchOnReconnect: false,\n retry: 0,\n staleTime: 25000, // i.e. 25 sec\n })\n}\n\nexport const calculateBondsData = async (queryClient: QueryClient): Promise<BondsData[]> => {\n // ----------------------- Step 1 -----------------------\n // Fetch necessary data from the queryClient\n const { chains, urls } = queryClient?.getQueryData([QUERY_KEYS.SDK_CONFIG]) as SDKProps\n const realTimeApiUrl = urls['realTimeApi']\n const apiUrl = urls['apiV2']\n\n // Adapters that don't use the realtime API are read on-chain in step 3. Chains without a registered adapter are\n // unsupported.\n const usesRealtimeApi = (chainId: ChainId) => getAdapterForChain(chainId)?.usesRealtimeApi ?? false\n\n // ----------------------- Step 2 -----------------------\n // Fetch the realtime-API adapters' bonds (EVM incl. PreTGE, Solana)\n let evmSolBondsData: BondsData[] = []\n\n try {\n throw new Error('Force fallback to on-chain reads')\n // We first try to fetch from realtime; if it fails we fall back to each adapter's on-chain reads.\n const realTimeApiResponse = await apiGet<{ bonds: BondsData[] }>(`${realTimeApiUrl}/bonds`)\n evmSolBondsData = realTimeApiResponse.bonds.filter(\n (bond: BondsData) => chains.includes(bond.chainId) && usesRealtimeApi(bond.chainId),\n )\n } catch {\n // Fallback strategy\n console.time('Fallback BondsData')\n const bondList = queryClient?.getQueryData([QUERY_KEYS.BONDS_LIST]) as Record<ChainId, BillsConfig[]>\n const preTGEList = queryClient?.getQueryData([QUERY_KEYS.BONDS_LIST_PRE_TGE]) as PreTGEConfig[]\n const tokenPrices = queryClient?.getQueryData([QUERY_KEYS.TOKEN_PRICES]) as Partial<Record<ChainId, TokenPrices[]>>\n const billData = await Promise.all([\n ...chains\n .filter((c) => usesRealtimeApi(c))\n .map(async (chainId: ChainId) => {\n if (!bondList[chainId]) return []\n return await getAdapterForChain(chainId)!.fetchBondsData(\n chainId,\n bondList[chainId],\n tokenPrices[chainId],\n apiUrl,\n )\n }),\n ...chains.map(async (chainId: ChainId) => {\n const preTGE = getAdapterForChain(chainId)?.preTGE\n if (!preTGE) return []\n const filteredBonds = preTGEList?.filter((bond) => bond.chainId === chainId) ?? []\n return await preTGE.fetchBondsData(chainId, tokenPrices, filteredBonds, apiUrl)\n }),\n ])\n console.timeEnd('Fallback BondsData')\n evmSolBondsData = billData.flat()\n }\n\n // ----------------------- Step 3 -----------------------\n // Fetch on-chain-only bonds: adapters that don't use the realtime API (e.g. Aptos, Sui)\n let onChainBonds: BondsData[] = []\n const onChainAdapterChains = (chains as ChainId[]).filter((chainId) => {\n const adapter = getAdapterForChain(chainId)\n return !!adapter && !adapter.usesRealtimeApi\n })\n\n if (onChainAdapterChains.length > 0) {\n try {\n const bondList = queryClient?.getQueryData([QUERY_KEYS.BONDS_LIST]) as Record<ChainId, BillsConfig[]>\n const tokenPrices = queryClient?.getQueryData([QUERY_KEYS.TOKEN_PRICES]) as Partial<\n Record<ChainId, TokenPrices[]>\n >\n const results = await Promise.all(\n onChainAdapterChains.map((chainId) =>\n getAdapterForChain(chainId)!.fetchBondsData(chainId, bondList[chainId] ?? [], tokenPrices[chainId], apiUrl),\n ),\n )\n onChainBonds = results.flat()\n } catch (e) {\n console.error(e)\n }\n }\n\n return [...evmSolBondsData, ...onChainBonds]\n}\n"],"names":[],"mappings":"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"}
|
|
@@ -2,6 +2,15 @@ import { QueryClient, UseQueryResult } from '@tanstack/react-query';
|
|
|
2
2
|
import { BillsConfig, ChainId } from '@ape.swap/apeswap-lists';
|
|
3
3
|
import { UserBill } from '../../types/yourbonds';
|
|
4
4
|
import type { Ecosystem } from '../../adapters/types';
|
|
5
|
-
|
|
5
|
+
/** What the query caches: the bills plus the chains whose bills couldn't be fetched. */
|
|
6
|
+
export interface UserBondsResult {
|
|
7
|
+
bills: UserBill[];
|
|
8
|
+
/** Chains (with a registered adapter and a connected account) whose fetch failed. Their bills are missing from `bills`. */
|
|
9
|
+
failedChains: ChainId[];
|
|
10
|
+
}
|
|
11
|
+
export default function useUserBonds(): Omit<UseQueryResult<UserBondsResult>, 'data'> & {
|
|
12
|
+
data: UserBill[] | undefined;
|
|
13
|
+
failedChains: ChainId[];
|
|
14
|
+
};
|
|
6
15
|
/** @param accounts the connected account of each family, by ecosystem (see useChainAccount) */
|
|
7
16
|
export declare const getUserBonds: (accounts: Partial<Record<Ecosystem, string | null>>, bondList: Record<ChainId, BillsConfig[]>, queryClient: QueryClient) => Promise<UserBill[]>;
|
|
@@ -16,7 +16,7 @@ function useUserBonds() {
|
|
|
16
16
|
const { address: addressAptos } = useChainAccount('aptos');
|
|
17
17
|
const { address: addressSUI } = useChainAccount('sui');
|
|
18
18
|
const { data: tokenPrices } = useTokenPrices();
|
|
19
|
-
|
|
19
|
+
const query = useQuery({
|
|
20
20
|
queryKey: [
|
|
21
21
|
QUERY_KEYS.USER_BONDS,
|
|
22
22
|
addressEVM,
|
|
@@ -25,7 +25,7 @@ function useUserBonds() {
|
|
|
25
25
|
addressSUI,
|
|
26
26
|
Object.keys(tokenPrices ?? {})?.length ?? null,
|
|
27
27
|
],
|
|
28
|
-
queryFn: ({ client }) =>
|
|
28
|
+
queryFn: ({ client }) => fetchUserBonds({ evm: addressEVM, sol: addressSOL, aptos: addressAptos, sui: addressSUI }, bondList, client),
|
|
29
29
|
enabled: !!bondList && !!(addressEVM || addressSOL || addressAptos || addressSUI) && !!tokenPrices,
|
|
30
30
|
refetchInterval: 120000,
|
|
31
31
|
refetchOnWindowFocus: false,
|
|
@@ -33,21 +33,26 @@ function useUserBonds() {
|
|
|
33
33
|
refetchOnReconnect: false,
|
|
34
34
|
retry: 1,
|
|
35
35
|
});
|
|
36
|
+
// `data` stays the plain bills array for consumers; failed chains are exposed next to it
|
|
37
|
+
return { ...query, data: query.data?.bills, failedChains: query.data?.failedChains ?? [] };
|
|
36
38
|
}
|
|
37
39
|
/** @param accounts the connected account of each family, by ecosystem (see useChainAccount) */
|
|
38
|
-
const getUserBonds = async (accounts, bondList, queryClient) =>
|
|
40
|
+
const getUserBonds = async (accounts, bondList, queryClient) => (await fetchUserBonds(accounts, bondList, queryClient)).bills;
|
|
41
|
+
const fetchUserBonds = async (accounts, bondList, queryClient) => {
|
|
39
42
|
const { chains, urls } = queryClient?.getQueryData([QUERY_KEYS.SDK_CONFIG]);
|
|
40
43
|
const apiUrl = urls['apiV2'];
|
|
41
44
|
const tokenPrices = queryClient?.getQueryData([QUERY_KEYS.TOKEN_PRICES]);
|
|
42
45
|
try {
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
+
console.log('Fetching User Bonds');
|
|
47
|
+
const chainsToFetch = chains.filter((chain) => bondList[chain]);
|
|
48
|
+
const results = await Promise.allSettled(chainsToFetch.map((chain) => {
|
|
46
49
|
// Chains without a registered adapter are unsupported
|
|
47
50
|
const adapter = getAdapterForChain(chain);
|
|
48
51
|
const account = adapter && accounts[adapter.ecosystem];
|
|
49
52
|
return adapter && account ? adapter.fetchUserBonds(chain, account, bondList[chain], tokenPrices, apiUrl) : [];
|
|
50
53
|
}));
|
|
54
|
+
// `results` follows `chainsToFetch`. Chains skipped above (no adapter / no account) resolve to [], not a failure.
|
|
55
|
+
const failedChains = chainsToFetch.filter((_chain, i) => results[i].status === 'rejected');
|
|
51
56
|
// Filter out only fulfilled promises
|
|
52
57
|
const fulfilledResults = results
|
|
53
58
|
.filter((result) => result.status === 'fulfilled')
|
|
@@ -56,9 +61,11 @@ const getUserBonds = async (accounts, bondList, queryClient) => {
|
|
|
56
61
|
// Prepare body for batch API call
|
|
57
62
|
// api-v2 doesn't support adapters with enrichUserBondsViaApi: false (e.g. Aptos, Sui). Their bills are read
|
|
58
63
|
// on-chain, with no /bills/multi-batch enrichment, and use the placeholder image from their constants.
|
|
59
|
-
|
|
64
|
+
// Nor LP staking bonds: their nftData comes from REAL's API, filled in by the adapter's fetcher.
|
|
65
|
+
const enrichViaApi = (userBond) => userBond?.bond?.billType !== 'lpStaking' &&
|
|
66
|
+
(getAdapterForChain(userBond?.bond?.chainId)?.enrichUserBondsViaApi ?? true);
|
|
60
67
|
const body = Object.values(onChainData
|
|
61
|
-
.filter((data) => enrichViaApi(data
|
|
68
|
+
.filter((data) => enrichViaApi(data))
|
|
62
69
|
.reduce((acc, data) => {
|
|
63
70
|
const contract = data?.bond?.chainId === ChainId.SOL ? data.bond.contractAddress[data.bond.chainId] : data.billNftAddress;
|
|
64
71
|
const key = `${data?.bond?.chainId}-${contract}`;
|
|
@@ -78,13 +85,13 @@ const getUserBonds = async (accounts, bondList, queryClient) => {
|
|
|
78
85
|
}
|
|
79
86
|
catch (e) {
|
|
80
87
|
console.error(e);
|
|
81
|
-
return onChainData;
|
|
88
|
+
return { bills: onChainData, failedChains };
|
|
82
89
|
}
|
|
83
90
|
// Enrich on-chain data with API data.
|
|
84
91
|
// Bills that weren't sent to api-v2 keep the nftData their fetcher populated instead of being overwritten with
|
|
85
92
|
// undefined.
|
|
86
93
|
const enrichedData = onChainData.map((userBond) => {
|
|
87
|
-
if (!enrichViaApi(userBond
|
|
94
|
+
if (!enrichViaApi(userBond))
|
|
88
95
|
return userBond;
|
|
89
96
|
const nftDataResponse = responseData?.find((nft) => {
|
|
90
97
|
const contract = nft.contract.toLowerCase();
|
|
@@ -99,7 +106,7 @@ const getUserBonds = async (accounts, bondList, queryClient) => {
|
|
|
99
106
|
nftData,
|
|
100
107
|
};
|
|
101
108
|
});
|
|
102
|
-
return enrichedData;
|
|
109
|
+
return { bills: enrichedData, failedChains };
|
|
103
110
|
}
|
|
104
111
|
catch (e) {
|
|
105
112
|
console.error(e);
|