├── .DS_Store
├── .github
├── ISSUE_TEMPLATE
│ ├── -chain-name-here--connect-wallet---wallets.md
│ ├── -chain-name-here--create-a-chain-config--connect-to-mainnet-and-testnet-rpcs.md
│ ├── -chain-name-here--create-a-context-provider-to-expose-address-and-wallet-logic.md
│ ├── -chain-name-here--create-a-token-list--add-icon-bridged-versions.md
│ ├── -chain-name-here--create-a-websocket-event-handler-for-xcall-communication.md
│ ├── -chain-name-here--handle-transaction-signing-for-all-the-actions-from-the-new-chain.md
│ └── -chain-name-here--update-wallet-section-with-new-chain--fetch-balances.md
└── workflows
│ ├── crowdin-sync.yaml
│ └── crowdin.yaml
├── .gitignore
├── .husky
└── pre-commit
├── .lintstagedrc
├── .prettierrc
├── .vscode
├── extensions.json
├── launch.json
└── settings.json
├── apps
├── hswap
│ ├── .babel-plugin-macrosrc.js
│ ├── .gitattributes
│ ├── .gitignore
│ ├── .npmrc
│ ├── .nvmrc
│ ├── .prettierignore
│ ├── .prettierrc
│ ├── .stylelintrc
│ ├── .unimportedrc.json
│ ├── LICENSE
│ ├── README.md
│ ├── biome.json
│ ├── components.json
│ ├── index.html
│ ├── lingui.config.ts
│ ├── package.json
│ ├── postcss.config.js
│ ├── public
│ │ ├── apple-touch-icon.png
│ │ ├── border-bg.png
│ │ ├── border-bg2x.png
│ │ ├── favicon-16x16.png
│ │ ├── favicon-32x32.png
│ │ ├── favicon-48x48.png
│ │ ├── favicon-64x64.png
│ │ ├── icons
│ │ │ └── chains
│ │ │ │ ├── 0x1.icon.svg
│ │ │ │ ├── 0x100.icon.svg
│ │ │ │ ├── 0x2.icon.svg
│ │ │ │ ├── 0x2105.base.svg
│ │ │ │ ├── 0x38.bsc.svg
│ │ │ │ ├── 0xa.optimism.svg
│ │ │ │ ├── 0xa4b1.arbitrum.svg
│ │ │ │ ├── 0xa869.fuji.svg
│ │ │ │ ├── 0xa86a.avax.svg
│ │ │ │ ├── all.png
│ │ │ │ ├── archway-1.svg
│ │ │ │ ├── archway.svg
│ │ │ │ ├── injective-1.svg
│ │ │ │ ├── solana.svg
│ │ │ │ ├── stellar.svg
│ │ │ │ └── sui.svg
│ │ ├── img-preview
│ │ │ ├── home.png
│ │ │ └── trade.png
│ │ ├── logo192.png
│ │ ├── logo384.png
│ │ ├── manifest.json
│ │ ├── marsh-flying-2.png
│ │ ├── marsh-flying.png
│ │ ├── marsh-with-coins.png
│ │ ├── marsh-with-stick.png
│ │ ├── robots.txt
│ │ └── safari-pinned-tab.svg
│ ├── src
│ │ ├── app
│ │ │ ├── Routes.tsx
│ │ │ ├── components
│ │ │ │ ├── Button
│ │ │ │ │ ├── AnimateButton.tsx
│ │ │ │ │ ├── DarkAnimateButton.tsx
│ │ │ │ │ └── index.tsx
│ │ │ │ ├── ChainLogo
│ │ │ │ │ └── index.tsx
│ │ │ │ ├── CopyableAddress
│ │ │ │ │ └── index.tsx
│ │ │ │ ├── CurrencyInputPanel
│ │ │ │ │ └── index.tsx
│ │ │ │ ├── CurrencyLogo
│ │ │ │ │ └── index.tsx
│ │ │ │ ├── CurrencyLogoWithNetwork
│ │ │ │ │ └── index.tsx
│ │ │ │ ├── CurrencyLogoWithNumber
│ │ │ │ │ └── index.tsx
│ │ │ │ ├── FallbackImage
│ │ │ │ │ └── index.tsx
│ │ │ │ ├── Header
│ │ │ │ │ └── index.tsx
│ │ │ │ ├── Icons
│ │ │ │ │ ├── ChevronDownIcon.tsx
│ │ │ │ │ ├── ChevronUpIcon.tsx
│ │ │ │ │ └── index.tsx
│ │ │ │ ├── Layout
│ │ │ │ │ └── index.tsx
│ │ │ │ ├── Logo
│ │ │ │ │ └── index.tsx
│ │ │ │ ├── Modal
│ │ │ │ │ └── index.tsx
│ │ │ │ ├── Notification
│ │ │ │ │ └── TransactionNotification.tsx
│ │ │ │ ├── Popover
│ │ │ │ │ └── index.tsx
│ │ │ │ ├── QuestionHelper
│ │ │ │ │ └── index.tsx
│ │ │ │ ├── SlippageSetting
│ │ │ │ │ └── index.tsx
│ │ │ │ ├── Toast
│ │ │ │ │ └── transactionToast.tsx
│ │ │ │ ├── TokenSelectModal
│ │ │ │ │ └── index.tsx
│ │ │ │ ├── Tooltip
│ │ │ │ │ └── index.tsx
│ │ │ │ ├── WalletConnectModal
│ │ │ │ │ ├── EVMWalletModal.tsx
│ │ │ │ │ ├── InjectiveWalletOptionsModal.tsx
│ │ │ │ │ ├── SuiWalletOptionsModal.tsx
│ │ │ │ │ ├── WalletItem.tsx
│ │ │ │ │ └── index.tsx
│ │ │ │ ├── WalletLogo
│ │ │ │ │ └── index.tsx
│ │ │ │ ├── WalletModal
│ │ │ │ │ ├── CancelIntent.tsx
│ │ │ │ │ ├── HistoryItem.tsx
│ │ │ │ │ ├── HistoryItemList.tsx
│ │ │ │ │ ├── IconWithConfirmTextButton.tsx
│ │ │ │ │ ├── IntentHistoryItem.tsx
│ │ │ │ │ ├── MultiChainBalanceItem.tsx
│ │ │ │ │ ├── SingleChainBalanceItem.tsx
│ │ │ │ │ ├── XTokenList.tsx
│ │ │ │ │ └── index.tsx
│ │ │ │ └── XChainSelect
│ │ │ │ │ └── index.tsx
│ │ │ ├── index.tsx
│ │ │ └── pages
│ │ │ │ ├── NewFeaturePage.tsx
│ │ │ │ ├── page.tsx
│ │ │ │ └── trade
│ │ │ │ ├── layout.tsx
│ │ │ │ └── xswap
│ │ │ │ ├── _components
│ │ │ │ ├── AdvancedSwapDetails.tsx
│ │ │ │ ├── BridgeLimitWarning.tsx
│ │ │ │ ├── CurrencyCard.tsx
│ │ │ │ ├── MMAdvancedSwapDetails.tsx
│ │ │ │ ├── MMSwapCommitButton.tsx
│ │ │ │ ├── MMSwapModal.tsx
│ │ │ │ ├── RecipientAddressPanel.tsx
│ │ │ │ ├── SwapCommitButton.tsx
│ │ │ │ ├── SwapPanel.tsx
│ │ │ │ ├── TradePrice.tsx
│ │ │ │ ├── TradeRoute.tsx
│ │ │ │ └── XSwapModal.tsx
│ │ │ │ └── page.tsx
│ │ ├── assets
│ │ │ ├── icons
│ │ │ │ ├── arrow-down.svg
│ │ │ │ ├── arrow-line.svg
│ │ │ │ ├── arrow-white.svg
│ │ │ │ ├── arrow.svg
│ │ │ │ ├── calendar.svg
│ │ │ │ ├── cancel.svg
│ │ │ │ ├── candle.svg
│ │ │ │ ├── chains
│ │ │ │ │ ├── archway.svg
│ │ │ │ │ ├── avalanche.svg
│ │ │ │ │ ├── eth.svg
│ │ │ │ │ ├── havah.svg
│ │ │ │ │ ├── injective.svg
│ │ │ │ │ └── sui.svg
│ │ │ │ ├── check_circle.svg
│ │ │ │ ├── copy.svg
│ │ │ │ ├── cross.svg
│ │ │ │ ├── dca.svg
│ │ │ │ ├── edit.svg
│ │ │ │ ├── external.svg
│ │ │ │ ├── failure.svg
│ │ │ │ ├── flip.svg
│ │ │ │ ├── hana.svg
│ │ │ │ ├── home.svg
│ │ │ │ ├── horizontal-flip.svg
│ │ │ │ ├── metamask.svg
│ │ │ │ ├── notification.svg
│ │ │ │ ├── pending.svg
│ │ │ │ ├── pie-chart.svg
│ │ │ │ ├── question.svg
│ │ │ │ ├── remove.svg
│ │ │ │ ├── search.svg
│ │ │ │ ├── search1.svg
│ │ │ │ ├── sigma.svg
│ │ │ │ ├── success.svg
│ │ │ │ ├── swap.svg
│ │ │ │ ├── tick.svg
│ │ │ │ ├── timer-color.svg
│ │ │ │ ├── trade.svg
│ │ │ │ ├── users.svg
│ │ │ │ ├── vote.svg
│ │ │ │ ├── wallet-tick-color.svg
│ │ │ │ ├── wallet.svg
│ │ │ │ └── wallets
│ │ │ │ │ ├── iconex.svg
│ │ │ │ │ ├── keplr.svg
│ │ │ │ │ ├── ledger.svg
│ │ │ │ │ ├── metamask.svg
│ │ │ │ │ └── walletconnect.svg
│ │ │ ├── icons2
│ │ │ │ ├── all-chain-gradient.svg
│ │ │ │ ├── all-chain-white.svg
│ │ │ │ ├── all-chain.svg
│ │ │ │ ├── arrow-gradient.svg
│ │ │ │ ├── arrow-white.svg
│ │ │ │ ├── chevron-down-gradient.svg
│ │ │ │ ├── chevron-down-white.svg
│ │ │ │ ├── chevron-down.svg
│ │ │ │ ├── chevron-up-gradient.svg
│ │ │ │ ├── dca-gradient.svg
│ │ │ │ ├── dca.svg
│ │ │ │ ├── exclamation.svg
│ │ │ │ ├── heart-gradient.svg
│ │ │ │ ├── heart.svg
│ │ │ │ ├── hide.svg
│ │ │ │ ├── limit-gradient.svg
│ │ │ │ ├── limit.svg
│ │ │ │ ├── logs-gradient.svg
│ │ │ │ ├── logs.svg
│ │ │ │ ├── search-gradient.svg
│ │ │ │ ├── search.svg
│ │ │ │ ├── settings-gradient.svg
│ │ │ │ ├── settings.svg
│ │ │ │ ├── show.svg
│ │ │ │ ├── shutdown-gradient.svg
│ │ │ │ ├── shutdown.svg
│ │ │ │ ├── subtract.svg
│ │ │ │ ├── swap-gradient.svg
│ │ │ │ ├── swap.svg
│ │ │ │ ├── switch-gradient.svg
│ │ │ │ ├── time-gradient.svg
│ │ │ │ ├── wallet-gradient.svg
│ │ │ │ └── wallet.svg
│ │ │ └── images
│ │ │ │ ├── border-bg.png
│ │ │ │ ├── border-bg2x.png
│ │ │ │ ├── default.png
│ │ │ │ ├── hana.png
│ │ │ │ ├── icon-logo.png
│ │ │ │ ├── logo-mobile.png
│ │ │ │ ├── logo.png
│ │ │ │ ├── marsh-flying.png
│ │ │ │ ├── rebalancing-above.svg
│ │ │ │ ├── rebalancing-below.svg
│ │ │ │ ├── spinner-big.png
│ │ │ │ └── spinner.png
│ │ ├── components
│ │ │ └── ui
│ │ │ │ ├── button.tsx
│ │ │ │ ├── card.tsx
│ │ │ │ ├── checkbox.tsx
│ │ │ │ ├── collapsible.tsx
│ │ │ │ ├── command.tsx
│ │ │ │ ├── dialog.tsx
│ │ │ │ ├── drawer.tsx
│ │ │ │ ├── hover-card.tsx
│ │ │ │ ├── input.tsx
│ │ │ │ ├── label.tsx
│ │ │ │ ├── popover.tsx
│ │ │ │ ├── scroll-area.tsx
│ │ │ │ ├── select.tsx
│ │ │ │ ├── separator.tsx
│ │ │ │ ├── sheet.tsx
│ │ │ │ ├── sidebar.tsx
│ │ │ │ ├── skeleton.tsx
│ │ │ │ ├── table.tsx
│ │ │ │ ├── tabs.tsx
│ │ │ │ └── tooltip.tsx
│ │ ├── constants
│ │ │ ├── config.ts
│ │ │ ├── currency.ts
│ │ │ ├── index.ts
│ │ │ ├── locales.ts
│ │ │ ├── misc.ts
│ │ │ ├── routing.ts
│ │ │ ├── tokens.ts
│ │ │ └── tokens1.ts
│ │ ├── hooks
│ │ │ ├── Tokens.ts
│ │ │ ├── use-mobile.tsx
│ │ │ ├── useActiveLocale.ts
│ │ │ ├── useAllCurrencyCombinations.ts
│ │ │ ├── useAmountInUSD.ts
│ │ │ ├── useApproveCallback.tsx
│ │ │ ├── useAssetManagerTokens.tsx
│ │ │ ├── useDebounce.ts
│ │ │ ├── useElapsedTime.ts
│ │ │ ├── useEthereumChainId.ts
│ │ │ ├── useEvmSwitchChain.ts
│ │ │ ├── useIconNetworkId.ts
│ │ │ ├── useInterval.ts
│ │ │ ├── useIsWindowVisible.ts
│ │ │ ├── useModalStore.tsx
│ │ │ ├── useParsedQueryString.tsx
│ │ │ ├── useV2Pairs.ts
│ │ │ ├── useWallets.tsx
│ │ │ ├── useXCallGasChecker.tsx
│ │ │ └── useXTokens.tsx
│ │ ├── i18n.tsx
│ │ ├── index.css
│ │ ├── index.tsx
│ │ ├── lib
│ │ │ ├── i18n.tsx
│ │ │ ├── intent.tsx
│ │ │ └── utils.ts
│ │ ├── locales
│ │ │ ├── de-DE.po
│ │ │ ├── en-US.po
│ │ │ ├── es-ES.po
│ │ │ ├── fr-FR.po
│ │ │ ├── ko-KR.po
│ │ │ ├── nl-NL.po
│ │ │ ├── pl-PL.po
│ │ │ ├── pseudo.po
│ │ │ └── vi-VN.po
│ │ ├── packages
│ │ │ └── icon-react
│ │ │ │ └── index.tsx
│ │ ├── queries
│ │ │ ├── backendv2
│ │ │ │ └── index.ts
│ │ │ ├── constants.ts
│ │ │ ├── queryKeys.ts
│ │ │ ├── reward
│ │ │ │ └── index.ts
│ │ │ └── utils.ts
│ │ ├── serviceWorker.ts
│ │ ├── store
│ │ │ ├── application
│ │ │ │ ├── hooks.ts
│ │ │ │ ├── reducer.ts
│ │ │ │ └── updater.ts
│ │ │ ├── collateral
│ │ │ │ └── hooks.ts
│ │ │ ├── configureStore.ts
│ │ │ ├── hooks.ts
│ │ │ ├── index.ts
│ │ │ ├── lists
│ │ │ │ ├── communitylist.json
│ │ │ │ ├── hooks.ts
│ │ │ │ ├── reducer.ts
│ │ │ │ ├── tokenlist.json
│ │ │ │ └── wrappedTokenInfo.ts
│ │ │ ├── oracle
│ │ │ │ ├── hooks.ts
│ │ │ │ └── reducer.ts
│ │ │ ├── ratio
│ │ │ │ ├── hooks.ts
│ │ │ │ └── reducer.ts
│ │ │ ├── stabilityFund
│ │ │ │ ├── hooks.ts
│ │ │ │ └── reducer.ts
│ │ │ ├── swap
│ │ │ │ ├── hooks.ts
│ │ │ │ ├── reducer.ts
│ │ │ │ └── trade.ts
│ │ │ ├── transactions
│ │ │ │ ├── actions.ts
│ │ │ │ ├── hooks.tsx
│ │ │ │ ├── reducer.ts
│ │ │ │ ├── updater.tsx
│ │ │ │ └── useMMTransactionStore.tsx
│ │ │ ├── user
│ │ │ │ ├── hooks.tsx
│ │ │ │ └── reducer.ts
│ │ │ └── wallet
│ │ │ │ ├── hooks.ts
│ │ │ │ └── reducer.ts
│ │ ├── types
│ │ │ ├── index.ts
│ │ │ └── pair.ts
│ │ ├── utils
│ │ │ ├── formatter.ts
│ │ │ ├── index.ts
│ │ │ ├── isTradeBetter.ts
│ │ │ ├── loadable.tsx
│ │ │ └── xTokens.ts
│ │ └── vite-env.d.ts
│ ├── tailwind.config.js
│ ├── tsconfig.json
│ ├── tsconfig.node.json
│ ├── vercel.json
│ └── vite.config.ts
├── stats
│ ├── .gitattributes
│ ├── .gitignore
│ ├── .prettierignore
│ ├── .prettierrc
│ ├── .stylelintrc
│ ├── LICENSE
│ ├── README.md
│ ├── index.html
│ ├── package.json
│ ├── public
│ │ ├── apple-touch-icon.png
│ │ ├── favicon-16x16.png
│ │ ├── favicon-32x32.png
│ │ ├── img-preview
│ │ │ ├── home.png
│ │ │ └── stats.png
│ │ ├── logo192.png
│ │ ├── logo384.png
│ │ ├── manifest.json
│ │ └── robots.txt
│ ├── src
│ │ ├── App.tsx
│ │ ├── app
│ │ │ └── components
│ │ │ │ └── RewardsDisplay
│ │ │ │ └── RewardsDisplay.tsx
│ │ ├── assets
│ │ │ ├── font
│ │ │ │ ├── tex-gyre-adventor-bold
│ │ │ │ │ ├── tex-gyre-adventor-bold.woff
│ │ │ │ │ └── tex-gyre-adventor-bold.woff2
│ │ │ │ └── tex-gyre-adventor-regular
│ │ │ │ │ ├── tex-gyre-adventor-regular.woff
│ │ │ │ │ └── tex-gyre-adventor-regular.woff2
│ │ │ ├── icons
│ │ │ │ ├── active-proposals.svg
│ │ │ │ ├── airdrip.png
│ │ │ │ ├── all.svg
│ │ │ │ ├── arrow-down.svg
│ │ │ │ ├── arrow.svg
│ │ │ │ ├── balnstaking.svg
│ │ │ │ ├── calendar-small.svg
│ │ │ │ ├── calendar.svg
│ │ │ │ ├── chart.svg
│ │ │ │ ├── coingecko-white.svg
│ │ │ │ ├── coinmarketcap.svg
│ │ │ │ ├── coins.svg
│ │ │ │ ├── dao.svg
│ │ │ │ ├── discord.svg
│ │ │ │ ├── distribution.svg
│ │ │ │ ├── eligible-voters.svg
│ │ │ │ ├── failure.svg
│ │ │ │ ├── fees.svg
│ │ │ │ ├── github.svg
│ │ │ │ ├── home.svg
│ │ │ │ ├── iconex.svg
│ │ │ │ ├── ledger.svg
│ │ │ │ ├── liquidity.svg
│ │ │ │ ├── logo.svg
│ │ │ │ ├── medium.svg
│ │ │ │ ├── notification.svg
│ │ │ │ ├── participation-rate.svg
│ │ │ │ ├── pending.svg
│ │ │ │ ├── question.svg
│ │ │ │ ├── reddit.svg
│ │ │ │ ├── revue.png
│ │ │ │ ├── search.svg
│ │ │ │ ├── sigma.svg
│ │ │ │ ├── stability-fund.svg
│ │ │ │ ├── stability-white.svg
│ │ │ │ ├── staking-1.svg
│ │ │ │ ├── staking2.svg
│ │ │ │ ├── success.svg
│ │ │ │ ├── telegram.svg
│ │ │ │ ├── tick.svg
│ │ │ │ ├── total-proposals.svg
│ │ │ │ ├── trade.svg
│ │ │ │ ├── transactions.svg
│ │ │ │ ├── twitter.svg
│ │ │ │ ├── users.svg
│ │ │ │ ├── vault.svg
│ │ │ │ ├── volume.svg
│ │ │ │ ├── vote.svg
│ │ │ │ └── wallet.svg
│ │ │ └── images
│ │ │ │ ├── balanced-logo.png
│ │ │ │ ├── default.png
│ │ │ │ ├── icon-logo.png
│ │ │ │ ├── spinner-big.png
│ │ │ │ └── spinner.png
│ │ ├── bnJs.ts
│ │ ├── components
│ │ │ ├── AnimatedList
│ │ │ │ └── index.tsx
│ │ │ ├── AssetManagerTokenBreakdown
│ │ │ │ └── index.tsx
│ │ │ ├── Breadcrumbs
│ │ │ │ └── index.tsx
│ │ │ ├── Button
│ │ │ │ ├── AnimatedLink.tsx
│ │ │ │ ├── OutlineButton.tsx
│ │ │ │ ├── SocialButton.tsx
│ │ │ │ └── index.tsx
│ │ │ ├── Card
│ │ │ │ └── index.ts
│ │ │ ├── CollateralSelector
│ │ │ │ ├── CollateralIcon.tsx
│ │ │ │ ├── CollateralTypeList.tsx
│ │ │ │ └── index.tsx
│ │ │ ├── Divider
│ │ │ │ └── index.tsx
│ │ │ ├── DropdownLink
│ │ │ │ └── index.tsx
│ │ │ ├── DropdownText
│ │ │ │ └── index.tsx
│ │ │ ├── Footer
│ │ │ │ └── index.tsx
│ │ │ ├── Header
│ │ │ │ ├── Burger.tsx
│ │ │ │ └── index.tsx
│ │ │ ├── LineChart
│ │ │ │ └── index.tsx
│ │ │ ├── Link
│ │ │ │ └── index.tsx
│ │ │ ├── Logo
│ │ │ │ └── index.tsx
│ │ │ ├── Menu
│ │ │ │ └── index.tsx
│ │ │ ├── MultiLineChart
│ │ │ │ └── index.tsx
│ │ │ ├── NotFoundPage
│ │ │ │ ├── Loadable.tsx
│ │ │ │ ├── P.ts
│ │ │ │ └── index.tsx
│ │ │ ├── Panel
│ │ │ │ └── index.tsx
│ │ │ ├── Popover
│ │ │ │ └── index.tsx
│ │ │ ├── QuestionHelper
│ │ │ │ └── index.tsx
│ │ │ ├── Row
│ │ │ │ └── index.ts
│ │ │ ├── SearchInput
│ │ │ │ └── index.tsx
│ │ │ ├── Skeleton
│ │ │ │ └── index.tsx
│ │ │ ├── Sparkline
│ │ │ │ └── index.tsx
│ │ │ ├── Spinner
│ │ │ │ └── index.tsx
│ │ │ ├── Tooltip
│ │ │ │ └── index.tsx
│ │ │ ├── TradingViewChart
│ │ │ │ └── index.tsx
│ │ │ └── shared
│ │ │ │ ├── CurrencyLogo
│ │ │ │ └── index.tsx
│ │ │ │ ├── Logo1
│ │ │ │ └── index.tsx
│ │ │ │ └── PoolLogo
│ │ │ │ └── index.tsx
│ │ ├── constants
│ │ │ ├── config.ts
│ │ │ ├── links.ts
│ │ │ ├── number.ts
│ │ │ ├── pairs.ts
│ │ │ ├── queryKeys.ts
│ │ │ └── tokens.ts
│ │ ├── hooks
│ │ │ ├── useBoolean.ts
│ │ │ ├── useInterval.ts
│ │ │ ├── usePrevious.ts
│ │ │ ├── useSort.ts
│ │ │ ├── useTimeout.ts
│ │ │ ├── useTimestampRounded.ts
│ │ │ └── useWidth.ts
│ │ ├── index.tsx
│ │ ├── pages
│ │ │ ├── PerformanceDetails
│ │ │ │ ├── Loadable.tsx
│ │ │ │ ├── index.tsx
│ │ │ │ ├── sections
│ │ │ │ │ ├── BBALNSection
│ │ │ │ │ │ └── index.tsx
│ │ │ │ │ ├── EarningSection
│ │ │ │ │ │ └── index.tsx
│ │ │ │ │ ├── HoldingsSection
│ │ │ │ │ │ └── index.tsx
│ │ │ │ │ └── StabilityFundSection
│ │ │ │ │ │ └── index.tsx
│ │ │ │ └── utils
│ │ │ │ │ └── index.tsx
│ │ │ └── StatsPage
│ │ │ │ ├── Loadable.tsx
│ │ │ │ └── index.tsx
│ │ ├── queries
│ │ │ ├── assetManager
│ │ │ │ └── index.ts
│ │ │ ├── backendv2.ts
│ │ │ ├── blockDetails.ts
│ │ │ ├── bnusd
│ │ │ │ └── index.ts
│ │ │ ├── bsr
│ │ │ │ └── index.ts
│ │ │ ├── burn
│ │ │ │ └── index.ts
│ │ │ ├── historicalData
│ │ │ │ ├── dates.ts
│ │ │ │ ├── index.ts
│ │ │ │ ├── types.ts
│ │ │ │ └── utils.ts
│ │ │ ├── index.ts
│ │ │ └── nol
│ │ │ │ └── index.ts
│ │ ├── sections
│ │ │ ├── BALNSection
│ │ │ │ ├── BBALNChart
│ │ │ │ │ └── index.tsx
│ │ │ │ ├── DistributionChart
│ │ │ │ │ └── index.tsx
│ │ │ │ ├── index.tsx
│ │ │ │ └── queries.ts
│ │ │ ├── BSRSection
│ │ │ │ ├── DepositChart
│ │ │ │ │ └── index.tsx
│ │ │ │ ├── RewardsOverview
│ │ │ │ │ └── index.tsx
│ │ │ │ └── index.tsx
│ │ │ ├── CollateralAndLoanSection
│ │ │ │ ├── BnUSDChart
│ │ │ │ │ ├── Chart.tsx
│ │ │ │ │ └── index.tsx
│ │ │ │ ├── CollateralChart
│ │ │ │ │ ├── Chart.tsx
│ │ │ │ │ ├── StabilityFundChart.tsx
│ │ │ │ │ └── index.tsx
│ │ │ │ ├── TimeFrameSelector
│ │ │ │ │ └── index.tsx
│ │ │ │ └── index.tsx
│ │ │ ├── EnshrinmentSection
│ │ │ │ ├── ICXBurn
│ │ │ │ │ └── index.tsx
│ │ │ │ ├── NetworkOwnedLiquidity
│ │ │ │ │ └── index.tsx
│ │ │ │ └── index.tsx
│ │ │ ├── GovernanceSection
│ │ │ │ ├── ProposalStatusLabel.tsx
│ │ │ │ ├── index.tsx
│ │ │ │ └── utils.ts
│ │ │ ├── HoldingsOverviewSection
│ │ │ │ ├── BreakdownChart
│ │ │ │ │ └── index.tsx
│ │ │ │ ├── POLChart
│ │ │ │ │ └── index.tsx
│ │ │ │ ├── ReserveChart
│ │ │ │ │ └── index.tsx
│ │ │ │ ├── TokensChart
│ │ │ │ │ └── index.tsx
│ │ │ │ ├── index.tsx
│ │ │ │ └── queries.ts
│ │ │ ├── PairSection.tsx
│ │ │ ├── TokenSection.tsx
│ │ │ └── WithdrawalLimits
│ │ │ │ ├── CollateralLimits
│ │ │ │ └── index.tsx
│ │ │ │ ├── ExchangeLimits
│ │ │ │ └── index.tsx
│ │ │ │ ├── StabilityFundLimits
│ │ │ │ └── index.tsx
│ │ │ │ └── index.tsx
│ │ ├── store
│ │ │ └── collateral
│ │ │ │ └── hooks.ts
│ │ ├── theme
│ │ │ ├── fonts.d.ts
│ │ │ ├── index.tsx
│ │ │ └── styled.d.ts
│ │ ├── types
│ │ │ └── data.ts
│ │ ├── utils
│ │ │ ├── formatter.ts
│ │ │ ├── index.ts
│ │ │ └── loadable.tsx
│ │ └── vite-env.d.ts
│ ├── tsconfig.json
│ ├── vercel.json
│ └── vite.config.ts
└── web
│ ├── .babel-plugin-macrosrc.js
│ ├── .gitattributes
│ ├── .gitignore
│ ├── .npmrc
│ ├── .nvmrc
│ ├── .prettierignore
│ ├── .prettierrc
│ ├── .stylelintrc
│ ├── LICENSE
│ ├── README.md
│ ├── biome.json
│ ├── index.html
│ ├── lingui.config.ts
│ ├── package.json
│ ├── public
│ ├── apple-touch-icon.png
│ ├── charting_library
│ │ ├── ar-tv-chart.132c7060.html
│ │ ├── bundles
│ │ │ ├── 0.d46f0b5e9380d7893de5.js
│ │ │ ├── 0579d40b812fa2c3ffe72e5803a6e14c.cur
│ │ │ ├── 1.92647ec0a7beb8b2898d.css
│ │ │ ├── 1.92647ec0a7beb8b2898d.rtl.css
│ │ │ ├── 1.f02c87d35fbc8ffcaedb.js
│ │ │ ├── 10.21e665b7935d5bc4ba64.js
│ │ │ ├── 11.8b65dc2e0d8b6e5041c4.css
│ │ │ ├── 11.8b65dc2e0d8b6e5041c4.rtl.css
│ │ │ ├── 11.df012db70159a159d927.js
│ │ │ ├── 12.37750b21f6d8d35c6e6e.js
│ │ │ ├── 12.ef8057448f3a7ae1c3d8.css
│ │ │ ├── 12.ef8057448f3a7ae1c3d8.rtl.css
│ │ │ ├── 13.699469c73d09b7add56d.js
│ │ │ ├── 13.9240f13280154f2593b7.css
│ │ │ ├── 13.9240f13280154f2593b7.rtl.css
│ │ │ ├── 14.8095b40dd1e7deedf401.css
│ │ │ ├── 14.8095b40dd1e7deedf401.rtl.css
│ │ │ ├── 14.d1148b38d59df9ca5061.js
│ │ │ ├── 15.44f2acca80348a1da1a6.js
│ │ │ ├── 16.680572949c1125757d35.js
│ │ │ ├── 16.d567c9db608f3d98d8de.css
│ │ │ ├── 16.d567c9db608f3d98d8de.rtl.css
│ │ │ ├── 17.404a01f527881dfff424.js
│ │ │ ├── 17.ec35a19db935279c5b42.css
│ │ │ ├── 17.ec35a19db935279c5b42.rtl.css
│ │ │ ├── 18.78de69cfba051874e071.js
│ │ │ ├── 19.048f7f5d36fef428ca8d.js
│ │ │ ├── 19.75c30426f9d3ad5ca0c5.css
│ │ │ ├── 19.75c30426f9d3ad5ca0c5.rtl.css
│ │ │ ├── 1df47f578aeef40dd1f2328338a133be.png
│ │ │ ├── 2.60931787a6734697ac13.js
│ │ │ ├── 20.bc09ed47c5a62e1bc5c2.js
│ │ │ ├── 21.4c7b5cccb67a95e7e782.js
│ │ │ ├── 21.8153544955cdc47262e3.css
│ │ │ ├── 21.8153544955cdc47262e3.rtl.css
│ │ │ ├── 22.ca4300bcf614d8d5f4ab.js
│ │ │ ├── 22.da9773799a06c6066d1e.css
│ │ │ ├── 22.da9773799a06c6066d1e.rtl.css
│ │ │ ├── 23.256ba98e6a03200bdeba.js
│ │ │ ├── 23.ee754f50171546186397.css
│ │ │ ├── 23.ee754f50171546186397.rtl.css
│ │ │ ├── 24.bc4fafedb1730259aa10.js
│ │ │ ├── 24.e70c1623e0c74477ef2e.css
│ │ │ ├── 24.e70c1623e0c74477ef2e.rtl.css
│ │ │ ├── 25.7416db26ed3dcc87c05a.js
│ │ │ ├── 26.3aeec391d4e6e19989ee.js
│ │ │ ├── 26.69139a843bc1c84f790b.css
│ │ │ ├── 26.69139a843bc1c84f790b.rtl.css
│ │ │ ├── 27.e3ec08b1fb9df5f36ada.js
│ │ │ ├── 28.3140e8cb507ad2593c76.css
│ │ │ ├── 28.3140e8cb507ad2593c76.rtl.css
│ │ │ ├── 28.9f103042c27ea2df422f.js
│ │ │ ├── 29.07af6dca962ea27209f0.css
│ │ │ ├── 29.07af6dca962ea27209f0.rtl.css
│ │ │ ├── 29.3df8712b85d45a626aa0.js
│ │ │ ├── 3.76c398b01b707e5b251c.js
│ │ │ ├── 3.eeb90413029441681f91.css
│ │ │ ├── 3.eeb90413029441681f91.rtl.css
│ │ │ ├── 30.0b732ccb122d160480b6.js
│ │ │ ├── 31.8d2b7a538755fd1bb760.js
│ │ │ ├── 32.13ce02217cf8f9dd6d90.js
│ │ │ ├── 3293616ec0c605c7c2db25829a0a509e.woff
│ │ │ ├── 33.02ed7df481ae8243d2f2.css
│ │ │ ├── 33.02ed7df481ae8243d2f2.rtl.css
│ │ │ ├── 33.4d0dd1f7001fc02099bb.js
│ │ │ ├── 34.4b6099931f57311efc1a.css
│ │ │ ├── 34.4b6099931f57311efc1a.rtl.css
│ │ │ ├── 34.c9baa59add71a1e48fd2.js
│ │ │ ├── 35.999f0e072062b7369a1a.css
│ │ │ ├── 35.999f0e072062b7369a1a.rtl.css
│ │ │ ├── 35.ed9e360f9686ad3a9497.js
│ │ │ ├── 36.1882d1a8d312a0e193e9.js
│ │ │ ├── 36.f315a19c17d5636af8f7.css
│ │ │ ├── 36.f315a19c17d5636af8f7.rtl.css
│ │ │ ├── 37.90129e4904155350d6a1.js
│ │ │ ├── 38.41f3d509b61c8af47de3.js
│ │ │ ├── 39.74a7bc3b464cd284827f.css
│ │ │ ├── 39.74a7bc3b464cd284827f.rtl.css
│ │ │ ├── 39.bc1e9ce938fd5152831f.js
│ │ │ ├── 4.92647ec0a7beb8b2898d.css
│ │ │ ├── 4.92647ec0a7beb8b2898d.rtl.css
│ │ │ ├── 4.c7430b8d89cddcf51345.js
│ │ │ ├── 40.b59f41ba4cacbfb8acc3.js
│ │ │ ├── 40566afd832a155e5e370a8bd423de4b.svg
│ │ │ ├── 40f9a03d174178efb12303caa9bc7cd8.woff2
│ │ │ ├── 41.8fa0fb0bd4ad0241ef2f.css
│ │ │ ├── 41.8fa0fb0bd4ad0241ef2f.rtl.css
│ │ │ ├── 41.a19b0ae5d68f855d2753.js
│ │ │ ├── 42.494986b0981f6d116fef.js
│ │ │ ├── 42.9078fb8f1629e3eee9bd.css
│ │ │ ├── 42.9078fb8f1629e3eee9bd.rtl.css
│ │ │ ├── 43.619c5ed4a592cc2965a4.js
│ │ │ ├── 43.8bf90585004742c338c5.css
│ │ │ ├── 43.8bf90585004742c338c5.rtl.css
│ │ │ ├── 44.0a7df307e4f397763ce8.js
│ │ │ ├── 45.12a19785e3864bd62a76.css
│ │ │ ├── 45.12a19785e3864bd62a76.rtl.css
│ │ │ ├── 45.db9dbd3e9bfeca5333da.js
│ │ │ ├── 46.f1d4cfe6d6f830b4a011.js
│ │ │ ├── 47.a3da3f774c90bd22798e.js
│ │ │ ├── 48.a3fdb9dd54af71b3bda6.css
│ │ │ ├── 48.a3fdb9dd54af71b3bda6.rtl.css
│ │ │ ├── 48.a93f9cb8b1bcc0e0f21e.js
│ │ │ ├── 49.bacd609f7eb77a4a4b68.js
│ │ │ ├── 49.d723843c9192493b8c13.css
│ │ │ ├── 49.d723843c9192493b8c13.rtl.css
│ │ │ ├── 4a9abefd31dab7c8239e02e925aacd78.png
│ │ │ ├── 4fafff07d8914dc11f6d335f606ff47c.png
│ │ │ ├── 5.5e97b270ab80d99e9085.js
│ │ │ ├── 50.8d5cba5b90176d3d2e3d.css
│ │ │ ├── 50.8d5cba5b90176d3d2e3d.rtl.css
│ │ │ ├── 50.b282667dddcb7fe1569a.js
│ │ │ ├── 51.11871c50951db825ace3.js
│ │ │ ├── 51.300c3df03ca063ec03a0.css
│ │ │ ├── 51.300c3df03ca063ec03a0.rtl.css
│ │ │ ├── 52.0379a85baae3ab43b15c.js
│ │ │ ├── 52.29cec22b3525b47af67e.css
│ │ │ ├── 52.29cec22b3525b47af67e.rtl.css
│ │ │ ├── 53.1d3ec98cfb8e19affb1c.js
│ │ │ ├── 54.bb5888ae55ea0a253a5b.js
│ │ │ ├── 55.3c35a629db21ab961f11.js
│ │ │ ├── 56.b3e69145c0fee614443d.js
│ │ │ ├── 57.236996ec416da4c1f683.js
│ │ │ ├── 58.7ffac4ba908b95705e63.js
│ │ │ ├── 59.397cb6699b74d64072a8.js
│ │ │ ├── 59.418f1db161eefae63284.css
│ │ │ ├── 59.418f1db161eefae63284.rtl.css
│ │ │ ├── 6.2221bb6a5d920bbb4bb2.css
│ │ │ ├── 6.2221bb6a5d920bbb4bb2.rtl.css
│ │ │ ├── 6.2d67b0ae77825dbd455d.js
│ │ │ ├── 60.6b5eced2ef8fa856be88.js
│ │ │ ├── 60.d4583c71cca790a25900.css
│ │ │ ├── 60.d4583c71cca790a25900.rtl.css
│ │ │ ├── 61.38a3040c925fadff7b64.js
│ │ │ ├── 62.63b309f5f8da9ca013b8.js
│ │ │ ├── 63.8255c7f5191bcafcee7c.js
│ │ │ ├── 63.898a61bf08239711dc74.css
│ │ │ ├── 63.898a61bf08239711dc74.rtl.css
│ │ │ ├── 64.6f232bdb0fb4cdcc2d7d.css
│ │ │ ├── 64.6f232bdb0fb4cdcc2d7d.rtl.css
│ │ │ ├── 64.ec4b4d03b28c77658dde.js
│ │ │ ├── 65.556980fc277562af83c8.css
│ │ │ ├── 65.556980fc277562af83c8.rtl.css
│ │ │ ├── 65.f895a78b4e04257983ff.js
│ │ │ ├── 66.2979e9b7c35e7bf03a37.js
│ │ │ ├── 66.84b4001b5c622a569dde.css
│ │ │ ├── 66.84b4001b5c622a569dde.rtl.css
│ │ │ ├── 67.19c83a0c303c290216d2.css
│ │ │ ├── 67.19c83a0c303c290216d2.rtl.css
│ │ │ ├── 67.25fd4b78c8c514988aeb.js
│ │ │ ├── 68.8b4124c875484d11fd94.js
│ │ │ ├── 68.fa7424ae9c5fe5483aac.css
│ │ │ ├── 68.fa7424ae9c5fe5483aac.rtl.css
│ │ │ ├── 69.094b4a764d3dc17820cf.css
│ │ │ ├── 69.094b4a764d3dc17820cf.rtl.css
│ │ │ ├── 69.43756a5c7477730eb0c4.js
│ │ │ ├── 7.2c7c4f8a49c6380227de.js
│ │ │ ├── 70.c27146ec029eda556108.css
│ │ │ ├── 70.c27146ec029eda556108.rtl.css
│ │ │ ├── 70.cb9d1bb5a00896c1bb97.js
│ │ │ ├── 71.15e639d294c4209f256e.css
│ │ │ ├── 71.15e639d294c4209f256e.rtl.css
│ │ │ ├── 71.6a9d0842f5e48f68399c.js
│ │ │ ├── 72.07441fd67b864b86147b.css
│ │ │ ├── 72.07441fd67b864b86147b.rtl.css
│ │ │ ├── 72.e3925aaf38d2c8997638.js
│ │ │ ├── 73.6b8b9e5e2c8e2b753cb8.css
│ │ │ ├── 73.6b8b9e5e2c8e2b753cb8.rtl.css
│ │ │ ├── 73.8ca1a096c5bdc2e5fb8a.js
│ │ │ ├── 7393f661fc7d4389ea6d4dabd2a5aeea.png
│ │ │ ├── 74.34dcc0d3cd1bbfa5e951.js
│ │ │ ├── 74.8c591c252b2e7ad8f744.css
│ │ │ ├── 74.8c591c252b2e7ad8f744.rtl.css
│ │ │ ├── 75.1c9a3a6524248ddf88bf.js
│ │ │ ├── 75.fefbc386c59bf7d4f9f7.css
│ │ │ ├── 75.fefbc386c59bf7d4f9f7.rtl.css
│ │ │ ├── 76.5d20bed213399f326603.js
│ │ │ ├── 76.f14d71a31295d8cd8d8b.css
│ │ │ ├── 76.f14d71a31295d8cd8d8b.rtl.css
│ │ │ ├── 77.3e4ccccc7d3eb03c488f.js
│ │ │ ├── 77.9c35f7046b848fbfd7f5.css
│ │ │ ├── 77.9c35f7046b848fbfd7f5.rtl.css
│ │ │ ├── 78.0d502ab4d94441708606.css
│ │ │ ├── 78.0d502ab4d94441708606.rtl.css
│ │ │ ├── 78.1d1d47a915b06f1496fb.js
│ │ │ ├── 79.86e92b77f8cf32e6bc37.js
│ │ │ ├── 79.b990749a4839f9123f26.css
│ │ │ ├── 79.b990749a4839f9123f26.rtl.css
│ │ │ ├── 7e0cc5f7d7f5151500dd60b8d6ca60a1.png
│ │ │ ├── 8.e66ab8f27911a033604f.css
│ │ │ ├── 8.e66ab8f27911a033604f.rtl.css
│ │ │ ├── 8.ffab20b86db484062268.js
│ │ │ ├── 80.5bdd53d5fc42d40eee28.css
│ │ │ ├── 80.5bdd53d5fc42d40eee28.rtl.css
│ │ │ ├── 80.b5bc6acec3b531a510a9.js
│ │ │ ├── 81.552e046aa828739c508b.css
│ │ │ ├── 81.552e046aa828739c508b.rtl.css
│ │ │ ├── 81.e6a1f76017a44b03480b.js
│ │ │ ├── 82.8c2919e6c8f54e36e9e6.js
│ │ │ ├── 82.e06fe84c8cdead4bd52e.css
│ │ │ ├── 82.e06fe84c8cdead4bd52e.rtl.css
│ │ │ ├── 83.e238aa056c5d4827cbdd.css
│ │ │ ├── 83.e238aa056c5d4827cbdd.rtl.css
│ │ │ ├── 83.f3e53bb5a5940e084955.js
│ │ │ ├── 84.8acc496b4deeeeefb5af.js
│ │ │ ├── 84.bb4fc57627c8626019fd.css
│ │ │ ├── 84.bb4fc57627c8626019fd.rtl.css
│ │ │ ├── 85.39c78fbeaabae306f343.js
│ │ │ ├── 85.e0ba32bafcab02208901.css
│ │ │ ├── 85.e0ba32bafcab02208901.rtl.css
│ │ │ ├── 86.4bbbb9e6262243419986.js
│ │ │ ├── 86.9244fc2bcc2370425a15.css
│ │ │ ├── 86.9244fc2bcc2370425a15.rtl.css
│ │ │ ├── 87.605cbc508223ec27341c.css
│ │ │ ├── 87.605cbc508223ec27341c.rtl.css
│ │ │ ├── 87.cf03fa0a76bfcadd157d.js
│ │ │ ├── 88.158dd8a18e176936a343.css
│ │ │ ├── 88.158dd8a18e176936a343.rtl.css
│ │ │ ├── 88.d1e3aec63ece25f6b8a9.js
│ │ │ ├── 89.5f142643917701de773b.css
│ │ │ ├── 89.5f142643917701de773b.rtl.css
│ │ │ ├── 89.d8aa43b4b9378722d572.js
│ │ │ ├── 898929f1acdb622689e0fc0c95c8fcd0.png
│ │ │ ├── 9.84ecbc930e51cb26d06a.js
│ │ │ ├── 9.8ab09f93a5113a634119.css
│ │ │ ├── 9.8ab09f93a5113a634119.rtl.css
│ │ │ ├── 90.877114560c4828a97702.css
│ │ │ ├── 90.877114560c4828a97702.rtl.css
│ │ │ ├── 90.ce47bb68fc3fc88b5590.js
│ │ │ ├── 91.2142b248a2bb29549a99.css
│ │ │ ├── 91.2142b248a2bb29549a99.rtl.css
│ │ │ ├── 91.a9b79ef7ba0a62311a53.js
│ │ │ ├── 92.76d5ca7ebec10a1a7a12.js
│ │ │ ├── 92.e46f0aa06bcdbddf3831.css
│ │ │ ├── 92.e46f0aa06bcdbddf3831.rtl.css
│ │ │ ├── 93.17d34ca77a7fc85a24d9.css
│ │ │ ├── 93.17d34ca77a7fc85a24d9.rtl.css
│ │ │ ├── 93.6de56ef1975f4a31e542.js
│ │ │ ├── 94.231bea5fb12b806ef287.js
│ │ │ ├── 94.b204218cb73b576333a1.css
│ │ │ ├── 94.b204218cb73b576333a1.rtl.css
│ │ │ ├── 95.51244d1c4baf49d08807.css
│ │ │ ├── 95.51244d1c4baf49d08807.rtl.css
│ │ │ ├── 95.6f7da80aac5cf2bf77d6.js
│ │ │ ├── 96.43bb935eee30715afff7.js
│ │ │ ├── 96.be9ad3d6a7c91501bb55.css
│ │ │ ├── 96.be9ad3d6a7c91501bb55.rtl.css
│ │ │ ├── a6506134daec7169f68f563f084a9d41.svg
│ │ │ ├── add-compare-dialog.f980c19f222ff9cb8fe6.js
│ │ │ ├── b1a63a011fd92dfb93db6db243bb036c.woff2
│ │ │ ├── change-interval-dialog.e928f8dec65c9244cafe.js
│ │ │ ├── chart-bottom-toolbar.b2e895a5fd3f204fb6b6.js
│ │ │ ├── chart-event-hint.94e94e93f9fdee936b66.js
│ │ │ ├── chart-screenshot-hint.14bfec43c52bc3d28f82.js
│ │ │ ├── chart-widget-gui.226991e9f53aba124fc2.js
│ │ │ ├── compare-model.0e6bbdc5f5942c9a716e.js
│ │ │ ├── context-menu-renderer.7f6f59270ef0f3afa2ed.js
│ │ │ ├── currency-label-menu.a7a0c0e44d64b092f2cc.js
│ │ │ ├── custom-intervals-add-dialog.bb64431fb1c6d852f9f1.js
│ │ │ ├── drawing-toolbar.8cc497633535648562e7.js
│ │ │ ├── ed68e83c16f77203e73dbc4c3a7c7fa1.cur
│ │ │ ├── export-data.c819cfa996e2815ff11d.js
│ │ │ ├── f55394b616ed1ae9462c37daab941d93.png
│ │ │ ├── floating-toolbars.d78a058b82ab09013aac.js
│ │ │ ├── full-tooltips-popup.96fc751e06523b742440.js
│ │ │ ├── general-chart-properties-dialog.b08948e0c90aebf07ebd.js
│ │ │ ├── general-property-page.32bdfdbafbd81d9e83c6.js
│ │ │ ├── go-to-date-dialog-impl.3481c4fcfde2f4d46426.js
│ │ │ ├── hammerjs.e5489031ed611f47bf09.js
│ │ │ ├── header-toolbar.4bff61e047f9b8379494.js
│ │ │ ├── library.237999374a0f9a719893.js
│ │ │ ├── library.579e6e3fd95b660ad833.css
│ │ │ ├── library.579e6e3fd95b660ad833.rtl.css
│ │ │ ├── line-tools-icons.090f39d92664af3915a5.js
│ │ │ ├── load-chart-dialog.6cc1a47b17698c0108cb.js
│ │ │ ├── lollipop-tooltip-renderer.6705b971a2e73c26ecad.js
│ │ │ ├── lt-pane-views.4d2ee6c5330cd3760eb0.js
│ │ │ ├── lt-property-pages-with-definitions.a5e8283e77afa66b5636.js
│ │ │ ├── manage-drawings-dialog.1c0c3737002fa63fe6a6.js
│ │ │ ├── moment.78e587a83a009ca48cda.js
│ │ │ ├── new-confirm-inputs-dialog.00d79c2263e005170345.js
│ │ │ ├── new-edit-object-dialog.0ed1c3834cfc0e834aed.js
│ │ │ ├── object-tree-dialog.5b98d078925b3addfb0a.js
│ │ │ ├── react.9f2899b40ad0e104f6c9.js
│ │ │ ├── redux.43c3f6d214bcf2d1fbd1.js
│ │ │ ├── restricted-toolset.08fefbae2bc0877b0ef2.js
│ │ │ ├── runtime.c6da8e1e9c16eccdffac.js
│ │ │ ├── series-icons-map.ec8043f64d8b06dbce29.js
│ │ │ ├── series-pane-views.eefe35e1c508ac16c102.js
│ │ │ ├── share-chart-to-social-utils.c225af2051efd23269e0.js
│ │ │ ├── show-theme-save-dialog.f81ebf1b2ce08f4399fd.js
│ │ │ ├── simple-dialog.bd79f02afd512f0f36dd.js
│ │ │ ├── source-properties-editor.e858d44541ebb6f974a2.js
│ │ │ ├── study-market.3efd7bf7bc6e6fc7db2d.js
│ │ │ ├── study-pane-views.9a873dcf74adedf7600b.js
│ │ │ ├── study-property-pages-with-definitions.ca4fc2ef5a4deff8c0bb.js
│ │ │ ├── study-template-dialog.fe56a9893a3695e93531.js
│ │ │ ├── symbol-info-dialog-impl.17daedab6f893acdeae4.js
│ │ │ ├── symbol-search-dialog.fd3311eee8604f807c80.js
│ │ │ ├── take-chart-image-impl.c0e6073dcac3041eecf2.js
│ │ │ └── vendors.6f5e0d8d267cb3e63ee0.js
│ │ ├── charting_library.cjs.js
│ │ ├── charting_library.d.ts
│ │ ├── charting_library.esm.js
│ │ ├── charting_library.js
│ │ ├── charting_library.standalone.js
│ │ ├── cs-tv-chart.132c7060.html
│ │ ├── da_DK-tv-chart.132c7060.html
│ │ ├── datafeed-api.d.ts
│ │ ├── de-tv-chart.132c7060.html
│ │ ├── el-tv-chart.132c7060.html
│ │ ├── en-tv-chart.132c7060.html
│ │ ├── es-tv-chart.132c7060.html
│ │ ├── et_EE-tv-chart.132c7060.html
│ │ ├── fa-tv-chart.132c7060.html
│ │ ├── fr-tv-chart.132c7060.html
│ │ ├── he_IL-tv-chart.132c7060.html
│ │ ├── hu_HU-tv-chart.132c7060.html
│ │ ├── id_ID-tv-chart.132c7060.html
│ │ ├── it-tv-chart.132c7060.html
│ │ ├── ja-tv-chart.132c7060.html
│ │ ├── ko-tv-chart.132c7060.html
│ │ ├── ms_MY-tv-chart.132c7060.html
│ │ ├── nl_NL-tv-chart.132c7060.html
│ │ ├── no-tv-chart.132c7060.html
│ │ ├── package.json
│ │ ├── pl-tv-chart.132c7060.html
│ │ ├── pt-tv-chart.132c7060.html
│ │ ├── ro-tv-chart.132c7060.html
│ │ ├── ru-tv-chart.132c7060.html
│ │ ├── sk_SK-tv-chart.132c7060.html
│ │ ├── sv-tv-chart.132c7060.html
│ │ ├── th-tv-chart.132c7060.html
│ │ ├── themed.css
│ │ ├── tr-tv-chart.132c7060.html
│ │ ├── vi-tv-chart.132c7060.html
│ │ ├── zh-tv-chart.132c7060.html
│ │ └── zh_TW-tv-chart.132c7060.html
│ ├── favicon-16x16.png
│ ├── favicon-32x32.png
│ ├── icons
│ │ └── chains
│ │ │ ├── 0x1.icon.svg
│ │ │ ├── 0x100.icon.svg
│ │ │ ├── 0x2.icon.svg
│ │ │ ├── 0x2105.base.svg
│ │ │ ├── 0x38.bsc.svg
│ │ │ ├── 0x89.polygon.svg
│ │ │ ├── 0xa.optimism.svg
│ │ │ ├── 0xa4b1.arbitrum.svg
│ │ │ ├── 0xa869.fuji.svg
│ │ │ ├── 0xa86a.avax.svg
│ │ │ ├── archway-1.svg
│ │ │ ├── archway.svg
│ │ │ ├── injective-1.svg
│ │ │ ├── solana.svg
│ │ │ ├── stellar.svg
│ │ │ └── sui.svg
│ ├── img-preview
│ │ ├── home.png
│ │ └── trade.png
│ ├── logo192.png
│ ├── logo384.png
│ ├── manifest.json
│ ├── robots.txt
│ └── safari-pinned-tab.svg
│ ├── src
│ ├── app
│ │ ├── Message.tsx
│ │ ├── Routes.tsx
│ │ ├── components
│ │ │ ├── AddressInputPanel
│ │ │ │ └── index.tsx
│ │ │ ├── AppBar
│ │ │ │ └── index.tsx
│ │ │ ├── AssetManagerTokenBreakdown
│ │ │ │ └── index.tsx
│ │ │ ├── Banner
│ │ │ │ └── index.tsx
│ │ │ ├── Breadcrumb
│ │ │ │ └── index.tsx
│ │ │ ├── BridgeLimitWarning
│ │ │ │ └── index.tsx
│ │ │ ├── Button
│ │ │ │ ├── StyledButton.tsx
│ │ │ │ └── index.tsx
│ │ │ ├── ChainLogo
│ │ │ │ └── index.tsx
│ │ │ ├── ChartControl
│ │ │ │ └── index.tsx
│ │ │ ├── CollateralTypeSwitcher
│ │ │ │ ├── CollateralTypeList.tsx
│ │ │ │ ├── CollateralTypeListWrap.tsx
│ │ │ │ ├── MultiChainItem.tsx
│ │ │ │ ├── MultiChainItemOverview.tsx
│ │ │ │ ├── SingleChainItem.tsx
│ │ │ │ ├── SingleChainItemOverview.tsx
│ │ │ │ └── index.tsx
│ │ │ ├── Column
│ │ │ │ └── index.tsx
│ │ │ ├── CommunityListToggle
│ │ │ │ └── index.tsx
│ │ │ ├── CrossChainWalletConnect
│ │ │ │ ├── AddressInput.tsx
│ │ │ │ └── index.tsx
│ │ │ ├── CurrencyBalanceErrorMessage
│ │ │ │ └── index.tsx
│ │ │ ├── CurrencyInputPanel
│ │ │ │ ├── DollarValue.tsx
│ │ │ │ └── index.tsx
│ │ │ ├── CurrencyLogo
│ │ │ │ └── index.tsx
│ │ │ ├── CurrencyLogoWithNetwork
│ │ │ │ └── index.tsx
│ │ │ ├── Divider
│ │ │ │ └── index.tsx
│ │ │ ├── DropdownLink
│ │ │ │ └── index.tsx
│ │ │ ├── DropdownText
│ │ │ │ └── index.tsx
│ │ │ ├── Form
│ │ │ │ └── index.tsx
│ │ │ ├── Header
│ │ │ │ └── index.tsx
│ │ │ ├── ICXDisplayTypeSwitcher
│ │ │ │ └── index.tsx
│ │ │ ├── Layout
│ │ │ │ └── index.tsx
│ │ │ ├── Link
│ │ │ │ └── index.tsx
│ │ │ ├── List
│ │ │ │ └── index.tsx
│ │ │ ├── LockBar
│ │ │ │ └── index.tsx
│ │ │ ├── Logo
│ │ │ │ └── index.tsx
│ │ │ ├── Logo1
│ │ │ │ └── index.tsx
│ │ │ ├── Menu
│ │ │ │ └── index.tsx
│ │ │ ├── Modal
│ │ │ │ └── index.tsx
│ │ │ ├── ModalContent
│ │ │ │ └── index.tsx
│ │ │ ├── NotFoundPage
│ │ │ │ ├── Loadable.tsx
│ │ │ │ ├── P.ts
│ │ │ │ └── index.tsx
│ │ │ ├── Notification
│ │ │ │ ├── NotificationContainer.tsx
│ │ │ │ └── TransactionNotification.tsx
│ │ │ ├── PageViewTracker.tsx
│ │ │ ├── Panel
│ │ │ │ └── index.tsx
│ │ │ ├── PoolLogo
│ │ │ │ └── index.tsx
│ │ │ ├── PoolLogoWithNetwork
│ │ │ │ └── index.tsx
│ │ │ ├── Popover
│ │ │ │ └── index.tsx
│ │ │ ├── ProposalInfo
│ │ │ │ ├── components.tsx
│ │ │ │ └── index.tsx
│ │ │ ├── ProposalModal
│ │ │ │ └── index.tsx
│ │ │ ├── ProposalStatusIcon
│ │ │ │ └── index.tsx
│ │ │ ├── QuestionHelper
│ │ │ │ └── index.tsx
│ │ │ ├── RewardsDisplay
│ │ │ │ └── RewardsDisplay.tsx
│ │ │ ├── Row
│ │ │ │ └── index.ts
│ │ │ ├── SearchModal
│ │ │ │ ├── CancelSearchButton.tsx
│ │ │ │ ├── CurrencyList.tsx
│ │ │ │ ├── CurrencyRow.tsx
│ │ │ │ ├── CurrencySearch.tsx
│ │ │ │ ├── CurrencySearchModal.tsx
│ │ │ │ ├── CurrencyXChainItem.tsx
│ │ │ │ ├── ImportRow.tsx
│ │ │ │ ├── ImportToken.tsx
│ │ │ │ ├── RemoveToken.tsx
│ │ │ │ ├── SearchInput.tsx
│ │ │ │ ├── TokenImportCard.tsx
│ │ │ │ ├── XChainFilter.tsx
│ │ │ │ ├── components.tsx
│ │ │ │ ├── filtering.ts
│ │ │ │ ├── styleds.tsx
│ │ │ │ └── utils.ts
│ │ │ ├── Skeleton
│ │ │ │ └── index.tsx
│ │ │ ├── SlippageSetting
│ │ │ │ └── index.tsx
│ │ │ ├── SolanaAccountExistenceWarning
│ │ │ │ └── index.tsx
│ │ │ ├── Spinner
│ │ │ │ └── index.tsx
│ │ │ ├── StellarSponsorshipModal
│ │ │ │ └── index.tsx
│ │ │ ├── StellarTrustlineModal
│ │ │ │ └── index.tsx
│ │ │ ├── Tab
│ │ │ │ └── index.tsx
│ │ │ ├── Tooltip
│ │ │ │ └── index.tsx
│ │ │ ├── TradingViewAdvanced
│ │ │ │ ├── TVChartContainer.tsx
│ │ │ │ └── api
│ │ │ │ │ ├── history.ts
│ │ │ │ │ ├── index.ts
│ │ │ │ │ └── symbols.ts
│ │ │ ├── TradingViewChart
│ │ │ │ └── index.tsx
│ │ │ ├── Wallet
│ │ │ │ ├── ICONAssetModal.tsx
│ │ │ │ ├── ICONWallets
│ │ │ │ │ ├── ICXWallet
│ │ │ │ │ │ ├── UnstakePanel.tsx
│ │ │ │ │ │ └── index.tsx
│ │ │ │ │ ├── SICXWallet
│ │ │ │ │ │ ├── UnstakePanel.tsx
│ │ │ │ │ │ └── index.tsx
│ │ │ │ │ ├── SendPanel.tsx
│ │ │ │ │ └── utils.tsx
│ │ │ │ ├── MultiChainBalanceItem.tsx
│ │ │ │ ├── SingleChainBalanceItem.tsx
│ │ │ │ ├── index.tsx
│ │ │ │ ├── styledComponents.ts
│ │ │ │ └── useClaimableICX.ts
│ │ │ ├── WalletModal
│ │ │ │ ├── EVMWalletModal.tsx
│ │ │ │ ├── InjectiveWalletOptionsModal.tsx
│ │ │ │ ├── SolanaWalletOptionsModal.tsx
│ │ │ │ ├── StellarWalletOptionsModal.tsx
│ │ │ │ ├── SuiWalletOptionsModal.tsx
│ │ │ │ ├── WalletItem.tsx
│ │ │ │ ├── index.tsx
│ │ │ │ ├── shared.tsx
│ │ │ │ └── styled.ts
│ │ │ ├── Warning
│ │ │ │ └── index.tsx
│ │ │ ├── WithdrawalLimitInfo
│ │ │ │ └── index.tsx
│ │ │ ├── WithdrawalLimitWarning
│ │ │ │ └── index.tsx
│ │ │ ├── XTransactionState
│ │ │ │ └── index.tsx
│ │ │ ├── home
│ │ │ │ ├── BBaln
│ │ │ │ │ ├── BBalnSlider.tsx
│ │ │ │ │ ├── UnstakePrompt.tsx
│ │ │ │ │ ├── styledComponents.tsx
│ │ │ │ │ ├── types.ts
│ │ │ │ │ └── utils.ts
│ │ │ │ ├── CollateralPanel.tsx
│ │ │ │ ├── LoanPanel.tsx
│ │ │ │ ├── PositionDetailPanel.tsx
│ │ │ │ ├── RewardsPanel
│ │ │ │ │ ├── ClaimLPRewardsModal.tsx
│ │ │ │ │ ├── ClaimSavingsRewardsModal.tsx
│ │ │ │ │ ├── LPRewards.tsx
│ │ │ │ │ ├── NetworkFeesRewards.tsx
│ │ │ │ │ ├── PositionRewardsInfo.tsx
│ │ │ │ │ ├── RewardTokenItem.tsx
│ │ │ │ │ ├── RewardsGrid.tsx
│ │ │ │ │ ├── SavingsRewards.tsx
│ │ │ │ │ ├── SourceInfo.tsx
│ │ │ │ │ └── index.tsx
│ │ │ │ ├── Savings
│ │ │ │ │ ├── SavingsModal.tsx
│ │ │ │ │ └── index.tsx
│ │ │ │ ├── _components
│ │ │ │ │ ├── CollateralChainSelector
│ │ │ │ │ │ ├── ChainList.tsx
│ │ │ │ │ │ ├── ChainSelectorLogo.tsx
│ │ │ │ │ │ └── index.tsx
│ │ │ │ │ ├── LoanChainSelector
│ │ │ │ │ │ ├── ChainList.tsx
│ │ │ │ │ │ ├── index.tsx
│ │ │ │ │ │ └── styledComponents.ts
│ │ │ │ │ ├── SavingsChainSelector
│ │ │ │ │ │ ├── ChainList.tsx
│ │ │ │ │ │ ├── ChainSelectorLogo.tsx
│ │ │ │ │ │ └── index.tsx
│ │ │ │ │ ├── xCollateralModal
│ │ │ │ │ │ └── index.tsx
│ │ │ │ │ └── xLoanModal
│ │ │ │ │ │ └── index.tsx
│ │ │ │ └── useLoanWalletServiceHandler.tsx
│ │ │ └── trade
│ │ │ │ ├── CrossChainOptions.tsx
│ │ │ │ └── RebalanceButton.tsx
│ │ ├── index.tsx
│ │ ├── pages
│ │ │ ├── claim-goodwill
│ │ │ │ └── page.tsx
│ │ │ ├── claim-legacy-fees
│ │ │ │ └── page.tsx
│ │ │ ├── intent-check
│ │ │ │ └── page.tsx
│ │ │ ├── maintenance
│ │ │ │ └── page.tsx
│ │ │ ├── page.tsx
│ │ │ ├── test
│ │ │ │ └── page.tsx
│ │ │ ├── trade
│ │ │ │ ├── bridge
│ │ │ │ │ ├── _components
│ │ │ │ │ │ ├── ActivityBarChart.tsx
│ │ │ │ │ │ ├── BridgeActivity.tsx
│ │ │ │ │ │ ├── BridgeTransferForm.tsx
│ │ │ │ │ │ ├── LiquidFinanceIntegration.tsx
│ │ │ │ │ │ ├── XChainList.tsx
│ │ │ │ │ │ ├── XChainSelector.tsx
│ │ │ │ │ │ ├── XTransactionHistoryItem.tsx
│ │ │ │ │ │ └── XTransferModal.tsx
│ │ │ │ │ └── page.tsx
│ │ │ │ ├── layout.tsx
│ │ │ │ ├── supply
│ │ │ │ │ ├── _components
│ │ │ │ │ │ ├── AllPoolsPanel.tsx
│ │ │ │ │ │ ├── LPDescription.tsx
│ │ │ │ │ │ ├── LPPanel.tsx
│ │ │ │ │ │ ├── LiquidityDetails.tsx
│ │ │ │ │ │ ├── LiquidityDetails
│ │ │ │ │ │ │ ├── Accordion.tsx
│ │ │ │ │ │ │ ├── PoolRecord.tsx
│ │ │ │ │ │ │ ├── RespoRewardsInfo.tsx
│ │ │ │ │ │ │ ├── StakeLPModal.tsx
│ │ │ │ │ │ │ ├── StakeLPPanel.tsx
│ │ │ │ │ │ │ ├── SuggestStakingLPModal.tsx
│ │ │ │ │ │ │ ├── WithdrawLiquidityModal.tsx
│ │ │ │ │ │ │ ├── WithdrawPanel.tsx
│ │ │ │ │ │ │ └── shared.tsx
│ │ │ │ │ │ ├── LiquidityPoolsPanel.tsx
│ │ │ │ │ │ ├── PoolPanelContext.ts
│ │ │ │ │ │ ├── SendRemoveXToken.tsx
│ │ │ │ │ │ ├── SupplyLiquidityModal.tsx
│ │ │ │ │ │ ├── WalletSection.tsx
│ │ │ │ │ │ └── utils.tsx
│ │ │ │ │ └── page.tsx
│ │ │ │ └── xswap
│ │ │ │ │ ├── _components
│ │ │ │ │ ├── AdvancedSwapDetails.tsx
│ │ │ │ │ ├── MMAdvancedSwapDetails.tsx
│ │ │ │ │ ├── MMPendingIntents.tsx
│ │ │ │ │ ├── MMSwapCommitButton.tsx
│ │ │ │ │ ├── MMSwapInfo.tsx
│ │ │ │ │ ├── MMSwapModal.tsx
│ │ │ │ │ ├── PriceImpact.tsx
│ │ │ │ │ ├── SwapCommitButton.tsx
│ │ │ │ │ ├── SwapDescription.tsx
│ │ │ │ │ ├── SwapInfo.tsx
│ │ │ │ │ ├── SwapModal.tsx
│ │ │ │ │ ├── SwapPanel.tsx
│ │ │ │ │ ├── TokenList
│ │ │ │ │ │ ├── SkeletonTokenPlaceholder.tsx
│ │ │ │ │ │ ├── Sparkline.tsx
│ │ │ │ │ │ ├── TokenItem.tsx
│ │ │ │ │ │ └── index.tsx
│ │ │ │ │ ├── TradePrice.tsx
│ │ │ │ │ ├── TradeRoute.tsx
│ │ │ │ │ └── XSwapModal.tsx
│ │ │ │ │ ├── page.tsx
│ │ │ │ │ └── utils.ts
│ │ │ └── vote
│ │ │ │ ├── _components
│ │ │ │ ├── BribesPanel
│ │ │ │ │ ├── BribedSource.tsx
│ │ │ │ │ ├── index.tsx
│ │ │ │ │ ├── queries.ts
│ │ │ │ │ └── types.ts
│ │ │ │ ├── LieVotingPanel
│ │ │ │ │ ├── PowerLeftComponent.tsx
│ │ │ │ │ ├── VotingComponent.tsx
│ │ │ │ │ └── index.tsx
│ │ │ │ ├── ProposalsPanel
│ │ │ │ │ └── index.tsx
│ │ │ │ ├── VotingPowerPanel
│ │ │ │ │ └── index.tsx
│ │ │ │ ├── styledComponents.tsx
│ │ │ │ └── utils.ts
│ │ │ │ ├── page.tsx
│ │ │ │ └── proposals
│ │ │ │ ├── [proposalId]
│ │ │ │ └── page.tsx
│ │ │ │ ├── new
│ │ │ │ ├── _components
│ │ │ │ │ └── ArbitraryCalls
│ │ │ │ │ │ ├── ArbitraryCall.tsx
│ │ │ │ │ │ ├── ArbitraryCallMethodParameter.tsx
│ │ │ │ │ │ ├── ArbitraryCallMethodSelector.tsx
│ │ │ │ │ │ ├── ArbitraryCallsForm.tsx
│ │ │ │ │ │ └── utils.ts
│ │ │ │ └── page.tsx
│ │ │ │ └── page.tsx
│ │ └── theme
│ │ │ ├── fonts.d.ts
│ │ │ ├── index.tsx
│ │ │ └── styled.d.ts
│ ├── assets
│ │ ├── font
│ │ │ ├── tex-gyre-adventor-bold
│ │ │ │ ├── tex-gyre-adventor-bold.woff
│ │ │ │ └── tex-gyre-adventor-bold.woff2
│ │ │ └── tex-gyre-adventor-regular
│ │ │ │ ├── tex-gyre-adventor-regular.woff
│ │ │ │ └── tex-gyre-adventor-regular.woff2
│ │ ├── icons
│ │ │ ├── arrow-down.svg
│ │ │ ├── arrow-line.svg
│ │ │ ├── arrow-white.svg
│ │ │ ├── arrow.svg
│ │ │ ├── calendar.svg
│ │ │ ├── cancel.svg
│ │ │ ├── chains
│ │ │ │ ├── archway.svg
│ │ │ │ ├── avalanche.svg
│ │ │ │ ├── eth.svg
│ │ │ │ ├── havah.svg
│ │ │ │ ├── injective.svg
│ │ │ │ ├── optimism.svg
│ │ │ │ ├── solana.svg
│ │ │ │ ├── stellar.svg
│ │ │ │ └── sui.svg
│ │ │ ├── check_circle.svg
│ │ │ ├── copy.svg
│ │ │ ├── cross.svg
│ │ │ ├── edit.svg
│ │ │ ├── external.svg
│ │ │ ├── failure.svg
│ │ │ ├── flip.svg
│ │ │ ├── hana.svg
│ │ │ ├── home.svg
│ │ │ ├── horizontal-flip.svg
│ │ │ ├── metamask.svg
│ │ │ ├── notification.svg
│ │ │ ├── pending.svg
│ │ │ ├── pie-chart.svg
│ │ │ ├── question.svg
│ │ │ ├── remove.svg
│ │ │ ├── search.svg
│ │ │ ├── search1.svg
│ │ │ ├── sigma.svg
│ │ │ ├── success.svg
│ │ │ ├── tick.svg
│ │ │ ├── timer-color.svg
│ │ │ ├── trade.svg
│ │ │ ├── users.svg
│ │ │ ├── vote.svg
│ │ │ ├── wallet-tick-color.svg
│ │ │ ├── wallet.svg
│ │ │ └── wallets
│ │ │ │ ├── iconex.svg
│ │ │ │ ├── keplr.svg
│ │ │ │ ├── ledger.svg
│ │ │ │ ├── metamask.svg
│ │ │ │ └── walletconnect.svg
│ │ └── images
│ │ │ ├── airdrip.png
│ │ │ ├── balanced-logo.png
│ │ │ ├── default.png
│ │ │ ├── hana.png
│ │ │ ├── icon-logo.png
│ │ │ ├── rebalancing-above.svg
│ │ │ ├── rebalancing-below.svg
│ │ │ ├── spinner-big.png
│ │ │ └── spinner.png
│ ├── charting_library
│ │ ├── ar-tv-chart.132c7060.html
│ │ ├── bundles
│ │ │ ├── 0.d46f0b5e9380d7893de5.js
│ │ │ ├── 0579d40b812fa2c3ffe72e5803a6e14c.cur
│ │ │ ├── 1.92647ec0a7beb8b2898d.css
│ │ │ ├── 1.92647ec0a7beb8b2898d.rtl.css
│ │ │ ├── 1.f02c87d35fbc8ffcaedb.js
│ │ │ ├── 10.21e665b7935d5bc4ba64.js
│ │ │ ├── 11.8b65dc2e0d8b6e5041c4.css
│ │ │ ├── 11.8b65dc2e0d8b6e5041c4.rtl.css
│ │ │ ├── 11.df012db70159a159d927.js
│ │ │ ├── 12.37750b21f6d8d35c6e6e.js
│ │ │ ├── 12.ef8057448f3a7ae1c3d8.css
│ │ │ ├── 12.ef8057448f3a7ae1c3d8.rtl.css
│ │ │ ├── 13.699469c73d09b7add56d.js
│ │ │ ├── 13.9240f13280154f2593b7.css
│ │ │ ├── 13.9240f13280154f2593b7.rtl.css
│ │ │ ├── 14.8095b40dd1e7deedf401.css
│ │ │ ├── 14.8095b40dd1e7deedf401.rtl.css
│ │ │ ├── 14.d1148b38d59df9ca5061.js
│ │ │ ├── 15.44f2acca80348a1da1a6.js
│ │ │ ├── 16.680572949c1125757d35.js
│ │ │ ├── 16.d567c9db608f3d98d8de.css
│ │ │ ├── 16.d567c9db608f3d98d8de.rtl.css
│ │ │ ├── 17.404a01f527881dfff424.js
│ │ │ ├── 17.ec35a19db935279c5b42.css
│ │ │ ├── 17.ec35a19db935279c5b42.rtl.css
│ │ │ ├── 18.78de69cfba051874e071.js
│ │ │ ├── 19.048f7f5d36fef428ca8d.js
│ │ │ ├── 19.75c30426f9d3ad5ca0c5.css
│ │ │ ├── 19.75c30426f9d3ad5ca0c5.rtl.css
│ │ │ ├── 1df47f578aeef40dd1f2328338a133be.png
│ │ │ ├── 2.60931787a6734697ac13.js
│ │ │ ├── 20.bc09ed47c5a62e1bc5c2.js
│ │ │ ├── 21.4c7b5cccb67a95e7e782.js
│ │ │ ├── 21.8153544955cdc47262e3.css
│ │ │ ├── 21.8153544955cdc47262e3.rtl.css
│ │ │ ├── 22.ca4300bcf614d8d5f4ab.js
│ │ │ ├── 22.da9773799a06c6066d1e.css
│ │ │ ├── 22.da9773799a06c6066d1e.rtl.css
│ │ │ ├── 23.256ba98e6a03200bdeba.js
│ │ │ ├── 23.ee754f50171546186397.css
│ │ │ ├── 23.ee754f50171546186397.rtl.css
│ │ │ ├── 24.bc4fafedb1730259aa10.js
│ │ │ ├── 24.e70c1623e0c74477ef2e.css
│ │ │ ├── 24.e70c1623e0c74477ef2e.rtl.css
│ │ │ ├── 25.7416db26ed3dcc87c05a.js
│ │ │ ├── 26.3aeec391d4e6e19989ee.js
│ │ │ ├── 26.69139a843bc1c84f790b.css
│ │ │ ├── 26.69139a843bc1c84f790b.rtl.css
│ │ │ ├── 27.e3ec08b1fb9df5f36ada.js
│ │ │ ├── 28.3140e8cb507ad2593c76.css
│ │ │ ├── 28.3140e8cb507ad2593c76.rtl.css
│ │ │ ├── 28.9f103042c27ea2df422f.js
│ │ │ ├── 29.07af6dca962ea27209f0.css
│ │ │ ├── 29.07af6dca962ea27209f0.rtl.css
│ │ │ ├── 29.3df8712b85d45a626aa0.js
│ │ │ ├── 3.76c398b01b707e5b251c.js
│ │ │ ├── 3.eeb90413029441681f91.css
│ │ │ ├── 3.eeb90413029441681f91.rtl.css
│ │ │ ├── 30.0b732ccb122d160480b6.js
│ │ │ ├── 31.8d2b7a538755fd1bb760.js
│ │ │ ├── 32.13ce02217cf8f9dd6d90.js
│ │ │ ├── 3293616ec0c605c7c2db25829a0a509e.woff
│ │ │ ├── 33.02ed7df481ae8243d2f2.css
│ │ │ ├── 33.02ed7df481ae8243d2f2.rtl.css
│ │ │ ├── 33.4d0dd1f7001fc02099bb.js
│ │ │ ├── 34.4b6099931f57311efc1a.css
│ │ │ ├── 34.4b6099931f57311efc1a.rtl.css
│ │ │ ├── 34.c9baa59add71a1e48fd2.js
│ │ │ ├── 35.999f0e072062b7369a1a.css
│ │ │ ├── 35.999f0e072062b7369a1a.rtl.css
│ │ │ ├── 35.ed9e360f9686ad3a9497.js
│ │ │ ├── 36.1882d1a8d312a0e193e9.js
│ │ │ ├── 36.f315a19c17d5636af8f7.css
│ │ │ ├── 36.f315a19c17d5636af8f7.rtl.css
│ │ │ ├── 37.90129e4904155350d6a1.js
│ │ │ ├── 38.41f3d509b61c8af47de3.js
│ │ │ ├── 39.74a7bc3b464cd284827f.css
│ │ │ ├── 39.74a7bc3b464cd284827f.rtl.css
│ │ │ ├── 39.bc1e9ce938fd5152831f.js
│ │ │ ├── 4.92647ec0a7beb8b2898d.css
│ │ │ ├── 4.92647ec0a7beb8b2898d.rtl.css
│ │ │ ├── 4.c7430b8d89cddcf51345.js
│ │ │ ├── 40.b59f41ba4cacbfb8acc3.js
│ │ │ ├── 40566afd832a155e5e370a8bd423de4b.svg
│ │ │ ├── 40f9a03d174178efb12303caa9bc7cd8.woff2
│ │ │ ├── 41.8fa0fb0bd4ad0241ef2f.css
│ │ │ ├── 41.8fa0fb0bd4ad0241ef2f.rtl.css
│ │ │ ├── 41.a19b0ae5d68f855d2753.js
│ │ │ ├── 42.494986b0981f6d116fef.js
│ │ │ ├── 42.9078fb8f1629e3eee9bd.css
│ │ │ ├── 42.9078fb8f1629e3eee9bd.rtl.css
│ │ │ ├── 43.619c5ed4a592cc2965a4.js
│ │ │ ├── 43.8bf90585004742c338c5.css
│ │ │ ├── 43.8bf90585004742c338c5.rtl.css
│ │ │ ├── 44.0a7df307e4f397763ce8.js
│ │ │ ├── 45.12a19785e3864bd62a76.css
│ │ │ ├── 45.12a19785e3864bd62a76.rtl.css
│ │ │ ├── 45.db9dbd3e9bfeca5333da.js
│ │ │ ├── 46.f1d4cfe6d6f830b4a011.js
│ │ │ ├── 47.a3da3f774c90bd22798e.js
│ │ │ ├── 48.a3fdb9dd54af71b3bda6.css
│ │ │ ├── 48.a3fdb9dd54af71b3bda6.rtl.css
│ │ │ ├── 48.a93f9cb8b1bcc0e0f21e.js
│ │ │ ├── 49.bacd609f7eb77a4a4b68.js
│ │ │ ├── 49.d723843c9192493b8c13.css
│ │ │ ├── 49.d723843c9192493b8c13.rtl.css
│ │ │ ├── 4a9abefd31dab7c8239e02e925aacd78.png
│ │ │ ├── 4fafff07d8914dc11f6d335f606ff47c.png
│ │ │ ├── 5.5e97b270ab80d99e9085.js
│ │ │ ├── 50.8d5cba5b90176d3d2e3d.css
│ │ │ ├── 50.8d5cba5b90176d3d2e3d.rtl.css
│ │ │ ├── 50.b282667dddcb7fe1569a.js
│ │ │ ├── 51.11871c50951db825ace3.js
│ │ │ ├── 51.300c3df03ca063ec03a0.css
│ │ │ ├── 51.300c3df03ca063ec03a0.rtl.css
│ │ │ ├── 52.0379a85baae3ab43b15c.js
│ │ │ ├── 52.29cec22b3525b47af67e.css
│ │ │ ├── 52.29cec22b3525b47af67e.rtl.css
│ │ │ ├── 53.1d3ec98cfb8e19affb1c.js
│ │ │ ├── 54.bb5888ae55ea0a253a5b.js
│ │ │ ├── 55.3c35a629db21ab961f11.js
│ │ │ ├── 56.b3e69145c0fee614443d.js
│ │ │ ├── 57.236996ec416da4c1f683.js
│ │ │ ├── 58.7ffac4ba908b95705e63.js
│ │ │ ├── 59.397cb6699b74d64072a8.js
│ │ │ ├── 59.418f1db161eefae63284.css
│ │ │ ├── 59.418f1db161eefae63284.rtl.css
│ │ │ ├── 6.2221bb6a5d920bbb4bb2.css
│ │ │ ├── 6.2221bb6a5d920bbb4bb2.rtl.css
│ │ │ ├── 6.2d67b0ae77825dbd455d.js
│ │ │ ├── 60.6b5eced2ef8fa856be88.js
│ │ │ ├── 60.d4583c71cca790a25900.css
│ │ │ ├── 60.d4583c71cca790a25900.rtl.css
│ │ │ ├── 61.38a3040c925fadff7b64.js
│ │ │ ├── 62.63b309f5f8da9ca013b8.js
│ │ │ ├── 63.8255c7f5191bcafcee7c.js
│ │ │ ├── 63.898a61bf08239711dc74.css
│ │ │ ├── 63.898a61bf08239711dc74.rtl.css
│ │ │ ├── 64.6f232bdb0fb4cdcc2d7d.css
│ │ │ ├── 64.6f232bdb0fb4cdcc2d7d.rtl.css
│ │ │ ├── 64.ec4b4d03b28c77658dde.js
│ │ │ ├── 65.556980fc277562af83c8.css
│ │ │ ├── 65.556980fc277562af83c8.rtl.css
│ │ │ ├── 65.f895a78b4e04257983ff.js
│ │ │ ├── 66.2979e9b7c35e7bf03a37.js
│ │ │ ├── 66.84b4001b5c622a569dde.css
│ │ │ ├── 66.84b4001b5c622a569dde.rtl.css
│ │ │ ├── 67.19c83a0c303c290216d2.css
│ │ │ ├── 67.19c83a0c303c290216d2.rtl.css
│ │ │ ├── 67.25fd4b78c8c514988aeb.js
│ │ │ ├── 68.8b4124c875484d11fd94.js
│ │ │ ├── 68.fa7424ae9c5fe5483aac.css
│ │ │ ├── 68.fa7424ae9c5fe5483aac.rtl.css
│ │ │ ├── 69.094b4a764d3dc17820cf.css
│ │ │ ├── 69.094b4a764d3dc17820cf.rtl.css
│ │ │ ├── 69.43756a5c7477730eb0c4.js
│ │ │ ├── 7.2c7c4f8a49c6380227de.js
│ │ │ ├── 70.c27146ec029eda556108.css
│ │ │ ├── 70.c27146ec029eda556108.rtl.css
│ │ │ ├── 70.cb9d1bb5a00896c1bb97.js
│ │ │ ├── 71.15e639d294c4209f256e.css
│ │ │ ├── 71.15e639d294c4209f256e.rtl.css
│ │ │ ├── 71.6a9d0842f5e48f68399c.js
│ │ │ ├── 72.07441fd67b864b86147b.css
│ │ │ ├── 72.07441fd67b864b86147b.rtl.css
│ │ │ ├── 72.e3925aaf38d2c8997638.js
│ │ │ ├── 73.6b8b9e5e2c8e2b753cb8.css
│ │ │ ├── 73.6b8b9e5e2c8e2b753cb8.rtl.css
│ │ │ ├── 73.8ca1a096c5bdc2e5fb8a.js
│ │ │ ├── 7393f661fc7d4389ea6d4dabd2a5aeea.png
│ │ │ ├── 74.34dcc0d3cd1bbfa5e951.js
│ │ │ ├── 74.8c591c252b2e7ad8f744.css
│ │ │ ├── 74.8c591c252b2e7ad8f744.rtl.css
│ │ │ ├── 75.1c9a3a6524248ddf88bf.js
│ │ │ ├── 75.fefbc386c59bf7d4f9f7.css
│ │ │ ├── 75.fefbc386c59bf7d4f9f7.rtl.css
│ │ │ ├── 76.5d20bed213399f326603.js
│ │ │ ├── 76.f14d71a31295d8cd8d8b.css
│ │ │ ├── 76.f14d71a31295d8cd8d8b.rtl.css
│ │ │ ├── 77.3e4ccccc7d3eb03c488f.js
│ │ │ ├── 77.9c35f7046b848fbfd7f5.css
│ │ │ ├── 77.9c35f7046b848fbfd7f5.rtl.css
│ │ │ ├── 78.0d502ab4d94441708606.css
│ │ │ ├── 78.0d502ab4d94441708606.rtl.css
│ │ │ ├── 78.1d1d47a915b06f1496fb.js
│ │ │ ├── 79.86e92b77f8cf32e6bc37.js
│ │ │ ├── 79.b990749a4839f9123f26.css
│ │ │ ├── 79.b990749a4839f9123f26.rtl.css
│ │ │ ├── 7e0cc5f7d7f5151500dd60b8d6ca60a1.png
│ │ │ ├── 8.e66ab8f27911a033604f.css
│ │ │ ├── 8.e66ab8f27911a033604f.rtl.css
│ │ │ ├── 8.ffab20b86db484062268.js
│ │ │ ├── 80.5bdd53d5fc42d40eee28.css
│ │ │ ├── 80.5bdd53d5fc42d40eee28.rtl.css
│ │ │ ├── 80.b5bc6acec3b531a510a9.js
│ │ │ ├── 81.552e046aa828739c508b.css
│ │ │ ├── 81.552e046aa828739c508b.rtl.css
│ │ │ ├── 81.e6a1f76017a44b03480b.js
│ │ │ ├── 82.8c2919e6c8f54e36e9e6.js
│ │ │ ├── 82.e06fe84c8cdead4bd52e.css
│ │ │ ├── 82.e06fe84c8cdead4bd52e.rtl.css
│ │ │ ├── 83.e238aa056c5d4827cbdd.css
│ │ │ ├── 83.e238aa056c5d4827cbdd.rtl.css
│ │ │ ├── 83.f3e53bb5a5940e084955.js
│ │ │ ├── 84.8acc496b4deeeeefb5af.js
│ │ │ ├── 84.bb4fc57627c8626019fd.css
│ │ │ ├── 84.bb4fc57627c8626019fd.rtl.css
│ │ │ ├── 85.39c78fbeaabae306f343.js
│ │ │ ├── 85.e0ba32bafcab02208901.css
│ │ │ ├── 85.e0ba32bafcab02208901.rtl.css
│ │ │ ├── 86.4bbbb9e6262243419986.js
│ │ │ ├── 86.9244fc2bcc2370425a15.css
│ │ │ ├── 86.9244fc2bcc2370425a15.rtl.css
│ │ │ ├── 87.605cbc508223ec27341c.css
│ │ │ ├── 87.605cbc508223ec27341c.rtl.css
│ │ │ ├── 87.cf03fa0a76bfcadd157d.js
│ │ │ ├── 88.158dd8a18e176936a343.css
│ │ │ ├── 88.158dd8a18e176936a343.rtl.css
│ │ │ ├── 88.d1e3aec63ece25f6b8a9.js
│ │ │ ├── 89.5f142643917701de773b.css
│ │ │ ├── 89.5f142643917701de773b.rtl.css
│ │ │ ├── 89.d8aa43b4b9378722d572.js
│ │ │ ├── 898929f1acdb622689e0fc0c95c8fcd0.png
│ │ │ ├── 9.84ecbc930e51cb26d06a.js
│ │ │ ├── 9.8ab09f93a5113a634119.css
│ │ │ ├── 9.8ab09f93a5113a634119.rtl.css
│ │ │ ├── 90.877114560c4828a97702.css
│ │ │ ├── 90.877114560c4828a97702.rtl.css
│ │ │ ├── 90.ce47bb68fc3fc88b5590.js
│ │ │ ├── 91.2142b248a2bb29549a99.css
│ │ │ ├── 91.2142b248a2bb29549a99.rtl.css
│ │ │ ├── 91.a9b79ef7ba0a62311a53.js
│ │ │ ├── 92.76d5ca7ebec10a1a7a12.js
│ │ │ ├── 92.e46f0aa06bcdbddf3831.css
│ │ │ ├── 92.e46f0aa06bcdbddf3831.rtl.css
│ │ │ ├── 93.17d34ca77a7fc85a24d9.css
│ │ │ ├── 93.17d34ca77a7fc85a24d9.rtl.css
│ │ │ ├── 93.6de56ef1975f4a31e542.js
│ │ │ ├── 94.231bea5fb12b806ef287.js
│ │ │ ├── 94.b204218cb73b576333a1.css
│ │ │ ├── 94.b204218cb73b576333a1.rtl.css
│ │ │ ├── 95.51244d1c4baf49d08807.css
│ │ │ ├── 95.51244d1c4baf49d08807.rtl.css
│ │ │ ├── 95.6f7da80aac5cf2bf77d6.js
│ │ │ ├── 96.43bb935eee30715afff7.js
│ │ │ ├── 96.be9ad3d6a7c91501bb55.css
│ │ │ ├── 96.be9ad3d6a7c91501bb55.rtl.css
│ │ │ ├── a6506134daec7169f68f563f084a9d41.svg
│ │ │ ├── add-compare-dialog.f980c19f222ff9cb8fe6.js
│ │ │ ├── b1a63a011fd92dfb93db6db243bb036c.woff2
│ │ │ ├── change-interval-dialog.e928f8dec65c9244cafe.js
│ │ │ ├── chart-bottom-toolbar.b2e895a5fd3f204fb6b6.js
│ │ │ ├── chart-event-hint.94e94e93f9fdee936b66.js
│ │ │ ├── chart-screenshot-hint.14bfec43c52bc3d28f82.js
│ │ │ ├── chart-widget-gui.226991e9f53aba124fc2.js
│ │ │ ├── compare-model.0e6bbdc5f5942c9a716e.js
│ │ │ ├── context-menu-renderer.7f6f59270ef0f3afa2ed.js
│ │ │ ├── currency-label-menu.a7a0c0e44d64b092f2cc.js
│ │ │ ├── custom-intervals-add-dialog.bb64431fb1c6d852f9f1.js
│ │ │ ├── drawing-toolbar.8cc497633535648562e7.js
│ │ │ ├── ed68e83c16f77203e73dbc4c3a7c7fa1.cur
│ │ │ ├── export-data.c819cfa996e2815ff11d.js
│ │ │ ├── f55394b616ed1ae9462c37daab941d93.png
│ │ │ ├── floating-toolbars.d78a058b82ab09013aac.js
│ │ │ ├── full-tooltips-popup.96fc751e06523b742440.js
│ │ │ ├── general-chart-properties-dialog.b08948e0c90aebf07ebd.js
│ │ │ ├── general-property-page.32bdfdbafbd81d9e83c6.js
│ │ │ ├── go-to-date-dialog-impl.3481c4fcfde2f4d46426.js
│ │ │ ├── hammerjs.e5489031ed611f47bf09.js
│ │ │ ├── header-toolbar.4bff61e047f9b8379494.js
│ │ │ ├── library.237999374a0f9a719893.js
│ │ │ ├── library.579e6e3fd95b660ad833.css
│ │ │ ├── library.579e6e3fd95b660ad833.rtl.css
│ │ │ ├── line-tools-icons.090f39d92664af3915a5.js
│ │ │ ├── load-chart-dialog.6cc1a47b17698c0108cb.js
│ │ │ ├── lollipop-tooltip-renderer.6705b971a2e73c26ecad.js
│ │ │ ├── lt-pane-views.4d2ee6c5330cd3760eb0.js
│ │ │ ├── lt-property-pages-with-definitions.a5e8283e77afa66b5636.js
│ │ │ ├── manage-drawings-dialog.1c0c3737002fa63fe6a6.js
│ │ │ ├── moment.78e587a83a009ca48cda.js
│ │ │ ├── new-confirm-inputs-dialog.00d79c2263e005170345.js
│ │ │ ├── new-edit-object-dialog.0ed1c3834cfc0e834aed.js
│ │ │ ├── object-tree-dialog.5b98d078925b3addfb0a.js
│ │ │ ├── react.9f2899b40ad0e104f6c9.js
│ │ │ ├── redux.43c3f6d214bcf2d1fbd1.js
│ │ │ ├── restricted-toolset.08fefbae2bc0877b0ef2.js
│ │ │ ├── runtime.c6da8e1e9c16eccdffac.js
│ │ │ ├── series-icons-map.ec8043f64d8b06dbce29.js
│ │ │ ├── series-pane-views.eefe35e1c508ac16c102.js
│ │ │ ├── share-chart-to-social-utils.c225af2051efd23269e0.js
│ │ │ ├── show-theme-save-dialog.f81ebf1b2ce08f4399fd.js
│ │ │ ├── simple-dialog.bd79f02afd512f0f36dd.js
│ │ │ ├── source-properties-editor.e858d44541ebb6f974a2.js
│ │ │ ├── study-market.3efd7bf7bc6e6fc7db2d.js
│ │ │ ├── study-pane-views.9a873dcf74adedf7600b.js
│ │ │ ├── study-property-pages-with-definitions.ca4fc2ef5a4deff8c0bb.js
│ │ │ ├── study-template-dialog.fe56a9893a3695e93531.js
│ │ │ ├── symbol-info-dialog-impl.17daedab6f893acdeae4.js
│ │ │ ├── symbol-search-dialog.fd3311eee8604f807c80.js
│ │ │ ├── take-chart-image-impl.c0e6073dcac3041eecf2.js
│ │ │ └── vendors.6f5e0d8d267cb3e63ee0.js
│ │ ├── charting_library.cjs.js
│ │ ├── charting_library.d.ts
│ │ ├── charting_library.esm.js
│ │ ├── charting_library.js
│ │ ├── charting_library.standalone.js
│ │ ├── cs-tv-chart.132c7060.html
│ │ ├── da_DK-tv-chart.132c7060.html
│ │ ├── datafeed-api.d.ts
│ │ ├── de-tv-chart.132c7060.html
│ │ ├── el-tv-chart.132c7060.html
│ │ ├── en-tv-chart.132c7060.html
│ │ ├── es-tv-chart.132c7060.html
│ │ ├── et_EE-tv-chart.132c7060.html
│ │ ├── fa-tv-chart.132c7060.html
│ │ ├── fr-tv-chart.132c7060.html
│ │ ├── he_IL-tv-chart.132c7060.html
│ │ ├── hu_HU-tv-chart.132c7060.html
│ │ ├── id_ID-tv-chart.132c7060.html
│ │ ├── it-tv-chart.132c7060.html
│ │ ├── ja-tv-chart.132c7060.html
│ │ ├── ko-tv-chart.132c7060.html
│ │ ├── ms_MY-tv-chart.132c7060.html
│ │ ├── nl_NL-tv-chart.132c7060.html
│ │ ├── no-tv-chart.132c7060.html
│ │ ├── package.json
│ │ ├── pl-tv-chart.132c7060.html
│ │ ├── pt-tv-chart.132c7060.html
│ │ ├── ro-tv-chart.132c7060.html
│ │ ├── ru-tv-chart.132c7060.html
│ │ ├── sk_SK-tv-chart.132c7060.html
│ │ ├── sv-tv-chart.132c7060.html
│ │ ├── th-tv-chart.132c7060.html
│ │ ├── tr-tv-chart.132c7060.html
│ │ ├── vi-tv-chart.132c7060.html
│ │ ├── zh-tv-chart.132c7060.html
│ │ └── zh_TW-tv-chart.132c7060.html
│ ├── constants
│ │ ├── config.ts
│ │ ├── index.ts
│ │ ├── locales.ts
│ │ ├── misc.ts
│ │ ├── pairs.ts
│ │ ├── routing.ts
│ │ ├── tokens.ts
│ │ └── tokens1.ts
│ ├── hooks
│ │ ├── Tokens.ts
│ │ ├── useActiveLocale.ts
│ │ ├── useAllCurrencyCombinations.ts
│ │ ├── useAnalytics.ts
│ │ ├── useApproveCallback.tsx
│ │ ├── useArrowControl.ts
│ │ ├── useAssetManagerTokens.tsx
│ │ ├── useCxApi.ts
│ │ ├── useDebounce.ts
│ │ ├── useEthereumChainId.ts
│ │ ├── useEvmSwitchChain.ts
│ │ ├── useIconNetworkId.ts
│ │ ├── useIntentProvider.ts
│ │ ├── useInterval.ts
│ │ ├── useIsWindowVisible.ts
│ │ ├── useKeyPress.ts
│ │ ├── useLast.ts
│ │ ├── useLastCount.ts
│ │ ├── useLocalStorage.ts
│ │ ├── useLocationLinkProps.ts
│ │ ├── useManualAddresses.tsx
│ │ ├── useModalStore.tsx
│ │ ├── useOnClickOutside.tsx
│ │ ├── useParsedQueryString.tsx
│ │ ├── usePrevious.ts
│ │ ├── useSort.ts
│ │ ├── useSortCurrency.ts
│ │ ├── useSortXChains.ts
│ │ ├── useSortXCollateralTypes.ts
│ │ ├── useSortXPositions.ts
│ │ ├── useTimeout.ts
│ │ ├── useTimestampRounded.ts
│ │ ├── useToggle.ts
│ │ ├── useV2Pairs.ts
│ │ ├── useWalletPrompting.ts
│ │ ├── useWallets.tsx
│ │ ├── useWidth.ts
│ │ ├── useXCallGasChecker.tsx
│ │ └── useXTokens.tsx
│ ├── i18n.tsx
│ ├── index.tsx
│ ├── lib
│ │ ├── i18n.tsx
│ │ └── intent.tsx
│ ├── locales
│ │ ├── de-DE.po
│ │ ├── en-US.po
│ │ ├── es-ES.po
│ │ ├── fr-FR.po
│ │ ├── ko-KR.po
│ │ ├── nl-NL.po
│ │ ├── pl-PL.po
│ │ ├── pseudo.po
│ │ └── vi-VN.po
│ ├── packages
│ │ ├── icon-react
│ │ │ └── index.tsx
│ │ └── nouislider-react
│ │ │ ├── index.jsx
│ │ │ └── utils.js
│ ├── providers
│ │ └── PlausibleProvider.tsx
│ ├── queries
│ │ ├── backendv2
│ │ │ └── index.ts
│ │ ├── constants.ts
│ │ ├── contract
│ │ │ └── index.ts
│ │ ├── history
│ │ │ └── index.ts
│ │ ├── queryKeys.ts
│ │ ├── rebalancing
│ │ │ └── index.ts
│ │ ├── reward
│ │ │ └── index.ts
│ │ ├── swap
│ │ │ └── index.ts
│ │ ├── utils.ts
│ │ └── vote
│ │ │ └── index.ts
│ ├── sentry.ts
│ ├── serviceWorker.ts
│ ├── store
│ │ ├── application
│ │ │ ├── hooks.ts
│ │ │ ├── reducer.ts
│ │ │ └── updater.ts
│ │ ├── arbitraryCalls
│ │ │ ├── hooks.ts
│ │ │ └── reducer.ts
│ │ ├── bbaln
│ │ │ ├── hooks.ts
│ │ │ └── reducer.ts
│ │ ├── bridge
│ │ │ ├── hooks.tsx
│ │ │ └── reducer.ts
│ │ ├── collateral
│ │ │ ├── hooks.ts
│ │ │ └── reducer.ts
│ │ ├── configureStore.ts
│ │ ├── fees
│ │ │ ├── hooks.ts
│ │ │ └── reducer.ts
│ │ ├── hooks.ts
│ │ ├── index.ts
│ │ ├── lists
│ │ │ ├── communitylist.json
│ │ │ ├── hooks.ts
│ │ │ ├── reducer.ts
│ │ │ ├── tokenlist.json
│ │ │ └── wrappedTokenInfo.ts
│ │ ├── liveVoting
│ │ │ ├── hooks.ts
│ │ │ ├── reducer.ts
│ │ │ └── types.ts
│ │ ├── loan
│ │ │ ├── hooks.ts
│ │ │ └── reducer.ts
│ │ ├── mint
│ │ │ ├── hooks.tsx
│ │ │ └── reducer.ts
│ │ ├── oracle
│ │ │ └── hooks.ts
│ │ ├── ratio
│ │ │ ├── hooks.ts
│ │ │ └── reducer.ts
│ │ ├── reward
│ │ │ ├── hooks.ts
│ │ │ └── reducer.ts
│ │ ├── savings
│ │ │ ├── hooks.ts
│ │ │ └── reducer.ts
│ │ ├── stabilityFund
│ │ │ ├── hooks.ts
│ │ │ └── reducer.ts
│ │ ├── stakedLP
│ │ │ ├── hooks.ts
│ │ │ └── reducer.ts
│ │ ├── swap
│ │ │ ├── hooks.ts
│ │ │ ├── reducer.ts
│ │ │ └── trade.ts
│ │ ├── transactions
│ │ │ ├── actions.ts
│ │ │ ├── hooks.tsx
│ │ │ ├── reducer.ts
│ │ │ ├── updater.tsx
│ │ │ └── useMMTransactionStore.tsx
│ │ ├── user
│ │ │ ├── hooks.tsx
│ │ │ └── reducer.ts
│ │ └── wallet
│ │ │ ├── hooks.ts
│ │ │ └── reducer.ts
│ ├── styles
│ │ └── airdrip.css
│ ├── types
│ │ ├── hana-wallet.d.ts
│ │ ├── index.ts
│ │ └── pair.ts
│ ├── utils
│ │ ├── analytics.ts
│ │ ├── customEvent.ts
│ │ ├── formatter.ts
│ │ ├── index.ts
│ │ ├── isTradeBetter.ts
│ │ ├── loadable.tsx
│ │ ├── messages.ts
│ │ ├── timeformat.ts
│ │ └── xTokens.ts
│ └── vite-env.d.ts
│ ├── tsconfig.json
│ ├── tsconfig.node.json
│ ├── vercel.json
│ └── vite.config.ts
├── biome.json
├── package.json
├── packages
├── .DS_Store
├── balanced-js
│ ├── .gitignore
│ ├── LICENSE
│ ├── package.json
│ ├── src
│ │ ├── addresses.ts
│ │ ├── chain.ts
│ │ ├── contractSettings.ts
│ │ ├── contracts
│ │ │ ├── Airdrip.ts
│ │ │ ├── AssetManager.ts
│ │ │ ├── BALN.ts
│ │ │ ├── BBALN.ts
│ │ │ ├── BalancedOracle.ts
│ │ │ ├── Band.ts
│ │ │ ├── Bribe.ts
│ │ │ ├── DAOFund.ts
│ │ │ ├── Dex.ts
│ │ │ ├── Dividends.ts
│ │ │ ├── FeeHandler.ts
│ │ │ ├── Governance.ts
│ │ │ ├── ICX.ts
│ │ │ ├── ICXBurner.ts
│ │ │ ├── IISS.ts
│ │ │ ├── IRC2.ts
│ │ │ ├── LiquidationDisbursement.ts
│ │ │ ├── Loans.ts
│ │ │ ├── Multicall.ts
│ │ │ ├── NOL.ts
│ │ │ ├── Rebalancing.ts
│ │ │ ├── Rewards.ts
│ │ │ ├── Router.ts
│ │ │ ├── Savings.ts
│ │ │ ├── StabilityFund.ts
│ │ │ ├── StakedLP.ts
│ │ │ ├── Staking.ts
│ │ │ ├── Trickler.ts
│ │ │ ├── XCall.ts
│ │ │ ├── bnUSD.ts
│ │ │ ├── contract.ts
│ │ │ ├── sICX.ts
│ │ │ └── wICX.ts
│ │ ├── iconex.ts
│ │ └── index.ts
│ ├── tsconfig.json
│ └── tsup.config.ts
├── sdk-core
│ ├── .gitignore
│ ├── LICENSE
│ ├── README.md
│ ├── package.json
│ ├── src
│ │ ├── constants.ts
│ │ ├── declarations.d.ts
│ │ ├── entities
│ │ │ ├── baseCurrency.ts
│ │ │ ├── currency.test.ts
│ │ │ ├── currency.ts
│ │ │ ├── fractions
│ │ │ │ ├── currencyAmount.test.ts
│ │ │ │ ├── currencyAmount.ts
│ │ │ │ ├── fraction.test.ts
│ │ │ │ ├── fraction.ts
│ │ │ │ ├── index.ts
│ │ │ │ ├── percent.test.ts
│ │ │ │ ├── percent.ts
│ │ │ │ ├── price.test.ts
│ │ │ │ └── price.ts
│ │ │ ├── icx.test.ts
│ │ │ ├── icx.ts
│ │ │ ├── index.ts
│ │ │ ├── nativeCurrency.ts
│ │ │ ├── token.test.ts
│ │ │ ├── token.ts
│ │ │ ├── weth9.ts
│ │ │ └── xToken.ts
│ │ ├── index.ts
│ │ └── utils
│ │ │ ├── computePriceImpact.test.ts
│ │ │ ├── computePriceImpact.ts
│ │ │ ├── index.ts
│ │ │ ├── sortedInsert.test.ts
│ │ │ ├── sortedInsert.ts
│ │ │ ├── sqrt.test.ts
│ │ │ ├── sqrt.ts
│ │ │ ├── validateAndParseAddress.test.ts
│ │ │ └── validateAndParseAddress.ts
│ ├── tsconfig.json
│ └── tsup.config.ts
├── v1-sdk
│ ├── .gitignore
│ ├── LICENSE
│ ├── README.md
│ ├── package.json
│ ├── src
│ │ ├── constants.d.ts
│ │ ├── constants.ts
│ │ ├── entities
│ │ │ ├── entities.test.ts
│ │ │ ├── index.d.ts
│ │ │ ├── index.ts
│ │ │ ├── pair.d.ts
│ │ │ ├── pair.test.ts
│ │ │ ├── pair.ts
│ │ │ ├── route.d.ts
│ │ │ ├── route.test.ts
│ │ │ ├── route.ts
│ │ │ ├── trade.d.ts
│ │ │ ├── trade.test.ts
│ │ │ └── trade.ts
│ │ ├── errors.d.ts
│ │ ├── errors.ts
│ │ ├── index.d.ts
│ │ ├── index.ts
│ │ ├── router.d.ts
│ │ ├── router.test.ts
│ │ └── router.ts
│ ├── tsconfig.json
│ └── tsup.config.ts
└── xwagmi
│ ├── .gitignore
│ ├── package.json
│ ├── src
│ ├── XWagmiProviders.tsx
│ ├── actions
│ │ ├── getXChainType.ts
│ │ ├── getXPublicClient.ts
│ │ ├── getXService.ts
│ │ ├── getXWalletClient.ts
│ │ └── index.ts
│ ├── assets
│ │ └── wallets
│ │ │ ├── hana.svg
│ │ │ ├── havah.svg
│ │ │ ├── keplr.svg
│ │ │ ├── metamask.svg
│ │ │ ├── phantom.svg
│ │ │ └── sui.svg
│ ├── constants
│ │ ├── index.ts
│ │ ├── xChains.ts
│ │ └── xTokens.ts
│ ├── core
│ │ ├── XConnector.ts
│ │ ├── XPublicClient.ts
│ │ ├── XService.ts
│ │ ├── XWalletClient.ts
│ │ ├── index.ts
│ │ └── utils.ts
│ ├── hooks
│ │ ├── index.ts
│ │ ├── liquidity
│ │ │ ├── index.ts
│ │ │ ├── useDepositXToken.ts
│ │ │ ├── useWithdrawXToken.ts
│ │ │ ├── useXAddLiquidity.ts
│ │ │ ├── useXClaimRewards.ts
│ │ │ ├── useXRemoveLiquidity.ts
│ │ │ ├── useXStakeLPToken.ts
│ │ │ ├── useXTokenDepositAmount.ts
│ │ │ └── useXUnstakeLPToken.ts
│ │ ├── savings
│ │ │ ├── index.ts
│ │ │ ├── useXClaimSavingsRewards.ts
│ │ │ ├── useXLockBnUSD.ts
│ │ │ ├── useXLockedBnUSDAmount.ts
│ │ │ └── useXUnlockBnUSD.ts
│ │ ├── useSendXTransaction.ts
│ │ ├── useXAccount.ts
│ │ ├── useXAccounts.ts
│ │ ├── useXBalances.ts
│ │ ├── useXChainTypes.ts
│ │ ├── useXConnect.ts
│ │ ├── useXConnectAllChains.ts
│ │ ├── useXConnection.ts
│ │ ├── useXConnectors.ts
│ │ ├── useXDisconnect.ts
│ │ ├── useXDisconnectAll.ts
│ │ ├── useXEstimateApproveGas.ts
│ │ ├── useXEstimateSwapGas.ts
│ │ ├── useXPublicClient.ts
│ │ ├── useXService.ts
│ │ └── useXWalletClient.ts
│ ├── index.ts
│ ├── types
│ │ ├── index.ts
│ │ ├── xChain.ts
│ │ └── xToken.ts
│ ├── useXWagmiStore.tsx
│ ├── utils
│ │ ├── address.ts
│ │ ├── index.ts
│ │ └── zustand.ts
│ ├── xcall
│ │ ├── hooks
│ │ │ ├── useXCallFee.tsx
│ │ │ └── useXCallStats.tsx
│ │ ├── index.ts
│ │ ├── types.ts
│ │ ├── utils.ts
│ │ └── zustand
│ │ │ ├── useTransactionStore.tsx
│ │ │ ├── useXCallEventStore.tsx
│ │ │ ├── useXCallScannerStore.tsx
│ │ │ ├── useXChainHeightStore.tsx
│ │ │ ├── useXMessageStore.tsx
│ │ │ └── useXTransactionStore.tsx
│ └── xchains
│ │ ├── archway
│ │ ├── ArchwayXConnector.ts
│ │ ├── ArchwayXPublicClient.ts
│ │ ├── ArchwayXService.ts
│ │ ├── ArchwayXWalletClient.ts
│ │ ├── XSigningArchwayClient.ts
│ │ ├── constants.ts
│ │ ├── index.ts
│ │ └── utils.ts
│ │ ├── evm
│ │ ├── EvmXConnector.ts
│ │ ├── EvmXPublicClient.ts
│ │ ├── EvmXService.ts
│ │ ├── EvmXWalletClient.ts
│ │ ├── abis
│ │ │ ├── assetManagerContractAbi.ts
│ │ │ ├── bnUSDContractAbi.ts
│ │ │ └── xCallContractAbi.ts
│ │ ├── index.ts
│ │ └── wagmiConfig.ts
│ │ ├── havah
│ │ ├── HavahHanaXConnector.ts
│ │ ├── HavahXConnector.ts
│ │ ├── HavahXPublicClient.ts
│ │ ├── HavahXService.ts
│ │ ├── HavahXWalletClient.ts
│ │ ├── havahJs.ts
│ │ └── index.ts
│ │ ├── icon
│ │ ├── IconHanaXConnector.ts
│ │ ├── IconXPublicClient.ts
│ │ ├── IconXService.ts
│ │ ├── IconXWalletClient.ts
│ │ ├── bnJs.ts
│ │ ├── iconex
│ │ │ └── index.tsx
│ │ ├── index.ts
│ │ └── types.ts
│ │ ├── injective
│ │ ├── InjectiveKelprXConnector.ts
│ │ ├── InjectiveMetamaskXConnector.ts
│ │ ├── InjectiveXPublicClient.ts
│ │ ├── InjectiveXService.ts
│ │ ├── InjectiveXWalletClient.ts
│ │ ├── index.ts
│ │ └── utils.ts
│ │ ├── solana
│ │ ├── SolanaXConnector.ts
│ │ ├── SolanaXPublicClient.ts
│ │ ├── SolanaXService.ts
│ │ ├── SolanaXWalletClient.ts
│ │ ├── hooks
│ │ │ └── useAnchorProvider.tsx
│ │ ├── idls
│ │ │ ├── BALN.json
│ │ │ ├── assetManager.json
│ │ │ ├── bnUSD.json
│ │ │ ├── sICX.json
│ │ │ └── xCall.json
│ │ ├── index.ts
│ │ ├── types
│ │ │ ├── envelope.ts
│ │ │ ├── index.ts
│ │ │ └── message.ts
│ │ └── utils.ts
│ │ ├── stellar
│ │ ├── CustomSorobanServer.ts
│ │ ├── StellarWalletsKitXConnector.ts
│ │ ├── StellarXPublicClient.ts
│ │ ├── StellarXService.ts
│ │ ├── StellarXWalletClient.ts
│ │ ├── index.tsx
│ │ ├── useStellarXConnectors.ts
│ │ └── utils.ts
│ │ └── sui
│ │ ├── SuiXConnector.ts
│ │ ├── SuiXPublicClient.ts
│ │ ├── SuiXService.ts
│ │ ├── SuiXWalletClient.ts
│ │ └── index.ts
│ ├── tsconfig.json
│ └── tsup.config.ts
├── pnpm-lock.yaml
├── pnpm-workspace.yaml
└── turbo.json
/.DS_Store:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/balancednetwork/balanced-network-interface/8e3ace97a9573a660a76830dd2c2199dcb0c9f82/.DS_Store
--------------------------------------------------------------------------------
/.github/ISSUE_TEMPLATE/-chain-name-here--connect-wallet---wallets.md:
--------------------------------------------------------------------------------
1 | ---
2 | name: "(Chain name here) connect wallet / wallets"
3 | about: 'FE work for new integrations '
4 | title: ''
5 | labels: ''
6 | assignees: ''
7 |
8 | ---
9 |
10 |
11 |
--------------------------------------------------------------------------------
/.github/ISSUE_TEMPLATE/-chain-name-here--create-a-chain-config--connect-to-mainnet-and-testnet-rpcs.md:
--------------------------------------------------------------------------------
1 | ---
2 | name: "(Chain name here) create a chain config, connect to mainnet and testnet RPCs"
3 | about: FE work for new integrations
4 | title: ''
5 | labels: ''
6 | assignees: ''
7 |
8 | ---
9 |
10 |
11 |
--------------------------------------------------------------------------------
/.github/ISSUE_TEMPLATE/-chain-name-here--create-a-context-provider-to-expose-address-and-wallet-logic.md:
--------------------------------------------------------------------------------
1 | ---
2 | name: "(Chain name here) create a context provider to expose address and wallet logic"
3 | about: FE work for new integrations (connecting, signing, querying)
4 | title: ''
5 | labels: ''
6 | assignees: ''
7 |
8 | ---
9 |
10 |
11 |
--------------------------------------------------------------------------------
/.github/ISSUE_TEMPLATE/-chain-name-here--create-a-token-list--add-icon-bridged-versions.md:
--------------------------------------------------------------------------------
1 | ---
2 | name: "(Chain name here) create a token list, add ICON bridged versions"
3 | about: 'FE work for new integrations '
4 | title: ''
5 | labels: ''
6 | assignees: ''
7 |
8 | ---
9 |
10 |
11 |
--------------------------------------------------------------------------------
/.github/ISSUE_TEMPLATE/-chain-name-here--create-a-websocket-event-handler-for-xcall-communication.md:
--------------------------------------------------------------------------------
1 | ---
2 | name: "(Chain name here) create a websocket event handler for xCall communication"
3 | about: 'FE work for new integrations '
4 | title: ''
5 | labels: ''
6 | assignees: ''
7 |
8 | ---
9 |
10 |
11 |
--------------------------------------------------------------------------------
/.github/ISSUE_TEMPLATE/-chain-name-here--handle-transaction-signing-for-all-the-actions-from-the-new-chain.md:
--------------------------------------------------------------------------------
1 | ---
2 | name: "(Chain name here) handle transaction signing for all the actions from the new
3 | chain"
4 | about: 'FE work for new integrations '
5 | title: ''
6 | labels: ''
7 | assignees: ''
8 |
9 | ---
10 |
11 |
12 |
--------------------------------------------------------------------------------
/.github/ISSUE_TEMPLATE/-chain-name-here--update-wallet-section-with-new-chain--fetch-balances.md:
--------------------------------------------------------------------------------
1 | ---
2 | name: "(Chain name here) update wallet section with new chain, fetch balances"
3 | about: 'FE work for new integrations '
4 | title: ''
5 | labels: ''
6 | assignees: ''
7 |
8 | ---
9 |
10 |
11 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | # turbo
2 | .turbo
3 |
4 | # dependencies
5 | node_modules
6 |
7 | build/
8 |
9 | # typescript
10 | *.tsbuildinfo
11 |
12 |
13 | .DS_Store
14 |
15 | .idea
16 | .history
17 | .vscode
18 |
--------------------------------------------------------------------------------
/.husky/pre-commit:
--------------------------------------------------------------------------------
1 | pnpm run checkTs
2 |
3 | pnpm lint-staged
--------------------------------------------------------------------------------
/.lintstagedrc:
--------------------------------------------------------------------------------
1 | {
2 | "**/*.{js,jsx,ts,tsx}": ["biome format --write", "biome lint"],
3 | "**/*.json": ["biome format --write"]
4 | }
5 |
--------------------------------------------------------------------------------
/.prettierrc:
--------------------------------------------------------------------------------
1 | {
2 | "printWidth": 120,
3 | "tabWidth": 2,
4 | "useTabs": false,
5 | "semi": true,
6 | "singleQuote": true,
7 | "trailingComma": "all",
8 | "arrowParens": "avoid"
9 | }
10 |
--------------------------------------------------------------------------------
/.vscode/extensions.json:
--------------------------------------------------------------------------------
1 | {
2 | "recommendations": ["dbaeumer.vscode-eslint", "jpoissonnier.vscode-styled-components"]
3 | }
4 |
--------------------------------------------------------------------------------
/.vscode/launch.json:
--------------------------------------------------------------------------------
1 | {
2 | // Use IntelliSense to learn about possible attributes.
3 | // Hover to view descriptions of existing attributes.
4 | // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
5 | "version": "0.2.0",
6 | "configurations": [
7 | {
8 | "name": "Chrome",
9 | "type": "chrome",
10 | "request": "launch",
11 | "url": "http://localhost:3000",
12 | "webRoot": "${workspaceFolder}/src",
13 | "sourceMapPathOverrides": {
14 | "webpack:///src/*": "${webRoot}/*"
15 | }
16 | }
17 | ]
18 | }
19 |
--------------------------------------------------------------------------------
/apps/hswap/.babel-plugin-macrosrc.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | styledComponents: {
3 | displayName: process.env.NODE_ENV !== 'production',
4 | },
5 | };
6 |
--------------------------------------------------------------------------------
/apps/hswap/.gitignore:
--------------------------------------------------------------------------------
1 | # Don't check auto-generated stuff into git
2 | coverage
3 | build
4 | node_modules
5 | stats.json
6 | .pnp
7 | .pnp.js
8 | dist
9 | src/locales/*.js
10 |
11 | # misc
12 | .DS_Store
13 | npm-debug.log*
14 | yarn-debug.log*
15 | yarn-error.log*
16 |
17 | .env.local
18 | .env.production
19 | .env.development.local
20 | .env.test.local
21 | .env.production.local
22 |
23 | # boilerplate internals
24 | generated-cra-app
25 | .cra-template-rb
26 | template
27 | .env
28 | .eslintcache
29 |
30 | .idea
31 | tsconfig.tsbuildinfo
32 |
--------------------------------------------------------------------------------
/apps/hswap/.npmrc:
--------------------------------------------------------------------------------
1 | save-exact = true
2 |
--------------------------------------------------------------------------------
/apps/hswap/.nvmrc:
--------------------------------------------------------------------------------
1 | lts/fermium
2 |
--------------------------------------------------------------------------------
/apps/hswap/.prettierignore:
--------------------------------------------------------------------------------
1 | build/
2 | node_modules/
3 | package-lock.json
4 | yarn.lock
--------------------------------------------------------------------------------
/apps/hswap/.prettierrc:
--------------------------------------------------------------------------------
1 | {
2 | "printWidth": 120,
3 | "tabWidth": 2,
4 | "useTabs": false,
5 | "semi": true,
6 | "singleQuote": true,
7 | "trailingComma": "all",
8 | "arrowParens": "avoid"
9 | }
10 |
--------------------------------------------------------------------------------
/apps/hswap/.stylelintrc:
--------------------------------------------------------------------------------
1 | {
2 | "extends": [
3 | "stylelint-config-standard"
4 | ],
5 | "customSyntax": "postcss-styled-syntax"
6 | }
7 |
--------------------------------------------------------------------------------
/apps/hswap/.unimportedrc.json:
--------------------------------------------------------------------------------
1 | {
2 | "ignorePatterns": [
3 | "**/node_modules/**",
4 | "**/*.tests.{js,jsx,ts,tsx}",
5 | "**/*.test.{js,jsx,ts,tsx}",
6 | "**/*.spec.{js,jsx,ts,tsx}",
7 | "**/tests/**",
8 | "**/__tests__/**",
9 | "**/*.d.ts"
10 | ],
11 | "ignoreUnimported": [],
12 | "ignoreUnused": [],
13 | "ignoreUnresolved": [],
14 | "respectGitignore": true
15 | }
16 |
--------------------------------------------------------------------------------
/apps/hswap/biome.json:
--------------------------------------------------------------------------------
1 | {
2 | "$schema": "https://biomejs.dev/schemas/1.8.3/schema.json",
3 | "extends": ["../../biome.json"],
4 | "files": {
5 | "ignore": ["./src/charting_library/**", "./src/locales/**"]
6 | },
7 | "linter": {
8 | "ignore": ["./src/packages/nouislider-react/**"]
9 | }
10 | }
11 |
--------------------------------------------------------------------------------
/apps/hswap/components.json:
--------------------------------------------------------------------------------
1 | {
2 | "$schema": "https://ui.shadcn.com/schema.json",
3 | "style": "default",
4 | "rsc": false,
5 | "tsx": true,
6 | "tailwind": {
7 | "config": "tailwind.config.js",
8 | "css": "src/index.css",
9 | "baseColor": "slate",
10 | "cssVariables": true,
11 | "prefix": ""
12 | },
13 | "aliases": {
14 | "components": "@/components",
15 | "utils": "@/lib/utils"
16 | }
17 | }
18 |
--------------------------------------------------------------------------------
/apps/hswap/postcss.config.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | plugins: {
3 | tailwindcss: {},
4 | autoprefixer: {},
5 | },
6 | };
7 |
--------------------------------------------------------------------------------
/apps/hswap/public/apple-touch-icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/balancednetwork/balanced-network-interface/8e3ace97a9573a660a76830dd2c2199dcb0c9f82/apps/hswap/public/apple-touch-icon.png
--------------------------------------------------------------------------------
/apps/hswap/public/border-bg.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/balancednetwork/balanced-network-interface/8e3ace97a9573a660a76830dd2c2199dcb0c9f82/apps/hswap/public/border-bg.png
--------------------------------------------------------------------------------
/apps/hswap/public/border-bg2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/balancednetwork/balanced-network-interface/8e3ace97a9573a660a76830dd2c2199dcb0c9f82/apps/hswap/public/border-bg2x.png
--------------------------------------------------------------------------------
/apps/hswap/public/favicon-16x16.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/balancednetwork/balanced-network-interface/8e3ace97a9573a660a76830dd2c2199dcb0c9f82/apps/hswap/public/favicon-16x16.png
--------------------------------------------------------------------------------
/apps/hswap/public/favicon-32x32.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/balancednetwork/balanced-network-interface/8e3ace97a9573a660a76830dd2c2199dcb0c9f82/apps/hswap/public/favicon-32x32.png
--------------------------------------------------------------------------------
/apps/hswap/public/favicon-48x48.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/balancednetwork/balanced-network-interface/8e3ace97a9573a660a76830dd2c2199dcb0c9f82/apps/hswap/public/favicon-48x48.png
--------------------------------------------------------------------------------
/apps/hswap/public/favicon-64x64.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/balancednetwork/balanced-network-interface/8e3ace97a9573a660a76830dd2c2199dcb0c9f82/apps/hswap/public/favicon-64x64.png
--------------------------------------------------------------------------------
/apps/hswap/public/icons/chains/all.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/balancednetwork/balanced-network-interface/8e3ace97a9573a660a76830dd2c2199dcb0c9f82/apps/hswap/public/icons/chains/all.png
--------------------------------------------------------------------------------
/apps/hswap/public/icons/chains/archway-1.svg:
--------------------------------------------------------------------------------
1 |
5 |
--------------------------------------------------------------------------------
/apps/hswap/public/icons/chains/archway.svg:
--------------------------------------------------------------------------------
1 |
5 |
--------------------------------------------------------------------------------
/apps/hswap/public/img-preview/home.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/balancednetwork/balanced-network-interface/8e3ace97a9573a660a76830dd2c2199dcb0c9f82/apps/hswap/public/img-preview/home.png
--------------------------------------------------------------------------------
/apps/hswap/public/img-preview/trade.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/balancednetwork/balanced-network-interface/8e3ace97a9573a660a76830dd2c2199dcb0c9f82/apps/hswap/public/img-preview/trade.png
--------------------------------------------------------------------------------
/apps/hswap/public/logo192.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/balancednetwork/balanced-network-interface/8e3ace97a9573a660a76830dd2c2199dcb0c9f82/apps/hswap/public/logo192.png
--------------------------------------------------------------------------------
/apps/hswap/public/logo384.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/balancednetwork/balanced-network-interface/8e3ace97a9573a660a76830dd2c2199dcb0c9f82/apps/hswap/public/logo384.png
--------------------------------------------------------------------------------
/apps/hswap/public/manifest.json:
--------------------------------------------------------------------------------
1 | {
2 | "short_name": "Hanaswap",
3 | "name": "Hanaswap",
4 | "icons": [
5 | {
6 | "src": "favicon32.png",
7 | "type": "image/png",
8 | "sizes": "32x32"
9 | },
10 | {
11 | "src": "logo192.png",
12 | "type": "image/png",
13 | "sizes": "192x192"
14 | },
15 | {
16 | "src": "logo384.png",
17 | "type": "image/png",
18 | "sizes": "384x384"
19 | }
20 | ],
21 | "orientation": "portrait",
22 | "start_url": ".",
23 | "display": "standalone",
24 | "theme_color": "#01002a",
25 | "background_color": "#01002a"
26 | }
27 |
--------------------------------------------------------------------------------
/apps/hswap/public/marsh-flying-2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/balancednetwork/balanced-network-interface/8e3ace97a9573a660a76830dd2c2199dcb0c9f82/apps/hswap/public/marsh-flying-2.png
--------------------------------------------------------------------------------
/apps/hswap/public/marsh-flying.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/balancednetwork/balanced-network-interface/8e3ace97a9573a660a76830dd2c2199dcb0c9f82/apps/hswap/public/marsh-flying.png
--------------------------------------------------------------------------------
/apps/hswap/public/marsh-with-coins.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/balancednetwork/balanced-network-interface/8e3ace97a9573a660a76830dd2c2199dcb0c9f82/apps/hswap/public/marsh-with-coins.png
--------------------------------------------------------------------------------
/apps/hswap/public/marsh-with-stick.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/balancednetwork/balanced-network-interface/8e3ace97a9573a660a76830dd2c2199dcb0c9f82/apps/hswap/public/marsh-with-stick.png
--------------------------------------------------------------------------------
/apps/hswap/public/robots.txt:
--------------------------------------------------------------------------------
1 | # https://www.robotstxt.org/robotstxt.html
2 | User-agent: *
3 | Disallow:
4 |
--------------------------------------------------------------------------------
/apps/hswap/src/app/components/ChainLogo/index.tsx:
--------------------------------------------------------------------------------
1 | import { cn } from '@/lib/utils';
2 | import { XChain } from '@balancednetwork/xwagmi';
3 | import React from 'react';
4 |
5 | export const ChainLogo = ({ chain, className }: { chain: XChain; className?: string }) => {
6 | return (
7 |
8 |

9 |
10 | );
11 | };
12 |
--------------------------------------------------------------------------------
/apps/hswap/src/app/components/Icons/ChevronDownIcon.tsx:
--------------------------------------------------------------------------------
1 | import React from 'react';
2 |
3 | export const ChevronDownIcon: React.FC> = props => {
4 | return (
5 | // biome-ignore lint/a11y/noSvgWithoutTitle:
6 |
9 | );
10 | };
11 |
--------------------------------------------------------------------------------
/apps/hswap/src/app/components/Icons/ChevronUpIcon.tsx:
--------------------------------------------------------------------------------
1 | import React from 'react';
2 |
3 | export const ChevronUpIcon: React.FC> = props => {
4 | return (
5 | // biome-ignore lint/a11y/noSvgWithoutTitle:
6 |
9 | );
10 | };
11 |
--------------------------------------------------------------------------------
/apps/hswap/src/app/components/Logo/index.tsx:
--------------------------------------------------------------------------------
1 | import React from 'react';
2 | import { isMobile } from 'react-device-detect';
3 |
4 | import LogoMobileSrc from '@/assets/images/logo-mobile.png';
5 | import LogoSrc from '@/assets/images/logo.png';
6 |
7 | export default function Logo(props) {
8 | return (
9 |
10 |
11 |
12 | );
13 | }
14 |
--------------------------------------------------------------------------------
/apps/hswap/src/app/pages/page.tsx:
--------------------------------------------------------------------------------
1 | import React from 'react';
2 |
3 | export function HomePage() {
4 | return Home
;
5 | }
6 |
--------------------------------------------------------------------------------
/apps/hswap/src/app/pages/trade/xswap/page.tsx:
--------------------------------------------------------------------------------
1 | import React from 'react';
2 |
3 | import SwapPanel from './_components/SwapPanel';
4 |
5 | export function TradePage() {
6 | return (
7 | <>
8 |
9 |
10 |
11 | >
12 | );
13 | }
14 |
--------------------------------------------------------------------------------
/apps/hswap/src/assets/icons/arrow-down.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/apps/hswap/src/assets/icons/arrow-line.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/apps/hswap/src/assets/icons/arrow-white.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/apps/hswap/src/assets/icons/arrow.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/apps/hswap/src/assets/icons/cancel.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/apps/hswap/src/assets/icons/chains/archway.svg:
--------------------------------------------------------------------------------
1 |
5 |
--------------------------------------------------------------------------------
/apps/hswap/src/assets/icons/chains/eth.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/apps/hswap/src/assets/icons/check_circle.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/apps/hswap/src/assets/icons/copy.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/apps/hswap/src/assets/icons/cross.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/apps/hswap/src/assets/icons/external.svg:
--------------------------------------------------------------------------------
1 |
9 |
--------------------------------------------------------------------------------
/apps/hswap/src/assets/icons/flip.svg:
--------------------------------------------------------------------------------
1 |
4 |
--------------------------------------------------------------------------------
/apps/hswap/src/assets/icons/hana.svg:
--------------------------------------------------------------------------------
1 |
13 |
--------------------------------------------------------------------------------
/apps/hswap/src/assets/icons/pie-chart.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/apps/hswap/src/assets/icons/question.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/apps/hswap/src/assets/icons/remove.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/apps/hswap/src/assets/icons/search.svg:
--------------------------------------------------------------------------------
1 |
9 |
--------------------------------------------------------------------------------
/apps/hswap/src/assets/icons/search1.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/apps/hswap/src/assets/icons/success.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/apps/hswap/src/assets/icons/wallets/iconex.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/apps/hswap/src/assets/icons/wallets/ledger.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/apps/hswap/src/assets/icons2/arrow-white.svg:
--------------------------------------------------------------------------------
1 |
4 |
--------------------------------------------------------------------------------
/apps/hswap/src/assets/icons2/chevron-down-gradient.svg:
--------------------------------------------------------------------------------
1 |
10 |
--------------------------------------------------------------------------------
/apps/hswap/src/assets/icons2/chevron-down-white.svg:
--------------------------------------------------------------------------------
1 |
4 |
--------------------------------------------------------------------------------
/apps/hswap/src/assets/icons2/chevron-down.svg:
--------------------------------------------------------------------------------
1 |
4 |
--------------------------------------------------------------------------------
/apps/hswap/src/assets/icons2/chevron-up-gradient.svg:
--------------------------------------------------------------------------------
1 |
10 |
--------------------------------------------------------------------------------
/apps/hswap/src/assets/icons2/search.svg:
--------------------------------------------------------------------------------
1 |
4 |
--------------------------------------------------------------------------------
/apps/hswap/src/assets/icons2/subtract.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/apps/hswap/src/assets/images/border-bg.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/balancednetwork/balanced-network-interface/8e3ace97a9573a660a76830dd2c2199dcb0c9f82/apps/hswap/src/assets/images/border-bg.png
--------------------------------------------------------------------------------
/apps/hswap/src/assets/images/border-bg2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/balancednetwork/balanced-network-interface/8e3ace97a9573a660a76830dd2c2199dcb0c9f82/apps/hswap/src/assets/images/border-bg2x.png
--------------------------------------------------------------------------------
/apps/hswap/src/assets/images/default.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/balancednetwork/balanced-network-interface/8e3ace97a9573a660a76830dd2c2199dcb0c9f82/apps/hswap/src/assets/images/default.png
--------------------------------------------------------------------------------
/apps/hswap/src/assets/images/hana.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/balancednetwork/balanced-network-interface/8e3ace97a9573a660a76830dd2c2199dcb0c9f82/apps/hswap/src/assets/images/hana.png
--------------------------------------------------------------------------------
/apps/hswap/src/assets/images/icon-logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/balancednetwork/balanced-network-interface/8e3ace97a9573a660a76830dd2c2199dcb0c9f82/apps/hswap/src/assets/images/icon-logo.png
--------------------------------------------------------------------------------
/apps/hswap/src/assets/images/logo-mobile.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/balancednetwork/balanced-network-interface/8e3ace97a9573a660a76830dd2c2199dcb0c9f82/apps/hswap/src/assets/images/logo-mobile.png
--------------------------------------------------------------------------------
/apps/hswap/src/assets/images/logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/balancednetwork/balanced-network-interface/8e3ace97a9573a660a76830dd2c2199dcb0c9f82/apps/hswap/src/assets/images/logo.png
--------------------------------------------------------------------------------
/apps/hswap/src/assets/images/marsh-flying.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/balancednetwork/balanced-network-interface/8e3ace97a9573a660a76830dd2c2199dcb0c9f82/apps/hswap/src/assets/images/marsh-flying.png
--------------------------------------------------------------------------------
/apps/hswap/src/assets/images/spinner-big.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/balancednetwork/balanced-network-interface/8e3ace97a9573a660a76830dd2c2199dcb0c9f82/apps/hswap/src/assets/images/spinner-big.png
--------------------------------------------------------------------------------
/apps/hswap/src/assets/images/spinner.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/balancednetwork/balanced-network-interface/8e3ace97a9573a660a76830dd2c2199dcb0c9f82/apps/hswap/src/assets/images/spinner.png
--------------------------------------------------------------------------------
/apps/hswap/src/components/ui/collapsible.tsx:
--------------------------------------------------------------------------------
1 | import * as CollapsiblePrimitive from '@radix-ui/react-collapsible';
2 |
3 | const Collapsible = CollapsiblePrimitive.Root;
4 |
5 | const CollapsibleTrigger = CollapsiblePrimitive.CollapsibleTrigger;
6 |
7 | const CollapsibleContent = CollapsiblePrimitive.CollapsibleContent;
8 |
9 | export { Collapsible, CollapsibleTrigger, CollapsibleContent };
10 |
--------------------------------------------------------------------------------
/apps/hswap/src/components/ui/skeleton.tsx:
--------------------------------------------------------------------------------
1 | import { cn } from '@/lib/utils';
2 | import React from 'react';
3 |
4 | function Skeleton({ className, ...props }: React.HTMLAttributes) {
5 | return ;
6 | }
7 |
8 | export { Skeleton };
9 |
--------------------------------------------------------------------------------
/apps/hswap/src/constants/config.ts:
--------------------------------------------------------------------------------
1 | import { SupportedChainId as NetworkId } from '@balancednetwork/balanced-js';
2 |
3 | export const NETWORK_ID: NetworkId = parseInt(process.env.REACT_APP_NETWORK_ID ?? '1');
4 |
--------------------------------------------------------------------------------
/apps/hswap/src/constants/index.ts:
--------------------------------------------------------------------------------
1 | import BigNumber from 'bignumber.js';
2 |
3 | export const ZERO = new BigNumber(0);
4 | export const ONE = new BigNumber(1);
5 | export const PLUS_INFINITY = new BigNumber(1 / 0);
6 | export const MINUS_INFINITY = new BigNumber(-1 / 0);
7 |
8 | export const SLIDER_RANGE_MAX_BOTTOM_THRESHOLD = 0.001;
9 |
10 | export const DEFAULT_SLIPPAGE = 50;
11 | export const DEFAULT_SLIPPAGE_LP = 200;
12 |
13 | export const MODAL_FADE_DURATION = 200;
14 |
--------------------------------------------------------------------------------
/apps/hswap/src/hooks/use-mobile.tsx:
--------------------------------------------------------------------------------
1 | import * as React from 'react';
2 |
3 | const MOBILE_BREAKPOINT = 768;
4 |
5 | export function useIsMobile() {
6 | const [isMobile, setIsMobile] = React.useState(undefined);
7 |
8 | React.useEffect(() => {
9 | const mql = window.matchMedia(`(max-width: ${MOBILE_BREAKPOINT - 1}px)`);
10 | const onChange = () => {
11 | setIsMobile(window.innerWidth < MOBILE_BREAKPOINT);
12 | };
13 | mql.addEventListener('change', onChange);
14 | setIsMobile(window.innerWidth < MOBILE_BREAKPOINT);
15 | return () => mql.removeEventListener('change', onChange);
16 | }, []);
17 |
18 | return !!isMobile;
19 | }
20 |
--------------------------------------------------------------------------------
/apps/hswap/src/hooks/useIconNetworkId.ts:
--------------------------------------------------------------------------------
1 | import { NETWORK_ID } from '@/constants/config';
2 |
3 | export function useIconNetworkId() {
4 | return NETWORK_ID;
5 | }
6 |
--------------------------------------------------------------------------------
/apps/hswap/src/hooks/useXTokens.tsx:
--------------------------------------------------------------------------------
1 | import { allXTokens } from '@balancednetwork/xwagmi';
2 | import { XChainId } from '@balancednetwork/xwagmi';
3 |
4 | const useXTokens = (from: XChainId) => {
5 | return allXTokens.filter(t => t.xChainId === from);
6 | };
7 |
8 | export default useXTokens;
9 |
--------------------------------------------------------------------------------
/apps/hswap/src/lib/intent.tsx:
--------------------------------------------------------------------------------
1 | import { IntentService, IntentServiceConfig } from 'icon-intents-sdk';
2 |
3 | export const intentServiceConfig: IntentServiceConfig = {
4 | solverApiEndpoint: 'https://solver.iconblockchain.xyz',
5 | };
6 |
7 | export const intentService = new IntentService(intentServiceConfig);
8 |
--------------------------------------------------------------------------------
/apps/hswap/src/lib/utils.ts:
--------------------------------------------------------------------------------
1 | import { type ClassValue, clsx } from 'clsx';
2 | import { twMerge } from 'tailwind-merge';
3 |
4 | export function cn(...inputs: ClassValue[]) {
5 | return twMerge(clsx(inputs));
6 | }
7 |
--------------------------------------------------------------------------------
/apps/hswap/src/queries/constants.ts:
--------------------------------------------------------------------------------
1 | export const API_ENDPOINT =
2 | process.env.NODE_ENV === 'production'
3 | ? 'https://balanced.icon.community/api/v1'
4 | : 'https://balanced.icon.community/api/v1';
5 |
--------------------------------------------------------------------------------
/apps/hswap/src/store/hooks.ts:
--------------------------------------------------------------------------------
1 | import { TypedUseSelectorHook, useDispatch, useSelector } from 'react-redux';
2 |
3 | import { AppDispatch, AppState } from '@/store';
4 |
5 | export const useAppDispatch = () => useDispatch();
6 | export const useAppSelector: TypedUseSelectorHook = useSelector;
7 |
--------------------------------------------------------------------------------
/apps/hswap/src/store/index.ts:
--------------------------------------------------------------------------------
1 | import { configureAppStore } from './configureStore';
2 |
3 | const store = configureAppStore();
4 |
5 | export default store;
6 |
7 | export type AppState = ReturnType;
8 | export type AppDispatch = typeof store.dispatch;
9 |
--------------------------------------------------------------------------------
/apps/hswap/src/store/lists/reducer.ts:
--------------------------------------------------------------------------------
1 | import { createSlice } from '@reduxjs/toolkit';
2 |
3 | export interface TokenListState {
4 | community: boolean;
5 | }
6 |
7 | const initialState: TokenListState = {
8 | community: false,
9 | };
10 |
11 | const listsSlice = createSlice({
12 | name: 'lists',
13 | initialState,
14 | reducers: create => ({
15 | changeConfig: create.reducer<{ community: boolean }>((state, { payload: { community } }) => {
16 | state.community = community;
17 | }),
18 | }),
19 | });
20 |
21 | export const { changeConfig } = listsSlice.actions;
22 |
23 | export default listsSlice.reducer;
24 |
--------------------------------------------------------------------------------
/apps/hswap/src/types/index.ts:
--------------------------------------------------------------------------------
1 | export * from './pair';
2 |
--------------------------------------------------------------------------------
/apps/hswap/src/types/pair.ts:
--------------------------------------------------------------------------------
1 | import { Token } from '@balancednetwork/sdk-core';
2 |
3 | export interface PairInfo {
4 | readonly chainId: number;
5 | readonly id: number;
6 | readonly name: string;
7 | readonly baseCurrencyKey: string;
8 | readonly quoteCurrencyKey: string;
9 | readonly rewards?: number;
10 | readonly baseToken: Token;
11 | readonly quoteToken: Token;
12 | }
13 |
--------------------------------------------------------------------------------
/apps/hswap/src/vite-env.d.ts:
--------------------------------------------------------------------------------
1 | declare module '*.svg' {
2 | import * as React from 'react';
3 |
4 | const ReactComponent: React.FunctionComponent & { title?: string }>;
5 |
6 | export default ReactComponent;
7 | }
8 |
9 | ///
10 | ///
11 |
--------------------------------------------------------------------------------
/apps/hswap/tsconfig.node.json:
--------------------------------------------------------------------------------
1 | {
2 | "compilerOptions": {
3 | "composite": true,
4 | "skipLibCheck": true,
5 | "module": "ESNext",
6 | "moduleResolution": "Node",
7 | "allowSyntheticDefaultImports": true,
8 | "strict": true
9 | },
10 | "include": ["vite.config.ts"]
11 | }
12 |
--------------------------------------------------------------------------------
/apps/hswap/vercel.json:
--------------------------------------------------------------------------------
1 | {
2 | "headers": [
3 | {
4 | "source": "/(.*)",
5 |
6 | "headers": [
7 | {
8 | "key": "X-Content-Type-Options",
9 | "value": "nosniff"
10 | },
11 | {
12 | "key": "X-XSS-Protection",
13 | "value": "1; mode=block"
14 | }
15 | ]
16 | }
17 | ],
18 | "rewrites": [{ "source": "/(.*)", "destination": "/index.html" }]
19 | }
20 |
--------------------------------------------------------------------------------
/apps/stats/.gitignore:
--------------------------------------------------------------------------------
1 | # Don't check auto-generated stuff into git
2 | coverage
3 | build
4 | node_modules
5 | stats.json
6 | .pnp
7 | .pnp.js
8 |
9 | # misc
10 | .DS_Store
11 | npm-debug.log*
12 | yarn-debug.log*
13 | yarn-error.log*
14 |
15 | .env.local
16 | .env.production
17 | .env.development.local
18 | .env.test.local
19 | .env.production.local
20 |
21 | # boilerplate internals
22 | generated-cra-app
23 | .cra-template-rb
24 | template
25 | .env
26 | .eslintcache
27 |
28 | # yarn files
29 | .yarn/*
30 |
31 | #tsbuild
32 | tsconfig.tsbuildinfo
33 |
34 | dist
--------------------------------------------------------------------------------
/apps/stats/.prettierignore:
--------------------------------------------------------------------------------
1 | build/
2 | node_modules/
3 | package-lock.json
4 | yarn.lock
--------------------------------------------------------------------------------
/apps/stats/.prettierrc:
--------------------------------------------------------------------------------
1 | {
2 | "printWidth": 120,
3 | "tabWidth": 2,
4 | "useTabs": false,
5 | "semi": true,
6 | "singleQuote": true,
7 | "trailingComma": "all",
8 | "arrowParens": "avoid"
9 | }
10 |
--------------------------------------------------------------------------------
/apps/stats/.stylelintrc:
--------------------------------------------------------------------------------
1 | {
2 | "processors": ["stylelint-processor-styled-components"],
3 | "extends": [
4 | "stylelint-config-recommended",
5 | "stylelint-config-styled-components"
6 | ]
7 | }
8 |
--------------------------------------------------------------------------------
/apps/stats/public/apple-touch-icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/balancednetwork/balanced-network-interface/8e3ace97a9573a660a76830dd2c2199dcb0c9f82/apps/stats/public/apple-touch-icon.png
--------------------------------------------------------------------------------
/apps/stats/public/favicon-16x16.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/balancednetwork/balanced-network-interface/8e3ace97a9573a660a76830dd2c2199dcb0c9f82/apps/stats/public/favicon-16x16.png
--------------------------------------------------------------------------------
/apps/stats/public/favicon-32x32.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/balancednetwork/balanced-network-interface/8e3ace97a9573a660a76830dd2c2199dcb0c9f82/apps/stats/public/favicon-32x32.png
--------------------------------------------------------------------------------
/apps/stats/public/img-preview/home.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/balancednetwork/balanced-network-interface/8e3ace97a9573a660a76830dd2c2199dcb0c9f82/apps/stats/public/img-preview/home.png
--------------------------------------------------------------------------------
/apps/stats/public/img-preview/stats.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/balancednetwork/balanced-network-interface/8e3ace97a9573a660a76830dd2c2199dcb0c9f82/apps/stats/public/img-preview/stats.png
--------------------------------------------------------------------------------
/apps/stats/public/logo192.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/balancednetwork/balanced-network-interface/8e3ace97a9573a660a76830dd2c2199dcb0c9f82/apps/stats/public/logo192.png
--------------------------------------------------------------------------------
/apps/stats/public/logo384.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/balancednetwork/balanced-network-interface/8e3ace97a9573a660a76830dd2c2199dcb0c9f82/apps/stats/public/logo384.png
--------------------------------------------------------------------------------
/apps/stats/public/manifest.json:
--------------------------------------------------------------------------------
1 | {
2 | "short_name": "Balanced",
3 | "name": "Balanced Network Interface",
4 | "icons": [
5 | {
6 | "src": "favicon32.png",
7 | "type": "image/png",
8 | "sizes": "32x32"
9 | },
10 | {
11 | "src": "logo192.png",
12 | "type": "image/png",
13 | "sizes": "192x192"
14 | },
15 | {
16 | "src": "logo384.png",
17 | "type": "image/png",
18 | "sizes": "384x384"
19 | }
20 | ],
21 | "orientation": "portrait",
22 | "start_url": ".",
23 | "display": "standalone",
24 | "theme_color": "#01002a",
25 | "background_color": "#01002a"
26 | }
27 |
--------------------------------------------------------------------------------
/apps/stats/public/robots.txt:
--------------------------------------------------------------------------------
1 | # https://www.robotstxt.org/robotstxt.html
2 | User-agent: *
3 | Disallow:
4 |
--------------------------------------------------------------------------------
/apps/stats/src/assets/font/tex-gyre-adventor-bold/tex-gyre-adventor-bold.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/balancednetwork/balanced-network-interface/8e3ace97a9573a660a76830dd2c2199dcb0c9f82/apps/stats/src/assets/font/tex-gyre-adventor-bold/tex-gyre-adventor-bold.woff
--------------------------------------------------------------------------------
/apps/stats/src/assets/font/tex-gyre-adventor-bold/tex-gyre-adventor-bold.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/balancednetwork/balanced-network-interface/8e3ace97a9573a660a76830dd2c2199dcb0c9f82/apps/stats/src/assets/font/tex-gyre-adventor-bold/tex-gyre-adventor-bold.woff2
--------------------------------------------------------------------------------
/apps/stats/src/assets/font/tex-gyre-adventor-regular/tex-gyre-adventor-regular.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/balancednetwork/balanced-network-interface/8e3ace97a9573a660a76830dd2c2199dcb0c9f82/apps/stats/src/assets/font/tex-gyre-adventor-regular/tex-gyre-adventor-regular.woff
--------------------------------------------------------------------------------
/apps/stats/src/assets/font/tex-gyre-adventor-regular/tex-gyre-adventor-regular.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/balancednetwork/balanced-network-interface/8e3ace97a9573a660a76830dd2c2199dcb0c9f82/apps/stats/src/assets/font/tex-gyre-adventor-regular/tex-gyre-adventor-regular.woff2
--------------------------------------------------------------------------------
/apps/stats/src/assets/icons/airdrip.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/balancednetwork/balanced-network-interface/8e3ace97a9573a660a76830dd2c2199dcb0c9f82/apps/stats/src/assets/icons/airdrip.png
--------------------------------------------------------------------------------
/apps/stats/src/assets/icons/arrow-down.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/apps/stats/src/assets/icons/iconex.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/apps/stats/src/assets/icons/ledger.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/apps/stats/src/assets/icons/medium.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/apps/stats/src/assets/icons/question.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/apps/stats/src/assets/icons/revue.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/balancednetwork/balanced-network-interface/8e3ace97a9573a660a76830dd2c2199dcb0c9f82/apps/stats/src/assets/icons/revue.png
--------------------------------------------------------------------------------
/apps/stats/src/assets/icons/search.svg:
--------------------------------------------------------------------------------
1 |
9 |
--------------------------------------------------------------------------------
/apps/stats/src/assets/icons/success.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/apps/stats/src/assets/images/balanced-logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/balancednetwork/balanced-network-interface/8e3ace97a9573a660a76830dd2c2199dcb0c9f82/apps/stats/src/assets/images/balanced-logo.png
--------------------------------------------------------------------------------
/apps/stats/src/assets/images/default.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/balancednetwork/balanced-network-interface/8e3ace97a9573a660a76830dd2c2199dcb0c9f82/apps/stats/src/assets/images/default.png
--------------------------------------------------------------------------------
/apps/stats/src/assets/images/icon-logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/balancednetwork/balanced-network-interface/8e3ace97a9573a660a76830dd2c2199dcb0c9f82/apps/stats/src/assets/images/icon-logo.png
--------------------------------------------------------------------------------
/apps/stats/src/assets/images/spinner-big.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/balancednetwork/balanced-network-interface/8e3ace97a9573a660a76830dd2c2199dcb0c9f82/apps/stats/src/assets/images/spinner-big.png
--------------------------------------------------------------------------------
/apps/stats/src/assets/images/spinner.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/balancednetwork/balanced-network-interface/8e3ace97a9573a660a76830dd2c2199dcb0c9f82/apps/stats/src/assets/images/spinner.png
--------------------------------------------------------------------------------
/apps/stats/src/bnJs.ts:
--------------------------------------------------------------------------------
1 | import { BalancedJs } from '@balancednetwork/balanced-js';
2 |
3 | const bnJs = new BalancedJs({ networkId: parseInt(process.env.REACT_APP_NETWORK_ID ?? '1') });
4 |
5 | export default bnJs;
6 |
--------------------------------------------------------------------------------
/apps/stats/src/components/Button/OutlineButton.tsx:
--------------------------------------------------------------------------------
1 | import { Button } from 'rebass/styled-components';
2 | import styled from 'styled-components';
3 |
4 | const OutLineButton = styled(Button)`
5 | display: block;
6 | padding: 3px 12px;
7 | font-size: 14px;
8 | color: #ffffff;
9 | background-color: ${({ theme }) => theme.colors.bg2};
10 | border: 1px solid ${({ theme }) => theme.colors.primary};
11 | border-radius: 5px;
12 | cursor: pointer;
13 | transition: border 0.2s ease, background-color 0.3s ease;
14 | &.active {
15 | background-color: ${({ theme }) => theme.colors.primary};
16 | }
17 | `;
18 |
19 | export default OutLineButton;
20 |
--------------------------------------------------------------------------------
/apps/stats/src/components/Card/index.ts:
--------------------------------------------------------------------------------
1 | import { Box } from 'rebass/styled-components';
2 | import styled from 'styled-components';
3 |
4 | const Card = styled(Box)<{ width?: string; padding?: string; border?: string; borderRadius?: string }>`
5 | width: ${({ width }) => width ?? '100%'};
6 | border-radius: 16px;
7 | padding: 1rem;
8 | padding: ${({ padding }) => padding};
9 | border: ${({ border }) => border};
10 | border-radius: ${({ borderRadius }) => borderRadius};
11 | `;
12 | export default Card;
13 |
--------------------------------------------------------------------------------
/apps/stats/src/components/Menu/index.tsx:
--------------------------------------------------------------------------------
1 | import styled from 'styled-components';
2 |
3 | export const MenuList = styled.ul`
4 | list-style-type: none;
5 | padding-left: 0;
6 | margin: 0;
7 | font-size: 14px;
8 | user-select: none;
9 | `;
10 |
11 | export const MenuItem = styled.li`
12 | padding: 10px 15px;
13 | transition: background-color 0.3s ease;
14 | color: #ffffff;
15 |
16 | :hover {
17 | cursor: pointer;
18 | background-color: #2ca9b7;
19 | transition: background-color 0.2s ease;
20 | }
21 | `;
22 |
--------------------------------------------------------------------------------
/apps/stats/src/components/NotFoundPage/Loadable.tsx:
--------------------------------------------------------------------------------
1 | /**
2 | * Asynchronously loads the component for NotFoundPage
3 | */
4 |
5 | import { lazyLoad } from '@/utils/loadable';
6 |
7 | export const NotFoundPage = lazyLoad(
8 | () => import('./index'),
9 | module => module.NotFoundPage,
10 | );
11 |
--------------------------------------------------------------------------------
/apps/stats/src/components/NotFoundPage/P.ts:
--------------------------------------------------------------------------------
1 | import styled from 'styled-components';
2 |
3 | export const P = styled.p`
4 | font-size: 1rem;
5 | line-height: 1.5;
6 | color: black;
7 | margin: 0.625rem 0 1.5rem 0;
8 | `;
9 |
--------------------------------------------------------------------------------
/apps/stats/src/constants/config.ts:
--------------------------------------------------------------------------------
1 | import { SupportedChainId as NetworkId } from '@balancednetwork/balanced-js';
2 |
3 | export const NETWORK_ID: NetworkId = parseInt(process.env.REACT_APP_NETWORK_ID ?? '1');
4 |
--------------------------------------------------------------------------------
/apps/stats/src/constants/number.ts:
--------------------------------------------------------------------------------
1 | import BigNumber from 'bignumber.js';
2 |
3 | export const ZERO = new BigNumber(0);
4 | export const ONE = new BigNumber(1);
5 | export const PLUS_INFINITY = new BigNumber(1 / 0);
6 | export const MINUS_INFINITY = new BigNumber(-1 / 0);
7 |
8 | export const QUINTILLION = new BigNumber('1000000000000000000');
9 | export const TRILLION = new BigNumber('1000000000000');
10 |
--------------------------------------------------------------------------------
/apps/stats/src/hooks/useBoolean.ts:
--------------------------------------------------------------------------------
1 | import { useState } from 'react';
2 |
3 | const useBoolean = (defaultValue: boolean = false) => {
4 | const [state, setState] = useState(defaultValue);
5 |
6 | const on = () => setState(() => true);
7 | const off = () => setState(() => false);
8 | const toggle = () => setState(prev => !prev);
9 |
10 | return {
11 | state,
12 | on,
13 | off,
14 | toggle,
15 | };
16 | };
17 |
18 | export default useBoolean;
19 |
--------------------------------------------------------------------------------
/apps/stats/src/hooks/usePrevious.ts:
--------------------------------------------------------------------------------
1 | import { useEffect, useRef } from 'react';
2 |
3 | // modified from https://usehooks.com/usePrevious/
4 | export default function usePrevious(value: T) {
5 | // The ref object is a generic container whose current property is mutable ...
6 | // ... and can hold any value, similar to an instance property on a class
7 | const ref = useRef();
8 |
9 | // Store current value in ref
10 | useEffect(() => {
11 | ref.current = value;
12 | }, [value]); // Only re-run if value changes
13 |
14 | // Return previous value (happens before update in useEffect above)
15 | return ref.current;
16 | }
17 |
--------------------------------------------------------------------------------
/apps/stats/src/hooks/useTimeout.ts:
--------------------------------------------------------------------------------
1 | import React from 'react';
2 |
3 | export default function useTimeout(callback: () => void, delay: null | number) {
4 | const savedCallback = React.useRef<() => void>();
5 |
6 | React.useEffect(() => {
7 | savedCallback.current = callback;
8 | }, [callback]);
9 |
10 | React.useEffect(() => {
11 | function tick() {
12 | const current = savedCallback.current;
13 | current && current();
14 | }
15 |
16 | if (delay !== null) {
17 | const id = setTimeout(tick, delay);
18 | return () => clearTimeout(id);
19 | }
20 | }, [delay]);
21 | }
22 |
--------------------------------------------------------------------------------
/apps/stats/src/hooks/useTimestampRounded.ts:
--------------------------------------------------------------------------------
1 | export default function useTimestampRounded(period = 1000 * 60, daysBack = 0) {
2 | const now = Math.floor(new Date().getTime() / period) * period;
3 | return now - daysBack * 24 * 60 * 60 * 1000;
4 | }
5 |
--------------------------------------------------------------------------------
/apps/stats/src/hooks/useWidth.ts:
--------------------------------------------------------------------------------
1 | import React from 'react';
2 |
3 | export default function useWidth(): [React.RefObject, number | undefined] {
4 | const ref = React.useRef(null);
5 | const [width, setWidth] = React.useState(ref?.current?.clientWidth);
6 | React.useEffect(() => {
7 | function handleResize() {
8 | setWidth(ref?.current?.clientWidth ?? width);
9 | }
10 | handleResize();
11 | window.addEventListener('resize', handleResize);
12 | return () => window.removeEventListener('resize', handleResize);
13 | }, [width]);
14 |
15 | return [ref, width];
16 | }
17 |
--------------------------------------------------------------------------------
/apps/stats/src/pages/PerformanceDetails/Loadable.tsx:
--------------------------------------------------------------------------------
1 | /**
2 | * Asynchronously loads the component for HomePage
3 | */
4 |
5 | import { lazyLoad } from '@/utils/loadable';
6 |
7 | export const PerformanceDetailsPage = lazyLoad(
8 | () => import('./index'),
9 | module => module.PerformanceDetails,
10 | );
11 |
--------------------------------------------------------------------------------
/apps/stats/src/pages/StatsPage/Loadable.tsx:
--------------------------------------------------------------------------------
1 | /**
2 | * Asynchronously loads the component for HomePage
3 | */
4 |
5 | import { lazyLoad } from '@/utils/loadable';
6 |
7 | export const StatsPage = lazyLoad(
8 | () => import('./index'),
9 | module => module.StatsPage,
10 | );
11 |
--------------------------------------------------------------------------------
/apps/stats/src/queries/historicalData/utils.ts:
--------------------------------------------------------------------------------
1 | import { Granularity } from './types';
2 |
3 | export const GRANULARITY_MILLISECONDS: { [key in Granularity]: number } = {
4 | daily: 86400000,
5 | weekly: 604800000,
6 | biweekly: 604800000 * 2,
7 | monthly: 2628000000,
8 | };
9 |
--------------------------------------------------------------------------------
/apps/stats/src/theme/fonts.d.ts:
--------------------------------------------------------------------------------
1 | declare module '*.woff';
2 | declare module '*.woff2';
3 |
--------------------------------------------------------------------------------
/apps/stats/src/vite-env.d.ts:
--------------------------------------------------------------------------------
1 | declare module '*.svg' {
2 | import * as React from 'react';
3 |
4 | const ReactComponent: React.FunctionComponent & { title?: string }>;
5 |
6 | export default ReactComponent;
7 | }
8 |
9 | ///
10 | ///
11 |
--------------------------------------------------------------------------------
/apps/stats/vercel.json:
--------------------------------------------------------------------------------
1 | {
2 | "headers": [
3 | {
4 | "source": "/(.*)",
5 |
6 | "headers": [
7 | {
8 | "key": "X-Content-Type-Options",
9 | "value": "nosniff"
10 | },
11 | {
12 | "key": "X-XSS-Protection",
13 | "value": "1; mode=block"
14 | }
15 | ]
16 | }
17 | ],
18 | "rewrites": [{ "source": "/(.*)", "destination": "/index.html" }]
19 | }
20 |
--------------------------------------------------------------------------------
/apps/web/.babel-plugin-macrosrc.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | styledComponents: {
3 | displayName: process.env.NODE_ENV !== 'production',
4 | },
5 | };
6 |
--------------------------------------------------------------------------------
/apps/web/.gitignore:
--------------------------------------------------------------------------------
1 | # Don't check auto-generated stuff into git
2 | coverage
3 | build
4 | node_modules
5 | stats.json
6 | .pnp
7 | .pnp.js
8 | dist
9 | src/locales/*.js
10 |
11 | # misc
12 | .DS_Store
13 | npm-debug.log*
14 | yarn-debug.log*
15 | yarn-error.log*
16 |
17 | .env.local
18 | .env.production
19 | .env.development.local
20 | .env.test.local
21 | .env.production.local
22 |
23 | # boilerplate internals
24 | generated-cra-app
25 | .cra-template-rb
26 | template
27 | .env
28 | .eslintcache
29 |
30 | .idea
31 | tsconfig.tsbuildinfo
32 |
--------------------------------------------------------------------------------
/apps/web/.npmrc:
--------------------------------------------------------------------------------
1 | save-exact = true
2 |
--------------------------------------------------------------------------------
/apps/web/.nvmrc:
--------------------------------------------------------------------------------
1 | lts/fermium
2 |
--------------------------------------------------------------------------------
/apps/web/.prettierignore:
--------------------------------------------------------------------------------
1 | build/
2 | node_modules/
3 | package-lock.json
4 | yarn.lock
--------------------------------------------------------------------------------
/apps/web/.prettierrc:
--------------------------------------------------------------------------------
1 | {
2 | "printWidth": 120,
3 | "tabWidth": 2,
4 | "useTabs": false,
5 | "semi": true,
6 | "singleQuote": true,
7 | "trailingComma": "all",
8 | "arrowParens": "avoid"
9 | }
10 |
--------------------------------------------------------------------------------
/apps/web/.stylelintrc:
--------------------------------------------------------------------------------
1 | {
2 | "extends": [
3 | "stylelint-config-standard"
4 | ],
5 | "customSyntax": "postcss-styled-syntax"
6 | }
7 |
--------------------------------------------------------------------------------
/apps/web/biome.json:
--------------------------------------------------------------------------------
1 | {
2 | "$schema": "https://biomejs.dev/schemas/1.8.3/schema.json",
3 | "extends": ["../../biome.json"],
4 | "files": {
5 | "ignore": ["./src/charting_library/**", "./src/locales/**"]
6 | },
7 | "linter": {
8 | "ignore": ["./src/packages/nouislider-react/**"]
9 | }
10 | }
11 |
--------------------------------------------------------------------------------
/apps/web/public/apple-touch-icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/balancednetwork/balanced-network-interface/8e3ace97a9573a660a76830dd2c2199dcb0c9f82/apps/web/public/apple-touch-icon.png
--------------------------------------------------------------------------------
/apps/web/public/charting_library/bundles/0579d40b812fa2c3ffe72e5803a6e14c.cur:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/balancednetwork/balanced-network-interface/8e3ace97a9573a660a76830dd2c2199dcb0c9f82/apps/web/public/charting_library/bundles/0579d40b812fa2c3ffe72e5803a6e14c.cur
--------------------------------------------------------------------------------
/apps/web/public/charting_library/bundles/1.92647ec0a7beb8b2898d.css:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/balancednetwork/balanced-network-interface/8e3ace97a9573a660a76830dd2c2199dcb0c9f82/apps/web/public/charting_library/bundles/1.92647ec0a7beb8b2898d.css
--------------------------------------------------------------------------------
/apps/web/public/charting_library/bundles/1.92647ec0a7beb8b2898d.rtl.css:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/balancednetwork/balanced-network-interface/8e3ace97a9573a660a76830dd2c2199dcb0c9f82/apps/web/public/charting_library/bundles/1.92647ec0a7beb8b2898d.rtl.css
--------------------------------------------------------------------------------
/apps/web/public/charting_library/bundles/1.f02c87d35fbc8ffcaedb.js:
--------------------------------------------------------------------------------
1 | (window.webpackJsonp=window.webpackJsonp||[]).push([[1],[]]);
--------------------------------------------------------------------------------
/apps/web/public/charting_library/bundles/11.df012db70159a159d927.js:
--------------------------------------------------------------------------------
1 | (window.webpackJsonp=window.webpackJsonp||[]).push([[11],[]]);
--------------------------------------------------------------------------------
/apps/web/public/charting_library/bundles/12.37750b21f6d8d35c6e6e.js:
--------------------------------------------------------------------------------
1 | (window.webpackJsonp=window.webpackJsonp||[]).push([[12],[]]);
--------------------------------------------------------------------------------
/apps/web/public/charting_library/bundles/13.699469c73d09b7add56d.js:
--------------------------------------------------------------------------------
1 | (window.webpackJsonp=window.webpackJsonp||[]).push([[13],[]]);
--------------------------------------------------------------------------------
/apps/web/public/charting_library/bundles/13.9240f13280154f2593b7.css:
--------------------------------------------------------------------------------
1 | .icon-19OjtB6A{align-items:center;display:flex;flex-direction:row;transition:transform .35s cubic-bezier(.175,.885,.32,1.275)}.icon-19OjtB6A svg{fill:currentColor;display:block;height:4px;width:8px}.icon-19OjtB6A.dropped-19OjtB6A{transform:rotate(180deg)}
--------------------------------------------------------------------------------
/apps/web/public/charting_library/bundles/13.9240f13280154f2593b7.rtl.css:
--------------------------------------------------------------------------------
1 | .icon-19OjtB6A{align-items:center;display:flex;flex-direction:row;transition:transform .35s cubic-bezier(.175,.885,.32,1.275)}.icon-19OjtB6A svg{fill:currentColor;display:block;height:4px;width:8px}.icon-19OjtB6A.dropped-19OjtB6A{transform:rotate(-180deg)}
--------------------------------------------------------------------------------
/apps/web/public/charting_library/bundles/14.d1148b38d59df9ca5061.js:
--------------------------------------------------------------------------------
1 | (window.webpackJsonp=window.webpackJsonp||[]).push([[14],[]]);
--------------------------------------------------------------------------------
/apps/web/public/charting_library/bundles/16.680572949c1125757d35.js:
--------------------------------------------------------------------------------
1 | (window.webpackJsonp=window.webpackJsonp||[]).push([[16],[]]);
--------------------------------------------------------------------------------
/apps/web/public/charting_library/bundles/17.404a01f527881dfff424.js:
--------------------------------------------------------------------------------
1 | (window.webpackJsonp=window.webpackJsonp||[]).push([[17],[]]);
--------------------------------------------------------------------------------
/apps/web/public/charting_library/bundles/19.048f7f5d36fef428ca8d.js:
--------------------------------------------------------------------------------
1 | (window.webpackJsonp=window.webpackJsonp||[]).push([[19],[]]);
--------------------------------------------------------------------------------
/apps/web/public/charting_library/bundles/1df47f578aeef40dd1f2328338a133be.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/balancednetwork/balanced-network-interface/8e3ace97a9573a660a76830dd2c2199dcb0c9f82/apps/web/public/charting_library/bundles/1df47f578aeef40dd1f2328338a133be.png
--------------------------------------------------------------------------------
/apps/web/public/charting_library/bundles/21.4c7b5cccb67a95e7e782.js:
--------------------------------------------------------------------------------
1 | (window.webpackJsonp=window.webpackJsonp||[]).push([[21],[]]);
--------------------------------------------------------------------------------
/apps/web/public/charting_library/bundles/22.ca4300bcf614d8d5f4ab.js:
--------------------------------------------------------------------------------
1 | (window.webpackJsonp=window.webpackJsonp||[]).push([[22],[]]);
--------------------------------------------------------------------------------
/apps/web/public/charting_library/bundles/23.256ba98e6a03200bdeba.js:
--------------------------------------------------------------------------------
1 | (window.webpackJsonp=window.webpackJsonp||[]).push([[23],[]]);
--------------------------------------------------------------------------------
/apps/web/public/charting_library/bundles/23.ee754f50171546186397.css:
--------------------------------------------------------------------------------
1 | .footer-KW8170fm{border-top:1px solid #e0e3eb;display:flex;flex:0 0 auto;padding:16px 20px}html.theme-dark .footer-KW8170fm{border-top:1px solid #434651}@media screen and (max-height:360px){.footer-KW8170fm{padding:10px 20px}}.footer-KW8170fm .submitButton-KW8170fm{padding-left:12px}.footer-KW8170fm .buttons-KW8170fm{margin-left:auto}
--------------------------------------------------------------------------------
/apps/web/public/charting_library/bundles/23.ee754f50171546186397.rtl.css:
--------------------------------------------------------------------------------
1 | .footer-KW8170fm{border-top:1px solid #e0e3eb;display:flex;flex:0 0 auto;padding:16px 20px}html.theme-dark .footer-KW8170fm{border-top:1px solid #434651}@media screen and (max-height:360px){.footer-KW8170fm{padding:10px 20px}}.footer-KW8170fm .submitButton-KW8170fm{padding-right:12px}.footer-KW8170fm .buttons-KW8170fm{margin-right:auto}
--------------------------------------------------------------------------------
/apps/web/public/charting_library/bundles/24.bc4fafedb1730259aa10.js:
--------------------------------------------------------------------------------
1 | (window.webpackJsonp=window.webpackJsonp||[]).push([[24],[]]);
--------------------------------------------------------------------------------
/apps/web/public/charting_library/bundles/26.3aeec391d4e6e19989ee.js:
--------------------------------------------------------------------------------
1 | (window.webpackJsonp=window.webpackJsonp||[]).push([[26],[]]);
--------------------------------------------------------------------------------
/apps/web/public/charting_library/bundles/28.9f103042c27ea2df422f.js:
--------------------------------------------------------------------------------
1 | (window.webpackJsonp=window.webpackJsonp||[]).push([[28],[]]);
--------------------------------------------------------------------------------
/apps/web/public/charting_library/bundles/29.07af6dca962ea27209f0.css:
--------------------------------------------------------------------------------
1 | .separator-eqcGT_ow{background-color:#e0e3eb;flex-shrink:0;height:1px;margin:6px 0}html.theme-dark .separator-eqcGT_ow{background-color:#434651}.small-eqcGT_ow{margin-bottom:4px;margin-top:4px}.normal-eqcGT_ow{margin-bottom:6px;margin-top:6px}.large-eqcGT_ow{margin-bottom:8px;margin-top:8px}
--------------------------------------------------------------------------------
/apps/web/public/charting_library/bundles/29.07af6dca962ea27209f0.rtl.css:
--------------------------------------------------------------------------------
1 | .separator-eqcGT_ow{background-color:#e0e3eb;flex-shrink:0;height:1px;margin:6px 0}html.theme-dark .separator-eqcGT_ow{background-color:#434651}.small-eqcGT_ow{margin-bottom:4px;margin-top:4px}.normal-eqcGT_ow{margin-bottom:6px;margin-top:6px}.large-eqcGT_ow{margin-bottom:8px;margin-top:8px}
--------------------------------------------------------------------------------
/apps/web/public/charting_library/bundles/29.3df8712b85d45a626aa0.js:
--------------------------------------------------------------------------------
1 | (window.webpackJsonp=window.webpackJsonp||[]).push([[29],[]]);
--------------------------------------------------------------------------------
/apps/web/public/charting_library/bundles/3.76c398b01b707e5b251c.js:
--------------------------------------------------------------------------------
1 | (window.webpackJsonp=window.webpackJsonp||[]).push([[3],[]]);
--------------------------------------------------------------------------------
/apps/web/public/charting_library/bundles/3293616ec0c605c7c2db25829a0a509e.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/balancednetwork/balanced-network-interface/8e3ace97a9573a660a76830dd2c2199dcb0c9f82/apps/web/public/charting_library/bundles/3293616ec0c605c7c2db25829a0a509e.woff
--------------------------------------------------------------------------------
/apps/web/public/charting_library/bundles/33.4d0dd1f7001fc02099bb.js:
--------------------------------------------------------------------------------
1 | (window.webpackJsonp=window.webpackJsonp||[]).push([[33],[]]);
--------------------------------------------------------------------------------
/apps/web/public/charting_library/bundles/34.c9baa59add71a1e48fd2.js:
--------------------------------------------------------------------------------
1 | (window.webpackJsonp=window.webpackJsonp||[]).push([[34],[]]);
--------------------------------------------------------------------------------
/apps/web/public/charting_library/bundles/35.ed9e360f9686ad3a9497.js:
--------------------------------------------------------------------------------
1 | (window.webpackJsonp=window.webpackJsonp||[]).push([[35],[]]);
--------------------------------------------------------------------------------
/apps/web/public/charting_library/bundles/36.1882d1a8d312a0e193e9.js:
--------------------------------------------------------------------------------
1 | (window.webpackJsonp=window.webpackJsonp||[]).push([[36],[]]);
--------------------------------------------------------------------------------
/apps/web/public/charting_library/bundles/36.f315a19c17d5636af8f7.css:
--------------------------------------------------------------------------------
1 | .checkbox-3xZUD-2M{-webkit-tap-highlight-color:transparent;align-items:center;cursor:default;display:inline-flex;font-size:14px;font-stretch:normal;font-style:normal;font-weight:400;letter-spacing:normal;line-height:normal;position:relative;-webkit-user-select:none;user-select:none}.checkbox-3xZUD-2M.reverse-3xeTx96y{flex-direction:row-reverse}.checkbox-3xZUD-2M.reverse-3xeTx96y .label-cyItEVpF{margin-left:0;margin-right:8px}.checkbox-3xZUD-2M.baseline-6TXKro4X{align-items:baseline}.checkbox-3xZUD-2M .label-cyItEVpF{color:#000;margin-left:8px;min-width:0}html.theme-dark .checkbox-3xZUD-2M .label-cyItEVpF{color:#b2b5be}
--------------------------------------------------------------------------------
/apps/web/public/charting_library/bundles/36.f315a19c17d5636af8f7.rtl.css:
--------------------------------------------------------------------------------
1 | .checkbox-3xZUD-2M{-webkit-tap-highlight-color:transparent;align-items:center;cursor:default;display:inline-flex;font-size:14px;font-stretch:normal;font-style:normal;font-weight:400;letter-spacing:normal;line-height:normal;position:relative;-webkit-user-select:none;user-select:none}.checkbox-3xZUD-2M.reverse-3xeTx96y{flex-direction:row-reverse}.checkbox-3xZUD-2M.reverse-3xeTx96y .label-cyItEVpF{margin-left:8px;margin-right:0}.checkbox-3xZUD-2M.baseline-6TXKro4X{align-items:baseline}.checkbox-3xZUD-2M .label-cyItEVpF{color:#000;margin-right:8px;min-width:0}html.theme-dark .checkbox-3xZUD-2M .label-cyItEVpF{color:#b2b5be}
--------------------------------------------------------------------------------
/apps/web/public/charting_library/bundles/39.bc1e9ce938fd5152831f.js:
--------------------------------------------------------------------------------
1 | (window.webpackJsonp=window.webpackJsonp||[]).push([[39],[]]);
--------------------------------------------------------------------------------
/apps/web/public/charting_library/bundles/4.92647ec0a7beb8b2898d.css:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/balancednetwork/balanced-network-interface/8e3ace97a9573a660a76830dd2c2199dcb0c9f82/apps/web/public/charting_library/bundles/4.92647ec0a7beb8b2898d.css
--------------------------------------------------------------------------------
/apps/web/public/charting_library/bundles/4.92647ec0a7beb8b2898d.rtl.css:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/balancednetwork/balanced-network-interface/8e3ace97a9573a660a76830dd2c2199dcb0c9f82/apps/web/public/charting_library/bundles/4.92647ec0a7beb8b2898d.rtl.css
--------------------------------------------------------------------------------
/apps/web/public/charting_library/bundles/4.c7430b8d89cddcf51345.js:
--------------------------------------------------------------------------------
1 | (window.webpackJsonp=window.webpackJsonp||[]).push([[4],[]]);
--------------------------------------------------------------------------------
/apps/web/public/charting_library/bundles/40566afd832a155e5e370a8bd423de4b.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/apps/web/public/charting_library/bundles/40f9a03d174178efb12303caa9bc7cd8.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/balancednetwork/balanced-network-interface/8e3ace97a9573a660a76830dd2c2199dcb0c9f82/apps/web/public/charting_library/bundles/40f9a03d174178efb12303caa9bc7cd8.woff2
--------------------------------------------------------------------------------
/apps/web/public/charting_library/bundles/41.a19b0ae5d68f855d2753.js:
--------------------------------------------------------------------------------
1 | (window.webpackJsonp=window.webpackJsonp||[]).push([[41],[]]);
--------------------------------------------------------------------------------
/apps/web/public/charting_library/bundles/42.494986b0981f6d116fef.js:
--------------------------------------------------------------------------------
1 | (window.webpackJsonp=window.webpackJsonp||[]).push([[42],[]]);
--------------------------------------------------------------------------------
/apps/web/public/charting_library/bundles/43.619c5ed4a592cc2965a4.js:
--------------------------------------------------------------------------------
1 | (window.webpackJsonp=window.webpackJsonp||[]).push([[43],[]]);
--------------------------------------------------------------------------------
/apps/web/public/charting_library/bundles/45.db9dbd3e9bfeca5333da.js:
--------------------------------------------------------------------------------
1 | (window.webpackJsonp=window.webpackJsonp||[]).push([[45],[]]);
--------------------------------------------------------------------------------
/apps/web/public/charting_library/bundles/48.a93f9cb8b1bcc0e0f21e.js:
--------------------------------------------------------------------------------
1 | (window.webpackJsonp=window.webpackJsonp||[]).push([[48],[]]);
--------------------------------------------------------------------------------
/apps/web/public/charting_library/bundles/49.bacd609f7eb77a4a4b68.js:
--------------------------------------------------------------------------------
1 | (window.webpackJsonp=window.webpackJsonp||[]).push([[49],[]]);
--------------------------------------------------------------------------------
/apps/web/public/charting_library/bundles/4a9abefd31dab7c8239e02e925aacd78.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/balancednetwork/balanced-network-interface/8e3ace97a9573a660a76830dd2c2199dcb0c9f82/apps/web/public/charting_library/bundles/4a9abefd31dab7c8239e02e925aacd78.png
--------------------------------------------------------------------------------
/apps/web/public/charting_library/bundles/4fafff07d8914dc11f6d335f606ff47c.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/balancednetwork/balanced-network-interface/8e3ace97a9573a660a76830dd2c2199dcb0c9f82/apps/web/public/charting_library/bundles/4fafff07d8914dc11f6d335f606ff47c.png
--------------------------------------------------------------------------------
/apps/web/public/charting_library/bundles/50.8d5cba5b90176d3d2e3d.css:
--------------------------------------------------------------------------------
1 | .icon-26rGYU-z{display:flex}.wrap-3JkbcgoB{position:relative}.input-3JkbcgoB{bottom:0;left:0;margin:0;max-width:100%;min-width:100%;opacity:0;position:absolute;top:0}
--------------------------------------------------------------------------------
/apps/web/public/charting_library/bundles/50.8d5cba5b90176d3d2e3d.rtl.css:
--------------------------------------------------------------------------------
1 | .icon-26rGYU-z{display:flex}.wrap-3JkbcgoB{position:relative}.input-3JkbcgoB{bottom:0;margin:0;max-width:100%;min-width:100%;opacity:0;position:absolute;right:0;top:0}
--------------------------------------------------------------------------------
/apps/web/public/charting_library/bundles/50.b282667dddcb7fe1569a.js:
--------------------------------------------------------------------------------
1 | (window.webpackJsonp=window.webpackJsonp||[]).push([[50],[]]);
--------------------------------------------------------------------------------
/apps/web/public/charting_library/bundles/51.11871c50951db825ace3.js:
--------------------------------------------------------------------------------
1 | (window.webpackJsonp=window.webpackJsonp||[]).push([[51],[]]);
--------------------------------------------------------------------------------
/apps/web/public/charting_library/bundles/51.300c3df03ca063ec03a0.css:
--------------------------------------------------------------------------------
1 | .button-2YcRd2gv{padding:0 5px}
--------------------------------------------------------------------------------
/apps/web/public/charting_library/bundles/51.300c3df03ca063ec03a0.rtl.css:
--------------------------------------------------------------------------------
1 | .button-2YcRd2gv{padding:0 5px}
--------------------------------------------------------------------------------
/apps/web/public/charting_library/bundles/52.0379a85baae3ab43b15c.js:
--------------------------------------------------------------------------------
1 | (window.webpackJsonp=window.webpackJsonp||[]).push([[52],[]]);
--------------------------------------------------------------------------------
/apps/web/public/charting_library/bundles/52.29cec22b3525b47af67e.css:
--------------------------------------------------------------------------------
1 | .spinnerWrap-1dkAsm33{height:68px;position:relative}
--------------------------------------------------------------------------------
/apps/web/public/charting_library/bundles/52.29cec22b3525b47af67e.rtl.css:
--------------------------------------------------------------------------------
1 | .spinnerWrap-1dkAsm33{height:68px;position:relative}
--------------------------------------------------------------------------------
/apps/web/public/charting_library/bundles/59.397cb6699b74d64072a8.js:
--------------------------------------------------------------------------------
1 | (window.webpackJsonp=window.webpackJsonp||[]).push([[59],[]]);
--------------------------------------------------------------------------------
/apps/web/public/charting_library/bundles/6.2d67b0ae77825dbd455d.js:
--------------------------------------------------------------------------------
1 | (window.webpackJsonp=window.webpackJsonp||[]).push([[6],[]]);
--------------------------------------------------------------------------------
/apps/web/public/charting_library/bundles/60.6b5eced2ef8fa856be88.js:
--------------------------------------------------------------------------------
1 | (window.webpackJsonp=window.webpackJsonp||[]).push([[60],[]]);
--------------------------------------------------------------------------------
/apps/web/public/charting_library/bundles/63.8255c7f5191bcafcee7c.js:
--------------------------------------------------------------------------------
1 | (window.webpackJsonp=window.webpackJsonp||[]).push([[63],[]]);
--------------------------------------------------------------------------------
/apps/web/public/charting_library/bundles/64.ec4b4d03b28c77658dde.js:
--------------------------------------------------------------------------------
1 | (window.webpackJsonp=window.webpackJsonp||[]).push([[64],[]]);
--------------------------------------------------------------------------------
/apps/web/public/charting_library/bundles/65.556980fc277562af83c8.css:
--------------------------------------------------------------------------------
1 | .defaultsButtonText-3mn75BN0{color:#131722;font-size:16px;width:100px}html.theme-dark .defaultsButtonText-3mn75BN0{color:#b2b5be}.defaultsButtonItem-3mn75BN0{min-width:100px}.defaultsButtonIcon-3mn75BN0{display:flex}.themesButtonText-3JA3MxY8{color:#131722;font-size:14px;width:100px}html.theme-dark .themesButtonText-3JA3MxY8{color:#b2b5be}.themesButtonIcon-3JA3MxY8{display:flex}.defaultsButtonText-3JA3MxY8{color:#131722;font-size:16px;width:100px}html.theme-dark .defaultsButtonText-3JA3MxY8{color:#b2b5be}.defaultsButtonItem-3JA3MxY8{min-width:100px}
--------------------------------------------------------------------------------
/apps/web/public/charting_library/bundles/65.556980fc277562af83c8.rtl.css:
--------------------------------------------------------------------------------
1 | .defaultsButtonText-3mn75BN0{color:#131722;font-size:16px;width:100px}html.theme-dark .defaultsButtonText-3mn75BN0{color:#b2b5be}.defaultsButtonItem-3mn75BN0{min-width:100px}.defaultsButtonIcon-3mn75BN0{display:flex}.themesButtonText-3JA3MxY8{color:#131722;font-size:14px;width:100px}html.theme-dark .themesButtonText-3JA3MxY8{color:#b2b5be}.themesButtonIcon-3JA3MxY8{display:flex}.defaultsButtonText-3JA3MxY8{color:#131722;font-size:16px;width:100px}html.theme-dark .defaultsButtonText-3JA3MxY8{color:#b2b5be}.defaultsButtonItem-3JA3MxY8{min-width:100px}
--------------------------------------------------------------------------------
/apps/web/public/charting_library/bundles/65.f895a78b4e04257983ff.js:
--------------------------------------------------------------------------------
1 | (window.webpackJsonp=window.webpackJsonp||[]).push([[65],[]]);
--------------------------------------------------------------------------------
/apps/web/public/charting_library/bundles/66.2979e9b7c35e7bf03a37.js:
--------------------------------------------------------------------------------
1 | (window.webpackJsonp=window.webpackJsonp||[]).push([[66],[]]);
--------------------------------------------------------------------------------
/apps/web/public/charting_library/bundles/67.25fd4b78c8c514988aeb.js:
--------------------------------------------------------------------------------
1 | (window.webpackJsonp=window.webpackJsonp||[]).push([[67],[]]);
--------------------------------------------------------------------------------
/apps/web/public/charting_library/bundles/68.8b4124c875484d11fd94.js:
--------------------------------------------------------------------------------
1 | (window.webpackJsonp=window.webpackJsonp||[]).push([[68],[]]);
--------------------------------------------------------------------------------
/apps/web/public/charting_library/bundles/69.094b4a764d3dc17820cf.css:
--------------------------------------------------------------------------------
1 | .footer-3r-9t_XG{align-items:center;background-color:#f8f9fd;border-radius:0 0 6px 6px;box-sizing:border-box;color:#787b86;cursor:default;display:flex;flex:0 0 auto;font-size:13px;justify-content:center;line-height:17px;max-height:65px;min-height:40px;padding:9px 20px;text-align:center}html.theme-dark .footer-3r-9t_XG{background-color:#2a2e39}
--------------------------------------------------------------------------------
/apps/web/public/charting_library/bundles/69.094b4a764d3dc17820cf.rtl.css:
--------------------------------------------------------------------------------
1 | .footer-3r-9t_XG{align-items:center;background-color:#f8f9fd;border-radius:0 0 6px 6px;box-sizing:border-box;color:#787b86;cursor:default;display:flex;flex:0 0 auto;font-size:13px;justify-content:center;line-height:17px;max-height:65px;min-height:40px;padding:9px 20px;text-align:center}html.theme-dark .footer-3r-9t_XG{background-color:#2a2e39}
--------------------------------------------------------------------------------
/apps/web/public/charting_library/bundles/69.43756a5c7477730eb0c4.js:
--------------------------------------------------------------------------------
1 | (window.webpackJsonp=window.webpackJsonp||[]).push([[69],[]]);
--------------------------------------------------------------------------------
/apps/web/public/charting_library/bundles/70.c27146ec029eda556108.css:
--------------------------------------------------------------------------------
1 | .item-21ifTYt7{align-items:flex-start;font-size:16px;padding-right:20px;white-space:normal}.label-21ifTYt7{line-height:24px;overflow:visible}.labelRow-21ifTYt7{margin-bottom:2px;margin-top:2px}.toolbox-21ifTYt7{margin-top:3px}
--------------------------------------------------------------------------------
/apps/web/public/charting_library/bundles/70.c27146ec029eda556108.rtl.css:
--------------------------------------------------------------------------------
1 | .item-21ifTYt7{align-items:flex-start;font-size:16px;padding-left:20px;white-space:normal}.label-21ifTYt7{line-height:24px;overflow:visible}.labelRow-21ifTYt7{margin-bottom:2px;margin-top:2px}.toolbox-21ifTYt7{margin-top:3px}
--------------------------------------------------------------------------------
/apps/web/public/charting_library/bundles/70.cb9d1bb5a00896c1bb97.js:
--------------------------------------------------------------------------------
1 | (window.webpackJsonp=window.webpackJsonp||[]).push([[70],[]]);
--------------------------------------------------------------------------------
/apps/web/public/charting_library/bundles/71.6a9d0842f5e48f68399c.js:
--------------------------------------------------------------------------------
1 | (window.webpackJsonp=window.webpackJsonp||[]).push([[71],[]]);
--------------------------------------------------------------------------------
/apps/web/public/charting_library/bundles/72.e3925aaf38d2c8997638.js:
--------------------------------------------------------------------------------
1 | (window.webpackJsonp=window.webpackJsonp||[]).push([[72],[]]);
--------------------------------------------------------------------------------
/apps/web/public/charting_library/bundles/73.8ca1a096c5bdc2e5fb8a.js:
--------------------------------------------------------------------------------
1 | (window.webpackJsonp=window.webpackJsonp||[]).push([[73],[]]);
--------------------------------------------------------------------------------
/apps/web/public/charting_library/bundles/7393f661fc7d4389ea6d4dabd2a5aeea.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/balancednetwork/balanced-network-interface/8e3ace97a9573a660a76830dd2c2199dcb0c9f82/apps/web/public/charting_library/bundles/7393f661fc7d4389ea6d4dabd2a5aeea.png
--------------------------------------------------------------------------------
/apps/web/public/charting_library/bundles/74.34dcc0d3cd1bbfa5e951.js:
--------------------------------------------------------------------------------
1 | (window.webpackJsonp=window.webpackJsonp||[]).push([[74],[]]);
--------------------------------------------------------------------------------
/apps/web/public/charting_library/bundles/75.1c9a3a6524248ddf88bf.js:
--------------------------------------------------------------------------------
1 | (window.webpackJsonp=window.webpackJsonp||[]).push([[75],[]]);
--------------------------------------------------------------------------------
/apps/web/public/charting_library/bundles/76.5d20bed213399f326603.js:
--------------------------------------------------------------------------------
1 | (window.webpackJsonp=window.webpackJsonp||[]).push([[76],[]]);
--------------------------------------------------------------------------------
/apps/web/public/charting_library/bundles/77.3e4ccccc7d3eb03c488f.js:
--------------------------------------------------------------------------------
1 | (window.webpackJsonp=window.webpackJsonp||[]).push([[77],[]]);
--------------------------------------------------------------------------------
/apps/web/public/charting_library/bundles/78.1d1d47a915b06f1496fb.js:
--------------------------------------------------------------------------------
1 | (window.webpackJsonp=window.webpackJsonp||[]).push([[78],[]]);
--------------------------------------------------------------------------------
/apps/web/public/charting_library/bundles/79.86e92b77f8cf32e6bc37.js:
--------------------------------------------------------------------------------
1 | (window.webpackJsonp=window.webpackJsonp||[]).push([[79],[]]);
--------------------------------------------------------------------------------
/apps/web/public/charting_library/bundles/7e0cc5f7d7f5151500dd60b8d6ca60a1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/balancednetwork/balanced-network-interface/8e3ace97a9573a660a76830dd2c2199dcb0c9f82/apps/web/public/charting_library/bundles/7e0cc5f7d7f5151500dd60b8d6ca60a1.png
--------------------------------------------------------------------------------
/apps/web/public/charting_library/bundles/8.e66ab8f27911a033604f.css:
--------------------------------------------------------------------------------
1 | .separator-3No0pWrk{background-color:#e0e3eb;height:1px;margin:8px 0}html.theme-dark .separator-3No0pWrk{background-color:#434651}
--------------------------------------------------------------------------------
/apps/web/public/charting_library/bundles/8.e66ab8f27911a033604f.rtl.css:
--------------------------------------------------------------------------------
1 | .separator-3No0pWrk{background-color:#e0e3eb;height:1px;margin:8px 0}html.theme-dark .separator-3No0pWrk{background-color:#434651}
--------------------------------------------------------------------------------
/apps/web/public/charting_library/bundles/8.ffab20b86db484062268.js:
--------------------------------------------------------------------------------
1 | (window.webpackJsonp=window.webpackJsonp||[]).push([[8],[]]);
--------------------------------------------------------------------------------
/apps/web/public/charting_library/bundles/80.b5bc6acec3b531a510a9.js:
--------------------------------------------------------------------------------
1 | (window.webpackJsonp=window.webpackJsonp||[]).push([[80],[]]);
--------------------------------------------------------------------------------
/apps/web/public/charting_library/bundles/81.e6a1f76017a44b03480b.js:
--------------------------------------------------------------------------------
1 | (window.webpackJsonp=window.webpackJsonp||[]).push([[81],[]]);
--------------------------------------------------------------------------------
/apps/web/public/charting_library/bundles/82.8c2919e6c8f54e36e9e6.js:
--------------------------------------------------------------------------------
1 | (window.webpackJsonp=window.webpackJsonp||[]).push([[82],[]]);
--------------------------------------------------------------------------------
/apps/web/public/charting_library/bundles/83.f3e53bb5a5940e084955.js:
--------------------------------------------------------------------------------
1 | (window.webpackJsonp=window.webpackJsonp||[]).push([[83],[]]);
--------------------------------------------------------------------------------
/apps/web/public/charting_library/bundles/84.8acc496b4deeeeefb5af.js:
--------------------------------------------------------------------------------
1 | (window.webpackJsonp=window.webpackJsonp||[]).push([[84],[]]);
--------------------------------------------------------------------------------
/apps/web/public/charting_library/bundles/85.39c78fbeaabae306f343.js:
--------------------------------------------------------------------------------
1 | (window.webpackJsonp=window.webpackJsonp||[]).push([[85],[]]);
--------------------------------------------------------------------------------
/apps/web/public/charting_library/bundles/86.4bbbb9e6262243419986.js:
--------------------------------------------------------------------------------
1 | (window.webpackJsonp=window.webpackJsonp||[]).push([[86],[]]);
--------------------------------------------------------------------------------
/apps/web/public/charting_library/bundles/87.cf03fa0a76bfcadd157d.js:
--------------------------------------------------------------------------------
1 | (window.webpackJsonp=window.webpackJsonp||[]).push([[87],[]]);
--------------------------------------------------------------------------------
/apps/web/public/charting_library/bundles/88.d1e3aec63ece25f6b8a9.js:
--------------------------------------------------------------------------------
1 | (window.webpackJsonp=window.webpackJsonp||[]).push([[88],[]]);
--------------------------------------------------------------------------------
/apps/web/public/charting_library/bundles/89.d8aa43b4b9378722d572.js:
--------------------------------------------------------------------------------
1 | (window.webpackJsonp=window.webpackJsonp||[]).push([[89],[]]);
--------------------------------------------------------------------------------
/apps/web/public/charting_library/bundles/898929f1acdb622689e0fc0c95c8fcd0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/balancednetwork/balanced-network-interface/8e3ace97a9573a660a76830dd2c2199dcb0c9f82/apps/web/public/charting_library/bundles/898929f1acdb622689e0fc0c95c8fcd0.png
--------------------------------------------------------------------------------
/apps/web/public/charting_library/bundles/9.84ecbc930e51cb26d06a.js:
--------------------------------------------------------------------------------
1 | (window.webpackJsonp=window.webpackJsonp||[]).push([[9],[]]);
--------------------------------------------------------------------------------
/apps/web/public/charting_library/bundles/90.ce47bb68fc3fc88b5590.js:
--------------------------------------------------------------------------------
1 | (window.webpackJsonp=window.webpackJsonp||[]).push([[90],[]]);
--------------------------------------------------------------------------------
/apps/web/public/charting_library/bundles/91.a9b79ef7ba0a62311a53.js:
--------------------------------------------------------------------------------
1 | (window.webpackJsonp=window.webpackJsonp||[]).push([[91],[]]);
--------------------------------------------------------------------------------
/apps/web/public/charting_library/bundles/92.76d5ca7ebec10a1a7a12.js:
--------------------------------------------------------------------------------
1 | (window.webpackJsonp=window.webpackJsonp||[]).push([[92],[]]);
--------------------------------------------------------------------------------
/apps/web/public/charting_library/bundles/93.6de56ef1975f4a31e542.js:
--------------------------------------------------------------------------------
1 | (window.webpackJsonp=window.webpackJsonp||[]).push([[93],[]]);
--------------------------------------------------------------------------------
/apps/web/public/charting_library/bundles/94.231bea5fb12b806ef287.js:
--------------------------------------------------------------------------------
1 | (window.webpackJsonp=window.webpackJsonp||[]).push([[94],[]]);
--------------------------------------------------------------------------------
/apps/web/public/charting_library/bundles/94.b204218cb73b576333a1.css:
--------------------------------------------------------------------------------
1 | .dialog-Gd2kEiLq{min-height:300px;min-width:380px}.wrap-Gd2kEiLq{margin-top:10px;overflow-y:auto;scrollbar-color:#9598a1 #0000;scrollbar-width:thin}html.theme-dark .wrap-Gd2kEiLq{scrollbar-color:#363a45 #0000}.wrap-Gd2kEiLq::-webkit-scrollbar{height:5px;width:5px}.wrap-Gd2kEiLq::-webkit-scrollbar-thumb{background-color:#9598a1;border:1px solid #f0f3fa;border-radius:3px}html.theme-dark .wrap-Gd2kEiLq::-webkit-scrollbar-thumb{background-color:#363a45;border-color:#1e222d}.wrap-Gd2kEiLq::-webkit-scrollbar-track{background-color:initial;border-radius:3px}.wrap-Gd2kEiLq::-webkit-scrollbar-corner{display:none}
--------------------------------------------------------------------------------
/apps/web/public/charting_library/bundles/94.b204218cb73b576333a1.rtl.css:
--------------------------------------------------------------------------------
1 | .dialog-Gd2kEiLq{min-height:300px;min-width:380px}.wrap-Gd2kEiLq{margin-top:10px;overflow-y:auto;scrollbar-color:#9598a1 #0000;scrollbar-width:thin}html.theme-dark .wrap-Gd2kEiLq{scrollbar-color:#363a45 #0000}.wrap-Gd2kEiLq::-webkit-scrollbar{height:5px;width:5px}.wrap-Gd2kEiLq::-webkit-scrollbar-thumb{background-color:#9598a1;border:1px solid #f0f3fa;border-radius:3px}html.theme-dark .wrap-Gd2kEiLq::-webkit-scrollbar-thumb{background-color:#363a45;border-color:#1e222d}.wrap-Gd2kEiLq::-webkit-scrollbar-track{background-color:initial;border-radius:3px}.wrap-Gd2kEiLq::-webkit-scrollbar-corner{display:none}
--------------------------------------------------------------------------------
/apps/web/public/charting_library/bundles/95.6f7da80aac5cf2bf77d6.js:
--------------------------------------------------------------------------------
1 | (window.webpackJsonp=window.webpackJsonp||[]).push([[95],[]]);
--------------------------------------------------------------------------------
/apps/web/public/charting_library/bundles/96.43bb935eee30715afff7.js:
--------------------------------------------------------------------------------
1 | (window.webpackJsonp=window.webpackJsonp||[]).push([[96],[]]);
--------------------------------------------------------------------------------
/apps/web/public/charting_library/bundles/a6506134daec7169f68f563f084a9d41.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/apps/web/public/charting_library/bundles/b1a63a011fd92dfb93db6db243bb036c.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/balancednetwork/balanced-network-interface/8e3ace97a9573a660a76830dd2c2199dcb0c9f82/apps/web/public/charting_library/bundles/b1a63a011fd92dfb93db6db243bb036c.woff2
--------------------------------------------------------------------------------
/apps/web/public/charting_library/bundles/ed68e83c16f77203e73dbc4c3a7c7fa1.cur:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/balancednetwork/balanced-network-interface/8e3ace97a9573a660a76830dd2c2199dcb0c9f82/apps/web/public/charting_library/bundles/ed68e83c16f77203e73dbc4c3a7c7fa1.cur
--------------------------------------------------------------------------------
/apps/web/public/charting_library/bundles/f55394b616ed1ae9462c37daab941d93.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/balancednetwork/balanced-network-interface/8e3ace97a9573a660a76830dd2c2199dcb0c9f82/apps/web/public/charting_library/bundles/f55394b616ed1ae9462c37daab941d93.png
--------------------------------------------------------------------------------
/apps/web/public/charting_library/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "private": true,
3 | "description": "CL v21.066 (internal id 132c7060 @ 2022-04-01T09:59:44.647Z)",
4 | "type": "module",
5 | "main": "charting_library.cjs.js",
6 | "module": "charting_library.esm.js",
7 | "types": "charting_library.d.ts"
8 | }
9 |
--------------------------------------------------------------------------------
/apps/web/public/favicon-16x16.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/balancednetwork/balanced-network-interface/8e3ace97a9573a660a76830dd2c2199dcb0c9f82/apps/web/public/favicon-16x16.png
--------------------------------------------------------------------------------
/apps/web/public/favicon-32x32.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/balancednetwork/balanced-network-interface/8e3ace97a9573a660a76830dd2c2199dcb0c9f82/apps/web/public/favicon-32x32.png
--------------------------------------------------------------------------------
/apps/web/public/icons/chains/0x89.polygon.svg:
--------------------------------------------------------------------------------
1 |
5 |
--------------------------------------------------------------------------------
/apps/web/public/icons/chains/archway-1.svg:
--------------------------------------------------------------------------------
1 |
5 |
--------------------------------------------------------------------------------
/apps/web/public/icons/chains/archway.svg:
--------------------------------------------------------------------------------
1 |
5 |
--------------------------------------------------------------------------------
/apps/web/public/img-preview/home.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/balancednetwork/balanced-network-interface/8e3ace97a9573a660a76830dd2c2199dcb0c9f82/apps/web/public/img-preview/home.png
--------------------------------------------------------------------------------
/apps/web/public/img-preview/trade.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/balancednetwork/balanced-network-interface/8e3ace97a9573a660a76830dd2c2199dcb0c9f82/apps/web/public/img-preview/trade.png
--------------------------------------------------------------------------------
/apps/web/public/logo192.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/balancednetwork/balanced-network-interface/8e3ace97a9573a660a76830dd2c2199dcb0c9f82/apps/web/public/logo192.png
--------------------------------------------------------------------------------
/apps/web/public/logo384.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/balancednetwork/balanced-network-interface/8e3ace97a9573a660a76830dd2c2199dcb0c9f82/apps/web/public/logo384.png
--------------------------------------------------------------------------------
/apps/web/public/manifest.json:
--------------------------------------------------------------------------------
1 | {
2 | "short_name": "Balanced",
3 | "name": "Balanced Network Interface",
4 | "icons": [
5 | {
6 | "src": "favicon32.png",
7 | "type": "image/png",
8 | "sizes": "32x32"
9 | },
10 | {
11 | "src": "logo192.png",
12 | "type": "image/png",
13 | "sizes": "192x192"
14 | },
15 | {
16 | "src": "logo384.png",
17 | "type": "image/png",
18 | "sizes": "384x384"
19 | }
20 | ],
21 | "orientation": "portrait",
22 | "start_url": ".",
23 | "display": "standalone",
24 | "theme_color": "#01002a",
25 | "background_color": "#01002a"
26 | }
27 |
--------------------------------------------------------------------------------
/apps/web/public/robots.txt:
--------------------------------------------------------------------------------
1 | # https://www.robotstxt.org/robotstxt.html
2 | User-agent: *
3 | Disallow:
4 |
--------------------------------------------------------------------------------
/apps/web/src/app/Message.tsx:
--------------------------------------------------------------------------------
1 | import React from 'react';
2 |
3 | import { Typography } from '@/app/theme';
4 |
5 | import CommunityListToggle from './components/CommunityListToggle';
6 |
7 | export const Message = () => (
8 | <>
9 |
10 | Missing a liquidity pool? to see details for all
11 | pools you've participated in.
12 |
13 | >
14 | );
15 |
16 | export default Message;
17 |
--------------------------------------------------------------------------------
/apps/web/src/app/components/ChainLogo/index.tsx:
--------------------------------------------------------------------------------
1 | import { XChain } from '@balancednetwork/xwagmi';
2 | import React from 'react';
3 |
4 | export const ChainLogo = ({ chain, size = '24px' }: { chain: XChain; size?: string }) => {
5 | return (
6 |
13 | );
14 | };
15 |
--------------------------------------------------------------------------------
/apps/web/src/app/components/CurrencyBalanceErrorMessage/index.tsx:
--------------------------------------------------------------------------------
1 | import React from 'react';
2 |
3 | import { t } from '@lingui/macro';
4 | import { BoxProps, Flex } from 'rebass/styled-components';
5 |
6 | import { Typography } from '@/app/theme';
7 | import { MINIMUM_ICX_FOR_TX } from '@/constants/index';
8 |
9 | export default function CurrencyBalanceErrorMessage(props: BoxProps) {
10 | return (
11 |
12 |
13 | {t`You need at least ${MINIMUM_ICX_FOR_TX} ICX in your wallet to complete this transaction.`}
14 |
15 |
16 | );
17 | }
18 |
--------------------------------------------------------------------------------
/apps/web/src/app/components/NotFoundPage/Loadable.tsx:
--------------------------------------------------------------------------------
1 | /**
2 | * Asynchronously loads the component for NotFoundPage
3 | */
4 |
5 | import { lazyLoad } from '@/utils/loadable';
6 |
7 | export const NotFoundPage = lazyLoad(
8 | () => import('./index'),
9 | module => module.NotFoundPage,
10 | );
11 |
--------------------------------------------------------------------------------
/apps/web/src/app/components/NotFoundPage/P.ts:
--------------------------------------------------------------------------------
1 | import styled from 'styled-components';
2 |
3 | export const P = styled.p`
4 | font-size: 1rem;
5 | line-height: 1.5;
6 | color: black;
7 | margin: 0.625rem 0 1.5rem 0;
8 | `;
9 |
--------------------------------------------------------------------------------
/apps/web/src/app/components/PageViewTracker.tsx:
--------------------------------------------------------------------------------
1 | import { useEffect } from 'react';
2 | import { useLocation } from 'react-router-dom';
3 | import { usePlausible } from '../../providers/PlausibleProvider';
4 |
5 | export const PageViewTracker = () => {
6 | const location = useLocation();
7 | const { plausible } = usePlausible();
8 |
9 | useEffect(() => {
10 | // Track page view on route change
11 | if (location) {
12 | plausible.trackPageview({
13 | url: window.location.href,
14 | });
15 | }
16 | }, [location, plausible]);
17 |
18 | return null;
19 | };
20 |
--------------------------------------------------------------------------------
/apps/web/src/app/components/SearchModal/utils.ts:
--------------------------------------------------------------------------------
1 | import { Currency } from '@balancednetwork/sdk-core';
2 | import BigNumber from 'bignumber.js';
3 |
4 | export const shouldHideBecauseOfLowValue = (
5 | basedOnWallet: boolean,
6 | price: BigNumber | undefined,
7 | balance: BigNumber | undefined,
8 | ): boolean => {
9 | if (!price || !balance) {
10 | return false;
11 | }
12 |
13 | if (price.isNaN()) {
14 | return balance.isLessThan(0.01);
15 | }
16 |
17 | return basedOnWallet && balance.times(price).isLessThan(0.0001);
18 | };
19 |
20 | export function currencyKey(currency: Currency): string {
21 | return currency.isToken ? currency.address : 'ICX';
22 | }
23 |
--------------------------------------------------------------------------------
/apps/web/src/app/components/home/BBaln/types.ts:
--------------------------------------------------------------------------------
1 | export type LockedPeriod = {
2 | name: string;
3 | weeks: number;
4 | };
5 |
6 | export type DateOptions = {
7 | month: 'numeric' | 'short' | '2-digit' | 'long' | 'narrow' | undefined;
8 | day: any;
9 | year?: any;
10 | };
11 |
--------------------------------------------------------------------------------
/apps/web/src/app/pages/trade/supply/_components/PoolPanelContext.ts:
--------------------------------------------------------------------------------
1 | import React from 'react';
2 |
3 | import { Token } from '@balancednetwork/sdk-core';
4 | import { Pair } from '@balancednetwork/v1-sdk';
5 |
6 | import { BalanceData, Pool } from '@/hooks/useV2Pairs';
7 |
8 | export const PoolPanelContext = React.createContext<{
9 | trackedTokenPairs: [Token, Token][];
10 | pairs: { [poolId: number]: Pair };
11 | balances: { [poolId: number]: BalanceData };
12 | pools: Pool[];
13 | }>({
14 | trackedTokenPairs: [],
15 | pairs: {},
16 | balances: {},
17 | pools: [],
18 | });
19 |
20 | export const usePoolPanelContext = () => React.useContext(PoolPanelContext);
21 |
--------------------------------------------------------------------------------
/apps/web/src/app/pages/trade/xswap/page.tsx:
--------------------------------------------------------------------------------
1 | import React from 'react';
2 |
3 | import { SectionPanel } from '@/app/components/Panel';
4 | import SwapDescription from './_components/SwapDescription';
5 | import SwapPanel from './_components/SwapPanel';
6 | import TokenList from './_components/TokenList';
7 |
8 | export function TradePage() {
9 | return (
10 | <>
11 |
12 |
13 |
14 |
15 |
16 | >
17 | );
18 | }
19 |
--------------------------------------------------------------------------------
/apps/web/src/app/pages/vote/_components/BribesPanel/types.ts:
--------------------------------------------------------------------------------
1 | import { CurrencyAmount, Token } from '@balancednetwork/sdk-core';
2 |
3 | export type SourceName = string;
4 |
5 | export type BribeToken = string;
6 |
7 | export type Bribe = {
8 | sourceName: SourceName;
9 | bribeToken: BribeToken;
10 | activePeriod: number;
11 | claimable: CurrencyAmount;
12 | futureBribes: { timestamp: number; bribe: CurrencyAmount }[];
13 | };
14 |
--------------------------------------------------------------------------------
/apps/web/src/app/theme/fonts.d.ts:
--------------------------------------------------------------------------------
1 | declare module '*.woff';
2 | declare module '*.woff2';
3 |
--------------------------------------------------------------------------------
/apps/web/src/assets/font/tex-gyre-adventor-bold/tex-gyre-adventor-bold.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/balancednetwork/balanced-network-interface/8e3ace97a9573a660a76830dd2c2199dcb0c9f82/apps/web/src/assets/font/tex-gyre-adventor-bold/tex-gyre-adventor-bold.woff
--------------------------------------------------------------------------------
/apps/web/src/assets/font/tex-gyre-adventor-bold/tex-gyre-adventor-bold.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/balancednetwork/balanced-network-interface/8e3ace97a9573a660a76830dd2c2199dcb0c9f82/apps/web/src/assets/font/tex-gyre-adventor-bold/tex-gyre-adventor-bold.woff2
--------------------------------------------------------------------------------
/apps/web/src/assets/font/tex-gyre-adventor-regular/tex-gyre-adventor-regular.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/balancednetwork/balanced-network-interface/8e3ace97a9573a660a76830dd2c2199dcb0c9f82/apps/web/src/assets/font/tex-gyre-adventor-regular/tex-gyre-adventor-regular.woff
--------------------------------------------------------------------------------
/apps/web/src/assets/font/tex-gyre-adventor-regular/tex-gyre-adventor-regular.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/balancednetwork/balanced-network-interface/8e3ace97a9573a660a76830dd2c2199dcb0c9f82/apps/web/src/assets/font/tex-gyre-adventor-regular/tex-gyre-adventor-regular.woff2
--------------------------------------------------------------------------------
/apps/web/src/assets/icons/arrow-down.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/apps/web/src/assets/icons/arrow-line.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/apps/web/src/assets/icons/arrow-white.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/apps/web/src/assets/icons/arrow.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/apps/web/src/assets/icons/cancel.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/apps/web/src/assets/icons/chains/archway.svg:
--------------------------------------------------------------------------------
1 |
5 |
--------------------------------------------------------------------------------
/apps/web/src/assets/icons/chains/eth.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/apps/web/src/assets/icons/check_circle.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/apps/web/src/assets/icons/copy.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/apps/web/src/assets/icons/cross.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/apps/web/src/assets/icons/external.svg:
--------------------------------------------------------------------------------
1 |
9 |
--------------------------------------------------------------------------------
/apps/web/src/assets/icons/flip.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/apps/web/src/assets/icons/hana.svg:
--------------------------------------------------------------------------------
1 |
13 |
--------------------------------------------------------------------------------
/apps/web/src/assets/icons/pie-chart.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/apps/web/src/assets/icons/question.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/apps/web/src/assets/icons/remove.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/apps/web/src/assets/icons/search.svg:
--------------------------------------------------------------------------------
1 |
9 |
--------------------------------------------------------------------------------
/apps/web/src/assets/icons/search1.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/apps/web/src/assets/icons/success.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/apps/web/src/assets/icons/wallets/iconex.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/apps/web/src/assets/icons/wallets/ledger.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/apps/web/src/assets/images/airdrip.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/balancednetwork/balanced-network-interface/8e3ace97a9573a660a76830dd2c2199dcb0c9f82/apps/web/src/assets/images/airdrip.png
--------------------------------------------------------------------------------
/apps/web/src/assets/images/balanced-logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/balancednetwork/balanced-network-interface/8e3ace97a9573a660a76830dd2c2199dcb0c9f82/apps/web/src/assets/images/balanced-logo.png
--------------------------------------------------------------------------------
/apps/web/src/assets/images/default.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/balancednetwork/balanced-network-interface/8e3ace97a9573a660a76830dd2c2199dcb0c9f82/apps/web/src/assets/images/default.png
--------------------------------------------------------------------------------
/apps/web/src/assets/images/hana.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/balancednetwork/balanced-network-interface/8e3ace97a9573a660a76830dd2c2199dcb0c9f82/apps/web/src/assets/images/hana.png
--------------------------------------------------------------------------------
/apps/web/src/assets/images/icon-logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/balancednetwork/balanced-network-interface/8e3ace97a9573a660a76830dd2c2199dcb0c9f82/apps/web/src/assets/images/icon-logo.png
--------------------------------------------------------------------------------
/apps/web/src/assets/images/spinner-big.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/balancednetwork/balanced-network-interface/8e3ace97a9573a660a76830dd2c2199dcb0c9f82/apps/web/src/assets/images/spinner-big.png
--------------------------------------------------------------------------------
/apps/web/src/assets/images/spinner.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/balancednetwork/balanced-network-interface/8e3ace97a9573a660a76830dd2c2199dcb0c9f82/apps/web/src/assets/images/spinner.png
--------------------------------------------------------------------------------
/apps/web/src/charting_library/bundles/0579d40b812fa2c3ffe72e5803a6e14c.cur:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/balancednetwork/balanced-network-interface/8e3ace97a9573a660a76830dd2c2199dcb0c9f82/apps/web/src/charting_library/bundles/0579d40b812fa2c3ffe72e5803a6e14c.cur
--------------------------------------------------------------------------------
/apps/web/src/charting_library/bundles/1.92647ec0a7beb8b2898d.css:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/balancednetwork/balanced-network-interface/8e3ace97a9573a660a76830dd2c2199dcb0c9f82/apps/web/src/charting_library/bundles/1.92647ec0a7beb8b2898d.css
--------------------------------------------------------------------------------
/apps/web/src/charting_library/bundles/1.92647ec0a7beb8b2898d.rtl.css:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/balancednetwork/balanced-network-interface/8e3ace97a9573a660a76830dd2c2199dcb0c9f82/apps/web/src/charting_library/bundles/1.92647ec0a7beb8b2898d.rtl.css
--------------------------------------------------------------------------------
/apps/web/src/charting_library/bundles/1.f02c87d35fbc8ffcaedb.js:
--------------------------------------------------------------------------------
1 | (window.webpackJsonp=window.webpackJsonp||[]).push([[1],[]]);
--------------------------------------------------------------------------------
/apps/web/src/charting_library/bundles/11.df012db70159a159d927.js:
--------------------------------------------------------------------------------
1 | (window.webpackJsonp=window.webpackJsonp||[]).push([[11],[]]);
--------------------------------------------------------------------------------
/apps/web/src/charting_library/bundles/12.37750b21f6d8d35c6e6e.js:
--------------------------------------------------------------------------------
1 | (window.webpackJsonp=window.webpackJsonp||[]).push([[12],[]]);
--------------------------------------------------------------------------------
/apps/web/src/charting_library/bundles/13.699469c73d09b7add56d.js:
--------------------------------------------------------------------------------
1 | (window.webpackJsonp=window.webpackJsonp||[]).push([[13],[]]);
--------------------------------------------------------------------------------
/apps/web/src/charting_library/bundles/13.9240f13280154f2593b7.css:
--------------------------------------------------------------------------------
1 | .icon-19OjtB6A{align-items:center;display:flex;flex-direction:row;transition:transform .35s cubic-bezier(.175,.885,.32,1.275)}.icon-19OjtB6A svg{fill:currentColor;display:block;height:4px;width:8px}.icon-19OjtB6A.dropped-19OjtB6A{transform:rotate(180deg)}
--------------------------------------------------------------------------------
/apps/web/src/charting_library/bundles/13.9240f13280154f2593b7.rtl.css:
--------------------------------------------------------------------------------
1 | .icon-19OjtB6A{align-items:center;display:flex;flex-direction:row;transition:transform .35s cubic-bezier(.175,.885,.32,1.275)}.icon-19OjtB6A svg{fill:currentColor;display:block;height:4px;width:8px}.icon-19OjtB6A.dropped-19OjtB6A{transform:rotate(-180deg)}
--------------------------------------------------------------------------------
/apps/web/src/charting_library/bundles/14.d1148b38d59df9ca5061.js:
--------------------------------------------------------------------------------
1 | (window.webpackJsonp=window.webpackJsonp||[]).push([[14],[]]);
--------------------------------------------------------------------------------
/apps/web/src/charting_library/bundles/16.680572949c1125757d35.js:
--------------------------------------------------------------------------------
1 | (window.webpackJsonp=window.webpackJsonp||[]).push([[16],[]]);
--------------------------------------------------------------------------------
/apps/web/src/charting_library/bundles/17.404a01f527881dfff424.js:
--------------------------------------------------------------------------------
1 | (window.webpackJsonp=window.webpackJsonp||[]).push([[17],[]]);
--------------------------------------------------------------------------------
/apps/web/src/charting_library/bundles/19.048f7f5d36fef428ca8d.js:
--------------------------------------------------------------------------------
1 | (window.webpackJsonp=window.webpackJsonp||[]).push([[19],[]]);
--------------------------------------------------------------------------------
/apps/web/src/charting_library/bundles/1df47f578aeef40dd1f2328338a133be.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/balancednetwork/balanced-network-interface/8e3ace97a9573a660a76830dd2c2199dcb0c9f82/apps/web/src/charting_library/bundles/1df47f578aeef40dd1f2328338a133be.png
--------------------------------------------------------------------------------
/apps/web/src/charting_library/bundles/21.4c7b5cccb67a95e7e782.js:
--------------------------------------------------------------------------------
1 | (window.webpackJsonp=window.webpackJsonp||[]).push([[21],[]]);
--------------------------------------------------------------------------------
/apps/web/src/charting_library/bundles/22.ca4300bcf614d8d5f4ab.js:
--------------------------------------------------------------------------------
1 | (window.webpackJsonp=window.webpackJsonp||[]).push([[22],[]]);
--------------------------------------------------------------------------------
/apps/web/src/charting_library/bundles/23.256ba98e6a03200bdeba.js:
--------------------------------------------------------------------------------
1 | (window.webpackJsonp=window.webpackJsonp||[]).push([[23],[]]);
--------------------------------------------------------------------------------
/apps/web/src/charting_library/bundles/23.ee754f50171546186397.css:
--------------------------------------------------------------------------------
1 | .footer-KW8170fm{border-top:1px solid #e0e3eb;display:flex;flex:0 0 auto;padding:16px 20px}html.theme-dark .footer-KW8170fm{border-top:1px solid #434651}@media screen and (max-height:360px){.footer-KW8170fm{padding:10px 20px}}.footer-KW8170fm .submitButton-KW8170fm{padding-left:12px}.footer-KW8170fm .buttons-KW8170fm{margin-left:auto}
--------------------------------------------------------------------------------
/apps/web/src/charting_library/bundles/23.ee754f50171546186397.rtl.css:
--------------------------------------------------------------------------------
1 | .footer-KW8170fm{border-top:1px solid #e0e3eb;display:flex;flex:0 0 auto;padding:16px 20px}html.theme-dark .footer-KW8170fm{border-top:1px solid #434651}@media screen and (max-height:360px){.footer-KW8170fm{padding:10px 20px}}.footer-KW8170fm .submitButton-KW8170fm{padding-right:12px}.footer-KW8170fm .buttons-KW8170fm{margin-right:auto}
--------------------------------------------------------------------------------
/apps/web/src/charting_library/bundles/24.bc4fafedb1730259aa10.js:
--------------------------------------------------------------------------------
1 | (window.webpackJsonp=window.webpackJsonp||[]).push([[24],[]]);
--------------------------------------------------------------------------------
/apps/web/src/charting_library/bundles/26.3aeec391d4e6e19989ee.js:
--------------------------------------------------------------------------------
1 | (window.webpackJsonp=window.webpackJsonp||[]).push([[26],[]]);
--------------------------------------------------------------------------------
/apps/web/src/charting_library/bundles/28.9f103042c27ea2df422f.js:
--------------------------------------------------------------------------------
1 | (window.webpackJsonp=window.webpackJsonp||[]).push([[28],[]]);
--------------------------------------------------------------------------------
/apps/web/src/charting_library/bundles/29.07af6dca962ea27209f0.css:
--------------------------------------------------------------------------------
1 | .separator-eqcGT_ow{background-color:#e0e3eb;flex-shrink:0;height:1px;margin:6px 0}html.theme-dark .separator-eqcGT_ow{background-color:#434651}.small-eqcGT_ow{margin-bottom:4px;margin-top:4px}.normal-eqcGT_ow{margin-bottom:6px;margin-top:6px}.large-eqcGT_ow{margin-bottom:8px;margin-top:8px}
--------------------------------------------------------------------------------
/apps/web/src/charting_library/bundles/29.07af6dca962ea27209f0.rtl.css:
--------------------------------------------------------------------------------
1 | .separator-eqcGT_ow{background-color:#e0e3eb;flex-shrink:0;height:1px;margin:6px 0}html.theme-dark .separator-eqcGT_ow{background-color:#434651}.small-eqcGT_ow{margin-bottom:4px;margin-top:4px}.normal-eqcGT_ow{margin-bottom:6px;margin-top:6px}.large-eqcGT_ow{margin-bottom:8px;margin-top:8px}
--------------------------------------------------------------------------------
/apps/web/src/charting_library/bundles/29.3df8712b85d45a626aa0.js:
--------------------------------------------------------------------------------
1 | (window.webpackJsonp=window.webpackJsonp||[]).push([[29],[]]);
--------------------------------------------------------------------------------
/apps/web/src/charting_library/bundles/3.76c398b01b707e5b251c.js:
--------------------------------------------------------------------------------
1 | (window.webpackJsonp=window.webpackJsonp||[]).push([[3],[]]);
--------------------------------------------------------------------------------
/apps/web/src/charting_library/bundles/3293616ec0c605c7c2db25829a0a509e.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/balancednetwork/balanced-network-interface/8e3ace97a9573a660a76830dd2c2199dcb0c9f82/apps/web/src/charting_library/bundles/3293616ec0c605c7c2db25829a0a509e.woff
--------------------------------------------------------------------------------
/apps/web/src/charting_library/bundles/33.4d0dd1f7001fc02099bb.js:
--------------------------------------------------------------------------------
1 | (window.webpackJsonp=window.webpackJsonp||[]).push([[33],[]]);
--------------------------------------------------------------------------------
/apps/web/src/charting_library/bundles/34.c9baa59add71a1e48fd2.js:
--------------------------------------------------------------------------------
1 | (window.webpackJsonp=window.webpackJsonp||[]).push([[34],[]]);
--------------------------------------------------------------------------------
/apps/web/src/charting_library/bundles/35.ed9e360f9686ad3a9497.js:
--------------------------------------------------------------------------------
1 | (window.webpackJsonp=window.webpackJsonp||[]).push([[35],[]]);
--------------------------------------------------------------------------------
/apps/web/src/charting_library/bundles/36.1882d1a8d312a0e193e9.js:
--------------------------------------------------------------------------------
1 | (window.webpackJsonp=window.webpackJsonp||[]).push([[36],[]]);
--------------------------------------------------------------------------------
/apps/web/src/charting_library/bundles/36.f315a19c17d5636af8f7.css:
--------------------------------------------------------------------------------
1 | .checkbox-3xZUD-2M{-webkit-tap-highlight-color:transparent;align-items:center;cursor:default;display:inline-flex;font-size:14px;font-stretch:normal;font-style:normal;font-weight:400;letter-spacing:normal;line-height:normal;position:relative;-webkit-user-select:none;user-select:none}.checkbox-3xZUD-2M.reverse-3xeTx96y{flex-direction:row-reverse}.checkbox-3xZUD-2M.reverse-3xeTx96y .label-cyItEVpF{margin-left:0;margin-right:8px}.checkbox-3xZUD-2M.baseline-6TXKro4X{align-items:baseline}.checkbox-3xZUD-2M .label-cyItEVpF{color:#000;margin-left:8px;min-width:0}html.theme-dark .checkbox-3xZUD-2M .label-cyItEVpF{color:#b2b5be}
--------------------------------------------------------------------------------
/apps/web/src/charting_library/bundles/36.f315a19c17d5636af8f7.rtl.css:
--------------------------------------------------------------------------------
1 | .checkbox-3xZUD-2M{-webkit-tap-highlight-color:transparent;align-items:center;cursor:default;display:inline-flex;font-size:14px;font-stretch:normal;font-style:normal;font-weight:400;letter-spacing:normal;line-height:normal;position:relative;-webkit-user-select:none;user-select:none}.checkbox-3xZUD-2M.reverse-3xeTx96y{flex-direction:row-reverse}.checkbox-3xZUD-2M.reverse-3xeTx96y .label-cyItEVpF{margin-left:8px;margin-right:0}.checkbox-3xZUD-2M.baseline-6TXKro4X{align-items:baseline}.checkbox-3xZUD-2M .label-cyItEVpF{color:#000;margin-right:8px;min-width:0}html.theme-dark .checkbox-3xZUD-2M .label-cyItEVpF{color:#b2b5be}
--------------------------------------------------------------------------------
/apps/web/src/charting_library/bundles/39.bc1e9ce938fd5152831f.js:
--------------------------------------------------------------------------------
1 | (window.webpackJsonp=window.webpackJsonp||[]).push([[39],[]]);
--------------------------------------------------------------------------------
/apps/web/src/charting_library/bundles/4.92647ec0a7beb8b2898d.css:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/balancednetwork/balanced-network-interface/8e3ace97a9573a660a76830dd2c2199dcb0c9f82/apps/web/src/charting_library/bundles/4.92647ec0a7beb8b2898d.css
--------------------------------------------------------------------------------
/apps/web/src/charting_library/bundles/4.92647ec0a7beb8b2898d.rtl.css:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/balancednetwork/balanced-network-interface/8e3ace97a9573a660a76830dd2c2199dcb0c9f82/apps/web/src/charting_library/bundles/4.92647ec0a7beb8b2898d.rtl.css
--------------------------------------------------------------------------------
/apps/web/src/charting_library/bundles/4.c7430b8d89cddcf51345.js:
--------------------------------------------------------------------------------
1 | (window.webpackJsonp=window.webpackJsonp||[]).push([[4],[]]);
--------------------------------------------------------------------------------
/apps/web/src/charting_library/bundles/40566afd832a155e5e370a8bd423de4b.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/apps/web/src/charting_library/bundles/40f9a03d174178efb12303caa9bc7cd8.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/balancednetwork/balanced-network-interface/8e3ace97a9573a660a76830dd2c2199dcb0c9f82/apps/web/src/charting_library/bundles/40f9a03d174178efb12303caa9bc7cd8.woff2
--------------------------------------------------------------------------------
/apps/web/src/charting_library/bundles/41.a19b0ae5d68f855d2753.js:
--------------------------------------------------------------------------------
1 | (window.webpackJsonp=window.webpackJsonp||[]).push([[41],[]]);
--------------------------------------------------------------------------------
/apps/web/src/charting_library/bundles/42.494986b0981f6d116fef.js:
--------------------------------------------------------------------------------
1 | (window.webpackJsonp=window.webpackJsonp||[]).push([[42],[]]);
--------------------------------------------------------------------------------
/apps/web/src/charting_library/bundles/43.619c5ed4a592cc2965a4.js:
--------------------------------------------------------------------------------
1 | (window.webpackJsonp=window.webpackJsonp||[]).push([[43],[]]);
--------------------------------------------------------------------------------
/apps/web/src/charting_library/bundles/45.db9dbd3e9bfeca5333da.js:
--------------------------------------------------------------------------------
1 | (window.webpackJsonp=window.webpackJsonp||[]).push([[45],[]]);
--------------------------------------------------------------------------------
/apps/web/src/charting_library/bundles/48.a93f9cb8b1bcc0e0f21e.js:
--------------------------------------------------------------------------------
1 | (window.webpackJsonp=window.webpackJsonp||[]).push([[48],[]]);
--------------------------------------------------------------------------------
/apps/web/src/charting_library/bundles/49.bacd609f7eb77a4a4b68.js:
--------------------------------------------------------------------------------
1 | (window.webpackJsonp=window.webpackJsonp||[]).push([[49],[]]);
--------------------------------------------------------------------------------
/apps/web/src/charting_library/bundles/4a9abefd31dab7c8239e02e925aacd78.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/balancednetwork/balanced-network-interface/8e3ace97a9573a660a76830dd2c2199dcb0c9f82/apps/web/src/charting_library/bundles/4a9abefd31dab7c8239e02e925aacd78.png
--------------------------------------------------------------------------------
/apps/web/src/charting_library/bundles/4fafff07d8914dc11f6d335f606ff47c.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/balancednetwork/balanced-network-interface/8e3ace97a9573a660a76830dd2c2199dcb0c9f82/apps/web/src/charting_library/bundles/4fafff07d8914dc11f6d335f606ff47c.png
--------------------------------------------------------------------------------
/apps/web/src/charting_library/bundles/50.8d5cba5b90176d3d2e3d.css:
--------------------------------------------------------------------------------
1 | .icon-26rGYU-z{display:flex}.wrap-3JkbcgoB{position:relative}.input-3JkbcgoB{bottom:0;left:0;margin:0;max-width:100%;min-width:100%;opacity:0;position:absolute;top:0}
--------------------------------------------------------------------------------
/apps/web/src/charting_library/bundles/50.8d5cba5b90176d3d2e3d.rtl.css:
--------------------------------------------------------------------------------
1 | .icon-26rGYU-z{display:flex}.wrap-3JkbcgoB{position:relative}.input-3JkbcgoB{bottom:0;margin:0;max-width:100%;min-width:100%;opacity:0;position:absolute;right:0;top:0}
--------------------------------------------------------------------------------
/apps/web/src/charting_library/bundles/50.b282667dddcb7fe1569a.js:
--------------------------------------------------------------------------------
1 | (window.webpackJsonp=window.webpackJsonp||[]).push([[50],[]]);
--------------------------------------------------------------------------------
/apps/web/src/charting_library/bundles/51.11871c50951db825ace3.js:
--------------------------------------------------------------------------------
1 | (window.webpackJsonp=window.webpackJsonp||[]).push([[51],[]]);
--------------------------------------------------------------------------------
/apps/web/src/charting_library/bundles/51.300c3df03ca063ec03a0.css:
--------------------------------------------------------------------------------
1 | .button-2YcRd2gv{padding:0 5px}
--------------------------------------------------------------------------------
/apps/web/src/charting_library/bundles/51.300c3df03ca063ec03a0.rtl.css:
--------------------------------------------------------------------------------
1 | .button-2YcRd2gv{padding:0 5px}
--------------------------------------------------------------------------------
/apps/web/src/charting_library/bundles/52.0379a85baae3ab43b15c.js:
--------------------------------------------------------------------------------
1 | (window.webpackJsonp=window.webpackJsonp||[]).push([[52],[]]);
--------------------------------------------------------------------------------
/apps/web/src/charting_library/bundles/52.29cec22b3525b47af67e.css:
--------------------------------------------------------------------------------
1 | .spinnerWrap-1dkAsm33{height:68px;position:relative}
--------------------------------------------------------------------------------
/apps/web/src/charting_library/bundles/52.29cec22b3525b47af67e.rtl.css:
--------------------------------------------------------------------------------
1 | .spinnerWrap-1dkAsm33{height:68px;position:relative}
--------------------------------------------------------------------------------
/apps/web/src/charting_library/bundles/59.397cb6699b74d64072a8.js:
--------------------------------------------------------------------------------
1 | (window.webpackJsonp=window.webpackJsonp||[]).push([[59],[]]);
--------------------------------------------------------------------------------
/apps/web/src/charting_library/bundles/6.2d67b0ae77825dbd455d.js:
--------------------------------------------------------------------------------
1 | (window.webpackJsonp=window.webpackJsonp||[]).push([[6],[]]);
--------------------------------------------------------------------------------
/apps/web/src/charting_library/bundles/60.6b5eced2ef8fa856be88.js:
--------------------------------------------------------------------------------
1 | (window.webpackJsonp=window.webpackJsonp||[]).push([[60],[]]);
--------------------------------------------------------------------------------
/apps/web/src/charting_library/bundles/63.8255c7f5191bcafcee7c.js:
--------------------------------------------------------------------------------
1 | (window.webpackJsonp=window.webpackJsonp||[]).push([[63],[]]);
--------------------------------------------------------------------------------
/apps/web/src/charting_library/bundles/64.ec4b4d03b28c77658dde.js:
--------------------------------------------------------------------------------
1 | (window.webpackJsonp=window.webpackJsonp||[]).push([[64],[]]);
--------------------------------------------------------------------------------
/apps/web/src/charting_library/bundles/65.556980fc277562af83c8.css:
--------------------------------------------------------------------------------
1 | .defaultsButtonText-3mn75BN0{color:#131722;font-size:16px;width:100px}html.theme-dark .defaultsButtonText-3mn75BN0{color:#b2b5be}.defaultsButtonItem-3mn75BN0{min-width:100px}.defaultsButtonIcon-3mn75BN0{display:flex}.themesButtonText-3JA3MxY8{color:#131722;font-size:14px;width:100px}html.theme-dark .themesButtonText-3JA3MxY8{color:#b2b5be}.themesButtonIcon-3JA3MxY8{display:flex}.defaultsButtonText-3JA3MxY8{color:#131722;font-size:16px;width:100px}html.theme-dark .defaultsButtonText-3JA3MxY8{color:#b2b5be}.defaultsButtonItem-3JA3MxY8{min-width:100px}
--------------------------------------------------------------------------------
/apps/web/src/charting_library/bundles/65.556980fc277562af83c8.rtl.css:
--------------------------------------------------------------------------------
1 | .defaultsButtonText-3mn75BN0{color:#131722;font-size:16px;width:100px}html.theme-dark .defaultsButtonText-3mn75BN0{color:#b2b5be}.defaultsButtonItem-3mn75BN0{min-width:100px}.defaultsButtonIcon-3mn75BN0{display:flex}.themesButtonText-3JA3MxY8{color:#131722;font-size:14px;width:100px}html.theme-dark .themesButtonText-3JA3MxY8{color:#b2b5be}.themesButtonIcon-3JA3MxY8{display:flex}.defaultsButtonText-3JA3MxY8{color:#131722;font-size:16px;width:100px}html.theme-dark .defaultsButtonText-3JA3MxY8{color:#b2b5be}.defaultsButtonItem-3JA3MxY8{min-width:100px}
--------------------------------------------------------------------------------
/apps/web/src/charting_library/bundles/65.f895a78b4e04257983ff.js:
--------------------------------------------------------------------------------
1 | (window.webpackJsonp=window.webpackJsonp||[]).push([[65],[]]);
--------------------------------------------------------------------------------
/apps/web/src/charting_library/bundles/66.2979e9b7c35e7bf03a37.js:
--------------------------------------------------------------------------------
1 | (window.webpackJsonp=window.webpackJsonp||[]).push([[66],[]]);
--------------------------------------------------------------------------------
/apps/web/src/charting_library/bundles/67.25fd4b78c8c514988aeb.js:
--------------------------------------------------------------------------------
1 | (window.webpackJsonp=window.webpackJsonp||[]).push([[67],[]]);
--------------------------------------------------------------------------------
/apps/web/src/charting_library/bundles/68.8b4124c875484d11fd94.js:
--------------------------------------------------------------------------------
1 | (window.webpackJsonp=window.webpackJsonp||[]).push([[68],[]]);
--------------------------------------------------------------------------------
/apps/web/src/charting_library/bundles/69.094b4a764d3dc17820cf.css:
--------------------------------------------------------------------------------
1 | .footer-3r-9t_XG{align-items:center;background-color:#f8f9fd;border-radius:0 0 6px 6px;box-sizing:border-box;color:#787b86;cursor:default;display:flex;flex:0 0 auto;font-size:13px;justify-content:center;line-height:17px;max-height:65px;min-height:40px;padding:9px 20px;text-align:center}html.theme-dark .footer-3r-9t_XG{background-color:#2a2e39}
--------------------------------------------------------------------------------
/apps/web/src/charting_library/bundles/69.094b4a764d3dc17820cf.rtl.css:
--------------------------------------------------------------------------------
1 | .footer-3r-9t_XG{align-items:center;background-color:#f8f9fd;border-radius:0 0 6px 6px;box-sizing:border-box;color:#787b86;cursor:default;display:flex;flex:0 0 auto;font-size:13px;justify-content:center;line-height:17px;max-height:65px;min-height:40px;padding:9px 20px;text-align:center}html.theme-dark .footer-3r-9t_XG{background-color:#2a2e39}
--------------------------------------------------------------------------------
/apps/web/src/charting_library/bundles/69.43756a5c7477730eb0c4.js:
--------------------------------------------------------------------------------
1 | (window.webpackJsonp=window.webpackJsonp||[]).push([[69],[]]);
--------------------------------------------------------------------------------
/apps/web/src/charting_library/bundles/70.c27146ec029eda556108.css:
--------------------------------------------------------------------------------
1 | .item-21ifTYt7{align-items:flex-start;font-size:16px;padding-right:20px;white-space:normal}.label-21ifTYt7{line-height:24px;overflow:visible}.labelRow-21ifTYt7{margin-bottom:2px;margin-top:2px}.toolbox-21ifTYt7{margin-top:3px}
--------------------------------------------------------------------------------
/apps/web/src/charting_library/bundles/70.c27146ec029eda556108.rtl.css:
--------------------------------------------------------------------------------
1 | .item-21ifTYt7{align-items:flex-start;font-size:16px;padding-left:20px;white-space:normal}.label-21ifTYt7{line-height:24px;overflow:visible}.labelRow-21ifTYt7{margin-bottom:2px;margin-top:2px}.toolbox-21ifTYt7{margin-top:3px}
--------------------------------------------------------------------------------
/apps/web/src/charting_library/bundles/70.cb9d1bb5a00896c1bb97.js:
--------------------------------------------------------------------------------
1 | (window.webpackJsonp=window.webpackJsonp||[]).push([[70],[]]);
--------------------------------------------------------------------------------
/apps/web/src/charting_library/bundles/71.6a9d0842f5e48f68399c.js:
--------------------------------------------------------------------------------
1 | (window.webpackJsonp=window.webpackJsonp||[]).push([[71],[]]);
--------------------------------------------------------------------------------
/apps/web/src/charting_library/bundles/72.e3925aaf38d2c8997638.js:
--------------------------------------------------------------------------------
1 | (window.webpackJsonp=window.webpackJsonp||[]).push([[72],[]]);
--------------------------------------------------------------------------------
/apps/web/src/charting_library/bundles/73.8ca1a096c5bdc2e5fb8a.js:
--------------------------------------------------------------------------------
1 | (window.webpackJsonp=window.webpackJsonp||[]).push([[73],[]]);
--------------------------------------------------------------------------------
/apps/web/src/charting_library/bundles/7393f661fc7d4389ea6d4dabd2a5aeea.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/balancednetwork/balanced-network-interface/8e3ace97a9573a660a76830dd2c2199dcb0c9f82/apps/web/src/charting_library/bundles/7393f661fc7d4389ea6d4dabd2a5aeea.png
--------------------------------------------------------------------------------
/apps/web/src/charting_library/bundles/74.34dcc0d3cd1bbfa5e951.js:
--------------------------------------------------------------------------------
1 | (window.webpackJsonp=window.webpackJsonp||[]).push([[74],[]]);
--------------------------------------------------------------------------------
/apps/web/src/charting_library/bundles/75.1c9a3a6524248ddf88bf.js:
--------------------------------------------------------------------------------
1 | (window.webpackJsonp=window.webpackJsonp||[]).push([[75],[]]);
--------------------------------------------------------------------------------
/apps/web/src/charting_library/bundles/76.5d20bed213399f326603.js:
--------------------------------------------------------------------------------
1 | (window.webpackJsonp=window.webpackJsonp||[]).push([[76],[]]);
--------------------------------------------------------------------------------
/apps/web/src/charting_library/bundles/77.3e4ccccc7d3eb03c488f.js:
--------------------------------------------------------------------------------
1 | (window.webpackJsonp=window.webpackJsonp||[]).push([[77],[]]);
--------------------------------------------------------------------------------
/apps/web/src/charting_library/bundles/78.1d1d47a915b06f1496fb.js:
--------------------------------------------------------------------------------
1 | (window.webpackJsonp=window.webpackJsonp||[]).push([[78],[]]);
--------------------------------------------------------------------------------
/apps/web/src/charting_library/bundles/79.86e92b77f8cf32e6bc37.js:
--------------------------------------------------------------------------------
1 | (window.webpackJsonp=window.webpackJsonp||[]).push([[79],[]]);
--------------------------------------------------------------------------------
/apps/web/src/charting_library/bundles/7e0cc5f7d7f5151500dd60b8d6ca60a1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/balancednetwork/balanced-network-interface/8e3ace97a9573a660a76830dd2c2199dcb0c9f82/apps/web/src/charting_library/bundles/7e0cc5f7d7f5151500dd60b8d6ca60a1.png
--------------------------------------------------------------------------------
/apps/web/src/charting_library/bundles/8.e66ab8f27911a033604f.css:
--------------------------------------------------------------------------------
1 | .separator-3No0pWrk{background-color:#e0e3eb;height:1px;margin:8px 0}html.theme-dark .separator-3No0pWrk{background-color:#434651}
--------------------------------------------------------------------------------
/apps/web/src/charting_library/bundles/8.e66ab8f27911a033604f.rtl.css:
--------------------------------------------------------------------------------
1 | .separator-3No0pWrk{background-color:#e0e3eb;height:1px;margin:8px 0}html.theme-dark .separator-3No0pWrk{background-color:#434651}
--------------------------------------------------------------------------------
/apps/web/src/charting_library/bundles/8.ffab20b86db484062268.js:
--------------------------------------------------------------------------------
1 | (window.webpackJsonp=window.webpackJsonp||[]).push([[8],[]]);
--------------------------------------------------------------------------------
/apps/web/src/charting_library/bundles/80.b5bc6acec3b531a510a9.js:
--------------------------------------------------------------------------------
1 | (window.webpackJsonp=window.webpackJsonp||[]).push([[80],[]]);
--------------------------------------------------------------------------------
/apps/web/src/charting_library/bundles/81.e6a1f76017a44b03480b.js:
--------------------------------------------------------------------------------
1 | (window.webpackJsonp=window.webpackJsonp||[]).push([[81],[]]);
--------------------------------------------------------------------------------
/apps/web/src/charting_library/bundles/82.8c2919e6c8f54e36e9e6.js:
--------------------------------------------------------------------------------
1 | (window.webpackJsonp=window.webpackJsonp||[]).push([[82],[]]);
--------------------------------------------------------------------------------
/apps/web/src/charting_library/bundles/83.f3e53bb5a5940e084955.js:
--------------------------------------------------------------------------------
1 | (window.webpackJsonp=window.webpackJsonp||[]).push([[83],[]]);
--------------------------------------------------------------------------------
/apps/web/src/charting_library/bundles/84.8acc496b4deeeeefb5af.js:
--------------------------------------------------------------------------------
1 | (window.webpackJsonp=window.webpackJsonp||[]).push([[84],[]]);
--------------------------------------------------------------------------------
/apps/web/src/charting_library/bundles/85.39c78fbeaabae306f343.js:
--------------------------------------------------------------------------------
1 | (window.webpackJsonp=window.webpackJsonp||[]).push([[85],[]]);
--------------------------------------------------------------------------------
/apps/web/src/charting_library/bundles/86.4bbbb9e6262243419986.js:
--------------------------------------------------------------------------------
1 | (window.webpackJsonp=window.webpackJsonp||[]).push([[86],[]]);
--------------------------------------------------------------------------------
/apps/web/src/charting_library/bundles/87.cf03fa0a76bfcadd157d.js:
--------------------------------------------------------------------------------
1 | (window.webpackJsonp=window.webpackJsonp||[]).push([[87],[]]);
--------------------------------------------------------------------------------
/apps/web/src/charting_library/bundles/88.d1e3aec63ece25f6b8a9.js:
--------------------------------------------------------------------------------
1 | (window.webpackJsonp=window.webpackJsonp||[]).push([[88],[]]);
--------------------------------------------------------------------------------
/apps/web/src/charting_library/bundles/89.d8aa43b4b9378722d572.js:
--------------------------------------------------------------------------------
1 | (window.webpackJsonp=window.webpackJsonp||[]).push([[89],[]]);
--------------------------------------------------------------------------------
/apps/web/src/charting_library/bundles/898929f1acdb622689e0fc0c95c8fcd0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/balancednetwork/balanced-network-interface/8e3ace97a9573a660a76830dd2c2199dcb0c9f82/apps/web/src/charting_library/bundles/898929f1acdb622689e0fc0c95c8fcd0.png
--------------------------------------------------------------------------------
/apps/web/src/charting_library/bundles/9.84ecbc930e51cb26d06a.js:
--------------------------------------------------------------------------------
1 | (window.webpackJsonp=window.webpackJsonp||[]).push([[9],[]]);
--------------------------------------------------------------------------------
/apps/web/src/charting_library/bundles/90.ce47bb68fc3fc88b5590.js:
--------------------------------------------------------------------------------
1 | (window.webpackJsonp=window.webpackJsonp||[]).push([[90],[]]);
--------------------------------------------------------------------------------
/apps/web/src/charting_library/bundles/91.a9b79ef7ba0a62311a53.js:
--------------------------------------------------------------------------------
1 | (window.webpackJsonp=window.webpackJsonp||[]).push([[91],[]]);
--------------------------------------------------------------------------------
/apps/web/src/charting_library/bundles/92.76d5ca7ebec10a1a7a12.js:
--------------------------------------------------------------------------------
1 | (window.webpackJsonp=window.webpackJsonp||[]).push([[92],[]]);
--------------------------------------------------------------------------------
/apps/web/src/charting_library/bundles/93.6de56ef1975f4a31e542.js:
--------------------------------------------------------------------------------
1 | (window.webpackJsonp=window.webpackJsonp||[]).push([[93],[]]);
--------------------------------------------------------------------------------
/apps/web/src/charting_library/bundles/94.231bea5fb12b806ef287.js:
--------------------------------------------------------------------------------
1 | (window.webpackJsonp=window.webpackJsonp||[]).push([[94],[]]);
--------------------------------------------------------------------------------
/apps/web/src/charting_library/bundles/94.b204218cb73b576333a1.css:
--------------------------------------------------------------------------------
1 | .dialog-Gd2kEiLq{min-height:300px;min-width:380px}.wrap-Gd2kEiLq{margin-top:10px;overflow-y:auto;scrollbar-color:#9598a1 #0000;scrollbar-width:thin}html.theme-dark .wrap-Gd2kEiLq{scrollbar-color:#363a45 #0000}.wrap-Gd2kEiLq::-webkit-scrollbar{height:5px;width:5px}.wrap-Gd2kEiLq::-webkit-scrollbar-thumb{background-color:#9598a1;border:1px solid #f0f3fa;border-radius:3px}html.theme-dark .wrap-Gd2kEiLq::-webkit-scrollbar-thumb{background-color:#363a45;border-color:#1e222d}.wrap-Gd2kEiLq::-webkit-scrollbar-track{background-color:initial;border-radius:3px}.wrap-Gd2kEiLq::-webkit-scrollbar-corner{display:none}
--------------------------------------------------------------------------------
/apps/web/src/charting_library/bundles/94.b204218cb73b576333a1.rtl.css:
--------------------------------------------------------------------------------
1 | .dialog-Gd2kEiLq{min-height:300px;min-width:380px}.wrap-Gd2kEiLq{margin-top:10px;overflow-y:auto;scrollbar-color:#9598a1 #0000;scrollbar-width:thin}html.theme-dark .wrap-Gd2kEiLq{scrollbar-color:#363a45 #0000}.wrap-Gd2kEiLq::-webkit-scrollbar{height:5px;width:5px}.wrap-Gd2kEiLq::-webkit-scrollbar-thumb{background-color:#9598a1;border:1px solid #f0f3fa;border-radius:3px}html.theme-dark .wrap-Gd2kEiLq::-webkit-scrollbar-thumb{background-color:#363a45;border-color:#1e222d}.wrap-Gd2kEiLq::-webkit-scrollbar-track{background-color:initial;border-radius:3px}.wrap-Gd2kEiLq::-webkit-scrollbar-corner{display:none}
--------------------------------------------------------------------------------
/apps/web/src/charting_library/bundles/95.6f7da80aac5cf2bf77d6.js:
--------------------------------------------------------------------------------
1 | (window.webpackJsonp=window.webpackJsonp||[]).push([[95],[]]);
--------------------------------------------------------------------------------
/apps/web/src/charting_library/bundles/96.43bb935eee30715afff7.js:
--------------------------------------------------------------------------------
1 | (window.webpackJsonp=window.webpackJsonp||[]).push([[96],[]]);
--------------------------------------------------------------------------------
/apps/web/src/charting_library/bundles/a6506134daec7169f68f563f084a9d41.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/apps/web/src/charting_library/bundles/b1a63a011fd92dfb93db6db243bb036c.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/balancednetwork/balanced-network-interface/8e3ace97a9573a660a76830dd2c2199dcb0c9f82/apps/web/src/charting_library/bundles/b1a63a011fd92dfb93db6db243bb036c.woff2
--------------------------------------------------------------------------------
/apps/web/src/charting_library/bundles/ed68e83c16f77203e73dbc4c3a7c7fa1.cur:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/balancednetwork/balanced-network-interface/8e3ace97a9573a660a76830dd2c2199dcb0c9f82/apps/web/src/charting_library/bundles/ed68e83c16f77203e73dbc4c3a7c7fa1.cur
--------------------------------------------------------------------------------
/apps/web/src/charting_library/bundles/f55394b616ed1ae9462c37daab941d93.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/balancednetwork/balanced-network-interface/8e3ace97a9573a660a76830dd2c2199dcb0c9f82/apps/web/src/charting_library/bundles/f55394b616ed1ae9462c37daab941d93.png
--------------------------------------------------------------------------------
/apps/web/src/charting_library/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "private": true,
3 | "description": "CL v21.066 (internal id 132c7060 @ 2022-04-01T09:59:44.647Z)",
4 | "type": "module",
5 | "main": "charting_library.cjs.js",
6 | "module": "charting_library.esm.js",
7 | "types": "charting_library.d.ts"
8 | }
9 |
--------------------------------------------------------------------------------
/apps/web/src/constants/config.ts:
--------------------------------------------------------------------------------
1 | import { SupportedChainId as NetworkId } from '@balancednetwork/balanced-js';
2 |
3 | export const NETWORK_ID: NetworkId = parseInt(import.meta.env.VITE_NETWORK_ID ?? '1');
4 |
--------------------------------------------------------------------------------
/apps/web/src/constants/index.ts:
--------------------------------------------------------------------------------
1 | import BigNumber from 'bignumber.js';
2 |
3 | export const ZERO = new BigNumber(0);
4 | export const ONE = new BigNumber(1);
5 | export const PLUS_INFINITY = new BigNumber(1 / 0);
6 | export const MINUS_INFINITY = new BigNumber(-1 / 0);
7 |
8 | export const SLIDER_RANGE_MAX_BOTTOM_THRESHOLD = 0.001;
9 |
10 | export const MINIMUM_ICX_FOR_ACTION = 2;
11 | export const MINIMUM_ICX_FOR_TX = 1;
12 |
13 | export const DEFAULT_SLIPPAGE = 50;
14 | export const DEFAULT_SLIPPAGE_LP = 200;
15 |
16 | export const MINIMUM_B_BALANCE_TO_SHOW_POOL = 0.001;
17 |
18 | export const MODAL_FADE_DURATION = 200;
19 |
--------------------------------------------------------------------------------
/apps/web/src/hooks/useAnalytics.ts:
--------------------------------------------------------------------------------
1 | import { useCallback } from 'react';
2 | import { usePlausible } from '../providers/PlausibleProvider';
3 | import { AnalyticsEventName } from '../utils/analytics';
4 |
5 | export const useAnalytics = () => {
6 | const { plausible } = usePlausible();
7 |
8 | const track = useCallback(
9 | (eventName: AnalyticsEventName, props?: Record) => {
10 | plausible.trackEvent(eventName, { props });
11 | },
12 | [plausible],
13 | );
14 |
15 | return { track };
16 | };
17 |
--------------------------------------------------------------------------------
/apps/web/src/hooks/useIconNetworkId.ts:
--------------------------------------------------------------------------------
1 | import { NETWORK_ID } from '@/constants/config';
2 |
3 | export function useIconNetworkId() {
4 | return NETWORK_ID;
5 | }
6 |
--------------------------------------------------------------------------------
/apps/web/src/hooks/useLastCount.ts:
--------------------------------------------------------------------------------
1 | import { useEffect, useRef, useState } from 'react';
2 |
3 | export default function useLastCount(value: number) {
4 | const intervalId = useRef(-1);
5 | const [last, setLast] = useState(0);
6 |
7 | useEffect(() => {
8 | intervalId.current = window.setInterval(() => setLast(last => last + 1), value);
9 |
10 | return () => {
11 | clearInterval(intervalId.current);
12 | };
13 | }, [value]);
14 |
15 | return last;
16 | }
17 |
--------------------------------------------------------------------------------
/apps/web/src/hooks/usePrevious.ts:
--------------------------------------------------------------------------------
1 | import { useEffect, useRef } from 'react';
2 |
3 | // modified from https://usehooks.com/usePrevious/
4 | export default function usePrevious(value: T) {
5 | // The ref object is a generic container whose current property is mutable ...
6 | // ... and can hold any value, similar to an instance property on a class
7 | const ref = useRef();
8 |
9 | // Store current value in ref
10 | useEffect(() => {
11 | ref.current = value;
12 | }, [value]); // Only re-run if value changes
13 |
14 | // Return previous value (happens before update in useEffect above)
15 | return ref.current;
16 | }
17 |
--------------------------------------------------------------------------------
/apps/web/src/hooks/useTimeout.ts:
--------------------------------------------------------------------------------
1 | import React from 'react';
2 |
3 | export default function useTimeout(callback: () => void, delay: null | number) {
4 | const savedCallback = React.useRef<() => void>();
5 |
6 | React.useEffect(() => {
7 | savedCallback.current = callback;
8 | }, [callback]);
9 |
10 | React.useEffect(() => {
11 | function tick() {
12 | const current = savedCallback.current;
13 | current && current();
14 | }
15 |
16 | if (delay !== null) {
17 | const id = setTimeout(tick, delay);
18 | return () => clearTimeout(id);
19 | }
20 | }, [delay]);
21 | }
22 |
--------------------------------------------------------------------------------
/apps/web/src/hooks/useTimestampRounded.ts:
--------------------------------------------------------------------------------
1 | export default function useTimestampRounded(period = 1000 * 60, daysBack = 0) {
2 | const now = Math.floor(new Date().getTime() / period) * period;
3 | return now - daysBack * 24 * 60 * 60 * 1000;
4 | }
5 |
--------------------------------------------------------------------------------
/apps/web/src/hooks/useToggle.ts:
--------------------------------------------------------------------------------
1 | import { useCallback, useState } from 'react';
2 |
3 | export default function useToggle(initialState = false): [boolean, () => void] {
4 | const [state, setState] = useState(initialState);
5 | const toggle = useCallback(() => setState(state => !state), []);
6 | return [state, toggle];
7 | }
8 |
--------------------------------------------------------------------------------
/apps/web/src/hooks/useWidth.ts:
--------------------------------------------------------------------------------
1 | import React from 'react';
2 |
3 | export default function useWidth(): [React.RefObject, number | undefined] {
4 | const ref = React.useRef(null);
5 | const [width, setWidth] = React.useState(ref?.current?.clientWidth);
6 | React.useEffect(() => {
7 | function handleResize() {
8 | setWidth(ref?.current?.clientWidth ?? width);
9 | }
10 | handleResize();
11 | window.addEventListener('resize', handleResize);
12 | return () => window.removeEventListener('resize', handleResize);
13 | }, [width]);
14 |
15 | return [ref, width];
16 | }
17 |
--------------------------------------------------------------------------------
/apps/web/src/hooks/useXTokens.tsx:
--------------------------------------------------------------------------------
1 | import { xTokenMap } from '@balancednetwork/xwagmi';
2 | import { XChainId } from '@balancednetwork/xwagmi';
3 |
4 | const useXTokens = (from: XChainId, to?: XChainId) => {
5 | if (to) {
6 | return xTokenMap[from].filter(x => xTokenMap[to].some(y => y.identifier === x.identifier));
7 | } else {
8 | return xTokenMap[from];
9 | }
10 | };
11 |
12 | export default useXTokens;
13 |
--------------------------------------------------------------------------------
/apps/web/src/lib/intent.tsx:
--------------------------------------------------------------------------------
1 | import { XChainId } from '@balancednetwork/sdk-core';
2 | import { IntentService, IntentServiceConfig } from 'icon-intents-sdk';
3 |
4 | export const ALLOWED_XCHAIN_IDS: XChainId[] = ['0x1.icon', 'sui', '0x89.polygon', '0xa4b1.arbitrum', 'stellar'];
5 |
6 | export const intentServiceConfig: IntentServiceConfig = {
7 | solverApiEndpoint: 'https://solver.iconblockchain.xyz',
8 | };
9 |
10 | export const intentService = new IntentService(intentServiceConfig);
11 |
--------------------------------------------------------------------------------
/apps/web/src/queries/constants.ts:
--------------------------------------------------------------------------------
1 | export const API_ENDPOINT =
2 | process.env.NODE_ENV === 'production'
3 | ? 'https://balanced.icon.community/api/v1'
4 | : 'https://balanced.icon.community/api/v1';
5 |
--------------------------------------------------------------------------------
/apps/web/src/store/hooks.ts:
--------------------------------------------------------------------------------
1 | import { TypedUseSelectorHook, useDispatch, useSelector } from 'react-redux';
2 |
3 | import { AppDispatch, AppState } from '@/store';
4 |
5 | export const useAppDispatch = () => useDispatch();
6 | export const useAppSelector: TypedUseSelectorHook = useSelector;
7 |
--------------------------------------------------------------------------------
/apps/web/src/store/index.ts:
--------------------------------------------------------------------------------
1 | import { configureAppStore } from './configureStore';
2 |
3 | const store = configureAppStore();
4 |
5 | export default store;
6 |
7 | export type AppState = ReturnType;
8 | export type AppDispatch = typeof store.dispatch;
9 |
--------------------------------------------------------------------------------
/apps/web/src/store/lists/reducer.ts:
--------------------------------------------------------------------------------
1 | import { createSlice } from '@reduxjs/toolkit';
2 |
3 | export interface TokenListState {
4 | community: boolean;
5 | }
6 |
7 | const initialState: TokenListState = {
8 | community: false,
9 | };
10 |
11 | const listsSlice = createSlice({
12 | name: 'lists',
13 | initialState,
14 | reducers: create => ({
15 | changeConfig: create.reducer<{ community: boolean }>((state, { payload: { community } }) => {
16 | state.community = community;
17 | }),
18 | }),
19 | });
20 |
21 | export const { changeConfig } = listsSlice.actions;
22 |
23 | export default listsSlice.reducer;
24 |
--------------------------------------------------------------------------------
/apps/web/src/types/hana-wallet.d.ts:
--------------------------------------------------------------------------------
1 | interface HanaWallet {
2 | stellar: any;
3 | }
4 |
5 | declare global {
6 | interface Window {
7 | hanaWallet?: HanaWallet;
8 | stellar?: any;
9 | }
10 | }
11 |
12 | export type { HanaWallet };
13 |
--------------------------------------------------------------------------------
/apps/web/src/types/pair.ts:
--------------------------------------------------------------------------------
1 | import { Token } from '@balancednetwork/sdk-core';
2 |
3 | export interface PairInfo {
4 | readonly chainId: number;
5 | readonly id: number;
6 | readonly name: string;
7 | readonly baseCurrencyKey: string;
8 | readonly quoteCurrencyKey: string;
9 | readonly rewards?: number;
10 | readonly baseToken: Token;
11 | readonly quoteToken: Token;
12 | }
13 |
--------------------------------------------------------------------------------
/apps/web/src/utils/customEvent.ts:
--------------------------------------------------------------------------------
1 | // handle custom event
2 |
3 | const EVENTS = {
4 | APPROVE: 'APPROVE',
5 | TRANSFER: 'TRANSFER',
6 | DISPATCH: 'DISPATCH',
7 | };
8 |
9 | function on(eventType: any, listener: any) {
10 | document.addEventListener(eventType, listener);
11 | }
12 |
13 | function off(eventType: any, listener: any) {
14 | document.removeEventListener(eventType, listener);
15 | }
16 |
17 | function trigger(eventType: any, data: any) {
18 | const event = new CustomEvent(eventType, { detail: data });
19 | document.dispatchEvent(event);
20 | }
21 |
22 | export { on, off, trigger, EVENTS };
23 |
--------------------------------------------------------------------------------
/apps/web/src/vite-env.d.ts:
--------------------------------------------------------------------------------
1 | declare module '*.svg' {
2 | import * as React from 'react';
3 |
4 | const ReactComponent: React.FunctionComponent & { title?: string }>;
5 |
6 | export default ReactComponent;
7 | }
8 |
9 | ///
10 | ///
11 |
--------------------------------------------------------------------------------
/apps/web/tsconfig.node.json:
--------------------------------------------------------------------------------
1 | {
2 | "compilerOptions": {
3 | "composite": true,
4 | "skipLibCheck": true,
5 | "module": "ESNext",
6 | "moduleResolution": "Node",
7 | "allowSyntheticDefaultImports": true,
8 | "strict": true
9 | },
10 | "include": ["vite.config.ts"]
11 | }
12 |
--------------------------------------------------------------------------------
/packages/.DS_Store:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/balancednetwork/balanced-network-interface/8e3ace97a9573a660a76830dd2c2199dcb0c9f82/packages/.DS_Store
--------------------------------------------------------------------------------
/packages/balanced-js/.gitignore:
--------------------------------------------------------------------------------
1 | *.log
2 | .DS_Store
3 | node_modules
4 | dist
5 |
--------------------------------------------------------------------------------
/packages/balanced-js/src/contracts/BalancedOracle.ts:
--------------------------------------------------------------------------------
1 | import addresses from '../addresses';
2 | import ContractSettings from '../contractSettings';
3 | import { Contract } from './contract';
4 |
5 | export default class BalancedOracle extends Contract {
6 | constructor(contractSettings: ContractSettings) {
7 | super(contractSettings);
8 | this.address = addresses[this.nid].balancedOracle;
9 | }
10 |
11 | getLastPriceInLoop(symbol: string) {
12 | const payload = this.paramsBuilder({
13 | method: 'getLastPriceInLoop',
14 | params: {
15 | symbol: symbol,
16 | },
17 | });
18 |
19 | return this.call(payload);
20 | }
21 | }
22 |
--------------------------------------------------------------------------------
/packages/balanced-js/src/contracts/Band.ts:
--------------------------------------------------------------------------------
1 | import addresses from '../addresses';
2 | import ContractSettings from '../contractSettings';
3 | import { Contract } from './contract';
4 |
5 | export default class Band extends Contract {
6 | constructor(contractSettings: ContractSettings) {
7 | super(contractSettings);
8 | this.address = addresses[this.nid].band;
9 | }
10 |
11 | getReferenceData(params: { _base: string; _quote: string }) {
12 | const callParams = this.paramsBuilder({
13 | method: 'get_reference_data',
14 | params,
15 | });
16 |
17 | return this.call(callParams);
18 | }
19 | }
20 |
--------------------------------------------------------------------------------
/packages/balanced-js/src/contracts/ICX.ts:
--------------------------------------------------------------------------------
1 | import ContractSettings from '../contractSettings';
2 | import { Contract } from './contract';
3 |
4 | export default class ICX extends Contract {
5 | constructor(contractSettings: ContractSettings) {
6 | super(contractSettings);
7 | this.address = 'cx0000000000000000000000000000000000000000';
8 | }
9 |
10 | balanceOf(account: string) {
11 | return this.provider.getBalance(account).execute();
12 | }
13 | }
14 |
--------------------------------------------------------------------------------
/packages/balanced-js/tsup.config.ts:
--------------------------------------------------------------------------------
1 | import { defineConfig } from 'tsup';
2 | import { exec } from 'child_process';
3 |
4 | export default defineConfig(options => ({
5 | entry: {
6 | index: './src/index.ts',
7 | },
8 | format: ['esm', 'cjs'],
9 | dts: false,
10 | clean: !options.watch,
11 | treeshake: true,
12 | splitting: true,
13 | onSuccess: async () => {
14 | exec('tsc --emitDeclarationOnly --declaration', (err, stdout) => {
15 | if (err) {
16 | console.error(stdout);
17 | if (!options.watch) {
18 | process.exit(1);
19 | }
20 | }
21 | });
22 | },
23 | }));
24 |
--------------------------------------------------------------------------------
/packages/sdk-core/.gitignore:
--------------------------------------------------------------------------------
1 | *.log
2 | .DS_Store
3 | node_modules
4 | dist
5 |
--------------------------------------------------------------------------------
/packages/sdk-core/README.md:
--------------------------------------------------------------------------------
1 | # BalancedNetwork SDK Core
2 |
3 |
--------------------------------------------------------------------------------
/packages/sdk-core/src/constants.ts:
--------------------------------------------------------------------------------
1 | // exports for external consumption
2 | export type BigintIsh = bigint | string | number;
3 |
4 | export enum TradeType {
5 | EXACT_INPUT,
6 | EXACT_OUTPUT,
7 | }
8 |
9 | export enum Rounding {
10 | ROUND_DOWN,
11 | ROUND_HALF_UP,
12 | ROUND_UP,
13 | }
14 |
15 | export const MaxUint256 = BigInt('0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff');
16 |
17 | export const Zero = 0n;
18 |
19 | export const One = 1n;
20 |
--------------------------------------------------------------------------------
/packages/sdk-core/src/declarations.d.ts:
--------------------------------------------------------------------------------
1 | declare module 'toformat';
2 |
--------------------------------------------------------------------------------
/packages/sdk-core/src/entities/currency.ts:
--------------------------------------------------------------------------------
1 | import { Token } from './token';
2 |
3 | export type Currency = Token;
4 |
--------------------------------------------------------------------------------
/packages/sdk-core/src/entities/fractions/index.ts:
--------------------------------------------------------------------------------
1 | export { CurrencyAmount } from './currencyAmount';
2 | export { Fraction } from './fraction';
3 | export { Percent } from './percent';
4 | export { Price } from './price';
5 |
--------------------------------------------------------------------------------
/packages/sdk-core/src/entities/icx.test.ts:
--------------------------------------------------------------------------------
1 | import { ICX } from './icx';
2 |
3 | describe('ICX', () => {
4 | it('static constructor uses cache', () => {
5 | // eslint-disable-next-line no-self-compare
6 | expect(ICX.onChain(1) === ICX.onChain(1)).toEqual(true);
7 | });
8 | it('caches once per chain ID', () => {
9 | expect(ICX.onChain(1) !== ICX.onChain(2)).toEqual(true);
10 | });
11 | it('#equals returns false for diff chains', () => {
12 | expect(ICX.onChain(1).equals(ICX.onChain(2))).toEqual(false);
13 | });
14 | it('#equals returns true for same chains', () => {
15 | expect(ICX.onChain(1).equals(ICX.onChain(1))).toEqual(true);
16 | });
17 | });
18 |
--------------------------------------------------------------------------------
/packages/sdk-core/src/entities/index.ts:
--------------------------------------------------------------------------------
1 | export * from './fractions';
2 |
3 | export * from './currency';
4 | export * from './icx';
5 | export * from './nativeCurrency';
6 | export * from './token';
7 | export * from './weth9';
8 | export * from './xToken';
9 |
--------------------------------------------------------------------------------
/packages/sdk-core/src/entities/nativeCurrency.ts:
--------------------------------------------------------------------------------
1 | import { BaseCurrency } from './baseCurrency';
2 |
3 | /**
4 | * Represents the native currency of the chain on which it resides, e.g.
5 | */
6 | export abstract class NativeCurrency extends BaseCurrency {
7 | public readonly isNative: true = true;
8 | public readonly isToken: false = false;
9 | }
10 |
--------------------------------------------------------------------------------
/packages/sdk-core/src/entities/xToken.ts:
--------------------------------------------------------------------------------
1 | export type XChainId =
2 | | 'archway-1'
3 | | 'archway'
4 | | '0x1.icon'
5 | | '0x2.icon'
6 | | '0xa86a.avax'
7 | | '0xa869.fuji'
8 | | '0x100.icon'
9 | | '0x38.bsc'
10 | | '0xa4b1.arbitrum'
11 | | '0x2105.base'
12 | | '0xa.optimism'
13 | | 'injective-1'
14 | | 'sui'
15 | | 'stellar'
16 | | 'solana'
17 | | '0x89.polygon';
18 |
19 | export type XChainType = 'ICON' | 'EVM' | 'ARCHWAY' | 'HAVAH' | 'INJECTIVE' | 'SUI' | 'STELLAR' | 'SOLANA';
20 |
--------------------------------------------------------------------------------
/packages/sdk-core/src/index.ts:
--------------------------------------------------------------------------------
1 | export * from './constants';
2 | export * from './entities';
3 | export * from './utils';
4 |
--------------------------------------------------------------------------------
/packages/sdk-core/src/utils/index.ts:
--------------------------------------------------------------------------------
1 | export { computePriceImpact } from './computePriceImpact';
2 | export { sortedInsert } from './sortedInsert';
3 | export { sqrt } from './sqrt';
4 | export { validateAndParseAddress } from './validateAndParseAddress';
5 |
--------------------------------------------------------------------------------
/packages/sdk-core/src/utils/validateAndParseAddress.ts:
--------------------------------------------------------------------------------
1 | // import { getAddress } from '@ethersproject/address';
2 |
3 | /**
4 | * Validates an address and returns the parsed (checksummed) version of that address
5 | * @param address the unchecksummed hex address
6 | */
7 | export function validateAndParseAddress(address: string): string {
8 | return address;
9 | /* try {
10 | return getAddress(address);
11 | } catch (error) {
12 | throw new Error(`${address} is not a valid address.`);
13 | } */
14 | }
15 |
--------------------------------------------------------------------------------
/packages/sdk-core/tsup.config.ts:
--------------------------------------------------------------------------------
1 | import { defineConfig } from 'tsup';
2 | import { exec } from 'child_process';
3 |
4 | export default defineConfig(options => ({
5 | entry: {
6 | index: './src/index.ts',
7 | },
8 | format: ['esm', 'cjs'],
9 | dts: false,
10 | clean: !options.watch,
11 | treeshake: true,
12 | splitting: true,
13 | onSuccess: async () => {
14 | exec('tsc --emitDeclarationOnly --declaration', (err, stdout) => {
15 | if (err) {
16 | console.error(stdout);
17 | if (!options.watch) {
18 | process.exit(1);
19 | }
20 | }
21 | });
22 | },
23 | }));
24 |
--------------------------------------------------------------------------------
/packages/v1-sdk/.gitignore:
--------------------------------------------------------------------------------
1 | *.log
2 | .DS_Store
3 | node_modules
4 | dist
5 |
--------------------------------------------------------------------------------
/packages/v1-sdk/README.md:
--------------------------------------------------------------------------------
1 | # BalancedNetwork V1 SDK
--------------------------------------------------------------------------------
/packages/v1-sdk/src/constants.d.ts:
--------------------------------------------------------------------------------
1 | export declare const FACTORY_ADDRESS = '0x5C69bEe701ef814a2B6a3EDD4B1652CB9cc5aA6f';
2 | export declare const INIT_CODE_HASH = '0x96e8ac4277198ff8b6f785478aa9a39f403cb768dd02cbee326c3e7da348845f';
3 | export declare const MINIMUM_LIQUIDITY: bigint;
4 | export declare const ZERO: bigint;
5 | export declare const ONE: bigint;
6 | export declare const FIVE: bigint;
7 | export declare const _997: bigint;
8 | export declare const _1000: bigint;
9 | export declare const _99: bigint;
10 | export declare const _100: bigint;
11 | export declare const NULL_CONTRACT_ADDRESS = 'cx0000000000000000000000000000000000000000';
12 |
--------------------------------------------------------------------------------
/packages/v1-sdk/src/entities/index.d.ts:
--------------------------------------------------------------------------------
1 | export * from './pair';
2 | export * from './route';
3 | export * from './trade';
4 |
--------------------------------------------------------------------------------
/packages/v1-sdk/src/entities/index.ts:
--------------------------------------------------------------------------------
1 | export * from './pair';
2 | export * from './route';
3 | export * from './trade';
4 |
--------------------------------------------------------------------------------
/packages/v1-sdk/src/entities/route.d.ts:
--------------------------------------------------------------------------------
1 | import { Currency, Price, Token } from '@balancednetwork/sdk-core';
2 | import { Pair } from './pair';
3 | export declare class Route {
4 | readonly pairs: Pair[];
5 | readonly path: Token[];
6 | readonly input: TInput;
7 | readonly output: TOutput;
8 | readonly externalNativeTokens: string[];
9 | constructor(pairs: Pair[], input: TInput, output: TOutput);
10 | private _midPrice;
11 | get midPrice(): Price;
12 | get chainId(): number;
13 | get pathForSwap(): (string | null)[];
14 | }
15 |
--------------------------------------------------------------------------------
/packages/v1-sdk/src/index.d.ts:
--------------------------------------------------------------------------------
1 | export { FACTORY_ADDRESS, INIT_CODE_HASH, MINIMUM_LIQUIDITY } from './constants';
2 | export * from './errors';
3 | export * from './entities';
4 | export * from './router';
5 |
--------------------------------------------------------------------------------
/packages/v1-sdk/src/index.ts:
--------------------------------------------------------------------------------
1 | export { FACTORY_ADDRESS, INIT_CODE_HASH, MINIMUM_LIQUIDITY } from './constants';
2 |
3 | export * from './errors';
4 | export * from './entities';
5 | export * from './router';
6 |
--------------------------------------------------------------------------------
/packages/v1-sdk/tsup.config.ts:
--------------------------------------------------------------------------------
1 | import { defineConfig } from 'tsup';
2 | import { exec } from 'child_process';
3 |
4 | export default defineConfig(options => ({
5 | entry: {
6 | index: './src/index.ts',
7 | },
8 | format: ['esm', 'cjs'],
9 | dts: false,
10 | clean: !options.watch,
11 | treeshake: true,
12 | splitting: true,
13 | onSuccess: async () => {
14 | exec('tsc --emitDeclarationOnly --declaration', (err, stdout) => {
15 | if (err) {
16 | console.error(stdout);
17 | if (!options.watch) {
18 | process.exit(1);
19 | }
20 | }
21 | });
22 | },
23 | }));
24 |
--------------------------------------------------------------------------------
/packages/xwagmi/.gitignore:
--------------------------------------------------------------------------------
1 | *.log
2 | .DS_Store
3 | node_modules
4 | dist
5 |
--------------------------------------------------------------------------------
/packages/xwagmi/src/actions/getXChainType.ts:
--------------------------------------------------------------------------------
1 | import { XChainId, XChainType } from '@balancednetwork/sdk-core';
2 |
3 | import { xChainMap } from '@/constants/xChains';
4 |
5 | export function getXChainType(xChainId: XChainId | undefined): XChainType | undefined {
6 | if (!xChainId) {
7 | return undefined;
8 | }
9 | return xChainMap[xChainId].xChainType;
10 | }
11 |
--------------------------------------------------------------------------------
/packages/xwagmi/src/actions/getXPublicClient.ts:
--------------------------------------------------------------------------------
1 | import { XChainId } from '@balancednetwork/sdk-core';
2 |
3 | import { XPublicClient } from '../core/XPublicClient';
4 | import { useXWagmiStore } from '../useXWagmiStore';
5 |
6 | export function getXPublicClient(xChainId: XChainId): XPublicClient {
7 | return useXWagmiStore.getState().xPublicClients[xChainId]!;
8 | }
9 |
--------------------------------------------------------------------------------
/packages/xwagmi/src/actions/getXService.ts:
--------------------------------------------------------------------------------
1 | import { XChainType } from '@balancednetwork/sdk-core';
2 |
3 | import { XService } from '../core';
4 | import { useXWagmiStore } from '../useXWagmiStore';
5 |
6 | export function getXService(xChainType: XChainType): XService {
7 | return useXWagmiStore.getState().xServices[xChainType]!;
8 | }
9 |
--------------------------------------------------------------------------------
/packages/xwagmi/src/actions/getXWalletClient.ts:
--------------------------------------------------------------------------------
1 | import { XChainId } from '@balancednetwork/sdk-core';
2 |
3 | import { XWalletClient } from '../core/XWalletClient';
4 | import { useXWagmiStore } from '../useXWagmiStore';
5 |
6 | export function getXWalletClient(xChainId: XChainId): XWalletClient {
7 | return useXWagmiStore.getState().xWalletClients[xChainId]!;
8 | }
9 |
--------------------------------------------------------------------------------
/packages/xwagmi/src/actions/index.ts:
--------------------------------------------------------------------------------
1 | export { getXChainType } from './getXChainType';
2 | export { getXPublicClient } from './getXPublicClient';
3 | export { getXWalletClient } from './getXWalletClient';
4 | export { getXService } from './getXService';
5 |
--------------------------------------------------------------------------------
/packages/xwagmi/src/assets/wallets/hana.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/packages/xwagmi/src/constants/index.ts:
--------------------------------------------------------------------------------
1 | import { XChainId } from '@balancednetwork/sdk-core';
2 |
3 | export const ICON_XCALL_NETWORK_ID: XChainId = '0x1.icon';
4 |
5 | export * from './xChains';
6 | export * from './xTokens';
7 |
--------------------------------------------------------------------------------
/packages/xwagmi/src/core/index.ts:
--------------------------------------------------------------------------------
1 | export { XService } from './XService';
2 | export { XConnector } from './XConnector';
3 | export { XPublicClient } from './XPublicClient';
4 | export { XWalletClient } from './XWalletClient';
5 |
--------------------------------------------------------------------------------
/packages/xwagmi/src/hooks/liquidity/index.ts:
--------------------------------------------------------------------------------
1 | export { useXTokenDepositAmount } from './useXTokenDepositAmount';
2 | export { useDepositXToken } from './useDepositXToken';
3 | export { useWithdrawXToken } from './useWithdrawXToken';
4 | export { useXAddLiquidity } from './useXAddLiquidity';
5 | export { useXRemoveLiquidity } from './useXRemoveLiquidity';
6 | export { useXStakeLPToken } from './useXStakeLPToken';
7 | export { useXUnstakeLPToken } from './useXUnstakeLPToken';
8 | export { useXClaimRewards } from './useXClaimRewards';
9 |
--------------------------------------------------------------------------------
/packages/xwagmi/src/hooks/savings/index.ts:
--------------------------------------------------------------------------------
1 | export { useXLockedBnUSDAmount, useXLockedBnUSDAmounts } from './useXLockedBnUSDAmount';
2 | export { useXLockBnUSD } from './useXLockBnUSD';
3 | export { useXUnlockBnUSD } from './useXUnlockBnUSD';
4 | export { useXClaimSavingsRewards } from './useXClaimSavingsRewards';
5 |
--------------------------------------------------------------------------------
/packages/xwagmi/src/hooks/useXChainTypes.ts:
--------------------------------------------------------------------------------
1 | import { useXWagmiStore } from '../useXWagmiStore';
2 |
3 | export function useXChainTypes() {
4 | const xChainTypes = useXWagmiStore(state => Object.keys(state.xServices));
5 | return xChainTypes;
6 | }
7 |
--------------------------------------------------------------------------------
/packages/xwagmi/src/hooks/useXDisconnectAll.ts:
--------------------------------------------------------------------------------
1 | import { XChainType } from '@balancednetwork/sdk-core';
2 | import { useCallback } from 'react';
3 | import { xServices } from '../useXWagmiStore';
4 | import { useXDisconnect } from './useXDisconnect';
5 |
6 | export function useXDisconnectAll() {
7 | const xDisconnect = useXDisconnect();
8 |
9 | const disconnectAll = useCallback(async () => {
10 | // TODO: better handling for getting all xChainTypes
11 | const promises = Object.keys(xServices).map(xChainType => xDisconnect(xChainType as XChainType));
12 | await Promise.all(promises);
13 | }, [xDisconnect]);
14 | return disconnectAll;
15 | }
16 |
--------------------------------------------------------------------------------
/packages/xwagmi/src/hooks/useXPublicClient.ts:
--------------------------------------------------------------------------------
1 | import { XChainId } from '@balancednetwork/sdk-core';
2 | import { XPublicClient } from '../core/XPublicClient';
3 | import { useXWagmiStore } from '../useXWagmiStore';
4 |
5 | export function useXPublicClient(xChainId: XChainId | undefined): XPublicClient | undefined {
6 | const xPublicClients = useXWagmiStore(state => state.xPublicClients);
7 | return xChainId ? xPublicClients[xChainId] : undefined;
8 | }
9 |
--------------------------------------------------------------------------------
/packages/xwagmi/src/hooks/useXService.ts:
--------------------------------------------------------------------------------
1 | import { XChainType } from '@balancednetwork/sdk-core';
2 | import { XService } from '../core';
3 | import { useXWagmiStore } from '../useXWagmiStore';
4 |
5 | export function useXService(xChainType: XChainType | undefined): XService | undefined {
6 | const xService = useXWagmiStore(state => (xChainType ? state.xServices[xChainType] : undefined));
7 | return xService;
8 | }
9 |
--------------------------------------------------------------------------------
/packages/xwagmi/src/hooks/useXWalletClient.ts:
--------------------------------------------------------------------------------
1 | import { XChainId } from '@balancednetwork/sdk-core';
2 | import { XWalletClient } from '../core/XWalletClient';
3 | import { useXWagmiStore } from '../useXWagmiStore';
4 |
5 | export function useXWalletClient(xChainId: XChainId | undefined): XWalletClient | undefined {
6 | const xWalletClients = useXWagmiStore(state => state.xWalletClients);
7 | return xChainId ? xWalletClients[xChainId] : undefined;
8 | }
9 |
--------------------------------------------------------------------------------
/packages/xwagmi/src/types/index.ts:
--------------------------------------------------------------------------------
1 | import { XChainType } from '@balancednetwork/sdk-core';
2 |
3 | export type XAccount = {
4 | address: string | undefined;
5 | xChainType: XChainType | undefined;
6 | };
7 |
8 | export type XConnection = {
9 | xAccount: XAccount;
10 | xConnectorId: string;
11 | };
12 |
13 | export type CurrencyKey = string;
14 |
15 | export enum WalletId {
16 | METAMASK = 'metamask',
17 | HANA = 'hana',
18 | PHANTOM = 'phantom',
19 | SUI = 'sui',
20 | KEPLR = 'keplr',
21 | HAVAH = 'havah',
22 | }
23 |
24 | export * from './xChain';
25 | export * from './xToken';
26 |
--------------------------------------------------------------------------------
/packages/xwagmi/src/xcall/index.ts:
--------------------------------------------------------------------------------
1 | export * from './hooks/useXCallFee';
2 | export * from './hooks/useXCallStats';
3 |
4 | export * from './zustand/useTransactionStore';
5 | export * from './zustand/useXCallEventStore';
6 | export * from './zustand/useXChainHeightStore';
7 | export * from './zustand/useXMessageStore';
8 | export * from './zustand/useXTransactionStore';
9 | export * from './zustand/useXCallScannerStore';
10 |
11 | export * from './utils';
12 |
--------------------------------------------------------------------------------
/packages/xwagmi/src/xchains/archway/constants.ts:
--------------------------------------------------------------------------------
1 | import { SupportedChainId as ChainId } from '@balancednetwork/balanced-js';
2 |
3 | const ARCHWAY_FEE_TOKEN_SYMBOLS: { [key in ChainId]: string } = {
4 | [ChainId.MAINNET]: 'aarch',
5 | [ChainId.BERLIN]: 'aconst',
6 | [ChainId.LISBON]: 'aconst',
7 | [ChainId.SEJONG]: 'aconst',
8 | [ChainId.YEOUIDO]: 'aconst',
9 | [ChainId.HAVAH]: 'aconst',
10 | };
11 |
12 | export const ARCHWAY_FEE_TOKEN_SYMBOL = ARCHWAY_FEE_TOKEN_SYMBOLS[1];
13 |
--------------------------------------------------------------------------------
/packages/xwagmi/src/xchains/archway/index.ts:
--------------------------------------------------------------------------------
1 | export { ArchwayXService } from './ArchwayXService';
2 | export { ArchwayXConnector } from './ArchwayXConnector';
3 | export { ArchwayXPublicClient } from './ArchwayXPublicClient';
4 | export { ArchwayXWalletClient } from './ArchwayXWalletClient';
5 |
6 | export * from './utils';
7 |
--------------------------------------------------------------------------------
/packages/xwagmi/src/xchains/archway/utils.ts:
--------------------------------------------------------------------------------
1 | import { Token } from '@balancednetwork/sdk-core';
2 |
3 | import { XToken } from '@/types';
4 |
5 | export function isDenomAsset(token: XToken | Token): boolean {
6 | return token.address.startsWith('ibc/');
7 | }
8 |
--------------------------------------------------------------------------------
/packages/xwagmi/src/xchains/evm/index.ts:
--------------------------------------------------------------------------------
1 | export { EvmXService } from './EvmXService';
2 | export { EvmXConnector } from './EvmXConnector';
3 | export { EvmXPublicClient } from './EvmXPublicClient';
4 | export { EvmXWalletClient } from './EvmXWalletClient';
5 | export { assetManagerContractAbi } from './abis/assetManagerContractAbi';
6 | export { bnUSDContractAbi } from './abis/bnUSDContractAbi';
7 | export { xCallContractAbi } from './abis/xCallContractAbi';
8 |
--------------------------------------------------------------------------------
/packages/xwagmi/src/xchains/havah/HavahXService.ts:
--------------------------------------------------------------------------------
1 | import { XService } from '@/core/XService';
2 |
3 | export class HavahXService extends XService {
4 | private static instance: HavahXService;
5 |
6 | public walletClient: any;
7 |
8 | private constructor() {
9 | super('HAVAH');
10 | }
11 |
12 | public static getInstance(): HavahXService {
13 | if (!HavahXService.instance) {
14 | HavahXService.instance = new HavahXService();
15 | }
16 | return HavahXService.instance;
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/packages/xwagmi/src/xchains/havah/havahJs.ts:
--------------------------------------------------------------------------------
1 | import { BalancedJs } from '@balancednetwork/balanced-js';
2 |
3 | export const havahJs = new BalancedJs({ networkId: 0x100 });
4 |
--------------------------------------------------------------------------------
/packages/xwagmi/src/xchains/havah/index.ts:
--------------------------------------------------------------------------------
1 | export { HavahXService } from './HavahXService';
2 | export { HavahXConnector } from './HavahXConnector';
3 | export { HavahXPublicClient } from './HavahXPublicClient';
4 | export { HavahXWalletClient } from './HavahXWalletClient';
5 | export { havahJs } from './havahJs';
6 | export { HavahHanaXConnector } from './HavahHanaXConnector';
7 |
--------------------------------------------------------------------------------
/packages/xwagmi/src/xchains/icon/bnJs.ts:
--------------------------------------------------------------------------------
1 | import { BalancedJs } from '@balancednetwork/balanced-js';
2 |
3 | export const bnJs = new BalancedJs({ networkId: 1 });
4 |
5 | export default bnJs;
6 |
--------------------------------------------------------------------------------
/packages/xwagmi/src/xchains/icon/index.ts:
--------------------------------------------------------------------------------
1 | export { IconXService } from './IconXService';
2 | export { IconHanaXConnector } from './IconHanaXConnector';
3 | export { IconXPublicClient } from './IconXPublicClient';
4 | export { IconXWalletClient } from './IconXWalletClient';
5 | export * from './bnJs';
6 |
--------------------------------------------------------------------------------
/packages/xwagmi/src/xchains/icon/types.ts:
--------------------------------------------------------------------------------
1 | export type ICONTxEvent = {
2 | indexed: string[];
3 | data: string[];
4 | scoreAddress: string;
5 | };
6 |
7 | export type ICONTxResultType = {
8 | status: number; // 1 = success, 0 = failure
9 | blockHash: string;
10 | blockHeight: number;
11 | txHash: string;
12 | eventLogs: ICONTxEvent[];
13 | };
14 |
--------------------------------------------------------------------------------
/packages/xwagmi/src/xchains/injective/index.ts:
--------------------------------------------------------------------------------
1 | export { InjectiveXService } from './InjectiveXService';
2 | export { InjectiveXPublicClient } from './InjectiveXPublicClient';
3 | export { InjectiveXWalletClient } from './InjectiveXWalletClient';
4 | export { InjectiveKelprXConnector } from './InjectiveKelprXConnector';
5 | export { InjectiveMetamaskXConnector } from './InjectiveMetamaskXConnector';
6 | export * from './utils';
7 |
--------------------------------------------------------------------------------
/packages/xwagmi/src/xchains/injective/utils.ts:
--------------------------------------------------------------------------------
1 | export const switchEthereumChain = async chainId => {
2 | const metamaskProvider = (window as any).ethereum as any;
3 |
4 | await Promise.race([
5 | metamaskProvider.request({
6 | method: 'wallet_switchEthereumChain',
7 | params: [{ chainId: `0x${chainId}` }],
8 | }),
9 | new Promise(resolve =>
10 | metamaskProvider.on('change', ({ chain }: any) => {
11 | if (chain?.id === chainId) {
12 | resolve();
13 | }
14 | }),
15 | ),
16 | ]);
17 | };
18 |
--------------------------------------------------------------------------------
/packages/xwagmi/src/xchains/solana/SolanaXService.ts:
--------------------------------------------------------------------------------
1 | import { XService } from '@/core/XService';
2 |
3 | export class SolanaXService extends XService {
4 | private static instance: SolanaXService;
5 |
6 | public connection: any;
7 | public wallet: any;
8 | public provider: any;
9 |
10 | private constructor() {
11 | super('SOLANA');
12 | }
13 |
14 | public static getInstance(): SolanaXService {
15 | if (!SolanaXService.instance) {
16 | SolanaXService.instance = new SolanaXService();
17 | }
18 | return SolanaXService.instance;
19 | }
20 | }
21 |
--------------------------------------------------------------------------------
/packages/xwagmi/src/xchains/solana/hooks/useAnchorProvider.tsx:
--------------------------------------------------------------------------------
1 | import { AnchorProvider } from '@coral-xyz/anchor';
2 | import { AnchorWallet, useConnection, useWallet } from '@solana/wallet-adapter-react';
3 |
4 | export function useAnchorProvider() {
5 | const { connection } = useConnection();
6 | const wallet = useWallet();
7 |
8 | return new AnchorProvider(connection, wallet as AnchorWallet, { commitment: 'confirmed' });
9 | }
10 |
--------------------------------------------------------------------------------
/packages/xwagmi/src/xchains/solana/index.ts:
--------------------------------------------------------------------------------
1 | export { SolanaXService } from './SolanaXService';
2 | export { SolanaXPublicClient } from './SolanaXPublicClient';
3 | export { SolanaXWalletClient } from './SolanaXWalletClient';
4 | export { SolanaXConnector } from './SolanaXConnector';
5 |
--------------------------------------------------------------------------------
/packages/xwagmi/src/xchains/solana/types/index.ts:
--------------------------------------------------------------------------------
1 | export * from './message';
2 | export * from './envelope';
3 |
--------------------------------------------------------------------------------
/packages/xwagmi/src/xchains/stellar/index.tsx:
--------------------------------------------------------------------------------
1 | export { StellarXService } from './StellarXService';
2 | export { StellarXPublicClient } from './StellarXPublicClient';
3 | export { StellarXWalletClient } from './StellarXWalletClient';
4 | export { StellarWalletsKitXConnector } from './StellarWalletsKitXConnector';
5 |
6 | export * from './utils';
7 |
--------------------------------------------------------------------------------
/packages/xwagmi/src/xchains/sui/SuiXService.ts:
--------------------------------------------------------------------------------
1 | import { XService } from '@/core/XService';
2 |
3 | export class SuiXService extends XService {
4 | private static instance: SuiXService;
5 |
6 | public suiClient: any; // TODO: define suiClient type
7 | public suiWallet: any; // TODO: define suiWallet type
8 | public suiAccount: any; // TODO: define suiAccount type
9 |
10 | private constructor() {
11 | super('SUI');
12 | }
13 |
14 | public static getInstance(): SuiXService {
15 | if (!SuiXService.instance) {
16 | SuiXService.instance = new SuiXService();
17 | }
18 | return SuiXService.instance;
19 | }
20 | }
21 |
--------------------------------------------------------------------------------
/packages/xwagmi/src/xchains/sui/index.ts:
--------------------------------------------------------------------------------
1 | export { SuiXService } from './SuiXService';
2 | export { SuiXPublicClient } from './SuiXPublicClient';
3 | export { SuiXWalletClient } from './SuiXWalletClient';
4 | export { SuiXConnector } from './SuiXConnector';
5 |
--------------------------------------------------------------------------------
/packages/xwagmi/tsup.config.ts:
--------------------------------------------------------------------------------
1 | import { exec } from 'child_process';
2 | import { defineConfig } from 'tsup';
3 |
4 | export default defineConfig(options => ({
5 | entry: {
6 | index: './src/index.ts',
7 | },
8 | format: ['esm', 'cjs'],
9 | dts: false,
10 | clean: !options.watch,
11 | treeshake: true,
12 | splitting: true,
13 | onSuccess: async () => {
14 | exec('tsc --emitDeclarationOnly --declaration', (err, stdout) => {
15 | if (err) {
16 | console.error(stdout);
17 | if (!options.watch) {
18 | process.exit(1);
19 | }
20 | }
21 | });
22 | },
23 | }));
24 |
--------------------------------------------------------------------------------
/pnpm-workspace.yaml:
--------------------------------------------------------------------------------
1 | packages:
2 | - 'packages/*'
3 | - 'apps/*'
4 |
5 | catalog:
6 | react-helmet-async: 2.0.4
--------------------------------------------------------------------------------
/turbo.json:
--------------------------------------------------------------------------------
1 | {
2 | "$schema": "https://turbo.build/schema.json",
3 | "tasks": {
4 | "dev": {
5 | "cache": false,
6 | "persistent": true
7 | },
8 | "build": {
9 | "dependsOn": ["^build"],
10 | "outputs": ["dist/**"]
11 | },
12 | "clean": {
13 | "cache": false
14 | },
15 | "pretty": {
16 | "dependsOn": ["^pretty"],
17 | "cache": false
18 | },
19 | "lint": {
20 | "dependsOn": ["^lint"]
21 | },
22 | "checkTs": {
23 | "dependsOn": ["^checkTs"]
24 | }
25 | }
26 | }
27 |
--------------------------------------------------------------------------------