nimbus-bridge
Version:
187 lines • 8.59 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.AppWrapped = void 0;
const jsx_runtime_1 = require("react/jsx-runtime");
const next_themes_1 = require("next-themes");
const react_1 = require("react");
const relay_sdk_1 = require("@reservoir0x/relay-sdk");
const relay_kit_ui_1 = require("@reservoir0x/relay-kit-ui");
const wagmi_1 = require("wagmi");
const relay_kit_hooks_1 = require("@reservoir0x/relay-kit-hooks");
const chains_1 = require("wagmi/chains");
const wagmi_connector_1 = require("@dynamic-labs/wagmi-connector");
const sdk_react_core_1 = require("@dynamic-labs/sdk-react-core");
const ethereum_1 = require("@dynamic-labs/ethereum");
const bitcoin_1 = require("@dynamic-labs/bitcoin");
const solana_1 = require("@dynamic-labs/solana");
const eclipse_1 = require("@dynamic-labs/eclipse");
const sui_1 = require("@dynamic-labs/sui");
const abstract_global_wallet_evm_1 = require("@dynamic-labs-connectors/abstract-global-wallet-evm");
const dynamic_1 = require("./utils/dynamic");
const walletFilter_1 = require("./context/walletFilter");
const Bridge_1 = require("./Bridge");
const AppWrapped = ({ fee, recipientAddress, duneApiKey, dynamicApiKey, isDarkMode, config, }) => {
const theme = (0, react_1.useMemo)(() => {
return {
widget: {
background: isDarkMode ? "#0f0f0f" : "#",
borderRadius: "20px",
card: {
background: isDarkMode ? "#0f0f0f" : "",
borderRadius: "20px",
},
selector: {
background: isDarkMode ? "#0f0f0f" : "",
hover: {
background: isDarkMode ? "#0f0f0f" : "",
},
},
swapCurrencyButtonBorderColor: isDarkMode ? "gray" : "",
swapCurrencyButtonBorderWidth: "2px",
},
modal: {
background: isDarkMode ? "#0f0f0f" : "",
},
input: {
background: isDarkMode ? "#0f0f0f" : "",
color: isDarkMode ? "#fff" : "",
},
anchor: {
color: isDarkMode ? "#fff" : "#000",
hover: {
color: isDarkMode ? "#fff" : "#000",
},
},
primaryColor: "#1e96fc",
focusColor: "#1e96fc",
buttons: {
primary: {
background: "#1e96fc",
hover: {
background: "#1469b0",
},
},
},
};
}, [isDarkMode]);
const { walletFilter, setWalletFilter } = (0, walletFilter_1.useWalletFilter)();
const [wagmiConfig, setWagmiConfig] = (0, react_1.useState)();
const { chains, viemChains } = (0, relay_kit_hooks_1.useRelayChains)(relay_sdk_1.MAINNET_RELAY_API, {
includeChains: "bfb8677a-eefc-47fa-9388-beca0c6f9d17,e7f3d1fc-1d6e-4043-b57e-81db1a4301f7,32d4ad9e-0de1-4993-a07b-a27c27d869c4,52824ebe-d1ee-4e5e-a00f-9866218b44a1",
referrer: "relay-demo",
});
(0, react_1.useEffect)(() => {
if (chains && viemChains && !wagmiConfig) {
setWagmiConfig((0, wagmi_1.createConfig)({
chains: (viemChains && viemChains.length === 0
? [
chains_1.mainnet,
chains_1.arbitrum,
chains_1.ancient8,
chains_1.apeChain,
chains_1.arbitrumNova,
chains_1.avalanche,
chains_1.b3,
chains_1.base,
chains_1.blast,
chains_1.bob,
chains_1.boba,
chains_1.cyber,
chains_1.degen,
chains_1.forma,
chains_1.gnosis,
chains_1.ham,
chains_1.hychain,
chains_1.ink,
chains_1.linea,
chains_1.mantle,
chains_1.mint,
chains_1.mode,
chains_1.optimism,
chains_1.polygon,
chains_1.polygonZkEvm,
chains_1.scroll,
chains_1.redstone,
chains_1.sei,
chains_1.zksync,
]
: viemChains),
multiInjectedProviderDiscovery: false,
transports: chains.reduce((transportsConfig, chain) => {
transportsConfig[chain.id] = (0, wagmi_1.http)();
return transportsConfig;
}, {}),
}));
}
}, [chains, viemChains]);
// if (!wagmiConfig || !chains) {
// return null;
// }
return ((0, jsx_runtime_1.jsx)(next_themes_1.ThemeProvider, { attribute: "class", defaultTheme: isDarkMode ? "dark" : "light", enableSystem: true, disableTransitionOnChange: true, children: (0, jsx_runtime_1.jsx)(relay_kit_ui_1.RelayKitProvider, { theme: theme, options: {
baseApiUrl: relay_sdk_1.MAINNET_RELAY_API,
source: "relay-demo",
logLevel: relay_sdk_1.LogLevel.Verbose,
duneConfig: {
apiKey: duneApiKey,
apiBaseUrl: "https://api.dune.com",
},
chains,
appName: "Nimbus",
useGasFeeEstimations: true,
pollingInterval: 1000,
confirmationPollingInterval: 1000,
appFees: fee && recipientAddress
? [
{
recipient: recipientAddress,
fee,
},
]
: undefined,
}, children: (0, jsx_runtime_1.jsx)(wagmi_1.WagmiProvider, { config: wagmiConfig ||
(0, wagmi_1.createConfig)({
chains: [chains_1.mainnet],
multiInjectedProviderDiscovery: false,
transports: {
[chains_1.mainnet.id]: (0, wagmi_1.http)(),
},
}), children: (0, jsx_runtime_1.jsx)(sdk_react_core_1.DynamicContextProvider, { theme: isDarkMode ? "dark" : "light", settings: {
logLevel: "INFO",
environmentId: dynamicApiKey ?? "",
walletConnectors: [
ethereum_1.EthereumWalletConnectors,
solana_1.SolanaWalletConnectors,
bitcoin_1.BitcoinWalletConnectors,
eclipse_1.EclipseWalletConnectors,
sui_1.SuiWalletConnectors,
abstract_global_wallet_evm_1.AbstractEvmWalletConnectors,
],
cssOverrides: `
[data-testid="send-balance-button"] {
display: none;
}
`,
walletsFilter: walletFilter
? (0, sdk_react_core_1.FilterChain)(walletFilter)
: undefined,
overrides: {
evmNetworks: () => {
return chains
? chains
.filter((chain) => chain.vmType === "evm")
.map((chain) => {
return (0, dynamic_1.convertRelayChainToDynamicNetwork)(chain);
})
: [];
},
},
initialAuthenticationMode: "connect-only",
events: {
onAuthFlowClose: () => {
setWalletFilter(undefined);
},
},
}, children: (0, jsx_runtime_1.jsx)(wagmi_connector_1.DynamicWagmiConnector, { children: (0, jsx_runtime_1.jsx)(Bridge_1.Bridge, { config: config }) }) }) }) }) }));
};
exports.AppWrapped = AppWrapped;
//# sourceMappingURL=AppWrapped.js.map