-
Notifications
You must be signed in to change notification settings - Fork 512
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
0 parents
commit 3542d54
Showing
65 changed files
with
4,982 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,17 @@ | ||
**/*.scss | ||
**/*.html | ||
**/*.json | ||
**/*.png | ||
**/*.svg | ||
**/*.ttf | ||
**/*.secret | ||
**/*.md | ||
.DS_Store | ||
|
||
node_modules | ||
|
||
yarn.lock | ||
|
||
.github/* | ||
|
||
cosmos |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,14 @@ | ||
module.exports = { | ||
parser: "@typescript-eslint/parser", | ||
extends: [ | ||
"plugin:@typescript-eslint/recommended", | ||
"plugin:prettier/recommended", | ||
], | ||
parserOptions: { | ||
ecmaVersion: 2018, | ||
sourceType: "module", | ||
}, | ||
rules: { | ||
"prettier/prettier": "error", | ||
}, | ||
}; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,51 @@ | ||
name: Cron Job Validation | ||
on: | ||
schedule: | ||
- cron: "0 * * * *" | ||
|
||
jobs: | ||
validation: | ||
name: Suggest Chain Validation Check | ||
runs-on: ubuntu-20.04 | ||
|
||
steps: | ||
- name: Checkout | ||
uses: actions/checkout@v3 | ||
|
||
- name: Setup nodejs | ||
uses: actions/setup-node@v3 | ||
with: | ||
node-version: "16" | ||
|
||
- run: npm install --global yarn | ||
- run: yarn install --frozen-lockfile | ||
|
||
- name: Check chain updates | ||
id: check-update | ||
continue-on-error: true | ||
run: | | ||
yarn ts-node src/schedule.ts | ||
- name: Slack Alert Notification | ||
uses: slackapi/slack-github-action@v1.23.0 | ||
if: ${{ steps.check-update.outputs.hasError }} | ||
with: | ||
channel-id: ${{ secrets.SLACK_CHANNEL_ID }} | ||
payload: | | ||
{ | ||
"text": "Suggest Chain Alert", | ||
"attachments": [ | ||
{ | ||
"color": "FB486C", | ||
"fields": [ | ||
{ | ||
"title": "Error Message", | ||
"short": false, | ||
"value": "${{ steps.check-update.outputs.errorMessage }}" | ||
} | ||
] | ||
} | ||
] | ||
} | ||
env: | ||
SLACK_BOT_TOKEN: ${{ secrets.SLACK_BOT_TOKEN }} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,39 @@ | ||
name: Pull Request Validation | ||
on: | ||
pull_request: | ||
types: [ opened, synchronize ] | ||
branches: [ main ] | ||
|
||
jobs: | ||
validation: | ||
name: Pull Request Suggest Chain Validation | ||
runs-on: ubuntu-20.04 | ||
|
||
steps: | ||
- name: Checkout | ||
uses: actions/checkout@v3 | ||
with: | ||
fetch-depth: 0 | ||
|
||
- name: Setup nodejs | ||
uses: actions/setup-node@v3 | ||
with: | ||
node-version: "16" | ||
|
||
- run: npm install --global yarn | ||
- run: yarn install --frozen-lockfile | ||
|
||
- name: Get changed files | ||
id: changed-files | ||
uses: tj-actions/changed-files@v34 | ||
with: | ||
files: | | ||
cosmos/** | ||
- name: Validate changed files | ||
run: | | ||
for file in ${{ steps.changed-files.outputs.all_changed_files }}; do | ||
if [[ $file == *".json"* ]]; then | ||
yarn ts-node src/index.ts $file | ||
fi | ||
done |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,109 @@ | ||
# Logs | ||
logs | ||
*.log | ||
npm-debug.log* | ||
yarn-debug.log* | ||
yarn-error.log* | ||
lerna-debug.log* | ||
|
||
# Diagnostic reports (https://nodejs.org/api/report.html) | ||
report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json | ||
|
||
# Runtime data | ||
pids | ||
*.pid | ||
*.seed | ||
*.pid.lock | ||
|
||
# Directory for instrumented libs generated by jscoverage/JSCover | ||
lib-cov | ||
|
||
# Coverage directory used by tools like istanbul | ||
coverage | ||
*.lcov | ||
|
||
# nyc test coverage | ||
.nyc_output | ||
|
||
# Grunt intermediate storage (https://gruntjs.com/creating-plugins#storing-task-files) | ||
.grunt | ||
|
||
# Bower dependency directory (https://bower.io/) | ||
bower_components | ||
|
||
# node-waf configuration | ||
.lock-wscript | ||
|
||
# Compiled binary addons (https://nodejs.org/api/addons.html) | ||
build/Release | ||
|
||
# Dependency directories | ||
node_modules/ | ||
jspm_packages/ | ||
|
||
# TypeScript v1 declaration files | ||
typings/ | ||
|
||
# TypeScript cache | ||
*.tsbuildinfo | ||
|
||
# Optional npm cache directory | ||
.npm | ||
|
||
# Optional eslint cache | ||
.eslintcache | ||
|
||
# Microbundle cache | ||
.rpt2_cache/ | ||
.rts2_cache_cjs/ | ||
.rts2_cache_es/ | ||
.rts2_cache_umd/ | ||
|
||
# Optional REPL history | ||
.node_repl_history | ||
|
||
# Output of 'npm pack' | ||
*.tgz | ||
|
||
# Yarn Integrity file | ||
.yarn-integrity | ||
|
||
# dotenv environment variables file | ||
.env | ||
.env.test | ||
|
||
# parcel-bundler cache (https://parceljs.org/) | ||
.cache | ||
|
||
# Next.js build output | ||
.next | ||
|
||
# Nuxt.js build / generate output | ||
.nuxt | ||
dist | ||
|
||
# Gatsby files | ||
.cache/ | ||
# Comment in the public line in if your project uses Gatsby and *not* Next.js | ||
# https://nextjs.org/blog/next-9-1#public-directory-support | ||
# public | ||
|
||
# vuepress build output | ||
.vuepress/dist | ||
|
||
# Serverless directories | ||
.serverless/ | ||
|
||
# FuseBox cache | ||
.fusebox/ | ||
|
||
# DynamoDB Local files | ||
.dynamodb/ | ||
|
||
# TernJS port file | ||
.tern-port | ||
|
||
# intelij files | ||
.idea | ||
|
||
.DS_Store |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,15 @@ | ||
**/*.png | ||
**/*.svg | ||
**/*.ttf | ||
**/*.secret | ||
**/*.md | ||
.DS_Store | ||
|
||
node_modules | ||
|
||
yarn.lock | ||
|
||
.eslintignore | ||
.prettierignore | ||
|
||
cosmos |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,136 @@ | ||
# Guidelines for Community-Driven Suggest Chain Integration | ||
|
||
Keplr team has always been at the leading edge of building secure and interoperable wallet infrastructure for the blooming cross-chain networks, placing its core mainly at the Cosmos ecosystem. | ||
|
||
To help the builders easily plug into Keplr’s wide userbase and the ever-growing Cosmos ecosystem, Keplr has been offering an option of permissionless integration, the so-called “Suggest Chain Integration”. The feature has enabled front-ends to request adding new Cosmos-SDK-based blockchains that aren’t natively integrated into the Keplr extension. | ||
|
||
Keplr team is now introducing a Community-Driven Integration, which enables our users to easily make a request for adding new chains and updating their information. It's an expanded version of the previous suggest chain integration, providing a public API to our users for creating and updating a set integration standard for each chain. | ||
|
||
To make a pull request, please carefully read and follow the guideline below. Any contribution is more than welcome! | ||
|
||
# Requirements and Preparation | ||
|
||
This section outlines the basic information that is required for registering a chain to Keplr wallet. Please note that your request does not always guarantee integrations and updates; upon your submission, Keplr team will go through a minimal verification process to see if there is any security issue or any missing information. | ||
|
||
Once approved, the Keplr browser extension will show the tag “Community-Driven” on the chain connection page, to let the users be aware that the integration was requested and implemented by the community and the Keplr team has gone through the verification process. | ||
|
||
## Chain Registration Directory Structure | ||
|
||
chainID is consisted of ({identifier}-{version}). **`chain-identifier`** therefore refers to a text identifier of a chain that comes before its version number. For example: | ||
|
||
``` | ||
The chain-identifier of `cosmoshub-4` is `cosmoshub`. | ||
The chain-identifier of `crypto-org-chain-mainnet-1` is `crypto-org-chain-mainnet`. | ||
The chain-identifier of `evmos_9001-2` is `evmos_9001`. | ||
The chain-identifier of 'shentu-2.2' is 'shentu-2.2'. | ||
``` | ||
|
||
Here’s an overview of the structure of the directory. Please provide the information and files complying with the requirements. | ||
|
||
``` | ||
. | ||
├── cosmos # Mainnet | ||
│ ├── cosmoshub.json # Chains (Each file should be named `{chain-identifier}.json') | ||
│ ├── osmosis.json | ||
│ └── ... | ||
└── images # Collection of image assets | ||
├── cosmoshub # Image assets of Comos Hub (Each directory should be named `{chain-identifier}`.) | ||
│ └── chain.png # Cosmos Hub Logo(png, 256x256px) | ||
├── osmosis # Image assets of Osmosis | ||
└── ... | ||
``` | ||
|
||
## Chain Registration Form | ||
|
||
```json | ||
{ | ||
"chainId": "osmosis-1", | ||
"chainName": "Osmosis", | ||
"rpc": "https://rpc-osmosis.blockapsis.com", | ||
"rest": "https://lcd-osmosis.blockapsis.com", | ||
"nodeProvider": { | ||
"name": "Blockapsis", | ||
"email": "infra@blockapsis.com", | ||
"website":"https://blockapsis.com/" | ||
}, | ||
"bip44": { | ||
"coinType": 118 | ||
}, | ||
"bech32Config": { | ||
"bech32PrefixAccAddr": "osmosis", | ||
"bech32PrefixAccPub": "osmosispub", | ||
"bech32PrefixValAddr": "osmosisvaloper", | ||
"bech32PrefixValPub": "osmosisvaloperpub", | ||
"bech32PrefixConsAddr": "osmosisvalcons", | ||
"bech32PrefixConsPub": "osmosisvalconspub" | ||
}, | ||
"currencies": [ | ||
{ | ||
"coinDenom": "OSMO", | ||
"coinMinimalDenom": "uosmo", | ||
"coinDecimals": 6, | ||
"coinGeckoId": "osmosis" | ||
} | ||
], | ||
"feeCurrencies": [ | ||
{ | ||
"coinDenom": "OSMO", | ||
"coinMinimalDenom": "uosmo", | ||
"coinDecimals": 6, | ||
"coinGeckoId": "osmosis", | ||
"gasPriceStep": { | ||
"low": 0.01, | ||
"average": 0.025, | ||
"high": 0.03 | ||
} | ||
} | ||
], | ||
"stakeCurrency": { | ||
"coinDenom": "OSMO", | ||
"coinMinimalDenom": "uosmo", | ||
"coinDecimals": 6, | ||
"coinGeckoId": "osmosis" | ||
}, | ||
"features": [ | ||
"cosmwasm", | ||
"osmosis-txfees" | ||
] | ||
} | ||
``` | ||
|
||
## Requirement Details | ||
|
||
- chainId: chainId in a form of {identifier}-{version} (ex. cosmoshub-4) | ||
- chainName: the name of the chain that will be displayed on the wallet | ||
- rpc: URL of RPC endpoint of the chain | ||
- rest: URL of REST/API endpoint of the chain | ||
- nodeProvider: provide the details of the RPC/REST node providers | ||
- name: name of the node provider | ||
- email: email address of the node provider (To help other users reach out when there is an issue with the nodes’ status) | ||
- website(optional): website address of the node provider | ||
- walletUrlForStaking(optional): the URL where the users are directed when they click on Staking button of the Keplr Wallet | ||
- bip44: BIP-44 coin type (118 highly recommended) | ||
- bech32Config: prefix used at the beginning of the address | ||
- currencies: the list of the supported currencies | ||
- feeCurrencies: the list of the tokens that are accepted by the validators for fees | ||
- stakeCurrency: the staking token of the chain | ||
- features: any other features that are additionally supported by the chain | ||
- cosmwasm: supports CosmWasm smart contracts | ||
- secretwasm: supports WASM smart contracts of Secret Network | ||
- eth-address-gen: supports EVM account generation | ||
- eth-key-sign: supports EVM signatures | ||
- axelar-evm-bridge: supports EVM bridge provided by Axelar Network | ||
- osmosis-txfees: supports paying fees in other currencies on Osmosis | ||
|
||
## NOTE: | ||
|
||
- please check if the chain information file is in JSON format. | ||
- Chain logos should be in PNG format in 256x256px resolution. Please also note that the images will be automatically cropped into a circle to be displayed on the wallet (See the sample image above) | ||
- RPC | ||
- Please check if the RPC node is not currently experiencing any issues/errors. | ||
- Please double-check if your chainId matches the RPC node’s chainId. | ||
- Check if websocket connection is open. | ||
- REST | ||
- Please check if the REST node is not currently experiencing any issues/errors. | ||
- Please double-check if your chainId matches the REST node’s chainId. | ||
- There are two cases that we cannot resolve: 1) websocket connection is not open, and 2) the coin type does not follow the BIP-44 standard. For the websocket issue, please reach out to the chain’s core team. For the coin type issue, please double-check if it follows the standard, before submitting the request. |
Oops, something went wrong.