├── .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 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /apps/hswap/public/icons/chains/archway.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 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 | {chain.name} 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 | 7 | 8 | 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 | 7 | 8 | 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 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /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 | 2 | 3 | 4 | 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 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /apps/hswap/src/assets/icons/flip.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /apps/hswap/src/assets/icons/hana.svg: -------------------------------------------------------------------------------- 1 | 4 | 5 | 7 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /apps/hswap/src/assets/icons/pie-chart.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /apps/hswap/src/assets/icons/question.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /apps/hswap/src/assets/icons/remove.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /apps/hswap/src/assets/icons/search.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 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 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /apps/hswap/src/assets/icons2/chevron-down-gradient.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /apps/hswap/src/assets/icons2/chevron-down-white.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /apps/hswap/src/assets/icons2/chevron-down.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /apps/hswap/src/assets/icons2/chevron-up-gradient.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /apps/hswap/src/assets/icons2/search.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /apps/hswap/src/assets/icons2/subtract.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /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 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 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 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /apps/web/public/icons/chains/archway-1.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /apps/web/public/icons/chains/archway.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 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 | {chain.name} 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 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /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 | 2 | 3 | 4 | 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 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /apps/web/src/assets/icons/flip.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /apps/web/src/assets/icons/hana.svg: -------------------------------------------------------------------------------- 1 | 4 | 5 | 7 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /apps/web/src/assets/icons/pie-chart.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /apps/web/src/assets/icons/question.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /apps/web/src/assets/icons/remove.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /apps/web/src/assets/icons/search.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 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 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /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 | --------------------------------------------------------------------------------