Compare commits

...
Author SHA1 Message Date
github-actions[bot]GitHubgithub-actions[bot] <github-actions[bot]@users.noreply.github.com>
4e5eb13b82 Version Packages (#1266)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2023-06-29 19:11:03 -07:00
2b11353909 [SDK] remove ethers/lib/utils dependency (#1277)
Co-authored-by: Jonas Daniels <[email protected]>
2023-06-30 01:10:47 +00:00
Manan TankandGitHub 5882091eab [chains] Fix RPC override issue (#1276) 2023-06-29 22:27:59 +00:00
Mariano FuentesandGitHub 8fc5f204b0 Fix bugs with cli deploy (#1274) 2023-06-29 18:11:25 +00:00
nkrishangandGitHub c953571588 mass rename smart-wallet -> account (#1271) 2023-06-29 12:26:48 +00:00
Manan TankandGitHub edcd22d612 [react-core] Add autoConnectTimeout (#1273) 2023-06-29 12:19:43 +00:00
iketwandGitHub 0d5503aae9 [RN] Only handle link if coinbase in supportedWallets (#1270) 2023-06-28 21:56:12 +00:00
Manan TankandGitHub 998e521733 [wallets, react] expose advancedOptions in paper (#1269) 2023-06-28 21:08:34 +00:00
FirekeeperandGitHub be606dd3c9 [paper] set signer null on disconnect (#1267) 2023-06-28 17:26:35 +00:00
d794b8f9f4 update: Add zerion to useInstalledWallets (#1210)
Co-authored-by: Jonas Daniels <[email protected]>
2023-06-28 16:50:36 +00:00
YashandGitHub 21b29490d4 [SDK] Tests for new publish+deploy flow (#1244) 2023-06-28 16:23:36 +00:00
github-actions[bot]GitHubgithub-actions[bot] <github-actions[bot]@users.noreply.github.com>
7b1d62b323 Version Packages (#1262)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2023-06-28 08:07:57 -07:00
Manan TankandGitHub e78da6b36c [wallets] Wallet connect v2 corrections (#1265) 2023-06-28 13:34:42 +00:00
ed711c8cb2 [Wallets] Use min number of chains if user passes more than 50 chains (#1263)
Co-authored-by: Manan Tank <[email protected]>
2023-06-28 12:04:28 +00:00
05a7495a13 [Wallets] handle passing RPC urls to SmartWallet config (#1255)
Co-authored-by: Jonas Daniels <[email protected]>
2023-06-28 07:20:04 +00:00
github-actions[bot]GitHubgithub-actions[bot] <github-actions[bot]@users.noreply.github.com>
11bb053246 Version Packages (#1261)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2023-06-27 22:16:09 -07:00
efb3546ec8 [Wallets] Fix. Respect dev passed chains. (#1259)
Co-authored-by: Manan Tank <[email protected]>
2023-06-28 05:07:24 +00:00
github-actions[bot]GitHubgithub-actions[bot] <github-actions[bot]@users.noreply.github.com>
0a5d2b5bdd Version Packages (#1247)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2023-06-27 17:36:21 -07:00
FirekeeperandGitHub ac3e019cd1 [unity-js-bridge] wcv2 and paper support (#1256) 2023-06-28 00:28:16 +00:00
3c5dc4804a Migration to WalletConnectV2 (#1215)
Co-authored-by: Manan Tank <[email protected]>
2023-06-28 00:04:07 +00:00
Joaquim VergesandGitHub 30ac3aef84 [SDK] Handle base64 encoded NFTs (#1254) 2023-06-27 23:31:52 +00:00
YashandGitHub ef4cb09219 [SDK] Any EVM deployments: update EIP155 error substrings (#1249) 2023-06-27 22:55:16 +00:00
ad7dae3b16 [React] Stop using useActiveChain deprecated hook (#1253)
Co-authored-by: Nacho Iacovino <[email protected]>
2023-06-27 21:50:28 +00:00
0fd8aa04a9 fix(chains): Celo Alfajores Explorer URL (#1243)
Co-authored-by: Joaquim Verges <[email protected]>
Co-authored-by: Jonas Daniels <[email protected]>
2023-06-27 19:37:23 +00:00
620e89dc25 [React] Export smart wallet hooks (#1248)
Co-authored-by: Jonas Daniels <[email protected]>
2023-06-27 19:01:45 +00:00
Nacho IacovinoandGitHub 86d33c4b3e [React] Fix marketplace v3 cache keys (#1251) 2023-06-27 18:06:30 +00:00
Adam MajmudarandGitHub d43f6171d9 Allow setting login payload duration (#1250) 2023-06-27 18:04:33 +00:00
06ca1c407d [SDK] Add tests for SmartWallet and SmartWalletFactory; add smartWallet.setAccess and smartWallet.isAdmin (#1227)
Co-authored-by: Nacho Iacovino <[email protected]>
Co-authored-by: Nacho Iacovino <[email protected]>
2023-06-27 01:57:33 +00:00
github-actions[bot]GitHubgithub-actions[bot] <github-actions[bot]@users.noreply.github.com>
c578a437cc Version Packages (#1234)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2023-06-26 18:42:04 -07:00
Danny FridayandGitHub 0c5b03b8d6 Remove ipfs-2 gateway (#1246) 2023-06-27 00:31:06 +00:00
nkrishangandGitHub 9af346eead [SDK][React] SmartWalletFactory: use getAllAccounts instead of event logs of AccountCreated to get accounts of a factory (#1241) 2023-06-26 17:51:22 +00:00
iketwandGitHub d9fb134ad4 [RN] better design for custom details button (#1245) 2023-06-26 15:25:19 +00:00
Mariano FuentesandGitHub 1c7264b403 Fix install bug (#1240) 2023-06-24 00:59:52 +00:00
Joaquim VergesandGitHub a140ee99b2 add zora extension in auto docs (#1239) 2023-06-24 00:23:07 +00:00
iketwandGitHub 6e1fe6e582 [React] Add Rainbow and Trust wallets connection hooks (#1238) 2023-06-23 23:06:59 +00:00
iketwandGitHub 536b0f1240 [React] Add Rainbow Wallet (#1237) 2023-06-23 22:11:40 +00:00
b626782b0e [React/Wallets] Add Trust Wallet (#1236)
Co-authored-by: Manan Tank <[email protected]>
2023-06-23 21:23:13 +00:00
Nacho IacovinoandGitHub 1d76334dd3 [React] Fix required type for address on useSmartWalletsForAddress (#1235) 2023-06-23 18:44:00 +00:00
nkrishangandGitHub d498c79a91 [SDK] Fix smartWalletFactory.getAllWallets (#1233) 2023-06-23 18:20:03 +00:00
github-actions[bot]GitHubgithub-actions[bot] <github-actions[bot]@users.noreply.github.com>
736b45ac8e Version Packages (#1211)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2023-06-23 10:33:33 -07:00
Nacho IacovinoandGitHub b5e1d3bb2b [React] Add useSmartWalletsForAddress hook (#1230) 2023-06-23 12:00:37 +00:00
Jonas DanielsandGitHub 6816219ac1 [chains] - add/update chains (#1229) 2023-06-22 23:57:03 +00:00
Nacho IacovinoandGitHub 48065bcd91 [SDK] Accept string in shared metadata (#1222) 2023-06-22 23:39:34 +00:00
Manan TankandGitHub a388d07a3d Add Magic Connect support (#1226) 2023-06-22 20:28:04 +00:00
Nacho IacovinoandGitHub 483e2b9109 [SDK] Fix namespace for platformFees (#1225) 2023-06-22 19:24:04 +00:00
Nacho IacovinoandGitHub f7f4f20737 [React + SDK] Better return type for get shared metadata (#1224) 2023-06-22 18:46:57 +00:00
Joaquim VergesandGitHub 6aa6f7e0bd [SDK] fix maxId in getAll for Open Edition contracts (#1223) 2023-06-22 03:42:24 +00:00
d4d9550713 [React + SDK] Add get shared metadata (#1218)
Co-authored-by: Jonas Daniels <[email protected]>
2023-06-22 01:56:48 +00:00
iketwandGitHub 3cb298ac4b [RN/Wallets] Fix Coinbase Wallet connection rejection error (#1220) 2023-06-22 00:29:24 +00:00
Joaquim VergesandGitHub c747670b98 [SDK] Fix nextTokenIdToMint for open edition (#1219) 2023-06-22 00:08:55 +00:00
Joaquim VergesandGitHub c08e6ba988 [SDK] Fix claim counts for Open Edition contracts (#1216) 2023-06-21 23:49:27 +00:00
Manan TankandGitHub 60fb188943 [react] Fix safeWallet tree-shaking (#1212) 2023-06-21 20:17:13 +00:00
iketwandGitHub 1ce8558df4 [Wallets] Fix switchChain in WCV2 connector (#1214) 2023-06-21 16:28:16 +00:00
iketwandGitHub 3ce5f9a0c3 [RC/Wallets] Improve error messages for wc and auth (#1213) 2023-06-21 15:45:03 +00:00
3d615a62d0 [SDK] Code abstraction; import/export updates (#1188)
Co-authored-by: Manan Tank <[email protected]>
2023-06-21 14:40:12 +00:00
github-actions[bot]GitHubgithub-actions[bot] <github-actions[bot]@users.noreply.github.com>
6ce366f59e Version Packages (#1190)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2023-06-20 23:26:22 -07:00
8a2d92046a [SDK] update polygon gas station url (#1208)
Co-authored-by: Joaquim Verges <[email protected]>
2023-06-21 06:04:20 +00:00
YashandGitHub 45ae105ed3 [SDK] Minimal forwarders for ZKSync (#1191) 2023-06-21 05:53:53 +00:00
Jonas DanielsandGitHub 23d61cfeff [SDK] - open edition feature (#1193) 2023-06-21 02:33:58 +00:00
nkrishangandGitHub 990c665de9 Feature detection and SDK class for Smart Wallet. (#1134) 2023-06-20 23:46:01 +00:00
Joaquim VergesandGitHub 08eaefcf0b [SDK] shortcut getAllOwners for NFT drops to only check claimed (#1203) 2023-06-20 23:40:36 +00:00
Manan TankandGitHub 3d62278aba [wallets, react, react-core] Add eslint-plugin-better-tree-shaking (#1206) 2023-06-20 20:53:22 +00:00
iketwandGitHub 3ab7d1e975 [ReactNative] Export more components for easy development (#1205) 2023-06-20 19:19:21 +00:00
Manan TankandGitHub c6f44722f9 [sdk] Add eslint-plugin-better-tree-shaking (#1199) 2023-06-20 15:06:30 +00:00
Joaquim VergesandGitHub e0ce4a3759 [SDK] Zora claim extension (#1197) 2023-06-20 04:47:02 +00:00
iketwandGitHub 04416e7c93 [RN] Return connection Promise for better error handling (#1202) 2023-06-19 20:30:41 +00:00
Manan TankandGitHub 5166b24a48 [readme] Update install command for windows in contributing.md (#1200) 2023-06-19 17:29:33 +00:00
Manan TankandGitHub bb7ca20e49 [sdk] Better PURE annotations for tree-shaking (#1198) 2023-06-17 19:34:08 +00:00
Jonas DanielsandGitHub f41f1a2958 [chains] - fix arbitrum goerli (#1192) 2023-06-16 21:55:21 +00:00
Manan TankandGitHub d9b7360d1d [sdk] Refactor erc-721.ts, erc-1155.ts, erc-20.ts (#1196) 2023-06-16 21:36:38 +00:00
Manan TankandGitHub 8941b22682 [sdk] Add PURE annotations for improved tree-shaking (#1189) 2023-06-16 13:51:28 +00:00
github-actions[bot]andGitHub f61beace93 Version Packages (#1158) 2023-06-15 19:49:18 -07:00
Adam MajmudarandGitHub 08403dd9da Expose useSwitchAccount (#1187) 2023-06-16 00:35:25 +00:00
Nacho IacovinoandGitHub 36f3191f3e [React] Fix useIsSmartWalletDeployed cache (#1186) 2023-06-15 23:46:24 +00:00
YashandGitHub 7d2a446ece [SDK] Expose salt input for deployments (#1155) 2023-06-15 21:20:56 +00:00
ab575726fe [unity-js-bridge] add allChains to unity bridge wallet instantiation (#1176)
Co-authored-by: Jonas Daniels <[email protected]>
2023-06-15 18:20:02 +00:00
Jonas DanielsandGitHub 8e28b0f5e7 [chains] add zora mainnet (#1185) 2023-06-15 17:57:43 +00:00
Mariano FuentesandGitHub e7f1ce43b0 Detector typo fix (#1184) 2023-06-15 17:46:31 +00:00
Mariano FuentesandGitHub 224b7241dc Bugfix for python detectors (#1183) 2023-06-15 17:20:41 +00:00
iketwandGitHub a0eee749a2 Ike/demo (#1182) 2023-06-15 14:21:13 +00:00
iketwandGitHub 20bbad1abc [SDK] Switch warn to debug console message (#1181) 2023-06-15 12:53:15 +00:00
YashandGitHub a430160e6b [SDK] Util for deterministic direct deployments (#1162) 2023-06-14 23:56:58 +00:00
Mariano FuentesandGitHub 5745481584 Revert Checking for pip and pip3 (#1178) 2023-06-14 21:22:29 +00:00
Mariano FuentesandGitHub afdedb1feb [Install] - Handle pip and pip3 install automatically (#1177) 2023-06-14 20:30:58 +00:00
Manan TankandGitHub 01293857fa [sdk] Tree shaking improvements (#1175) 2023-06-14 17:25:02 +00:00
Nacho IacovinoandGitHub ecdcf82cf3 [React] Add password data-test (#1172) 2023-06-14 00:29:46 +00:00
12b07aad9a [SDK] Fix circular deps issue between metadata-resolver <-> core/sdk (#1167)
Co-authored-by: Joaquim Verges <[email protected]>
2023-06-14 00:20:01 +00:00
Mariano FuentesandGitHub c0e2c9457f Bug fixes for install (#1171) 2023-06-13 23:56:37 +00:00
654b8ab351 [REACT] Add Zerion Wallet (#1160)
Co-authored-by: iketw <[email protected]>
Co-authored-by: Manan Tank <[email protected]>
2023-06-13 17:02:26 +00:00
a5578abf66 [REACT] Reduce circular dependencies (#1164)
Co-authored-by: Joaquim Verges <[email protected]>
2023-06-13 10:37:30 +00:00
Nacho IacovinoandGitHub 541e488d5b [React] Add data-address to ConnectWallet (#1166) 2023-06-13 00:42:46 +00:00
Adam MajmudarandGitHub 088f2567f6 [Auth] Include chain id in login payload (#1165) 2023-06-13 00:29:31 +00:00
Nacho IacovinoandGitHub 6803e8ca09 [React] Add data-test to ConnectWallet (#1163) 2023-06-12 23:41:44 +00:00
Adam MajmudarandGitHub d60e544a24 [Auth] Update with refresh interval and active account (#1150) 2023-06-12 22:52:08 +00:00
cc20f93e17 Update Install Command (#1074)
Co-authored-by: Jonas Daniels <[email protected]>
2023-06-12 17:47:43 +00:00
329bccec4b [react, wallets] Add Frame wallet (#1000)
Co-authored-by: Jonas Daniels <[email protected]>
Co-authored-by: Manan Tank <[email protected]>
Co-authored-by: ikethirdweb <[email protected]>
2023-06-12 14:06:24 +00:00
02d55a063e fix: always use latest CLI version to prevent build failures in CI (#1154)
Co-authored-by: Jonas Daniels <[email protected]>
2023-06-09 19:09:23 +00:00
github-actions[bot]GitHubgithub-actions[bot] <github-actions[bot]@users.noreply.github.com>
73bee2bed1 Version Packages (#1121)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2023-06-08 22:35:52 -06:00
2a443365bd [Smart Wallet] Fix Celo support (#1153)
Co-authored-by: Joaquim Verges <[email protected]>
2023-06-09 04:22:15 +00:00
Manan TankandGitHub ed47fd5310 [sdk] Reduce circular dependencies (#1152) 2023-06-08 22:01:35 +00:00
Manan TankandGitHub 2a0294d8e6 [react] Fix wrong balance in ConnectWallet (#1151) 2023-06-08 20:09:52 +00:00
Manan TankandGitHub 65ecf072eb [react] Improve rendering of long Network List in ConnectWallet Modal (#1149) 2023-06-08 19:10:45 +00:00
Manan TankandGitHub 9ce3eb6aad [react-core] Remove WalletConfig.config, Remove circular dependency (#1144) 2023-06-08 09:43:16 +00:00
Nacho IacovinoandGitHub e32faeb57a [React] Fix return type for useIsSmartWalletDeployed (#1146) 2023-06-08 00:38:59 +00:00
Nacho IacovinoandGitHub 6a19426200 [React] Add useIsSmartWalletDeployed hook (#1145) 2023-06-07 23:40:11 +00:00
iketwandGitHub 2bcad4b716 [ReactNative] make links optional (#1143) 2023-06-07 20:57:22 +00:00
FirekeeperandGitHub 193de1e9d8 [unity-js-bridge] WebGL SW Multi EOA Support (#1142) 2023-06-07 09:35:17 +00:00
645b0303cc feat: create Taro Testnet (#1138)
Co-authored-by: Jonas Daniels <[email protected]>
2023-06-07 05:22:09 +00:00
YashandGitHub 16232de9ea [Chains] Update chains (#1140) 2023-06-06 23:36:12 +00:00
Joaquim VergesandGitHub 52056edfd6 [SDK] Fix contract.call documentation (#1139) 2023-06-06 19:53:17 +00:00
iketwandGitHub dec4c4a8cf [ReactNative] Exports WCV1 and V2 abstract classes to facilitate creation of wallet connect based wallets (#1137) 2023-06-06 17:22:58 +00:00
Manan TankandGitHub 9a015a23cd [react-core] Logout user on account switch (#1136) 2023-06-06 10:39:43 +00:00
iketwandGitHub 15ef4779e0 [ReactNative] Exports base UI components for external use (#1135) 2023-06-05 22:22:37 +00:00
FirekeeperandGitHub b8498c2a10 [unity-js-bridge] sw lw persistence webgl & export (#1133) 2023-06-05 16:38:48 +00:00
56f85e57df [sdk] Reduce circular dependencies (#1124)
Co-authored-by: Joaquim Verges <[email protected]>
2023-06-05 15:22:02 +00:00
Manan TankandGitHub 197a6838f6 [wallets] Clear localWallet.ethersWallet when calling localWallet.disconnect (#1132) 2023-06-05 15:10:59 +00:00
YashandGitHub 3bf7f37593 [SDK] Fix handling of standard contracts (#1131) 2023-06-03 23:30:21 +00:00
YashandGitHub 6803c3e97c Fix any evm deploy: when not autoFactory (#1129) 2023-06-03 02:43:58 +00:00
YashandGitHub b672860397 [SDK] Enable ZKSync mainnet deployments (#1128) 2023-06-03 01:02:58 +00:00
Adam MajmudarandGitHub ab14cd8938 [Auth] Add expiration date to cookies (#1126) 2023-06-02 23:28:39 +00:00
YashandGitHub 8687d6ac3a Add missing exports (#1127) 2023-06-02 23:27:30 +00:00
YashandGitHub a5f16b6dc5 Check standard deploy type (#1125) 2023-06-02 22:19:18 +00:00
6a91b6a025 [SDK] Publish flow updates (#1016)
Co-authored-by: Nacho Iacovino <[email protected]>
2023-06-02 20:59:45 +00:00
Nacho IacovinoandGitHub 54cfd6d891 [React] Update useCreateSmartWallet (#1123) 2023-06-02 19:56:14 +00:00
Manan TankandGitHub 522453fd56 [sdk] Reduce circular dependencies (#1120) 2023-06-02 18:01:57 +00:00
Nacho IacovinoandGitHub 0cba69ca40 Export smart wallet factory hooks (#1119) 2023-06-02 17:48:15 +00:00
github-actions[bot]GitHubgithub-actions[bot] <github-actions[bot]@users.noreply.github.com>
96b43b8488 Version Packages (#1106)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2023-06-02 10:33:56 -07:00
b4c9515937 Add Smart Wallet Factory hooks (#1115)
Co-authored-by: Krishang <[email protected]>
2023-06-02 16:19:24 +00:00
Manan TankandGitHub 9b20fc9ad2 [wallets, react] Remove chain restriction in paper wallet, Fix email validation in paper & magic (#1118) 2023-06-02 15:54:48 +00:00
Manan TankandGitHub 51bbd3d1bc [sdk] Reduce circular dependencies (#1117) 2023-06-02 13:58:26 +00:00
Manan TankandGitHub 356f7aa643 [react] Fix missing connectionStatus on localWallet connection, Metamask QR connection (#1116) 2023-06-02 12:35:14 +00:00
Adam MajmudarandGitHub 2283e71aca [Auth] Switch to server-side payload generation (#1114) 2023-06-02 00:38:35 +00:00
iketwandGitHub 90ab9ab031 [RN] fix lint warning (#1113) 2023-06-01 22:13:39 +00:00
Manan TankandGitHub 6aee041343 [sdk] Reduce circular dependencies (#1112) 2023-06-01 22:07:36 +00:00
Adam MajmudarandGitHub 21627c03d1 Update auth expiration (#1111) 2023-06-01 18:48:26 +00:00
ce36322b38 [SDK] Added getNonce() & updated airdrop (#1104)
Co-authored-by: Joaquim Verges <[email protected]>
Co-authored-by: Jonas Daniels <[email protected]>
2023-06-01 17:43:55 +00:00
nkrishangandGitHub 564eaccf48 Smart Wallet Factory class for creating accounts and fetching data about them. (#1095) 2023-06-01 14:31:32 +00:00
Manan TankandGitHub aa9e952cb5 [sdk] Reduce circular dependencies (#1110) 2023-06-01 14:28:30 +00:00
Manan TankandGitHub 85a6162137 [sdk] Reduce circular deps (#1109) 2023-06-01 13:30:29 +00:00
Manan TankandGitHub e93aa70ef0 [sdk] Reduce circular deps (#1108) 2023-06-01 12:43:31 +00:00
Manan TankandGitHub 6e86123403 [sdk] Reduce circular dependencies (#1107) 2023-06-01 12:13:22 +00:00
Manan TankandGitHub c60658ed8c [sdk] Reduce circular deps (#1105) 2023-06-01 11:29:45 +00:00
github-actions[bot]GitHubgithub-actions[bot] <github-actions[bot]@users.noreply.github.com>
df5f016d31 Version Packages (#1099)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2023-05-31 16:52:33 -07:00
iketwandGitHub 89102b0c89 [RN] fix bug after scanning wc uri (#1103) 2023-05-31 23:44:10 +00:00
Adam MajmudarandGitHub e1846c4469 [Auth] Default invalid before state to 5 minutes ago (#1101) 2023-05-31 22:05:16 +00:00
Manan TankandGitHub cc56037e64 [sdk] Reduce circular dependencies (#1102) 2023-05-31 21:23:03 +00:00
Manan TankandGitHub 23d90b3e77 [sdk] Reduce circular dependencies (#1100) 2023-05-31 19:58:48 +00:00
Manan TankandGitHub 6745078947 add sideEffects: false on auth, storage, unity-js-bridge (#1098) 2023-05-31 18:52:05 +00:00
github-actions[bot]GitHubgithub-actions[bot] <github-actions[bot]@users.noreply.github.com>
55d1f5c550 Version Packages (#1045)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2023-05-31 11:43:16 -07:00
iketwandGitHub b694f3c300 [Readme] fix react native title (#1097) 2023-05-31 17:58:09 +00:00
iketwandGitHub 217879ace1 [ReactNative] Make magic deps and camera deps optional (#1096) 2023-05-31 17:52:20 +00:00
Adam MajmudarandGitHub 35984362b0 [Wallets] Update gnosis safe signMessage function (#1087) 2023-05-31 00:47:23 +00:00
YashandGitHub bdabbef71a Fix create2 factory deployment (#1094) 2023-05-30 23:30:33 +00:00
Manan TankandGitHub 2f1df0b535 [sdk] reduce circular deps (#1093) 2023-05-30 22:16:06 +00:00
Joaquim VergesandGitHub da57610802 [SDK] return data from DeployTransaction.simulate() (#1091) 2023-05-30 21:51:46 +00:00
iketwandGitHub 119e785461 [RN] fix supportedWallets type (#1092) 2023-05-30 21:27:41 +00:00
Joaquim VergesandGitHub 5f1e6abb39 [Chains] add base-goerli as default chain (#1090) 2023-05-30 21:11:09 +00:00
Manan TankandGitHub 59206233e1 [sdk] reduce circular deps (#1089) 2023-05-30 20:52:34 +00:00
iketwandGitHub 4f99ccb49c [ReactNative/Wallets] Add sendTransaction for WCV1 handler (#1088) 2023-05-30 18:43:33 +00:00
Manan TankandGitHub 292a321a95 [wallets] Fix disconnect on switchChain in MetaMask (#1085) 2023-05-30 16:30:03 +00:00
Manan TankandGitHub 74f898ac28 [react] Fix Local wallet backup (#1084) 2023-05-30 15:20:32 +00:00
iketwandGitHub 431445e3c6 [Wallets] Fix bug getting account address (#1083) 2023-05-30 12:36:04 +00:00
fd7111d544 [react, react-core] add theme in WalletConfig.selectUI (#1068)
Co-authored-by: ikethirdweb <[email protected]>
2023-05-30 12:05:56 +00:00
ciaranightingaleandGitHub f3b2ae3f6d [SDK] add data to getAddress for Smart Wallet (#1073) 2023-05-27 01:17:39 +00:00
Manan TankandGitHub f5ae61aeba useSwitchChain instead of wallet.switchChain (#1078) 2023-05-26 21:50:37 +00:00
iketwandGitHub 37e0af5753 [ReactNative] Auto-connect sw with one EOA (#1077) 2023-05-26 20:56:37 +00:00
Manan TankandGitHub a034b0321f [sdk] reduce circular deps (#1075) 2023-05-26 18:48:28 +00:00
iketwandGitHub 8ffc597c06 [ReactNative] implement send_transaction for wcv2 (#1076) 2023-05-26 18:38:03 +00:00
Manan TankandGitHub 8eecf4c2d5 [sdk] reduce circular deps (#1072) 2023-05-26 10:54:33 +00:00
32cc54423e [CLI] De-duplicate addresses on generate (#1066)
Co-authored-by: Joaquim Verges <[email protected]>
2023-05-26 00:12:14 +00:00
iketwandGitHub bd86661f54 [ReactNative] Sign in with email/phone number (#1065) 2023-05-25 23:10:55 +00:00
Manan TankandGitHub ee4c7de25c [sdk] reduce circular deps (#1071) 2023-05-25 22:05:33 +00:00
Manan TankandGitHub c68a4bdd1f [sdk] reduce cyclic deps (#1069) 2023-05-25 20:24:39 +00:00
Joaquim VergesandGitHub 68fa1896f7 [Wallets] Expose smartWallet.deploy() and smartWallet.isDeployed() (#1070) 2023-05-25 19:17:23 +00:00
Manan TankandGitHub e21bdd0328 [react-core] return wallet instance from useConnect (#1067) 2023-05-25 16:37:31 +00:00
Manan TankandGitHub c85810eee3 [wallets] don't cache signer (#1064) 2023-05-24 23:17:20 +00:00
YashandGitHub d24a6146d8 [CLI] Add support for ZKSync (#1003) 2023-05-24 23:07:51 +00:00
FirekeeperandGitHub e94b7fdfed [thirdweb-unity-bridge] smart wallet webgl (#1063) 2023-05-24 22:39:44 +00:00
Joaquim VergesandGitHub 98efd090f6 [SDK] add transferFrom for 1155 contracts (#1062) 2023-05-24 21:24:21 +00:00
Joaquim VergesandGitHub 189daf0280 [SDK] add transferFrom for erc721 (#1061) 2023-05-24 19:54:29 +00:00
Joaquim VergesandGitHub f7b352a585 [SDK] Expose getSignerAddress on tx object (#1060) 2023-05-24 17:57:58 +00:00
iketwandGitHub 56ad0867bd [RN] Use walletConfig's selectUI to render Choose your Wallet item (#1059) 2023-05-24 14:16:00 +00:00
Manan TankandGitHub d565100614 [sdk] reduce cyclic deps (#1055) 2023-05-23 16:34:33 +00:00
Manan TankandGitHub edaa5b2e6c [sdk] reduce cyclic deps (#1054) 2023-05-23 14:08:45 +00:00
iketwandGitHub 77123a9a5a [ReactNative] Adds WC qrcode support for Connect an App (#1052) 2023-05-23 00:26:39 +00:00
Manan TankandGitHub 6fd10f94b4 [chains] Fix tree shaking in thirdweb-dev/chains package (#1047) 2023-05-22 22:42:05 +00:00
Nacho IacovinoandGitHub afae0873b0 [JS] Fix check for erc1155 claim conditions (#1051) 2023-05-22 21:55:20 +00:00
Nacho IacovinoandGitHub 4a1d758110 [JS] Fix creator phase check (#1049) 2023-05-22 21:09:21 +00:00
YashandGitHub c6e74ef0b0 [SDK] Allow overrides for read actions (#1043) 2023-05-22 19:43:30 +00:00
iketwandGitHub bba9767adf [ReactNative-Wallets] Enables SmartWallet to connect to an app, with implementation in React Native (#1010) 2023-05-22 17:58:12 +00:00
Manan TankandGitHub a5e509438d [react-core] do not re-throw auto-connect error (#1044) 2023-05-22 16:14:35 +00:00
Manan TankandGitHub f461290216 [react] Fix smart wallet config type (#1042) 2023-05-22 16:01:24 +00:00
github-actions[bot]GitHubgithub-actions[bot] <github-actions[bot]@users.noreply.github.com>
8febea4db0 Version Packages (#1041)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2023-05-21 13:45:57 -07:00
Joaquim VergesandGitHub 30e5593dd1 [Wallets] deploy smart wallet contract before signing messages (#1040) 2023-05-20 21:01:38 +00:00
github-actions[bot]GitHubgithub-actions[bot] <github-actions[bot]@users.noreply.github.com>
f253909710 Version Packages (#1032)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2023-05-19 14:39:22 -07:00
iketwandGitHub 99ffa8ce3b [RN] Single global modal (#1025) 2023-05-19 18:09:49 +00:00
Adam MajmudarandGitHub 61212d27d7 [React] Add ability to configure gatewayUrl on MediaRenderer (#1030) 2023-05-19 18:09:28 +00:00
FirekeeperandGitHub 58df84f8ba [unity-js-bridge] MagicLink bridge integration (#1038) 2023-05-19 17:49:18 +00:00
Joaquim VergesandGitHub b6f48e1088 [Wallets] Expose overrideable paymasterAPI in SmartWalletConfig (#1034) 2023-05-19 17:48:51 +00:00
Jonas DanielsandGitHub d51230441a [storage] - update ipfs gateway and add additional fallbacks (#1037) 2023-05-19 16:54:40 +00:00
MykandGitHub 01e83b6f13 update sepolia weth to an address that does not have a mint function (#1036) 2023-05-19 16:43:04 +00:00
Joaquim VergesandGitHub 907d97bede [Chains] Added faucet for optimism goerli (#1033) 2023-05-19 03:52:48 +00:00
Jonas DanielsandGitHub 3c8c5d56f2 Jd/add xrp ledger (#1031) 2023-05-19 03:19:26 +00:00
github-actions[bot]GitHubgithub-actions[bot] <github-actions[bot]@users.noreply.github.com>
7faab1c09b Version Packages (#994)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2023-05-18 11:15:53 -07:00
8bb0a6d874 fix: set ethers@^5 version in peerDeps of @thirdweb/contracts-js (#921)
Co-authored-by: Joaquim Verges <[email protected]>
2023-05-18 04:06:46 +00:00
b1ede491fb [REACT] Add React hook useBuyDirectListing() (#993)
Co-authored-by: Fran Ros <[email protected]>
Co-authored-by: Jarrod Watts <[email protected]>
Co-authored-by: Joaquim Verges <[email protected]>
2023-05-18 04:00:01 +00:00
f674da7b44 Add sepolia as a supported chain for WETH (#987)
Co-authored-by: Nacho Iacovino <[email protected]>
Co-authored-by: Jarrod Watts <[email protected]>
Co-authored-by: Joaquim Verges <[email protected]>
2023-05-18 03:49:27 +00:00
iketwandGitHub 748e3e7856 [RN] clear unusued fields (#1026) 2023-05-17 23:40:59 +00:00
738c0ec6c4 [wallets] Update paper sdk and add new supported chains (#1022)
Co-authored-by: Manan Tank <[email protected]>
2023-05-17 22:35:09 +00:00
Joaquim VergesandGitHub e4356e76d1 [SDK] Update error message when contracts ABIs cannot be resolved, with url to import contract (#1021) 2023-05-17 17:27:38 +00:00
iketwandGitHub 8a0dd070d4 [RN] Adds modalTitle, buttonTitle and detailsButton props to the ConnectWallet component (#1019) 2023-05-17 00:06:39 +00:00
Manan TankandGitHub 39bd963015 Render input for magic and paper wallet using selectUI API (#1015) 2023-05-16 22:41:48 +00:00
84fc3b6fab Add detect-project command to CLI (#926)
Co-authored-by: Jonas Daniels <[email protected]>
2023-05-16 20:05:59 +00:00
Adam MajmudarandGitHub 49ec2d171e [SDK] Add a prepareGaslessRequest function (#983) 2023-05-15 21:27:57 +00:00
Adam MajmudarandGitHub b92aabe450 [Auth] Expose request on user hook (#1013) 2023-05-15 21:21:40 +00:00
Manan TankandGitHub 470e0a144d [react-core] rename ConfiguredWallet -> WalletConfig (#1011) 2023-05-15 19:29:22 +00:00
Manan TankandGitHub b6bb73b34c [react, react-core] Various connect Wallet changes (#1006) 2023-05-15 18:20:45 +00:00
YashandGitHub 9886c858d9 [SDK] Add support for ZKSync Era Testnet (#988) 2023-05-12 22:24:31 +00:00
iketwandGitHub 25de32d45d [RN] Update wcv2 props (#1005) 2023-05-12 15:35:55 +00:00
Manan TankandGitHub d495a4b8a6 [react, wallets] Expose Web3Modal QRModalOptions in WalletConnect v2 (#1002) 2023-05-12 14:53:06 +00:00
Manan TankandGitHub 2b0fb9d22f [react] Fix flaky Coinbase QR code scan (#1001) 2023-05-11 15:12:39 +00:00
e9b69300d1 [SDK] Display plugins on router release page (#713)
Co-authored-by: Jonas Daniels <[email protected]>
2023-05-10 23:18:40 +00:00
Manan TankandGitHub 4f8438335e [react] Connect Wallet improvements (#998) 2023-05-10 22:42:45 +00:00
Manan TankandGitHub c3645c451b Various Connect Wallet changes (#996) 2023-05-10 18:49:58 +00:00
iketwandGitHub 482f6d1b58 [ReactNative] update export wallet modal UI (#995) 2023-05-10 18:05:05 +00:00
Joaquim VergesandGitHub 799d98e862 [SDK] switch type of abi in SmartContract to Abi (#997) 2023-05-10 17:51:01 +00:00
iketwandGitHub 8db78299ea [React/RN] rename useThirdwebWallet to useProviderContext (#989) 2023-05-10 11:44:04 +00:00
github-actions[bot]GitHubgithub-actions[bot] <github-actions[bot]@users.noreply.github.com>
1119f63a47 Version Packages (#991)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2023-05-09 23:23:42 -07:00
Joaquim VergesandGitHub 32908b7683 [SDK] rename extension detection functions (#992) 2023-05-10 06:03:26 +00:00
Joaquim VergesandGitHub 6a4aab0b8a [Wallets] LocalWalletNode fix + cleanup SmartWallet logs (#990) 2023-05-10 05:15:22 +00:00
github-actions[bot]GitHubgithub-actions[bot] <github-actions[bot]@users.noreply.github.com>
e87d166d2b Version Packages (#965)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2023-05-09 20:46:05 -07:00
Adam MajmudarandGitHub af4b535637 [SDK] Add chunked snapshot input parsing (#986) 2023-05-09 04:29:35 +00:00
Joaquim VergesandGitHub a2df187bc1 [Sol] Fix token deployement (#985) 2023-05-09 03:30:41 +00:00
iketwandGitHub ea0f9479a3 [ReactNative] setup support for custom wallets UI with LocalWallet as example (#981) 2023-05-08 19:49:19 +00:00
Manan TankandGitHub bbe329a656 [react, react-core] Wallet UI API refactor (#979) 2023-05-08 15:09:46 +00:00
Joaquim VergesandGitHub 05ebbc15a0 [Wallets] export ethers and pkey wallets (#978) 2023-05-05 23:50:07 +00:00
Manan TankandGitHub 93bd57337b Connect wallet Modal UI fixes (#977) 2023-05-05 22:29:36 +00:00
Adam MajmudarandGitHub eb521d240a [SDK] Expose raw error on transaction error (#976) 2023-05-05 19:46:57 +00:00
Adam MajmudarandGitHub aa9b6acc3f [SDK] Add ability to resolveAddress (#975) 2023-05-05 19:16:33 +00:00
iketwandGitHub 4ca557ae4a [Wallet] Rename Connector to WagmiConnector (#974) 2023-05-05 16:41:52 +00:00
Manan TankandGitHub 93bdec061d [wallets] various fixes (#973) 2023-05-04 21:41:28 +00:00
Joaquim VergesandGitHub c6e9406808 Update wallets README (#971) 2023-05-04 19:00:34 +00:00
iketwandGitHub 12ad7fead2 [ReactNative] Remove gap for pre-71 RN apps (#969) 2023-05-04 17:23:21 +00:00
Manan TankandGitHub 7d7685e3fa [wallets] Magic and Local wallet improvements (#967) 2023-05-04 17:12:09 +00:00
iketwandGitHub 9640e0731f [ReactNative] Add guest mode warnings (#968) 2023-05-04 16:59:45 +00:00
Manan TankandGitHub 87021cee45 [react] Connect wallet UI improvements (#966) 2023-05-04 16:45:24 +00:00
Jarrod WattsandGitHub 5305b42db5 [REACT, SDK] - Use generated contract's types for useContract Read & Write (#954) 2023-05-04 14:42:15 +00:00
Manan TankandGitHub c8ba96fa00 [react] Wallet UI API refactor, and other fixes (#962) 2023-05-04 11:56:12 +00:00
nkrishangandGitHub 89c821d49e Build deployArgs.json only on deploy --dynamic command (#964) 2023-05-04 06:25:12 +00:00
github-actions[bot]GitHubgithub-actions[bot] <github-actions[bot]@users.noreply.github.com>
318b274aae Version Packages (#924)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2023-05-03 21:24:18 -07:00
77f0474b88 [ReactNative] update copy for smart wallet (#963)
Co-authored-by: Manan Tank <[email protected]>
Co-authored-by: Joaquim Verges <[email protected]>
2023-05-03 19:15:33 +00:00
5ffb1cba03 [REACT] Add onLogout function to ConnectWallet authOptions prop (#960)
Co-authored-by: frog <[email protected]>
2023-05-03 16:07:31 +00:00
YashandGitHub 0bf29745b0 [SDK] GSNv2 Forwarder addresses (#961) 2023-05-03 15:55:30 +00:00
Joaquim VergesandGitHub 00d0d01e61 [SDK] Feature detection for Account and AccountFactory (#959) 2023-05-03 05:51:13 +00:00
Adam MajmudarandGitHub 72b8b9829e [Auth] Add all fields to cookie on logout (#958) 2023-05-03 00:14:29 +00:00
Joaquim VergesandGitHub 26cd91ffe1 [Wallets] update to latest account factory (#953) 2023-05-02 23:24:30 +00:00
1c3a846045 [ReactNative] Update guest mode icon and update learn more link (#957)
Co-authored-by: Manan Tank <[email protected]>
Co-authored-by: Joaquim Verges <[email protected]>
2023-05-02 22:40:44 +00:00
4a69f8c85d [ReactNative] Allow switching between personal wallet and smart wallet (#956)
Co-authored-by: Manan Tank <[email protected]>
Co-authored-by: Joaquim Verges <[email protected]>
2023-05-02 19:44:32 +00:00
Manan TankandGitHub c7c2530c7f [react] Local Wallet UI refactor, various fixes and cleanup (#955) 2023-05-02 17:58:14 +00:00
7012513bc2 [ReactNative] Introducing Smart Wallet (#937)
Co-authored-by: Manan Tank <[email protected]>
Co-authored-by: Joaquim Verges <[email protected]>
2023-05-01 22:58:06 +00:00
YashandGitHub 28b5d1eb6d [SDK] Custom gas-price for Theta testnet and mainnet (#951) 2023-05-01 21:37:15 +00:00
1e9fad779f safe, device wallet, smartWallet autoconnect (#927)
Co-authored-by: Joaquim Verges <[email protected]>
2023-05-01 20:07:25 +00:00
Joaquim VergesandGitHub 7e7a507f03 [Unity] fix unity wallet connect (#950) 2023-05-01 18:48:09 +00:00
Joaquim VergesandGitHub 5a67d5d894 [Wallets] Batch transactions functionality for Smart Wallets (#948) 2023-04-30 21:42:41 +00:00
Joaquim VergesandGitHub fc96e14750 [Wallets] Expose execute functions directly from smart wallet (#947) 2023-04-29 02:05:16 +00:00
YashandGitHub 8f962bc15c [SDK] Add default domain in gasless options (#944) 2023-04-29 01:19:15 +00:00
Joaquim VergesandGitHub f12a80a475 [Wallets] fix default RPC for local wallet providers (#931) 2023-04-29 01:11:57 +00:00
Joaquim VergesandGitHub 0186721bc4 [Wallets] New utils functions for smart wallets (#945) 2023-04-28 23:25:27 +00:00
Manan TankandGitHub 5d67b2807f add magic link wallet and UI (#941) 2023-04-28 21:11:52 +00:00
Joaquim VergesandGitHub 1e4ac67272 [SmartWallet] remove accountIds and allow passing custom factory/account contract definitions (#942) 2023-04-28 17:41:44 +00:00
iketwandGitHub 465d8e2c3d [ReactNative] Make web3button action return a promise (#943) 2023-04-28 15:03:05 +00:00
0xHendrixandGitHub a8b790652c [REACT] Add onLogin callback to ConnectWallet authOptions props (#940) 2023-04-28 03:41:38 +00:00
iketwandGitHub 4828c87691 [ReactNative] Enable copying the address by pressing on it (#936) 2023-04-26 17:46:52 +00:00
iketwandGitHub 45d2ffcf89 [ReactNative] continue as guest (#935) 2023-04-26 15:37:03 +00:00
YashandGitHub bf6df26711 [SDK] Add support for Skale chaos testnet (#932) 2023-04-25 19:56:15 +00:00
Manan TankandGitHub e22e4a47d7 [react] suggest first supportedWallet for getting started (#930) 2023-04-24 12:29:13 +00:00
iketwandGitHub d2c7f6d758 [ReactNativeSDK] Adds Local Wallet (#787) 2023-04-22 04:14:55 +00:00
Joaquim VergesandGitHub 7af99d9a6d [Wallets] Switch to entrypoint v0.6 for Smart Wallet (#929) 2023-04-21 23:01:33 +00:00
YashandGitHub f0279c2288 [SDK] Contract verification utils (#905) 2023-04-21 17:17:10 +00:00
iketwandGitHub 07194b06e5 [RN] Remove select wallet step with one supported wallet (#925) 2023-04-21 14:43:51 +00:00
255c5dcae8 [Wallets] Add accountId handling for SmartWallet (#923)
Co-authored-by: Manan Tank <[email protected]>
2023-04-21 14:15:39 +00:00
8cfb4f38ed [Wallets] Introducing Smart Wallet (#904)
Co-authored-by: Manan Tank <[email protected]>
2023-04-21 05:10:56 +00:00
github-actions[bot]GitHubgithub-actions[bot] <github-actions[bot]@users.noreply.github.com>
7c15913e46 Version Packages (#883)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2023-04-20 21:57:14 -07:00
Adam MajmudarandGitHub 477324ec85 [Auth] Add useAuth back to @thirdweb-dev/react (#922) 2023-04-19 20:05:51 +00:00
c9ee9b32f0 [SDK] Fix error handling for create2 factory deployments (#915)
Co-authored-by: Joaquim Verges <[email protected]>
2023-04-18 23:40:50 +00:00
Manan TankandGitHub 3010d84595 [react] improved autocomplete for imported device wallet (#920) 2023-04-18 21:01:57 +00:00
Manan TankandGitHub 81770647ab [react] improved device wallet password input autocomplete (#919) 2023-04-18 19:14:05 +00:00
Manan TankandGitHub 26644d63b5 Fix Connect Wallet Modal max-width on tablet (#918) 2023-04-18 17:33:01 +00:00
Manan TankandGitHub 09fae984e7 [react] Device wallet and other UI improvements (#917) 2023-04-18 15:57:11 +00:00
iketwandGitHub 0b1f522906 [ReactNative] Improve theming for Web3Button and ConnectWallet (#916) 2023-04-17 21:32:43 +00:00
Manan TankandGitHub ec36df5f75 Add Request Testnet Funds for Localhost (#914) 2023-04-17 11:00:46 +00:00
Manan TankandGitHub c93edc4999 [wallets] paper: add Avalanche (#913) 2023-04-17 09:20:13 +00:00
YashandGitHub 29146e009d [SDK] Fix listing validation for marketplace v2 & v3 (#907) 2023-04-15 01:14:25 +00:00
Adam MajmudarandGitHub ea04edf478 [SDK] Fix StaticJsonBatchRpcProvider (#911) 2023-04-14 23:54:39 +00:00
Joaquim VergesandGitHub c2fec93052 [Wallets] Allow passing any EVMWallet as personal Safe signer (#910) 2023-04-14 23:20:34 +00:00
Manan TankandGitHub d8b54a6f91 [react] add back device wallet UI (#909) 2023-04-14 22:43:30 +00:00
Manan TankandGitHub 664d1cd0dd [wallets] fix dynamic import error of crypto-js on vite (#908) 2023-04-14 20:40:16 +00:00
Manan TankandGitHub 4275c8e739 [wallets] device wallet fixes (#906) 2023-04-14 19:55:30 +00:00
Manan TankandGitHub 82bea3fa10 [wallets] Device Wallet Revamp (#901) 2023-04-14 17:15:30 +00:00
YashandGitHub 8e8ceaa344 [SDK] Update Weth addresses (#902) 2023-04-14 05:12:26 +00:00
Joaquim VergesandGitHub 77224646d5 [SDK] more transaction error parsing (#903) 2023-04-14 05:11:53 +00:00
Adam MajmudarandGitHub 72db2dc3e1 [CLI] Add cleaner messages to thirdweb generate (#894) 2023-04-13 18:29:54 +00:00
Joaquim VergesandGitHub abe88599b6 [SDK] fix gasless open pack (#898) 2023-04-12 22:38:23 +00:00
a6610f1211 Portal Links added to functions (#896)
Co-authored-by: Jonas Daniels <[email protected]>
2023-04-11 23:20:14 +00:00
YashandGitHub bfdd84939d [SDK] Enable MarketplaceV3 deploys on any EVM (#885) 2023-04-11 23:07:10 +00:00
Manan TankandGitHub 06cc1df3b7 Fix supported chains not having activeChain for wallets (#895) 2023-04-11 22:21:07 +00:00
Manan TankandGitHub 4acb2b5561 [react] add switch account for MetaMask (#892) 2023-04-10 21:38:15 +00:00
Adam MajmudarandGitHub 00f4355f1a [SDK] Add ability to batch list on marketplace v3 (#890) 2023-04-10 19:59:55 +00:00
Manan TankandGitHub 430a5f7934 [React] network selector revamp (#887) 2023-04-08 04:34:48 +00:00
iketwandGitHub 51e6b4146e [ReactNative] Fixes Coinbase Wallet Connect for iOS (#886) 2023-04-07 17:29:42 +00:00
iketwandGitHub 49922de9d9 [Core/RN] Implements auth for React Native (#874) 2023-04-07 00:43:56 +00:00
1014 changed files with 87149 additions and 15903 deletions
+6
View File
@@ -59,9 +59,15 @@ To begin:
```
pnpm install
```
If you are on windows, use the `--ignore-scripts` flag
```
pnpm install --ignore-scripts
```
Now you have got the repo on your local machine, and you're ready to start making your changes!
<br/>
### Test Your Changes
We use [yalc](https://github.com/wclr/yalc) to test changes locally.
+4 -1
View File
@@ -16,4 +16,7 @@ public/dist
yalc.lock
build/
playwright-report/
.vscode/
.vscode/
# Artifacts
packages/cli/artifacts/
+8 -8
View File
@@ -20,14 +20,14 @@
## Packages
| Package | Description | Latest Version |
| --------------------------------- | -------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| [/sdk](./packages/sdk) | Best in class web3 SDK for Browser, Node and Mobile apps | <a href="https://www.npmjs.com/package/@thirdweb-dev/sdk"><img src="https://img.shields.io/npm/v/@thirdweb-dev/sdk?color=red&label=npm&logo=npm" alt="npm version"/></a> |
| [/react](./packages/react) | Ultimate collection of React hooks for your web3 apps | <a href="https://www.npmjs.com/package/@thirdweb-dev/react"><img src="https://img.shields.io/npm/v/@thirdweb-dev/react?color=red&label=npm&logo=npm" alt="npm version"/></a> |
| [/react](./packages/react-native) | Ultimate collection of React hooks for your native web3 apps | <a href="https://www.npmjs.com/package/@thirdweb-dev/react-native"><img src="https://img.shields.io/npm/v/@thirdweb-dev/react-native?color=red&label=npm&logo=npm" alt="npm version"/></a> |
| [/auth](./packages/auth) | Best in class wallet authentication for Node backends | <a href="https://www.npmjs.com/package/@thirdweb-dev/auth"><img src="https://img.shields.io/npm/v/@thirdweb-dev/auth?color=red&label=npm&logo=npm" alt="npm version"/></a> |
| [/storage](./packages/storage) | Best in class decentralized storage SDK for Browser and Node | <a href="https://www.npmjs.com/package/@thirdweb-dev/storage"><img src="https://img.shields.io/npm/v/@thirdweb-dev/storage?color=red&label=npm&logo=npm" alt="npm version"/></a> |
| [/cli](./packages/cli) | Publish and deploy smart contracts without dealing with private keys | <a href="https://www.npmjs.com/package/thirdweb"><img src="https://img.shields.io/npm/v/thirdweb?color=red&label=npm&logo=npm" alt="npm version"/></a> |
| Package | Description | Latest Version |
| ---------------------------------------- | -------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| [/sdk](./packages/sdk) | Best in class web3 SDK for Browser, Node and Mobile apps | <a href="https://www.npmjs.com/package/@thirdweb-dev/sdk"><img src="https://img.shields.io/npm/v/@thirdweb-dev/sdk?color=red&label=npm&logo=npm" alt="npm version"/></a> |
| [/react](./packages/react) | Ultimate collection of React hooks for your web3 apps | <a href="https://www.npmjs.com/package/@thirdweb-dev/react"><img src="https://img.shields.io/npm/v/@thirdweb-dev/react?color=red&label=npm&logo=npm" alt="npm version"/></a> |
| [/react-native](./packages/react-native) | Ultimate collection of React hooks for your native mobile web3 apps | <a href="https://www.npmjs.com/package/@thirdweb-dev/react-native"><img src="https://img.shields.io/npm/v/@thirdweb-dev/react-native?color=red&label=npm&logo=npm" alt="npm version"/></a> |
| [/auth](./packages/auth) | Best in class wallet authentication for Node backends | <a href="https://www.npmjs.com/package/@thirdweb-dev/auth"><img src="https://img.shields.io/npm/v/@thirdweb-dev/auth?color=red&label=npm&logo=npm" alt="npm version"/></a> |
| [/storage](./packages/storage) | Best in class decentralized storage SDK for Browser and Node | <a href="https://www.npmjs.com/package/@thirdweb-dev/storage"><img src="https://img.shields.io/npm/v/@thirdweb-dev/storage?color=red&label=npm&logo=npm" alt="npm version"/></a> |
| [/cli](./packages/cli) | Publish and deploy smart contracts without dealing with private keys | <a href="https://www.npmjs.com/package/thirdweb"><img src="https://img.shields.io/npm/v/thirdweb?color=red&label=npm&logo=npm" alt="npm version"/></a> |
## Documentation
+2 -2
View File
@@ -43,10 +43,10 @@
"@playwright/test": "1.31.2",
"@trivago/prettier-plugin-sort-imports": "^4.1.1",
"@types/node": "^18.15.11",
"eslint": "^8.37.0",
"eslint": "^8.42.0",
"mocha": "^10.2.0",
"prettier": "^2.8.7",
"turbo": "^1.8.8",
"turbo": "^1.9.8",
"yalc": "1.0.0-pre.53"
},
"manypkg": {
+191
View File
@@ -1,5 +1,196 @@
# @thirdweb-dev/auth
## 3.2.7
### Patch Changes
- Updated dependencies [[`2b113539`](https://github.com/thirdweb-dev/js/commit/2b113539098384f910b3c4d54e1fde9d35a6f053), [`be606dd3`](https://github.com/thirdweb-dev/js/commit/be606dd3c93c1514834c1d970e864d7f949a07ab), [`998e5217`](https://github.com/thirdweb-dev/js/commit/998e521733efd6a67e42f9bf0beab5fbdccf08ae)]:
- @thirdweb-dev/wallets@1.0.3
## 3.2.6
### Patch Changes
- Updated dependencies [[`ed711c8c`](https://github.com/thirdweb-dev/js/commit/ed711c8cb2ed6a0deb1b2a5eeec06df1d4edc5e8), [`05a7495a`](https://github.com/thirdweb-dev/js/commit/05a7495a132aabab5f48abbdb80a468ff6f65df8), [`e78da6b3`](https://github.com/thirdweb-dev/js/commit/e78da6b36cfa6d954234820563201bf760186ed1)]:
- @thirdweb-dev/wallets@1.0.2
## 3.2.5
### Patch Changes
- Updated dependencies [[`efb3546e`](https://github.com/thirdweb-dev/js/commit/efb3546ec8268156be00301af28b9d83ecd5ab08)]:
- @thirdweb-dev/wallets@1.0.1
## 3.2.4
### Patch Changes
- [#1250](https://github.com/thirdweb-dev/js/pull/1250) [`d43f6171`](https://github.com/thirdweb-dev/js/commit/d43f6171d910e31b748b171b012174390aac3fff) Thanks [@adam-maj](https://github.com/adam-maj)! - Allow setting login payload validity duration
- Updated dependencies [[`ac3e019c`](https://github.com/thirdweb-dev/js/commit/ac3e019cd1776dbdb0d06b213420ad17586f678e), [`3c5dc480`](https://github.com/thirdweb-dev/js/commit/3c5dc4804abc56b933ec45e9e1da11eb182296cc)]:
- @thirdweb-dev/wallets@1.0.0
## 3.2.3
### Patch Changes
- Updated dependencies [[`536b0f12`](https://github.com/thirdweb-dev/js/commit/536b0f1240ab446aac22cf547a4e09e73ee6bf7b), [`b626782b`](https://github.com/thirdweb-dev/js/commit/b626782b0e8c6b76673472d3aee1c802dfb11b5f)]:
- @thirdweb-dev/wallets@0.3.3
## 3.2.2
### Patch Changes
- Updated dependencies [[`3cb298ac`](https://github.com/thirdweb-dev/js/commit/3cb298ac4b04d295899b5ac77c7fc5869ec2f5f2), [`3ce5f9a0`](https://github.com/thirdweb-dev/js/commit/3ce5f9a0c3fc7e99b5abf691a87048ab8475f6b1), [`a388d07a`](https://github.com/thirdweb-dev/js/commit/a388d07a3d449e56dc53fed9600931022f4a15e1), [`1ce8558d`](https://github.com/thirdweb-dev/js/commit/1ce8558df47186bcba5ee8564fdb04583bf115dd), [`60fb1889`](https://github.com/thirdweb-dev/js/commit/60fb18894372f14d9cd815fa9a239926d31bb273)]:
- @thirdweb-dev/wallets@0.3.2
## 3.2.1
### Patch Changes
- Updated dependencies [[`3d62278a`](https://github.com/thirdweb-dev/js/commit/3d62278aba79101ae1158fb726d6ddfed505c939)]:
- @thirdweb-dev/wallets@0.3.1
## 3.2.0
### Minor Changes
- [#1150](https://github.com/thirdweb-dev/js/pull/1150) [`d60e544a`](https://github.com/thirdweb-dev/js/commit/d60e544a240b93312743e62096ee2dc77d0c1bd1) Thanks [@adam-maj](https://github.com/adam-maj)! - Add support for multipled logged in accounts and token refreshing to auth
### Patch Changes
- [#1165](https://github.com/thirdweb-dev/js/pull/1165) [`088f2567`](https://github.com/thirdweb-dev/js/commit/088f2567f615360edd44776b20ae0bedff250f43) Thanks [@adam-maj](https://github.com/adam-maj)! - Include chain id in login payload
- Updated dependencies [[`654b8ab3`](https://github.com/thirdweb-dev/js/commit/654b8ab35184e02127a5a47f05d78606dd5b29ca), [`329bccec`](https://github.com/thirdweb-dev/js/commit/329bccec4b88b02db5bac6c1415158928843376a)]:
- @thirdweb-dev/wallets@0.3.0
## 3.1.1
### Patch Changes
- [#1126](https://github.com/thirdweb-dev/js/pull/1126) [`ab14cd89`](https://github.com/thirdweb-dev/js/commit/ab14cd89385aefad7f32e20a22baa9fce42b98e2) Thanks [@adam-maj](https://github.com/adam-maj)! - Add expiration date to cookie
- Updated dependencies [[`2a443365`](https://github.com/thirdweb-dev/js/commit/2a443365bdc3d47d0f41fc895f70256dcde423f5), [`197a6838`](https://github.com/thirdweb-dev/js/commit/197a6838f69ae8b9ad46524e7c469fc757d0a2cb)]:
- @thirdweb-dev/wallets@0.2.26
## 3.1.0
### Minor Changes
- [#1114](https://github.com/thirdweb-dev/js/pull/1114) [`2283e71a`](https://github.com/thirdweb-dev/js/commit/2283e71acaaf3d15eb2d6121682f1d2a81eec4f3) Thanks [@adam-maj](https://github.com/adam-maj)! - Switch to server-side payload generation
### Patch Changes
- [#1111](https://github.com/thirdweb-dev/js/pull/1111) [`21627c03`](https://github.com/thirdweb-dev/js/commit/21627c03d1bb1658fee19b12d580faa6c7f048d9) Thanks [@adam-maj](https://github.com/adam-maj)! - Update expiration dates for auth
- Updated dependencies [[`9b20fc9a`](https://github.com/thirdweb-dev/js/commit/9b20fc9ad2d303edc31f44fbd2ea3b4dcf35d11e)]:
- @thirdweb-dev/wallets@0.2.25
## 3.0.23
### Patch Changes
- [#1101](https://github.com/thirdweb-dev/js/pull/1101) [`e1846c44`](https://github.com/thirdweb-dev/js/commit/e1846c44696bcb25a6a137d63e117e7d2ce9d979) Thanks [@adam-maj](https://github.com/adam-maj)! - Bump invalid before with 5 minute window
- [#1098](https://github.com/thirdweb-dev/js/pull/1098) [`67450789`](https://github.com/thirdweb-dev/js/commit/67450789473b6008b86453ee4f4c7b99461223a6) Thanks [@MananTank](https://github.com/MananTank)! - add sideEffects: false in package.json
- Updated dependencies []:
- @thirdweb-dev/wallets@0.2.24
## 3.0.22
### Patch Changes
- Updated dependencies [[`bba9767a`](https://github.com/thirdweb-dev/js/commit/bba9767adfe20e41055450b86e4448fcb2119855), [`bd86661f`](https://github.com/thirdweb-dev/js/commit/bd86661f54ca2f1eb09cbae35c704dc79be1b63a), [`68fa1896`](https://github.com/thirdweb-dev/js/commit/68fa1896f75d3514e00cc380924fd8bc623064f0), [`292a321a`](https://github.com/thirdweb-dev/js/commit/292a321a95ed2d847097eed205353dd69eeb8d54), [`f3b2ae3f`](https://github.com/thirdweb-dev/js/commit/f3b2ae3f6d9c66356c521d3b9c2a6c096dbb4b57), [`4f99ccb4`](https://github.com/thirdweb-dev/js/commit/4f99ccb49c584946de709fbc01017611d2828b76), [`c85810ee`](https://github.com/thirdweb-dev/js/commit/c85810eee318b10eee4ada61828adaa51f94ea6c), [`35984362`](https://github.com/thirdweb-dev/js/commit/35984362b0a60e5b9c3d3c9731450a8f47deb1c4)]:
- @thirdweb-dev/wallets@0.2.23
## 3.0.21
### Patch Changes
- Updated dependencies [[`30e5593d`](https://github.com/thirdweb-dev/js/commit/30e5593dd1ce9abd809ad216a1cfce77b897093c)]:
- @thirdweb-dev/wallets@0.2.22
## 3.0.20
### Patch Changes
- Updated dependencies [[`b6f48e10`](https://github.com/thirdweb-dev/js/commit/b6f48e1088b5d36a51103de4afda53179029faaf)]:
- @thirdweb-dev/wallets@0.2.21
## 3.0.19
### Patch Changes
- [#1013](https://github.com/thirdweb-dev/js/pull/1013) [`b92aabe4`](https://github.com/thirdweb-dev/js/commit/b92aabe450f40b248fd1b7533f1d3bc7f8f25288) Thanks [@adam-maj](https://github.com/adam-maj)! - Expose request on onUser hook
- Updated dependencies [[`738c0ec6`](https://github.com/thirdweb-dev/js/commit/738c0ec6c4190aa2252233c1382aed5d982cc7b8), [`d495a4b8`](https://github.com/thirdweb-dev/js/commit/d495a4b8a6e0599e5b4611620f3fded80a411173), [`4f843833`](https://github.com/thirdweb-dev/js/commit/4f8438335e3e3731b67ae271cb34c383832242a0)]:
- @thirdweb-dev/wallets@0.2.20
## 3.0.18
### Patch Changes
- Updated dependencies [[`6a4aab0b`](https://github.com/thirdweb-dev/js/commit/6a4aab0b8a2e0f6ff1b47992a3c1e5426a74f7ff)]:
- @thirdweb-dev/wallets@0.2.19
## 3.0.17
### Patch Changes
- Updated dependencies [[`93bdec06`](https://github.com/thirdweb-dev/js/commit/93bdec061dc05ab133e79f5f739dcae9b5393f53), [`ea0f9479`](https://github.com/thirdweb-dev/js/commit/ea0f9479a38d442201e367fce1234c130228fde6), [`05ebbc15`](https://github.com/thirdweb-dev/js/commit/05ebbc15a012855735fba2aa93887b88e14295d1), [`4ca557ae`](https://github.com/thirdweb-dev/js/commit/4ca557ae4ab225e39decc3b7a01a04c0d8e464c7), [`7d7685e3`](https://github.com/thirdweb-dev/js/commit/7d7685e3fab5780b3c1d26b8ef431b96f8486972), [`93bd5733`](https://github.com/thirdweb-dev/js/commit/93bd57337b7d2c2fcd252987d10df3206c839daf)]:
- @thirdweb-dev/wallets@0.2.18
## 3.0.16
### Patch Changes
- [#958](https://github.com/thirdweb-dev/js/pull/958) [`72b8b982`](https://github.com/thirdweb-dev/js/commit/72b8b9829eb11d51a63530af62e5634f182c0d03) Thanks [@adam-maj](https://github.com/adam-maj)! - Add extra options to cookie on logout
- Updated dependencies [[`7012513b`](https://github.com/thirdweb-dev/js/commit/7012513bc20f283b2cde46c0b938af33fe3a1a20), [`5d67b280`](https://github.com/thirdweb-dev/js/commit/5d67b2807f2504add4c202d2eb18897415662fb6), [`f12a80a4`](https://github.com/thirdweb-dev/js/commit/f12a80a4758aa91c43084acedb212de9f36a7371), [`5a67d5d8`](https://github.com/thirdweb-dev/js/commit/5a67d5d89474eac9a638ffaddba139b62965deff), [`d2c7f6d7`](https://github.com/thirdweb-dev/js/commit/d2c7f6d758787fab102ecc0cec16ac74f3c87a1f), [`c7c2530c`](https://github.com/thirdweb-dev/js/commit/c7c2530c7f2ef412f1e40428391e85decf504392), [`e22e4a47`](https://github.com/thirdweb-dev/js/commit/e22e4a47d73e1bbc6e3f0ae7ed56717b44e5ffcd), [`1e4ac672`](https://github.com/thirdweb-dev/js/commit/1e4ac672720c2fb01046bec195877a074ffbda06), [`fc96e147`](https://github.com/thirdweb-dev/js/commit/fc96e14750175b19cb66fa7d50cdbad65b42153a), [`4a69f8c8`](https://github.com/thirdweb-dev/js/commit/4a69f8c85dec420615e9eda8d1ad5b5ef0b87713), [`26cd91ff`](https://github.com/thirdweb-dev/js/commit/26cd91ffe18dad37133a18988f21185c13d64cfb), [`0186721b`](https://github.com/thirdweb-dev/js/commit/0186721bc455aa1f8454839a1a25fa4062b45102), [`1e9fad77`](https://github.com/thirdweb-dev/js/commit/1e9fad779f3ebe535d32c0ce76905a3a8033f2fa), [`7af99d9a`](https://github.com/thirdweb-dev/js/commit/7af99d9a6d54492a29a90288a25b30773a8a10a7), [`8cfb4f38`](https://github.com/thirdweb-dev/js/commit/8cfb4f38ed89c26ad04f19d27c65c24cefa976b6)]:
- @thirdweb-dev/wallets@0.2.17
## 3.0.15
### Patch Changes
- [#874](https://github.com/thirdweb-dev/js/pull/874) [`49922de9`](https://github.com/thirdweb-dev/js/commit/49922de9d9c1258e58a3a05e656b229db469b1dd) Thanks [@iketw](https://github.com/iketw)! - [RN] Adds Auth to React Native
- Adds an optional `secureStorage` to authConfig
- Adds `expo-secure-store` to store the JWT token securely in React Native, passing a default value
- Stores the token in secure storage to be accessed by subsequent calls
- Returns the token in `useLogin` to be used by the user
How I tested:
- Tested in Android/iOS/Web
Usage:
```
<ThirdwebProvider
activeChain="ethereum"
supportedWallets={[metamaskWallet(), rainbowWallet()]}
authConfig={{
domain: https://your-domain.com,
authUrl: '/api/auth',
}}>
<AppInner />
</ThirdwebProvider>
```
```
const { login } = useLogin();
const { logout } = useLogout();
const { user, isLoggedIn } = useUser();
...
const token = await login();
```
- Updated dependencies [[`4acb2b55`](https://github.com/thirdweb-dev/js/commit/4acb2b5561118dde5c7372400d4d754b879aef2e), [`82bea3fa`](https://github.com/thirdweb-dev/js/commit/82bea3fa10294eb3c5c7327fb047e3d1b2c62ff9), [`664d1cd0`](https://github.com/thirdweb-dev/js/commit/664d1cd0dd03f32337c2cf532f0ad860e5aa5ea8), [`c2fec930`](https://github.com/thirdweb-dev/js/commit/c2fec930520e2df89532ec0027ead4563c7708cf)]:
- @thirdweb-dev/[email protected]
## 3.0.14
### Patch Changes
+5 -3
View File
@@ -1,6 +1,6 @@
{
"name": "@thirdweb-dev/auth",
"version": "3.0.14",
"version": "3.2.7",
"main": "dist/thirdweb-dev-auth.cjs.js",
"module": "dist/thirdweb-dev-auth.esm.js",
"browser": {
@@ -54,13 +54,15 @@
"repository": "https://github.com/thirdweb-dev/js/tree/main/packages/auth",
"author": "thirdweb eng <[email protected]>",
"license": "Apache-2.0",
"sideEffects": false,
"scripts": {
"build": "preconstruct build",
"format": "prettier --write 'src/**/*'",
"lint": "eslint src/",
"fix": "eslint src/ --fix",
"clean": "rm -rf dist/ && rm -rf node_modules/",
"test": "mocha --config './test/.mocharc.json' --timeout 30000 --parallel './test/**/*.test.ts'"
"test": "mocha --config './test/.mocharc.json' --timeout 30000 --parallel './test/**/*.test.ts'",
"push": "yalc push"
},
"preconstruct": {
"entrypoints": [
@@ -99,7 +101,7 @@
"@typescript-eslint/parser": "^5.33.0",
"chai": "^4.3.6",
"cookie-parser": "^1.4.6",
"eslint": "^8.21.0",
"eslint": "^8.42.0",
"eslint-config-prettier": "^8.3.0",
"eslint-config-thirdweb": "workspace:*",
"eslint-plugin-import": "^2.26.0",
+7
View File
@@ -0,0 +1,7 @@
const THIRDWEB_AUTH_COOKIE_PREFIX = `thirdweb_auth`;
export const THIRDWEB_AUTH_TOKEN_COOKIE_PREFIX = `${THIRDWEB_AUTH_COOKIE_PREFIX}_token`;
export const THIRDWEB_AUTH_ACTIVE_ACCOUNT_COOKIE = `${THIRDWEB_AUTH_COOKIE_PREFIX}_active_account`;
export const THIRDWEB_AUTH_DEFAULT_LOGIN_PAYLOAD_DURATION_IN_SECONDS = 60 * 10;
export const THIRDWEB_AUTH_DEFAULT_TOKEN_DURATION_IN_SECONDS = 60 * 60 * 24;
export const THIRDWEB_AUTH_DEFAULT_REFRESH_INTERVAL_IN_SECONDS = 5;
+97 -41
View File
@@ -1,3 +1,7 @@
import {
THIRDWEB_AUTH_DEFAULT_LOGIN_PAYLOAD_DURATION_IN_SECONDS,
THIRDWEB_AUTH_DEFAULT_TOKEN_DURATION_IN_SECONDS,
} from "../constants";
import {
LoginOptions,
LoginPayload,
@@ -6,7 +10,6 @@ import {
LoginPayloadDataSchema,
AuthenticationPayloadDataSchema,
AuthenticationPayloadData,
LoginOptionsSchema,
VerifyOptionsSchema,
VerifyOptions,
GenerateOptionsSchema,
@@ -14,6 +17,9 @@ import {
AuthenticateOptions,
User,
Json,
LoginOptionsSchema,
AuthenticationPayload,
AuthenticationPayloadDataInput,
} from "./schema";
import { isBrowser } from "./utils";
import type { GenericAuthWallet } from "@thirdweb-dev/wallets";
@@ -31,7 +37,7 @@ export class ThirdwebAuth {
this.wallet = wallet;
}
public async login(options?: LoginOptions): Promise<LoginPayload> {
public async payload(options?: LoginOptions): Promise<LoginPayloadData> {
const parsedOptions = LoginOptionsSchema.parse(options);
let chainId: string | undefined = parsedOptions?.chainId;
@@ -43,32 +49,48 @@ export class ThirdwebAuth {
}
}
const payloadData = LoginPayloadDataSchema.parse({
return LoginPayloadDataSchema.parse({
type: this.wallet.type,
domain: parsedOptions?.domain || this.domain,
address: await this.wallet.getAddress(),
address: parsedOptions?.address || (await this.wallet.getAddress()),
statement: parsedOptions?.statement,
version: parsedOptions?.version,
uri:
parsedOptions?.uri ||
(isBrowser() ? window.location.origin : undefined),
uri: parsedOptions?.uri,
chain_id: chainId,
nonce: parsedOptions?.nonce,
expiration_time:
parsedOptions?.expirationTime || new Date(Date.now() + 1000 * 60 * 5),
invalid_before: parsedOptions?.invalidBefore,
parsedOptions?.expirationTime ||
new Date(
Date.now() +
1000 * THIRDWEB_AUTH_DEFAULT_LOGIN_PAYLOAD_DURATION_IN_SECONDS,
),
invalid_before:
parsedOptions?.invalidBefore ||
new Date(
Date.now() -
1000 * THIRDWEB_AUTH_DEFAULT_LOGIN_PAYLOAD_DURATION_IN_SECONDS,
),
resources: parsedOptions?.resources,
});
}
const message = this.generateMessage(payloadData);
public async loginWithPayload(
payload: LoginPayloadData,
): Promise<LoginPayload> {
const message = this.generateMessage(payload);
const signature = await this.wallet.signMessage(message);
return {
payload: payloadData,
payload,
signature,
};
}
public async login(options?: LoginOptions): Promise<LoginPayload> {
const payloadData = await this.payload(options);
return await this.loginWithPayload(payloadData);
}
public async verify(
payload: LoginPayload,
options?: VerifyOptions,
@@ -209,41 +231,37 @@ export class ThirdwebAuth {
}
const adminAddress = await this.wallet.getAddress();
const payloadData = AuthenticationPayloadDataSchema.parse({
return this.createToken({
iss: adminAddress,
sub: userAddress,
aud: domain,
nbf: parsedOptions?.invalidBefore || new Date(),
exp:
parsedOptions?.expirationTime ||
new Date(Date.now() + 1000 * 60 * 60 * 5),
new Date(
Date.now() + 1000 * THIRDWEB_AUTH_DEFAULT_TOKEN_DURATION_IN_SECONDS,
),
iat: new Date(),
jti: parsedOptions?.tokenId,
ctx: session,
});
}
const message = JSON.stringify(payloadData);
const signature = await this.wallet.signMessage(message);
// Header used for JWT token specifying hash algorithm
const header = {
// Specify ECDSA with SHA-256 for hashing algorithm
alg: "ES256",
typ: "JWT",
};
const encodedHeader = Buffer.from(JSON.stringify(header)).toString(
"base64",
);
const encodedData = Buffer.from(JSON.stringify(payloadData))
.toString("base64")
.replace(/=/g, "");
const encodedSignature = Buffer.from(signature).toString("base64");
// Generate a JWT token with base64 encoded header, payload, and signature
const token = `${encodedHeader}.${encodedData}.${encodedSignature}`;
return token;
public async refresh(token: string, expirationTime?: Date): Promise<string> {
const { payload } = this.parseToken(token);
return this.createToken({
iss: payload.iss,
sub: payload.sub,
aud: payload.aud,
nbf: new Date(),
exp:
expirationTime ||
new Date(
Date.now() + 1000 * THIRDWEB_AUTH_DEFAULT_TOKEN_DURATION_IN_SECONDS,
),
iat: new Date(),
ctx: payload.ctx,
});
}
/**
@@ -278,12 +296,7 @@ export class ThirdwebAuth {
const parsedOptions = AuthenticateOptionsSchema.parse(options);
const domain = parsedOptions?.domain || this.domain;
const encodedPayload = token.split(".")[1];
const encodedSignature = token.split(".")[2];
const payload: AuthenticationPayloadData = JSON.parse(
Buffer.from(encodedPayload, "base64").toString(),
);
const signature = Buffer.from(encodedSignature, "base64").toString();
const { payload, signature } = this.parseToken(token);
// Check that the payload unique ID is valid
if (parsedOptions?.validateTokenId !== undefined) {
@@ -351,6 +364,49 @@ export class ThirdwebAuth {
};
}
public parseToken(token: string): AuthenticationPayload {
const encodedPayload = token.split(".")[1];
const encodedSignature = token.split(".")[2];
const payload: AuthenticationPayloadData = JSON.parse(
Buffer.from(encodedPayload, "base64").toString(),
);
const signature = Buffer.from(encodedSignature, "base64").toString();
return {
payload,
signature,
};
}
private async createToken(
payload: AuthenticationPayloadDataInput,
): Promise<string> {
const payloadData = AuthenticationPayloadDataSchema.parse(payload);
const message = JSON.stringify(payloadData);
const signature = await this.wallet.signMessage(message);
// Header used for JWT token specifying hash algorithm
const header = {
// Specify ECDSA with SHA-256 for hashing algorithm
alg: "ES256",
typ: "JWT",
};
const encodedHeader = Buffer.from(JSON.stringify(header)).toString(
"base64",
);
const encodedData = Buffer.from(JSON.stringify(payloadData))
.toString("base64")
.replace(/=/g, "");
const encodedSignature = Buffer.from(signature).toString("base64");
// Generate a JWT token with base64 encoded header, payload, and signature
const token = `${encodedHeader}.${encodedData}.${encodedSignature}`;
return token;
}
private async verifySignature(
message: string,
signature: string,
+8
View File
@@ -34,6 +34,7 @@ const JsonSchema: z.ZodType<Json> = z.lazy(
export const LoginOptionsSchema = z
.object({
domain: z.string().optional(),
address: z.string().optional(),
statement: z.string().optional(),
uri: z.string().optional(),
version: z.string().optional(),
@@ -179,6 +180,13 @@ export type AuthenticationPayloadData = z.output<
typeof AuthenticationPayloadDataSchema
>;
/**
* @internal
*/
export type AuthenticationPayloadDataInput = z.input<
typeof AuthenticationPayloadDataSchema
>;
/**
* @public
*/
+35 -8
View File
@@ -1,24 +1,51 @@
import {
THIRDWEB_AUTH_ACTIVE_ACCOUNT_COOKIE,
THIRDWEB_AUTH_TOKEN_COOKIE_PREFIX,
} from "../../constants";
import { Json } from "../../core/schema";
import { ThirdwebAuthContext, ThirdwebAuthUser } from "../types";
import { Request } from "express";
function getToken(req: Request): string | undefined {
export function getCookie(req: Request, cookie: string): string | undefined {
if (typeof req.cookies.get === "function") {
return req.cookies.get(cookie);
}
return req.cookies[cookie];
}
export function getActiveCookie(req: Request): string | undefined {
if (!req.cookies) {
return undefined;
}
const activeAccount = getCookie(req, THIRDWEB_AUTH_ACTIVE_ACCOUNT_COOKIE);
if (activeAccount) {
return `${THIRDWEB_AUTH_TOKEN_COOKIE_PREFIX}_${activeAccount}`;
}
// If active account is not present, then use the old default
return THIRDWEB_AUTH_TOKEN_COOKIE_PREFIX;
}
export function getToken(req: Request): string | undefined {
if (req.headers["authorization"]) {
const authorizationHeader = req.headers["authorization"].split(" ");
if (authorizationHeader?.length === 2) {
return authorizationHeader[1];
}
}
if (!req.cookies) {
return undefined;
}
const cookie: string | undefined = !req.cookies
? undefined
: typeof req.cookies.get === "function"
? (req.cookies as any).get("thirdweb_auth_token")
: (req.cookies as any).thirdweb_auth_token;
const activeCookie = getActiveCookie(req);
if (!activeCookie) {
return undefined;
}
return cookie;
return getCookie(req, activeCookie);
}
export async function getUser<
@@ -51,7 +78,7 @@ export async function getUser<
return authenticatedUser;
}
const data = await ctx.callbacks.onUser(authenticatedUser);
const data = await ctx.callbacks.onUser(authenticatedUser, req);
if (!data) {
return authenticatedUser;
}
+16
View File
@@ -1,8 +1,10 @@
import { Json, ThirdwebAuth as ThirdwebAuthSDK } from "../core";
import { getUser } from "./helpers/user";
import payloadHandler from "./routes/payload";
import loginHandler from "./routes/login";
import logoutHandler from "./routes/logout";
import userHandler from "./routes/user";
import switchAccountHandler from "./routes/switch-account";
import {
ThirdwebAuthConfig,
ThirdwebAuthContext,
@@ -47,6 +49,13 @@ export function ThirdwebAuth<
router.use(express.json());
router.use(cookieMiddleware);
router.post(
"/payload",
asyncHandler((req: Request, res: Response) =>
payloadHandler(req, res, ctx as ThirdwebAuthContext),
),
);
router.post(
"/login",
asyncHandler((req: Request, res: Response) =>
@@ -68,6 +77,13 @@ export function ThirdwebAuth<
),
);
router.post(
"/switch-account",
asyncHandler((req: Request, res: Response) =>
switchAccountHandler(req, res, ctx as ThirdwebAuthContext),
),
);
return {
authRouter: router,
authMiddleware: cookieMiddleware,
+24 -4
View File
@@ -1,3 +1,7 @@
import {
THIRDWEB_AUTH_ACTIVE_ACCOUNT_COOKIE,
THIRDWEB_AUTH_TOKEN_COOKIE_PREFIX,
} from "../../constants";
import { GenerateOptions } from "../../core";
import { LoginPayloadBodySchema, ThirdwebAuthContext } from "../types";
import { serialize } from "cookie";
@@ -64,18 +68,34 @@ export default async function handler(
}
}
const {
payload: { exp },
} = ctx.auth.parseToken(token);
// Securely set httpOnly cookie on request to prevent XSS on frontend
// And set path to / to enable thirdweb_auth_token usage on all endpoints
res.setHeader(
"Set-Cookie",
serialize("thirdweb_auth_token", token, {
res.setHeader("Set-Cookie", [
serialize(
`${THIRDWEB_AUTH_TOKEN_COOKIE_PREFIX}_${payload.payload.address}`,
token,
{
domain: ctx.cookieOptions?.domain,
path: ctx.cookieOptions?.path || "/",
sameSite: ctx.cookieOptions?.sameSite || "none",
expires: new Date(exp * 1000),
httpOnly: true,
secure: true,
},
),
serialize(THIRDWEB_AUTH_ACTIVE_ACCOUNT_COOKIE, payload.payload.address, {
domain: ctx.cookieOptions?.domain,
path: ctx.cookieOptions?.path || "/",
sameSite: ctx.cookieOptions?.sameSite || "none",
expires: new Date(exp * 1000),
httpOnly: true,
secure: true,
}),
);
]);
// Send token in body and as cookie for frontend and backend use cases
return res.status(200).json({ token });
+12 -2
View File
@@ -1,4 +1,4 @@
import { getUser } from "../helpers/user";
import { getActiveCookie, getUser } from "../helpers/user";
import { ThirdwebAuthContext } from "../types";
import { serialize } from "cookie";
import { Request, Response } from "express";
@@ -14,6 +14,13 @@ export default async function handler(
});
}
const activeCookie = getActiveCookie(req);
if (!activeCookie) {
return res.status(400).json({
error: "No logged in user to logout.",
});
}
if (ctx.callbacks?.onLogout) {
const user = await getUser(req, ctx);
if (user) {
@@ -24,10 +31,13 @@ export default async function handler(
// Set the access token to 'none' and expire in 5 seconds
res.setHeader(
"Set-Cookie",
serialize("thirdweb_auth_token", "", {
serialize(activeCookie, "", {
domain: ctx.cookieOptions?.domain,
path: ctx.cookieOptions?.path || "/",
sameSite: ctx.cookieOptions?.sameSite || "none",
expires: new Date(Date.now() + 5 * 1000),
httpOnly: true,
secure: true,
}),
);
@@ -0,0 +1,36 @@
import { Request, Response } from "express";
import { PayloadBodySchema, ThirdwebAuthContext } from "../types";
export default async function handler(
req: Request,
res: Response,
ctx: ThirdwebAuthContext,
) {
if (req.method !== "POST") {
return res.status(405).json({
error: "Invalid method. Only POST supported.",
});
}
const parsedPayload = PayloadBodySchema.safeParse(req.body);
if (!parsedPayload.success) {
return res.status(400).json({ error: "Please provide an address" });
}
// TODO: Add nonce generation + custom expiration + invalid before
const payload = await ctx.auth.payload({
address: parsedPayload.data.address,
statement: ctx.authOptions?.statement,
uri: ctx.authOptions?.uri,
version: ctx.authOptions?.version,
chainId: parsedPayload.data.chainId || ctx.authOptions?.chainId,
resources: ctx.authOptions?.resources,
expirationTime: ctx.authOptions?.loginPayloadDurationInSeconds
? new Date(
Date.now() + 1000 * ctx.authOptions.loginPayloadDurationInSeconds,
)
: undefined,
});
return res.status(200).json({ payload });
}
@@ -0,0 +1,63 @@
import { Request, Response } from "express";
import { ActiveBodySchema, ThirdwebAuthContext } from "../types";
import { serialize } from "cookie";
import {
THIRDWEB_AUTH_ACTIVE_ACCOUNT_COOKIE,
THIRDWEB_AUTH_DEFAULT_TOKEN_DURATION_IN_SECONDS,
THIRDWEB_AUTH_TOKEN_COOKIE_PREFIX,
} from "../../constants";
import { getCookie } from "../helpers/user";
export default async function handler(
req: Request,
res: Response,
ctx: ThirdwebAuthContext,
) {
if (req.method !== "POST") {
return res.status(405).json({
error: "Invalid method. Only POST supported.",
});
}
const parsedPayload = ActiveBodySchema.safeParse(req.body);
if (!parsedPayload.success) {
return res.status(400).json({ error: "Please provide an address" });
}
let cookieExpiration: Date;
const cookie = getCookie(
req,
`${THIRDWEB_AUTH_TOKEN_COOKIE_PREFIX}_${parsedPayload.data.address}`,
);
if (cookie) {
// If the new account is already logged in, get the expiration time from the cookie
const {
payload: { exp },
} = ctx.auth.parseToken(cookie);
cookieExpiration = new Date(exp * 1000);
} else if (ctx.authOptions?.tokenDurationInSeconds) {
// Otherwise, if we have a token duration in seconds, set it to that
cookieExpiration = new Date(
Date.now() + 1000 * ctx.authOptions.tokenDurationInSeconds,
);
} else {
// Otherwise, just default to 24 hours
cookieExpiration = new Date(
Date.now() + 1000 * THIRDWEB_AUTH_DEFAULT_TOKEN_DURATION_IN_SECONDS,
);
}
res.setHeader("Set-Cookie", [
serialize(THIRDWEB_AUTH_ACTIVE_ACCOUNT_COOKIE, parsedPayload.data.address, {
domain: ctx.cookieOptions?.domain,
path: ctx.cookieOptions?.path || "/",
sameSite: ctx.cookieOptions?.sameSite || "none",
expires: cookieExpiration,
httpOnly: true,
secure: true,
}),
]);
return res.status(200).end();
}
+56 -1
View File
@@ -1,6 +1,12 @@
import { getUser } from "../helpers/user";
import { serialize } from "cookie";
import { getToken, getUser } from "../helpers/user";
import { ThirdwebAuthContext } from "../types";
import { Request, Response } from "express";
import {
THIRDWEB_AUTH_ACTIVE_ACCOUNT_COOKIE,
THIRDWEB_AUTH_DEFAULT_REFRESH_INTERVAL_IN_SECONDS,
THIRDWEB_AUTH_TOKEN_COOKIE_PREFIX,
} from "../../constants";
export default async function handler(
req: Request,
@@ -14,5 +20,54 @@ export default async function handler(
}
const user = await getUser(req, ctx);
// Importantly, make sure the user was actually logged in before refreshing
if (user) {
const token = getToken(req);
if (token) {
const payload = ctx.auth.parseToken(token);
const refreshDate = ctx.authOptions?.refreshIntervalInSeconds
? new Date(
payload.payload.iat * 1000 +
ctx.authOptions.refreshIntervalInSeconds * 1000,
)
: new Date(
payload.payload.iat * 1000 +
THIRDWEB_AUTH_DEFAULT_REFRESH_INTERVAL_IN_SECONDS * 1000,
);
if (new Date() > refreshDate) {
const expirationTime = ctx.authOptions?.tokenDurationInSeconds
? new Date(Date.now() + 1000 * ctx.authOptions.tokenDurationInSeconds)
: undefined;
const refreshedToken = await ctx.auth.refresh(token, expirationTime);
const refreshedPayload = ctx.auth.parseToken(refreshedToken);
res.setHeader("Set-Cookie", [
serialize(
`${THIRDWEB_AUTH_TOKEN_COOKIE_PREFIX}_${user.address}`,
refreshedToken,
{
domain: ctx.cookieOptions?.domain,
path: ctx.cookieOptions?.path || "/",
sameSite: ctx.cookieOptions?.sameSite || "none",
expires: new Date(refreshedPayload.payload.exp * 1000),
httpOnly: true,
secure: true,
},
),
serialize(THIRDWEB_AUTH_ACTIVE_ACCOUNT_COOKIE, user.address, {
domain: ctx.cookieOptions?.domain,
path: ctx.cookieOptions?.path || "/",
sameSite: ctx.cookieOptions?.sameSite || "none",
expires: new Date(refreshedPayload.payload.exp * 1000),
httpOnly: true,
secure: true,
}),
]);
}
}
}
return res.status(200).json(user);
}
+11
View File
@@ -4,6 +4,15 @@ import type { GenericAuthWallet } from "@thirdweb-dev/wallets";
import { Request } from "express";
import { z } from "zod";
export const PayloadBodySchema = z.object({
address: z.string(),
chainId: z.string().optional(),
});
export const ActiveBodySchema = z.object({
address: z.string(),
});
export const LoginPayloadBodySchema = z.object({
payload: LoginPayloadOutputSchema,
});
@@ -35,7 +44,9 @@ export type ThirdwebAuthConfig<
validateTokenId?:
| ((tokenId: string) => void)
| ((tokenId: string) => Promise<void>);
loginPayloadDurationInSeconds?: number;
tokenDurationInSeconds?: number;
refreshIntervalInSeconds?: number;
};
cookieOptions?: {
domain?: string;
+40 -8
View File
@@ -1,9 +1,40 @@
import {
THIRDWEB_AUTH_ACTIVE_ACCOUNT_COOKIE,
THIRDWEB_AUTH_TOKEN_COOKIE_PREFIX,
} from "../../constants";
import { Json } from "../../core/schema";
import { ThirdwebAuthContext, ThirdwebAuthUser } from "../types";
import { GetServerSidePropsContext, NextApiRequest } from "next";
import { NextRequest } from "next/server";
function getToken(
export function getCookie(
req: GetServerSidePropsContext["req"] | NextRequest | NextApiRequest,
cookie: string,
): string | undefined {
if (typeof req.cookies.get === "function") {
return req.cookies.get(cookie);
}
return (req.cookies as any)[cookie];
}
export function getActiveCookie(
req: GetServerSidePropsContext["req"] | NextRequest | NextApiRequest,
): string | undefined {
if (!req.cookies) {
return undefined;
}
const activeAccount = getCookie(req, THIRDWEB_AUTH_ACTIVE_ACCOUNT_COOKIE);
if (activeAccount) {
return `${THIRDWEB_AUTH_TOKEN_COOKIE_PREFIX}_${activeAccount}`;
}
// If active account is not present, then use the old default
return THIRDWEB_AUTH_TOKEN_COOKIE_PREFIX;
}
export function getToken(
req: GetServerSidePropsContext["req"] | NextRequest | NextApiRequest,
): string | undefined {
if (!!(req as NextApiRequest).headers["authorization"]) {
@@ -13,17 +44,18 @@ function getToken(
if (authorizationHeader?.length === 2) {
return authorizationHeader[1];
}
}
if (!req.cookies) {
return undefined;
}
const cookie: string | undefined = !req.cookies
? undefined
: typeof req.cookies.get === "function"
? (req.cookies as any).get("thirdweb_auth_token")
: (req.cookies as any).thirdweb_auth_token;
const activeCookie = getActiveCookie(req);
if (!activeCookie) {
return undefined;
}
return cookie;
return getCookie(req, activeCookie);
}
export async function getUser<
@@ -56,7 +88,7 @@ export async function getUser<
return authenticatedUser;
}
const data = await ctx.callbacks.onUser(authenticatedUser);
const data = await ctx.callbacks.onUser(authenticatedUser, req);
if (!data) {
return authenticatedUser;
}
+6
View File
@@ -1,8 +1,10 @@
import { Json, ThirdwebAuth as ThirdwebAuthSDK } from "../core";
import { getUser } from "./helpers/user";
import payloadHandler from "./routes/payload";
import loginHandler from "./routes/login";
import logoutHandler from "./routes/logout";
import userHandler from "./routes/user";
import switchAccountHandler from "./routes/switch-account";
import {
ThirdwebAuthConfig,
ThirdwebAuthContext,
@@ -27,12 +29,16 @@ async function ThirdwebAuthRouter(
const action = thirdweb?.[0] as ThirdwebAuthRoute;
switch (action) {
case "payload":
return await payloadHandler(req, res, ctx);
case "login":
return await loginHandler(req, res, ctx);
case "user":
return await userHandler(req, res, ctx);
case "logout":
return await logoutHandler(req, res, ctx);
case "switch-account":
return await switchAccountHandler(req, res, ctx);
default:
return res.status(400).json({
message: "Invalid route for authentication.",
+24 -4
View File
@@ -1,3 +1,7 @@
import {
THIRDWEB_AUTH_ACTIVE_ACCOUNT_COOKIE,
THIRDWEB_AUTH_TOKEN_COOKIE_PREFIX,
} from "../../constants";
import { GenerateOptions } from "../../core";
import { LoginPayloadBodySchema, ThirdwebAuthContext } from "../types";
import { serialize } from "cookie";
@@ -64,18 +68,34 @@ export default async function handler(
}
}
const {
payload: { exp },
} = ctx.auth.parseToken(token);
// Securely set httpOnly cookie on request to prevent XSS on frontend
// And set path to / to enable thirdweb_auth_token usage on all endpoints
res.setHeader(
"Set-Cookie",
serialize("thirdweb_auth_token", token, {
res.setHeader("Set-Cookie", [
serialize(
`${THIRDWEB_AUTH_TOKEN_COOKIE_PREFIX}_${payload.payload.address}`,
token,
{
domain: ctx.cookieOptions?.domain,
path: ctx.cookieOptions?.path || "/",
sameSite: ctx.cookieOptions?.sameSite || "none",
expires: new Date(exp * 1000),
httpOnly: true,
secure: true,
},
),
serialize(THIRDWEB_AUTH_ACTIVE_ACCOUNT_COOKIE, payload.payload.address, {
domain: ctx.cookieOptions?.domain,
path: ctx.cookieOptions?.path || "/",
sameSite: ctx.cookieOptions?.sameSite || "none",
expires: new Date(exp * 1000),
httpOnly: true,
secure: true,
}),
);
]);
// Send token in body and as cookie for frontend and backend use cases
return res.status(200).json({ token });
+12 -2
View File
@@ -1,4 +1,4 @@
import { getUser } from "../helpers/user";
import { getActiveCookie, getUser } from "../helpers/user";
import { ThirdwebAuthContext } from "../types";
import { serialize } from "cookie";
import { NextApiRequest, NextApiResponse } from "next";
@@ -14,6 +14,13 @@ export default async function handler(
});
}
const activeCookie = getActiveCookie(req);
if (!activeCookie) {
return res.status(400).json({
error: "No logged in user to logout.",
});
}
if (ctx.callbacks?.onLogout) {
const user = await getUser(req, ctx);
if (user) {
@@ -24,10 +31,13 @@ export default async function handler(
// Set the access token to 'none' and expire in 5 seconds
res.setHeader(
"Set-Cookie",
serialize("thirdweb_auth_token", "", {
serialize(activeCookie, "", {
domain: ctx.cookieOptions?.domain,
path: ctx.cookieOptions?.path || "/",
sameSite: ctx.cookieOptions?.sameSite || "none",
expires: new Date(Date.now() + 5 * 1000),
httpOnly: true,
secure: true,
}),
);
+36
View File
@@ -0,0 +1,36 @@
import { PayloadBodySchema, ThirdwebAuthContext } from "../types";
import { NextApiRequest, NextApiResponse } from "next";
export default async function handler(
req: NextApiRequest,
res: NextApiResponse,
ctx: ThirdwebAuthContext,
) {
if (req.method !== "POST") {
return res.status(405).json({
error: "Invalid method. Only POST supported.",
});
}
const parsedPayload = PayloadBodySchema.safeParse(req.body);
if (!parsedPayload.success) {
return res.status(400).json({ error: "Please provide an address" });
}
// TODO: Add nonce generation + custom expiration + invalid before
const payload = await ctx.auth.payload({
address: parsedPayload.data.address,
statement: ctx.authOptions?.statement,
uri: ctx.authOptions?.uri,
version: ctx.authOptions?.version,
chainId: parsedPayload.data.chainId || ctx.authOptions?.chainId,
resources: ctx.authOptions?.resources,
expirationTime: ctx.authOptions?.loginPayloadDurationInSeconds
? new Date(
Date.now() + 1000 * ctx.authOptions.loginPayloadDurationInSeconds,
)
: undefined,
});
return res.status(200).json({ payload });
}
@@ -0,0 +1,63 @@
import { serialize } from "cookie";
import { getCookie } from "../helpers/user";
import { ActiveBodySchema, ThirdwebAuthContext } from "../types";
import { NextApiRequest, NextApiResponse } from "next";
import {
THIRDWEB_AUTH_ACTIVE_ACCOUNT_COOKIE,
THIRDWEB_AUTH_DEFAULT_TOKEN_DURATION_IN_SECONDS,
THIRDWEB_AUTH_TOKEN_COOKIE_PREFIX,
} from "../../constants";
export default async function handler(
req: NextApiRequest,
res: NextApiResponse,
ctx: ThirdwebAuthContext,
) {
if (req.method !== "POST") {
return res.status(405).json({
error: "Invalid method. Only POST supported.",
});
}
const parsedPayload = ActiveBodySchema.safeParse(req.body);
if (!parsedPayload.success) {
return res.status(400).json({ error: "Please provide an address" });
}
let cookieExpiration: Date;
const cookie = getCookie(
req,
`${THIRDWEB_AUTH_TOKEN_COOKIE_PREFIX}_${parsedPayload.data.address}`,
);
if (cookie) {
// If the new account is already logged in, get the expiration time from the cookie
const {
payload: { exp },
} = ctx.auth.parseToken(cookie);
cookieExpiration = new Date(exp * 1000);
} else if (ctx.authOptions?.tokenDurationInSeconds) {
// Otherwise, if we have a token duration in seconds, set it to that
cookieExpiration = new Date(
Date.now() + 1000 * ctx.authOptions.tokenDurationInSeconds,
);
} else {
// Otherwise, just default to 24 hours
cookieExpiration = new Date(
Date.now() + 1000 * THIRDWEB_AUTH_DEFAULT_TOKEN_DURATION_IN_SECONDS,
);
}
res.setHeader("Set-Cookie", [
serialize(THIRDWEB_AUTH_ACTIVE_ACCOUNT_COOKIE, parsedPayload.data.address, {
domain: ctx.cookieOptions?.domain,
path: ctx.cookieOptions?.path || "/",
sameSite: ctx.cookieOptions?.sameSite || "none",
expires: cookieExpiration,
httpOnly: true,
secure: true,
}),
]);
return res.status(200).end();
}
+56 -1
View File
@@ -1,4 +1,10 @@
import { getUser } from "../helpers/user";
import { serialize } from "cookie";
import {
THIRDWEB_AUTH_ACTIVE_ACCOUNT_COOKIE,
THIRDWEB_AUTH_DEFAULT_REFRESH_INTERVAL_IN_SECONDS,
THIRDWEB_AUTH_TOKEN_COOKIE_PREFIX,
} from "../../constants";
import { getToken, getUser } from "../helpers/user";
import { ThirdwebAuthContext } from "../types";
import { NextApiRequest, NextApiResponse } from "next";
@@ -14,5 +20,54 @@ export default async function handler(
}
const user = await getUser(req, ctx);
// Importantly, make sure the user was actually logged in before refreshing
if (user) {
const token = getToken(req);
if (token) {
const payload = ctx.auth.parseToken(token);
const refreshDate = ctx.authOptions?.refreshIntervalInSeconds
? new Date(
payload.payload.iat * 1000 +
ctx.authOptions.refreshIntervalInSeconds * 1000,
)
: new Date(
payload.payload.iat * 1000 +
THIRDWEB_AUTH_DEFAULT_REFRESH_INTERVAL_IN_SECONDS * 1000,
);
if (new Date() > refreshDate) {
const expirationTime = ctx.authOptions?.tokenDurationInSeconds
? new Date(Date.now() + 1000 * ctx.authOptions.tokenDurationInSeconds)
: undefined;
const refreshedToken = await ctx.auth.refresh(token, expirationTime);
const refreshedPayload = ctx.auth.parseToken(refreshedToken);
res.setHeader("Set-Cookie", [
serialize(
`${THIRDWEB_AUTH_TOKEN_COOKIE_PREFIX}_${user.address}`,
refreshedToken,
{
domain: ctx.cookieOptions?.domain,
path: ctx.cookieOptions?.path || "/",
sameSite: ctx.cookieOptions?.sameSite || "none",
expires: new Date(refreshedPayload.payload.exp * 1000),
httpOnly: true,
secure: true,
},
),
serialize(THIRDWEB_AUTH_ACTIVE_ACCOUNT_COOKIE, user.address, {
domain: ctx.cookieOptions?.domain,
path: ctx.cookieOptions?.path || "/",
sameSite: ctx.cookieOptions?.sameSite || "none",
expires: new Date(refreshedPayload.payload.exp * 1000),
httpOnly: true,
secure: true,
}),
]);
}
}
}
return res.status(200).json(user);
}
+17 -1
View File
@@ -5,6 +5,15 @@ import { GetServerSidePropsContext, NextApiRequest } from "next";
import { NextRequest } from "next/server";
import { z } from "zod";
export const PayloadBodySchema = z.object({
address: z.string(),
chainId: z.string().optional(),
});
export const ActiveBodySchema = z.object({
address: z.string(),
});
export const LoginPayloadBodySchema = z.object({
payload: LoginPayloadOutputSchema,
});
@@ -14,7 +23,12 @@ type RequestType =
| NextRequest
| NextApiRequest;
export type ThirdwebAuthRoute = "login" | "logout" | "user";
export type ThirdwebAuthRoute =
| "payload"
| "login"
| "logout"
| "user"
| "switch-account";
export type ThirdwebAuthUser<
TData extends Json = Json,
@@ -41,7 +55,9 @@ export type ThirdwebAuthConfig<
validateTokenId?:
| ((tokenId: string) => void)
| ((tokenId: string) => Promise<void>);
loginPayloadDurationInSeconds?: number;
tokenDurationInSeconds?: number;
refreshIntervalInSeconds?: number;
};
cookieOptions?: {
domain?: string;
+127
View File
@@ -1,5 +1,132 @@
# @thirdweb-dev/chains
## 0.1.26
### Patch Changes
- [#1276](https://github.com/thirdweb-dev/js/pull/1276) [`5882091e`](https://github.com/thirdweb-dev/js/commit/5882091eab65978009a5a5305701f121851b10ad) Thanks [@MananTank](https://github.com/MananTank)! - Do not change order or RPCs in `getChainRPCs` to Fix RPC override issue
## 0.1.25
### Patch Changes
- [#1248](https://github.com/thirdweb-dev/js/pull/1248) [`620e89dc`](https://github.com/thirdweb-dev/js/commit/620e89dc25c91557e2164a602c7aedd733525087) Thanks [@nachoiacovino](https://github.com/nachoiacovino)! - update chains
- [#1243](https://github.com/thirdweb-dev/js/pull/1243) [`0fd8aa04`](https://github.com/thirdweb-dev/js/commit/0fd8aa04a9424497758d13a51a72363edcc30e19) Thanks [@therealharpaljadeja](https://github.com/therealharpaljadeja)! - update chains
## 0.1.24
### Patch Changes
- [#1241](https://github.com/thirdweb-dev/js/pull/1241) [`9af346ee`](https://github.com/thirdweb-dev/js/commit/9af346eeada1037be27c8d3c9e1777f7be11a8ea) Thanks [@nkrishang](https://github.com/nkrishang)! - Use fn getAllAccounts instead of event logs AccountCreated
## 0.1.23
### Patch Changes
- [#1229](https://github.com/thirdweb-dev/js/pull/1229) [`6816219a`](https://github.com/thirdweb-dev/js/commit/6816219ac13ae571a0c90db6ab389c319bc1f052) Thanks [@jnsdls](https://github.com/jnsdls)! - add/update chains
## 0.1.22
### Patch Changes
- [#1192](https://github.com/thirdweb-dev/js/pull/1192) [`f41f1a29`](https://github.com/thirdweb-dev/js/commit/f41f1a2958a2cedcf0496c9a3ca284d0b98f1b89) Thanks [@jnsdls](https://github.com/jnsdls)! - fix arbitrum goerli infura url
## 0.1.21
### Patch Changes
- [#1074](https://github.com/thirdweb-dev/js/pull/1074) [`cc20f93e`](https://github.com/thirdweb-dev/js/commit/cc20f93e178d86ee2b3f39102bbb0811de211f05) Thanks [@Marfuen](https://github.com/Marfuen)! - Enhance CLI Install command and update chains
- [#1185](https://github.com/thirdweb-dev/js/pull/1185) [`8e28b0f5`](https://github.com/thirdweb-dev/js/commit/8e28b0f5e75596d29273ed80269bcee6d209adb4) Thanks [@jnsdls](https://github.com/jnsdls)! - add Zora Mainnet
## 0.1.20
### Patch Changes
- [#1140](https://github.com/thirdweb-dev/js/pull/1140) [`16232de9`](https://github.com/thirdweb-dev/js/commit/16232de9eab9966e24e335929b2a3919346af265) Thanks [@kumaryash90](https://github.com/kumaryash90)! - Update chains
- [#1138](https://github.com/thirdweb-dev/js/pull/1138) [`645b0303`](https://github.com/thirdweb-dev/js/commit/645b0303cc1a9cbb0a0e9cbd67d11c3b865e4584) Thanks [@jcstein](https://github.com/jcstein)! - feat: create Taro Testnet
## 0.1.19
### Patch Changes
- [#1065](https://github.com/thirdweb-dev/js/pull/1065) [`bd86661f`](https://github.com/thirdweb-dev/js/commit/bd86661f54ca2f1eb09cbae35c704dc79be1b63a) Thanks [@iketw](https://github.com/iketw)! - [Chains] update chains
- [#1064](https://github.com/thirdweb-dev/js/pull/1064) [`c85810ee`](https://github.com/thirdweb-dev/js/commit/c85810eee318b10eee4ada61828adaa51f94ea6c) Thanks [@MananTank](https://github.com/MananTank)! - Do not cache signer in wallets
- [#1047](https://github.com/thirdweb-dev/js/pull/1047) [`6fd10f94`](https://github.com/thirdweb-dev/js/commit/6fd10f94b469dc5659e2ff4ce92a5aff86f3c89d) Thanks [@MananTank](https://github.com/MananTank)! - Fix tree-shaking issue in `@thirdweb-dev/chains`
- [#1090](https://github.com/thirdweb-dev/js/pull/1090) [`5f1e6abb`](https://github.com/thirdweb-dev/js/commit/5f1e6abb391f5c58dbdb207f569b3dd0b5d4729c) Thanks [@joaquim-verges](https://github.com/joaquim-verges)! - Add base-goerli to default chains
## 0.1.18
### Patch Changes
- [#1040](https://github.com/thirdweb-dev/js/pull/1040) [`30e5593d`](https://github.com/thirdweb-dev/js/commit/30e5593dd1ce9abd809ad216a1cfce77b897093c) Thanks [@joaquim-verges](https://github.com/joaquim-verges)! - Update chains
## 0.1.17
### Patch Changes
- [#1031](https://github.com/thirdweb-dev/js/pull/1031) [`3c8c5d56`](https://github.com/thirdweb-dev/js/commit/3c8c5d56f2a21c0918fede71061c6745f2956f83) Thanks [@jnsdls](https://github.com/jnsdls)! - update chains
- [#1033](https://github.com/thirdweb-dev/js/pull/1033) [`907d97be`](https://github.com/thirdweb-dev/js/commit/907d97bedef7331148bdfe8b9bf1e19459282e4c) Thanks [@joaquim-verges](https://github.com/joaquim-verges)! - Added faucet for optimism goerli
## 0.1.16
### Patch Changes
- [#996](https://github.com/thirdweb-dev/js/pull/996) [`c3645c45`](https://github.com/thirdweb-dev/js/commit/c3645c451b5e9a0fcf651fa07eb0e31ebf1882ca) Thanks [@MananTank](https://github.com/MananTank)! - - add `theme` in `ConfiguredWallet.connectUI`'s props - to use theme aware UI for wallets
- add `useWalletConfig` hook to get the `ConfiguredWallet` object for active wallet
- add hooks `useSetConnectedWallet`, `useSetConnectionStatus`
- rename `useActiveChain` to `useChain` - keep the `useActiveChain` also with deprecated tag
- make `useSafe` hook await-able by returning the promise of connect() call
- add hook `useSmartWallet`
- allow rendering custom wallet details button via `<ConnectWallet detailsButton={} />` prop
- Rename "Export" to "Backup" in local wallet UI
- [#1011](https://github.com/thirdweb-dev/js/pull/1011) [`470e0a14`](https://github.com/thirdweb-dev/js/commit/470e0a144db6aa03e7789e231bbdfae43144f0e0) Thanks [@MananTank](https://github.com/MananTank)! - rename ConfiguredWallet to WalletConfig
```diff
- import { ConfiguredWallet } from '@thirdweb-dev/react';
+ import { WalletConfig } from '@thirdweb-dev/react';
```
- [#995](https://github.com/thirdweb-dev/js/pull/995) [`482f6d1b`](https://github.com/thirdweb-dev/js/commit/482f6d1b58ac99b331fc750d3eeb6082556fd526) Thanks [@iketw](https://github.com/iketw)! - [Chains] Update chains
- [#989](https://github.com/thirdweb-dev/js/pull/989) [`8db78299`](https://github.com/thirdweb-dev/js/commit/8db78299ea6cfb51d93b91bb1a351644a83c73d2) Thanks [@iketw](https://github.com/iketw)! - [React/ReactNative] Updated useThirdwebWallet to useWalletContext
## 0.1.15
### Patch Changes
- [#990](https://github.com/thirdweb-dev/js/pull/990) [`6a4aab0b`](https://github.com/thirdweb-dev/js/commit/6a4aab0b8a2e0f6ff1b47992a3c1e5426a74f7ff) Thanks [@joaquim-verges](https://github.com/joaquim-verges)! - updated chains
## 0.1.14
### Patch Changes
- [#954](https://github.com/thirdweb-dev/js/pull/954) [`5305b42d`](https://github.com/thirdweb-dev/js/commit/5305b42db554b69f903b3d95f3ba0eeddabd6114) Thanks [@jarrodwatts](https://github.com/jarrodwatts)! - useContract now types correctly for thirdweb generate
## 0.1.13
### Patch Changes
- [#787](https://github.com/thirdweb-dev/js/pull/787) [`d2c7f6d7`](https://github.com/thirdweb-dev/js/commit/d2c7f6d758787fab102ecc0cec16ac74f3c87a1f) Thanks [@iketw](https://github.com/iketw)! - [ReactNative] Adds Device Wallet
- [#931](https://github.com/thirdweb-dev/js/pull/931) [`f12a80a4`](https://github.com/thirdweb-dev/js/commit/f12a80a4758aa91c43084acedb212de9f36a7371) Thanks [@joaquim-verges](https://github.com/joaquim-verges)! - Updated chains
## 0.1.12
### Patch Changes
- [#896](https://github.com/thirdweb-dev/js/pull/896) [`a6610f12`](https://github.com/thirdweb-dev/js/commit/a6610f1211e9359885b948bf69a66d834707ec07) Thanks [@atharvadeosthale](https://github.com/atharvadeosthale)! - Added links to portal
- [#903](https://github.com/thirdweb-dev/js/pull/903) [`77224646`](https://github.com/thirdweb-dev/js/commit/77224646d542db3171394d744b455497cd057633) Thanks [@joaquim-verges](https://github.com/joaquim-verges)! - new chains
## 0.1.11
### Patch Changes
+1 -1
View File
@@ -10,9 +10,9 @@ export default {
},
"rpc": [
"https://ethereum.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"https://eth-mainnet.g.alchemy.com/v2/${ALCHEMY_API_KEY}",
"https://mainnet.infura.io/v3/${INFURA_API_KEY}",
"wss://mainnet.infura.io/ws/v3/${INFURA_API_KEY}",
"https://eth-mainnet.g.alchemy.com/v2/${ALCHEMY_API_KEY}",
"https://api.mycryptoapi.com/eth",
"https://cloudflare-eth.com",
"https://ethereum.publicnode.com"
+2 -2
View File
@@ -1,11 +1,11 @@
import type { Chain } from "../src/types";
export default {
"name": "Optimism",
"name": "OP Mainnet",
"chain": "ETH",
"rpc": [
"https://optimism.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"https://opt-mainnet.g.alchemy.com/v2/${ALCHEMY_API_KEY}",
"https://optimism-mainnet.infura.io/v3/${INFURA_API_KEY}",
"https://opt-mainnet.g.alchemy.com/v2/${ALCHEMY_API_KEY}",
"https://mainnet.optimism.io/"
],
"faucets": [],
+5 -2
View File
@@ -11,20 +11,23 @@ export default {
"rpc": [
"https://gnosis.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"https://rpc.gnosischain.com",
"https://rpc.gnosis.gateway.fm",
"https://rpc.ankr.com/gnosis",
"https://gnosischain-rpc.gateway.pokt.network",
"https://gnosis-mainnet.public.blastapi.io",
"https://gnosis.api.onfinality.io/public",
"https://gnosis.blockpi.network/v1/rpc/public",
"https://web3endpoints.com/gnosischain-mainnet",
"wss://rpc.gnosischain.com/wss"
],
"faucets": [
"https://gnosisfaucet.com",
"https://faucet.gimlu.com/gnosis",
"https://stakely.io/faucet/gnosis-chain-xdai",
"https://faucet.prussia.dev/xdai"
],
"nativeCurrency": {
"name": "xDAI",
"symbol": "xDAI",
"symbol": "XDAI",
"decimals": 18
},
"infoURL": "https://docs.gnosischain.com",
+7 -6
View File
@@ -1,7 +1,7 @@
import type { Chain } from "../src/types";
export default {
"name": "Chiado Testnet",
"chain": "CHI",
"name": "Gnosis Chiado Testnet",
"chain": "GNO",
"icon": {
"url": "ipfs://bafybeidk4swpgdyqmpz6shd5onvpaujvwiwthrhypufnwr6xh3dausz2dm",
"width": 1800,
@@ -9,16 +9,17 @@ export default {
"format": "png"
},
"rpc": [
"https://chiado-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"https://gnosis-chiado-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"https://rpc.chiadochain.net",
"https://rpc.eu-central-2.gateway.fm/v3/gnosis/archival/chiado"
"https://rpc.chiado.gnosis.gateway.fm",
"wss://rpc.chiadochain.net/wss"
],
"faucets": [
"https://gnosisfaucet.com"
],
"nativeCurrency": {
"name": "Chiado xDAI",
"symbol": "xDAI",
"symbol": "XDAI",
"decimals": 18
},
"infoURL": "https://docs.gnosischain.com",
@@ -39,5 +40,5 @@ export default {
}
],
"testnet": true,
"slug": "chiado-testnet"
"slug": "gnosis-chiado-testnet"
} as const satisfies Chain;
+1 -1
View File
@@ -10,7 +10,7 @@ export default {
},
"rpc": [
"https://nebula-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"https://testnet.rpc.novanetwork.io:9070"
"https://testnet.rpc.novanetwork.io"
],
"faucets": [
"https://faucet.novanetwork.io"
+40
View File
@@ -0,0 +1,40 @@
import type { Chain } from "../src/types";
export default {
"name": "Siberium Test Network",
"chain": "SBR",
"rpc": [
"https://siberium-test-network.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"https://rpc.test.siberium.net"
],
"faucets": [],
"nativeCurrency": {
"name": "TestSIBR",
"symbol": "SIBR",
"decimals": 18
},
"infoURL": "https://siberium.net",
"shortName": "testsbr",
"chainId": 111000,
"networkId": 111000,
"icon": {
"url": "ipfs://QmYeMdWDZ1iaBFeSPorRyPi7RuSXTdDKTgW3rfnUf3W5ne",
"width": 512,
"height": 512,
"format": "svg"
},
"explorers": [
{
"name": "Siberium Testnet Explorer - blockscout",
"url": "https://explorer.test.siberium.net",
"icon": {
"url": "ipfs://QmYeMdWDZ1iaBFeSPorRyPi7RuSXTdDKTgW3rfnUf3W5ne",
"width": 512,
"height": 512,
"format": "svg"
},
"standard": "EIP3091"
}
],
"testnet": true,
"slug": "siberium-test-network"
} as const satisfies Chain;
+10 -10
View File
@@ -10,7 +10,7 @@ export default {
"faucets": [],
"nativeCurrency": {
"name": "Siberium",
"symbol": "SBR",
"symbol": "SIBR",
"decimals": 18
},
"infoURL": "https://siberium.net",
@@ -18,9 +18,9 @@ export default {
"chainId": 111111,
"networkId": 111111,
"icon": {
"url": "ipfs://QmVDeoGo2TZPDWiaNDdPCnH2tz2BCQ7viw8ugdDWnU5LFq",
"width": 1920,
"height": 1920,
"url": "ipfs://QmYeMdWDZ1iaBFeSPorRyPi7RuSXTdDKTgW3rfnUf3W5ne",
"width": 512,
"height": 512,
"format": "svg"
},
"explorers": [
@@ -28,9 +28,9 @@ export default {
"name": "Siberium Mainnet Explorer - blockscout - 1",
"url": "https://explorer.main.siberium.net",
"icon": {
"url": "ipfs://QmVDeoGo2TZPDWiaNDdPCnH2tz2BCQ7viw8ugdDWnU5LFq",
"width": 1920,
"height": 1920,
"url": "ipfs://QmYeMdWDZ1iaBFeSPorRyPi7RuSXTdDKTgW3rfnUf3W5ne",
"width": 512,
"height": 512,
"format": "svg"
},
"standard": "EIP3091"
@@ -39,9 +39,9 @@ export default {
"name": "Siberium Mainnet Explorer - blockscout - 2",
"url": "https://explorer.main.siberium.net.ru",
"icon": {
"url": "ipfs://QmVDeoGo2TZPDWiaNDdPCnH2tz2BCQ7viw8ugdDWnU5LFq",
"width": 1920,
"height": 1920,
"url": "ipfs://QmYeMdWDZ1iaBFeSPorRyPi7RuSXTdDKTgW3rfnUf3W5ne",
"width": 512,
"height": 512,
"format": "svg"
},
"standard": "EIP3091"
+37
View File
@@ -0,0 +1,37 @@
import type { Chain } from "../src/types";
export default {
"name": "Alphabet Mainnet",
"chain": "Alphabet Network",
"icon": {
"url": "ipfs://QmfTeudwVJcu7jzySBcpD9H5ZVK66nPJKRnicxend1bxfq",
"width": 500,
"height": 500,
"format": "svg"
},
"rpc": [
"https://alphabet.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"https://londonpublic.alphabetnetwork.org",
"wss://londonpublic.alphabetnetwork.org/ws/",
"https://main-rpc.com",
"wss://main-rpc.com/ws/"
],
"faucets": [],
"nativeCurrency": {
"name": "ALT",
"symbol": "ALT",
"decimals": 18
},
"infoURL": "https://alphabetnetwork.org",
"shortName": "alphabet",
"chainId": 111222333444,
"networkId": 111222333444,
"explorers": [
{
"name": "Alphabet Explorer",
"url": "https://scan.alphabetnetwork.org",
"standard": "EIP3091"
}
],
"testnet": false,
"slug": "alphabet"
} as const satisfies Chain;
+40
View File
@@ -0,0 +1,40 @@
import type { Chain } from "../src/types";
export default {
"name": "Coinbit Mainnet",
"chain": "Coinbit",
"rpc": [
"https://coinbit.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"https://coinbit-rpc-mainnet.chain.sbcrypto.app"
],
"faucets": [],
"nativeCurrency": {
"name": "Gas IDR",
"symbol": "GIDR",
"decimals": 18
},
"infoURL": "https://crypto.stockbit.com/",
"shortName": "coinbit",
"chainId": 112,
"networkId": 112,
"icon": {
"url": "ipfs://QmdaQRUbAXJGfHeJ8jaB8WVh8CCmHExq8VjvAfXpLWWQEo",
"width": 760,
"height": 760,
"format": "png"
},
"explorers": [
{
"name": "blockscout",
"url": "https://coinbit-explorer.chain.sbcrypto.app",
"icon": {
"url": "ipfs://bafybeifu5tpui7dk5cjoo54kde7pmuthvnl7sdykobuarsxgu7t2izurnq",
"width": 512,
"height": 512,
"format": "png"
},
"standard": "EIP3091"
}
],
"testnet": false,
"slug": "coinbit"
} as const satisfies Chain;
+6
View File
@@ -2,6 +2,12 @@ import type { Chain } from "../src/types";
export default {
"name": "Palm Testnet",
"chain": "Palm",
"icon": {
"url": "ipfs://bafkreihifvvbq6xzviygveivayogqiotdtpjvilu27bgqobduqemzeq7o4",
"width": 72,
"height": 72,
"format": "svg"
},
"rpc": [
"https://palm-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"https://palm-testnet.infura.io/v3/${INFURA_API_KEY}"
+6
View File
@@ -2,6 +2,12 @@ import type { Chain } from "../src/types";
export default {
"name": "Palm",
"chain": "Palm",
"icon": {
"url": "ipfs://bafkreihifvvbq6xzviygveivayogqiotdtpjvilu27bgqobduqemzeq7o4",
"width": 72,
"height": 72,
"format": "svg"
},
"rpc": [
"https://palm.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"https://palm-mainnet.infura.io/v3/${INFURA_API_KEY}"
+40
View File
@@ -0,0 +1,40 @@
import type { Chain } from "../src/types";
export default {
"name": "Symplexia Smart Chain",
"chain": "Plexchain",
"rpc": [
"https://symplexia-smart-chain.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"https://plex-rpc.plexfinance.us"
],
"faucets": [],
"nativeCurrency": {
"name": "Plex Native Token",
"symbol": "PLEX",
"decimals": 18
},
"infoURL": "https://plexfinance.us/",
"shortName": "Plexchain",
"chainId": 1149,
"networkId": 1149,
"icon": {
"url": "ipfs://QmcXzfMNSQ7SZzKemNquVoXyG5ergdqCGeLWjRYETGBTUM",
"width": 256,
"height": 256,
"format": "png"
},
"explorers": [
{
"name": "Plexchain Explorer",
"url": "https://explorer.plexfinance.us",
"icon": {
"url": "ipfs://QmcXzfMNSQ7SZzKemNquVoXyG5ergdqCGeLWjRYETGBTUM",
"width": 256,
"height": 256,
"format": "png"
},
"standard": "EIP3091"
}
],
"testnet": false,
"slug": "symplexia-smart-chain"
} as const satisfies Chain;
+40
View File
@@ -0,0 +1,40 @@
import type { Chain } from "../src/types";
export default {
"name": "Origin Testnet",
"chain": "Origin",
"rpc": [
"https://origin-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"https://json-rpc.origin.uptick.network"
],
"faucets": [],
"nativeCurrency": {
"name": "Origin",
"symbol": "UOC",
"decimals": 18
},
"infoURL": "https://www.uptick.network",
"shortName": "auoc",
"chainId": 1170,
"networkId": 1170,
"icon": {
"url": "ipfs://QmRGJ6PqYHDTWuUQ6xfnK8S82NzRXiMjTnSGat9qtLuaLP",
"width": 400,
"height": 400,
"format": "png"
},
"explorers": [
{
"name": "Origin Explorer",
"url": "https://evm-explorer.origin.uptick.network",
"icon": {
"url": "ipfs://QmRGJ6PqYHDTWuUQ6xfnK8S82NzRXiMjTnSGat9qtLuaLP",
"width": 400,
"height": 400,
"format": "png"
},
"standard": "none"
}
],
"testnet": true,
"slug": "origin-testnet"
} as const satisfies Chain;
+34
View File
@@ -0,0 +1,34 @@
import type { Chain } from "../src/types";
export default {
"name": "SatoshiChain Mainnet",
"chain": "SATS",
"icon": {
"url": "ipfs://QmRegpZQBW4o1imYNsW3d27MQjygBSU23Gf6JKje26nvs7",
"width": 1251,
"height": 1251,
"format": "png"
},
"rpc": [
"https://satoshichain.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"https://mainnet-rpc.satoshichain.io"
],
"faucets": [],
"nativeCurrency": {
"name": "SatoshiChain Coin",
"symbol": "SATS",
"decimals": 18
},
"infoURL": "https://satoshichain.net",
"shortName": "sats",
"chainId": 12009,
"networkId": 12009,
"explorers": [
{
"name": "SatoshiChain Explorer",
"url": "https://satoshiscan.io",
"standard": "EIP3091"
}
],
"testnet": false,
"slug": "satoshichain"
} as const satisfies Chain;
+36
View File
@@ -0,0 +1,36 @@
import type { Chain } from "../src/types";
export default {
"name": "BRC Chain Mainnet",
"chain": "BRC",
"rpc": [
"https://brc-chain.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"https://rpc.brcchain.io"
],
"faucets": [
"https://faucet.brcchain.io"
],
"nativeCurrency": {
"name": "BRC Chain mainnet native token",
"symbol": "BRC",
"decimals": 18
},
"infoURL": "https://bridge.brcchain.io",
"shortName": "BRC",
"chainId": 12123,
"networkId": 12123,
"icon": {
"url": "ipfs://QmX8qGX7xoZqYUpHxA85uZwQX2fgbTHvmddE1NfseDyBED",
"width": 512,
"height": 512,
"format": "png"
},
"explorers": [
{
"name": "BRC Chain Explorer",
"url": "https://scan.brcchain.io",
"standard": "EIP3091"
}
],
"testnet": false,
"slug": "brc-chain"
} as const satisfies Chain;
+18 -3
View File
@@ -10,9 +10,24 @@ export default {
},
"rpc": [
"https://fibonacci.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"https://node1.fibo-api.asia"
"https://node1.fibo-api.asia",
"https://node2.fibo-api.asia",
"https://node3.fibo-api.asia",
"https://node4.fibo-api.asia",
"https://node5.fibo-api.asia",
"https://node6.fibo-api.asia",
"https://node7.fibo-api.asia",
"https://node1.fibo-rpc.asia",
"https://node2.fibo-rpc.asia",
"https://node3.fibo-rpc.asia",
"https://node4.fibo-rpc.asia",
"https://node5.fibo-rpc.asia",
"https://node6.fibo-rpc.asia",
"https://node7.fibo-rpc.asia"
],
"faucets": [
"https://test.fibochain.org/faucets"
],
"faucets": [],
"nativeCurrency": {
"name": "FIBONACCI UTILITY TOKEN",
"symbol": "FIBO",
@@ -29,6 +44,6 @@ export default {
"standard": "EIP3091"
}
],
"testnet": false,
"testnet": true,
"slug": "fibonacci"
} as const satisfies Chain;
+34
View File
@@ -0,0 +1,34 @@
import type { Chain } from "../src/types";
export default {
"name": "ARC Mainnet",
"chain": "ARC",
"icon": {
"url": "ipfs://bafybeiady63oqduls2pm4aaykzjhahblagokhnpsc5qeq5dmkxqelh7i2i",
"width": 512,
"height": 512,
"format": "png"
},
"rpc": [
"https://arc.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"https://rpc-main-1.archiechain.io"
],
"faucets": [],
"nativeCurrency": {
"name": "ARC",
"symbol": "ARC",
"decimals": 18
},
"infoURL": "https://archiechain.io/",
"shortName": "ARC",
"chainId": 1243,
"networkId": 1243,
"explorers": [
{
"name": "archiescan",
"url": "https://app.archiescan.io",
"standard": "none"
}
],
"testnet": false,
"slug": "arc"
} as const satisfies Chain;
+36
View File
@@ -0,0 +1,36 @@
import type { Chain } from "../src/types";
export default {
"name": "ARC Testnet",
"chain": "ARC",
"icon": {
"url": "ipfs://bafybeiady63oqduls2pm4aaykzjhahblagokhnpsc5qeq5dmkxqelh7i2i",
"width": 512,
"height": 512,
"format": "png"
},
"rpc": [
"https://arc-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"https://rpc-test-1.archiechain.io"
],
"faucets": [
"https://faucet.archiechain.io"
],
"nativeCurrency": {
"name": "ARC",
"symbol": "ARC",
"decimals": 18
},
"infoURL": "https://archiechain.io/",
"shortName": "TARC",
"chainId": 1244,
"networkId": 1244,
"explorers": [
{
"name": "archiescan",
"url": "https://testnet.archiescan.io",
"standard": "none"
}
],
"testnet": true,
"slug": "arc-testnet"
} as const satisfies Chain;
+6
View File
@@ -3,6 +3,12 @@ export default {
"name": "Rikeza Network Testnet",
"title": "Rikeza Network Testnet",
"chain": "Rikeza",
"icon": {
"url": "ipfs://QmfJ1Qxpzi6CSLeFeWY1Bwe435CpT5za5WfrLUE7vNzZfy",
"width": 512,
"height": 512,
"format": "png"
},
"rpc": [
"https://rikeza-network-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"https://testnet-rpc.rikscan.com"
+37
View File
@@ -0,0 +1,37 @@
import type { Chain } from "../src/types";
export default {
"name": "Chaos (SKALE Testnet)",
"title": "Chaos Testnet",
"chain": "staging-fast-active-bellatrix",
"rpc": [
"https://chaos-skale-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"https://staging-v3.skalenodes.com/v1/staging-fast-active-bellatrix"
],
"faucets": [
"https://sfuel.skale.network/staging/chaos"
],
"nativeCurrency": {
"name": "sFUEL",
"symbol": "sFUEL",
"decimals": 18
},
"infoURL": "https://docs.skale.network/develop/",
"shortName": "chaos-tenet",
"chainId": 1351057110,
"networkId": 1351057110,
"explorers": [
{
"name": "Blockscout",
"url": "https://staging-fast-active-bellatrix.explorer.staging-v3.skalenodes.com",
"icon": {
"url": "ipfs://QmbYYCoU2G4LUfRr9ofGowF3eatfvWv9FiPVhqKndZeqwA",
"width": 400,
"height": 400,
"format": "png"
},
"standard": "EIP3091"
}
],
"testnet": true,
"slug": "chaos-skale-testnet"
} as const satisfies Chain;
+40
View File
@@ -0,0 +1,40 @@
import type { Chain } from "../src/types";
export default {
"name": "Deamchain Mainnet",
"chain": "Deamchain",
"icon": {
"url": "ipfs://QmXvHWmjfXKdZMSz7x82NR4SjEqigKdJELVHbnzUPkj17F",
"width": 512,
"height": 512,
"format": "svg"
},
"rpc": [
"https://deamchain.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"https://mainnet.deamchain.com"
],
"faucets": [],
"nativeCurrency": {
"name": "Deamchain Native Token",
"symbol": "DEAM",
"decimals": 18
},
"infoURL": "https://deamchain.com",
"shortName": "deam",
"chainId": 136,
"networkId": 136,
"explorers": [
{
"name": "Deamchain Block Explorer",
"url": "https://scan.deamchain.com",
"standard": "EIP3091",
"icon": {
"url": "ipfs://QmXvHWmjfXKdZMSz7x82NR4SjEqigKdJELVHbnzUPkj17F",
"width": 512,
"height": 512,
"format": "svg"
}
}
],
"testnet": false,
"slug": "deamchain"
} as const satisfies Chain;
+34
View File
@@ -0,0 +1,34 @@
import type { Chain } from "../src/types";
export default {
"name": "Zafirium Mainnet",
"chain": "ZAFIC",
"icon": {
"url": "ipfs://QmZT1Wq3P4YbgKBSUmCtgbs5ijPF5d91BzaMPh7Aub8d8t",
"width": 192,
"height": 192,
"format": "png"
},
"rpc": [
"https://zafirium.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"https://mainnet.zakumi.io"
],
"faucets": [],
"nativeCurrency": {
"name": "Zakumi Chain Native Token",
"symbol": "ZAFIC",
"decimals": 18
},
"infoURL": "https://www.zakumi.io",
"shortName": "zafic",
"chainId": 1369,
"networkId": 1369,
"explorers": [
{
"name": "zafirium-explorer",
"url": "https://explorer.zakumi.io",
"standard": "none"
}
],
"testnet": false,
"slug": "zafirium"
} as const satisfies Chain;
+1 -1
View File
@@ -10,8 +10,8 @@ export default {
},
"rpc": [
"https://polygon.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"https://polygon-mainnet.g.alchemy.com/v2/${ALCHEMY_API_KEY}",
"https://polygon-mainnet.infura.io/v3/${INFURA_API_KEY}",
"https://polygon-mainnet.g.alchemy.com/v2/${ALCHEMY_API_KEY}",
"https://polygon-rpc.com/",
"https://rpc-mainnet.matic.network",
"https://matic-mainnet.chainstacklabs.com",
+34
View File
@@ -0,0 +1,34 @@
import type { Chain } from "../src/types";
export default {
"name": "Joseon Mainnet",
"chain": "Joseon",
"icon": {
"url": "ipfs://QmQjwcNRCLXU8JBtSkPLUnbWVrpoqbnZVffpJ9Bu8rG34e",
"width": 148,
"height": 148,
"format": "svg"
},
"rpc": [
"https://joseon.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"https://rpc.modchain.net/blockchain.joseon.com/rpc"
],
"faucets": [],
"nativeCurrency": {
"name": "Joseon Mun",
"symbol": "JSM",
"decimals": 18
},
"infoURL": "https://www.joseon.com/",
"shortName": "mun",
"chainId": 1392,
"networkId": 1392,
"explorers": [
{
"name": "BlockExplorer",
"url": "https://www.blockexplorer.com",
"standard": "EIP3091"
}
],
"testnet": false,
"slug": "joseon"
} as const satisfies Chain;
+34
View File
@@ -0,0 +1,34 @@
import type { Chain } from "../src/types";
export default {
"name": "ICPlaza Mainnet",
"chain": "ICPlaza",
"icon": {
"url": "ipfs://QmQpKKwpqrx77VA4SJLEWhuv9eLFMcVV9uvxRCLb6gdgCX",
"width": 847,
"height": 906,
"format": "png"
},
"rpc": [
"https://icplaza.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"https://rpcmainnet.ic-plaza.org/"
],
"faucets": [],
"nativeCurrency": {
"name": "ict",
"symbol": "ict",
"decimals": 18
},
"infoURL": "https://docs.ic-plaza.org/",
"shortName": "ICPlaza",
"chainId": 142857,
"networkId": 142857,
"explorers": [
{
"name": "ICPlaza",
"url": "https://browsemainnet.ic-plaza.org/index",
"standard": "none"
}
],
"testnet": false,
"slug": "icplaza"
} as const satisfies Chain;
+6
View File
@@ -3,6 +3,12 @@ export default {
"name": "Rikeza Network Mainnet",
"title": "Rikeza Network Mainnet",
"chain": "Rikeza",
"icon": {
"url": "ipfs://QmfJ1Qxpzi6CSLeFeWY1Bwe435CpT5za5WfrLUE7vNzZfy",
"width": 512,
"height": 512,
"format": "png"
},
"rpc": [
"https://rikeza-network.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"https://rpc.rikscan.com"
+28
View File
@@ -0,0 +1,28 @@
import type { Chain } from "../src/types";
export default {
"name": "Living Assets Mainnet",
"chain": "LAS",
"icon": {
"url": "ipfs://QmRidubY7BVwC737BQwGEttenP1npAXN7ZNryktE416uUW",
"width": 500,
"height": 500,
"format": "jpg"
},
"rpc": [
"https://living-assets.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"https://beta.mainnet.livingassets.io/rpc",
"https://gamma.mainnet.livingassets.io/rpc"
],
"faucets": [],
"nativeCurrency": {
"name": "LAS",
"symbol": "LAS",
"decimals": 18
},
"infoURL": "https://dev.livingassets.io/",
"shortName": "LAS",
"chainId": 1440,
"networkId": 1440,
"testnet": false,
"slug": "living-assets"
} as const satisfies Chain;
+31
View File
@@ -0,0 +1,31 @@
import type { Chain } from "../src/types";
export default {
"name": "XRP Ledger EVM Devnet Sidechain",
"chain": "XRPL",
"shortName": "XRPL-EVM-Devnet-Sidechain",
"chainId": 1440001,
"testnet": true,
"icon": {
"format": "png",
"url": "ipfs://bafkreidmgxjwjircegjkvysgz25b2ukw6h7axoirkxv6idupzzqsdrljgy",
"width": 780,
"height": 680
},
"rpc": [
"https://xrp-ledger-evm-devnet-sidechain.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"https://rpc-evm-sidechain.xrpl.org"
],
"nativeCurrency": {
"decimals": 18,
"name": "XRP",
"symbol": "XRP"
},
"explorers": [
{
"url": "https://evm-sidechain.xrpl.org/",
"name": "XRP Ledger Explorer",
"standard": "EIP3091"
}
],
"slug": "xrp-ledger-evm-devnet-sidechain"
} as const satisfies Chain;
+34
View File
@@ -0,0 +1,34 @@
import type { Chain } from "../src/types";
export default {
"name": "GIL Testnet",
"chain": "GIL",
"icon": {
"url": "ipfs://QmeDXUAYgQxwaSJLsqWgTqnrJVwicgEyNf9199xAMyRkqA",
"width": 243,
"height": 243,
"format": "svg"
},
"rpc": [
"https://gil-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"https://rpc.giltestnet.com"
],
"faucets": [],
"nativeCurrency": {
"name": "GANG",
"symbol": "GANG",
"decimals": 18
},
"infoURL": "https://gaussgang.com/",
"shortName": "gil",
"chainId": 1452,
"networkId": 1452,
"explorers": [
{
"name": "GIL Explorer",
"url": "https://explorer.giltestnet.com",
"standard": "EIP3091"
}
],
"testnet": true,
"slug": "gil-testnet"
} as const satisfies Chain;
+42
View File
@@ -0,0 +1,42 @@
import type { Chain } from "../src/types";
export default {
"name": "Six Protocol Testnet",
"chain": "FIVENET",
"icon": {
"url": "ipfs://QmP93z696v8Hetu13peY2oEHDXq8Bj5CqaDRwpVkpnM15A",
"width": 512,
"height": 512,
"format": "png"
},
"rpc": [
"https://six-protocol-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"https://rpc-evm.fivenet.sixprotocol.net"
],
"faucets": [
"https://faucet.sixprotocol.net"
],
"nativeCurrency": {
"name": "SIX testnet evm token",
"symbol": "tSIX",
"decimals": 18
},
"infoURL": "https://six.network/",
"shortName": "sixt",
"chainId": 150,
"networkId": 150,
"explorers": [
{
"name": "SIX Scan fivenet",
"url": "https://sixscan.io/fivenet",
"standard": "none",
"icon": {
"url": "ipfs://QmP93z696v8Hetu13peY2oEHDXq8Bj5CqaDRwpVkpnM15A",
"width": 512,
"height": 512,
"format": "png"
}
}
],
"testnet": true,
"slug": "six-protocol-testnet"
} as const satisfies Chain;
+29
View File
@@ -0,0 +1,29 @@
import type { Chain } from "../src/types";
export default {
"name": "ChainX-EVM",
"chain": "ChainX",
"rpc": [
"https://chainx-evm.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"https://mainnet.chainx.org/rpc",
"https://mainnet2.chainx.org/rpc"
],
"faucets": [],
"nativeCurrency": {
"name": "BTC",
"symbol": "BTC",
"decimals": 18
},
"infoURL": "https://chainx.org",
"shortName": "chainx",
"chainId": 1501,
"networkId": 1501,
"explorers": [
{
"name": "chainx-evm scan",
"url": "https://evm.chainx.org",
"standard": "none"
}
],
"testnet": false,
"slug": "chainx-evm"
} as const satisfies Chain;
+43
View File
@@ -0,0 +1,43 @@
import type { Chain } from "../src/types";
export default {
"name": "Tenet Testnet",
"title": "Tenet Testnet",
"chain": "TENET",
"icon": {
"url": "ipfs://Qmc1gqjWTzNo4pyFSGtQuCu7kRSZZBUVybtTjHn2nNEEPA",
"width": 640,
"height": 640,
"format": "svg"
},
"rpc": [
"https://tenet-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"https://rpc.testnet.tenet.org"
],
"faucets": [
"https://faucet.testnet.tenet.org"
],
"nativeCurrency": {
"name": "TENET",
"symbol": "TENET",
"decimals": 18
},
"infoURL": "https://tenet.org/",
"shortName": "tenet-testnet",
"chainId": 155,
"networkId": 155,
"explorers": [
{
"name": "TenetScan Testnet",
"url": "https://testnet.tenetscan.io",
"icon": {
"url": "ipfs://Qmc1gqjWTzNo4pyFSGtQuCu7kRSZZBUVybtTjHn2nNEEPA",
"width": 640,
"height": 640,
"format": "svg"
},
"standard": "EIP3091"
}
],
"testnet": true,
"slug": "tenet-testnet"
} as const satisfies Chain;
+43
View File
@@ -0,0 +1,43 @@
import type { Chain } from "../src/types";
export default {
"name": "EOS EVM Network Testnet",
"chain": "EOS",
"icon": {
"url": "ipfs://QmXkK5D5GWizvY1FmL6pV8cYLAbhehKETubktCgh6qDJZb",
"width": 500,
"height": 750,
"format": "png"
},
"rpc": [
"https://eos-evm-network-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"https://api.testnet.evm.eosnetwork.com"
],
"faucets": [],
"nativeCurrency": {
"name": "EOS",
"symbol": "EOS",
"decimals": 18
},
"infoURL": "https://eosnetwork.com/eos-evm",
"shortName": "eos-testnet",
"chainId": 15557,
"networkId": 15557,
"explorers": [
{
"name": "EOS EVM Explorer",
"url": "https://explorer.testnet.evm.eosnetwork.com",
"standard": "EIP3091"
}
],
"parent": {
"type": "L2",
"chain": "eip155-1",
"bridges": [
{
"url": "https://bridge.testnet.evm.eosnetwork.com"
}
]
},
"testnet": true,
"slug": "eos-evm-network-testnet"
} as const satisfies Chain;
+41
View File
@@ -0,0 +1,41 @@
import type { Chain } from "../src/types";
export default {
"name": "Tenet",
"title": "Tenet Mainnet",
"chain": "TENET",
"icon": {
"url": "ipfs://Qmc1gqjWTzNo4pyFSGtQuCu7kRSZZBUVybtTjHn2nNEEPA",
"width": 640,
"height": 640,
"format": "svg"
},
"rpc": [
"https://tenet.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"https://rpc.tenet.org"
],
"faucets": [],
"nativeCurrency": {
"name": "TENET",
"symbol": "TENET",
"decimals": 18
},
"infoURL": "https://tenet.org/",
"shortName": "tenet",
"chainId": 1559,
"networkId": 1559,
"explorers": [
{
"name": "TenetScan Mainnet",
"url": "https://tenetscan.io",
"icon": {
"url": "ipfs://Qmc1gqjWTzNo4pyFSGtQuCu7kRSZZBUVybtTjHn2nNEEPA",
"width": 640,
"height": 640,
"format": "svg"
},
"standard": "EIP3091"
}
],
"testnet": false,
"slug": "tenet"
} as const satisfies Chain;
+42
View File
@@ -0,0 +1,42 @@
import type { Chain } from "../src/types";
export default {
"name": "OEBlock Testnet",
"chain": "OEBt",
"features": [
{
"name": "EIP155"
},
{
"name": "EIP1559"
}
],
"rpc": [
"https://oeblock-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"https://testnet-rpc.oeblock.com"
],
"faucets": [],
"nativeCurrency": {
"name": "OEBlock",
"symbol": "OEB",
"decimals": 18
},
"infoURL": "https://www.oeblock.com/",
"shortName": "obe",
"chainId": 156,
"networkId": 156,
"icon": {
"url": "ipfs://QmdoQUfYqtkWMfjtoPv2KWDY4MxDDSsyWgwXtCx6jfkezz",
"width": 155,
"height": 177,
"format": "png"
},
"explorers": [
{
"name": "OEScan explorer",
"url": "https://testnet.oescan.io",
"standard": "EIP3091"
}
],
"testnet": true,
"slug": "oeblock-testnet"
} as const satisfies Chain;
+36
View File
@@ -0,0 +1,36 @@
import type { Chain } from "../src/types";
export default {
"name": "Taro Testnet",
"chain": "gETH",
"shortName": "Taro",
"chainId": 1582,
"testnet": true,
"icon": {
"format": "svg",
"url": "ipfs://bafybeibfpls2ealp4e5fdeoxessfjjkldgjnrcx2erph7524pg7alskk6a/1f9cb.svg",
"width": 512,
"height": 512
},
"rpc": [
"https://taro-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"https://taro-testnet.calderachain.xyz/http"
],
"nativeCurrency": {
"decimals": 18,
"name": "Ether",
"symbol": "gETH"
},
"explorers": [
{
"url": "https://explorer.tarotestnet.com",
"name": "Taro Testnet Explorer",
"standard": "EIP3091"
}
],
"faucets": [
"https://tarotestnet.com"
],
"infoURL": "https://tarotestnet.com",
"networkId": 1582,
"slug": "taro-testnet"
} as const satisfies Chain;
+2 -2
View File
@@ -4,7 +4,7 @@ export default {
"chain": "ATH",
"rpc": [
"https://atheios.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"https://wallet.atheios.com:8797"
"https://rpc.atheios.org/"
],
"faucets": [],
"nativeCurrency": {
@@ -12,7 +12,7 @@ export default {
"symbol": "ATH",
"decimals": 18
},
"infoURL": "https://atheios.com",
"infoURL": "https://atheios.org",
"shortName": "ath",
"chainId": 1620,
"networkId": 11235813,
+33
View File
@@ -0,0 +1,33 @@
import type { Chain } from "../src/types";
export default {
"name": "Omni Testnet 1",
"chain": "Omni",
"rpc": [
"https://omni-testnet-1.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"https://testnet-1.omni.network"
],
"features": [
{
"name": "EIP155"
}
],
"faucets": [],
"nativeCurrency": {
"name": "Omni",
"symbol": "OMNI",
"decimals": 18
},
"infoURL": "https://docs.omni.network/",
"shortName": "omni_testnet",
"chainId": 165,
"networkId": 165,
"explorers": [
{
"name": "Omni Explorer",
"url": "https://testnet-1.explorer.omni.network",
"standard": "EIP3091"
}
],
"testnet": true,
"slug": "omni-testnet-1"
} as const satisfies Chain;
+34
View File
@@ -0,0 +1,34 @@
import type { Chain } from "../src/types";
export default {
"name": "Genesys Mainnet",
"chain": "Genesys",
"icon": {
"url": "ipfs://bafkreie6nai3yhykcdlsyshn5lbcbyba5y7zwsqg6owcfek2urhoucr6rm",
"width": 800,
"height": 800,
"format": "png"
},
"rpc": [
"https://genesys.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"https://rpc.genesys.network"
],
"faucets": [],
"nativeCurrency": {
"name": "Genesys",
"symbol": "GSYS",
"decimals": 18
},
"infoURL": "https://www.genesys.network/",
"shortName": "Genesys",
"chainId": 16507,
"networkId": 16507,
"explorers": [
{
"name": "GchainExplorer",
"url": "https://gchainexplorer.genesys.network",
"standard": "EIP3091"
}
],
"testnet": false,
"slug": "genesys"
} as const satisfies Chain;
@@ -1,8 +1,8 @@
import type { Chain } from "../src/types";
export default {
"name": "Horizen Yuma Testnet",
"shortName": "Yuma",
"chain": "Yuma",
"name": "Horizen Gobi Testnet",
"shortName": "Gobi",
"chain": "Gobi",
"icon": {
"url": "ipfs://QmSFMBk3rMyu45Sy9KQHjgArFj4HdywANNYrSosLMUdcti",
"width": 1213,
@@ -10,8 +10,9 @@ export default {
"format": "png"
},
"rpc": [
"https://horizen-yuma-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"https://yuma-testnet.horizenlabs.io/ethv1"
"https://horizen-gobi-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"https://gobi-testnet.horizenlabs.io/ethv1",
"https://rpc.ankr.com/horizen_testnet_evm"
],
"features": [
{
@@ -22,7 +23,7 @@ export default {
}
],
"faucets": [
"https://yuma-testnet-faucet.horizen.io"
"https://faucet.horizen.io"
],
"nativeCurrency": {
"name": "Testnet Zen",
@@ -30,13 +31,13 @@ export default {
"decimals": 18
},
"infoURL": "https://horizen.io/",
"chainId": 1662,
"networkId": 1662,
"chainId": 1663,
"networkId": 1663,
"slip44": 121,
"explorers": [
{
"name": "Yuma Testnet Block Explorer",
"url": "https://yuma-explorer.horizen.io",
"name": "Gobi Testnet Block Explorer",
"url": "https://gobi-explorer.horizen.io",
"icon": {
"url": "ipfs://QmSFMBk3rMyu45Sy9KQHjgArFj4HdywANNYrSosLMUdcti",
"width": 1213,
@@ -47,5 +48,5 @@ export default {
}
],
"testnet": true,
"slug": "horizen-yuma-testnet"
"slug": "horizen-gobi-testnet"
} as const satisfies Chain;
+48
View File
@@ -0,0 +1,48 @@
import type { Chain } from "../src/types";
export default {
"name": "IRIShub Testnet",
"chain": "IRIShub",
"rpc": [
"https://irishub-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"https://evmrpc.nyancat.irisnet.org"
],
"features": [
{
"name": "EIP155"
},
{
"name": "EIP1559"
}
],
"faucets": [],
"nativeCurrency": {
"name": "Eris",
"symbol": "ERIS",
"decimals": 18
},
"infoURL": "https://www.irisnet.org",
"shortName": "nyancat",
"chainId": 16688,
"networkId": 16688,
"icon": {
"url": "ipfs://QmRaSx7AX1VDgcqjwLgSDP4WZmKBHPdHhbjkcEEXPA2Fnc",
"width": 1062,
"height": 822,
"format": "png"
},
"explorers": [
{
"name": "IRISHub Testnet Cosmos Explorer (IOBScan)",
"url": "https://nyancat.iobscan.io",
"standard": "none",
"icon": {
"url": "ipfs://QmRaSx7AX1VDgcqjwLgSDP4WZmKBHPdHhbjkcEEXPA2Fnc",
"width": 1062,
"height": 822,
"format": "png"
}
}
],
"testnet": true,
"slug": "irishub-testnet"
} as const satisfies Chain;
-34
View File
@@ -1,34 +0,0 @@
import type { Chain } from "../src/types";
export default {
"name": "Taiko (Alpha-2 Testnet)",
"chain": "ETH",
"icon": {
"url": "ipfs://QmWMUDmNHzCtism9dYK1JooerZJ4da6kGt67HAQmLiEykc",
"width": 1001,
"height": 1001,
"format": "png"
},
"rpc": [
"https://taiko-alpha-2-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"https://rpc.a2.taiko.xyz"
],
"faucets": [],
"nativeCurrency": {
"name": "Ether",
"symbol": "ETH",
"decimals": 18
},
"infoURL": "https://taiko.xyz",
"shortName": "taiko-a2",
"chainId": 167004,
"networkId": 167004,
"explorers": [
{
"name": "blockscout",
"url": "https://explorer.a2.taiko.xyz",
"standard": "EIP3091"
}
],
"testnet": true,
"slug": "taiko-alpha-2-testnet"
} as const satisfies Chain;
+35
View File
@@ -0,0 +1,35 @@
import type { Chain } from "../src/types";
export default {
"name": "Taiko (Alpha-3 Testnet)",
"chain": "ETH",
"status": "active",
"icon": {
"url": "ipfs://QmcHdmVr5VRUJq13jnM6tgah5Ge7hn3Dm14eY6vwivJ5ui",
"width": 288,
"height": 258,
"format": "png"
},
"rpc": [
"https://taiko-alpha-3-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"https://rpc.test.taiko.xyz"
],
"faucets": [],
"nativeCurrency": {
"name": "Ether",
"symbol": "ETH",
"decimals": 18
},
"infoURL": "https://taiko.xyz",
"shortName": "taiko-a3",
"chainId": 167005,
"networkId": 167005,
"explorers": [
{
"name": "blockscout",
"url": "https://explorer.test.taiko.xyz",
"standard": "EIP3091"
}
],
"testnet": true,
"slug": "taiko-alpha-3-testnet"
} as const satisfies Chain;
+1 -1
View File
@@ -14,7 +14,7 @@ export default {
},
"features": [],
"infoURL": "https://hashpalette.com/",
"shortName": "PaletteChain",
"shortName": "PCM",
"chainId": 1718,
"networkId": 1718,
"icon": {
+41
View File
@@ -0,0 +1,41 @@
import type { Chain } from "../src/types";
export default {
"name": "Palette Chain Testnet",
"chain": "PLT",
"rpc": [
"https://palette-chain-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"https://palette-opennet.com:22000"
],
"faucets": [],
"nativeCurrency": {
"name": "Palette Token",
"symbol": "PLT",
"decimals": 18
},
"features": [],
"infoURL": "https://hashpalette.com/",
"shortName": "PCT",
"chainId": 17180,
"networkId": 17180,
"icon": {
"url": "ipfs://QmPCEGZD1p1keTT2YfPp725azx1r9Ci41hejeUuGL2whFA",
"width": 800,
"height": 800,
"format": "png"
},
"explorers": [
{
"name": "Palettescan",
"url": "https://testnet.palettescan.com",
"icon": {
"url": "ipfs://QmPCEGZD1p1keTT2YfPp725azx1r9Ci41hejeUuGL2whFA",
"width": 800,
"height": 800,
"format": "png"
},
"standard": "none"
}
],
"testnet": true,
"slug": "palette-chain-testnet"
} as const satisfies Chain;
+42
View File
@@ -0,0 +1,42 @@
import type { Chain } from "../src/types";
export default {
"name": "PartyChain",
"chain": "mainnet",
"rpc": [
"https://partychain.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"https://tea.mining4people.com/rpc",
"http://172.104.194.36:8545"
],
"faucets": [],
"nativeCurrency": {
"name": "Grams",
"symbol": "GRAMS",
"decimals": 18
},
"infoURL": "TeaPartyCrypto.com",
"shortName": "TeaParty",
"chainId": 1773,
"networkId": 1773,
"icon": {
"url": "ipfs://QmerDBFoXvgev2xx9U71gAaAK4CtxaaQVaAPf9Qi6UF9MS",
"width": 400,
"height": 400,
"format": "jpg"
},
"status": "incubating",
"explorers": [
{
"name": "PartyExplorer",
"url": "https://partyexplorer.co",
"icon": {
"url": "ipfs://QmerDBFoXvgev2xx9U71gAaAK4CtxaaQVaAPf9Qi6UF9MS",
"width": 400,
"height": 400,
"format": "jpg"
},
"standard": "EIP3091"
}
],
"testnet": false,
"slug": "partychain"
} as const satisfies Chain;
+34
View File
@@ -0,0 +1,34 @@
import type { Chain } from "../src/types";
export default {
"name": "Gauss Mainnet",
"chain": "Gauss",
"icon": {
"url": "ipfs://QmeDXUAYgQxwaSJLsqWgTqnrJVwicgEyNf9199xAMyRkqA",
"width": 243,
"height": 243,
"format": "svg"
},
"rpc": [
"https://gauss.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"https://rpc.gaussgang.com"
],
"faucets": [],
"nativeCurrency": {
"name": "GANG",
"symbol": "GANG",
"decimals": 18
},
"infoURL": "https://gaussgang.com/",
"shortName": "gauss",
"chainId": 1777,
"networkId": 1777,
"explorers": [
{
"name": "Gauss Explorer",
"url": "https://explorer.gaussgang.com",
"standard": "EIP3091"
}
],
"testnet": false,
"slug": "gauss"
} as const satisfies Chain;
+46
View File
@@ -0,0 +1,46 @@
import type { Chain } from "../src/types";
export default {
"name": "EOS EVM Network",
"chain": "EOS",
"icon": {
"url": "ipfs://QmXkK5D5GWizvY1FmL6pV8cYLAbhehKETubktCgh6qDJZb",
"width": 500,
"height": 750,
"format": "png"
},
"rpc": [
"https://eos-evm-network.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"https://api.evm.eosnetwork.com"
],
"faucets": [],
"nativeCurrency": {
"name": "EOS",
"symbol": "EOS",
"decimals": 18
},
"infoURL": "https://eosnetwork.com/eos-evm",
"shortName": "eos",
"chainId": 17777,
"networkId": 17777,
"explorers": [
{
"name": "EOS EVM Explorer",
"url": "https://explorer.evm.eosnetwork.com",
"standard": "EIP3091"
}
],
"parent": {
"type": "L2",
"chain": "eip155-1",
"bridges": [
{
"url": "https://bridge.evm.eosnetwork.com"
},
{
"url": "https://app.multichain.org"
}
]
},
"testnet": false,
"slug": "eos-evm-network"
} as const satisfies Chain;
+14 -2
View File
@@ -1,7 +1,7 @@
import type { Chain } from "../src/types";
export default {
"name": "Kerleano",
"title": "Proof of Carbon Reduction testnet",
"title": "Proof of Climate awaReness testnet",
"chain": "CRC",
"status": "active",
"rpc": [
@@ -13,7 +13,7 @@ export default {
"https://github.com/ethereum-pocr/kerleano/blob/main/docs/faucet.md"
],
"nativeCurrency": {
"name": "Carbon Reduction Coin",
"name": "Climate awaReness Coin",
"symbol": "CRC",
"decimals": 18
},
@@ -21,10 +21,22 @@ export default {
"shortName": "kerleano",
"chainId": 1804,
"networkId": 1804,
"icon": {
"url": "ipfs://QmRLwpq47tyEd3rfK4tKRhbTvyb3fc7PCutExnL1XAb37A",
"width": 334,
"height": 360,
"format": "png"
},
"explorers": [
{
"name": "Lite Explorer",
"url": "https://ethereum-pocr.github.io/explorer/kerleano",
"icon": {
"url": "ipfs://QmRLwpq47tyEd3rfK4tKRhbTvyb3fc7PCutExnL1XAb37A",
"width": 334,
"height": 360,
"format": "png"
},
"standard": "EIP3091"
}
],
+13 -7
View File
@@ -16,19 +16,25 @@ export default {
"shortName": "GTH",
"chainId": 192837465,
"networkId": 192837465,
"explorers": [
{
"name": "Blockscout",
"url": "https://explorer.gather.network",
"standard": "none"
}
],
"icon": {
"url": "ipfs://Qmc9AJGg9aNhoH56n3deaZeUc8Ty1jDYJsW6Lu6hgSZH4S",
"height": 512,
"width": 512,
"format": "png"
},
"explorers": [
{
"name": "Blockscout",
"url": "https://explorer.gather.network",
"icon": {
"url": "ipfs://QmTYR8CeFiNbJ1zJHnE3DK2wEN18r2y2vqSKUcLweUT2Gz",
"width": 1080,
"height": 1080,
"format": "svg"
},
"standard": "none"
}
],
"testnet": false,
"slug": "gather-network"
} as const satisfies Chain;
+4 -4
View File
@@ -4,17 +4,17 @@ export default {
"chain": "TSCS",
"rpc": [
"https://super-smart-chain-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"https://testnet.superexchain.com:8544"
"https://testnetrpc.scschain.com"
],
"faucets": [
"https://testnet.superexchain.com"
"https://testnet.scschain.com"
],
"nativeCurrency": {
"name": "Super Chain Native Token",
"symbol": "TSCS",
"decimals": 18
},
"infoURL": "https://testnet.superexchain.com",
"infoURL": "https://testnet.scschain.com",
"shortName": "tscs",
"chainId": 1969,
"networkId": 1969,
@@ -27,7 +27,7 @@ export default {
"explorers": [
{
"name": "blockscout",
"url": "https://testnetscan.superexchain.com",
"url": "https://testnetscan.scschain.com",
"standard": "EIP3091"
}
],
+3 -3
View File
@@ -4,7 +4,7 @@ export default {
"chain": "SCS",
"rpc": [
"https://super-smart-chain.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"https://superexchain.com:8545"
"https://rpc.scschain.com"
],
"faucets": [],
"nativeCurrency": {
@@ -12,7 +12,7 @@ export default {
"symbol": "SCS",
"decimals": 18
},
"infoURL": "https://superexchain.com",
"infoURL": "https://scschain.com",
"shortName": "scs",
"chainId": 1970,
"networkId": 1970,
@@ -25,7 +25,7 @@ export default {
"explorers": [
{
"name": "blockscout",
"url": "https://scan.superexchain.com",
"url": "https://scan.scschain.com",
"standard": "EIP3091"
}
],
+4 -4
View File
@@ -12,15 +12,15 @@ export default {
"symbol": "BTT",
"decimals": 18
},
"infoURL": "https://bittorrentchain.io/",
"infoURL": "https:/bt.io",
"shortName": "BTT",
"chainId": 199,
"networkId": 199,
"explorers": [
{
"name": "bttcscan",
"url": "https://scan.bittorrentchain.io",
"standard": "none"
"name": "BitTorrent Chain Explorer",
"url": "https://bttcscan.com",
"standard": "EIP3091"
}
],
"testnet": false,
+1 -1
View File
@@ -28,7 +28,7 @@ export default {
"explorers": [
{
"name": "edexa-testnet",
"url": "https://explorer.edexa.com",
"url": "https://explorer.testnet.edexa.com",
"standard": "EIP3091"
}
],
+2 -2
View File
@@ -11,8 +11,8 @@ export default {
"rpc": [
"https://dogechain.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"https://rpc.dogechain.dog",
"https://rpc-us.dogechain.dog",
"https://rpc01.dogechain.dog"
"https://rpc01-sg.dogechain.dog",
"https://rpc.ankr.com/dogechain"
],
"faucets": [],
"nativeCurrency": {
+37
View File
@@ -0,0 +1,37 @@
import type { Chain } from "../src/types";
export default {
"name": "Pego Network",
"chain": "PEGO",
"rpc": [
"https://pego-network.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"https://pegorpc.com",
"https://node1.pegorpc.com",
"https://node2.pegorpc.com",
"https://node3.pegorpc.com"
],
"faucets": [],
"nativeCurrency": {
"name": "Pego Native Token",
"symbol": "PG",
"decimals": 18
},
"infoURL": "https://pego.network",
"shortName": "pg",
"chainId": 20201022,
"networkId": 20201022,
"icon": {
"url": "ipfs://QmVf1afskRHuZjFSLCZH8397KrVNAoYgyAePX9VMBrPVtx",
"width": 246,
"height": 247,
"format": "png"
},
"explorers": [
{
"name": "Pego Network Explorer",
"url": "https://scan.pego.network",
"standard": "EIP3091"
}
],
"testnet": false,
"slug": "pego-network"
} as const satisfies Chain;
+21
View File
@@ -0,0 +1,21 @@
import type { Chain } from "../src/types";
export default {
"name": "Shrapnel Subnet",
"chain": "shrapnel",
"rpc": [
"https://shrapnel-subnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"https://subnets.avax.network/shrapnel/mainnet/rpc"
],
"faucets": [],
"nativeCurrency": {
"name": "Shrapnel Gas Token",
"symbol": "SHRAPG",
"decimals": 18
},
"infoURL": "https://www.shrapnel.com/",
"shortName": "Shrapnel",
"chainId": 2044,
"networkId": 2044,
"testnet": false,
"slug": "shrapnel-subnet"
} as const satisfies Chain;
+21
View File
@@ -0,0 +1,21 @@
import type { Chain } from "../src/types";
export default {
"name": "Structx Mainnet",
"chain": "utx",
"rpc": [
"https://structx.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"https://mainnet.structx.io"
],
"faucets": [],
"nativeCurrency": {
"name": "Notes",
"symbol": "utx",
"decimals": 18
},
"infoURL": "https://structx.io",
"shortName": "utx",
"chainId": 208,
"networkId": 208,
"testnet": false,
"slug": "structx"
} as const satisfies Chain;
+2 -2
View File
@@ -19,8 +19,8 @@ export default {
"networkId": 1,
"icon": {
"url": "ipfs://QmT7PSXBiVBma6E15hNkivmstqLu3JSnG1jXN5pTmcCGRC",
"width": 200,
"height": 200,
"width": 180,
"height": 180,
"format": "png"
},
"explorers": [
+28
View File
@@ -0,0 +1,28 @@
import type { Chain } from "../src/types";
export default {
"name": "Metaplayerone Dubai Testnet",
"chain": "MP1 Dubai-Testnet",
"rpc": [
"https://metaplayerone-dubai-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"https://rpc-dubai.mp1network.com/"
],
"faucets": [],
"nativeCurrency": {
"name": "Metaunit",
"symbol": "MEU",
"decimals": 18
},
"infoURL": "https://docs.metaplayer.one/",
"shortName": "MEU",
"chainId": 2124,
"networkId": 2124,
"explorers": [
{
"name": "MP1Scan",
"url": "https://dubai.mp1scan.io",
"standard": "EIP3091"
}
],
"testnet": true,
"slug": "metaplayerone-dubai-testnet"
} as const satisfies Chain;
+2 -2
View File
@@ -9,11 +9,11 @@ export default {
"faucets": [],
"nativeCurrency": {
"name": "Bitcoin",
"symbol": "eBTC",
"symbol": "BTC",
"decimals": 18
},
"infoURL": "https://bitcoinevm.com",
"shortName": "eBTC",
"shortName": "BTC",
"chainId": 2203,
"networkId": 2203,
"icon": {
+2 -2
View File
@@ -21,8 +21,8 @@ export default {
"networkId": 1,
"icon": {
"url": "ipfs://QmT7PSXBiVBma6E15hNkivmstqLu3JSnG1jXN5pTmcCGRC",
"width": 200,
"height": 200,
"width": 180,
"height": 180,
"format": "png"
},
"explorers": [
+42
View File
@@ -0,0 +1,42 @@
import type { Chain } from "../src/types";
export default {
"name": "Kanazawa",
"title": "Meld Testnet Kanazawa",
"chain": "Kanazawa",
"rpc": [
"https://kanazawa.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"https://subnets.avax.network/meld/testnet/rpc"
],
"faucets": [],
"features": [],
"nativeCurrency": {
"name": "gMeld",
"symbol": "gMELD",
"decimals": 18
},
"icon": {
"url": "ipfs://QmRhB4AbjDrhvwfSAQi2JvKirFiDWxzJvKEvG8S8AdDdED",
"width": 4000,
"height": 4000,
"format": "png"
},
"infoURL": "https://meld.com",
"shortName": "kanazawa",
"chainId": 222000222,
"networkId": 222000222,
"explorers": [
{
"name": "explorer",
"url": "https://subnets-test.avax.network/meld",
"icon": {
"url": "ipfs://QmRhB4AbjDrhvwfSAQi2JvKirFiDWxzJvKEvG8S8AdDdED",
"width": 4000,
"height": 4000,
"format": "png"
},
"standard": "EIP3091"
}
],
"testnet": true,
"slug": "kanazawa"
} as const satisfies Chain;
+29
View File
@@ -0,0 +1,29 @@
import type { Chain } from "../src/types";
export default {
"name": "SwapDEX",
"chain": "SDX",
"rpc": [
"https://swapdex.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"https://rpc.swapdex.network",
"wss://ss.swapdex.network"
],
"faucets": [],
"nativeCurrency": {
"name": "SwapDEX",
"symbol": "SDX",
"decimals": 18
},
"infoURL": "https://swapdex.network/",
"shortName": "SDX",
"chainId": 230,
"networkId": 230,
"explorers": [
{
"name": "SwapDEX",
"url": "https://evm.swapdex.network",
"standard": "none"
}
],
"testnet": false,
"slug": "swapdex"
} as const satisfies Chain;
+42
View File
@@ -0,0 +1,42 @@
import type { Chain } from "../src/types";
export default {
"name": "SOMA Network Testnet",
"chain": "SOMA",
"rpc": [
"https://soma-network-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"https://data-testnet-v1.somanetwork.io/"
],
"faucets": [
"https://faucet.somanetwork.io"
],
"nativeCurrency": {
"name": "SMA",
"symbol": "tSMA",
"decimals": 18
},
"infoURL": "https://somanetwork.io",
"shortName": "sma",
"chainId": 2323,
"networkId": 2323,
"icon": {
"url": "ipfs://QmadSU2tcyvuzssDYGJ4rVLag43QLnKwcBerZR2zKLVU2N",
"width": 500,
"height": 500,
"format": "png"
},
"explorers": [
{
"name": "SOMA Testnet Explorer",
"icon": {
"url": "ipfs://QmadSU2tcyvuzssDYGJ4rVLag43QLnKwcBerZR2zKLVU2N",
"width": 500,
"height": 500,
"format": "png"
},
"url": "https://testnet.somascan.io",
"standard": "none"
}
],
"testnet": true,
"slug": "soma-network-testnet"
} as const satisfies Chain;
+43
View File
@@ -0,0 +1,43 @@
import type { Chain } from "../src/types";
export default {
"name": "SOMA Network Mainnet",
"chain": "SOMA",
"rpc": [
"https://soma-network.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"https://data-mainnet-v1.somanetwork.io/"
],
"faucets": [
"https://airdrop.somanetwork.io"
],
"nativeCurrency": {
"name": "Soma Native Token",
"symbol": "SMA",
"decimals": 18
},
"infoURL": "https://somanetwork.io",
"shortName": "smam",
"chainId": 2332,
"networkId": 2332,
"icon": {
"url": "ipfs://QmadSU2tcyvuzssDYGJ4rVLag43QLnKwcBerZR2zKLVU2N",
"width": 500,
"height": 500,
"format": "png"
},
"status": "incubating",
"explorers": [
{
"name": "SOMA Explorer Mainnet",
"icon": {
"url": "ipfs://QmadSU2tcyvuzssDYGJ4rVLag43QLnKwcBerZR2zKLVU2N",
"width": 500,
"height": 500,
"format": "png"
},
"url": "https://somascan.io",
"standard": "none"
}
],
"testnet": false,
"slug": "soma-network"
} as const satisfies Chain;
+11 -11
View File
@@ -1,9 +1,9 @@
import type { Chain } from "../src/types";
export default {
"name": "WEMIX Kanvas Sepolia",
"title": "WEMIX Kanvas Testnet Sepolia",
"name": "Kroma Sepolia",
"title": "Kroma Testnet Sepolia",
"chainId": 2357,
"shortName": "kanvas-aqua",
"shortName": "kroma-sepolia",
"chain": "ETH",
"networkId": 2357,
"nativeCurrency": {
@@ -12,13 +12,13 @@ export default {
"decimals": 18
},
"rpc": [
"https://wemix-kanvas-sepolia.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"https://api.aqua.wemixkanvas.io"
"https://kroma-sepolia.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"https://api.sepolia.kroma.network"
],
"faucets": [],
"infoURL": "https://wemixkanvas.io",
"infoURL": "https://kroma.network",
"icon": {
"url": "ipfs://QmVcVxsHsVg5BMii3EJ1MUSnLBZkQicpjmXjSmW66bCEUF",
"url": "ipfs://QmcYafk2je5rMqgnFPDZJTaLi6dgFgq96vmX2Li6DX441B",
"width": 320,
"height": 320,
"format": "svg"
@@ -26,9 +26,9 @@ export default {
"explorers": [
{
"name": "blockscout",
"url": "https://blockscout.aqua.wemixkanvas.io",
"url": "https://blockscout.sepolia.kroma.network",
"icon": {
"url": "ipfs://QmVcVxsHsVg5BMii3EJ1MUSnLBZkQicpjmXjSmW66bCEUF",
"url": "ipfs://QmcYafk2je5rMqgnFPDZJTaLi6dgFgq96vmX2Li6DX441B",
"width": 320,
"height": 320,
"format": "svg"
@@ -41,10 +41,10 @@ export default {
"chain": "eip155-11155111",
"bridges": [
{
"url": "https://wemixkanvas.io/bridge"
"url": "https://kroma.network/bridge"
}
]
},
"testnet": true,
"slug": "wemix-kanvas-sepolia"
"slug": "kroma-sepolia"
} as const satisfies Chain;
+42
View File
@@ -0,0 +1,42 @@
import type { Chain } from "../src/types";
export default {
"name": "Deamchain Testnet",
"chain": "Deamchain",
"icon": {
"url": "ipfs://QmXvHWmjfXKdZMSz7x82NR4SjEqigKdJELVHbnzUPkj17F",
"width": 512,
"height": 512,
"format": "svg"
},
"rpc": [
"https://deamchain-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"https://testnet.deamchain.com"
],
"faucets": [
"https://faucet.deamchain.com"
],
"nativeCurrency": {
"name": "Deamchain Native Token",
"symbol": "DEAM",
"decimals": 18
},
"infoURL": "https://deamchain.com",
"shortName": "deamtest",
"chainId": 236,
"networkId": 236,
"explorers": [
{
"name": "Deamchain Testnet Explorer",
"url": "https://testnet-scan.deamchain.com",
"standard": "EIP3091",
"icon": {
"url": "ipfs://QmXvHWmjfXKdZMSz7x82NR4SjEqigKdJELVHbnzUPkj17F",
"width": 512,
"height": 512,
"format": "svg"
}
}
],
"testnet": true,
"slug": "deamchain-testnet"
} as const satisfies Chain;
+40
View File
@@ -0,0 +1,40 @@
import type { Chain } from "../src/types";
export default {
"name": "Neonlink Mainnet",
"chain": "Neonlink",
"rpc": [
"https://neonlink.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"https://mainnet.neonlink.io"
],
"faucets": [],
"nativeCurrency": {
"name": "Neonlink Native Token",
"symbol": "NEON",
"decimals": 18
},
"infoURL": "https://neonlink.io",
"shortName": "neon",
"chainId": 259,
"networkId": 259,
"icon": {
"url": "ipfs://QmX3hBv8WyvVfYjh1gmgDfJCpJBvKk4TYG9wFX9sC8WAjz",
"width": 512,
"height": 512,
"format": "svg"
},
"explorers": [
{
"name": "Neon Blockchain Explorer",
"url": "https://scan.neonlink.io",
"standard": "EIP3091",
"icon": {
"url": "ipfs://QmX3hBv8WyvVfYjh1gmgDfJCpJBvKk4TYG9wFX9sC8WAjz",
"width": 512,
"height": 512,
"format": "svg"
}
}
],
"testnet": false,
"slug": "neonlink"
} as const satisfies Chain;
+38
View File
@@ -0,0 +1,38 @@
import type { Chain } from "../src/types";
export default {
"name": "Ferrum Testnet",
"chain": "tFRM",
"rpc": [
"https://ferrum-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"http://testnet.dev.svcs.ferrumnetwork.io:9933"
],
"faucets": [
"https://testnet.faucet.ferrumnetwork.io"
],
"nativeCurrency": {
"name": "Ferrum",
"symbol": "tFRM",
"decimals": 18
},
"features": [
{
"name": "EIP155"
},
{
"name": "EIP1559"
}
],
"infoURL": "https://ferrum.network",
"shortName": "frm",
"chainId": 26026,
"networkId": 26026,
"explorers": [
{
"name": "polkadotjs",
"url": "https://polkadot.js.org/apps/?rpc=wss%3A%2F%2Ftestnet.dev.svcs.ferrumnetwork.io#/explorer",
"standard": "none"
}
],
"testnet": true,
"slug": "ferrum-testnet"
} as const satisfies Chain;
+14 -2
View File
@@ -1,7 +1,7 @@
import type { Chain } from "../src/types";
export default {
"name": "PoCRNet",
"title": "Proof of Carbon Reduction mainnet",
"title": "Proof of Climate awaReness mainnet",
"chain": "CRC",
"status": "active",
"rpc": [
@@ -11,7 +11,7 @@ export default {
],
"faucets": [],
"nativeCurrency": {
"name": "Carbon Reduction Coin",
"name": "Climate awaReness Coin",
"symbol": "CRC",
"decimals": 18
},
@@ -19,10 +19,22 @@ export default {
"shortName": "pocrnet",
"chainId": 2606,
"networkId": 2606,
"icon": {
"url": "ipfs://QmRLwpq47tyEd3rfK4tKRhbTvyb3fc7PCutExnL1XAb37A",
"width": 334,
"height": 360,
"format": "png"
},
"explorers": [
{
"name": "Lite Explorer",
"url": "https://ethereum-pocr.github.io/explorer/pocrnet",
"icon": {
"url": "ipfs://QmRLwpq47tyEd3rfK4tKRhbTvyb3fc7PCutExnL1XAb37A",
"width": 334,
"height": 360,
"format": "png"
},
"standard": "EIP3091"
}
],
+36
View File
@@ -0,0 +1,36 @@
import type { Chain } from "../src/types";
export default {
"name": "WhiteBIT Network Testnet",
"chain": "WBT",
"rpc": [
"https://whitebit-network-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"https://rpc-testnet.whitebit.network"
],
"faucets": [
"https://explorer.whitebit.network/testnet/faucet"
],
"nativeCurrency": {
"name": "WhiteBIT Coin",
"symbol": "WBT",
"decimals": 18
},
"infoURL": "https://whitebit.com/wbt",
"shortName": "twbt",
"chainId": 2625,
"networkId": 2625,
"icon": {
"url": "ipfs://QmQqAAn2F98TH5ouRyvReKxQdaGKjE7WJQPEPW6mFFVXUT",
"width": 32,
"height": 32,
"format": "svg"
},
"explorers": [
{
"name": "wb-explorer-testnet",
"url": "https://explorer.whitebit.network/testnet",
"standard": "EIP3091"
}
],
"testnet": true,
"slug": "whitebit-network-testnet"
} as const satisfies Chain;
+3 -3
View File
@@ -4,7 +4,7 @@ export default {
"chain": "SHIB",
"rpc": [
"https://shibachain.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"https://rpc.shibachain.net"
"https://rpc.shibchain.org"
],
"faucets": [],
"nativeCurrency": {
@@ -12,14 +12,14 @@ export default {
"symbol": "SHIB",
"decimals": 18
},
"infoURL": "https://www.shibachain.net",
"infoURL": "https://shibchain.org",
"shortName": "shib",
"chainId": 27,
"networkId": 27,
"explorers": [
{
"name": "Shiba Explorer",
"url": "https://exp.shibachain.net",
"url": "https://exp.shibchain.org",
"standard": "none"
}
],
+41
View File
@@ -0,0 +1,41 @@
import type { Chain } from "../src/types";
export default {
"name": "LaChain",
"chain": "LaChain",
"icon": {
"url": "ipfs://QmQxGA6rhuCQDXUueVcNvFRhMEWisyTmnF57TqL7h6k6cZ",
"width": 1280,
"height": 1280,
"format": "png"
},
"rpc": [
"https://lachain-lachain.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"https://rpc1.mainnet.lachain.network",
"https://rpc2.mainnet.lachain.network",
"https://lachain.rpc-nodes.cedalio.dev"
],
"faucets": [],
"nativeCurrency": {
"name": "LaCoin",
"symbol": "LAC",
"decimals": 18
},
"features": [
{
"name": "EIP155"
}
],
"infoURL": "",
"shortName": "lachain",
"chainId": 274,
"networkId": 274,
"explorers": [
{
"name": "LaChain Explorer",
"url": "https://explorer.lachain.network",
"standard": "EIP3091"
}
],
"testnet": false,
"slug": "lachain-lachain"
} as const satisfies Chain;

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