diff --git a/.github/workflows/preview.yml b/.github/workflows/preview.yml index f4eb05802..887081ff8 100644 --- a/.github/workflows/preview.yml +++ b/.github/workflows/preview.yml @@ -5,39 +5,39 @@ on: types: [opened, synchronize, reopened] jobs: - cctp: - name: "Build USDC Bridge (CCTP)" - runs-on: "ubuntu-latest" - concurrency: - group: ${{ github.ref }}-cctp-preview - cancel-in-progress: true - environment: Cloudflare-Preview - steps: - - name: Checkout repository - uses: actions/checkout@v3 - with: - repository: xlabs/usdc-bridge - ref: develop - - name: Set up Node environment - uses: actions/setup-node@v3 - with: - node-version: v16.19.1 - - name: Install dependencies - run: npm ci - - name: Set Version - run: | - echo "_BRANCH_NAME_SHA=$(echo ${{ github.event.pull_request.head.ref }} | sha256sum | cut -c -10)" >> "${GITHUB_ENV}" - - name: Build - env: - DEPLOY: "true" - NEXT_PUBLIC_NETWORK: ${{ vars.REACT_APP_CLUSTER }} - NEXT_PUBLIC_BASE_PATH: "/${{ env._BRANCH_NAME_SHA }}/usdc-bridge" - run: npm run build - - name: Upload Artifact - uses: actions/upload-artifact@v3 - with: - name: preview-stable-bridge-build - path: out + # cctp: + # name: "Build USDC Bridge (CCTP)" + # runs-on: "ubuntu-latest" + # concurrency: + # group: ${{ github.ref }}-cctp-preview + # cancel-in-progress: true + # environment: Cloudflare-Preview + # steps: + # - name: Checkout repository + # uses: actions/checkout@v3 + # with: + # repository: xlabs/usdc-bridge + # ref: develop + # - name: Set up Node environment + # uses: actions/setup-node@v3 + # with: + # node-version: v16.19.1 + # - name: Install dependencies + # run: npm ci + # - name: Set Version + # run: | + # echo "_BRANCH_NAME_SHA=$(echo ${{ github.event.pull_request.head.ref }} | sha256sum | cut -c -10)" >> "${GITHUB_ENV}" + # - name: Build + # env: + # DEPLOY: "true" + # NEXT_PUBLIC_NETWORK: ${{ vars.REACT_APP_CLUSTER }} + # NEXT_PUBLIC_BASE_PATH: "/${{ env._BRANCH_NAME_SHA }}/usdc-bridge" + # run: npm run build + # - name: Upload Artifact + # uses: actions/upload-artifact@v3 + # with: + # name: preview-stable-bridge-build + # path: out docs: name: "Build Portal Bridge Documentation" runs-on: "ubuntu-latest" @@ -130,7 +130,7 @@ jobs: needs: - portal - docs - - cctp + # - cctp runs-on: "ubuntu-latest" concurrency: group: ${{ github.ref }}-publish-preview @@ -148,11 +148,11 @@ jobs: with: name: docs-preview-build path: docs - - name: Download Artifact - uses: actions/download-artifact@v3 - with: - name: preview-stable-bridge-build - path: usdc-bridge + # - name: Download Artifact + # uses: actions/download-artifact@v3 + # with: + # name: preview-stable-bridge-build + # path: usdc-bridge - name: Set up GitHub NPM registry uses: actions/setup-node@v3 with: diff --git a/.github/workflows/production.yml b/.github/workflows/production.yml index dba38fd88..6b9255f73 100644 --- a/.github/workflows/production.yml +++ b/.github/workflows/production.yml @@ -4,39 +4,39 @@ on: workflow_dispatch: jobs: - cctp: - name: "Build USDC Bridge (CCTP)" - runs-on: "ubuntu-latest" - concurrency: - group: ${{ github.ref }}-cctp-release - cancel-in-progress: true - environment: Cloudflare-Page-Deploy - steps: - - name: Checkout repository - uses: actions/checkout@v3 - with: - repository: xlabs/usdc-bridge - ref: main - - name: Set up Node environment - uses: actions/setup-node@v3 - with: - node-version: v16.19.1 - - name: Install dependencies - run: npm ci - - name: Set Version - run: | - echo "_BRANCH_NAME_SHA=$(echo ${{ github.event.pull_request.head.ref }} | sha256sum | cut -c -10)" >> "${GITHUB_ENV}" - - name: Build - env: - DEPLOY: "true" - NEXT_PUBLIC_NETWORK: ${{ vars.REACT_APP_CLUSTER }} - NEXT_PUBLIC_BASE_PATH: "/usdc-bridge" - run: npm run build - - name: Upload Artifact - uses: actions/upload-artifact@v3 - with: - name: release-stable-bridge - path: out + # cctp: + # name: "Build USDC Bridge (CCTP)" + # runs-on: "ubuntu-latest" + # concurrency: + # group: ${{ github.ref }}-cctp-release + # cancel-in-progress: true + # environment: Cloudflare-Page-Deploy + # steps: + # - name: Checkout repository + # uses: actions/checkout@v3 + # with: + # repository: xlabs/usdc-bridge + # ref: main + # - name: Set up Node environment + # uses: actions/setup-node@v3 + # with: + # node-version: v16.19.1 + # - name: Install dependencies + # run: npm ci + # - name: Set Version + # run: | + # echo "_BRANCH_NAME_SHA=$(echo ${{ github.event.pull_request.head.ref }} | sha256sum | cut -c -10)" >> "${GITHUB_ENV}" + # - name: Build + # env: + # DEPLOY: "true" + # NEXT_PUBLIC_NETWORK: ${{ vars.REACT_APP_CLUSTER }} + # NEXT_PUBLIC_BASE_PATH: "/usdc-bridge" + # run: npm run build + # - name: Upload Artifact + # uses: actions/upload-artifact@v3 + # with: + # name: release-stable-bridge + # path: out docs: name: "Build Portal Bridge Documentation" @@ -126,7 +126,7 @@ jobs: name: "Publish" needs: - portal - - cctp + #- cctp - docs runs-on: "ubuntu-latest" concurrency: @@ -145,11 +145,11 @@ jobs: with: name: docs-release-build path: docs - - name: Download Artifact - uses: actions/download-artifact@v3 - with: - name: release-stable-bridge - path: usdc-bridge + # - name: Download Artifact + # uses: actions/download-artifact@v3 + # with: + # name: release-stable-bridge + # path: usdc-bridge - name: Set up GitHub NPM registry uses: actions/setup-node@v3 with: diff --git a/.github/workflows/testnet.yml b/.github/workflows/testnet.yml index 76f01f86e..6ced44a37 100644 --- a/.github/workflows/testnet.yml +++ b/.github/workflows/testnet.yml @@ -5,39 +5,39 @@ on: types: [opened, synchronize, reopened] jobs: - cctp: - name: "Build USDC Bridge (CCTP)" - runs-on: "ubuntu-latest" - concurrency: - group: ${{ github.ref }}-cctp-testnet - cancel-in-progress: true - environment: Cloudflare-Testnet - steps: - - name: Checkout repository - uses: actions/checkout@v3 - with: - repository: xlabs/usdc-bridge - ref: develop - - name: Set up Node environment - uses: actions/setup-node@v3 - with: - node-version: v16.19.1 - - name: Install dependencies - run: npm ci - - name: Set Version - run: | - echo "_BRANCH_NAME_SHA=$(echo ${{ github.event.pull_request.head.ref }} | sha256sum | cut -c -10)" >> "${GITHUB_ENV}" - - name: Build - env: - DEPLOY: "true" - NEXT_PUBLIC_NETWORK: "testnet" - NEXT_PUBLIC_BASE_PATH: "/${{ env._BRANCH_NAME_SHA }}/usdc-bridge" - run: npm run build - - name: Upload Artifact - uses: actions/upload-artifact@v3 - with: - name: testnet-stable-bridge - path: out + # cctp: + # name: "Build USDC Bridge (CCTP)" + # runs-on: "ubuntu-latest" + # concurrency: + # group: ${{ github.ref }}-cctp-testnet + # cancel-in-progress: true + # environment: Cloudflare-Testnet + # steps: + # - name: Checkout repository + # uses: actions/checkout@v3 + # with: + # repository: xlabs/usdc-bridge + # ref: develop + # - name: Set up Node environment + # uses: actions/setup-node@v3 + # with: + # node-version: v16.19.1 + # - name: Install dependencies + # run: npm ci + # - name: Set Version + # run: | + # echo "_BRANCH_NAME_SHA=$(echo ${{ github.event.pull_request.head.ref }} | sha256sum | cut -c -10)" >> "${GITHUB_ENV}" + # - name: Build + # env: + # DEPLOY: "true" + # NEXT_PUBLIC_NETWORK: "testnet" + # NEXT_PUBLIC_BASE_PATH: "/${{ env._BRANCH_NAME_SHA }}/usdc-bridge" + # run: npm run build + # - name: Upload Artifact + # uses: actions/upload-artifact@v3 + # with: + # name: testnet-stable-bridge + # path: out portal: name: "Build Portal Bridge" @@ -99,7 +99,7 @@ jobs: name: "Publish" needs: - portal - - cctp + # - cctp runs-on: "ubuntu-latest" concurrency: group: ${{ github.ref }}-publish-testnet @@ -112,11 +112,11 @@ jobs: uses: actions/download-artifact@v3 with: name: testnet-portal-bridge - - name: Download Artifact - uses: actions/download-artifact@v3 - with: - name: testnet-stable-bridge - path: usdc-bridge + # - name: Download Artifact + # uses: actions/download-artifact@v3 + # with: + # name: testnet-stable-bridge + # path: usdc-bridge - name: Set up GitHub NPM registry uses: actions/setup-node@v3 with: diff --git a/package-lock.json b/package-lock.json index 63ac35ea7..4803bdb3b 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "@xlabs/portal-bridge-ui", - "version": "0.1.80", + "version": "0.1.81", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "@xlabs/portal-bridge-ui", - "version": "0.1.80", + "version": "0.1.81", "dependencies": { "@certusone/wormhole-sdk": "^0.9.22", "@injectivelabs/sdk-ts": "^1.10.72", @@ -100,7 +100,7 @@ "lint-staged": "^13.2.3", "os-browserify": "^0.3.0", "path-browserify": "^1.0.1", - "prettier": "^3.0.2", + "prettier": "^3.0.3", "process": "^0.11.10", "punycode": "^2.1.1", "querystring-es3": "^0.2.1", @@ -35761,9 +35761,9 @@ } }, "node_modules/prettier": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.0.2.tgz", - "integrity": "sha512-o2YR9qtniXvwEZlOKbveKfDQVyqxbEIWn48Z8m3ZJjBjcCmUy3xZGIv+7AkaeuaTr6yPXJjwv07ZWlsWbEy1rQ==", + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.0.3.tgz", + "integrity": "sha512-L/4pUDMxcNa8R/EthV08Zt42WBO4h1rarVtK0K+QJG0X187OLo7l699jWw0GKuwzkPQ//jMFA/8Xm6Fh3J/DAg==", "dev": true, "bin": { "prettier": "bin/prettier.cjs" @@ -70106,9 +70106,9 @@ "dev": true }, "prettier": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.0.2.tgz", - "integrity": "sha512-o2YR9qtniXvwEZlOKbveKfDQVyqxbEIWn48Z8m3ZJjBjcCmUy3xZGIv+7AkaeuaTr6yPXJjwv07ZWlsWbEy1rQ==", + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.0.3.tgz", + "integrity": "sha512-L/4pUDMxcNa8R/EthV08Zt42WBO4h1rarVtK0K+QJG0X187OLo7l699jWw0GKuwzkPQ//jMFA/8Xm6Fh3J/DAg==", "dev": true }, "pretty-bytes": { diff --git a/package.json b/package.json index c2d474601..dffae8238 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@xlabs/portal-bridge-ui", - "version": "0.1.80", + "version": "0.1.81", "private": true, "dependencies": { "@certusone/wormhole-sdk": "^0.9.22", @@ -122,7 +122,7 @@ "lint-staged": "^13.2.3", "os-browserify": "^0.3.0", "path-browserify": "^1.0.1", - "prettier": "^3.0.2", + "prettier": "^3.0.3", "process": "^0.11.10", "punycode": "^2.1.1", "querystring-es3": "^0.2.1", diff --git a/public/usdc-bridge/SuisseBPIntlBold.woff2 b/public/usdc-bridge/SuisseBPIntlBold.woff2 new file mode 100644 index 000000000..cad727171 Binary files /dev/null and b/public/usdc-bridge/SuisseBPIntlBold.woff2 differ diff --git a/public/usdc-bridge/circle.png b/public/usdc-bridge/circle.png new file mode 100644 index 000000000..cc2f0272a Binary files /dev/null and b/public/usdc-bridge/circle.png differ diff --git a/public/usdc-bridge/index.css b/public/usdc-bridge/index.css new file mode 100644 index 000000000..7702b5e8b --- /dev/null +++ b/public/usdc-bridge/index.css @@ -0,0 +1,335 @@ +html { + -webkit-locale: "en"; + box-sizing: border-box; + -webkit-font-smoothing: antialiased; + --vh: 10.01px; +} + +body { + box-sizing: inherit; + color: #ffffff; + margin: 0; + font-size: 0.8125rem; + font-family: "Poppins", sans-serif; + font-weight: 400; + line-height: 1.43; + background-size: 120%; + background-color: #17153f; + background-image: url(/static/media/bg.7f578c3eb1b9a700a83d6113bf1579e0.svg); + background-repeat: repeat-y; + background-position: top center; + overscroll-behavior-y: none; +} + +.root { + box-sizing: inherit; +} + +.container { + box-sizing: inherit; + display: flex; + overflow: hidden; + position: relative; + min-height: 100vh; + flex-direction: column; +} + +.cctp-banner { + box-sizing: inherit; + width: 100%; + display: flex; + padding: 4px 16px; + font-size: 16px; + background: linear-gradient(20deg, #f44b1b 0%, #eeb430 100%); + min-height: 56px; + text-align: center; + align-items: center; + font-weight: 500; + letter-spacing: 0.02em; + justify-content: center; +} + +.cosmos-banner { + box-sizing: inherit; + width: 100%; + display: flex; + padding: 4px 16px; + font-size: 16px; + background: linear-gradient(1deg, #9577f4 0%, #ad55da 28.96%, #ca2ebd 100%); + min-height: 56px; + text-align: center; + align-items: center; + font-weight: 500; + letter-spacing: 0.02em; + justify-content: center; +} + +.cosmos-link { + text-align: center; + box-sizing: inherit; + margin: 0; + text-decoration: none; + color: #17153f; + display: inline-flex; + padding: 6px 12px; + font-size: 12px; + min-width: fit-content; + min-height: 32px; + align-items: center; + font-weight: 600; + margin-left: 8px; + border-radius: 20px; + letter-spacing: 0.08em; + background-color: white; +} + +.cctp-link { + text-align: center; + box-sizing: inherit; + margin: 0; + text-decoration: none; + color: #f47b48; + display: inline-flex; + padding: 6px 12px; + font-size: 12px; + min-width: fit-content; + min-height: 32px; + align-items: center; + font-weight: 600; + margin-left: 8px; + border-radius: 20px; + letter-spacing: 0.08em; + background-color: white; +} + +.header { + transition: box-shadow 300ms cubic-bezier(0.4, 0, 0.2, 1) 0ms; + box-shadow: none; + width: 100%; + display: flex; + z-index: 1100; + box-sizing: border-box; + flex-shrink: 0; + flex-direction: column; + position: static; + color: inherit; + background: transparent; + margin-top: 16px; +} + +.header-inner { + color: inherit; + box-sizing: inherit; + display: flex; + position: relative; + align-items: center; + padding-left: 24px; + padding-right: 24px; + min-height: 64px; + width: 100%; + margin: auto; + max-width: 1440px; +} + +.logo-link { + display: inline-flex; + align-items: center; +} + +.logo-link:hover { + text-decoration: none; +} + +.logo { + height: 68px; + vertical-align: middle; + margin-right: 8px; + display: inline-block; +} + +.logo:hover { + filter: contrast(1); +} + +.spacer { + flex: 1; + width: 100vw; +} + +.poweredBy { + font-family: Poppins; + display: flex; + flex-wrap: wrap; + flex-direction: row; + justify-content: center; + align-items: center; + margin-top: 1vh; + gap: 8px; + padding-bottom: 40px; + font-size: 18px; + font-weight: 400; + white-space: nowrap; +} + +.poweredBy img { + filter: invert(1) brightness(100); +} + +.gradients { + overflow: hidden; + position: absolute; + top: 0; + bottom: 0; + left: 0; + right: 0; + opacity: 0.9; + z-index: -1; +} + +.gradientRight { + position: absolute; + top: 72px; + right: -1000px; + width: 1757px; + height: 1506px; + background: radial-gradient( + closest-side at 50% 50%, + #ffce00 0%, + #ffce0000 100% + ); + opacity: 0.2; + transform: matrix(0.87, 0.48, -0.48, 0.87, 0, 0); + z-index: -1; + pointer-events: none; +} + +.gradientLeft { + top: -530px; + left: -350px; + width: 1379px; + height: 1378px; + position: absolute; + background: radial-gradient( + closest-side at 50% 50%, + #f44b1b 0%, + #f44b1b00 100% + ); + opacity: 0.2; + z-index: -1; + pointer-events: none; +} + +.gradientLeft2 { + bottom: -330px; + left: -350px; + width: 1379px; + height: 1378px; + position: absolute; + background: radial-gradient( + closest-side at 50% 50%, + #f44b1b 0%, + #f44b1b00 100% + ); + opacity: 0.2; + z-index: -1; + pointer-events: none; +} + +.gradientRight2 { + position: absolute; + bottom: -900px; + right: -1000px; + width: 1757px; + height: 1506px; + background: radial-gradient( + closest-side at 50% 50%, + #ffce00 0%, + #ffce0000 100% + ); + opacity: 0.24; + transform: matrix(0.87, 0.48, -0.48, 0.87, 0, 0); + z-index: -1; + pointer-events: none; +} + +/* .links-list {} */ +@media (max-width: 599.95px) { + .links-list { + display: none; + } + + .help-container { + display: block; + } +} + +@media (min-width: 600px) { + .links-list { + display: flex; + } + + .help-container { + display: none; + } +} + +@font-face { + font-family: "Suisse BP Intl"; + src: url("SuisseBPIntlBold.woff2"); +} + +.links-list-inner { + display: flex; + align-items: center; +} + +.link { + margin: 0; + text-decoration: none; + color: white; + font-size: 0.8125rem; + font-family: + Suisse BP Intl, + sans-serif; + font-weight: 600; + line-height: 1.43; + text-underline-offset: 6px; + margin-left: 32px; +} + +.active { + text-decoration: underline; +} + +/* .help-container {} */ +/* .help-link {} */ +.help-label { + color: white; +} + +.help-icon { + fill: currentColor; + width: 1em; + height: 1em; + display: inline-block; + font-size: 1.3928571428571428rem; + transition: fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms; + flex-shrink: 0; + user-select: none; +} + +.footer { + display: flex; + flex-direction: column; + align-items: center; + margin-bottom: 15px; +} + +.footer-link { + color: white; + text-decoration: underline; +} + +.footer-link:visited { + color: white; +} diff --git a/public/usdc-bridge/index.html b/public/usdc-bridge/index.html new file mode 100644 index 000000000..7ab60e033 --- /dev/null +++ b/public/usdc-bridge/index.html @@ -0,0 +1,149 @@ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + +