Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Feature/include connect v2 #1052

Merged
merged 40 commits into from
Sep 12, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
40 commits
Select commit Hold shift + click to select a range
164f2d9
Include connect v2
yuli-ferna Sep 3, 2024
dc6e34f
Fix prettier and build
yuli-ferna Sep 4, 2024
29c86a0
Include v2
yuli-ferna Sep 4, 2024
e776f51
USDC bridge with v2
yuli-ferna Sep 5, 2024
b4d77ab
Fix build
yuli-ferna Sep 5, 2024
5a42d87
Merge main
yuli-ferna Sep 5, 2024
0b9511a
Merge feature/portal-re-branding
yuli-ferna Sep 5, 2024
ed538f4
Fix routes
yuli-ferna Sep 5, 2024
d23cc6c
Fix rpcs
yuli-ferna Sep 5, 2024
d91056c
Fix prettier
yuli-ferna Sep 5, 2024
aa53f62
Connect fixes
yuli-ferna Sep 5, 2024
babf3cf
fix validate transfer
yuli-ferna Sep 5, 2024
911a3e3
fix usequeryparam bridge defaults
yuli-ferna Sep 6, 2024
01d46d3
Merge feature/portal-re-branding
yuli-ferna Sep 6, 2024
68eca39
Format
yuli-ferna Sep 6, 2024
f7ffee7
Delete connect v1
yuli-ferna Sep 6, 2024
28aab4a
Fix build
yuli-ferna Sep 7, 2024
af79bc0
modify build command
yuli-ferna Sep 7, 2024
6510cca
Fix lint
yuli-ferna Sep 9, 2024
c73f5c3
Fix test
yuli-ferna Sep 9, 2024
e130ca6
Rm v2 vars
yuli-ferna Sep 9, 2024
b2273da
Fix connect and format
yuli-ferna Sep 9, 2024
0a23ff5
Change toLocalLowerCase to toLowerCase
yuli-ferna Sep 9, 2024
450679a
Fix test
yuli-ferna Sep 9, 2024
4a50f27
Review changes
yuli-ferna Sep 10, 2024
277deac
Include connect v1 and a common lib
yuli-ferna Sep 10, 2024
494d580
Fix build
yuli-ferna Sep 10, 2024
0cb7e95
Fix build
yuli-ferna Sep 10, 2024
54643a7
Enable tbtc route
yuli-ferna Sep 11, 2024
fb99abc
Format
yuli-ferna Sep 11, 2024
02dfc8c
Fix build
yuli-ferna Sep 11, 2024
ed03e8a
Fix build
yuli-ferna Sep 11, 2024
79b4b69
Rm workspaces
yuli-ferna Sep 11, 2024
b502c2d
Fix build
yuli-ferna Sep 11, 2024
41b4024
Delete common lib
yuli-ferna Sep 11, 2024
a417c6b
Update connect v2
yuli-ferna Sep 11, 2024
3509f26
Fix test
yuli-ferna Sep 11, 2024
c7cc21c
Fix test and build
yuli-ferna Sep 11, 2024
b9190ff
Fix wstEth
yuli-ferna Sep 11, 2024
4cbe194
Format
yuli-ferna Sep 11, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
71 changes: 71 additions & 0 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -303,12 +303,78 @@ jobs:
name: build-token-bridge
path: connect-loader/apps/connect/dist

