From 1e0276f3d6dc20f073b12da18ec183e923b19183 Mon Sep 17 00:00:00 2001 From: Artur Sapek Date: Wed, 21 Feb 2024 15:48:00 -0500 Subject: [PATCH] refactor config, export as library --- .github/workflows/{lint.yml => build.yml} | 2 +- .github/workflows/publish.yml | 6 +- CONTRIBUTING.md | 30 +- README.md | 407 ++++++++++-- builder/package.json | 2 +- builder/src/App.tsx | 8 +- builder/src/consts.ts | 8 +- package-lock.json | 609 ++++++++++++++++-- package.json | 1 - wormhole-connect-loader/.gitignore | 26 - wormhole-connect-loader/README.md | 410 ------------ wormhole-connect-loader/package.json | 67 -- .../scripts/replaceEnvWithCurrentVersion.js | 22 - wormhole-connect-loader/src/index.tsx | 43 -- wormhole-connect-loader/src/theme.ts | 307 --------- wormhole-connect-loader/src/types.ts | 141 ---- wormhole-connect-loader/tsconfig.cjs.json | 11 - wormhole-connect-loader/tsconfig.esm.json | 13 - wormhole-connect-loader/tsconfig.json | 26 - wormhole-connect.png | Bin 0 -> 234234 bytes wormhole-connect/.gitignore | 1 + wormhole-connect/README.md | 84 --- wormhole-connect/index.html | 4 +- wormhole-connect/package.json | 36 +- wormhole-connect/src/App.test.tsx | 9 - wormhole-connect/src/App.tsx | 85 --- wormhole-connect/src/WormholeConnect.tsx | 53 ++ .../components/Background/BackgroundImage.tsx | 18 +- .../src/components/ChainsModal.tsx | 18 +- .../src/components/ConnectWallet.tsx | 12 +- .../src/components/FooterNavBar.tsx | 4 +- .../src/components/TokensModal.tsx | 23 +- wormhole-connect/src/config/constants.ts | 4 + wormhole-connect/src/config/examples.md | 3 +- wormhole-connect/src/config/index.ts | 350 +++++----- wormhole-connect/src/config/types.ts | 78 ++- wormhole-connect/src/config/utils.ts | 40 +- wormhole-connect/src/demo.tsx | 21 + .../src/hooks/useExternalSearch.ts | 25 +- .../src/hooks/useFetchTokenPrices.ts | 25 +- .../src/hooks/useIsTransferLimited.ts | 15 +- wormhole-connect/src/icons/PoweredBy.tsx | 12 +- wormhole-connect/src/index.ts | 8 + wormhole-connect/src/main.tsx | 79 ++- .../src/routes/bridge/baseRoute.ts | 46 +- wormhole-connect/src/routes/bridge/bridge.ts | 44 +- .../src/routes/cctpManual/cctpManual.ts | 118 ++-- .../routes/cctpManual/utils/attestation.ts | 10 +- .../src/routes/cctpManual/utils/chains.ts | 14 +- .../src/routes/cctpManual/utils/tokens.ts | 9 +- .../src/routes/cctpRelay/cctpRelay.ts | 126 ++-- .../src/routes/cosmosGateway/cosmosGateway.ts | 56 +- .../src/routes/cosmosGateway/utils/client.ts | 7 +- .../routes/cosmosGateway/utils/contracts.ts | 7 +- .../routes/cosmosGateway/utils/fromCosmos.ts | 12 +- .../routes/cosmosGateway/utils/getMessage.ts | 27 +- .../routes/cosmosGateway/utils/toCosmos.ts | 6 +- wormhole-connect/src/routes/operator.ts | 50 +- .../src/routes/porticoBridge/ethBridge.ts | 4 +- .../src/routes/porticoBridge/porticoBridge.ts | 58 +- .../src/routes/porticoBridge/uniswapQuoter.ts | 6 +- .../src/routes/porticoBridge/utils.ts | 8 +- .../src/routes/porticoBridge/wstETHBridge.ts | 4 +- wormhole-connect/src/routes/relay/relay.ts | 92 +-- wormhole-connect/src/routes/tbtc/tbtc.ts | 85 +-- wormhole-connect/src/routes/tbtc/utils.ts | 4 +- wormhole-connect/src/routes/utils.ts | 18 +- wormhole-connect/src/store/transferInput.ts | 28 +- wormhole-connect/src/theme.ts | 95 +-- wormhole-connect/src/utils/balance.ts | 4 +- .../src/utils/confirmBeforeLeaving.ts | 2 +- wormhole-connect/src/utils/cosmos.ts | 4 +- wormhole-connect/src/utils/events.ts | 42 +- wormhole-connect/src/utils/gas.ts | 11 +- wormhole-connect/src/utils/index.ts | 18 +- wormhole-connect/src/utils/sdk.ts | 63 +- wormhole-connect/src/utils/solana.ts | 5 +- .../src/utils/transferValidation.ts | 30 +- wormhole-connect/src/utils/vaa.ts | 23 +- wormhole-connect/src/utils/wallet/aptos.ts | 10 +- wormhole-connect/src/utils/wallet/cosmos.ts | 8 +- wormhole-connect/src/utils/wallet/evm.ts | 6 +- wormhole-connect/src/utils/wallet/index.ts | 13 +- wormhole-connect/src/utils/wallet/sei.ts | 6 +- wormhole-connect/src/utils/wallet/solana.ts | 62 +- wormhole-connect/src/views/Bridge/Bridge.tsx | 59 +- .../src/views/Bridge/Inputs/AmountInput.tsx | 4 +- .../src/views/Bridge/Inputs/From.tsx | 13 +- .../src/views/Bridge/Inputs/Inputs.tsx | 4 +- .../src/views/Bridge/Inputs/To.tsx | 12 +- .../src/views/Bridge/Inputs/TokenWarnings.tsx | 12 +- .../src/views/Bridge/NativeGasSlider.tsx | 33 +- wormhole-connect/src/views/Bridge/Preview.tsx | 12 +- .../src/views/Bridge/RouteOptions.tsx | 15 +- wormhole-connect/src/views/Bridge/Send.tsx | 8 +- .../src/views/Bridge/SwapChains.tsx | 6 +- .../views/Bridge/TransferLimitedWarning.tsx | 4 +- wormhole-connect/src/views/FAQ.tsx | 6 +- .../src/views/Redeem/AddToWallet.tsx | 20 +- .../src/views/Redeem/BridgeComplete.tsx | 10 +- .../src/views/Redeem/Confirmations.tsx | 4 +- .../src/views/Redeem/ExplorerLink.tsx | 8 +- .../views/Redeem/GovernorEnqueuedWarning.tsx | 4 +- wormhole-connect/src/views/Redeem/Header.tsx | 4 +- .../src/views/Redeem/PorticoSwapFailed.tsx | 4 +- wormhole-connect/src/views/Redeem/Redeem.tsx | 8 +- wormhole-connect/src/views/Redeem/SendTo.tsx | 4 +- wormhole-connect/src/views/Redeem/Tag.tsx | 13 +- wormhole-connect/src/views/Terms.tsx | 10 +- wormhole-connect/src/views/TxSearch.tsx | 14 +- wormhole-connect/src/views/WalletModal.tsx | 12 +- wormhole-connect/vite.config.ts | 186 ++++-- 112 files changed, 2403 insertions(+), 2473 deletions(-) rename .github/workflows/{lint.yml => build.yml} (98%) delete mode 100644 wormhole-connect-loader/.gitignore delete mode 100644 wormhole-connect-loader/README.md delete mode 100644 wormhole-connect-loader/package.json delete mode 100644 wormhole-connect-loader/scripts/replaceEnvWithCurrentVersion.js delete mode 100644 wormhole-connect-loader/src/index.tsx delete mode 100644 wormhole-connect-loader/src/theme.ts delete mode 100644 wormhole-connect-loader/src/types.ts delete mode 100644 wormhole-connect-loader/tsconfig.cjs.json delete mode 100644 wormhole-connect-loader/tsconfig.esm.json delete mode 100644 wormhole-connect-loader/tsconfig.json create mode 100644 wormhole-connect.png delete mode 100644 wormhole-connect/README.md delete mode 100644 wormhole-connect/src/App.test.tsx delete mode 100644 wormhole-connect/src/App.tsx create mode 100644 wormhole-connect/src/WormholeConnect.tsx create mode 100644 wormhole-connect/src/config/constants.ts create mode 100644 wormhole-connect/src/demo.tsx create mode 100644 wormhole-connect/src/index.ts diff --git a/.github/workflows/lint.yml b/.github/workflows/build.yml similarity index 98% rename from .github/workflows/lint.yml rename to .github/workflows/build.yml index 9f3945e85..6db585b59 100644 --- a/.github/workflows/lint.yml +++ b/.github/workflows/build.yml @@ -1,4 +1,4 @@ -name: Lint +name: Build on: pull_request: diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index e2df203fc..723a7bf56 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -25,9 +25,11 @@ jobs: - run: npm run lint:ci - run: | IFS='@' read -a strarr <<< $(git describe --tags) - sed -i "s/\"version\": .*/\"version\": \"${strarr[1]}$(echo $([ ${strarr[0]} == "production" ] && echo "" || echo "-${strarr[0]}"))\",/" wormhole-connect-loader/package.json + sed -i "s/\"version\": .*/\"version\": \"${strarr[1]}$(echo $([ ${strarr[0]} == "production" ] && echo "" || echo "-${strarr[0]}"))\",/" wormhole-connect/package.json npm run build - cd wormhole-connect-loader + cp README.md wormhole-connect/ + cp wormhole-connect.png wormhole-connect/ + cd wormhole-connect npm publish --tag $(echo $([ ${strarr[0]} == "production" ] && echo "latest" || echo ${strarr[0]})) --access public env: NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }} diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index bd33e4b64..2aa1432c7 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -1,3 +1,31 @@ +## Contributing + +Contributions are welcome! To work on wormhole-connect locally you'll want to use `npm link` to make the changes to the SDK immediately available. + +### Setup + +1) Install + +Run `npm i` at the root of the repo + +2) Build + +Run `npm run build` at the root fo the repo + +3) Start + +Start wormhole-connect UI and view in browser at localhost:3000 +```bash +# in /wormhole-connect +npm run start # testnet +``` + +Start builder UI and view in browser at localhost:3000 +```bash +# in /builder +npm run start +``` + ## Add a token ### Fill out token config @@ -52,4 +80,4 @@ Copy the outputted list and paste it into `src/consts/wallet.ts` as the value of 1. Make a GitHub release 2. Tag it `production@0.1.3` -3. Trigger the 'publish' GitHub action and fill in the tag when prompted, which will publish to NPM \ No newline at end of file +3. Trigger the 'publish' GitHub action and fill in the tag when prompted, which will publish to NPM diff --git a/README.md b/README.md index 24b46abd9..874c741e0 100644 --- a/README.md +++ b/README.md @@ -1,87 +1,408 @@ # Wormhole Connect -Wormhole Connect is a project to facilitate integration with the Wormhole protocol. It is thus far comprised of 3 components: wormhole-connect, sdk and builder. Below is a brief introduction on each, see the corresponding READMEs for more information. +[![npm version](https://img.shields.io/npm/v/@wormhole-foundation/wormhole-connect.svg)](https://www.npmjs.com/package/@wormhole-foundation/wormhole-connect) ![CI build](https://github.com/wormhole-foundation/wormhole-connect/actions/workflows/lint.yml/badge.svg) -### Wormhole Connect +Wormhole Connect is a customizable React widget that can perform cross-chain bridging with Wormhole. -An app that brings all the functionality and utility of the Wormhole token bridge right into your application and removes all of the complexity. It is built to be embedded within any application, simply copy a script tag or install the [npm package](https://www.npmjs.com/package/@wormhole-foundation/wormhole-connect). +[![Wormhole Connect running on Portal Bridge](https://i.imgur.com/sZJKw8e.png)](https://portalbridge.com/) -Optionally, configure a number of parameters such as supported chains/tokens and theme. +## Demo -Read more [here](./wormhole-connect/README.md) +Wormhole Connect is deployed live in several production apps. Here are a few: -### Customizer +- [Portal Bridge](https://portalbridge.com/) +- [Jupiter](https://jup.ag/bridge/wormhole) +- [Pancake Swap](https://bridge.pancakeswap.finance/wormhole) -Customize and integrate via our no-code solution: https://connect-in-style.wormhole.com/ -### SDK - -The beginning of a refactor of the existing sdk. It is written in Typescript and is built with ease-of-use in mind. It is organized into different `context` classes (i.e. evm, solana, terra, etc) which each implement the same methods with standardized parameters. +## Integration -Read more [here](./sdk/README.md) +You can customize and integrate via our no-code solution: https://connect-in-style.wormhole.com/ -### Builder +### Via NPM (for React apps) -Initially this serves as a way to test integrating wormhole-connect. +If you're using React, you can import the `` component directly into your JSX: -In the future, this will become a playground where developers can come to customize their integration by selecting the chain and tokens they would like to support as well as edit theme variables to make it blend seamlessly within their application. +```bash +npm i @wormhole-foundation/wormhole-connect +``` -Read more [here](./builder/README.md) +```javascript +import WormholeConnect from '@wormhole-foundation/wormhole-connect'; +function App() { + return ( + + ); +} +``` -## Integration +### Alternative: hosted version via CDN (for any website) -Include the wormhole connect +If you're not using React, you can still embed Connect on your website by using the hosted version. Simply copy and paste the following code into your HTML: ```html - - - + + + - +
``` -OR +Note that the `wormhole-connect` div with your config has to be present _before_ the scripts are loaded. + +## Configuration + +Wormhole Connect is highly customizable via a simple `config` object passed in as a React prop: + +```jsx + +``` + +See `WormholeConnectConfig` in [src/config/index.ts](../wormhole-connect/src/config/index.ts) +for a full view of the supported config parameters. + +See [src/config/examples.md](../wormhole-connect/src/config/examples.md) +for working examples of different config values. + +### Environment (`env`): +| Mainnet | Testnet | +| ---------- | --------- | +| mainnet | testnet | + +
+ +### Networks (`networks`): +| Mainnet | Testnet | +| ---------- | ------------- | +| ethereum | goerli, sepolia | +| polygon | mumbai | +| bsc | bsc | +| avalanche | fuji | +| celo | avalanche | +| moonbeam | moonbasealpha | +| solana | solana | +| sui | sui | +| aptos | aptos | +| base | basegoerli, base_sepolia | +| osmosis | osmosis | +| evmos | evmos | +| kujira | kujira | +| injective | injective | +| klaytn | klaytn | +| arbitrum | arbitrumgoerli, arbitrum_sepolia | +| optimism | optimismgoerli, optimism_sepolia | + +> Osmosis support is in beta, reach out to a Wormhole contributor for early access. + +
+ +### RPCs (`rpcs`): + +We recommend that you configure your own custom RPC endpoints for each used network for the best performance. The default public RPCs may be throttled or rate limited. +See [src/config/examples.md](../wormhole-connect/src/config/examples.md). + +
+ +### Tokens (`tokens`): +| Mainnet | Testnet | +| ----------- | -------- | +| ETH | ETH, ETHsepolia | +| WETH | WETH, WETHsepolia | +| USDCeth | USDCeth | +| WBTC | | +| USDT | | +| DAI | | +| BUSD | | +| MATIC | MATIC | +| WMATIC | WMATIC | +| USDCpolygon | | +| BNB | BNB | +| WBNB | WBNB | +| USDCbnb | | +| AVAX | AVAX | +| WAVAX | WAVAX | +| USDCavax | USDCavax | +| FTM | FTM | +| WFTM | WFTM | +| CELO | CELO | +| GLMR | GLMR | +| WGLMR | WGLMR | +| SOL | WSOL | +| PYTH | | +| SUI | SUI | +| USDCsol | | +| APT | APT | +| ETHarbitrum | ETHarbitrum, ETHarbitrum_sepolia | +| WETHarbitrum | WETHarbitrum, WETHarbitrum_sepolia | +| USDCarbitrum | USDCarbitrum| +| ETHoptimism | ETHoptimism, ETHoptimism_sepolia | +| WETHoptimism | WETHoptimism, WETHoptimism_sepolia | +| USDCoptimism | USDCoptimism| +| ETHbase | ETHbase, ETHbase_sepolia | +| WETHbase | WETHbase, WETHbase_sepolia | +| tBTC | tBTC | +| tBTCpolygon | tBTCpolygon | +| tBTCoptimism | tBTCoptimism | +| tBTCarbitrum | tBTCarbitrum | +| tBTCbase | tBTCbase | +| tBTCsol | tBTCsol | +| WETHpolygon | | +| WETHbsc | | +| wstETH | wstETH | +| wstETHarbitrum | | +| wstETHoptimism | | +| wstETHpolygon | | +| wstETHbase | | + +
+ +### Adding Tokens (`tokensConfig`) + +You can add arbitrary tokens to the Connect tokens menu by providing a `tokensConfig` key. +See the "Arbitrary Token" example in [src/config/examples.md](../wormhole-connect/src/config/examples.md). + + +
+ +### Routes (`routes`) +| Mainnet | Testnet | +| -------- | ---------| +| bridge | bridge | +| relay | relay | +| cctpManual | cctpManual | +| cctpRelay | cctpRelay | +| cosmosGateway | cosmosGateway | +| tbtc | tbtc | +| ethBridge | | +| wstETHBridge | | + +
+ +### Theme (`customTheme`) + +See [theme.ts](../wormhole-connect/src/theme.ts) for examples + + +### Examples + +(Optional) Specify supported networks/tokens and custom RPC endpoints. Your users may encounter rate limits using public RPC endpoints if you do not provide your own + +```jsx +import WormholeBridge, { + WormholeConnectConfig, +} from "@wormhole-foundation/wormhole-connect"; +const config: WormholeConnectConfig = { + env: "mainnet", + networks: ["ethereum", "polygon", "solana"], + tokens: ["ETH", "WETH", "MATIC", "WMATIC"], + rpcs: { + ethereum: "https://rpc.ankr.com/eth", + solana: "https://rpc.ankr.com/solana", + }, +}; -```javascript -import WormholeBridge from '@wormhole-foundation/wormhole-connect'; function App() { - return ( - - ); + return ; } ``` +(Optional) Customize theme -## Contributing +```jsx +import WormholeBridge, { + light, + Theme, + WormholeConnectConfig, +} from "@wormhole-foundation/wormhole-connect"; +import lightblue from "@mui/material/colors/lightBlue"; -Contributions are welcome! To work on wormhole-connect locally you'll want to use `npm link` to make the changes to the SDK immediately available. +// alters the `light` theme +const customized: Theme = light; +customized.success = lightblue; +customized.background.default = "transparent"; +customized.button.action = "#81c784"; +customized.button.actionText = "#000000"; -### Setup +const config: WormholeConnectConfig = { + mode: "light", + customTheme: customized, +}; -1) Install +function App() { + return ; +} +``` -Run `npm i` at the root of the repo +(Optional) Create fully customized theme + +```jsx +import WormholeBridge, { + Theme, + OPACITY, + WormholeConnectConfig, +} from "@wormhole-foundation/wormhole-connect"; +import lightblue from "@mui/material/colors/lightBlue"; +import grey from "@mui/material/colors/grey"; +import green from "@mui/material/colors/green"; +import orange from "@mui/material/colors/orange"; + +const customized: Theme = { + primary: grey, + secondary: grey, + divider: "#ffffff" + OPACITY[20], + background: { + default: "#232323", + }, + text: { + primary: "#ffffff", + secondary: grey[500], + }, + error: red, + info: lightblue, + success: green, + warning: orange, + button: { + primary: "#ffffff" + OPACITY[20], + primaryText: "#ffffff", + disabled: "#ffffff" + OPACITY[10], + disabledText: "#ffffff" + OPACITY[40], + action: orange[300], + actionText: "#000000", + hover: "#ffffff" + OPACITY[7], + }, + options: { + hover: "#474747", + select: "#5b5b5b", + }, + card: { + background: "#333333", + secondary: "#474747", + elevation: "none", + }, + popover: { + background: "#1b2033", + secondary: "#ffffff" + OPACITY[5], + elevation: "none", + }, + modal: { + background: "#474747", + }, +}; +const config: WormholeConnectConfig = { + mode: "dark", + customTheme: customized, +}; -2) Build +function App() { + return ; +} +``` -Run `npm run build` at the root fo the repo +## Configuration Options -3) Start +### Wallet Connect Project ID -Start wormhole-connect UI and view in browser at localhost:3000 -```bash -# in /wormhole-connect -npm run start # testnet +Required in order to display Wallet Connect as a wallet option. You can get a project ID on https://cloud.walletconnect.com/. Refer to the wallet connect [documentation](https://docs.walletconnect.com/advanced/migration-from-v1.x/overview) for more information on v2. + +### Toggle Hamburguer Menu + +By setting the `showHamburgerMenu` option to **false**, you can deactivate the hamburger menu, causing the links to be positioned at the bottom. + +#### Add extra menu entry + +By setting the `showHamburgerMenu` option to **false**, you can use the `menu` array to add extra links. + +|property|description| +|--|--| +|`menu[].label`|link name to show up| +|`menu[].href`|target url or urn| +|`menu[].target`|anchor standard target, by default `_blank`| +|`menu[].order`|order where the new item should be injected| + +#### Sample configuration + +```json +{ + "showHamburgerMenu": false, + "menu": [ + { + "label": "Advance Tools", + "href": "https://portalbridge.com", + "target": "_self", + "order": 1 + } + ] +} ``` -Start builder UI and view in browser at localhost:3000 -```bash -# in /builder -npm run start +### CoinGecko API Key + +If you have a CoinGecko API Plan, you can include the API key in the configuration. In case you do not have the API key, [follow this steps](https://apiguide.coingecko.com/getting-started/getting-started). + +### More Networks + +Specify a set of extra networks to be displayed on the network selection modal, each of them linking to a different page/dApp/mobile app the user will be redirected to. + +|Property|description|| +|:--|:--|:--:| +|`moreNetworks.href`| Default value for missing network hrefs | mandatory| +|`moreNetworks.target`| Default value for missing network link targets | optional, defaults to `_self` +|`moreNetworks.description` | Brief description that should be displayed as tooltip when the user hover an more network icon. Used as default for missing network descriptions | optional | +|`moreNetworks.networks[].icon` | URL data encoded icon to display | mandatory| +|`moreNetworks.networks[].href` | Network href to redirect to. If present, the values `{:sourceChain}` and `{:targetChain}` are replaced with the selected currently selected chains before redirecting | optional | +|`moreNetworks.networks[].label` | Display text | mandatory | +|`moreNetworks.networks[].name` | Unique network key | optional, defaults to a snake_case version of the label | +|`moreNetworks.networks[].description` | Description value | optional, defaults to `moreNetworks.description`| +|`moreNetworks.networks[].target` | href target value | optional, defaults to `moreNetworks.target`| +| `moreNetworks.networks[].showOpenInNewIcon` | Disable top right open in new icon | optional, defaults to **true** if target is `_blank` or **false** if target is `_self`| + +```json +{ + ... + "moreNetworks": { + "href": "https://example.com", + "target": "_blank", + "description": "brief description that should be displayed as tooltip when the user over an more network icon", + "networks": [ + { + "icon": "data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='91' height='91' viewBox='0 0 91 91' fill='none'%3E%3Ccircle cx='45.5' cy='45.5' r='45.5' fill='%23E8E8EC'/%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M26.833 25.8333C26.2807 25.8333 25.833 26.281 25.833 26.8333V63.1666C25.833 63.7189 26.2807 64.1666 26.833 64.1666H63.1663C63.7186 64.1666 64.1663 63.7189 64.1663 63.1666V48.7333C64.1663 48.4571 63.9425 48.2333 63.6663 48.2333C63.3902 48.2333 63.1663 48.4571 63.1663 48.7333V63.1666H26.833V26.8333L41.2663 26.8333C41.5425 26.8333 41.7663 26.6094 41.7663 26.3333C41.7663 26.0571 41.5425 25.8333 41.2663 25.8333H26.833ZM64.0199 25.9797C64.0321 25.9919 64.0435 26.0046 64.0542 26.0177L64.1663 26.324L64.1663 26.3342V37.5333C64.1663 37.8094 63.9425 38.0333 63.6663 38.0333C63.3902 38.0333 63.1663 37.8094 63.1663 37.5333V27.5404L41.6199 49.0868C41.4246 49.2821 41.1081 49.2821 40.9128 49.0868C40.7175 48.8915 40.7175 48.575 40.9128 48.3797L62.4592 26.8333H52.4663C52.1902 26.8333 51.9663 26.6094 51.9663 26.3333C51.9663 26.0571 52.1902 25.8333 52.4663 25.8333H63.666H63.6663C63.6823 25.8333 63.6983 25.834 63.7143 25.8355C63.7632 25.8402 63.8116 25.8521 63.8577 25.8712C63.9167 25.8956 63.972 25.9318 64.0199 25.9797Z' fill='%230F1022'/%3E%3Cpath d='M63.1663 63.1666V64.1666H64.1663V63.1666H63.1663ZM26.833 63.1666H25.833V64.1666H26.833V63.1666ZM26.833 26.8333L26.833 25.8333L25.833 25.8333V26.8333H26.833ZM41.2663 26.8333L41.2663 25.8333H41.2663L41.2663 26.8333ZM64.0542 26.0177L64.9934 25.6742L64.9356 25.5161L64.8292 25.3857L64.0542 26.0177ZM64.0199 25.9797L64.727 25.2726L64.727 25.2726L64.0199 25.9797ZM64.1663 26.324L65.1662 26.3158L65.1648 26.1429L65.1054 25.9806L64.1663 26.324ZM64.1663 26.3342L65.1664 26.3342L65.1663 26.326L64.1663 26.3342ZM63.1663 27.5404H64.1663V25.1261L62.4592 26.8333L63.1663 27.5404ZM40.9128 49.0868L40.2057 49.7939L40.2057 49.7939L40.9128 49.0868ZM40.9128 48.3797L40.2057 47.6726L40.2057 47.6726L40.9128 48.3797ZM62.4592 26.8333L63.1663 27.5404L64.8734 25.8333H62.4592V26.8333ZM63.7143 25.8355L63.8096 24.8401L63.8095 24.8401L63.7143 25.8355ZM63.8577 25.8712L64.2401 24.9472L64.24 24.9472L63.8577 25.8712ZM26.833 26.8333V26.8333V24.8333C25.7284 24.8333 24.833 25.7287 24.833 26.8333H26.833ZM26.833 63.1666V26.8333H24.833V63.1666H26.833ZM26.833 63.1666H26.833H24.833C24.833 64.2712 25.7284 65.1666 26.833 65.1666V63.1666ZM63.1663 63.1666H26.833V65.1666H63.1663V63.1666ZM63.1663 63.1666V65.1666C64.2709 65.1666 65.1663 64.2712 65.1663 63.1666H63.1663ZM63.1663 48.7333V63.1666H65.1663V48.7333H63.1663ZM63.6663 49.2333C63.3902 49.2333 63.1663 49.0094 63.1663 48.7333H65.1663C65.1663 47.9048 64.4948 47.2333 63.6663 47.2333V49.2333ZM64.1663 48.7333C64.1663 49.0094 63.9425 49.2333 63.6663 49.2333V47.2333C62.8379 47.2333 62.1663 47.9048 62.1663 48.7333H64.1663ZM64.1663 63.1666V48.7333H62.1663V63.1666H64.1663ZM26.833 64.1666H63.1663V62.1666H26.833V64.1666ZM25.833 26.8333V63.1666H27.833V26.8333H25.833ZM41.2663 25.8333L26.833 25.8333L26.833 27.8333L41.2663 27.8333L41.2663 25.8333ZM40.7663 26.3333C40.7663 26.0571 40.9902 25.8333 41.2663 25.8333V27.8333C42.0948 27.8333 42.7663 27.1617 42.7663 26.3333H40.7663ZM41.2663 26.8333C40.9902 26.8333 40.7663 26.6094 40.7663 26.3333H42.7663C42.7663 25.5048 42.0948 24.8333 41.2663 24.8333V26.8333ZM26.833 26.8333H41.2663V24.8333H26.833V26.8333ZM64.8292 25.3857C64.7971 25.3464 64.763 25.3086 64.727 25.2726L63.3128 26.6868C63.3012 26.6752 63.2899 26.6628 63.2793 26.6497L64.8292 25.3857ZM65.1054 25.9806L64.9934 25.6742L63.1151 26.3611L63.2271 26.6675L65.1054 25.9806ZM65.1663 26.326L65.1662 26.3158L63.1663 26.3322L63.1664 26.3425L65.1663 26.326ZM65.1663 37.5333V26.3342H63.1663V37.5333H65.1663ZM63.6663 39.0333C64.4948 39.0333 65.1663 38.3617 65.1663 37.5333H63.1663C63.1663 37.2571 63.3902 37.0333 63.6663 37.0333V39.0333ZM62.1663 37.5333C62.1663 38.3617 62.8379 39.0333 63.6663 39.0333V37.0333C63.9425 37.0333 64.1663 37.2571 64.1663 37.5333H62.1663ZM62.1663 27.5404V37.5333H64.1663V27.5404H62.1663ZM42.327 49.7939L63.8734 28.2475L62.4592 26.8333L40.9128 48.3797L42.327 49.7939ZM40.2057 49.7939C40.7915 50.3797 41.7412 50.3797 42.327 49.7939L40.9128 48.3797C41.108 48.1844 41.4246 48.1844 41.6199 48.3797L40.2057 49.7939ZM40.2057 47.6726C39.6199 48.2584 39.6199 49.2081 40.2057 49.7939L41.6199 48.3797C41.8152 48.575 41.8152 48.8915 41.6199 49.0868L40.2057 47.6726ZM61.7521 26.1261L40.2057 47.6726L41.6199 49.0868L63.1663 27.5404L61.7521 26.1261ZM52.4663 27.8333H62.4592V25.8333H52.4663V27.8333ZM50.9663 26.3333C50.9663 27.1617 51.6379 27.8333 52.4663 27.8333V25.8333C52.7425 25.8333 52.9663 26.0571 52.9663 26.3333H50.9663ZM52.4663 24.8333C51.6379 24.8333 50.9663 25.5048 50.9663 26.3333H52.9663C52.9663 26.6094 52.7425 26.8333 52.4663 26.8333V24.8333ZM63.666 24.8333H52.4663V26.8333H63.666V24.8333ZM63.6663 24.8333H63.666V26.8333H63.6663V24.8333ZM63.8095 24.8401C63.7619 24.8355 63.7141 24.8333 63.6663 24.8333V26.8333C63.6505 26.8333 63.6347 26.8325 63.619 26.831L63.8095 24.8401ZM64.24 24.9472C64.1011 24.8897 63.9559 24.8541 63.8096 24.8401L63.619 26.831C63.5706 26.8264 63.5221 26.8146 63.4754 26.7952L64.24 24.9472ZM64.727 25.2726C64.5845 25.1301 64.4184 25.0209 64.2401 24.9472L63.4754 26.7952C63.4151 26.7702 63.3594 26.7334 63.3128 26.6868L64.727 25.2726Z' fill='%230F1022'/%3E%3C/svg%3E", + "name": "more", + "label": "More networks", + "href": "https://portalbridge.com/#/transfer", + "showOpenInNewIcon": false, + } + ] + } + ... +} ``` +### More Tokens + +Show a special entry on the select tokens modal which redirects the user to a different page/dApp/mobile app. + +|Property|description|| +|:--|:--|:--:| +|`moreTokens.label`| Display text | mandatory| +|`moreTokens.href`| URL to redirect to. If present, the values `{:sourceChain}` and `{:targetChain}` are replaced with the selected currently selected chains before redirecting | mandatory| +|`moreTokens.target`| href target | optional, defaults to `_self` + + +### Explorer + +Enable explorer button to allow users to search for his transactions on a given explorer filtering by his wallet address + +|Property|description|| +|:--|:--|:--:| +|`explorer.label`| Display text | optional, defaults to `Transactions`| +|`explorer.href`| URL of the explorer, for instance https://wormholescan.com/. If present, the values `{:address}` is replaced with the connected wallet address| mandatory| +|`explorer.target`| href target | optional, defaults to `_blank` + ## Disclaimer diff --git a/builder/package.json b/builder/package.json index 7f91cad8a..8b0a987fc 100644 --- a/builder/package.json +++ b/builder/package.json @@ -14,7 +14,7 @@ "@types/node": "^16.18.25", "@types/react": "^18.2.0", "@types/react-dom": "^18.2.1", - "@wormhole-foundation/wormhole-connect": "^0.1.4", + "@wormhole-foundation/wormhole-connect": "^0.2.6", "react": "^18.2.0", "react-color": "^2.19.3", "react-dom": "^18.2.0", diff --git a/builder/src/App.tsx b/builder/src/App.tsx index ec5ffe160..b3070791c 100644 --- a/builder/src/App.tsx +++ b/builder/src/App.tsx @@ -66,12 +66,12 @@ import { setObjectPathImmutable, } from "./utils"; -const version = "0.1.4"; +const version = "0.2.6"; // generated with https://www.srihash.org/ const versionScriptIntegrity = - "sha384-NUeZzmcZSVf4i3sUHD1rhtihig08WkCKu42too+Na8ll/2Sxr8v8D1i9IuVrF70A"; + "sha384-QOTWWlgPEcpWnzakQRaUW71dYatQWsRJYtCjz+y94hwZxjxg9jU7X+sE6pDmo6Ao"; const versionLinkIntegrity = - "sha384-KGZI5sQxWDSIe8Xzhvu4eO0fi8KYtEmDnYS2Qn5xrtw667xfxFINL3uN48d/djuY"; + "sha384-BTkX2AhTeIfxDRFsJbLtR26TQ9QKKpi7EMe807JdfQQBTAkUT9a2mSGwf/5CJ4bF"; const nonBreakingTag = "latest-v0.1"; const latestTag = "latest"; @@ -517,7 +517,7 @@ function App() { const realConfigString = JSON.stringify(realConfig); return [ `
- - -``` - -Note that the `wormhole-connect` div with your config has to be present _before_ the scripts are loaded. If your application loads it after, you may need to add the scripts like this: - -```js -function mount() { - const script = document.createElement("script"); - script.src = - "https://www.unpkg.com/@wormhole-foundation/wormhole-connect@0.2.0/dist/main.js"; - script.async = true; - script.type = "module"; - - const link = document.createElement("link"); - link.href = - "https://www.unpkg.com/@wormhole-foundation/wormhole-connect@0.2.0/dist/main.css"; - - document.body.appendChild(script); - document.body.appendChild(link); -} -``` - -## Integrate with React - -```jsx -import WormholeBridge from "@wormhole-foundation/wormhole-connect"; -function App() { - return ; -} -``` - -(Optional) Specify supported networks/tokens and custom RPC endpoints. Your users may encounter rate limits using public RPC endpoints if you do not provide your own - -```jsx -import WormholeBridge, { - WormholeConnectConfig, -} from "@wormhole-foundation/wormhole-connect"; -const config: WormholeConnectConfig = { - env: "mainnet", - networks: ["ethereum", "polygon", "solana"], - tokens: ["ETH", "WETH", "MATIC", "WMATIC"], - rpcs: { - ethereum: "https://rpc.ankr.com/eth", - solana: "https://rpc.ankr.com/solana", - }, -}; - -function App() { - return ; -} -``` - -(Optional) Customize theme - -```jsx -import WormholeBridge, { - light, - Theme, - WormholeConnectConfig, -} from "@wormhole-foundation/wormhole-connect"; -import lightblue from "@mui/material/colors/lightBlue"; - -// alters the `light` theme -const customized: Theme = light; -customized.success = lightblue; -customized.background.default = "transparent"; -customized.button.action = "#81c784"; -customized.button.actionText = "#000000"; - -const config: WormholeConnectConfig = { - mode: "light", - customTheme: customized, -}; - -function App() { - return ; -} -``` - -(Optional) Create fully customized theme - -```jsx -import WormholeBridge, { - Theme, - OPACITY, - WormholeConnectConfig, -} from "@wormhole-foundation/wormhole-connect"; -import lightblue from "@mui/material/colors/lightBlue"; -import grey from "@mui/material/colors/grey"; -import green from "@mui/material/colors/green"; -import orange from "@mui/material/colors/orange"; - -const customized: Theme = { - primary: grey, - secondary: grey, - divider: "#ffffff" + OPACITY[20], - background: { - default: "#232323", - }, - text: { - primary: "#ffffff", - secondary: grey[500], - }, - error: red, - info: lightblue, - success: green, - warning: orange, - button: { - primary: "#ffffff" + OPACITY[20], - primaryText: "#ffffff", - disabled: "#ffffff" + OPACITY[10], - disabledText: "#ffffff" + OPACITY[40], - action: orange[300], - actionText: "#000000", - hover: "#ffffff" + OPACITY[7], - }, - options: { - hover: "#474747", - select: "#5b5b5b", - }, - card: { - background: "#333333", - secondary: "#474747", - elevation: "none", - }, - popover: { - background: "#1b2033", - secondary: "#ffffff" + OPACITY[5], - elevation: "none", - }, - modal: { - background: "#474747", - }, -}; -const config: WormholeConnectConfig = { - mode: "dark", - customTheme: customized, -}; - -function App() { - return ; -} -``` - -## Configuration Options - -### Wallet Connect Project ID - -Required in order to display Wallet Connect as a wallet option. You can get a project ID on https://cloud.walletconnect.com/. Refer to the wallet connect [documentation](https://docs.walletconnect.com/advanced/migration-from-v1.x/overview) for more information on v2. - -### Toggle Hamburguer Menu - -By setting the `showHamburgerMenu` option to **false**, you can deactivate the hamburger menu, causing the links to be positioned at the bottom. - -#### Add extra menu entry - -By setting the `showHamburgerMenu` option to **false**, you can use the `menu` array to add extra links. - -|property|description| -|--|--| -|`menu[].label`|link name to show up| -|`menu[].href`|target url or urn| -|`menu[].target`|anchor standard target, by default `_blank`| -|`menu[].order`|order where the new item should be injected| - -#### Sample configuration - -```json -{ - "showHamburgerMenu": false, - "menu": [ - { - "label": "Advance Tools", - "href": "https://portalbridge.com", - "target": "_self", - "order": 1 - } - ] -} -``` - -### CoinGecko API Key - -If you have a CoinGecko API Plan, you can include the API key in the configuration. In case you do not have the API key, [follow this steps](https://apiguide.coingecko.com/getting-started/getting-started). - -### More Networks - -Specify a set of extra networks to be displayed on the network selection modal, each of them linking to a different page/dApp/mobile app the user will be redirected to. - -|Property|description|| -|:--|:--|:--:| -|`moreNetworks.href`| Default value for missing network hrefs | mandatory| -|`moreNetworks.target`| Default value for missing network link targets | optional, defaults to `_self` -|`moreNetworks.description` | Brief description that should be displayed as tooltip when the user hover an more network icon. Used as default for missing network descriptions | optional | -|`moreNetworks.networks[].icon` | URL data encoded icon to display | mandatory| -|`moreNetworks.networks[].href` | Network href to redirect to. If present, the values `{:sourceChain}` and `{:targetChain}` are replaced with the selected currently selected chains before redirecting | optional | -|`moreNetworks.networks[].label` | Display text | mandatory | -|`moreNetworks.networks[].name` | Unique network key | optional, defaults to a snake_case version of the label | -|`moreNetworks.networks[].description` | Description value | optional, defaults to `moreNetworks.description`| -|`moreNetworks.networks[].target` | href target value | optional, defaults to `moreNetworks.target`| -| `moreNetworks.networks[].showOpenInNewIcon` | Disable top right open in new icon | optional, defaults to **true** if target is `_blank` or **false** if target is `_self`| - -```json -{ - ... - "moreNetworks": { - "href": "https://example.com", - "target": "_blank", - "description": "brief description that should be displayed as tooltip when the user over an more network icon", - "networks": [ - { - "icon": "data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='91' height='91' viewBox='0 0 91 91' fill='none'%3E%3Ccircle cx='45.5' cy='45.5' r='45.5' fill='%23E8E8EC'/%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M26.833 25.8333C26.2807 25.8333 25.833 26.281 25.833 26.8333V63.1666C25.833 63.7189 26.2807 64.1666 26.833 64.1666H63.1663C63.7186 64.1666 64.1663 63.7189 64.1663 63.1666V48.7333C64.1663 48.4571 63.9425 48.2333 63.6663 48.2333C63.3902 48.2333 63.1663 48.4571 63.1663 48.7333V63.1666H26.833V26.8333L41.2663 26.8333C41.5425 26.8333 41.7663 26.6094 41.7663 26.3333C41.7663 26.0571 41.5425 25.8333 41.2663 25.8333H26.833ZM64.0199 25.9797C64.0321 25.9919 64.0435 26.0046 64.0542 26.0177L64.1663 26.324L64.1663 26.3342V37.5333C64.1663 37.8094 63.9425 38.0333 63.6663 38.0333C63.3902 38.0333 63.1663 37.8094 63.1663 37.5333V27.5404L41.6199 49.0868C41.4246 49.2821 41.1081 49.2821 40.9128 49.0868C40.7175 48.8915 40.7175 48.575 40.9128 48.3797L62.4592 26.8333H52.4663C52.1902 26.8333 51.9663 26.6094 51.9663 26.3333C51.9663 26.0571 52.1902 25.8333 52.4663 25.8333H63.666H63.6663C63.6823 25.8333 63.6983 25.834 63.7143 25.8355C63.7632 25.8402 63.8116 25.8521 63.8577 25.8712C63.9167 25.8956 63.972 25.9318 64.0199 25.9797Z' fill='%230F1022'/%3E%3Cpath d='M63.1663 63.1666V64.1666H64.1663V63.1666H63.1663ZM26.833 63.1666H25.833V64.1666H26.833V63.1666ZM26.833 26.8333L26.833 25.8333L25.833 25.8333V26.8333H26.833ZM41.2663 26.8333L41.2663 25.8333H41.2663L41.2663 26.8333ZM64.0542 26.0177L64.9934 25.6742L64.9356 25.5161L64.8292 25.3857L64.0542 26.0177ZM64.0199 25.9797L64.727 25.2726L64.727 25.2726L64.0199 25.9797ZM64.1663 26.324L65.1662 26.3158L65.1648 26.1429L65.1054 25.9806L64.1663 26.324ZM64.1663 26.3342L65.1664 26.3342L65.1663 26.326L64.1663 26.3342ZM63.1663 27.5404H64.1663V25.1261L62.4592 26.8333L63.1663 27.5404ZM40.9128 49.0868L40.2057 49.7939L40.2057 49.7939L40.9128 49.0868ZM40.9128 48.3797L40.2057 47.6726L40.2057 47.6726L40.9128 48.3797ZM62.4592 26.8333L63.1663 27.5404L64.8734 25.8333H62.4592V26.8333ZM63.7143 25.8355L63.8096 24.8401L63.8095 24.8401L63.7143 25.8355ZM63.8577 25.8712L64.2401 24.9472L64.24 24.9472L63.8577 25.8712ZM26.833 26.8333V26.8333V24.8333C25.7284 24.8333 24.833 25.7287 24.833 26.8333H26.833ZM26.833 63.1666V26.8333H24.833V63.1666H26.833ZM26.833 63.1666H26.833H24.833C24.833 64.2712 25.7284 65.1666 26.833 65.1666V63.1666ZM63.1663 63.1666H26.833V65.1666H63.1663V63.1666ZM63.1663 63.1666V65.1666C64.2709 65.1666 65.1663 64.2712 65.1663 63.1666H63.1663ZM63.1663 48.7333V63.1666H65.1663V48.7333H63.1663ZM63.6663 49.2333C63.3902 49.2333 63.1663 49.0094 63.1663 48.7333H65.1663C65.1663 47.9048 64.4948 47.2333 63.6663 47.2333V49.2333ZM64.1663 48.7333C64.1663 49.0094 63.9425 49.2333 63.6663 49.2333V47.2333C62.8379 47.2333 62.1663 47.9048 62.1663 48.7333H64.1663ZM64.1663 63.1666V48.7333H62.1663V63.1666H64.1663ZM26.833 64.1666H63.1663V62.1666H26.833V64.1666ZM25.833 26.8333V63.1666H27.833V26.8333H25.833ZM41.2663 25.8333L26.833 25.8333L26.833 27.8333L41.2663 27.8333L41.2663 25.8333ZM40.7663 26.3333C40.7663 26.0571 40.9902 25.8333 41.2663 25.8333V27.8333C42.0948 27.8333 42.7663 27.1617 42.7663 26.3333H40.7663ZM41.2663 26.8333C40.9902 26.8333 40.7663 26.6094 40.7663 26.3333H42.7663C42.7663 25.5048 42.0948 24.8333 41.2663 24.8333V26.8333ZM26.833 26.8333H41.2663V24.8333H26.833V26.8333ZM64.8292 25.3857C64.7971 25.3464 64.763 25.3086 64.727 25.2726L63.3128 26.6868C63.3012 26.6752 63.2899 26.6628 63.2793 26.6497L64.8292 25.3857ZM65.1054 25.9806L64.9934 25.6742L63.1151 26.3611L63.2271 26.6675L65.1054 25.9806ZM65.1663 26.326L65.1662 26.3158L63.1663 26.3322L63.1664 26.3425L65.1663 26.326ZM65.1663 37.5333V26.3342H63.1663V37.5333H65.1663ZM63.6663 39.0333C64.4948 39.0333 65.1663 38.3617 65.1663 37.5333H63.1663C63.1663 37.2571 63.3902 37.0333 63.6663 37.0333V39.0333ZM62.1663 37.5333C62.1663 38.3617 62.8379 39.0333 63.6663 39.0333V37.0333C63.9425 37.0333 64.1663 37.2571 64.1663 37.5333H62.1663ZM62.1663 27.5404V37.5333H64.1663V27.5404H62.1663ZM42.327 49.7939L63.8734 28.2475L62.4592 26.8333L40.9128 48.3797L42.327 49.7939ZM40.2057 49.7939C40.7915 50.3797 41.7412 50.3797 42.327 49.7939L40.9128 48.3797C41.108 48.1844 41.4246 48.1844 41.6199 48.3797L40.2057 49.7939ZM40.2057 47.6726C39.6199 48.2584 39.6199 49.2081 40.2057 49.7939L41.6199 48.3797C41.8152 48.575 41.8152 48.8915 41.6199 49.0868L40.2057 47.6726ZM61.7521 26.1261L40.2057 47.6726L41.6199 49.0868L63.1663 27.5404L61.7521 26.1261ZM52.4663 27.8333H62.4592V25.8333H52.4663V27.8333ZM50.9663 26.3333C50.9663 27.1617 51.6379 27.8333 52.4663 27.8333V25.8333C52.7425 25.8333 52.9663 26.0571 52.9663 26.3333H50.9663ZM52.4663 24.8333C51.6379 24.8333 50.9663 25.5048 50.9663 26.3333H52.9663C52.9663 26.6094 52.7425 26.8333 52.4663 26.8333V24.8333ZM63.666 24.8333H52.4663V26.8333H63.666V24.8333ZM63.6663 24.8333H63.666V26.8333H63.6663V24.8333ZM63.8095 24.8401C63.7619 24.8355 63.7141 24.8333 63.6663 24.8333V26.8333C63.6505 26.8333 63.6347 26.8325 63.619 26.831L63.8095 24.8401ZM64.24 24.9472C64.1011 24.8897 63.9559 24.8541 63.8096 24.8401L63.619 26.831C63.5706 26.8264 63.5221 26.8146 63.4754 26.7952L64.24 24.9472ZM64.727 25.2726C64.5845 25.1301 64.4184 25.0209 64.2401 24.9472L63.4754 26.7952C63.4151 26.7702 63.3594 26.7334 63.3128 26.6868L64.727 25.2726Z' fill='%230F1022'/%3E%3C/svg%3E", - "name": "more", - "label": "More networks", - "href": "https://portalbridge.com/#/transfer", - "showOpenInNewIcon": false, - } - ] - } - ... -} -``` - -### More Tokens - -Show a special entry on the select tokens modal which redirects the user to a different page/dApp/mobile app. - -|Property|description|| -|:--|:--|:--:| -|`moreTokens.label`| Display text | mandatory| -|`moreTokens.href`| URL to redirect to. If present, the values `{:sourceChain}` and `{:targetChain}` are replaced with the selected currently selected chains before redirecting | mandatory| -|`moreTokens.target`| href target | optional, defaults to `_self` - - -### Explorer - -Enable explorer button to allow users to search for his transactions on a given explorer filtering by his wallet address - -|Property|description|| -|:--|:--|:--:| -|`explorer.label`| Display text | optional, defaults to `Transactions`| -|`explorer.href`| URL of the explorer, for instance https://wormholescan.com/. If present, the values `{:address}` is replaced with the connected wallet address| mandatory| -|`explorer.target`| href target | optional, defaults to `_blank` diff --git a/wormhole-connect-loader/package.json b/wormhole-connect-loader/package.json deleted file mode 100644 index 2d025698f..000000000 --- a/wormhole-connect-loader/package.json +++ /dev/null @@ -1,67 +0,0 @@ -{ - "name": "@wormhole-foundation/wormhole-connect", - "version": "0.0.12", - "dependencies": { - "@mui/material": "^5.12.1" - }, - "devDependencies": { - "@testing-library/jest-dom": "^5.16.5", - "@testing-library/react": "^13.4.0", - "@testing-library/user-event": "^13.5.0", - "@types/jest": "^27.5.2", - "@types/node": "^16.18.23", - "@types/react": "^18.0.37", - "@types/react-dom": "^18.0.11", - "typescript": "^4.9.5" - }, - "scripts": { - "lint:ci": "prettier -c ./src && eslint --max-warnings=0 ./src", - "build:deps": "rm -rf dist && mkdir dist && cp -r ../wormhole-connect/build/* dist/ && cp dist/main-*.css dist/main.css", - "build:cjs": "tsc -p tsconfig.cjs.json", - "build:esm": "tsc -p tsconfig.esm.json", - "build": "npm run build:deps && rm -rf lib && npm run build:cjs && npm run build:esm && node scripts/replaceEnvWithCurrentVersion" - }, - "eslintConfig": { - "extends": [ - "react-app", - "react-app/jest" - ] - }, - "browserslist": { - "production": [ - ">0.2%", - "not dead", - "not op_mini all" - ], - "development": [ - "last 1 chrome version", - "last 1 firefox version", - "last 1 safari version" - ] - }, - "description": "This project was bootstrapped with [Create React App](https://github.com/facebook/create-react-app).", - "main": "lib/cjs/index.js", - "module": "lib/esm/index.js", - "types": "lib/types/index.d.ts", - "exports": { - ".": { - "require": "./lib/cjs/index.js", - "import": "./lib/esm/index.js", - "types": "./lib/types/index.d.ts" - } - }, - "files": [ - "lib", - "dist" - ], - "repository": { - "type": "git", - "url": "git+https://github.com/wormhole-foundation/wormhole-connect.git" - }, - "author": "", - "license": "ISC", - "bugs": { - "url": "https://github.com/wormhole-foundation/wormhole-connect/issues" - }, - "homepage": "https://github.com/wormhole-foundation/wormhole-connect#readme" -} diff --git a/wormhole-connect-loader/scripts/replaceEnvWithCurrentVersion.js b/wormhole-connect-loader/scripts/replaceEnvWithCurrentVersion.js deleted file mode 100644 index 844bf5abf..000000000 --- a/wormhole-connect-loader/scripts/replaceEnvWithCurrentVersion.js +++ /dev/null @@ -1,22 +0,0 @@ -// Writing this as a helper to avoid having to touch code with every version change -// This simple file avoids introducing babel, webpack, or others into the build pipeline -// That said, there may be better alternatives to this, a hack to get the job done -const fs = require("fs"); -const fileNames = ["./lib/cjs/index.js", "./lib/esm/index.js"]; -const package = require("../package.json"); -for (const fileName of fileNames) { - fs.readFile(fileName, "utf8", (err, data) => { - if (err) throw err; - fs.writeFile( - fileName, - data.replace( - "process.env.REACT_APP_CONNECT_CURRENT_VERSION", - `"${package.version}"` - ), - "utf8", - function (err) { - if (err) throw err; - } - ); - }); -} diff --git a/wormhole-connect-loader/src/index.tsx b/wormhole-connect-loader/src/index.tsx deleted file mode 100644 index 3226a553e..000000000 --- a/wormhole-connect-loader/src/index.tsx +++ /dev/null @@ -1,43 +0,0 @@ -import { useEffect } from "react"; -import { WormholeConnectConfig } from "./types"; - -const PACKAGE_NAME = "@wormhole-foundation/wormhole-connect"; -const DEFAULT_VERSION = - process.env.REACT_APP_CONNECT_CURRENT_VERSION || "latest"; - -function WormholeBridge({ - config, - versionOrTag = DEFAULT_VERSION, -}: { - config?: WormholeConnectConfig; - versionOrTag?: string; -}) { - useEffect(() => { - const script = document.createElement("script"); - script.src = `https://www.unpkg.com/${PACKAGE_NAME}@${versionOrTag}/dist/main.js`; - script.type = "module"; - script.async = true; - - const link = document.createElement("link"); - link.href = `https://www.unpkg.com/${PACKAGE_NAME}@${versionOrTag}/dist/main.css`; - - document.body.appendChild(script); - document.body.appendChild(link); - return () => { - script.remove(); - link.remove(); - }; - }, [versionOrTag]); - - return ( -
- ); -} - -export * from "./theme"; -export * from "./types"; -export default WormholeBridge; diff --git a/wormhole-connect-loader/src/theme.ts b/wormhole-connect-loader/src/theme.ts deleted file mode 100644 index 0edddc6a1..000000000 --- a/wormhole-connect-loader/src/theme.ts +++ /dev/null @@ -1,307 +0,0 @@ -import { grey, green, orange, red, cyan, purple } from "@mui/material/colors"; - -export type PaletteColor = { - 50: string; - 100: string; - 200: string; - 300: string; - 400: string; - 500: string; - 600: string; - 700: string; - 800: string; - 900: string; - A100: string; - A200: string; - A400: string; - A700: string; -}; - -export type Theme = { - primary: PaletteColor; - secondary: PaletteColor; - divider: string; - background: { - default: string; - }; - text: { - primary: string; - secondary: string; - }; - error: PaletteColor; - info: PaletteColor; - success: PaletteColor; - warning: PaletteColor; - button: { - primary: string; - primaryText: string; - disabled: string; - disabledText: string; - action: string; - actionText: string; - hover: string; - }; - options: { - hover: string; - select: string; - }; - card: { - background: string; - elevation: string; - secondary: string; - }; - popover: { - background: string; - elevation: string; - secondary: string; - }; - modal: { - background: string; - }; - font: { - primary: string; - header: string; - }; -}; - -export const OPACITY = { - 0: "00", - 5: "0C", - 7: "0F", - 10: "19", - 15: "26", - 20: "33", - 25: "3F", - 30: "4C", - 35: "59", - 40: "66", - 45: "72", - 50: "7F", - 55: "8C", - 60: "99", - 65: "A5", - 70: "B2", - 75: "BF", - 80: "CC", - 85: "D8", - 90: "E5", - 95: "F2", - 100: "FF", -}; - -export const light: Theme = { - primary: { - 50: "#161718", - 100: "#2d2e30", - 200: "#444548", - 300: "#5b5c60", - 400: "#727479", - 500: "#898b91", - 600: "#a0a2a9", - 700: "#b7b9c1", - 800: "#ced0d9", - 900: "#E5E8F2", - A100: "#ceced1", - A200: "#9d9ea4", - A400: "#535660", - A700: "#0a0e1c", - }, - secondary: grey, - divider: "#a0a2a9", - background: { - default: "#E5E8F2", - }, - text: { - primary: grey[900], - secondary: grey[800], - }, - error: red, - info: { - 50: "#d1e3f9", - 100: "#c8def7", - 200: "#bfd8f6", - 300: "#b6d3f5", - 400: "#adcdf4", - 500: "#A4C8F3", - 600: "#93b4da", - 700: "#83a0c2", - 800: "#728caa", - 900: "#627891", - A100: "#A4C8F3", - A200: "#A4C8F3", - A400: "#A4C8F3", - A700: "#A4C8F3", - }, - success: green, - warning: orange, - button: { - primary: "#ffffff", - primaryText: grey[900], - disabled: "#c8cad1", - disabledText: grey[800], - action: "#F3A01E", - actionText: "#000000", - hover: "#b7b9c1", - }, - options: { - hover: "#f9f9fb", - select: "#F0F0F5", - }, - card: { - background: "#ffffff", - elevation: "10px 10px 30px 15px #CCD2E7", - secondary: "#F0F0F5", - }, - popover: { - background: "#ffffff", - elevation: "10px 10px 30px 15px #CCD2E7", - secondary: "#F0F0F5", - }, - modal: { - background: "#ffffff", - }, - font: { - primary: '"Inter", sans-serif', - header: '"IBM Plex Mono", monospace', - }, -}; - -export const dark: Theme = { - primary: grey, - secondary: grey, - divider: "#ffffff" + OPACITY[20], - background: { - default: "#212121", - }, - text: { - primary: "#ffffff", - secondary: grey[500], - }, - error: red, - info: cyan, - success: green, - warning: orange, - button: { - primary: "#ffffff" + OPACITY[20], - primaryText: "#ffffff", - disabled: "#ffffff" + OPACITY[10], - disabledText: "#ffffff" + OPACITY[40], - action: purple[400], - actionText: "#000000", - hover: "#ffffff" + OPACITY[7], - }, - options: { - hover: "#373737", - select: "#3F3F3F", - }, - card: { - background: "#2F2F2F", - secondary: "#474747", - elevation: "none", - }, - popover: { - background: "#111111", - secondary: "#ffffff" + OPACITY[5], - elevation: "none", - }, - modal: { - background: "#2d2d2d", - }, - font: { - primary: '"Inter", sans-serif', - header: '"IBM Plex Mono", monospace', - }, -}; - -export const defaultTheme: Theme = { - primary: grey, - secondary: grey, - divider: "#ffffff" + OPACITY[20], - background: { - default: "wormhole", - }, - text: { - primary: "#ffffff", - secondary: grey[500], - }, - error: red, - info: { - 50: "#97a5b7", - 100: "#8293a9", - 200: "#6e819a", - 300: "#596f8c", - 400: "#445d7e", - 500: "#304C70", - 600: "#2b4464", - 700: "#263c59", - 800: "#21354e", - 900: "#1c2d43", - A100: "#304C70", - A200: "#304C70", - A400: "#304C70", - A700: "#304C70", - }, - // success: green, - success: { - 50: "#66d6cd", - 100: "#4dcfc4", - 200: "#33c8bc", - 300: "#1ac1b4", - 400: "#01BBAC", - 500: "#00a89a", - 600: "#009589", - 700: "#008278", - 800: "#007067", - 900: "#005d56", - A100: "#00a89a", - A200: "#00a89a", - A400: "#00a89a", - A700: "#00a89a", - }, - warning: { - 50: "#ffe3a4", - 100: "#ffdd91", - 200: "#ffd77f", - 300: "#ffd26d", - 400: "#ffcc5b", - 500: "#FFC749", - 600: "#e5b341", - 700: "#cc9f3a", - 800: "#b28b33", - 900: "#99772b", - A100: "#FFC749", - A200: "#FFC749", - A400: "#FFC749", - A700: "#FFC749", - }, - button: { - primary: "#ffffff" + OPACITY[10], - primaryText: "#ffffff", - disabled: "#ffffff" + OPACITY[7], - disabledText: "#ffffff" + OPACITY[40], - action: "#ffffff", - actionText: "#000000", - hover: "#ffffff" + OPACITY[7], - }, - options: { - hover: "#ffffff" + OPACITY[7], - select: "#ffffff" + OPACITY[10], - }, - card: { - background: "#ffffff" + OPACITY[5], - secondary: "#ffffff" + OPACITY[5], - elevation: "none", - }, - popover: { - background: "#1b2033", - secondary: "#ffffff" + OPACITY[5], - elevation: "none", - }, - modal: { - background: "#0F1024", - }, - font: { - primary: '"Inter", sans-serif', - header: '"IBM Plex Mono", monospace', - }, -}; diff --git a/wormhole-connect-loader/src/types.ts b/wormhole-connect-loader/src/types.ts deleted file mode 100644 index fdb494a70..000000000 --- a/wormhole-connect-loader/src/types.ts +++ /dev/null @@ -1,141 +0,0 @@ -import { Theme } from "./theme"; -export const MAINNET_CHAINS = { - solana: 1, - ethereum: 2, - bsc: 4, - polygon: 5, - avalanche: 6, - fantom: 10, - klaytn: 13, - celo: 14, - moonbeam: 16, - injective: 19, - osmosis: 20, - sui: 21, - aptos: 22, - arbitrum: 23, - optimism: 24, - base: 30, - wormchain: 3104, - evmos: 4001, - kujira: 4002, -} as const; -export type MainnetChainName = keyof typeof MAINNET_CHAINS; -export type MainnetChainId = (typeof MAINNET_CHAINS)[MainnetChainName]; - -export const TESTNET_CHAINS = { - solana: 1, - goerli: 2, - bsc: 4, - mumbai: 5, - fuji: 6, - fantom: 10, - klaytn: 13, - alfajores: 14, - moonbasealpha: 16, - injective: 19, - osmosis: 20, - sui: 21, - aptos: 22, - arbitrumgoerli: 23, - optimismgoerli: 24, - basegoerli: 30, - wormchain: 3104, - evmos: 4001, - kujira: 4002, - sepolia: 10002, - arbitrum_sepolia: 10003, - base_sepolia: 10004, - optimism_sepolia: 10005, -} as const; -export type TestnetChainName = keyof typeof TESTNET_CHAINS; -export type TestnetChainId = (typeof TESTNET_CHAINS)[TestnetChainName]; - -export type ChainName = MainnetChainName | TestnetChainName; -export type ChainId = MainnetChainId | TestnetChainId; - -export type Rpcs = { - [chain in ChainName]?: string; -}; - -export interface BridgeDefaults { - fromNetwork?: ChainName; - toNetwork?: ChainName; - token?: string; - requiredNetwork?: ChainName; -} - -// Keep this in sync with wormhole-connect/src/config/types.ts! -// TODO: move to a shared package -export interface WormholeConnectConfig { - showHamburgerMenu?: boolean; - env?: "mainnet" | "testnet" | "devnet"; - rpcs?: Rpcs; - rest?: Rpcs; - networks?: ChainName[]; - tokens?: string[]; - mode?: "dark" | "light"; - customTheme?: Theme; - cta?: { - text: string; - link: string; - }; - explorer?: ExplorerConfig; - menu?: MenuEntry[]; - bridgeDefaults?: BridgeDefaults; - routes?: string[]; - pageHeader?: string; - cctpWarning?: { - href: string; - }; - pageSubHeader?: string; - searchTx?: SearchTxConfig; - moreTokens?: MoreTokenConfig; - moreNetworks?: MoreChainConfig; - partnerLogo?: string; - walletConnectProjectId?: string; - ethBridgeMaxAmount?: number; - wstETHBridgeMaxAmount?: number; - coinGeckoApiKey?: string; -} - -export type ExplorerConfig = { - href: string; - label?: string; - target?: "_blank" | "_self"; -}; - -export type SearchTxConfig = { - txHash?: string; - chainName?: ChainName; -}; - -export type MoreTokenConfig = { - label: string; - href: string; - target?: "_blank" | "_self"; -}; - -export type MoreChainConfig = { - href: string; - target?: "_blank" | "_self"; - description: string; - networks: MoreChainDefinition[]; -}; - -export type MoreChainDefinition = { - icon: string; - href?: string; - label: string; - name?: string; - description?: string; - target?: "_blank" | "_self"; - showOpenInNewIcon?: boolean; -}; - -export interface MenuEntry { - label: string; - href: string; - target?: string; - order?: number; -} diff --git a/wormhole-connect-loader/tsconfig.cjs.json b/wormhole-connect-loader/tsconfig.cjs.json deleted file mode 100644 index 5dd146c2d..000000000 --- a/wormhole-connect-loader/tsconfig.cjs.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "extends": "./tsconfig.json", - "compilerOptions": { - "target": "es5", - "module": "CommonJS", - "outDir": "./lib/cjs", - }, - "include": [ - "src" - ] -} diff --git a/wormhole-connect-loader/tsconfig.esm.json b/wormhole-connect-loader/tsconfig.esm.json deleted file mode 100644 index d04d4ecc5..000000000 --- a/wormhole-connect-loader/tsconfig.esm.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "extends": "./tsconfig.json", - "compilerOptions": { - "target": "es5", - "module": "esnext", - "outDir": "./lib/esm", - "declarationDir": "./lib/types", - "declaration": true - }, - "include": [ - "src" - ] -} diff --git a/wormhole-connect-loader/tsconfig.json b/wormhole-connect-loader/tsconfig.json deleted file mode 100644 index a4e39ef08..000000000 --- a/wormhole-connect-loader/tsconfig.json +++ /dev/null @@ -1,26 +0,0 @@ -{ - "compilerOptions": { - "target": "es5", - "lib": [ - "dom", - "dom.iterable", - "esnext" - ], - "outDir": "lib", - "allowJs": true, - "skipLibCheck": true, - "esModuleInterop": true, - "allowSyntheticDefaultImports": true, - "strict": true, - "forceConsistentCasingInFileNames": true, - "noFallthroughCasesInSwitch": true, - "module": "esnext", - "moduleResolution": "node", - "resolveJsonModule": true, - "isolatedModules": true, - "jsx": "react-jsx" - }, - "include": [ - "src" - ] -} diff --git a/wormhole-connect.png b/wormhole-connect.png new file mode 100644 index 0000000000000000000000000000000000000000..af0142244a3e651a67a37717ab7b768d451fa434 GIT binary patch literal 234234 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%0Dwk>u)E?H@pt3aW(XU{`rU``Vie(K!L{3 zBaV_{5yy!%WsZ_+Qo-;tMK$c1UVHV-i1n;=%9Bp%5vycY0{(Ubnvj8_QdtcBu9vmm zkz_8wAuLOoOc-NvxNBO2Au98au;@>fabb=VYfHEujDKF=ryrh&~LUaQWPUm%-~>FN3A2< zemPq;RhY^YduwyKB(A8+@a(!dxBZ|htddSY0L?^LGj3uOg*|s=0)Z)rI$Q*KvN~3( zI4?OIoqdJp*)S{pz&}|Z0gOMK>8b9-oIh9@vytJ#WA!CY^!(6ZP}o!zONX%n>9`8+ z{bwudG1B;sQmR9ubtT|7H!ahoaF#mRpqDRz3|SZ>>9PZd))l(RmJeGt^`e0GMqK3& zT)_s|!o>{%Dd0dZUqzfB#2}-wOX^RWEjx3Op@Ll12!ATn=b5al?F?k*4N-AKE(8(B z5nUr(FM0t5V%?W;>q^mbD^tphj}1g?eMPLKo9%Q_5K#&=h-V2^8D3}%_SbegABxrw zENWXZMvsaBiP15vbVYIFr05=GFQkqyMS`Go!;`6!HP$iyg>=b$|FYL|2X^=Pu8_k> zFAiHNNsJX+Qe?PkSCS%`{=W5K#a1YtkYa6EeU5c0C8?zS@WMKl8!Z%}@A_`@0!f%0 zX6hnzviI@^KIDT;=vl1UdO+-uxYbLZHp37B<{d-XN=Lpin5^HTV?`c84v zd&;L-bGQd<>V9mizOe)9|#pCAN{>8S2Bm z6e(mY!!23&35;Z09RkpdTYTyv>AnB5r{~d=*C1#nIAzz!_ziA0O3ex+MluG*+qDWM zAU^>{3)VR2-s@H|A)o0)7(_%T!zI}&R4sJ(vZjQWn#S3aw$ui9xEurFsk5(VRB~FT z=Hq8O<}46@=waia;}^qnb^cN1aV7Z6oq68`m|;IyIZj9pFz^RzIlUJ)l9J~8!fsAh zH6yIz>V&-+0hr**WhFoDJh>ceT^g|?)T+Q-*8;SN+KVI3I@kc|bDIpe%z|gji@8;A zx&ScyJur2o-Daw~0Rxdj?UA0gy&xdL4 zT8p*Q9e)atZ0Oi*P5RU!UD}A0IMd6D1Ot?IK&Mxlu&`7`;p`BQl>GFuQ?FkU)oQLk z3E92v?zqxnu0F1G$m?Lk&d>t+GSG9iP5TeGo%AC1N_3~#1(_bdsGRL~mSMg)aGA}l z6B;8c3aez%UyMytB04at!X7|zJT6)WzVh;y`Pj-@?DhIYOenYA$_1LypTKM`RUp<<4BfVqhWtnmLROlToH#?PHCyD+v#_Lh9@#@cfqk@K7 zkxGo6i)IV-DJj9>ABIG~gx1^X)Vhsg-d^So#55r!drm;At;4VOIWJcHBac{fhe68l z%9j~gqc(MGC2fE+9ET*0S8Vw>wAo;LFA@M{2+(D6fCeaTRF2R*o#1qE4Y^o|y=nPy^v7goFwd*dkXq^M=#%_^>noH8)L8*~TY zSiipyysJ8mptiLL5lMdH6IexGIJCJ$FNw%ccOqvbjLEuFJtw|mAN)I{n!ZTd=rTSO z=8KFqW8+7mE6~f#Ft<_k1sYt#5xoz3#ozQnJ?jGV%U;Qftv9ZM$qNLBb|fGydyz5M z@H}5)spaBp@(a=I3e|WP`?`(Z?8*<^bUVqqpE7RY=yd|@XG2>O2kd`23_0}c&BkLc z#eq&pBXK4&trV^V@g#chFgYSW%8-k5A$EK$rc@kqx06BWXTb;BvB=Wa zg*drd_74nzeB(!Lj72vx(cGj#EG&0_+QC?-k7I44A|nx7&9&VLeR{)qKUJ9Rhu8bu z7kHTI6X=a(%8#tIRuS~hrIOg=rHg})KupL69u$^7l~hGIM(KUyvg<&Gz44FDJU6Rw zH3nb+If_07+d%7#d{})K6q|RXr=!GdJkOm$rEujo9_-KkbQ1}pLb;~&_gMuq0F6Tq zN%cDdjQu(zZl(H-8@+w%={GX2)N>TLZtgGy*wdvjenLbDLDl3rW2)FGQSbIhj7;I8MEVN(pkw+Mj52SvKWwV4?UAvDwS$3SzZZjj~JF?;ix@o(?FN z`%tSVYJmRkbLb_a@QAAZZdR*4oCpx@>B7|S%| zm}rzD5Yc2K^c~1n#oV&J`f-AAJ@f~iXz|cS&z`B=rVZ!ftgVRI%BcCTGPlr6a^4x9 z#biDVEuR8fuJQt0Xl)HwCbE&j(#T~}r zG_jWl-WsfFA8BerremloGtDo?RY8*>>WyNyl9o=l_rcjdWYtw|crxdy5a$lh zc2^HE(c~)B!B*4bpCuasG3-q}Emg-KVpi_NgnuT`o^1xudtd#VXF*(ZrL(QyCwzLf za19)z=K-huhUB8bx$k2OW};k`u05<)u(x;8ScbyX)bEu1Ir(|&H znXrfXvg3SnT)5sfeVi$5LSt@t^ga%Fqi}s@C=wjsY~M?|227Ux^^Q!Ki-kmh^Gd2r z$Ox5oWDIQ7d8}P_`feNm?_k#OdMI=5xndV&sA6jO0X2ha7bMuh&p!%sPmPSQilyi> z-e%{Uq7P^nAww)>Z(3VLV5d?AdLpi{sF{gU>hJX8`MT`>JSykwawSM~^~k_(blDl8 z_P(ik{TVk5i=dK%=|@bxe49=G9(w=m#Pg{Omk0lf2McK<1{-cmpnZQ!3J{w96}F6Z zDNs5)*kQbMbI`P#&+L|PeUC2`7^D(|BcCo-HCk#NSr;u=MN9%>i2TuxJ#nO+Ynxu# zX24}67#Bh%%RO1zc&VlR@E8ZZXva$S6hx5rWBf`n7xE#)`B3V257+x4sR{lEh(~uj z#nu-E9Lbg9Bm@Yu6%I!e*JB40O&nS&O`$vysa)%+hA&wYsf5IBC2!EQ#)}XJDIC9< zN^06+u%`Oy|6}x^Jw&-5Gf6$DhZ$J5AjAk?pa~bEBfLV-_qC`klhgZ!?rTS?VXqP7 zR#bE7-mOLR9v!1?wx^_x>{vzNe`+;X6yQ}-ZHuQzpvanHa@g(%SbR+}Pc=QofHYTi z7qdzBYP1mO6J37J(=r6*$(l z-dcCdX4?XmX<-;~Na zj|`PA;Hh#8t zEChSxeua*MMNe7(+HSIQv082A{?p3hJ)&!QZm1r+{hN#~lMDpRRLJ%&6sO9fZ>Emo zzl@87t5J&R@utW^+iJd?<~L<7feW-oLXEud9fJCb)n&@A@TlaoWfvS`re((+3b z{c|d6UdppCl-d3FXrDEIE9NWT9Fqx~j-KcOU2nEht5tVG1bB|LC_Z<78EgV1!Cc>`gsA>giw9?<&Q{8(wP9Xu04iy$iDiuRk&-7frcOUt;QL z85^$s>2>iLmzBQhlW^{HhOG?TXZ{MoZ6CMX5ae@9auuV0W~U zKC(3qCCjgIXj3EiPah{I2gM24thjDI+REeSTx{>)-Mmx12f|Gow;h^f)*;vV9~KuA zQl3-^I)h4+Sd~-d6UONkFOr?_XIQX8$Z_#i8{akJ;5Iu&gojsJ_l!8mNS1c}?+CUX z8ga5PGL*q+KY8>-jZMqO`zGyTq=vd>tOnA5!pExR(Rfxu)f@l6u|vf`DT}v!sSV~% zadCC=OPgJ%8M}m#lzr&&M^9kT&!gwcm@ly%SvHh49zu1YNj_GUN~q1MzsS%?R(wQV zR=v74bQ-(Xk;Fyq0PF!-hig6qc{bwBJK;BMu=HrS0c;SjTaD|%f!;m_Z{L)QBhn&Z zAJX70%CHoWKA(fbD-h~{cw{Sez=LIvBR*WzKwGEzHP-WB1#wKzAgfL#;$I) zBFM2^Ngc$E`fyhzr*~bAP5um{!3=7EzZ8QF`qvkvsy!N31n2Z0l@nWhaBKal1ju zNhz^059qow8V<>bp`9u`{yfSKJE>zDGqM&ei%m|OM(+eFTS`$z5i7Z*{~F%Ollsa} zOu4Ivh8!sT;D|dK#I)Hho*nF^kIZ81trOHu(T|{mA(*j_p;)n3Tz24rrWcQqD-^eD zlu2&7KXON*z7CU7Ckst)`XEK)P+Id}s_Df*ML6nHxC(CH@#7zDB-s~cCc$hRu2N?Xya?78Am48Y;!ag43=Lk7%&d=tt?faH@-`I|MPl# z9WXVV|ANK0I+ZW@)5ZJkz#`Q1w-qm~ct5|Bn+tk<*Rk0uG$f*CBaMqeLYa69#a{ed zJcZZl7Zci_kQkZW0?Myt12aG#JQxCKC?M>Rl$wr|+^Q9i1IZ%M!`Ca(uZa)uM-huP{HBE5bQ zWVCHoN;&LR|2VEHn{|ZEbqDLvqkfb0=~|%Z=>H??D;$~(yS_)Kq@;8hY=o#NAqa{f zpeV8ciH%gcyBR46A`F8N0Tni2lr)SXARP)wcXy87cl*5W^M3yU?7pt+{LVSQ5PU_H zSH`DxDFB7!W=J{k|8LgUyo__M;#XWDXbA-_lg~HFCsX0F2V<*o^iVX=r5PjxL0*s$ zR7xHE;{22UJn4A~1Fum~Rf55O9Y)^d@vU%f793>H*@bzN%VVV{m3qaVHfv(Br5EgN zVOe5wOTKHQs|DM~R=pET*YxT|H1>g0$~%`7d}1p9Xw(Dq>y{y6{+omA=4X4eU5&u5choRkYTDTkCMXHYPDH zXqI(=@agOr=cKG{UYD*;*J{f*CRuz=~#eqrZ480HKlf{h4>Dq z&=v~a2o^(RJd^8CE5V)@85l@U#ZkH-HMdYlyx3ZSu23#{T!7`zV|6~{g-i8hD%MW( zsvVMfuxY7PTf(f@-Qfd@6Vl{Y@A1KXw!-|POZnnPp4n|!X+2i7{d=&>@A+V>D@~NilO7eu6YvHjrVSXoEtAuu1DB8@<|J%!qu+qeVlyHp= zXat};`QzohATaKk3qr7c*Adx>l@-OYHT7G5)KR(CS-J*ey!|S~Fewx2sdjY`!!?vB zxe?VKOT_rRMVzY^bvEgYM&-77kmln(jeht>$ak6AHit1AdBGrp)v*YTmwLn!`lj~J zz$_dh3L*LMiE>~OlIV5`$X7sS3%q;XQ3Ky5|5{NDe(9;NI;i#!I&^Jb%nY{gz$*w< zmj3(}_Xy#mL!*rMd-uQS-k<>Z123-7&EI(P+1BfDQEIKHefkmXl6zjFx0u-qkC_2W zh!G#JWqFJQn6;(C(g$|uN?WW1_O4%mfA-&{yFKP584%NLByUV}59wpv@-LLXzx6i_ z4C>bGBbeO&Kq4eqY@7(G{3=bZce|b}WW!}#J9R)=+UZ7-@HPenwqZc&*O#yLtcY{7 zE@T-KRV?Dey7zoA!b#t!EY-8XTU4nH5U0o3n#;#QldxMlmSnHanqUX>SbjjI2W#~F?AK{L_9?6~zYM9XfZf^?QSpuLk9Mgv z(Ogn02zZ&R37042r@p2$O3AQj;yt5-g6vaWuLyb_MyQ=uTC^nzJK8f`T8Y|L++ZW@ zNYQmkqCHiM^LI7I==@#bDs^JB0QC{L$T=g1vb?5Q0*LQU4}c-JK`4sY2d6#Zx;W|N zg|rsWG0(e#{8(>HIn6lQR%1h5?yk=MF0Q9e=a&!7Kk6(=N@EFH(c&+8nB(KZ#tw(7 zF6HlRh{i?ayUEu_&OxWkaIoU%D2_(NSO%?{&Ac(^5AK^YsS``KfG zoG>BYXW&&rSX7`41CtB#+IQ}~9-UeV9N_dyz|kvi+@Zr{F^Qs!|Ir|ni4Oo8-|#bF z6j{Xq>ZtMqOfzJRc4nDm>wk~COPpWdJ$jZz1#Xjo^r4%Fi|8#=3@80x%8U*ot}5L2 zx^>&@opxIuHt%WYqEcEQWdAG;_!$PdU+L19GFQy3!>RF~+u}%30l5?y`PfRun`YNW zdct?_If~=$KsXBn(Cc!eSKI15&i+PV5Ul^6Z5Jt)?CsrmUin~eR$8?lm;H}h+0AaE@^{ef6 zx>ykuxR#bTI#f8N@94w;#G5qMoW#vBkKc84tcn(Mzc@!m^e?|n8u<0>3bUYJS!qJ~ zk2q-~@!u1Rz~njaV4!2IZU)dzR$kiNXf*j?9eg=}2D;Tk?F>XEDM*mK0!KlpZ?vf4mzCv;AvWi(9PaBcSR z+W7b*o(;*5!&Z$MEr+SMzE91I-g|$Ys=hz7>d85axMYpE9G1iK+GexDb^MHx-e-S+ zNAm5Dj3jz;gDFnqY@FLNJo*l+yWUxt(z_OI#VrFt>>|qDs&E0aum@qjZ8Bzc40Q=>5aw8h&J6 z4I50XOYi~w?PJ7KCJm6OuZ`nyUqXjTam3c?8+4o#8ucyReK7bQYk+LSHR;1mAb z&YH+?;0446z1DZvCp(n4OU)@qF)Laajy}q}f1%$mH|u_a*Fl|9i3QMHB^e75C}*S& zC78&`hNFtgtvdQZB~9r%ajexG;-WPzry6S)_;~4wP;v|QVJWFyr$3F+x|VSbK4F3# zt}wq<)6d1A156n|-8Y$qrp6WChSN^C4RAKO-J-3| zuOMrKa*I5mSuJeGKFr_QiT7Jl;!mwD%VGIGm;)NDD#dbXe?ZPg>%{wTSJbdXAmV8wQjP+Y?vzI-pd(;^_ML5JFp8EA@IEy(u-%CDi`s7X#; zv>`Ap@-j~lk+=|4d|8RbEf9cPthnr0fuJX^A<{&3efM)v{>p0P$Ps=8m|(BEYfdK? zBo|vhQW*qB>08fG)>?Iv6(q0wuVF@dhW8UUS*T(|+J-PXIcJw+6WZ0+K zrXpMtojA`3v=plZgE=$F4(mHCs!T`g7JJBH$!T3mySt3`bq`6nRUfnMrd!%lo9#1f*{Et%5isM zM(>dd$4a=kN#IPuA4k?Ykdt*n!{sL%DG!OHm)mu7SvvhLYOg#=?=tA;l0DVhPF&u9 z8Q_qi4&6ZBa$-5YcAdK292xXUsHy)Hh4^tF&KIQ4KB*e3xb~$EZU;-54uFdLi1wz4&bN2C z%8up{4!xKO{ItE;tpP;mZm>26tuR;d?7@{@Ca<7sazHp4K9!6Bl*GZ+blrVSP zeo^3D2!=vW^&a@zl-F>pS56@mf>T*r59&} z27)4Gz}ZDt%hhyJ@!&ly8#G%cXKNQ#tjYW!FXW=(u* zcJx`}Ivb&%t^!VvxtBl zg9@hp9L$A{iV7g7U}Cw9VxycQu;Uyr=`WOr$%45CjoF?LA4bEj|HwU7n0+oC+&b%R z$vJ9pj8FFd`K{^(ZwGmpJ6u?vn8=l26``WL$~z!6D)0v5wq5R+to+;|S`w(77kv?5 zzi3=-ysML}EIiY_4at=rk+?4ea}j%{RQ_ve9HG(__6V42^2X)Hy0y+#I^(AgU?I!Z ztG1_Gv$5V2rhmrWt!6;>Q^B3%Qu#T&gQ4>kds4Bvw=K-^)Eq@SjI$|2Q_RY*Hy&C*a<+B)BJi!6 za8V|0kmc}u?|UJXLqD@{fDoLs@`GNqo+EWDYIc_3?!E!rO^c)<0n$ABT zkr!b~|F#C~2457?+CqtHV`P5ct-MyqrMsa4q~h9Dv+)-oOr&6?Ht%oU!S6hkfDPU& z`O``x`sA%QQk@rj0nZAQNwN03O~1kCzb>_f=B{hd-xjzCv)MAG=Th9bAX*`hMtxvp z`1GR2;ref1^7~qg<`v*)+-oGtCea`+IhNgb7Od$1h=&LwJVgk`wU1QgDU~Nv%NReu$Hl2PJw?^dPS;JE>k(@!!bE?m-@z8>l>a3b|KB(dX9+o*Y9T{zPDa zqIss{y&{~4mU{tEWBZsAt$7X)y{h6(VOgjgEytUD(URwHhQ_Ups{7V39rxRQro)}Mmjw)-mmz>pQh5@-GWpT#?9xcH ztloiWW`8es?6oWoWYqzd)`6MZfjHtaD=0?zx>}gI9ZV*Xr2!wf?wYjs^aOrD8KseB z`a<#hW8%&+$IL3-1r`XfNHDmS^516wc+dIzW z?O1jA+uuc$n_RL!+;qbwB4iDd%@on&cGfz^xJy5(;MJ<(Ew^ZOQmpRPw8v!=_*@uk zvgDqIJ0~IaE$t0risgF0*`PY)pGtQK5;XcQ7+pOdu;7bnCZ`Q&R>jyte?{fqOw;&k z==?YN@XyOpIS5t)@&~06T3jZf>-z3iThdu~e$&m7P%irECV8V`V43s5c3A*%;c8?v z3b(+$Dy0FxJ?1m%_}u2qacg2@0FZy5#9Vn?d;GCRD^5j(n7zN+P{0<#CC&iWVa5?v_Uh4cwp0()H<+}mfXg&eO(+E85Qe{174Q--YG;9ejc zJef`BwvjSEjsh_T_< zCz{Hpq4GNO`>1cxogXPGEyVF>!%(@x)pjAzcx!IEkBC=k*4I^UXS`UB=CTovE|%4l z6}lLRXun6oM8k0W4mvL_NI}WU%4o`2xe*{EM&rA(-aSb)fc!p%A&jn|L`T@a=+e8g z;Ak5|X?}x&jinq4umH(n&|T4dX|B0shizC_^!OXJ_EGxBi2GJzo%l4~HU4qB3^sO= z5c`tI2(bUs`qdl@$}A{x-F@H8f}6%7m{M^jN39=kk(=!ISJYCa&F^k*)6fY9Kv$N~ zhD`tcVe-r-US%>`T89b!6}NK7aJdPfqsnNO>0&PS96A-K%zQ1so7%Jv}t? zX>!kBi2R$KB#ZvMyG-qE?NxJeQYbG-F7MDwsR8%ckaWIRd6}F^o~pnx3YyzG~VyOg=Ji_ES5x%O)@CRF~PO3 z3dNPda1V6oLya|>8~N9pVxMY!k8=}_xhneSVbzH$Ejp#6!chhJ?IH#2+F3rS z_juyoHj+^iU3eC&L(g7)Fft6Rvs_1$efu`f_lG*TrH_La(|h#OGjJ73Qv`62>SFi0 z_no0Szn^c1()}m)`kH^|lXVQp(tx+Afnz%rqL-Z8-TrL8gZ*;kEh!cPqa62SMDJxP zED}%={Fu++SH2U%RTCs9tmoFrtE(8!X#CRp)BT~8i9jUaWcT~{WlDI`uExi9+T9nQ zW*P^PGSbG{an{eLP6e1dcT8`LU*8$&+sl{rxP=ziQA?hXiV%SrI}Nbban$FXPMv+` z5h+@ut79JJ0f8V3DKBGErmp=C7$LS7L~eMVlqpJ?x@;E|TylC%i+J`3GlaNTb;CZG z|MHLd;S%1E0lUjaiWdlsPBb9y468>=v2+OESBNIW(^4nJtdg+NFM?UCE$y?sFom0_ zYd?5y;Fac#HH2)+t>?mxamE^jiEHOK-Y_8>%9$_v$PHY|NtIhw87j-HX>u7#up z#4_1Ga8CkvxH1%cDZ#7?guNY7xT1L<1JI{vEic$$={1W6&BNS?dp#!L{P!UHjr&E? zrq#r%)55hT;wmsgH9wrb-Cb9I?l-&<+`vnYTNnJcR!++0G4tpNB-L&8iaYCNoc=0q zohW0mdga*A-+qhYL(l(u$F*to&SEH)}%+hAhzds)g}eqlequ?^#Ckl zE&pSC{TJD$nR5mbUO4kZuq?(Ieg`i%f%S3-P`)wUNLN8Myslc^e^PL`#q)hzyGlb>Z(PgY65Fxi@+~9*;T)KY1^g-QIIa7#T=DYacQ@DXW`JeqSW9KS>G9UkAR% ziEcz69z;u`^Lw#5I`mofvx%%s0P#sXgp0QbSpB6@FO-hk7+nDQstqe*FAqW4-_IX(S|o0i{LC z>cAA4{5VaWCz~C0v`?Bi?eE4yyZNuI*DvO)`fn*>Ctd6<5LuvjN{hab*FnyH%13k=ds6wxd z|KeBV0l0pV7&VKkKg_8A)wW)gd@G0uv;d%D9b67;paH%Fk$h1oR*8|C#pa`}ieNuU z_7uy80})gefA=#^guDY0S_1CHYzYI^(?70cC~fC`GbbM{Lb0%dqwQ~833t!?Rp~MY z#)2LCRUtAQy8D+J$@l)KLZ~}u9wXN16M_EwQlzz;X|cGK?bR54C_t?;cv>M7fr3gh zymm#paz(HUAhI>+xG}cdqmkrds{ zQk<36w(NsX)_c4sj^ssT*9EU^Rt-tAcKiK1_GTq>lfnV`!%T93*Jhv$(?&^0CDTUm zRPHNpRnJ5Ap{}%}9U^PP(N0I^g4)?c)#77Y;iI>$6CaPJI%?K~-nt)kE1L%%9I?ta z?6hrP88cZ^N*{NK66|po3T_OOO-#EZkvDT^DAAqM@gT^ElSFU8rc&aYK&5q_ynKm{y6q~AsOug0OsS({blrA-# zb*H{gg#ej;&gltzgz(yyx7{|~_Y2IAUKt!6Z!i*ho zvjL#XRWo1f%LFSrzwwt~WcDMV+}|9Sx0$M}*OBVafzQl}p1~+-W%{-7d8fIpINr7F z_83a@>6dn{-#-G}X91sYp6=&B(03~NoU{TrKeH0fM6DMuN&+DWN5C2LogdH#a!@;> zgnehL7I}gyJevD+8w8Yt3_{SVrez-6GxG^*+dp>ccZJNiPIsA7Ax9OvAA1_6Hl~JI z?@YB{$@KeX^}sK%4>w#?d)nTrn_37Y+ZR1iJ3Byr`u*h7&U~txqIbYX6)RwoJmC9q zv0RaLseTIRaMo1ncZ&nI8fT7nC;gYQhDakP2Ge&Z+&V0QC?(Zy?+>0H88bgzPl5AO zF}bbcJwI_`axm_#rY5&5=^fsbP}%Lnn6G7LCb*fk ztU3oQ)TR%ancuYCum}8+w-eOPRsyQJ#g!|ZO4o?fmzqVh4|D0PBA| z0d!z-R80B8R=9Ie8{@k1+BFAQa2QsVwc9^+{@wD{o>G&E7!$({lXSqcvls+sO2YLI zcm)I~+csNVD&CcNZ6tKT%bh2O!8OWaylL1JmeHN^En;}V3Ye%spJl}Rcz3)hdxyGg zP_6sKg*4=`4Fb+iFC6h<##3t^TQMy zh_w&2clA#oB~c4?R(xU(tYQX}L9k4`yvHO}kJ%9xZhF{Np$3#-E%NyhoV0Snq&Dd~ zw#`8s;hm&XSu)VzupYx)Q2CHfdQHF092xAPLf{C(Gl%Z*j0yWQJ=do9^ofouEYS-E1OZIP0Xb}Y13p}imKl7jSwHK0ivkAg5V)zsPLFR%0j}&L7?6J@> zuwY$#G@S1x4V>MMb$HCxJkXDzj%AO#xyR`IV<(?}b+vIu-H{7b$6z|Zx@x*9!z_E# z3s#14nfh#M{G!IlX<(GO05F5p_AAqCzUGXQv1+v~L-OX>c0e6mTtyNk=~-cdas@zB13nhSnf;^ZrM!Nov!qZo{n zCm0JV;Z?fQ_RE-lOqgu-g>-qj){~~!=>m3^Eo{4rutAyfo(dM?||eQP}PtK!LY}Z=91}H=O%@$Oal(PtVMt-bQ#8PUmmu+ZsMv zq@eey)grso$33|PXnJ6GIu>?j+fvt43?5Z}QgxEqbBEP!=1~PT$R2n(qYn34pB1l` z0fDr3&9RdSO2?5Pq_kPd=^>}Hjj-LsEK|@SYCh;BHUG5z>o+dh+QY0Z{;!Yy+kFe) zJ*gissy{!j>fUMQymP1gWP|5lTs3eiyuJB~`6ytEOV5FfKGG-W^Yt%ci(Ei@=0bbS z4d7V0&Ql4+e?0h8)NnpM^9@@R)LXUO@=3^|bUl5(qo`7t0q-@wud!$uFcVV|;SsP{ zaCR`7`7J{!0>lk~Y^Zvj;W%zy?b$mi(a!c3aDo|14x?IGC-J$XQn5arK`hi(P@x6; zxu?1W?Q%1r_%q+z#cKZbcaZGK*d|1-&8{?(0oBK0=^4Y@AuTu~hk0@1msLeJHqm4< z%CN&3_|nf2T+3F6UAqV=V-?K9N^B7x(782X!8GG?1pDmUPWW-N_CJ!` zU~?6$!Heo+(LSzLJUYSj(2Ulp_>-Z=()hn=@|YEAS0+thjTUb1U13l3+n)E%t&krgqx0=xmqfcJ!tLe!W%cXIs?{}G*)oO z6;xj9T;H04!B^$;%Fha0CFJZwX5G~`H&&NIR$ZxoKF}xzQH19E@@@hpvr*C|`v<-# z!*Gv{#$;|FRqXJP>s>JML8zJ#IskBq`~80KlFy zWFL5?hUcznJ$DK|9Wp21+4;_~r|5P17z-yK0fjXqpxqJo6+r75V@l-6g=bTJv&@# z?yBHre}-7E?Ksj7*-zNr^umyRdv5f<0CS0&xp)1W@dC>t8duQ`E_Y;O@N`SO^N=DQ zQaTD|n|$Mqj7g^pf4CWa=oNHfPD^_*RI-g^KJ|R`XbhZO-Y!SN%oK`6nZ>`o8a@In z$csE~g)MrH72B1Y7b;%a|_)#l$Mc8u! z+=hlq0&QJux&Y$Ye{Lyhn6$%pBf}pkAd7eFr+~skXz}t1DPJ^8Jv~1Ow(ardqS9Ho zd;Vh=-};8fd;mb}K+JF^fO#H(@EJi1XX#$k_>m)?exU-M;wt>LMJXsHJzTP^qH*7nZ=~ZnT=eJf|kw(XCCrTC1=g-Z7G*#TDu=U+e zn$NFz2>K^2$rt&|gkm!cB_R5A=z%UtCWb@fjn%cDWp}x@8S*jh8hj+UTXd7FkV#Zv zGQ+ZD)H*~`uchpa?p>_&ZNO#Pf#(?rP&}i$#5D#`W$h5a9^*R3^E1>iB)8u3K?a~^ zz}27T?nhm#E~b8g5&Jp*`xBF@7p(AfpS0>+ef#f)jf`#Jv}dG|`JIGcFSL}%2we=) zSxabMYU=Nhm9!z^rP$|XPVg>EI$ZM`@nxr5_JZ>hFKO^)QAs1wZX{~q`aZ2w-1YWx z<VXh?qNgU@d1zhpA)j=uJ%o(jQfH9f@v&h)tBcK*m$1%S@MW@J{;4lx0f>)JguZdsjB#u(NcN&iSab z^lPE=%Bmhyi&sf0#=5(K4pA013&{x?$$nf_Kh(Ob4h7V-~le z3@HDhtjxgkc>C^SU|eG!RPNC%i#0tNNQ=rCxBF{$uys?cnn-?#zN1(`)iD?aFs2bY zVAv^##_y$Xyb8MTh;3LL#IPUySvKoJb$@w@G-!`;kr0-I7fWH25f5sufaYK}l+Mh!K48D|gREdMv8%hz zi_g0;=)~N$DV{a(Xg(n`sCuvLx3hP}n9XRZdBAp43Yc7Z{L$z{*kvBra|Q!=aom4$ z7ihShOKlqZ6_wUBc!iNbJF9e7_$__0`Us;1bmr}j6?a>Gp{ZtGlR#&B3>50ure-`u z@5wW}Wl}?0aHE>{_`29)AIlw=834tV>G z?Wmf~hmt>#_xyVr@V%Ngz__XB<9_V!^&rxC?4x(YIK1nu%s;^Q@BB{qXR2*|#-_o6 zEF{j&^TiwHf#uAT5nF}*FJ8E>I_@3}liX}`cZr3SJE1^Fu{-lxn1%&c!5y$Y09X45 zd4Unsb;MPj|CEE7XbQx%q-u?-+$sfOrjfTn09t(I2ITQ~ib4zWeQ~?}^J#d7_HtRKV};bRuz>9li4A z%#!MNe?^wY8w}f+oMgqN6&llxxE%yxrF%Q~w*hAJvjUZSoNJN!2k1%HV>8(|A*Ith~-Kjv>fysn4Y}Vh!qi=#5{gfyrNm_$(QGo*jD8I<-Ys z>a#fsmY(%(){(3Hv9AjSx`G$t3$!-u!yo(43Cb4LzplA5N*1#k$~nvim!ZS1aW#mz zeFq_FvbC`HaF8YFt6z*uTxxH&XESc^soxh19uU?JMZx%^c2B1||Kh%IvC=NJ-~B4L zT6bSx*`2rlQ^5$eAJ>62dsd2e(OeTY`0sueu%Y`CtRC~T-TbLX$Xkn%rr*q!8&yeXCvo)eq!_@ z%+tn$3!kqfTVIE3V757f;SAK=3%(DEg$%&lo}~kUHvaH};~v=t+|kOaHE>&-fb+Nm zw5c-2duJK`rtOh>>ot>Hz**X=m^?peVg;+6tepVeWR?1kdXk?3sH4woG*j7g# zd=hAMi(RHU7MFn`)h_UaxsP6~9NW7=i+xug3pgCfR~Zk%pFcz z-VDb7^p%|?<9F&vJiN+BfR~#HIs@-v3A1Bp&2`Tz;FP6Hg#`oXe8PI>{ z;wZ-OA1Rty-CwfW4L)EIP(ae*oD{kScO=- z82F2lCDF}t^>+cW0L6hBpv64_b~@1*@B=&l9pCk(!m!m>r)kpiOsJrTiGOk{2?lsKzyOxSC?Qm_2&szUNm(LX6EMFsH%y=Yd`0BSZ*mhgEZb zGTXxhw*Ix@dfxszKMXC)Rle|f%GDV1~c>JM)d=9UMUopG2+poL1y0Q?NcSiM_j4o(o3LoogH?GW;WqkU$BYI=-|J_UNelqkB)f>g>cKkcQVDf4lqa zM2K@l`HAbq=iLVzwB4;UwW(9f-Aeu+-N7e8%D_bQl;O61)!8=CoYbuX@2x^OAdC2oeK_ov8)C%P!_UzAB!LnWrB~#vZP~E?be>fKAHHd@s>-2zI z&6?aVuj<~|MOfEDF+afL0^w?7td3N1EIox-D@658l1VOz+gz7dsKnYYf`FK6qe@(m z`BXahMZ+q&#)~SRwSyl2Q-CBw%XAO^g%yjVB_vwY;3FBA80{WJ{~~BW+4FDUH8?RZ zp1nUea+rx_z@P6I@nB?3U4ebbgGy)MN>55lANkGvNq;-Y_ut<&8DL5^SBxs+N9M>5 z;lF2Mn=4k^X&nI~;{n)kjEilud%W1l1^KFz((eRn4$66Le3dN1h+|(>xPc ze>Z=tdJWP|jpe$*p*yV^(W};A;)T5BA1u1%h|-$5T~Ho>(CD zOs}@-kJsvy*Co9~J+l+Ut(Gu6JqpK|g}s{ijG@3q9>W&K3l^&&lEZ$=L5?<_^^eg2 z>xuTeW(-+j3-_NuBVx+iz@nYR?Ax6M=mr@n&Uu+H;0GUT7)?>EC5>u&U$1(P^$8CI z<2$oFL^oh8kiTf_C&Yd#$TeClBpZnSC|t`PleEZvLX=m+Z%Lw){;kwu{^Nc5)C-g>kkKWq0tR6%l@dhL3%+{H zxJ=MEy)QH#+T2=k`}JKqcEA$dsW(ZWI_!RtN{IDro!etRU>lm({%D=B^1QegTxi_8 zRwv)b#>w4?q2s{jGY+gowYBsIE;G_$M&hj}bj9D}iQ15{O|0&Z`(cU;%`2TuL;R?jGtI%j%(8v4a5O-u7p7F*88U6-Cv3Nd&w+ z08(EalBn}DG(rJ2(8z*gv_kUfA?64MdDxRZU_4mGuI)2^b9wq@L{tut^6|eMz5#5g zZUaB6n*dPIe@)uO7aKa#J!66JB47P3dMYUtN@C=i>3$sg^U$lDBxSow(7^|>i5P8o zl=1fYOMdz`<6mS!0V(*$mhZ=~tx#|~|B$aKG_bvAU%u70(Kn9ZUdne}fbCedP7eC1Db&%c)b9X`o5LnWIXOoA+y0H_o+gAnMl^=D0ls}olwovTOG{Gx z1bKHXE!e}F-WC1{ze44adw|N)80)$WG39^>(7~RnMem>_7YO-O*<<6(I8PSSs#sRM zcFu$3|I+kUX#wvCY65Y9^&vIl9th8hzxlRlC7kO;?Vm{PWkwKW9g{+X zcv>z(f%`~>;NH)8M1{+^NWs1Kx{L;4@!7u}q^tZrOq$-B6J`O@CEbqUN50~Nd4e#& zqQEeO2KmpX>pHF-1VNMR(rFN@Iiz+Vhr%HK>VHWAe>pT9k5hnvHoc;ek{}?(@zATO zN*PoTvgY-C8_8`n+4lz}1_QpV9-0^#V`}G|Y zFyn8)Lb!)!$|c75k3a1$*{B`RR>1Rd~!5u~G)fOYHq} zE9+J#vDwlS74%-UlNbm3LKvB|l7rEgdH_sGPp>;HOa%k)G;~Tn`Nf93CSIKU2qDx~0+#rb!e-~kE`@}NJ=?g)fRbcl5Dn3kL`xXV z|KCG`qq2W+*}lCgc8QSW^cdK0I5_Iy{3)cWCeKz~O<|rAa4L zt=+OraxUcY%-2er*_4XjRv^s^@En&kqR&s!Ht;vLkqo`MJpBA7!xXMPmTlYVP~)*F zeSth)Y`sFDY$gEl@>(E5vZ}#iRf8xdOZyi7Gn6JFenB0|A0K~iLSpo+IraknQ9uYy=Z`Ln`SYKcJn4KAhX_yU9qAY$HS3J6b{#hPpbLf$ZcjQKB0 z_ZxxRNJA%@)(Rf!^?wph8iK|hyx7+t;z{L0fcY&WQRz|nvqvWs@Y_oZ##IJNk2cx{v!Vt>F%rO1P z=T2Kw0yPJvDAGcNV(0YEDGO5M@8WIu#qQ3EfOY>P zqRkaYZF1oj@0z1j3A=WyKR?wfP3)M*oR)u#vL}P5DCo z6o&LQh)II=K52u-WwzTvHnh)LlkQSzTZSq(F+f7wIL=NEsAyoEmN)`CQ9>4fyrc|q z`xe^rg({B28gfBHo?KK;!_7&I4Yx+rJr;!V|3d9kY6kP4VnON$QTU2{TE4glYVJ$l za;afSoQP|~nR-)I`_zGLf!|-9Nk^S7-4qs``;$VR7P{d`EK#_q2)T-;`3142)Lp=D z?71V}_~-X>BIbiAJ2(;EZPeTag$|aUsaNpYmprdr#phh^*o6txC0KHHd68d1Eg#4 zfIpx6cC1>Qy;afsg=D3jLkCAWo?4E*Qteszvo2=hF!=Wh*z-V#k7}FcvwzVS7J%9S zXCE-V^(Ys*AqJ6w|{zq2o4+ z%r!}VDq2dd2$@8+(O{|>R%M`^+}GjX^^hMrIW!b;0v<>TQOM=cfo3;E+XGYUft|1u zrW|FV)~>-NR!puL9CV#CVcd zI8~Sv&!R{7-LBXBhSk!Wwd_jq9vX-`huBhV+%v6~aa}xZhdoi}(68f`g##UC!5AIC zksI$BBy^>FVD{-<*w~-2{e7ZQ)9D3A0`D7b+ox2KfmuSN`l`a81}wZ`Lo1txLOmu6 zv}DJpz=Z9i4B(tN@V=Q$wsDQpfL9-nKDd7dohRZNH<3; z%K9^wI{1D3Vqv{0Z!_gX`UpkH`i55vqEQ@ec=5G)x}fpvr$&=9rl#P00odOSuRBrA z&9}>pM?ZkHd)Y8LhIvZ(oD{^|;rpB6&qD+-6{vd(B#G}eJKmV5shz3k+nuR%Wg=(y zF3mz3b{qUCjt>4NnU0nzhfz4>V?z?>piS*)=vieib~HiKAcT*WX1~&nzTZt;BwClg|{sDJXPNN@{>UtE|ZMaakc_24Bus8s+uQ&jD$P z8CUgOW%0;abh|TEIJ-upNY?S_s9ag@U5%yFE004cUkgh7Ihmec=xB=9-I*r!-F z12}swK2i{IFT6&{r}+cKmk#5jxEsRHB%_Bafxl^@Tpb-&*C=SFyH5|fXGzmzHf*UC z8xW=B#&y#_H_%U5&Mh~kzONTi#f3l?#wI-V)OgRE>ZJotcm+{N%$3C7>_;TA;OD{8rN{#wtilN+y$tr{1C(PTzZ>aE(ywuZ2r9|BtNi3~I9L+SN#? zN|PceodA-k2o?kZK@kK51XAdsH<8|(p@@J;kwl7AL6ig%dWTS@gH-8CQRzhp9ll$i z=RN1V=lkJ|GtQWMuf58(u2r^Y6P(uLKFSlc#Ath^F-GSOq47lK;+>6|A8} zK&q(^vl?1Cx1eI!GppKI!7r!yTL$GFI@V6Hb{Xq#pslBygB(pOzoW=+ja~dKg56Yp zL+LRR#QVkcSw1?WU$ho|3In?u&hD67{nkMKk=Ok!JL%C-jYQ%%+uV;1H>shSojR8`}y&E8m7RHHU4zeMX^Tc08_Z$ z)#AF(@|41eh?z|ANtz1a$Pc$-TZnDblG`U8;>XdqzOja4SW%>=czak#k!QgNr^TRd3dmU?lawzu{@+cDUg6 z?3$MG6K?f67OH?L?iWg8q^vKfK41R_ChbS8T{rBcFTaqGRSv&-ek8fMX#Yu$LBH3% z%~fUYmaOB+hP6nMRygJk0l)^XaZRo#hL=yy*h3(Gz;0%pH_BZiBgJ)r;p1q zC+JG8q-22y4Kv+P{#yRc7B6Nl;S`XzxF-515jkJBMY08=WH33=*2UEaAuTK@XAs`& zIWx`$1QpRlTdjYl<5I9nBlp9a`X8Ye9AJtdDDp9CKWL_36AeUzM6$R)h~XUswo5Dq zjsjpF8ehw|M9M~x=^Q6r$30jg&znxzMybnAyvfNRf>gED};vN=C*J6z`-;Ft+ z?DH^?=*@~aOi;$8tMIcX837;bo2!ej7>lbXeicN%Wzr3qH<}M4`Hr>|rQIzjYUix! zR-!|r`~sKKt64=l(E^R$YY!RLgx^hAzf958iyO{}=}C5pjP#<2yFz4#ZIrXhFQ^Qh zUCF(ixt85r%l6$Qg>_9MBF3@+w3<|@Cm*!f@+0Fcp189nXb{AFD{X)JZgaVjP^lwm zH-GhLGS94U%MKJt~d>kFI@`X&5Qi|^!q$4OWJ-t+hLB(efnF);7tK@n}F(HCkp zDJS^6lJw=EZp9dSj`pwLj7f!6Z|Dt2N1=w|R-UdU^Jl5Y>V*PBgWcg``OH*`%v6_Y z<=#zm{??u5ofHpMvV&jBJ_Fs{r({|ls_9H$U3DLoAH4kNt ztTROS<_s-7i@i5^oSs!mFR(X_*iT1F`OP!2T8{`)jZM5?B(owbLv%x1mSfD#u+=@T zp&#(fzUdFR;j0gMP!qY9eY{>*{n%lcoHmom7A=++YG`beZm5?}Q;7K+h!%R!IV%y$WvB6#DYtBne6CaYJ1{$E|3J2OOU*0z=?R>u0HZ( zUFtew6Fj*0U9lI{Lbbgjo}o)r#qqE)G9`C0mSD?yT9WT4(%j?>|oL2UMxLXp&I8A&&78Ly=wOG%9Pj4_R=sPtY7TqMrZgcwNR+C za!nPhElg38!6Yj7qCgGwD_f=;mco|l9!eT?4vpSRbTXvfeTuCtsee#rM`Q!)WWX#_42MWJ zijZz-PS&bDg&(S+OS2oGW+13qbW8UsaUmo)Mn5bLA=8_V(0jlJ&7rjn>os!$MeSMl zb(-0|x+Fe?HKD{lMq9P%RXUWLo<0dHK7mJ6DotMEI2oYUL@zMF%s^3wE$m`0;eiy8 z(D!{h!oB-pGh7rZ=0-t=$>Waz|_xjGCS=2EZ(@mZ4>UAD<--8tu z$@)+c)LGFX_W*?d$RI)z|4PMisS)Icx}%0(2qSH#l3DdCPv~Bd{u*EVc~=ZPr<~sG z=1w(igW*{$oOaqTaZ|f-9dpo1PRsAN1N8_7(r`}gNw1!_X z1ETYX8JXn8d=6BP;7(+r;<;$B^=%@Y%^==?jYR& z675Ly4G>=JbiOm_VG59*k1jLbA&BqmoT~4?o>3s)9KDv^->)C04I@q5K*Vyx6e3$_ zVPvz(cAOc@l=v>~_t<4f?J>V7DVq+a5N;(xT8;gPkI86K`Xf2v@OvP9V#5tg3k`8= z2wtjZyzrSA+8>$1H<-$$2REf-AkAEs^lPEexaC8$YVOGtB{i7Tl+*VG=CJ3-^WB4+ zZeNc!jZhD29teI^T1ao?%P#Gw9G<@qhE^?(^{WloC)N8St>a$4KIvPtpfo}JjcRsZ>v7R^@Nwpn|z0f|;9 zO!+}^Xgr*D@u!jH9!}ehu4!!FmO=+MoN)I939i*+TTkkIzXiDr%T$JWajzi#bFsgLAP4t9 zlz%O@*%33so}AIf<*=TtX9ulw9L9p6WO)rNy>SEMg5e9bUYwaOzteLwf~Ype&df18FY z+(UHQ4^H_aJ9{g!TfT5CVW2`9PHl4PmJF3`XV06qF3qG zj<`j~@R~U?Zz94KS}X1q0%RReSj7BtB=qM#Lv}avcxnVyXhTFvgK>EJlQnzgtnZ3f z10h)bdvl9d?INmsXa)LadjNAw(5q|`>9l2668C`E*2hySf*#a=o=oENkJT{_YTT;e zJih&}lHToLQ3`Nk4-Ac6`=MQ88pb7{S7Hk05(r%ykD7#kwb-J~v~^eRzx}S0rO|eA zd^=NxcDqTJ`@Rk^mQSHIdxH*@;CvJEn2;sNO}s&Pd^??Mu-ssA_S25SNJ!|5)YU~r zC9(}TRdDNvPbq%ld~?uGexcB2HnZ!fdB!#ZStxYo%Tw@_DbGZyv{?F({zFS=Urt%z~xoD*IkP2rO zA}dOY6znvy0^<~EIBtuJxu9CU`KXsEDPQjr{6+4-kQc$t#AP?tm0c|GuhNr4$s8Kq z4N$3U(VxJR0kv@276SnrP}Ft(%isCa1Z_f{LF$yNK81u|uBhZEu&`PkJap4gPD4J9 z6GeRohQWULK|iFRQNu3$m6;>9iGC21W5jX)U6VM)6(y&va2Q63OuepQPY1J))c#no z1;#zZRx94m5evuS;k2iN2}-nKqzNGJpcWvw@?&xYNZ(k!(CkVBygNGmh7r+NO#qlh z9PoTo3QhdieVVqNM|~KD1|2ofvZBb>W{PHF?m<@7Jd}r06Ftj67hge+F2i5R>w-9+ z#YD^?(V~T)sz5lNEnMNqE7OKis6O+3)|w7Sike%hqMd_Zb3eT&d`w5gsWq>qwyQ6_ zdT{!3O{9N@zrmGrSx-GV*{d$jk+M@)(b#Ir31>ummK!SmWF+!rGg&0+K#{GsbrCE> zD6xEW?#IvKx8%s;p!UAUXs&tE;At~Wi=;3T$R0*%GTutLcY_Y5V@+pRC?0@;yc0{H zR8-Rus!Mz)_AVhRk@JCXy{{-;4TtojUNCm1K(gIX)^sqbXox!6jF#b#JB@u8UrvQP zp7stYH*G07kBY2!1+axxubHZ!a+#?Qcc%pKsC->y#gRBL5ZNC%WGJcnaeU+%kmpEW zM1qOU2=(OJNWzxdg&NiaLgT{%g9>#er*`z~-r~ZUX&K77<1jr|=~Uilo$bh<+nnxAJ2Is9e>(VC{`!yE z^b1jc{2p!p-es;n?rR0&yL7_9cVxzjk~A((L>z6{j_|Qr6C=&u3pjlf}7i%vgjS^RWH7N#^E+m;ir`M<>IwYZr9Z2ULN}Jsgk& z<2(bZ3(2fqOx7y2%2A~bLuY^9L+1eKMq+zK5sX;>-Z1_EJzxB(R+gSn7cwT{9rouu zZ7b@;sdK*oP`2=5>lEjH=3@k$`f)l$1YeRDC0W(MVFDN@gjwm597x4bryaZI^5#6Iz*pP{5v#{K#a zCT9#J{QfzcWA|ryc@biCG9uFq=5zxz-Op%f`05iUn6zZ{e|=R*9&20 zz?-Jjflu`sf)*b9xg9FHcCw<->Y=S&gO&&jmEvXuloYw3K52x_FDP;mHy>3TLD}U& zk$UZmy&N(!E}2UhD32 zKy5#&s2>=~!>iGEF|<$;!1-0Rvtc@EKp0&G3#QywzVfy$yUC@VSBlNgprow*Qfie1tQ*(xUip2rUH9 z+%bb}+@=AGbaGuBOueK>MSQ-@ep~YwQHj=?Xp0AeBE5N0#Uk|MDS!@=j4+LOj6+bw zG-Nf*IXl8ljEf2_R{ZD6Eh&iq*9c}i?UvNWC+J+55BmW31A~f(Q zg&|Nff}b{C%lF=5M@h9DltgRCZtltqWKAFO+yHg>qDn^<${%PoVsQO;h+Ke2OKySr z;9I*>!>9#O(p)E_?;S#k!bYwhGB%u5gQby<@TyRf-h{3Q`Mkuu7E4CiH4_0Y?sE9c z4^wAf!CyM-qR&8LtQMx>zvv!pUmQBI5Mns47Wtc5sS2O1^3(hG<{s(M!6 zdcaqFkypo&C8JD}gh_4R;O{;;<=*7b?JFof=1(EhXBYaO-oTr`--SDQ9yL60s;ZU~ z1&UkC@NZNcUU0@Dx6 zNO?kRsFq4rl%636a=PGxKqwW$IE@O2s|^No+)#K4Qa44qa3L!M=O15ttC2z`7pz&euzTB73Q|s^8Dj#Qv*4%X(QYqswd-36H(>suN zJe6J1-SnZ`f^V?f`j6$0o?@`V8VJ@+eeLJ!!X*AAcz^uXuQe0O&oYQ>-h z_k!5!Gp6al77qAaGqTGKWiyxk*(V^lz*Zn&?GH1XF0f>Gkll zNiW>pc>SFtJ(5|bOad0`B8H9G59j~kWF*qB{YN?FGPY^X(8E5Sfo8Yr5EN(`V5$~& zHpH(jH1HLqhsL`2595Arbs1G!2q~Br*03L(dDQx0hO828frP3kiC&0wV`=;m2CQ80Oa+4- z|E{Qt4tvL?$3XaaDVFiFt*o-?rW}HW4)(jU(HXS#COui&yKOM|vOlW zOClHM?*q|9c*5&Mc%b*~e|#CQSBv{4P)9n0>Q5JdNh ztX$)e7EbF34MZcv;e&6b+e_}7s2c#BkaW&Rxt!@$roHyiV#ANh7uv83Q+pbQZ&-YL z+4q`VhY3!4WsO38IXC{@*IUVRPcKQuZ8 z^}eGdgz@ODoxScC_HuVH;QX2FJ^JGkAacfPzFzpL{vQikWkt!1LVZAZnK3F{LssY* z9n9=7vJalM>M4eSEIu32LMt0huX5q3V#)p62oX9MJfPYHq&@*O{Unp=`!SHK&zMX{ zd$vm*n9hov)m2CP)6w2&P^T%PgGryYaz%bWqyJr&BmoOi^>$t#^jqa|n!C?%{O-?( z^u%oMnX@&D{~N;>zWd_EM6-6W(h&?&QVkISj;aAyrA*R5%9?QneTgMN?dcKoYN2JgWgjV)th(h1U9U_FJM)& z$N>u6E6>(Ceev0isLH84Qvjh{ZbOZJ5mk1m&MaA+ZVcecCdgsG$f)g5z1ls;Ec^a+ z{&QrM#QhALZ`4S{=mNN(9s> zw(YvO`?Y^h^c_go@XYZ8!I|SkAeP3~#zROM)LttfSn4v?rs%LK5$HSkc$9ZR+aQ>N z|AiEA&m$J)sh97I8wL0^Rvf8u*Xw|Z(r+LIb>@!|F9)%PzK~zF^hjSTgctT41k$Af z5)#LYpOR55MuV1gcOJub*NCd3KO1Orf2E_p6@>tH^ipI;L4phXCseC4HGNmS71#nM zZiUl8Mxi=rpwiU5*x~+E+n(@zn`V?n$#!1R^}hDRDm@Hg03f|b4%J9)>}x+dSY_4X zmEQp(4z8HF$By`b+m2TEc-#AoG*!-fenE=g%6Q11i;2Uo6+rA^(p7 zK6R+p2jRs#s5s_}*;bHuG|-SwR2-J2KuKdqqP{M57!^DPBvI_=MF32!Kr0H+mpFcm zvKQK}^bgLV`W+GnAw9Uc5_d&5F?$&fJU#g=RNLP1tRV9A7PFk)*TuX7#HLQgz(s+C zS7Hw-Pluks0x;XBepoS|+tQMtKi2!BqvNz}C_sw*#-?biL3p%hL^X!YdaHtlTc9h4 ztaboW?=-orLhB|L3$R5&%)QF;7WNFh?0{*5wB@xsnk$nO_rYP0M?``|H(Dz2*cCY1hPG7e7!( zAq*e@#5on-vTYebg^;S;MHdMRnbw@s8BVxyAHNy*mc=sl!F?YY*=?tb3D)NCll%-{ z3Q0MAyT^u7&CVeIp?O_T{{=j;w7`A&+A}spe`BBw z|4iGkAY?>|yjRBvyoK?rp{A4{Y2}vIp^~)F_9(OXo1Qze+?|20r)#@@bg4Z zG~F!Hod(fHg(!UlOblbJByU|1#T#n zoZGKOKCvVwcZVRaoc1O1r_X!pc_{6lZ&{y7NScD?xT3^Jv9^ksKPloI=pW6LE15;Y zliJw%Nw3bM=-THpL`m*5$W5wYZJR*mk4{>rr_}mJ3RKZ|kS)HxFO9G}R>@JOIU&AK zQ{$G=n>2FW+3Dnt3elEze!e!>oh>>XIcpXfaM}s0S0Vn0lJ`i#4=Z?;%V}PVp@S7A zGL@%r_lj5%^3$;<{io5C#91a!no~zB%i1QlKD$>xC`iD-);z4vA?b?@g1t%szr%Xx zzZ70rgNB2pCQAdMx5UH^i0KE-xrelG0@u}I$(vLh9+q8D7q1b%t!%7!mi8SbTS8$L zDkydcMTbCMW<@pbf>q21SGgBD@C@CD}S* z@l?162A|HO3XLEnu|jr+6f$e6sU5CDC6R2e4IwSQ2XarC`~}AYIJqA$Y&650wbgMQ z0jcaVIcK|lyXx%Rk|fRl@$WZg*v{?srK+$AvcKk^@(TNNWUYA`l} z)Y*B0g;ZS+msz>I#49lLDz^%9es5;p=J?ippPetX;`%ud+U>d zj=@4gh15XsgLV6l{7+jFDxgc_+bdWJKXxxL4iO+*vdN!R>-v+XrBz&X1u2t*M2Gmb zS>rH45mpibP(=eIL*AN4wYrh-&t|R9g?5!AWkcyfWiLZphNgXM?O0?i??G{<`SM6x6ciYy*l#G>?u0yUe( zDjr707y;dC+K1w*ps4dGBM@{-_R4A%>nmpZS>&PzofJ2;ao^MIP&^jsvqy0^gAyLGiIBv)CfukBQbAmw6NH+FiMuz{;MsiR{|E6u-nw)HKaVL(-hyKjMMXG6%f zRfTo`hG`ujGqj}r>$gtJWiRF>KS36HBhW2hlN29&DC0^)W-$r1pjYrB+!*7#s;pY< z4G-l!r~(Gdjw&nR?zjkj!U$dU#+#r)(ER)YloPv6F>>35wX*zAw2qjHZVdMHv?d9J z)RoUram?k%D_JPx@qwYWS?*X|RguHUq&j@P6 z&c5R!%0@C5r_u)RnHyHUsiCpen#=193W^_;eFd0T+B}T4RY;}4atm?4sgX;nTq~)lu;7`z8$K^@^t=cm<+f9dhdyF>b(!!n z@s4?O}TRdg+RxKX%ui{&lvv=B&;Z9f%7Qm(>Ui)3F=njCYEf@!Pn(k zeo!2`{1yF*N1)3P)CncW6K;vAqZPMTDpk>s#)zRq$bKpgQ~zxlMOT$Mfl$UK>IGGawWP+#vhK-j{(%q6vxNmvhWqp&3 z_MgBUxrMArsrMqPN!@bPNd#1I5ps+hsym~Z0@Jh`iu2oTlC*=_yo=RAYCnK>ukAP~ z%fkF}>smWHU|9{R((yMCU2h|va^W0{Sf7fh8&CI$=gUXCj9Ipv#teO=b@UOz$2`SJ ze3vBp$7bZOSHx_HB#K{c32^ z_kXI!I&1!n6=BezC4XRUxaUQ^?4kn1UiDQfgxl}<-<6kNX>#wSYdH?#~5s&JXCDP90q`!k~vK@aJl&Rv+9775LV_p zV~nehHD!)s-Qac$TLZZY#f}FapXK0)o@5!1-)(Vt!pddcTb>iUt_QCid%VAq%%bvF z#>RYxDZ`EDJv?|cmY5mU*d%@ za08iu&S8A6X8pYP$Bo$$6F^b9q{@6~V7|L#-M8}fHoaGXO(920PC@sZvP9GUSGqX7*3ge4w=wZu=vwXo1Ht0b;vz5i?Pt**Og$mIe|4(g?jO|>)I!6h zC>_siyjW2!mLU8XP|G|u2>;-p3P-*x%-isQzof#gq)kxa!~@|fBBWhvFHsEGqof#k zZ%nGcqq1cCd@NaQX$(KLTomGRM1^qDH2&1Z=0s!-2!@cTHlVjL*vqCiE7)g;9m84% zqjnf`IMCA|N6DN`93DKs31Qt zIbgrbhBt6G!;Q2(|K&aL>6m-_Sel&8Pe5{hc7*E|ywy`15EZ{GMinO=L-p^ZH(Y+^ z_4hBRzvcB=?Em>W+HiJxw0dn+NX5i6^7|ju&=~v|f@P~baj|-F59n#}X15Im0BPec zywHpW2eghq1TmO6YTr;&1ryDuAd}yEfTphqSr^CH%Ssa7^Ph>Aa&lPe&CjFU1FB^L zt)!Jc#*taeO(8&giGgPy5YVbtJ%KpHRxgQilrUO=v%z(<>=b)+8V15L)0~~1!h}Lq zU$=#k?H!FhXMdQ=ZS~1ppVS5P^2+V2d2C;D@SE?L5Gtfdw z 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

tN(NsHRl!uKTc@q-b=z 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

|*( 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 z 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 aD;rWcg_*VIA?cnHxG|P?XBekFe*Z5FI1+LI literal 0 HcmV?d00001 diff --git a/wormhole-connect/.gitignore b/wormhole-connect/.gitignore index 5dfdc7e37..460bf706f 100644 --- a/wormhole-connect/.gitignore +++ b/wormhole-connect/.gitignore @@ -14,6 +14,7 @@ # production /build dist +lib # misc .DS_Store diff --git a/wormhole-connect/README.md b/wormhole-connect/README.md deleted file mode 100644 index 2cbdfad3b..000000000 --- a/wormhole-connect/README.md +++ /dev/null @@ -1,84 +0,0 @@ -# Wormhole Connect - -Integration does not get easier than this. Wormhole Connect is an easy seamless experience that will help to bring all the functionality of the Wormhole Token Bridge right into your application. - -## Customizer - -Customize and integrate via our no-code solution: https://connect-in-style.wormhole.com/ - -## Integration instructions - -1. (optional) Create a JSON config with customized values: - -```ts -{ - // accepted values for testnet: - // ["goerli", "mumbai", "bsc", "fuji", "fantom", "alfajores", "moonbasealpha", "solana", "sui", "aptos", "sei", "arbitrumgoerli", "optimismgoerli", "basegoerli"] - // accepted values for mainnet: - // ["ethereum", "bsc", "polygon", "avalanche", "fantom", "celo", "moonbeam", "solana", "sui", "aptos", "arbitrum", "optimism", "base"] - "networks": ["goerli", "mumbai"], - // accepted values: "ETH", "WETH", "USDC", "MATIC", "WMATIC", "BNB", "WBNB", "AVAX", "WAVAX", "FTM", "WFTM", "CELO - "tokens": ["ETH", "WETH", "MATIC", "WMATIC"], - // accepted values: "light", "dark" or custom (future) - "theme": "light" -} -``` - -> See the full config for supported chains [here](https://github.com/wormhole-foundation/wormhole-connect/tree/development/wormhole-connect/src/config) - -2. Add a script and link tag - -```html - - - - -``` - -3. Embed it in your application - -This is where your widget will appear. Specify an id of `wormhole-connect` and pass it the stringified json config to customize. - -```jsx -// root element with id -

-// with customization -
-// stringify JSON config -
-``` - -### React Applications - -For React applications, you must add the script tags after the dom has been rendered: - -```ts -class WormholeConnect extends React.Component { - componentDidMount() { - const link = document.createElement('link'); - link.src = - 'https://wormhole-foundation.github.io/wormhole-connect/main.ba17183d.css'; - link.async = true; - - const script1 = document.createElement('script'); - script1.src = - 'https://wormhole-foundation.github.io/wormhole-connect/718.06852233.chunk.js'; - script1.async = true; - - const script2 = document.createElement('script'); - script2.src = - 'https://wormhole-foundation.github.io/wormhole-connect/main.js'; - script2.async = true; - - document.body.appendChild(link); - document.body.appendChild(script1); - document.body.appendChild(script2); - } - - render() { - return
; - } -} -``` diff --git a/wormhole-connect/index.html b/wormhole-connect/index.html index 7b5b28dad..07a0c896e 100644 --- a/wormhole-connect/index.html +++ b/wormhole-connect/index.html @@ -22,11 +22,11 @@ font-family: Arial, Helvetica, sans-serif; } - +

Demo App

-
+
diff --git a/wormhole-connect/package.json b/wormhole-connect/package.json index 59c57c22f..48083d6ab 100644 --- a/wormhole-connect/package.json +++ b/wormhole-connect/package.json @@ -1,11 +1,20 @@ { - "name": "@wormhole-foundation/wormhole-connect-app", + "name": "@wormhole-foundation/wormhole-connect", "version": "0.0.1-beta.0", - "private": true, - "main": "dist/main.js", - "publishConfig": { - "access": "restricted" + "main": "./lib/index.js", + "module": "./lib/index.mjs", + "types": "./lib/index.d.ts", + "exports": { + ".": { + "require": "./lib/index.js", + "import": "./lib/index.mjs", + "types": "./lib/index.d.ts" + } }, + "files": [ + "lib", + "dist" + ], "dependencies": { "@certusone/wormhole-sdk": "^0.10.10", "@cosmjs/cosmwasm-stargate": "^0.31.3", @@ -39,18 +48,22 @@ "material-ui-popup-state": "^5.0.4", "os-browserify": "^0.3.0", "postcss": "^8.4.21", + "react": "^18.2.0", + "react-dom": "^18.2.0", "react-redux": "^8.0.5", "tss-react": "^4.5.2", "use-debounce": "^9.0.4", - "web-vitals": "^2.1.4", - "@wormhole-foundation/wormhole-connect-sdk": "0.1.0-beta.0" + "web-vitals": "^2.1.4" }, "scripts": { + "start": "vite", + "build": "npm run build:lib; npm run build:hosted; npm run build:netlify", + "build:lib": "NODE_ENV=production NODE_OPTIONS=--max-old-space-size=8192 vite build", + "build:hosted": "VITE_BUILD_HOSTED=1 NODE_ENV=production NODE_OPTIONS=--max-old-space-size=8192 vite build", + "build:netlify": "VITE_BUILD_NETLIFY=1 NODE_ENV=production NODE_OPTIONS=--max-old-space-size=8192 vite build", "lint": "scripts/lint.sh", "lint:ci": "scripts/lint_ci.sh", "prettier": "prettier --write ./src", - "start": "vite", - "build": "NODE_ENV=production NODE_OPTIONS=--max-old-space-size=6144 vite build", "analyze": "NODE_ENV=production NODE_OPTIONS=--max-old-space-size=6144 vite-bundle-visualizer", "test": "jest ./tests/*.test.ts --detectOpenHandles", "checksdn": "npx tsx scripts/ofac/checkSdnListForUpdates.ts" @@ -79,7 +92,7 @@ "@babel/plugin-proposal-private-property-in-object": "^7.21.11", "@babel/preset-env": "^7.20.2", "@types/jest": "^27.5.2", - "@types/node": "^16.18.11", + "@types/node": "^20", "@types/node-fetch": "^2.6.3", "@types/react": "^18.0.26", "@types/react-dom": "^18.0.10", @@ -92,13 +105,12 @@ "eslint": "^8.31.0", "eslint-config-prettier": "^8.6.0", "jest": "^29.5.0", - "react": "^18.2.0", - "react-dom": "^18.2.0", "ts-jest": "^29.1.1", "typescript": "^5.3.3", "vite": "^5.0.8", "vite-bundle-visualizer": "^0.11.0", "vite-plugin-checker": "^0.6.2", + "vite-plugin-dts": "^3.7.3", "vite-plugin-node-polyfills": "^0.17.0" }, "peerDependencies": { diff --git a/wormhole-connect/src/App.test.tsx b/wormhole-connect/src/App.test.tsx deleted file mode 100644 index 2a68616d9..000000000 --- a/wormhole-connect/src/App.test.tsx +++ /dev/null @@ -1,9 +0,0 @@ -import React from 'react'; -import { render, screen } from '@testing-library/react'; -import App from './App'; - -test('renders learn react link', () => { - render(); - const linkElement = screen.getByText(/learn react/i); - expect(linkElement).toBeInTheDocument(); -}); diff --git a/wormhole-connect/src/App.tsx b/wormhole-connect/src/App.tsx deleted file mode 100644 index 4b7123b6e..000000000 --- a/wormhole-connect/src/App.tsx +++ /dev/null @@ -1,85 +0,0 @@ -import * as React from 'react'; -import { Provider } from 'react-redux'; -import ScopedCssBaseline from '@mui/material/ScopedCssBaseline'; -import { ThemeProvider, createTheme } from '@mui/material/styles'; -// import Box from '@mui/material/Box'; -import { PaletteMode } from '@mui/material'; -// import IconButton from '@mui/material/IconButton'; -// import Brightness4Icon from '@mui/icons-material/Brightness4'; -// import Brightness7Icon from '@mui/icons-material/Brightness7'; -import './App.css'; -import { store } from './store'; -import AppRouter from './AppRouter'; -import { getDesignTokens } from './theme'; -import { THEME_MODE } from './config'; -import BackgroundImage from './components/Background/BackgroundImage'; -import ErrorBoundary from './components/ErrorBoundary'; - -const ColorModeContext = React.createContext({ - toggleColorMode: () => { - /* noop TODO ??? what is this for */ - }, -}); - -function App() { - const [mode, setMode] = React.useState(THEME_MODE); - const colorMode = React.useMemo( - () => ({ - // The dark mode switch would invoke this method - toggleColorMode: () => { - setMode((prevMode: PaletteMode) => - prevMode === 'light' ? 'dark' : 'light', - ); - }, - }), - [], - ); - // Update the theme only if the mode changes - const theme = React.useMemo(() => createTheme(getDesignTokens(mode)), [mode]); - - return ( - - - - - - - - - - - - - - ); -} - -export default function ToggleColorMode() { - const [mode, setMode] = React.useState<'light' | 'dark'>('light'); - const colorMode = React.useMemo( - () => ({ - toggleColorMode: () => { - setMode((prevMode) => (prevMode === 'light' ? 'dark' : 'light')); - }, - }), - [], - ); - - const theme = React.useMemo( - () => - createTheme({ - palette: { - mode, - }, - }), - [mode], - ); - - return ( - - - - - - ); -} diff --git a/wormhole-connect/src/WormholeConnect.tsx b/wormhole-connect/src/WormholeConnect.tsx new file mode 100644 index 000000000..8a56e7486 --- /dev/null +++ b/wormhole-connect/src/WormholeConnect.tsx @@ -0,0 +1,53 @@ +import * as React from 'react'; +import { Provider } from 'react-redux'; +import ScopedCssBaseline from '@mui/material/ScopedCssBaseline'; +import { ThemeProvider, createTheme } from '@mui/material/styles'; +import './App.css'; +import { store } from './store'; +import AppRouter from './AppRouter'; +import { getDesignTokens, CustomTheme, dark } from './theme'; +import BackgroundImage from './components/Background/BackgroundImage'; +import ErrorBoundary from './components/ErrorBoundary'; +import { WormholeConnectConfig } from './config/types'; +import { setConfig } from './config'; + +export interface WormholeConnectProps { + // theme can be updated at any time to change the colors of Connect + theme?: CustomTheme; + // config is only used once, when Connect first mounts, to initialize the global config + config?: WormholeConnectConfig; +} + +export default function WormholeConnect({ + config, + theme, +}: WormholeConnectProps) { + // We update the global config once when WormholeConnect is first mounted, if a custom + // config was provided. + // + // We don't allow config changes afterwards because they could lead to lots of + // broken and undesired behavior. + React.useEffect(() => { + if (config) setConfig(config); + }, []); + + // Handle theme changes at any time + const muiTheme = React.useMemo( + () => createTheme(getDesignTokens(theme ?? dark)), + [theme], + ); + + return ( + + + + + + + + + + + + ); +} diff --git a/wormhole-connect/src/components/Background/BackgroundImage.tsx b/wormhole-connect/src/components/Background/BackgroundImage.tsx index bd3d38c6d..7e6a47933 100644 --- a/wormhole-connect/src/components/Background/BackgroundImage.tsx +++ b/wormhole-connect/src/components/Background/BackgroundImage.tsx @@ -2,7 +2,6 @@ import React from 'react'; import { makeStyles } from 'tss-react/mui'; import { OPACITY } from '../../utils/style'; -import { THEME } from 'config'; const colors = { bg: '#030712', @@ -118,21 +117,8 @@ type Props = { function Background({ children }: Props) { const { classes } = useStyles(); - return THEME.background.default === 'wormhole' ? ( -
-
- {children} -
-
-
-
-
-
-
-
- ) : ( -
{children}
- ); + // TODO remove this component + return
{children}
; } export default Background; diff --git a/wormhole-connect/src/components/ChainsModal.tsx b/wormhole-connect/src/components/ChainsModal.tsx index 6934e6142..fcc69bb07 100644 --- a/wormhole-connect/src/components/ChainsModal.tsx +++ b/wormhole-connect/src/components/ChainsModal.tsx @@ -5,7 +5,7 @@ import { ChainConfig, ChainName, } from '@wormhole-foundation/wormhole-connect-sdk'; -import { CHAINS_ARR, CHAINS, MORE_NETWORKS } from 'config'; +import config from 'config'; import { CENTER, joinClass } from 'utils/style'; import Header from './Header'; @@ -87,7 +87,7 @@ function ChainsModal(props: Props) { const { classes } = useStyles(); const theme: any = useTheme(); - const chains = props.chains || CHAINS_ARR; + const chains = props.chains || config.chainsArr; const [search, setSearch] = useState(); const handleExtraNetwork = ( href: string, @@ -97,7 +97,7 @@ function ChainsModal(props: Props) { if (href) { props.onMoreNetworkSelect?.(href, chainName, target); } else { - props.onMoreNetworkSelect?.(MORE_NETWORKS!.href, chainName, target); + props.onMoreNetworkSelect?.(config.moreNetworks!.href, chainName, target); } }; const supportedChains = useMemo(() => { @@ -119,7 +119,7 @@ function ChainsModal(props: Props) { const showChain = (chain: ChainName) => { if (chain === 'wormchain') return false; if (!search) return true; - const chainConfig = CHAINS[chain]!; + const chainConfig = config.chains[chain]!; const name = chainConfig.displayName.toLowerCase(); return name.includes(search); }; @@ -138,7 +138,7 @@ function ChainsModal(props: Props) { 6 ? 650 : 500} + width={config.chainsArr.length > 6 ? 650 : 500} onClose={handleClose} >
@@ -172,7 +172,7 @@ function ChainsModal(props: Props) { ) ); })} - {MORE_NETWORKS?.networks.map((chain, i) => { + {config.moreNetworks?.networks.map((chain, i) => { return (
handleExtraNetwork( - chain.href || MORE_NETWORKS!.href, + chain.href || config.moreNetworks!.href, chain.name || chain.label.toLocaleLowerCase().split(' ').join('_'), - chain.target || MORE_NETWORKS?.target, + chain.target || config.moreNetworks?.target, ) } > @@ -195,7 +195,7 @@ function ChainsModal(props: Props) { height={48} showOpenInNewIcon={chain.showOpenInNewIcon} description={ - chain.description || MORE_NETWORKS?.description + chain.description || config.moreNetworks?.description } />
{chain.label}
diff --git a/wormhole-connect/src/components/ConnectWallet.tsx b/wormhole-connect/src/components/ConnectWallet.tsx index ac1e7b31e..0931fdf71 100644 --- a/wormhole-connect/src/components/ConnectWallet.tsx +++ b/wormhole-connect/src/components/ConnectWallet.tsx @@ -15,7 +15,7 @@ import WalletIcon from 'icons/Wallet'; import WalletIcons from 'icons/WalletIcons'; import PopupState, { bindTrigger, bindPopover } from 'material-ui-popup-state'; import Popover from '@mui/material/Popover'; -import { EXPLORER } from 'config'; +import config from 'config'; import { ExplorerConfig } from 'config/types'; type StyleProps = { disabled?: boolean }; @@ -151,12 +151,12 @@ function ConnectWallet(props: Props) { > Copy address
- {EXPLORER ? ( + {config.explorer ? ( ) : null}
); } else { - let button = ( + const button = (
connect()}>
{mobile ? 'Connect' : 'Connect wallet'}
diff --git a/wormhole-connect/src/components/FooterNavBar.tsx b/wormhole-connect/src/components/FooterNavBar.tsx index f3eb260bc..a30b367a6 100644 --- a/wormhole-connect/src/components/FooterNavBar.tsx +++ b/wormhole-connect/src/components/FooterNavBar.tsx @@ -3,7 +3,7 @@ import { useDispatch } from 'react-redux'; import { makeStyles } from 'tss-react/mui'; import { ICON } from 'utils/style'; import { Route, setRoute } from 'store/router'; -import { MENU_ENTRIES } from 'config'; +import config from 'config'; import { MenuEntry } from 'config/types'; const useStyles = makeStyles()((theme) => ({ @@ -61,7 +61,7 @@ export default function FooterNavBar() { ); const entries = useMemo( - () => MENU_ENTRIES.reduce(itemAppender, defaultMenuItems(navigate)), + () => config.menu.reduce(itemAppender, defaultMenuItems(navigate)), [navigate], ); diff --git a/wormhole-connect/src/components/TokensModal.tsx b/wormhole-connect/src/components/TokensModal.tsx index 976ad91db..ca9febfed 100644 --- a/wormhole-connect/src/components/TokensModal.tsx +++ b/wormhole-connect/src/components/TokensModal.tsx @@ -5,7 +5,8 @@ import IconButton from '@mui/material/IconButton'; import OpenInNewIcon from '@mui/icons-material/OpenInNew'; import { useTheme } from '@mui/material/styles'; import { ChainName, TokenId } from '@wormhole-foundation/wormhole-connect-sdk'; -import { AVAILABLE_MARKETS_URL, CHAINS, MORE_TOKENS } from 'config'; +import { AVAILABLE_MARKETS_URL } from 'config/constants'; +import config from 'config'; import { TokenConfig } from 'config/types'; import { BigNumber } from 'ethers'; import TokenIcon from 'icons/TokenIcons'; @@ -28,7 +29,6 @@ import { import { makeStyles } from 'tss-react/mui'; import { displayAddress, sortTokens } from 'utils'; import { isGatewayChain } from 'utils/cosmos'; -import { wh } from 'utils/sdk'; import { CENTER, NO_INPUT } from 'utils/style'; import Header from './Header'; import Modal from './Modal'; @@ -142,7 +142,7 @@ const useStyles = makeStyles()((theme: any) => ({ })); const displayNativeChain = (token: TokenConfig): string => { - const chainConfig = CHAINS[token.nativeChain]; + const chainConfig = config.chains[token.nativeChain]; if (!chainConfig) return ''; return chainConfig.displayName; }; @@ -239,19 +239,22 @@ function DisplayTokens(props: DisplayTokensProps) {
))} - {MORE_TOKENS ? ( + {config.moreTokens ? ( <>