Compare commits

...
Author SHA1 Message Date
github-actions[bot]GitHubgithub-actions[bot] <github-actions[bot]@users.noreply.github.com>
3ad3bf0124 Version Packages (#700)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2023-03-29 15:46:11 -07:00
iketwandGitHub 6b31a9bcd3 [Wallets] set qrcode prop correctly (#835) 2023-03-29 22:33:50 +00:00
Adam MajmudarandGitHub 085076117b [SDK] Add magical types for thirdweb generate (#820) 2023-03-29 21:51:07 +00:00
Manan TankandGitHub 83e99dbf28 Fix paper auto connect (#833) 2023-03-29 21:31:31 +00:00
Manan TankandGitHub e47ceafeae Wallet enhancements & Fixes (#832) 2023-03-29 20:11:07 +00:00
iketwandGitHub 96b1aa1521 Update changesets (#831) 2023-03-29 19:24:41 +00:00
Manan TankandGitHub 3ff8eecf18 use authConfig in useLogin() (#829) 2023-03-29 18:50:55 +00:00
Adam MajmudarandGitHub 805896c78d [SDK] Make metadata signature 721 output optional (#830) 2023-03-29 18:40:55 +00:00
48ec060267 various wallet improvements (#828)
Co-authored-by: Jonas Daniels <[email protected]>
2023-03-29 10:24:23 -07:00
4bdeefe6cb [Wallets, Core, RN, React] Allow wallets to be constructed without params where possible (#825)
Co-authored-by: Manan Tank <[email protected]>
2023-03-29 09:44:37 -07:00
iketwandGitHub 95bcfa6df8 [Wallets] Adds autoConnect capabilities (#824) 2023-03-29 01:19:48 +00:00
Jonas DanielsandGitHub 4ba431f4a4 [chains] - add linea testnet (consensys zkevm) (#823) 2023-03-29 00:36:34 +00:00
e453e3651e allow wallet config (#808)
Co-authored-by: ikethirdweb <[email protected]>
Co-authored-by: iketw <[email protected]>
2023-03-29 00:27:24 +00:00
Jonas DanielsandGitHub e2ec70c492 [chains] - update some chains (#822) 2023-03-28 21:45:41 +00:00
Jonas DanielsandGitHub 02f5766bcb [react] - fix connect wallet modal overlay (#821) 2023-03-28 07:35:44 +00:00
6ea5eea1d8 Optimize build times for foundry and hardhat (#806)
Co-authored-by: Jonas Daniels <[email protected]>
2023-03-28 07:30:51 +00:00
Adam MajmudarandGitHub 682f1c673f [SDK] Update contract.call with function types (#819) 2023-03-28 01:00:05 +00:00
4cbbad98b3 [SDK] Add support for transaction on deploy (#758)
Co-authored-by: Adam Majmudar <[email protected]>
Co-authored-by: Jonas Daniels <[email protected]>
Co-authored-by: Adam Majmudar <[email protected]>
Co-authored-by: Joaquim Verges <[email protected]>
2023-03-27 23:11:22 +00:00
Jonas DanielsandGitHub e4893a0821 [chains] - fix zkevm mainnet not being a testnet (#818) 2023-03-27 23:08:18 +00:00
Jonas DanielsandGitHub 766cc75640 [tooling] - attempt to fix versioning (#817) 2023-03-27 22:51:08 +00:00
Jonas DanielsandGitHub f994278a51 [chains] - fix zkevm mainnet beta showing as testnet (#816) 2023-03-27 22:15:29 +00:00
Jonas Daniels 0666fb018b Merge branch 'main' of github.com:thirdweb-dev/js 2023-03-27 14:30:17 -07:00
Jonas Daniels 61e8985149 fix chains build 2023-03-27 14:30:06 -07:00
iketwandGitHub b8b8a7ca07 [ReactNative] remove old device wallet (#815) 2023-03-27 21:21:31 +00:00
iketwandGitHub b97cf2e588 [ReactNative] Fix flicker in react-native-modal in ios (#813) 2023-03-27 20:47:27 +00:00
Jonas DanielsandGitHub 97b5147bde [tooling] fix docs generation (#812) 2023-03-27 20:26:56 +00:00
Manan TankandGitHub 13c1e23757 catch JSON error when connecting to safe (#811) 2023-03-27 20:11:09 +00:00
iketwandGitHub 5ac451da2b [ReactNative] Improve web3button and add more descriptive console.errors (#810) 2023-03-27 18:19:36 +00:00
Jonas DanielsandGitHub 9a4a542ce9 [chains] add polygon zkevm mainnet beta (#809) 2023-03-27 17:23:31 +00:00
iketwandGitHub 79768d4cfa [ReactNative] Update code comments for supportedWallets (#807) 2023-03-27 14:05:12 +00:00
iketwandGitHub 4d07b4b4e7 [ReactCore/Wallets] ReactCore manages all coordination (#802) 2023-03-25 16:46:20 +00:00
Manan TankandGitHub f281e1a080 react: various UI improvements for connect wallet (#805) 2023-03-25 08:57:41 +00:00
Jonas DanielsandGitHub 92936b7ffa [react-core] - update provider props to accept strings and numbers bu… (#803) 2023-03-25 01:48:51 +00:00
Jonas DanielsandGitHub a9618d9bca [CLI] - fix install command (#804) 2023-03-25 01:26:30 +00:00
Jonas DanielsandGitHub 6b145d4b36 [chains] update chains (#801) 2023-03-24 23:53:41 +00:00
iketwandGitHub 49eceaa08e [ReactCore] typescript complains about chains not in defaultChains (#799) 2023-03-24 18:57:02 +00:00
iketwandGitHub d6ae520aaf [ReactCore] fix useActiveChain hook (#800) 2023-03-24 18:44:54 +00:00
Manan TankandGitHub 7a420889f6 Fix Gnosis Safe Connection glitch + UI improvements (#798) 2023-03-24 16:34:05 +00:00
iketwandGitHub de7b619676 [SDK] remove duplicate creation in derived class (#797) 2023-03-24 05:24:32 +00:00
iketwandGitHub b56511e22d [SDK] Dont parse abis on detect features (#796) 2023-03-24 05:24:21 +00:00
a6fce0f691 Install command improvements (#794)
Co-authored-by: Adam Majmudar <[email protected]>
Co-authored-by: adam-maj <[email protected]>
Co-authored-by: Jonas Daniels <[email protected]>
2023-03-23 21:39:05 +00:00
iketwandGitHub 2129c1f8c1 [Wallets] Pass correct static id from the specific wallet (#795) 2023-03-23 20:28:27 +00:00
Manan TankandGitHub 1f49af3d5b Fix Autoconnect not working on prod bundle (#793) 2023-03-23 17:44:44 +00:00
77c5ca1bd5 Connect Wallet v2 UI improvements (#789)
Co-authored-by: Jonas Daniels <[email protected]>
2023-03-23 09:07:20 +00:00
Jonas DanielsandGitHub 283fd7db5d [react-core] - no longer requires auth at runtime at all :) (#792) 2023-03-23 05:58:52 +00:00
Jonas DanielsandGitHub c2324bfdc2 [auth, react-core, react] - clean up auth integration (#791) 2023-03-23 04:21:29 +00:00
Joaquim VergesandGitHub 485abd06aa [SDK] Fix getPackContents with ERC20 rewards (#790) 2023-03-23 03:17:25 +00:00
9fa628f894 [SDK, React, CLI] Make generate work with useContract (#767)
Co-authored-by: Adam Majmudar <[email protected]>
Co-authored-by: Adam Majmudar <[email protected]>
Co-authored-by: Joaquim Verges <[email protected]>
2023-03-22 20:23:12 +00:00
Manan TankandGitHub ddc1c33a53 Gnosis Safe (#786) 2023-03-22 14:46:42 +00:00
Jonas DanielsandGitHub 9fdcf3113a [sdk] - more z.input -> z.output changes (#784) 2023-03-21 06:13:43 +00:00
Joaquim VergesandGitHub 6c0c65389f [UnityLib] update wallets SDK (#778) 2023-03-21 06:06:47 +00:00
Jonas DanielsandGitHub 91089a3869 [sdk] - make AbiTypeBaseSchema default name instead of optional as well (#783) 2023-03-21 05:43:49 +00:00
Jonas DanielsandGitHub d8c1c9433e [sdk] - properly parse ABIs (#782) 2023-03-21 05:13:44 +00:00
Jonas DanielsandGitHub d1e2d5f90f [wallets] - fix paper connection args (#781) 2023-03-21 04:15:19 +00:00
Jonas DanielsandGitHub 2a53405dea [wallets] - remove serverside and Pkey wallets from top level export (#780) 2023-03-21 03:21:00 +00:00
Jonas DanielsandGitHub 0f5343a303 [wallets, react, react-core] - clean up lots of wallet logic (#779) 2023-03-21 01:45:17 +00:00
4b77bc9b88 add paper wallet, don't save device wallet connectParams (#764)
Co-authored-by: Jonas Daniels <[email protected]>
2023-03-20 23:04:09 +00:00
iketwandGitHub e2ea5a716f [ReactCore] Making supportedChains optional again in the SDK provider (#766) 2023-03-19 05:46:45 +00:00
8463a1761f [SDK] Fix infinite recursion in ENS cache (#773)
Co-authored-by: Adam Majmudar <[email protected]>
2023-03-18 23:54:29 +00:00
iketwandGitHub e3161e5986 [RN] Get wallet meta from wallets (#771) 2023-03-18 20:02:01 +00:00
Joaquim VergesandGitHub 5c7c0923e4 [SDK] Fix NFT metadata failure breaking marketplace v3 getAllListings (#770) 2023-03-18 04:29:29 +00:00
Jonas DanielsandGitHub 6ae9fbf988 [tooling] - add a script to attempt to explain major versions (#769) 2023-03-17 23:51:14 +00:00
923b9ead3d [CLI] thirdweb create should rename contract (#768)
Co-authored-by: Adam Majmudar <[email protected]>
2023-03-17 22:28:51 +00:00
92d190709b [CLI] Handle failed metadata downloads and use cache in generate (#765)
Co-authored-by: Adam Majmudar <[email protected]>
2023-03-17 19:14:42 +00:00
iketwandGitHub 43d8a65e1d [ReactNativeCLI] Add expo option to create app (#763) 2023-03-17 15:15:19 +00:00
Jonas DanielsandGitHub 93eca1de7d [wallets] - coinbase sdk full dependency (#760) 2023-03-17 04:47:49 +00:00
Joaquim VergesandGitHub 52d37f0187 [SDK] fix ABI parsing for inputs without names (#761) 2023-03-17 04:42:58 +00:00
Jonas Daniels c6efc2389f change some versioning in changesets 2023-03-16 20:43:45 -07:00
Jonas DanielsandGitHub 379d4e167a remove duplicate changeset (#759) 2023-03-17 02:43:13 +00:00
8ef5a6f217 [SDK] add marketplace v3 extensions to SmartContract (#753)
Co-authored-by: Jonas Daniels <[email protected]>
2023-03-17 02:24:30 +00:00
9ea439692d [Storage] Set new ipfs gateway (#757)
Co-authored-by: Jonas Daniels <[email protected]>
2023-03-17 02:20:52 +00:00
Jonas DanielsandGitHub 9e593574f1 [tooling] - switch to pnpm for faster CI (#755) 2023-03-17 02:05:00 +00:00
abf609a401 [SDK] Add multiplyGas function and bump polygon default gas settings (#737)
Co-authored-by: Adam Majmudar <[email protected]>
Co-authored-by: Joaquim Verges <[email protected]>
Co-authored-by: Adam Majmudar <[email protected]>
2023-03-16 20:19:00 +00:00
Manan TankandGitHub 781824ba05 fix wallet connect v2 error (#754) 2023-03-16 19:59:51 +00:00
1baed0b1d8 [SDK, CLI] Add generated ABIs and types (#721)
Co-authored-by: Adam Majmudar <[email protected]>
Co-authored-by: Adam Majmudar <[email protected]>
2023-03-16 20:26:54 +00:00
iketwandGitHub 439d791996 [ReactNative] clear web3button state when user disconnects (#752) 2023-03-16 19:38:47 +00:00
Jonas DanielsandGitHub efff9cfda0 [cli] remove tslog (#751) 2023-03-16 19:27:52 +00:00
f630630b1f react: use wallet.meta for wallet name and icon (#731)
Co-authored-by: iketw <[email protected]>
Co-authored-by: Jonas Daniels <[email protected]>
2023-03-16 17:45:49 +00:00
dependabot[bot]GitHubdependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
1a574ef3d8 Bump eslint-config-next from 12.3.1 to 13.2.4 (#743)
Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-03-16 17:25:19 +00:00
2221f97ddc Fix RPC URLs in the chain object (#748)
Co-authored-by: ikethirdweb <[email protected]>
2023-03-16 16:37:04 +00:00
Manan TankandGitHub 34f3d7104c fix hotlink error (#747) 2023-03-16 14:16:12 +00:00
iketwandGitHub a4c9017dd5 [ReactCore] fix timeout and find exact wallet (#746) 2023-03-16 14:06:04 +00:00
Jonas DanielsandGitHub c18738bb34 Create .github/dependabot.yml (#740) 2023-03-16 11:25:23 +00:00
Jonas DanielsandGitHub 4d5fdda907 [wallets, react] - move (gnosis) safe to /wallets package (#739) 2023-03-16 10:54:56 +00:00
Jonas DanielsandGitHub f619249110 fix some changesets (#738) 2023-03-16 08:23:56 +00:00
e4b4a8d287 [React] Move default api key to the React package (#736)
Co-authored-by: Jonas Daniels <[email protected]>
2023-03-16 08:21:00 +00:00
1efa22afd3 [React] Fix wrong return on useActiveClaimConditionForWallet (#733)
Co-authored-by: Jonas Daniels <[email protected]>
2023-03-16 08:05:38 +00:00
Jonas DanielsandGitHub ba9f593be8 [sdk] - add functions to watch blocks and transactions (#735) 2023-03-16 07:50:33 +00:00
dependabot[bot]GitHubdependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
ce0b1bf288 Bump next-auth from 4.19.2 to 4.20.1 (#718)
Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-03-16 04:30:12 +00:00
dependabot[bot]GitHubdependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
7522320050 Bump webpack from 5.75.0 to 5.76.1 (#727)
Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-03-16 04:29:55 +00:00
iketwandGitHub 4dfe2f6ee6 [ReactCore] re-export all thirdweb/sdk (#734) 2023-03-16 01:10:20 +00:00
iketwandGitHub b17194bd46 [Wallets] separate listeners in tw-connector (#732) 2023-03-15 15:48:11 +00:00
Manan TankandGitHub 1fbc0d061a Cwv2 connection fixes (#730) 2023-03-15 13:39:50 +00:00
Manan TankandGitHub 75bec68d23 Fix useConnect() type (#729) 2023-03-15 11:03:38 +00:00
iketwandGitHub ce48d13cd7 [RNCreateCLI] skip ruby checks for expo (#728) 2023-03-15 05:23:09 +00:00
iketwandGitHub bddb1566f1 [Wallets] Correctly setup listeners (#726) 2023-03-15 02:29:55 +00:00
Nacho IacovinoandGitHub b2d0ffb049 [Chains] Override goerli default faucet (#719) 2023-03-14 22:45:10 +00:00
iketwandGitHub 956ceff3c3 [ReactNativeCLI] Only check ruby version and throw. Attempting to change has a lot of side effects (#725) 2023-03-14 14:25:03 +00:00
Manan TankandGitHub ce1ecb9f9f Connect wallet v2 various improvements (#724) 2023-03-14 13:27:00 +00:00
iketwandGitHub 48bff31f35 [ReactNativeCLI] manage ruby version by setting the project version to the systems version (#723) 2023-03-14 04:42:24 +00:00
iketwandGitHub 0eb0aae29a [ReactNativeSDK] fix WC uri and pass correct default metadata url (#722) 2023-03-14 02:40:36 +00:00
Nacho IacovinoandGitHub 04775954a0 [React] Make tokenId optional on useTotalCirculatingSupply (#717) 2023-03-13 19:56:05 +00:00
bd40bc2ef1 [React] Fix accepted types for some hooks (#712)
Co-authored-by: Nacho Iacovino <[email protected]>
2023-03-13 19:32:33 +00:00
iketwandGitHub 17a03e94d2 [ReactNativeCLI] verify correct ruby version (#716) 2023-03-13 19:29:58 +00:00
iketwandGitHub 4154c6f51a [react-core] fix changeset (#715) 2023-03-13 18:31:04 +00:00
iketwandGitHub c4862425dc [ReactNativeCLI] Added RN specific instructions + installation steps (#714) 2023-03-13 17:43:58 +00:00
Adam MajmudarandGitHub d6913d70b2 [Auth] Only import types in auth from @thirdweb-dev/wallets (#709) 2023-03-11 01:52:01 +00:00
d01b135d26 Connect Wallet v2 (#584)
Co-authored-by: ikethirdweb <[email protected]>
Co-authored-by: Joaquim Verges <[email protected]>
Co-authored-by: Jonas Daniels <[email protected]>
2023-03-11 00:03:44 +00:00
71532e5a9f [SDK] rename to MarketplaceV3 (#701)
Co-authored-by: Jonas Daniels <[email protected]>
2023-03-10 18:39:16 +00:00
Ooi Thian HooiandGitHub aad57a566b [REACT] Fix/unable to override chain (#708) 2023-03-10 17:47:31 +00:00
Joaquim VergesandGitHub 2ec2802119 [SDK] Remove hardcoded gasLimits on marketplace/pack (#705) 2023-03-10 05:12:18 +00:00
Joaquim VergesandGitHub 208d97e6a8 [SDK] Export currency Utils (#704) 2023-03-10 05:12:09 +00:00
b3eb309c1e CLI install command (#677)
Co-authored-by: Adam Majmudar <[email protected]>
Co-authored-by: adam-maj <[email protected]>
Co-authored-by: Jonas Daniels <[email protected]>
2023-03-10 01:38:38 +00:00
Jonas DanielsandGitHub 33d1cc7f92 [many] re-enable browser build where feasible (#702) 2023-03-10 00:15:31 +00:00
Adam MajmudarandGitHub 6e9b9dba1d [SDK] Add .prepare() to all other transaction functions except deploys (#703) 2023-03-09 23:45:53 +00:00
5f0493d0fb [SDK] Add ENS support to all functions (#681)
Co-authored-by: Jonas Daniels <[email protected]>
2023-03-09 20:03:08 +00:00
670 changed files with 49634 additions and 34987 deletions
+10 -5
View File
@@ -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}"
}
}
+5 -2
View File
@@ -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"
+7 -7
View File
@@ -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`)
+11
View File
@@ -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"
+16 -4
View File
@@ -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"
+7 -3
View File
@@ -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 }}
+9 -5
View File
@@ -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 }}
+1
View File
@@ -0,0 +1 @@
auto-install-peers=true
+1 -1
View File
@@ -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
View File
@@ -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"
}
}
}
+15
View File
@@ -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
+4 -1
View File
@@ -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"
}
}
+4 -1
View File
@@ -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"
}
}
+4 -1
View File
@@ -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"
}
}
+4 -1
View File
@@ -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
View File
@@ -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"
+4 -1
View File
@@ -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"
}
}
-28
View File
@@ -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 };
}
}
-579
View File
@@ -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);
+31 -2
View File
@@ -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";
-93
View File
@@ -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));
}
}
+17 -2
View File
@@ -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 -1
View File
@@ -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";
+2 -2
View File
@@ -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 -1
View File
@@ -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";
-28
View File
@@ -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 };
}
}
+29 -2
View File
@@ -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 };
}
}
-69
View File
@@ -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)));
}
}
+4 -4
View File
@@ -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 -1
View File
@@ -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 () => {
+94
View File
@@ -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
+2 -1
View File
@@ -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": [
{
-1
View File
@@ -35,7 +35,6 @@ export default {
{
"name": "gnosisscan",
"url": "https://gnosisscan.io",
"icon": "gnosisscan",
"standard": "EIP3091"
},
{
+6
View File
@@ -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;
+44
View File
@@ -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;
+2 -1
View File
@@ -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": {
+35
View File
@@ -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;
+34
View File
@@ -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;
+33
View File
@@ -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;
+28
View File
@@ -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;
+31
View File
@@ -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;
+1 -1
View File
@@ -12,7 +12,7 @@ export default {
"decimals": 18
},
"infoURL": "http://doschain.io/",
"shortName": "DOS",
"shortName": "TDOS",
"chainId": 1311,
"networkId": 1311,
"explorers": [
-1
View File
@@ -25,7 +25,6 @@ export default {
{
"name": "phoenixplorer",
"url": "https://phoenixplorer.com",
"icon": "phoenixplorer",
"standard": "EIP3091"
}
],
+1 -1
View File
@@ -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": {
+34
View File
@@ -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;
+39
View File
@@ -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;
+41
View File
@@ -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;
+28
View File
@@ -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;
+27
View File
@@ -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;
+33
View File
@@ -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;
+40
View File
@@ -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;
+42
View File
@@ -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;
+31
View File
@@ -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;
+42
View File
@@ -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;
+20
View File
@@ -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;
+35
View File
@@ -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;
+33
View File
@@ -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;
+33
View File
@@ -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;
+43 -6
View File
@@ -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;
+14 -6
View File
@@ -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;
+3 -3
View File
@@ -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": [
-1
View File
@@ -33,7 +33,6 @@ export default {
{
"name": "explorer masnet",
"url": "https://explorer.masnet.ai",
"icon": "explorer",
"standard": "EIP3091"
}
],
+35
View File
@@ -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;
+2 -1
View File
@@ -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": [
{
+1
View File
@@ -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": [
+2 -2
View File
@@ -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"
+4 -3
View File
@@ -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"
},
{
+2 -2
View File
@@ -43,8 +43,8 @@ export default {
"standard": "none"
},
{
"name": "Filmine",
"url": "https://explorer.filmine.io",
"name": "Dev.storage",
"url": "https://dev.storage",
"standard": "none"
},
{
+5
View File
@@ -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 -3
View File
@@ -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/"
}
]
},
+29
View File
@@ -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;
-1
View File
@@ -25,7 +25,6 @@ export default {
{
"name": "Paribu Net Explorer",
"url": "https://explorer.paribu.network",
"icon": "explorer",
"standard": "EIP3091"
}
],
-1
View File
@@ -27,7 +27,6 @@ export default {
{
"name": "Paribu Net Testnet Explorer",
"url": "https://testnet.paribuscan.com",
"icon": "explorer",
"standard": "EIP3091"
}
],
-7
View File
@@ -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"
}
],
+34
View File
@@ -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;
+34
View File
@@ -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;
-1
View File
@@ -35,7 +35,6 @@ export default {
{
"name": "DRAC_Network Scan",
"url": "https://www.dracscan.io",
"icon": "DRAC",
"standard": "EIP3091"
}
],
+34
View File
@@ -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;
+1
View File
@@ -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": [
+1
View File
@@ -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": [
+26
View File
@@ -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;
+36
View File
@@ -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;
+2 -1
View File
@@ -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": [
{
-1
View File
@@ -25,7 +25,6 @@ export default {
{
"name": "etmp",
"url": "https://pioneer.etmscan.network",
"icon": "etmpscan",
"standard": "EIP3091"
}
],
+3 -2
View File
@@ -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",
+3 -3
View File
@@ -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"
}
],
+1
View File
@@ -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",
+28
View File
@@ -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;
+47
View File
@@ -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;
+6
View File
@@ -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;
+33
View File
@@ -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;
+35
View File
@@ -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;
-1
View File
@@ -26,7 +26,6 @@ export default {
{
"name": "explorer",
"url": "https://explorer.idchain.one",
"icon": "etherscan",
"standard": "EIP3091"
}
],
+1 -1
View File
@@ -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"
}
],
+35
View File
@@ -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;
+28
View File
@@ -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;
+28
View File
@@ -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;
+34
View File
@@ -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 -1
View File
@@ -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