tbtc-bridge-v1:
name: "tBTC Bridge v1"
runs-on: "ubuntu-latest"
concurrency:
group: ${{ github.ref }}-${{inputs.name}}-tbtc-bridge-v1
cancel-in-progress: true
environment: ${{inputs.environment}}
outputs:
pkg-version: ${{ steps.set-version.outputs._PKG_VERSION }}
steps:
- name: Set up Node environment
uses: actions/setup-node@v3
with:
node-version: v18.17.1
# - name: Checkout Wormhole Connect
# uses: actions/checkout@v3
# with:
# repository: wormhole-foundation/wormhole-connect
# ref: ${{inputs.connect-branch}}
# path: wormhole-connect
# - name: Build Wormhole Connect
# id: wormhole-connect
# run: |
# npm install -g husky
# pushd wormhole-connect
# npm ci --workspaces --if-present
# sed -i -e 's|vite build",|vite build --base=${{inputs.public-url}}/assets/wormhole-connect/",|g' wormhole-connect/package.json
# npm run build
# echo "_JS_SHA_384=$(shasum -b -a 384 wormhole-connect/dist/main.js | awk '{ print $1 }' | xxd -r -p | base64)" >> "${GITHUB_OUTPUT}"
# echo "_CSS_SHA_384=$(shasum -b -a 384 wormhole-connect/dist/main.css | awk '{ print $1 }' | xxd -r -p | base64)" >> "${GITHUB_OUTPUT}"
- name: Checkout Custom Wormhole Connect Loader
uses: actions/checkout@v3
with:
ref: ${{ inputs.project-branch }}
path: connect-loader
- name: Setup Git
run: |
pushd connect-loader
git config user.name "xLabs CI"
git config user.email "devops@xlabs.xyz"
- name: Set Portal Bridge Version
id: set-version
run: |
pushd connect-loader/apps/connect-v1
echo "_PKG_VERSION=$(node -p -e "require('./package.json').version")-${{inputs.separator}}$(echo ${{ github.sha }} | cut -c -10)" >> "${GITHUB_OUTPUT}"
- name: Build Custom Wormhole Connect Loader
env:
PUBLIC_URL: "${{ inputs.public-url }}"
VITE_PUBLIC_URL: ${{ inputs.public-url }}
VITE_APP_VERSION: ${{ steps.set-version.outputs._PKG_VERSION }}
VITE_APP_CLUSTER: ${{ vars.REACT_APP_CLUSTER }}
# VITE_APP_JS_WC_INTEGRITY_SHA_384: ${{ steps.wormhole-connect.outputs._JS_SHA_384 }}
# VITE_APP_CSS_WC_INTEGRITY_SHA_384: ${{ steps.wormhole-connect.outputs._CSS_SHA_384 }}
VITE_APP_WALLET_CONNECT_PROJECT_ID: ${{ secrets.REACT_APP_WALLET_CONNECT_PROJECT_ID }}
run: |
pushd connect-loader/apps/connect-v1
npm ci
echo 'VITE_APP_VERSION=$npm_package_version' > .env
npm run build:tbtc-bridge
- name: Upload Portal Bridge Artifact
uses: actions/upload-artifact@v3
with:
name: build-tbtc-bridge-v1
path: connect-loader/apps/connect-v1/dist

publish:
name: "Publish"
needs:
- advanced-tools
- usdc-bridge
- token-bridge
- tbtc-bridge-v1
- rewards-dashboard
- redirects
- docs
Expand All @@ -324,6 +390,11 @@ jobs:
uses: actions/download-artifact@v3
with:
name: build-token-bridge
- name: Download Artifact
uses: actions/download-artifact@v3
with:
name: build-tbtc-bridge-v1
path: tbtc-bridge
- name: Download Artifact
uses: actions/download-artifact@v3
with:
Expand Down
19 changes: 19 additions & 0 deletions apps/connect-v1/.eslintrc.cjs
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
module.exports = {
root: true,
env: { browser: true, es2020: true },
extends: [
'eslint:recommended',
'plugin:@typescript-eslint/recommended',
'plugin:react-hooks/recommended',
],
ignorePatterns: ['dist', '.eslintrc.cjs'],
parser: '@typescript-eslint/parser',
plugins: ['react-refresh'],
rules: {
'@typescript-eslint/no-explicit-any': 0,
'react-refresh/only-export-components': [
'warn',
{ allowConstantExport: true },
],
},
}
36 changes: 36 additions & 0 deletions apps/connect-v1/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
# See https://help.github.com/articles/ignoring-files/ for more about ignoring files.

.idea/
# dependencies
/node_modules
/.pnp
.pnp.js
.vscode
.env

# testing
/coverage

# production
/build

# misc
.DS_Store
.env.local
.env.development.local
.env.test.local
.env.production.local

npm-debug.log*
yarn-debug.log*
yarn-error.log*

# ethereum contracts
/contracts
/src/ethers-contracts

.yalc
yalc.lock
public/wormhole-connect/
wormhole-connect/node_modules/
dist/
13 changes: 13 additions & 0 deletions apps/connect-v1/.prettierrc.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
{
"printWidth": 80,
"tabWidth": 2,
"useTabs": false,
"semi": true,
"singleQuote": false,
"quoteProps": "as-needed",
"jsxSingleQuote": false,
"trailingComma": "es5",
"bracketSpacing": true,
"bracketSameLine": false,
"arrowParens": "always"
}
69 changes: 69 additions & 0 deletions apps/connect-v1/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,69 @@
# React + TypeScript + Vite

This template provides a minimal setup to get React working in Vite with HMR and some ESLint rules.

Currently, two official plugins are available:

