Compare commits
116
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
3ad3bf0124 | ||
|
|
6b31a9bcd3 | ||
|
|
085076117b | ||
|
|
83e99dbf28 | ||
|
|
e47ceafeae | ||
|
|
96b1aa1521 | ||
|
|
3ff8eecf18 | ||
|
|
805896c78d | ||
|
|
48ec060267 | ||
|
|
4bdeefe6cb | ||
|
|
95bcfa6df8 | ||
|
|
4ba431f4a4 | ||
|
|
e453e3651e | ||
|
|
e2ec70c492 | ||
|
|
02f5766bcb | ||
|
|
6ea5eea1d8 | ||
|
|
682f1c673f | ||
|
|
4cbbad98b3 | ||
|
|
e4893a0821 | ||
|
|
766cc75640 | ||
|
|
f994278a51 | ||
|
|
0666fb018b | ||
|
|
61e8985149 | ||
|
|
b8b8a7ca07 | ||
|
|
b97cf2e588 | ||
|
|
97b5147bde | ||
|
|
13c1e23757 | ||
|
|
5ac451da2b | ||
|
|
9a4a542ce9 | ||
|
|
79768d4cfa | ||
|
|
4d07b4b4e7 | ||
|
|
f281e1a080 | ||
|
|
92936b7ffa | ||
|
|
a9618d9bca | ||
|
|
6b145d4b36 | ||
|
|
49eceaa08e | ||
|
|
d6ae520aaf | ||
|
|
7a420889f6 | ||
|
|
de7b619676 | ||
|
|
b56511e22d | ||
|
|
a6fce0f691 | ||
|
|
2129c1f8c1 | ||
|
|
1f49af3d5b | ||
|
|
77c5ca1bd5 | ||
|
|
283fd7db5d | ||
|
|
c2324bfdc2 | ||
|
|
485abd06aa | ||
|
|
9fa628f894 | ||
|
|
ddc1c33a53 | ||
|
|
9fdcf3113a | ||
|
|
6c0c65389f | ||
|
|
91089a3869 | ||
|
|
d8c1c9433e | ||
|
|
d1e2d5f90f | ||
|
|
2a53405dea | ||
|
|
0f5343a303 | ||
|
|
4b77bc9b88 | ||
|
|
e2ea5a716f | ||
|
|
8463a1761f | ||
|
|
e3161e5986 | ||
|
|
5c7c0923e4 | ||
|
|
6ae9fbf988 | ||
|
|
923b9ead3d | ||
|
|
92d190709b | ||
|
|
43d8a65e1d | ||
|
|
93eca1de7d | ||
|
|
52d37f0187 | ||
|
|
c6efc2389f | ||
|
|
379d4e167a | ||
|
|
8ef5a6f217 | ||
|
|
9ea439692d | ||
|
|
9e593574f1 | ||
|
|
abf609a401 | ||
|
|
781824ba05 | ||
|
|
1baed0b1d8 | ||
|
|
439d791996 | ||
|
|
efff9cfda0 | ||
|
|
f630630b1f | ||
|
|
1a574ef3d8 | ||
|
|
2221f97ddc | ||
|
|
34f3d7104c | ||
|
|
a4c9017dd5 | ||
|
|
c18738bb34 | ||
|
|
4d5fdda907 | ||
|
|
f619249110 | ||
|
|
e4b4a8d287 | ||
|
|
1efa22afd3 | ||
|
|
ba9f593be8 | ||
|
|
ce0b1bf288 | ||
|
|
7522320050 | ||
|
|
4dfe2f6ee6 | ||
|
|
b17194bd46 | ||
|
|
1fbc0d061a | ||
|
|
75bec68d23 | ||
|
|
ce48d13cd7 | ||
|
|
bddb1566f1 | ||
|
|
b2d0ffb049 | ||
|
|
956ceff3c3 | ||
|
|
ce1ecb9f9f | ||
|
|
48bff31f35 | ||
|
|
0eb0aae29a | ||
|
|
04775954a0 | ||
|
|
bd40bc2ef1 | ||
|
|
17a03e94d2 | ||
|
|
4154c6f51a | ||
|
|
c4862425dc | ||
|
|
d6913d70b2 | ||
|
|
d01b135d26 | ||
|
|
71532e5a9f | ||
|
|
aad57a566b | ||
|
|
2ec2802119 | ||
|
|
208d97e6a8 | ||
|
|
b3eb309c1e | ||
|
|
33d1cc7f92 | ||
|
|
6e9b9dba1d | ||
|
|
5f0493d0fb |
+10
-5
@@ -1,21 +1,26 @@
|
||||
{
|
||||
"$schema": "https://unpkg.com/@changesets/[email protected]/schema.json",
|
||||
"changelog": ["@changesets/changelog-github", { "repo": "thirdweb-dev/js" }],
|
||||
"changelog": [
|
||||
"@changesets/changelog-github",
|
||||
{
|
||||
"repo": "thirdweb-dev/js"
|
||||
}
|
||||
],
|
||||
"commit": false,
|
||||
"fixed": [
|
||||
["@thirdweb-dev/sdk", "@thirdweb-dev/react-core", "@thirdweb-dev/react"]
|
||||
["@thirdweb-dev/react-core", "@thirdweb-dev/react"],
|
||||
["@thirdweb-dev/react-native-compat", "@thirdweb-dev/react-native"]
|
||||
],
|
||||
"linked": [],
|
||||
"access": "public",
|
||||
"baseBranch": "main",
|
||||
"updateInternalDependencies": "patch",
|
||||
"ignore": ["e2e-cra-5", "e2e-next-12", "e2e-vite-3"],
|
||||
"ignore": ["e2e-cra-5", "e2e-next-13", "e2e-vite-3"],
|
||||
"___experimentalUnsafeOptions_WILL_CHANGE_IN_PATCH": {
|
||||
"updateInternalDependents": "always",
|
||||
"onlyUpdatePeerDependentsWhenOutOfRange": true
|
||||
},
|
||||
"snapshot": {
|
||||
"useCalculatedVersion": true,
|
||||
"prereleaseTemplate": "{tag}-{datetime}-{commit}"
|
||||
"prereleaseTemplate": "{tag}-{commit}-{datetime}"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -4,15 +4,18 @@ description: "Sets up Node.js and runs install"
|
||||
runs:
|
||||
using: composite
|
||||
steps:
|
||||
- uses: pnpm/action-setup@v2
|
||||
with:
|
||||
version: 7
|
||||
- name: Setup Node.js
|
||||
uses: actions/setup-node@v3
|
||||
with:
|
||||
node-version: 16
|
||||
registry-url: "https://registry.npmjs.org"
|
||||
cache: "yarn"
|
||||
cache: "pnpm"
|
||||
|
||||
- name: Install dependencies
|
||||
shell: bash
|
||||
run: yarn
|
||||
run: pnpm install
|
||||
env:
|
||||
PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD: "1"
|
||||
|
||||
@@ -23,7 +23,7 @@ We use [Turborepo](https://turborepo.org/docs/getting-started) to manage the mon
|
||||
You can see a quick outline of each of the projects within this repo below, each living within the [/packages](/packages) directory:
|
||||
|
||||
| Package | Description | Latest Version |
|
||||
|--------------------------------|----------------------------------------------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
|
||||
| ------------------------------ | -------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| [/sdk](./packages/sdk) | Best in class web3 SDK for Browser, Node and Mobile apps | <a href="https://www.npmjs.com/package/@thirdweb-dev/sdk"><img src="https://img.shields.io/npm/v/@thirdweb-dev/sdk?color=red&label=npm&logo=npm" alt="npm version"/></a> |
|
||||
| [/react](./packages/react) | Ultimate collection of React hooks for your web3 apps | <a href="https://www.npmjs.com/package/@thirdweb-dev/react"><img src="https://img.shields.io/npm/v/@thirdweb-dev/react?color=red&label=npm&logo=npm" alt="npm version"/></a> |
|
||||
| [/auth](./packages/auth) | Best in class wallet authentication for Node backends | <a href="https://www.npmjs.com/package/@thirdweb-dev/auth"><img src="https://img.shields.io/npm/v/@thirdweb-dev/auth?color=red&label=npm&logo=npm" alt="npm version"/></a> |
|
||||
@@ -35,7 +35,7 @@ You can see a quick outline of each of the projects within this repo below, each
|
||||
|
||||
Let's explore how you can set up the repo on your local machine and start contributing!
|
||||
|
||||
This section requires some existing knowledge of [Git](https://git-scm.com/), [Node.js](https://nodejs.org/en/) and [Yarn](https://yarnpkg.com/).
|
||||
This section requires some existing knowledge of [Git](https://git-scm.com/), [Node.js](https://nodejs.org/en/) and [pnpm](https://pnpm.io/).
|
||||
|
||||
<br/>
|
||||
|
||||
@@ -57,7 +57,7 @@ To begin:
|
||||
|
||||
4. Install the dependencies:
|
||||
```
|
||||
yarn
|
||||
pnpm install
|
||||
```
|
||||
|
||||
Now you have got the repo on your local machine, and you're ready to start making your changes!
|
||||
@@ -69,7 +69,7 @@ We use [yalc](https://github.com/wclr/yalc) to test changes locally.
|
||||
Install the yalc CLI globally:
|
||||
|
||||
```bash
|
||||
yarn global add yalc
|
||||
pnpm add yalc -g
|
||||
```
|
||||
|
||||
First, create a test project where you can experiment with your changes:
|
||||
@@ -91,10 +91,10 @@ yalc add @thirdweb-dev/sdk # Link the sdk package
|
||||
From the monorepo, run the following command to publish your local changes to the test project:
|
||||
|
||||
```bash
|
||||
yarn push
|
||||
pnpm push
|
||||
```
|
||||
|
||||
Now, each time you make a change to the monorepo, you can run `yarn push` to publish your changes to the test project.
|
||||
Now, each time you make a change to the monorepo, you can run `pnpm push` to publish your changes to the test project.
|
||||
|
||||
In your test project, you need to:
|
||||
|
||||
@@ -110,7 +110,7 @@ Once you're satisfied with your changes, you are ready to submit them for review
|
||||
1. Use [changeset](https://github.com/changesets/changesets) to generate a changeset file:
|
||||
|
||||
```
|
||||
yarn changeset
|
||||
pnpm changeset
|
||||
```
|
||||
|
||||
We follow [semantic versioning](https://semver.org/) for generating versioned releases of our packages (i.e. version = `MAJOR.MINOR.PATCH`)
|
||||
|
||||
@@ -0,0 +1,11 @@
|
||||
# To get started with Dependabot version updates, you'll need to specify which
|
||||
# package ecosystems to update and where the package manifests are located.
|
||||
# Please see the documentation for all configuration options:
|
||||
# https://docs.github.com/github/administering-a-repository/configuration-options-for-dependency-updates
|
||||
|
||||
version: 2
|
||||
updates:
|
||||
- package-ecosystem: "npm" # See documentation for possible values
|
||||
directory: "/" # Location of package manifests
|
||||
schedule:
|
||||
interval: "weekly"
|
||||
@@ -33,7 +33,7 @@ jobs:
|
||||
- name: Install
|
||||
uses: ./.github/composite-actions/install
|
||||
|
||||
- run: yarn build
|
||||
- run: pnpm build
|
||||
|
||||
# We use week in the turbo cache key to keep the cache from infinitely growing
|
||||
- id: get-week
|
||||
@@ -58,6 +58,10 @@ jobs:
|
||||
node-version: 16
|
||||
check-latest: true
|
||||
|
||||
- uses: pnpm/action-setup@v2
|
||||
with:
|
||||
version: 7
|
||||
|
||||
- uses: actions/cache@v3
|
||||
timeout-minutes: 5
|
||||
id: restore-build
|
||||
@@ -65,7 +69,7 @@ jobs:
|
||||
path: ./*
|
||||
key: ${{ github.sha }}-${{ github.run_number }}
|
||||
|
||||
- run: yarn lint
|
||||
- run: pnpm lint
|
||||
|
||||
test:
|
||||
timeout-minutes: 15
|
||||
@@ -79,6 +83,10 @@ jobs:
|
||||
node-version: 16
|
||||
check-latest: true
|
||||
|
||||
- uses: pnpm/action-setup@v2
|
||||
with:
|
||||
version: 7
|
||||
|
||||
- uses: actions/cache@v3
|
||||
timeout-minutes: 5
|
||||
id: restore-build
|
||||
@@ -86,7 +94,7 @@ jobs:
|
||||
path: ./*
|
||||
key: ${{ github.sha }}-${{ github.run_number }}
|
||||
|
||||
- run: yarn test
|
||||
- run: pnpm test
|
||||
|
||||
- name: Upload coverage reports to Codecov
|
||||
uses: codecov/codecov-action@v3
|
||||
@@ -105,6 +113,10 @@ jobs:
|
||||
node-version: 16
|
||||
check-latest: true
|
||||
|
||||
- uses: pnpm/action-setup@v2
|
||||
with:
|
||||
version: 7
|
||||
|
||||
- uses: actions/cache@v3
|
||||
timeout-minutes: 5
|
||||
id: restore-build
|
||||
@@ -116,6 +128,6 @@ jobs:
|
||||
run: npx playwright install --with-deps
|
||||
|
||||
- name: Run e2e tests
|
||||
run: yarn e2e
|
||||
run: pnpm e2e
|
||||
env:
|
||||
NODE_OPTIONS: "--max_old_space_size=4096"
|
||||
|
||||
@@ -6,6 +6,10 @@ on:
|
||||
issue_comment:
|
||||
types: [created]
|
||||
|
||||
env:
|
||||
TURBO_TOKEN: ${{ secrets.TURBO_TOKEN }}
|
||||
TURBO_TEAM: ${{ secrets.TURBO_TEAM }}
|
||||
|
||||
jobs:
|
||||
deploy-check:
|
||||
# this just checks if ur allowed to do the action so does not need to run on a fast machine
|
||||
@@ -67,7 +71,7 @@ jobs:
|
||||
uses: ./.github/composite-actions/install
|
||||
|
||||
- name: Build
|
||||
run: yarn build
|
||||
run: pnpm build
|
||||
|
||||
- name: Configure npm
|
||||
run: |
|
||||
@@ -78,8 +82,8 @@ jobs:
|
||||
- name: Deploy pre-release
|
||||
id: changesets
|
||||
run: |
|
||||
yarn changeset version --snapshot dev
|
||||
pnpm changeset version --snapshot dev
|
||||
node ./scripts/pre-release.mjs
|
||||
yarn changeset publish --tag dev --no-git-tag
|
||||
pnpm changeset publish --tag dev --no-git-tag
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
|
||||
@@ -8,6 +8,10 @@ on:
|
||||
branches:
|
||||
- main
|
||||
|
||||
env:
|
||||
TURBO_TOKEN: ${{ secrets.TURBO_TOKEN }}
|
||||
TURBO_TEAM: ${{ secrets.TURBO_TEAM }}
|
||||
|
||||
concurrency:
|
||||
group: ${{ github.workflow }}-${{ github.ref }}
|
||||
|
||||
@@ -26,14 +30,14 @@ jobs:
|
||||
uses: ./.github/composite-actions/install
|
||||
|
||||
- name: Build
|
||||
run: yarn build:release
|
||||
run: pnpm build:release
|
||||
|
||||
- name: Create release Pull Request or publish to NPM
|
||||
id: changesets
|
||||
uses: changesets/action@v1
|
||||
with:
|
||||
publish: yarn release
|
||||
version: yarn version-packages
|
||||
publish: pnpm release
|
||||
version: pnpm version-packages
|
||||
env:
|
||||
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
|
||||
NPM_TOKEN: ${{ secrets.NPM_TOKEN }}
|
||||
@@ -43,8 +47,8 @@ jobs:
|
||||
if: steps.changesets.outputs.published != 'true'
|
||||
run: |
|
||||
git checkout main
|
||||
yarn version-packages:nightly
|
||||
yarn release:nightly
|
||||
pnpm version-packages:nightly
|
||||
pnpm release:nightly
|
||||
env:
|
||||
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
|
||||
@@ -21,7 +21,7 @@
|
||||
## Packages
|
||||
|
||||
| Package | Description | Latest Version |
|
||||
|--------------------------------|----------------------------------------------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
|
||||
| ------------------------------ | -------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| [/sdk](./packages/sdk) | Best in class web3 SDK for Browser, Node and Mobile apps | <a href="https://www.npmjs.com/package/@thirdweb-dev/sdk"><img src="https://img.shields.io/npm/v/@thirdweb-dev/sdk?color=red&label=npm&logo=npm" alt="npm version"/></a> |
|
||||
| [/react](./packages/react) | Ultimate collection of React hooks for your web3 apps | <a href="https://www.npmjs.com/package/@thirdweb-dev/react"><img src="https://img.shields.io/npm/v/@thirdweb-dev/react?color=red&label=npm&logo=npm" alt="npm version"/></a> |
|
||||
| [/auth](./packages/auth) | Best in class wallet authentication for Node backends | <a href="https://www.npmjs.com/package/@thirdweb-dev/auth"><img src="https://img.shields.io/npm/v/@thirdweb-dev/auth?color=red&label=npm&logo=npm" alt="npm version"/></a> |
|
||||
|
||||
+23
-18
@@ -6,13 +6,11 @@
|
||||
"author": "thirdweb eng <[email protected]>",
|
||||
"license": "MIT",
|
||||
"private": true,
|
||||
"workspaces": {
|
||||
"packages": [
|
||||
"packages/*",
|
||||
"test/**/*"
|
||||
]
|
||||
"engines": {
|
||||
"node": ">=16.7.0"
|
||||
},
|
||||
"scripts": {
|
||||
"preinstall": "npx only-allow pnpm",
|
||||
"test": "turbo run test test:evm test:solana --filter=./packages/*",
|
||||
"e2e": "turbo run e2e",
|
||||
"build": "turbo run build --filter=./packages/*",
|
||||
@@ -26,25 +24,32 @@
|
||||
"changeset": "changeset",
|
||||
"version-packages": "changeset version",
|
||||
"release": "node ./scripts/pre-release.mjs && changeset publish",
|
||||
"version-packages:nightly": "changeset version --snapshot nightly",
|
||||
"version-packages:nightly": "node scripts/pre-nightly.mjs && changeset version --snapshot nightly",
|
||||
"release:nightly": "node ./scripts/pre-release.mjs && changeset publish --tag nightly",
|
||||
"push": "turbo run push --filter=./packages/*"
|
||||
"push": "turbo run push --filter=./packages/*",
|
||||
"hotlink-init": "node ./scripts/hotlink/hotlink-init.mjs",
|
||||
"hotlink-revert": "node ./scripts/hotlink/hotlink-revert.mjs",
|
||||
"explain:major": "node ./scripts/changeset-explain-major.mjs"
|
||||
},
|
||||
"packageManager": "[email protected]",
|
||||
"packageManager": "[email protected]",
|
||||
"dependencies": {
|
||||
"@changesets/changelog-github": "^0.4.6",
|
||||
"@changesets/cli": "^2.24.3",
|
||||
"@manypkg/cli": "^0.19.1",
|
||||
"@changesets/changelog-github": "^0.4.8",
|
||||
"@changesets/cli": "^2.26.1",
|
||||
"@changesets/get-dependents-graph": "^1.3.5",
|
||||
"@changesets/get-release-plan": "^3.0.16",
|
||||
"@changesets/parse": "^0.3.16",
|
||||
"@manypkg/cli": "^0.20.0",
|
||||
"@manypkg/get-packages": "^1.1.3",
|
||||
"@trivago/prettier-plugin-sort-imports": "^4.0.0",
|
||||
"eslint": "^8.21.0",
|
||||
"@playwright/test": "1.31.2",
|
||||
"@trivago/prettier-plugin-sort-imports": "^4.1.1",
|
||||
"@types/node": "^18.15.7",
|
||||
"eslint": "^8.36.0",
|
||||
"mocha": "^10.2.0",
|
||||
"postinstall-postinstall": "^2.1.0",
|
||||
"prettier": "^2.7.1",
|
||||
"turbo": "^1.8.3",
|
||||
"yalc": "^1.0.0-pre.53"
|
||||
"prettier": "^2.8.7",
|
||||
"turbo": "^1.8.5",
|
||||
"yalc": "1.0.0-pre.53"
|
||||
},
|
||||
"manypkg": {
|
||||
"defaultBranch": "main"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,5 +1,20 @@
|
||||
# @thirdweb-dev/auth
|
||||
|
||||
## 3.0.8
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- [#791](https://github.com/thirdweb-dev/js/pull/791) [`c2324bfd`](https://github.com/thirdweb-dev/js/commit/c2324bfdc25e92589a0dcd9736925924f7b7e516) Thanks [@jnsdls](https://github.com/jnsdls)! - now relies on `@thirdweb-dev/wallets` for wallet integrations instead of rolling its own
|
||||
|
||||
- [#794](https://github.com/thirdweb-dev/js/pull/794) [`a6fce0f6`](https://github.com/thirdweb-dev/js/commit/a6fce0f691ffeb2b7ec1355b1c55fa7e58700406) Thanks [@shift4id](https://github.com/shift4id)! - Minor copy changes
|
||||
|
||||
- [#702](https://github.com/thirdweb-dev/js/pull/702) [`33d1cc7f`](https://github.com/thirdweb-dev/js/commit/33d1cc7f92cd982e9e55130472c0006bb999f682) Thanks [@jnsdls](https://github.com/jnsdls)! - enable `browser` export
|
||||
|
||||
- [#709](https://github.com/thirdweb-dev/js/pull/709) [`d6913d70`](https://github.com/thirdweb-dev/js/commit/d6913d70b2d62a40f5e08e5f23f74e1f174887ca) Thanks [@adam-maj](https://github.com/adam-maj)! - Make @thirdweb-dev/wallets actual dev dependency of auth
|
||||
|
||||
- Updated dependencies [[`d01b135d`](https://github.com/thirdweb-dev/js/commit/d01b135d26efe6cebd84110b1a8eacee5c1b98db), [`93eca1de`](https://github.com/thirdweb-dev/js/commit/93eca1de7d23d66a129418aee72a41e394cbec16), [`a6fce0f6`](https://github.com/thirdweb-dev/js/commit/a6fce0f691ffeb2b7ec1355b1c55fa7e58700406), [`4bdeefe6`](https://github.com/thirdweb-dev/js/commit/4bdeefe6cb343a979b336dcd99197d895c2ae1fb), [`33d1cc7f`](https://github.com/thirdweb-dev/js/commit/33d1cc7f92cd982e9e55130472c0006bb999f682), [`83e99dbf`](https://github.com/thirdweb-dev/js/commit/83e99dbf289c7b8b8991c58383f8bc2a63f5a702), [`95bcfa6d`](https://github.com/thirdweb-dev/js/commit/95bcfa6df84c48cb5d590f47489f275d22bd660a), [`4d07b4b4`](https://github.com/thirdweb-dev/js/commit/4d07b4b4e7bdc6244d399f287611fd5eb5d39cac), [`4d5fdda9`](https://github.com/thirdweb-dev/js/commit/4d5fdda907af0451507d5e2812ec91fbd513a11c), [`6b31a9bc`](https://github.com/thirdweb-dev/js/commit/6b31a9bcd3898cf56ee3b774a44b7481738c8e60), [`4b77bc9b`](https://github.com/thirdweb-dev/js/commit/4b77bc9b88a218647e6c32c7002880f07347f32a), [`d01b135d`](https://github.com/thirdweb-dev/js/commit/d01b135d26efe6cebd84110b1a8eacee5c1b98db), [`e47ceafe`](https://github.com/thirdweb-dev/js/commit/e47ceafeae950c22860ca4c7dffba7d573e04a94), [`6c0c6538`](https://github.com/thirdweb-dev/js/commit/6c0c65389fb5b990a6e780e7d3f7dbd403fe950d), [`ddc1c33a`](https://github.com/thirdweb-dev/js/commit/ddc1c33a531dd063158ec736f43dd65b423c21e8), [`2221f97d`](https://github.com/thirdweb-dev/js/commit/2221f97ddc997d864db3a5f00e82862ece574922)]:
|
||||
- @thirdweb-dev/wallets@0.2.9
|
||||
|
||||
## 3.0.7
|
||||
|
||||
### Patch Changes
|
||||
|
||||
@@ -1,4 +1,7 @@
|
||||
{
|
||||
"main": "dist/thirdweb-dev-auth-evm.cjs.js",
|
||||
"module": "dist/thirdweb-dev-auth-evm.esm.js"
|
||||
"module": "dist/thirdweb-dev-auth-evm.esm.js",
|
||||
"browser": {
|
||||
"./dist/thirdweb-dev-auth-evm.esm.js": "./dist/thirdweb-dev-auth-evm.browser.esm.js"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,4 +1,7 @@
|
||||
{
|
||||
"main": "dist/thirdweb-dev-auth-express.cjs.js",
|
||||
"module": "dist/thirdweb-dev-auth-express.esm.js"
|
||||
"module": "dist/thirdweb-dev-auth-express.esm.js",
|
||||
"browser": {
|
||||
"./dist/thirdweb-dev-auth-express.esm.js": "./dist/thirdweb-dev-auth-express.browser.esm.js"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,4 +1,7 @@
|
||||
{
|
||||
"main": "dist/thirdweb-dev-auth-next-auth.cjs.js",
|
||||
"module": "dist/thirdweb-dev-auth-next-auth.esm.js"
|
||||
"module": "dist/thirdweb-dev-auth-next-auth.esm.js",
|
||||
"browser": {
|
||||
"./dist/thirdweb-dev-auth-next-auth.esm.js": "./dist/thirdweb-dev-auth-next-auth.browser.esm.js"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,4 +1,7 @@
|
||||
{
|
||||
"main": "dist/thirdweb-dev-auth-next.cjs.js",
|
||||
"module": "dist/thirdweb-dev-auth-next.esm.js"
|
||||
"module": "dist/thirdweb-dev-auth-next.esm.js",
|
||||
"browser": {
|
||||
"./dist/thirdweb-dev-auth-next.esm.js": "./dist/thirdweb-dev-auth-next.browser.esm.js"
|
||||
}
|
||||
}
|
||||
|
||||
+45
-32
@@ -1,31 +1,52 @@
|
||||
{
|
||||
"name": "@thirdweb-dev/auth",
|
||||
"version": "3.0.7",
|
||||
"version": "3.0.8",
|
||||
"main": "dist/thirdweb-dev-auth.cjs.js",
|
||||
"module": "dist/thirdweb-dev-auth.esm.js",
|
||||
"browser": {
|
||||
"./dist/thirdweb-dev-auth.esm.js": "./dist/thirdweb-dev-auth.browser.esm.js"
|
||||
},
|
||||
"exports": {
|
||||
".": {
|
||||
"module": "./dist/thirdweb-dev-auth.esm.js",
|
||||
"module": {
|
||||
"browser": "./dist/thirdweb-dev-auth.browser.esm.js",
|
||||
"default": "./dist/thirdweb-dev-auth.esm.js"
|
||||
},
|
||||
"default": "./dist/thirdweb-dev-auth.cjs.js"
|
||||
},
|
||||
"./evm": {
|
||||
"module": "./evm/dist/thirdweb-dev-auth-evm.esm.js",
|
||||
"module": {
|
||||
"browser": "./evm/dist/thirdweb-dev-auth-evm.browser.esm.js",
|
||||
"default": "./evm/dist/thirdweb-dev-auth-evm.esm.js"
|
||||
},
|
||||
"default": "./evm/dist/thirdweb-dev-auth-evm.cjs.js"
|
||||
},
|
||||
"./next": {
|
||||
"module": "./next/dist/thirdweb-dev-auth-next.esm.js",
|
||||
"module": {
|
||||
"browser": "./next/dist/thirdweb-dev-auth-next.browser.esm.js",
|
||||
"default": "./next/dist/thirdweb-dev-auth-next.esm.js"
|
||||
},
|
||||
"default": "./next/dist/thirdweb-dev-auth-next.cjs.js"
|
||||
},
|
||||
"./solana": {
|
||||
"module": "./solana/dist/thirdweb-dev-auth-solana.esm.js",
|
||||
"module": {
|
||||
"browser": "./solana/dist/thirdweb-dev-auth-solana.browser.esm.js",
|
||||
"default": "./solana/dist/thirdweb-dev-auth-solana.esm.js"
|
||||
},
|
||||
"default": "./solana/dist/thirdweb-dev-auth-solana.cjs.js"
|
||||
},
|
||||
"./express": {
|
||||
"module": "./express/dist/thirdweb-dev-auth-express.esm.js",
|
||||
"module": {
|
||||
"browser": "./express/dist/thirdweb-dev-auth-express.browser.esm.js",
|
||||
"default": "./express/dist/thirdweb-dev-auth-express.esm.js"
|
||||
},
|
||||
"default": "./express/dist/thirdweb-dev-auth-express.cjs.js"
|
||||
},
|
||||
"./next-auth": {
|
||||
"module": "./next-auth/dist/thirdweb-dev-auth-next-auth.esm.js",
|
||||
"module": {
|
||||
"browser": "./next-auth/dist/thirdweb-dev-auth-next-auth.browser.esm.js",
|
||||
"default": "./next-auth/dist/thirdweb-dev-auth-next-auth.esm.js"
|
||||
},
|
||||
"default": "./next-auth/dist/thirdweb-dev-auth-next-auth.cjs.js"
|
||||
},
|
||||
"./package.json": "./package.json"
|
||||
@@ -50,7 +71,11 @@
|
||||
"evm/index.ts",
|
||||
"solana/index.ts"
|
||||
],
|
||||
"exports": true
|
||||
"exports": {
|
||||
"envConditions": [
|
||||
"browser"
|
||||
]
|
||||
}
|
||||
},
|
||||
"devDependencies": {
|
||||
"@babel/core": "^7.19.3",
|
||||
@@ -60,22 +85,23 @@
|
||||
"@microsoft/api-extractor": "^7.29.2",
|
||||
"@microsoft/tsdoc": "^0.14.1",
|
||||
"@preconstruct/cli": "^2.2.1",
|
||||
"@solana/web3.js": "^1.73.0",
|
||||
"@swc-node/register": "^1.5.4",
|
||||
"@solana/web3.js": "^1.62.0",
|
||||
"@swc-node/register": "^1.5.1",
|
||||
"@swc/core": "^1.3.23",
|
||||
"@thirdweb-dev/wallets": "*",
|
||||
"@types/bs58": "^4.0.1",
|
||||
"@types/chai": "^4.3.4",
|
||||
"@thirdweb-dev/tsconfig": "workspace:*",
|
||||
"@types/chai": "^4.3.3",
|
||||
"@types/cookie": "^0.5.1",
|
||||
"@types/cookie-parser": "^1.4.3",
|
||||
"@types/express": "^4.17.13",
|
||||
"@types/mocha": "^10.0.1",
|
||||
"@types/mocha": "^10.0.0",
|
||||
"@types/uuid": "^9.0.0",
|
||||
"@typescript-eslint/eslint-plugin": "^5.33.0",
|
||||
"@typescript-eslint/parser": "^5.33.0",
|
||||
"@wagmi/core": "^0.8.18",
|
||||
"chai": "^4.3.7",
|
||||
"chai": "^4.3.6",
|
||||
"cookie-parser": "^1.4.6",
|
||||
"eslint": "^8.21.0",
|
||||
"eslint-config-prettier": "^8.3.0",
|
||||
"eslint-config-thirdweb": "workspace:*",
|
||||
"eslint-plugin-import": "^2.26.0",
|
||||
"eslint-plugin-inclusive-language": "^2.2.0",
|
||||
"eslint-plugin-prettier": "^4.2.1",
|
||||
@@ -84,39 +110,25 @@
|
||||
"express": "^4.18.1",
|
||||
"mocha": "^10.2.0",
|
||||
"next": "^12.2.0",
|
||||
"next-auth": "^4.10.3",
|
||||
"next-auth": "^4.20.1",
|
||||
"prettier": "^2.7.1",
|
||||
"react": "^18.2.0",
|
||||
"react-dom": "^18.2.0",
|
||||
"typescript": "^4.7.4"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"@noble/ed25519": "^1.7.1",
|
||||
"@solana/web3.js": "^1.73.0",
|
||||
"bs58": "^5.0.0",
|
||||
"cookie-parser": "^1.4.6",
|
||||
"ethers": "^5",
|
||||
"express": "^4",
|
||||
"next": "^12 || ^13",
|
||||
"next-auth": "^4",
|
||||
"tweetnacl": "^1.0.3"
|
||||
"next-auth": "^4"
|
||||
},
|
||||
"peerDependenciesMeta": {
|
||||
"@noble/ed25519": {
|
||||
"optional": true
|
||||
},
|
||||
"@solana/web3.js": {
|
||||
"optional": true
|
||||
},
|
||||
"bs58": {
|
||||
"optional": true
|
||||
},
|
||||
"cookie-parser": {
|
||||
"optional": true
|
||||
},
|
||||
"tweetnacl": {
|
||||
"optional": true
|
||||
},
|
||||
"ethers": {
|
||||
"optional": true
|
||||
},
|
||||
@@ -131,6 +143,7 @@
|
||||
}
|
||||
},
|
||||
"dependencies": {
|
||||
"@thirdweb-dev/wallets": "workspace:*",
|
||||
"cookie": "^0.5.0",
|
||||
"uuid": "^9.0.0",
|
||||
"zod": "^3.20.2"
|
||||
|
||||
@@ -1,4 +1,7 @@
|
||||
{
|
||||
"main": "dist/thirdweb-dev-auth-solana.cjs.js",
|
||||
"module": "dist/thirdweb-dev-auth-solana.esm.js"
|
||||
"module": "dist/thirdweb-dev-auth-solana.esm.js",
|
||||
"browser": {
|
||||
"./dist/thirdweb-dev-auth-solana.esm.js": "./dist/thirdweb-dev-auth-solana.browser.esm.js"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,28 +0,0 @@
|
||||
import { ThirdwebAuth } from "../core";
|
||||
import { LoginPayload, VerifyOptions } from "../core/schema";
|
||||
import { SignerWallet } from "./signer";
|
||||
import { ethers } from "ethers";
|
||||
|
||||
const wallet = new SignerWallet(ethers.Wallet.createRandom());
|
||||
const authMap = new Map<string, ThirdwebAuth>();
|
||||
|
||||
export async function verifyLogin(
|
||||
domain: string,
|
||||
payload: LoginPayload,
|
||||
options?: Omit<VerifyOptions, "domain">,
|
||||
) {
|
||||
let auth: ThirdwebAuth;
|
||||
if (!authMap.has(domain)) {
|
||||
auth = new ThirdwebAuth(wallet, domain);
|
||||
authMap.set(domain, auth);
|
||||
} else {
|
||||
auth = authMap.get(domain) as ThirdwebAuth;
|
||||
}
|
||||
|
||||
try {
|
||||
const address = await auth.verify(payload, options);
|
||||
return { address, error: undefined };
|
||||
} catch (err: any) {
|
||||
return { address: undefined, error: err.message };
|
||||
}
|
||||
}
|
||||
@@ -1,579 +0,0 @@
|
||||
import type { Chain } from "@wagmi/core";
|
||||
|
||||
const arbitrum: Chain = {
|
||||
id: 42_161,
|
||||
name: "Arbitrum One",
|
||||
network: "arbitrum",
|
||||
nativeCurrency: { name: "Ether", symbol: "ETH", decimals: 18 },
|
||||
rpcUrls: {
|
||||
alchemy: {
|
||||
http: ["https://arb-mainnet.g.alchemy.com/v2"],
|
||||
webSocket: ["wss://arb-mainnet.g.alchemy.com/v2"],
|
||||
},
|
||||
infura: {
|
||||
http: ["https://arbitrum-mainnet.infura.io/v3"],
|
||||
webSocket: ["wss://arbitrum-mainnet.infura.io/ws/v3"],
|
||||
},
|
||||
default: {
|
||||
http: ["https://arb1.arbitrum.io/rpc"],
|
||||
},
|
||||
public: {
|
||||
http: ["https://arb1.arbitrum.io/rpc"],
|
||||
},
|
||||
},
|
||||
blockExplorers: {
|
||||
etherscan: { name: "Arbiscan", url: "https://arbiscan.io" },
|
||||
default: { name: "Arbiscan", url: "https://arbiscan.io" },
|
||||
},
|
||||
contracts: {
|
||||
multicall3: {
|
||||
address: "0xca11bde05977b3631167028862be2a173976ca11",
|
||||
blockCreated: 7654707,
|
||||
},
|
||||
},
|
||||
};
|
||||
|
||||
const arbitrumGoerli: Chain = {
|
||||
id: 421_613,
|
||||
name: "Arbitrum Goerli",
|
||||
network: "arbitrum-goerli",
|
||||
nativeCurrency: {
|
||||
name: "Arbitrum Goerli Ether",
|
||||
symbol: "ETH",
|
||||
decimals: 18,
|
||||
},
|
||||
rpcUrls: {
|
||||
alchemy: {
|
||||
http: ["https://arb-goerli.g.alchemy.com/v2"],
|
||||
webSocket: ["wss://arb-goerli.g.alchemy.com/v2"],
|
||||
},
|
||||
infura: {
|
||||
http: ["https://arbitrum-goerli.infura.io/v3"],
|
||||
webSocket: ["wss://arbitrum-goerli.infura.io/ws/v3"],
|
||||
},
|
||||
default: {
|
||||
http: ["https://goerli-rollup.arbitrum.io/rpc"],
|
||||
},
|
||||
public: {
|
||||
http: ["https://goerli-rollup.arbitrum.io/rpc"],
|
||||
},
|
||||
},
|
||||
blockExplorers: {
|
||||
etherscan: { name: "Arbiscan", url: "https://goerli.arbiscan.io/" },
|
||||
default: { name: "Arbiscan", url: "https://goerli.arbiscan.io/" },
|
||||
},
|
||||
contracts: {
|
||||
multicall3: {
|
||||
address: "0xca11bde05977b3631167028862be2a173976ca11",
|
||||
blockCreated: 88114,
|
||||
},
|
||||
},
|
||||
testnet: true,
|
||||
};
|
||||
|
||||
const avalanche: Chain = {
|
||||
id: 43_114,
|
||||
name: "Avalanche",
|
||||
network: "avalanche",
|
||||
nativeCurrency: {
|
||||
decimals: 18,
|
||||
name: "Avalanche",
|
||||
symbol: "AVAX",
|
||||
},
|
||||
rpcUrls: {
|
||||
default: { http: ["https://api.avax.network/ext/bc/C/rpc"] },
|
||||
public: { http: ["https://api.avax.network/ext/bc/C/rpc"] },
|
||||
},
|
||||
blockExplorers: {
|
||||
etherscan: { name: "SnowTrace", url: "https://snowtrace.io" },
|
||||
default: { name: "SnowTrace", url: "https://snowtrace.io" },
|
||||
},
|
||||
contracts: {
|
||||
multicall3: {
|
||||
address: "0xca11bde05977b3631167028862be2a173976ca11",
|
||||
blockCreated: 11907934,
|
||||
},
|
||||
},
|
||||
};
|
||||
|
||||
const avalancheFuji: Chain = {
|
||||
id: 43_113,
|
||||
name: "Avalanche Fuji",
|
||||
network: "avalanche-fuji",
|
||||
nativeCurrency: {
|
||||
decimals: 18,
|
||||
name: "Avalanche Fuji",
|
||||
symbol: "AVAX",
|
||||
},
|
||||
rpcUrls: {
|
||||
default: { http: ["https://api.avax-test.network/ext/bc/C/rpc"] },
|
||||
public: { http: ["https://api.avax-test.network/ext/bc/C/rpc"] },
|
||||
},
|
||||
blockExplorers: {
|
||||
etherscan: { name: "SnowTrace", url: "https://testnet.snowtrace.io" },
|
||||
default: { name: "SnowTrace", url: "https://testnet.snowtrace.io" },
|
||||
},
|
||||
contracts: {
|
||||
multicall3: {
|
||||
address: "0xca11bde05977b3631167028862be2a173976ca11",
|
||||
blockCreated: 7096959,
|
||||
},
|
||||
},
|
||||
testnet: true,
|
||||
};
|
||||
|
||||
const bsc: Chain = {
|
||||
id: 56,
|
||||
name: "BNB Smart Chain",
|
||||
network: "bsc",
|
||||
nativeCurrency: {
|
||||
decimals: 18,
|
||||
name: "BNB",
|
||||
symbol: "BNB",
|
||||
},
|
||||
rpcUrls: {
|
||||
default: { http: ["https://rpc.ankr.com/bsc"] },
|
||||
public: { http: ["https://rpc.ankr.com/bsc"] },
|
||||
},
|
||||
blockExplorers: {
|
||||
etherscan: { name: "BscScan", url: "https://bscscan.com" },
|
||||
default: { name: "BscScan", url: "https://bscscan.com" },
|
||||
},
|
||||
contracts: {
|
||||
multicall3: {
|
||||
address: "0xca11bde05977b3631167028862be2a173976ca11",
|
||||
blockCreated: 15921452,
|
||||
},
|
||||
},
|
||||
};
|
||||
|
||||
const bscTestnet: Chain = {
|
||||
id: 97,
|
||||
name: "Binance Smart Chain Testnet",
|
||||
network: "bsc-testnet",
|
||||
nativeCurrency: {
|
||||
decimals: 18,
|
||||
name: "BNB",
|
||||
symbol: "tBNB",
|
||||
},
|
||||
rpcUrls: {
|
||||
default: { http: ["https://bsc-testnet.public.blastapi.io"] },
|
||||
public: { http: ["https://bsc-testnet.public.blastapi.io"] },
|
||||
},
|
||||
blockExplorers: {
|
||||
etherscan: { name: "BscScan", url: "https://testnet.bscscan.com" },
|
||||
default: { name: "BscScan", url: "https://testnet.bscscan.com" },
|
||||
},
|
||||
contracts: {
|
||||
multicall3: {
|
||||
address: "0xca11bde05977b3631167028862be2a173976ca11",
|
||||
blockCreated: 17422483,
|
||||
},
|
||||
},
|
||||
testnet: true,
|
||||
};
|
||||
|
||||
const fantom: Chain = {
|
||||
id: 250,
|
||||
name: "Fantom",
|
||||
network: "fantom",
|
||||
nativeCurrency: {
|
||||
decimals: 18,
|
||||
name: "Fantom",
|
||||
symbol: "FTM",
|
||||
},
|
||||
rpcUrls: {
|
||||
default: { http: ["https://rpc.ankr.com/fantom"] },
|
||||
public: { http: ["https://rpc.ankr.com/fantom"] },
|
||||
},
|
||||
blockExplorers: {
|
||||
etherscan: { name: "FTMScan", url: "https://ftmscan.com" },
|
||||
default: { name: "FTMScan", url: "https://ftmscan.com" },
|
||||
},
|
||||
contracts: {
|
||||
multicall3: {
|
||||
address: "0xca11bde05977b3631167028862be2a173976ca11",
|
||||
blockCreated: 33001987,
|
||||
},
|
||||
},
|
||||
};
|
||||
|
||||
const fantomTestnet: Chain = {
|
||||
id: 4002,
|
||||
name: "Fantom Testnet",
|
||||
network: "fantom-testnet",
|
||||
nativeCurrency: {
|
||||
decimals: 18,
|
||||
name: "Fantom",
|
||||
symbol: "FTM",
|
||||
},
|
||||
rpcUrls: {
|
||||
default: { http: ["https://rpc.testnet.fantom.network"] },
|
||||
public: { http: ["https://rpc.testnet.fantom.network"] },
|
||||
},
|
||||
blockExplorers: {
|
||||
etherscan: { name: "FTMScan", url: "https://testnet.ftmscan.com" },
|
||||
default: { name: "FTMScan", url: "https://testnet.ftmscan.com" },
|
||||
},
|
||||
contracts: {
|
||||
multicall3: {
|
||||
address: "0xca11bde05977b3631167028862be2a173976ca11",
|
||||
blockCreated: 8328688,
|
||||
},
|
||||
},
|
||||
};
|
||||
|
||||
const goerli: Chain = {
|
||||
id: 5,
|
||||
network: "goerli",
|
||||
name: "Goerli",
|
||||
nativeCurrency: { name: "Goerli Ether", symbol: "ETH", decimals: 18 },
|
||||
rpcUrls: {
|
||||
alchemy: {
|
||||
http: ["https://eth-goerli.g.alchemy.com/v2"],
|
||||
webSocket: ["wss://eth-goerli.g.alchemy.com/v2"],
|
||||
},
|
||||
infura: {
|
||||
http: ["https://goerli.infura.io/v3"],
|
||||
webSocket: ["wss://goerli.infura.io/ws/v3"],
|
||||
},
|
||||
default: {
|
||||
http: ["https://rpc.ankr.com/eth_goerli"],
|
||||
},
|
||||
public: {
|
||||
http: ["https://rpc.ankr.com/eth_goerli"],
|
||||
},
|
||||
},
|
||||
blockExplorers: {
|
||||
etherscan: {
|
||||
name: "Etherscan",
|
||||
url: "https://goerli.etherscan.io",
|
||||
},
|
||||
default: {
|
||||
name: "Etherscan",
|
||||
url: "https://goerli.etherscan.io",
|
||||
},
|
||||
},
|
||||
contracts: {
|
||||
ensRegistry: {
|
||||
address: "0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e",
|
||||
},
|
||||
multicall3: {
|
||||
address: "0xca11bde05977b3631167028862be2a173976ca11",
|
||||
blockCreated: 6507670,
|
||||
},
|
||||
},
|
||||
testnet: true,
|
||||
};
|
||||
|
||||
const mainnet: Chain = {
|
||||
id: 1,
|
||||
network: "homestead",
|
||||
name: "Ethereum",
|
||||
nativeCurrency: { name: "Ether", symbol: "ETH", decimals: 18 },
|
||||
rpcUrls: {
|
||||
alchemy: {
|
||||
http: ["https://eth-mainnet.g.alchemy.com/v2"],
|
||||
webSocket: ["wss://eth-mainnet.g.alchemy.com/v2"],
|
||||
},
|
||||
infura: {
|
||||
http: ["https://mainnet.infura.io/v3"],
|
||||
webSocket: ["wss://mainnet.infura.io/ws/v3"],
|
||||
},
|
||||
default: {
|
||||
http: ["https://cloudflare-eth.com"],
|
||||
},
|
||||
public: {
|
||||
http: ["https://cloudflare-eth.com"],
|
||||
},
|
||||
},
|
||||
blockExplorers: {
|
||||
etherscan: {
|
||||
name: "Etherscan",
|
||||
url: "https://etherscan.io",
|
||||
},
|
||||
default: {
|
||||
name: "Etherscan",
|
||||
url: "https://etherscan.io",
|
||||
},
|
||||
},
|
||||
contracts: {
|
||||
ensRegistry: {
|
||||
address: "0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e",
|
||||
},
|
||||
multicall3: {
|
||||
address: "0xca11bde05977b3631167028862be2a173976ca11",
|
||||
blockCreated: 14353601,
|
||||
},
|
||||
},
|
||||
};
|
||||
|
||||
const optimism: Chain = {
|
||||
id: 10,
|
||||
name: "Optimism",
|
||||
network: "optimism",
|
||||
nativeCurrency: { name: "Ether", symbol: "ETH", decimals: 18 },
|
||||
rpcUrls: {
|
||||
alchemy: {
|
||||
http: ["https://opt-mainnet.g.alchemy.com/v2"],
|
||||
webSocket: ["wss://opt-mainnet.g.alchemy.com/v2"],
|
||||
},
|
||||
infura: {
|
||||
http: ["https://optimism-mainnet.infura.io/v3"],
|
||||
webSocket: ["wss://optimism-mainnet.infura.io/ws/v3"],
|
||||
},
|
||||
default: {
|
||||
http: ["https://mainnet.optimism.io"],
|
||||
},
|
||||
public: {
|
||||
http: ["https://mainnet.optimism.io"],
|
||||
},
|
||||
},
|
||||
blockExplorers: {
|
||||
etherscan: {
|
||||
name: "Etherscan",
|
||||
url: "https://optimistic.etherscan.io",
|
||||
},
|
||||
default: {
|
||||
name: "Etherscan",
|
||||
url: "https://optimistic.etherscan.io",
|
||||
},
|
||||
},
|
||||
contracts: {
|
||||
multicall3: {
|
||||
address: "0xca11bde05977b3631167028862be2a173976ca11",
|
||||
blockCreated: 4286263,
|
||||
},
|
||||
},
|
||||
};
|
||||
|
||||
const optimismGoerli: Chain = {
|
||||
id: 420,
|
||||
name: "Optimism Goerli",
|
||||
network: "optimism-goerli",
|
||||
nativeCurrency: { name: "Goerli Ether", symbol: "ETH", decimals: 18 },
|
||||
rpcUrls: {
|
||||
alchemy: {
|
||||
http: ["https://opt-goerli.g.alchemy.com/v2"],
|
||||
webSocket: ["wss://opt-goerli.g.alchemy.com/v2"],
|
||||
},
|
||||
infura: {
|
||||
http: ["https://optimism-goerli.infura.io/v3"],
|
||||
webSocket: ["wss://optimism-goerli.infura.io/ws/v3"],
|
||||
},
|
||||
default: {
|
||||
http: ["https://goerli.optimism.io"],
|
||||
},
|
||||
public: {
|
||||
http: ["https://goerli.optimism.io"],
|
||||
},
|
||||
},
|
||||
blockExplorers: {
|
||||
etherscan: {
|
||||
name: "Etherscan",
|
||||
url: "https://goerli-optimism.etherscan.io",
|
||||
},
|
||||
default: {
|
||||
name: "Etherscan",
|
||||
url: "https://goerli-optimism.etherscan.io",
|
||||
},
|
||||
},
|
||||
contracts: {
|
||||
multicall3: {
|
||||
address: "0xca11bde05977b3631167028862be2a173976ca11",
|
||||
blockCreated: 49461,
|
||||
},
|
||||
},
|
||||
testnet: true,
|
||||
};
|
||||
|
||||
const polygon: Chain = {
|
||||
id: 137,
|
||||
name: "Polygon",
|
||||
network: "matic",
|
||||
nativeCurrency: { name: "MATIC", symbol: "MATIC", decimals: 18 },
|
||||
rpcUrls: {
|
||||
alchemy: {
|
||||
http: ["https://polygon-mainnet.g.alchemy.com/v2"],
|
||||
webSocket: ["wss://polygon-mainnet.g.alchemy.com/v2"],
|
||||
},
|
||||
infura: {
|
||||
http: ["https://polygon-mainnet.infura.io/v3"],
|
||||
webSocket: ["wss://polygon-mainnet.infura.io/ws/v3"],
|
||||
},
|
||||
default: {
|
||||
http: ["https://polygon-rpc.com"],
|
||||
},
|
||||
public: {
|
||||
http: ["https://polygon-rpc.com"],
|
||||
},
|
||||
},
|
||||
blockExplorers: {
|
||||
etherscan: {
|
||||
name: "PolygonScan",
|
||||
url: "https://polygonscan.com",
|
||||
},
|
||||
default: {
|
||||
name: "PolygonScan",
|
||||
url: "https://polygonscan.com",
|
||||
},
|
||||
},
|
||||
contracts: {
|
||||
multicall3: {
|
||||
address: "0xca11bde05977b3631167028862be2a173976ca11",
|
||||
blockCreated: 25770160,
|
||||
},
|
||||
},
|
||||
};
|
||||
|
||||
const polygonMumbai: Chain = {
|
||||
id: 80_001,
|
||||
name: "Polygon Mumbai",
|
||||
network: "maticmum",
|
||||
nativeCurrency: { name: "MATIC", symbol: "MATIC", decimals: 18 },
|
||||
rpcUrls: {
|
||||
alchemy: {
|
||||
http: ["https://polygon-mumbai.g.alchemy.com/v2"],
|
||||
webSocket: ["wss://polygon-mumbai.g.alchemy.com/v2"],
|
||||
},
|
||||
infura: {
|
||||
http: ["https://polygon-mumbai.infura.io/v3"],
|
||||
webSocket: ["wss://polygon-mumbai.infura.io/ws/v3"],
|
||||
},
|
||||
default: {
|
||||
http: ["https://matic-mumbai.chainstacklabs.com"],
|
||||
},
|
||||
public: {
|
||||
http: ["https://matic-mumbai.chainstacklabs.com"],
|
||||
},
|
||||
},
|
||||
blockExplorers: {
|
||||
etherscan: {
|
||||
name: "PolygonScan",
|
||||
url: "https://mumbai.polygonscan.com",
|
||||
},
|
||||
default: {
|
||||
name: "PolygonScan",
|
||||
url: "https://mumbai.polygonscan.com",
|
||||
},
|
||||
},
|
||||
contracts: {
|
||||
multicall3: {
|
||||
address: "0xca11bde05977b3631167028862be2a173976ca11",
|
||||
blockCreated: 25770160,
|
||||
},
|
||||
},
|
||||
testnet: true,
|
||||
};
|
||||
|
||||
/**
|
||||
* @public
|
||||
* @deprecated - use the chainId number directly instead
|
||||
*/
|
||||
export enum ChainId {
|
||||
Mainnet = 1,
|
||||
Goerli = 5,
|
||||
Polygon = 137,
|
||||
Mumbai = 80001,
|
||||
Fantom = 250,
|
||||
FantomTestnet = 4002,
|
||||
Avalanche = 43114,
|
||||
AvalancheFujiTestnet = 43113,
|
||||
Optimism = 10,
|
||||
OptimismGoerli = 420,
|
||||
Arbitrum = 42161,
|
||||
ArbitrumGoerli = 421613,
|
||||
BinanceSmartChainMainnet = 56,
|
||||
BinanceSmartChainTestnet = 97,
|
||||
}
|
||||
|
||||
/**
|
||||
* @public
|
||||
* @deprecated - thirdweb now supports all evm chains, for a list of chain install the @thirdweb-dev/chains package
|
||||
*/
|
||||
export type SUPPORTED_CHAIN_ID =
|
||||
| ChainId.Mainnet
|
||||
| ChainId.Goerli
|
||||
| ChainId.Mumbai
|
||||
| ChainId.Polygon
|
||||
| ChainId.Fantom
|
||||
| ChainId.FantomTestnet
|
||||
| ChainId.Avalanche
|
||||
| ChainId.AvalancheFujiTestnet
|
||||
| ChainId.Optimism
|
||||
| ChainId.OptimismGoerli
|
||||
| ChainId.Arbitrum
|
||||
| ChainId.ArbitrumGoerli
|
||||
| ChainId.BinanceSmartChainMainnet
|
||||
| ChainId.BinanceSmartChainTestnet;
|
||||
|
||||
/**
|
||||
* @public
|
||||
* @deprecated - thirdweb now supports all evm chains, for a list of chain install the @thirdweb-dev/chains package
|
||||
*/
|
||||
export const SUPPORTED_CHAIN_IDS: SUPPORTED_CHAIN_ID[] = [
|
||||
ChainId.Mainnet,
|
||||
ChainId.Goerli,
|
||||
ChainId.Polygon,
|
||||
ChainId.Mumbai,
|
||||
ChainId.Fantom,
|
||||
ChainId.FantomTestnet,
|
||||
ChainId.Avalanche,
|
||||
ChainId.AvalancheFujiTestnet,
|
||||
ChainId.Optimism,
|
||||
ChainId.OptimismGoerli,
|
||||
ChainId.Arbitrum,
|
||||
ChainId.ArbitrumGoerli,
|
||||
ChainId.BinanceSmartChainMainnet,
|
||||
ChainId.BinanceSmartChainTestnet,
|
||||
];
|
||||
|
||||
/**
|
||||
* @public
|
||||
*/
|
||||
export const NATIVE_TOKEN_ADDRESS =
|
||||
"0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee";
|
||||
|
||||
export const DEFAULT_API_KEY =
|
||||
"c6634ad2d97b74baf15ff556016830c251050e6c36b9da508ce3ec80095d3dc1";
|
||||
|
||||
export function getRpcUrl(chainId: number) {
|
||||
return `https://${chainId}.rpc.thirdweb.com/${DEFAULT_API_KEY}`;
|
||||
}
|
||||
|
||||
function enhanceChain<TChain extends Chain>(chain: TChain) {
|
||||
const twRPC = getRpcUrl(chain.id);
|
||||
return {
|
||||
...chain,
|
||||
rpcUrls: {
|
||||
...chain.rpcUrls,
|
||||
default: {
|
||||
...chain.rpcUrls.default,
|
||||
http: [twRPC, ...chain.rpcUrls.default.http],
|
||||
},
|
||||
public: {
|
||||
...chain.rpcUrls.public,
|
||||
http: [twRPC, ...(chain.rpcUrls.public?.http || [])],
|
||||
},
|
||||
},
|
||||
} as TChain;
|
||||
}
|
||||
|
||||
export const supportedChains: Record<SUPPORTED_CHAIN_ID, Chain> = {
|
||||
[ChainId.Mainnet]: enhanceChain(mainnet),
|
||||
[ChainId.Goerli]: enhanceChain(goerli),
|
||||
[ChainId.Polygon]: enhanceChain(polygon),
|
||||
[ChainId.Mumbai]: enhanceChain(polygonMumbai),
|
||||
[ChainId.Avalanche]: enhanceChain(avalanche),
|
||||
[ChainId.AvalancheFujiTestnet]: enhanceChain(avalancheFuji),
|
||||
[ChainId.Fantom]: enhanceChain(fantom),
|
||||
[ChainId.FantomTestnet]: enhanceChain(fantomTestnet),
|
||||
[ChainId.Arbitrum]: enhanceChain(arbitrum),
|
||||
[ChainId.ArbitrumGoerli]: enhanceChain(arbitrumGoerli),
|
||||
[ChainId.Optimism]: enhanceChain(optimism),
|
||||
[ChainId.OptimismGoerli]: enhanceChain(optimismGoerli),
|
||||
[ChainId.BinanceSmartChainMainnet]: enhanceChain(bsc),
|
||||
[ChainId.BinanceSmartChainTestnet]: enhanceChain(bscTestnet),
|
||||
};
|
||||
|
||||
export const thirdwebChains: Chain[] = Object.values(supportedChains);
|
||||
@@ -1,2 +1,31 @@
|
||||
export * from "./signer";
|
||||
export * from "./auth";
|
||||
import { ThirdwebAuth } from "../core";
|
||||
import { LoginPayload, VerifyOptions } from "../core/schema";
|
||||
import { EthersWallet } from "@thirdweb-dev/wallets/evm/wallets/ethers";
|
||||
import { ethers } from "ethers";
|
||||
|
||||
const authMap = new Map<string, ThirdwebAuth>();
|
||||
let wallet: EthersWallet;
|
||||
|
||||
export async function verifyLogin(
|
||||
domain: string,
|
||||
payload: LoginPayload,
|
||||
options?: Omit<VerifyOptions, "domain">,
|
||||
) {
|
||||
wallet = wallet || new EthersWallet(ethers.Wallet.createRandom());
|
||||
let auth: ThirdwebAuth;
|
||||
if (!authMap.has(domain)) {
|
||||
auth = new ThirdwebAuth(wallet, domain);
|
||||
authMap.set(domain, auth);
|
||||
} else {
|
||||
auth = authMap.get(domain) as ThirdwebAuth;
|
||||
}
|
||||
|
||||
try {
|
||||
const address = await auth.verify(payload, options);
|
||||
return { address, error: undefined };
|
||||
} catch (err: any) {
|
||||
return { address: undefined, error: err.message };
|
||||
}
|
||||
}
|
||||
|
||||
export { PrivateKeyWallet } from "@thirdweb-dev/wallets/evm/wallets/private-key";
|
||||
|
||||
@@ -1,93 +0,0 @@
|
||||
import { SUPPORTED_CHAIN_ID, supportedChains } from "./evm";
|
||||
import type { Ecosystem, GenericAuthWallet } from "@thirdweb-dev/wallets";
|
||||
import { ethers } from "ethers";
|
||||
|
||||
const EIP1271_ABI = [
|
||||
"function isValidSignature(bytes32 _message, bytes _signature) public view returns (bytes4)",
|
||||
];
|
||||
const EIP1271_MAGICVALUE = "0x1626ba7e";
|
||||
|
||||
export const checkContractWalletSignature = async (
|
||||
message: string,
|
||||
signature: string,
|
||||
address: string,
|
||||
chainId: number,
|
||||
): Promise<boolean> => {
|
||||
const rpcUrl =
|
||||
supportedChains[chainId as SUPPORTED_CHAIN_ID]?.rpcUrls.default.http[0];
|
||||
if (!rpcUrl) {
|
||||
return false;
|
||||
}
|
||||
|
||||
const provider = new ethers.providers.JsonRpcProvider(rpcUrl);
|
||||
const walletContract = new ethers.Contract(address, EIP1271_ABI, provider);
|
||||
const hashMessage = ethers.utils.hashMessage(message);
|
||||
try {
|
||||
const res = await walletContract.isValidSignature(hashMessage, signature);
|
||||
return res === EIP1271_MAGICVALUE;
|
||||
} catch {
|
||||
return false;
|
||||
}
|
||||
};
|
||||
|
||||
export class SignerWallet implements GenericAuthWallet {
|
||||
type: Ecosystem = "evm";
|
||||
#signer: ethers.Signer;
|
||||
|
||||
constructor(signer: ethers.Signer) {
|
||||
this.#signer = signer;
|
||||
}
|
||||
|
||||
public async getAddress(): Promise<string> {
|
||||
return this.#signer.getAddress();
|
||||
}
|
||||
|
||||
public async getChainId(): Promise<number> {
|
||||
return this.#signer.getChainId();
|
||||
}
|
||||
|
||||
public async signMessage(message: string): Promise<string> {
|
||||
return await this.#signer.signMessage(message);
|
||||
}
|
||||
|
||||
public async verifySignature(
|
||||
message: string,
|
||||
signature: string,
|
||||
address: string,
|
||||
chainId?: number,
|
||||
): Promise<boolean> {
|
||||
const messageHash = ethers.utils.hashMessage(message);
|
||||
const messageHashBytes = ethers.utils.arrayify(messageHash);
|
||||
const recoveredAddress = ethers.utils.recoverAddress(
|
||||
messageHashBytes,
|
||||
signature,
|
||||
);
|
||||
|
||||
if (recoveredAddress === address) {
|
||||
return true;
|
||||
}
|
||||
|
||||
// Check if the address is a smart contract wallet
|
||||
if (chainId !== undefined) {
|
||||
try {
|
||||
const isValid = await checkContractWalletSignature(
|
||||
message,
|
||||
signature,
|
||||
address,
|
||||
chainId || 1,
|
||||
);
|
||||
return isValid;
|
||||
} catch {
|
||||
// no-op
|
||||
}
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
export class PrivateKeyWallet extends SignerWallet {
|
||||
constructor(privateKey: string) {
|
||||
super(new ethers.Wallet(privateKey));
|
||||
}
|
||||
}
|
||||
@@ -3,7 +3,11 @@ import { getUser } from "./helpers/user";
|
||||
import loginHandler from "./routes/login";
|
||||
import logoutHandler from "./routes/logout";
|
||||
import userHandler from "./routes/user";
|
||||
import { ThirdwebAuthConfig, ThirdwebAuthContext } from "./types";
|
||||
import {
|
||||
ThirdwebAuthConfig,
|
||||
ThirdwebAuthContext,
|
||||
ThirdwebAuthUser,
|
||||
} from "./types";
|
||||
import cookieParser from "cookie-parser";
|
||||
import express, { Request, Response } from "express";
|
||||
|
||||
@@ -17,10 +21,21 @@ const asyncHandler =
|
||||
return Promise.resolve(fnReturn).catch(next);
|
||||
};
|
||||
|
||||
type ThirdwebAuthReturnType<
|
||||
TData extends Json = Json,
|
||||
TSession extends Json = Json,
|
||||
> = {
|
||||
authRouter: express.Router;
|
||||
authMiddleware: express.RequestHandler;
|
||||
getUser: (req: Request) => Promise<ThirdwebAuthUser<TData, TSession> | null>;
|
||||
};
|
||||
|
||||
export function ThirdwebAuth<
|
||||
TData extends Json = Json,
|
||||
TSession extends Json = Json,
|
||||
>(cfg: ThirdwebAuthConfig<TData, TSession>) {
|
||||
>(
|
||||
cfg: ThirdwebAuthConfig<TData, TSession>,
|
||||
): ThirdwebAuthReturnType<TData, TSession> {
|
||||
const ctx = {
|
||||
...cfg,
|
||||
auth: new ThirdwebAuthSDK(cfg.wallet, cfg.domain),
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import { ThirdwebAuth } from "../../core";
|
||||
import { Json, LoginPayloadOutputSchema, User } from "../../core/schema";
|
||||
import { GenericAuthWallet } from "@thirdweb-dev/wallets";
|
||||
import type { GenericAuthWallet } from "@thirdweb-dev/wallets";
|
||||
import { Request } from "express";
|
||||
import { z } from "zod";
|
||||
|
||||
|
||||
@@ -1,13 +1,13 @@
|
||||
import { LoginPayload, ThirdwebAuth, VerifyOptions } from "../core";
|
||||
import { SignerWallet } from "../evm";
|
||||
import { ThirdwebProviderConfig } from "./types";
|
||||
import { EthersWallet } from "@thirdweb-dev/wallets/evm/wallets/ethers";
|
||||
import { ethers } from "ethers";
|
||||
import { Awaitable, Session } from "next-auth/core/types";
|
||||
import { JWT } from "next-auth/jwt/types";
|
||||
import CredentialsProvider from "next-auth/providers/credentials";
|
||||
|
||||
export function ThirdwebAuthProvider(cfg: ThirdwebProviderConfig) {
|
||||
const wallet = new SignerWallet(ethers.Wallet.createRandom());
|
||||
const wallet = new EthersWallet(ethers.Wallet.createRandom());
|
||||
const auth = new ThirdwebAuth(wallet, cfg.domain);
|
||||
|
||||
return CredentialsProvider({
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import { ThirdwebAuth } from "../../core";
|
||||
import { Json, LoginPayloadOutputSchema, User } from "../../core/schema";
|
||||
import { GenericAuthWallet } from "@thirdweb-dev/wallets";
|
||||
import type { GenericAuthWallet } from "@thirdweb-dev/wallets";
|
||||
import { GetServerSidePropsContext, NextApiRequest } from "next";
|
||||
import { NextRequest } from "next/server";
|
||||
import { z } from "zod";
|
||||
|
||||
@@ -1,28 +0,0 @@
|
||||
import { ThirdwebAuth } from "../core";
|
||||
import { LoginPayload, VerifyOptions } from "../core/schema";
|
||||
import { KeypairWallet } from "./signer";
|
||||
import { Keypair } from "@solana/web3.js";
|
||||
|
||||
const wallet = new KeypairWallet(Keypair.generate());
|
||||
const authMap = new Map<string, ThirdwebAuth>();
|
||||
|
||||
export async function verifyLogin(
|
||||
domain: string,
|
||||
payload: LoginPayload,
|
||||
options?: Omit<VerifyOptions, "domain">,
|
||||
) {
|
||||
let auth: ThirdwebAuth;
|
||||
if (!authMap.has(domain)) {
|
||||
auth = new ThirdwebAuth(wallet, domain);
|
||||
authMap.set(domain, auth);
|
||||
} else {
|
||||
auth = authMap.get(domain) as ThirdwebAuth;
|
||||
}
|
||||
|
||||
try {
|
||||
const address = await auth.verify(payload, options);
|
||||
return { address, error: undefined };
|
||||
} catch (err: any) {
|
||||
return { address: undefined, error: err.message };
|
||||
}
|
||||
}
|
||||
@@ -1,2 +1,29 @@
|
||||
export * from "./signer";
|
||||
export * from "./auth";
|
||||
import { ThirdwebAuth } from "../core";
|
||||
import { LoginPayload, VerifyOptions } from "../core/schema";
|
||||
import { Keypair } from "@solana/web3.js";
|
||||
import { KeypairWallet } from "@thirdweb-dev/wallets/solana/wallets/keypair";
|
||||
|
||||
const authMap = new Map<string, ThirdwebAuth>();
|
||||
let wallet: KeypairWallet;
|
||||
|
||||
export async function verifyLogin(
|
||||
domain: string,
|
||||
payload: LoginPayload,
|
||||
options?: Omit<VerifyOptions, "domain">,
|
||||
) {
|
||||
wallet = wallet || new KeypairWallet(Keypair.generate());
|
||||
let auth: ThirdwebAuth;
|
||||
if (!authMap.has(domain)) {
|
||||
auth = new ThirdwebAuth(wallet, domain);
|
||||
authMap.set(domain, auth);
|
||||
} else {
|
||||
auth = authMap.get(domain) as ThirdwebAuth;
|
||||
}
|
||||
|
||||
try {
|
||||
const address = await auth.verify(payload, options);
|
||||
return { address, error: undefined };
|
||||
} catch (err: any) {
|
||||
return { address: undefined, error: err.message };
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,69 +0,0 @@
|
||||
import * as ed25519 from "@noble/ed25519";
|
||||
import { Signer, Keypair, PublicKey } from "@solana/web3.js";
|
||||
import type { Ecosystem, GenericAuthWallet } from "@thirdweb-dev/wallets";
|
||||
import bs58 from "bs58";
|
||||
import nacl from "tweetnacl";
|
||||
|
||||
export interface SolanaSigner {
|
||||
publicKey: PublicKey;
|
||||
signMessage(message: Uint8Array): Promise<Uint8Array>;
|
||||
}
|
||||
|
||||
export class SignerWallet implements GenericAuthWallet {
|
||||
type: Ecosystem = "solana";
|
||||
private signer: SolanaSigner;
|
||||
|
||||
constructor(signer: SolanaSigner) {
|
||||
this.signer = signer;
|
||||
}
|
||||
|
||||
public async getAddress(): Promise<string> {
|
||||
return this.signer.publicKey.toBase58();
|
||||
}
|
||||
|
||||
public async signMessage(message: string): Promise<string> {
|
||||
const encodedMessage = new TextEncoder().encode(message);
|
||||
const signedMessage = await this.signer.signMessage(encodedMessage);
|
||||
const signature = bs58.encode(signedMessage);
|
||||
|
||||
return signature;
|
||||
}
|
||||
|
||||
public async verifySignature(
|
||||
message: string,
|
||||
signature: string,
|
||||
address: string,
|
||||
): Promise<boolean> {
|
||||
return nacl.sign.detached.verify(
|
||||
new TextEncoder().encode(message),
|
||||
bs58.decode(signature),
|
||||
bs58.decode(address),
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
class KeypairSigner implements SolanaSigner {
|
||||
private keypair: Signer;
|
||||
public publicKey: PublicKey;
|
||||
|
||||
constructor(keypair: Signer) {
|
||||
this.keypair = keypair;
|
||||
this.publicKey = keypair.publicKey;
|
||||
}
|
||||
|
||||
public async signMessage(message: Uint8Array): Promise<Uint8Array> {
|
||||
return ed25519.sync.sign(message, this.keypair.secretKey.slice(0, 32));
|
||||
}
|
||||
}
|
||||
|
||||
export class KeypairWallet extends SignerWallet {
|
||||
constructor(keypair: Keypair) {
|
||||
super(new KeypairSigner(keypair));
|
||||
}
|
||||
}
|
||||
|
||||
export class PrivateKeyWallet extends KeypairWallet {
|
||||
constructor(privateKey: string) {
|
||||
super(Keypair.fromSecretKey(bs58.decode(privateKey)));
|
||||
}
|
||||
}
|
||||
@@ -1,5 +1,5 @@
|
||||
import { ThirdwebAuth } from "../src/core";
|
||||
import { SignerWallet } from "../src/evm";
|
||||
import { EthersWallet } from "@thirdweb-dev/wallets/evm/wallets/ethers";
|
||||
import { expect } from "chai";
|
||||
import { Wallet } from "ethers";
|
||||
|
||||
@@ -14,9 +14,9 @@ describe("Wallet Authentication", async () => {
|
||||
Wallet.createRandom(),
|
||||
];
|
||||
|
||||
adminWallet = new SignerWallet(adminSigner);
|
||||
signerWallet = new SignerWallet(signerSigner);
|
||||
attackerWallet = new SignerWallet(attackerSigner);
|
||||
adminWallet = new EthersWallet(adminSigner);
|
||||
signerWallet = new EthersWallet(signerSigner);
|
||||
attackerWallet = new EthersWallet(attackerSigner);
|
||||
|
||||
auth = new ThirdwebAuth(signerWallet, "thirdweb.com");
|
||||
});
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import { ThirdwebAuth } from "../src/core";
|
||||
import { KeypairWallet } from "../src/solana";
|
||||
import { Keypair } from "@solana/web3.js";
|
||||
import { KeypairWallet } from "@thirdweb-dev/wallets/solana/wallets/keypair";
|
||||
import { expect } from "chai";
|
||||
|
||||
describe("Wallet Authentication", async () => {
|
||||
|
||||
@@ -1,5 +1,99 @@
|
||||
# @thirdweb-dev/chains
|
||||
|
||||
## 0.1.7
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- [#584](https://github.com/thirdweb-dev/js/pull/584) [`d01b135d`](https://github.com/thirdweb-dev/js/commit/d01b135d26efe6cebd84110b1a8eacee5c1b98db) Thanks [@MananTank](https://github.com/MananTank)! - [Wallets, RN, React, ReactCore] New Wallets SDK implementation
|
||||
|
||||
#### Breaking changes:
|
||||
|
||||
### React and React Native
|
||||
|
||||
1. Replaced `walletConnectors` with `supportedWallets` in the ThirdwebProvider.
|
||||
|
||||
```diff
|
||||
import { coinbaseWallet, metamaskWallet, ThirdwebProvider } from "@thirdweb-dev/react";
|
||||
|
||||
const App = () => {
|
||||
- return <ThirdwebProvider walletConnectors={["metamask", "coinbaseWallet"]}>{...}</ThirdwebProvider>
|
||||
+ return <ThirdwebProvider supportedWallets={[metamaskWallet(), coinbaseWallet()]}>{...}</ThirdwebProvider>
|
||||
}
|
||||
```
|
||||
|
||||
2. `magicLinkConnector` not yet implemented in this version
|
||||
|
||||
3. Removed `desiredChainId`, use `activeChain` instead
|
||||
|
||||
4. `DAppMetaData` type now requires the `url` field to be passed in
|
||||
|
||||
5. Removed `chainRpc` prop from the ThirdwebProvider. You can pass custom rpcs in the Chain object through the `activeChain` and `supportedChains` props.
|
||||
|
||||
6. Replaced the `useNetwork` hook for `useChain` and `useSwitchChain`
|
||||
|
||||
7. Updated `ConnectWallet` button in React:
|
||||
|
||||
- Removed `accentColor` and `colorMode`
|
||||
- Added a `theme` prop with `dark` and `light` values
|
||||
|
||||
8. Updated the `Web3Button` button in React:
|
||||
|
||||
- Removed `accentColor` and `colorMode`
|
||||
- Added a `theme` prop with `dark` and `light` values
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- You can now pass a `theme` prop to the ThirdwebProvider. Values are `light` and `dark`
|
||||
|
||||
```
|
||||
import { ThirdwebProvider } from "@thirdweb-dev/react";
|
||||
|
||||
const App = () => {
|
||||
return <ThirdwebProvider theme='light'>{...}</ThirdwebProvider>
|
||||
}
|
||||
```
|
||||
|
||||
- New wallet hooks added
|
||||
|
||||
- useWallet()
|
||||
- useConenct()
|
||||
- useConnectionStatus()
|
||||
- useSwitchChain()
|
||||
|
||||
- Removed `wagmi` dependency from the `react-native-compat` package and updated shims
|
||||
|
||||
- New `ConnectWallet` and `Web3Button` components in React Native
|
||||
|
||||
- New wallets package with support for the most common wallets. MetaMask, Coinbase, WalletConnect V1 and V2 and PaperWallet
|
||||
|
||||
- Added `autoSwitch` prop to the ThirdwebProvider to control whether or not to automatically switch to wallet's network to active chain
|
||||
|
||||
```
|
||||
import { ThirdwebProvider } from "@thirdweb-dev/react";
|
||||
|
||||
const App = () => {
|
||||
return <ThirdwebProvider autoSwitch>{...}</ThirdwebProvider>
|
||||
}
|
||||
```
|
||||
|
||||
- [#771](https://github.com/thirdweb-dev/js/pull/771) [`e3161e59`](https://github.com/thirdweb-dev/js/commit/e3161e5986e1831c6dae517889b6a6ba181ccd36) Thanks [@iketw](https://github.com/iketw)! - [ReactNativeSDK] Use wallet metadata from the wallet class
|
||||
|
||||
- [#702](https://github.com/thirdweb-dev/js/pull/702) [`33d1cc7f`](https://github.com/thirdweb-dev/js/commit/33d1cc7f92cd982e9e55130472c0006bb999f682) Thanks [@jnsdls](https://github.com/jnsdls)! - enable `browser` export
|
||||
|
||||
- [#801](https://github.com/thirdweb-dev/js/pull/801) [`6b145d4b`](https://github.com/thirdweb-dev/js/commit/6b145d4b36d2706f8a2dcad4b8f680c41606a556) Thanks [@jnsdls](https://github.com/jnsdls)! - updated chains
|
||||
|
||||
- [#822](https://github.com/thirdweb-dev/js/pull/822) [`e2ec70c4`](https://github.com/thirdweb-dev/js/commit/e2ec70c49264737fbd2afb1cacabded82262bc6c) Thanks [@jnsdls](https://github.com/jnsdls)! - update chains again
|
||||
|
||||
- [#721](https://github.com/thirdweb-dev/js/pull/721) [`1baed0b1`](https://github.com/thirdweb-dev/js/commit/1baed0b1d83b4c92dac44430af5436d04727d92f) Thanks [@adam-maj](https://github.com/adam-maj)! - Update chains
|
||||
|
||||
- [#748](https://github.com/thirdweb-dev/js/pull/748) [`2221f97d`](https://github.com/thirdweb-dev/js/commit/2221f97ddc997d864db3a5f00e82862ece574922) Thanks [@MananTank](https://github.com/MananTank)! - [ReactCore] Inject api key to chains
|
||||
|
||||
- [#770](https://github.com/thirdweb-dev/js/pull/770) [`5c7c0923`](https://github.com/thirdweb-dev/js/commit/5c7c0923e45b3f0ee27c83a9c4c691ce9bbb8539) Thanks [@joaquim-verges](https://github.com/joaquim-verges)! - update chains
|
||||
|
||||
- [#809](https://github.com/thirdweb-dev/js/pull/809) [`9a4a542c`](https://github.com/thirdweb-dev/js/commit/9a4a542ce9650605d48745a40126ca6b52a16722) Thanks [@jnsdls](https://github.com/jnsdls)! - add new chains
|
||||
|
||||
- [#719](https://github.com/thirdweb-dev/js/pull/719) [`b2d0ffb0`](https://github.com/thirdweb-dev/js/commit/b2d0ffb049208de9f9212eae7059212aed74fec4) Thanks [@nachoiacovino](https://github.com/nachoiacovino)! - Replace Goerli default faucet
|
||||
|
||||
## 0.1.6
|
||||
|
||||
### Patch Changes
|
||||
|
||||
@@ -21,7 +21,8 @@ export default {
|
||||
"https://mainnet.infura.io/v3/${INFURA_API_KEY}",
|
||||
"wss://mainnet.infura.io/ws/v3/${INFURA_API_KEY}",
|
||||
"https://api.mycryptoapi.com/eth",
|
||||
"https://cloudflare-eth.com"
|
||||
"https://cloudflare-eth.com",
|
||||
"https://ethereum.publicnode.com"
|
||||
],
|
||||
"features": [
|
||||
{
|
||||
|
||||
@@ -35,7 +35,6 @@ export default {
|
||||
{
|
||||
"name": "gnosisscan",
|
||||
"url": "https://gnosisscan.io",
|
||||
"icon": "gnosisscan",
|
||||
"standard": "EIP3091"
|
||||
},
|
||||
{
|
||||
|
||||
@@ -31,6 +31,12 @@ export default {
|
||||
}
|
||||
]
|
||||
},
|
||||
"icon": {
|
||||
"url": "ipfs://QmbWKNucbMtrMPPkHG5ZmVmvNUo8CzqHHcrpk1C2BVQsEG/2022_H-Brand_Stacked_WhiteGreen.svg",
|
||||
"format": "svg",
|
||||
"height": 512,
|
||||
"width": 512
|
||||
},
|
||||
"testnet": false,
|
||||
"slug": "metis-andromeda"
|
||||
} as const;
|
||||
@@ -0,0 +1,44 @@
|
||||
export default {
|
||||
"name": "Polygon zkEVM",
|
||||
"title": "Polygon zkEVM",
|
||||
"chain": "Polygon",
|
||||
"rpc": [
|
||||
"https://polygon-zkevm.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
|
||||
"https://zkevm-rpc.com"
|
||||
],
|
||||
"faucets": [],
|
||||
"nativeCurrency": {
|
||||
"name": "Ether",
|
||||
"symbol": "ETH",
|
||||
"decimals": 18
|
||||
},
|
||||
"infoURL": "https://polygon.technology/polygon-zkevm",
|
||||
"shortName": "zkevm",
|
||||
"chainId": 1101,
|
||||
"networkId": 1101,
|
||||
"icon": {
|
||||
"url": "ipfs://QmNmJZkQgx9RcFLS3rvxQTVYcPfyAFPr667keHTUxB9PDv",
|
||||
"width": 122,
|
||||
"height": 135,
|
||||
"format": "png"
|
||||
},
|
||||
"explorers": [
|
||||
{
|
||||
"name": "blockscout",
|
||||
"url": "https://zkevm.polygonscan.com",
|
||||
"icon": "zkevm",
|
||||
"standard": "EIP3091"
|
||||
}
|
||||
],
|
||||
"parent": {
|
||||
"type": "L2",
|
||||
"chain": "eip155-1",
|
||||
"bridges": [
|
||||
{
|
||||
"url": "https://bridge.zkevm-rpc.com"
|
||||
}
|
||||
]
|
||||
},
|
||||
"testnet": false,
|
||||
"slug": "polygon-zkevm"
|
||||
} as const;
|
||||
@@ -9,7 +9,8 @@ export default {
|
||||
},
|
||||
"rpc": [
|
||||
"https://core-blockchain.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
|
||||
"https://rpc.coredao.org/"
|
||||
"https://rpc.coredao.org/",
|
||||
"https://rpc-core.icecreamswap.com"
|
||||
],
|
||||
"faucets": [],
|
||||
"nativeCurrency": {
|
||||
|
||||
@@ -0,0 +1,35 @@
|
||||
export default {
|
||||
"name": "CyberdeckNet",
|
||||
"chain": "cyberdeck",
|
||||
"rpc": [
|
||||
"https://cyberdecknet.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
|
||||
"http://cybeth1.cyberdeck.eu:8545"
|
||||
],
|
||||
"faucets": [],
|
||||
"nativeCurrency": {
|
||||
"name": "Cyb",
|
||||
"symbol": "CYB",
|
||||
"decimals": 18
|
||||
},
|
||||
"infoURL": "https://cyberdeck.eu",
|
||||
"shortName": "cyb",
|
||||
"chainId": 1146703430,
|
||||
"networkId": 1146703430,
|
||||
"icon": {
|
||||
"url": "ipfs://QmTvYMJXeZeWxYPuoQ15mHCS8K5EQzkMMCHQVs3GshooyR",
|
||||
"width": 193,
|
||||
"height": 214,
|
||||
"format": "png"
|
||||
},
|
||||
"status": "active",
|
||||
"explorers": [
|
||||
{
|
||||
"name": "CybEthExplorer",
|
||||
"url": "http://cybeth1.cyberdeck.eu:8000",
|
||||
"icon": "cyberdeck",
|
||||
"standard": "none"
|
||||
}
|
||||
],
|
||||
"testnet": false,
|
||||
"slug": "cyberdecknet"
|
||||
} as const;
|
||||
@@ -0,0 +1,34 @@
|
||||
export default {
|
||||
"name": "Uptick Mainnet",
|
||||
"chain": "Uptick",
|
||||
"rpc": [
|
||||
"https://uptick.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
|
||||
"https://json-rpc.uptick.network"
|
||||
],
|
||||
"faucets": [],
|
||||
"nativeCurrency": {
|
||||
"name": "Uptick",
|
||||
"symbol": "UPTICK",
|
||||
"decimals": 18
|
||||
},
|
||||
"infoURL": "https://www.uptick.network",
|
||||
"shortName": "auptick",
|
||||
"chainId": 117,
|
||||
"networkId": 117,
|
||||
"icon": {
|
||||
"url": "ipfs://QmRGJ6PqYHDTWuUQ6xfnK8S82NzRXiMjTnSGat9qtLuaLP",
|
||||
"width": 400,
|
||||
"height": 400,
|
||||
"format": "png"
|
||||
},
|
||||
"explorers": [
|
||||
{
|
||||
"name": "Uptick Explorer",
|
||||
"url": "https://evm-explorer.uptick.network",
|
||||
"icon": "uptick",
|
||||
"standard": "none"
|
||||
}
|
||||
],
|
||||
"testnet": false,
|
||||
"slug": "uptick"
|
||||
} as const;
|
||||
@@ -0,0 +1,33 @@
|
||||
export default {
|
||||
"name": "ADIL Devnet",
|
||||
"chain": "ADIL",
|
||||
"icon": {
|
||||
"url": "ipfs://QmeHNYUx6n8CjUFSLWNT17oAtDYrUq6r8buyvGCUBXCJw6",
|
||||
"width": 500,
|
||||
"height": 500,
|
||||
"format": "png"
|
||||
},
|
||||
"rpc": [
|
||||
"https://adil-devnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
|
||||
"https://devnet.adilchain-rpc.io"
|
||||
],
|
||||
"faucets": [],
|
||||
"nativeCurrency": {
|
||||
"name": "Devnet ADIL",
|
||||
"symbol": "ADIL",
|
||||
"decimals": 18
|
||||
},
|
||||
"infoURL": "https://adilchain.io",
|
||||
"shortName": "dadil",
|
||||
"chainId": 123456,
|
||||
"networkId": 123456,
|
||||
"explorers": [
|
||||
{
|
||||
"name": "ADIL Devnet Explorer",
|
||||
"url": "https://devnet.adilchain-scan.io",
|
||||
"standard": "EIP3091"
|
||||
}
|
||||
],
|
||||
"testnet": false,
|
||||
"slug": "adil-devnet"
|
||||
} as const;
|
||||
@@ -0,0 +1,28 @@
|
||||
export default {
|
||||
"name": "Rikeza Network Testnet",
|
||||
"title": "Rikeza Network Testnet",
|
||||
"chain": "Rikeza",
|
||||
"rpc": [
|
||||
"https://rikeza-network-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
|
||||
"https://testnet-rpc.rikscan.com"
|
||||
],
|
||||
"faucets": [],
|
||||
"nativeCurrency": {
|
||||
"name": "Rikeza",
|
||||
"symbol": "RIK",
|
||||
"decimals": 18
|
||||
},
|
||||
"infoURL": "https://rikeza.io",
|
||||
"shortName": "tRIK",
|
||||
"chainId": 12715,
|
||||
"networkId": 12715,
|
||||
"explorers": [
|
||||
{
|
||||
"name": "Rikeza Blockchain explorer",
|
||||
"url": "https://testnet.rikscan.com",
|
||||
"standard": "EIP3091"
|
||||
}
|
||||
],
|
||||
"testnet": true,
|
||||
"slug": "rikeza-network-testnet"
|
||||
} as const;
|
||||
@@ -0,0 +1,31 @@
|
||||
export default {
|
||||
"name": "HUMAN Protocol",
|
||||
"title": "HUMAN Protocol",
|
||||
"chain": "wan-red-ain",
|
||||
"rpc": [
|
||||
"https://human-protocol.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
|
||||
"https://mainnet.skalenodes.com/v1/wan-red-ain"
|
||||
],
|
||||
"faucets": [
|
||||
"https://dashboard.humanprotocol.org/faucet"
|
||||
],
|
||||
"nativeCurrency": {
|
||||
"name": "sFUEL",
|
||||
"symbol": "sFUEL",
|
||||
"decimals": 18
|
||||
},
|
||||
"infoURL": "https://www.humanprotocol.org",
|
||||
"shortName": "human-mainnet",
|
||||
"chainId": 1273227453,
|
||||
"networkId": 1273227453,
|
||||
"explorers": [
|
||||
{
|
||||
"name": "Blockscout",
|
||||
"url": "https://wan-red-ain.explorer.mainnet.skalenodes.com",
|
||||
"icon": "human",
|
||||
"standard": "EIP3091"
|
||||
}
|
||||
],
|
||||
"testnet": false,
|
||||
"slug": "human-protocol"
|
||||
} as const;
|
||||
@@ -12,7 +12,7 @@ export default {
|
||||
"decimals": 18
|
||||
},
|
||||
"infoURL": "http://doschain.io/",
|
||||
"shortName": "DOS",
|
||||
"shortName": "TDOS",
|
||||
"chainId": 1311,
|
||||
"networkId": 1311,
|
||||
"explorers": [
|
||||
|
||||
@@ -25,7 +25,6 @@ export default {
|
||||
{
|
||||
"name": "phoenixplorer",
|
||||
"url": "https://phoenixplorer.com",
|
||||
"icon": "phoenixplorer",
|
||||
"standard": "EIP3091"
|
||||
}
|
||||
],
|
||||
|
||||
@@ -4,7 +4,7 @@ export default {
|
||||
"chain": "Elysium",
|
||||
"rpc": [
|
||||
"https://elysium.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
|
||||
"https://elysium-rpc.vulcanforged.com"
|
||||
"https://rpc.elysiumchain.tech/"
|
||||
],
|
||||
"faucets": [],
|
||||
"nativeCurrency": {
|
||||
|
||||
@@ -0,0 +1,34 @@
|
||||
export default {
|
||||
"name": "iExec Sidechain",
|
||||
"chain": "Bellecour",
|
||||
"icon": {
|
||||
"url": "ipfs://QmUYKpVmZL4aS3TEZLG5wbrRJ6exxLiwm1rejfGYYNicfb",
|
||||
"width": 155,
|
||||
"height": 155,
|
||||
"format": "png"
|
||||
},
|
||||
"rpc": [
|
||||
"https://iexec-sidechain.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
|
||||
"https://bellecour.iex.ec"
|
||||
],
|
||||
"faucets": [],
|
||||
"nativeCurrency": {
|
||||
"name": "xRLC",
|
||||
"symbol": "xRLC",
|
||||
"decimals": 18
|
||||
},
|
||||
"infoURL": "https://iex.ec",
|
||||
"shortName": "rlc",
|
||||
"chainId": 134,
|
||||
"networkId": 134,
|
||||
"explorers": [
|
||||
{
|
||||
"name": "blockscout",
|
||||
"url": "https://blockscout.bellecour.iex.ec",
|
||||
"icon": "blockscout",
|
||||
"standard": "EIP3091"
|
||||
}
|
||||
],
|
||||
"testnet": false,
|
||||
"slug": "iexec-sidechain"
|
||||
} as const;
|
||||
@@ -0,0 +1,39 @@
|
||||
export default {
|
||||
"name": "RaptorChain",
|
||||
"chain": "RPTR",
|
||||
"rpc": [
|
||||
"https://raptorchain.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
|
||||
"https://rpc.raptorchain.io/web3"
|
||||
],
|
||||
"faucets": [],
|
||||
"nativeCurrency": {
|
||||
"name": "Raptor",
|
||||
"symbol": "RPTR",
|
||||
"decimals": 18
|
||||
},
|
||||
"features": [
|
||||
{
|
||||
"name": "EIP155"
|
||||
}
|
||||
],
|
||||
"infoURL": "https://raptorchain.io",
|
||||
"shortName": "rptr",
|
||||
"chainId": 1380996178,
|
||||
"networkId": 1380996178,
|
||||
"icon": {
|
||||
"url": "ipfs://QmQuvmiN6vM6Rqzqe1pMzDf8iZXqTtSeqCgGe5k5AyksDU",
|
||||
"width": 200,
|
||||
"height": 200,
|
||||
"format": "png"
|
||||
},
|
||||
"explorers": [
|
||||
{
|
||||
"name": "RaptorChain Explorer",
|
||||
"url": "https://explorer.raptorchain.io",
|
||||
"icon": "raptorchain_explorer",
|
||||
"standard": "EIP3091"
|
||||
}
|
||||
],
|
||||
"testnet": false,
|
||||
"slug": "raptorchain"
|
||||
} as const;
|
||||
@@ -0,0 +1,41 @@
|
||||
export default {
|
||||
"name": "WoopChain Mainnet",
|
||||
"chain": "WOOP",
|
||||
"icon": {
|
||||
"url": "ipfs://Qma7LpnkGjAN1dwL6VTXUYqzySNxjLg4br7J8UE4yZWYec",
|
||||
"width": 310,
|
||||
"height": 310,
|
||||
"format": "png"
|
||||
},
|
||||
"rpc": [
|
||||
"https://woopchain.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
|
||||
"https://rpc.woop.ai/rpc"
|
||||
],
|
||||
"features": [
|
||||
{
|
||||
"name": "EIP155"
|
||||
},
|
||||
{
|
||||
"name": "EIP1559"
|
||||
}
|
||||
],
|
||||
"faucets": [],
|
||||
"nativeCurrency": {
|
||||
"name": "WoopCoin",
|
||||
"symbol": "WOOC",
|
||||
"decimals": 18
|
||||
},
|
||||
"infoURL": "https://wikiwoop.com",
|
||||
"shortName": "woop",
|
||||
"chainId": 139,
|
||||
"networkId": 139,
|
||||
"explorers": [
|
||||
{
|
||||
"name": "wikiwoop",
|
||||
"url": "https://explorer.wikiwoop.com",
|
||||
"standard": "EIP3091"
|
||||
}
|
||||
],
|
||||
"testnet": false,
|
||||
"slug": "woopchain"
|
||||
} as const;
|
||||
@@ -0,0 +1,28 @@
|
||||
export default {
|
||||
"name": "Rikeza Network Mainnet",
|
||||
"title": "Rikeza Network Mainnet",
|
||||
"chain": "Rikeza",
|
||||
"rpc": [
|
||||
"https://rikeza-network.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
|
||||
"https://rpc.rikscan.com"
|
||||
],
|
||||
"faucets": [],
|
||||
"nativeCurrency": {
|
||||
"name": "Rikeza",
|
||||
"symbol": "RIK",
|
||||
"decimals": 18
|
||||
},
|
||||
"infoURL": "https://rikeza.io",
|
||||
"shortName": "RIK",
|
||||
"chainId": 1433,
|
||||
"networkId": 1433,
|
||||
"explorers": [
|
||||
{
|
||||
"name": "Rikeza Blockchain explorer",
|
||||
"url": "https://rikscan.com",
|
||||
"standard": "EIP3091"
|
||||
}
|
||||
],
|
||||
"testnet": false,
|
||||
"slug": "rikeza-network"
|
||||
} as const;
|
||||
@@ -14,8 +14,8 @@ export default {
|
||||
},
|
||||
"infoURL": "https://polygon.technology/solutions/polygon-zkevm/",
|
||||
"shortName": "testnet-zkEVM-mango",
|
||||
"chainId": 1422,
|
||||
"networkId": 1422,
|
||||
"chainId": 1442,
|
||||
"networkId": 1442,
|
||||
"explorers": [
|
||||
{
|
||||
"name": "Polygon zkEVM explorer",
|
||||
@@ -23,6 +23,12 @@ export default {
|
||||
"standard": "EIP3091"
|
||||
}
|
||||
],
|
||||
"icon": {
|
||||
"url": "ipfs://QmNmJZkQgx9RcFLS3rvxQTVYcPfyAFPr667keHTUxB9PDv",
|
||||
"width": 122,
|
||||
"height": 135,
|
||||
"format": "png"
|
||||
},
|
||||
"testnet": true,
|
||||
"slug": "polygon-zkevm-testnet"
|
||||
} as const;
|
||||
@@ -0,0 +1,27 @@
|
||||
export default {
|
||||
"name": "LoopNetwork Mainnet",
|
||||
"chain": "LoopNetwork",
|
||||
"rpc": [
|
||||
"https://loopnetwork.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
|
||||
"https://api.mainnetloop.com"
|
||||
],
|
||||
"faucets": [],
|
||||
"nativeCurrency": {
|
||||
"name": "LOOP",
|
||||
"symbol": "LOOP",
|
||||
"decimals": 18
|
||||
},
|
||||
"infoURL": "http://theloopnetwork.org/",
|
||||
"shortName": "loop",
|
||||
"chainId": 15551,
|
||||
"networkId": 15551,
|
||||
"explorers": [
|
||||
{
|
||||
"name": "loopscan",
|
||||
"url": "http://explorer.mainnetloop.com",
|
||||
"standard": "none"
|
||||
}
|
||||
],
|
||||
"testnet": false,
|
||||
"slug": "loopnetwork"
|
||||
} as const;
|
||||
@@ -0,0 +1,33 @@
|
||||
export default {
|
||||
"name": "Taiko (Alpha-2 Testnet)",
|
||||
"chain": "ETH",
|
||||
"icon": {
|
||||
"url": "ipfs://QmWMUDmNHzCtism9dYK1JooerZJ4da6kGt67HAQmLiEykc",
|
||||
"width": 1001,
|
||||
"height": 1001,
|
||||
"format": "png"
|
||||
},
|
||||
"rpc": [
|
||||
"https://taiko-alpha-2-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
|
||||
"https://rpc.a2.taiko.xyz"
|
||||
],
|
||||
"faucets": [],
|
||||
"nativeCurrency": {
|
||||
"name": "Ether",
|
||||
"symbol": "ETH",
|
||||
"decimals": 18
|
||||
},
|
||||
"infoURL": "https://taiko.xyz",
|
||||
"shortName": "taiko-a2",
|
||||
"chainId": 167004,
|
||||
"networkId": 167004,
|
||||
"explorers": [
|
||||
{
|
||||
"name": "blockscout",
|
||||
"url": "https://explorer.a2.taiko.xyz",
|
||||
"standard": "EIP3091"
|
||||
}
|
||||
],
|
||||
"testnet": true,
|
||||
"slug": "taiko-alpha-2-testnet"
|
||||
} as const;
|
||||
@@ -0,0 +1,40 @@
|
||||
export default {
|
||||
"name": "Lightlink Phoenix Mainnet",
|
||||
"chain": "Lightlink Phoenix Mainnet",
|
||||
"icon": {
|
||||
"url": "ipfs://QmNRUoMgx16hurD3au3ou5A9rmTLYmre8WiGmQEPFmP2Vo",
|
||||
"width": 600,
|
||||
"height": 600,
|
||||
"format": "png"
|
||||
},
|
||||
"rpc": [
|
||||
"https://lightlink-phoenix.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
|
||||
"https://replicator-01.phoenix.lightlink.io/rpc/v1",
|
||||
"https://replicator-02.phoenix.lightlink.io/rpc/v1"
|
||||
],
|
||||
"features": [
|
||||
{
|
||||
"name": "EIP155"
|
||||
}
|
||||
],
|
||||
"faucets": [],
|
||||
"nativeCurrency": {
|
||||
"name": "Ethereum",
|
||||
"symbol": "ETH",
|
||||
"decimals": 18
|
||||
},
|
||||
"infoURL": "https://lightlink.io",
|
||||
"shortName": "lightlink_phoenix",
|
||||
"chainId": 1890,
|
||||
"networkId": 1890,
|
||||
"explorers": [
|
||||
{
|
||||
"name": "phoenix",
|
||||
"url": "https://phoenix.lightlink.io",
|
||||
"icon": "lightlink",
|
||||
"standard": "EIP3091"
|
||||
}
|
||||
],
|
||||
"testnet": false,
|
||||
"slug": "lightlink-phoenix"
|
||||
} as const;
|
||||
@@ -0,0 +1,42 @@
|
||||
export default {
|
||||
"name": "Lightlink Pegasus Testnet",
|
||||
"chain": "Lightlink Pegasus Testnet",
|
||||
"icon": {
|
||||
"url": "ipfs://QmNRUoMgx16hurD3au3ou5A9rmTLYmre8WiGmQEPFmP2Vo",
|
||||
"width": 600,
|
||||
"height": 600,
|
||||
"format": "png"
|
||||
},
|
||||
"rpc": [
|
||||
"https://lightlink-pegasus-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
|
||||
"https://replicator-01.pegasus.lightlink.io/rpc/v1",
|
||||
"https://replicator-02.pegasus.lightlink.io/rpc/v1"
|
||||
],
|
||||
"features": [
|
||||
{
|
||||
"name": "EIP155"
|
||||
}
|
||||
],
|
||||
"faucets": [
|
||||
"https://pegasus-faucet-react.vercel.app"
|
||||
],
|
||||
"nativeCurrency": {
|
||||
"name": "Ethereum",
|
||||
"symbol": "ETH",
|
||||
"decimals": 18
|
||||
},
|
||||
"infoURL": "https://lightlink.io",
|
||||
"shortName": "lightlink_pegasus",
|
||||
"chainId": 1891,
|
||||
"networkId": 1891,
|
||||
"explorers": [
|
||||
{
|
||||
"name": "pegasus",
|
||||
"url": "https://pegasus.lightlink.io",
|
||||
"icon": "lightlink",
|
||||
"standard": "EIP3091"
|
||||
}
|
||||
],
|
||||
"testnet": true,
|
||||
"slug": "lightlink-pegasus-testnet"
|
||||
} as const;
|
||||
@@ -0,0 +1,31 @@
|
||||
export default {
|
||||
"name": "OKBChain Testnet",
|
||||
"chain": "okbchain",
|
||||
"rpc": [
|
||||
"https://okbchain-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
|
||||
"https://okbtestrpc.okbchain.org"
|
||||
],
|
||||
"faucets": [
|
||||
"https://www.oklink.com/okbc-test"
|
||||
],
|
||||
"nativeCurrency": {
|
||||
"name": "OKBChain Global Utility Token in testnet",
|
||||
"symbol": "OKB",
|
||||
"decimals": 18
|
||||
},
|
||||
"features": [],
|
||||
"infoURL": "https://www.okx.com/okbc/docs/dev/quick-start/introduction/introduction-to-okbchain",
|
||||
"shortName": "tokb",
|
||||
"chainId": 195,
|
||||
"networkId": 195,
|
||||
"explorers": [
|
||||
{
|
||||
"name": "OKLink",
|
||||
"url": "https://www.oklink.com/okbc-test",
|
||||
"standard": "EIP3091"
|
||||
}
|
||||
],
|
||||
"status": "active",
|
||||
"testnet": true,
|
||||
"slug": "okbchain-testnet"
|
||||
} as const;
|
||||
@@ -0,0 +1,42 @@
|
||||
export default {
|
||||
"name": "Dexilla Testnet",
|
||||
"chain": "Dexilla",
|
||||
"rpc": [
|
||||
"https://dexilla-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
|
||||
"https://rpc.dexilla.com"
|
||||
],
|
||||
"faucets": [],
|
||||
"icon": {
|
||||
"url": "ipfs://QmUBveetVibvSEWQrjyxySgUphLuoMGSVLGmYnobt5FgEZ",
|
||||
"width": 512,
|
||||
"height": 512,
|
||||
"format": "png"
|
||||
},
|
||||
"nativeCurrency": {
|
||||
"name": "Dexilla Native Token",
|
||||
"symbol": "DXZ",
|
||||
"decimals": 18
|
||||
},
|
||||
"infoURL": "https://dexilla.com",
|
||||
"shortName": "Dexilla",
|
||||
"chainId": 1954,
|
||||
"networkId": 1954,
|
||||
"explorers": [
|
||||
{
|
||||
"name": "dos-mainnet",
|
||||
"url": "https://exp.dexilla.com",
|
||||
"standard": "EIP3091"
|
||||
}
|
||||
],
|
||||
"parent": {
|
||||
"type": "L2",
|
||||
"chain": "eip155-11155111",
|
||||
"bridges": [
|
||||
{
|
||||
"url": "https://bridge.dexilla.com"
|
||||
}
|
||||
]
|
||||
},
|
||||
"testnet": true,
|
||||
"slug": "dexilla-testnet"
|
||||
} as const;
|
||||
@@ -0,0 +1,20 @@
|
||||
export default {
|
||||
"name": "OKBChain Mainnet",
|
||||
"chain": "okbchain",
|
||||
"rpc": [],
|
||||
"faucets": [],
|
||||
"nativeCurrency": {
|
||||
"name": "OKBChain Global Utility Token",
|
||||
"symbol": "OKB",
|
||||
"decimals": 18
|
||||
},
|
||||
"features": [],
|
||||
"infoURL": "https://www.okex.com/okc",
|
||||
"shortName": "okb",
|
||||
"chainId": 196,
|
||||
"networkId": 196,
|
||||
"explorers": [],
|
||||
"status": "incubating",
|
||||
"testnet": false,
|
||||
"slug": "okbchain"
|
||||
} as const;
|
||||
@@ -0,0 +1,35 @@
|
||||
export default {
|
||||
"name": "Super Smart Chain Testnet",
|
||||
"chain": "TSCS",
|
||||
"rpc": [
|
||||
"https://super-smart-chain-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
|
||||
"https://testnet.superexchain.com:8544"
|
||||
],
|
||||
"faucets": [
|
||||
"https://testnet.superexchain.com"
|
||||
],
|
||||
"nativeCurrency": {
|
||||
"name": "Super Chain Native Token",
|
||||
"symbol": "TSCS",
|
||||
"decimals": 18
|
||||
},
|
||||
"infoURL": "https://testnet.superexchain.com",
|
||||
"shortName": "tscs",
|
||||
"chainId": 1969,
|
||||
"networkId": 1969,
|
||||
"icon": {
|
||||
"url": "ipfs://QmW4C4QHLMhLeH5MsdVbauMc2Skb4ehzLKU3egLKKoux4D",
|
||||
"width": 130,
|
||||
"height": 130,
|
||||
"format": "png"
|
||||
},
|
||||
"explorers": [
|
||||
{
|
||||
"name": "blockscout",
|
||||
"url": "https://testnetscan.superexchain.com",
|
||||
"standard": "EIP3091"
|
||||
}
|
||||
],
|
||||
"testnet": true,
|
||||
"slug": "super-smart-chain-testnet"
|
||||
} as const;
|
||||
@@ -0,0 +1,33 @@
|
||||
export default {
|
||||
"name": "Super Smart Chain Mainnet",
|
||||
"chain": "SCS",
|
||||
"rpc": [
|
||||
"https://super-smart-chain.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
|
||||
"https://superexchain.com:8545"
|
||||
],
|
||||
"faucets": [],
|
||||
"nativeCurrency": {
|
||||
"name": "Super Chain Native Token",
|
||||
"symbol": "SCS",
|
||||
"decimals": 18
|
||||
},
|
||||
"infoURL": "https://superexchain.com",
|
||||
"shortName": "scs",
|
||||
"chainId": 1970,
|
||||
"networkId": 1970,
|
||||
"icon": {
|
||||
"url": "ipfs://QmW4C4QHLMhLeH5MsdVbauMc2Skb4ehzLKU3egLKKoux4D",
|
||||
"width": 130,
|
||||
"height": 130,
|
||||
"format": "png"
|
||||
},
|
||||
"explorers": [
|
||||
{
|
||||
"name": "blockscout",
|
||||
"url": "https://scan.superexchain.com",
|
||||
"standard": "EIP3091"
|
||||
}
|
||||
],
|
||||
"testnet": false,
|
||||
"slug": "super-smart-chain"
|
||||
} as const;
|
||||
@@ -0,0 +1,33 @@
|
||||
export default {
|
||||
"name": "CamelArk Mainnet",
|
||||
"chainId": 20001,
|
||||
"shortName": "CamelArk",
|
||||
"chain": "ETHW",
|
||||
"icon": {
|
||||
"url": "ipfs://QmbXDcCWHh8jExE1tAUkUKzXyTb8srpC75ogZq1QYkMMRW",
|
||||
"width": 128,
|
||||
"height": 128,
|
||||
"format": "svg"
|
||||
},
|
||||
"networkId": 20001,
|
||||
"nativeCurrency": {
|
||||
"name": "EthereumPoW",
|
||||
"symbol": "ETHW",
|
||||
"decimals": 18
|
||||
},
|
||||
"rpc": [
|
||||
"https://camelark.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
|
||||
"https://mainnet-http-rpc.camelark.com"
|
||||
],
|
||||
"faucets": [],
|
||||
"explorers": [
|
||||
{
|
||||
"name": "CamelArkscan",
|
||||
"url": "https://scan.camelark.com",
|
||||
"standard": "EIP3091"
|
||||
}
|
||||
],
|
||||
"infoURL": "https://www.camelark.com",
|
||||
"testnet": false,
|
||||
"slug": "camelark"
|
||||
} as const;
|
||||
@@ -1,20 +1,57 @@
|
||||
export default {
|
||||
"name": "Edgeware Mainnet",
|
||||
"name": "Edgeware EdgeEVM Mainnet",
|
||||
"chain": "EDG",
|
||||
"icon": {
|
||||
"url": "ipfs://QmS3ERgAKYTmV7bSWcUPSvrrCC9wHQYxtZqEQYx9Rw4RGA",
|
||||
"width": 352,
|
||||
"height": 304,
|
||||
"format": "png"
|
||||
},
|
||||
"rpc": [
|
||||
"https://edgeware.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
|
||||
"https://mainnet1.edgewa.re"
|
||||
"https://edgeware-edgeevm.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
|
||||
"https://edgeware-evm.jelliedowl.net",
|
||||
"https://mainnet2.edgewa.re/evm",
|
||||
"https://mainnet3.edgewa.re/evm",
|
||||
"https://mainnet4.edgewa.re/evm",
|
||||
"https://mainnet5.edgewa.re/evm",
|
||||
"wss://edgeware.jelliedowl.net",
|
||||
"wss://mainnet2.edgewa.re",
|
||||
"wss://mainnet3.edgewa.re",
|
||||
"wss://mainnet4.edgewa.re",
|
||||
"wss://mainnet5.edgewa.re"
|
||||
],
|
||||
"features": [
|
||||
{
|
||||
"name": "EIP155"
|
||||
},
|
||||
{
|
||||
"name": "EIP1559"
|
||||
}
|
||||
],
|
||||
"faucets": [],
|
||||
"nativeCurrency": {
|
||||
"name": "Edge",
|
||||
"name": "Edgeware",
|
||||
"symbol": "EDG",
|
||||
"decimals": 18
|
||||
},
|
||||
"infoURL": "http://edgewa.re",
|
||||
"infoURL": "https://edgeware.io",
|
||||
"shortName": "edg",
|
||||
"chainId": 2021,
|
||||
"networkId": 2021,
|
||||
"slip44": 523,
|
||||
"explorers": [
|
||||
{
|
||||
"name": "Edgscan by Bharathcoorg",
|
||||
"url": "https://edgscan.live",
|
||||
"standard": "EIP3091"
|
||||
},
|
||||
{
|
||||
"name": "Subscan",
|
||||
"url": "https://edgeware.subscan.io",
|
||||
"standard": "none",
|
||||
"icon": "subscan"
|
||||
}
|
||||
],
|
||||
"testnet": false,
|
||||
"slug": "edgeware"
|
||||
"slug": "edgeware-edgeevm"
|
||||
} as const;
|
||||
@@ -1,20 +1,28 @@
|
||||
export default {
|
||||
"name": "Beresheet Testnet",
|
||||
"name": "Beresheet BereEVM Testnet",
|
||||
"chain": "EDG",
|
||||
"rpc": [
|
||||
"https://beresheet-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
|
||||
"https://beresheet1.edgewa.re"
|
||||
"https://beresheet-bereevm-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
|
||||
"https://beresheet-evm.jelliedowl.net",
|
||||
"wss://beresheet.jelliedowl.net"
|
||||
],
|
||||
"faucets": [],
|
||||
"nativeCurrency": {
|
||||
"name": "Testnet Edge",
|
||||
"name": "Testnet EDG",
|
||||
"symbol": "tEDG",
|
||||
"decimals": 18
|
||||
},
|
||||
"infoURL": "http://edgewa.re",
|
||||
"infoURL": "https://edgeware.io/build",
|
||||
"shortName": "edgt",
|
||||
"chainId": 2022,
|
||||
"networkId": 2022,
|
||||
"explorers": [
|
||||
{
|
||||
"name": "Edgscan by Bharathcoorg",
|
||||
"url": "https://testnet.edgscan.live",
|
||||
"standard": "EIP3091"
|
||||
}
|
||||
],
|
||||
"testnet": true,
|
||||
"slug": "beresheet-testnet"
|
||||
"slug": "beresheet-bereevm-testnet"
|
||||
} as const;
|
||||
@@ -2,9 +2,9 @@ export default {
|
||||
"name": "Rangers Protocol Mainnet",
|
||||
"chain": "Rangers",
|
||||
"icon": {
|
||||
"url": "ipfs://QmfHG3xbg4iiopagww93Gu7tmvCpPwZdiwsUjd3Dt5mRwT",
|
||||
"width": 835,
|
||||
"height": 835,
|
||||
"url": "ipfs://QmXR5e5SDABWfQn6XT9uMsVYAo5Bv7vUv4jVs8DFqatZWG",
|
||||
"width": 2000,
|
||||
"height": 2000,
|
||||
"format": "png"
|
||||
},
|
||||
"rpc": [
|
||||
|
||||
@@ -33,7 +33,6 @@ export default {
|
||||
{
|
||||
"name": "explorer masnet",
|
||||
"url": "https://explorer.masnet.ai",
|
||||
"icon": "explorer",
|
||||
"standard": "EIP3091"
|
||||
}
|
||||
],
|
||||
|
||||
@@ -0,0 +1,35 @@
|
||||
export default {
|
||||
"name": "HashKey Chain Testnet",
|
||||
"chain": "HashKey",
|
||||
"rpc": [
|
||||
"https://hashkey-chain-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
|
||||
"https://testnet.hashkeychain/rpc"
|
||||
],
|
||||
"faucets": [
|
||||
"https://testnet.hashkeychain/faucet"
|
||||
],
|
||||
"nativeCurrency": {
|
||||
"name": "HashKey Token",
|
||||
"symbol": "tHSK",
|
||||
"decimals": 18
|
||||
},
|
||||
"infoURL": "https://www.hashkey.com",
|
||||
"shortName": "hsktest",
|
||||
"chainId": 230315,
|
||||
"networkId": 230315,
|
||||
"icon": {
|
||||
"url": "ipfs://QmNU11AqYB2htrrSyBSP9ct7bPtuZTP7Hrz21PrEcB9nYE",
|
||||
"width": 1440,
|
||||
"height": 448,
|
||||
"format": "png"
|
||||
},
|
||||
"explorers": [
|
||||
{
|
||||
"name": "HashKey Chain Testnet Explorer",
|
||||
"url": "https://testnet.hashkeyscan.io",
|
||||
"standard": "none"
|
||||
}
|
||||
],
|
||||
"testnet": true,
|
||||
"slug": "hashkey-chain-testnet"
|
||||
} as const;
|
||||
@@ -3,7 +3,8 @@ export default {
|
||||
"chain": "CRO",
|
||||
"rpc": [
|
||||
"https://cronos-beta.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
|
||||
"https://evm.cronos.org"
|
||||
"https://evm.cronos.org",
|
||||
"https://cronos-evm.publicnode.com"
|
||||
],
|
||||
"features": [
|
||||
{
|
||||
|
||||
@@ -3,6 +3,7 @@ export default {
|
||||
"chain": "FTM",
|
||||
"rpc": [
|
||||
"https://fantom.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
|
||||
"https://fantom.publicnode.com",
|
||||
"https://rpc.ftm.tools"
|
||||
],
|
||||
"faucets": [
|
||||
|
||||
@@ -3,7 +3,7 @@ export default {
|
||||
"chain": "ETH",
|
||||
"rpc": [
|
||||
"https://zksync-era-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
|
||||
"https://zksync2-testnet.zksync.dev"
|
||||
"https://testnet.era.zksync.dev"
|
||||
],
|
||||
"faucets": [
|
||||
"https://goerli.portal.zksync.io/faucet"
|
||||
@@ -18,7 +18,7 @@ export default {
|
||||
"chainId": 280,
|
||||
"networkId": 280,
|
||||
"icon": {
|
||||
"url": "ipfs://Qma6H9xd8Ydah1bAFnmDuau1jeMh5NjGEL8tpdnjLbJ7m2",
|
||||
"url": "ipfs://QmRkhUD6J3B9WhT4hEWLrcFVTrBhx3CQgNC783aJsrwxSN",
|
||||
"width": 512,
|
||||
"height": 512,
|
||||
"format": "svg"
|
||||
|
||||
@@ -10,7 +10,8 @@ export default {
|
||||
"rpc": [
|
||||
"https://filecoin.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
|
||||
"https://api.node.glif.io/",
|
||||
"https://rpc.ankr.com/filecoin"
|
||||
"https://rpc.ankr.com/filecoin",
|
||||
"https://filecoin-mainnet.chainstacklabs.com/rpc/v1"
|
||||
],
|
||||
"faucets": [],
|
||||
"nativeCurrency": {
|
||||
@@ -40,8 +41,8 @@ export default {
|
||||
"standard": "EIP3091"
|
||||
},
|
||||
{
|
||||
"name": "Filmine",
|
||||
"url": "https://explorer.filmine.io",
|
||||
"name": "Dev.storage",
|
||||
"url": "https://dev.storage",
|
||||
"standard": "none"
|
||||
},
|
||||
{
|
||||
|
||||
@@ -43,8 +43,8 @@ export default {
|
||||
"standard": "none"
|
||||
},
|
||||
{
|
||||
"name": "Filmine",
|
||||
"url": "https://explorer.filmine.io",
|
||||
"name": "Dev.storage",
|
||||
"url": "https://dev.storage",
|
||||
"standard": "none"
|
||||
},
|
||||
{
|
||||
|
||||
@@ -34,6 +34,11 @@ export default {
|
||||
"name": "Filscout - Calibration",
|
||||
"url": "https://calibration.filscout.com/en",
|
||||
"standard": "none"
|
||||
},
|
||||
{
|
||||
"name": "Filfox - Calibration",
|
||||
"url": "https://calibration.filfox.info",
|
||||
"standard": "none"
|
||||
}
|
||||
],
|
||||
"testnet": true,
|
||||
|
||||
@@ -3,7 +3,7 @@ export default {
|
||||
"chain": "ETH",
|
||||
"rpc": [
|
||||
"https://zksync-era.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
|
||||
"https://zksync2-mainnet.zksync.io"
|
||||
"https://mainnet.era.zksync.io"
|
||||
],
|
||||
"faucets": [],
|
||||
"nativeCurrency": {
|
||||
@@ -16,7 +16,7 @@ export default {
|
||||
"chainId": 324,
|
||||
"networkId": 324,
|
||||
"icon": {
|
||||
"url": "ipfs://Qma6H9xd8Ydah1bAFnmDuau1jeMh5NjGEL8tpdnjLbJ7m2",
|
||||
"url": "ipfs://QmRkhUD6J3B9WhT4hEWLrcFVTrBhx3CQgNC783aJsrwxSN",
|
||||
"width": 512,
|
||||
"height": 512,
|
||||
"format": "svg"
|
||||
@@ -34,7 +34,7 @@ export default {
|
||||
"chain": "eip155-1",
|
||||
"bridges": [
|
||||
{
|
||||
"url": "https://portal.zksync.io/bridge"
|
||||
"url": "https://bridge.zksync.io/"
|
||||
}
|
||||
]
|
||||
},
|
||||
|
||||
@@ -0,0 +1,29 @@
|
||||
export default {
|
||||
"name": "Zilliqa EVM Testnet",
|
||||
"chain": "ZIL",
|
||||
"rpc": [
|
||||
"https://zilliqa-evm-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
|
||||
"https://dev-api.zilliqa.com"
|
||||
],
|
||||
"faucets": [
|
||||
"https://dev-wallet.zilliqa.com/faucet?network=testnet"
|
||||
],
|
||||
"nativeCurrency": {
|
||||
"name": "Zilliqa",
|
||||
"symbol": "ZIL",
|
||||
"decimals": 18
|
||||
},
|
||||
"infoURL": "https://www.zilliqa.com/",
|
||||
"shortName": "zil-testnet",
|
||||
"chainId": 33101,
|
||||
"networkId": 33101,
|
||||
"explorers": [
|
||||
{
|
||||
"name": "Zilliqa EVM Explorer",
|
||||
"url": "https://evmx.zilliqa.com",
|
||||
"standard": "none"
|
||||
}
|
||||
],
|
||||
"testnet": true,
|
||||
"slug": "zilliqa-evm-testnet"
|
||||
} as const;
|
||||
@@ -25,7 +25,6 @@ export default {
|
||||
{
|
||||
"name": "Paribu Net Explorer",
|
||||
"url": "https://explorer.paribu.network",
|
||||
"icon": "explorer",
|
||||
"standard": "EIP3091"
|
||||
}
|
||||
],
|
||||
|
||||
@@ -27,7 +27,6 @@ export default {
|
||||
{
|
||||
"name": "Paribu Net Testnet Explorer",
|
||||
"url": "https://testnet.paribuscan.com",
|
||||
"icon": "explorer",
|
||||
"standard": "EIP3091"
|
||||
}
|
||||
],
|
||||
|
||||
@@ -16,17 +16,10 @@ export default {
|
||||
"shortName": "btx",
|
||||
"chainId": 3690,
|
||||
"networkId": 3690,
|
||||
"icon": {
|
||||
"url": "ipfs://QmdwQDr6vmBtXmK2TmknkEuZNoaDqTasFdZdu3DRw8b2wt",
|
||||
"width": 1000,
|
||||
"height": 1628,
|
||||
"format": "png"
|
||||
},
|
||||
"explorers": [
|
||||
{
|
||||
"name": "bittexscan",
|
||||
"url": "https://bittexscan.com",
|
||||
"icon": "etherscan",
|
||||
"standard": "EIP3091"
|
||||
}
|
||||
],
|
||||
|
||||
@@ -0,0 +1,34 @@
|
||||
export default {
|
||||
"name": "HAPchain Testnet",
|
||||
"chain": "HAPchain",
|
||||
"rpc": [
|
||||
"https://hapchain-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
|
||||
"https://jsonrpc-test.hap.land"
|
||||
],
|
||||
"faucets": [],
|
||||
"nativeCurrency": {
|
||||
"name": "HAP",
|
||||
"symbol": "HAP",
|
||||
"decimals": 18
|
||||
},
|
||||
"infoURL": "https://hap.land",
|
||||
"shortName": "hap-testnet",
|
||||
"chainId": 373737,
|
||||
"networkId": 373737,
|
||||
"icon": {
|
||||
"url": "ipfs://QmQ4V9JC25yUrYk2kFJwmKguSsZBQvtGcg6q9zkDV8mkJW",
|
||||
"width": 400,
|
||||
"height": 400,
|
||||
"format": "png"
|
||||
},
|
||||
"explorers": [
|
||||
{
|
||||
"name": "HAP EVM Explorer (Blockscout)",
|
||||
"url": "https://blockscout-test.hap.land",
|
||||
"standard": "none",
|
||||
"icon": "hap"
|
||||
}
|
||||
],
|
||||
"testnet": true,
|
||||
"slug": "hapchain-testnet"
|
||||
} as const;
|
||||
@@ -0,0 +1,34 @@
|
||||
export default {
|
||||
"name": "AlveyChain Mainnet",
|
||||
"chain": "ALV",
|
||||
"icon": {
|
||||
"url": "ipfs://QmSwczpPLBG6ob1a8WLoujthiCPzwEyJNp7WdKRi52qbWX",
|
||||
"width": 310,
|
||||
"height": 310,
|
||||
"format": "png"
|
||||
},
|
||||
"rpc": [
|
||||
"https://alveychain.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
|
||||
"https://rpc.alveychain.com/rpc",
|
||||
"https://rpc2.alvey.io/rpc"
|
||||
],
|
||||
"faucets": [],
|
||||
"nativeCurrency": {
|
||||
"name": "AlveyCoin",
|
||||
"symbol": "ALV",
|
||||
"decimals": 18
|
||||
},
|
||||
"infoURL": "https://alveyscan.com/rpc",
|
||||
"shortName": "alv",
|
||||
"chainId": 3797,
|
||||
"networkId": 3797,
|
||||
"explorers": [
|
||||
{
|
||||
"name": "AlveyScan",
|
||||
"url": "https://alveyscan.com",
|
||||
"standard": "EIP3091"
|
||||
}
|
||||
],
|
||||
"testnet": false,
|
||||
"slug": "alveychain"
|
||||
} as const;
|
||||
@@ -35,7 +35,6 @@ export default {
|
||||
{
|
||||
"name": "DRAC_Network Scan",
|
||||
"url": "https://www.dracscan.io",
|
||||
"icon": "DRAC",
|
||||
"standard": "EIP3091"
|
||||
}
|
||||
],
|
||||
|
||||
@@ -0,0 +1,34 @@
|
||||
export default {
|
||||
"name": "DOS Tesnet",
|
||||
"chain": "DOS",
|
||||
"rpc": [
|
||||
"https://dos-tesnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
|
||||
"https://test.doschain.com"
|
||||
],
|
||||
"faucets": [],
|
||||
"nativeCurrency": {
|
||||
"name": "DOS",
|
||||
"symbol": "DOS",
|
||||
"decimals": 18
|
||||
},
|
||||
"infoURL": "http://doschain.io/",
|
||||
"shortName": "dost",
|
||||
"chainId": 3939,
|
||||
"networkId": 3939,
|
||||
"icon": {
|
||||
"url": "ipfs://QmV2Nowzo81F6pi2qFcHePA4MwmmdMKBMUzBJUrxcymxx4",
|
||||
"width": 512,
|
||||
"height": 512,
|
||||
"format": "png"
|
||||
},
|
||||
"explorers": [
|
||||
{
|
||||
"name": "DOScan-Test",
|
||||
"url": "https://test.doscan.io",
|
||||
"icon": "doschain",
|
||||
"standard": "EIP3091"
|
||||
}
|
||||
],
|
||||
"testnet": true,
|
||||
"slug": "dos-tesnet"
|
||||
} as const;
|
||||
@@ -9,6 +9,7 @@ export default {
|
||||
},
|
||||
"rpc": [
|
||||
"https://bitindi-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
|
||||
"https://rpc-testnet.bitindi.org",
|
||||
"https://testnet-rpc.bitindi.org"
|
||||
],
|
||||
"faucets": [
|
||||
|
||||
@@ -9,6 +9,7 @@ export default {
|
||||
},
|
||||
"rpc": [
|
||||
"https://bitindi.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
|
||||
" https://rpc-mainnet.bitindi.org",
|
||||
"https://mainnet-rpc.bitindi.org"
|
||||
],
|
||||
"faucets": [
|
||||
|
||||
@@ -0,0 +1,26 @@
|
||||
export default {
|
||||
"name": "LA Testnet",
|
||||
"chain": "LATestnet",
|
||||
"rpc": [
|
||||
"https://la-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
|
||||
"https://rpc.testnet.lachain.network"
|
||||
],
|
||||
"faucets": [],
|
||||
"nativeCurrency": {
|
||||
"name": "Test La Coin",
|
||||
"symbol": "TLA",
|
||||
"decimals": 18
|
||||
},
|
||||
"features": [
|
||||
{
|
||||
"name": "EIP155"
|
||||
}
|
||||
],
|
||||
"infoURL": "",
|
||||
"shortName": "latestnet",
|
||||
"chainId": 418,
|
||||
"networkId": 418,
|
||||
"explorers": [],
|
||||
"testnet": true,
|
||||
"slug": "la-testnet"
|
||||
} as const;
|
||||
@@ -0,0 +1,36 @@
|
||||
export default {
|
||||
"name": "Nexi Mainnet",
|
||||
"chain": "Nexi",
|
||||
"icon": {
|
||||
"url": "ipfs://bafybeifxqd7zel2m237kq5enavnh2s6cshaavswigogyvae2wevxy5k2ti",
|
||||
"width": 512,
|
||||
"height": 578,
|
||||
"format": "png"
|
||||
},
|
||||
"rpc": [
|
||||
"https://nexi.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
|
||||
"https://rpc.chain.nexi.technology/",
|
||||
"https://chain.nexilix.com",
|
||||
"https://chain.nexi.evmnode.online"
|
||||
],
|
||||
"faucets": [],
|
||||
"nativeCurrency": {
|
||||
"name": "Nexi",
|
||||
"symbol": "NEXI",
|
||||
"decimals": 18
|
||||
},
|
||||
"infoURL": "https://www.nexi.technology/",
|
||||
"shortName": "nexi",
|
||||
"chainId": 4242,
|
||||
"networkId": 4242,
|
||||
"slip44": 2500,
|
||||
"explorers": [
|
||||
{
|
||||
"name": "nexiscan",
|
||||
"url": "https://www.nexiscan.com",
|
||||
"standard": "EIP3091"
|
||||
}
|
||||
],
|
||||
"testnet": false,
|
||||
"slug": "nexi"
|
||||
} as const;
|
||||
@@ -18,7 +18,8 @@ export default {
|
||||
"rpc": [
|
||||
"https://avalanche.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
|
||||
"https://avalanche-mainnet.infura.io/v3/${INFURA_API_KEY}",
|
||||
"https://api.avax.network/ext/bc/C/rpc"
|
||||
"https://api.avax.network/ext/bc/C/rpc",
|
||||
"https://avalanche-c-chain.publicnode.com"
|
||||
],
|
||||
"features": [
|
||||
{
|
||||
|
||||
@@ -25,7 +25,6 @@ export default {
|
||||
{
|
||||
"name": "etmp",
|
||||
"url": "https://pioneer.etmscan.network",
|
||||
"icon": "etmpscan",
|
||||
"standard": "EIP3091"
|
||||
}
|
||||
],
|
||||
|
||||
@@ -10,9 +10,10 @@ export default {
|
||||
"https://rpc.goerli.mudit.blog/"
|
||||
],
|
||||
"faucets": [
|
||||
"https://faucet.goerli.mudit.blog",
|
||||
"https://faucet.paradigm.xyz/",
|
||||
"http://fauceth.komputing.org?chain=5&address=${ADDRESS}",
|
||||
"https://goerli-faucet.slock.it?address=${ADDRESS}",
|
||||
"http://fauceth.komputing.org?chain=5&address=${ADDRESS}"
|
||||
"https://faucet.goerli.mudit.blog"
|
||||
],
|
||||
"nativeCurrency": {
|
||||
"name": "Goerli Ether",
|
||||
|
||||
@@ -2,8 +2,8 @@ export default {
|
||||
"name": "ethereum Fair",
|
||||
"chainId": 513100,
|
||||
"networkId": 513100,
|
||||
"shortName": "etf",
|
||||
"chain": "ETF",
|
||||
"shortName": "ethf",
|
||||
"chain": "ETHF",
|
||||
"nativeCurrency": {
|
||||
"name": "EthereumFair",
|
||||
"symbol": "ETHF",
|
||||
@@ -17,7 +17,7 @@ export default {
|
||||
"explorers": [
|
||||
{
|
||||
"name": "etherfair",
|
||||
"url": "https://explorer.etherfair.org",
|
||||
"url": "https://www.oklink.com/ethf",
|
||||
"standard": "EIP3091"
|
||||
}
|
||||
],
|
||||
|
||||
@@ -4,6 +4,7 @@ export default {
|
||||
"rpc": [
|
||||
"https://binance.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
|
||||
"wss://bsc-ws-node.nariox.org",
|
||||
"https://bsc.publicnode.com",
|
||||
"https://bsc-dataseed4.ninicoin.io",
|
||||
"https://bsc-dataseed3.ninicoin.io",
|
||||
"https://bsc-dataseed2.ninicoin.io",
|
||||
|
||||
@@ -0,0 +1,28 @@
|
||||
export default {
|
||||
"name": "Syscoin Rollux Testnet",
|
||||
"chain": "SYS",
|
||||
"rpc": [
|
||||
"https://syscoin-rollux-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
|
||||
"https://rpc-tanenbaum.rollux.com",
|
||||
"wss://rpc-tanenbaum.rollux.com/wss"
|
||||
],
|
||||
"faucets": [],
|
||||
"nativeCurrency": {
|
||||
"name": "Rollux Testnet Syscoin",
|
||||
"symbol": "tSYS",
|
||||
"decimals": 18
|
||||
},
|
||||
"infoURL": "https://syscoin.org",
|
||||
"shortName": "tsys-rollux",
|
||||
"chainId": 57000,
|
||||
"networkId": 57000,
|
||||
"explorers": [
|
||||
{
|
||||
"name": "Syscoin Rollux Testnet Explorer",
|
||||
"url": "https://rollux.tanenbaum.io",
|
||||
"standard": "EIP3091"
|
||||
}
|
||||
],
|
||||
"testnet": true,
|
||||
"slug": "syscoin-rollux-testnet"
|
||||
} as const;
|
||||
@@ -0,0 +1,47 @@
|
||||
export default {
|
||||
"name": "Linea Testnet",
|
||||
"title": "Linea Testnet",
|
||||
"chain": "ETH",
|
||||
"rpc": [
|
||||
"https://linea-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
|
||||
"https://rpc.goerli.linea.build"
|
||||
],
|
||||
"faucets": [
|
||||
"https://faucetlink.to/goerli"
|
||||
],
|
||||
"nativeCurrency": {
|
||||
"name": "Goerli Ether",
|
||||
"symbol": "ETH",
|
||||
"decimals": 18
|
||||
},
|
||||
"infoURL": "https://linea.build",
|
||||
"shortName": "linea-testnet",
|
||||
"chainId": 59140,
|
||||
"networkId": 59140,
|
||||
"icon": {
|
||||
"url": "ipfs://QmP6rcphqMTeByPxomeYeR5XRPZaFpwGbZxHkGQKyao4Le",
|
||||
"width": 115,
|
||||
"height": 115,
|
||||
"format": "svg"
|
||||
},
|
||||
"parent": {
|
||||
"type": "L2",
|
||||
"chain": "eip155-5",
|
||||
"bridges": [
|
||||
{
|
||||
"url": "https://goerli.hop.exchange/#/send?token=ETH&sourceNetwork=ethereum&destNetwork=linea"
|
||||
}
|
||||
]
|
||||
},
|
||||
"explorers": [
|
||||
{
|
||||
"name": "Linea Testnet Explorer",
|
||||
"url": "https://explorer.goerli.linea.build",
|
||||
"standard": "EIP3091",
|
||||
"icon": "linea"
|
||||
}
|
||||
],
|
||||
"status": "active",
|
||||
"testnet": true,
|
||||
"slug": "linea-testnet"
|
||||
} as const;
|
||||
@@ -33,6 +33,12 @@ export default {
|
||||
}
|
||||
]
|
||||
},
|
||||
"icon": {
|
||||
"url": "ipfs://QmbWKNucbMtrMPPkHG5ZmVmvNUo8CzqHHcrpk1C2BVQsEG/2022_H-Brand_Stacked_WhiteGreen.svg",
|
||||
"format": "svg",
|
||||
"height": 512,
|
||||
"width": 512
|
||||
},
|
||||
"testnet": true,
|
||||
"slug": "metis-goerli-testnet"
|
||||
} as const;
|
||||
@@ -0,0 +1,33 @@
|
||||
export default {
|
||||
"name": "Scolcoin Mainnet",
|
||||
"chain": "SCOLWEI",
|
||||
"rpc": [
|
||||
"https://scolcoin.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
|
||||
"https://mainnet-rpc.scolcoin.com"
|
||||
],
|
||||
"faucets": [],
|
||||
"nativeCurrency": {
|
||||
"name": "Scolcoin",
|
||||
"symbol": "SCOL",
|
||||
"decimals": 18
|
||||
},
|
||||
"infoURL": "https://scolcoin.com",
|
||||
"shortName": "SRC",
|
||||
"chainId": 65450,
|
||||
"networkId": 65450,
|
||||
"icon": {
|
||||
"url": "ipfs://QmVES1eqDXhP8SdeCpM85wvjmhrQDXGRquQebDrSdvJqpt",
|
||||
"width": 792,
|
||||
"height": 822,
|
||||
"format": "png"
|
||||
},
|
||||
"explorers": [
|
||||
{
|
||||
"name": "Scolscan Explorer",
|
||||
"url": "https://explorer.scolcoin.com",
|
||||
"standard": "EIP3091"
|
||||
}
|
||||
],
|
||||
"testnet": false,
|
||||
"slug": "scolcoin"
|
||||
} as const;
|
||||
@@ -0,0 +1,35 @@
|
||||
export default {
|
||||
"name": "Scolcoin WeiChain Testnet",
|
||||
"chain": "SCOLWEI-testnet",
|
||||
"rpc": [
|
||||
"https://scolcoin-weichain-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
|
||||
"https://testnet-rpc.scolcoin.com"
|
||||
],
|
||||
"faucets": [
|
||||
"https://faucet.scolcoin.com"
|
||||
],
|
||||
"nativeCurrency": {
|
||||
"name": "Scolcoin",
|
||||
"symbol": "SCOL",
|
||||
"decimals": 18
|
||||
},
|
||||
"infoURL": "https://scolcoin.com",
|
||||
"shortName": "SRC-test",
|
||||
"chainId": 6552,
|
||||
"networkId": 6552,
|
||||
"icon": {
|
||||
"url": "ipfs://QmVES1eqDXhP8SdeCpM85wvjmhrQDXGRquQebDrSdvJqpt",
|
||||
"width": 792,
|
||||
"height": 822,
|
||||
"format": "png"
|
||||
},
|
||||
"explorers": [
|
||||
{
|
||||
"name": "Scolscan Testnet Explorer",
|
||||
"url": "https://testnet-explorer.scolcoin.com",
|
||||
"standard": "EIP3091"
|
||||
}
|
||||
],
|
||||
"testnet": true,
|
||||
"slug": "scolcoin-weichain-testnet"
|
||||
} as const;
|
||||
@@ -26,7 +26,6 @@ export default {
|
||||
{
|
||||
"name": "explorer",
|
||||
"url": "https://explorer.idchain.one",
|
||||
"icon": "etherscan",
|
||||
"standard": "EIP3091"
|
||||
}
|
||||
],
|
||||
|
||||
@@ -18,7 +18,7 @@ export default {
|
||||
"explorers": [
|
||||
{
|
||||
"name": "Canto Tesnet Explorer (Neobase)",
|
||||
"url": "http://testnet-explorer.canto.neobase.one",
|
||||
"url": "https://testnet-explorer.canto.neobase.one",
|
||||
"standard": "none"
|
||||
}
|
||||
],
|
||||
|
||||
@@ -0,0 +1,35 @@
|
||||
export default {
|
||||
"name": "ADIL Testnet",
|
||||
"chain": "ADIL",
|
||||
"icon": {
|
||||
"url": "ipfs://QmeHNYUx6n8CjUFSLWNT17oAtDYrUq6r8buyvGCUBXCJw6",
|
||||
"width": 500,
|
||||
"height": 500,
|
||||
"format": "png"
|
||||
},
|
||||
"rpc": [
|
||||
"https://adil-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
|
||||
"https://testnet.adilchain-rpc.io"
|
||||
],
|
||||
"faucets": [
|
||||
"https://testnet-faucet.adil-scan.io"
|
||||
],
|
||||
"nativeCurrency": {
|
||||
"name": "Testnet ADIL",
|
||||
"symbol": "ADIL",
|
||||
"decimals": 18
|
||||
},
|
||||
"infoURL": "https://adilchain.io",
|
||||
"shortName": "tadil",
|
||||
"chainId": 7575,
|
||||
"networkId": 7575,
|
||||
"explorers": [
|
||||
{
|
||||
"name": "ADIL Testnet Explorer",
|
||||
"url": "https://testnet.adilchain-scan.io",
|
||||
"standard": "EIP3091"
|
||||
}
|
||||
],
|
||||
"testnet": true,
|
||||
"slug": "adil-testnet"
|
||||
} as const;
|
||||
@@ -0,0 +1,28 @@
|
||||
export default {
|
||||
"name": "The Root Network - Mainnet",
|
||||
"chain": "TRN",
|
||||
"rpc": [
|
||||
"https://the-root-network.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
|
||||
"https://root.rootnet.live/archive",
|
||||
"wss://root.rootnet.live/archive/ws"
|
||||
],
|
||||
"faucets": [],
|
||||
"nativeCurrency": {
|
||||
"name": "XRP",
|
||||
"symbol": "XRP",
|
||||
"decimals": 6
|
||||
},
|
||||
"infoURL": "https://www.futureverse.com/technology/root",
|
||||
"shortName": "trn-mainnet",
|
||||
"chainId": 7668,
|
||||
"networkId": 7668,
|
||||
"explorers": [
|
||||
{
|
||||
"name": "rootnet",
|
||||
"url": "https://explorer.rootnet.live",
|
||||
"standard": "none"
|
||||
}
|
||||
],
|
||||
"testnet": false,
|
||||
"slug": "the-root-network"
|
||||
} as const;
|
||||
@@ -0,0 +1,28 @@
|
||||
export default {
|
||||
"name": "The Root Network - Porcini Testnet",
|
||||
"chain": "TRN",
|
||||
"rpc": [
|
||||
"https://the-root-network-porcini-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
|
||||
"https://porcini.rootnet.app/archive",
|
||||
"wss://porcini.rootnet.app/archive/ws"
|
||||
],
|
||||
"faucets": [],
|
||||
"nativeCurrency": {
|
||||
"name": "XRP",
|
||||
"symbol": "XRP",
|
||||
"decimals": 6
|
||||
},
|
||||
"infoURL": "https://www.futureverse.com/technology/root",
|
||||
"shortName": "trn-porcini",
|
||||
"chainId": 7672,
|
||||
"networkId": 7672,
|
||||
"explorers": [
|
||||
{
|
||||
"name": "rootnet",
|
||||
"url": "https://explorer.rootnet.cloud",
|
||||
"standard": "none"
|
||||
}
|
||||
],
|
||||
"testnet": true,
|
||||
"slug": "the-root-network-porcini-testnet"
|
||||
} as const;
|
||||
@@ -0,0 +1,34 @@
|
||||
export default {
|
||||
"name": "DOS Chain",
|
||||
"chain": "DOS",
|
||||
"rpc": [
|
||||
"https://dos-chain.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
|
||||
"https://main.doschain.com"
|
||||
],
|
||||
"faucets": [],
|
||||
"nativeCurrency": {
|
||||
"name": "DOS",
|
||||
"symbol": "DOS",
|
||||
"decimals": 18
|
||||
},
|
||||
"infoURL": "https://doschain.io",
|
||||
"shortName": "dos",
|
||||
"chainId": 7979,
|
||||
"networkId": 7979,
|
||||
"icon": {
|
||||
"url": "ipfs://QmV2Nowzo81F6pi2qFcHePA4MwmmdMKBMUzBJUrxcymxx4",
|
||||
"width": 512,
|
||||
"height": 512,
|
||||
"format": "png"
|
||||
},
|
||||
"explorers": [
|
||||
{
|
||||
"name": "DOScan",
|
||||
"url": "https://doscan.io",
|
||||
"icon": "doschain",
|
||||
"standard": "EIP3091"
|
||||
}
|
||||
],
|
||||
"testnet": false,
|
||||
"slug": "dos-chain"
|
||||
} as const;
|
||||
@@ -1,6 +1,6 @@
|
||||
export default {
|
||||
"name": "Lucid Blockchain",
|
||||
"chain": "Lucid Blockchain",
|
||||
"chain": "Lucid",
|
||||
"icon": {
|
||||
"url": "ipfs://bafybeigxiyyxll4vst5cjjh732mr6zhsnligxubaldyiul2xdvvi6ibktu",
|
||||
"width": 800,
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user