Compare commits

...
Author SHA1 Message Date
github-actions[bot]GitHubgithub-actions[bot] <github-actions[bot]@users.noreply.github.com>
f202f597ca Version Packages (#1517)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2023-08-23 20:25:07 -07:00
YashandGitHub 91f0245be7 [SDK] Fix getChainProvider (#1526) 2023-08-24 00:00:03 +00:00
Joaquim VergesandGitHub ae74b8ef62 [SDK] separate ERC1155Supply extension from ERC1155 (#1523) 2023-08-23 22:23:17 +00:00
YashandGitHub 5a373a7509 [SDK] Correct polygon rpc for fetching published contract (#1525) 2023-08-23 19:22:16 +00:00
Manan TankandGitHub 088547f763 [react] various ConnectWallet improvements (#1522) 2023-08-23 17:48:04 +00:00
586e91dbe6 [SDK] Publish dynamic contract (#1488)
Co-authored-by: Nacho Iacovino <[email protected]>
2023-08-23 14:27:40 +00:00
Joaquim VergesandGitHub f65578d637 [SDK] Optimize contract resolution + Fallback to bytecode extension detection for un-imported contracts (#1498) 2023-08-23 00:03:52 +00:00
447d984653 [SDK] Airdrops (#1288)
Co-authored-by: Atharva Deosthale <[email protected]>
2023-08-22 13:26:31 +00:00
nkrishangandGitHub 34a3bb8ae3 [SDK][REACT] Update contracts release (#1518) 2023-08-22 04:31:36 +00:00
Joaquim VergesandGitHub bc003c2fef [SDK] Return early for claim checks when possible (#1516) 2023-08-22 00:01:06 +00:00
github-actions[bot]GitHubgithub-actions[bot] <github-actions[bot]@users.noreply.github.com>
c88fa57591 Version Packages (#1509)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2023-08-21 12:17:36 -07:00
Jonas DanielsandGitHub c12f0874b4 feat(chains): add new chains (#1513) 2023-08-21 18:20:53 +00:00
Jonas DanielsandGitHub 184c325ab2 fix(chains): Update icon URL for chains 37 and 47 (#1508) 2023-08-19 02:19:31 +00:00
046c9ad604 moved res.json() to avoid getting JSON error in console (#1501)
Co-authored-by: Jonas Daniels <[email protected]>
2023-08-19 02:09:58 +00:00
github-actions[bot]GitHubgithub-actions[bot] <github-actions[bot]@users.noreply.github.com>
2a7bbf8665 Version Packages (#1507)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2023-08-18 18:18:39 -07:00
Jonas DanielsandGitHub f97ddf4c7f [chains] - add xpla chains & update chains (#1506) 2023-08-19 01:01:08 +00:00
github-actions[bot]GitHubgithub-actions[bot] <github-actions[bot]@users.noreply.github.com>
66c53360cd Version Packages (#1504)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2023-08-18 16:04:05 -07:00
Joaquim VergesandGitHub bd1fcbae32 [SDK] Expose Transaction.populateTransaction() (#1505) 2023-08-18 19:05:05 +00:00
Joaquim VergesandGitHub e196264172 [SDK] Pass custom storage to internal SDK instances (#1503) 2023-08-18 16:21:20 +00:00
github-actions[bot]GitHubgithub-actions[bot] <github-actions[bot]@users.noreply.github.com>
c9deda6f4b Version Packages (#1487)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2023-08-16 07:44:08 -07:00
b91d3e9901 Small fix for Promise.all() (#1490)
Co-authored-by: Joaquim Verges <[email protected]>
2023-08-15 22:06:07 -07:00
Joaquim VergesandGitHub d248aa2c5a [SDK] Let users pass their own IPFS download timeout and fix gateway fallback logic (#1500) 2023-08-15 19:20:36 -07:00
Mariano FuentesandGitHub 8f3b685ad2 [CLI] Deploy to show public gateway url after upload (#1499) 2023-08-15 22:28:56 +00:00
iketwandGitHub 26349f311d [RN] Improves loading states when disconnecting and loading balances (#1496) 2023-08-14 22:56:26 +00:00
YashandGitHub 2897576513 [SDK] Custom base fee for cronos testnet (#1495) 2023-08-14 22:39:23 +00:00
iketwandGitHub 07fb1b5ffa [RN] Adds support for raw WalletConnect (#1489) 2023-08-13 16:24:11 +00:00
iketwandGitHub 300a3c6f04 [ReactCore] Add better error messages when using hooks outside the <ThirdwebProvider /> (#1486) 2023-08-12 14:21:31 +00:00
github-actions[bot]GitHubgithub-actions[bot] <github-actions[bot]@users.noreply.github.com>
26367c04f3 Version Packages (#1483)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2023-08-11 16:07:25 -07:00
Joaquim VergesandGitHub 39e2af6f2f [Wallets] correct gas estimation for polygon/mumbai (#1484) 2023-08-11 22:16:29 +00:00
Joaquim VergesandGitHub a5ba9e4fbf [SDK] Separate Account and AccountPermissions extensions (#1480) 2023-08-11 20:31:54 +00:00
github-actions[bot]GitHubgithub-actions[bot] <github-actions[bot]@users.noreply.github.com>
c9b0131acd Version Packages (#1478)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2023-08-10 15:51:09 -07:00
Joaquim VergesandGitHub 34b315993c [Wallets] use RPCs with no client id when adding to external wallets (#1477) 2023-08-10 22:33:47 +00:00
iketwandGitHub 14d9a71c92 [RN] Deprecates magicWallet in favor of magicLink for consistency (#1479) 2023-08-10 21:22:49 +00:00
YashandGitHub 7f5311222b [SDK] Enable dynamic contract deployment with any evm (#1468) 2023-08-10 19:32:51 +00:00
github-actions[bot]GitHubgithub-actions[bot] <github-actions[bot]@users.noreply.github.com>
b4847dd134 Version Packages (#1464)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2023-08-09 16:00:33 -07:00
Danny FridayandGitHub cf82c3b58c Improve error logging when authentication fails (#1475) 2023-08-09 21:37:09 +00:00
Adam MajmudarandGitHub a17326634e [Chains] Add back scroll-alpha-testnet (#1474) 2023-08-09 19:24:04 +00:00
70c4a119d6 Add sdk information in headers for various services (#1472)
Co-authored-by: Manan Tank <[email protected]>
2023-08-09 19:22:46 +00:00
Joaquim VergesandGitHub f0443bd989 [SDK] Expose erc721.claimConditions.getSupplyClaimedByWallet() (#1471) 2023-08-09 19:05:11 +00:00
Jonas DanielsandGitHub 73462ef108 [multi] only evaluate auth token if it is a valid string (#1473) 2023-08-09 18:07:26 +00:00
Jonas DanielsandGitHub 27c225a512 feat(urls): add clientId parameter to getGatewayUrlForCid (#1470) 2023-08-09 03:20:53 +00:00
Jonas DanielsandGitHub cb1c9937fa refactor(urls): Simplify authentication strategy handling (#1469) 2023-08-08 21:07:27 +00:00
Kien NgoandGitHub 588b210601 [react, react-native]Add option to hide the "Request Testnet Funds" button (#1458) 2023-08-08 08:38:37 -07:00
Phillip HoandGitHub 7e483ec97f [service-utils] Silence publishUsageEvents() output (#1466) 2023-08-08 00:20:09 +00:00
Joaquim VergesandGitHub c902901cff [All] Added PR template (#1465) 2023-08-07 23:57:31 +00:00
Phillip HoandGitHub 205018f6e1 [service-utils] Add userOpHash field (#1463) 2023-08-07 23:41:43 +00:00
FirekeeperandGitHub 269e68c0a1 Firekeeper/xai and large chainids (#1461) 2023-08-07 23:14:23 +00:00
Jonas DanielsandGitHub 2888efc065 build: Add TW_SECRET_KEY to test and e2e environments (#1462) 2023-08-07 21:14:00 +00:00
233 changed files with 7460 additions and 4042 deletions
+13
View File
@@ -0,0 +1,13 @@
## Problem solved
Short description of the bug fixed or feature added
## Changes made
- [ ] Public API changes: list the public API changes made if any
- [ ] Internal API changes: explain the internal logic changes
## How to test
- [ ] Automated tests: link to unit test file
- [ ] Manual tests: step by step instructions on how to test
+1 -1
View File
@@ -31,7 +31,7 @@
"hotlink-revert": "node ./scripts/hotlink/hotlink-revert.mjs",
"explain:major": "node ./scripts/changeset-explain-major.mjs"
},
"packageManager": "pnpm@8.1.0",
"packageManager": "pnpm@8.6.12",
"dependencies": {
"@changesets/changelog-github": "^0.4.8",
"@changesets/cli": "^2.26.2",
+56
View File
@@ -1,5 +1,61 @@
# @thirdweb-dev/auth
## 3.2.36
### Patch Changes
- Updated dependencies []:
- @thirdweb-dev/wallets@1.1.19
## 3.2.35
### Patch Changes
- Updated dependencies []:
- @thirdweb-dev/wallets@1.1.18
## 3.2.34
### Patch Changes
- Updated dependencies []:
- @thirdweb-dev/wallets@1.1.17
## 3.2.33
### Patch Changes
- Updated dependencies []:
- @thirdweb-dev/wallets@1.1.16
## 3.2.32
### Patch Changes
- Updated dependencies [[`07fb1b5f`](https://github.com/thirdweb-dev/js/commit/07fb1b5ffa4c170e252df31070852ddb9a81dec9)]:
- @thirdweb-dev/wallets@1.1.15
## 3.2.31
### Patch Changes
- Updated dependencies [[`39e2af6f`](https://github.com/thirdweb-dev/js/commit/39e2af6f2f4d933dca1b3de4a37de76375bafd74)]:
- @thirdweb-dev/wallets@1.1.14
## 3.2.30
### Patch Changes
- Updated dependencies [[`34b31599`](https://github.com/thirdweb-dev/js/commit/34b315993c0abaccb9640a5d5804c2c93af569c2)]:
- @thirdweb-dev/wallets@1.1.13
## 3.2.29
### Patch Changes
- Updated dependencies [[`73462ef1`](https://github.com/thirdweb-dev/js/commit/73462ef10800aeeb5976634e2bc6fb5d3e8501e4), [`70c4a119`](https://github.com/thirdweb-dev/js/commit/70c4a119d691a37ec999d9f6087902d532cc82ed)]:
- @thirdweb-dev/wallets@1.1.12
## 3.2.28
### Patch Changes
+1 -1
View File
@@ -1,6 +1,6 @@
{
"name": "@thirdweb-dev/auth",
"version": "3.2.28",
"version": "3.2.36",
"main": "dist/thirdweb-dev-auth.cjs.js",
"module": "dist/thirdweb-dev-auth.esm.js",
"browser": {
+38
View File
@@ -1,5 +1,43 @@
# @thirdweb-dev/chains
## 0.1.47
### Patch Changes
- [#1518](https://github.com/thirdweb-dev/js/pull/1518) [`34a3bb8a`](https://github.com/thirdweb-dev/js/commit/34a3bb8ae3c1d7a506e5568a9e79ab7e469557a8) Thanks [@nkrishang](https://github.com/nkrishang)! - Update contracts package
## 0.1.46
### Patch Changes
- [#1508](https://github.com/thirdweb-dev/js/pull/1508) [`184c325a`](https://github.com/thirdweb-dev/js/commit/184c325ab2ef028022a050c4274f2ab12b1a3a7f) Thanks [@jnsdls](https://github.com/jnsdls)! - update xpla chain icons
- [#1513](https://github.com/thirdweb-dev/js/pull/1513) [`c12f0874`](https://github.com/thirdweb-dev/js/commit/c12f0874b4dac43c263c7edb20d0343c16381c34) Thanks [@jnsdls](https://github.com/jnsdls)! - add additonal chains
## 0.1.45
### Patch Changes
- [#1506](https://github.com/thirdweb-dev/js/pull/1506) [`f97ddf4c`](https://github.com/thirdweb-dev/js/commit/f97ddf4c7f14854f3b204ad9741b52ddb8dac736) Thanks [@jnsdls](https://github.com/jnsdls)! - add xpla chains & update chains
## 0.1.44
### Patch Changes
- [#1499](https://github.com/thirdweb-dev/js/pull/1499) [`8f3b685a`](https://github.com/thirdweb-dev/js/commit/8f3b685ad2bd73cb4d5d8c8aa25c04ffc10fb7cf) Thanks [@Marfuen](https://github.com/Marfuen)! - Update deploy command from CLI to use show a public gateway url temporarily. Updated chains too.
## 0.1.43
### Patch Changes
- [#1469](https://github.com/thirdweb-dev/js/pull/1469) [`cb1c9937`](https://github.com/thirdweb-dev/js/commit/cb1c9937fadb2d06eb148cf9819f2b3601376308) Thanks [@jnsdls](https://github.com/jnsdls)! - update chains
- [#1474](https://github.com/thirdweb-dev/js/pull/1474) [`a1732663`](https://github.com/thirdweb-dev/js/commit/a17326634e758c3bf42f0cc3869b8792f1e18cc9) Thanks [@adam-maj](https://github.com/adam-maj)! - Add back scroll-alpha-testnet
- [#1458](https://github.com/thirdweb-dev/js/pull/1458) [`588b2106`](https://github.com/thirdweb-dev/js/commit/588b21060139a7c0bf5805e2c629a16792ed2c76) Thanks [@kien-ngo](https://github.com/kien-ngo)! - Update chains
- [#1461](https://github.com/thirdweb-dev/js/pull/1461) [`269e68c0`](https://github.com/thirdweb-dev/js/commit/269e68c0a15e8f78cb5b68c9456ca8094b9e1f30) Thanks [@0xFirekeeper](https://github.com/0xFirekeeper)! - add xai-goerli chain and support BigInteger from Unity
## 0.1.42
### Patch Changes
+1
View File
@@ -18,6 +18,7 @@ export default {
"https://gnosis.api.onfinality.io/public",
"https://gnosis.blockpi.network/v1/rpc/public",
"https://web3endpoints.com/gnosischain-mainnet",
"https://gnosis.oat.farm",
"wss://rpc.gnosischain.com/wss"
],
"faucets": [
+29
View File
@@ -0,0 +1,29 @@
import type { Chain } from "../src/types";
export default {
"name": "Japan Open Chain Testnet",
"chain": "JOCT",
"rpc": [
"https://japan-open-chain-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"https://rpc-1.testnet.japanopenchain.org:8545",
"https://rpc-2.testnet.japanopenchain.org:8545"
],
"faucets": [],
"nativeCurrency": {
"name": "Japan Open Chain Testnet Token",
"symbol": "JOCT",
"decimals": 18
},
"infoURL": "https://www.japanopenchain.org/",
"shortName": "joct",
"chainId": 10081,
"networkId": 10081,
"explorers": [
{
"name": "Testnet Block Explorer",
"url": "https://explorer.testnet.japanopenchain.org",
"standard": "EIP3091"
}
],
"testnet": true,
"slug": "japan-open-chain-testnet"
} as const satisfies Chain;
+38
View File
@@ -0,0 +1,38 @@
import type { Chain } from "../src/types";
export default {
"name": "MaxxChain Mainnet",
"chain": "MaxxChain",
"rpc": [
"https://maxxchain.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"https://rpc.maxxchain.org",
"https://rpc1.maxxchain.org",
"https://rpc2.maxxchain.org"
],
"faucets": [
"https://faucet.maxxchain.org"
],
"nativeCurrency": {
"name": "Power",
"symbol": "PWR",
"decimals": 18
},
"icon": {
"url": "ipfs://QmRhQG9TZrXDdbQeTzBmjg3pqgwaD5TKVZj8k4kaz8AoZx",
"width": 1021,
"height": 1021,
"format": "png"
},
"infoURL": "https://www.maxxchain.org/",
"shortName": "PWR",
"chainId": 10201,
"networkId": 10201,
"explorers": [
{
"name": "MaxxChain Block Explorer",
"url": "https://explorer.maxxchain.org",
"standard": "EIP3091"
}
],
"testnet": false,
"slug": "maxxchain"
} as const satisfies Chain;
+42
View File
@@ -0,0 +1,42 @@
import type { Chain } from "../src/types";
export default {
"name": "Arthera Testnet",
"chain": "AA",
"icon": {
"url": "ipfs://QmYQp3e52KjkT4bYdAvB6ACEEpXs2D8DozsDitaADRY2Ak",
"width": 1024,
"height": 998,
"format": "png"
},
"rpc": [
"https://arthera-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"https://rpc-test.arthera.net"
],
"faucets": [
"https://faucet.arthera.net"
],
"nativeCurrency": {
"name": "Arthera",
"symbol": "AA",
"decimals": 18
},
"infoURL": "https://docs.arthera.net",
"shortName": "aa",
"chainId": 10243,
"networkId": 10243,
"explorers": [
{
"name": "blockscout",
"url": "https://explorer-test.arthera.net",
"icon": {
"url": "ipfs://QmYtUimyqHkkFxYdbXXRbUqNg2VLPUg6Uu2C2nmFWowiZM",
"width": 551,
"height": 540,
"format": "png"
},
"standard": "EIP3091"
}
],
"testnet": true,
"slug": "arthera-testnet"
} as const satisfies Chain;
+2 -2
View File
@@ -3,7 +3,7 @@ export default {
"name": "Ultron Testnet",
"chain": "Ultron",
"icon": {
"url": "ipfs://QmS4W4kY7XYBA4f52vuuytXh3YaTcNBXF14V9tEY6SNqhz",
"url": "ipfs://QmPC6odFVyAQrXJQaZJVFpEQfRNbzZ5BjDZ7KBKmXPaYDw",
"width": 512,
"height": 512,
"format": "png"
@@ -27,7 +27,7 @@ export default {
"name": "Ultron Testnet Explorer",
"url": "https://explorer.ultron-dev.io",
"icon": {
"url": "ipfs://QmS4W4kY7XYBA4f52vuuytXh3YaTcNBXF14V9tEY6SNqhz",
"url": "ipfs://QmPC6odFVyAQrXJQaZJVFpEQfRNbzZ5BjDZ7KBKmXPaYDw",
"width": 512,
"height": 512,
"format": "png"
+2 -2
View File
@@ -3,7 +3,7 @@ export default {
"name": "Ultron Mainnet",
"chain": "Ultron",
"icon": {
"url": "ipfs://QmS4W4kY7XYBA4f52vuuytXh3YaTcNBXF14V9tEY6SNqhz",
"url": "ipfs://QmPC6odFVyAQrXJQaZJVFpEQfRNbzZ5BjDZ7KBKmXPaYDw",
"width": 512,
"height": 512,
"format": "png"
@@ -27,7 +27,7 @@ export default {
"name": "Ultron Explorer",
"url": "https://ulxscan.com",
"icon": {
"url": "ipfs://QmS4W4kY7XYBA4f52vuuytXh3YaTcNBXF14V9tEY6SNqhz",
"url": "ipfs://QmPC6odFVyAQrXJQaZJVFpEQfRNbzZ5BjDZ7KBKmXPaYDw",
"width": 512,
"height": 512,
"format": "png"
+44
View File
@@ -0,0 +1,44 @@
import type { Chain } from "../src/types";
export default {
"name": "Swisstronik Testnet",
"chain": "SWTR",
"rpc": [
"https://swisstronik-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"https://json-rpc.testnet.swisstronik.com"
],
"faucets": [
"https://faucet.testnet.swisstronik.com"
],
"nativeCurrency": {
"name": "Swisstronik",
"symbol": "SWTR",
"decimals": 18
},
"features": [
{
"name": "EIP155"
},
{
"name": "EIP1559"
}
],
"infoURL": "https://www.swisstronik.com",
"shortName": "swtr",
"chainId": 1291,
"networkId": 1291,
"icon": {
"url": "ipfs://bafybeihuintkoipxalwans23vhxajbwjnozpy34ww7ia7ds7nay3rpylzi",
"width": 256,
"height": 256,
"format": "svg"
},
"explorers": [
{
"name": "Swisstronik Scout",
"url": "https://explorer-evm.testnet.swisstronik.com",
"standard": "none"
}
],
"testnet": true,
"slug": "swisstronik-testnet"
} as const satisfies Chain;
+7 -7
View File
@@ -1,10 +1,10 @@
import type { Chain } from "../src/types";
export default {
"name": "Credit Smartchain Mainnet",
"name": "Credit Smart Chain",
"chain": "CREDIT",
"rpc": [
"https://credit-smartchain.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"https://mainnet-rpc.cscscan.io"
"https://credit-smart-chain.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"https://rpc.creditsmartchain.com"
],
"faucets": [],
"nativeCurrency": {
@@ -23,7 +23,7 @@ export default {
"infoURL": "https://creditsmartchain.com",
"shortName": "Credit",
"chainId": 13308,
"networkId": 1,
"networkId": 13308,
"icon": {
"url": "ipfs://bafkreifbso3gd4wu5wxl27xyurxctmuae2jyuy37guqtzx23nga6ba4ag4",
"width": 1000,
@@ -32,8 +32,8 @@ export default {
},
"explorers": [
{
"name": "CSC Scan",
"url": "https://explorer.cscscan.io",
"name": "Creditscan",
"url": "https://scan.creditsmartchain.com",
"icon": {
"url": "ipfs://bafkreifbso3gd4wu5wxl27xyurxctmuae2jyuy37guqtzx23nga6ba4ag4",
"width": 1000,
@@ -44,5 +44,5 @@ export default {
}
],
"testnet": false,
"slug": "credit-smartchain"
"slug": "credit-smart-chain"
} as const satisfies Chain;
+24
View File
@@ -0,0 +1,24 @@
import type { Chain } from "../src/types";
export default {
"name": "Humanode Testnet 5 Israfel",
"chain": "Humanode Testnet 5",
"rpc": [
"https://humanode-testnet-5-israfel.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"https://explorer-rpc-http.testnet5.stages.humanode.io"
],
"faucets": [
"https://t.me/HumanodeTestnet5FaucetBot"
],
"nativeCurrency": {
"name": "eHMND",
"symbol": "eHMND",
"decimals": 18
},
"infoURL": "https://humanode.io",
"shortName": "hmnd-t5",
"chainId": 14853,
"networkId": 14853,
"explorers": [],
"testnet": true,
"slug": "humanode-testnet-5-israfel"
} as const satisfies Chain;
+44
View File
@@ -0,0 +1,44 @@
import type { Chain } from "../src/types";
export default {
"name": "Holesky",
"chain": "ETH",
"rpc": [
"https://holesky.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"https://rpc.holesky.ethpandaops.io"
],
"faucets": [
"https://faucet.holesky.ethpandaops.io",
"https://holesky-faucet.pk910.de"
],
"nativeCurrency": {
"name": "Testnet ETH",
"symbol": "ETH",
"decimals": 18
},
"infoURL": "https://holesky.ethpandaops.io",
"shortName": "holesky",
"chainId": 17000,
"networkId": 17000,
"icon": {
"url": "ipfs://QmdwQDr6vmBtXmK2TmknkEuZNoaDqTasFdZdu3DRw8b2wt",
"width": 1000,
"height": 1628,
"format": "png"
},
"status": "incubating",
"explorers": [
{
"name": "Holesky Explorer",
"url": "https://holesky.beaconcha.in",
"icon": {
"url": "ipfs://QmdwQDr6vmBtXmK2TmknkEuZNoaDqTasFdZdu3DRw8b2wt",
"width": 1000,
"height": 1628,
"format": "png"
},
"standard": "EIP3091"
}
],
"testnet": true,
"slug": "holesky"
} as const satisfies Chain;
+6 -6
View File
@@ -3,9 +3,9 @@ export default {
"name": "Lightlink Phoenix Mainnet",
"chain": "Lightlink Phoenix Mainnet",
"icon": {
"url": "ipfs://QmNRUoMgx16hurD3au3ou5A9rmTLYmre8WiGmQEPFmP2Vo",
"width": 600,
"height": 600,
"url": "ipfs://QmXMDj6iAFn2ducQcUU1M87PMMdT2jfyL3Tp3Lz5uUD5Lv",
"width": 200,
"height": 200,
"format": "png"
},
"rpc": [
@@ -33,9 +33,9 @@ export default {
"name": "phoenix",
"url": "https://phoenix.lightlink.io",
"icon": {
"url": "ipfs://QmNRUoMgx16hurD3au3ou5A9rmTLYmre8WiGmQEPFmP2Vo",
"width": 600,
"height": 600,
"url": "ipfs://QmXMDj6iAFn2ducQcUU1M87PMMdT2jfyL3Tp3Lz5uUD5Lv",
"width": 200,
"height": 200,
"format": "png"
},
"standard": "EIP3091"
+6 -6
View File
@@ -3,9 +3,9 @@ export default {
"name": "Lightlink Pegasus Testnet",
"chain": "Lightlink Pegasus Testnet",
"icon": {
"url": "ipfs://QmNRUoMgx16hurD3au3ou5A9rmTLYmre8WiGmQEPFmP2Vo",
"width": 600,
"height": 600,
"url": "ipfs://QmXMDj6iAFn2ducQcUU1M87PMMdT2jfyL3Tp3Lz5uUD5Lv",
"width": 200,
"height": 200,
"format": "png"
},
"rpc": [
@@ -35,9 +35,9 @@ export default {
"name": "pegasus",
"url": "https://pegasus.lightlink.io",
"icon": {
"url": "ipfs://QmNRUoMgx16hurD3au3ou5A9rmTLYmre8WiGmQEPFmP2Vo",
"width": 600,
"height": 600,
"url": "ipfs://QmXMDj6iAFn2ducQcUU1M87PMMdT2jfyL3Tp3Lz5uUD5Lv",
"width": 200,
"height": 200,
"format": "png"
},
"standard": "EIP3091"
+35
View File
@@ -0,0 +1,35 @@
import type { Chain } from "../src/types";
export default {
"name": "Centrifuge",
"chain": "CFG",
"rpc": [
"wss://fullnode.parachain.centrifuge.io"
],
"features": [
{
"name": "EIP155"
},
{
"name": "EIP1559"
}
],
"faucets": [],
"nativeCurrency": {
"name": "Centrifuge",
"symbol": "CFG",
"decimals": 18
},
"infoURL": "https://centrifuge.io",
"shortName": "cfg",
"chainId": 2031,
"networkId": 2031,
"explorers": [
{
"name": "subscan",
"url": "https://centrifuge.subscan.io",
"standard": "EIP3091"
}
],
"testnet": false,
"slug": "centrifuge"
} as const satisfies Chain;
+28
View File
@@ -0,0 +1,28 @@
import type { Chain } from "../src/types";
export default {
"name": "Catalyst",
"chain": "CFG",
"rpc": [
"wss://fullnode.catalyst.cntrfg.com"
],
"features": [
{
"name": "EIP155"
},
{
"name": "EIP1559"
}
],
"faucets": [],
"nativeCurrency": {
"name": "Catalyst CFG",
"symbol": "NCFG",
"decimals": 18
},
"infoURL": "https://centrifuge.io",
"shortName": "ncfg",
"chainId": 2032,
"networkId": 2032,
"testnet": false,
"slug": "catalyst"
} as const satisfies Chain;
+33
View File
@@ -0,0 +1,33 @@
import type { Chain } from "../src/types";
export default {
"name": "Kiwi Subnet",
"chain": "KIWI",
"rpc": [
"https://kiwi-subnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"https://subnets.avax.network/kiwi/testnet/rpc"
],
"features": [
{
"name": "EIP1559"
}
],
"faucets": [],
"nativeCurrency": {
"name": "Shrapgas",
"symbol": "SHRAP",
"decimals": 18
},
"infoURL": "",
"shortName": "kiwi",
"chainId": 2037,
"networkId": 2037,
"explorers": [
{
"name": "KIWI Explorer",
"url": "https://subnets-test.avax.network/kiwi",
"standard": "EIP3091"
}
],
"testnet": true,
"slug": "kiwi-subnet"
} as const satisfies Chain;
+28
View File
@@ -0,0 +1,28 @@
import type { Chain } from "../src/types";
export default {
"name": "Altair",
"chain": "AIR",
"rpc": [
"wss://fullnode.altair.centrifuge.io"
],
"features": [
{
"name": "EIP155"
},
{
"name": "EIP1559"
}
],
"faucets": [],
"nativeCurrency": {
"name": "Altair",
"symbol": "AIR",
"decimals": 18
},
"infoURL": "https://centrifuge.io",
"shortName": "air",
"chainId": 2088,
"networkId": 2088,
"testnet": false,
"slug": "altair"
} as const satisfies Chain;
+28
View File
@@ -0,0 +1,28 @@
import type { Chain } from "../src/types";
export default {
"name": "Algol",
"chain": "algol",
"rpc": [
"wss://fullnode.algol.cntrfg.com"
],
"features": [
{
"name": "EIP155"
},
{
"name": "EIP1559"
}
],
"faucets": [],
"nativeCurrency": {
"name": "Algol",
"symbol": "ALGL",
"decimals": 18
},
"infoURL": "https://centrifuge.io",
"shortName": "algl",
"chainId": 2089,
"networkId": 2089,
"testnet": false,
"slug": "algol"
} as const satisfies Chain;
+1 -1
View File
@@ -4,7 +4,7 @@ export default {
"chain": "REAP",
"rpc": [
"https://reapchain-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"https://test-rpc.reapchain.org"
"https://test-eth.reapchain.org"
],
"faucets": [
"http://faucet.reapchain.com"
+5 -4
View File
@@ -1,10 +1,11 @@
import type { Chain } from "../src/types";
export default {
"name": "Kava EVM Testnet",
"name": "Kava Testnet",
"chain": "KAVA",
"rpc": [
"https://kava-evm-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"https://kava-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"https://evm.testnet.kava.io",
"https://kava-evm-testnet.rpc.thirdweb.com",
"wss://wevm.testnet.kava.io"
],
"faucets": [
@@ -28,7 +29,7 @@ export default {
"explorers": [
{
"name": "Kava Testnet Explorer",
"url": "https://explorer.testnet.kava.io",
"url": "http://testnet.kavascan.com",
"standard": "EIP3091",
"icon": {
"url": "ipfs://QmdpRTk6oL1HRW9xC6cAc4Rnf9gs6zgdAcr4Z3HcLztusm",
@@ -39,5 +40,5 @@ export default {
}
],
"testnet": true,
"slug": "kava-evm-testnet"
"slug": "kava-testnet"
} as const satisfies Chain;
+6 -4
View File
@@ -1,11 +1,13 @@
import type { Chain } from "../src/types";
export default {
"name": "Kava EVM",
"name": "Kava",
"chain": "KAVA",
"rpc": [
"https://kava-evm.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"https://kava.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"https://evm.kava.io",
"https://evm2.kava.io",
"https://kava-rpc.gateway.pokt.network",
"https://kava-evm.rpc.thirdweb.com",
"wss://wevm.kava.io",
"wss://wevm2.kava.io",
"https://kava-evm.publicnode.com"
@@ -29,7 +31,7 @@ export default {
"explorers": [
{
"name": "Kava EVM Explorer",
"url": "https://explorer.kava.io",
"url": "https://kavascan.com",
"standard": "EIP3091",
"icon": {
"url": "ipfs://QmdpRTk6oL1HRW9xC6cAc4Rnf9gs6zgdAcr4Z3HcLztusm",
@@ -40,5 +42,5 @@ export default {
}
],
"testnet": false,
"slug": "kava-evm"
"slug": "kava"
} as const satisfies Chain;
+5 -1
View File
@@ -4,7 +4,11 @@ export default {
"chain": "SOMA",
"rpc": [
"https://soma-network-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"https://data-testnet-v1.somanetwork.io/"
"https://data-testnet-v1.somanetwork.io/",
"https://testnet-au-server-2.somanetwork.io",
"https://testnet-au-server-1.somanetwork.io",
"https://testnet-sg-server-1.somanetwork.io",
"https://testnet-sg-server-2.somanetwork.io"
],
"faucets": [
"https://faucet.somanetwork.io"
+4 -1
View File
@@ -4,7 +4,10 @@ export default {
"chain": "SOMA",
"rpc": [
"https://soma-network.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"https://data-mainnet-v1.somanetwork.io/"
"https://data-mainnet-v1.somanetwork.io/",
"https://id-mainnet.somanetwork.io",
"https://hk-mainnet.somanetwork.io",
"https://sg-mainnet.somanetwork.io"
],
"faucets": [
"https://airdrop.somanetwork.io"
+42
View File
@@ -0,0 +1,42 @@
import type { Chain } from "../src/types";
export default {
"name": "Unicorn Ultra Nebulas Testnet",
"chain": "u2u",
"rpc": [
"https://unicorn-ultra-nebulas-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"https://rpc-nebulas-testnet.uniultra.xyz"
],
"faucets": [
"https://faucet.uniultra.xyz"
],
"nativeCurrency": {
"name": "Unicorn Ultra Nebulas Testnet",
"symbol": "U2U",
"decimals": 18
},
"infoURL": "https://uniultra.xyz",
"shortName": "u2u_nebulas",
"chainId": 2484,
"networkId": 2484,
"icon": {
"url": "ipfs://QmcW64RgqQVHnNbVFyfaMNKt7dJvFqEbfEHZmeyeK8dpEa",
"width": 512,
"height": 512,
"format": "png"
},
"explorers": [
{
"icon": {
"url": "ipfs://QmcW64RgqQVHnNbVFyfaMNKt7dJvFqEbfEHZmeyeK8dpEa",
"width": 512,
"height": 512,
"format": "png"
},
"name": "U2U Explorer",
"url": "https://testnet.u2uscan.xyz",
"standard": "EIP3091"
}
],
"testnet": true,
"slug": "unicorn-ultra-nebulas-testnet"
} as const satisfies Chain;
+34
View File
@@ -0,0 +1,34 @@
import type { Chain } from "../src/types";
export default {
"name": "Ancient8 Testnet",
"chain": "Ancient8",
"icon": {
"url": "ipfs://QmSX8sHToRzyFupT8BvPQjVsegRWFYz2mdnLkVnqBFKohY",
"width": 901,
"height": 901,
"format": "png"
},
"rpc": [
"https://ancient8-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"https://rpc-testnet.ancient8.gg"
],
"faucets": [],
"nativeCurrency": {
"name": "Ether",
"symbol": "ETH",
"decimals": 18
},
"infoURL": "https://ancient8.gg/",
"shortName": "a8",
"chainId": 2863311531,
"networkId": 2863311531,
"explorers": [
{
"name": "a8scan-testnet",
"url": "https://testnet.a8scan.io",
"standard": "EIP3091"
}
],
"testnet": true,
"slug": "ancient8-testnet"
} as const satisfies Chain;
+6
View File
@@ -5,6 +5,12 @@ export default {
"shortName": "POPTestnet",
"chainId": 331769,
"testnet": true,
"icon": {
"format": "png",
"url": "ipfs://QmP8rYvcc7aJB3c2YZxjxaySvHapHnoK8MnxuSuDT4PtF2",
"height": 400,
"width": 400
},
"rpc": [
"https://proofofpepe-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"https://testnet01.proofofpepe.tech"
+33
View File
@@ -0,0 +1,33 @@
import type { Chain } from "../src/types";
export default {
"name": "POP Mainnet",
"chain": "POP",
"shortName": "POP",
"chainId": 331771,
"testnet": false,
"icon": {
"format": "png",
"url": "ipfs://QmP8rYvcc7aJB3c2YZxjxaySvHapHnoK8MnxuSuDT4PtF2",
"height": 400,
"width": 400
},
"rpc": [
"https://pop.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"https://rpc00.proofofpepe.tech",
"https://rpc01.proofofpepe.tech",
"https://rpc02.proofofpepe.tech"
],
"nativeCurrency": {
"name": "Pepe",
"symbol": "PEPE",
"decimals": 18
},
"explorers": [
{
"name": "Pepescan",
"url": "https://pepescan.app",
"standard": "none"
}
],
"slug": "pop"
} as const satisfies Chain;
+38
View File
@@ -0,0 +1,38 @@
import type { Chain } from "../src/types";
export default {
"name": "Yooldo Verse Mainnet",
"chain": "Yooldo Verse",
"icon": {
"url": "ipfs://QmWvfA2usnYp1ktzLcqFS8eTLgdp4ifrxjiify46KyG9NZ",
"width": 512,
"height": 512,
"format": "png"
},
"rpc": [
"https://yooldo-verse.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"https://rpc.yooldo-verse.xyz/"
],
"faucets": [],
"nativeCurrency": {
"name": "OAS",
"symbol": "OAS",
"decimals": 18
},
"infoURL": "https://yooldo.gg/",
"shortName": "YVM",
"chainId": 345,
"networkId": 345,
"explorers": [
{
"name": "Yooldo Verse Explorer",
"url": "https://explorer.yooldo-verse.xyz",
"standard": "EIP3091"
}
],
"parent": {
"type": "L2",
"chain": "eip155-248"
},
"testnet": false,
"slug": "yooldo-verse"
} as const satisfies Chain;
+23 -15
View File
@@ -1,27 +1,35 @@
import type { Chain } from "../src/types";
export default {
"name": "SeedCoin-Network",
"chain": "SeedCoin-Network",
"name": "Xpla Mainnet",
"chain": "XPLA",
"rpc": [
"https://seedcoin-network.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"https://node.seedcoin.network"
"https://xpla.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"https://dimension-evm-rpc.xpla.dev"
],
"faucets": [],
"nativeCurrency": {
"name": "SeedCoin",
"symbol": "SEED",
"name": "XPLA",
"symbol": "XPLA",
"decimals": 18
},
"infoURL": "https://www.seedcoin.network/",
"shortName": "SEED",
"infoURL": "https://xpla.io/",
"shortName": "xpla",
"chainId": 37,
"icon": {
"url": "ipfs://QmSchLvCCZjBzcv5n22v1oFDAc2yHJ42NERyjZeL9hBgrh",
"width": 64,
"height": 64,
"url": "ipfs://QmbvEAKZfgJckEziU3mpCwz6jqMeWRcLgd8TNsWA7g8sD9/xpla.png",
"width": 512,
"height": 512,
"format": "png"
},
"chainId": 37,
"networkId": 37,
"explorers": [
{
"name": "XPLA Explorer",
"url": "https://explorer.xpla.io",
"standard": "none"
}
],
"testnet": false,
"slug": "seedcoin-network"
"redFlags": [
"reusedChainId"
],
"slug": "xpla"
} as const satisfies Chain;
+43
View File
@@ -0,0 +1,43 @@
import type { Chain } from "../src/types";
export default {
"name": "Alterium L2 Testnet",
"chain": "ALT",
"icon": {
"url": "ipfs://bafkreid3v7ow4c4t3ljya6aouiwvqbtssb2lzmkwt2eghryk234g7yynrq",
"width": 756,
"height": 756,
"format": "png"
},
"rpc": [
"https://alterium-l2-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"https://l2-testnet-rpc.altscan.org"
],
"faucets": [],
"nativeCurrency": {
"name": "Alterium ETH",
"symbol": "AltETH",
"decimals": 18
},
"infoURL": "https://alteriumprotocol.org",
"shortName": "alterium",
"chainId": 420692,
"networkId": 420692,
"parent": {
"type": "L2",
"chain": "eip155-5",
"bridges": [
{
"url": "https://testnet-bridge.alteriumprotocol.org"
}
]
},
"explorers": [
{
"name": "Alterium L2 Testnet Explorer",
"url": "https://l2-testnet.altscan.org",
"standard": "EIP3091"
}
],
"testnet": true,
"slug": "alterium-l2-testnet"
} as const satisfies Chain;
+39
View File
@@ -0,0 +1,39 @@
import type { Chain } from "../src/types";
export default {
"name": "Orderly Sepolia Testnet",
"chain": "ETH",
"rpc": [
"https://orderly-sepolia-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"https://l2-orderly-l2-4460-sepolia-8tc3sd7dvy.t.conduit.xyz"
],
"faucets": [],
"nativeCurrency": {
"name": "Sepolia Ether",
"symbol": "ETH",
"decimals": 18
},
"shortName": "orderlyl2",
"chainId": 4460,
"networkId": 4460,
"icon": {
"url": "ipfs://QmSpwp3RAVhZsErAQrCQxEmjnGqJQMigarzZbfqr9Ktakb",
"width": 512,
"height": 512,
"format": "png"
},
"explorers": [
{
"name": "basescout",
"url": "https://explorerl2new-orderly-l2-4460-sepolia-8tc3sd7dvy.t.conduit.xyz",
"icon": {
"url": "ipfs://QmYtUimyqHkkFxYdbXXRbUqNg2VLPUg6Uu2C2nmFWowiZM",
"width": 551,
"height": 540,
"format": "png"
},
"standard": "EIP3091"
}
],
"testnet": true,
"slug": "orderly-sepolia-testnet"
} as const satisfies Chain;
+24 -22
View File
@@ -1,36 +1,38 @@
import type { Chain } from "../src/types";
export default {
"name": "Acria IntelliChain",
"chain": "AIC",
"name": "Xpla Testnet",
"chain": "XPLA",
"rpc": [
"https://acria-intellichain.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"https://aic.acria.ai"
"https://xpla-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"https://cube-evm-rpc.xpla.dev"
],
"faucets": [],
"nativeCurrency": {
"name": "ACRIA",
"symbol": "ACRIA",
"name": "XPLA",
"symbol": "XPLA",
"decimals": 18
},
"features": [
{
"name": "EIP155"
},
{
"name": "EIP1559"
}
"faucets": [
"https://faucet.xpla.io/"
],
"infoURL": "https://acria.ai",
"shortName": "aic",
"infoURL": "https://xpla.io/",
"shortName": "xpla-test",
"chainId": 47,
"networkId": 47,
"icon": {
"url": "ipfs://QmbvEAKZfgJckEziU3mpCwz6jqMeWRcLgd8TNsWA7g8sD9/xpla.png",
"width": 512,
"height": 512,
"format": "png"
},
"explorers": [
{
"name": "Acria IntelliChain-Explorer",
"url": "https://explorer.acria.ai",
"standard": "EIP3091"
"name": "XPLA Explorer",
"url": "https://explorer.xpla.io/testnet",
"standard": "none"
}
],
"testnet": false,
"slug": "acria-intellichain"
"testnet": true,
"redFlags": [
"reusedChainId"
],
"slug": "xpla-testnet"
} as const satisfies Chain;
+27
View File
@@ -0,0 +1,27 @@
import type { Chain } from "../src/types";
export default {
"name": "Xai Goerli Orbit",
"chain": "Xai Goerli Orbit Testnet",
"shortName": "xai-goerli",
"chainId": 47279324479,
"testnet": true,
"nativeCurrency": {
"name": "Xai Goerli Ether",
"symbol": "ETH",
"decimals": 18
},
"rpc": [
"https://xai-goerli-orbit.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"https://testnet.xai-chain.net/rpc"
],
"explorers": [
{
"name": "Xai Goerli Testnet Explorer",
"url": "https://testnet-explorer.xai-chain.net",
"standard": "EIP3091"
}
],
"faucets": [],
"infoURL": "https://xai.games/",
"slug": "xai-goerli-orbit"
} as const satisfies Chain;
+2 -2
View File
@@ -8,8 +8,8 @@ export default {
],
"faucets": [],
"nativeCurrency": {
"name": "HMND",
"symbol": "HMND",
"name": "eHMND",
"symbol": "eHMND",
"decimals": 18
},
"infoURL": "https://humanode.io",
+17 -4
View File
@@ -2,8 +2,11 @@ import type { Chain } from "../src/types";
export default {
"name": "Scroll Sepolia Testnet",
"chain": "ETH",
"status": "incubating",
"rpc": [],
"status": "active",
"rpc": [
"https://scroll-sepolia-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"https://sepolia-rpc.scroll.io/"
],
"faucets": [],
"nativeCurrency": {
"name": "Ether",
@@ -14,11 +17,21 @@ export default {
"shortName": "scr-sepolia",
"chainId": 534351,
"networkId": 534351,
"explorers": [],
"explorers": [
{
"name": "Scroll Sepolia Testnet Block Explorer",
"url": "https://sepolia-blockscout.scroll.io",
"standard": "EIP3091"
}
],
"parent": {
"type": "L2",
"chain": "eip155-11155111",
"bridges": []
"bridges": [
{
"url": "https://scroll.io/bridge"
}
]
},
"testnet": true,
"slug": "scroll-sepolia-testnet"
+16 -3
View File
@@ -3,7 +3,10 @@ export default {
"name": "Scroll",
"chain": "ETH",
"status": "incubating",
"rpc": [],
"rpc": [
"https://scroll.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"https://rpc.scroll.io"
],
"faucets": [],
"nativeCurrency": {
"name": "Ether",
@@ -14,11 +17,21 @@ export default {
"shortName": "scr",
"chainId": 534352,
"networkId": 534352,
"explorers": [],
"explorers": [
{
"name": "Scroll Mainnet Block Explorer",
"url": "https://blockscout.scroll.io",
"standard": "EIP3091"
}
],
"parent": {
"type": "L2",
"chain": "eip155-1",
"bridges": []
"bridges": [
{
"url": "https://scroll.io/bridge"
}
]
},
"testnet": false,
"slug": "scroll"
+2 -7
View File
@@ -2,7 +2,7 @@ import type { Chain } from "../src/types";
export default {
"name": "Scroll Alpha Testnet",
"chain": "ETH",
"status": "active",
"status": "deprecated",
"rpc": [
"https://scroll-alpha-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"https://alpha-rpc.scroll.io/l2"
@@ -20,12 +20,7 @@ export default {
"explorers": [
{
"name": "Scroll Alpha Testnet Block Explorer",
"url": "https://blockscout.scroll.io",
"standard": "EIP3091"
},
{
"name": "Scroll Alpha Testnet Block Explorer",
"url": "https://scrollscan.co",
"url": "https://alpha-blockscout.scroll.io",
"standard": "EIP3091"
}
],
+28
View File
@@ -0,0 +1,28 @@
import type { Chain } from "../src/types";
export default {
"name": "PAWCHAIN Testnet",
"chain": "PAW",
"rpc": [
"https://pawchain-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"https://pawchainx.com/"
],
"faucets": [],
"nativeCurrency": {
"name": "PAW",
"symbol": "PAW",
"decimals": 18
},
"infoURL": "https://pawchainx.com/",
"shortName": "PAW",
"chainId": 542,
"networkId": 542,
"explorers": [
{
"name": "PAWCHAIN Testnet",
"url": "https://pawscan.io",
"standard": "none"
}
],
"testnet": true,
"slug": "pawchain-testnet"
} as const satisfies Chain;
+42
View File
@@ -0,0 +1,42 @@
import type { Chain } from "../src/types";
export default {
"name": "LAOS Arrakis",
"title": "LAOS Testnet Arrakis",
"chain": "LAOS",
"icon": {
"url": "ipfs://QmZ4YYcvhcaeotMPaGXC5Vab7JFaVkka37V8TiTJpT7Mak",
"width": 586,
"height": 558,
"format": "png"
},
"rpc": [
"https://laos-arrakis.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"https://arrakis.gorengine.com/own",
"wss://arrakis.gorengine.com/own"
],
"faucets": [],
"nativeCurrency": {
"name": "LAOS",
"symbol": "LAOS",
"decimals": 18
},
"infoURL": "https://www.laosfoundation.io/",
"shortName": "laos",
"chainId": 667,
"networkId": 667,
"explorers": [
{
"name": "blockscout",
"url": "https://arrakis.gorengine.com",
"icon": {
"url": "ipfs://QmZ4YYcvhcaeotMPaGXC5Vab7JFaVkka37V8TiTJpT7Mak",
"width": 586,
"height": 558,
"format": "png"
},
"standard": "EIP3091"
}
],
"testnet": true,
"slug": "laos-arrakis"
} as const satisfies Chain;
+5 -1
View File
@@ -4,7 +4,11 @@ export default {
"chain": "DSC",
"rpc": [
"https://decimal-smart-chain.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"https://node.decimalchain.com/web3/"
"https://node.decimalchain.com/web3/",
"https://node1-mainnet.decimalchain.com/web3/",
"https://node2-mainnet.decimalchain.com/web3/",
"https://node3-mainnet.decimalchain.com/web3/",
"https://node4-mainnet.decimalchain.com/web3/"
],
"faucets": [],
"nativeCurrency": {
+34
View File
@@ -0,0 +1,34 @@
import type { Chain } from "../src/types";
export default {
"name": "Miexs Smartchain",
"chain": "MiexsSmartchain",
"icon": {
"url": "ipfs://bafkreic6tcc6swh5kzljwqnswj6rlemcm7n6ra7xkgttwv5v3fv7ozj5zu",
"width": 1500,
"height": 1500,
"format": "png"
},
"rpc": [
"https://miexs-smartchain.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"https://mainnet-rpc.miexs.com"
],
"faucets": [],
"nativeCurrency": {
"name": "Miexs Coin",
"symbol": "MIX",
"decimals": 18
},
"infoURL": "https://miexs.com",
"shortName": "Miexs",
"chainId": 761412,
"networkId": 761412,
"explorers": [
{
"name": "Miexs Smartchain Explorer",
"url": "https://miexs.com",
"standard": "EIP3091"
}
],
"testnet": false,
"slug": "miexs-smartchain"
} as const satisfies Chain;
+6 -2
View File
@@ -9,7 +9,11 @@ export default {
"https://evm-dataseed3.meerscan.io",
"https://evm-dataseed.meerscan.com",
"https://evm-dataseed1.meerscan.com",
"https://evm-dataseed2.meerscan.com"
"https://evm-dataseed2.meerscan.com",
"https://qng.rpc.qitmeer.io",
"https://mainnet.meerlabs.com",
"https://rpc.dimai.ai",
"https://rpc.woowow.io"
],
"faucets": [],
"nativeCurrency": {
@@ -37,7 +41,7 @@ export default {
"height": 512,
"format": "png"
},
"url": "https://evm.meerscan.com",
"url": "https://qng.meerscan.io",
"standard": "none"
}
],
+10 -3
View File
@@ -2,8 +2,15 @@ import type { Chain } from "../src/types";
export default {
"name": "Qitmeer Network Testnet",
"chain": "MEER",
"rpc": [],
"faucets": [],
"rpc": [
"https://qitmeer-network-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"https://testnet-qng.rpc.qitmeer.io",
"https://testnet.meerlabs.com",
"https://meer.testnet.meerfans.club"
],
"faucets": [
"https://faucet.qitmeer.io"
],
"nativeCurrency": {
"name": "Qitmeer Testnet",
"symbol": "MEER-T",
@@ -28,7 +35,7 @@ export default {
"height": 512,
"format": "png"
},
"url": "https://testnet.qng.meerscan.io",
"url": "https://qng-testnet.meerscan.io",
"standard": "none"
}
],
+2 -1
View File
@@ -4,7 +4,8 @@ export default {
"chain": "ETH",
"rpc": [
"https://base.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"https://mainnet.base.org/"
"https://mainnet.base.org/",
"https://developer-access-mainnet.base.org/"
],
"faucets": [],
"nativeCurrency": {
+21
View File
@@ -0,0 +1,21 @@
import type { Chain } from "../src/types";
export default {
"name": "Worlds Appchain",
"chain": "WRLDS",
"shortName": "WRLDS",
"chainId": 91003,
"testnet": true,
"rpc": [
"https://worlds-appchain.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"https://api.evm.worlds.dev.eclipsenetwork.xyz/"
],
"nativeCurrency": {
"name": "WRLDS",
"symbol": "WRLDS",
"decimals": 18
},
"faucets": [
"https://faucet.evm.worlds.dev.eclipsenetwork.xyz/request_neon"
],
"slug": "worlds-appchain"
} as const satisfies Chain;
+5 -1
View File
@@ -2,7 +2,11 @@ import type { Chain } from "../src/types";
export default {
"name": "IMPERIUM TESTNET",
"chain": "tIMP",
"rpc": [],
"rpc": [
"https://imperium-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"https://data-aws-testnet.imperiumchain.com",
"https://data-aws2-testnet.imperiumchain.com"
],
"faucets": [
"https://faucet.imperiumchain.com/"
],
+5 -1
View File
@@ -2,7 +2,11 @@ import type { Chain } from "../src/types";
export default {
"name": "IMPERIUM MAINNET",
"chain": "IMP",
"rpc": [],
"rpc": [
"https://imperium.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"https://data-aws-mainnet.imperiumchain.com",
"https://data-aws2-mainnet.imperiumchain.com"
],
"faucets": [
"https://faucet.imperiumchain.com/"
],
@@ -8,6 +8,12 @@ export default {
shortName: "POPTestnet",
chainId: 331769,
testnet: true,
icon: {
format: "png",
url: "ipfs://QmP8rYvcc7aJB3c2YZxjxaySvHapHnoK8MnxuSuDT4PtF2",
height: 400,
width: 400,
},
rpc: ["https://testnet01.proofofpepe.tech"],
nativeCurrency: {
name: "POP",
@@ -0,0 +1,30 @@
// @ts-check
/** @typedef { import("../../src/types").Chain } Chain */
/** @type {Omit<Chain, "slug">} */
export default {
name: "POP Mainnet",
chain: "POP",
shortName: "POP",
chainId: 331771,
testnet: false,
icon: {
format: "png",
url: "ipfs://QmP8rYvcc7aJB3c2YZxjxaySvHapHnoK8MnxuSuDT4PtF2",
height: 400,
width: 400,
},
rpc: [
"https://rpc00.proofofpepe.tech",
"https://rpc01.proofofpepe.tech",
"https://rpc02.proofofpepe.tech",
],
nativeCurrency: {
name: "Pepe",
symbol: "PEPE",
decimals: 18,
},
explorers: [
{ name: "Pepescan", url: "https://pepescan.app", standard: "none" },
],
};
+32
View File
@@ -0,0 +1,32 @@
// @ts-check
/** @typedef { import("../../src/types").Chain } Chain */
/** @type {Omit<Chain, "slug">} */
export default {
name: "Xpla Mainnet",
chain: "XPLA",
rpc: ["https://dimension-evm-rpc.xpla.dev"],
nativeCurrency: {
name: "XPLA",
symbol: "XPLA",
decimals: 18,
},
infoURL: "https://xpla.io/",
shortName: "xpla",
chainId: 37,
icon: {
url: "ipfs://QmbvEAKZfgJckEziU3mpCwz6jqMeWRcLgd8TNsWA7g8sD9/xpla.png",
width: 512,
height: 512,
format: "png",
},
explorers: [
{
name: "XPLA Explorer",
url: "https://explorer.xpla.io",
standard: "none",
},
],
testnet: false,
redFlags: ["reusedChainId"],
};
+33
View File
@@ -0,0 +1,33 @@
// @ts-check
/** @typedef { import("../../src/types").Chain } Chain */
/** @type {Omit<Chain, "slug">} */
export default {
name: "Xpla Testnet",
chain: "XPLA",
rpc: ["https://cube-evm-rpc.xpla.dev"],
nativeCurrency: {
name: "XPLA",
symbol: "XPLA",
decimals: 18,
},
faucets: ["https://faucet.xpla.io/"],
infoURL: "https://xpla.io/",
shortName: "xpla-test",
chainId: 47,
icon: {
url: "ipfs://QmbvEAKZfgJckEziU3mpCwz6jqMeWRcLgd8TNsWA7g8sD9/xpla.png",
width: 512,
height: 512,
format: "png",
},
explorers: [
{
name: "XPLA Explorer",
url: "https://explorer.xpla.io/testnet",
standard: "none",
},
],
testnet: true,
redFlags: ["reusedChainId"],
};
@@ -0,0 +1,26 @@
// @ts-check
/** @typedef { import("../../src/types").Chain } Chain */
/** @type {Omit<Chain, "slug">} */
export default {
name: "Xai Goerli Orbit",
chain: "Xai Goerli Orbit Testnet",
shortName: "xai-goerli",
chainId: 47279324479,
testnet: true,
nativeCurrency: {
name: "Xai Goerli Ether",
symbol: "ETH",
decimals: 18,
},
rpc: ["https://testnet.xai-chain.net/rpc"],
explorers: [
{
name: "Xai Goerli Testnet Explorer",
url: "https://testnet-explorer.xai-chain.net",
standard: "EIP3091",
},
],
faucets: [],
infoURL: "https://xai.games/",
};
+18
View File
@@ -0,0 +1,18 @@
// @ts-check
/** @typedef { import("../../src/types").Chain } Chain */
/** @type {Omit<Chain, "slug">} */
export default {
name: "Worlds Appchain",
chain: "WRLDS",
shortName: "WRLDS",
chainId: 91003,
testnet: true,
rpc: ["https://api.evm.worlds.dev.eclipsenetwork.xyz/"],
nativeCurrency: {
name: "WRLDS",
symbol: "WRLDS",
decimals: 18,
},
faucets: ["https://faucet.evm.worlds.dev.eclipsenetwork.xyz/request_neon"],
};
+1 -1
View File
@@ -1,6 +1,6 @@
{
"name": "@thirdweb-dev/chains",
"version": "0.1.42",
"version": "0.1.47",
"main": "dist/thirdweb-dev-chains.cjs.js",
"module": "dist/thirdweb-dev-chains.esm.js",
"browser": {
+3 -1
View File
@@ -105,7 +105,8 @@ for (const file of additionalChainsFiles) {
}
chains = chains
.filter((c) => c.status !== "deprecated")
// Keep scroll-alpha-testnet for now even though its deprecated
.filter((c) => c.status !== "deprecated" || c.chainId === 534353)
.map((chain) => {
if (overrides[chain.chainId]) {
chain = merge(chain, overrides[chain.chainId], {
@@ -343,6 +344,7 @@ ${exports.join("\n")}
export * from "./types";
export * from "./utils";
export const defaultChains = [c1, c5, c8453, c84531, c137, c80001, c42161, c421613, c10, c420, c56, c97, c250, c4002, c43114, c43113, c1337];
// @ts-expect-error - TODO: fix this later
export const allChains: Chain[] = [${exportNames.join(", ")}];
type ChainsById = {
File diff suppressed because one or more lines are too long
+67
View File
@@ -1,5 +1,72 @@
# thirdweb
## 0.11.19
### Patch Changes
- Updated dependencies [[`586e91db`](https://github.com/thirdweb-dev/js/commit/586e91dbe610588cc7b24fade59172fed6481074), [`34a3bb8a`](https://github.com/thirdweb-dev/js/commit/34a3bb8ae3c1d7a506e5568a9e79ab7e469557a8), [`91f0245b`](https://github.com/thirdweb-dev/js/commit/91f0245be78ae523e1faea26b1032bfb283467d9), [`f65578d6`](https://github.com/thirdweb-dev/js/commit/f65578d637decc8b87cada5b5b0c8c504064d9d5), [`5a373a75`](https://github.com/thirdweb-dev/js/commit/5a373a75090da7e1e05724ed1a3a3a6aa9f7fd21), [`ae74b8ef`](https://github.com/thirdweb-dev/js/commit/ae74b8ef6200dba8affa8b52e7d834c5552350d0), [`bc003c2f`](https://github.com/thirdweb-dev/js/commit/bc003c2fef33fcf7ce5981d8634911ac4bcaa927), [`447d9846`](https://github.com/thirdweb-dev/js/commit/447d984653f77af6860ae907072e768b584b263d), [`f65578d6`](https://github.com/thirdweb-dev/js/commit/f65578d637decc8b87cada5b5b0c8c504064d9d5)]:
- @thirdweb-dev/sdk@3.10.55
- @thirdweb-dev/chains@0.1.47
- @thirdweb-dev/storage@1.2.8
## 0.11.18
### Patch Changes
- Updated dependencies [[`184c325a`](https://github.com/thirdweb-dev/js/commit/184c325ab2ef028022a050c4274f2ab12b1a3a7f), [`046c9ad6`](https://github.com/thirdweb-dev/js/commit/046c9ad604587ff79bf028c4fe7b1f9c94f4ea54), [`c12f0874`](https://github.com/thirdweb-dev/js/commit/c12f0874b4dac43c263c7edb20d0343c16381c34)]:
- @thirdweb-dev/chains@0.1.46
- @thirdweb-dev/storage@1.2.7
- @thirdweb-dev/sdk@3.10.54
## 0.11.17
### Patch Changes
- Updated dependencies [[`f97ddf4c`](https://github.com/thirdweb-dev/js/commit/f97ddf4c7f14854f3b204ad9741b52ddb8dac736)]:
- @thirdweb-dev/chains@0.1.45
- @thirdweb-dev/sdk@3.10.53
## 0.11.16
### Patch Changes
- Updated dependencies [[`e1962641`](https://github.com/thirdweb-dev/js/commit/e19626417218767a0e44c00f440761d7b86d02eb), [`bd1fcbae`](https://github.com/thirdweb-dev/js/commit/bd1fcbae327e788124f5635673511f0b72e9d7ab)]:
- @thirdweb-dev/sdk@3.10.52
## 0.11.15
### Patch Changes
- [#1499](https://github.com/thirdweb-dev/js/pull/1499) [`8f3b685a`](https://github.com/thirdweb-dev/js/commit/8f3b685ad2bd73cb4d5d8c8aa25c04ffc10fb7cf) Thanks [@Marfuen](https://github.com/Marfuen)! - Update deploy command from CLI to use show a public gateway url temporarily. Updated chains too.
- Updated dependencies [[`d248aa2c`](https://github.com/thirdweb-dev/js/commit/d248aa2c5a89a297dd2623c961793026de1de346), [`d248aa2c`](https://github.com/thirdweb-dev/js/commit/d248aa2c5a89a297dd2623c961793026de1de346), [`8f3b685a`](https://github.com/thirdweb-dev/js/commit/8f3b685ad2bd73cb4d5d8c8aa25c04ffc10fb7cf), [`28975765`](https://github.com/thirdweb-dev/js/commit/2897576513eb6f497a9f92e3e473182b4fc9681b), [`b91d3e99`](https://github.com/thirdweb-dev/js/commit/b91d3e990198b77dc1358e738c11dc4acaa67491)]:
- @thirdweb-dev/sdk@3.10.51
- @thirdweb-dev/storage@1.2.6
- @thirdweb-dev/chains@0.1.44
## 0.11.14
### Patch Changes
- Updated dependencies [[`a5ba9e4f`](https://github.com/thirdweb-dev/js/commit/a5ba9e4fbfee228e5b9ac27cd0157187e3a50117), [`39e2af6f`](https://github.com/thirdweb-dev/js/commit/39e2af6f2f4d933dca1b3de4a37de76375bafd74)]:
- @thirdweb-dev/sdk@3.10.50
## 0.11.13
### Patch Changes
- Updated dependencies [[`7f531122`](https://github.com/thirdweb-dev/js/commit/7f5311222b14da04877df056baae36409dff4696)]:
- @thirdweb-dev/sdk@3.10.49
## 0.11.12
### Patch Changes
- Updated dependencies [[`73462ef1`](https://github.com/thirdweb-dev/js/commit/73462ef10800aeeb5976634e2bc6fb5d3e8501e4), [`27c225a5`](https://github.com/thirdweb-dev/js/commit/27c225a51221417592b5940887abd1ccb8b67e47), [`cb1c9937`](https://github.com/thirdweb-dev/js/commit/cb1c9937fadb2d06eb148cf9819f2b3601376308), [`70c4a119`](https://github.com/thirdweb-dev/js/commit/70c4a119d691a37ec999d9f6087902d532cc82ed), [`a1732663`](https://github.com/thirdweb-dev/js/commit/a17326634e758c3bf42f0cc3869b8792f1e18cc9), [`f0443bd9`](https://github.com/thirdweb-dev/js/commit/f0443bd989dbba50d0836d1cf274bfb2f44a53fd), [`cb1c9937`](https://github.com/thirdweb-dev/js/commit/cb1c9937fadb2d06eb148cf9819f2b3601376308), [`588b2106`](https://github.com/thirdweb-dev/js/commit/588b21060139a7c0bf5805e2c629a16792ed2c76), [`269e68c0`](https://github.com/thirdweb-dev/js/commit/269e68c0a15e8f78cb5b68c9456ca8094b9e1f30)]:
- @thirdweb-dev/storage@1.2.5
- @thirdweb-dev/sdk@3.10.48
- @thirdweb-dev/chains@0.1.43
## 0.11.11
### Patch Changes
+1 -1
View File
@@ -1,7 +1,7 @@
{
"name": "thirdweb",
"main": "dist/cli/index.js",
"version": "0.11.11",
"version": "0.11.19",
"repository": "https://github.com/thirdweb-dev/js/tree/main/packages/cli",
"author": "thirdweb eng <[email protected]>",
"license": "Apache-2.0",
+4 -1
View File
@@ -70,7 +70,10 @@ export async function deployApp(
try {
const uri = await upload(storage, distPath);
return storage.resolveScheme(uri);
return `${uri.replace(
"ipfs://",
"https://cf-ipfs.com/ipfs/",
)}`;
} catch (err) {
console.error("Can't upload project", err);
return Promise.reject("Can't upload project");
+5 -3
View File
@@ -199,13 +199,15 @@ export async function generate(options: GenerateOptions, apiSecretKey: string) {
}
const packageJson = JSON.parse(fs.readFileSync(packageJsonPath, "utf-8"));
if (packageJson.scripts?.postinstall?.includes("thirdweb generate") || packageJson.scripts?.postinstall?.includes("thirdweb@latest generate")) {
if (
packageJson.scripts?.postinstall?.includes("thirdweb generate") ||
packageJson.scripts?.postinstall?.includes("thirdweb@latest generate")
) {
return;
}
const postinstall = packageJson.scripts?.postinstall
? packageJson.scripts.postinstall +
`npx --yes thirdweb@latest generate`
? packageJson.scripts.postinstall + `npx --yes thirdweb@latest generate`
: `npx --yes thirdweb@latest generate`;
fs.writeFileSync(
+6
View File
@@ -1,5 +1,11 @@
# @thirdweb-dev/contracts-js
## 1.3.12
### Patch Changes
- [#1518](https://github.com/thirdweb-dev/js/pull/1518) [`34a3bb8a`](https://github.com/thirdweb-dev/js/commit/34a3bb8ae3c1d7a506e5568a9e79ab7e469557a8) Thanks [@nkrishang](https://github.com/nkrishang)! - Update contracts package
## 1.3.11
### Patch Changes
+2 -2
View File
@@ -1,6 +1,6 @@
{
"name": "@thirdweb-dev/contracts-js",
"version": "1.3.11",
"version": "1.3.12",
"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.8.3"
"@thirdweb-dev/contracts": "3.8.5"
},
"devDependencies": {
"@babel/preset-env": "^7.22.9",
+88
View File
@@ -1,5 +1,93 @@
# @thirdweb-dev/react-core
## 3.14.36
### Patch Changes
- [#1522](https://github.com/thirdweb-dev/js/pull/1522) [`088547f7`](https://github.com/thirdweb-dev/js/commit/088547f763294f1641c01ffe1aabac585f255dc0) Thanks [@MananTank](https://github.com/MananTank)! - - New prop `switchToActiveChain` added to `ConnectWallet`` component to show "Switch Network" button if wallet is not connected to the `activeChain`passed to the`ThirdwebProvider`
- Add max-height on `ConnectWallet` modal
- Local Wallet UI adjustments
- Updated dependencies [[`586e91db`](https://github.com/thirdweb-dev/js/commit/586e91dbe610588cc7b24fade59172fed6481074), [`34a3bb8a`](https://github.com/thirdweb-dev/js/commit/34a3bb8ae3c1d7a506e5568a9e79ab7e469557a8), [`91f0245b`](https://github.com/thirdweb-dev/js/commit/91f0245be78ae523e1faea26b1032bfb283467d9), [`f65578d6`](https://github.com/thirdweb-dev/js/commit/f65578d637decc8b87cada5b5b0c8c504064d9d5), [`5a373a75`](https://github.com/thirdweb-dev/js/commit/5a373a75090da7e1e05724ed1a3a3a6aa9f7fd21), [`ae74b8ef`](https://github.com/thirdweb-dev/js/commit/ae74b8ef6200dba8affa8b52e7d834c5552350d0), [`bc003c2f`](https://github.com/thirdweb-dev/js/commit/bc003c2fef33fcf7ce5981d8634911ac4bcaa927), [`447d9846`](https://github.com/thirdweb-dev/js/commit/447d984653f77af6860ae907072e768b584b263d), [`f65578d6`](https://github.com/thirdweb-dev/js/commit/f65578d637decc8b87cada5b5b0c8c504064d9d5)]:
- @thirdweb-dev/sdk@3.10.55
- @thirdweb-dev/chains@0.1.47
- @thirdweb-dev/storage@1.2.8
- @thirdweb-dev/wallets@1.1.19
- @thirdweb-dev/auth@3.2.36
## 3.14.35
### Patch Changes
- Updated dependencies [[`184c325a`](https://github.com/thirdweb-dev/js/commit/184c325ab2ef028022a050c4274f2ab12b1a3a7f), [`046c9ad6`](https://github.com/thirdweb-dev/js/commit/046c9ad604587ff79bf028c4fe7b1f9c94f4ea54), [`c12f0874`](https://github.com/thirdweb-dev/js/commit/c12f0874b4dac43c263c7edb20d0343c16381c34)]:
- @thirdweb-dev/chains@0.1.46
- @thirdweb-dev/storage@1.2.7
- @thirdweb-dev/sdk@3.10.54
- @thirdweb-dev/wallets@1.1.18
- @thirdweb-dev/auth@3.2.35
## 3.14.34
### Patch Changes
- Updated dependencies [[`f97ddf4c`](https://github.com/thirdweb-dev/js/commit/f97ddf4c7f14854f3b204ad9741b52ddb8dac736)]:
- @thirdweb-dev/chains@0.1.45
- @thirdweb-dev/sdk@3.10.53
- @thirdweb-dev/wallets@1.1.17
- @thirdweb-dev/auth@3.2.34
## 3.14.33
### Patch Changes
- Updated dependencies [[`e1962641`](https://github.com/thirdweb-dev/js/commit/e19626417218767a0e44c00f440761d7b86d02eb), [`bd1fcbae`](https://github.com/thirdweb-dev/js/commit/bd1fcbae327e788124f5635673511f0b72e9d7ab)]:
- @thirdweb-dev/sdk@3.10.52
- @thirdweb-dev/wallets@1.1.16
- @thirdweb-dev/auth@3.2.33
## 3.14.32
### Patch Changes
- [#1489](https://github.com/thirdweb-dev/js/pull/1489) [`07fb1b5f`](https://github.com/thirdweb-dev/js/commit/07fb1b5ffa4c170e252df31070852ddb9a81dec9) Thanks [@iketw](https://github.com/iketw)! - Cleanup and minor bug fix in ReactCore
- [#1486](https://github.com/thirdweb-dev/js/pull/1486) [`300a3c6f`](https://github.com/thirdweb-dev/js/commit/300a3c6f04d0ea7e25dfdb0a4c28b3a5796fcadf) Thanks [@iketw](https://github.com/iketw)! - Add better error messages when using hooks outside the <ThirdwebProvider />
- Updated dependencies [[`07fb1b5f`](https://github.com/thirdweb-dev/js/commit/07fb1b5ffa4c170e252df31070852ddb9a81dec9), [`d248aa2c`](https://github.com/thirdweb-dev/js/commit/d248aa2c5a89a297dd2623c961793026de1de346), [`d248aa2c`](https://github.com/thirdweb-dev/js/commit/d248aa2c5a89a297dd2623c961793026de1de346), [`8f3b685a`](https://github.com/thirdweb-dev/js/commit/8f3b685ad2bd73cb4d5d8c8aa25c04ffc10fb7cf), [`28975765`](https://github.com/thirdweb-dev/js/commit/2897576513eb6f497a9f92e3e473182b4fc9681b), [`b91d3e99`](https://github.com/thirdweb-dev/js/commit/b91d3e990198b77dc1358e738c11dc4acaa67491)]:
- @thirdweb-dev/wallets@1.1.15
- @thirdweb-dev/sdk@3.10.51
- @thirdweb-dev/storage@1.2.6
- @thirdweb-dev/chains@0.1.44
- @thirdweb-dev/auth@3.2.32
## 3.14.31
### Patch Changes
- Updated dependencies [[`39e2af6f`](https://github.com/thirdweb-dev/js/commit/39e2af6f2f4d933dca1b3de4a37de76375bafd74), [`a5ba9e4f`](https://github.com/thirdweb-dev/js/commit/a5ba9e4fbfee228e5b9ac27cd0157187e3a50117), [`39e2af6f`](https://github.com/thirdweb-dev/js/commit/39e2af6f2f4d933dca1b3de4a37de76375bafd74)]:
- @thirdweb-dev/wallets@1.1.14
- @thirdweb-dev/sdk@3.10.50
- @thirdweb-dev/auth@3.2.31
## 3.14.30
### Patch Changes
- Updated dependencies [[`34b31599`](https://github.com/thirdweb-dev/js/commit/34b315993c0abaccb9640a5d5804c2c93af569c2), [`7f531122`](https://github.com/thirdweb-dev/js/commit/7f5311222b14da04877df056baae36409dff4696)]:
- @thirdweb-dev/wallets@1.1.13
- @thirdweb-dev/sdk@3.10.49
- @thirdweb-dev/auth@3.2.30
## 3.14.29
### Patch Changes
- Updated dependencies [[`73462ef1`](https://github.com/thirdweb-dev/js/commit/73462ef10800aeeb5976634e2bc6fb5d3e8501e4), [`27c225a5`](https://github.com/thirdweb-dev/js/commit/27c225a51221417592b5940887abd1ccb8b67e47), [`cb1c9937`](https://github.com/thirdweb-dev/js/commit/cb1c9937fadb2d06eb148cf9819f2b3601376308), [`70c4a119`](https://github.com/thirdweb-dev/js/commit/70c4a119d691a37ec999d9f6087902d532cc82ed), [`a1732663`](https://github.com/thirdweb-dev/js/commit/a17326634e758c3bf42f0cc3869b8792f1e18cc9), [`f0443bd9`](https://github.com/thirdweb-dev/js/commit/f0443bd989dbba50d0836d1cf274bfb2f44a53fd), [`cb1c9937`](https://github.com/thirdweb-dev/js/commit/cb1c9937fadb2d06eb148cf9819f2b3601376308), [`588b2106`](https://github.com/thirdweb-dev/js/commit/588b21060139a7c0bf5805e2c629a16792ed2c76), [`269e68c0`](https://github.com/thirdweb-dev/js/commit/269e68c0a15e8f78cb5b68c9456ca8094b9e1f30)]:
- @thirdweb-dev/storage@1.2.5
- @thirdweb-dev/wallets@1.1.12
- @thirdweb-dev/sdk@3.10.48
- @thirdweb-dev/chains@0.1.43
- @thirdweb-dev/auth@3.2.29
## 3.14.28
### Patch Changes
+2 -2
View File
@@ -1,6 +1,6 @@
{
"name": "@thirdweb-dev/react-core",
"version": "3.14.28",
"version": "3.14.36",
"repository": "https://github.com/thirdweb-dev/js/tree/main/packages/react-core",
"author": "thirdweb eng <[email protected]>",
"license": "Apache-2.0",
@@ -98,7 +98,7 @@
"typescript": "^5.1.6"
},
"dependencies": {
"@tanstack/react-query": "^4.32.0",
"@tanstack/react-query": "^4.33.0",
"@thirdweb-dev/chains": "workspace:*",
"@thirdweb-dev/generated-abis": "workspace:^",
"@thirdweb-dev/sdk": "workspace:*",
@@ -152,6 +152,7 @@ export const ThirdwebProviderCore = <TChains extends Chain[]>({
autoSwitch={props.autoSwitch}
autoConnectTimeout={props.autoConnectTimeout}
clientId={props.clientId}
activeChainSetExplicitly={!!props.activeChain}
>
<ThirdwebSDKProviderWrapper
queryClient={props.queryClient}
@@ -89,6 +89,7 @@ type ThirdwebWalletContextData = {
* Get wallet config object from wallet instance
*/
getWalletConfig: (walletInstance: WalletInstance) => WalletConfig | undefined;
activeChainSetExplicitly: boolean;
};
const ThirdwebWalletContext = /* @__PURE__ */ createContext<
@@ -106,6 +107,7 @@ export function ThirdwebWalletProvider(
autoSwitch?: boolean;
autoConnectTimeout?: number;
clientId?: string;
activeChainSetExplicitly: boolean;
}>,
) {
const [signer, setSigner] = useState<Signer | undefined>(undefined);
@@ -229,7 +231,11 @@ export function ThirdwebWalletProvider(
try {
const parsedWallet = JSON.parse(lastConnectedWallet as string);
parsedWallet.connectParams.chainId = chainId;
if (parsedWallet.connectParams) {
parsedWallet.connectParams.chainId = chainId;
} else {
parsedWallet.connectParams = { chainId };
}
await lastConnectedWalletStorage.setItem(
LAST_CONNECTED_WALLET_STORAGE_KEY,
JSON.stringify(parsedWallet),
@@ -476,6 +482,7 @@ export function ThirdwebWalletProvider(
getWalletConfig: (walletInstance: WalletInstance) => {
return walletInstanceToConfig.get(walletInstance);
},
activeChainSetExplicitly: props.activeChainSetExplicitly,
}}
>
{props.children}
@@ -1,15 +1,15 @@
import { Chain, defaultChains } from "@thirdweb-dev/chains";
import { Chain } from "@thirdweb-dev/chains";
import React, { createContext, PropsWithChildren, useContext } from "react";
import invariant from "tiny-invariant";
interface ThirdwebConfigContext {
chains: Chain[];
clientId?: string;
}
const ThirdwebConfigContext =
/* @__PURE__ */ createContext<ThirdwebConfigContext>({
chains: defaultChains,
});
export const ThirdwebConfigContext = /* @__PURE__ */ createContext<
ThirdwebConfigContext | undefined
>(undefined);
export const ThirdwebConfigProvider: React.FC<
PropsWithChildren<{
@@ -22,5 +22,10 @@ export const ThirdwebConfigProvider: React.FC<
);
export function useThirdwebConfigContext() {
return useContext(ThirdwebConfigContext);
const context = useContext(ThirdwebConfigContext);
invariant(
context,
"useThirdwebConfigContext() hook must be used within a <ThirdwebProvider/>",
);
return context;
}
@@ -11,6 +11,7 @@ import React, {
useState,
} from "react";
import { useSDK } from "../hooks/useSDK";
import invariant from "tiny-invariant";
interface ThirdwebConnectedWalletContext {
wallet: UserWallet | undefined;
@@ -26,10 +27,9 @@ const INITIAL_CONTEXT_VALUE: ThirdwebConnectedWalletContext = {
signer: undefined,
};
const ThirdwebConnectedWalletContext =
/* @__PURE__ */ createContext<ThirdwebConnectedWalletContext>(
INITIAL_CONTEXT_VALUE,
);
export const ThirdwebConnectedWalletContext = /* @__PURE__ */ createContext<
ThirdwebConnectedWalletContext | undefined
>(undefined);
export const ThirdwebConnectedWalletProvider: React.FC<
PropsWithChildren<{ signer?: Signer }>
@@ -115,5 +115,10 @@ export const ThirdwebConnectedWalletProvider: React.FC<
};
export function useThirdwebConnectedWalletContext() {
return useContext(ThirdwebConnectedWalletContext);
const context = useContext(ThirdwebConnectedWalletContext);
invariant(
context,
"useThirdwebConnectedWalletContext() hook must be used within a <ThirdwebProvider/>",
);
return context;
}
@@ -21,7 +21,6 @@ import {
} from "@tanstack/react-query";
import { getCachedAbiForContract, TransactionResult } from "@thirdweb-dev/sdk";
import type {
Abi,
CommonContractSchemaInput,
ContractEvent,
ContractForPrebuiltContractType,
@@ -33,6 +32,7 @@ import type {
ThirdwebSDK,
ValidContractInstance,
BaseContractForAddress,
PublishedMetadata,
} from "@thirdweb-dev/sdk";
import type { CallOverrides, ContractInterface, providers } from "ethers";
import { useEffect, useMemo } from "react";
@@ -88,19 +88,11 @@ export const contractType = {
// end contract type
type FetchCompilerMetadataReturnType = {
name: string;
metadata: Record<string, any>;
abi: Abi;
info: Record<string, any>;
licenses: string[];
};
// contract compiler metadata
function fetchCompilerMetadata(
contractAddress: RequiredParam<ContractAddress>,
sdk: RequiredParam<ThirdwebSDK>,
): Promise<FetchCompilerMetadataReturnType> | null {
): Promise<PublishedMetadata> | null {
if (!contractAddress || !sdk) {
return null;
}
@@ -114,7 +106,7 @@ function fetchCompilerMetadata(
export function useCompilerMetadata(
contractAddress: RequiredParam<ContractAddress>,
): UseQueryResult<FetchCompilerMetadataReturnType | null> {
): UseQueryResult<PublishedMetadata | null> {
const sdk = useSDK();
return useQueryWithNetwork(
@@ -22,6 +22,6 @@ export function useAuth() {
return undefined;
}
return new ThirdwebAuth(wallet, authConfig.domain)
}, [wallet, authConfig, authConfig?.domain])
return new ThirdwebAuth(wallet, authConfig.domain);
}, [wallet, authConfig?.domain]);
}
@@ -1,10 +1,17 @@
import { useThirdwebConnectedWalletContext } from "../contexts/thirdweb-wallet";
import { useContext } from "react";
import { ThirdwebConnectedWalletContext } from "../contexts/thirdweb-wallet";
import type { Signer } from "ethers";
import invariant from "tiny-invariant";
/**
*
* @internal
*/
export function useSigner(): Signer | undefined {
return useThirdwebConnectedWalletContext().signer;
const context = useContext(ThirdwebConnectedWalletContext);
invariant(
context,
"useSigner() hook must be used within a <ThirdwebProvider/>",
);
return context.signer;
}
@@ -1,5 +1,12 @@
import { useThirdwebConfigContext } from "../contexts/thirdweb-config";
import { useContext } from "react";
import invariant from "tiny-invariant";
import { ThirdwebConfigContext } from "../contexts/thirdweb-config";
export function useSupportedChains() {
return useThirdwebConfigContext().chains;
const context = useContext(ThirdwebConfigContext);
invariant(
context,
"useSupportedChains() hook must be used within a <ThirdwebProvider/>",
);
return context.chains;
}
+24 -5
View File
@@ -1,10 +1,14 @@
import { useThirdwebConnectedWalletContext } from "../contexts/thirdweb-wallet";
import invariant from "tiny-invariant";
import {
ThirdwebConnectedWalletContext,
useThirdwebConnectedWalletContext,
} from "../contexts/thirdweb-wallet";
import { ContractAddress } from "../types";
import { cacheKeys } from "../utils/cache-keys";
import { useSupportedChains } from "./useSupportedChains";
import { useQuery } from "@tanstack/react-query";
import { Chain, defaultChains } from "@thirdweb-dev/chains";
import { useMemo } from "react";
import { useContext, useMemo } from "react";
/**
* A hook to get the native or (optional) ERC20 token balance of the connected wallet.
@@ -40,7 +44,12 @@ export function useBalance(tokenAddress?: ContractAddress) {
* @internal
*/
export function useConnectedWallet() {
return useThirdwebConnectedWalletContext().wallet;
const context = useContext(ThirdwebConnectedWalletContext);
invariant(
context,
"useConnectedWallet() hook must be used within a <ThirdwebProvider/>",
);
return context.signer;
}
/**
@@ -71,7 +80,12 @@ export function useConnectedWallet() {
* @public
*/
export function useAddress(): string | undefined {
return useThirdwebConnectedWalletContext().address;
const context = useContext(ThirdwebConnectedWalletContext);
invariant(
context,
"useAddress() hook must be used within a <ThirdwebProvider/>",
);
return context.address;
}
/**
@@ -96,7 +110,12 @@ export function useAddress(): string | undefined {
* @public
*/
export function useChainId(): number | undefined {
return useThirdwebConnectedWalletContext().chainId;
const context = useContext(ThirdwebConnectedWalletContext);
invariant(
context,
"useChainId() hook must be used within a <ThirdwebProvider/>",
);
return context.chainId;
}
/**
+3
View File
@@ -251,6 +251,9 @@ export { ThirdwebSDKProvider } from "./providers/thirdweb-sdk-provider";
export { useSDK, useSDKChainId } from "./hooks/useSDK";
export type { ThirdwebSDKProviderProps } from "./providers/types";
// utils
export { invalidateContractAndBalances } from "./utils/cache-keys";
// types
export type {
Chain,
+16
View File
@@ -1,5 +1,21 @@
# @thirdweb-dev/react-native-compat
## 0.2.55
## 0.2.54
## 0.2.53
## 0.2.52
## 0.2.51
## 0.2.50
## 0.2.49
## 0.2.48
## 0.2.47
## 0.2.46
+1 -1
View File
@@ -1,7 +1,7 @@
{
"name": "@thirdweb-dev/react-native-compat",
"description": "Shims for Thirdweb in React Native Projects",
"version": "0.2.47",
"version": "0.2.55",
"author": "thirdweb eng <[email protected]>",
"repository": "https://github.com/thirdweb-dev/js/tree/main/packages/react-native-compat",
"license": "Apache-2.0",
+123
View File
@@ -1,5 +1,128 @@
# @thirdweb-dev/react-native
## 0.2.55
### Patch Changes
- Updated dependencies [[`586e91db`](https://github.com/thirdweb-dev/js/commit/586e91dbe610588cc7b24fade59172fed6481074), [`34a3bb8a`](https://github.com/thirdweb-dev/js/commit/34a3bb8ae3c1d7a506e5568a9e79ab7e469557a8), [`91f0245b`](https://github.com/thirdweb-dev/js/commit/91f0245be78ae523e1faea26b1032bfb283467d9), [`f65578d6`](https://github.com/thirdweb-dev/js/commit/f65578d637decc8b87cada5b5b0c8c504064d9d5), [`5a373a75`](https://github.com/thirdweb-dev/js/commit/5a373a75090da7e1e05724ed1a3a3a6aa9f7fd21), [`ae74b8ef`](https://github.com/thirdweb-dev/js/commit/ae74b8ef6200dba8affa8b52e7d834c5552350d0), [`bc003c2f`](https://github.com/thirdweb-dev/js/commit/bc003c2fef33fcf7ce5981d8634911ac4bcaa927), [`447d9846`](https://github.com/thirdweb-dev/js/commit/447d984653f77af6860ae907072e768b584b263d), [`f65578d6`](https://github.com/thirdweb-dev/js/commit/f65578d637decc8b87cada5b5b0c8c504064d9d5), [`088547f7`](https://github.com/thirdweb-dev/js/commit/088547f763294f1641c01ffe1aabac585f255dc0)]:
- @thirdweb-dev/sdk@3.10.55
- @thirdweb-dev/chains@0.1.47
- @thirdweb-dev/storage@1.2.8
- @thirdweb-dev/react-core@3.14.36
- @thirdweb-dev/wallets@1.1.19
## 0.2.54
### Patch Changes
- Updated dependencies [[`184c325a`](https://github.com/thirdweb-dev/js/commit/184c325ab2ef028022a050c4274f2ab12b1a3a7f), [`046c9ad6`](https://github.com/thirdweb-dev/js/commit/046c9ad604587ff79bf028c4fe7b1f9c94f4ea54), [`c12f0874`](https://github.com/thirdweb-dev/js/commit/c12f0874b4dac43c263c7edb20d0343c16381c34)]:
- @thirdweb-dev/chains@0.1.46
- @thirdweb-dev/storage@1.2.7
- @thirdweb-dev/react-core@3.14.35
- @thirdweb-dev/sdk@3.10.54
- @thirdweb-dev/wallets@1.1.18
## 0.2.53
### Patch Changes
- Updated dependencies [[`f97ddf4c`](https://github.com/thirdweb-dev/js/commit/f97ddf4c7f14854f3b204ad9741b52ddb8dac736)]:
- @thirdweb-dev/chains@0.1.45
- @thirdweb-dev/react-core@3.14.34
- @thirdweb-dev/sdk@3.10.53
- @thirdweb-dev/wallets@1.1.17
## 0.2.52
### Patch Changes
- Updated dependencies [[`e1962641`](https://github.com/thirdweb-dev/js/commit/e19626417218767a0e44c00f440761d7b86d02eb), [`bd1fcbae`](https://github.com/thirdweb-dev/js/commit/bd1fcbae327e788124f5635673511f0b72e9d7ab)]:
- @thirdweb-dev/sdk@3.10.52
- @thirdweb-dev/react-core@3.14.33
- @thirdweb-dev/wallets@1.1.16
## 0.2.51
### Patch Changes
- [#1489](https://github.com/thirdweb-dev/js/pull/1489) [`07fb1b5f`](https://github.com/thirdweb-dev/js/commit/07fb1b5ffa4c170e252df31070852ddb9a81dec9) Thanks [@iketw](https://github.com/iketw)! - Adding walletConnect as a supportedWallet in React Native
```javascript
import {
localWallet,
ThirdwebProvider,
walletConnect,
} from "@thirdweb-dev/react-native";
import { Ethereum } from "@thirdweb-dev/chains";
const App = () => {
const activeChain = Ethereum;
return (
<ThirdwebProvider
activeChain={activeChain}
supportedChains={[activeChain]}
clientId="your-client-id"
supportedWallets={[
localWallet(),
walletConnect({
projectId: "your-wallet-connect-project-id", // optional, but we recommend you get your own for production
}),
]}
>
<AppInner />
</ThirdwebProvider>
);
};
```
- [#1496](https://github.com/thirdweb-dev/js/pull/1496) [`26349f31`](https://github.com/thirdweb-dev/js/commit/26349f311d144d692c69a6c2a7ec0f34949851d4) Thanks [@iketw](https://github.com/iketw)! - Improves loading states when disconnecting and fetching balances
- Updated dependencies [[`07fb1b5f`](https://github.com/thirdweb-dev/js/commit/07fb1b5ffa4c170e252df31070852ddb9a81dec9), [`300a3c6f`](https://github.com/thirdweb-dev/js/commit/300a3c6f04d0ea7e25dfdb0a4c28b3a5796fcadf), [`d248aa2c`](https://github.com/thirdweb-dev/js/commit/d248aa2c5a89a297dd2623c961793026de1de346), [`d248aa2c`](https://github.com/thirdweb-dev/js/commit/d248aa2c5a89a297dd2623c961793026de1de346), [`8f3b685a`](https://github.com/thirdweb-dev/js/commit/8f3b685ad2bd73cb4d5d8c8aa25c04ffc10fb7cf), [`28975765`](https://github.com/thirdweb-dev/js/commit/2897576513eb6f497a9f92e3e473182b4fc9681b), [`b91d3e99`](https://github.com/thirdweb-dev/js/commit/b91d3e990198b77dc1358e738c11dc4acaa67491)]:
- @thirdweb-dev/[email protected]
- @thirdweb-dev/[email protected]
- @thirdweb-dev/[email protected]
- @thirdweb-dev/[email protected]
- @thirdweb-dev/[email protected]
## 0.2.50
### Patch Changes
- Updated dependencies [[`39e2af6f`](https://github.com/thirdweb-dev/js/commit/39e2af6f2f4d933dca1b3de4a37de76375bafd74), [`a5ba9e4f`](https://github.com/thirdweb-dev/js/commit/a5ba9e4fbfee228e5b9ac27cd0157187e3a50117), [`39e2af6f`](https://github.com/thirdweb-dev/js/commit/39e2af6f2f4d933dca1b3de4a37de76375bafd74)]:
- @thirdweb-dev/[email protected]
- @thirdweb-dev/[email protected]
- @thirdweb-dev/[email protected]
## 0.2.49
### Patch Changes
- [#1479](https://github.com/thirdweb-dev/js/pull/1479) [`14d9a71c`](https://github.com/thirdweb-dev/js/commit/14d9a71c928019907618cc8694af0bc631e94b68) Thanks [@iketw](https://github.com/iketw)! - Deprecates magicWallet in favor of magicLink for consistency with our React package
- [#1477](https://github.com/thirdweb-dev/js/pull/1477) [`34b31599`](https://github.com/thirdweb-dev/js/commit/34b315993c0abaccb9640a5d5804c2c93af569c2) Thanks [@joaquim-verges](https://github.com/joaquim-verges)! - Pass unauth'd RPCs to wallets when adding new chains
- Updated dependencies [[`34b31599`](https://github.com/thirdweb-dev/js/commit/34b315993c0abaccb9640a5d5804c2c93af569c2), [`7f531122`](https://github.com/thirdweb-dev/js/commit/7f5311222b14da04877df056baae36409dff4696)]:
- @thirdweb-dev/[email protected]
- @thirdweb-dev/[email protected]
- @thirdweb-dev/[email protected]
## 0.2.48
### Patch Changes
- [#1458](https://github.com/thirdweb-dev/js/pull/1458) [`588b2106`](https://github.com/thirdweb-dev/js/commit/588b21060139a7c0bf5805e2c629a16792ed2c76) Thanks [@kien-ngo](https://github.com/kien-ngo)! - Add `hideTestnetFaucet` to hide the "Request Testnet funds" button in ConnectWallet details dropdown in `@thirdweb-dev/react-native` and `@thirdweb-dev/react`.
```ts
<ConnectWallet hideTestnetFaucet={true} />
```
- Updated dependencies [[`73462ef1`](https://github.com/thirdweb-dev/js/commit/73462ef10800aeeb5976634e2bc6fb5d3e8501e4), [`27c225a5`](https://github.com/thirdweb-dev/js/commit/27c225a51221417592b5940887abd1ccb8b67e47), [`cb1c9937`](https://github.com/thirdweb-dev/js/commit/cb1c9937fadb2d06eb148cf9819f2b3601376308), [`70c4a119`](https://github.com/thirdweb-dev/js/commit/70c4a119d691a37ec999d9f6087902d532cc82ed), [`a1732663`](https://github.com/thirdweb-dev/js/commit/a17326634e758c3bf42f0cc3869b8792f1e18cc9), [`f0443bd9`](https://github.com/thirdweb-dev/js/commit/f0443bd989dbba50d0836d1cf274bfb2f44a53fd), [`cb1c9937`](https://github.com/thirdweb-dev/js/commit/cb1c9937fadb2d06eb148cf9819f2b3601376308), [`588b2106`](https://github.com/thirdweb-dev/js/commit/588b21060139a7c0bf5805e2c629a16792ed2c76), [`269e68c0`](https://github.com/thirdweb-dev/js/commit/269e68c0a15e8f78cb5b68c9456ca8094b9e1f30)]:
- @thirdweb-dev/[email protected]
- @thirdweb-dev/[email protected]
- @thirdweb-dev/[email protected]
- @thirdweb-dev/[email protected]
- @thirdweb-dev/[email protected]
## 0.2.47
### Patch Changes
+2 -2
View File
@@ -1,6 +1,6 @@
{
"name": "@thirdweb-dev/react-native",
"version": "0.2.47",
"version": "0.2.55",
"repository": "https://github.com/thirdweb-dev/js/tree/main/packages/react-native",
"author": "thirdweb eng <[email protected]>",
"license": "Apache-2.0",
@@ -28,7 +28,7 @@
"@magic-sdk/provider": "17.2.0",
"@magic-sdk/react-native-bare": "^18.5.0",
"@shopify/restyle": "^2.4.2",
"@tanstack/react-query": "^4.32.0",
"@tanstack/react-query": "^4.33.0",
"@thirdweb-dev/chains": "workspace:*",
"@thirdweb-dev/react-core": "workspace:*",
"@thirdweb-dev/sdk": "workspace:*",
@@ -128,7 +128,7 @@ export class IpfsUploader implements IStorageUploader<IpfsUploadBatchOptions> {
) {
return reject(
new Error(
`This looks like a network error, the endpoint might be blocked by an internet provider or a firewall. ${xhr.responseText}`,
`Upload failed due to a network error. ${xhr.responseText}`,
),
);
}
@@ -19,6 +19,13 @@ export type ConnectWalletProps = {
* render custom rows in the Connect Wallet Details modal
*/
extraRows?: ConnectWalletDetailsProps["extraRows"];
/**
* Hide option to request testnet funds for testnets in dropdown
*
* @default false
*/
hideTestnetFaucet?: boolean;
} & ConnectWalletButtonProps;
export const ConnectWallet = ({
@@ -27,6 +34,7 @@ export const ConnectWallet = ({
buttonTitle,
modalTitle,
extraRows,
hideTestnetFaucet,
}: ConnectWalletProps) => {
const fadeAnim = useRef(new Animated.Value(0)).current;
const address = useAddress();
@@ -47,6 +55,7 @@ export const ConnectWallet = ({
address={address}
detailsButton={detailsButton}
extraRows={extraRows}
hideTestnetFaucet={hideTestnetFaucet}
/>
) : (
<ConnectWalletButton
@@ -32,11 +32,13 @@ export const ConnectWalletDetailsModal = ({
onClosePress,
extraRows,
address,
hideTestnetFaucet,
}: {
isVisible: boolean;
onClosePress: () => void;
extraRows?: React.FC;
address?: string;
hideTestnetFaucet?: boolean;
}) => {
const theme = useAppTheme();
const [isExportModalVisible, setIsExportModalVisible] = useState(false);
@@ -198,7 +200,7 @@ export const ConnectWalletDetailsModal = ({
<Text variant="bodySmallSecondary">Current Network</Text>
</View>
<NetworkButton chain={chain} enableSwitchModal={true} />
{chain?.testnet && chain?.faucets?.length ? (
{!hideTestnetFaucet && chain?.testnet && chain?.faucets?.length ? (
<IconTextButton
mt="xs"
text="Request Testnet Funds"
@@ -3,27 +3,29 @@ import BaseButton from "../base/BaseButton";
import { ChainIcon } from "../base/ChainIcon";
import Text from "../base/Text";
import { WalletIcon } from "../base/WalletIcon";
import { useWallet, useBalance, useChain } from "@thirdweb-dev/react-core";
import { useWallet, useChain } from "@thirdweb-dev/react-core";
import { StyleSheet, View } from "react-native";
import { LocalWallet } from "@thirdweb-dev/wallets";
import Box from "../base/Box";
import { ConnectWalletDetailsModal } from "./ConnectWalletDetailsModal";
import { useState } from "react";
import { TextBalance } from "../base/TextBalance";
export type ConnectWalletDetailsProps = {
address?: string;
detailsButton?: React.FC<{ onPress: () => void }>;
extraRows?: React.FC;
hideTestnetFaucet?: boolean;
};
export const WalletDetailsButton = ({
address,
detailsButton,
extraRows,
hideTestnetFaucet,
}: ConnectWalletDetailsProps) => {
const activeWallet = useWallet();
const chain = useChain();
const balanceQuery = useBalance();
const [isModalVisible, setIsModalVisible] = useState(false);
const onPress = () => {
@@ -46,6 +48,7 @@ export const WalletDetailsButton = ({
onClosePress={onPress}
extraRows={extraRows}
address={address}
hideTestnetFaucet={hideTestnetFaucet}
/>
{detailsButton ? (
detailsButton({ onPress })
@@ -61,12 +64,7 @@ export const WalletDetailsButton = ({
<ChainIcon size={32} chainIconUrl={chain?.icon?.url} />
</View>
<Box justifyContent="center" alignItems="flex-start">
<Text variant="bodySmall">
{balanceQuery.data
? Number(balanceQuery.data.displayValue).toFixed(3)
: ""}{" "}
{balanceQuery.data?.symbol}
</Text>
<TextBalance textVariant="bodySmall" />
{activeWallet?.walletId === LocalWallet.id ? (
<Text variant="error">Guest</Text>
) : (
@@ -2,14 +2,14 @@ import { Icon } from "../../assets/icon";
import { useAppTheme } from "../../styles/hooks";
import { AddressDisplay } from "../base/AddressDisplay";
import BaseButton from "../base/BaseButton";
import Text from "../base/Text";
import { WalletIcon } from "../base/WalletIcon";
import { useWallet, useBalance } from "@thirdweb-dev/react-core";
import { useWallet } from "@thirdweb-dev/react-core";
import { ActivityIndicator, StyleSheet, View } from "react-native";
import * as Clipboard from "expo-clipboard";
import Box from "../base/Box";
import CopyIcon from "../../assets/copy";
import { useState } from "react";
import { TextBalance } from "../base/TextBalance";
interface WalletDetailsModalHeaderProps {
address?: string;
@@ -24,7 +24,6 @@ export const WalletDetailsModalHeader = ({
onAddressCopied,
}: WalletDetailsModalHeaderProps) => {
const theme = useAppTheme();
const balanceQuery = useBalance();
const activeWallet = useWallet();
const [showLoading, setShowLoading] = useState(false);
@@ -38,7 +37,9 @@ export const WalletDetailsModalHeader = ({
const onDisconnectPressInternal = () => {
setShowLoading(true);
onDisconnectPress();
setTimeout(() => {
onDisconnectPress();
}, 0);
};
return (
@@ -65,12 +66,7 @@ export const WalletDetailsModalHeader = ({
color={theme.colors.textSecondary}
/>
</Box>
<Text variant="bodySmallSecondary">
{balanceQuery.data
? Number(balanceQuery.data.displayValue).toFixed(3)
: ""}{" "}
{balanceQuery.data?.symbol}
</Text>
<TextBalance textVariant="bodySmallSecondary" />
</BaseButton>
{showLoading ? (
<ActivityIndicator size="small" color={theme.colors.iconHighlight} />
@@ -89,6 +89,10 @@ export const ConnectWalletFlow = () => {
setIsConnecting(false);
};
const handleClose = useCallback(() => {
onClose(true);
}, [onClose]);
const getComponentForWallet = useCallback(() => {
switch (activeWallet?.id) {
case SmartWallet.id:
@@ -100,7 +104,7 @@ export const ConnectWalletFlow = () => {
<activeWallet.connectUI
theme={theme || "dark"}
goBack={onBackPress}
close={() => onClose(true)}
close={handleClose}
isOpen={modalVisible}
open={onOpenModal}
walletConfig={activeWallet}
@@ -112,6 +116,7 @@ export const ConnectWalletFlow = () => {
}
}, [
activeWallet,
handleClose,
modalVisible,
onBackPress,
onClose,
@@ -64,6 +64,7 @@ const styles = StyleSheet.create({
borderTopLeftRadius: 24,
borderTopRightRadius: 24,
padding: 24,
paddingBottom: 40,
},
contentContainer: {
maxHeight: MODAL_HEIGHT,
@@ -3,6 +3,7 @@ import { useState } from "react";
import { Image } from "react-native";
import { SvgUri } from "react-native-svg";
import { isAppBundleIdPresentInGlobal } from "../../utils/global";
import Box from "./Box";
const ImageSvgUri = ({
imageUrl = "",
@@ -29,29 +30,29 @@ const ImageSvgUri = ({
return null;
}
if (error) {
return (
<SvgUri
width={width}
height={height}
uri={resolvedImageUrl}
onError={(err) => {
console.warn("Error loading an svg image: ", err);
}}
/>
);
} else {
// always try to render Image first, if error then try to render svg
// Image from RN handles onError better than SvgUri
return (
<Image
alt={imageAlt}
source={{ uri: resolvedImageUrl }}
style={[{ width: width, height: height }]}
onError={() => setError(true)}
/>
);
}
return (
<Box style={{ width: width, height: height }}>
{error ? (
<SvgUri
width={width}
height={height}
uri={resolvedImageUrl}
onError={(err) => {
console.warn("Error loading an svg image: ", err);
}}
/>
) : (
// always try to render Image first, if error then try to render svg
// Image from RN handles onError better than SvgUri
<Image
alt={imageAlt}
source={{ uri: resolvedImageUrl }}
style={[{ width: width, height: height }]}
onError={() => setError(true)}
/>
)}
</Box>
);
};
export default ImageSvgUri;
@@ -0,0 +1,67 @@
import React, { useCallback, useEffect, useRef } from "react";
import { View, Animated, Easing, StyleSheet } from "react-native";
import { baseTheme } from "../../styles/theme";
import { useAppTheme } from "../../styles/hooks";
type LoadingTextAnimationProps = {
text: string;
textVariant: keyof typeof baseTheme.textVariants;
};
const LoadingTextAnimation = ({
text,
textVariant,
}: LoadingTextAnimationProps) => {
const fadeAnim = useRef(new Animated.Value(0)).current;
const theme = useAppTheme();
const fadeInOut = useCallback(() => {
Animated.loop(
Animated.sequence([
Animated.timing(fadeAnim, {
toValue: 1,
duration: 600,
easing: Easing.linear,
useNativeDriver: true,
}),
Animated.timing(fadeAnim, {
toValue: 0,
duration: 600,
easing: Easing.linear,
useNativeDriver: true,
}),
]),
{ iterations: -1 },
).start();
}, [fadeAnim]);
useEffect(() => {
fadeInOut();
}, [fadeInOut]);
return (
<View style={styles.animatedView}>
<Animated.Text
style={{
color: theme.colors.textSecondary,
fontWeight: theme.textVariants[textVariant].fontWeight as any,
fontSize: theme.textVariants[textVariant].fontSize,
lineHeight: theme.textVariants[textVariant].lineHeight,
opacity: fadeAnim,
}}
>
{text}
</Animated.Text>
</View>
);
};
export default LoadingTextAnimation;
const styles = StyleSheet.create({
animatedView: {
flexDirection: "row",
justifyContent: "flex-start",
flex: 1,
},
});
@@ -0,0 +1,21 @@
import { useBalance } from "@thirdweb-dev/react-core";
import Text from "./Text";
import LoadingTextAnimation from "./LoadingTextAnimation";
import { baseTheme } from "../../styles/theme";
type TextBalance = {
textVariant: keyof typeof baseTheme.textVariants;
};
export const TextBalance = ({ textVariant }: TextBalance) => {
const balanceQuery = useBalance();
return !balanceQuery.data ? (
<LoadingTextAnimation text="Fetching..." textVariant={textVariant} />
) : (
<Text variant={textVariant}>
{Number(balanceQuery.data?.displayValue).toFixed(3)}{" "}
{balanceQuery.data.symbol}
</Text>
);
};
@@ -3,7 +3,12 @@ import Modal, { ModalProps } from "react-native-modal";
// Populate with the data...
export function TWModal(props: Partial<ModalProps>) {
return (
<Modal {...props} useNativeDriver hideModalContentWhileAnimating={true}>
<Modal
{...props}
avoidKeyboard
useNativeDriver
hideModalContentWhileAnimating={true}
>
{props.children}
</Modal>
);
@@ -1,2 +1,7 @@
export const TW_WC_PROJECT_ID = "145769e410f16970a79ff77b2d89a1e0";
export const WC_RELAY_URL = "wss://relay.walletconnect.com";
export const WC_LINKS = {
native: "wc://",
universal: "wc://",
};
@@ -0,0 +1,40 @@
import { useCallback, useEffect, useRef } from "react";
interface Props {
callback: (args: any) => void;
delay?: number;
}
export function useDebounceCallback({ callback, delay = 250 }: Props) {
const timeoutRef = useRef<NodeJS.Timeout | null>(null);
const callbackRef = useRef(callback);
useEffect(() => {
callbackRef.current = callback;
}, [callback]);
const debouncedCallback = useCallback(
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
// @ts-ignore args can be any in this case
(args) => {
if (timeoutRef.current) {
clearTimeout(timeoutRef.current);
}
timeoutRef.current = setTimeout(() => {
callbackRef.current(args);
}, delay);
},
[delay],
);
useEffect(() => {
return () => {
if (timeoutRef.current) {
clearTimeout(timeoutRef.current);
}
};
}, []);
return debouncedCallback;
}
+7 -3
View File
@@ -15,9 +15,13 @@ export { TrustWallet, trustWallet } from "./wallets/wallets/trust-wallet";
export { smartWallet } from "./wallets/wallets/smart-wallet";
export { localWallet } from "./wallets/wallets/local-wallet";
export { LocalWallet } from "./wallets/wallets/LocalWallet";
export { magicWallet } from "./wallets/wallets/magic-wallet";
export { MagicWallet } from "./wallets/wallets/MagicWallet";
export * from "./wallets/wallets/WalletConnectV2";
export { magicWallet } from "./wallets/wallets/magic-link";
export { MagicWallet } from "./wallets/wallets/MagicLink";
export { MagicLink } from "./wallets/wallets/MagicLink";
export { magicLink } from "./wallets/wallets/magic-link";
export * from "./wallets/wallets/wallet-connect/WalletConnectBase";
export { WalletConnect } from "./wallets/wallets/wallet-connect/WalletConnect";
export { walletConnect } from "./wallets/wallets/wallet-connect/wallet-connect";
export type { WCMeta } from "./wallets/types/wc";
export { useCoinbaseWallet } from "./wallets/hooks/useCoinbaseWallet";
@@ -7,47 +7,47 @@ import {
useState,
} from "react";
import { useWalletConnectListener } from "../wallets/hooks/useWalletConnectListener";
import { MagicWallet } from "../wallets/wallets/MagicWallet";
import { MagicLink } from "../wallets/wallets/MagicLink";
import { useWalletContext } from "@thirdweb-dev/react-core";
type DappContextType = {
smartWallet?: SmartWallet;
setSmartWallet?: (value?: SmartWallet) => void;
magicWallet?: MagicWallet;
setMagicWallet?: (value?: MagicWallet) => void;
magicLink?: MagicLink;
setMagicLink?: (value?: MagicLink) => void;
};
const DappContext = createContext<DappContextType>({});
export const DappContextProvider = (props: React.PropsWithChildren) => {
const [smartWallet, setSmartWallet] = useState<SmartWallet | undefined>();
const [magicWallet, setMagicWallet] = useState<MagicWallet | undefined>();
const [magicLink, setMagicLink] = useState<MagicLink | undefined>();
const createdWalletInstance = useWalletContext().createdWalletInstance;
useEffect(() => {
if (createdWalletInstance?.walletId === walletIds.magicLink) {
setMagicWallet(createdWalletInstance as MagicWallet);
setMagicLink(createdWalletInstance as MagicLink);
}
}, [createdWalletInstance, setMagicWallet]);
}, [createdWalletInstance, setMagicLink]);
useWalletConnectListener();
const magicSDK = useCallback(() => {
if (magicWallet) {
const magic = magicWallet.getMagicSDK();
if (magicLink) {
const magic = magicLink.getMagicSDK();
return <magic.Relayer />;
}
return null;
}, [magicWallet]);
}, [magicLink]);
return (
<DappContext.Provider
value={{
smartWallet,
setSmartWallet,
magicWallet: magicWallet,
setMagicWallet: setMagicWallet,
magicLink: magicLink,
setMagicLink: setMagicLink,
}}
>
{props.children}
@@ -66,11 +66,11 @@ export const useSmartWallet = () => {
return [context.smartWallet, context.setSmartWallet] as const;
};
export const useMagicWallet = () => {
export const useMagicLink = () => {
const context = useContext(DappContext);
return {
magicWallet: context.magicWallet,
setMagicWallet: context.setMagicWallet,
magicLink: context.magicLink,
setMagicLink: context.setMagicLink,
} as const;
};
@@ -0,0 +1,8 @@
export type WCWallet = {
iconURL: string;
name: string;
links: {
native: string;
universal: string;
};
};
@@ -1,3 +1,4 @@
import { Chain, getValidChainRPCs } from "@thirdweb-dev/chains";
import { WCMeta } from "../wallets/types/wc";
/**
@@ -20,3 +21,19 @@ export function formatWalletConnectDisplayUri(
}wc?uri=${encodedUri}`
: `${uri}`;
}
export function getValidPublicRPCUrl(chain: Chain) {
return getValidChainRPCs(chain).map((rpc) => {
try {
const url = new URL(rpc);
// remove client id from url
if (url.hostname.endsWith(".thirdweb.com")) {
url.pathname = "";
url.search = "";
}
return url.toString();
} catch (e) {
return rpc;
}
});
}
@@ -4,7 +4,6 @@ import type {
WalletMobileSDKProviderOptions,
} from "@coinbase/wallet-mobile-sdk/build/WalletMobileSDKEVMProvider";
import type { ConfigurationParams } from "@coinbase/wallet-mobile-sdk/src/CoinbaseWalletSDK.types";
import { getValidChainRPCs } from "@thirdweb-dev/chains";
import {
UserRejectedRequestError,
ChainNotConfiguredError,
@@ -18,6 +17,7 @@ import {
} from "@thirdweb-dev/wallets";
import type { Address } from "abitype";
import { providers, utils } from "ethers";
import { getValidPublicRPCUrl } from "evm/utils/uri";
export type CoinbaseWalletConnectorOptions = WalletMobileSDKProviderOptions &
ConfigurationParams & {
@@ -227,7 +227,7 @@ export class CoinbaseWalletConnector extends WagmiConnector<
chainId: id,
chainName: chain.name,
nativeCurrency: chain.nativeCurrency,
rpcUrls: [getValidChainRPCs(chain)],
rpcUrls: getValidPublicRPCUrl(chain), // no client id on purpose here
blockExplorerUrls: this.getBlockExplorerUrls(chain),
},
],

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