Skip to content

Commit

Permalink
Merge pull request #138 from skalenetwork/beta
Browse files Browse the repository at this point in the history
2.0 Stable release
  • Loading branch information
dmytrotkk authored Nov 6, 2023
2 parents 6736d16 + 5e8703d commit cc57a03
Show file tree
Hide file tree
Showing 678 changed files with 5,257 additions and 28,895 deletions.
25 changes: 25 additions & 0 deletions .eslintrc.cjs
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
module.exports = {
env: {
browser: true,
es2021: true,
},
extends: [
'plugin:react/recommended',
'standard-with-typescript',
'prettier',
'plugin:storybook/recommended'
],
overrides: [],
parserOptions: {
ecmaVersion: 'latest',
sourceType: 'module',
},
plugins: ['react'],
rules: {
'react/jsx-key': 'off',
'react/react-in-jsx-scope': 'off',
'no-unused-vars': 'off',
'@typescript-eslint/no-unused-vars': 'warn',
'no-console': 'warn',
},
}
3 changes: 3 additions & 0 deletions .github/CODEOWNERS
Validating CODEOWNERS rules …
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
* @dmytrotkk
*.md @skalenetwork/docowners
/docs/ @skalenetwork/docowners
37 changes: 37 additions & 0 deletions .github/workflows/cla.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
name: "cla"
on:
issue_comment:
types: [created]
pull_request_target:
types: [opened, closed, synchronize]

jobs:
cla:
runs-on: ubuntu-latest
steps:
- name: "Get Team Members"
id: team
# github-script, v6.1.0
uses: actions/github-script@7a5c598405937d486b0331594b5da2b14db670da
with:
github-token: ${{ secrets.PERSONAL_ACCESS_TOKEN }}
result-encoding: string
script: |
const members = await github.paginate(
github.rest.orgs.listMembers,
{ org: "skalenetwork" },
);
return members.map(m => m.login).join(",");
- name: "CLA Assistant"
if: (github.event.comment.body == 'recheck' || github.event.comment.body == 'I have read the CLA Document and I hereby sign the CLA') || github.event_name == 'pull_request_target'
# Beta Release, v2.1.3-beta
uses: cla-assistant/github-action@ba066dbae3769e2ce93ec8cfc4fdc51b9db628ba
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
PERSONAL_ACCESS_TOKEN : ${{ secrets.PERSONAL_ACCESS_TOKEN }}
with:
path-to-signatures: 'signatures/version1/cla.json'
path-to-document: 'https://skale.space/cla-txt'
remote-organization-name: 'skalenetwork'
remote-repository-name: cla-sigs
allowlist: '${{ steps.team.outputs.result }},*[bot]'
19 changes: 19 additions & 0 deletions .github/workflows/issue_check.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
name: Get linked issues
on:
pull_request:
types: [ edited, synchronize, opened, reopened ]

jobs:
check-linked-issues:
name: Check if pull request has linked issues
runs-on: ubuntu-latest
steps:
- name: Get issues
id: get-issues
uses: mondeja/pr-linked-issues-action@v2
env:
GITHUB_TOKEN: ${{ secrets.PERSONAL_ACCESS_TOKEN }}
- name: PR has not linked issues
if: join(steps.get-issues.outputs.issues) == ''
run:
exit 1
48 changes: 48 additions & 0 deletions .github/workflows/publish.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
name: Build and publish
on:
pull_request:
types: [closed]
branches:
- develop
- beta
- stable

