Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
318b274aae | ||
|
|
77f0474b88 | ||
|
|
5ffb1cba03 | ||
|
|
0bf29745b0 | ||
|
|
00d0d01e61 | ||
|
|
72b8b9829e | ||
|
|
26cd91ffe1 | ||
|
|
1c3a846045 | ||
|
|
4a69f8c85d | ||
|
|
c7c2530c7f | ||
|
|
7012513bc2 | ||
|
|
28b5d1eb6d | ||
|
|
1e9fad779f | ||
|
|
7e7a507f03 | ||
|
|
5a67d5d894 | ||
|
|
fc96e14750 | ||
|
|
8f962bc15c | ||
|
|
f12a80a475 | ||
|
|
0186721bc4 | ||
|
|
5d67b2807f | ||
|
|
1e4ac67272 | ||
|
|
465d8e2c3d | ||
|
|
a8b790652c | ||
|
|
4828c87691 | ||
|
|
45d2ffcf89 | ||
|
|
bf6df26711 | ||
|
|
e22e4a47d7 | ||
|
|
d2c7f6d758 | ||
|
|
7af99d9a6d | ||
|
|
f0279c2288 | ||
|
|
07194b06e5 | ||
|
|
255c5dcae8 | ||
|
|
8cfb4f38ed | ||
|
|
7c15913e46 | ||
|
|
477324ec85 | ||
|
|
c9ee9b32f0 | ||
|
|
3010d84595 | ||
|
|
81770647ab | ||
|
|
26644d63b5 | ||
|
|
09fae984e7 | ||
|
|
0b1f522906 | ||
|
|
ec36df5f75 | ||
|
|
c93edc4999 | ||
|
|
29146e009d | ||
|
|
ea04edf478 | ||
|
|
c2fec93052 | ||
|
|
d8b54a6f91 | ||
|
|
664d1cd0dd | ||
|
|
4275c8e739 | ||
|
|
82bea3fa10 | ||
|
|
8e8ceaa344 | ||
|
|
77224646d5 | ||
|
|
72db2dc3e1 | ||
|
|
abe88599b6 | ||
|
|
a6610f1211 | ||
|
|
bfdd84939d | ||
|
|
06cc1df3b7 | ||
|
|
4acb2b5561 | ||
|
|
00f4355f1a | ||
|
|
430a5f7934 | ||
|
|
51e6b4146e | ||
|
|
49922de9d9 | ||
|
|
603e24f1e2 | ||
|
|
c9027fced0 | ||
|
|
ac8fa0b345 | ||
|
|
81a32b4dd2 | ||
|
|
bd0bb4fed7 | ||
|
|
b616dca7eb | ||
|
|
59434aac4f | ||
|
|
cef16471f4 | ||
|
|
0db0cc7564 | ||
|
|
229a47413e | ||
|
|
b75bcef55b | ||
|
|
2545a440dc | ||
|
|
0b4b6a5b4e | ||
|
|
b3d57949bd | ||
|
|
1cf1f866d5 | ||
|
|
602d8cbcfa | ||
|
|
33a78e68d1 | ||
|
|
235eb0460a | ||
|
|
3bb846adf0 | ||
|
|
b5648aee83 | ||
|
|
1b8f812fb8 | ||
|
|
1547d76cce | ||
|
|
7c78d1c6e8 | ||
|
|
058e4357c7 | ||
|
|
3a0e904fc2 |
@@ -1,5 +1,69 @@
|
||||
# @thirdweb-dev/auth
|
||||
|
||||
## 3.0.16
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- [#958](https://github.com/thirdweb-dev/js/pull/958) [`72b8b982`](https://github.com/thirdweb-dev/js/commit/72b8b9829eb11d51a63530af62e5634f182c0d03) Thanks [@adam-maj](https://github.com/adam-maj)! - Add extra options to cookie on logout
|
||||
|
||||
- Updated dependencies [[`7012513b`](https://github.com/thirdweb-dev/js/commit/7012513bc20f283b2cde46c0b938af33fe3a1a20), [`5d67b280`](https://github.com/thirdweb-dev/js/commit/5d67b2807f2504add4c202d2eb18897415662fb6), [`f12a80a4`](https://github.com/thirdweb-dev/js/commit/f12a80a4758aa91c43084acedb212de9f36a7371), [`5a67d5d8`](https://github.com/thirdweb-dev/js/commit/5a67d5d89474eac9a638ffaddba139b62965deff), [`d2c7f6d7`](https://github.com/thirdweb-dev/js/commit/d2c7f6d758787fab102ecc0cec16ac74f3c87a1f), [`c7c2530c`](https://github.com/thirdweb-dev/js/commit/c7c2530c7f2ef412f1e40428391e85decf504392), [`e22e4a47`](https://github.com/thirdweb-dev/js/commit/e22e4a47d73e1bbc6e3f0ae7ed56717b44e5ffcd), [`1e4ac672`](https://github.com/thirdweb-dev/js/commit/1e4ac672720c2fb01046bec195877a074ffbda06), [`fc96e147`](https://github.com/thirdweb-dev/js/commit/fc96e14750175b19cb66fa7d50cdbad65b42153a), [`4a69f8c8`](https://github.com/thirdweb-dev/js/commit/4a69f8c85dec420615e9eda8d1ad5b5ef0b87713), [`26cd91ff`](https://github.com/thirdweb-dev/js/commit/26cd91ffe18dad37133a18988f21185c13d64cfb), [`0186721b`](https://github.com/thirdweb-dev/js/commit/0186721bc455aa1f8454839a1a25fa4062b45102), [`1e9fad77`](https://github.com/thirdweb-dev/js/commit/1e9fad779f3ebe535d32c0ce76905a3a8033f2fa), [`7af99d9a`](https://github.com/thirdweb-dev/js/commit/7af99d9a6d54492a29a90288a25b30773a8a10a7), [`8cfb4f38`](https://github.com/thirdweb-dev/js/commit/8cfb4f38ed89c26ad04f19d27c65c24cefa976b6)]:
|
||||
- @thirdweb-dev/wallets@0.2.17
|
||||
|
||||
## 3.0.15
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- [#874](https://github.com/thirdweb-dev/js/pull/874) [`49922de9`](https://github.com/thirdweb-dev/js/commit/49922de9d9c1258e58a3a05e656b229db469b1dd) Thanks [@iketw](https://github.com/iketw)! - [RN] Adds Auth to React Native
|
||||
|
||||
- Adds an optional `secureStorage` to authConfig
|
||||
- Adds `expo-secure-store` to store the JWT token securely in React Native, passing a default value
|
||||
- Stores the token in secure storage to be accessed by subsequent calls
|
||||
- Returns the token in `useLogin` to be used by the user
|
||||
|
||||
How I tested:
|
||||
|
||||
- Tested in Android/iOS/Web
|
||||
|
||||
Usage:
|
||||
|
||||
```
|
||||
<ThirdwebProvider
|
||||
activeChain="ethereum"
|
||||
supportedWallets={[metamaskWallet(), rainbowWallet()]}
|
||||
authConfig={{
|
||||
domain: https://your-domain.com,
|
||||
authUrl: '/api/auth',
|
||||
}}>
|
||||
<AppInner />
|
||||
</ThirdwebProvider>
|
||||
```
|
||||
|
||||
```
|
||||
const { login } = useLogin();
|
||||
const { logout } = useLogout();
|
||||
const { user, isLoggedIn } = useUser();
|
||||
...
|
||||
|
||||
const token = await login();
|
||||
```
|
||||
|
||||
- Updated dependencies [[`4acb2b55`](https://github.com/thirdweb-dev/js/commit/4acb2b5561118dde5c7372400d4d754b879aef2e), [`82bea3fa`](https://github.com/thirdweb-dev/js/commit/82bea3fa10294eb3c5c7327fb047e3d1b2c62ff9), [`664d1cd0`](https://github.com/thirdweb-dev/js/commit/664d1cd0dd03f32337c2cf532f0ad860e5aa5ea8), [`c2fec930`](https://github.com/thirdweb-dev/js/commit/c2fec930520e2df89532ec0027ead4563c7708cf)]:
|
||||
- @thirdweb-dev/[email protected]
|
||||
|
||||
## 3.0.14
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies [[`b616dca7`](https://github.com/thirdweb-dev/js/commit/b616dca7eb861cd1d2adba3f3d1fe9c3b50f259e), [`2545a440`](https://github.com/thirdweb-dev/js/commit/2545a440dc272690cacbc23023f7b0a68f390c6e), [`229a4741`](https://github.com/thirdweb-dev/js/commit/229a47413e422952ad946b8c09af32cc1fcdc7f0)]:
|
||||
- @thirdweb-dev/[email protected]
|
||||
|
||||
## 3.0.13
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies [[`235eb046`](https://github.com/thirdweb-dev/js/commit/235eb0460ae0638f63acf82957bcfea41b9e955d)]:
|
||||
- @thirdweb-dev/[email protected]
|
||||
|
||||
## 3.0.12
|
||||
|
||||
### Patch Changes
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@thirdweb-dev/auth",
|
||||
"version": "3.0.12",
|
||||
"version": "3.0.16",
|
||||
"main": "dist/thirdweb-dev-auth.cjs.js",
|
||||
"module": "dist/thirdweb-dev-auth.esm.js",
|
||||
"browser": {
|
||||
@@ -60,7 +60,8 @@
|
||||
"lint": "eslint src/",
|
||||
"fix": "eslint src/ --fix",
|
||||
"clean": "rm -rf dist/ && rm -rf node_modules/",
|
||||
"test": "mocha --config './test/.mocharc.json' --timeout 30000 --parallel './test/**/*.test.ts'"
|
||||
"test": "mocha --config './test/.mocharc.json' --timeout 30000 --parallel './test/**/*.test.ts'",
|
||||
"push": "yalc push"
|
||||
},
|
||||
"preconstruct": {
|
||||
"entrypoints": [
|
||||
|
||||
@@ -49,9 +49,7 @@ export class ThirdwebAuth {
|
||||
address: await this.wallet.getAddress(),
|
||||
statement: parsedOptions?.statement,
|
||||
version: parsedOptions?.version,
|
||||
uri:
|
||||
parsedOptions?.uri ||
|
||||
(isBrowser() ? window.location.origin : undefined),
|
||||
uri: parsedOptions?.uri,
|
||||
chain_id: chainId,
|
||||
nonce: parsedOptions?.nonce,
|
||||
expiration_time:
|
||||
|
||||
@@ -27,7 +27,10 @@ export default async function handler(
|
||||
serialize("thirdweb_auth_token", "", {
|
||||
domain: ctx.cookieOptions?.domain,
|
||||
path: ctx.cookieOptions?.path || "/",
|
||||
sameSite: ctx.cookieOptions?.sameSite || "none",
|
||||
expires: new Date(Date.now() + 5 * 1000),
|
||||
httpOnly: true,
|
||||
secure: true,
|
||||
}),
|
||||
);
|
||||
|
||||
|
||||
@@ -27,7 +27,10 @@ export default async function handler(
|
||||
serialize("thirdweb_auth_token", "", {
|
||||
domain: ctx.cookieOptions?.domain,
|
||||
path: ctx.cookieOptions?.path || "/",
|
||||
sameSite: ctx.cookieOptions?.sameSite || "none",
|
||||
expires: new Date(Date.now() + 5 * 1000),
|
||||
httpOnly: true,
|
||||
secure: true,
|
||||
}),
|
||||
);
|
||||
|
||||
|
||||
@@ -1,5 +1,27 @@
|
||||
# @thirdweb-dev/chains
|
||||
|
||||
## 0.1.13
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- [#787](https://github.com/thirdweb-dev/js/pull/787) [`d2c7f6d7`](https://github.com/thirdweb-dev/js/commit/d2c7f6d758787fab102ecc0cec16ac74f3c87a1f) Thanks [@iketw](https://github.com/iketw)! - [ReactNative] Adds Device Wallet
|
||||
|
||||
- [#931](https://github.com/thirdweb-dev/js/pull/931) [`f12a80a4`](https://github.com/thirdweb-dev/js/commit/f12a80a4758aa91c43084acedb212de9f36a7371) Thanks [@joaquim-verges](https://github.com/joaquim-verges)! - Updated chains
|
||||
|
||||
## 0.1.12
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- [#896](https://github.com/thirdweb-dev/js/pull/896) [`a6610f12`](https://github.com/thirdweb-dev/js/commit/a6610f1211e9359885b948bf69a66d834707ec07) Thanks [@atharvadeosthale](https://github.com/atharvadeosthale)! - Added links to portal
|
||||
|
||||
- [#903](https://github.com/thirdweb-dev/js/pull/903) [`77224646`](https://github.com/thirdweb-dev/js/commit/77224646d542db3171394d744b455497cd057633) Thanks [@joaquim-verges](https://github.com/joaquim-verges)! - new chains
|
||||
|
||||
## 0.1.11
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- [#870](https://github.com/thirdweb-dev/js/pull/870) [`235eb046`](https://github.com/thirdweb-dev/js/commit/235eb0460ae0638f63acf82957bcfea41b9e955d) Thanks [@jnsdls](https://github.com/jnsdls)! - update chains
|
||||
|
||||
## 0.1.10
|
||||
|
||||
### Patch Changes
|
||||
|
||||
@@ -10,7 +10,7 @@ export default {
|
||||
},
|
||||
"rpc": [
|
||||
"https://nebula-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
|
||||
"https://testnet.rpc.novanetwork.io:9070"
|
||||
"https://testnet.rpc.novanetwork.io"
|
||||
],
|
||||
"faucets": [
|
||||
"https://faucet.novanetwork.io"
|
||||
|
||||
@@ -0,0 +1,38 @@
|
||||
import type { Chain } from "../src/types";
|
||||
export default {
|
||||
"name": "ShimmerEVM Testnet",
|
||||
"title": "ShimmerEVM Testnet",
|
||||
"chain": "ShimmerEVM",
|
||||
"icon": {
|
||||
"url": "ipfs://bafkreibky2sy6qhi6arktayvologkrgu5kudpgdxfkx4uosbvmstz7v4di",
|
||||
"width": 720,
|
||||
"height": 720,
|
||||
"format": "png"
|
||||
},
|
||||
"rpc": [
|
||||
"https://shimmerevm-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
|
||||
"https://json-rpc.evm.testnet.shimmer.network"
|
||||
],
|
||||
"faucets": [
|
||||
"https://evm-toolkit.evm.testnet.shimmer.network",
|
||||
"https://evm-faucet.testnet.shimmer.network"
|
||||
],
|
||||
"nativeCurrency": {
|
||||
"name": "SMR",
|
||||
"symbol": "SMR",
|
||||
"decimals": 18
|
||||
},
|
||||
"infoURL": "https://shimmer.network",
|
||||
"shortName": "shimmerevm-testnet",
|
||||
"chainId": 1071,
|
||||
"networkId": 1071,
|
||||
"explorers": [
|
||||
{
|
||||
"name": "explorer",
|
||||
"url": "https://explorer.evm.testnet.shimmer.network",
|
||||
"standard": "EIP3091"
|
||||
}
|
||||
],
|
||||
"testnet": true,
|
||||
"slug": "shimmerevm-testnet"
|
||||
} as const satisfies Chain;
|
||||
@@ -0,0 +1,37 @@
|
||||
import type { Chain } from "../src/types";
|
||||
export default {
|
||||
"name": "Alphabet Mainnet",
|
||||
"chain": "Alphabet Network",
|
||||
"icon": {
|
||||
"url": "ipfs://QmfTeudwVJcu7jzySBcpD9H5ZVK66nPJKRnicxend1bxfq",
|
||||
"width": 500,
|
||||
"height": 500,
|
||||
"format": "svg"
|
||||
},
|
||||
"rpc": [
|
||||
"https://alphabet.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
|
||||
"https://londonpublic.alphabetnetwork.org",
|
||||
"wss://londonpublic.alphabetnetwork.org/ws/",
|
||||
"https://main-rpc.com",
|
||||
"wss://main-rpc.com/ws/"
|
||||
],
|
||||
"faucets": [],
|
||||
"nativeCurrency": {
|
||||
"name": "ALT",
|
||||
"symbol": "ALT",
|
||||
"decimals": 18
|
||||
},
|
||||
"infoURL": "https://alphabetnetwork.org",
|
||||
"shortName": "alphabet",
|
||||
"chainId": 111222333444,
|
||||
"networkId": 111222333444,
|
||||
"explorers": [
|
||||
{
|
||||
"name": "Alphabet Explorer",
|
||||
"url": "https://scan.alphabetnetwork.org",
|
||||
"standard": "EIP3091"
|
||||
}
|
||||
],
|
||||
"testnet": false,
|
||||
"slug": "alphabet"
|
||||
} as const satisfies Chain;
|
||||
@@ -2,6 +2,12 @@ import type { Chain } from "../src/types";
|
||||
export default {
|
||||
"name": "Palm Testnet",
|
||||
"chain": "Palm",
|
||||
"icon": {
|
||||
"url": "ipfs://bafkreihifvvbq6xzviygveivayogqiotdtpjvilu27bgqobduqemzeq7o4",
|
||||
"width": 72,
|
||||
"height": 72,
|
||||
"format": "svg"
|
||||
},
|
||||
"rpc": [
|
||||
"https://palm-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
|
||||
"https://palm-testnet.infura.io/v3/${INFURA_API_KEY}"
|
||||
|
||||
@@ -2,6 +2,12 @@ import type { Chain } from "../src/types";
|
||||
export default {
|
||||
"name": "Palm",
|
||||
"chain": "Palm",
|
||||
"icon": {
|
||||
"url": "ipfs://bafkreihifvvbq6xzviygveivayogqiotdtpjvilu27bgqobduqemzeq7o4",
|
||||
"width": 72,
|
||||
"height": 72,
|
||||
"format": "svg"
|
||||
},
|
||||
"rpc": [
|
||||
"https://palm.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
|
||||
"https://palm-mainnet.infura.io/v3/${INFURA_API_KEY}"
|
||||
|
||||
@@ -0,0 +1,40 @@
|
||||
import type { Chain } from "../src/types";
|
||||
export default {
|
||||
"name": "Symplexia Smart Chain",
|
||||
"chain": "Plexchain",
|
||||
"rpc": [
|
||||
"https://symplexia-smart-chain.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
|
||||
"https://plex-rpc.plexfinance.us"
|
||||
],
|
||||
"faucets": [],
|
||||
"nativeCurrency": {
|
||||
"name": "Plex Native Token",
|
||||
"symbol": "PLEX",
|
||||
"decimals": 18
|
||||
},
|
||||
"infoURL": "https://plexfinance.us/",
|
||||
"shortName": "Plexchain",
|
||||
"chainId": 1149,
|
||||
"networkId": 1149,
|
||||
"icon": {
|
||||
"url": "ipfs://QmcXzfMNSQ7SZzKemNquVoXyG5ergdqCGeLWjRYETGBTUM",
|
||||
"width": 256,
|
||||
"height": 256,
|
||||
"format": "png"
|
||||
},
|
||||
"explorers": [
|
||||
{
|
||||
"name": "Plexchain Explorer",
|
||||
"url": "https://explorer.plexfinance.us",
|
||||
"icon": {
|
||||
"url": "ipfs://QmcXzfMNSQ7SZzKemNquVoXyG5ergdqCGeLWjRYETGBTUM",
|
||||
"width": 256,
|
||||
"height": 256,
|
||||
"format": "png"
|
||||
},
|
||||
"standard": "EIP3091"
|
||||
}
|
||||
],
|
||||
"testnet": false,
|
||||
"slug": "symplexia-smart-chain"
|
||||
} as const satisfies Chain;
|
||||
@@ -3,6 +3,12 @@ export default {
|
||||
"name": "Rikeza Network Testnet",
|
||||
"title": "Rikeza Network Testnet",
|
||||
"chain": "Rikeza",
|
||||
"icon": {
|
||||
"url": "ipfs://QmfJ1Qxpzi6CSLeFeWY1Bwe435CpT5za5WfrLUE7vNzZfy",
|
||||
"width": 512,
|
||||
"height": 512,
|
||||
"format": "png"
|
||||
},
|
||||
"rpc": [
|
||||
"https://rikeza-network-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
|
||||
"https://testnet-rpc.rikscan.com"
|
||||
|
||||
@@ -0,0 +1,37 @@
|
||||
import type { Chain } from "../src/types";
|
||||
export default {
|
||||
"name": "Chaos (SKALE Testnet)",
|
||||
"title": "Chaos Testnet",
|
||||
"chain": "staging-fast-active-bellatrix",
|
||||
"rpc": [
|
||||
"https://chaos-skale-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
|
||||
"https://staging-v3.skalenodes.com/v1/staging-fast-active-bellatrix"
|
||||
],
|
||||
"faucets": [
|
||||
"https://sfuel.skale.network/staging/chaos"
|
||||
],
|
||||
"nativeCurrency": {
|
||||
"name": "sFUEL",
|
||||
"symbol": "sFUEL",
|
||||
"decimals": 18
|
||||
},
|
||||
"infoURL": "https://docs.skale.network/develop/",
|
||||
"shortName": "chaos-tenet",
|
||||
"chainId": 1351057110,
|
||||
"networkId": 1351057110,
|
||||
"explorers": [
|
||||
{
|
||||
"name": "Blockscout",
|
||||
"url": "https://staging-fast-active-bellatrix.explorer.staging-v3.skalenodes.com",
|
||||
"icon": {
|
||||
"url": "ipfs://QmbYYCoU2G4LUfRr9ofGowF3eatfvWv9FiPVhqKndZeqwA",
|
||||
"width": 400,
|
||||
"height": 400,
|
||||
"format": "png"
|
||||
},
|
||||
"standard": "EIP3091"
|
||||
}
|
||||
],
|
||||
"testnet": true,
|
||||
"slug": "chaos-skale-testnet"
|
||||
} as const satisfies Chain;
|
||||
@@ -0,0 +1,40 @@
|
||||
import type { Chain } from "../src/types";
|
||||
export default {
|
||||
"name": "Deamchain Mainnet",
|
||||
"chain": "Deamchain",
|
||||
"icon": {
|
||||
"url": "ipfs://QmXvHWmjfXKdZMSz7x82NR4SjEqigKdJELVHbnzUPkj17F",
|
||||
"width": 512,
|
||||
"height": 512,
|
||||
"format": "svg"
|
||||
},
|
||||
"rpc": [
|
||||
"https://deamchain.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
|
||||
"https://mainnet.deamchain.com"
|
||||
],
|
||||
"faucets": [],
|
||||
"nativeCurrency": {
|
||||
"name": "Deamchain Native Token",
|
||||
"symbol": "DEAM",
|
||||
"decimals": 18
|
||||
},
|
||||
"infoURL": "https://deamchain.com",
|
||||
"shortName": "deam",
|
||||
"chainId": 136,
|
||||
"networkId": 136,
|
||||
"explorers": [
|
||||
{
|
||||
"name": "Deamchain Block Explorer",
|
||||
"url": "https://scan.deamchain.com",
|
||||
"standard": "EIP3091",
|
||||
"icon": {
|
||||
"url": "ipfs://QmXvHWmjfXKdZMSz7x82NR4SjEqigKdJELVHbnzUPkj17F",
|
||||
"width": 512,
|
||||
"height": 512,
|
||||
"format": "svg"
|
||||
}
|
||||
}
|
||||
],
|
||||
"testnet": false,
|
||||
"slug": "deamchain"
|
||||
} as const satisfies Chain;
|
||||
@@ -0,0 +1,34 @@
|
||||
import type { Chain } from "../src/types";
|
||||
export default {
|
||||
"name": "Zafirium Mainnet",
|
||||
"chain": "ZAFIC",
|
||||
"icon": {
|
||||
"url": "ipfs://QmZT1Wq3P4YbgKBSUmCtgbs5ijPF5d91BzaMPh7Aub8d8t",
|
||||
"width": 192,
|
||||
"height": 192,
|
||||
"format": "png"
|
||||
},
|
||||
"rpc": [
|
||||
"https://zafirium.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
|
||||
"https://mainnet.zakumi.io"
|
||||
],
|
||||
"faucets": [],
|
||||
"nativeCurrency": {
|
||||
"name": "Zakumi Chain Native Token",
|
||||
"symbol": "ZAFIC",
|
||||
"decimals": 18
|
||||
},
|
||||
"infoURL": "https://www.zakumi.io",
|
||||
"shortName": "zafic",
|
||||
"chainId": 1369,
|
||||
"networkId": 1369,
|
||||
"explorers": [
|
||||
{
|
||||
"name": "zafirium-explorer",
|
||||
"url": "https://explorer.zakumi.io",
|
||||
"standard": "none"
|
||||
}
|
||||
],
|
||||
"testnet": false,
|
||||
"slug": "zafirium"
|
||||
} as const satisfies Chain;
|
||||
@@ -0,0 +1,47 @@
|
||||
import type { Chain } from "../src/types";
|
||||
export default {
|
||||
"name": "Defi Oracle Meta Mainnet",
|
||||
"chain": "dfiometa",
|
||||
"icon": {
|
||||
"url": "ipfs://QmYrMRnjQJcNkYq9AvZ2FQ9kzYj9szzP4YDmyNA1ybd8xE",
|
||||
"width": 1000,
|
||||
"height": 1043,
|
||||
"format": "png"
|
||||
},
|
||||
"rpc": [
|
||||
"https://defi-oracle-meta.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
|
||||
"https://rpc.public-0138.defi-oracle.io",
|
||||
"wss://rpc.public-0138.defi-oracle.io"
|
||||
],
|
||||
"features": [
|
||||
{
|
||||
"name": "EIP155"
|
||||
},
|
||||
{
|
||||
"name": "EIP1559"
|
||||
}
|
||||
],
|
||||
"faucets": [],
|
||||
"nativeCurrency": {
|
||||
"name": "Ether",
|
||||
"symbol": "ETH",
|
||||
"decimals": 18
|
||||
},
|
||||
"infoURL": "https://defi-oracle.io/",
|
||||
"shortName": "dfio-meta-main",
|
||||
"chainId": 138,
|
||||
"networkId": 1,
|
||||
"slip44": 60,
|
||||
"ens": {
|
||||
"registry": "0x57f1887a8BF19b14fC0dF6Fd9B2acc9Af147eA85"
|
||||
},
|
||||
"explorers": [
|
||||
{
|
||||
"name": "Quorum Explorer",
|
||||
"url": "https://public-0138.defi-oracle.io",
|
||||
"standard": "none"
|
||||
}
|
||||
],
|
||||
"testnet": false,
|
||||
"slug": "defi-oracle-meta"
|
||||
} as const satisfies Chain;
|
||||
@@ -0,0 +1,34 @@
|
||||
import type { Chain } from "../src/types";
|
||||
export default {
|
||||
"name": "ICPlaza Mainnet",
|
||||
"chain": "ICPlaza",
|
||||
"icon": {
|
||||
"url": "ipfs://QmQpKKwpqrx77VA4SJLEWhuv9eLFMcVV9uvxRCLb6gdgCX",
|
||||
"width": 847,
|
||||
"height": 906,
|
||||
"format": "png"
|
||||
},
|
||||
"rpc": [
|
||||
"https://icplaza.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
|
||||
"https://rpcmainnet.ic-plaza.org/"
|
||||
],
|
||||
"faucets": [],
|
||||
"nativeCurrency": {
|
||||
"name": "ict",
|
||||
"symbol": "ict",
|
||||
"decimals": 18
|
||||
},
|
||||
"infoURL": "https://docs.ic-plaza.org/",
|
||||
"shortName": "ICPlaza",
|
||||
"chainId": 142857,
|
||||
"networkId": 142857,
|
||||
"explorers": [
|
||||
{
|
||||
"name": "ICPlaza",
|
||||
"url": "https://browsemainnet.ic-plaza.org/index",
|
||||
"standard": "none"
|
||||
}
|
||||
],
|
||||
"testnet": false,
|
||||
"slug": "icplaza"
|
||||
} as const satisfies Chain;
|
||||
@@ -3,6 +3,12 @@ export default {
|
||||
"name": "Rikeza Network Mainnet",
|
||||
"title": "Rikeza Network Mainnet",
|
||||
"chain": "Rikeza",
|
||||
"icon": {
|
||||
"url": "ipfs://QmfJ1Qxpzi6CSLeFeWY1Bwe435CpT5za5WfrLUE7vNzZfy",
|
||||
"width": 512,
|
||||
"height": 512,
|
||||
"format": "png"
|
||||
},
|
||||
"rpc": [
|
||||
"https://rikeza-network.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
|
||||
"https://rpc.rikscan.com"
|
||||
|
||||
@@ -0,0 +1,42 @@
|
||||
import type { Chain } from "../src/types";
|
||||
export default {
|
||||
"name": "Six Protocol Testnet",
|
||||
"chain": "FIVENET",
|
||||
"icon": {
|
||||
"url": "ipfs://QmP93z696v8Hetu13peY2oEHDXq8Bj5CqaDRwpVkpnM15A",
|
||||
"width": 512,
|
||||
"height": 512,
|
||||
"format": "png"
|
||||
},
|
||||
"rpc": [
|
||||
"https://six-protocol-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
|
||||
"https://rpc-evm.fivenet.sixprotocol.net"
|
||||
],
|
||||
"faucets": [
|
||||
"https://faucet.sixprotocol.net"
|
||||
],
|
||||
"nativeCurrency": {
|
||||
"name": "SIX testnet evm token",
|
||||
"symbol": "tSIX",
|
||||
"decimals": 18
|
||||
},
|
||||
"infoURL": "https://six.network/",
|
||||
"shortName": "sixt",
|
||||
"chainId": 150,
|
||||
"networkId": 150,
|
||||
"explorers": [
|
||||
{
|
||||
"name": "SIX Scan fivenet",
|
||||
"url": "https://sixscan.io/fivenet",
|
||||
"standard": "none",
|
||||
"icon": {
|
||||
"url": "ipfs://QmP93z696v8Hetu13peY2oEHDXq8Bj5CqaDRwpVkpnM15A",
|
||||
"width": 512,
|
||||
"height": 512,
|
||||
"format": "png"
|
||||
}
|
||||
}
|
||||
],
|
||||
"testnet": true,
|
||||
"slug": "six-protocol-testnet"
|
||||
} as const satisfies Chain;
|
||||
@@ -0,0 +1,43 @@
|
||||
import type { Chain } from "../src/types";
|
||||
export default {
|
||||
"name": "EOS EVM Network Testnet",
|
||||
"chain": "EOS",
|
||||
"icon": {
|
||||
"url": "ipfs://QmXkK5D5GWizvY1FmL6pV8cYLAbhehKETubktCgh6qDJZb",
|
||||
"width": 500,
|
||||
"height": 750,
|
||||
"format": "png"
|
||||
},
|
||||
"rpc": [
|
||||
"https://eos-evm-network-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
|
||||
"https://api.testnet.evm.eosnetwork.com"
|
||||
],
|
||||
"faucets": [],
|
||||
"nativeCurrency": {
|
||||
"name": "EOS",
|
||||
"symbol": "EOS",
|
||||
"decimals": 18
|
||||
},
|
||||
"infoURL": "https://eosnetwork.com/eos-evm",
|
||||
"shortName": "eos-testnet",
|
||||
"chainId": 15557,
|
||||
"networkId": 15557,
|
||||
"explorers": [
|
||||
{
|
||||
"name": "EOS EVM Explorer",
|
||||
"url": "https://explorer.testnet.evm.eosnetwork.com",
|
||||
"standard": "EIP3091"
|
||||
}
|
||||
],
|
||||
"parent": {
|
||||
"type": "L2",
|
||||
"chain": "eip155-1",
|
||||
"bridges": [
|
||||
{
|
||||
"url": "https://bridge.testnet.evm.eosnetwork.com"
|
||||
}
|
||||
]
|
||||
},
|
||||
"testnet": true,
|
||||
"slug": "eos-evm-network-testnet"
|
||||
} as const satisfies Chain;
|
||||
@@ -0,0 +1,42 @@
|
||||
import type { Chain } from "../src/types";
|
||||
export default {
|
||||
"name": "OEBlock Testnet",
|
||||
"chain": "OEBt",
|
||||
"features": [
|
||||
{
|
||||
"name": "EIP155"
|
||||
},
|
||||
{
|
||||
"name": "EIP1559"
|
||||
}
|
||||
],
|
||||
"rpc": [
|
||||
"https://oeblock-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
|
||||
"https://testnet-rpc.oeblock.com"
|
||||
],
|
||||
"faucets": [],
|
||||
"nativeCurrency": {
|
||||
"name": "OEBlock",
|
||||
"symbol": "OEB",
|
||||
"decimals": 18
|
||||
},
|
||||
"infoURL": "https://www.oeblock.com/",
|
||||
"shortName": "obe",
|
||||
"chainId": 156,
|
||||
"networkId": 156,
|
||||
"icon": {
|
||||
"url": "ipfs://QmdoQUfYqtkWMfjtoPv2KWDY4MxDDSsyWgwXtCx6jfkezz",
|
||||
"width": 155,
|
||||
"height": 177,
|
||||
"format": "png"
|
||||
},
|
||||
"explorers": [
|
||||
{
|
||||
"name": "OEScan explorer",
|
||||
"url": "https://testnet.oescan.io",
|
||||
"standard": "EIP3091"
|
||||
}
|
||||
],
|
||||
"testnet": true,
|
||||
"slug": "oeblock-testnet"
|
||||
} as const satisfies Chain;
|
||||
@@ -0,0 +1,51 @@
|
||||
import type { Chain } from "../src/types";
|
||||
export default {
|
||||
"name": "Horizen Gobi Testnet",
|
||||
"shortName": "Gobi",
|
||||
"chain": "Gobi",
|
||||
"icon": {
|
||||
"url": "ipfs://QmSFMBk3rMyu45Sy9KQHjgArFj4HdywANNYrSosLMUdcti",
|
||||
"width": 1213,
|
||||
"height": 1213,
|
||||
"format": "png"
|
||||
},
|
||||
"rpc": [
|
||||
"https://horizen-gobi-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
|
||||
"https://gobi-testnet.horizenlabs.io/ethv1"
|
||||
],
|
||||
"features": [
|
||||
{
|
||||
"name": "EIP155"
|
||||
},
|
||||
{
|
||||
"name": "EIP1559"
|
||||
}
|
||||
],
|
||||
"faucets": [
|
||||
"https://faucet.horizen.io"
|
||||
],
|
||||
"nativeCurrency": {
|
||||
"name": "Testnet Zen",
|
||||
"symbol": "tZEN",
|
||||
"decimals": 18
|
||||
},
|
||||
"infoURL": "https://horizen.io/",
|
||||
"chainId": 1663,
|
||||
"networkId": 1663,
|
||||
"slip44": 121,
|
||||
"explorers": [
|
||||
{
|
||||
"name": "Gobi Testnet Block Explorer",
|
||||
"url": "https://gobi-explorer.horizen.io",
|
||||
"icon": {
|
||||
"url": "ipfs://QmSFMBk3rMyu45Sy9KQHjgArFj4HdywANNYrSosLMUdcti",
|
||||
"width": 1213,
|
||||
"height": 1213,
|
||||
"format": "png"
|
||||
},
|
||||
"standard": "EIP3091"
|
||||
}
|
||||
],
|
||||
"testnet": true,
|
||||
"slug": "horizen-gobi-testnet"
|
||||
} as const satisfies Chain;
|
||||
@@ -0,0 +1,48 @@
|
||||
import type { Chain } from "../src/types";
|
||||
export default {
|
||||
"name": "IRIShub Testnet",
|
||||
"chain": "IRIShub",
|
||||
"rpc": [
|
||||
"https://irishub-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
|
||||
"http://34.80.202.172:8545"
|
||||
],
|
||||
"features": [
|
||||
{
|
||||
"name": "EIP155"
|
||||
},
|
||||
{
|
||||
"name": "EIP1559"
|
||||
}
|
||||
],
|
||||
"faucets": [],
|
||||
"nativeCurrency": {
|
||||
"name": "Eris",
|
||||
"symbol": "ERIS",
|
||||
"decimals": 18
|
||||
},
|
||||
"infoURL": "https://www.irisnet.org",
|
||||
"shortName": "nyancat",
|
||||
"chainId": 16688,
|
||||
"networkId": 16688,
|
||||
"icon": {
|
||||
"url": "ipfs://QmRaSx7AX1VDgcqjwLgSDP4WZmKBHPdHhbjkcEEXPA2Fnc",
|
||||
"width": 1062,
|
||||
"height": 822,
|
||||
"format": "png"
|
||||
},
|
||||
"explorers": [
|
||||
{
|
||||
"name": "IRISHub Testnet Cosmos Explorer (IOBScan)",
|
||||
"url": "https://nyancat.iobscan.io",
|
||||
"standard": "none",
|
||||
"icon": {
|
||||
"url": "ipfs://QmRaSx7AX1VDgcqjwLgSDP4WZmKBHPdHhbjkcEEXPA2Fnc",
|
||||
"width": 1062,
|
||||
"height": 822,
|
||||
"format": "png"
|
||||
}
|
||||
}
|
||||
],
|
||||
"testnet": true,
|
||||
"slug": "irishub-testnet"
|
||||
} as const satisfies Chain;
|
||||
@@ -14,7 +14,7 @@ export default {
|
||||
},
|
||||
"features": [],
|
||||
"infoURL": "https://hashpalette.com/",
|
||||
"shortName": "PaletteChain",
|
||||
"shortName": "PCM",
|
||||
"chainId": 1718,
|
||||
"networkId": 1718,
|
||||
"icon": {
|
||||
|
||||
@@ -0,0 +1,41 @@
|
||||
import type { Chain } from "../src/types";
|
||||
export default {
|
||||
"name": "Palette Chain Testnet",
|
||||
"chain": "PLT",
|
||||
"rpc": [
|
||||
"https://palette-chain-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
|
||||
"https://palette-opennet.com:22000"
|
||||
],
|
||||
"faucets": [],
|
||||
"nativeCurrency": {
|
||||
"name": "Palette Token",
|
||||
"symbol": "PLT",
|
||||
"decimals": 18
|
||||
},
|
||||
"features": [],
|
||||
"infoURL": "https://hashpalette.com/",
|
||||
"shortName": "PCT",
|
||||
"chainId": 17180,
|
||||
"networkId": 17180,
|
||||
"icon": {
|
||||
"url": "ipfs://QmPCEGZD1p1keTT2YfPp725azx1r9Ci41hejeUuGL2whFA",
|
||||
"width": 800,
|
||||
"height": 800,
|
||||
"format": "png"
|
||||
},
|
||||
"explorers": [
|
||||
{
|
||||
"name": "Palettescan",
|
||||
"url": "https://testnet.palettescan.com",
|
||||
"icon": {
|
||||
"url": "ipfs://QmPCEGZD1p1keTT2YfPp725azx1r9Ci41hejeUuGL2whFA",
|
||||
"width": 800,
|
||||
"height": 800,
|
||||
"format": "png"
|
||||
},
|
||||
"standard": "none"
|
||||
}
|
||||
],
|
||||
"testnet": true,
|
||||
"slug": "palette-chain-testnet"
|
||||
} as const satisfies Chain;
|
||||
@@ -0,0 +1,42 @@
|
||||
import type { Chain } from "../src/types";
|
||||
export default {
|
||||
"name": "PartyChain",
|
||||
"chain": "mainnet",
|
||||
"rpc": [
|
||||
"https://partychain.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
|
||||
"https://tea.mining4people.com/rpc",
|
||||
"http://172.104.194.36:8545"
|
||||
],
|
||||
"faucets": [],
|
||||
"nativeCurrency": {
|
||||
"name": "Grams",
|
||||
"symbol": "GRAMS",
|
||||
"decimals": 18
|
||||
},
|
||||
"infoURL": "TeaPartyCrypto.com",
|
||||
"shortName": "TeaParty",
|
||||
"chainId": 1773,
|
||||
"networkId": 1773,
|
||||
"icon": {
|
||||
"url": "ipfs://QmerDBFoXvgev2xx9U71gAaAK4CtxaaQVaAPf9Qi6UF9MS",
|
||||
"width": 400,
|
||||
"height": 400,
|
||||
"format": "jpg"
|
||||
},
|
||||
"status": "incubating",
|
||||
"explorers": [
|
||||
{
|
||||
"name": "PartyExplorer",
|
||||
"url": "https://partyexplorer.co",
|
||||
"icon": {
|
||||
"url": "ipfs://QmerDBFoXvgev2xx9U71gAaAK4CtxaaQVaAPf9Qi6UF9MS",
|
||||
"width": 400,
|
||||
"height": 400,
|
||||
"format": "jpg"
|
||||
},
|
||||
"standard": "EIP3091"
|
||||
}
|
||||
],
|
||||
"testnet": false,
|
||||
"slug": "partychain"
|
||||
} as const satisfies Chain;
|
||||
@@ -0,0 +1,46 @@
|
||||
import type { Chain } from "../src/types";
|
||||
export default {
|
||||
"name": "EOS EVM Network",
|
||||
"chain": "EOS",
|
||||
"icon": {
|
||||
"url": "ipfs://QmXkK5D5GWizvY1FmL6pV8cYLAbhehKETubktCgh6qDJZb",
|
||||
"width": 500,
|
||||
"height": 750,
|
||||
"format": "png"
|
||||
},
|
||||
"rpc": [
|
||||
"https://eos-evm-network.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
|
||||
"https://api.evm.eosnetwork.com"
|
||||
],
|
||||
"faucets": [],
|
||||
"nativeCurrency": {
|
||||
"name": "EOS",
|
||||
"symbol": "EOS",
|
||||
"decimals": 18
|
||||
},
|
||||
"infoURL": "https://eosnetwork.com/eos-evm",
|
||||
"shortName": "eos",
|
||||
"chainId": 17777,
|
||||
"networkId": 17777,
|
||||
"explorers": [
|
||||
{
|
||||
"name": "EOS EVM Explorer",
|
||||
"url": "https://explorer.evm.eosnetwork.com",
|
||||
"standard": "EIP3091"
|
||||
}
|
||||
],
|
||||
"parent": {
|
||||
"type": "L2",
|
||||
"chain": "eip155-1",
|
||||
"bridges": [
|
||||
{
|
||||
"url": "https://bridge.evm.eosnetwork.com"
|
||||
},
|
||||
{
|
||||
"url": "https://app.multichain.org"
|
||||
}
|
||||
]
|
||||
},
|
||||
"testnet": false,
|
||||
"slug": "eos-evm-network"
|
||||
} as const satisfies Chain;
|
||||
@@ -16,19 +16,25 @@ export default {
|
||||
"shortName": "GTH",
|
||||
"chainId": 192837465,
|
||||
"networkId": 192837465,
|
||||
"explorers": [
|
||||
{
|
||||
"name": "Blockscout",
|
||||
"url": "https://explorer.gather.network",
|
||||
"standard": "none"
|
||||
}
|
||||
],
|
||||
"icon": {
|
||||
"url": "ipfs://Qmc9AJGg9aNhoH56n3deaZeUc8Ty1jDYJsW6Lu6hgSZH4S",
|
||||
"height": 512,
|
||||
"width": 512,
|
||||
"format": "png"
|
||||
},
|
||||
"explorers": [
|
||||
{
|
||||
"name": "Blockscout",
|
||||
"url": "https://explorer.gather.network",
|
||||
"icon": {
|
||||
"url": "ipfs://QmTYR8CeFiNbJ1zJHnE3DK2wEN18r2y2vqSKUcLweUT2Gz",
|
||||
"width": 1080,
|
||||
"height": 1080,
|
||||
"format": "svg"
|
||||
},
|
||||
"standard": "none"
|
||||
}
|
||||
],
|
||||
"testnet": false,
|
||||
"slug": "gather-network"
|
||||
} as const satisfies Chain;
|
||||
@@ -0,0 +1,30 @@
|
||||
import type { Chain } from "../src/types";
|
||||
export default {
|
||||
"name": "Neutrinos TestNet",
|
||||
"chain": "NEUTR",
|
||||
"rpc": [
|
||||
"https://neutrinos-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
|
||||
"https://testnet-rpc.neutrinoschain.com"
|
||||
],
|
||||
"faucets": [
|
||||
"https://neutrinoschain.com/faucet"
|
||||
],
|
||||
"nativeCurrency": {
|
||||
"name": "Neutrinos",
|
||||
"symbol": "NEUTR",
|
||||
"decimals": 18
|
||||
},
|
||||
"infoURL": "https://docs.neutrinoschain.com",
|
||||
"shortName": "NEUTR",
|
||||
"chainId": 197,
|
||||
"networkId": 197,
|
||||
"explorers": [
|
||||
{
|
||||
"name": "blockscout",
|
||||
"url": "https://testnet.neutrinoschain.com",
|
||||
"standard": "EIP3091"
|
||||
}
|
||||
],
|
||||
"testnet": true,
|
||||
"slug": "neutrinos-testnet"
|
||||
} as const satisfies Chain;
|
||||
@@ -28,7 +28,7 @@ export default {
|
||||
"explorers": [
|
||||
{
|
||||
"name": "edexa-testnet",
|
||||
"url": "https://explorer.edexa.com",
|
||||
"url": "https://explorer.testnet.edexa.com",
|
||||
"standard": "EIP3091"
|
||||
}
|
||||
],
|
||||
|
||||
@@ -5,10 +5,10 @@ export default {
|
||||
"shortName": "Camelark",
|
||||
"chain": "ETHW",
|
||||
"icon": {
|
||||
"url": "ipfs://QmbXDcCWHh8jExE1tAUkUKzXyTb8srpC75ogZq1QYkMMRW",
|
||||
"url": "ipfs://QmeJerrsURFNt2LL7DE7TxeunjrQXiuezdfHyqmsbwX3MZ",
|
||||
"width": 128,
|
||||
"height": 128,
|
||||
"format": "svg"
|
||||
"format": "png"
|
||||
},
|
||||
"networkId": 20001,
|
||||
"nativeCurrency": {
|
||||
|
||||
@@ -0,0 +1,40 @@
|
||||
import type { Chain } from "../src/types";
|
||||
export default {
|
||||
"name": "Metaplayerone Network",
|
||||
"chain": "MP1 Dubai-Testnet",
|
||||
"icon": {
|
||||
"url": "ipfs://QmfJKxmubJrqYWDcR2PnPvmpukxPz4fYDu3hqTaSnpJDxC",
|
||||
"width": 42,
|
||||
"height": 23,
|
||||
"format": "svg"
|
||||
},
|
||||
"rpc": [
|
||||
"https://metaplayerone-network.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
|
||||
"https://rpc-dubai.mp1network.com/"
|
||||
],
|
||||
"faucets": [],
|
||||
"nativeCurrency": {
|
||||
"name": "Metaunit",
|
||||
"symbol": "MEU",
|
||||
"decimals": 18
|
||||
},
|
||||
"infoURL": "https://docs.metaplayer.one/",
|
||||
"shortName": "MEU",
|
||||
"chainId": 2124,
|
||||
"networkId": 2124,
|
||||
"explorers": [
|
||||
{
|
||||
"name": "MP1Scan",
|
||||
"url": "https://dubai.mp1scan.io",
|
||||
"icon": {
|
||||
"url": "ipfs://QmfJKxmubJrqYWDcR2PnPvmpukxPz4fYDu3hqTaSnpJDxC",
|
||||
"width": 42,
|
||||
"height": 23,
|
||||
"format": "svg"
|
||||
},
|
||||
"standard": "EIP3091"
|
||||
}
|
||||
],
|
||||
"testnet": true,
|
||||
"slug": "metaplayerone-network"
|
||||
} as const satisfies Chain;
|
||||
@@ -0,0 +1,47 @@
|
||||
import type { Chain } from "../src/types";
|
||||
export default {
|
||||
"name": "Defi Oracle Meta Testnet",
|
||||
"chain": "dfiometatest",
|
||||
"icon": {
|
||||
"url": "ipfs://QmYrMRnjQJcNkYq9AvZ2FQ9kzYj9szzP4YDmyNA1ybd8xE",
|
||||
"width": 1000,
|
||||
"height": 1043,
|
||||
"format": "png"
|
||||
},
|
||||
"rpc": [
|
||||
"https://defi-oracle-meta-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
|
||||
"https://rpc.public-2138.defi-oracle.io",
|
||||
"wss://rpc.public-2138.defi-oracle.io"
|
||||
],
|
||||
"features": [
|
||||
{
|
||||
"name": "EIP155"
|
||||
},
|
||||
{
|
||||
"name": "EIP1559"
|
||||
}
|
||||
],
|
||||
"faucets": [],
|
||||
"nativeCurrency": {
|
||||
"name": "testEther",
|
||||
"symbol": "tETH",
|
||||
"decimals": 18
|
||||
},
|
||||
"infoURL": "https://defi-oracle.io/",
|
||||
"shortName": "dfio-meta-test",
|
||||
"chainId": 2138,
|
||||
"networkId": 21,
|
||||
"slip44": 60,
|
||||
"ens": {
|
||||
"registry": "0x57f1887a8BF19b14fC0dF6Fd9B2acc9Af147eA85"
|
||||
},
|
||||
"explorers": [
|
||||
{
|
||||
"name": "Quorum Explorer",
|
||||
"url": "https://public-2138.defi-oracle.io",
|
||||
"standard": "none"
|
||||
}
|
||||
],
|
||||
"testnet": true,
|
||||
"slug": "defi-oracle-meta-testnet"
|
||||
} as const satisfies Chain;
|
||||
@@ -9,11 +9,11 @@ export default {
|
||||
"faucets": [],
|
||||
"nativeCurrency": {
|
||||
"name": "Bitcoin",
|
||||
"symbol": "eBTC",
|
||||
"symbol": "BTC",
|
||||
"decimals": 18
|
||||
},
|
||||
"infoURL": "https://bitcoinevm.com",
|
||||
"shortName": "eBTC",
|
||||
"shortName": "BTC",
|
||||
"chainId": 2203,
|
||||
"networkId": 2203,
|
||||
"icon": {
|
||||
|
||||
@@ -0,0 +1,30 @@
|
||||
import type { Chain } from "../src/types";
|
||||
export default {
|
||||
"name": "Kanazawa",
|
||||
"title": "Meld Testnet Kanazawa",
|
||||
"chain": "Kanazawa",
|
||||
"rpc": [
|
||||
"https://kanazawa.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
|
||||
"https://rpc-kanazawa.meldlabs.dev/ext/bc/2Ci7VYrUd4fTBqGA5D2HA6UPHzQ4LQyr8rZQww9MGSv9rNkRzn/rpc"
|
||||
],
|
||||
"faucets": [],
|
||||
"features": [],
|
||||
"nativeCurrency": {
|
||||
"name": "gMeld",
|
||||
"symbol": "gMELD",
|
||||
"decimals": 18
|
||||
},
|
||||
"icon": {
|
||||
"url": "ipfs://QmRhB4AbjDrhvwfSAQi2JvKirFiDWxzJvKEvG8S8AdDdED",
|
||||
"width": 4000,
|
||||
"height": 4000,
|
||||
"format": "png"
|
||||
},
|
||||
"infoURL": "https://meld.com",
|
||||
"shortName": "kanazawa",
|
||||
"chainId": 222000222,
|
||||
"networkId": 222000222,
|
||||
"explorers": [],
|
||||
"testnet": true,
|
||||
"slug": "kanazawa"
|
||||
} as const satisfies Chain;
|
||||
@@ -0,0 +1,34 @@
|
||||
import type { Chain } from "../src/types";
|
||||
export default {
|
||||
"name": "Taf ECO Chain Mainnet",
|
||||
"chain": "Taf ECO Chain",
|
||||
"icon": {
|
||||
"url": "ipfs://bafkreigpxhu7glccsislhjqpl5fnsfmj2io4cy33blhky642uiuyojossy",
|
||||
"width": 400,
|
||||
"height": 400,
|
||||
"format": "png"
|
||||
},
|
||||
"rpc": [
|
||||
"https://taf-eco-chain.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
|
||||
"https://mainnet.tafchain.com/v1"
|
||||
],
|
||||
"faucets": [],
|
||||
"nativeCurrency": {
|
||||
"name": "Taf ECO Chain Mainnet",
|
||||
"symbol": "TAFECO",
|
||||
"decimals": 18
|
||||
},
|
||||
"infoURL": "https://www.tafchain.com",
|
||||
"shortName": "TAFECO",
|
||||
"chainId": 224168,
|
||||
"networkId": 224168,
|
||||
"explorers": [
|
||||
{
|
||||
"name": "Taf ECO Chain Mainnet",
|
||||
"url": "https://ecoscan.tafchain.com",
|
||||
"standard": "EIP3091"
|
||||
}
|
||||
],
|
||||
"testnet": false,
|
||||
"slug": "taf-eco-chain"
|
||||
} as const satisfies Chain;
|
||||
@@ -0,0 +1,29 @@
|
||||
import type { Chain } from "../src/types";
|
||||
export default {
|
||||
"name": "SwapDEX",
|
||||
"chain": "SDX",
|
||||
"rpc": [
|
||||
"https://swapdex.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
|
||||
"https://rpc.swapdex.network",
|
||||
"wss://ss.swapdex.network"
|
||||
],
|
||||
"faucets": [],
|
||||
"nativeCurrency": {
|
||||
"name": "SwapDEX",
|
||||
"symbol": "SDX",
|
||||
"decimals": 18
|
||||
},
|
||||
"infoURL": "https://swapdex.network/",
|
||||
"shortName": "SDX",
|
||||
"chainId": 230,
|
||||
"networkId": 230,
|
||||
"explorers": [
|
||||
{
|
||||
"name": "SwapDEX",
|
||||
"url": "https://evm.swapdex.network",
|
||||
"standard": "none"
|
||||
}
|
||||
],
|
||||
"testnet": false,
|
||||
"slug": "swapdex"
|
||||
} as const satisfies Chain;
|
||||
@@ -0,0 +1,50 @@
|
||||
import type { Chain } from "../src/types";
|
||||
export default {
|
||||
"name": "Kroma Sepolia",
|
||||
"title": "Kroma Testnet Sepolia",
|
||||
"chainId": 2357,
|
||||
"shortName": "kroma-sepolia",
|
||||
"chain": "ETH",
|
||||
"networkId": 2357,
|
||||
"nativeCurrency": {
|
||||
"name": "Sepolia Ether",
|
||||
"symbol": "ETH",
|
||||
"decimals": 18
|
||||
},
|
||||
"rpc": [
|
||||
"https://kroma-sepolia.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
|
||||
"https://api.sepolia.kroma.network"
|
||||
],
|
||||
"faucets": [],
|
||||
"infoURL": "https://kroma.network",
|
||||
"icon": {
|
||||
"url": "ipfs://QmcYafk2je5rMqgnFPDZJTaLi6dgFgq96vmX2Li6DX441B",
|
||||
"width": 320,
|
||||
"height": 320,
|
||||
"format": "svg"
|
||||
},
|
||||
"explorers": [
|
||||
{
|
||||
"name": "blockscout",
|
||||
"url": "https://blockscout.sepolia.kroma.network",
|
||||
"icon": {
|
||||
"url": "ipfs://QmcYafk2je5rMqgnFPDZJTaLi6dgFgq96vmX2Li6DX441B",
|
||||
"width": 320,
|
||||
"height": 320,
|
||||
"format": "svg"
|
||||
},
|
||||
"standard": "EIP3091"
|
||||
}
|
||||
],
|
||||
"parent": {
|
||||
"type": "L2",
|
||||
"chain": "eip155-11155111",
|
||||
"bridges": [
|
||||
{
|
||||
"url": "https://kroma.network/bridge"
|
||||
}
|
||||
]
|
||||
},
|
||||
"testnet": true,
|
||||
"slug": "kroma-sepolia"
|
||||
} as const satisfies Chain;
|
||||
@@ -0,0 +1,42 @@
|
||||
import type { Chain } from "../src/types";
|
||||
export default {
|
||||
"name": "Deamchain Testnet",
|
||||
"chain": "Deamchain",
|
||||
"icon": {
|
||||
"url": "ipfs://QmXvHWmjfXKdZMSz7x82NR4SjEqigKdJELVHbnzUPkj17F",
|
||||
"width": 512,
|
||||
"height": 512,
|
||||
"format": "svg"
|
||||
},
|
||||
"rpc": [
|
||||
"https://deamchain-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
|
||||
"https://testnet.deamchain.com"
|
||||
],
|
||||
"faucets": [
|
||||
"https://faucet.deamchain.com"
|
||||
],
|
||||
"nativeCurrency": {
|
||||
"name": "Deamchain Native Token",
|
||||
"symbol": "DEAM",
|
||||
"decimals": 18
|
||||
},
|
||||
"infoURL": "https://deamchain.com",
|
||||
"shortName": "deamtest",
|
||||
"chainId": 236,
|
||||
"networkId": 236,
|
||||
"explorers": [
|
||||
{
|
||||
"name": "Deamchain Testnet Explorer",
|
||||
"url": "https://testnet-scan.deamchain.com",
|
||||
"standard": "EIP3091",
|
||||
"icon": {
|
||||
"url": "ipfs://QmXvHWmjfXKdZMSz7x82NR4SjEqigKdJELVHbnzUPkj17F",
|
||||
"width": 512,
|
||||
"height": 512,
|
||||
"format": "svg"
|
||||
}
|
||||
}
|
||||
],
|
||||
"testnet": true,
|
||||
"slug": "deamchain-testnet"
|
||||
} as const satisfies Chain;
|
||||
@@ -0,0 +1,40 @@
|
||||
import type { Chain } from "../src/types";
|
||||
export default {
|
||||
"name": "Neonlink Mainnet",
|
||||
"chain": "Neonlink",
|
||||
"rpc": [
|
||||
"https://neonlink.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
|
||||
"https://mainnet.neonlink.io"
|
||||
],
|
||||
"faucets": [],
|
||||
"nativeCurrency": {
|
||||
"name": "Neonlink Native Token",
|
||||
"symbol": "NEON",
|
||||
"decimals": 18
|
||||
},
|
||||
"infoURL": "https://neonlink.io",
|
||||
"shortName": "neon",
|
||||
"chainId": 259,
|
||||
"networkId": 259,
|
||||
"icon": {
|
||||
"url": "ipfs://QmX3hBv8WyvVfYjh1gmgDfJCpJBvKk4TYG9wFX9sC8WAjz",
|
||||
"width": 512,
|
||||
"height": 512,
|
||||
"format": "svg"
|
||||
},
|
||||
"explorers": [
|
||||
{
|
||||
"name": "Neon Blockchain Explorer",
|
||||
"url": "https://scan.neonlink.io",
|
||||
"standard": "EIP3091",
|
||||
"icon": {
|
||||
"url": "ipfs://QmX3hBv8WyvVfYjh1gmgDfJCpJBvKk4TYG9wFX9sC8WAjz",
|
||||
"width": 512,
|
||||
"height": 512,
|
||||
"format": "svg"
|
||||
}
|
||||
}
|
||||
],
|
||||
"testnet": false,
|
||||
"slug": "neonlink"
|
||||
} as const satisfies Chain;
|
||||
@@ -0,0 +1,38 @@
|
||||
import type { Chain } from "../src/types";
|
||||
export default {
|
||||
"name": "Ferrum Testnet",
|
||||
"chain": "tFRM",
|
||||
"rpc": [
|
||||
"https://ferrum-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
|
||||
"http://testnet.dev.svcs.ferrumnetwork.io:9933"
|
||||
],
|
||||
"faucets": [
|
||||
"https://testnet.faucet.ferrumnetwork.io"
|
||||
],
|
||||
"nativeCurrency": {
|
||||
"name": "Ferrum",
|
||||
"symbol": "tFRM",
|
||||
"decimals": 18
|
||||
},
|
||||
"features": [
|
||||
{
|
||||
"name": "EIP155"
|
||||
},
|
||||
{
|
||||
"name": "EIP1559"
|
||||
}
|
||||
],
|
||||
"infoURL": "https://ferrum.network",
|
||||
"shortName": "frm",
|
||||
"chainId": 26026,
|
||||
"networkId": 26026,
|
||||
"explorers": [
|
||||
{
|
||||
"name": "polkadotjs",
|
||||
"url": "https://polkadot.js.org/apps/?rpc=wss%3A%2F%2Ftestnet.dev.svcs.ferrumnetwork.io#/explorer",
|
||||
"standard": "none"
|
||||
}
|
||||
],
|
||||
"testnet": true,
|
||||
"slug": "ferrum-testnet"
|
||||
} as const satisfies Chain;
|
||||
@@ -0,0 +1,34 @@
|
||||
import type { Chain } from "../src/types";
|
||||
export default {
|
||||
"name": "Zilliqa EVM",
|
||||
"chain": "ZIL",
|
||||
"rpc": [
|
||||
"https://zilliqa-evm.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
|
||||
"https://api.zilliqa.com"
|
||||
],
|
||||
"faucets": [],
|
||||
"nativeCurrency": {
|
||||
"name": "Zilliqa",
|
||||
"symbol": "ZIL",
|
||||
"decimals": 18
|
||||
},
|
||||
"infoURL": "https://www.zilliqa.com/",
|
||||
"shortName": "zil",
|
||||
"chainId": 32769,
|
||||
"networkId": 32769,
|
||||
"icon": {
|
||||
"url": "ipfs://QmTREXNgGtUhSoxFsrkhTe5LUnDBTKL5byaX8kpET6UuKp",
|
||||
"width": 2048,
|
||||
"height": 2048,
|
||||
"format": "png"
|
||||
},
|
||||
"explorers": [
|
||||
{
|
||||
"name": "Zilliqa EVM Explorer",
|
||||
"url": "https://evmx.zilliqa.com",
|
||||
"standard": "none"
|
||||
}
|
||||
],
|
||||
"testnet": false,
|
||||
"slug": "zilliqa-evm"
|
||||
} as const satisfies Chain;
|
||||
@@ -0,0 +1,42 @@
|
||||
import type { Chain } from "../src/types";
|
||||
export default {
|
||||
"name": "TTcoin Smart Chain Mainnet",
|
||||
"chain": "TSC",
|
||||
"icon": {
|
||||
"url": "ipfs://QmS7ipvvyZ16weG1DM7AZbi1v9ixYwU2FjP25Jj5jkLiuf",
|
||||
"width": 512,
|
||||
"height": 512,
|
||||
"format": "png"
|
||||
},
|
||||
"rpc": [
|
||||
"https://ttcoin-smart-chain.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
|
||||
"https://mainnet-rpc.tscscan.com"
|
||||
],
|
||||
"faucets": [
|
||||
"https://faucet.tscscan.com"
|
||||
],
|
||||
"nativeCurrency": {
|
||||
"name": "TTcoin",
|
||||
"symbol": "TC",
|
||||
"decimals": 18
|
||||
},
|
||||
"infoURL": "https://ttcoin.info/",
|
||||
"shortName": "tc",
|
||||
"chainId": 330844,
|
||||
"networkId": 330844,
|
||||
"explorers": [
|
||||
{
|
||||
"name": "TTcoin Smart Chain Explorer",
|
||||
"url": "https://tscscan.com",
|
||||
"standard": "EIP3091",
|
||||
"icon": {
|
||||
"url": "ipfs://QmS7ipvvyZ16weG1DM7AZbi1v9ixYwU2FjP25Jj5jkLiuf",
|
||||
"width": 512,
|
||||
"height": 512,
|
||||
"format": "png"
|
||||
}
|
||||
}
|
||||
],
|
||||
"testnet": false,
|
||||
"slug": "ttcoin-smart-chain"
|
||||
} as const satisfies Chain;
|
||||
@@ -0,0 +1,30 @@
|
||||
import type { Chain } from "../src/types";
|
||||
export default {
|
||||
"name": "Meld",
|
||||
"title": "Meld Mainnet",
|
||||
"chain": "MELD",
|
||||
"rpc": [
|
||||
"https://meld.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
|
||||
"https://network-rpc.meld.com"
|
||||
],
|
||||
"faucets": [],
|
||||
"features": [],
|
||||
"nativeCurrency": {
|
||||
"name": "gMeld",
|
||||
"symbol": "gMELD",
|
||||
"decimals": 18
|
||||
},
|
||||
"icon": {
|
||||
"url": "ipfs://QmRhB4AbjDrhvwfSAQi2JvKirFiDWxzJvKEvG8S8AdDdED",
|
||||
"width": 4000,
|
||||
"height": 4000,
|
||||
"format": "png"
|
||||
},
|
||||
"infoURL": "https://meld.com",
|
||||
"shortName": "meld",
|
||||
"chainId": 333000333,
|
||||
"networkId": 333000333,
|
||||
"explorers": [],
|
||||
"testnet": false,
|
||||
"slug": "meld"
|
||||
} as const satisfies Chain;
|
||||
@@ -18,19 +18,25 @@ export default {
|
||||
"shortName": "tGTH",
|
||||
"chainId": 356256156,
|
||||
"networkId": 356256156,
|
||||
"explorers": [
|
||||
{
|
||||
"name": "Blockscout",
|
||||
"url": "https://testnet-explorer.gather.network",
|
||||
"standard": "none"
|
||||
}
|
||||
],
|
||||
"testnet": true,
|
||||
"icon": {
|
||||
"url": "ipfs://Qmc9AJGg9aNhoH56n3deaZeUc8Ty1jDYJsW6Lu6hgSZH4S",
|
||||
"height": 512,
|
||||
"width": 512,
|
||||
"format": "png"
|
||||
},
|
||||
"explorers": [
|
||||
{
|
||||
"name": "Blockscout",
|
||||
"url": "https://testnet-explorer.gather.network",
|
||||
"icon": {
|
||||
"url": "ipfs://QmTYR8CeFiNbJ1zJHnE3DK2wEN18r2y2vqSKUcLweUT2Gz",
|
||||
"width": 1080,
|
||||
"height": 1080,
|
||||
"format": "svg"
|
||||
},
|
||||
"standard": "none"
|
||||
}
|
||||
],
|
||||
"testnet": true,
|
||||
"slug": "gather-testnet-network"
|
||||
} as const satisfies Chain;
|
||||
@@ -0,0 +1,29 @@
|
||||
import type { Chain } from "../src/types";
|
||||
export default {
|
||||
"name": "Markr Go",
|
||||
"chain": "Unified",
|
||||
"icon": {
|
||||
"url": "ipfs://QmVMBTZVPawyLBD2B5VbG68dfWLfZ1CnB8V59xduBe2kwh",
|
||||
"width": 84,
|
||||
"height": 84,
|
||||
"format": "png"
|
||||
},
|
||||
"rpc": [
|
||||
"https://markr-go.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
|
||||
"https://rpc.markr.io/ext/"
|
||||
],
|
||||
"faucets": [],
|
||||
"nativeCurrency": {
|
||||
"name": "Avalanche",
|
||||
"symbol": "AVAX",
|
||||
"decimals": 18
|
||||
},
|
||||
"infoURL": "https://www.markr.io/",
|
||||
"shortName": "markr-go",
|
||||
"chainId": 431140,
|
||||
"networkId": 431140,
|
||||
"explorers": [],
|
||||
"status": "incubating",
|
||||
"testnet": false,
|
||||
"slug": "markr-go"
|
||||
} as const satisfies Chain;
|
||||
@@ -0,0 +1,36 @@
|
||||
import type { Chain } from "../src/types";
|
||||
export default {
|
||||
"name": "Acria IntelliChain",
|
||||
"chain": "AIC",
|
||||
"rpc": [
|
||||
"https://acria-intellichain.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
|
||||
"https://aic.acria.ai"
|
||||
],
|
||||
"faucets": [],
|
||||
"nativeCurrency": {
|
||||
"name": "ACRIA",
|
||||
"symbol": "ACRIA",
|
||||
"decimals": 18
|
||||
},
|
||||
"features": [
|
||||
{
|
||||
"name": "EIP155"
|
||||
},
|
||||
{
|
||||
"name": "EIP1559"
|
||||
}
|
||||
],
|
||||
"infoURL": "https://acria.ai",
|
||||
"shortName": "aic",
|
||||
"chainId": 47,
|
||||
"networkId": 47,
|
||||
"explorers": [
|
||||
{
|
||||
"name": "Acria IntelliChain-Explorer",
|
||||
"url": "https://explorer.acria.ai",
|
||||
"standard": "EIP3091"
|
||||
}
|
||||
],
|
||||
"testnet": false,
|
||||
"slug": "acria-intellichain"
|
||||
} as const satisfies Chain;
|
||||
@@ -6,7 +6,8 @@ export default {
|
||||
"https://xinfin-xdc-network.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
|
||||
"https://erpc.xinfin.network",
|
||||
"https://rpc.xinfin.network",
|
||||
"https://rpc1.xinfin.network"
|
||||
"https://rpc1.xinfin.network",
|
||||
"https://rpc-xdc.icecreamswap.com"
|
||||
],
|
||||
"faucets": [],
|
||||
"nativeCurrency": {
|
||||
|
||||
@@ -0,0 +1,34 @@
|
||||
import type { Chain } from "../src/types";
|
||||
export default {
|
||||
"name": "MXC Wannsee zkEVM Testnet",
|
||||
"chain": "MXC zkEVM",
|
||||
"icon": {
|
||||
"url": "ipfs://QmdGCthKA11K9kCZJdbTP5WPAyq1wiRZ3REn6KG58MrWaE",
|
||||
"width": 159,
|
||||
"height": 159,
|
||||
"format": "png"
|
||||
},
|
||||
"rpc": [
|
||||
"https://mxc-wannsee-zkevm-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
|
||||
"https://wannsee-rpc.mxc.com"
|
||||
],
|
||||
"faucets": [],
|
||||
"nativeCurrency": {
|
||||
"name": "MXC Wannsee zkEVM Testnet",
|
||||
"symbol": "MXC",
|
||||
"decimals": 18
|
||||
},
|
||||
"infoURL": "https://wannsee.mxc.com/docs/intro",
|
||||
"shortName": "MXC",
|
||||
"chainId": 5167003,
|
||||
"networkId": 5167003,
|
||||
"explorers": [
|
||||
{
|
||||
"name": "MXC Wannsee zkEVM Testnet",
|
||||
"url": "https://wannsee-explorer.mxc.com",
|
||||
"standard": "EIP3091"
|
||||
}
|
||||
],
|
||||
"testnet": true,
|
||||
"slug": "mxc-wannsee-zkevm-testnet"
|
||||
} as const satisfies Chain;
|
||||
@@ -0,0 +1,36 @@
|
||||
import type { Chain } from "../src/types";
|
||||
export default {
|
||||
"name": "SatoshiChain Testnet",
|
||||
"chain": "SATS",
|
||||
"icon": {
|
||||
"url": "ipfs://QmRegpZQBW4o1imYNsW3d27MQjygBSU23Gf6JKje26nvs7",
|
||||
"width": 1251,
|
||||
"height": 1251,
|
||||
"format": "png"
|
||||
},
|
||||
"rpc": [
|
||||
"https://satoshichain-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
|
||||
"https://rpc.satoshichain.io"
|
||||
],
|
||||
"faucets": [
|
||||
"https://faucet.satoshichain.io"
|
||||
],
|
||||
"nativeCurrency": {
|
||||
"name": "SatoshiChain Coin",
|
||||
"symbol": "SATS",
|
||||
"decimals": 18
|
||||
},
|
||||
"infoURL": "https://satoshichain.net",
|
||||
"shortName": "sats",
|
||||
"chainId": 5758,
|
||||
"networkId": 5758,
|
||||
"explorers": [
|
||||
{
|
||||
"name": "SatoshiChain Explorer",
|
||||
"url": "https://satoshiscan.io",
|
||||
"standard": "EIP3091"
|
||||
}
|
||||
],
|
||||
"testnet": true,
|
||||
"slug": "satoshichain-testnet"
|
||||
} as const satisfies Chain;
|
||||
@@ -1,28 +0,0 @@
|
||||
import type { Chain } from "../src/types";
|
||||
export default {
|
||||
"name": "EOS Mainnet",
|
||||
"chain": "EOS",
|
||||
"rpc": [
|
||||
"https://eos.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
|
||||
"https://api.eosargentina.io"
|
||||
],
|
||||
"faucets": [],
|
||||
"nativeCurrency": {
|
||||
"name": "EOS",
|
||||
"symbol": "EOS",
|
||||
"decimals": 18
|
||||
},
|
||||
"infoURL": "https://eoscommunity.org/",
|
||||
"shortName": "EOSMainnet",
|
||||
"chainId": 59,
|
||||
"networkId": 59,
|
||||
"explorers": [
|
||||
{
|
||||
"name": "bloks",
|
||||
"url": "https://bloks.eosargentina.io",
|
||||
"standard": "EIP3091"
|
||||
}
|
||||
],
|
||||
"testnet": false,
|
||||
"slug": "eos"
|
||||
} as const satisfies Chain;
|
||||
@@ -1,17 +1,20 @@
|
||||
import type { Chain } from "../src/types";
|
||||
export default {
|
||||
"name": "Linea Testnet",
|
||||
"title": "Linea Testnet",
|
||||
"title": "Linea Goerli Testnet",
|
||||
"chain": "ETH",
|
||||
"rpc": [
|
||||
"https://linea-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
|
||||
"https://rpc.goerli.linea.build"
|
||||
"https://rpc.goerli.linea.build",
|
||||
"wss://rpc.goerli.linea.build",
|
||||
"https://consensys-zkevm-goerli-prealpha.infura.io/v3/${INFURA_API_KEY}",
|
||||
"wss://consensys-zkevm-goerli-prealpha.infura.io/v3/${INFURA_API_KEY}"
|
||||
],
|
||||
"faucets": [
|
||||
"https://faucetlink.to/goerli"
|
||||
],
|
||||
"nativeCurrency": {
|
||||
"name": "Goerli Ether",
|
||||
"name": "Linea Ether",
|
||||
"symbol": "ETH",
|
||||
"decimals": 18
|
||||
},
|
||||
@@ -20,9 +23,9 @@ export default {
|
||||
"chainId": 59140,
|
||||
"networkId": 59140,
|
||||
"icon": {
|
||||
"url": "ipfs://QmP6rcphqMTeByPxomeYeR5XRPZaFpwGbZxHkGQKyao4Le",
|
||||
"width": 115,
|
||||
"height": 115,
|
||||
"url": "ipfs://QmURjritnHL7a8TwZgsFwp3f272DJmG5paaPtWDZ98QZwH",
|
||||
"width": 97,
|
||||
"height": 102,
|
||||
"format": "svg"
|
||||
},
|
||||
"parent": {
|
||||
@@ -36,13 +39,13 @@ export default {
|
||||
},
|
||||
"explorers": [
|
||||
{
|
||||
"name": "Linea Testnet Explorer",
|
||||
"name": "blockscout",
|
||||
"url": "https://explorer.goerli.linea.build",
|
||||
"standard": "EIP3091",
|
||||
"icon": {
|
||||
"url": "ipfs://QmP6rcphqMTeByPxomeYeR5XRPZaFpwGbZxHkGQKyao4Le",
|
||||
"width": 115,
|
||||
"height": 115,
|
||||
"url": "ipfs://QmURjritnHL7a8TwZgsFwp3f272DJmG5paaPtWDZ98QZwH",
|
||||
"width": 97,
|
||||
"height": 102,
|
||||
"format": "svg"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,22 @@
|
||||
import type { Chain } from "../src/types";
|
||||
export default {
|
||||
"name": "Peerpay",
|
||||
"chain": "P2P",
|
||||
"rpc": [
|
||||
"https://peerpay.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
|
||||
"https://peerpay.su.gy/p2p"
|
||||
],
|
||||
"faucets": [],
|
||||
"nativeCurrency": {
|
||||
"name": "Peerpay",
|
||||
"symbol": "P2P",
|
||||
"decimals": 18
|
||||
},
|
||||
"infoURL": "https://peerpay.su.gy",
|
||||
"shortName": "Peerpay",
|
||||
"chainId": 6502,
|
||||
"networkId": 6502,
|
||||
"explorers": [],
|
||||
"testnet": false,
|
||||
"slug": "peerpay"
|
||||
} as const satisfies Chain;
|
||||
@@ -0,0 +1,48 @@
|
||||
import type { Chain } from "../src/types";
|
||||
export default {
|
||||
"name": "IRIShub",
|
||||
"chain": "IRIShub",
|
||||
"rpc": [
|
||||
"https://irishub.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
|
||||
"https://evmrpc.irishub-1.irisnet.org"
|
||||
],
|
||||
"features": [
|
||||
{
|
||||
"name": "EIP155"
|
||||
},
|
||||
{
|
||||
"name": "EIP1559"
|
||||
}
|
||||
],
|
||||
"faucets": [],
|
||||
"nativeCurrency": {
|
||||
"name": "Eris",
|
||||
"symbol": "ERIS",
|
||||
"decimals": 18
|
||||
},
|
||||
"infoURL": "https://www.irisnet.org",
|
||||
"shortName": "iris",
|
||||
"chainId": 6688,
|
||||
"networkId": 6688,
|
||||
"icon": {
|
||||
"url": "ipfs://QmTKgKs7kJiWDhdjbELE4Y2HVZ36KS4bYkNCbXdsXk66sW",
|
||||
"width": 1062,
|
||||
"height": 1062,
|
||||
"format": "png"
|
||||
},
|
||||
"explorers": [
|
||||
{
|
||||
"name": "IRISHub Cosmos Explorer (IOBScan)",
|
||||
"url": "https://irishub.iobscan.io",
|
||||
"standard": "none",
|
||||
"icon": {
|
||||
"url": "ipfs://QmTKgKs7kJiWDhdjbELE4Y2HVZ36KS4bYkNCbXdsXk66sW",
|
||||
"width": 1062,
|
||||
"height": 1062,
|
||||
"format": "png"
|
||||
}
|
||||
}
|
||||
],
|
||||
"testnet": false,
|
||||
"slug": "irishub"
|
||||
} as const satisfies Chain;
|
||||
@@ -0,0 +1,21 @@
|
||||
import type { Chain } from "../src/types";
|
||||
export default {
|
||||
"name": "Cosmic Chain",
|
||||
"chain": "COSMIC",
|
||||
"rpc": [
|
||||
"https://cosmic-chain.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
|
||||
"http://testnet.cosmicchain.site:3344"
|
||||
],
|
||||
"faucets": [],
|
||||
"nativeCurrency": {
|
||||
"name": "Cosmic Chain",
|
||||
"symbol": "COSMIC",
|
||||
"decimals": 18
|
||||
},
|
||||
"infoURL": "https://cosmicchain.site",
|
||||
"shortName": "Cosmic",
|
||||
"chainId": 67588,
|
||||
"networkId": 3344,
|
||||
"testnet": true,
|
||||
"slug": "cosmic-chain"
|
||||
} as const satisfies Chain;
|
||||
@@ -1,28 +0,0 @@
|
||||
import type { Chain } from "../src/types";
|
||||
export default {
|
||||
"name": "Canto Testnet",
|
||||
"chain": "Canto Tesnet",
|
||||
"rpc": [
|
||||
"https://canto-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
|
||||
"https://eth.plexnode.wtf/"
|
||||
],
|
||||
"faucets": [],
|
||||
"nativeCurrency": {
|
||||
"name": "Canto",
|
||||
"symbol": "CANTO",
|
||||
"decimals": 18
|
||||
},
|
||||
"infoURL": "https://canto.io",
|
||||
"shortName": "tcanto",
|
||||
"chainId": 740,
|
||||
"networkId": 740,
|
||||
"explorers": [
|
||||
{
|
||||
"name": "Canto Tesnet Explorer (Neobase)",
|
||||
"url": "https://testnet-explorer.canto.neobase.one",
|
||||
"standard": "none"
|
||||
}
|
||||
],
|
||||
"testnet": true,
|
||||
"slug": "canto-testnet"
|
||||
} as const satisfies Chain;
|
||||
@@ -0,0 +1,34 @@
|
||||
import type { Chain } from "../src/types";
|
||||
export default {
|
||||
"name": "Adil Chain V2 Mainnet",
|
||||
"chain": "ADIL",
|
||||
"icon": {
|
||||
"url": "ipfs://QmeHNYUx6n8CjUFSLWNT17oAtDYrUq6r8buyvGCUBXCJw6",
|
||||
"width": 500,
|
||||
"height": 500,
|
||||
"format": "png"
|
||||
},
|
||||
"rpc": [
|
||||
"https://adil-chain-v2.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
|
||||
"https://adilchain-rpc.io"
|
||||
],
|
||||
"faucets": [],
|
||||
"nativeCurrency": {
|
||||
"name": "ADIL",
|
||||
"symbol": "ADIL",
|
||||
"decimals": 18
|
||||
},
|
||||
"infoURL": "https://adilchain.io",
|
||||
"shortName": "adil",
|
||||
"chainId": 7576,
|
||||
"networkId": 7576,
|
||||
"explorers": [
|
||||
{
|
||||
"name": "ADIL Mainnet Explorer",
|
||||
"url": "https://adilchain-scan.io",
|
||||
"standard": "EIP3091"
|
||||
}
|
||||
],
|
||||
"testnet": false,
|
||||
"slug": "adil-chain-v2"
|
||||
} as const satisfies Chain;
|
||||
@@ -21,7 +21,7 @@ export default {
|
||||
{
|
||||
"name": "rootnet",
|
||||
"url": "https://explorer.rootnet.live",
|
||||
"standard": "none"
|
||||
"standard": "EIP3091"
|
||||
}
|
||||
],
|
||||
"testnet": false,
|
||||
|
||||
@@ -21,7 +21,7 @@ export default {
|
||||
{
|
||||
"name": "rootnet",
|
||||
"url": "https://explorer.rootnet.cloud",
|
||||
"standard": "none"
|
||||
"standard": "EIP3091"
|
||||
}
|
||||
],
|
||||
"testnet": true,
|
||||
|
||||
@@ -0,0 +1,28 @@
|
||||
import type { Chain } from "../src/types";
|
||||
export default {
|
||||
"name": "Canto Tesnet",
|
||||
"chain": "Canto",
|
||||
"rpc": [
|
||||
"https://canto-tesnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
|
||||
"https://testnet-archive.plexnode.wtf"
|
||||
],
|
||||
"faucets": [],
|
||||
"nativeCurrency": {
|
||||
"name": "Testnet Canto",
|
||||
"symbol": "CANTO",
|
||||
"decimals": 18
|
||||
},
|
||||
"infoURL": "https://canto.io",
|
||||
"shortName": "TestnetCanto",
|
||||
"chainId": 7701,
|
||||
"networkId": 7701,
|
||||
"explorers": [
|
||||
{
|
||||
"name": "Canto Testnet EVM Explorer (Blockscout)",
|
||||
"url": "https://testnet.tuber.build",
|
||||
"standard": "none"
|
||||
}
|
||||
],
|
||||
"testnet": true,
|
||||
"slug": "canto-tesnet"
|
||||
} as const satisfies Chain;
|
||||
@@ -1,6 +1,6 @@
|
||||
import type { Chain } from "../src/types";
|
||||
export default {
|
||||
"name": "Qitmeer Network Mixnext",
|
||||
"name": "Qitmeer Network Mixnet",
|
||||
"chain": "MEER",
|
||||
"rpc": [],
|
||||
"faucets": [],
|
||||
@@ -21,5 +21,5 @@ export default {
|
||||
"networkId": 8132,
|
||||
"status": "incubating",
|
||||
"testnet": false,
|
||||
"slug": "qitmeer-network-mixnext"
|
||||
"slug": "qitmeer-network-mixnet"
|
||||
} as const satisfies Chain;
|
||||
@@ -6,7 +6,7 @@ export default {
|
||||
"faucets": [],
|
||||
"nativeCurrency": {
|
||||
"name": "Amana Testnet",
|
||||
"symbol": "MEER-t",
|
||||
"symbol": "MEER-T",
|
||||
"decimals": 18
|
||||
},
|
||||
"infoURL": "https://github.com/Qitmeer",
|
||||
|
||||
@@ -6,7 +6,7 @@ export default {
|
||||
"faucets": [],
|
||||
"nativeCurrency": {
|
||||
"name": "Amana Mixnet",
|
||||
"symbol": "MEER-m",
|
||||
"symbol": "MEER-M",
|
||||
"decimals": 18
|
||||
},
|
||||
"infoURL": "https://github.com/Qitmeer",
|
||||
|
||||
@@ -6,7 +6,7 @@ export default {
|
||||
"faucets": [],
|
||||
"nativeCurrency": {
|
||||
"name": "Amana Privnet",
|
||||
"symbol": "MEER-p",
|
||||
"symbol": "MEER-P",
|
||||
"decimals": 18
|
||||
},
|
||||
"infoURL": "https://github.com/Qitmeer",
|
||||
|
||||
@@ -6,7 +6,7 @@ export default {
|
||||
"faucets": [],
|
||||
"nativeCurrency": {
|
||||
"name": "Flana Testnet",
|
||||
"symbol": "MEER-t",
|
||||
"symbol": "MEER-T",
|
||||
"decimals": 18
|
||||
},
|
||||
"infoURL": "https://github.com/Qitmeer",
|
||||
|
||||
@@ -6,7 +6,7 @@ export default {
|
||||
"faucets": [],
|
||||
"nativeCurrency": {
|
||||
"name": "Flana Mixnet",
|
||||
"symbol": "MEER-m",
|
||||
"symbol": "MEER-M",
|
||||
"decimals": 18
|
||||
},
|
||||
"infoURL": "https://github.com/Qitmeer",
|
||||
|
||||
@@ -6,7 +6,7 @@ export default {
|
||||
"faucets": [],
|
||||
"nativeCurrency": {
|
||||
"name": "Flana Privnet",
|
||||
"symbol": "MEER-p",
|
||||
"symbol": "MEER-P",
|
||||
"decimals": 18
|
||||
},
|
||||
"infoURL": "https://github.com/Qitmeer",
|
||||
|
||||
@@ -6,7 +6,7 @@ export default {
|
||||
"faucets": [],
|
||||
"nativeCurrency": {
|
||||
"name": "Mizana Testnet",
|
||||
"symbol": "MEER-t",
|
||||
"symbol": "MEER-T",
|
||||
"decimals": 18
|
||||
},
|
||||
"infoURL": "https://github.com/Qitmeer",
|
||||
|
||||
@@ -6,7 +6,7 @@ export default {
|
||||
"faucets": [],
|
||||
"nativeCurrency": {
|
||||
"name": "Mizana Mixnet",
|
||||
"symbol": "MEER-m",
|
||||
"symbol": "MEER-M",
|
||||
"decimals": 18
|
||||
},
|
||||
"infoURL": "https://github.com/Qitmeer",
|
||||
|
||||
@@ -6,7 +6,7 @@ export default {
|
||||
"faucets": [],
|
||||
"nativeCurrency": {
|
||||
"name": "Mizana Privnet",
|
||||
"symbol": "MEER-p",
|
||||
"symbol": "MEER-P",
|
||||
"decimals": 18
|
||||
},
|
||||
"infoURL": "https://github.com/Qitmeer",
|
||||
|
||||
@@ -0,0 +1,40 @@
|
||||
import type { Chain } from "../src/types";
|
||||
export default {
|
||||
"name": "BeOne Chain Mainnet",
|
||||
"chain": "BOC",
|
||||
"icon": {
|
||||
"url": "ipfs://QmbVLQnaMDu86bPyKgCvTGhFBeYwjr15hQnrCcsp1EkAGL",
|
||||
"width": 500,
|
||||
"height": 500,
|
||||
"format": "png"
|
||||
},
|
||||
"rpc": [
|
||||
"https://beone-chain.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
|
||||
"https://dataseed1.beonechain.com",
|
||||
"https://dataseed2.beonechain.com",
|
||||
"https://dataseed-us1.beonechain.com",
|
||||
"https://dataseed-us2.beonechain.com",
|
||||
"https://dataseed-uk1.beonechain.com",
|
||||
"https://dataseed-uk2.beonechain.com"
|
||||
],
|
||||
"faucets": [],
|
||||
"nativeCurrency": {
|
||||
"name": "BeOne Chain Mainnet",
|
||||
"symbol": "BOC",
|
||||
"decimals": 18
|
||||
},
|
||||
"infoURL": "https://beonechain.com",
|
||||
"shortName": "BOC",
|
||||
"chainId": 818,
|
||||
"networkId": 818,
|
||||
"slip44": 8181,
|
||||
"explorers": [
|
||||
{
|
||||
"name": "BeOne Chain Mainnet",
|
||||
"url": "https://beonescan.com",
|
||||
"standard": "EIP3091"
|
||||
}
|
||||
],
|
||||
"testnet": false,
|
||||
"slug": "beone-chain"
|
||||
} as const satisfies Chain;
|
||||
@@ -0,0 +1,28 @@
|
||||
import type { Chain } from "../src/types";
|
||||
export default {
|
||||
"name": "Linqto Devnet",
|
||||
"chain": "LNQ",
|
||||
"rpc": [
|
||||
"https://linqto-devnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
|
||||
"https://linqto-dev.com"
|
||||
],
|
||||
"faucets": [],
|
||||
"nativeCurrency": {
|
||||
"name": "XRP",
|
||||
"symbol": "XRP",
|
||||
"decimals": 18
|
||||
},
|
||||
"infoURL": "https://linqto.com",
|
||||
"shortName": "linqto-devnet",
|
||||
"chainId": 84,
|
||||
"networkId": 84,
|
||||
"explorers": [
|
||||
{
|
||||
"name": "Linqto Devnet Explorer",
|
||||
"url": "https://explorer.linqto-dev.com",
|
||||
"standard": "EIP3091"
|
||||
}
|
||||
],
|
||||
"testnet": false,
|
||||
"slug": "linqto-devnet"
|
||||
} as const satisfies Chain;
|
||||
@@ -0,0 +1,21 @@
|
||||
import type { Chain } from "../src/types";
|
||||
export default {
|
||||
"name": "DecentraBone Layer1 Testnet",
|
||||
"chain": "DBONE",
|
||||
"rpc": [
|
||||
"https://decentrabone-layer1-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
|
||||
"https://layer1test.decentrabone.com"
|
||||
],
|
||||
"faucets": [],
|
||||
"nativeCurrency": {
|
||||
"name": "DecentraBone",
|
||||
"symbol": "DBONE",
|
||||
"decimals": 18
|
||||
},
|
||||
"infoURL": "https://decentrabone.com",
|
||||
"shortName": "DBONE",
|
||||
"chainId": 910,
|
||||
"networkId": 910,
|
||||
"testnet": true,
|
||||
"slug": "decentrabone-layer1-testnet"
|
||||
} as const satisfies Chain;
|
||||
@@ -1,24 +0,0 @@
|
||||
import type { Chain } from "../src/types";
|
||||
export default {
|
||||
"name": "PulseChain Testnet",
|
||||
"shortName": "tpls",
|
||||
"chain": "tPLS",
|
||||
"chainId": 940,
|
||||
"networkId": 940,
|
||||
"infoURL": "https://pulsechain.com/",
|
||||
"rpc": [
|
||||
"https://pulsechain-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
|
||||
"https://rpc.v2.testnet.pulsechain.com/",
|
||||
"wss://rpc.v2.testnet.pulsechain.com/"
|
||||
],
|
||||
"faucets": [
|
||||
"https://faucet.v2.testnet.pulsechain.com/"
|
||||
],
|
||||
"nativeCurrency": {
|
||||
"name": "Test Pulse",
|
||||
"symbol": "tPLS",
|
||||
"decimals": 18
|
||||
},
|
||||
"testnet": true,
|
||||
"slug": "pulsechain-testnet"
|
||||
} as const satisfies Chain;
|
||||
@@ -1,24 +0,0 @@
|
||||
import type { Chain } from "../src/types";
|
||||
export default {
|
||||
"name": "PulseChain Testnet v2b",
|
||||
"shortName": "t2bpls",
|
||||
"chain": "t2bPLS",
|
||||
"chainId": 941,
|
||||
"networkId": 941,
|
||||
"infoURL": "https://pulsechain.com/",
|
||||
"rpc": [
|
||||
"https://pulsechain-testnet-v2b.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
|
||||
"https://rpc.v2b.testnet.pulsechain.com/",
|
||||
"wss://rpc.v2b.testnet.pulsechain.com/"
|
||||
],
|
||||
"faucets": [
|
||||
"https://faucet.v2b.testnet.pulsechain.com/"
|
||||
],
|
||||
"nativeCurrency": {
|
||||
"name": "Test Pulse",
|
||||
"symbol": "tPLS",
|
||||
"decimals": 18
|
||||
},
|
||||
"testnet": true,
|
||||
"slug": "pulsechain-testnet-v2b"
|
||||
} as const satisfies Chain;
|
||||
@@ -0,0 +1,43 @@
|
||||
import type { Chain } from "../src/types";
|
||||
export default {
|
||||
"name": "PulseChain Testnet v4",
|
||||
"shortName": "t4pls",
|
||||
"chain": "t4PLS",
|
||||
"chainId": 943,
|
||||
"networkId": 943,
|
||||
"icon": {
|
||||
"url": "ipfs://Qmckj9B9F3jWDk9bv9HwoPmfjrx2Ju8J2BQSNoPFdYGduj",
|
||||
"width": 433,
|
||||
"height": 402,
|
||||
"format": "png"
|
||||
},
|
||||
"infoURL": "https://pulsechain.com",
|
||||
"rpc": [
|
||||
"https://pulsechain-testnet-v4.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
|
||||
"https://rpc.v4.testnet.pulsechain.com/",
|
||||
"wss://rpc.v4.testnet.pulsechain.com/"
|
||||
],
|
||||
"features": [
|
||||
{
|
||||
"name": "EIP155"
|
||||
},
|
||||
{
|
||||
"name": "EIP1559"
|
||||
}
|
||||
],
|
||||
"faucets": [
|
||||
"https://faucet.v4.testnet.pulsechain.com/"
|
||||
],
|
||||
"ens": {
|
||||
"registry": "0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e"
|
||||
},
|
||||
"status": "incubating",
|
||||
"explorers": [],
|
||||
"nativeCurrency": {
|
||||
"name": "Test Pulse",
|
||||
"symbol": "tPLS",
|
||||
"decimals": 18
|
||||
},
|
||||
"testnet": true,
|
||||
"slug": "pulsechain-testnet-v4"
|
||||
} as const satisfies Chain;
|
||||
@@ -1,28 +0,0 @@
|
||||
import type { Chain } from "../src/types";
|
||||
export default {
|
||||
"name": "CryptoKylin Testnet",
|
||||
"chain": "EOS",
|
||||
"rpc": [
|
||||
"https://cryptokylin-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
|
||||
"https://kylin.eosargentina.io"
|
||||
],
|
||||
"faucets": [],
|
||||
"nativeCurrency": {
|
||||
"name": "EOS",
|
||||
"symbol": "EOS",
|
||||
"decimals": 18
|
||||
},
|
||||
"infoURL": "https://www.cryptokylin.io/",
|
||||
"shortName": "KylinTestnet",
|
||||
"chainId": 95,
|
||||
"networkId": 95,
|
||||
"explorers": [
|
||||
{
|
||||
"name": "eosq",
|
||||
"url": "https://kylin.eosargentina.io",
|
||||
"standard": "EIP3091"
|
||||
}
|
||||
],
|
||||
"testnet": true,
|
||||
"slug": "cryptokylin-testnet"
|
||||
} as const satisfies Chain;
|
||||
@@ -0,0 +1,42 @@
|
||||
import type { Chain } from "../src/types";
|
||||
export default {
|
||||
"name": "Neonlink Testnet",
|
||||
"chain": "Neonlink",
|
||||
"rpc": [
|
||||
"https://neonlink-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
|
||||
"https://testnet.neonlink.io"
|
||||
],
|
||||
"faucets": [
|
||||
"https://faucet.neonlink.io/"
|
||||
],
|
||||
"nativeCurrency": {
|
||||
"name": "Neonlink Native Token",
|
||||
"symbol": "tNEON",
|
||||
"decimals": 18
|
||||
},
|
||||
"infoURL": "https://neonlink.io",
|
||||
"shortName": "testneon",
|
||||
"chainId": 9559,
|
||||
"networkId": 9559,
|
||||
"icon": {
|
||||
"url": "ipfs://QmX3hBv8WyvVfYjh1gmgDfJCpJBvKk4TYG9wFX9sC8WAjz",
|
||||
"width": 512,
|
||||
"height": 512,
|
||||
"format": "svg"
|
||||
},
|
||||
"explorers": [
|
||||
{
|
||||
"name": "Neon Blockchain Explorer",
|
||||
"url": "https://testnet-scan.neonlink.io",
|
||||
"standard": "EIP3091",
|
||||
"icon": {
|
||||
"url": "ipfs://QmX3hBv8WyvVfYjh1gmgDfJCpJBvKk4TYG9wFX9sC8WAjz",
|
||||
"width": 512,
|
||||
"height": 512,
|
||||
"format": "svg"
|
||||
}
|
||||
}
|
||||
],
|
||||
"testnet": true,
|
||||
"slug": "neonlink-testnet"
|
||||
} as const satisfies Chain;
|
||||
@@ -0,0 +1,28 @@
|
||||
import type { Chain } from "../src/types";
|
||||
export default {
|
||||
"name": "Carbon EVM",
|
||||
"chain": "Carbon",
|
||||
"icon": {
|
||||
"url": "ipfs://QmQUHqi1gyuTuKmJQHqt9EyhN1FPmmmLNUK8u93nMGrxAy",
|
||||
"width": 1600,
|
||||
"height": 1600,
|
||||
"format": "png"
|
||||
},
|
||||
"rpc": [
|
||||
"https://carbon-evm.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
|
||||
"https://evm-api.carbon.network/"
|
||||
],
|
||||
"faucets": [],
|
||||
"nativeCurrency": {
|
||||
"name": "swth",
|
||||
"symbol": "SWTH",
|
||||
"decimals": 18
|
||||
},
|
||||
"infoURL": "https://carbon.network/",
|
||||
"shortName": "carbon",
|
||||
"chainId": 9790,
|
||||
"networkId": 9790,
|
||||
"explorers": [],
|
||||
"testnet": false,
|
||||
"slug": "carbon-evm"
|
||||
} as const satisfies Chain;
|
||||
@@ -0,0 +1,28 @@
|
||||
import type { Chain } from "../src/types";
|
||||
export default {
|
||||
"name": "Carbon EVM Testnet",
|
||||
"chain": "Carbon",
|
||||
"icon": {
|
||||
"url": "ipfs://QmQUHqi1gyuTuKmJQHqt9EyhN1FPmmmLNUK8u93nMGrxAy",
|
||||
"width": 1600,
|
||||
"height": 1600,
|
||||
"format": "png"
|
||||
},
|
||||
"rpc": [
|
||||
"https://carbon-evm-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
|
||||
"https://test-evm-api.carbon.network/"
|
||||
],
|
||||
"faucets": [],
|
||||
"nativeCurrency": {
|
||||
"name": "swth",
|
||||
"symbol": "SWTH",
|
||||
"decimals": 18
|
||||
},
|
||||
"infoURL": "https://carbon.network/",
|
||||
"shortName": "carbon-testnet",
|
||||
"chainId": 9792,
|
||||
"networkId": 9792,
|
||||
"explorers": [],
|
||||
"testnet": true,
|
||||
"slug": "carbon-evm-testnet"
|
||||
} as const satisfies Chain;
|
||||
@@ -0,0 +1,40 @@
|
||||
import type { Chain } from "../src/types";
|
||||
export default {
|
||||
"name": "Six Protocol",
|
||||
"chain": "SIXNET",
|
||||
"icon": {
|
||||
"url": "ipfs://QmP93z696v8Hetu13peY2oEHDXq8Bj5CqaDRwpVkpnM15A",
|
||||
"width": 512,
|
||||
"height": 512,
|
||||
"format": "png"
|
||||
},
|
||||
"rpc": [
|
||||
"https://six-protocol.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
|
||||
"https://sixnet-rpc-evm.sixprotocol.net"
|
||||
],
|
||||
"faucets": [],
|
||||
"nativeCurrency": {
|
||||
"name": "SIX evm token",
|
||||
"symbol": "SIX",
|
||||
"decimals": 18
|
||||
},
|
||||
"infoURL": "https://six.network/",
|
||||
"shortName": "six",
|
||||
"chainId": 98,
|
||||
"networkId": 98,
|
||||
"explorers": [
|
||||
{
|
||||
"name": "SIX Scan",
|
||||
"url": "https://sixscan.io/sixnet",
|
||||
"standard": "none",
|
||||
"icon": {
|
||||
"url": "ipfs://QmP93z696v8Hetu13peY2oEHDXq8Bj5CqaDRwpVkpnM15A",
|
||||
"width": 512,
|
||||
"height": 512,
|
||||
"format": "png"
|
||||
}
|
||||
}
|
||||
],
|
||||
"testnet": false,
|
||||
"slug": "six-protocol"
|
||||
} as const satisfies Chain;
|
||||
@@ -0,0 +1,42 @@
|
||||
import type { Chain } from "../src/types";
|
||||
export default {
|
||||
"name": "5ireChain Thunder",
|
||||
"chain": "5ireChain",
|
||||
"rpc": [
|
||||
"https://5irechain-thunder.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
|
||||
"https://rpc-testnet.5ire.network"
|
||||
],
|
||||
"faucets": [
|
||||
"https://explorer.5ire.network/faucet"
|
||||
],
|
||||
"nativeCurrency": {
|
||||
"name": "5ire Token",
|
||||
"symbol": "5ire",
|
||||
"decimals": 18
|
||||
},
|
||||
"infoURL": "https://5ire.org",
|
||||
"shortName": "5ire",
|
||||
"chainId": 997,
|
||||
"networkId": 997,
|
||||
"icon": {
|
||||
"url": "ipfs://QmaZDNDFLWESH4i3XqwEWfWBb1HPnQSNbDAr74nr2x8QAk",
|
||||
"width": 800,
|
||||
"height": 800,
|
||||
"format": "svg"
|
||||
},
|
||||
"explorers": [
|
||||
{
|
||||
"name": "5ireChain Explorer",
|
||||
"url": "https://explorer.5ire.network",
|
||||
"standard": "none",
|
||||
"icon": {
|
||||
"url": "ipfs://QmaZDNDFLWESH4i3XqwEWfWBb1HPnQSNbDAr74nr2x8QAk",
|
||||
"width": 800,
|
||||
"height": 800,
|
||||
"format": "svg"
|
||||
}
|
||||
}
|
||||
],
|
||||
"testnet": true,
|
||||
"slug": "5irechain-thunder"
|
||||
} as const satisfies Chain;
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@thirdweb-dev/chains",
|
||||
"version": "0.1.10",
|
||||
"version": "0.1.13",
|
||||
"main": "dist/thirdweb-dev-chains.cjs.js",
|
||||
"module": "dist/thirdweb-dev-chains.esm.js",
|
||||
"browser": {
|
||||
|
||||
+2677
-1657
File diff suppressed because one or more lines are too long
@@ -1,5 +1,58 @@
|
||||
# thirdweb
|
||||
|
||||
## 0.10.13
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies [[`d2c7f6d7`](https://github.com/thirdweb-dev/js/commit/d2c7f6d758787fab102ecc0cec16ac74f3c87a1f), [`f12a80a4`](https://github.com/thirdweb-dev/js/commit/f12a80a4758aa91c43084acedb212de9f36a7371), [`bf6df267`](https://github.com/thirdweb-dev/js/commit/bf6df2671131d7ed38650e2bed806081b32dc244), [`8f962bc1`](https://github.com/thirdweb-dev/js/commit/8f962bc15c35da52ed5bc4025bb4cd18b69079e3), [`28b5d1eb`](https://github.com/thirdweb-dev/js/commit/28b5d1eb6d0142d3ebefb8bd078c30949f77fe61), [`0bf29745`](https://github.com/thirdweb-dev/js/commit/0bf29745b0e842763c271ad8773312f0836ea00f), [`f0279c22`](https://github.com/thirdweb-dev/js/commit/f0279c228829b86ff1f828219bcef4fe16901f67), [`1e9fad77`](https://github.com/thirdweb-dev/js/commit/1e9fad779f3ebe535d32c0ce76905a3a8033f2fa), [`00d0d01e`](https://github.com/thirdweb-dev/js/commit/00d0d01e619ff5c60b9f31386f51a55b5e466efa), [`fc96e147`](https://github.com/thirdweb-dev/js/commit/fc96e14750175b19cb66fa7d50cdbad65b42153a)]:
|
||||
- @thirdweb-dev/chains@0.1.13
|
||||
- @thirdweb-dev/sdk@3.10.12
|
||||
- @thirdweb-dev/storage@1.1.2
|
||||
|
||||
## 0.10.12
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- [#894](https://github.com/thirdweb-dev/js/pull/894) [`72db2dc3`](https://github.com/thirdweb-dev/js/commit/72db2dc3e1c63e82ba4d73b6bd5ad4b2f8bbd559) Thanks [@adam-maj](https://github.com/adam-maj)! - Add more clear error messages to thirdweb generate
|
||||
|
||||
- Updated dependencies [[`abe88599`](https://github.com/thirdweb-dev/js/commit/abe88599b634699aa3b876fe344bfddc6c1a92d4), [`4acb2b55`](https://github.com/thirdweb-dev/js/commit/4acb2b5561118dde5c7372400d4d754b879aef2e), [`ea04edf4`](https://github.com/thirdweb-dev/js/commit/ea04edf47867617ff74f0aca1471a40b8d9c9f7c), [`77224646`](https://github.com/thirdweb-dev/js/commit/77224646d542db3171394d744b455497cd057633), [`c9ee9b32`](https://github.com/thirdweb-dev/js/commit/c9ee9b32f0a275f7c03d50243f23a7332f148ae5), [`00f4355f`](https://github.com/thirdweb-dev/js/commit/00f4355f1aa8843bb534b173e4d8e0a19dd18b47), [`a6610f12`](https://github.com/thirdweb-dev/js/commit/a6610f1211e9359885b948bf69a66d834707ec07), [`29146e00`](https://github.com/thirdweb-dev/js/commit/29146e009db655304f5753904ae7f8569c12f4ca), [`77224646`](https://github.com/thirdweb-dev/js/commit/77224646d542db3171394d744b455497cd057633), [`bfdd8493`](https://github.com/thirdweb-dev/js/commit/bfdd84939d7cf9c6635b83c971bcc8967b52538c)]:
|
||||
- @thirdweb-dev/sdk@3.10.11
|
||||
- @thirdweb-dev/chains@0.1.12
|
||||
|
||||
## 0.10.11
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- [#877](https://github.com/thirdweb-dev/js/pull/877) [`cef16471`](https://github.com/thirdweb-dev/js/commit/cef16471f4493d7c2c1897a81ffebf84a743716e) Thanks [@iketw](https://github.com/iketw)! - [CLI] Update min ruby version supported to 2.7.6 for React Native templates
|
||||
|
||||
- Updated dependencies [[`ac8fa0b3`](https://github.com/thirdweb-dev/js/commit/ac8fa0b34545a2bc0b489a0551d476a9f560e851), [`b75bcef5`](https://github.com/thirdweb-dev/js/commit/b75bcef55bfdedc260b5b62bb4aff10a7d5c47b6), [`c9027fce`](https://github.com/thirdweb-dev/js/commit/c9027fced0fffbf757bf0080bc4a49f5464df647)]:
|
||||
- @thirdweb-dev/sdk@3.10.10
|
||||
|
||||
## 0.10.10
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- Updated dependencies [[`b3d57949`](https://github.com/thirdweb-dev/js/commit/b3d57949bd047831fda7e600b4872200340903b5), [`602d8cbc`](https://github.com/thirdweb-dev/js/commit/602d8cbcfaa7c1e117c01f842f89508f7333fcfe)]:
|
||||
- @thirdweb-dev/sdk@3.10.9
|
||||
|
||||
## 0.10.9
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- [#867](https://github.com/thirdweb-dev/js/pull/867) [`3bb846ad`](https://github.com/thirdweb-dev/js/commit/3bb846adf0484e8b7dc7dfeba9f9c0ee26f4ef35) Thanks [@adam-maj](https://github.com/adam-maj)! - Generate auto detects smart contracts in project
|
||||
|
||||
- Updated dependencies [[`1547d76c`](https://github.com/thirdweb-dev/js/commit/1547d76cce52265076c347599014f578c1de6152), [`1b8f812f`](https://github.com/thirdweb-dev/js/commit/1b8f812fb8c910d91fb7535d6446a0b6fc6b2310), [`235eb046`](https://github.com/thirdweb-dev/js/commit/235eb0460ae0638f63acf82957bcfea41b9e955d)]:
|
||||
- @thirdweb-dev/sdk@3.10.8
|
||||
- @thirdweb-dev/chains@0.1.11
|
||||
|
||||
## 0.10.8
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- [#857](https://github.com/thirdweb-dev/js/pull/857) [`3a0e904f`](https://github.com/thirdweb-dev/js/commit/3a0e904fc2bae5134ba3bf65ba666c3360e4fced) Thanks [@adam-maj](https://github.com/adam-maj)! - Add skip intro flag to generate command and fix ABI cache regex
|
||||
|
||||
- [#860](https://github.com/thirdweb-dev/js/pull/860) [`058e4357`](https://github.com/thirdweb-dev/js/commit/058e4357c783911a6cab6b38c6eebbb3277dfe93) Thanks [@iketw](https://github.com/iketw)! - [CLI] Only checks ruby version and attempts to run pod install if the platform is macOS
|
||||
|
||||
## 0.10.7
|
||||
|
||||
### Patch Changes
|
||||
|
||||
@@ -63,7 +63,7 @@ Deploying published contracts give deployers access to automatic SDKs to integra
|
||||
npx thirdweb@latest detect
|
||||
```
|
||||
|
||||
As you're developing your contracts, you may want to implement [Extensions](https://portal.thirdweb.com/contractkit) to unlock functionality on the SDKs (ie. nft minting with automatic upload to IPFS) and the dashboard (ie. generated UI to manage permissions). This command will show what extensions were detected on your contract, unlocking the corresponding functionality on the SDKs and dashboard.
|
||||
As you're developing your contracts, you may want to implement [Extensions](https://portal.thirdweb.com/solidity/extensions) to unlock functionality on the SDKs (ie. nft minting with automatic upload to IPFS) and the dashboard (ie. generated UI to manage permissions). This command will show what extensions were detected on your contract, unlocking the corresponding functionality on the SDKs and dashboard.
|
||||
|
||||
---
|
||||
|
||||
|
||||
@@ -11,7 +11,7 @@ export const CREATE_MESSAGES = {
|
||||
} as const;
|
||||
|
||||
export const GENERATE_MESSAGES = {
|
||||
deployerAddress: "What is your deployer wallet address?",
|
||||
chains: "What chains are you using in your project?",
|
||||
};
|
||||
|
||||
export const ERROR_MESSAGES = {
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"name": "thirdweb",
|
||||
"main": "dist/cli/index.js",
|
||||
"version": "0.10.7",
|
||||
"version": "0.10.13",
|
||||
"repository": "https://github.com/thirdweb-dev/js/tree/main/packages/cli",
|
||||
"author": "thirdweb eng <[email protected]>",
|
||||
"license": "Apache-2.0",
|
||||
@@ -34,6 +34,7 @@
|
||||
"typescript": "^4.7.4"
|
||||
},
|
||||
"dependencies": {
|
||||
"@thirdweb-dev/chains": "workspace:*",
|
||||
"@thirdweb-dev/sdk": "workspace:*",
|
||||
"@thirdweb-dev/storage": "workspace:*",
|
||||
"async-retry": "^1.3.3",
|
||||
|
||||
@@ -412,10 +412,6 @@ const main = async () => {
|
||||
"Preload ABIs and generate types for your smart contract to strongly type the thirdweb SDK",
|
||||
)
|
||||
.option("-p, --path <project-path>", "path to project", ".")
|
||||
.option(
|
||||
"-d, --deployer <deployer-address>",
|
||||
"address of the contract deployer",
|
||||
)
|
||||
.action(async (options) => {
|
||||
await generate(options);
|
||||
});
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
import { logger } from "../core/helpers/logger";
|
||||
import { existsSync, readdirSync, statSync } from "fs";
|
||||
import { existsSync, readFileSync, readdirSync, statSync } from "fs";
|
||||
import { basename, join } from "path";
|
||||
|
||||
export function findFiles(
|
||||
@@ -38,3 +38,38 @@ export function findFiles(
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
export function findMatches(
|
||||
startPath: string,
|
||||
filter: RegExp,
|
||||
results: string[],
|
||||
) {
|
||||
if (!existsSync(startPath)) {
|
||||
console.log("no dir ", startPath);
|
||||
return;
|
||||
}
|
||||
|
||||
const files = readdirSync(startPath);
|
||||
for (let i = 0; i < files.length; i++) {
|
||||
const filename = join(startPath, files[i]);
|
||||
const stat = statSync(filename);
|
||||
|
||||
if (stat.isDirectory() && basename(filename) === "node_modules") {
|
||||
continue;
|
||||
}
|
||||
|
||||
if (stat.isDirectory() && filename.startsWith(".")) {
|
||||
continue;
|
||||
}
|
||||
|
||||
if (stat.isDirectory()) {
|
||||
findMatches(filename, filter, results);
|
||||
} else {
|
||||
const fileContents = readFileSync(filename, "utf-8");
|
||||
const matches = fileContents.match(filter);
|
||||
if (matches) {
|
||||
results.push(...matches);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
import { runCommand } from "./run-command";
|
||||
import chalk from "chalk";
|
||||
|
||||
export const SUPPORTED_RUBY_VERSION = "2.7.5";
|
||||
export const SUPPORTED_RUBY_VERSION = "2.7.6";
|
||||
|
||||
/**
|
||||
* Checks if the current ruby version is supported by the project.
|
||||
|
||||
@@ -62,6 +62,24 @@ export async function createApp({
|
||||
}
|
||||
}
|
||||
|
||||
const isReactNative =
|
||||
template?.includes("react-native") || framework === "react-native";
|
||||
function isReactNativeCLI() {
|
||||
return (
|
||||
isReactNative &&
|
||||
(language === "typescript" || (template && !template.includes("expo")))
|
||||
);
|
||||
}
|
||||
|
||||
function isMacOS() {
|
||||
return process.platform === "darwin";
|
||||
}
|
||||
|
||||
if (isReactNativeCLI() && isMacOS()) {
|
||||
// fail early if the user doesn't have the right version of Ruby installed on macOS
|
||||
await checkRubyVersion();
|
||||
}
|
||||
|
||||
const root = path.resolve(appPath);
|
||||
|
||||
if (!(await isWriteable(path.dirname(root)))) {
|
||||
@@ -98,20 +116,6 @@ export async function createApp({
|
||||
);
|
||||
}
|
||||
|
||||
const isReactNative =
|
||||
template?.includes("react-native") || framework === "react-native";
|
||||
function isReactNativeCLI() {
|
||||
return (
|
||||
isReactNative &&
|
||||
(language === "typescript" || (template && !template.includes("expo")))
|
||||
);
|
||||
}
|
||||
|
||||
if (isReactNativeCLI()) {
|
||||
// fail early if the user doesn't have the right version of Ruby installed
|
||||
await checkRubyVersion();
|
||||
}
|
||||
|
||||
if (template) {
|
||||
/**
|
||||
* If a template repository is provided, clone it.
|
||||
@@ -199,7 +203,7 @@ export async function createApp({
|
||||
console.log();
|
||||
}
|
||||
|
||||
if (isReactNativeCLI()) {
|
||||
if (isReactNativeCLI() && isMacOS()) {
|
||||
await podInstall(root, isOnline);
|
||||
}
|
||||
|
||||
|
||||
@@ -1,51 +0,0 @@
|
||||
/* eslint-disable import/no-extraneous-dependencies */
|
||||
import { runCommand } from "./run-command";
|
||||
import fs from "fs";
|
||||
import path from "path";
|
||||
|
||||
/**
|
||||
* Checks if the current ruby version is supported by the project.
|
||||
*
|
||||
* @returns A Promise that resolves once the ruby version is checked. True if it changed, false otherwise.
|
||||
*/
|
||||
export function setRubyVersion(root: string): Promise<boolean> {
|
||||
/**
|
||||
* Return a Promise that resolves once the installation is finished.
|
||||
*/
|
||||
return new Promise(async (resolve, reject) => {
|
||||
try {
|
||||
await runCommand("ruby", ["-v"], false, (dataBfr) => {
|
||||
const data = String(dataBfr);
|
||||
const systemVersion = data.split(" ")[1];
|
||||
|
||||
let rubyVersionFile = path.join(root, ".ruby-version");
|
||||
let rubyProjectVersionString = "";
|
||||
|
||||
try {
|
||||
rubyProjectVersionString = String(fs.readFileSync(rubyVersionFile));
|
||||
} catch (error) {
|
||||
rubyVersionFile = path.join(root, "_ruby-version");
|
||||
rubyProjectVersionString = String(fs.readFileSync(rubyVersionFile));
|
||||
}
|
||||
|
||||
try {
|
||||
if (systemVersion.includes(rubyProjectVersionString)) {
|
||||
// same version, no need to update
|
||||
resolve(false);
|
||||
} else {
|
||||
const systemVersionWithoutPatch = systemVersion.split("p")[0];
|
||||
fs.writeFileSync(rubyVersionFile, systemVersionWithoutPatch);
|
||||
resolve(true);
|
||||
}
|
||||
} catch (e) {
|
||||
console.log(
|
||||
"Failed to update ruby version. Please, set your ruby version to a minimum of 2.6 and try again.",
|
||||
);
|
||||
console.log();
|
||||
}
|
||||
});
|
||||
} catch (error) {
|
||||
reject(error);
|
||||
}
|
||||
});
|
||||
}
|
||||
@@ -3,54 +3,99 @@ import {
|
||||
DeployedContract,
|
||||
fetchContractMetadataFromAddress,
|
||||
getChainProvider,
|
||||
ThirdwebSDK,
|
||||
} from "@thirdweb-dev/sdk";
|
||||
import { ThirdwebStorage } from "@thirdweb-dev/storage";
|
||||
import { info } from "../core/helpers/logger";
|
||||
import { allChains } from "@thirdweb-dev/chains";
|
||||
import fs from "fs";
|
||||
import prompts from "prompts";
|
||||
|
||||
type GenerateOptions = {
|
||||
path: string;
|
||||
deployer?: string;
|
||||
};
|
||||
import { findMatches } from "../common/file-helper";
|
||||
import ora from "ora";
|
||||
import { GenerateOptions, ThirdwebConfig } from "./types";
|
||||
import { CHAIN_OPTIONS, getContractsForAddresses } from "./utils";
|
||||
|
||||
export async function generate(options: GenerateOptions) {
|
||||
let projectPath: string = options.path?.replace(/\/$/, "") || ".";
|
||||
|
||||
let contracts: DeployedContract[] = [];
|
||||
|
||||
// Find all addresses in this project
|
||||
let addresses: string[] = [];
|
||||
findMatches(projectPath, /(0x[a-fA-F0-9]{40})/g, addresses);
|
||||
|
||||
// We check if there's a thirdweb.json config file present
|
||||
if (fs.existsSync(`${projectPath}/thirdweb.json`)) {
|
||||
// First we check if there's a thirdweb.json config file present
|
||||
const thirdwebConfig = JSON.parse(
|
||||
// Read the current thirdweb config file
|
||||
const thirdwebConfig: ThirdwebConfig = JSON.parse(
|
||||
fs.readFileSync(`${projectPath}/thirdweb.json`, "utf-8"),
|
||||
);
|
||||
contracts = thirdwebConfig.contracts as DeployedContract[];
|
||||
} else {
|
||||
// Otherwise, we get contracts by deployer address (and generate a thirdweb.json)
|
||||
let deployerAddress: string;
|
||||
if (options.deployer) {
|
||||
deployerAddress = options.deployer;
|
||||
} else {
|
||||
const res = await prompts({
|
||||
type: "text",
|
||||
name: "deployer",
|
||||
message: GENERATE_MESSAGES.deployerAddress,
|
||||
});
|
||||
|
||||
deployerAddress = res.deployer.trim();
|
||||
}
|
||||
|
||||
const sdk = new ThirdwebSDK("polygon");
|
||||
contracts = await sdk.multiChainRegistry.getContractAddresses(
|
||||
deployerAddress,
|
||||
// Check if there are any addresses in the project that aren't yet in the config
|
||||
const configAddresses = thirdwebConfig.contracts.map((contract) =>
|
||||
contract.address.toLowerCase(),
|
||||
);
|
||||
const newAddresses = addresses.filter(
|
||||
(address) => !configAddresses.includes(address.toLowerCase()),
|
||||
);
|
||||
|
||||
// Initialize contracts to the contracts in thirdweb.json file
|
||||
contracts = [...thirdwebConfig.contracts];
|
||||
|
||||
// If we have new contracts that aren't yet stored in config
|
||||
// get full contract objects
|
||||
if (newAddresses.length) {
|
||||
const chainIds = thirdwebConfig.chainIds;
|
||||
await getContractsForAddresses(newAddresses, chainIds, contracts);
|
||||
|
||||
if (contracts.length > thirdwebConfig.contracts.length) {
|
||||
fs.writeFileSync(
|
||||
`${projectPath}/thirdweb.json`,
|
||||
JSON.stringify({ chainIds, contracts }, undefined, 2),
|
||||
);
|
||||
|
||||
const numberOfNewContracts =
|
||||
contracts.length - thirdwebConfig.contracts.length;
|
||||
info(
|
||||
`Updated thirdweb.json with ${numberOfNewContracts} new contract${
|
||||
numberOfNewContracts === 1 ? "" : "s"
|
||||
}`,
|
||||
);
|
||||
}
|
||||
}
|
||||
} else {
|
||||
// If there is no configuration file present, we need to generate one...
|
||||
|
||||
// First we ask the user what chains are used in their project
|
||||
const res = await prompts({
|
||||
type: "autocompleteMultiselect",
|
||||
name: "chains",
|
||||
message: GENERATE_MESSAGES.chains,
|
||||
choices: CHAIN_OPTIONS,
|
||||
});
|
||||
|
||||
const chainIds: number[] = res.chains.map(
|
||||
(index: number) => allChains[index].chainId,
|
||||
);
|
||||
|
||||
// Then we check for the chainId of each address
|
||||
await getContractsForAddresses(addresses, chainIds, contracts);
|
||||
|
||||
// Create a thirdweb.json file with the specific contracts and chain ids
|
||||
fs.writeFileSync(
|
||||
`${projectPath}/thirdweb.json`,
|
||||
JSON.stringify({ contracts }, undefined, 2),
|
||||
JSON.stringify({ chainIds, contracts }, undefined, 2),
|
||||
);
|
||||
|
||||
info(
|
||||
`Created a thirdweb.json file with configuration for ${
|
||||
contracts.length
|
||||
} contract${
|
||||
contracts.length === 1 ? "" : "s"
|
||||
} detected in your project.\n\n - You can also update this configuration manually by editing the file.\n`,
|
||||
);
|
||||
}
|
||||
|
||||
// Attempt to download the ABI for the contract
|
||||
// Attempt to download the ABI for each contract
|
||||
ora(`Downloading ABIs for contracts configured in 'thirdweb.json'`).info();
|
||||
const storage = new ThirdwebStorage();
|
||||
const metadata: {
|
||||
address: string;
|
||||
@@ -68,6 +113,9 @@ export async function generate(options: GenerateOptions) {
|
||||
);
|
||||
} catch {
|
||||
// If metadata for a contract fails, just go onto the next one
|
||||
ora(
|
||||
`Unable to download ABI for contract ${contract.address}, skipping.`,
|
||||
).warn();
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -81,9 +129,10 @@ export async function generate(options: GenerateOptions) {
|
||||
// Store the ABIs in the the SDKs ABI cache files
|
||||
const packagePath = `${projectPath}/node_modules/@thirdweb-dev/generated-abis/dist`;
|
||||
if (!fs.existsSync(packagePath)) {
|
||||
throw new Error(
|
||||
`Unable to cache ABIs. Please ensure that you're using the latest @thirdweb-dev/sdk package`,
|
||||
);
|
||||
ora(
|
||||
`Unable to cache ABIs. Please ensure that you have the latest @thirdweb-dev/sdk package installed.`,
|
||||
).fail();
|
||||
process.exit(1);
|
||||
}
|
||||
|
||||
const filePaths = [
|
||||
@@ -97,7 +146,7 @@ export async function generate(options: GenerateOptions) {
|
||||
}
|
||||
|
||||
const file = fs.readFileSync(filePath, "utf-8");
|
||||
const abiRegex = /GENERATED_ABI = \{.*\}/s;
|
||||
const abiRegex = /GENERATED_ABI = \{.*\};\n\n/s;
|
||||
const contractAbis = metadata.reduce((acc, contract) => {
|
||||
acc[contract.address] = contract.metadata.abi;
|
||||
return acc;
|
||||
@@ -105,8 +154,9 @@ export async function generate(options: GenerateOptions) {
|
||||
const updatedAbis = JSON.stringify(contractAbis, null, 2);
|
||||
const updatedFile = file.replace(
|
||||
abiRegex,
|
||||
`GENERATED_ABI = ${updatedAbis}`,
|
||||
`GENERATED_ABI = ${updatedAbis};\n\n`,
|
||||
);
|
||||
|
||||
fs.writeFileSync(filePath, updatedFile);
|
||||
});
|
||||
|
||||
@@ -128,6 +178,12 @@ export async function generate(options: GenerateOptions) {
|
||||
fs.writeFileSync(typeFilePath, updatedFile);
|
||||
}
|
||||
|
||||
ora(
|
||||
`Downloaded and cached ABIs for ${metadata.length} smart contract${
|
||||
metadata.length === 1 ? "" : "s"
|
||||
}`,
|
||||
).succeed();
|
||||
|
||||
// Add generate command to postinstall
|
||||
const packageJsonPath = `${projectPath}/package.json`;
|
||||
if (!fs.existsSync(packageJsonPath)) {
|
||||
@@ -141,8 +197,8 @@ export async function generate(options: GenerateOptions) {
|
||||
|
||||
const postinstall = packageJson.scripts?.postinstall
|
||||
? packageJson.scripts.postinstall +
|
||||
` && npx thirdweb generate --skip-update-check`
|
||||
: `npx thirdweb generate --skip-update-check`;
|
||||
` && export THIRDWEB_CLI_SKIP_INTRO=true && npx thirdweb generate --skip-update-check`
|
||||
: `export THIRDWEB_CLI_SKIP_INTRO=true && npx thirdweb generate --skip-update-check`;
|
||||
|
||||
fs.writeFileSync(
|
||||
packageJsonPath,
|
||||
@@ -158,4 +214,8 @@ export async function generate(options: GenerateOptions) {
|
||||
2,
|
||||
),
|
||||
);
|
||||
|
||||
ora(
|
||||
"Added 'npx thirdweb generate' to postinstall in package.json.\n\n - This is necessary to use 'thirdweb generate' in production.\n",
|
||||
).info();
|
||||
}
|
||||
|
||||
@@ -0,0 +1,19 @@
|
||||
import { DeployedContract } from "@thirdweb-dev/sdk";
|
||||
|
||||
export type ThirdwebConfig = {
|
||||
chainIds: number[];
|
||||
contracts: DeployedContract[];
|
||||
};
|
||||
|
||||
export type GenerateOptions = {
|
||||
path: string;
|
||||
deployer?: string;
|
||||
};
|
||||
|
||||
export type ContractChainPrompt = {
|
||||
address: string;
|
||||
chains: {
|
||||
slug: string;
|
||||
chainId: number;
|
||||
}[];
|
||||
};
|
||||
@@ -0,0 +1,87 @@
|
||||
import { DeployedContract, getChainProvider } from "@thirdweb-dev/sdk";
|
||||
import prompts from "prompts";
|
||||
import { ContractChainPrompt } from "./types";
|
||||
import { allChains } from "@thirdweb-dev/chains";
|
||||
|
||||
export const CHAIN_OPTIONS = allChains.map((chain) => ({ title: chain.slug }));
|
||||
|
||||
export async function getContractsForAddresses(
|
||||
addresses: string[],
|
||||
chainIds: number[],
|
||||
contracts: DeployedContract[],
|
||||
) {
|
||||
let contractChainPrompts: ContractChainPrompt[] = [];
|
||||
|
||||
await Promise.all(
|
||||
addresses.map(async (address) => {
|
||||
// Check which chainIds of the provided chains have a contract at this address
|
||||
let chainIdsWithContract: number[] = [];
|
||||
|
||||
await Promise.all(
|
||||
chainIds.map(async (chainId) => {
|
||||
// Handles cacheing of provider by chain
|
||||
const provider = getChainProvider(chainId, {});
|
||||
|
||||
try {
|
||||
const code = await provider.getCode(address);
|
||||
|
||||
if (!code || code === "0x") {
|
||||
return;
|
||||
}
|
||||
|
||||
chainIdsWithContract.push(chainId);
|
||||
} catch {
|
||||
return;
|
||||
}
|
||||
}),
|
||||
);
|
||||
|
||||
// If no chainId has this contract, we assume it's an EOA and move on
|
||||
if (!chainIdsWithContract.length) {
|
||||
return;
|
||||
}
|
||||
|
||||
// If only one chain has this contract address, add it to our contracts list
|
||||
if (chainIdsWithContract.length === 1) {
|
||||
contracts.push({
|
||||
address,
|
||||
chainId: chainIdsWithContract[0],
|
||||
});
|
||||
return;
|
||||
}
|
||||
|
||||
// Otherwise, add our contract to the list of contracts
|
||||
// where we need to prompt the user to select the chain
|
||||
contractChainPrompts.push({
|
||||
address,
|
||||
chains: chainIdsWithContract.map((chainId) => ({
|
||||
slug: allChains[chainId].slug,
|
||||
chainId,
|
||||
})),
|
||||
});
|
||||
}),
|
||||
);
|
||||
|
||||
// TODO: Long term, smart contracts in the generated-abis cache should be cached by
|
||||
// both smart contract and chain id because people may want to use the same contract address
|
||||
// on different chains
|
||||
|
||||
// For all addresses that have smart contracts deployed on multiple selected chains
|
||||
// allow the user to specify which chain they want to use for their smart contract
|
||||
for (const prompt of contractChainPrompts) {
|
||||
const res = await prompts({
|
||||
type: "select",
|
||||
name: "chainId",
|
||||
message: `What chain is smart contract '${prompt.address}' on?`,
|
||||
choices: prompt.chains.map((chain) => ({
|
||||
title: chain.slug,
|
||||
value: chain.chainId,
|
||||
})),
|
||||
});
|
||||
|
||||
contracts.push({
|
||||
address: prompt.address,
|
||||
chainId: res.chainId,
|
||||
});
|
||||
}
|
||||
}
|
||||
@@ -1,5 +1,17 @@
|
||||
# @thirdweb-dev/contracts-js
|
||||
|
||||
## 1.3.4
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- [#959](https://github.com/thirdweb-dev/js/pull/959) [`00d0d01e`](https://github.com/thirdweb-dev/js/commit/00d0d01e619ff5c60b9f31386f51a55b5e466efa) Thanks [@joaquim-verges](https://github.com/joaquim-verges)! - Update contracts package to 3.4.6
|
||||
|
||||
## 1.3.3
|
||||
|
||||
### Patch Changes
|
||||
|
||||
- [#756](https://github.com/thirdweb-dev/js/pull/756) [`b75bcef5`](https://github.com/thirdweb-dev/js/commit/b75bcef55bfdedc260b5b62bb4aff10a7d5c47b6) Thanks [@kumaryash90](https://github.com/kumaryash90)! - Any EVM deploy flow with Create2 factory
|
||||
|
||||
## 1.3.2
|
||||
|
||||
### Patch Changes
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@thirdweb-dev/contracts-js",
|
||||
"version": "1.3.2",
|
||||
"version": "1.3.4",
|
||||
"main": "dist/thirdweb-dev-contracts-js.cjs.js",
|
||||
"module": "dist/thirdweb-dev-contracts-js.esm.js",
|
||||
"browser": {
|
||||
@@ -10,7 +10,7 @@
|
||||
"license": "Apache-2.0",
|
||||
"repository": "https://github.com/thirdweb-dev/js/tree/main/packages/contracts-js",
|
||||
"dependencies": {
|
||||
"@thirdweb-dev/contracts": "3.4.4"
|
||||
"@thirdweb-dev/contracts": "3.4.7-0"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@babel/preset-env": "^7.18.10",
|
||||
|
||||
@@ -25,5 +25,8 @@
|
||||
"sideEffects": false,
|
||||
"files": [
|
||||
"dist/"
|
||||
]
|
||||
],
|
||||
"scripts": {
|
||||
"push": "yalc push"
|
||||
}
|
||||
}
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user