Compare commits
44
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
d275493c59 | ||
|
|
256ee0d5ec | ||
|
|
b4e295d885 | ||
|
|
fa48ab6942 | ||
|
|
cbf486c210 | ||
|
|
247cf57d37 | ||
|
|
b1e8c8e231 | ||
|
|
06b4f29831 | ||
|
|
0a5eb19d67 | ||
|
|
4ed662e841 | ||
|
|
75587c8b38 | ||
|
|
51b3604021 | ||
|
|
5340085823 | ||
|
|
aface46d74 | ||
|
|
5835b62496 | ||
|
|
7ae9f4cda1 | ||
|
|
3152d4e9b4 | ||
|
|
277cfd5ce1 | ||
|
|
72fa3d2225 | ||
|
|
9a329178ef | ||
|
|
01cc54087b | ||
|
|
09b3b339e6 | ||
|
|
aa6bdd0809 | ||
|
|
ff4fb7d360 | ||
|
|
9acf6854df | ||
|
|
a9f9a40345 | ||
|
|
8e6e55b154 | ||
|
|
37b88e3bc3 | ||
|
|
385895ca92 | ||
|
|
5e58c79926 | ||
|
|
2025b8cb8d | ||
|
|
cc5e2ec51f | ||
|
|
0402b8bb37 | ||
|
|
5fe3cec894 | ||
|
|
98009cb3ca | ||
|
|
60fbb767c1 | ||
|
|
5a02c5ec02 | ||
|
|
48ca58b7aa | ||
|
|
046cd0bb5d | ||
|
|
7cb55e7051 | ||
|
|
4939a3d0ba | ||
|
|
550c80fdfa | ||
|
|
79ebbbcad9 | ||
|
|
d665954fee |
@@ -0,0 +1,6 @@
|
||||
# rename this file to .env and fill in the values
|
||||
# this is not required to build the packages but will significantly increase test performance
|
||||
|
||||
# used for unit tests that hit real IPFS gateway
|
||||
# get a secret key from https://thirdweb.com/create-api-key
|
||||
TW_SECRET_KEY=""
|
||||
@@ -17,6 +17,7 @@ yalc.lock
|
||||
build/
|
||||
playwright-report/
|
||||
.vscode/
|
||||
.env/
|
||||
|
||||
# Artifacts
|
||||
packages/cli/artifacts/
|
||||
+3
-3
@@ -41,12 +41,12 @@
|
||||
"@manypkg/cli": "^0.21.0",
|
||||
"@manypkg/get-packages": "^1.1.3",
|
||||
"@playwright/test": "1.31.2",
|
||||
"@trivago/prettier-plugin-sort-imports": "^4.1.1",
|
||||
"@types/node": "^18.16.18",
|
||||
"@trivago/prettier-plugin-sort-imports": "^4.2.0",
|
||||
"@types/node": "^18.17.1",
|
||||
"eslint": "^8.45.0",
|
||||
"mocha": "^10.2.0",
|
||||
"prettier": "^3.0.0",
|
||||
"turbo": "^1.10.7",
|
||||
"turbo": "^1.10.12",
|
||||
"yalc": "1.0.0-pre.53"
|
||||
},
|
||||
"manypkg": {
|
||||
|
||||
@@ -1,5 +1,39 @@
|
||||
# @thirdweb-dev/auth
|
||||
|
||||
## 3.2.22
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- [#1415](https://github.com/thirdweb-dev/js/pull/1415) [`256ee0d5`](https://github.com/thirdweb-dev/js/commit/256ee0d5ec9c8598aa79cd4cb1fd839c6cc7d390) Thanks [@joaquim-verges](https://github.com/joaquim-verges)! - Downgrade preconstruct to 2.7.0
|
||||
|
||||
- Updated dependencies [[`256ee0d5`](https://github.com/thirdweb-dev/js/commit/256ee0d5ec9c8598aa79cd4cb1fd839c6cc7d390)]:
|
||||
- @thirdweb-dev/wallets@1.1.5
|
||||
|
||||
## 3.2.21
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- [#1409](https://github.com/thirdweb-dev/js/pull/1409) [`b1e8c8e2`](https://github.com/thirdweb-dev/js/commit/b1e8c8e231013182eb46c16d0c441ee0f3bdfdb2) Thanks [@jnsdls](https://github.com/jnsdls)! - update dependencies
|
||||
|
||||
- [#1410](https://github.com/thirdweb-dev/js/pull/1410) [`247cf57d`](https://github.com/thirdweb-dev/js/commit/247cf57d375a4ec0bc6867e0b65a262c94a9e2f2) Thanks [@jnsdls](https://github.com/jnsdls)! - expose `getToken()` helper function
|
||||
|
||||
- Updated dependencies [[`06b4f298`](https://github.com/thirdweb-dev/js/commit/06b4f2983161fc9ff5913fd05dacf17260902576), [`b1e8c8e2`](https://github.com/thirdweb-dev/js/commit/b1e8c8e231013182eb46c16d0c441ee0f3bdfdb2), [`2025b8cb`](https://github.com/thirdweb-dev/js/commit/2025b8cb8d5157c03314e5db47a0d50382519c41), [`385895ca`](https://github.com/thirdweb-dev/js/commit/385895ca928a5276586f0a370fabdcece7620d83), [`9acf6854`](https://github.com/thirdweb-dev/js/commit/9acf6854dfdc5c0be768e660c1f174e017b06a9c), [`48ca58b7`](https://github.com/thirdweb-dev/js/commit/48ca58b7aa45348b928932b9c7b76b3dc233e429), [`60fbb767`](https://github.com/thirdweb-dev/js/commit/60fbb767c18ffe1e49792c6ac8e808792acf594c), [`277cfd5c`](https://github.com/thirdweb-dev/js/commit/277cfd5ce1f3a576d29c95492c735b46a00c164e), [`2025b8cb`](https://github.com/thirdweb-dev/js/commit/2025b8cb8d5157c03314e5db47a0d50382519c41), [`cc5e2ec5`](https://github.com/thirdweb-dev/js/commit/cc5e2ec51fce09af05be33811eb46980825829ee), [`7ae9f4cd`](https://github.com/thirdweb-dev/js/commit/7ae9f4cda1a2009dd414f836757bec8202c83172)]:
|
||||
- @thirdweb-dev/wallets@1.1.4
|
||||
|
||||
## 3.2.20
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies []:
|
||||
- @thirdweb-dev/wallets@1.1.3
|
||||
|
||||
## 3.2.19
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies []:
|
||||
- @thirdweb-dev/wallets@1.1.2
|
||||
|
||||
## 3.2.18
|
||||
|
||||
### Patch Changes
|
||||
|
||||
+12
-12
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@thirdweb-dev/auth",
|
||||
"version": "3.2.18",
|
||||
"version": "3.2.22",
|
||||
"main": "dist/thirdweb-dev-auth.cjs.js",
|
||||
"module": "dist/thirdweb-dev-auth.esm.js",
|
||||
"browser": {
|
||||
@@ -80,16 +80,16 @@
|
||||
}
|
||||
},
|
||||
"devDependencies": {
|
||||
"@babel/core": "^7.22.5",
|
||||
"@babel/preset-env": "^7.22.5",
|
||||
"@babel/core": "^7.22.9",
|
||||
"@babel/preset-env": "^7.22.9",
|
||||
"@babel/preset-typescript": "^7.22.5",
|
||||
"@microsoft/api-documenter": "^7.22.21",
|
||||
"@microsoft/api-extractor": "^7.36.0",
|
||||
"@microsoft/api-documenter": "^7.22.30",
|
||||
"@microsoft/api-extractor": "^7.36.3",
|
||||
"@microsoft/tsdoc": "^0.14.1",
|
||||
"@preconstruct/cli": "^2.7.0",
|
||||
"@preconstruct/cli": "2.7.0",
|
||||
"@solana/web3.js": "^1.62.0",
|
||||
"@swc-node/register": "^1.6.6",
|
||||
"@swc/core": "^1.3.67",
|
||||
"@swc/core": "^1.3.71",
|
||||
"@thirdweb-dev/tsconfig": "workspace:*",
|
||||
"@types/chai": "^4.3.5",
|
||||
"@types/cookie": "^0.5.1",
|
||||
@@ -97,22 +97,22 @@
|
||||
"@types/express": "^4.17.13",
|
||||
"@types/mocha": "^10.0.0",
|
||||
"@types/uuid": "^9.0.2",
|
||||
"@typescript-eslint/eslint-plugin": "^5.60.1",
|
||||
"@typescript-eslint/parser": "^5.60.1",
|
||||
"@typescript-eslint/eslint-plugin": "^6.2.0",
|
||||
"@typescript-eslint/parser": "^6.2.0",
|
||||
"chai": "^4.3.6",
|
||||
"cookie-parser": "^1.4.6",
|
||||
"eslint": "^8.45.0",
|
||||
"eslint-config-prettier": "^8.8.0",
|
||||
"eslint-config-prettier": "^8.9.0",
|
||||
"eslint-config-thirdweb": "workspace:*",
|
||||
"eslint-plugin-import": "^2.26.0",
|
||||
"eslint-plugin-inclusive-language": "^2.2.0",
|
||||
"eslint-plugin-prettier": "^4.2.1",
|
||||
"eslint-plugin-prettier": "^5.0.0",
|
||||
"eslint-plugin-tsdoc": "^0.2.16",
|
||||
"ethers": "^5.7.2",
|
||||
"express": "^4.18.1",
|
||||
"mocha": "^10.2.0",
|
||||
"next": "^12.3.4",
|
||||
"next-auth": "^4.22.1",
|
||||
"next-auth": "^4.22.3",
|
||||
"prettier": "^3.0.0",
|
||||
"typescript": "^5.1.6"
|
||||
},
|
||||
|
||||
@@ -28,6 +28,11 @@ export function getActiveCookie(req: Request): string | undefined {
|
||||
return THIRDWEB_AUTH_TOKEN_COOKIE_PREFIX;
|
||||
}
|
||||
|
||||
/**
|
||||
* @internal
|
||||
* @param req
|
||||
* @returns
|
||||
*/
|
||||
export function getToken(req: Request): string | undefined {
|
||||
if (req.headers["authorization"]) {
|
||||
const authorizationHeader = req.headers["authorization"].split(" ");
|
||||
|
||||
@@ -14,6 +14,7 @@ import cookieParser from "cookie-parser";
|
||||
import express, { Request, Response } from "express";
|
||||
|
||||
export * from "./types";
|
||||
export { getToken } from "./helpers/user";
|
||||
|
||||
const asyncHandler =
|
||||
(fn: CallableFunction) =>
|
||||
|
||||
@@ -1,5 +1,43 @@
|
||||
# @thirdweb-dev/chains
|
||||
|
||||
## 0.1.40
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- [#1415](https://github.com/thirdweb-dev/js/pull/1415) [`256ee0d5`](https://github.com/thirdweb-dev/js/commit/256ee0d5ec9c8598aa79cd4cb1fd839c6cc7d390) Thanks [@joaquim-verges](https://github.com/joaquim-verges)! - Downgrade preconstruct to 2.7.0
|
||||
|
||||
## 0.1.39
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- [#1407](https://github.com/thirdweb-dev/js/pull/1407) [`0a5eb19d`](https://github.com/thirdweb-dev/js/commit/0a5eb19d672909027bb6c7e79ea76d431535559c) Thanks [@jnsdls](https://github.com/jnsdls)! - remove non-standard urls
|
||||
|
||||
- [#1409](https://github.com/thirdweb-dev/js/pull/1409) [`b1e8c8e2`](https://github.com/thirdweb-dev/js/commit/b1e8c8e231013182eb46c16d0c441ee0f3bdfdb2) Thanks [@jnsdls](https://github.com/jnsdls)! - update dependencies
|
||||
|
||||
- [#1376](https://github.com/thirdweb-dev/js/pull/1376) [`48ca58b7`](https://github.com/thirdweb-dev/js/commit/48ca58b7aa45348b928932b9c7b76b3dc233e429) Thanks [@iketw](https://github.com/iketw)! - Pass bundleId if present
|
||||
|
||||
- [#1399](https://github.com/thirdweb-dev/js/pull/1399) [`3152d4e9`](https://github.com/thirdweb-dev/js/commit/3152d4e9b42e2777316b1b58513657f4430cb79a) Thanks [@jnsdls](https://github.com/jnsdls)! - update chains
|
||||
|
||||
- [#1387](https://github.com/thirdweb-dev/js/pull/1387) [`aa6bdd08`](https://github.com/thirdweb-dev/js/commit/aa6bdd0809d1d5536c837c59b2d407ee974c1f9c) Thanks [@nkrishang](https://github.com/nkrishang)! - Simplify account permissions
|
||||
|
||||
- [#1405](https://github.com/thirdweb-dev/js/pull/1405) [`75587c8b`](https://github.com/thirdweb-dev/js/commit/75587c8b38bbbcf68d2101526e9792349cce728f) Thanks [@jnsdls](https://github.com/jnsdls)! - sort explorers (etherscan -> blockscout -> other)
|
||||
|
||||
- [#1385](https://github.com/thirdweb-dev/js/pull/1385) [`cc5e2ec5`](https://github.com/thirdweb-dev/js/commit/cc5e2ec51fce09af05be33811eb46980825829ee) Thanks [@iketw](https://github.com/iketw)! - Adds chains and improve error messages
|
||||
|
||||
- [#1378](https://github.com/thirdweb-dev/js/pull/1378) [`5a02c5ec`](https://github.com/thirdweb-dev/js/commit/5a02c5ec0288fd6dfb2b765ef70bb18e714aca19) Thanks [@MananTank](https://github.com/MananTank)! - add icon in MinimalChain
|
||||
|
||||
## 0.1.38
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- [#1374](https://github.com/thirdweb-dev/js/pull/1374) [`7cb55e70`](https://github.com/thirdweb-dev/js/commit/7cb55e7051617268bba1b80146865c606ff6e66d) Thanks [@jnsdls](https://github.com/jnsdls)! -
|
||||
|
||||
## 0.1.37
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- [#1371](https://github.com/thirdweb-dev/js/pull/1371) [`d665954f`](https://github.com/thirdweb-dev/js/commit/d665954fee0554985055bf06abbed8d7b8d5bc38) Thanks [@jnsdls](https://github.com/jnsdls)! - add more chains
|
||||
|
||||
## 0.1.36
|
||||
|
||||
### Patch Changes
|
||||
|
||||
@@ -44,6 +44,17 @@ export default {
|
||||
"name": "etherscan",
|
||||
"url": "https://etherscan.io",
|
||||
"standard": "EIP3091"
|
||||
},
|
||||
{
|
||||
"name": "blockscout",
|
||||
"url": "https://eth.blockscout.com",
|
||||
"icon": {
|
||||
"url": "ipfs://QmYtUimyqHkkFxYdbXXRbUqNg2VLPUg6Uu2C2nmFWowiZM",
|
||||
"width": 551,
|
||||
"height": 540,
|
||||
"format": "png"
|
||||
},
|
||||
"standard": "EIP3091"
|
||||
}
|
||||
],
|
||||
"testnet": false,
|
||||
|
||||
@@ -6,7 +6,8 @@ export default {
|
||||
"https://optimism.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
|
||||
"https://optimism-mainnet.infura.io/v3/${INFURA_API_KEY}",
|
||||
"https://opt-mainnet.g.alchemy.com/v2/${ALCHEMY_API_KEY}",
|
||||
"https://mainnet.optimism.io/"
|
||||
"https://mainnet.optimism.io",
|
||||
"https://optimism.publicnode.com"
|
||||
],
|
||||
"faucets": [],
|
||||
"nativeCurrency": {
|
||||
@@ -23,6 +24,17 @@ export default {
|
||||
"name": "etherscan",
|
||||
"url": "https://optimistic.etherscan.io",
|
||||
"standard": "EIP3091"
|
||||
},
|
||||
{
|
||||
"name": "blockscout",
|
||||
"url": "https://optimism.blockscout.com",
|
||||
"icon": {
|
||||
"url": "ipfs://QmYtUimyqHkkFxYdbXXRbUqNg2VLPUg6Uu2C2nmFWowiZM",
|
||||
"width": 551,
|
||||
"height": 540,
|
||||
"format": "png"
|
||||
},
|
||||
"standard": "EIP3091"
|
||||
}
|
||||
],
|
||||
"icon": {
|
||||
|
||||
@@ -37,19 +37,19 @@ export default {
|
||||
"slip44": 700,
|
||||
"explorers": [
|
||||
{
|
||||
"name": "gnosisscan",
|
||||
"url": "https://gnosisscan.io",
|
||||
"name": "blockscout",
|
||||
"url": "https://gnosis.blockscout.com",
|
||||
"icon": {
|
||||
"url": "ipfs://QmYtUimyqHkkFxYdbXXRbUqNg2VLPUg6Uu2C2nmFWowiZM",
|
||||
"width": 551,
|
||||
"height": 540,
|
||||
"format": "png"
|
||||
},
|
||||
"standard": "EIP3091"
|
||||
},
|
||||
{
|
||||
"name": "blockscout",
|
||||
"url": "https://blockscout.com/xdai/mainnet",
|
||||
"icon": {
|
||||
"url": "ipfs://bafybeifu5tpui7dk5cjoo54kde7pmuthvnl7sdykobuarsxgu7t2izurnq",
|
||||
"width": 512,
|
||||
"height": 512,
|
||||
"format": "png"
|
||||
},
|
||||
"name": "gnosisscan",
|
||||
"url": "https://gnosisscan.io",
|
||||
"standard": "EIP3091"
|
||||
}
|
||||
],
|
||||
|
||||
@@ -29,11 +29,11 @@ export default {
|
||||
"explorers": [
|
||||
{
|
||||
"name": "blockscout",
|
||||
"url": "https://blockscout.chiadochain.net",
|
||||
"url": "https://gnosis-chiado.blockscout.com",
|
||||
"icon": {
|
||||
"url": "ipfs://bafybeifu5tpui7dk5cjoo54kde7pmuthvnl7sdykobuarsxgu7t2izurnq",
|
||||
"width": 512,
|
||||
"height": 512,
|
||||
"url": "ipfs://QmYtUimyqHkkFxYdbXXRbUqNg2VLPUg6Uu2C2nmFWowiZM",
|
||||
"width": 551,
|
||||
"height": 540,
|
||||
"format": "png"
|
||||
},
|
||||
"standard": "EIP3091"
|
||||
|
||||
@@ -0,0 +1,35 @@
|
||||
import type { Chain } from "../src/types";
|
||||
export default {
|
||||
"name": "Mintara Mainnet",
|
||||
"title": "Mintara Mainnet",
|
||||
"chain": "Mintara",
|
||||
"icon": {
|
||||
"url": "ipfs://bafybeie7jzlzlpz7c3a3oh4x5joej23dj2qf3cexmchjyc72hv3fblcaja",
|
||||
"width": 256,
|
||||
"height": 256,
|
||||
"format": "png"
|
||||
},
|
||||
"rpc": [
|
||||
"https://mintara.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
|
||||
"https://subnets.avax.network/mintara/mainnet/rpc"
|
||||
],
|
||||
"faucets": [],
|
||||
"nativeCurrency": {
|
||||
"name": "MINTARA",
|
||||
"symbol": "MNTR",
|
||||
"decimals": 18
|
||||
},
|
||||
"infoURL": "https://playthink.co.jp",
|
||||
"shortName": "mintara",
|
||||
"chainId": 1080,
|
||||
"networkId": 1080,
|
||||
"explorers": [
|
||||
{
|
||||
"name": "explorer",
|
||||
"url": "https://subnets.avax.network/mintara",
|
||||
"standard": "EIP3091"
|
||||
}
|
||||
],
|
||||
"testnet": false,
|
||||
"slug": "mintara"
|
||||
} as const satisfies Chain;
|
||||
@@ -24,17 +24,6 @@ export default {
|
||||
"format": "svg"
|
||||
},
|
||||
"explorers": [
|
||||
{
|
||||
"name": "Siberium Mainnet Explorer - blockscout - 1",
|
||||
"url": "https://explorer.main.siberium.net",
|
||||
"icon": {
|
||||
"url": "ipfs://QmYeMdWDZ1iaBFeSPorRyPi7RuSXTdDKTgW3rfnUf3W5ne",
|
||||
"width": 512,
|
||||
"height": 512,
|
||||
"format": "svg"
|
||||
},
|
||||
"standard": "EIP3091"
|
||||
},
|
||||
{
|
||||
"name": "Siberium Mainnet Explorer - blockscout - 2",
|
||||
"url": "https://explorer.main.siberium.net.ru",
|
||||
|
||||
@@ -5,9 +5,12 @@ export default {
|
||||
"chain": "ETH",
|
||||
"rpc": [
|
||||
"https://sepolia.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
|
||||
"https://sepolia.infura.io/v3/${INFURA_API_KEY}",
|
||||
"wss://sepolia.infura.io/v3/${INFURA_API_KEY}",
|
||||
"https://rpc.sepolia.org",
|
||||
"https://rpc2.sepolia.org",
|
||||
"https://rpc-sepolia.rockx.com"
|
||||
"https://rpc-sepolia.rockx.com",
|
||||
"https://rpc.sepolia.ethpandaops.io"
|
||||
],
|
||||
"faucets": [
|
||||
"http://fauceth.komputing.org?chain=11155111&address=${ADDRESS}"
|
||||
|
||||
@@ -27,9 +27,9 @@ export default {
|
||||
"name": "blockscout",
|
||||
"url": "https://coinbit-explorer.chain.sbcrypto.app",
|
||||
"icon": {
|
||||
"url": "ipfs://bafybeifu5tpui7dk5cjoo54kde7pmuthvnl7sdykobuarsxgu7t2izurnq",
|
||||
"width": 512,
|
||||
"height": 512,
|
||||
"url": "ipfs://QmYtUimyqHkkFxYdbXXRbUqNg2VLPUg6Uu2C2nmFWowiZM",
|
||||
"width": 551,
|
||||
"height": 540,
|
||||
"format": "png"
|
||||
},
|
||||
"standard": "EIP3091"
|
||||
|
||||
@@ -4,7 +4,8 @@ export default {
|
||||
"chain": "Haqq",
|
||||
"rpc": [
|
||||
"https://haqq-network.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
|
||||
"https://rpc.eth.haqq.network"
|
||||
"https://rpc.eth.haqq.network",
|
||||
"https://haqq-evm.publicnode.com"
|
||||
],
|
||||
"faucets": [],
|
||||
"nativeCurrency": {
|
||||
|
||||
@@ -28,9 +28,9 @@ export default {
|
||||
"name": "blockscout",
|
||||
"url": "https://explorer.metachain.one",
|
||||
"icon": {
|
||||
"url": "ipfs://bafybeifu5tpui7dk5cjoo54kde7pmuthvnl7sdykobuarsxgu7t2izurnq",
|
||||
"width": 512,
|
||||
"height": 512,
|
||||
"url": "ipfs://QmYtUimyqHkkFxYdbXXRbUqNg2VLPUg6Uu2C2nmFWowiZM",
|
||||
"width": 551,
|
||||
"height": 540,
|
||||
"format": "png"
|
||||
},
|
||||
"standard": "EIP3091"
|
||||
|
||||
@@ -27,9 +27,9 @@ export default {
|
||||
"name": "blockscout",
|
||||
"url": "https://blockscout.bellecour.iex.ec",
|
||||
"icon": {
|
||||
"url": "ipfs://bafybeifu5tpui7dk5cjoo54kde7pmuthvnl7sdykobuarsxgu7t2izurnq",
|
||||
"width": 512,
|
||||
"height": 512,
|
||||
"url": "ipfs://QmYtUimyqHkkFxYdbXXRbUqNg2VLPUg6Uu2C2nmFWowiZM",
|
||||
"width": 551,
|
||||
"height": 540,
|
||||
"format": "png"
|
||||
},
|
||||
"standard": "EIP3091"
|
||||
|
||||
@@ -4,8 +4,8 @@ export default {
|
||||
"chain": "ChainX",
|
||||
"rpc": [
|
||||
"https://bevm.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
|
||||
"https://mainnet.chainx.org/rpc",
|
||||
"https://mainnet2.chainx.org/rpc"
|
||||
"https://rpc-1.bevm.io/",
|
||||
"https://rpc-2.bevm.io/"
|
||||
],
|
||||
"faucets": [],
|
||||
"nativeCurrency": {
|
||||
@@ -20,7 +20,7 @@ export default {
|
||||
"explorers": [
|
||||
{
|
||||
"name": "bevm scan",
|
||||
"url": "https://evm.chainx.org",
|
||||
"url": "https://scan.bevm.io",
|
||||
"standard": "none"
|
||||
}
|
||||
],
|
||||
|
||||
@@ -11,7 +11,8 @@ export default {
|
||||
},
|
||||
"rpc": [
|
||||
"https://tenet.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
|
||||
"https://rpc.tenet.org"
|
||||
"https://rpc.tenet.org",
|
||||
"https://tenet-evm.publicnode.com"
|
||||
],
|
||||
"faucets": [],
|
||||
"nativeCurrency": {
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import type { Chain } from "../src/types";
|
||||
export default {
|
||||
"name": "Taiko (Alpha-3 Testnet)",
|
||||
"name": "Taiko Grimsvotn L2",
|
||||
"chain": "ETH",
|
||||
"status": "active",
|
||||
"icon": {
|
||||
@@ -10,7 +10,7 @@ export default {
|
||||
"format": "png"
|
||||
},
|
||||
"rpc": [
|
||||
"https://taiko-alpha-3-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
|
||||
"https://taiko-grimsvotn-l2.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
|
||||
"https://rpc.test.taiko.xyz"
|
||||
],
|
||||
"faucets": [],
|
||||
@@ -20,7 +20,7 @@ export default {
|
||||
"decimals": 18
|
||||
},
|
||||
"infoURL": "https://taiko.xyz",
|
||||
"shortName": "taiko-a3",
|
||||
"shortName": "taiko-l2",
|
||||
"chainId": 167005,
|
||||
"networkId": 167005,
|
||||
"explorers": [
|
||||
@@ -31,5 +31,5 @@ export default {
|
||||
}
|
||||
],
|
||||
"testnet": true,
|
||||
"slug": "taiko-alpha-3-testnet"
|
||||
"slug": "taiko-grimsvotn-l2"
|
||||
} as const satisfies Chain;
|
||||
@@ -0,0 +1,35 @@
|
||||
import type { Chain } from "../src/types";
|
||||
export default {
|
||||
"name": "Taiko Eldfell L3",
|
||||
"chain": "ETH",
|
||||
"status": "active",
|
||||
"icon": {
|
||||
"url": "ipfs://QmcHdmVr5VRUJq13jnM6tgah5Ge7hn3Dm14eY6vwivJ5ui",
|
||||
"width": 288,
|
||||
"height": 258,
|
||||
"format": "png"
|
||||
},
|
||||
"rpc": [
|
||||
"https://taiko-eldfell-l3.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
|
||||
"https://rpc.l3test.taiko.xyz"
|
||||
],
|
||||
"faucets": [],
|
||||
"nativeCurrency": {
|
||||
"name": "Ether",
|
||||
"symbol": "ETH",
|
||||
"decimals": 18
|
||||
},
|
||||
"infoURL": "https://taiko.xyz",
|
||||
"shortName": "taiko-l3",
|
||||
"chainId": 167006,
|
||||
"networkId": 167006,
|
||||
"explorers": [
|
||||
{
|
||||
"name": "blockscout",
|
||||
"url": "https://explorer.l3test.taiko.xyz",
|
||||
"standard": "EIP3091"
|
||||
}
|
||||
],
|
||||
"testnet": true,
|
||||
"slug": "taiko-eldfell-l3"
|
||||
} as const satisfies Chain;
|
||||
@@ -17,6 +17,13 @@ export default {
|
||||
"shortName": "TBSI",
|
||||
"chainId": 1707,
|
||||
"networkId": 1707,
|
||||
"explorers": [
|
||||
{
|
||||
"name": "blockscout",
|
||||
"url": "https://exp.blockchain.or.th",
|
||||
"standard": "EIP3091"
|
||||
}
|
||||
],
|
||||
"testnet": false,
|
||||
"slug": "tbsi"
|
||||
} as const satisfies Chain;
|
||||
@@ -19,6 +19,13 @@ export default {
|
||||
"shortName": "tTBSI",
|
||||
"chainId": 1708,
|
||||
"networkId": 1708,
|
||||
"explorers": [
|
||||
{
|
||||
"name": "blockscout",
|
||||
"url": "https://exp.testnet.blockchain.or.th",
|
||||
"standard": "EIP3091"
|
||||
}
|
||||
],
|
||||
"testnet": true,
|
||||
"slug": "tbsi-testnet"
|
||||
} as const satisfies Chain;
|
||||
@@ -13,7 +13,6 @@ export default {
|
||||
"symbol": "GRAMS",
|
||||
"decimals": 18
|
||||
},
|
||||
"infoURL": "TeaPartyCrypto.com",
|
||||
"shortName": "TeaParty",
|
||||
"chainId": 1773,
|
||||
"networkId": 1773,
|
||||
|
||||
@@ -0,0 +1,40 @@
|
||||
import type { Chain } from "../src/types";
|
||||
export default {
|
||||
"name": "Smart Trade Networks",
|
||||
"chain": "Smart Trade Networks",
|
||||
"rpc": [
|
||||
"https://smart-trade-networks.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
|
||||
"https://beefledgerwallet.com:8544"
|
||||
],
|
||||
"faucets": [],
|
||||
"nativeCurrency": {
|
||||
"name": "STN",
|
||||
"symbol": "STN",
|
||||
"decimals": 18
|
||||
},
|
||||
"infoURL": "https://www.smarttradenetworks.com",
|
||||
"shortName": "STN",
|
||||
"chainId": 18122,
|
||||
"networkId": 18122,
|
||||
"icon": {
|
||||
"url": "ipfs://QmRgZVpjik4cH3Sb6wLRpdnfv9kiMEZ8fugfkzTgk3bpRW",
|
||||
"width": 500,
|
||||
"height": 500,
|
||||
"format": "png"
|
||||
},
|
||||
"explorers": [
|
||||
{
|
||||
"name": "stnscan",
|
||||
"url": "https://stnscan.com",
|
||||
"icon": {
|
||||
"url": "ipfs://QmRgZVpjik4cH3Sb6wLRpdnfv9kiMEZ8fugfkzTgk3bpRW",
|
||||
"width": 500,
|
||||
"height": 500,
|
||||
"format": "png"
|
||||
},
|
||||
"standard": "none"
|
||||
}
|
||||
],
|
||||
"testnet": false,
|
||||
"slug": "smart-trade-networks"
|
||||
} as const satisfies Chain;
|
||||
@@ -4,7 +4,7 @@ export default {
|
||||
"chain": "tDSC",
|
||||
"rpc": [
|
||||
"https://decimal-smart-chain-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
|
||||
"https://testnet-val.decimalchain.com/web3"
|
||||
"https://testnet-val.decimalchain.com/web3/"
|
||||
],
|
||||
"faucets": [],
|
||||
"nativeCurrency": {
|
||||
|
||||
@@ -4,7 +4,7 @@ export default {
|
||||
"chain": "STOS",
|
||||
"rpc": [
|
||||
"https://stratos-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
|
||||
"https://web3-testnet-rpc.thestratos.org"
|
||||
"https://web3-rpc-mesos.thestratos.org"
|
||||
],
|
||||
"faucets": [],
|
||||
"nativeCurrency": {
|
||||
@@ -19,12 +19,12 @@ export default {
|
||||
"explorers": [
|
||||
{
|
||||
"name": "Stratos EVM Explorer (Blockscout)",
|
||||
"url": "https://web3-testnet-explorer.thestratos.org",
|
||||
"url": "https://web3-explorer-mesos.thestratos.org",
|
||||
"standard": "none"
|
||||
},
|
||||
{
|
||||
"name": "Stratos Cosmos Explorer (BigDipper)",
|
||||
"url": "https://big-dipper-dev.thestratos.org",
|
||||
"url": "https://big-dipper-mesos.thestratos.org",
|
||||
"standard": "none"
|
||||
}
|
||||
],
|
||||
|
||||
@@ -0,0 +1,35 @@
|
||||
import type { Chain } from "../src/types";
|
||||
export default {
|
||||
"name": "Bitnet",
|
||||
"chain": "BTN",
|
||||
"icon": {
|
||||
"url": "ipfs://QmS9h3nFiCzaBLnBNw8Wot4U7vvEVK45EQfi8nxH4nvrmz",
|
||||
"width": 512,
|
||||
"height": 512,
|
||||
"format": "png"
|
||||
},
|
||||
"rpc": [
|
||||
"https://bitnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
|
||||
"https://rpc.bitnet.money",
|
||||
"https://rpc.btnscan.com"
|
||||
],
|
||||
"faucets": [],
|
||||
"nativeCurrency": {
|
||||
"name": "Bitnet",
|
||||
"symbol": "BTN",
|
||||
"decimals": 18
|
||||
},
|
||||
"infoURL": "https://bitnet.money",
|
||||
"shortName": "BTN",
|
||||
"chainId": 210,
|
||||
"networkId": 210,
|
||||
"explorers": [
|
||||
{
|
||||
"name": "Bitnet Explorer",
|
||||
"url": "https://btnscan.com",
|
||||
"standard": "EIP3091"
|
||||
}
|
||||
],
|
||||
"testnet": false,
|
||||
"slug": "bitnet"
|
||||
} as const satisfies Chain;
|
||||
@@ -29,9 +29,9 @@ export default {
|
||||
"name": "blockscout",
|
||||
"url": "https://explorer.exosama.com",
|
||||
"icon": {
|
||||
"url": "ipfs://bafybeifu5tpui7dk5cjoo54kde7pmuthvnl7sdykobuarsxgu7t2izurnq",
|
||||
"width": 512,
|
||||
"height": 512,
|
||||
"url": "ipfs://QmYtUimyqHkkFxYdbXXRbUqNg2VLPUg6Uu2C2nmFWowiZM",
|
||||
"width": 551,
|
||||
"height": 540,
|
||||
"format": "png"
|
||||
},
|
||||
"standard": "EIP3091"
|
||||
|
||||
@@ -31,9 +31,9 @@ export default {
|
||||
"name": "blockscout",
|
||||
"url": "https://explorer.moonsama.com",
|
||||
"icon": {
|
||||
"url": "ipfs://bafybeifu5tpui7dk5cjoo54kde7pmuthvnl7sdykobuarsxgu7t2izurnq",
|
||||
"width": 512,
|
||||
"height": 512,
|
||||
"url": "ipfs://QmYtUimyqHkkFxYdbXXRbUqNg2VLPUg6Uu2C2nmFWowiZM",
|
||||
"width": 551,
|
||||
"height": 540,
|
||||
"format": "png"
|
||||
},
|
||||
"standard": "EIP3091"
|
||||
|
||||
@@ -0,0 +1,41 @@
|
||||
import type { Chain } from "../src/types";
|
||||
export default {
|
||||
"name": "Reapchain Mainnet",
|
||||
"chain": "REAP",
|
||||
"rpc": [
|
||||
"https://reapchain.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
|
||||
"https://rpc.reapchain.org"
|
||||
],
|
||||
"faucets": [],
|
||||
"nativeCurrency": {
|
||||
"name": "Reap",
|
||||
"symbol": "REAP",
|
||||
"decimals": 18
|
||||
},
|
||||
"features": [],
|
||||
"infoURL": "https://reapchain.com",
|
||||
"shortName": "reap",
|
||||
"chainId": 221230,
|
||||
"networkId": 221230,
|
||||
"icon": {
|
||||
"url": "ipfs://QmevQ8jmDWHmdnUQg6BpoMwVB3NhpzS75adbMnKL78Ls2h",
|
||||
"width": 256,
|
||||
"height": 256,
|
||||
"format": "png"
|
||||
},
|
||||
"explorers": [
|
||||
{
|
||||
"name": "Reapchain Dashboard",
|
||||
"url": "https://dashboard.reapchain.org",
|
||||
"icon": {
|
||||
"url": "ipfs://QmevQ8jmDWHmdnUQg6BpoMwVB3NhpzS75adbMnKL78Ls2h",
|
||||
"width": 256,
|
||||
"height": 256,
|
||||
"format": "png"
|
||||
},
|
||||
"standard": "none"
|
||||
}
|
||||
],
|
||||
"testnet": false,
|
||||
"slug": "reapchain"
|
||||
} as const satisfies Chain;
|
||||
@@ -0,0 +1,43 @@
|
||||
import type { Chain } from "../src/types";
|
||||
export default {
|
||||
"name": "Reapchain Testnet",
|
||||
"chain": "REAP",
|
||||
"rpc": [
|
||||
"https://reapchain-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
|
||||
"https://test-rpc.reapchain.org"
|
||||
],
|
||||
"faucets": [
|
||||
"http://faucet.reapchain.com"
|
||||
],
|
||||
"nativeCurrency": {
|
||||
"name": "test-Reap",
|
||||
"symbol": "tREAP",
|
||||
"decimals": 18
|
||||
},
|
||||
"features": [],
|
||||
"infoURL": "https://reapchain.com",
|
||||
"shortName": "reap-testnet",
|
||||
"chainId": 221231,
|
||||
"networkId": 221231,
|
||||
"icon": {
|
||||
"url": "ipfs://QmevQ8jmDWHmdnUQg6BpoMwVB3NhpzS75adbMnKL78Ls2h",
|
||||
"width": 256,
|
||||
"height": 256,
|
||||
"format": "png"
|
||||
},
|
||||
"explorers": [
|
||||
{
|
||||
"name": "Reapchain Testnet Dashboard",
|
||||
"url": "https://test-dashboard.reapchain.org",
|
||||
"icon": {
|
||||
"url": "ipfs://QmevQ8jmDWHmdnUQg6BpoMwVB3NhpzS75adbMnKL78Ls2h",
|
||||
"width": 256,
|
||||
"height": 256,
|
||||
"format": "png"
|
||||
},
|
||||
"standard": "none"
|
||||
}
|
||||
],
|
||||
"testnet": true,
|
||||
"slug": "reapchain-testnet"
|
||||
} as const satisfies Chain;
|
||||
@@ -7,7 +7,8 @@ export default {
|
||||
"https://evm.kava.io",
|
||||
"https://evm2.kava.io",
|
||||
"wss://wevm.kava.io",
|
||||
"wss://wevm2.kava.io"
|
||||
"wss://wevm2.kava.io",
|
||||
"https://kava-evm.publicnode.com"
|
||||
],
|
||||
"faucets": [],
|
||||
"nativeCurrency": {
|
||||
|
||||
@@ -18,7 +18,7 @@ export default {
|
||||
"faucets": [],
|
||||
"infoURL": "https://kroma.network",
|
||||
"icon": {
|
||||
"url": "ipfs://QmcYafk2je5rMqgnFPDZJTaLi6dgFgq96vmX2Li6DX441B",
|
||||
"url": "ipfs://QmVpV2WET6ZrqnvvPfE9hCwoE2y5ygbPuniuugpaRoxrho",
|
||||
"width": 320,
|
||||
"height": 320,
|
||||
"format": "svg"
|
||||
@@ -28,7 +28,7 @@ export default {
|
||||
"name": "blockscout",
|
||||
"url": "https://blockscout.sepolia.kroma.network",
|
||||
"icon": {
|
||||
"url": "ipfs://QmcYafk2je5rMqgnFPDZJTaLi6dgFgq96vmX2Li6DX441B",
|
||||
"url": "ipfs://QmVpV2WET6ZrqnvvPfE9hCwoE2y5ygbPuniuugpaRoxrho",
|
||||
"width": 320,
|
||||
"height": 320,
|
||||
"format": "svg"
|
||||
|
||||
@@ -25,6 +25,17 @@ export default {
|
||||
"chainId": 245022926,
|
||||
"networkId": 245022926,
|
||||
"explorers": [
|
||||
{
|
||||
"name": "blockscout",
|
||||
"url": "https://neon-devnet.blockscout.com",
|
||||
"icon": {
|
||||
"url": "ipfs://QmYtUimyqHkkFxYdbXXRbUqNg2VLPUg6Uu2C2nmFWowiZM",
|
||||
"width": 551,
|
||||
"height": 540,
|
||||
"format": "png"
|
||||
},
|
||||
"standard": "EIP3091"
|
||||
},
|
||||
{
|
||||
"name": "native",
|
||||
"url": "https://devnet.explorer.neon-labs.org",
|
||||
|
||||
@@ -28,6 +28,17 @@ export default {
|
||||
"format": "png"
|
||||
},
|
||||
"explorers": [
|
||||
{
|
||||
"name": "blockscout",
|
||||
"url": "https://blockscout.com/shiden",
|
||||
"icon": {
|
||||
"url": "ipfs://QmYtUimyqHkkFxYdbXXRbUqNg2VLPUg6Uu2C2nmFWowiZM",
|
||||
"width": 551,
|
||||
"height": 540,
|
||||
"format": "png"
|
||||
},
|
||||
"standard": "EIP3091"
|
||||
},
|
||||
{
|
||||
"name": "subscan",
|
||||
"url": "https://shiden.subscan.io",
|
||||
|
||||
@@ -8,8 +8,9 @@ export default {
|
||||
"infoURL": "https://pulsechain.com/",
|
||||
"rpc": [
|
||||
"https://pulsechain.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
|
||||
"https://rpc.pulsechain.com/",
|
||||
"wss://rpc.pulsechain.com/"
|
||||
"https://rpc.pulsechain.com",
|
||||
"wss://rpc.pulsechain.com",
|
||||
"https://pulsechain.publicnode.com"
|
||||
],
|
||||
"features": [
|
||||
{
|
||||
|
||||
@@ -35,9 +35,9 @@ export default {
|
||||
"name": "blockscout",
|
||||
"url": "https://zero-explorer.alt.technology",
|
||||
"icon": {
|
||||
"url": "ipfs://bafybeifu5tpui7dk5cjoo54kde7pmuthvnl7sdykobuarsxgu7t2izurnq",
|
||||
"width": 512,
|
||||
"height": 512,
|
||||
"url": "ipfs://QmYtUimyqHkkFxYdbXXRbUqNg2VLPUg6Uu2C2nmFWowiZM",
|
||||
"width": 551,
|
||||
"height": 540,
|
||||
"format": "png"
|
||||
},
|
||||
"standard": "EIP3091"
|
||||
|
||||
@@ -0,0 +1,35 @@
|
||||
import type { Chain } from "../src/types";
|
||||
export default {
|
||||
"name": "Pepe Chain Mainnet",
|
||||
"chain": "PC",
|
||||
"status": "active",
|
||||
"icon": {
|
||||
"url": "ipfs://bafkreibjsc3gww3moti27za2hpyq552aevux3yv5y2ntdklksyr4v4uavy",
|
||||
"width": 512,
|
||||
"height": 512,
|
||||
"format": "png"
|
||||
},
|
||||
"rpc": [
|
||||
"https://pepe-chain.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
|
||||
"https://rpc.pepe-chain.vip"
|
||||
],
|
||||
"faucets": [],
|
||||
"nativeCurrency": {
|
||||
"name": "Pepe",
|
||||
"symbol": "PEPE",
|
||||
"decimals": 18
|
||||
},
|
||||
"infoURL": "https://pepe-chain.vip",
|
||||
"shortName": "pepe",
|
||||
"chainId": 411,
|
||||
"networkId": 411,
|
||||
"explorers": [
|
||||
{
|
||||
"name": "pepechain explorer",
|
||||
"url": "https://explorer.pepe-chain.vip",
|
||||
"standard": "EIP3091"
|
||||
}
|
||||
],
|
||||
"testnet": false,
|
||||
"slug": "pepe-chain"
|
||||
} as const satisfies Chain;
|
||||
@@ -6,7 +6,8 @@ export default {
|
||||
"https://optimism-goerli.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
|
||||
"https://optimism-goerli.infura.io/v3/${INFURA_API_KEY}",
|
||||
"https://opt-goerli.g.alchemy.com/v2/${ALCHEMY_API_KEY}",
|
||||
"https://goerli.optimism.io/"
|
||||
"https://goerli.optimism.io",
|
||||
"https://optimism-goerli.publicnode.com"
|
||||
],
|
||||
"faucets": [
|
||||
"https://coinbase.com/faucets/optimism-goerli-faucet"
|
||||
@@ -20,6 +21,19 @@ export default {
|
||||
"shortName": "ogor",
|
||||
"chainId": 420,
|
||||
"networkId": 420,
|
||||
"explorers": [
|
||||
{
|
||||
"name": "blockscout",
|
||||
"url": "https://optimism-goerli.blockscout.com",
|
||||
"icon": {
|
||||
"url": "ipfs://QmYtUimyqHkkFxYdbXXRbUqNg2VLPUg6Uu2C2nmFWowiZM",
|
||||
"width": 551,
|
||||
"height": 540,
|
||||
"format": "png"
|
||||
},
|
||||
"standard": "EIP3091"
|
||||
}
|
||||
],
|
||||
"icon": {
|
||||
"url": "ipfs://QmcxZHpyJa8T4i63xqjPYrZ6tKrt55tZJpbXcjSDKuKaf9/optimism/512.png",
|
||||
"height": 512,
|
||||
|
||||
@@ -14,7 +14,8 @@ export default {
|
||||
"https://arbitrum.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
|
||||
"https://arbitrum-mainnet.infura.io/v3/${INFURA_API_KEY}",
|
||||
"https://arb-mainnet.g.alchemy.com/v2/${ALCHEMY_API_KEY}",
|
||||
"https://arb1.arbitrum.io/rpc"
|
||||
"https://arb1.arbitrum.io/rpc",
|
||||
"https://arbitrum-one.publicnode.com"
|
||||
],
|
||||
"faucets": [],
|
||||
"explorers": [
|
||||
|
||||
@@ -15,7 +15,8 @@ export default {
|
||||
"https://arbitrum-goerli.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
|
||||
"https://arbitrum-goerli.infura.io/v3/${INFURA_API_KEY}",
|
||||
"https://arb-goerli.g.alchemy.com/v2/${ALCHEMY_API_KEY}",
|
||||
"https://goerli-rollup.arbitrum.io/rpc/"
|
||||
"https://goerli-rollup.arbitrum.io/rpc",
|
||||
"https://arbitrum-goerli.publicnode.com"
|
||||
],
|
||||
"faucets": [],
|
||||
"infoURL": "https://arbitrum.io/",
|
||||
|
||||
@@ -12,7 +12,8 @@ export default {
|
||||
},
|
||||
"rpc": [
|
||||
"https://arbitrum-nova.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
|
||||
"https://nova.arbitrum.io/rpc"
|
||||
"https://nova.arbitrum.io/rpc",
|
||||
"https://arbitrum-nova.publicnode.com"
|
||||
],
|
||||
"faucets": [],
|
||||
"explorers": [
|
||||
@@ -20,9 +21,9 @@ export default {
|
||||
"name": "Arbitrum Nova Chain Explorer",
|
||||
"url": "https://nova-explorer.arbitrum.io",
|
||||
"icon": {
|
||||
"url": "ipfs://bafybeifu5tpui7dk5cjoo54kde7pmuthvnl7sdykobuarsxgu7t2izurnq",
|
||||
"width": 512,
|
||||
"height": 512,
|
||||
"url": "ipfs://QmYtUimyqHkkFxYdbXXRbUqNg2VLPUg6Uu2C2nmFWowiZM",
|
||||
"width": 551,
|
||||
"height": 540,
|
||||
"format": "png"
|
||||
},
|
||||
"standard": "EIP3091"
|
||||
|
||||
@@ -20,15 +20,15 @@ export default {
|
||||
],
|
||||
"infoURL": "https://docs.celo.org/",
|
||||
"explorers": [
|
||||
{
|
||||
"name": "Celoscan",
|
||||
"url": "https://celoscan.io",
|
||||
"standard": "EIP3091"
|
||||
},
|
||||
{
|
||||
"name": "blockscout",
|
||||
"url": "https://explorer.celo.org",
|
||||
"standard": "none"
|
||||
},
|
||||
{
|
||||
"name": "Celoscan",
|
||||
"url": "https://celoscan.io",
|
||||
"standard": "EIP3091"
|
||||
}
|
||||
],
|
||||
"testnet": false,
|
||||
|
||||
@@ -35,9 +35,9 @@ export default {
|
||||
"name": "blockscout",
|
||||
"url": "https://explorer.publicgoods.network",
|
||||
"icon": {
|
||||
"url": "ipfs://bafybeifu5tpui7dk5cjoo54kde7pmuthvnl7sdykobuarsxgu7t2izurnq",
|
||||
"width": 512,
|
||||
"height": 512,
|
||||
"url": "ipfs://QmYtUimyqHkkFxYdbXXRbUqNg2VLPUg6Uu2C2nmFWowiZM",
|
||||
"width": 551,
|
||||
"height": 540,
|
||||
"format": "png"
|
||||
},
|
||||
"standard": "EIP3091"
|
||||
|
||||
@@ -0,0 +1,37 @@
|
||||
import type { Chain } from "../src/types";
|
||||
export default {
|
||||
"name": "Kinto Testnet",
|
||||
"title": "Kinto Testnet",
|
||||
"chain": "ETH",
|
||||
"rpc": [
|
||||
"https://kinto-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
|
||||
"http://35.215.120.180:8545"
|
||||
],
|
||||
"features": [
|
||||
{
|
||||
"name": "EIP155"
|
||||
},
|
||||
{
|
||||
"name": "EIP1559"
|
||||
}
|
||||
],
|
||||
"faucets": [],
|
||||
"nativeCurrency": {
|
||||
"name": "Ether",
|
||||
"symbol": "ETH",
|
||||
"decimals": 18
|
||||
},
|
||||
"infoURL": "https://ethereum.org",
|
||||
"shortName": "keth",
|
||||
"chainId": 42888,
|
||||
"networkId": 42888,
|
||||
"explorers": [
|
||||
{
|
||||
"name": "kintoscan",
|
||||
"url": "http://35.215.120.180:4000",
|
||||
"standard": "EIP3091"
|
||||
}
|
||||
],
|
||||
"testnet": true,
|
||||
"slug": "kinto-testnet"
|
||||
} as const satisfies Chain;
|
||||
@@ -0,0 +1,38 @@
|
||||
import type { Chain } from "../src/types";
|
||||
export default {
|
||||
"name": "Obscuro Testnet",
|
||||
"title": "Obscuro Sepolia Rollup Testnet",
|
||||
"chainId": 443,
|
||||
"shortName": "obs-testnet",
|
||||
"chain": "ETH",
|
||||
"networkId": 443,
|
||||
"nativeCurrency": {
|
||||
"name": "Sepolia Ether",
|
||||
"symbol": "ETH",
|
||||
"decimals": 18
|
||||
},
|
||||
"rpc": [
|
||||
"https://obscuro-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
|
||||
"https://testnet.obscu.ro"
|
||||
],
|
||||
"faucets": [],
|
||||
"infoURL": "https://obscu.ro",
|
||||
"explorers": [
|
||||
{
|
||||
"name": "Obscuro Sepolia Rollup Explorer",
|
||||
"url": "https://testnet.obscuroscan.io",
|
||||
"standard": "none"
|
||||
}
|
||||
],
|
||||
"parent": {
|
||||
"type": "L2",
|
||||
"chain": "eip155-5",
|
||||
"bridges": [
|
||||
{
|
||||
"url": "https://bridge.obscu.ro"
|
||||
}
|
||||
]
|
||||
},
|
||||
"testnet": true,
|
||||
"slug": "obscuro-testnet"
|
||||
} as const satisfies Chain;
|
||||
@@ -35,9 +35,9 @@ export default {
|
||||
"name": "blockscout",
|
||||
"url": "https://testnet-explorer.blackfort.network",
|
||||
"icon": {
|
||||
"url": "ipfs://bafybeifu5tpui7dk5cjoo54kde7pmuthvnl7sdykobuarsxgu7t2izurnq",
|
||||
"width": 512,
|
||||
"height": 512,
|
||||
"url": "ipfs://QmYtUimyqHkkFxYdbXXRbUqNg2VLPUg6Uu2C2nmFWowiZM",
|
||||
"width": 551,
|
||||
"height": 540,
|
||||
"format": "png"
|
||||
},
|
||||
"standard": "EIP3091"
|
||||
|
||||
@@ -38,9 +38,9 @@ export default {
|
||||
"name": "blockscout",
|
||||
"url": "https://explorer.blackfort.network",
|
||||
"icon": {
|
||||
"url": "ipfs://bafybeifu5tpui7dk5cjoo54kde7pmuthvnl7sdykobuarsxgu7t2izurnq",
|
||||
"width": 512,
|
||||
"height": 512,
|
||||
"url": "ipfs://QmYtUimyqHkkFxYdbXXRbUqNg2VLPUg6Uu2C2nmFWowiZM",
|
||||
"width": 551,
|
||||
"height": 540,
|
||||
"format": "png"
|
||||
},
|
||||
"standard": "EIP3091"
|
||||
|
||||
@@ -34,6 +34,17 @@ export default {
|
||||
"name": "etherscan-goerli",
|
||||
"url": "https://goerli.etherscan.io",
|
||||
"standard": "EIP3091"
|
||||
},
|
||||
{
|
||||
"name": "blockscout-goerli",
|
||||
"url": "https://eth-goerli.blockscout.com",
|
||||
"icon": {
|
||||
"url": "ipfs://QmYtUimyqHkkFxYdbXXRbUqNg2VLPUg6Uu2C2nmFWowiZM",
|
||||
"width": 551,
|
||||
"height": 540,
|
||||
"format": "png"
|
||||
},
|
||||
"standard": "EIP3091"
|
||||
}
|
||||
],
|
||||
"icon": {
|
||||
|
||||
@@ -10,7 +10,8 @@ export default {
|
||||
},
|
||||
"rpc": [
|
||||
"https://mantle.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
|
||||
"https://rpc.mantle.xyz"
|
||||
"https://rpc.mantle.xyz",
|
||||
"https://mantle.publicnode.com"
|
||||
],
|
||||
"faucets": [],
|
||||
"nativeCurrency": {
|
||||
|
||||
@@ -0,0 +1,48 @@
|
||||
import type { Chain } from "../src/types";
|
||||
export default {
|
||||
"name": "Treasurenet Mainnet Alpha",
|
||||
"chain": "Treasurenet Mainnet Alpha",
|
||||
"icon": {
|
||||
"url": "ipfs://QmTcNX8ukHkXiVfVah1W8Sed3vtGN95Sq2QSimfLuHva6B",
|
||||
"width": 1844,
|
||||
"height": 1920,
|
||||
"format": "png"
|
||||
},
|
||||
"rpc": [
|
||||
"https://treasurenet-alpha.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
|
||||
"https://node0.treasurenet.io",
|
||||
"https://node1.treasurenet.io",
|
||||
"https://node2.treasurenet.io",
|
||||
"https://node3.treasurenet.io"
|
||||
],
|
||||
"features": [
|
||||
{
|
||||
"name": "EIP155"
|
||||
}
|
||||
],
|
||||
"faucets": [],
|
||||
"nativeCurrency": {
|
||||
"name": "UNIT",
|
||||
"symbol": "UNIT",
|
||||
"decimals": 18
|
||||
},
|
||||
"infoURL": "https://www.treasurenet.io",
|
||||
"shortName": "treasurenet",
|
||||
"chainId": 5002,
|
||||
"networkId": 5002,
|
||||
"explorers": [
|
||||
{
|
||||
"name": "Treasurenet EVM BlockExplorer",
|
||||
"url": "https://evmexplorer.treasurenet.io",
|
||||
"icon": {
|
||||
"url": "ipfs://QmTcNX8ukHkXiVfVah1W8Sed3vtGN95Sq2QSimfLuHva6B",
|
||||
"width": 1844,
|
||||
"height": 1920,
|
||||
"format": "png"
|
||||
},
|
||||
"standard": "none"
|
||||
}
|
||||
],
|
||||
"testnet": false,
|
||||
"slug": "treasurenet-alpha"
|
||||
} as const satisfies Chain;
|
||||
@@ -0,0 +1,48 @@
|
||||
import type { Chain } from "../src/types";
|
||||
export default {
|
||||
"name": "Treasurenet Testnet",
|
||||
"chain": "Treasurenet Testnet",
|
||||
"icon": {
|
||||
"url": "ipfs://QmTcNX8ukHkXiVfVah1W8Sed3vtGN95Sq2QSimfLuHva6B",
|
||||
"width": 1844,
|
||||
"height": 1920,
|
||||
"format": "png"
|
||||
},
|
||||
"rpc": [
|
||||
"https://treasurenet-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
|
||||
"https://node0.testnet.treasurenet.io",
|
||||
"https://node1.testnet.treasurenet.io",
|
||||
"https://node2.testnet.treasurenet.io",
|
||||
"https://node3.testnet.treasurenet.io"
|
||||
],
|
||||
"features": [
|
||||
{
|
||||
"name": "EIP155"
|
||||
}
|
||||
],
|
||||
"faucets": [],
|
||||
"nativeCurrency": {
|
||||
"name": "UNIT",
|
||||
"symbol": "UNIT",
|
||||
"decimals": 18
|
||||
},
|
||||
"infoURL": "https://www.testnet.treasurenet.io",
|
||||
"shortName": "tntest",
|
||||
"chainId": 5005,
|
||||
"networkId": 5005,
|
||||
"explorers": [
|
||||
{
|
||||
"name": "Treasurenet EVM BlockExplorer",
|
||||
"url": "https://evmexplorer.testnet.treasurenet.io",
|
||||
"icon": {
|
||||
"url": "ipfs://QmTcNX8ukHkXiVfVah1W8Sed3vtGN95Sq2QSimfLuHva6B",
|
||||
"width": 1844,
|
||||
"height": 1920,
|
||||
"format": "png"
|
||||
},
|
||||
"standard": "none"
|
||||
}
|
||||
],
|
||||
"testnet": true,
|
||||
"slug": "treasurenet-testnet"
|
||||
} as const satisfies Chain;
|
||||
@@ -2,6 +2,12 @@ import type { Chain } from "../src/types";
|
||||
export default {
|
||||
"name": "Shinarium Beta",
|
||||
"chain": "Shinarium",
|
||||
"icon": {
|
||||
"url": "ipfs://bafybeiadbavrwcial76vs5ovhyykyaobteltuhliqcthdairbja4klwzhu",
|
||||
"width": 1000,
|
||||
"height": 1000,
|
||||
"format": "png"
|
||||
},
|
||||
"rpc": [
|
||||
"https://shinarium-beta.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
|
||||
"https://rpc.shinarium.org"
|
||||
|
||||
@@ -7,15 +7,12 @@ export default {
|
||||
"https://beaneco-smartchain.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
|
||||
"https://mainnet-rpc.bescscan.io"
|
||||
],
|
||||
"faucets": [
|
||||
"faucet.bescscan.ion"
|
||||
],
|
||||
"faucets": [],
|
||||
"nativeCurrency": {
|
||||
"name": "BeanEco SmartChain",
|
||||
"symbol": "BESC",
|
||||
"decimals": 18
|
||||
},
|
||||
"infoURL": "besceco.finance",
|
||||
"shortName": "BESC",
|
||||
"chainId": 535037,
|
||||
"networkId": 535037,
|
||||
|
||||
@@ -0,0 +1,21 @@
|
||||
import type { Chain } from "../src/types";
|
||||
export default {
|
||||
"name": "Arcturus Chain Testnet",
|
||||
"chain": "ARCTURUS",
|
||||
"rpc": [
|
||||
"https://arcturus-chain-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
|
||||
"http://185.99.196.3:8545"
|
||||
],
|
||||
"faucets": [],
|
||||
"nativeCurrency": {
|
||||
"name": "Test Arct",
|
||||
"symbol": "tARCT",
|
||||
"decimals": 18
|
||||
},
|
||||
"infoURL": "https://arcturuschain.io",
|
||||
"shortName": "ARCT",
|
||||
"chainId": 5616,
|
||||
"networkId": 5616,
|
||||
"testnet": true,
|
||||
"slug": "arcturus-chain-testnet"
|
||||
} as const satisfies Chain;
|
||||
@@ -35,9 +35,9 @@ export default {
|
||||
"name": "blockscout",
|
||||
"url": "https://explorer.sepolia.publicgoods.network",
|
||||
"icon": {
|
||||
"url": "ipfs://bafybeifu5tpui7dk5cjoo54kde7pmuthvnl7sdykobuarsxgu7t2izurnq",
|
||||
"width": 512,
|
||||
"height": 512,
|
||||
"url": "ipfs://QmYtUimyqHkkFxYdbXXRbUqNg2VLPUg6Uu2C2nmFWowiZM",
|
||||
"width": 551,
|
||||
"height": 540,
|
||||
"format": "png"
|
||||
},
|
||||
"standard": "EIP3091"
|
||||
|
||||
@@ -6,7 +6,7 @@ export default {
|
||||
"rpc": [
|
||||
"https://linea-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
|
||||
"https://linea-goerli.infura.io/v3/${INFURA_API_KEY}",
|
||||
"wss://linea-goerli.infura.io/v3/${INFURA_API_KEY}",
|
||||
"wss://linea-goerli.infura.io/ws/v3/${INFURA_API_KEY}",
|
||||
"https://rpc.goerli.linea.build",
|
||||
"wss://rpc.goerli.linea.build"
|
||||
],
|
||||
@@ -39,7 +39,18 @@ export default {
|
||||
},
|
||||
"explorers": [
|
||||
{
|
||||
"name": "blockscout",
|
||||
"name": "Etherscan",
|
||||
"url": "https://goerli.lineascan.build",
|
||||
"standard": "EIP3091",
|
||||
"icon": {
|
||||
"url": "ipfs://QmURjritnHL7a8TwZgsFwp3f272DJmG5paaPtWDZ98QZwH",
|
||||
"width": 97,
|
||||
"height": 102,
|
||||
"format": "svg"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Blockscout",
|
||||
"url": "https://explorer.goerli.linea.build",
|
||||
"standard": "EIP3091",
|
||||
"icon": {
|
||||
|
||||
@@ -24,6 +24,17 @@ export default {
|
||||
"format": "png"
|
||||
},
|
||||
"explorers": [
|
||||
{
|
||||
"name": "blockscout",
|
||||
"url": "https://blockscout.com/astar",
|
||||
"icon": {
|
||||
"url": "ipfs://QmYtUimyqHkkFxYdbXXRbUqNg2VLPUg6Uu2C2nmFWowiZM",
|
||||
"width": 551,
|
||||
"height": 540,
|
||||
"format": "png"
|
||||
},
|
||||
"standard": "EIP3091"
|
||||
},
|
||||
{
|
||||
"name": "subscan",
|
||||
"url": "https://astar.subscan.io",
|
||||
|
||||
@@ -0,0 +1,42 @@
|
||||
import type { Chain } from "../src/types";
|
||||
export default {
|
||||
"name": "PEER Testnet",
|
||||
"chain": "PEER",
|
||||
"rpc": [
|
||||
"https://peer-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
|
||||
"http://testnet-polka-host-232813573.us-west-1.elb.amazonaws.com"
|
||||
],
|
||||
"faucets": [
|
||||
"https://testnet.peer.inc"
|
||||
],
|
||||
"nativeCurrency": {
|
||||
"name": "PEER Token",
|
||||
"symbol": "PEER",
|
||||
"decimals": 18
|
||||
},
|
||||
"infoURL": "https://peer.inc",
|
||||
"shortName": "PEER",
|
||||
"chainId": 601,
|
||||
"networkId": 601,
|
||||
"icon": {
|
||||
"url": "ipfs://QmPKKCdjEhP6CHekLD8YnhR2VsdjzprHapapDj7Wzqm52b",
|
||||
"width": 1363,
|
||||
"height": 760,
|
||||
"format": "png"
|
||||
},
|
||||
"explorers": [
|
||||
{
|
||||
"name": "PEER Explorer",
|
||||
"url": "https://testnet.peer.inc",
|
||||
"standard": "none",
|
||||
"icon": {
|
||||
"url": "ipfs://QmPKKCdjEhP6CHekLD8YnhR2VsdjzprHapapDj7Wzqm52b",
|
||||
"width": 1363,
|
||||
"height": 760,
|
||||
"format": "png"
|
||||
}
|
||||
}
|
||||
],
|
||||
"testnet": true,
|
||||
"slug": "peer-testnet"
|
||||
} as const satisfies Chain;
|
||||
@@ -4,7 +4,8 @@ export default {
|
||||
"chain": "IRIShub",
|
||||
"rpc": [
|
||||
"https://irishub.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
|
||||
"https://evmrpc.irishub-1.irisnet.org"
|
||||
"https://evmrpc.irishub-1.irisnet.org",
|
||||
"https://iris-evm.publicnode.com"
|
||||
],
|
||||
"features": [
|
||||
{
|
||||
|
||||
@@ -26,6 +26,17 @@ export default {
|
||||
"networkId": 7001,
|
||||
"status": "active",
|
||||
"explorers": [
|
||||
{
|
||||
"name": "blockscout",
|
||||
"url": "https://zetachain-athens-3.blockscout.com",
|
||||
"icon": {
|
||||
"url": "ipfs://QmYtUimyqHkkFxYdbXXRbUqNg2VLPUg6Uu2C2nmFWowiZM",
|
||||
"width": 551,
|
||||
"height": 540,
|
||||
"format": "png"
|
||||
},
|
||||
"standard": "EIP3091"
|
||||
},
|
||||
{
|
||||
"name": "ZetaChain Athens Testnet Explorer",
|
||||
"url": "https://explorer.athens.zetachain.com",
|
||||
|
||||
@@ -0,0 +1,49 @@
|
||||
import type { Chain } from "../src/types";
|
||||
export default {
|
||||
"name": "Horizen EON",
|
||||
"shortName": "EON",
|
||||
"chain": "EON",
|
||||
"icon": {
|
||||
"url": "ipfs://QmSFMBk3rMyu45Sy9KQHjgArFj4HdywANNYrSosLMUdcti",
|
||||
"width": 1213,
|
||||
"height": 1213,
|
||||
"format": "png"
|
||||
},
|
||||
"rpc": [
|
||||
"https://horizen-eon.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
|
||||
"https://eon-rpc.horizenlabs.io/ethv1"
|
||||
],
|
||||
"features": [
|
||||
{
|
||||
"name": "EIP155"
|
||||
},
|
||||
{
|
||||
"name": "EIP1559"
|
||||
}
|
||||
],
|
||||
"faucets": [],
|
||||
"nativeCurrency": {
|
||||
"name": "Zencash",
|
||||
"symbol": "ZEN",
|
||||
"decimals": 18
|
||||
},
|
||||
"infoURL": "https://horizen.io/",
|
||||
"chainId": 7332,
|
||||
"networkId": 7332,
|
||||
"slip44": 121,
|
||||
"explorers": [
|
||||
{
|
||||
"name": "Horizen EON Block Explorer",
|
||||
"url": "https://eon-explorer.horizenlabs.io",
|
||||
"icon": {
|
||||
"url": "ipfs://QmSFMBk3rMyu45Sy9KQHjgArFj4HdywANNYrSosLMUdcti",
|
||||
"width": 1213,
|
||||
"height": 1213,
|
||||
"format": "png"
|
||||
},
|
||||
"standard": "EIP3091"
|
||||
}
|
||||
],
|
||||
"testnet": false,
|
||||
"slug": "horizen-eon"
|
||||
} as const satisfies Chain;
|
||||
@@ -0,0 +1,28 @@
|
||||
import type { Chain } from "../src/types";
|
||||
export default {
|
||||
"name": "Script Testnet",
|
||||
"chain": "SPAY",
|
||||
"rpc": [
|
||||
"https://script-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
|
||||
"https://testeth-rpc-api.script.tv/rpc"
|
||||
],
|
||||
"faucets": [],
|
||||
"nativeCurrency": {
|
||||
"name": "Script",
|
||||
"symbol": "SPAY",
|
||||
"decimals": 18
|
||||
},
|
||||
"infoURL": "https://token.script.tv",
|
||||
"shortName": "SPAY",
|
||||
"chainId": 742,
|
||||
"networkId": 742,
|
||||
"explorers": [
|
||||
{
|
||||
"name": "Script Explorer",
|
||||
"url": "https://explorer.script.tv",
|
||||
"standard": "none"
|
||||
}
|
||||
],
|
||||
"testnet": true,
|
||||
"slug": "script-testnet"
|
||||
} as const satisfies Chain;
|
||||
@@ -4,7 +4,7 @@ export default {
|
||||
"chain": "DSC",
|
||||
"rpc": [
|
||||
"https://decimal-smart-chain.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
|
||||
"https://node.decimalchain.com/web3"
|
||||
"https://node.decimalchain.com/web3/"
|
||||
],
|
||||
"faucets": [],
|
||||
"nativeCurrency": {
|
||||
|
||||
@@ -24,7 +24,13 @@ export default {
|
||||
{
|
||||
"name": "blockscout",
|
||||
"url": "https://blockscout.com/poa/sokol",
|
||||
"standard": "none"
|
||||
"icon": {
|
||||
"url": "ipfs://QmYtUimyqHkkFxYdbXXRbUqNg2VLPUg6Uu2C2nmFWowiZM",
|
||||
"width": 551,
|
||||
"height": 540,
|
||||
"format": "png"
|
||||
},
|
||||
"standard": "EIP3091"
|
||||
}
|
||||
],
|
||||
"testnet": false,
|
||||
|
||||
@@ -30,9 +30,9 @@ export default {
|
||||
"name": "Dragonfly Blockscout",
|
||||
"url": "https://blockscout.dragonfly.hexapod.network",
|
||||
"icon": {
|
||||
"url": "ipfs://bafybeifu5tpui7dk5cjoo54kde7pmuthvnl7sdykobuarsxgu7t2izurnq",
|
||||
"width": 512,
|
||||
"height": 512,
|
||||
"url": "ipfs://QmYtUimyqHkkFxYdbXXRbUqNg2VLPUg6Uu2C2nmFWowiZM",
|
||||
"width": 551,
|
||||
"height": 540,
|
||||
"format": "png"
|
||||
},
|
||||
"standard": "EIP3091"
|
||||
|
||||
@@ -28,9 +28,9 @@ export default {
|
||||
"name": "blockscout",
|
||||
"url": "https://explorer.octa.space",
|
||||
"icon": {
|
||||
"url": "ipfs://bafybeifu5tpui7dk5cjoo54kde7pmuthvnl7sdykobuarsxgu7t2izurnq",
|
||||
"width": 512,
|
||||
"height": 512,
|
||||
"url": "ipfs://QmYtUimyqHkkFxYdbXXRbUqNg2VLPUg6Uu2C2nmFWowiZM",
|
||||
"width": 551,
|
||||
"height": 540,
|
||||
"format": "png"
|
||||
},
|
||||
"standard": "EIP3091"
|
||||
|
||||
@@ -1,30 +1,44 @@
|
||||
import type { Chain } from "../src/types";
|
||||
export default {
|
||||
"name": "Zenith Testnet (Vilnius)",
|
||||
"chain": "Zenith",
|
||||
"name": "Japan Open Chain Mainnet",
|
||||
"chain": "JOC",
|
||||
"rpc": [
|
||||
"https://zenith-testnet-vilnius.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
|
||||
"https://vilnius.zenithchain.co/http"
|
||||
],
|
||||
"faucets": [
|
||||
"https://faucet.zenithchain.co/"
|
||||
"https://japan-open-chain.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
|
||||
"https://rpc-1.japanopenchain.org:8545",
|
||||
"https://rpc-2.japanopenchain.org:8545"
|
||||
],
|
||||
"faucets": [],
|
||||
"nativeCurrency": {
|
||||
"name": "Vilnius",
|
||||
"symbol": "VIL",
|
||||
"name": "Japan Open Chain Token",
|
||||
"symbol": "JOC",
|
||||
"decimals": 18
|
||||
},
|
||||
"infoURL": "https://www.zenithchain.co/",
|
||||
"infoURL": "https://www.japanopenchain.org/",
|
||||
"shortName": "joc",
|
||||
"chainId": 81,
|
||||
"networkId": 81,
|
||||
"shortName": "VIL",
|
||||
"icon": {
|
||||
"url": "ipfs://bafkreidhsiuqrct42bel76zhi3rx35k4lnk6aqgde27nvvxcz563ttfefy",
|
||||
"width": 2000,
|
||||
"height": 2000,
|
||||
"format": "png"
|
||||
},
|
||||
"explorers": [
|
||||
{
|
||||
"name": "vilnius scan",
|
||||
"url": "https://vilnius.scan.zenithchain.co",
|
||||
"standard": "EIP3091"
|
||||
"name": "Block Explorer",
|
||||
"url": "https://explorer.japanopenchain.org",
|
||||
"standard": "EIP3091",
|
||||
"icon": {
|
||||
"url": "ipfs://bafkreidhsiuqrct42bel76zhi3rx35k4lnk6aqgde27nvvxcz563ttfefy",
|
||||
"width": 2000,
|
||||
"height": 2000,
|
||||
"format": "png"
|
||||
}
|
||||
}
|
||||
],
|
||||
"testnet": true,
|
||||
"slug": "zenith-testnet-vilnius"
|
||||
"redFlags": [
|
||||
"reusedChainId"
|
||||
],
|
||||
"testnet": false,
|
||||
"slug": "japan-open-chain"
|
||||
} as const satisfies Chain;
|
||||
@@ -26,7 +26,13 @@ export default {
|
||||
{
|
||||
"name": "basescout",
|
||||
"url": "https://base.blockscout.com",
|
||||
"standard": "none"
|
||||
"icon": {
|
||||
"url": "ipfs://QmYtUimyqHkkFxYdbXXRbUqNg2VLPUg6Uu2C2nmFWowiZM",
|
||||
"width": 551,
|
||||
"height": 540,
|
||||
"format": "png"
|
||||
},
|
||||
"standard": "EIP3091"
|
||||
},
|
||||
{
|
||||
"name": "basescan",
|
||||
|
||||
@@ -28,7 +28,13 @@ export default {
|
||||
{
|
||||
"name": "basescout",
|
||||
"url": "https://base-goerli.blockscout.com",
|
||||
"standard": "none"
|
||||
"icon": {
|
||||
"url": "ipfs://QmYtUimyqHkkFxYdbXXRbUqNg2VLPUg6Uu2C2nmFWowiZM",
|
||||
"width": 551,
|
||||
"height": 540,
|
||||
"format": "png"
|
||||
},
|
||||
"standard": "EIP3091"
|
||||
},
|
||||
{
|
||||
"name": "basescan",
|
||||
|
||||
@@ -1,36 +1,38 @@
|
||||
import type { Chain } from "../src/types";
|
||||
export default {
|
||||
"name": "IVAR Chain Mainnet",
|
||||
"chain": "IVAR",
|
||||
"icon": {
|
||||
"url": "ipfs://QmV8UmSwqGF2fxrqVEBTHbkyZueahqyYtkfH2RBF5pNysM",
|
||||
"width": 519,
|
||||
"height": 519,
|
||||
"format": "svg"
|
||||
},
|
||||
"name": "Chiliz Chain",
|
||||
"chain": "CC2",
|
||||
"rpc": [
|
||||
"https://ivar-chain.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
|
||||
"https://mainnet-rpc.ivarex.com"
|
||||
],
|
||||
"faucets": [
|
||||
"https://faucet.ivarex.com/"
|
||||
"https://chiliz-chain.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
|
||||
"https://rpc.ankr.com/chiliz",
|
||||
"https://rpc.chiliz.com"
|
||||
],
|
||||
"faucets": [],
|
||||
"nativeCurrency": {
|
||||
"name": "Ivar",
|
||||
"symbol": "IVAR",
|
||||
"name": "Chiliz",
|
||||
"symbol": "CHZ",
|
||||
"decimals": 18
|
||||
},
|
||||
"infoURL": "https://ivarex.com",
|
||||
"shortName": "ivar",
|
||||
"infoURL": "https://chiliz.com/chiliz-chain-2-0/",
|
||||
"shortName": "cc2",
|
||||
"chainId": 88888,
|
||||
"networkId": 88888,
|
||||
"explorers": [
|
||||
{
|
||||
"name": "ivarscan",
|
||||
"url": "https://ivarscan.com",
|
||||
"name": "cc2scan",
|
||||
"url": "https://scan.chiliz.com",
|
||||
"standard": "EIP3091"
|
||||
}
|
||||
],
|
||||
"icon": {
|
||||
"url": "ipfs://QmTGYofJ8VLkeNY4J69AvXi8e126kmbHmf34wLFoJ1FKAK",
|
||||
"width": 400,
|
||||
"height": 400,
|
||||
"format": "png"
|
||||
},
|
||||
"testnet": false,
|
||||
"slug": "ivar-chain"
|
||||
"redFlags": [
|
||||
"reusedChainId"
|
||||
],
|
||||
"slug": "chiliz-chain"
|
||||
} as const satisfies Chain;
|
||||
@@ -0,0 +1,34 @@
|
||||
import type { Chain } from "../src/types";
|
||||
export default {
|
||||
"name": "Codefin Mainnet",
|
||||
"chain": "COF",
|
||||
"icon": {
|
||||
"url": "ipfs://QmVyAuAnKKNnGEpqeYMLPRfMdysLgPBTZeEXihXbRytGhp",
|
||||
"width": 1024,
|
||||
"height": 1024,
|
||||
"format": "png"
|
||||
},
|
||||
"rpc": [
|
||||
"https://codefin.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
|
||||
"https://chain-rpc.codefin.pro"
|
||||
],
|
||||
"faucets": [],
|
||||
"nativeCurrency": {
|
||||
"name": "Codefin",
|
||||
"symbol": "COF",
|
||||
"decimals": 18
|
||||
},
|
||||
"infoURL": "https://network.codefin.pro",
|
||||
"shortName": "COF",
|
||||
"chainId": 9223,
|
||||
"networkId": 9223,
|
||||
"explorers": [
|
||||
{
|
||||
"name": "Codefin Net Explorer",
|
||||
"url": "https://explorer.codefin.pro",
|
||||
"standard": "EIP3091"
|
||||
}
|
||||
],
|
||||
"testnet": false,
|
||||
"slug": "codefin"
|
||||
} as const satisfies Chain;
|
||||
@@ -15,7 +15,8 @@ export default {
|
||||
"rpc": [
|
||||
"https://pulsechain-testnet-v4.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
|
||||
"https://rpc.v4.testnet.pulsechain.com/",
|
||||
"wss://rpc.v4.testnet.pulsechain.com/"
|
||||
"wss://rpc.v4.testnet.pulsechain.com/",
|
||||
"https://pulsechain-testnet.publicnode.com"
|
||||
],
|
||||
"features": [
|
||||
{
|
||||
|
||||
@@ -34,9 +34,9 @@ export default {
|
||||
"name": "Mantis Blockscout",
|
||||
"url": "https://blockscout.mantis.hexapod.network",
|
||||
"icon": {
|
||||
"url": "ipfs://bafybeifu5tpui7dk5cjoo54kde7pmuthvnl7sdykobuarsxgu7t2izurnq",
|
||||
"width": 512,
|
||||
"height": 512,
|
||||
"url": "ipfs://QmYtUimyqHkkFxYdbXXRbUqNg2VLPUg6Uu2C2nmFWowiZM",
|
||||
"width": 551,
|
||||
"height": 540,
|
||||
"format": "png"
|
||||
},
|
||||
"standard": "EIP3091"
|
||||
|
||||
@@ -15,7 +15,6 @@ export default {
|
||||
"symbol": "CMEMO",
|
||||
"decimals": 18
|
||||
},
|
||||
"infoURL": "www.memolabs.org",
|
||||
"shortName": "memochain",
|
||||
"chainId": 985,
|
||||
"networkId": 985,
|
||||
|
||||
@@ -21,7 +21,13 @@ export default {
|
||||
{
|
||||
"name": "blockscout",
|
||||
"url": "https://blockscout.com/poa/core",
|
||||
"standard": "none"
|
||||
"icon": {
|
||||
"url": "ipfs://QmYtUimyqHkkFxYdbXXRbUqNg2VLPUg6Uu2C2nmFWowiZM",
|
||||
"width": 551,
|
||||
"height": 540,
|
||||
"format": "png"
|
||||
},
|
||||
"standard": "EIP3091"
|
||||
}
|
||||
],
|
||||
"testnet": false,
|
||||
|
||||
@@ -0,0 +1,36 @@
|
||||
import type { Chain } from "../src/types";
|
||||
export default {
|
||||
"name": "eLiberty Mainnet",
|
||||
"chain": "$EL",
|
||||
"icon": {
|
||||
"url": "ipfs://Qmcr8US1DZcK3ooiMtE8tEQPgep12abXzxPw1jCkgZhji9",
|
||||
"width": 150,
|
||||
"height": 150,
|
||||
"format": "png"
|
||||
},
|
||||
"rpc": [
|
||||
"https://eliberty.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
|
||||
"https://rpc.eliberty.ngo"
|
||||
],
|
||||
"faucets": [
|
||||
"https://faucet.eliberty.ngo"
|
||||
],
|
||||
"nativeCurrency": {
|
||||
"name": "eLiberty",
|
||||
"symbol": "$EL",
|
||||
"decimals": 18
|
||||
},
|
||||
"infoURL": "https://eliberty.ngo",
|
||||
"shortName": "ELm",
|
||||
"chainId": 990,
|
||||
"networkId": 990,
|
||||
"explorers": [
|
||||
{
|
||||
"name": "eLiberty Mainnet",
|
||||
"url": "https://explorer.eliberty.ngo",
|
||||
"standard": "EIP3091"
|
||||
}
|
||||
],
|
||||
"testnet": false,
|
||||
"slug": "eliberty"
|
||||
} as const satisfies Chain;
|
||||
@@ -0,0 +1,36 @@
|
||||
import type { Chain } from "../src/types";
|
||||
export default {
|
||||
"name": "eLiberty Testnet",
|
||||
"chain": "$EL",
|
||||
"icon": {
|
||||
"url": "ipfs://Qmcr8US1DZcK3ooiMtE8tEQPgep12abXzxPw1jCkgZhji9",
|
||||
"width": 150,
|
||||
"height": 150,
|
||||
"format": "png"
|
||||
},
|
||||
"rpc": [
|
||||
"https://eliberty-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
|
||||
"https://testnet-rpc.eliberty.ngo"
|
||||
],
|
||||
"faucets": [
|
||||
"https://faucet.eliberty.ngo"
|
||||
],
|
||||
"nativeCurrency": {
|
||||
"name": "eLiberty",
|
||||
"symbol": "$EL",
|
||||
"decimals": 18
|
||||
},
|
||||
"infoURL": "https://eliberty.ngo",
|
||||
"shortName": "ELt",
|
||||
"chainId": 99099,
|
||||
"networkId": 99099,
|
||||
"explorers": [
|
||||
{
|
||||
"name": "eLiberty Testnet",
|
||||
"url": "https://testnet.eliberty.ngo",
|
||||
"standard": "EIP3091"
|
||||
}
|
||||
],
|
||||
"testnet": true,
|
||||
"slug": "eliberty-testnet"
|
||||
} as const satisfies Chain;
|
||||
@@ -0,0 +1,36 @@
|
||||
import type { Chain } from "../src/types";
|
||||
export default {
|
||||
"name": "Mind Smart Chain Testnet",
|
||||
"chain": "tMIND",
|
||||
"icon": {
|
||||
"url": "ipfs://QmX2b4CzNyrNgy4ERBEteSS9MsuYNVYeq2sSMMiogGjbFP",
|
||||
"width": 732,
|
||||
"height": 732,
|
||||
"format": "jpg"
|
||||
},
|
||||
"rpc": [
|
||||
"https://mind-smart-chain-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
|
||||
"https://testnet-msc.mindchain.info/"
|
||||
],
|
||||
"faucets": [
|
||||
"https://faucet.mindchain.info/"
|
||||
],
|
||||
"nativeCurrency": {
|
||||
"name": "MIND Coin",
|
||||
"symbol": "tMIND",
|
||||
"decimals": 18
|
||||
},
|
||||
"infoURL": "https://mindscan.info",
|
||||
"shortName": "tMIND",
|
||||
"chainId": 9977,
|
||||
"networkId": 9977,
|
||||
"explorers": [
|
||||
{
|
||||
"name": "Mind Chain explorer",
|
||||
"url": "https://testnet.mindscan.info",
|
||||
"standard": "EIP3091"
|
||||
}
|
||||
],
|
||||
"testnet": true,
|
||||
"slug": "mind-smart-chain-testnet"
|
||||
} as const satisfies Chain;
|
||||
@@ -0,0 +1,35 @@
|
||||
import type { Chain } from "../src/types";
|
||||
export default {
|
||||
"name": "Mind Smart Chain Mainnet",
|
||||
"chain": "MIND",
|
||||
"icon": {
|
||||
"url": "ipfs://QmX2b4CzNyrNgy4ERBEteSS9MsuYNVYeq2sSMMiogGjbFP",
|
||||
"width": 732,
|
||||
"height": 732,
|
||||
"format": "jpg"
|
||||
},
|
||||
"rpc": [
|
||||
"https://mind-smart-chain.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
|
||||
"https://rpc-msc.mindchain.info/",
|
||||
"https://seednode.mindchain.info"
|
||||
],
|
||||
"faucets": [],
|
||||
"nativeCurrency": {
|
||||
"name": "MIND Coin",
|
||||
"symbol": "MIND",
|
||||
"decimals": 18
|
||||
},
|
||||
"infoURL": "https://mindscan.info",
|
||||
"shortName": "MIND",
|
||||
"chainId": 9996,
|
||||
"networkId": 9996,
|
||||
"explorers": [
|
||||
{
|
||||
"name": "Mind Chain explorer",
|
||||
"url": "https://mainnet.mindscan.info",
|
||||
"standard": "EIP3091"
|
||||
}
|
||||
],
|
||||
"testnet": false,
|
||||
"slug": "mind-smart-chain"
|
||||
} as const satisfies Chain;
|
||||
@@ -35,9 +35,9 @@ export default {
|
||||
"name": "blockscout",
|
||||
"url": "https://testnet-rollup-explorer.altlayer.io",
|
||||
"icon": {
|
||||
"url": "ipfs://bafybeifu5tpui7dk5cjoo54kde7pmuthvnl7sdykobuarsxgu7t2izurnq",
|
||||
"width": 512,
|
||||
"height": 512,
|
||||
"url": "ipfs://QmYtUimyqHkkFxYdbXXRbUqNg2VLPUg6Uu2C2nmFWowiZM",
|
||||
"width": 551,
|
||||
"height": 540,
|
||||
"format": "png"
|
||||
},
|
||||
"standard": "EIP3091"
|
||||
|
||||
@@ -0,0 +1,34 @@
|
||||
// @ts-check
|
||||
/** @typedef { import("../../src/types").Chain } Chain */
|
||||
|
||||
/** @type {Omit<Chain, "slug">} */
|
||||
export default {
|
||||
name: "Chiliz Chain",
|
||||
chain: "CC2",
|
||||
rpc: ["https://rpc.ankr.com/chiliz", "https://rpc.chiliz.com"],
|
||||
faucets: [],
|
||||
nativeCurrency: {
|
||||
name: "Chiliz",
|
||||
symbol: "CHZ",
|
||||
decimals: 18,
|
||||
},
|
||||
infoURL: "https://chiliz.com/chiliz-chain-2-0/",
|
||||
shortName: "cc2",
|
||||
chainId: 88888,
|
||||
networkId: 88888,
|
||||
explorers: [
|
||||
{
|
||||
name: "cc2scan",
|
||||
url: "https://scan.chiliz.com",
|
||||
standard: "EIP3091",
|
||||
},
|
||||
],
|
||||
icon: {
|
||||
url: "ipfs://QmTGYofJ8VLkeNY4J69AvXi8e126kmbHmf34wLFoJ1FKAK",
|
||||
width: 400,
|
||||
height: 400,
|
||||
format: "png",
|
||||
},
|
||||
testnet: false,
|
||||
redFlags: ["reusedChainId"],
|
||||
};
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@thirdweb-dev/chains",
|
||||
"version": "0.1.36",
|
||||
"version": "0.1.40",
|
||||
"main": "dist/thirdweb-dev-chains.cjs.js",
|
||||
"module": "dist/thirdweb-dev-chains.esm.js",
|
||||
"browser": {
|
||||
@@ -23,16 +23,17 @@
|
||||
},
|
||||
"author": "thirdweb eng <[email protected]>",
|
||||
"devDependencies": {
|
||||
"@babel/core": "^7.22.5",
|
||||
"@babel/preset-env": "^7.22.5",
|
||||
"@babel/core": "^7.22.9",
|
||||
"@babel/preset-env": "^7.22.9",
|
||||
"@babel/preset-typescript": "^7.22.5",
|
||||
"@babel/runtime": "^7.22.5",
|
||||
"@preconstruct/cli": "^2.7.0",
|
||||
"@babel/runtime": "^7.22.6",
|
||||
"@preconstruct/cli": "2.7.0",
|
||||
"@thirdweb-dev/tsconfig": "workspace:*",
|
||||
"@types/jest": "^29.5.3",
|
||||
"axios": "^1.4.0",
|
||||
"deepmerge": "^4.3.1",
|
||||
"eslint-config-thirdweb": "workspace:*",
|
||||
"jest": "^29.4.3",
|
||||
"jest": "^29.6.2",
|
||||
"plop": "^3.1.2",
|
||||
"typescript": "^5.1.6"
|
||||
},
|
||||
|
||||
@@ -17,6 +17,51 @@ const combineMerge = (target, source) => {
|
||||
return destination;
|
||||
};
|
||||
|
||||
/**
|
||||
* @param {Chain['explorers']} explorers
|
||||
*/
|
||||
function sortExplorers(explorers = []) {
|
||||
let etherscan = null;
|
||||
let blockscout = null;
|
||||
|
||||
let restExplorers = [];
|
||||
|
||||
for (const explorer of explorers) {
|
||||
if (explorer.name.includes("etherscan")) {
|
||||
etherscan = explorer;
|
||||
} else if (explorer.name.includes("blockscout")) {
|
||||
blockscout = explorer;
|
||||
} else {
|
||||
restExplorers.push(explorer);
|
||||
}
|
||||
}
|
||||
|
||||
const returnExplorers = [];
|
||||
if (etherscan) {
|
||||
returnExplorers.push(etherscan);
|
||||
}
|
||||
if (blockscout) {
|
||||
returnExplorers.push(blockscout);
|
||||
}
|
||||
|
||||
return [...returnExplorers, ...restExplorers];
|
||||
}
|
||||
|
||||
/**
|
||||
* @param {readonly any[]} values
|
||||
* @param {(arg0: any) => void} valueChecker
|
||||
*/
|
||||
function filterOutErroringValues(values, valueChecker) {
|
||||
return values.filter((value) => {
|
||||
try {
|
||||
valueChecker(value);
|
||||
return true;
|
||||
} catch (e) {
|
||||
return false;
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
const chainsDir = "./chains";
|
||||
|
||||
const chainsJsonUrl = "https://chainid.network/chains.json";
|
||||
@@ -74,10 +119,40 @@ chains = chains
|
||||
? false
|
||||
: JSON.stringify(chain).toLowerCase().includes("test");
|
||||
|
||||
return {
|
||||
const resultChain = {
|
||||
...chain,
|
||||
testnet,
|
||||
};
|
||||
// only add the explroers if they were there in the first place
|
||||
if (resultChain.explorers) {
|
||||
resultChain.explorers = sortExplorers(resultChain.explorers);
|
||||
// check every key that *could* contain a url and validate it
|
||||
resultChain.explorers = filterOutErroringValues(
|
||||
resultChain.explorers,
|
||||
(explorer) => new URL(explorer.url),
|
||||
);
|
||||
}
|
||||
if (resultChain.faucets) {
|
||||
resultChain.faucets = filterOutErroringValues(
|
||||
resultChain.faucets,
|
||||
(faucet) => new URL(faucet),
|
||||
);
|
||||
}
|
||||
if (resultChain.rpc) {
|
||||
resultChain.rpc = filterOutErroringValues(
|
||||
resultChain.rpc,
|
||||
(rpc) => new URL(rpc),
|
||||
);
|
||||
}
|
||||
if (resultChain.infoURL) {
|
||||
try {
|
||||
new URL(resultChain.infoURL);
|
||||
} catch (e) {
|
||||
delete resultChain.infoURL;
|
||||
}
|
||||
}
|
||||
|
||||
return resultChain;
|
||||
});
|
||||
|
||||
/**
|
||||
|
||||
File diff suppressed because one or more lines are too long
@@ -56,4 +56,5 @@ export type MinimalChain = Pick<
|
||||
| "chainId"
|
||||
| "testnet"
|
||||
| "slug"
|
||||
| "icon"
|
||||
>;
|
||||
|
||||
@@ -98,7 +98,13 @@ export function getValidChainRPCs(
|
||||
// Replace API_KEY placeholder with value
|
||||
if (rpc.includes("${THIRDWEB_API_KEY}")) {
|
||||
if (clientId) {
|
||||
processedRPCs.push(rpc.replace("${THIRDWEB_API_KEY}", clientId));
|
||||
processedRPCs.push(
|
||||
rpc.replace("${THIRDWEB_API_KEY}", clientId) +
|
||||
(typeof globalThis !== "undefined" && "APP_BUNDLE_ID" in globalThis
|
||||
? // @ts-ignore
|
||||
`/?bundleId=${globalThis.APP_BUNDLE_ID}`
|
||||
: ""),
|
||||
);
|
||||
} else {
|
||||
// if no client id, let it through with empty string
|
||||
// if secretKey is present, it will be used in header
|
||||
@@ -154,6 +160,7 @@ export function minimizeChain(chain: Chain): MinimalChain {
|
||||
chainId: chain.chainId,
|
||||
testnet: chain.testnet,
|
||||
slug: chain.slug,
|
||||
icon: chain.icon,
|
||||
};
|
||||
}
|
||||
|
||||
|
||||
@@ -0,0 +1,280 @@
|
||||
import { afterEach, beforeEach } from "node:test";
|
||||
import { Ethereum } from "../src";
|
||||
import {
|
||||
type ChainRPCOptions,
|
||||
getChainRPC,
|
||||
getChainRPCs,
|
||||
minimizeChain,
|
||||
configureChain,
|
||||
updateChainRPCs,
|
||||
getValidChainRPCs,
|
||||
} from "../src/utils";
|
||||
|
||||
const CHAIN_RPC_TEST_CASES: [ChainRPCOptions, string[]][] = [
|
||||
[
|
||||
{ thirdwebApiKey: "SAMPLE_KEY" },
|
||||
[
|
||||
"https://ethereum.rpc.thirdweb.com/SAMPLE_KEY",
|
||||
"https://api.mycryptoapi.com/eth",
|
||||
"https://cloudflare-eth.com",
|
||||
"https://ethereum.publicnode.com",
|
||||
],
|
||||
],
|
||||
[
|
||||
{ alchemyApiKey: "SAMPLE_KEY" },
|
||||
[
|
||||
"https://eth-mainnet.g.alchemy.com/v2/SAMPLE_KEY",
|
||||
"https://api.mycryptoapi.com/eth",
|
||||
"https://cloudflare-eth.com",
|
||||
"https://ethereum.publicnode.com",
|
||||
],
|
||||
],
|
||||
[
|
||||
{ infuraApiKey: "SAMPLE_KEY" },
|
||||
[
|
||||
"https://mainnet.infura.io/v3/SAMPLE_KEY",
|
||||
"https://api.mycryptoapi.com/eth",
|
||||
"https://cloudflare-eth.com",
|
||||
"https://ethereum.publicnode.com",
|
||||
],
|
||||
],
|
||||
// infura is supported for both http and ws
|
||||
[
|
||||
{ mode: "ws", infuraApiKey: "SAMPLE_KEY" },
|
||||
["wss://mainnet.infura.io/ws/v3/SAMPLE_KEY"],
|
||||
],
|
||||
];
|
||||
|
||||
describe("chains/utils", () => {
|
||||
test.each(CHAIN_RPC_TEST_CASES)(
|
||||
"getChainRPCs(%p) = %p",
|
||||
(options, expected) => {
|
||||
expect(getChainRPCs(Ethereum, options)).toEqual(expected);
|
||||
},
|
||||
);
|
||||
|
||||
test("Should throw error if no processedRPCs (getChainRPCs(%p))", () => {
|
||||
expect(() => {
|
||||
getChainRPCs(Ethereum, { mode: "ws" });
|
||||
}).toThrowError('No RPC available for chainId "1" with mode ws');
|
||||
});
|
||||
|
||||
test.each([
|
||||
[
|
||||
undefined,
|
||||
undefined,
|
||||
[
|
||||
"https://ethereum.rpc.thirdweb.com/",
|
||||
"https://api.mycryptoapi.com/eth",
|
||||
"https://cloudflare-eth.com",
|
||||
"https://ethereum.publicnode.com",
|
||||
],
|
||||
],
|
||||
[
|
||||
undefined,
|
||||
"http",
|
||||
[
|
||||
"https://ethereum.rpc.thirdweb.com/",
|
||||
"https://api.mycryptoapi.com/eth",
|
||||
"https://cloudflare-eth.com",
|
||||
"https://ethereum.publicnode.com",
|
||||
],
|
||||
],
|
||||
[
|
||||
"SAMPLE_CLIENT_KEY",
|
||||
undefined,
|
||||
[
|
||||
"https://ethereum.rpc.thirdweb.com/SAMPLE_CLIENT_KEY",
|
||||
"https://api.mycryptoapi.com/eth",
|
||||
"https://cloudflare-eth.com",
|
||||
"https://ethereum.publicnode.com",
|
||||
],
|
||||
],
|
||||
[
|
||||
"SAMPLE_CLIENT_KEY",
|
||||
"http",
|
||||
[
|
||||
"https://ethereum.rpc.thirdweb.com/SAMPLE_CLIENT_KEY",
|
||||
"https://api.mycryptoapi.com/eth",
|
||||
"https://cloudflare-eth.com",
|
||||
"https://ethereum.publicnode.com",
|
||||
],
|
||||
],
|
||||
])("getValidChainRPCs(Ethereum, %s, %s) = %p", (clientId, mode, expected) => {
|
||||
expect(getValidChainRPCs(Ethereum, clientId, mode)).toEqual(expected);
|
||||
});
|
||||
|
||||
test.each([
|
||||
[undefined, "ws"],
|
||||
["SAMPLE_CLIENT_KEY", "ws"],
|
||||
])(
|
||||
"Should throw error if no processedRPCs (getValidChainRPCs(Ethereum, %s, %s))",
|
||||
(clientId, mode) => {
|
||||
expect(() => {
|
||||
getValidChainRPCs(Ethereum, clientId, mode);
|
||||
}).toThrowError('No RPC available for chainId "1" with mode ws');
|
||||
},
|
||||
);
|
||||
|
||||
test.each(CHAIN_RPC_TEST_CASES)(
|
||||
"getChainRPC(%p) = %p",
|
||||
(options, expected) => {
|
||||
expect(getChainRPC(Ethereum, options)).toEqual(expected[0]);
|
||||
},
|
||||
);
|
||||
|
||||
test("minimizeChain", () => {
|
||||
expect(minimizeChain(Ethereum)).toEqual({
|
||||
name: "Ethereum Mainnet",
|
||||
chain: "ETH",
|
||||
icon: {
|
||||
url: "ipfs://QmcxZHpyJa8T4i63xqjPYrZ6tKrt55tZJpbXcjSDKuKaf9/ethereum/512.png",
|
||||
height: 512,
|
||||
width: 512,
|
||||
format: "png",
|
||||
},
|
||||
rpc: ["https://ethereum.rpc.thirdweb.com/${THIRDWEB_API_KEY}"],
|
||||
nativeCurrency: {
|
||||
name: "Ether",
|
||||
symbol: "ETH",
|
||||
decimals: 18,
|
||||
},
|
||||
shortName: "eth",
|
||||
chainId: 1,
|
||||
testnet: false,
|
||||
slug: "ethereum",
|
||||
});
|
||||
});
|
||||
|
||||
test.each([
|
||||
[{}, Ethereum],
|
||||
[
|
||||
{ rpc: "https://example.com" },
|
||||
{ ...Ethereum, rpc: ["https://example.com", ...Ethereum.rpc] },
|
||||
],
|
||||
[
|
||||
{ rpc: ["https://example.com", "https://httpbin.org"] },
|
||||
{
|
||||
...Ethereum,
|
||||
rpc: ["https://example.com", "https://httpbin.org", ...Ethereum.rpc],
|
||||
},
|
||||
],
|
||||
])("configureChain(Ethereum, %p) = %p", (config, expected) => {
|
||||
expect(configureChain(Ethereum, config)).toEqual(expected);
|
||||
});
|
||||
|
||||
test.each([
|
||||
[
|
||||
Ethereum,
|
||||
undefined,
|
||||
{
|
||||
...Ethereum,
|
||||
rpc: [
|
||||
"https://ethereum.rpc.thirdweb.com/",
|
||||
"https://api.mycryptoapi.com/eth",
|
||||
"https://cloudflare-eth.com",
|
||||
"https://ethereum.publicnode.com",
|
||||
],
|
||||
},
|
||||
],
|
||||
[
|
||||
Ethereum,
|
||||
"SAMPLE_CLIENT_KEY",
|
||||
{
|
||||
...Ethereum,
|
||||
rpc: [
|
||||
"https://ethereum.rpc.thirdweb.com/SAMPLE_CLIENT_KEY",
|
||||
"https://api.mycryptoapi.com/eth",
|
||||
"https://cloudflare-eth.com",
|
||||
"https://ethereum.publicnode.com",
|
||||
],
|
||||
},
|
||||
],
|
||||
[{ ...Ethereum, rpc: [] }, "SAMPLE_CLIENT_KEY", { ...Ethereum, rpc: [] }],
|
||||
])("updateChainRPCs(%p, %s) = %p", (chain, config, expected) => {
|
||||
expect(updateChainRPCs(chain, config)).toEqual(expected);
|
||||
});
|
||||
});
|
||||
|
||||
describe("chains/utils with APP_BUNDLE_ID", () => {
|
||||
beforeAll(() => {
|
||||
globalThis.APP_BUNDLE_ID = "com.thirdweb.rpc";
|
||||
});
|
||||
|
||||
test.each([
|
||||
[
|
||||
undefined,
|
||||
undefined,
|
||||
[
|
||||
"https://ethereum.rpc.thirdweb.com/",
|
||||
"https://api.mycryptoapi.com/eth",
|
||||
"https://cloudflare-eth.com",
|
||||
"https://ethereum.publicnode.com",
|
||||
],
|
||||
],
|
||||
[
|
||||
undefined,
|
||||
"http",
|
||||
[
|
||||
"https://ethereum.rpc.thirdweb.com/",
|
||||
"https://api.mycryptoapi.com/eth",
|
||||
"https://cloudflare-eth.com",
|
||||
"https://ethereum.publicnode.com",
|
||||
],
|
||||
],
|
||||
[
|
||||
"SAMPLE_CLIENT_KEY",
|
||||
undefined,
|
||||
[
|
||||
"https://ethereum.rpc.thirdweb.com/SAMPLE_CLIENT_KEY/?bundleId=com.thirdweb.rpc",
|
||||
"https://api.mycryptoapi.com/eth",
|
||||
"https://cloudflare-eth.com",
|
||||
"https://ethereum.publicnode.com",
|
||||
],
|
||||
],
|
||||
[
|
||||
"SAMPLE_CLIENT_KEY",
|
||||
"http",
|
||||
[
|
||||
"https://ethereum.rpc.thirdweb.com/SAMPLE_CLIENT_KEY/?bundleId=com.thirdweb.rpc",
|
||||
"https://api.mycryptoapi.com/eth",
|
||||
"https://cloudflare-eth.com",
|
||||
"https://ethereum.publicnode.com",
|
||||
],
|
||||
],
|
||||
])("getValidChainRPCs(Ethereum, %s, %s) = %p", (clientId, mode, expected) => {
|
||||
expect(getValidChainRPCs(Ethereum, clientId, mode)).toEqual(expected);
|
||||
});
|
||||
|
||||
test.each([
|
||||
[
|
||||
Ethereum,
|
||||
undefined,
|
||||
{
|
||||
...Ethereum,
|
||||
rpc: [
|
||||
"https://ethereum.rpc.thirdweb.com/",
|
||||
"https://api.mycryptoapi.com/eth",
|
||||
"https://cloudflare-eth.com",
|
||||
"https://ethereum.publicnode.com",
|
||||
],
|
||||
},
|
||||
],
|
||||
[
|
||||
Ethereum,
|
||||
"SAMPLE_CLIENT_KEY",
|
||||
{
|
||||
...Ethereum,
|
||||
rpc: [
|
||||
"https://ethereum.rpc.thirdweb.com/SAMPLE_CLIENT_KEY/?bundleId=com.thirdweb.rpc",
|
||||
"https://api.mycryptoapi.com/eth",
|
||||
"https://cloudflare-eth.com",
|
||||
"https://ethereum.publicnode.com",
|
||||
],
|
||||
},
|
||||
],
|
||||
[{ ...Ethereum, rpc: [] }, "SAMPLE_CLIENT_KEY", { ...Ethereum, rpc: [] }],
|
||||
])("updateChainRPCs(%p, %s) = %p", (chain, config, expected) => {
|
||||
expect(updateChainRPCs(chain, config)).toEqual(expected);
|
||||
});
|
||||
});
|
||||
@@ -1,5 +1,53 @@
|
||||
# thirdweb
|
||||
|
||||
## 0.11.6
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies [[`256ee0d5`](https://github.com/thirdweb-dev/js/commit/256ee0d5ec9c8598aa79cd4cb1fd839c6cc7d390)]:
|
||||
- @thirdweb-dev/storage@1.2.2
|
||||
- @thirdweb-dev/chains@0.1.40
|
||||
- @thirdweb-dev/sdk@3.10.42
|
||||
|
||||
## 0.11.5
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- [#1409](https://github.com/thirdweb-dev/js/pull/1409) [`b1e8c8e2`](https://github.com/thirdweb-dev/js/commit/b1e8c8e231013182eb46c16d0c441ee0f3bdfdb2) Thanks [@jnsdls](https://github.com/jnsdls)! - update dependencies
|
||||
|
||||
- [#1412](https://github.com/thirdweb-dev/js/pull/1412) [`fa48ab69`](https://github.com/thirdweb-dev/js/commit/fa48ab6942aaca5b4cf00893240510b1138190a1) Thanks [@jarrodwatts](https://github.com/jarrodwatts)! - fix: postinstall check keeps adding to itself
|
||||
|
||||
- [#1389](https://github.com/thirdweb-dev/js/pull/1389) [`53400858`](https://github.com/thirdweb-dev/js/commit/53400858232ceb998d68da8a75a6d493668fcf0f) Thanks [@kumaryash90](https://github.com/kumaryash90)! - Add default admin param to base contract constructors
|
||||
|
||||
- [#1384](https://github.com/thirdweb-dev/js/pull/1384) [`0402b8bb`](https://github.com/thirdweb-dev/js/commit/0402b8bb378857b78cb207a329ac66598eeb6921) Thanks [@Marfuen](https://github.com/Marfuen)! - Update CLI Login text to mask the secret
|
||||
|
||||
- Updated dependencies [[`09b3b339`](https://github.com/thirdweb-dev/js/commit/09b3b339e65a6a9a1cfa32bab9e61e57532e7dbe), [`0a5eb19d`](https://github.com/thirdweb-dev/js/commit/0a5eb19d672909027bb6c7e79ea76d431535559c), [`98009cb3`](https://github.com/thirdweb-dev/js/commit/98009cb3ca6f1c2221a6a74ffa7df8d7ddac2c60), [`b1e8c8e2`](https://github.com/thirdweb-dev/js/commit/b1e8c8e231013182eb46c16d0c441ee0f3bdfdb2), [`51b36040`](https://github.com/thirdweb-dev/js/commit/51b3604021ca7b52fd00fd07c5a648a73464a61b), [`cbf486c2`](https://github.com/thirdweb-dev/js/commit/cbf486c21088ec1656933961e653e1d161939f63), [`01cc5408`](https://github.com/thirdweb-dev/js/commit/01cc54087b9d276968cb6dd3ceafa07c30bc2242), [`53400858`](https://github.com/thirdweb-dev/js/commit/53400858232ceb998d68da8a75a6d493668fcf0f), [`48ca58b7`](https://github.com/thirdweb-dev/js/commit/48ca58b7aa45348b928932b9c7b76b3dc233e429), [`aface46d`](https://github.com/thirdweb-dev/js/commit/aface46d7469ca2c1e45895e311a74363ceb8611), [`3152d4e9`](https://github.com/thirdweb-dev/js/commit/3152d4e9b42e2777316b1b58513657f4430cb79a), [`5fe3cec8`](https://github.com/thirdweb-dev/js/commit/5fe3cec894b98a2361d21bb72a5da843ec2a4d9b), [`8e6e55b1`](https://github.com/thirdweb-dev/js/commit/8e6e55b154ecdc4b09ded31387707571ff963fb7), [`aa6bdd08`](https://github.com/thirdweb-dev/js/commit/aa6bdd0809d1d5536c837c59b2d407ee974c1f9c), [`75587c8b`](https://github.com/thirdweb-dev/js/commit/75587c8b38bbbcf68d2101526e9792349cce728f), [`cc5e2ec5`](https://github.com/thirdweb-dev/js/commit/cc5e2ec51fce09af05be33811eb46980825829ee), [`a9f9a403`](https://github.com/thirdweb-dev/js/commit/a9f9a403457b9e683bcfdb61034ee9c9ee08bbf8), [`5a02c5ec`](https://github.com/thirdweb-dev/js/commit/5a02c5ec0288fd6dfb2b765ef70bb18e714aca19)]:
|
||||
- @thirdweb-dev/sdk@3.10.41
|
||||
- @thirdweb-dev/chains@0.1.39
|
||||
- @thirdweb-dev/storage@1.2.1
|
||||
|
||||
## 0.11.4
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies [[`7cb55e70`](https://github.com/thirdweb-dev/js/commit/7cb55e7051617268bba1b80146865c606ff6e66d)]:
|
||||
- @thirdweb-dev/chains@0.1.38
|
||||
- @thirdweb-dev/sdk@3.10.40
|
||||
|
||||
## 0.11.3
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- [#1370](https://github.com/thirdweb-dev/js/pull/1370) [`79ebbbca`](https://github.com/thirdweb-dev/js/commit/79ebbbcad92b71b3123f5cc08d7d837b3716cb3f) Thanks [@Marfuen](https://github.com/Marfuen)! - Fixed a bug where passing in --ci in publish, release or deploy would still open the url and crash during runtime. Now it won't open the url if --ci is passed in.
|
||||
|
||||
## 0.11.2
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies [[`d665954f`](https://github.com/thirdweb-dev/js/commit/d665954fee0554985055bf06abbed8d7b8d5bc38)]:
|
||||
- @thirdweb-dev/chains@0.1.37
|
||||
- @thirdweb-dev/sdk@3.10.39
|
||||
|
||||
## 0.11.1
|
||||
|
||||
### Patch Changes
|
||||
|
||||
@@ -1,6 +1,9 @@
|
||||
import { CREATE_MESSAGES } from "../constants/constants";
|
||||
import { prepareEnvironment } from "@gmrchk/cli-testing-library";
|
||||
|
||||
// load env variables
|
||||
require("dotenv-mono").load();
|
||||
|
||||
// this creates an app, can take some time that's fine
|
||||
jest.setTimeout(150_000);
|
||||
|
||||
|
||||
@@ -3,20 +3,20 @@ import { copyFile } from "fs/promises";
|
||||
import { resolve } from "path";
|
||||
import { ERROR_MESSAGES } from "../constants/constants";
|
||||
|
||||
// load env variables
|
||||
require("dotenv-mono").load();
|
||||
|
||||
const apiSecretKey = process.env.TW_SECRET_KEY as string;
|
||||
|
||||
// function to skip tests based on condition
|
||||
const itif = (condition: boolean) => (condition ? it : it.skip);
|
||||
|
||||
// this creates an app, can take some time that's fine
|
||||
jest.setTimeout(120_000);
|
||||
|
||||
describe("npx thirdweb deploy", () => {
|
||||
it("should return deploy page url", async () => {
|
||||
itif(!!apiSecretKey)("should return deploy page url", async () => {
|
||||
const { spawn, cleanup, exists, path } = await prepareEnvironment();
|
||||
// eslint-disable-next-line turbo/no-undeclared-env-vars
|
||||
const apiSecretKey = process.env.CLI_E2E_API_KEY as string;
|
||||
|
||||
if (!apiSecretKey) {
|
||||
throw new Error(
|
||||
"CLI_E2E_API_KEY is not set in the environment variables",
|
||||
);
|
||||
}
|
||||
|
||||
await copyFile(
|
||||
resolve("./e2e/files/BasicContract.sol"),
|
||||
|
||||
@@ -1,6 +1,9 @@
|
||||
import { CREATE_MESSAGES } from "../constants/constants";
|
||||
import { prepareEnvironment } from "@gmrchk/cli-testing-library";
|
||||
|
||||
// load env variables
|
||||
require("dotenv-mono").load();
|
||||
|
||||
// this creates an app, can take some time that's fine
|
||||
jest.setTimeout(240_000);
|
||||
|
||||
|
||||
@@ -3,21 +3,22 @@ import { copyFile } from "fs/promises";
|
||||
import { resolve } from "path";
|
||||
import { ERROR_MESSAGES } from "../constants/constants";
|
||||
|
||||
// load env variables
|
||||
require("dotenv-mono").load();
|
||||
|
||||
// eslint-disable-next-line turbo/no-undeclared-env-vars
|
||||
const apiSecretKey = process.env.TW_SECRET_KEY as string;
|
||||
|
||||
// function to skip tests based on condition
|
||||
const itif = (condition: boolean) => (condition ? it : it.skip);
|
||||
|
||||
// this creates an app, can take some time that's fine
|
||||
jest.setTimeout(120_000);
|
||||
|
||||
describe("npx thirdweb publish", () => {
|
||||
// TOOD: turn this test back on when we figure out why it's failing
|
||||
it.skip("should return publish page url", async () => {
|
||||
// conditionally skip test if there's no api key
|
||||
itif(!!apiSecretKey)("should return publish page url", async () => {
|
||||
const { spawn, cleanup, exists, path } = await prepareEnvironment();
|
||||
// eslint-disable-next-line turbo/no-undeclared-env-vars
|
||||
const apiSecretKey = process.env.CLI_E2E_API_KEY as string;
|
||||
|
||||
if (!apiSecretKey) {
|
||||
throw new Error(
|
||||
"CLI_E2E_API_KEY is not set in the environment variables",
|
||||
);
|
||||
}
|
||||
|
||||
await copyFile(
|
||||
resolve("./e2e/files/BasicContract.sol"),
|
||||
@@ -25,7 +26,7 @@ describe("npx thirdweb publish", () => {
|
||||
);
|
||||
|
||||
const { waitForText, waitForFinish, getExitCode, writeText, getStderr } =
|
||||
await spawn("node", `./dist/cli/index.js publish -k ${apiSecretKey}}`);
|
||||
await spawn("node", `./dist/cli/index.js publish -k ${apiSecretKey}`);
|
||||
|
||||
expect(await exists("BasicContract.sol")).toEqual(true);
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/** @type {import('ts-jest/dist/types').InitialOptionsTsJest} */
|
||||
module.exports = {
|
||||
preset: 'ts-jest',
|
||||
testEnvironment: 'node',
|
||||
};
|
||||
preset: "ts-jest",
|
||||
testEnvironment: "node",
|
||||
};
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"name": "thirdweb",
|
||||
"main": "dist/cli/index.js",
|
||||
"version": "0.11.1",
|
||||
"version": "0.11.6",
|
||||
"repository": "https://github.com/thirdweb-dev/js/tree/main/packages/cli",
|
||||
"author": "thirdweb eng <[email protected]>",
|
||||
"license": "Apache-2.0",
|
||||
@@ -14,9 +14,9 @@
|
||||
"@types/async-retry": "^1.3.0",
|
||||
"@types/cross-spawn": "^6.0.2",
|
||||
"@types/inquirer": "^8.2.1",
|
||||
"@types/jest": "^29.5.2",
|
||||
"@types/jest": "^29.5.3",
|
||||
"@types/js-yaml": "^4.0.5",
|
||||
"@types/node": "^18.16.18",
|
||||
"@types/node": "^18.17.1",
|
||||
"@types/prompts": "^2.4.4",
|
||||
"@types/rimraf": "^3.0.0",
|
||||
"@types/tar": "^6.1.5",
|
||||
@@ -24,12 +24,13 @@
|
||||
"@types/validate-npm-package-name": "^4.0.0",
|
||||
"chalk": "^5.3.0",
|
||||
"cross-spawn": "^7.0.3",
|
||||
"dotenv-mono": "^1.3.10",
|
||||
"eslint-config-thirdweb": "workspace:*",
|
||||
"hardhat": "^2.16.1",
|
||||
"jest": "^29.4.3",
|
||||
"hardhat": "^2.17.0",
|
||||
"jest": "^29.6.2",
|
||||
"ora": "^6.3.1",
|
||||
"prettier": "^3.0.0",
|
||||
"ts-jest": "^29.1.0",
|
||||
"ts-jest": "^29.1.1",
|
||||
"ts-node": "^10.7.0",
|
||||
"tsup": "^6.7.0",
|
||||
"typescript": "^5.1.6"
|
||||
@@ -47,7 +48,7 @@
|
||||
"got": "11.8.5",
|
||||
"inquirer": "^8.2.3",
|
||||
"js-yaml": "^4.1.0",
|
||||
"node-fetch": "^3.3.1",
|
||||
"node-fetch": "^3.3.2",
|
||||
"open": "^8.4.0",
|
||||
"prompts": "^2.4.2",
|
||||
"rimraf": "^3.0.2",
|
||||
|
||||
@@ -41,7 +41,7 @@ export function getSession(cache: Cache) {
|
||||
export async function createSession(cache: Cache) {
|
||||
try {
|
||||
const response = await prompts({
|
||||
type: "text",
|
||||
type: "invisible",
|
||||
name: "apiSecretKey",
|
||||
message: `Please enter your API secret key, you can find or create it on ${chalk.blue(
|
||||
"https://thirdweb.com/create-api-key",
|
||||
|
||||
@@ -178,7 +178,7 @@ const main = async () => {
|
||||
);
|
||||
|
||||
// If the package is installed globally with yarn or pnpm, then npx won't recognize it
|
||||
// So we need to make sure to run the command directly
|
||||
// So we need to make sure to run the command directly.
|
||||
const executionCommand =
|
||||
!installation.isGlobal || installation.packageManager === "npm"
|
||||
? `npx thirdweb`
|
||||
@@ -311,7 +311,7 @@ const main = async () => {
|
||||
apiSecretKey = options.key;
|
||||
}
|
||||
const url = await deploy(options, apiSecretKey);
|
||||
if (url) {
|
||||
if (url && !options.ci) {
|
||||
await open(url);
|
||||
}
|
||||
});
|
||||
@@ -351,7 +351,9 @@ const main = async () => {
|
||||
url.toString(),
|
||||
)}`,
|
||||
);
|
||||
await open(url.toString());
|
||||
if (url && !options.ci) {
|
||||
await open(url.toString());
|
||||
}
|
||||
});
|
||||
|
||||
program
|
||||
@@ -388,7 +390,9 @@ const main = async () => {
|
||||
url.toString(),
|
||||
)}`,
|
||||
);
|
||||
await open(url.toString());
|
||||
if (url && !options.ci) {
|
||||
await open(url.toString());
|
||||
}
|
||||
});
|
||||
|
||||
program
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user