- [@vitejs/plugin-react](https://github.com/vitejs/vite-plugin-react/blob/main/packages/plugin-react/README.md) uses [Babel](https://babeljs.io/) for Fast Refresh
- [@vitejs/plugin-react-swc](https://github.com/vitejs/vite-plugin-react-swc) uses [SWC](https://swc.rs/) for Fast Refresh

## Expanding the ESLint configuration

If you are developing a production application, we recommend updating the configuration to enable type aware lint rules:

- Configure the top-level `parserOptions` property like this:

```js
parserOptions: {
ecmaVersion: 'latest',
sourceType: 'module',
project: ['./tsconfig.json', './tsconfig.node.json'],
tsconfigRootDir: __dirname,
},
```

- Replace `plugin:@typescript-eslint/recommended` to `plugin:@typescript-eslint/recommended-type-checked` or `plugin:@typescript-eslint/strict-type-checked`
- Optionally add `plugin:@typescript-eslint/stylistic-type-checked`
- Install [eslint-plugin-react](https://github.com/jsx-eslint/eslint-plugin-react) and add `plugin:react/recommended` & `plugin:react/jsx-runtime` to the `extends` list


## Create a new banner

Go to `apps/connect/public/data/banners.json` and add a new item with this format:

```
[
{
"id": "string",
"background": "red",
"content": {
"text": "Lorem ipsum",
"color": "papayawhip",
"size": "30px"
},
"button": {
"label": "Click here!",
"background": "red",
"href": "https://portalbridge.com"
},
"since": "2023-12-22T01:06:52.211Z",
"until": "2023-12-25T01:06:52.211Z"
},
{
"id": "string",
"background": "yellow",
"content": {
"text": "Lorem ipsum",
"color": "white",
"size": "15px"
},
"button": {
"label": "Click here!",
"background": "green",
"href": "https://portalbridge.com"
},
"since": "2023-12-22T01:06:52.211Z",
"until": "2023-12-25T01:06:52.211Z"
}
]
```
27 changes: 27 additions & 0 deletions apps/connect-v1/index.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8" />
<link rel="icon" href="favicon.ico" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<meta name="theme-color" content="#000000" />
<meta property="og:type" content="website" />
<meta property="og:image" content="wormhole.png" />
<meta property="og:image:alt" content="Wormhole logo" />
<meta name="twitter:site" content="@portalbridge_" />
<meta name="twitter:creator" content="@portalbridge_" />
<meta name="twitter:card" content="summary_large_image" />
<link rel="apple-touch-icon" href="logo192.png" />
<link rel="manifest" href="manifest.json" />
<link rel="preconnect" href="https://fonts.googleapis.com" />
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />
<link
href="https://fonts.googleapis.com/css2?family=Poppins:wght@200;300;400;500;600;700&display=swap"
rel="stylesheet"
/>
</head>
<body>
<div id="root"></div>
<script type="module" src="/src/main.tsx"></script>
</body>
</html>
36 changes: 36 additions & 0 deletions apps/connect-v1/jest.config.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
import type { Config } from "jest";

export default {
coverageProvider: "v8",
verbose: true,
moduleFileExtensions: ["ts", "tsx", "js", "jsx", "json", "node", "html"],
testMatch: ["<rootDir>/src/**/*.test.ts", "<rootDir>/src/**/*.test.tsx"],
maxWorkers: "50%",
setupFilesAfterEnv: ["<rootDir>/jest.setup.tsx"],
testEnvironment: "jsdom",
transform: {
"^.+\\.(t|j)sx?$": "@swc/jest",
},
moduleNameMapper: {
"@env": "<rootDir>/src/env/index.ts",
uuid: require.resolve("uuid"),
},
collectCoverageFrom: [
"<rootDir>/src/**/*.{ts,tsx,js,jsx}",
"!<rootDir>/src/**/*.d.ts",
"!<rootDir>/src/main.tsx",
"!<rootDir>/src/utils/constants.ts",
"!<rootDir>/src/utils/styles.ts",
"!<rootDir>/src/env/**/*.*",
"!<rootDir>/src/theme/**/*.*",
],
coverageThreshold: {
global: {
// statements: 100,
// branches: 100,
// functions: 100,
// lines: 100
},
},
coverageReporters: ["lcov", "text", "text-summary"],
} as Config;
12 changes: 12 additions & 0 deletions apps/connect-v1/jest.setup.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
import "@testing-library/jest-dom";
import { TextEncoder, TextDecoder } from "util";
import React from "react";

window.React = global.React = React;

Object.assign(global, {
TextDecoder,
TextEncoder,
});

jest.mock("./src/env/env-vars.ts", () => ({ envVars: process.env }));
Loading
Loading