jobs:
build:
if: github.event.pull_request.merged
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
with:
submodules: true
- uses: actions/setup-node@v3
with:
node-version: '18.x'
registry-url: 'https://registry.npmjs.org'
- name: Set version and branch
run: |
export BRANCH=${GITHUB_REF##*/}
export VERSION=$(npm run --silent version)
echo "Branch: $BRANCH"
echo "Base version: $VERSION"
export VERSION=$(bash ./helper-scripts/calculate_version.sh)
echo "VERSION=$VERSION" >> $GITHUB_ENV
echo "BRANCH=$BRANCH" >> $GITHUB_ENV
echo "Version $VERSION"
- name: Set release
run: |
if [[ "$BRANCH" == "stable" ]]; then
export PRERELEASE=false
else
export PRERELEASE=true
fi
echo "PRERELEASE=$PRERELEASE" >> $GITHUB_ENV
- name: Create Release
uses: actions/create-release@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
tag_name: ${{ env.VERSION }}
release_name: ${{ env.VERSION }}
draft: false
prerelease: ${{ env.PRERELEASE }}
5 changes: 4 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@

# production
/build
/dist

# misc
.DS_Store
Expand All @@ -23,9 +24,11 @@ yarn-debug.log*
yarn-error.log*

.env
src/metadata/metaportConfig*.json
src/metadata/metaportConfig*.ts
src/meta/

src/metadata/chainsData.json
src/metadata/faucet.json
.vercel

chainsJson.json
4 changes: 4 additions & 0 deletions .gitmodules
Original file line number Diff line number Diff line change
@@ -1,3 +1,7 @@
[submodule "skale-network"]
path = skale-network
url = https://github.com/skalenetwork/skale-network.git
branch = add-additional-metadata
[submodule "helper-scripts"]
path = helper-scripts
url = https://github.com/skalenetwork/helper-scripts.git
8 changes: 8 additions & 0 deletions .prettierrc
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
{
"semi": false,
"trailingComma": "none",
"singleQuote": true,
"printWidth": 100,
"endOfLine": "auto",
"bracketSpacing": true
}
2 changes: 0 additions & 2 deletions CODEOWNERS

This file was deleted.

50 changes: 27 additions & 23 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,49 +1,53 @@
# SKALE Bridge UI
# SKALE Portal

[![Discord](https://img.shields.io/discord/534485763354787851.svg)](https://discord.gg/vvUtWJB)

The SKALE Bridge UI is a web-based interface that allows users to interact with the SKALE IMA contracts. The Bridge UI provides a user-friendly way for users to transfer assets and data between different SKALE chains and Ethereum Mainnet, enabling greater flexibility and scalability for decentralized applications.
The SKALE Portal is a web-based interface that allows users to interact with the SKALE IMA contracts. SKALE Portal provides a user-friendly way for users to transfer assets and data between different SKALE chains and Ethereum Mainnet, enabling greater flexibility and scalability for decentralized applications.

## How It Works

The SKALE Interchain Bridge UI is built on top of the [SKALE IMA contracts](https://github.com/skalenetwork/IMA) and uses [Metaport](https://github.com/skalenetwork/metaport). The IMA contracts enable the SKALE Chains to communicate between each onther and Ethereum Mainnet.

The Interchain Bridge UI consists of a user interface that allows users to initiate and track transfers of assets and data between different blockchain networks. Users can connect their wallets to the Interchain Bridge UI and select the source and destination blockchains for their transfers.

## Bridge integration
## Bridge link integration

It's possible to embed Bridge UI link with fallback into your dApp.
It's possible to embed Bridge link with fallback into your dApp.

#### Directing users to the particular source chain
#### Directing users to the particular pair of chains

```
https://[BASE_BRIDGE_URL]/#/bridge/transfer/[FROM_CHAIN_NAME]
http://[BASE_BRIDGE_URL]/?from=[FROM_CHAIN_NAME]&to=[TO_CHAIN_NAME]&token=[TOKEN_SYMBOL]&type=[TOKEN_TYPE]&from-app=[FROM_APP_NAME]&to-app=[TO_APP_NAME]
```

#### Directing users to the particular pair of chains
Example:

```
https://[BASE_BRIDGE_URL]/#/bridge/transfer/[FROM_CHAIN_NAME]/[TO_CHAIN_NAME]
http://[BASE_BRIDGE_URL]/?from=elated-tan-skat&to=green-giddy-denebola&token=skl&type=erc20&from-app=ruby&to-app=nftb
```

#### Customizing transfer parameters

You can customize the link with the following parameters:

All params are optional.
Required params:

- `from` - from chain name
- `to` - to chain name

Optional params:

- `amount` - amount of tokens to transfer
- `token` - symbol of the token to transfer
- `type` - token type (only `erc20` and `eth` are supported for now)
- `from-app` - when transfering from a Hub chain, it's possible to specify the name of the app to transfer from
- `to-app` - when transfering to a Hub chain, it's possible to specify the name of the app to transfer to


Will be available in the future:

- `fallback-url` - URL with fallback link to redirect user after the transfer is completed (should be encoded)
- `fallback-text` - Text to display on the fallback button (should be encoded)

Example of the link with all params:

```
http://[BASE_BRIDGE_URL]/#/bridge/transfer/staging-perfect-parallel-gacrux/staging-severe-violet-wezen?to-app=nftrade&from-app=ruby&token=skl&amount=250&fallback-url=https%3A%2F%2Fnftrade.com%2Fassets%2Fskale%2F0x3b6f8d50938900ef14fbac48575c33a849ffd683%2F1&fallback-text=Return%20to%20NFT%20%22Solitude%22
```

In JS you can use the following function to encode the URL:

Expand All @@ -54,27 +58,27 @@ function encodeUrl(url) {
```

## Getting Started
To get started with the SKALE Bridge UI, users can visit the [SKALE Bridge UI](https://bridge.skale.network/) website and click on the "Connect wallet" button. Users can then connect their wallets and select the source and destination blockchains for their transfers.
To get started with the SKALE Portal, users can visit the [SKALE Portal](https://portal.skale.space/) website and click on the "Connect wallet" button. Users can then connect their wallets and select the source and destination blockchains for their transfers.

## Development Setup
If you're interested in contributing to the SKALE Bridge UI, follow these steps to set up your development environment:
If you're interested in contributing to the SKALE Portal, follow these steps to set up your development environment:

1. Clone the repository: `git clone --recurse-submodules https://github.com/skalenetwork/bridge-ui.git`
2. Install dependencies: `cd bridge-ui && yarn install`
1. Clone the repository: `git clone --recurse-submodules https://github.com/skalenetwork/portal.git`
2. Install dependencies: `cd portal && yarn install`
3. Prepare metadata: `NETWORK_NAME=[SKALE NETWORK NAME - mainnet or staging] bash build.sh`
4. Export Mainnet Ethereum endpoint to your env: `export REACT_APP_MAINNET_ENDPOINT=XXX` or create `.env` file in the root dir
4. Export Mainnet Ethereum endpoint to your env: `export VITE_MAINNET_ENDPOINT=XXX` or create `.env` file in the root dir
5. Start the development server: `yarn start`

The SKALE Interchain Bridge UI is built using the Create React App TypeScript template and uses [Metaport](https://github.com/skalenetwork/metaport) and [ima-js](https://github.com/skalenetwork/ima-js) libraries.
The SKALE Portal is built using the Create React App TypeScript template and uses [Metaport](https://github.com/skalenetwork/metaport) and [ima-js](https://github.com/skalenetwork/ima-js) libraries.

To contribute to the project, create a new branch with a descriptive name for your changes, make your changes, and submit a pull request.

## Security and Liability

The Bridge UI and code is WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
The SKALE Portal and code is WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

## License

![GitHub](https://img.shields.io/github/license/skalenetwork/bridge-ui.svg)
![GitHub](https://img.shields.io/github/license/skalenetwork/portal.svg)

All contributions are made under the [GNU Lesser General Public License v3](https://www.gnu.org/licenses/lgpl-3.0.en.html). See [LICENSE](LICENSE).
23 changes: 7 additions & 16 deletions build.sh
Original file line number Diff line number Diff line change
Expand Up @@ -6,16 +6,14 @@ set -e

export DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd )"

META_DIR_EXTERNAL=$DIR/skale-network/metadata/$NETWORK_NAME/
META_DIR=$DIR/src/meta/
METAPORT_CONFIG_PATH=$DIR/config/$NETWORK_NAME.ts
METAPORT_CONFIG_PATH_SRC=$DIR/src/metadata/metaportConfig.ts

CHAINS_DATA_PATH=$DIR/env/$NETWORK_NAME/chainsData.json
METAPORT_CONFIG_PATH=$DIR/env/$NETWORK_NAME/metaportConfig.json
FAUCET_DATA_PATH=$DIR/env/$NETWORK_NAME/faucet.json
echo "Copying ${METAPORT_CONFIG_PATH} -> ${METAPORT_CONFIG_PATH_SRC}..."
cp $METAPORT_CONFIG_PATH $METAPORT_CONFIG_PATH_SRC

CHAINS_DATA_PATH_SRC=$DIR/src/metadata/chainsData.json
METAPORT_CONFIG_PATH_SRC=$DIR/src/metadata/metaportConfig.json
FAUCET_DATA_PATH_SRC=$DIR/src/metadata/faucet.json
META_DIR_EXTERNAL=$DIR/skale-network/metadata/$NETWORK_NAME/
META_DIR=$DIR/src/meta/

if [ -d "$META_DIR" ]; then
echo "Removing ${META_DIR}..."
Expand All @@ -32,14 +30,7 @@ else
echo "${META_DIR_EXTERNAL} not found, copying Mainnet meta"
fi

echo "Copying ${CHAINS_DATA_PATH} -> ${CHAINS_DATA_PATH_SRC}..."
cp $CHAINS_DATA_PATH $CHAINS_DATA_PATH_SRC

echo "Copying ${METAPORT_CONFIG_PATH} -> ${METAPORT_CONFIG_PATH_SRC}..."
cp $METAPORT_CONFIG_PATH $METAPORT_CONFIG_PATH_SRC

echo "Copying ${FAUCET_DATA_PATH} -> ${FAUCET_DATA_PATH_SRC}..."
cp $FAUCET_DATA_PATH $FAUCET_DATA_PATH_SRC
node generate-imports.cjs ./src/meta/logos

echo "Building..."
yarn build
Binary file added bun.lockb
Binary file not shown.
47 changes: 0 additions & 47 deletions config-overrides.js

This file was deleted.

Loading

1 comment on commit cc57a03

@vercel
Copy link

@vercel vercel bot commented on cc57a03 Nov 6, 2023

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please sign in to comment.