Compare commits

..
Author SHA1 Message Date
github-actions[bot]GitHubgithub-actions[bot] <github-actions[bot]@users.noreply.github.com>
318b274aae Version Packages (#924)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2023-05-03 21:24:18 -07:00
77f0474b88 [ReactNative] update copy for smart wallet (#963)
Co-authored-by: Manan Tank <[email protected]>
Co-authored-by: Joaquim Verges <[email protected]>
2023-05-03 19:15:33 +00:00
5ffb1cba03 [REACT] Add onLogout function to ConnectWallet authOptions prop (#960)
Co-authored-by: frog <[email protected]>
2023-05-03 16:07:31 +00:00
YashandGitHub 0bf29745b0 [SDK] GSNv2 Forwarder addresses (#961) 2023-05-03 15:55:30 +00:00
Joaquim VergesandGitHub 00d0d01e61 [SDK] Feature detection for Account and AccountFactory (#959) 2023-05-03 05:51:13 +00:00
Adam MajmudarandGitHub 72b8b9829e [Auth] Add all fields to cookie on logout (#958) 2023-05-03 00:14:29 +00:00
Joaquim VergesandGitHub 26cd91ffe1 [Wallets] update to latest account factory (#953) 2023-05-02 23:24:30 +00:00
1c3a846045 [ReactNative] Update guest mode icon and update learn more link (#957)
Co-authored-by: Manan Tank <[email protected]>
Co-authored-by: Joaquim Verges <[email protected]>
2023-05-02 22:40:44 +00:00
4a69f8c85d [ReactNative] Allow switching between personal wallet and smart wallet (#956)
Co-authored-by: Manan Tank <[email protected]>
Co-authored-by: Joaquim Verges <[email protected]>
2023-05-02 19:44:32 +00:00
Manan TankandGitHub c7c2530c7f [react] Local Wallet UI refactor, various fixes and cleanup (#955) 2023-05-02 17:58:14 +00:00
7012513bc2 [ReactNative] Introducing Smart Wallet (#937)
Co-authored-by: Manan Tank <[email protected]>
Co-authored-by: Joaquim Verges <[email protected]>
2023-05-01 22:58:06 +00:00
YashandGitHub 28b5d1eb6d [SDK] Custom gas-price for Theta testnet and mainnet (#951) 2023-05-01 21:37:15 +00:00
1e9fad779f safe, device wallet, smartWallet autoconnect (#927)
Co-authored-by: Joaquim Verges <[email protected]>
2023-05-01 20:07:25 +00:00
Joaquim VergesandGitHub 7e7a507f03 [Unity] fix unity wallet connect (#950) 2023-05-01 18:48:09 +00:00
Joaquim VergesandGitHub 5a67d5d894 [Wallets] Batch transactions functionality for Smart Wallets (#948) 2023-04-30 21:42:41 +00:00
Joaquim VergesandGitHub fc96e14750 [Wallets] Expose execute functions directly from smart wallet (#947) 2023-04-29 02:05:16 +00:00
YashandGitHub 8f962bc15c [SDK] Add default domain in gasless options (#944) 2023-04-29 01:19:15 +00:00
Joaquim VergesandGitHub f12a80a475 [Wallets] fix default RPC for local wallet providers (#931) 2023-04-29 01:11:57 +00:00
Joaquim VergesandGitHub 0186721bc4 [Wallets] New utils functions for smart wallets (#945) 2023-04-28 23:25:27 +00:00
Manan TankandGitHub 5d67b2807f add magic link wallet and UI (#941) 2023-04-28 21:11:52 +00:00
Joaquim VergesandGitHub 1e4ac67272 [SmartWallet] remove accountIds and allow passing custom factory/account contract definitions (#942) 2023-04-28 17:41:44 +00:00
iketwandGitHub 465d8e2c3d [ReactNative] Make web3button action return a promise (#943) 2023-04-28 15:03:05 +00:00
0xHendrixandGitHub a8b790652c [REACT] Add onLogin callback to ConnectWallet authOptions props (#940) 2023-04-28 03:41:38 +00:00
iketwandGitHub 4828c87691 [ReactNative] Enable copying the address by pressing on it (#936) 2023-04-26 17:46:52 +00:00
iketwandGitHub 45d2ffcf89 [ReactNative] continue as guest (#935) 2023-04-26 15:37:03 +00:00
YashandGitHub bf6df26711 [SDK] Add support for Skale chaos testnet (#932) 2023-04-25 19:56:15 +00:00
Manan TankandGitHub e22e4a47d7 [react] suggest first supportedWallet for getting started (#930) 2023-04-24 12:29:13 +00:00
iketwandGitHub d2c7f6d758 [ReactNativeSDK] Adds Local Wallet (#787) 2023-04-22 04:14:55 +00:00
Joaquim VergesandGitHub 7af99d9a6d [Wallets] Switch to entrypoint v0.6 for Smart Wallet (#929) 2023-04-21 23:01:33 +00:00
YashandGitHub f0279c2288 [SDK] Contract verification utils (#905) 2023-04-21 17:17:10 +00:00
iketwandGitHub 07194b06e5 [RN] Remove select wallet step with one supported wallet (#925) 2023-04-21 14:43:51 +00:00
255c5dcae8 [Wallets] Add accountId handling for SmartWallet (#923)
Co-authored-by: Manan Tank <[email protected]>
2023-04-21 14:15:39 +00:00
8cfb4f38ed [Wallets] Introducing Smart Wallet (#904)
Co-authored-by: Manan Tank <[email protected]>
2023-04-21 05:10:56 +00:00
github-actions[bot]GitHubgithub-actions[bot] <github-actions[bot]@users.noreply.github.com>
7c15913e46 Version Packages (#883)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2023-04-20 21:57:14 -07:00
Adam MajmudarandGitHub 477324ec85 [Auth] Add useAuth back to @thirdweb-dev/react (#922) 2023-04-19 20:05:51 +00:00
c9ee9b32f0 [SDK] Fix error handling for create2 factory deployments (#915)
Co-authored-by: Joaquim Verges <[email protected]>
2023-04-18 23:40:50 +00:00
Manan TankandGitHub 3010d84595 [react] improved autocomplete for imported device wallet (#920) 2023-04-18 21:01:57 +00:00
Manan TankandGitHub 81770647ab [react] improved device wallet password input autocomplete (#919) 2023-04-18 19:14:05 +00:00
Manan TankandGitHub 26644d63b5 Fix Connect Wallet Modal max-width on tablet (#918) 2023-04-18 17:33:01 +00:00
Manan TankandGitHub 09fae984e7 [react] Device wallet and other UI improvements (#917) 2023-04-18 15:57:11 +00:00
iketwandGitHub 0b1f522906 [ReactNative] Improve theming for Web3Button and ConnectWallet (#916) 2023-04-17 21:32:43 +00:00
Manan TankandGitHub ec36df5f75 Add Request Testnet Funds for Localhost (#914) 2023-04-17 11:00:46 +00:00
Manan TankandGitHub c93edc4999 [wallets] paper: add Avalanche (#913) 2023-04-17 09:20:13 +00:00
YashandGitHub 29146e009d [SDK] Fix listing validation for marketplace v2 & v3 (#907) 2023-04-15 01:14:25 +00:00
Adam MajmudarandGitHub ea04edf478 [SDK] Fix StaticJsonBatchRpcProvider (#911) 2023-04-14 23:54:39 +00:00
Joaquim VergesandGitHub c2fec93052 [Wallets] Allow passing any EVMWallet as personal Safe signer (#910) 2023-04-14 23:20:34 +00:00
Manan TankandGitHub d8b54a6f91 [react] add back device wallet UI (#909) 2023-04-14 22:43:30 +00:00
Manan TankandGitHub 664d1cd0dd [wallets] fix dynamic import error of crypto-js on vite (#908) 2023-04-14 20:40:16 +00:00
Manan TankandGitHub 4275c8e739 [wallets] device wallet fixes (#906) 2023-04-14 19:55:30 +00:00
Manan TankandGitHub 82bea3fa10 [wallets] Device Wallet Revamp (#901) 2023-04-14 17:15:30 +00:00
YashandGitHub 8e8ceaa344 [SDK] Update Weth addresses (#902) 2023-04-14 05:12:26 +00:00
Joaquim VergesandGitHub 77224646d5 [SDK] more transaction error parsing (#903) 2023-04-14 05:11:53 +00:00
Adam MajmudarandGitHub 72db2dc3e1 [CLI] Add cleaner messages to thirdweb generate (#894) 2023-04-13 18:29:54 +00:00
Joaquim VergesandGitHub abe88599b6 [SDK] fix gasless open pack (#898) 2023-04-12 22:38:23 +00:00
a6610f1211 Portal Links added to functions (#896)
Co-authored-by: Jonas Daniels <[email protected]>
2023-04-11 23:20:14 +00:00
YashandGitHub bfdd84939d [SDK] Enable MarketplaceV3 deploys on any EVM (#885) 2023-04-11 23:07:10 +00:00
Manan TankandGitHub 06cc1df3b7 Fix supported chains not having activeChain for wallets (#895) 2023-04-11 22:21:07 +00:00
Manan TankandGitHub 4acb2b5561 [react] add switch account for MetaMask (#892) 2023-04-10 21:38:15 +00:00
Adam MajmudarandGitHub 00f4355f1a [SDK] Add ability to batch list on marketplace v3 (#890) 2023-04-10 19:59:55 +00:00
Manan TankandGitHub 430a5f7934 [React] network selector revamp (#887) 2023-04-08 04:34:48 +00:00
iketwandGitHub 51e6b4146e [ReactNative] Fixes Coinbase Wallet Connect for iOS (#886) 2023-04-07 17:29:42 +00:00
iketwandGitHub 49922de9d9 [Core/RN] Implements auth for React Native (#874) 2023-04-07 00:43:56 +00:00
340 changed files with 16506 additions and 3923 deletions
+50
View File
@@ -1,5 +1,55 @@
# @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
+3 -2
View File
@@ -1,6 +1,6 @@
{
"name": "@thirdweb-dev/auth",
"version": "3.0.14",
"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": [
+1 -3
View File
@@ -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,
}),
);
+3
View File
@@ -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,
}),
);
+16
View File
@@ -1,5 +1,21 @@
# @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
+1 -1
View File
@@ -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"
+37
View File
@@ -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;
+6
View File
@@ -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}"
+6
View File
@@ -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}"
+40
View File
@@ -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;
+6
View File
@@ -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"
+37
View File
@@ -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;
+40
View File
@@ -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;
+34
View File
@@ -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;
+34
View File
@@ -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;
+6
View File
@@ -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"
+42
View File
@@ -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;
+43
View File
@@ -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;
+42
View File
@@ -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;
+51
View File
@@ -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;
+48
View File
@@ -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;
+1 -1
View File
@@ -14,7 +14,7 @@ export default {
},
"features": [],
"infoURL": "https://hashpalette.com/",
"shortName": "PaletteChain",
"shortName": "PCM",
"chainId": 1718,
"networkId": 1718,
"icon": {
+41
View File
@@ -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;
+42
View File
@@ -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;
+46
View File
@@ -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;
+13 -7
View File
@@ -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;
+1 -1
View File
@@ -28,7 +28,7 @@ export default {
"explorers": [
{
"name": "edexa-testnet",
"url": "https://explorer.edexa.com",
"url": "https://explorer.testnet.edexa.com",
"standard": "EIP3091"
}
],
+40
View File
@@ -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;
+2 -2
View File
@@ -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": {
+30
View File
@@ -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;
+29
View File
@@ -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;
+11 -11
View File
@@ -1,9 +1,9 @@
import type { Chain } from "../src/types";
export default {
"name": "WEMIX Kanvas Sepolia",
"title": "WEMIX Kanvas Testnet Sepolia",
"name": "Kroma Sepolia",
"title": "Kroma Testnet Sepolia",
"chainId": 2357,
"shortName": "kanvas-aqua",
"shortName": "kroma-sepolia",
"chain": "ETH",
"networkId": 2357,
"nativeCurrency": {
@@ -12,13 +12,13 @@ export default {
"decimals": 18
},
"rpc": [
"https://wemix-kanvas-sepolia.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"https://api.aqua.wemixkanvas.io"
"https://kroma-sepolia.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"https://api.sepolia.kroma.network"
],
"faucets": [],
"infoURL": "https://wemixkanvas.io",
"infoURL": "https://kroma.network",
"icon": {
"url": "ipfs://QmVcVxsHsVg5BMii3EJ1MUSnLBZkQicpjmXjSmW66bCEUF",
"url": "ipfs://QmcYafk2je5rMqgnFPDZJTaLi6dgFgq96vmX2Li6DX441B",
"width": 320,
"height": 320,
"format": "svg"
@@ -26,9 +26,9 @@ export default {
"explorers": [
{
"name": "blockscout",
"url": "https://blockscout.aqua.wemixkanvas.io",
"url": "https://blockscout.sepolia.kroma.network",
"icon": {
"url": "ipfs://QmVcVxsHsVg5BMii3EJ1MUSnLBZkQicpjmXjSmW66bCEUF",
"url": "ipfs://QmcYafk2je5rMqgnFPDZJTaLi6dgFgq96vmX2Li6DX441B",
"width": 320,
"height": 320,
"format": "svg"
@@ -41,10 +41,10 @@ export default {
"chain": "eip155-11155111",
"bridges": [
{
"url": "https://wemixkanvas.io/bridge"
"url": "https://kroma.network/bridge"
}
]
},
"testnet": true,
"slug": "wemix-kanvas-sepolia"
"slug": "kroma-sepolia"
} as const satisfies Chain;
+42
View File
@@ -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;
+40
View File
@@ -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;
+38
View File
@@ -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;
+34
View File
@@ -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;
+42
View File
@@ -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;
+30
View File
@@ -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;
+14 -8
View File
@@ -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;
+29
View File
@@ -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;
+2 -1
View File
@@ -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": {
+34
View File
@@ -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;
+36
View File
@@ -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;
-28
View File
@@ -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;
+13 -10
View File
@@ -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"
}
}
+22
View File
@@ -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;
+48
View File
@@ -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;
+21
View File
@@ -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;
+34
View File
@@ -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;
+1 -1
View File
@@ -21,7 +21,7 @@ export default {
{
"name": "rootnet",
"url": "https://explorer.rootnet.live",
"standard": "none"
"standard": "EIP3091"
}
],
"testnet": false,
+1 -1
View File
@@ -21,7 +21,7 @@ export default {
{
"name": "rootnet",
"url": "https://explorer.rootnet.cloud",
"standard": "none"
"standard": "EIP3091"
}
],
"testnet": true,
+2 -2
View File
@@ -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;
+1 -1
View File
@@ -6,7 +6,7 @@ export default {
"faucets": [],
"nativeCurrency": {
"name": "Amana Testnet",
"symbol": "MEER-t",
"symbol": "MEER-T",
"decimals": 18
},
"infoURL": "https://github.com/Qitmeer",
+1 -1
View File
@@ -6,7 +6,7 @@ export default {
"faucets": [],
"nativeCurrency": {
"name": "Amana Mixnet",
"symbol": "MEER-m",
"symbol": "MEER-M",
"decimals": 18
},
"infoURL": "https://github.com/Qitmeer",
+1 -1
View File
@@ -6,7 +6,7 @@ export default {
"faucets": [],
"nativeCurrency": {
"name": "Amana Privnet",
"symbol": "MEER-p",
"symbol": "MEER-P",
"decimals": 18
},
"infoURL": "https://github.com/Qitmeer",
+1 -1
View File
@@ -6,7 +6,7 @@ export default {
"faucets": [],
"nativeCurrency": {
"name": "Flana Testnet",
"symbol": "MEER-t",
"symbol": "MEER-T",
"decimals": 18
},
"infoURL": "https://github.com/Qitmeer",
+1 -1
View File
@@ -6,7 +6,7 @@ export default {
"faucets": [],
"nativeCurrency": {
"name": "Flana Mixnet",
"symbol": "MEER-m",
"symbol": "MEER-M",
"decimals": 18
},
"infoURL": "https://github.com/Qitmeer",
+1 -1
View File
@@ -6,7 +6,7 @@ export default {
"faucets": [],
"nativeCurrency": {
"name": "Flana Privnet",
"symbol": "MEER-p",
"symbol": "MEER-P",
"decimals": 18
},
"infoURL": "https://github.com/Qitmeer",
+1 -1
View File
@@ -6,7 +6,7 @@ export default {
"faucets": [],
"nativeCurrency": {
"name": "Mizana Testnet",
"symbol": "MEER-t",
"symbol": "MEER-T",
"decimals": 18
},
"infoURL": "https://github.com/Qitmeer",
+1 -1
View File
@@ -6,7 +6,7 @@ export default {
"faucets": [],
"nativeCurrency": {
"name": "Mizana Mixnet",
"symbol": "MEER-m",
"symbol": "MEER-M",
"decimals": 18
},
"infoURL": "https://github.com/Qitmeer",
+1 -1
View File
@@ -6,7 +6,7 @@ export default {
"faucets": [],
"nativeCurrency": {
"name": "Mizana Privnet",
"symbol": "MEER-p",
"symbol": "MEER-P",
"decimals": 18
},
"infoURL": "https://github.com/Qitmeer",
+28
View File
@@ -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;
-24
View File
@@ -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;
-24
View File
@@ -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;
+43
View File
@@ -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;
-28
View File
@@ -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;
+42
View File
@@ -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;
+28
View File
@@ -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;
+28
View File
@@ -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;
+40
View File
@@ -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;
+42
View File
@@ -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 -1
View File
@@ -1,6 +1,6 @@
{
"name": "@thirdweb-dev/chains",
"version": "0.1.11",
"version": "0.1.13",
"main": "dist/thirdweb-dev-chains.cjs.js",
"module": "dist/thirdweb-dev-chains.esm.js",
"browser": {
+2658 -1674
View File
File diff suppressed because one or more lines are too long
+19
View File
@@ -1,5 +1,24 @@
# 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
+1 -1
View File
@@ -1,7 +1,7 @@
{
"name": "thirdweb",
"main": "dist/cli/index.js",
"version": "0.10.11",
"version": "0.10.13",
"repository": "https://github.com/thirdweb-dev/js/tree/main/packages/cli",
"author": "thirdweb eng <[email protected]>",
"license": "Apache-2.0",
-4
View File
@@ -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);
});
+13 -11
View File
@@ -5,7 +5,7 @@ import {
getChainProvider,
} from "@thirdweb-dev/sdk";
import { ThirdwebStorage } from "@thirdweb-dev/storage";
import { spinner, info } from "../core/helpers/logger";
import { info } from "../core/helpers/logger";
import { allChains } from "@thirdweb-dev/chains";
import fs from "fs";
import prompts from "prompts";
@@ -95,9 +95,7 @@ export async function generate(options: GenerateOptions) {
}
// Attempt to download the ABI for each contract
const abiSpinner = spinner(
`Downloading ABIs for contracts configured in 'thirdweb.json'`,
);
ora(`Downloading ABIs for contracts configured in 'thirdweb.json'`).info();
const storage = new ThirdwebStorage();
const metadata: {
address: string;
@@ -115,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;
}
@@ -128,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 = [
@@ -176,11 +178,11 @@ export async function generate(options: GenerateOptions) {
fs.writeFileSync(typeFilePath, updatedFile);
}
abiSpinner.succeed(
`Downloaded and cached ABIs for ${contracts.length} smart contract${
contracts.length === 1 ? "" : "s"
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`;
+6
View File
@@ -1,5 +1,11 @@
# @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
+2 -2
View File
@@ -1,6 +1,6 @@
{
"name": "@thirdweb-dev/contracts-js",
"version": "1.3.3",
"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.6-1"
"@thirdweb-dev/contracts": "3.4.7-0"
},
"devDependencies": {
"@babel/preset-env": "^7.18.10",
+4 -1
View File
@@ -25,5 +25,8 @@
"sideEffects": false,
"files": [
"dist/"
]
],
"scripts": {
"push": "yalc push"
}
}
+73
View File
@@ -1,5 +1,78 @@
# @thirdweb-dev/react-core
## 3.11.9
### Patch Changes
- [#937](https://github.com/thirdweb-dev/js/pull/937) [`7012513b`](https://github.com/thirdweb-dev/js/commit/7012513bc20f283b2cde46c0b938af33fe3a1a20) Thanks [@iketw](https://github.com/iketw)! - [ReactNative] Adding Smart Wallet to React Native as an option in the ConnectWallet button
- [#941](https://github.com/thirdweb-dev/js/pull/941) [`5d67b280`](https://github.com/thirdweb-dev/js/commit/5d67b2807f2504add4c202d2eb18897415662fb6) Thanks [@MananTank](https://github.com/MananTank)! - Add Magic Link
- [#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
- [#955](https://github.com/thirdweb-dev/js/pull/955) [`c7c2530c`](https://github.com/thirdweb-dev/js/commit/c7c2530c7f2ef412f1e40428391e85decf504392) Thanks [@MananTank](https://github.com/MananTank)! - Local wallet UI refactor and other fixes
- [#927](https://github.com/thirdweb-dev/js/pull/927) [`1e9fad77`](https://github.com/thirdweb-dev/js/commit/1e9fad779f3ebe535d32c0ce76905a3a8033f2fa) Thanks [@MananTank](https://github.com/MananTank)! - safe, deviceWallet and smartWallet autoconnect
- 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), [`f12a80a4`](https://github.com/thirdweb-dev/js/commit/f12a80a4758aa91c43084acedb212de9f36a7371), [`bf6df267`](https://github.com/thirdweb-dev/js/commit/bf6df2671131d7ed38650e2bed806081b32dc244), [`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), [`8f962bc1`](https://github.com/thirdweb-dev/js/commit/8f962bc15c35da52ed5bc4025bb4cd18b69079e3), [`28b5d1eb`](https://github.com/thirdweb-dev/js/commit/28b5d1eb6d0142d3ebefb8bd078c30949f77fe61), [`0186721b`](https://github.com/thirdweb-dev/js/commit/0186721bc455aa1f8454839a1a25fa4062b45102), [`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), [`7af99d9a`](https://github.com/thirdweb-dev/js/commit/7af99d9a6d54492a29a90288a25b30773a8a10a7), [`00d0d01e`](https://github.com/thirdweb-dev/js/commit/00d0d01e619ff5c60b9f31386f51a55b5e466efa), [`fc96e147`](https://github.com/thirdweb-dev/js/commit/fc96e14750175b19cb66fa7d50cdbad65b42153a), [`8cfb4f38`](https://github.com/thirdweb-dev/js/commit/8cfb4f38ed89c26ad04f19d27c65c24cefa976b6)]:
- @thirdweb-dev/wallets@0.2.17
- @thirdweb-dev/chains@0.1.13
- @thirdweb-dev/sdk@3.10.12
- @thirdweb-dev/storage@1.1.2
## 3.11.8
### 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();
```
- [#892](https://github.com/thirdweb-dev/js/pull/892) [`4acb2b55`](https://github.com/thirdweb-dev/js/commit/4acb2b5561118dde5c7372400d4d754b879aef2e) Thanks [@MananTank](https://github.com/MananTank)! - Add Switch Account button for MetaMask
- [#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
- [#895](https://github.com/thirdweb-dev/js/pull/895) [`06cc1df3`](https://github.com/thirdweb-dev/js/commit/06cc1df3b7906584c9e2e69fddc4a2d831c237f9) Thanks [@MananTank](https://github.com/MananTank)! - Fix supportedChains not having the activeChain for wallets
- [#887](https://github.com/thirdweb-dev/js/pull/887) [`430a5f79`](https://github.com/thirdweb-dev/js/commit/430a5f793419173775a434e0b2a21f70223e3813) Thanks [@MananTank](https://github.com/MananTank)! - export Configurable NetworkSelector
- [#922](https://github.com/thirdweb-dev/js/pull/922) [`477324ec`](https://github.com/thirdweb-dev/js/commit/477324ec85b800dcbc54b709430c77fb63b16537) Thanks [@adam-maj](https://github.com/adam-maj)! - Add useAuth back to react-core
- Updated dependencies [[`abe88599`](https://github.com/thirdweb-dev/js/commit/abe88599b634699aa3b876fe344bfddc6c1a92d4), [`4acb2b55`](https://github.com/thirdweb-dev/js/commit/4acb2b5561118dde5c7372400d4d754b879aef2e), [`82bea3fa`](https://github.com/thirdweb-dev/js/commit/82bea3fa10294eb3c5c7327fb047e3d1b2c62ff9), [`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), [`664d1cd0`](https://github.com/thirdweb-dev/js/commit/664d1cd0dd03f32337c2cf532f0ad860e5aa5ea8), [`bfdd8493`](https://github.com/thirdweb-dev/js/commit/bfdd84939d7cf9c6635b83c971bcc8967b52538c), [`c2fec930`](https://github.com/thirdweb-dev/js/commit/c2fec930520e2df89532ec0027ead4563c7708cf)]:
- @thirdweb-dev/[email protected]
- @thirdweb-dev/[email protected]
- @thirdweb-dev/[email protected]
## 3.11.7
### Patch Changes
+1 -1
View File
@@ -1,6 +1,6 @@
{
"name": "@thirdweb-dev/react-core",
"version": "3.11.7",
"version": "3.11.9",
"repository": "https://github.com/thirdweb-dev/js/tree/main/packages/react-core",
"author": "thirdweb eng <[email protected]>",
"license": "Apache-2.0",
@@ -0,0 +1 @@
export const AUTH_TOKEN_STORAGE_KEY = "auth_token_storage_key";
@@ -3,7 +3,7 @@ import { useCallback, useState } from "react";
import { useActiveChain, useChainId } from "../../evm/hooks/wallet";
import { useSupportedChains } from "../../evm/hooks/useSupportedChains";
import { useSwitchChain, useWallet } from "./wallet-hooks";
import { assertWindowEthereum } from "@thirdweb-dev/wallets";
import { assertWindowEthereum, walletIds } from "@thirdweb-dev/wallets";
// this hook is only for backwards compatibility
@@ -72,10 +72,10 @@ export function useNetwork(): [NetworkMetadata, SwitchNetwork | undefined] {
// switch not supported if connected to a mobile wallet
const switchChainNotSupported =
!wallet ||
wallet.walletId === "walletConnectV1" ||
wallet.walletId === "walletConnect" ||
(wallet.walletId === "metamask" && !isMetamaskInstalled) ||
(wallet.walletId === "coinbaseWallet" && !isCoinbaseInstalled);
wallet.walletId === walletIds.walletConnectV1 ||
wallet.walletId === walletIds.walletConnect ||
(wallet.walletId === walletIds.metamask && !isMetamaskInstalled) ||
(wallet.walletId === walletIds.coinbase && !isCoinbaseInstalled);
// error when switching network
const [error, setError] = useState<Error | undefined>(undefined);
@@ -72,6 +72,23 @@ export function useConnectionStatus() {
return context.connectionStatus;
}
/**
*
* @returns if the wallet is currently connecting
*
*/
export function useIsConnecting() {
const context = useThirdwebWallet();
invariant(
context,
"useConnectionStatus() must be used within a <ThirdwebProvider/>",
);
return (
context.connectionStatus === "connecting" ||
context.connectionStatus === "unknown"
);
}
/**
*
* @returns a method to create an instance of given wallet class
@@ -67,9 +67,34 @@ export const ThirdwebProviderCore = <TChains extends Chain[]>({
createWalletStorage = createAsyncLocalStorage,
...props
}: React.PropsWithChildren<ThirdwebProviderCoreProps<TChains>>) => {
const supportedChainsNonNull = useMemo(() => {
return props.supportedChains || (defaultChains as any as TChains);
}, [props.supportedChains]);
const { activeChain } = props;
const supportedChainsNonNull: Chain[] = useMemo(() => {
const isActiveChainObject =
typeof activeChain === "object" && activeChain !== null;
if (!isActiveChainObject) {
return props.supportedChains || defaultChains;
}
if (!props.supportedChains) {
return [...defaultChains, activeChain];
}
const isActiveChainInSupportedChains = props.supportedChains.find(
(c) => c.chainId === activeChain.chainId,
);
// if activeChain is not in supportedChains - add it
if (!isActiveChainInSupportedChains) {
return [...props.supportedChains, activeChain];
}
// if active chain is in supportedChains - replace it with object in activeChain
return props.supportedChains.map((c) =>
c.chainId === activeChain.chainId ? activeChain : c,
);
}, [props.supportedChains, activeChain]);
const [supportedChainsWithKey, activeChainIdOrObjWithKey] =
useUpdateChainsWithApiKeys(
@@ -82,14 +107,27 @@ export const ThirdwebProviderCore = <TChains extends Chain[]>({
const activeChainWithKey = useMemo(() => {
if (typeof activeChainIdOrObjWithKey === "number") {
return supportedChainsWithKey.find(
const resolveChain = supportedChainsWithKey.find(
(chain) => chain.chainId === activeChainIdOrObjWithKey,
);
if (!resolveChain) {
throw new Error(
`Invalid chainId: ${activeChainIdOrObjWithKey}. It is not one of supportedChains`,
);
}
return resolveChain;
}
if (typeof activeChainIdOrObjWithKey === "string") {
return supportedChainsWithKey.find(
const resolvedChain = supportedChainsWithKey.find(
(chain) => chain.slug === activeChainIdOrObjWithKey,
);
if (!resolvedChain) {
throw new Error(
`Invalid chain: "${activeChainIdOrObjWithKey}". It is not one of supportedChains`,
);
}
return resolvedChain;
}
return activeChainIdOrObjWithKey;
@@ -3,6 +3,7 @@ import type { Wallet, WalletInstance } from "../types/wallet";
import { ThirdwebThemeContext } from "./theme-context";
import { Chain } from "@thirdweb-dev/chains";
import {
AbstractClientWallet,
AsyncStorage,
ConnectParams,
CreateAsyncStorage,
@@ -20,7 +21,18 @@ import {
} from "react";
const LAST_CONNECTED_WALLET_STORAGE_KEY = "lastConnectedWallet";
let coordinatorStorage: AsyncStorage;
let lastConnectedWalletStorage: AsyncStorage;
type LastConnectedWalletInfo = {
walletId: string;
connectParams?: ConnectParams & {
personalWallet?: {
walletId: string;
connectParams?: ConnectParams;
};
};
};
type NonNullable<T> = T extends null | undefined ? never : T;
type WalletConnectParams<I extends WalletInstance> = Parameters<
@@ -50,7 +62,7 @@ type ThirdwebWalletContextData = {
createWalletStorage: CreateAsyncStorage;
switchChain: (chain: number) => Promise<void>;
chainToConnect?: Chain;
activeChain?: Chain;
activeChain: Chain;
handleWalletConnect: (
wallet: WalletInstance,
params?: ConnectParams<Record<string, any>>,
@@ -63,7 +75,7 @@ const ThirdwebWalletContext = createContext<
export function ThirdwebWalletProvider(
props: PropsWithChildren<{
activeChain?: Chain;
activeChain: Chain;
supportedWallets: Wallet[];
shouldAutoConnect?: boolean;
createWalletStorage: CreateAsyncStorage;
@@ -80,8 +92,9 @@ export function ThirdwebWalletProvider(
WalletInstance | undefined
>();
if (!coordinatorStorage) {
coordinatorStorage = props.createWalletStorage("coordinatorStorage");
if (!lastConnectedWalletStorage) {
lastConnectedWalletStorage =
props.createWalletStorage("coordinatorStorage");
}
// if autoSwitch is enabled - enforce connection to activeChain
@@ -120,33 +133,47 @@ export function ThirdwebWalletProvider(
const handleWalletConnect = useCallback(
async (
wallet: WalletInstance,
params?: ConnectParams<Record<string, any>>,
connectParams?: ConnectParams<Record<string, any>>,
isAutoConnect = false,
) => {
const connectParams = params || walletParams;
const lastConnectedWallet = {
walletId: wallet.walletId,
connectParams,
};
try {
await coordinatorStorage.setItem(
LAST_CONNECTED_WALLET_STORAGE_KEY,
JSON.stringify(lastConnectedWallet),
);
} catch (e) {
console.error(e);
}
const _signer = await wallet.getSigner();
setSigner(_signer);
setActiveWallet(wallet);
setConnectionStatus("connected");
// it autoconnected, then the details is already saved in storage, no need to store again
if (isAutoConnect) {
return;
}
// save to storage
const walletInfo: LastConnectedWalletInfo = {
walletId: wallet.walletId,
connectParams,
};
// if personal wallet exists, we need to replace the connectParams.personalWallet to a stringifiable version
const personalWallet = wallet.getPersonalWallet() as AbstractClientWallet;
if (personalWallet) {
walletInfo.connectParams = {
...walletInfo.connectParams,
personalWallet: {
walletId: personalWallet.walletId,
connectParams: personalWallet.getConnectParams(),
},
};
saveLastConnectedWalletInfo(walletInfo);
} else {
saveLastConnectedWalletInfo(walletInfo);
}
},
[walletParams],
[],
);
const storeLastActiveChainId = useCallback(async (chainId: number) => {
const lastConnectedWallet = await coordinatorStorage.getItem(
const lastConnectedWallet = await lastConnectedWalletStorage.getItem(
LAST_CONNECTED_WALLET_STORAGE_KEY,
);
@@ -157,7 +184,7 @@ export function ThirdwebWalletProvider(
try {
const parsedWallet = JSON.parse(lastConnectedWallet as string);
parsedWallet.connectParams.chainId = chainId;
await coordinatorStorage.setItem(
await lastConnectedWalletStorage.setItem(
LAST_CONNECTED_WALLET_STORAGE_KEY,
JSON.stringify(parsedWallet),
);
@@ -206,52 +233,83 @@ export function ThirdwebWalletProvider(
}
autoConnectTriggered.current = true;
(async () => {
const lastConnectedWalletInfo = await coordinatorStorage.getItem(
LAST_CONNECTED_WALLET_STORAGE_KEY,
async function autoconnect() {
const walletInfo = await getLastConnectedWalletInfo();
if (!walletInfo) {
setConnectionStatus("disconnected");
return;
}
const walletObj = props.supportedWallets.find(
(W) => W.id === walletInfo.walletId,
);
if (!lastConnectedWalletInfo) {
if (!walletObj) {
// last connected wallet is no longer present in the supported wallets
setConnectionStatus("disconnected");
return;
}
let parsedParams: ConnectParams<Record<string, any>> | undefined;
let lastConnectedWalletId: string | undefined;
const personalWalletInfo = walletInfo.connectParams?.personalWallet;
try {
const parsedWallet = JSON.parse(lastConnectedWalletInfo as string);
parsedParams = parsedWallet.connectParams;
lastConnectedWalletId = parsedWallet.walletId;
} catch (error) {
console.error(`Error parsing the last connected wallet: ${error}`);
if (personalWalletInfo) {
type Config = {
personalWallets: Wallet[];
};
const personalWallets =
"config" in walletObj
? (walletObj.config as Config).personalWallets
: [];
const personalWalleObj = personalWallets.find(
(W) => W.id === personalWalletInfo.walletId,
);
if (personalWalleObj) {
// create a personal wallet instance and auto connect it
const personalWalletInstance = createWalletInstance(personalWalleObj);
try {
await personalWalletInstance.autoConnect(
personalWalletInfo.connectParams,
);
} catch (e) {
console.error(e);
setConnectionStatus("disconnected");
return;
}
// set the personal wallet instance to the connectParams
walletInfo.connectParams = {
...walletInfo.connectParams,
personalWallet: personalWalletInstance,
};
} else {
// last used personal wallet is no longer present in the supported wallets
setConnectionStatus("disconnected");
return;
}
}
if (!lastConnectedWalletId) {
setConnectionStatus("disconnected");
return;
}
// create a wallet instance and auto connect it
const wallet = createWalletInstance(walletObj);
let lastConnectedWallet = props.supportedWallets.find(
(W) => W.id === lastConnectedWalletId,
);
if (!lastConnectedWallet) {
setConnectionStatus("disconnected");
return;
}
const wallet = createWalletInstance(lastConnectedWallet);
try {
setConnectionStatus("connecting");
await wallet.autoConnect(parsedParams);
handleWalletConnect(wallet, parsedParams);
await wallet.autoConnect(walletInfo.connectParams);
handleWalletConnect(wallet, walletInfo.connectParams, true);
} catch (e) {
coordinatorStorage.removeItem(LAST_CONNECTED_WALLET_STORAGE_KEY);
lastConnectedWalletStorage.removeItem(
LAST_CONNECTED_WALLET_STORAGE_KEY,
);
setConnectionStatus("disconnected");
throw e;
}
})();
}
autoconnect();
}, [
createWalletInstance,
props.supportedWallets,
@@ -285,7 +343,9 @@ export function ThirdwebWalletProvider(
);
const onWalletDisconnect = useCallback(async () => {
await coordinatorStorage.removeItem(LAST_CONNECTED_WALLET_STORAGE_KEY);
await lastConnectedWalletStorage.removeItem(
LAST_CONNECTED_WALLET_STORAGE_KEY,
);
setConnectionStatus("disconnected");
setSigner(undefined);
setActiveWallet(undefined);
@@ -299,6 +359,12 @@ export function ThirdwebWalletProvider(
}
await activeWallet.disconnect();
if (activeWallet.getPersonalWallet()) {
await (
activeWallet.getPersonalWallet() as AbstractClientWallet
)?.disconnect();
}
onWalletDisconnect();
}, [activeWallet, onWalletDisconnect]);
@@ -351,5 +417,35 @@ export function ThirdwebWalletProvider(
}
export function useThirdwebWallet() {
return useContext(ThirdwebWalletContext);
const ctx = useContext(ThirdwebWalletContext);
if (!ctx) {
throw new Error(
`useThirdwebWallet() can only be used inside <ThirdwebProvider />`,
);
}
return ctx;
}
async function getLastConnectedWalletInfo() {
const str = await lastConnectedWalletStorage.getItem(
LAST_CONNECTED_WALLET_STORAGE_KEY,
);
if (!str) {
return null;
}
return JSON.parse(str) as LastConnectedWalletInfo;
}
async function saveLastConnectedWalletInfo(
walletInfo: LastConnectedWalletInfo,
) {
try {
await lastConnectedWalletStorage.setItem(
LAST_CONNECTED_WALLET_STORAGE_KEY,
JSON.stringify(walletInfo),
);
} catch (e) {
console.error("Error saving the last connected wallet info", e);
}
}
+9 -2
View File
@@ -23,8 +23,15 @@ export type WalletClass<I extends WalletInstance = WalletInstance> = {
meta: (typeof AbstractClientWallet)["meta"];
};
export type Wallet<I extends WalletInstance = WalletInstance> = {
export type Wallet<
I extends WalletInstance = WalletInstance,
Config extends Record<string, any> | undefined = undefined,
> = {
id: string;
meta: (typeof AbstractClientWallet)["meta"];
create: (options: WalletOptions) => I;
};
} & (Config extends undefined
? {}
: {
config: Config;
});
@@ -5,8 +5,12 @@ import { getChainRPCs, ChainRPCOptions, Chain } from "@thirdweb-dev/chains";
* use the keys and return a new chain object with updated RPCs
*/
export const updateChainRPCs = (chain: Chain, options: ChainRPCOptions) => {
return {
...chain,
rpc: getChainRPCs(chain, options),
};
try {
return {
...chain,
rpc: getChainRPCs(chain, options),
};
} catch (error) {
return chain;
}
};
@@ -5,6 +5,12 @@ import React, {
useMemo,
} from "react";
export interface ISecureStorage {
getItem(key: string): Promise<string | null>;
setItem(key: string, value: string): Promise<void>;
removeItem(key: string): Promise<void>;
}
/**
* The configuration to use the react SDK with an [auth](https://portal.thirdweb.com/auth) server.
*
@@ -22,6 +28,17 @@ export interface ThirdwebAuthConfig {
* This domain should match the domain used on your auth backend.
*/
domain: string;
/**
* Secure storage to use for storing the auth token when using JWT tokens.
*
* Do not use a storage option that stores values accessible outside
* your aplication (like localStorage on web environments) since you may
* be exposing your auth token to malicious actors.
*
* ** By default auth uses cookies so no need to set this unless you want to specifically use JWT tokens **
*/
secureStorage?: ISecureStorage;
}
interface ThirdwebAuthContext extends ThirdwebAuthConfig {}
@@ -65,6 +65,7 @@ export type SetClaimConditionsParams = {
* @param tokenId - the id of the token to fetch the claim conditions for (if the contract is an ERC1155 contract)
* @returns a response object with the currently active claim condition
* @twfeature ERC20ClaimPhasesV2 | ERC20ClaimPhasesV1 | ERC20ClaimConditionsV2 | ERC20ClaimConditionsV1 | ERC721ClaimPhasesV2 | ERC721ClaimPhasesV1 | ERC721ClaimConditionsV2 | ERC721ClaimConditionsV1 | ERC1155ClaimPhasesV2 | ERC1155ClaimPhasesV1 | ERC1155ClaimConditionsV2 | ERC1155ClaimConditionsV1
* @see {@link https://portal.thirdweb.com/react/react.useactiveclaimcondition?utm_source=sdk | Documentation}
* @beta
*/
export function useActiveClaimCondition(
@@ -120,6 +121,7 @@ export function useActiveClaimCondition(
* @param claimConditionId - optional the claim condition id to get the proofs for
* @returns a response object with the snapshot for the provided address
* @twfeature ERC20ClaimPhasesV2 | ERC20ClaimPhasesV1 | ERC20ClaimConditionsV2 | ERC20ClaimConditionsV1 | ERC721ClaimPhasesV2 | ERC721ClaimPhasesV1 | ERC721ClaimConditionsV2 | ERC721ClaimConditionsV1 | ERC1155ClaimPhasesV2 | ERC1155ClaimPhasesV1 | ERC1155ClaimConditionsV2 | ERC1155ClaimConditionsV1
* @see {@link https://portal.thirdweb.com/react/react.useclaimerproofs?utm_source=sdk | Documentation}
* @beta
*/
export function useClaimerProofs(
@@ -183,6 +185,7 @@ export function useClaimerProofs(
* @param tokenId - the id of the token to fetch the claim conditions for (if the contract is an ERC1155 contract)
* @returns a response object with the list of claim conditions
* @twfeature ERC20ClaimPhasesV2 | ERC20ClaimPhasesV1 | ERC20ClaimConditionsV2 | ERC20ClaimConditionsV1 | ERC721ClaimPhasesV2 | ERC721ClaimPhasesV1 | ERC721ClaimConditionsV2 | ERC721ClaimConditionsV1 | ERC1155ClaimPhasesV2 | ERC1155ClaimPhasesV1 | ERC1155ClaimConditionsV2 | ERC1155ClaimConditionsV1
* @see {@link https://portal.thirdweb.com/react/react.useclaimconditions?utm_source=sdk | Documentation}
* @beta
*/
export function useClaimConditions(
@@ -237,6 +240,7 @@ export function useClaimConditions(
* @param tokenId - the id of the token to fetch the claim conditions for (if the contract is an ERC1155 contract)
* @returns a response object with the reasons for the claim ineligibility
* @twfeature ERC20ClaimPhasesV2 | ERC20ClaimPhasesV1 | ERC20ClaimConditionsV2 | ERC20ClaimConditionsV1 | ERC721ClaimPhasesV2 | ERC721ClaimPhasesV1 | ERC721ClaimConditionsV2 | ERC721ClaimConditionsV1 | ERC1155ClaimPhasesV2 | ERC1155ClaimPhasesV1 | ERC1155ClaimConditionsV2 | ERC1155ClaimConditionsV1
* @see {@link https://portal.thirdweb.com/react/react.useclaimineligibilityreasons?utm_source=sdk | Documentation}
* @beta
*/
export function useClaimIneligibilityReasons(
@@ -306,7 +310,7 @@ export function useClaimIneligibilityReasons(
* @param tokenId - the id of the token to fetch the claim conditions for (if the contract is an ERC1155 contract)
* @returns the active claim conditon for the wallet address or null if there is no active claim condition
* @twfeature ERC20ClaimPhasesV2 | ERC20ClaimPhasesV1 | ERC20ClaimConditionsV2 | ERC20ClaimConditionsV1 | ERC721ClaimPhasesV2 | ERC721ClaimPhasesV1 | ERC721ClaimConditionsV2 | ERC721ClaimConditionsV1 | ERC1155ClaimPhasesV2 | ERC1155ClaimPhasesV1 | ERC1155ClaimConditionsV2 | ERC1155ClaimConditionsV1
*
* @see {@link https://portal.thirdweb.com/react/react.useactiveclaimconditionforwallet?utm_source=sdk | Documentation}
* @beta
*/
export function useActiveClaimConditionForWallet(
@@ -462,6 +466,7 @@ export function useActiveClaimConditionForWallet(
* @param contract - an instance of a {@link DropContract}
* @returns a mutation object that can be used to set claim conditions
* @twfeature ERC20ClaimPhasesV2 | ERC20ClaimPhasesV1 | ERC20ClaimConditionsV2 | ERC20ClaimConditionsV1 | ERC721ClaimPhasesV2 | ERC721ClaimPhasesV1 | ERC721ClaimConditionsV2 | ERC721ClaimConditionsV1 | ERC1155ClaimPhasesV2 | ERC1155ClaimPhasesV1 | ERC1155ClaimConditionsV2 | ERC1155ClaimConditionsV1
* @see {@link https://portal.thirdweb.com/react/react.usesetclaimconditions?utm_source=sdk | Documentation}
* @beta
*/
export function useSetClaimConditions(
@@ -36,6 +36,7 @@ import invariant from "tiny-invariant";
* @param contract - an instance of a {@link SmartContract}
* @returns the wallet address of the primary sales recipient
* @twfeature PrimarySale
* @see {@link https://portal.thirdweb.com/react/react.useprimarysalerecipient?utm_source=sdk | Documentation}
* @beta
*/
export function usePrimarySaleRecipient(
@@ -87,6 +88,7 @@ export function usePrimarySaleRecipient(
* @param contract - an instance of a {@link SmartContract}
* @returns a mutation object that can be used to update the primary sales recipient
* @twfeature PrimarySale
* @see {@link https://portal.thirdweb.com/react/react.useupdateprimarysalerecipient?utm_source=sdk | Documentation}
* @beta
*/
export function useUpdatePrimarySaleRecipient(
@@ -137,6 +139,7 @@ export function useUpdatePrimarySaleRecipient(
* @param contract - an instance of a {@link SmartContract}
* @returns an object containing recipient address and the royalty basis points
* @twfeature Royalty
* @see {@link https://portal.thirdweb.com/react/react.useroyaltysettings?utm_source=sdk | Documentation}
* @beta
*/
export function useRoyaltySettings(
@@ -188,6 +191,7 @@ export function useRoyaltySettings(
* @param contract - an instance of a {@link SmartContract}
* @returns a mutation object that can be used to update the royalty settings
* @twfeature Royalty
* @see {@link https://portal.thirdweb.com/react/react.useupdateroyaltysettings?utm_source=sdk | Documentation}
* @beta
*/
export function useUpdateRoyaltySettings(
@@ -234,6 +238,7 @@ export function useUpdateRoyaltySettings(
* @param contract - an instance of a {@link SmartContract}
* @returns an object containing the platform fee basis points and the fee recipient address
* @twfeature PlatformFee
* @see {@link https://portal.thirdweb.com/react/react.useplatformfees?utm_source=sdk | Documentation}
* @beta
*/
export function usePlatformFees(
@@ -284,6 +289,7 @@ export function usePlatformFees(
* @param contract - an instance of a {@link SmartContract}
* @returns a mutation object that can be used to update the platform fees settings
* @twfeature PlatformFee
* @see {@link https://portal.thirdweb.com/react/react.useupdateplatformfees?utm_source=sdk | Documentation}
* @beta
*/
export function useUpdatePlatformFees(
@@ -329,6 +335,7 @@ export function useUpdatePlatformFees(
*
* @param contract - an instance of a {@link SmartContract}
* @returns a {@link CustomContractMetadata} object containing the metadata
* @see {@link https://portal.thirdweb.com/react/react.usemetadata?utm_source=sdk | Documentation}
* @beta
*/
export function useMetadata(
@@ -382,6 +389,7 @@ export function useMetadata(
* ```
* @param contract - an instance of a {@link SmartContract}
* @returns a mutation object that can be used to update the metadata
* @see {@link https://portal.thirdweb.com/react/react.useupdatemetadata?utm_source=sdk | Documentation}
* @beta
*/
export function useUpdateMetadata(
@@ -160,6 +160,7 @@ export type UseContractResult<
*
* @param contractAddress - the address of the deployed contract
* @returns a response object that includes the contract once it is resolved
* @see {@link https://portal.thirdweb.com/react/react.usecontract?utm_source=sdk | Documentation}
* @public
*/
export function useContract(
@@ -177,6 +178,7 @@ export function useContract(
* @param contractAddress - the address of the deployed contract
* @param _contractType - the type of the contract
* @returns a response object that includes the contract once it is resolved
* @see {@link https://portal.thirdweb.com/react/react.usecontract?utm_source=sdk | Documentation}
* @public
*/
export function useContract<TContractType extends ContractType>(
@@ -199,6 +201,7 @@ export function useContract<TContractType extends ContractType>(
* @param contractAddress - the address of the deployed contract
* @param _abi - the ABI of the contract to use
* @returns a response object that includes the contract once it is resolved
* @see {@link https://portal.thirdweb.com/react/react.usecontract?utm_source=sdk | Documentation}
* @public
*/
@@ -409,6 +412,7 @@ export function useContractMetadataUpdate(
* @param eventName - the name of the event to query for (omit this or pass `undefined` to query for all events)
* @param options - options includes the filters ({@link QueryAllEvents}) for the query as well as if you want to subscribe to real-time updates (default: true)
* @returns a response object that includes the contract events
* @see {@link https://portal.thirdweb.com/react/react.usecontractevents?utm_source=sdk | Documentation}
* @beta
*/
export function useContractEvents(
@@ -506,7 +510,7 @@ export function useContractEvents(
* @param functionName - the name of the function to call
* @param args - The arguments to pass to the function (if any), with optional call arguments as the last parameter
* @returns a response object that includes the data returned by the function call
*
* @see {@link https://portal.thirdweb.com/react/react.usecontractread?utm_source=sdk | Documentation}
* @beta
*/
export function useContractRead<
@@ -553,7 +557,7 @@ export function useContractRead<
* @param contract - the contract instance of the contract to call a function on
* @param functionName - the name of the function to call
* @returns a response object that includes the write function to call
*
* @see {@link https://portal.thirdweb.com/react/react.usecontractwrite?utm_source=sdk | Documentation}
* @beta
*/
export function useContractWrite<
@@ -51,6 +51,7 @@ import invariant from "tiny-invariant";
* @param queryParams - query params to pass to the query for the sake of pagination
* @returns a response object that includes an array of NFTs that are unclaimed
* @twfeature ERC721LazyMintable
* @see {@link https://portal.thirdweb.com/react/react.useunclaimednfts?utm_source=sdk | Documentation}
* @beta
*/
export function useUnclaimedNFTs(
@@ -87,6 +88,7 @@ export function useUnclaimedNFTs(
* @param queryParams - query params to pass to the query for the sake of pagination
* @returns a response object that includes an array of NFTs that are claimed
* @twfeature ERC721LazyMintable
* @see {@link https://portal.thirdweb.com/react/react.useclaimednfts?utm_source=sdk | Documentation}
* @beta
*/
export function useClaimedNFTs(
@@ -114,6 +116,7 @@ export function useClaimedNFTs(
* @param contract - an instance of a contract that extends the ERC721 spec (NFT drop, Signature Drop, or any custom contract that extends the ERC721 spec)
* @returns a response object that includes the number of NFTs that are unclaimed
* @twfeature ERC721LazyMintable
* @see {@link https://portal.thirdweb.com/react/react.useunclaimednftsupply?utm_source=sdk | Documentation}
*/
export function useUnclaimedNFTSupply(
contract: RequiredParam<NFTDrop | SignatureDrop | SmartContract | null>,
@@ -140,6 +143,7 @@ export function useUnclaimedNFTSupply(
* @param contract - an instance of a contract that extends the ERC721 spec (NFT drop, Signature Drop, or any custom contract that extends the ERC721 spec)
* @returns a response object that includes the number of NFTs that are claimed
* @twfeature ERC721LazyMintable
* @see {@link https://portal.thirdweb.com/react/react.useclaimednftsupply?utm_source=sdk | Documentation}
*/
export function useClaimedNFTSupply(
contract: RequiredParam<NFTDrop | SignatureDrop | SmartContract | null>,
@@ -165,6 +169,7 @@ export function useClaimedNFTSupply(
* @param contract - an instance of a {@link RevealableContract}
* @returns a response object that gets the batches to still be revealed
* @twfeature ERC721Revealable | ERC1155Revealable
* @see {@link https://portal.thirdweb.com/react/react.usebatchestoreveal?utm_source=sdk | Documentation}
*/
export function useBatchesToReveal<TContract extends RevealableContract>(
contract: RequiredParam<TContract>,
@@ -220,6 +225,7 @@ export function useBatchesToReveal<TContract extends RevealableContract>(
* @param contract - an instance of a {@link DropContract}
* @returns a mutation object that can be used to claim a NFT to the wallet specificed in the params
* @twfeature ERC721Claimable | ERC1155Claimable | ERC721ClaimPhasesV2 | ERC721ClaimPhasesV1 | ERC721ClaimConditionsV2 | ERC721ClaimConditionsV1 | ERC1155ClaimPhasesV2 | ERC1155ClaimPhasesV1 | ERC1155ClaimConditionsV2 | ERC1155ClaimConditionsV1
* @see {@link https://portal.thirdweb.com/react/react.useclaimnft?utm_source=sdk | Documentation}
* @beta
*/
export function useClaimNFT<TContract extends DropContract>(
@@ -309,6 +315,7 @@ export function useClaimNFT<TContract extends DropContract>(
* @param onProgress - an optional callback that will be called with the progress of the upload
* @returns a mutation object that can be used to lazy mint a batch of NFTs
* @twfeature ERC721LazyMintable | ERC1155LazyMintable
* @see {@link https://portal.thirdweb.com/react/react.uselazymint?utm_source=sdk | Documentation}
* @beta
*/
export function useLazyMint<TContract extends DropContract>(
@@ -381,6 +388,7 @@ export function useLazyMint<TContract extends DropContract>(
* @param onProgress - an optional callback that will be called with the progress of the upload
* @returns a mutation object that can be used to lazy mint a batch of NFTs
* @twfeature ERC721Revealable | ERC1155Revealable
* @see {@link https://portal.thirdweb.com/react/react.usedelayedreveallazymint?utm_source=sdk | Documentation}
* @beta
*/
export function useDelayedRevealLazyMint<TContract extends RevealableContract>(
@@ -461,6 +469,7 @@ export function useDelayedRevealLazyMint<TContract extends RevealableContract>(
* @param contract - an instance of a {@link RevealableContract}
* @returns a mutation object that can be used to reveal a batch of delayed reveal NFTs
* @twfeature ERC721Revealable | ERC1155Revealable
* @see {@link https://portal.thirdweb.com/react/react.usereveallazymint?utm_source=sdk | Documentation}
* @beta
*/
export function useRevealLazyMint<TContract extends RevealableContract>(
@@ -54,6 +54,7 @@ import invariant from "tiny-invariant";
* @param contract - an instance of a marketplace contract
* @param listingId - the listing id to check
* @returns a response object that includes the desired listing
* @see {@link https://portal.thirdweb.com/react/react.uselisting?utm_source=sdk | Documentation}
* @beta
*/
export function useListing(
@@ -88,6 +89,7 @@ export function useListing(
* @param listingId - the listing id to check
* @returns a response object that includes the desired direct listing
* @twfeature DirectListings
* @see {@link https://portal.thirdweb.com/react/react.usedirectlisting?utm_source=sdk | Documentation}
*/
export function useDirectListing(
contract: RequiredParam<MarketplaceV3>,
@@ -124,6 +126,7 @@ export function useDirectListing(
* @param auctionId - the auction id to check
* @returns a response object that includes the desired english auction
* @twfeature EnglishAuctions
* @see {@link https://portal.thirdweb.com/react/react.useenglishauctions?utm_source=sdk | Documentation}
*/
export function useEnglishAuction(
contract: RequiredParam<MarketplaceV3>,
@@ -158,6 +161,7 @@ export function useEnglishAuction(
* @param contract - an instance of a marketplace contract
* @param filter - filter to pass to the query for the sake of pagination & filtering
* @returns a response object that includes an array of listings
* @see {@link https://portal.thirdweb.com/react/react.uselistings?utm_source=sdk | Documentation}
* @beta
*/
export function useListings(
@@ -190,6 +194,7 @@ export function useListings(
* @param filter - filter to pass to the query for the sake of pagination & filtering
* @returns a response object that includes an array of direct listings
* @twfeature DirectListings
* @see {@link https://portal.thirdweb.com/react/react.usedirectlistings?utm_source=sdk | Documentation}
*/
export function useDirectListings(
contract: RequiredParam<MarketplaceV3>,
@@ -224,6 +229,7 @@ export function useDirectListings(
* @param filter - filter to pass to the query for the sake of pagination & filtering
* @returns a response object that includes an array of direct listings
* @twfeature DirectListings
* @see {@link https://portal.thirdweb.com/react/react.usevaliddirectlistings?utm_source=sdk | Documentation}
*/
export function useValidDirectListings(
contract: RequiredParam<MarketplaceV3>,
@@ -258,6 +264,7 @@ export function useValidDirectListings(
* @param filter - filter to pass to the query for the sake of pagination & filtering
* @returns a response object that includes an array of english auctions
* @twfeature EnglishAuctions
* @see {@link https://portal.thirdweb.com/react/react.useenglishauctions?utm_source=sdk | Documentation}
*/
export function useEnglishAuctions(
contract: RequiredParam<MarketplaceV3>,
@@ -292,6 +299,7 @@ export function useEnglishAuctions(
* @param filter - filter to pass to the query for the sake of pagination & filtering
* @returns a response object that includes an array of english auctions
* @twfeature EnglishAuctions
* @see {@link https://portal.thirdweb.com/react/react.usevalidenglishauctions?utm_source=sdk | Documentation}
*/
export function useValidEnglishAuctions(
contract: RequiredParam<MarketplaceV3>,
@@ -324,6 +332,7 @@ export function useValidEnglishAuctions(
*
* @param contract - an instance of a marketplace contract
* @returns a response object that includes the listing count
* @see {@link https://portal.thirdweb.com/react/react.uselistingscount?utm_source=sdk | Documentation}
* @beta
*/
export function useListingsCount(contract: RequiredParam<Marketplace>) {
@@ -351,6 +360,7 @@ export function useListingsCount(contract: RequiredParam<Marketplace>) {
* @param contract - an instance of a marketplace v3 contract
* @returns a response object that includes the direct listings count
* @twfeature DirectListings
* @see {@link https://portal.thirdweb.com/react/react.usedirectlistingscount?utm_source=sdk | Documentation}
*/
export function useDirectListingsCount(contract: RequiredParam<MarketplaceV3>) {
const contractAddress = contract?.getAddress();
@@ -379,6 +389,7 @@ export function useDirectListingsCount(contract: RequiredParam<MarketplaceV3>) {
* @param contract - an instance of a marketplace v3 contract
* @returns a response object that includes the direct english actions count
* @twfeature EnglishAuctions
* @see {@link https://portal.thirdweb.com/react/react.useenglishauctionscount?utm_source=sdk | Documentation}
*/
export function useEnglishAuctionsCount(
contract: RequiredParam<MarketplaceV3>,
@@ -409,6 +420,7 @@ export function useEnglishAuctionsCount(
* @param contract - an instance of a marketplace contract
* @param filter - filter to pass to the query for the sake of pagination & filtering
* @returns a response object that includes an array of listings
* @see {@link https://portal.thirdweb.com/react/react.useactivelistings?utm_source=sdk | Documentation}
* @beta
*/
export function useActiveListings(
@@ -442,6 +454,7 @@ export function useActiveListings(
* @param contract - an instance of a marketplace contract
* @param listingId - the listing id to check
* @returns a response object that includes the {@link Offer} that is winning the auction
* @see {@link https://portal.thirdweb.com/react/react.usewinningbid?utm_source=sdk | Documentation}
* @beta
*/
export function useWinningBid(
@@ -482,6 +495,7 @@ export function useWinningBid(
* @param auctionId - the auction id to check
* @returns a response object that includes the {@link Bid} that is winning the auction
* @twfeature EnglishAuctions
* @see {@link https://portal.thirdweb.com/react/react.useenglishauctionwinningbid?utm_source=sdk | Documentation}
*/
export function useEnglishAuctionWinningBid(
contract: RequiredParam<MarketplaceV3>,
@@ -521,6 +535,7 @@ export function useEnglishAuctionWinningBid(
* @param listingId - the listing id to check
* @returns a response object that includes the address of the winner of the auction or undefined if there is no winner yet
* @twfeature EnglishAuctions
* @see {@link https://portal.thirdweb.com/react/react.useauctionwinner?utm_source=sdk | Documentation}
*/
export function useAuctionWinner(
contract: RequiredParam<Marketplace | MarketplaceV3>,
@@ -572,6 +587,7 @@ export function useAuctionWinner(
* @returns a response object that includes an array of listings
* @twfeature EnglishAuctions
* @see {@link https://portal.thirdweb.com/react/react.usebidbuffer?utm_source=sdk | Documentation}
*/
export function useBidBuffer(
contract: RequiredParam<Marketplace | MarketplaceV3>,
@@ -622,6 +638,7 @@ export function useBidBuffer(
* @param listingId - the listing id to check
* @returns a response object that includes the minimum next bid for the auction listing
* @twfeature EnglishAucton
* @see {@link https://portal.thirdweb.com/react/react.useminimumnextbid?utm_source=sdk | Documentation}
*/
export function useMinimumNextBid(
contract: RequiredParam<Marketplace | MarketplaceV3>,
@@ -672,6 +689,7 @@ export function useMinimumNextBid(
*
* @param contract - an instance of a Marketplace contract
* @param listingId - the id of the listing to fetch offers for
* @see {@link https://portal.thirdweb.com/react/react.useoffers?utm_source=sdk | Documentation}
* @beta
*/
export function useOffers(
@@ -722,6 +740,7 @@ export function useOffers(
* @param contract - an instance of a Marketplace contract
* @returns a mutation object that can be used to create a new direct listing
* @twfeature DirectListings
* @see {@link https://portal.thirdweb.com/react/react.usecreatedirectlisting?utm_source=sdk | Documentation}
*/
export function useCreateDirectListing<
TMarketplace extends Marketplace | MarketplaceV3,
@@ -800,6 +819,7 @@ export function useCreateDirectListing<
* @param contract - an instance of a Marketplace contract
* @returns a mutation object that can be used to create a new auction listing
* @twfeature EnglishAuctions
* @see {@link https://portal.thirdweb.com/react/react.usecreateauctionlisting?utm_source=sdk | Documentation}
*/
export function useCreateAuctionListing<
TMarketplace extends Marketplace | MarketplaceV3,
@@ -877,6 +897,7 @@ export function useCreateAuctionListing<
*
* @param contract - an instance of a Marketplace contract
* @returns a mutation object that can be used to cancel a listing
* @see {@link https://portal.thirdweb.com/react/react.usecancellisting?utm_source=sdk | Documentation}
* @beta
*/
export function useCancelListing(
@@ -958,6 +979,7 @@ export function useCancelListing(
* @param contract - an instance of a Marketplace v3 contract
* @returns a mutation object that can be used to cancel a direct listing
* @twfeature DirectListings
* @see {@link https://portal.thirdweb.com/react/react.usecanceldirectlisting?utm_source=sdk | Documentation}
*/
export function useCancelDirectListing(contract: RequiredParam<MarketplaceV3>) {
const activeChainId = useSDKChainId();
@@ -1018,6 +1040,7 @@ export function useCancelDirectListing(contract: RequiredParam<MarketplaceV3>) {
* @param contract - an instance of a Marketplace v3 contract
* @returns a mutation object that can be used to cancel an english auction
* @twfeature EnglishAuctions
* @see {@link https://portal.thirdweb.com/react/react.usecancelenglishauction?utm_source=sdk | Documentation}
*/
export function useCancelEnglishAuction(
contract: RequiredParam<MarketplaceV3>,
@@ -1079,6 +1102,7 @@ export function useCancelEnglishAuction(
*
* @param contract - an instance of a Marketplace contract
* @returns a mutation object that can be used to make a bid on an auction listing
* @see {@link https://portal.thirdweb.com/react/react.usemakebid?utm_source=sdk | Documentation}
* @beta
*/
export function useMakeBid(contract: RequiredParam<Marketplace>) {
@@ -1137,6 +1161,7 @@ export function useMakeBid(contract: RequiredParam<Marketplace>) {
*
* @param contract - an instance of a Marketplace contract
* @returns a mutation object that can be used to make a bid on an auction listing
* @see {@link https://portal.thirdweb.com/react/react.usemakeoffer?utm_source=sdk | Documentation}
* @beta
*/
export function useMakeOffer(contract: RequiredParam<Marketplace>) {
@@ -1197,6 +1222,7 @@ export function useMakeOffer(contract: RequiredParam<Marketplace>) {
*
* @param contract - an instance of a Marketplace contract
* @returns a mutation object that can be used to accept an offer on a direct listing
* @see {@link https://portal.thirdweb.com/react/react.useacceptdirectlistingoffer?utm_source=sdk | Documentation}
*/
export function useAcceptDirectListingOffer(
contract: RequiredParam<Marketplace>,
@@ -1255,6 +1281,7 @@ export function useAcceptDirectListingOffer(
*
* @param contract - an instance of a Marketplace contract
* @returns a mutation object that can be used to accept an offer on a direct listing
* @see {@link https://portal.thirdweb.com/react/react.useexecuteauctionsale?utm_source=sdk | Documentation}
* @beta
*/
export function useExecuteAuctionSale(contract: RequiredParam<Marketplace>) {
@@ -1312,6 +1339,7 @@ export function useExecuteAuctionSale(contract: RequiredParam<Marketplace>) {
*
* @param contract - an instance of a Marketplace contract
* @returns a mutation object that can be used to buy out an auction listing
* @see {@link https://portal.thirdweb.com/react/react.usebuynow?utm_source=sdk | Documentation}
* @beta
*/
export function useBuyNow(contract: RequiredParam<Marketplace>) {
@@ -46,6 +46,7 @@ import invariant from "tiny-invariant";
* @returns a response object that includes the metadata for the given tokenId
* @beta
* @twfeature ERC721 | ERC1155
* @see {@link https://portal.thirdweb.com/react/react.usenft?utm_source=sdk | Documentation}
*/
export function useNFT<TContract extends NFTContract>(
contract: RequiredParam<TContract>,
@@ -88,6 +89,7 @@ export function useNFT<TContract extends NFTContract>(
* @returns a response object that includes an array of NFTs
* @twfeature ERC721Supply | ERC721Enumerable | ERC1155Enumerable
* @beta
* @see {@link https://portal.thirdweb.com/react/react.usenfts?utm_source=sdk | Documentation}
*/
export function useNFTs<TContract extends NFTContract>(
contract: RequiredParam<TContract>,
@@ -130,6 +132,7 @@ export function useNFTs<TContract extends NFTContract>(
* @returns a response object that includes the total count of NFTs
* @beta
* @twfeature ERC721Supply | ERC1155Enumerable
* @see {@link https://portal.thirdweb.com/react/react.usetotalcount?utm_source=sdk | Documentation}
*/
export function useTotalCount<TContract extends NFTContract>(
contract: RequiredParam<TContract>,
@@ -178,6 +181,7 @@ export function useTotalCount<TContract extends NFTContract>(
* @returns a response object that includes the total minted supply
* @beta
* @twfeature ERC721Supply | ERC1155Enumerable
* @see {@link https://portal.thirdweb.com/react/react.usetotalcirculatingsupply?utm_source=sdk | Documentation}
*/
export function useTotalCirculatingSupply(
contract: RequiredParam<NFTContract>,
@@ -227,6 +231,7 @@ export function useTotalCirculatingSupply(
* @returns a response object that includes the list of owned tokens
* @beta
* @twfeature ERC721Enumerable | ERC1155Enumerable | ERC721Supply
* @see {@link https://portal.thirdweb.com/react/react.useownednfts?utm_source=sdk | Documentation}
*/
export function useOwnedNFTs<TContract extends NFTContract>(
contract: RequiredParam<TContract>,
@@ -270,6 +275,7 @@ export function useOwnedNFTs<TContract extends NFTContract>(
* @param tokenId - required for ERC1155, the tokenId to look up
* @returns a response object that includes the total balance of the owner
* @twfeature ERC721 | ERC1155
* @see {@link https://portal.thirdweb.com/react/react.usenftbalance?utm_source=sdk | Documentation}
* @beta
*/
export function useNFTBalance(
@@ -348,6 +354,7 @@ export function useNFTBalance(
* @returns a mutation object that can be used to mint a new NFT token to the connected wallet
* @beta
* @twfeature ERC721Mintable | ERC1155Mintable
* @see {@link https://portal.thirdweb.com/react/react.usemintnft?utm_source=sdk | Documentation}
*/
export function useMintNFT<TContract extends NFTContract>(
contract: RequiredParam<TContract>,
@@ -420,6 +427,7 @@ export function useMintNFT<TContract extends NFTContract>(
* @returns a mutation object that can be used to mint a more supply of a token id to the provided wallet
* @beta
* @twfeature ERC1155Mintable
* @see {@link https://portal.thirdweb.com/react/react.usemintnftsupply?utm_source=sdk | Documentation}
*/
export function useMintNFTSupply(contract: Erc1155) {
const activeChainId = useSDKChainId();
@@ -486,6 +494,7 @@ export function useMintNFTSupply(contract: Erc1155) {
* @returns a mutation object that can be used to transfer NFTs
* @beta
* @twfeature ERC721 | ERC1155
* @see {@link https://portal.thirdweb.com/react/react.usetransfernft?utm_source=sdk | Documentation}
*/
export function useTransferNFT<TContract extends NFTContract>(
contract: RequiredParam<TContract>,
@@ -569,6 +578,7 @@ export function useTransferNFT<TContract extends NFTContract>(
* @param contract - an instance of a {@link Erc1155}
* @returns a mutation object that can be used to transfer batch NFTs
* @twfeature ERC1155
* @see {@link https://portal.thirdweb.com/react/react.useairdropnft?utm_source=sdk | Documentation}
* @beta
*/
export function useAirdropNFT(contract: Erc1155) {
@@ -629,6 +639,7 @@ export function useAirdropNFT(contract: Erc1155) {
* @param contract - an instance of a {@link NFTContract}
* @returns a mutation object that can be used to burn an NFT token from the connected wallet
* @twfeature ERC721Burnable | ERC1155Burnable
* @see {@link https://portal.thirdweb.com/react/react.useburnnft?utm_source=sdk | Documentation}
* @beta
*/
export function useBurnNFT<TContract extends NFTContract>(
@@ -55,6 +55,7 @@ type GetAllReturnType<TContract extends ContractWithRoles> = Promise<
* @param contract - an instance of a {@link SmartContract}
* @returns a list of addresses for all supported roles on the contract.
* @twfeature PermissionsEnumerable
* @see {@link https://portal.thirdweb.com/react/react.useallrolemembers?utm_source=sdk | Documentation}
* @beta
*/
export function useAllRoleMembers<TContract extends ContractWithRoles>(
@@ -87,6 +88,7 @@ export function useAllRoleMembers<TContract extends ContractWithRoles>(
* @param role - the role to get the members of, see {@link Role}
* @returns a list of addresses that are members of the role
* @twfeature Permissions
* @see {@link https://portal.thirdweb.com/react/react.userolemembers?utm_source=sdk | Documentation}
* @beta
*/
export function useRoleMembers<TContract extends ContractWithRoles>(
@@ -120,6 +122,7 @@ export function useRoleMembers<TContract extends ContractWithRoles>(
* @param walletAddress - the address to check
* @returns true if the address is a member of the role, or false if not
* @twfeature PermissionsEnumerable
* @see {@link https://portal.thirdweb.com/react/react.useisaddressrole?utm_source=sdk | Documentation}
* @beta
*/
export function useIsAddressRole<TContract extends ContractWithRoles>(
@@ -242,6 +245,7 @@ export function useSetAllRoleMembers<TContract extends ContractWithRoles>(
* @param contract - an instance of a {@link SmartContract}
* @returns a mutation object that can be used to grant a member of a role on the contract
* @twfeature Permissions | PermissionsEnumerable
* @see {@link https://portal.thirdweb.com/react/react.usegrantrole?utm_source=sdk | Documentation}
* @beta
*/
export function useGrantRole<TContract extends ContractWithRoles>(
@@ -302,6 +306,7 @@ export function useGrantRole<TContract extends ContractWithRoles>(
* @param contract - an instance of a {@link SmartContract}
* @returns a mutation object that can be used to revoke a role from a member on the contract
* @twfeature Permissions | PermissionsEnumerable
* @see {@link https://portal.thirdweb.com/react/react.userevokerole?utm_source=sdk | Documentation}
* @beta
*/
export function useRevokeRole<TContract extends ContractWithRoles>(
@@ -39,6 +39,7 @@ import invariant from "tiny-invariant";
* @param contract - an instance of a {@link TokenContract}
* @returns a response object that includes the total minted supply
* @twfeature ERC20
* @see {@link https://portal.thirdweb.com/react/react.usetokensupply?utm_source=sdk | Documentation}
* @beta
*/
export function useTokenSupply(contract: RequiredParam<TokenContract>) {
@@ -70,6 +71,7 @@ export function useTokenSupply(contract: RequiredParam<TokenContract>) {
* @param contract - an instance of a {@link TokenContract}
* @returns a response object that includes the balance of the address
* @twfeature ERC20
* @see {@link https://portal.thirdweb.com/react/react.usetokenbalance?utm_source=sdk | Documentation}
* @beta
*/
export function useTokenBalance(
@@ -106,6 +108,7 @@ export function useTokenBalance(
* @param contract - an instance of a {@link TokenContract}
* @returns a response object that includes the decimals of the ERC20 token
* @twfeature ERC20
* @see {@link https://portal.thirdweb.com/react/react.usetokendecimals?utm_source=sdk | Documentation}
* @beta
*/
export function useTokenDecimals(contract: RequiredParam<TokenContract>) {
@@ -162,6 +165,7 @@ export function useTokenDecimals(contract: RequiredParam<TokenContract>) {
* @param contract - an instance of a {@link TokenContract}
* @returns a mutation object that can be used to mint new tokens to the connected wallet
* @twfeature ERC20Mintable
* @see {@link https://portal.thirdweb.com/react/react.useminttoken?utm_source=sdk | Documentation}
* @beta
*/
export function useMintToken(
@@ -234,6 +238,7 @@ export function useMintToken(
* @param contract - an instance of a {@link TokenContract}
* @returns a mutation object that can be used to tokens to the wallet specified in the params
* @twfeature ERC20ClaimPhasesV2 | ERC20ClaimPhasesV1 | ERC20ClaimConditionsV2 | ERC20ClaimConditionsV1
* @see {@link https://portal.thirdweb.com/react/react.useclaimtoken?utm_source=sdk | Documentation}
* @beta
*/
export function useClaimToken(contract: RequiredParam<TokenContract>) {
@@ -295,6 +300,7 @@ export function useClaimToken(contract: RequiredParam<TokenContract>) {
* @param contract - an instance of a {@link TokenContract}
* @returns a mutation object that can be used to transfer tokens
* @twfeature ERC20
* @see {@link https://portal.thirdweb.com/react/react.usetransfertoken?utm_source=sdk | Documentation}
* @beta
*/
export function useTransferToken(contract: RequiredParam<TokenContract>) {
@@ -354,6 +360,7 @@ export function useTransferToken(contract: RequiredParam<TokenContract>) {
* @param contract - an instance of a {@link TokenContract}
* @returns a mutation object that can be used to transfer batch tokens
* @twfeature ERC20
* @see {@link https://portal.thirdweb.com/react/react.usetransferbatchtoken?utm_source=sdk | Documentation}
* @beta
*/
export function useTransferBatchToken(contract: RequiredParam<TokenContract>) {
@@ -420,6 +427,7 @@ export function useTransferBatchToken(contract: RequiredParam<TokenContract>) {
* @param contract - an instance of a {@link TokenContract}
* @returns a mutation object that can be used to burn tokens from the connected wallet
* @twfeature ERC20Burnable
* @see {@link https://portal.thirdweb.com/react/react.useburntoken?utm_source=sdk | Documentation}
* @beta
*/
export function useBurnToken(contract: RequiredParam<TokenContract>) {
@@ -1,4 +1,29 @@
export { useLogin } from "./useLogin";
import { LoginOptions } from "@thirdweb-dev/auth";
import { useWallet } from "../../../core/hooks/wallet-hooks";
import { useThirdwebAuthContext } from "../../contexts/thirdweb-auth";
import { doLogin } from "./useLogin";
import invariant from "tiny-invariant";
export { useLogin, doLogin } from "./useLogin";
export { useLogout } from "./useLogout";
export type { UserWithData } from "./useUser";
export { useUser } from "./useUser";
export function useAuth() {
const wallet = useWallet();
const authConfig = useThirdwebAuthContext();
return {
login: async (options?: LoginOptions) => {
invariant(
authConfig,
"Please specify an authConfig in the ThirdwebProvider",
);
invariant(wallet, "Need a connected a wallet!");
return doLogin(wallet, {
domain: authConfig.domain,
...options,
});
},
};
}

Some files were not shown because too many files have changed in this diff Show More