Compare commits

..
Author SHA1 Message Date
github-actions[bot]GitHubgithub-actions[bot] <github-actions[bot]@users.noreply.github.com>
3e526d46fa Version Packages (#2036)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2023-12-05 21:14:32 -08:00
Manan TankandGitHub a36c7e8331 Update typedoc setup, JSDoc improvements (#1842)
Signed-off-by: Manan Tank <[email protected]>
2023-12-05 19:00:11 +00:00
7bb054e45c [wallets] Remove barrel files (#2040)
Co-authored-by: Manan Tank <[email protected]>
2023-12-05 15:22:22 +00:00
cd87be4a24 [react-core] Remove barrel files (#2039)
Co-authored-by: Manan Tank <[email protected]>
2023-12-05 15:17:24 +00:00
Joaquim VergesandGitHub aefc4cda4c [SDK] Add migration role (#2051) 2023-12-05 06:08:30 +00:00
YashandGitHub cfe81b4432 [SDK] Update implementation (#2050) 2023-12-05 05:33:40 +00:00
Jonas DanielsandGitHub 72c0bb10d6 fix(contract-roles): ensure connected wallet address is removed last (#2049) 2023-12-05 01:27:07 +00:00
YashandGitHub ca618ea0c9 [SDK] Metadata role for nft base contracts (#2048) 2023-12-04 23:31:02 +00:00
YashandGitHub d20e789856 [SDK] Update publisher and registry (#2044) 2023-12-04 19:11:29 +00:00
Manan TankandGitHub a135857c7a [react] Fix EmbeddedWalletConfigOptions type (#2045) 2023-12-04 17:44:24 +00:00
Manan TankandGitHub 34546c24c7 improved smart wallet autoconnect (#2043) 2023-12-04 15:58:41 +00:00
Manan TankandGitHub 61c62b3f07 [react, wallets] JSDoc Improvements, Type exports for autogenerated docs (#2042) 2023-12-04 13:57:22 +00:00
Jonas DanielsandGitHub f2390b64e8 testing(merkletree): add additional tests back (#2041) 2023-12-04 03:41:03 +00:00
4ae1cd63bb [wallet, react] Add OneKey wallet (#1938)
Co-authored-by: Manan Tank <[email protected]>
2023-12-03 12:00:32 +00:00
github-actions[bot]GitHubgithub-actions[bot] <github-actions[bot]@users.noreply.github.com>
a4339818a0 Version Packages (#1998)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2023-12-01 06:55:35 -08:00
Manan TankandGitHub b3394277c7 [react] JSDoc improvements (#1987) 2023-12-01 13:13:30 +00:00
Manan TankandGitHub fdf19b0a26 [react] Do not swallow error in useEmbeddedWallet() connect (#2031) 2023-12-01 12:42:39 +00:00
FirekeeperandGitHub 9798a31a9a [Unity] Pass down authOptions with smart wallet connections (#2026) 2023-11-30 00:59:22 +00:00
Kien NgoandGitHub f93bd325e1 [Storage] Catch error when converting invalid IPFS URIs (#2021) 2023-11-29 21:35:50 +00:00
iketwandGitHub 97ba1fbd42 [RN] Adds version header to ews calls (#2025) 2023-11-29 20:43:35 +00:00
Kien NgoandGitHub 28fc3736aa [storage] Add Base Sepolia to defaultChains (#2024) 2023-11-29 20:02:58 +00:00
Kien NgoandGitHub 06805217c2 [chains] Add Eth Sepolia to defaultChains (#2023) 2023-11-29 15:24:54 +00:00
Jonas DanielsandGitHub b833250053 chore(chains): add & update chains (#2019) 2023-11-28 22:07:14 +00:00
iketwandGitHub 9455912932 [ReactCore] Share WalletConnecthandler in react core (#2016) 2023-11-28 16:00:48 +00:00
Manan TankandGitHub 4c488aa31f [react-core] Fix auto-connecting a personal wallet for smart/safe wallet (#2015) 2023-11-28 12:17:28 +00:00
Joaquim VergesandGitHub b0ecfd2d8d [SDK] propagate isPartialABI (#2012) 2023-11-27 20:30:32 +00:00
2b4f1c8e55 [wallet, react] Add Crypto.com Defi wallet (#1928)
Co-authored-by: Manan Tank <[email protected]>
2023-11-27 15:16:30 +00:00
e79b293562 [react-core] Add hook: useBalanceForAddress (#2007)
Co-authored-by: Manan Tank <[email protected]>
2023-11-27 14:43:32 +00:00
Joaquim VergesandGitHub 2861dff1f0 [SDK] dont fetch metadata from CDN for local nodes (#2011) 2023-11-27 06:02:33 +00:00
Kien NgoandGitHub 61b6a00214 Fix typo in comment (#2010) 2023-11-27 05:35:30 +00:00
Joaquim VergesandGitHub b02fb91a54 [SDK] Add missing roles from new contracts (#2009) 2023-11-26 04:51:52 +00:00
Joaquim VergesandGitHub 8bf3be88be [SDK] Enable deployments for older AccountFactory contracts (#2005) 2023-11-24 23:02:15 +00:00
Joaquim VergesandGitHub fb5095bff5 [SDK] Handle other possible undefined cases for unknown chains (#2004) 2023-11-23 21:24:05 +00:00
Joaquim VergesandGitHub d28097f508 [SDK] Fix undefined error for unknow chains (#2003) 2023-11-23 17:31:11 +00:00
iketwandGitHub a27b10c5c3 [React] Do not set disconnected if connecting (#2001) 2023-11-23 16:12:39 +00:00
8c2d4e5ea7 [wallet, react] Add Rabby wallet (browser extension) (#1926)
Co-authored-by: Manan Tank <[email protected]>
2023-11-22 18:33:15 +00:00
Manan TankandGitHub 507496627b [react] Fix SmartWallet + MagicLink social login connection, Fix WalletIcon in CW (#1997) 2023-11-22 18:14:30 +00:00
300 changed files with 8036 additions and 1002 deletions
+1
View File
@@ -14,6 +14,7 @@
"test": "turbo run test --filter=./packages/*",
"e2e": "turbo run e2e",
"build": "turbo run build --filter=./packages/*",
"typedoc": "turbo run typedoc",
"build:release": "turbo run build --force --filter=./packages/*",
"dev": "turbo run dev --no-cache --parallel --continue",
"fix:repo": "manypkg fix",
+14
View File
@@ -1,5 +1,19 @@
# @thirdweb-dev/auth
## 4.1.14
### Patch Changes
- Updated dependencies [[`a36c7e83`](https://github.com/thirdweb-dev/js/commit/a36c7e8331744879a169f84e97b66abf0ab44f56), [`4ae1cd63`](https://github.com/thirdweb-dev/js/commit/4ae1cd63bb7b471cae48a27bf6554c4953c1dc82), [`61c62b3f`](https://github.com/thirdweb-dev/js/commit/61c62b3f07a082ffd7620c949e3bcc6b75c104b5), [`7bb054e4`](https://github.com/thirdweb-dev/js/commit/7bb054e45c75450c8f465809d23eb66371f6ef8e)]:
- @thirdweb-dev/wallets@2.1.11
## 4.1.13
### Patch Changes
- Updated dependencies [[`8c2d4e5e`](https://github.com/thirdweb-dev/js/commit/8c2d4e5ea7c38b3efa4d8d94c9822a92d271e59b), [`2b4f1c8e`](https://github.com/thirdweb-dev/js/commit/2b4f1c8e55de091100fb5279887bcb19ea31d38c)]:
- @thirdweb-dev/wallets@2.1.10
## 4.1.12
### Patch Changes
+1 -1
View File
@@ -1,6 +1,6 @@
{
"name": "@thirdweb-dev/auth",
"version": "4.1.12",
"version": "4.1.14",
"main": "dist/thirdweb-dev-auth.cjs.js",
"module": "dist/thirdweb-dev-auth.esm.js",
"browser": {
+10
View File
@@ -1,5 +1,15 @@
# @thirdweb-dev/chains
## 0.1.60
### Patch Changes
- [#2019](https://github.com/thirdweb-dev/js/pull/2019) [`b8332500`](https://github.com/thirdweb-dev/js/commit/b833250053320c8608109053f5cffe2dc96ce70a) Thanks [@jnsdls](https://github.com/jnsdls)! - add & update chains
- [#2024](https://github.com/thirdweb-dev/js/pull/2024) [`28fc3736`](https://github.com/thirdweb-dev/js/commit/28fc3736aa30c89690084aa2c62556c183796352) Thanks [@kien-ngo](https://github.com/kien-ngo)! - Add Base Sepolia to defaultChains
- [#2023](https://github.com/thirdweb-dev/js/pull/2023) [`06805217`](https://github.com/thirdweb-dev/js/commit/06805217c26de203a57c21246acba22def8a78fa) Thanks [@kien-ngo](https://github.com/kien-ngo)! - Add Eth Sepolia to defaultChains
## 0.1.59
### Patch Changes
+37
View File
@@ -0,0 +1,37 @@
import type { Chain } from "../src/types";
export default {
"chain": "parallel-stormy-spica",
"chainId": 1350216234,
"explorers": [
{
"name": "Blockscout",
"url": "https://parallel-stormy-spica.explorer.mainnet.skalenodes.com",
"standard": "EIP3091"
}
],
"faucets": [
"https://sfuel.skale.network/"
],
"icon": {
"url": "ipfs://bafkreiagrt5dhgltg2kmw7hf24kslstr5h42e745luuxwp2wbg24gm6zza",
"width": 500,
"height": 500,
"format": "png"
},
"name": "SKALE Titan Hub",
"nativeCurrency": {
"name": "sFUEL",
"symbol": "sFUEL",
"decimals": 18
},
"networkId": 1350216234,
"rpc": [
"https://skale-titan-hub.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"https://1350216234.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"https://mainnet.skalenodes.com/v1/parallel-stormy-spica",
"wss://mainnet.skalenodes.com/v1/ws/parallel-stormy-spica"
],
"shortName": "titan-mainnet",
"slug": "skale-titan-hub",
"testnet": false
} as const satisfies Chain;
+14 -12
View File
@@ -4,20 +4,22 @@ export default {
"chainId": 1482601649,
"explorers": [
{
"name": "nebula",
"name": "Blockscout",
"url": "https://green-giddy-denebola.explorer.mainnet.skalenodes.com",
"standard": "EIP3091",
"icon": {
"url": "ipfs://QmfQkfmQuoUUUKwF1yCcrPEzFcWLaqNyiSv5YMcSj6zs74",
"width": 500,
"height": 500,
"format": "png"
}
"standard": "EIP3091"
}
],
"faucets": [],
"faucets": [
"https://sfuel.skale.network/"
],
"icon": {
"url": "ipfs://bafybeic5eexvd34wfy4kuebcyu73qpkv3x57s54ebzjyhyjsmeuni5jwcm",
"width": 500,
"height": 500,
"format": "png"
},
"infoURL": "https://nebulachain.io/",
"name": "Nebula Mainnet",
"name": "SKALE Nebula Hub",
"nativeCurrency": {
"name": "sFUEL",
"symbol": "sFUEL",
@@ -25,12 +27,12 @@ export default {
},
"networkId": 1482601649,
"rpc": [
"https://nebula.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"https://skale-nebula-hub.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"https://1482601649.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"https://mainnet.skalenodes.com/v1/green-giddy-denebola",
"wss://mainnet-proxy.skalenodes.com/v1/ws/green-giddy-denebola"
],
"shortName": "nebula-mainnet",
"slug": "nebula",
"slug": "skale-nebula-hub",
"testnet": false
} as const satisfies Chain;
+37
View File
@@ -0,0 +1,37 @@
import type { Chain } from "../src/types";
export default {
"chain": "staging-aware-chief-gianfar",
"chainId": 1517929550,
"explorers": [
{
"name": "Blockscout",
"url": "https://staging-aware-chief-gianfar.explorer.staging-v3.skalenodes.com",
"standard": "EIP3091"
}
],
"faucets": [
"https://sfuel.dirtroad.dev/staging"
],
"icon": {
"url": "ipfs://bafkreiagrt5dhgltg2kmw7hf24kslstr5h42e745luuxwp2wbg24gm6zza",
"width": 500,
"height": 500,
"format": "png"
},
"name": "SKALE Titan Hub Testnet",
"nativeCurrency": {
"name": "sFUEL",
"symbol": "sFUEL",
"decimals": 18
},
"networkId": 1517929550,
"rpc": [
"https://skale-titan-hub-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"https://1517929550.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"https://staging-v3.skalenodes.com/v1/staging-aware-chief-gianfar",
"wss://staging-v3.skalenodes.com/v1/ws/staging-aware-chief-gianfar"
],
"shortName": "titan-testnet",
"slug": "skale-titan-hub-testnet",
"testnet": true
} as const satisfies Chain;
+31
View File
@@ -0,0 +1,31 @@
import type { Chain } from "../src/types";
export default {
"chain": "Avalanche",
"chainId": 15535,
"explorers": [],
"faucets": [],
"features": [],
"icon": {
"url": "https://images.ctfassets.net/9bazykntljf6/62CceHSYsRS4D9fgDSkLRB/877cb8f26954e1743ff535fd7fdaf78f/avacloud-placeholder.svg",
"width": 256,
"height": 256,
"format": ".svg"
},
"infoURL": "https://avacloud.io",
"name": "QI M 11271",
"nativeCurrency": {
"name": "QI M 11271 Token",
"symbol": "JZW",
"decimals": 18
},
"networkId": 15535,
"redFlags": [],
"rpc": [
"https://qi-m-11271.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"https://15535.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"https://subnets.avacloud-dev.io/a47e1c06-fa75-4536-a900-1574d198e197"
],
"shortName": "QI M 11271",
"slug": "qi-m-11271",
"testnet": true
} as const satisfies Chain;
+11 -12
View File
@@ -6,20 +6,20 @@ export default {
{
"name": "Blockscout",
"url": "https://honorable-steel-rasalhague.explorer.mainnet.skalenodes.com",
"standard": "EIP3091",
"icon": {
"url": "ipfs://bafybeigyayzxvt7vosat4rtrbmhhnldgx57w2pfbutuniax7h6kswzi42m",
"width": 1637,
"height": 1636,
"format": "png"
}
"standard": "EIP3091"
}
],
"faucets": [
"https://sfuel.dirtroad.dev"
],
"icon": {
"url": "ipfs://bafybeigyayzxvt7vosat4rtrbmhhnldgx57w2pfbutuniax7h6kswzi42m",
"width": 1637,
"height": 1636,
"format": "png"
},
"infoURL": "https://calypsohub.network/",
"name": "Calypso NFT Hub (SKALE)",
"name": "SKALE Calypso Hub",
"nativeCurrency": {
"name": "sFUEL",
"symbol": "sFUEL",
@@ -27,12 +27,11 @@ export default {
},
"networkId": 1564830818,
"rpc": [
"https://calypso-nft-hub-skale.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"https://skale-calypso-hub.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"https://1564830818.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"https://mainnet.skalenodes.com/v1/honorable-steel-rasalhague"
],
"shortName": "calypso-mainnet",
"slug": "calypso-nft-hub-skale",
"testnet": false,
"title": "Calypso NFT Hub Mainnet"
"slug": "skale-calypso-hub",
"testnet": false
} as const satisfies Chain;
+16 -23
View File
@@ -1,35 +1,28 @@
import type { Chain } from "../src/types";
export default {
"chain": "Yuma",
"chain": "LQC",
"chainId": 1662,
"explorers": [],
"faucets": [],
"features": [
"explorers": [
{
"name": "EIP155"
},
{
"name": "EIP1559"
"name": "Liquichain Mainnet",
"url": "https://mainnet.liquichain.io",
"standard": "EIP3091"
}
],
"icon": {
"url": "ipfs://QmSFMBk3rMyu45Sy9KQHjgArFj4HdywANNYrSosLMUdcti",
"width": 1213,
"height": 1213,
"format": "png"
},
"infoURL": "https://horizen.io/",
"name": "Horizen Yuma Testnet Deprecated",
"faucets": [],
"infoURL": "https://liquichain.io/",
"name": "Liquichain",
"nativeCurrency": {
"name": "Testnet Zen",
"symbol": "tZEN",
"name": "Licoin",
"symbol": "LCN",
"decimals": 18
},
"networkId": 1662,
"redFlags": [
"reusedChainId"
],
"rpc": [],
"shortName": "Yuma",
"slip44": 121,
"slug": "horizen-yuma-testnet-deprecated",
"status": "deprecated",
"testnet": true
"shortName": "Liquichain",
"slug": "liquichain",
"testnet": false
} as const satisfies Chain;
+2 -1
View File
@@ -67,5 +67,6 @@ export default {
"shortName": "holesky",
"slug": "holesky",
"status": "incubating",
"testnet": true
"testnet": true,
"title": "Ethereum Testnet Holesky"
} as const satisfies Chain;
+41
View File
@@ -0,0 +1,41 @@
import type { Chain } from "../src/types";
export default {
"chain": "ETH",
"chainId": 17001,
"explorers": [
{
"name": "Redstone Holesky Explorer",
"url": "https://explorer.holesky.redstone.xyz",
"standard": "EIP3091",
"icon": {
"url": "ipfs://QmdwQDr6vmBtXmK2TmknkEuZNoaDqTasFdZdu3DRw8b2wt",
"width": 1000,
"height": 1628,
"format": "png"
}
}
],
"faucets": [],
"icon": {
"url": "ipfs://bafkreieyaqgkgntvxuo5tnhgseladga5q6gutc37dab7kqqfdguhq7vkxq",
"width": 5836,
"height": 5836,
"format": "png"
},
"infoURL": "https://redstone.xyz/docs/network-info",
"name": "Redstone Holesky Testnet",
"nativeCurrency": {
"name": "Redstone Testnet Ether",
"symbol": "ETH",
"decimals": 18
},
"networkId": 17001,
"rpc": [
"https://redstone-holesky-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"https://17001.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"https://rpc.holesky.redstone.xyz"
],
"shortName": "redstone",
"slug": "redstone-holesky-testnet",
"testnet": true
} as const satisfies Chain;
+2 -1
View File
@@ -29,7 +29,8 @@ export default {
"rpc": [
"https://z-mainnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"https://2016.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"https://mainnet-rpc.mainnetz.io"
"https://mainnet-rpc.mainnetz.io",
"https://eu-rpc.mainnetz.io"
],
"shortName": "NetZm",
"slug": "z-mainnet",
+3 -3
View File
@@ -20,7 +20,7 @@ export default {
"format": "png"
},
"infoURL": "https://europahub.network/",
"name": "Europa SKALE Chain",
"name": "SKALE Europa Hub",
"nativeCurrency": {
"name": "sFUEL",
"symbol": "sFUEL",
@@ -37,12 +37,12 @@ export default {
]
},
"rpc": [
"https://europa-skale-chain.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"https://skale-europa-hub.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"https://2046399126.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"https://mainnet.skalenodes.com/v1/elated-tan-skat",
"wss://mainnet.skalenodes.com/v1/elated-tan-skat"
],
"shortName": "europa",
"slug": "europa-skale-chain",
"slug": "skale-europa-hub",
"testnet": false
} as const satisfies Chain;
+13
View File
@@ -13,9 +13,21 @@ export default {
"height": 540,
"format": "png"
}
},
{
"name": "etherscan",
"url": "https://kromascan.com/",
"standard": "EIP3091",
"icon": {
"url": "ipfs://QmYtUimyqHkkFxYdbXXRbUqNg2VLPUg6Uu2C2nmFWowiZM",
"width": 551,
"height": 540,
"format": "png"
}
}
],
"faucets": [],
"features": [],
"icon": {
"url": "ipfs://QmVpV2WET6ZrqnvvPfE9hCwoE2y5ygbPuniuugpaRoxrho",
"width": 320,
@@ -39,6 +51,7 @@ export default {
}
]
},
"redFlags": [],
"rpc": [
"https://kroma.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"https://255.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
+2 -2
View File
@@ -6,8 +6,8 @@ export default {
"faucets": [],
"name": "DPU Chain",
"nativeCurrency": {
"name": "DGS",
"symbol": "DGS",
"name": "DGC",
"symbol": "DGC",
"decimals": 18
},
"networkId": 2611555,
+43
View File
@@ -0,0 +1,43 @@
import type { Chain } from "../src/types";
export default {
"chain": "K-LAOS",
"chainId": 2718,
"explorers": [
{
"name": "blockscout",
"url": "https://blockscout.klaos.laosfoundation.io",
"standard": "EIP3091",
"icon": {
"url": "ipfs://QmW26eoxJeyUfikZ4DUT1Gfk78sBkvydEo8QzHa1BXjUUL",
"width": 580,
"height": 580,
"format": "png"
}
}
],
"faucets": [],
"icon": {
"url": "ipfs://QmW26eoxJeyUfikZ4DUT1Gfk78sBkvydEo8QzHa1BXjUUL",
"width": 580,
"height": 580,
"format": "png"
},
"infoURL": "https://www.laosfoundation.io/",
"name": "K-LAOS",
"nativeCurrency": {
"name": "KLAOS",
"symbol": "KLAOS",
"decimals": 18
},
"networkId": 2718,
"rpc": [
"https://k-laos.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"https://2718.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"https://rpc.klaos.laosfoundation.io",
"wss://rpc.klaos.laosfoundation.io"
],
"shortName": "k-laos",
"slug": "k-laos",
"testnet": false,
"title": "K-LAOS: LAOS on Kusama"
} as const satisfies Chain;
+2 -2
View File
@@ -5,8 +5,8 @@ export default {
"explorers": [
{
"name": "HashScan",
"url": "https://hashscan.io/mainnet/dashboard",
"standard": "none"
"url": "https://hashscan.io/mainnet",
"standard": "EIP3091"
},
{
"name": "Arkhia Explorer",
+2 -2
View File
@@ -5,8 +5,8 @@ export default {
"explorers": [
{
"name": "HashScan",
"url": "https://hashscan.io/testnet/dashboard",
"standard": "none"
"url": "https://hashscan.io/testnet",
"standard": "EIP3091"
},
{
"name": "Arkhia Explorer",
+2 -2
View File
@@ -5,8 +5,8 @@ export default {
"explorers": [
{
"name": "HashScan",
"url": "https://hashscan.io/previewnet/dashboard",
"standard": "none"
"url": "https://hashscan.io/previewnet",
"standard": "EIP3091"
}
],
"faucets": [
+10 -10
View File
@@ -6,20 +6,20 @@ export default {
{
"name": "Blockscout",
"url": "https://staging-utter-unripe-menkar.explorer.staging-v3.skalenodes.com",
"standard": "EIP3091",
"icon": {
"url": "ipfs://bafybeigyayzxvt7vosat4rtrbmhhnldgx57w2pfbutuniax7h6kswzi42m",
"width": 1637,
"height": 1636,
"format": "png"
}
"standard": "EIP3091"
}
],
"faucets": [
"https://sfuel.dirtroad.dev/staging"
],
"icon": {
"url": "ipfs://bafybeigyayzxvt7vosat4rtrbmhhnldgx57w2pfbutuniax7h6kswzi42m",
"width": 1637,
"height": 1636,
"format": "png"
},
"infoURL": "https://calypsohub.network/",
"name": "Calypso NFT Hub (SKALE Testnet)",
"name": "SKALE Calypso Hub Testnet",
"nativeCurrency": {
"name": "sFUEL",
"symbol": "sFUEL",
@@ -27,12 +27,12 @@ export default {
},
"networkId": 344106930,
"rpc": [
"https://calypso-nft-hub-skale-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"https://skale-calypso-hub-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"https://344106930.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"https://staging-v3.skalenodes.com/v1/staging-utter-unripe-menkar"
],
"shortName": "calypso-testnet",
"slug": "calypso-nft-hub-skale-testnet",
"slug": "skale-calypso-hub-testnet",
"testnet": true,
"title": "Calypso NFT Hub Testnet"
} as const satisfies Chain;
+7 -1
View File
@@ -4,6 +4,12 @@ export default {
"chainId": 363636,
"explorers": [],
"faucets": [],
"icon": {
"url": "ipfs://QmRiAUu3xV5uiX6Nk1iXD5w6qjki5ugGFETRVavzJ2h5QF",
"width": 370,
"height": 320,
"format": "png"
},
"name": "Digit Soul Smart Chain 2",
"nativeCurrency": {
"name": "Digit Coin",
@@ -14,7 +20,7 @@ export default {
"rpc": [
"https://digit-soul-smart-chain-2.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"https://363636.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"http://dgs-rpc.digitsoul.co.th"
"https://dgs-rpc.digitsoul.co.th"
],
"shortName": "DS2",
"slug": "digit-soul-smart-chain-2",
+1 -3
View File
@@ -38,14 +38,12 @@ export default {
"rpc": [
"https://arbitrum-goerli.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"https://421613.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"https://arbitrum-goerli.infura.io/v3/${INFURA_API_KEY}",
"https://arb-goerli.g.alchemy.com/v2/${ALCHEMY_API_KEY}",
"https://goerli-rollup.arbitrum.io/rpc",
"https://arbitrum-goerli.publicnode.com",
"wss://arbitrum-goerli.publicnode.com"
],
"shortName": "arb-goerli",
"slug": "arbitrum-goerli",
"testnet": false,
"testnet": true,
"title": "Arbitrum Goerli Rollup Testnet"
} as const satisfies Chain;
+35
View File
@@ -0,0 +1,35 @@
import type { Chain } from "../src/types";
export default {
"chain": "Geso Verse",
"chainId": 428,
"explorers": [
{
"name": "Geso Verse Explorer",
"url": "https://explorer.verse.gesoten.com",
"standard": "EIP3091"
}
],
"faucets": [],
"icon": {
"url": "ipfs://Qmb7oJY9zd9sTzxNNQNTVZQz2hkd1aA94mWm4cvXfJ9QxV",
"width": 1280,
"height": 1280,
"format": "png"
},
"infoURL": "https://gesoten.com/",
"name": "Geso Verse",
"nativeCurrency": {
"name": "OAS",
"symbol": "OAS",
"decimals": 18
},
"networkId": 428,
"rpc": [
"https://geso-verse.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"https://428.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"https://rpc.verse.gesoten.com/"
],
"shortName": "GSV",
"slug": "geso-verse",
"testnet": false
} as const satisfies Chain;
+38
View File
@@ -0,0 +1,38 @@
import type { Chain } from "../src/types";
export default {
"chain": "staging-legal-crazy-castor",
"chainId": 476158412,
"explorers": [
{
"name": "Blockscout",
"url": "https://staging-legal-crazy-castor.explorer.staging-v3.skalenodes.com",
"standard": "EIP3091"
}
],
"faucets": [
"https://sfuel.dirtroad.dev/staging"
],
"icon": {
"url": "ipfs://bafkreiezcwowhm6xjrkt44cmiu6ml36rhrxx3amcg3cfkcntv2vgcvgbre",
"width": 600,
"height": 600,
"format": "png"
},
"infoURL": "https://europahub.network/",
"name": "SKALE Europa Hub Testnet",
"nativeCurrency": {
"name": "sFUEL",
"symbol": "sFUEL",
"decimals": 18
},
"networkId": 476158412,
"rpc": [
"https://skale-europa-hub-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"https://476158412.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"https://staging-v3.skalenodes.com/v1/staging-legal-crazy-castor"
],
"shortName": "europa-testnet",
"slug": "skale-europa-hub-testnet",
"testnet": true,
"title": "Europa Hub Testnet"
} as const satisfies Chain;
+16 -14
View File
@@ -4,20 +4,22 @@ export default {
"chainId": 503129905,
"explorers": [
{
"name": "nebula",
"name": "Blockscout",
"url": "https://staging-faint-slimy-achird.explorer.staging-v3.skalenodes.com",
"standard": "EIP3091",
"icon": {
"url": "ipfs://QmfQkfmQuoUUUKwF1yCcrPEzFcWLaqNyiSv5YMcSj6zs74",
"width": 500,
"height": 500,
"format": "png"
}
"standard": "EIP3091"
}
],
"faucets": [],
"faucets": [
"https://sfuel.dirtroad.dev/staging"
],
"icon": {
"url": "ipfs://bafybeic5eexvd34wfy4kuebcyu73qpkv3x57s54ebzjyhyjsmeuni5jwcm",
"width": 500,
"height": 500,
"format": "png"
},
"infoURL": "https://nebulachain.io/",
"name": "Nebula Staging",
"name": "SKALE Nebula Hub Testnet",
"nativeCurrency": {
"name": "sFUEL",
"symbol": "sFUEL",
@@ -25,12 +27,12 @@ export default {
},
"networkId": 503129905,
"rpc": [
"https://nebula-staging.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"https://skale-nebula-hub-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"https://503129905.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"https://staging-v3.skalenodes.com/v1/staging-faint-slimy-achird",
"wss://staging-v3.skalenodes.com/v1/ws/staging-faint-slimy-achird"
],
"shortName": "nebula-staging",
"slug": "nebula-staging",
"testnet": false
"shortName": "nebula-testnet",
"slug": "skale-nebula-hub-testnet",
"testnet": true
} as const satisfies Chain;
-1
View File
@@ -24,7 +24,6 @@ export default {
"https://rollux.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"https://570.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"https://rpc.rollux.com",
"https://rollux.public-rpc.com",
"wss://rpc.rollux.com/wss"
],
"shortName": "sys-rollux",
+2 -1
View File
@@ -47,6 +47,7 @@ export default {
}
]
},
"redFlags": [],
"rpc": [
"https://sepolia-pgn-public-goods-network.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"https://58008.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
@@ -54,5 +55,5 @@ export default {
],
"shortName": "sepPGN",
"slug": "sepolia-pgn-public-goods-network",
"testnet": false
"testnet": true
} as const satisfies Chain;
+7 -1
View File
@@ -4,6 +4,12 @@ export default {
"chainId": 6363,
"explorers": [],
"faucets": [],
"icon": {
"url": "ipfs://QmRiAUu3xV5uiX6Nk1iXD5w6qjki5ugGFETRVavzJ2h5QF",
"width": 370,
"height": 320,
"format": "png"
},
"name": "Digit Soul Smart Chain",
"nativeCurrency": {
"name": "Digit Coin",
@@ -14,7 +20,7 @@ export default {
"rpc": [
"https://digit-soul-smart-chain.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"https://6363.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"http://dsc-rpc.digitsoul.co.th"
"https://dsc-rpc.digitsoul.co.th"
],
"shortName": "DGS",
"slug": "digit-soul-smart-chain",
+38
View File
@@ -0,0 +1,38 @@
import type { Chain } from "../src/types";
export default {
"chain": "MaalChain Testnet",
"chainId": 7860,
"explorers": [
{
"name": "maalscan testnet",
"url": "https://testnet.maalscan.io",
"standard": "EIP3091"
}
],
"faucets": [
"https://faucet-testnet.maalscan.io/"
],
"icon": {
"url": "ipfs://bafkreiexfqfe2x4impvwhra3xxa5eb25gv25zi3kkaoatdnld7wbxdzf2a",
"width": 512,
"height": 512,
"format": "png"
},
"infoURL": "https://www.maalchain.com/",
"name": "MaalChain Testnet",
"nativeCurrency": {
"name": "MAAL",
"symbol": "MAAL",
"decimals": 18
},
"networkId": 7860,
"rpc": [
"https://maalchain-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"https://7860.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"https://node1.maalscan.io/",
"https://rpc-bntest.maalscan.io/"
],
"shortName": "maal-test",
"slug": "maalchain-testnet",
"testnet": true
} as const satisfies Chain;
+14 -1
View File
@@ -13,16 +13,28 @@ export default {
"height": 512,
"format": "png"
}
},
{
"name": "DOScan",
"url": "https://explorer.doschain.com/",
"standard": "EIP3091",
"icon": {
"url": "ipfs://QmV2Nowzo81F6pi2qFcHePA4MwmmdMKBMUzBJUrxcymxx4",
"width": 512,
"height": 512,
"format": "png"
}
}
],
"faucets": [],
"features": [],
"icon": {
"url": "ipfs://QmV2Nowzo81F6pi2qFcHePA4MwmmdMKBMUzBJUrxcymxx4",
"width": 512,
"height": 512,
"format": "png"
},
"infoURL": "https://doschain.io",
"infoURL": "https://doschain.com/",
"name": "DOS Chain",
"nativeCurrency": {
"name": "DOS",
@@ -30,6 +42,7 @@ export default {
"decimals": 18
},
"networkId": 7979,
"redFlags": [],
"rpc": [
"https://dos-chain.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"https://7979.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
+41
View File
@@ -0,0 +1,41 @@
import type { Chain } from "../src/types";
export default {
"chain": "TQF",
"chainId": 8192,
"explorers": [
{
"name": "blockscout",
"url": "https://toruscan.com",
"standard": "EIP3091",
"icon": {
"url": "ipfs://QmYtUimyqHkkFxYdbXXRbUqNg2VLPUg6Uu2C2nmFWowiZM",
"width": 551,
"height": 540,
"format": "png"
}
}
],
"faucets": [],
"icon": {
"url": "ipfs://bafkreidchntjaxmq52cuqqoalpajk5ssk4p77k7n4jgywqmkpldo5qgobm",
"width": 1200,
"height": 1200,
"format": "png"
},
"infoURL": "https://docs.toruschain.com",
"name": "Torus Mainnet",
"nativeCurrency": {
"name": "TQF",
"symbol": "TQF",
"decimals": 18
},
"networkId": 8192,
"rpc": [
"https://torus.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"https://8192.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"https://rpc.toruschain.com"
],
"shortName": "tqf",
"slug": "torus",
"testnet": false
} as const satisfies Chain;
+13 -1
View File
@@ -6,10 +6,22 @@ export default {
{
"name": "Dodao Explorer",
"url": "https://tanssi-evmexplorer.netlify.app/?rpcUrl=https://fraa-dancebox-3041-rpc.a.dancebox.tanssi.network",
"standard": "none"
"standard": "EIP3091",
"icon": {
"url": "ipfs://QmdWsi6mhs6Agb3LF4uycUwx2fgNmwkuAGb7JmsLPkwd3j",
"width": 636,
"height": 629,
"format": "png"
}
}
],
"faucets": [],
"icon": {
"url": "ipfs://QmdWsi6mhs6Agb3LF4uycUwx2fgNmwkuAGb7JmsLPkwd3j",
"width": 636,
"height": 629,
"format": "png"
},
"infoURL": "https://dodao.dev/",
"name": "Dodao",
"nativeCurrency": {
+1 -1
View File
@@ -1,6 +1,6 @@
{
"name": "@thirdweb-dev/chains",
"version": "0.1.59",
"version": "0.1.60",
"main": "dist/thirdweb-dev-chains.cjs.js",
"module": "dist/thirdweb-dev-chains.esm.js",
"exports": {
File diff suppressed because one or more lines are too long
+21
View File
@@ -1,5 +1,26 @@
# thirdweb
## 0.13.22
### Patch Changes
- Updated dependencies [[`cfe81b44`](https://github.com/thirdweb-dev/js/commit/cfe81b443205d84e58128b8d7d5f2dc940b12875), [`72c0bb10`](https://github.com/thirdweb-dev/js/commit/72c0bb10d6d765d1679b2b22ac63d85db101b5c4), [`ca618ea0`](https://github.com/thirdweb-dev/js/commit/ca618ea0c9ac5dc4f65cbfbfd39360e4150c72c7), [`aefc4cda`](https://github.com/thirdweb-dev/js/commit/aefc4cda4c4fad81411d3a9485931e28100b5718), [`a36c7e83`](https://github.com/thirdweb-dev/js/commit/a36c7e8331744879a169f84e97b66abf0ab44f56), [`4ae1cd63`](https://github.com/thirdweb-dev/js/commit/4ae1cd63bb7b471cae48a27bf6554c4953c1dc82), [`61c62b3f`](https://github.com/thirdweb-dev/js/commit/61c62b3f07a082ffd7620c949e3bcc6b75c104b5), [`7bb054e4`](https://github.com/thirdweb-dev/js/commit/7bb054e45c75450c8f465809d23eb66371f6ef8e), [`d20e7898`](https://github.com/thirdweb-dev/js/commit/d20e7898562a3914841522f2e09f88ca37dfdd4b)]:
- @thirdweb-dev/sdk@4.0.19
- @thirdweb-dev/storage@2.0.7
- @thirdweb-dev/wallets@2.1.11
- @thirdweb-dev/auth@4.1.14
## 0.13.21
### Patch Changes
- Updated dependencies [[`8c2d4e5e`](https://github.com/thirdweb-dev/js/commit/8c2d4e5ea7c38b3efa4d8d94c9822a92d271e59b), [`b0ecfd2d`](https://github.com/thirdweb-dev/js/commit/b0ecfd2d8d5cda33dc8f5ea2d20119cb901a0bcb), [`d28097f5`](https://github.com/thirdweb-dev/js/commit/d28097f508739cdbd6625e09c2ed0fe25a922c0f), [`b8332500`](https://github.com/thirdweb-dev/js/commit/b833250053320c8608109053f5cffe2dc96ce70a), [`8bf3be88`](https://github.com/thirdweb-dev/js/commit/8bf3be88be051178a7142618c4371d2f2ef26271), [`b02fb91a`](https://github.com/thirdweb-dev/js/commit/b02fb91a548a3f66f7677ced24be9397e0f9a7ba), [`f93bd325`](https://github.com/thirdweb-dev/js/commit/f93bd325e119381ddc3380a5ea43fe63fbcf42c0), [`2861dff1`](https://github.com/thirdweb-dev/js/commit/2861dff1f013b5150314fdaccaeadddbcf0d21c9), [`61b6a002`](https://github.com/thirdweb-dev/js/commit/61b6a00214716454222e67fe5fdb47edba391070), [`28fc3736`](https://github.com/thirdweb-dev/js/commit/28fc3736aa30c89690084aa2c62556c183796352), [`06805217`](https://github.com/thirdweb-dev/js/commit/06805217c26de203a57c21246acba22def8a78fa), [`2b4f1c8e`](https://github.com/thirdweb-dev/js/commit/2b4f1c8e55de091100fb5279887bcb19ea31d38c)]:
- @thirdweb-dev/wallets@2.1.10
- @thirdweb-dev/sdk@4.0.18
- @thirdweb-dev/chains@0.1.60
- @thirdweb-dev/storage@2.0.6
- @thirdweb-dev/auth@4.1.13
## 0.13.20
### Patch Changes
+1 -1
View File
@@ -1,7 +1,7 @@
{
"name": "thirdweb",
"main": "dist/cli/index.js",
"version": "0.13.20",
"version": "0.13.22",
"repository": "https://github.com/thirdweb-dev/js/tree/main/packages/cli",
"author": "thirdweb eng <[email protected]>",
"license": "Apache-2.0",
+9 -2
View File
@@ -39,7 +39,14 @@
"@types/treeify": "^1.0.2",
"benchmark": "^2.1.4",
"eslint-config-thirdweb": "workspace:*",
"typescript": "^5.1.6"
"typescript": "^5.1.6",
"circomlibjs": "^0.1.7",
"crypto": "0.0.3",
"ethereum-cryptography": "^1.0.3",
"ethereumjs-util": "^7.0.9",
"keccak256": "^1.0.6",
"sha1": "^1.1.1",
"tape": "^4.9.2"
},
"scripts": {
"format": "prettier --write 'src/**/*'",
@@ -48,7 +55,7 @@
"clean": "rm -rf dist/",
"build": "tsc && preconstruct build",
"push": "yalc push",
"test": "bun test",
"test": "bun test && node test/MerkleTree.js",
"benchmark:aes-encrypt": "bun benchmark/aes-encrypt.ts",
"benchmark:aes-decrypt": "bun benchmark/aes-decrypt.ts",
"benchmark:sha256": "bun benchmark/sha256.ts",
File diff suppressed because it is too large Load Diff
+55
View File
@@ -1,5 +1,60 @@
# @thirdweb-dev/react-core
## 4.1.12
### Patch Changes
- [#2043](https://github.com/thirdweb-dev/js/pull/2043) [`34546c24`](https://github.com/thirdweb-dev/js/commit/34546c24c74f4e9e1f5e94567ebe1017ad63aea5) Thanks [@MananTank](https://github.com/MananTank)! - when user clicks on "Switch to personal wallet" when they are connected to smart wallet and reloads the page, auto-connect to smart wallet
- [#1842](https://github.com/thirdweb-dev/js/pull/1842) [`a36c7e83`](https://github.com/thirdweb-dev/js/commit/a36c7e8331744879a169f84e97b66abf0ab44f56) Thanks [@MananTank](https://github.com/MananTank)! - JSDoc improvements
- [#1938](https://github.com/thirdweb-dev/js/pull/1938) [`4ae1cd63`](https://github.com/thirdweb-dev/js/commit/4ae1cd63bb7b471cae48a27bf6554c4953c1dc82) Thanks [@kien-ngo](https://github.com/kien-ngo)! - Add OneKey wallet
- [#2042](https://github.com/thirdweb-dev/js/pull/2042) [`61c62b3f`](https://github.com/thirdweb-dev/js/commit/61c62b3f07a082ffd7620c949e3bcc6b75c104b5) Thanks [@MananTank](https://github.com/MananTank)! - Improved JSDoc comments and Type exports
- [#2039](https://github.com/thirdweb-dev/js/pull/2039) [`cd87be4a`](https://github.com/thirdweb-dev/js/commit/cd87be4a24a9a3a552fbc4f33da6fcb08b7da88b) Thanks [@kien-ngo](https://github.com/kien-ngo)! - Remove barrel files
- Updated dependencies [[`cfe81b44`](https://github.com/thirdweb-dev/js/commit/cfe81b443205d84e58128b8d7d5f2dc940b12875), [`72c0bb10`](https://github.com/thirdweb-dev/js/commit/72c0bb10d6d765d1679b2b22ac63d85db101b5c4), [`ca618ea0`](https://github.com/thirdweb-dev/js/commit/ca618ea0c9ac5dc4f65cbfbfd39360e4150c72c7), [`aefc4cda`](https://github.com/thirdweb-dev/js/commit/aefc4cda4c4fad81411d3a9485931e28100b5718), [`a36c7e83`](https://github.com/thirdweb-dev/js/commit/a36c7e8331744879a169f84e97b66abf0ab44f56), [`4ae1cd63`](https://github.com/thirdweb-dev/js/commit/4ae1cd63bb7b471cae48a27bf6554c4953c1dc82), [`61c62b3f`](https://github.com/thirdweb-dev/js/commit/61c62b3f07a082ffd7620c949e3bcc6b75c104b5), [`7bb054e4`](https://github.com/thirdweb-dev/js/commit/7bb054e45c75450c8f465809d23eb66371f6ef8e), [`d20e7898`](https://github.com/thirdweb-dev/js/commit/d20e7898562a3914841522f2e09f88ca37dfdd4b)]:
- @thirdweb-dev/sdk@4.0.19
- @thirdweb-dev/storage@2.0.7
- @thirdweb-dev/wallets@2.1.11
- @thirdweb-dev/auth@4.1.14
## 4.1.11
### Patch Changes
- [#2007](https://github.com/thirdweb-dev/js/pull/2007) [`e79b2935`](https://github.com/thirdweb-dev/js/commit/e79b293562bbcf4af6fbcb4829b2acb4cb3e2cb4) Thanks [@kien-ngo](https://github.com/kien-ngo)! - Get the native token balance of a wallet address on the `activeChain` network set in the `ThirdwebProvider`
```ts
const balanceQuery = useBalanceForAddress(walletAddress);
console.log(balanceQuery.data);
```
- [#1926](https://github.com/thirdweb-dev/js/pull/1926) [`8c2d4e5e`](https://github.com/thirdweb-dev/js/commit/8c2d4e5ea7c38b3efa4d8d94c9822a92d271e59b) Thanks [@kien-ngo](https://github.com/kien-ngo)! - Add Rabby browser extension
- [#2001](https://github.com/thirdweb-dev/js/pull/2001) [`a27b10c5`](https://github.com/thirdweb-dev/js/commit/a27b10c5c3400500ef0138069acc550b3a07ffc6) Thanks [@iketw](https://github.com/iketw)! - Don't disconnect wallet if connecting
- [#2016](https://github.com/thirdweb-dev/js/pull/2016) [`94559129`](https://github.com/thirdweb-dev/js/commit/9455912932c71f3ef9b67461bf5604f1ea1f71e8) Thanks [@iketw](https://github.com/iketw)! - Share WalletConnectHandler between React and RN to support wallets as receivers
- [#1997](https://github.com/thirdweb-dev/js/pull/1997) [`50749662`](https://github.com/thirdweb-dev/js/commit/507496627bcd77b49bb027b24996a31c57e04819) Thanks [@MananTank](https://github.com/MananTank)! - - Fixes issue #1708
- Fixes smart wallet icon shown even after clicking on "Switch to Personal wallet" in ConnectWallet dropdown
- [#1987](https://github.com/thirdweb-dev/js/pull/1987) [`b3394277`](https://github.com/thirdweb-dev/js/commit/b3394277c77e4af130151111e056e27a28ac893a) Thanks [@MananTank](https://github.com/MananTank)! - Improved JSDoc comments and type exports
- [#1928](https://github.com/thirdweb-dev/js/pull/1928) [`2b4f1c8e`](https://github.com/thirdweb-dev/js/commit/2b4f1c8e55de091100fb5279887bcb19ea31d38c) Thanks [@kien-ngo](https://github.com/kien-ngo)! - Add Crypto.com Defi wallet
- [#2015](https://github.com/thirdweb-dev/js/pull/2015) [`4c488aa3`](https://github.com/thirdweb-dev/js/commit/4c488aa31f6fadc13759ff60f30230b929feb314) Thanks [@MananTank](https://github.com/MananTank)! - Fix auto-connecting a personal wallet for smart/safe wallet
- Updated dependencies [[`8c2d4e5e`](https://github.com/thirdweb-dev/js/commit/8c2d4e5ea7c38b3efa4d8d94c9822a92d271e59b), [`b0ecfd2d`](https://github.com/thirdweb-dev/js/commit/b0ecfd2d8d5cda33dc8f5ea2d20119cb901a0bcb), [`d28097f5`](https://github.com/thirdweb-dev/js/commit/d28097f508739cdbd6625e09c2ed0fe25a922c0f), [`b8332500`](https://github.com/thirdweb-dev/js/commit/b833250053320c8608109053f5cffe2dc96ce70a), [`8bf3be88`](https://github.com/thirdweb-dev/js/commit/8bf3be88be051178a7142618c4371d2f2ef26271), [`b02fb91a`](https://github.com/thirdweb-dev/js/commit/b02fb91a548a3f66f7677ced24be9397e0f9a7ba), [`f93bd325`](https://github.com/thirdweb-dev/js/commit/f93bd325e119381ddc3380a5ea43fe63fbcf42c0), [`2861dff1`](https://github.com/thirdweb-dev/js/commit/2861dff1f013b5150314fdaccaeadddbcf0d21c9), [`61b6a002`](https://github.com/thirdweb-dev/js/commit/61b6a00214716454222e67fe5fdb47edba391070), [`28fc3736`](https://github.com/thirdweb-dev/js/commit/28fc3736aa30c89690084aa2c62556c183796352), [`06805217`](https://github.com/thirdweb-dev/js/commit/06805217c26de203a57c21246acba22def8a78fa), [`2b4f1c8e`](https://github.com/thirdweb-dev/js/commit/2b4f1c8e55de091100fb5279887bcb19ea31d38c)]:
- @thirdweb-dev/[email protected]
- @thirdweb-dev/[email protected]
- @thirdweb-dev/[email protected]
- @thirdweb-dev/[email protected]
- @thirdweb-dev/[email protected]
## 4.1.10
### Patch Changes
+5 -3
View File
@@ -1,6 +1,6 @@
{
"name": "@thirdweb-dev/react-core",
"version": "4.1.10",
"version": "4.1.12",
"repository": "https://github.com/thirdweb-dev/js/tree/main/packages/react-core",
"author": "thirdweb eng <[email protected]>",
"license": "Apache-2.0",
@@ -52,7 +52,8 @@
"generate-docs:evm": "api-extractor run --local --config ./config/api-extractor-evm.json && api-documenter markdown -i ./temp -o ./docs/evm && rm -rf ./temp-evm && mv ./temp ./temp-evm",
"generate-snippets": "node ./scripts/generate-snippets-evm.mjs && node ./scripts/generate-feature-snippets-evm.mjs",
"build": "tsc && preconstruct build",
"push": "yalc push"
"push": "yalc push",
"typedoc": "node scripts/typedoc.mjs"
},
"sideEffects:": false,
"devDependencies": {
@@ -83,7 +84,8 @@
"ethers": "^5.7.2",
"prettier": "^3.0.0",
"react": "^18.2.0",
"typescript": "^5.1.6"
"typescript": "^5.1.6",
"typedoc-gen": "workspace:*"
},
"dependencies": {
"@tanstack/react-query": "^4.33.0",
+14
View File
@@ -0,0 +1,14 @@
// @ts-check
/* eslint-disable better-tree-shaking/no-top-level-side-effects */
import { typedoc } from "typedoc-gen";
typedoc({
entryPoints: ["src/index.ts"],
exclude: [
"**/packages/sdk/**",
"**/packages/wallets/**",
"**/packages/chains/**",
],
output: "both", // TODO: change this to 'json' when old portal is fully migrated to new portal
});
@@ -29,10 +29,12 @@ type NetworkMetadata = {
/**
*
* @deprecated - use `useChain`, `useSwitchChain`, `useChainId` instead
*
* Hook for getting metadata about the network the current wallet is connected to and switching networks
*
* It's important to note that some wallet apps do not support programmatic network switching and switchNetwork will be undefined.
* For those situations, you can typically switch networks in the wallet app this hook will still work.
*
* @example
* ```javascript
* import { useNetwork } from "@thirdweb-dev/react";
@@ -47,12 +49,9 @@ type NetworkMetadata = {
* </button>
* );
* };
```
* ```
*
* It's important to note that some wallet apps do not support programmatic network switching and switchNetwork will be undefined.
* For those situations, you can typically switch networks in the wallet app this hook will still work.
*
* @public
* @deprecated - use `useChain`, `useSwitchChain`, `useChainId` instead
*/
export function useNetwork(): [NetworkMetadata, SwitchNetwork | undefined] {
const chain = useChain();
@@ -5,14 +5,17 @@ import type {
Coin98Wallet,
CoinbaseWallet,
CoreWallet,
CryptoDefiWallet,
EmbeddedWallet,
FrameWallet,
LocalWallet,
MagicLink,
MetaMaskWallet,
OKXWallet,
OneKeyWallet,
PaperWallet,
PhantomWallet,
RabbyWallet,
RainbowWallet,
SafeWallet,
SmartWallet,
@@ -45,6 +48,9 @@ type WalletIdToWalletTypeMap = {
phantom: PhantomWallet;
walletConnectV1: WalletConnect;
okx: OKXWallet;
oneKey: OneKeyWallet;
cryptoDefiWallet: CryptoDefiWallet;
rabby: RabbyWallet;
};
/**
@@ -3,6 +3,9 @@ import { QueryClient, QueryClientProvider } from "@tanstack/react-query";
import { useMemo } from "react";
export interface QueryClientProviderProps {
/**
* If you are using React Query and have your own `QueryClient`, you can pass it as the queryClient prop to use that instead of the SDK's default client.
*/
queryClient?: QueryClient;
}
@@ -1,5 +1,8 @@
import { createContext } from "react";
/**
* @internal
*/
export const ThirdwebThemeContext = /* @__PURE__ */ createContext<
"light" | "dark" | undefined
>(undefined);
@@ -56,6 +56,9 @@ export interface ThirdwebProviderCoreProps<TChains extends Chain[]>
theme?: "light" | "dark";
/**
* @internal
*/
createWalletStorage?: CreateAsyncStorage;
/**
@@ -68,13 +71,19 @@ export interface ThirdwebProviderCoreProps<TChains extends Chain[]>
*
* If wallet fails to connect in this time, it will stop trying to connect and user will have to manually connect
*
* @defaultValue 15000
* By default, it is set to `15000` milliseconds (15 seconds)
*/
autoConnectTimeout?: number;
/**
* @internal
*/
signerWallet?: WalletConfig<SignerWallet>;
}
/**
* @internal
*/
export const ThirdwebProviderCore = <TChains extends Chain[]>({
createWalletStorage = createAsyncLocalStorage,
...props
@@ -11,6 +11,9 @@ import {
ConnectParams,
CreateAsyncStorage,
SignerWallet,
WalletConnectHandler,
WalletConnectReceiverConfig,
WalletConnectV2Handler,
walletIds,
} from "@thirdweb-dev/wallets";
import { Signer } from "ethers";
@@ -24,6 +27,7 @@ import {
useRef,
useState,
} from "react";
import { isWalletConnectReceiverEnabled } from "../utils/receiver";
const LAST_CONNECTED_WALLET_STORAGE_KEY = "lastConnectedWallet";
@@ -92,6 +96,7 @@ type ThirdwebWalletContextData = {
getWalletConfig: (walletInstance: WalletInstance) => WalletConfig | undefined;
activeChainSetExplicitly: boolean;
clientId?: string;
walletConnectHandler: WalletConnectHandler | undefined;
};
const ThirdwebWalletContext = /* @__PURE__ */ createContext<
@@ -131,6 +136,9 @@ export function ThirdwebWalletProvider(
WalletConfig | undefined
>();
const [walletConnectHandler, setWalletConnectHandler] =
useState<WalletConnectHandler>();
if (!lastConnectedWalletStorage) {
lastConnectedWalletStorage =
props.createWalletStorage("coordinatorStorage");
@@ -172,6 +180,34 @@ export function ThirdwebWalletProvider(
}
}, [activeWallet, props.chains]);
useEffect(() => {
if (!activeWallet) {
return;
}
const initWCHandler = async () => {
const wcReceiverOptions =
activeWallet?.getOptions() as WalletConnectReceiverConfig;
const handler = new WalletConnectV2Handler(
{
walletConnectReceiver: {
...(wcReceiverOptions?.walletConnectReceiver === true
? {}
: wcReceiverOptions?.walletConnectReceiver),
},
},
activeWallet,
);
await handler.init();
setWalletConnectHandler(handler);
};
if (isWalletConnectReceiverEnabled(activeWallet)) {
initWCHandler();
}
}, [activeWallet]);
const setConnectedWallet = useCallback(
async (
wallet: WalletInstance,
@@ -267,18 +303,14 @@ export function ThirdwebWalletProvider(
// Auto Connect
useEffect(() => {
// do not auto connect if signerWallet is given
if (props.signerWallet) {
return;
}
if (autoConnectTriggered.current) {
return;
}
// if explicitly set to false, don't auto connect
// by default, auto connect
if (props.shouldAutoConnect === false) {
setConnectionStatus("disconnected");
autoConnectTriggered.current = true;
// do not auto connect if signerWallet is given
if (props.signerWallet) {
return;
}
@@ -292,7 +324,12 @@ export function ThirdwebWalletProvider(
return;
}
autoConnectTriggered.current = true;
// if explicitly set to false, don't auto connect
// by default, auto connect
if (props.shouldAutoConnect === false) {
setConnectionStatus("disconnected");
return;
}
async function autoconnect() {
const walletInfo = await getLastConnectedWalletInfo();
@@ -312,17 +349,31 @@ export function ThirdwebWalletProvider(
return;
}
const personalWalletInfo = walletInfo.connectParams?.personalWallet;
let _personalWalletInfo = walletInfo.connectParams?.personalWallet;
// if the wallet requires a personal wallet (like smartWallet), but the saved data does not have it
// this can happen when user clicks on "switch to personal wallet" and reloads the page
// OR when user clicks on magic link social login
if (walletObj.personalWallets && !_personalWalletInfo) {
// fix the connectParams by adding the personal wallet info
_personalWalletInfo = {
walletId: walletInfo.walletId,
connectParams: walletInfo.connectParams,
};
}
const personalWalletInfo = _personalWalletInfo;
if (personalWalletInfo) {
const personalWallets = walletObj.personalWallets || [];
const personalWalleObj = personalWallets.find(
const personalWalletObj = personalWallets.find(
(W) => W.id === personalWalletInfo.walletId,
);
if (personalWalleObj) {
if (personalWalletObj) {
// create a personal wallet instance and auto connect it
const personalWalletInstance = createWalletInstance(personalWalleObj);
const personalWalletInstance =
createWalletInstance(personalWalletObj);
try {
await timeoutPromise(
@@ -525,6 +576,7 @@ export function ThirdwebWalletProvider(
},
activeChainSetExplicitly: props.activeChainSetExplicitly,
clientId: props.clientId,
walletConnectHandler: walletConnectHandler,
}}
>
{props.children}
@@ -532,6 +584,9 @@ export function ThirdwebWalletProvider(
);
}
/**
* @internal
*/
export function useWalletContext() {
const ctx = useContext(ThirdwebWalletContext);
if (!ctx) {
@@ -542,6 +597,16 @@ export function useWalletContext() {
return ctx;
}
export function useWalletConnectHandler() {
const ctx = useWalletContext();
if (!ctx) {
throw new Error(
`useWalletConnectHandler() can only be used inside <ThirdwebProvider />`,
);
}
return ctx.walletConnectHandler;
}
async function getLastConnectedWalletInfo() {
const str = await lastConnectedWalletStorage.getItem(
LAST_CONNECTED_WALLET_STORAGE_KEY,
@@ -18,6 +18,9 @@ export function neverPersist<TKey extends QueryKey>(key: TKey) {
return [...key, NEVER_PERSIST_QUERY_POSTFIX] as const;
}
/**
* @internal
*/
export function shouldNeverPersistQuery<TKey extends QueryKey>(
key: TKey,
): boolean {
@@ -2,8 +2,7 @@ import invariant from "tiny-invariant";
/**
* Makes a parameter required to be passed, but still allows it to be null or undefined.
*
* @beta
* @internal
*/
export type RequiredParam<T> = T | null | undefined;
+4 -2
View File
@@ -43,13 +43,15 @@ export type WalletConfig<I extends WalletInstance = WalletInstance> = {
/**
* If true, this wallet will be tagged as "recommended" in ConnectWallet Modal and will be shown at the top of the list
* @defaultValue false
*
* By default is set to `false`
*/
recommended?: boolean;
/**
* If the wallet can sign transactions without user interaction, set this to true.
* @defaultValue false
*
* By default is set to `false`
*/
isHeadless?: boolean;
};
@@ -5,6 +5,9 @@ export interface IPFSResolverOptions {
gatewayUrl: string;
}
/**
* @internal
*/
export async function resolveMimeType(url?: string) {
if (!url) {
return undefined;
@@ -0,0 +1,10 @@
import { WalletInstance } from "../types/wallet";
export const isWalletConnectReceiverEnabled = (wallet?: WalletInstance) => {
const options = wallet?.getOptions();
return (
options &&
"walletConnectReceiver" in options &&
options.walletConnectReceiver
);
};
@@ -7,9 +7,12 @@ import {
import { useQueryClient } from "@tanstack/react-query";
import { useWallet } from "../../core/hooks/wallet-hooks";
import { WalletData } from "@thirdweb-dev/wallets";
import { useLogout } from "../hooks/auth";
import { useLogout } from "../hooks/auth/useLogout";
import { useSwitchAccount } from "../hooks/auth/useSwitchAccount";
/**
* @internal
*/
export const ThirdwebAuthProvider: React.FC<
PropsWithChildren<{ value?: ThirdwebAuthConfig }>
> = ({ value, children }) => {
@@ -9,7 +9,6 @@ export interface ISecureStorage {
/**
* The configuration to use the react SDK with an [auth](https://portal.thirdweb.com/auth) server.
*
* @beta
*/
export interface ThirdwebAuthConfig {
/**
@@ -11,6 +11,9 @@ export const ThirdwebConfigContext = /* @__PURE__ */ createContext<
ThirdwebConfigContext | undefined
>(undefined);
/**
* @internal
*/
export const ThirdwebConfigProvider: React.FC<
PropsWithChildren<{
value: ThirdwebConfigContext;
@@ -21,6 +24,9 @@ export const ThirdwebConfigProvider: React.FC<
</ThirdwebConfigContext.Provider>
);
/**
* @internal
*/
export function useThirdwebConfigContext() {
const context = useContext(ThirdwebConfigContext);
invariant(
@@ -31,6 +31,9 @@ export const ThirdwebConnectedWalletContext = /* @__PURE__ */ createContext<
ThirdwebConnectedWalletContext | undefined
>(undefined);
/**
* @internal
*/
export const ThirdwebConnectedWalletProvider: React.FC<
PropsWithChildren<{ signer?: Signer }>
> = ({ signer, children }) => {
@@ -34,7 +34,6 @@ import invariant from "tiny-invariant";
* @returns a response object that includes an array of all accounts with their associated admin
* @twfeature AccountFactory
* @see {@link https://portal.thirdweb.com/react/react.useaccounts?utm_source=sdk | Documentation}
* @beta
*/
export function useAccounts(
contract: RequiredParam<SmartContract>,
@@ -66,7 +65,6 @@ export function useAccounts(
* @returns a response object that includes an array of all accounts associated with the address
* @twfeature AccountFactory
* @see {@link https://portal.thirdweb.com/react/react.useaccountsforaddress?utm_source=sdk | Documentation}
* @beta
*/
export function useAccountsForAddress(
contract: RequiredParam<SmartContract>,
@@ -102,7 +100,6 @@ export function useAccountsForAddress(
* @returns a boolean indicating if a account has been deployed for the given admin
* @twfeature AccountFactory
* @see {@link https://portal.thirdweb.com/react/react.useisaccountdeployed?utm_source=sdk | Documentation}
* @beta
*/
export function useIsAccountDeployed(
contract: RequiredParam<SmartContract>,
@@ -160,7 +157,6 @@ export function useIsAccountDeployed(
* @returns a mutation object that can be used to create a account
* @twfeature AccountFactory
* @see {@link https://portal.thirdweb.com/react/react.usecreateaccount?utm_source=sdk | Documentation}
* @beta
*/
export function useCreateAccount(contract: RequiredParam<SmartContract>) {
const activeChainId = useSDKChainId();
@@ -35,7 +35,6 @@ import { useWallet } from "../../../core/hooks/wallet-hooks";
* @returns a response object that includes an array of all signers of the provided account
* @twfeature Account
* @see {@link https://portal.thirdweb.com/react/react.useaccountsigners?utm_source=sdk | Documentation}
* @beta
*/
export function useAccountSigners(
contract: RequiredParam<SmartContract>,
@@ -67,7 +66,6 @@ export function useAccountSigners(
* @returns a response object that includes an array of all admins of the provided account
* @twfeature Account
* @see {@link https://portal.thirdweb.com/react/react.useaccountadmins?utm_source=sdk | Documentation}
* @beta
*/
export function useAccountAdmins(
contract: RequiredParam<SmartContract>,
@@ -99,7 +97,6 @@ export function useAccountAdmins(
* @returns a response object that includes an array of all admins of the provided account
* @twfeature Account
* @see {@link https://portal.thirdweb.com/react/react.useaccountadmins?utm_source=sdk | Documentation}
* @beta
*/
export function useAccountAdminsAndSigners(
contract: RequiredParam<SmartContract>,
@@ -28,7 +28,6 @@ import invariant from "tiny-invariant";
* @param contract - the {@link SmartContract} instance of the contract to get the appURI of
* @returns a response object that includes the appURI of the contract
* @twfeature AppURI
* @beta
*/
export function useAppURI<TContract extends ValidContractInstance>(
contract: RequiredParam<TContract>,
@@ -75,7 +74,6 @@ export function useAppURI<TContract extends ValidContractInstance>(
* @param contract - an instance of a {@link SmartContract}
* @returns a mutation object that can be used to update the appURI of a contract
* @twfeature AppUR
* @beta
*/
export function useSetAppURI(
contract: RequiredParam<ValidContractInstance>,
@@ -30,7 +30,6 @@ import invariant from "tiny-invariant";
/**
* The options to be passed as the second parameter to the {@link useClaimIneligibilityReasons} hook.
*
* @beta
*/
export type ClaimIneligibilityParams = {
// the wallet address to check claim eligibility for
@@ -42,7 +41,6 @@ export type ClaimIneligibilityParams = {
/**
* The params for the {@link useSetClaimConditions} hook mutation.
*
* @beta
*/
export type SetClaimConditionsParams = {
phases: ClaimConditionInput[];
@@ -66,7 +64,6 @@ export type SetClaimConditionsParams = {
* @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(
contract: RequiredParam<DropContract>,
@@ -122,7 +119,6 @@ export function useActiveClaimCondition(
* @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(
contract: RequiredParam<DropContract>,
@@ -186,7 +182,6 @@ export function useClaimerProofs(
* @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(
contract: RequiredParam<DropContract>,
@@ -241,7 +236,6 @@ export function useClaimConditions(
* @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(
contract: RequiredParam<DropContract>,
@@ -311,7 +305,6 @@ export function useClaimIneligibilityReasons(
* @returns the active claim condition 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(
contract: RequiredParam<DropContract>,
@@ -467,7 +460,6 @@ export function useActiveClaimConditionForWallet(
* @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(
contract: RequiredParam<DropContract>,
@@ -546,7 +538,6 @@ export function useSetClaimConditions(
* @param contract - an instance of a {@link DropContract}
* @returns a mutation object that can be used to reset claim conditions
* @twfeature ERC20ClaimPhasesV2 | ERC20ClaimPhasesV1 | ERC20ClaimConditionsV2 | ERC20ClaimConditionsV1 | ERC721ClaimPhasesV2 | ERC721ClaimPhasesV1 | ERC721ClaimConditionsV2 | ERC721ClaimConditionsV1 | ERC1155ClaimPhasesV2 | ERC1155ClaimPhasesV1 | ERC1155ClaimConditionsV2 | ERC1155ClaimConditionsV1
* @beta
*/
export function useResetClaimConditions(
contract: RequiredParam<DropContract>,
@@ -37,7 +37,6 @@ import invariant from "tiny-invariant";
* @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(
contract: RequiredParam<ValidContractInstance>,
@@ -89,7 +88,6 @@ export function usePrimarySaleRecipient(
* @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(
contract: RequiredParam<ValidContractInstance>,
@@ -140,7 +138,6 @@ export function useUpdatePrimarySaleRecipient(
* @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(
contract: RequiredParam<ValidContractInstance>,
@@ -192,7 +189,6 @@ export function useRoyaltySettings(
* @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(
contract: RequiredParam<ValidContractInstance>,
@@ -239,7 +235,6 @@ export function useUpdateRoyaltySettings(
* @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(
contract: RequiredParam<ValidContractInstance>,
@@ -290,7 +285,6 @@ export function usePlatformFees(
* @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(
contract: RequiredParam<ValidContractInstance>,
@@ -336,7 +330,6 @@ 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(
contract: RequiredParam<ValidContractInstance>,
@@ -390,7 +383,6 @@ 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(
contract: RequiredParam<ValidContractInstance>,
@@ -73,6 +73,9 @@ export function useContractType(
);
}
/**
* @internal
*/
export const contractType = {
cacheKey: (
contractAddress: RequiredParam<ContractAddress>,
@@ -121,6 +124,9 @@ export function useCompilerMetadata(
);
}
/**
* @internal
*/
export const compilerMetadata = {
cacheKey: (
contractAddress: RequiredParam<ContractAddress>,
@@ -307,7 +313,6 @@ export function useContract(
* @param contract - the {@link ValidContractInstance} instance of the contract to get the metadata for
* @returns a response object that includes the contract metadata of the deployed contract
* @twfeature ContractMetadata
* @beta
*/
export function useContractMetadata<TContract extends ValidContractInstance>(
contract: RequiredParam<TContract>,
@@ -359,7 +364,6 @@ export function useContractMetadata<TContract extends ValidContractInstance>(
* @param contract - the {@link ValidContractInstance} instance of the contract to get the metadata for
* @returns a response object that includes the contract metadata of the deployed contract
* @twfeature ContractMetadata
* @beta
*/
export function useContractMetadataUpdate(
contract: RequiredParam<ValidContractInstance>,
@@ -417,7 +421,6 @@ export function useContractMetadataUpdate(
* @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(
contract: RequiredParam<ValidContractInstance>,
@@ -515,7 +518,6 @@ export function useContractEvents(
* @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<
TContractAddress extends GeneratedContractAddress | ContractAddress,
@@ -592,7 +594,6 @@ export function useContractRead<
* @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<
TContractAddress extends GeneratedContractAddress | ContractAddress,
@@ -52,7 +52,6 @@ import invariant from "tiny-invariant";
* @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(
contract: RequiredParam<NFTDrop>,
@@ -89,7 +88,6 @@ export function useUnclaimedNFTs(
* @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(
contract: RequiredParam<NFTDrop>,
@@ -226,7 +224,6 @@ export function useBatchesToReveal<TContract extends RevealableContract>(
* @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>(
contract: RequiredParam<TContract>,
@@ -316,7 +313,6 @@ export function useClaimNFT<TContract extends DropContract>(
* @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>(
contract: RequiredParam<TContract>,
@@ -389,7 +385,6 @@ export function useLazyMint<TContract extends DropContract>(
* @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>(
contract: RequiredParam<TContract>,
@@ -470,7 +465,6 @@ export function useDelayedRevealLazyMint<TContract extends 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>(
contract: RequiredParam<TContract>,
@@ -56,7 +56,6 @@ import invariant from "tiny-invariant";
* @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(
contract: RequiredParam<Marketplace>,
@@ -163,7 +162,6 @@ export function useEnglishAuction(
* @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(
contract: RequiredParam<Marketplace>,
@@ -334,7 +332,6 @@ 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>) {
const contractAddress = contract?.getAddress();
@@ -422,7 +419,6 @@ export function useEnglishAuctionsCount(
* @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(
contract: RequiredParam<Marketplace>,
@@ -456,7 +452,6 @@ export function useActiveListings(
* @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(
contract: RequiredParam<Marketplace>,
@@ -585,7 +580,6 @@ export function useAuctionWinner(
*
* @param contract - an instance of a marketplace contract
* @param listingId - the listing id to check (only necessary for marketplace v3)
* @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}
@@ -694,7 +688,6 @@ 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(
contract: RequiredParam<Marketplace>,
@@ -902,7 +895,6 @@ 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(
contract: RequiredParam<Marketplace>,
@@ -1107,7 +1099,6 @@ 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>) {
const activeChainId = useSDKChainId();
@@ -1166,7 +1157,6 @@ 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>) {
const activeChainId = useSDKChainId();
@@ -1286,7 +1276,6 @@ 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>) {
const activeChainId = useSDKChainId();
@@ -1344,7 +1333,6 @@ 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>) {
const activeChainId = useSDKChainId();
@@ -1415,7 +1403,6 @@ export function useBuyNow(contract: RequiredParam<Marketplace>) {
* @param contract - an instance of a MarketplaceV3 contract
* @returns a mutation object that can be used to buy out a direct listing
* @see {@link https://portal.thirdweb.com/react/react.useBuyDirectListing?utm_source=sdk | Documentation}
* @beta
*/
export function useBuyDirectListing(contract: RequiredParam<MarketplaceV3>) {
const activeChainId = useSDKChainId();
@@ -46,7 +46,6 @@ import invariant from "tiny-invariant";
* @param contract - an instance of a {@link NFTContract}
* @param tokenId - the tokenId to look up
* @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}
*/
@@ -90,7 +89,6 @@ export function useNFT<TContract extends NFTContract>(
* @param queryParams - query params to pass to the query for pagination
* @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>(
@@ -132,7 +130,6 @@ export function useNFTs<TContract extends NFTContract>(
*
* @param contract - an instance of a {@link 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}
*/
@@ -181,7 +178,6 @@ export function useTotalCount<TContract extends NFTContract>(
* @param contract - an instance of a {@link NFTContract}
* @param tokenId - required for ERC1155, the tokenId to look up
* @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}
*/
@@ -235,7 +231,6 @@ export function useTotalCirculatingSupply(
* @param ownerWalletAddress - the wallet address to get owned tokens for
* @param queryParams - query params to pass to the query for pagination
* @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}
*/
@@ -283,7 +278,6 @@ export function useOwnedNFTs<TContract extends NFTContract>(
* @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(
contract: RequiredParam<NFTContract>,
@@ -337,7 +331,6 @@ export function useNFTBalance(
* @returns a response object that includes the shared metadata of the contract
* @twfeature ERC721SharedMetadata
* @see {@link https://portal.thirdweb.com/react/react.usesharedmetadata?utm_source=sdk | Documentation}
* @beta
*/
export function useSharedMetadata(
contract: RequiredParam<NFTContract>,
@@ -397,7 +390,6 @@ export function useSharedMetadata(
*
* @param contract - an instance of a {@link NFTContract}
* @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}
*/
@@ -470,7 +462,6 @@ export function useMintNFT<TContract extends NFTContract>(
*
* @param contract - an instance of a {@link Erc1155}
* @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}
*/
@@ -537,7 +528,6 @@ export function useMintNFTSupply(contract: Erc1155) {
*
* @param contract - an instance of a {@link NFTContract}
* @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}
*/
@@ -624,7 +614,6 @@ export function useTransferNFT<TContract extends NFTContract>(
* @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) {
const activeChainId = useSDKChainId();
@@ -681,7 +670,6 @@ export function useAirdropNFT(contract: Erc1155) {
* @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>(
contract: RequiredParam<TContract>,
@@ -57,7 +57,6 @@ type GetAllReturnType<TContract extends ContractWithRoles> = Promise<
* @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>(
contract: RequiredParam<TContract>,
@@ -90,7 +89,6 @@ export function useAllRoleMembers<TContract extends ContractWithRoles>(
* @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>(
contract: RequiredParam<TContract>,
@@ -124,7 +122,6 @@ export function useRoleMembers<TContract extends ContractWithRoles>(
* @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>(
contract: RequiredParam<TContract>,
@@ -187,7 +184,6 @@ export function useIsAddressRole<TContract extends ContractWithRoles>(
* @param contract - an instance of a {@link SmartContract}
* @returns a mutation object that can be used to overwrite all roles on the contract
* @twfeature Permissions
* @beta
*/
export function useSetAllRoleMembers<TContract extends ContractWithRoles>(
contract: RequiredParam<TContract>,
@@ -247,7 +243,6 @@ export function useSetAllRoleMembers<TContract extends ContractWithRoles>(
* @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>(
contract: RequiredParam<TContract>,
@@ -308,7 +303,6 @@ export function useGrantRole<TContract extends ContractWithRoles>(
* @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>(
contract: RequiredParam<TContract>,
@@ -40,7 +40,6 @@ import invariant from "tiny-invariant";
* @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>) {
const contractAddress = contract?.getAddress();
@@ -72,7 +71,6 @@ export function useTokenSupply(contract: RequiredParam<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(
contract: RequiredParam<TokenContract>,
@@ -109,7 +107,6 @@ export function useTokenBalance(
* @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>) {
const contractAddress = contract?.getAddress();
@@ -166,7 +163,6 @@ export function useTokenDecimals(contract: RequiredParam<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(
contract: RequiredParam<TokenContract>,
@@ -239,7 +235,6 @@ export function useMintToken(
* @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>) {
const activeChainId = useSDKChainId();
@@ -301,7 +296,6 @@ export function useClaimToken(contract: RequiredParam<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>) {
const activeChainId = useSDKChainId();
@@ -361,7 +355,6 @@ export function useTransferToken(contract: RequiredParam<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>) {
const activeChainId = useSDKChainId();
@@ -428,7 +421,6 @@ export function useTransferBatchToken(contract: RequiredParam<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>) {
const activeChainId = useSDKChainId();
@@ -3,12 +3,6 @@ import { useWallet } from "../../../core/hooks/wallet-hooks";
import { useThirdwebAuthContext } from "../../contexts/thirdweb-auth";
import { useMemo } from "react";
export { useLogin } from "./useLogin";
export { useLogout } from "./useLogout";
export type { UserWithData } from "./useUser";
export { useUser } from "./useUser";
export { useSwitchAccount } from "./useSwitchAccount";
export function useAuth() {
const wallet = useWallet();
const authConfig = useThirdwebAuthContext();
@@ -14,7 +14,6 @@ import { AUTH_TOKEN_STORAGE_KEY } from "../../../core/constants/auth";
*
* @see {@link https://portal.thirdweb.com/react/react.uselogin?utm_source=sdk | Documentation}
*
* @beta
*/
export function useLogin() {
const queryClient = useQueryClient();
@@ -12,7 +12,6 @@ import invariant from "tiny-invariant";
*
* @see {@link https://portal.thirdweb.com/react/react.uselogout?utm_source=sdk | Documentation}
*
* @beta
*/
export function useLogout() {
const queryClient = useQueryClient();
@@ -10,7 +10,6 @@ import invariant from "tiny-invariant";
*
* @see {@link https://portal.thirdweb.com/react/react.useswitchaccount?utm_source=sdk | Documentation}
*
* @beta
*/
export function useSwitchAccount() {
const queryClient = useQueryClient();
@@ -19,7 +19,6 @@ export interface UserWithData<
*
* @see {@link https://portal.thirdweb.com/react/react.useuser?utm_source=sdk | Documentation}
*
* @beta
*/
export function useUser<
TData extends Json = Json,
@@ -1,12 +0,0 @@
export { useEditionDrop } from "./useEditionDrop";
export { useEdition } from "./useEdition";
export { useNFTDrop } from "./useNFTDrop";
export { useMarketplace } from "./useMarketplace";
export { useNFTCollection } from "./useNFTCollection";
export { usePack } from "./usePack";
export { useToken } from "./useToken";
export { useTokenDrop } from "./useTokenDrop";
export { useVote } from "./useVote";
export { useSplit } from "./useSplit";
export { useMultiwrap } from "./useMultiwrap";
export { useSignatureDrop } from "./useSignatureDrop";
@@ -1,7 +1,5 @@
import { useSDK } from "../useSDK";
export { useStorageUpload } from "./useStorageUpload";
/**
* Get the configured `ThirdwebStorage` instance
* @returns The `storageInterface` configured on the `ThirdwebProvider`
@@ -5,6 +5,10 @@ import { useAddress } from "./wallet";
import { useSupportedChains } from "./useSupportedChains";
import { useWalletContext } from "../../core/providers/thirdweb-wallet-provider";
/**
*
* @internal
*/
export function useENS() {
const address = useAddress();
const supportedChains = useSupportedChains();
@@ -8,7 +8,7 @@ import { useChainId } from "./wallet";
* import { useNetworkMismatch } from "@thirdweb-dev/react"
* ```
*
* @returns `true` if the chainId of the connected wallet is different from the chainId of the network passed into <ThirdwebProvider />
* @returns `true` if the chainId of the connected wallet is different from the chainId of the network passed into `<ThirdwebProvider />`
*
* @see {@link https://portal.thirdweb.com/react/react.usenetworkmismatch?utm_source=sdk | Documentation}
*
+23 -1
View File
@@ -9,13 +9,14 @@ import { useSupportedChains } from "./useSupportedChains";
import { useQuery } from "@tanstack/react-query";
import { Chain, defaultChains } from "@thirdweb-dev/chains";
import { useContext, useMemo } from "react";
import { useSDK } from "./useSDK";
import { useWalletContext } from "../../core/providers/thirdweb-wallet-provider";
/**
* A hook to get the native or (optional) ERC20 token balance of the connected wallet.
*
* @param tokenAddress - the address of the token contract, if empty will use the chain's native token
* @returns the balance of the connected wallet (native or ERC20)
* @beta
*/
export function useBalance(tokenAddress?: ContractAddress) {
const walletAddress = useAddress();
@@ -40,6 +41,27 @@ export function useBalance(tokenAddress?: ContractAddress) {
);
}
/**
* Get the native token balance of a wallet address on the `activeChain` network set in the `ThirdwebProvider`
*
* @param walletAddress - the address of the wallet that you want to get the native balance
* @returns the balance of the given wallet address
*/
export function useBalanceForAddress(walletAddress: string) {
invariant(walletAddress, "wallet address is not provided");
const { activeChain } = useWalletContext();
const chainId = activeChain.chainId;
const sdk = useSDK();
const cacheKey = useMemo(() => {
return cacheKeys.wallet.balance(chainId, walletAddress);
}, [chainId, walletAddress]);
return useQuery(cacheKey, async () => {
invariant(sdk, "SDK is not initialized");
return await sdk.getBalance(walletAddress);
});
}
/**
* @internal
*/
+23 -23
View File
@@ -23,6 +23,7 @@ export {
export { useNetwork } from "../core/hooks/useNetwork";
export { useWalletContext } from "../core/providers/thirdweb-wallet-provider";
export { usePersonalWalletAddress } from "./hooks/usePersonalWalletAddress";
export { useWalletConnectHandler } from "../core/providers/thirdweb-wallet-provider";
// connected wallet hooks
export {
@@ -32,6 +33,7 @@ export {
useChainId,
useActiveChain,
useChain,
useBalanceForAddress,
} from "./hooks/wallet";
// Utilities and Others
@@ -217,32 +219,30 @@ export {
// thirdweb hooks (work as long as at least `<ThirdwebSdkProvider>` is used)
// auth hooks
export {
useLogin,
useLogout,
useUser,
useAuth,
useSwitchAccount,
} from "./hooks/auth";
export type { UserWithData } from "./hooks/auth";
export { useAuth } from "./hooks/auth/useAuth";
export { useLogin } from "./hooks/auth/useLogin";
export { useLogout } from "./hooks/auth/useLogout";
export { useUser } from "./hooks/auth/useUser";
export { useSwitchAccount } from "./hooks/auth/useSwitchAccount";
export type { UserWithData } from "./hooks/auth/useUser";
// contract hooks
export {
useEditionDrop,
useEdition,
useNFTDrop,
useMarketplace,
useNFTCollection,
usePack,
useToken,
useTokenDrop,
useVote,
useSplit,
useMultiwrap,
useSignatureDrop,
} from "./hooks/contracts";
export { useEditionDrop } from "./hooks/contracts/useEditionDrop";
export { useEdition } from "./hooks/contracts/useEdition";
export { useNFTDrop } from "./hooks/contracts/useNFTDrop";
export { useMarketplace } from "./hooks/contracts/useMarketplace";
export { useNFTCollection } from "./hooks/contracts/useNFTCollection";
export { usePack } from "./hooks/contracts/usePack";
export { useToken } from "./hooks/contracts/useToken";
export { useTokenDrop } from "./hooks/contracts/useTokenDrop";
export { useVote } from "./hooks/contracts/useVote";
export { useSplit } from "./hooks/contracts/useSplit";
export { useMultiwrap } from "./hooks/contracts/useMultiwrap";
export { useSignatureDrop } from "./hooks/contracts/useSignatureDrop";
export { useStorageUpload, useStorage } from "./hooks/storage";
export { useStorage } from "./hooks/storage/useStorage";
export { useStorageUpload } from "./hooks/storage/useStorageUpload";
export { useNetworkMismatch } from "./hooks/useNetworkMismatch";
export { useReadonlySDK } from "./hooks/useReadonlySDK";
export { useSigner } from "./hooks/useSigner";
@@ -152,23 +152,47 @@ const WrappedThirdwebSDKProvider = <TChains extends Chain[]>({
};
/**
* A basic wrapper around the Thirdweb SDK.
* The `ThirdwebSDKProvider` is used when you want to provide your own wallet connection logic and just use the thirdweb SDK to interact with smart contracts and the blockchain.
* This means you can use everything in the SDK except for wallet connection-related components and hooks. if you need those please use the `ThirdwebProvider` instead.
*
* You can use this in order to be able to pass a provider & signer directly to the SDK.
* `ThirdwebSDKProvider` allows you to set a provider & signer to the Thirdweb SDK.
*
* @remarks Utilizing this provider will mean hooks for wallet management are not available, if you need those please use the {@link ThirdwebProvider} instead.
* @example
* Wrap your app in the ThirdwebSDKProvider to access the SDK’s functionality from anywhere in your app.
*
* ```tsx
* import { ThirdwebSDKProvider } from "@thirdweb-dev/react";
* import { ethers } from "ethers";
*
* // Example shows how to get the signer from the injected provider ( wallet extension )
* function Example() {
* return (
* <ThirdwebSDKProvider
* activeChain="ethereum"
* clientId="YOUR_CLIENT_ID"
* signer={new ethers.providers.Web3Provider(window.ethereum).getSigner()}
* >
* <App />
* </ThirdwebSDKProvider>
* )
* }
* ```
*
* @public
*/
export const ThirdwebSDKProvider = <TChains extends Chain[]>({
signer,
children,
queryClient,
supportedChains: _supportedChains,
activeChain,
clientId,
...restProps
}: React.PropsWithChildren<ThirdwebSDKProviderProps<TChains>>) => {
export const ThirdwebSDKProvider = <TChains extends Chain[]>(
props: React.PropsWithChildren<ThirdwebSDKProviderProps<TChains>>,
) => {
const {
signer,
children,
queryClient,
supportedChains: _supportedChains,
activeChain,
clientId,
...restProps
} = props;
if (!clientId) {
checkClientIdOrSecretKey(
"No API key. Please provide a clientId. It is required to access thirdweb's services. You can create a key at https://thirdweb.com/create-api-key",
+85 -10
View File
@@ -8,29 +8,97 @@ import type { Signer } from "ethers";
export interface ThirdwebSDKProviderProps<TChains extends Chain[]>
extends QueryClientProviderProps {
/**
* Chains to support. If not provided, will default to the chains supported by the SDK.
* An array of chains supported by your app.
* There are 1000+ chains available in the `@thirdweb-dev/chains` package. You can import the chain you want and pass it to the `supportedChains` prop in an array.
*
* If not provided, it will default to the default supported chains supported by the thirdweb SDK.
*
* @example
* ```tsx
* import { Ethereum, Polygon } from "@thirdweb-dev/chains";
*
* function Example() {
* return (
* <ThirdwebSDKProvider supportedChains={[ Ethereum, Polygon ]} activeChain={Ethereum}>
* <App />
* </ThirdwebSDKProvider>
* )
* }
* ```
*/
supportedChains?: TChains;
// a possible signer - optional, defaults to undefined
/**
* A signer is an abstraction of an Ethereum Account, which can be used to sign messages and initiate transactions.
*
* Since the ThirdwebSDKProvider is used when you want to provide your own wallet connection logic, you will need to provide a signer prop to inform the SDK of the wallet you want to use to sign transactions.
*
* Libraries such as ethers.js, web3.js, wagmi, etc. all provide ways to get a signer.
*
* To use this signer with the SDK, pass it to the `signer` prop. If the signer is connected, the SDK will use this wallet to sign transactions for all write operations on the blockchain.
*/
signer?: Signer;
/**
* The {@link SDKOptions | Thirdweb SDK Options} to pass to the thirdweb SDK
* comes with sensible defaults
* The thirdweb SDK Options to pass to the thirdweb SDK which includes Gas settings, gasless transactions, RPC configuration, and more.
*
* This Overrides any of the default values for the SDK. If not provided, it uses sensible defaults.
*/
sdkOptions?: Omit<SDKOptions, "chains">;
/**
* The storage interface to use with the sdk.
* Override the default [Storage](https://portal.thirdweb.com/storage) interface used by the SDK.
*
* It allows you to create an instance of `ThirdwebStorage` with your own customized config, and pass it to the SDK.
*
* *This requires the `@thirdweb-dev/storage` package to be installed.*
*
* @example
* ```tsx
* import { ThirdwebSDKProvider } from "@thirdweb-dev/react";
* import {
* ThirdwebStorage,
* StorageDownloader,
* IpfsUploader,
* } from "@thirdweb-dev/storage";
*
* // Configure a custom ThirdwebStorage instance
* const gatewayUrls = {
* "ipfs://": [
* "https://gateway.ipfscdn.io/ipfs/",
* "https://cloudflare-ipfs.com/ipfs/",
* "https://ipfs.io/ipfs/",
* ],
* };
* const downloader = new StorageDownloader();
* const uploader = new IpfsUploader();
* const storage = new ThirdwebStorage({ uploader, downloader, gatewayUrls });
*
* // Provide the custom storage instance to the SDK
* function MyApp() {
* return (
* <ThirdwebSDKProvider
* storageInterface={storage}
* >
* <YourApp />
* </ThirdwebSDKProvider>
* );
* }
* ```
*/
storageInterface?: IThirdwebStorage;
/**
* The configuration used for thirdweb auth usage. Enables users to login
* to backends with their wallet.
* The configuration object for setting up [Auth](https://portal.thirdweb.com/auth); allowing users to sign in with their wallet.
*/
authConfig?: ThirdwebAuthConfig;
/**
* The network to use for the SDK.
* The activeChain prop determines which chain you want your app to be operating on.
*
* There are 1000+ chains available in the `@thirdweb-dev/chains` package. Import the chain you want and pass it to the `activeChain` prop.
*
* You can override the imported object or pass a custom chain object with required properties.
*/
activeChain?:
| TChains[number]["chainId"]
@@ -43,9 +111,16 @@ export interface ThirdwebSDKProviderProps<TChains extends Chain[]>
| (string & {})
| Chain;
// client Id for thirdweb services
/**
* The clientId prop is required to use the thirdweb infrastructure services with the SDK.
*
* You can get a client ID by creating an API key on [thirdweb dashboard](https://thirdweb.com/dashboard/settings/api-keys)
*/
clientId?: string;
// pass in a secret key when doing server side rendering
/**
* secretKey for thirdweb services
* This is only required if server side rendering is being used.
*/
secretKey?: string;
}
+12 -19
View File
@@ -54,20 +54,17 @@ export type Chain = {
/**
* A wallet address.
* @beta
*/
export type WalletAddress = AddressOrEns;
/**
* A contract address.
* @beta
*/
export type ContractAddress = AddressOrEns;
/**
* The parameters to pass to the mint and transfer functions.
*
* @beta
*/
export type TokenParams = {
to: WalletAddress;
@@ -77,7 +74,6 @@ export type TokenParams = {
/**
* The parameters to pass to the burn function.
*
* @beta
*/
export type TokenBurnParams = {
amount: Amount;
@@ -91,7 +87,6 @@ export type TokenBurnParams = {
* ```javascript
* const { contract } = useContract("{{contract_address}}");
* ```
* @beta
*/
export type NFTContract =
| NFTCollection
@@ -106,19 +101,16 @@ export type NFTContract =
* ```javascript
* const { contract } = useContract("{{contract_address}}");
* ```
* @beta
*/
export type TokenContract = TokenDrop | Token | SmartContract | null;
/**
* Possible NFT contract types.
* @beta
*/
export type Erc721OrErc1155 = Erc721 | Erc1155;
/**
* The params to pass to `useTransferNFT`.
* @beta
*/
export type TransferNFTParams = {
to: WalletAddress;
@@ -128,7 +120,6 @@ export type TransferNFTParams = {
/**
* The params to pass to `useTransferBatchNFT`.
* @beta
*/
export type AirdropNFTParams = {
tokenId: BigNumberish;
@@ -137,7 +128,6 @@ export type AirdropNFTParams = {
/**
* The params to pass to `useMintNFTSupply`.
* @beta
*/
export type MintNFTSupplyParams = {
tokenId: BigNumberish;
@@ -148,7 +138,6 @@ export type MintNFTSupplyParams = {
/**
* The params for the {@link useMintNFT} hook mutation.
*
* @beta
*/
export type MintNFTParams = {
metadata: NFTMetadataOrUri;
@@ -159,7 +148,6 @@ export type MintNFTParams = {
/**
* The return type of the {@link useMintNFT} hook.
*
* @beta
*/
export type MintNFTReturnType<TContract> = TContract extends Erc721
? Awaited<ReturnType<Erc721Mintable["to"]>>
@@ -170,7 +158,6 @@ export type MintNFTReturnType<TContract> = TContract extends Erc721
/**
* The params for the {@link useBurnNFT} hook mutation.
*
* @beta
*/
export type BurnNFTParams = { tokenId: BigNumberish; amount?: Amount };
@@ -178,7 +165,6 @@ export type BurnNFTParams = { tokenId: BigNumberish; amount?: Amount };
/**
* The possible DROP contract types.
* @beta
*/
export type DropContract =
| NFTDrop
@@ -190,14 +176,12 @@ export type DropContract =
/**
* The possible revealable contract types.
* @beta
*/
export type RevealableContract = NFTDrop | SignatureDrop | SmartContract | null;
/**
* The params for the {@link useDelayedRevealLazyMint} hook mutation.
*
* @beta
*/
export type DelayedRevealLazyMintInput = {
placeholder: NFTMetadataInput;
@@ -208,7 +192,6 @@ export type DelayedRevealLazyMintInput = {
/**
* The params for the {@link useRevealLazyMint} hook mutation.
*
* @beta
*/
export type RevealLazyMintInput = {
batchId: BigNumberish;
@@ -218,7 +201,6 @@ export type RevealLazyMintInput = {
/**
* The params for the {@link useClaimNFT} hook mutation.
*
* @beta
*/
export type ClaimNFTParams = {
to?: WalletAddress;
@@ -233,7 +215,6 @@ export type ClaimNFTParams = {
/**
* The return type of the {@link useClaimNFT} hook.
*
* @beta
*/
export type ClaimNFTReturnType =
| Awaited<ReturnType<Erc721["claimTo"]>>
@@ -284,6 +265,9 @@ export type ClaimTokenParams = {
// Helpers
/**
* @internal
*/
export function getErcs(contract: RequiredParam<ValidContractInstance | null>) {
return {
erc1155: getErc1155(contract),
@@ -292,6 +276,9 @@ export function getErcs(contract: RequiredParam<ValidContractInstance | null>) {
};
}
/**
* @internal
*/
export function getErc1155(
contract: RequiredParam<ValidContractInstance | null>,
): Erc1155 | undefined {
@@ -308,6 +295,9 @@ export function getErc1155(
return undefined;
}
/**
* @internal
*/
export function getErc721(
contract: RequiredParam<ValidContractInstance | null>,
): Erc721 | undefined {
@@ -324,6 +314,9 @@ export function getErc721(
return undefined;
}
/**
* @internal
*/
export function getErc20(
contract: RequiredParam<ValidContractInstance | null>,
): Erc20 | undefined {
@@ -1,5 +1,8 @@
import { utils } from "ethers";
/**
* @internal
*/
export function shortenString(str: string, extraShort: boolean = true) {
return `${str.substring(0, extraShort ? 4 : 6)}...${str.substring(
str.length - (extraShort ? 3 : 4),
@@ -36,6 +39,9 @@ export function shortenAddress(
}
}
/**
* @internal
*/
export function shortenIfAddress(
address?: string | null | false,
extraShort: boolean = true,
@@ -46,10 +52,16 @@ export function shortenIfAddress(
return address || "";
}
/**
* @internal
*/
export function isEnsName(name: string): boolean {
return name?.endsWith(".eth");
}
/**
* @internal
*/
export function isPossibleEVMAddress(address?: string, ignoreEns?: boolean) {
if (!address) {
return false;
@@ -1,5 +1,9 @@
# @thirdweb-dev/react-native-compat
## 0.4.12
## 0.4.11
## 0.4.10
## 0.4.9
+1 -1
View File
@@ -1,7 +1,7 @@
{
"name": "@thirdweb-dev/react-native-compat",
"description": "Shims for Thirdweb in React Native Projects",
"version": "0.4.10",
"version": "0.4.12",
"author": "thirdweb eng <[email protected]>",
"repository": "https://github.com/thirdweb-dev/js/tree/main/packages/react-native-compat",
"license": "Apache-2.0",
+29
View File
@@ -1,5 +1,34 @@
# @thirdweb-dev/react-native
## 0.4.12
### Patch Changes
- [#1842](https://github.com/thirdweb-dev/js/pull/1842) [`a36c7e83`](https://github.com/thirdweb-dev/js/commit/a36c7e8331744879a169f84e97b66abf0ab44f56) Thanks [@MananTank](https://github.com/MananTank)! - JSDoc improvements
- [#2042](https://github.com/thirdweb-dev/js/pull/2042) [`61c62b3f`](https://github.com/thirdweb-dev/js/commit/61c62b3f07a082ffd7620c949e3bcc6b75c104b5) Thanks [@MananTank](https://github.com/MananTank)! - Improved JSDoc comments and Type exports
- Updated dependencies [[`cfe81b44`](https://github.com/thirdweb-dev/js/commit/cfe81b443205d84e58128b8d7d5f2dc940b12875), [`34546c24`](https://github.com/thirdweb-dev/js/commit/34546c24c74f4e9e1f5e94567ebe1017ad63aea5), [`72c0bb10`](https://github.com/thirdweb-dev/js/commit/72c0bb10d6d765d1679b2b22ac63d85db101b5c4), [`ca618ea0`](https://github.com/thirdweb-dev/js/commit/ca618ea0c9ac5dc4f65cbfbfd39360e4150c72c7), [`aefc4cda`](https://github.com/thirdweb-dev/js/commit/aefc4cda4c4fad81411d3a9485931e28100b5718), [`a36c7e83`](https://github.com/thirdweb-dev/js/commit/a36c7e8331744879a169f84e97b66abf0ab44f56), [`4ae1cd63`](https://github.com/thirdweb-dev/js/commit/4ae1cd63bb7b471cae48a27bf6554c4953c1dc82), [`61c62b3f`](https://github.com/thirdweb-dev/js/commit/61c62b3f07a082ffd7620c949e3bcc6b75c104b5), [`7bb054e4`](https://github.com/thirdweb-dev/js/commit/7bb054e45c75450c8f465809d23eb66371f6ef8e), [`cd87be4a`](https://github.com/thirdweb-dev/js/commit/cd87be4a24a9a3a552fbc4f33da6fcb08b7da88b), [`d20e7898`](https://github.com/thirdweb-dev/js/commit/d20e7898562a3914841522f2e09f88ca37dfdd4b)]:
- @thirdweb-dev/sdk@4.0.19
- @thirdweb-dev/react-core@4.1.12
- @thirdweb-dev/storage@2.0.7
- @thirdweb-dev/wallets@2.1.11
## 0.4.11
### Patch Changes
- [#2025](https://github.com/thirdweb-dev/js/pull/2025) [`97ba1fbd`](https://github.com/thirdweb-dev/js/commit/97ba1fbd42d40d4a2ed5c3680115a147a1fa12f0) Thanks [@iketw](https://github.com/iketw)! - Adds version header to ews calls
- [#2016](https://github.com/thirdweb-dev/js/pull/2016) [`94559129`](https://github.com/thirdweb-dev/js/commit/9455912932c71f3ef9b67461bf5604f1ea1f71e8) Thanks [@iketw](https://github.com/iketw)! - Share WalletConnectHandler between React and RN to support wallets as receivers
- Updated dependencies [[`e79b2935`](https://github.com/thirdweb-dev/js/commit/e79b293562bbcf4af6fbcb4829b2acb4cb3e2cb4), [`8c2d4e5e`](https://github.com/thirdweb-dev/js/commit/8c2d4e5ea7c38b3efa4d8d94c9822a92d271e59b), [`b0ecfd2d`](https://github.com/thirdweb-dev/js/commit/b0ecfd2d8d5cda33dc8f5ea2d20119cb901a0bcb), [`a27b10c5`](https://github.com/thirdweb-dev/js/commit/a27b10c5c3400500ef0138069acc550b3a07ffc6), [`d28097f5`](https://github.com/thirdweb-dev/js/commit/d28097f508739cdbd6625e09c2ed0fe25a922c0f), [`94559129`](https://github.com/thirdweb-dev/js/commit/9455912932c71f3ef9b67461bf5604f1ea1f71e8), [`b8332500`](https://github.com/thirdweb-dev/js/commit/b833250053320c8608109053f5cffe2dc96ce70a), [`8bf3be88`](https://github.com/thirdweb-dev/js/commit/8bf3be88be051178a7142618c4371d2f2ef26271), [`b02fb91a`](https://github.com/thirdweb-dev/js/commit/b02fb91a548a3f66f7677ced24be9397e0f9a7ba), [`f93bd325`](https://github.com/thirdweb-dev/js/commit/f93bd325e119381ddc3380a5ea43fe63fbcf42c0), [`2861dff1`](https://github.com/thirdweb-dev/js/commit/2861dff1f013b5150314fdaccaeadddbcf0d21c9), [`61b6a002`](https://github.com/thirdweb-dev/js/commit/61b6a00214716454222e67fe5fdb47edba391070), [`28fc3736`](https://github.com/thirdweb-dev/js/commit/28fc3736aa30c89690084aa2c62556c183796352), [`50749662`](https://github.com/thirdweb-dev/js/commit/507496627bcd77b49bb027b24996a31c57e04819), [`b3394277`](https://github.com/thirdweb-dev/js/commit/b3394277c77e4af130151111e056e27a28ac893a), [`06805217`](https://github.com/thirdweb-dev/js/commit/06805217c26de203a57c21246acba22def8a78fa), [`2b4f1c8e`](https://github.com/thirdweb-dev/js/commit/2b4f1c8e55de091100fb5279887bcb19ea31d38c), [`4c488aa3`](https://github.com/thirdweb-dev/js/commit/4c488aa31f6fadc13759ff60f30230b929feb314)]:
- @thirdweb-dev/react-core@4.1.11
- @thirdweb-dev/wallets@2.1.10
- @thirdweb-dev/sdk@4.0.18
- @thirdweb-dev/chains@0.1.60
- @thirdweb-dev/storage@2.0.6
## 0.4.10
### Patch Changes
+3 -3
View File
@@ -1,6 +1,6 @@
{
"name": "@thirdweb-dev/react-native",
"version": "0.4.10",
"version": "0.4.12",
"repository": "https://github.com/thirdweb-dev/js/tree/main/packages/react-native",
"author": "thirdweb eng <[email protected]>",
"license": "Apache-2.0",
@@ -17,7 +17,7 @@
"clean": "rm -rf dist/",
"build": "tsc",
"push": "yalc push",
"typedoc": "rimraf typedoc && node ./scripts/typedoc.js"
"typedoc": "node scripts/typedoc.mjs"
},
"keywords": [
"react-native",
@@ -83,7 +83,7 @@
"react-native-safe-area-context": "4.7.4",
"react-native-webview": "12.1.0",
"rimraf": "^3.0.2",
"typedoc": "^0.25.2",
"typedoc-gen": "workspace:*",
"typescript": "^5.1.6"
},
"optionalDependencies": {
-38
View File
@@ -1,38 +0,0 @@
// eslint-disable-next-line @typescript-eslint/no-var-requires
const TypeDoc = require("typedoc");
async function main() {
// Application.bootstrap also exists, which will not load plugins
// Also accepts an array of option readers if you want to disable
// TypeDoc's tsconfig.json/package.json/typedoc.json option readers
const app = await TypeDoc.Application.bootstrapWithPlugins({
entryPoints: ["src/index.ts"],
excludeInternal: true,
externalPattern: [
"**/node_modules/**",
"**/packages/sdk/**",
"**/packages/wallets/**",
"**/packages/chains/**",
],
exclude: [
"**/node_modules/**",
"**/packages/sdk/**",
"**/packages/wallets/**",
"**/packages/chains/**",
],
});
const project = await app.convert();
if (project) {
// Project may not have converted correctly
const outputDir = "typedoc/";
// Rendered docs
await app.generateDocs(project, outputDir);
// Alternatively generate JSON output
await app.generateJson(project, outputDir + "/documentation.json");
}
}
main();
+13
View File
@@ -0,0 +1,13 @@
// @ts-check
import { typedoc } from "typedoc-gen";
typedoc({
entryPoints: ["src/index.ts"],
exclude: [
"**/packages/sdk/**",
"**/packages/wallets/**",
"**/packages/react-core/**",
"**/packages/chains/**",
],
output: "both", // TODO: change this to 'json' when old portal is fully migrated to new portal
});
@@ -33,7 +33,9 @@ export class AsyncLocalStorage implements IAsyncStorage {
);
}
}
/**
* @internal
*/
export class LocalStorage implements SyncStorage {
name: string;
asyncStorage: MMKV;
@@ -71,6 +73,8 @@ export class noopStorage implements IAsyncStorage {
}
/**
* @internal
*
* Returns a new instance of AsyncLocalStorage
*
* @param name - Name to namespace the storage with
@@ -81,6 +85,8 @@ export function createAsyncLocalStorage(name: string) {
}
/**
* @internal
*
* Returns a new instance of LocalStorage
*
* @param name - Name to namespace the storage with
@@ -29,6 +29,7 @@ export class SecureStorage implements ISecureStorage {
}
/**
* @internal
* Returns a new instance of SecureStorage implemented by Expo SecureStore
*
* @param name - Name to namespace the storage with
@@ -5,10 +5,10 @@ import {
TW_UPLOAD_SERVER_URL,
} from "@thirdweb-dev/storage";
import { IpfsUploaderOptions, UploadDataValue } from "./types";
import * as Application from "expo-application";
import { Platform } from "react-native";
import { appBundleId, packageVersion } from "../../evm/utils/version";
import { BUNDLE_ID_HEADER } from "../../evm/constants/headers";
const APP_BUNDLE_ID = Application.applicationId;
const METADATA_NAME = "Storage React Native SDK";
export class IpfsUploader implements IStorageUploader<IpfsUploadBatchOptions> {
@@ -39,9 +39,7 @@ export class IpfsUploader implements IStorageUploader<IpfsUploadBatchOptions> {
keyvalues: { ...options?.metadata },
};
// this is on purpose because we can't import package.json as a module as it is outside rootDir
// eslint-disable-next-line @typescript-eslint/no-var-requires
const { version, name: packageName } = require("../../../package.json");
const { version, name: packageName } = packageVersion;
const platform = `react-native-${Platform.OS}`;
if ("uri" in data[0] && "type" in data[0] && "name" in data[0]) {
@@ -143,7 +141,7 @@ export class IpfsUploader implements IStorageUploader<IpfsUploadBatchOptions> {
});
xhr.open("POST", `${TW_UPLOAD_SERVER_URL}/ipfs/upload`);
xhr.setRequestHeader("x-bundle-id", APP_BUNDLE_ID || ""); // only empty on web
xhr.setRequestHeader(BUNDLE_ID_HEADER, appBundleId || ""); // only empty on web
if (this.clientId) {
xhr.setRequestHeader("x-client-id", this.clientId);
}
@@ -168,7 +166,7 @@ export class IpfsUploader implements IStorageUploader<IpfsUploadBatchOptions> {
{
method: "POST",
headers: {
"x-bundle-id": APP_BUNDLE_ID || "", // only empty on web
[BUNDLE_ID_HEADER]: appBundleId || "", // only empty on web
...(this.clientId ? { "x-client-id": this.clientId } : {}),
"Content-Type": "application/json",
"x-sdk-version": version,
@@ -36,7 +36,7 @@ export type ConnectWalletProps = {
/**
* Hide option to request testnet funds for testnets in dropdown
*
* @defaultValue false
* The default is `false`
*/
hideTestnetFaucet?: boolean;
@@ -47,7 +47,7 @@ export type ConnectWalletProps = {
* Please, note that if you support multiple networks in your app this prop should
* be set to `false` to allow users to switch between networks.
*
* @defaultValue false
* The default is `false`
*/
switchToActiveChain?: boolean;
@@ -73,7 +73,7 @@ export type ConnectWalletProps = {
/**
* Hide the "switch to Personal wallet" option in the wallet modal which is shown when wallet is connected to a Smart Wallet
*
* @defaultValue false
* The default is `false`
*/
hideSwitchToPersonalWallet?: boolean;
} & ConnectWalletButtonProps;
@@ -1,4 +1,4 @@
import { useWallet } from "@thirdweb-dev/react-core";
import { useWallet, useWalletConnectHandler } from "@thirdweb-dev/react-core";
import { useCallback, useEffect, useRef, useState } from "react";
import Box from "../base/Box";
import BaseButton from "../base/BaseButton";
@@ -13,7 +13,6 @@ import WalletConnectIcon from "../../assets/wallet-connect";
import QrCodeIcon from "../../assets/qr-code";
import { QRCodeScan } from "./QRCodeScan";
import { useLocale } from "../../providers/ui-context-provider";
import { useWalletConnectHandler } from "../../providers/context-provider";
const ConnectAppField = ({
onConnectAppTriggered,
@@ -1,4 +1,4 @@
import { useWallet } from "@thirdweb-dev/react-core";
import { useWallet, useWalletConnectHandler } from "@thirdweb-dev/react-core";
import Box from "../base/Box";
import BaseButton from "../base/BaseButton";
import Text from "../base/Text";
@@ -7,7 +7,6 @@ import {
WalletConnectSessionProposalModal,
} from "../../utils/modalTypes";
import { useLocale, useModalState } from "../../providers/ui-context-provider";
import { useWalletConnectHandler } from "../../providers/context-provider";
export const SessionProposalModal = () => {
const l = useLocale();
@@ -1,4 +1,9 @@
import { shortenAddress, useChain, useWallet } from "@thirdweb-dev/react-core";
import {
shortenAddress,
useChain,
useWallet,
useWalletConnectHandler,
} from "@thirdweb-dev/react-core";
import Box from "../base/Box";
import BaseButton from "../base/BaseButton";
import Text from "../base/Text";
@@ -10,7 +15,6 @@ import {
} from "../../utils/modalTypes";
import { ActivityIndicator, Dimensions } from "react-native";
import { useCallback, useState } from "react";
import { useWalletConnectHandler } from "../../providers/context-provider";
const getTitle = (method: string) => {
switch (method) {
@@ -39,7 +39,7 @@ export type ConnectWalletDetailsProps = {
/**
* Hide the "switch to Personal wallet" option in the dropdown which is shown when wallet is connected to a Smart Wallet
*
* @defaultValue false
* The default is `false`
*/
hideSwitchToPersonalWallet?: boolean;
};
@@ -13,12 +13,14 @@ export type ConnectWalletButtonProps = {
theme?: ThemeProviderProps["theme"];
/**
* Set a custom title for the button
* @defaultValue "Connect Wallet"
*
* The default is `"Connect Wallet"`
*/
buttonTitle?: string;
/**
* Set a custom title for the Connect Wallet modal
* @defaultValue "Choose your wallet"
*
* The default is `"Choose your wallet"`
*/
modalTitle?: string;
/**
@@ -20,7 +20,7 @@ import { ActivityIndicator, StyleSheet } from "react-native";
import invariant from "tiny-invariant";
import { useGlobalTheme, useUIContext } from "../providers/ui-context-provider";
type ActionFn = (contract: SmartContract) => Promise<any>;
export type ActionFn = (contract: SmartContract) => Promise<any>;
interface Web3ButtonProps<TActionFn extends ActionFn> {
contractAddress: `0x${string}` | `${string}.eth` | string;
@@ -1,5 +1,8 @@
import { StyleSheet, View } from "react-native";
/**
* @internal
*/
export const ActiveDot = ({
width = 28,
height = 28,

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