Compare commits

...
Author SHA1 Message Date
Jonas DanielsGitHubgithub-actions[bot] <github-actions[bot]@users.noreply.github.com>GitHub Action
0a9fc269ff Version Packages (#2246)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Co-authored-by: GitHub Action <[email protected]>
2024-01-31 16:59:43 -08:00
iketwandGitHub 2e3cc7cdd4 Adds support for RN 0.73 and removes magic (#2225) 2024-02-01 00:34:28 +00:00
3ba15366be [Analytics] Unify client analytics (#2224)
Co-authored-by: ikethirdweb <[email protected]>
2024-01-31 23:46:44 +00:00
771bd1e1b2 chore(chains): update chains (#2245)
Co-authored-by: GitHub Action <[email protected]>
2024-01-31 01:05:57 -08:00
Jonas DanielsGitHubgithub-actions[bot] <github-actions[bot]@users.noreply.github.com>GitHub Action
1baa98fba4 Version Packages (#2241)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Co-authored-by: GitHub Action <[email protected]>
2024-01-30 18:57:04 -08:00
39e79282ac chore(chains): update chains (#2243)
Co-authored-by: GitHub Action <[email protected]>
2024-01-30 17:40:17 -08:00
FirekeeperandGitHub 13d5b86ae5 sync-chains add step to create changeset (#2244) 2024-01-31 01:19:55 +00:00
FirekeeperandGitHub 8edb3f1b34 fix sync chains workflow (#2242) 2024-01-31 00:57:52 +00:00
Jonas DanielsandGitHub 69c3eb910f chore(chains): sync (#2240) 2024-01-31 00:17:44 +00:00
dependabot[bot]GitHubdependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
c8f881c2b9 Bump fastify from 4.24.2 to 4.25.2 (#2205)
Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-01-30 23:57:21 +00:00
dependabot[bot]GitHubdependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
71ac41adae Bump @typescript-eslint/parser from 6.2.0 to 6.19.1 (#2206)
Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-01-30 23:57:11 +00:00
Jonas DanielsandGitHub ddb2121c67 [docs] remove non-gz documentation json files (2/2) (#2239) 2024-01-30 23:52:17 +00:00
Jonas DanielsGitHubgithub-actions[bot] <github-actions[bot]@users.noreply.github.com>GitHub Action
558dc10a63 Version Packages (#2236)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Co-authored-by: GitHub Action <[email protected]>
2024-01-30 15:22:39 -08:00
Joaquim VergesandGitHub c9f1fd8fc2 update serviceUtils types (#2238) 2024-01-30 15:04:15 -08:00
Jonas DanielsandGitHub e75b48cfe9 [docs] GZIP docs 1 of 2 (#2237) 2024-01-30 22:28:43 +00:00
farhanW3andGitHub 173b3b2ad9 [Service-Utils] Usage Tracker Updates (#2235) 2024-01-30 20:02:23 +00:00
Jonas DanielsGitHubgithub-actions[bot] <github-actions[bot]@users.noreply.github.com>GitHub Action
654aaa2171 Version Packages (#2211)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Co-authored-by: GitHub Action <[email protected]>
2024-01-29 18:12:25 -08:00
Joaquim VergesandGitHub 627d209927 update chains (#2232) 2024-01-30 01:02:21 +00:00
iketwandGitHub 57320957aa [RN] Adds ability to delete the ews active account (#2199) 2024-01-29 21:36:40 +00:00
Joaquim VergesandGitHub 6fdade6c45 [ServiceUtils] Option to include policy checks (#2230) 2024-01-29 20:59:41 +00:00
6d25586d08 [react, wallets] Add XDEFI wallet (#2218)
Co-authored-by: Manan Tank <[email protected]>
2024-01-26 19:21:41 +00:00
Manan TankandGitHub 4d89dc1efa [wallets] Update Safe SDK (#2221) 2024-01-26 17:57:28 +00:00
FirekeeperandGitHub a5653f07f8 [Docs] Document deployOnSign (#2223) 2024-01-26 17:54:54 +00:00
Manan TankandGitHub 7f35caff5d [react, react-native] update defaultTokens used in ConnectWallet (#2217) 2024-01-26 16:47:12 +00:00
FirekeeperandGitHub bf90fa5005 [AA] Option to not deploy SW on sign message (#2222) 2024-01-26 01:06:15 +00:00
FirekeeperandGitHub 3d63a2cb69 [SDK] Add erc1155.transferBatch (#2220) 2024-01-26 00:02:40 +00:00
dependabot[bot]GitHubdependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>Manan Tank
466b1e75dc Bump @radix-ui/react-tooltip from 1.0.6 to 1.0.7 (#2204)
Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Manan Tank <[email protected]>
2024-01-25 22:39:43 +00:00
Manan TankandGitHub 3dfc003902 [react] Allow uppercase email address in ConnectWallet (#2219) 2024-01-25 21:39:30 +00:00
Joaquim VergesandGitHub b34737d27a [SDK] switch to LRU caches (#2215) 2024-01-25 20:24:26 +00:00
1a5d41cc8a feat(auth): Next.js App Router support (#2106)
Signed-off-by: Adam Majmudar <[email protected]>
Co-authored-by: Adam Majmudar <[email protected]>
2024-01-25 00:25:14 +00:00
Tair AsimandGitHub a5541a1c55 service-utils: update api key metadata (#2210) 2024-01-23 19:36:39 +00:00
Tair AsimandGitHub 13e389a63e service-utils: polish usage hit error code (#2200) 2024-01-23 17:06:30 +00:00
Jonas DanielsGitHubgithub-actions[bot] <github-actions[bot]@users.noreply.github.com>GitHub Action
6884815428 Version Packages (#2195)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Co-authored-by: GitHub Action <[email protected]>
2024-01-22 17:19:49 -08:00
Joaquim VergesandGitHub f29f91d7e0 [React] show embedded wallet free tier error msg in connect (#2209) 2024-01-23 00:54:30 +00:00
Manan TankandGitHub 212b2e7bc2 [react, react-native] ConnectWallet Details Modal UI, hide testnet faucet link by default (#2197) 2024-01-22 20:03:03 +00:00
iketwandGitHub 3f2ee85a1a chore: synced chains with db (#2203) 2024-01-22 18:56:10 +00:00
dependabot[bot]GitHubdependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
24450ed7ac Bump vite from 3.2.7 to 3.2.8 (#2201)
Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-01-22 16:13:32 +00:00
Kien NgoandGitHub ba978f55b0 [react-core] Update code sample for useTokenSupply (#2202) 2024-01-21 05:06:08 +00:00
iketwandGitHub 94e4dc9aab [RN] UI improvements (#2198) 2024-01-18 22:52:26 +00:00
Manan TankandGitHub 67656c7131 Add missing react-native in release-artifacts (#2196) 2024-01-17 23:57:58 +00:00
github-actions[bot]GitHubgithub-actions[bot] <github-actions[bot]@users.noreply.github.com>GitHub Action
dccb9ddd0e Version Packages (#2180)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Co-authored-by: GitHub Action <[email protected]>
2024-01-17 15:20:06 -08:00
Joaquim VergesandGitHub c3b264982d export sig minting classes for docs (#2194) 2024-01-17 23:14:26 +00:00
Manan TankandGitHub 0efd0f9d26 [react] add useSetWalletModalConfig hook (#2193) 2024-01-17 22:49:17 +00:00
Manan TankandGitHub 7af35a0133 only commit generated files in release-artifacts workflow (#2192) 2024-01-17 21:02:34 +00:00
Manan TankandGitHub 9caf201f24 Reorder commands in release-artifacts.yml (#2191) 2024-01-17 19:56:28 +00:00
Manan TankandGitHub ea7da5fb77 Refactor release-artifacts workflow (#2190) 2024-01-17 18:56:57 +00:00
89641e3378 [react] Add switchNetworkBtnTitle prop in ConnectWallet and Web3Button (#1884)
Co-authored-by: Manan Tank <[email protected]>
2024-01-17 16:36:39 +00:00
Manan TankandGitHub dcb6afa148 Fix release-artifacts workflow (#2189) 2024-01-17 15:38:37 +00:00
iketwandGitHub 324330d354 [RN] Exports ConnectEmbed as a standalone component (#2185) 2024-01-17 15:14:19 +00:00
Manan TankandGitHub 056643ad83 Fix error in typedoc and snippets workflows (#2188) 2024-01-17 14:39:43 +00:00
Gerry SaporitoandGitHub e21f7bb171 chore: synced chains with db (#2187) 2024-01-17 03:50:19 +00:00
Manan TankandGitHub 148e6a9166 Add bun setup in release-artifacts workflow to fix setup job (#2184) 2024-01-16 21:53:33 +00:00
YashandGitHub 9a23de2be0 [SDK] ZkSync Sepolia Addresses (#2183) 2024-01-16 21:32:46 +00:00
Manan TankandGitHub c377e868ed Fix Docs and Release workflows (#2179) 2024-01-16 21:21:50 +00:00
iketwandGitHub c4f1309dcd [RN] Reports react-native only (#2182) 2024-01-16 20:34:25 +00:00
Manan TankandGitHub 2e057827e3 [react] Remove unused deps (#2181) 2024-01-16 14:53:44 +00:00
YashandGitHub 9e1455294a Add: Example for useOwnedNFTs hook for queryParams (#2170) 2024-01-16 14:35:30 +00:00
dependabot[bot]GitHubdependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>Manan Tank
e11e645c74 Bump fuse.js from 6.6.2 to 7.0.0 (#2177)
Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Manan Tank <[email protected]>
2024-01-16 14:35:12 +00:00
github-actions[bot]GitHubgithub-actions[bot] <github-actions[bot]@users.noreply.github.com>
d2322fc404 Version Packages (#2166)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2024-01-12 13:47:41 -08:00
Manan TankandGitHub e249a56892 [react] Add onConnect prop on ConnectWallet and ConnectEmbed, JSDoc improvements (#2169) 2024-01-12 21:16:42 +00:00
iketwandGitHub 7a74bd9c8a [RN] Upgrade min RN version requirenment to 0.71 and mmkv to 2.11.0 (#2165) 2024-01-12 01:44:22 +00:00
Joaquim VergesandGitHub f6599fdc8b build before snippet generation (#2164) 2024-01-12 00:39:48 +00:00
github-actions[bot]GitHubgithub-actions[bot] <github-actions[bot]@users.noreply.github.com>
ed1a3e06a8 Version Packages (#2142)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2024-01-11 15:45:10 -08:00
Joaquim VergesandGitHub 4a822298dd [Docs] update CI job for doc generation (#2163) 2024-01-11 15:36:23 -08:00
iketwandGitHub 90a2f2d435 [RN] Implement signedData for LocalWallet (#2162) 2024-01-11 22:41:15 +00:00
Joaquim VergesandGitHub 43dcc14568 fix tsconfig to compile wallet tests (#2161) 2024-01-11 20:51:34 +00:00
iketwandGitHub a11b1d49bd [RN] Updated WalletConnectUI with new arch (#2160) 2024-01-11 20:17:41 +00:00
Manan TankandGitHub cb103bf935 Fix snippets and typedoc workflows (#2159) 2024-01-11 19:22:04 +00:00
Manan TankandGitHub 4c8716947c Add typedoc and snippets workflows (#2156) 2024-01-11 18:50:03 +00:00
iketwandGitHub abbd255efa [RN] Correctly pass sdkOptions down (#2158) 2024-01-11 18:46:26 +00:00
6047d67daa Enforce react-hooks/exhaustive-deps lint rule (#2138)
Co-authored-by: Jonas Daniels <[email protected]>
2024-01-11 17:37:39 +00:00
Tair AsimandGitHub 749a12f92f service-utils: fix checkout service name (#2157) 2024-01-11 12:05:44 +00:00
Jonas DanielsandGitHub c4edead2db chore: update eslint and prettier versions (#2153) 2024-01-11 11:22:18 +00:00
Jonas DanielsandGitHub f689033bc5 chore(chains): remove unused axios and deepmerge dependencies (#2152) 2024-01-11 10:54:21 +00:00
Jonas DanielsandGitHub 415f2aa83b refactor: Simplify deepMerge function and improve type checking (#2151) 2024-01-11 10:41:28 +00:00
Manan TankandGitHub 6dac95bd48 Fix/Improve changesets (#2150) 2024-01-11 10:17:52 +00:00
517d9a8f94 Turkish Language & Cleaning up the language code (#1962)
Signed-off-by: Jonas Daniels <[email protected]>
Co-authored-by: Muratcan <[email protected]>
Co-authored-by: Jonas Daniels <[email protected]>
2024-01-11 09:50:17 +00:00
5d56700866 Add Filipino language to React and React Native SDK (#1964)
Signed-off-by: Jonas Daniels <[email protected]>
Co-authored-by: Jonas Daniels <[email protected]>
2024-01-11 09:28:04 +00:00
Jonas DanielsandGitHub bc2f7cb927 chore(many): update babel dependencies (#2148) 2024-01-11 09:19:26 +00:00
eb6544ffc8 [SDK] Add pagination to ERC721's getAllOwners method (#1887)
Co-authored-by: Jonas Daniels <[email protected]>
2024-01-11 08:59:23 +00:00
dependabot[bot]GitHubdependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
0ca92533a2 Bump @types/js-cookie from 3.0.3 to 3.0.6 (#2128)
Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-01-11 08:35:47 +00:00
dependabot[bot]GitHubdependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
051b319c34 Bump react-native-get-random-values from 1.9.0 to 1.10.0 (#2127)
Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-01-11 08:09:54 +00:00
Kien NgoandGitHub e100168979 [react-core] Add hook for creating direct listings in batch (Marketplace v3 only) (#2089) 2024-01-11 07:53:23 +00:00
dependabot[bot]GitHubdependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
3cb53c4a2a Bump @babel/runtime from 7.22.6 to 7.23.8 (#2126)
Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-01-11 07:48:32 +00:00
dependabot[bot]GitHubdependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
ead1e425a9 Bump crypto from 0.0.3 to 1.0.1 (#2129)
Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-01-11 07:48:20 +00:00
dependabot[bot]GitHubdependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
38b0f55db1 Bump @swc-node/register from 1.6.6 to 1.6.8 (#2130)
Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-01-11 07:48:10 +00:00
Jonas DanielsandGitHub 09ea738981 fix(test): fix condition to run deploy marketplacev3 (#2147) 2024-01-11 05:58:16 +00:00
Joaquim VergesandGitHub 71de335e10 [Wallets] skip integration test if no secret key (#2146) 2024-01-11 05:17:41 +00:00
Jonas DanielsandGitHub d3637a160d feat: update chains (#2145) 2024-01-11 04:57:31 +00:00
Joaquim VergesandGitHub 27c00ef779 [Wallets] fix gas estimations for local and embedded wallets (#2143) 2024-01-10 22:37:38 +00:00
YashandGitHub 756d5cc960 Resolve beacon from beacon-proxy (#2139) 2024-01-10 20:58:20 +00:00
0f9b88ab68 [react, react-native] Fix double connection issue, add ConnectEmbed component (#2055)
Co-authored-by: ikethirdweb <[email protected]>
2024-01-10 20:19:10 +00:00
Manan TankandGitHub 30f16cac6d Fix useUnclaimedNFTs hook return type (#2140) 2024-01-10 20:12:44 +00:00
Manan TankandGitHub ece19ef7d3 Pin bun version in workflows (#2141) 2024-01-10 19:40:37 +00:00
github-actions[bot]GitHubgithub-actions[bot] <github-actions[bot]@users.noreply.github.com>
7d18c3edea Version Packages (#2132)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2024-01-09 20:35:38 -08:00
iketwandGitHub 7d07490ed3 [RN] Adds hideDisconnect prop to ConnectWallet comp (#2137) 2024-01-09 23:40:28 +00:00
22571ba0a9 [Wallets] Better userOp estimations (#2098)
Co-authored-by: Aleš Ferlan <[email protected]>
2024-01-09 21:48:22 +00:00
0ff90b8fba feat: add hideDisconnect prop to ConnectWallet (#2122)
Co-authored-by: Manan Tank <[email protected]>
Co-authored-by: Joaquim Verges <[email protected]>
2024-01-08 20:29:55 -08:00
Adam MajmudarandGitHub e66e906650 Add support for signTypedData to AwsKmsWallet (#2125) 2024-01-09 03:56:26 +00:00
Isaac DubuqueandGitHub b3cf65b9db Payments: Minor bug fix package.json import (#2133) 2024-01-09 01:02:10 +00:00
iketwandGitHub f953c72c4e [RN] Fixes custom balance token display in ConnectWallet details button (#2131) 2024-01-08 20:49:58 +00:00
github-actions[bot]andGitHub bbc2e092b8 Version Packages (#2120) 2024-01-06 07:18:21 +13:00
iketwandGitHub 4c3c840d88 [RN] Export WC modal component (#2092) 2024-01-05 16:27:27 +00:00
Manan TankandGitHub cf606665fc Update Docs links (#2119) 2024-01-05 16:07:39 +00:00
github-actions[bot]GitHubgithub-actions[bot] <github-actions[bot]@users.noreply.github.com>
3871068aa6 Version Packages (#2116)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2024-01-03 15:59:09 +13:00
Isaac DubuqueandGitHub d00ca7fd2a add patch bump to payments package (#2115) 2024-01-03 02:51:11 +00:00
github-actions[bot]GitHubgithub-actions[bot] <github-actions[bot]@users.noreply.github.com>
9ee3c21eac Version Packages (#2102)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2024-01-03 14:34:19 +13:00
ed3afd418c Isaac/react sdk migration (#1913)
Co-authored-by: gerrysaporito <[email protected]>
2024-01-03 00:55:16 +00:00
iketwandGitHub b90fa2cc29 [RN] Adds hideSendButtonand hideReceiveButton to ConnectWallet (#2108) 2024-01-02 20:02:44 +00:00
EimanandGitHub 2ab517aa49 changing Avalanche tether USD address mapping (#2109) 2023-12-28 16:34:34 +00:00
Manan TankandGitHub e46dd0254f [wallets] JSDoc improvements for autogenerated docs (#2103) 2023-12-22 10:06:51 +00:00
Gerry SaporitoandGitHub 1a5627f72d chore: added payments to scope (#2107) 2023-12-20 18:39:51 +00:00
YashandGitHub b808e942fd [SDK] Fix verification (#2105) 2023-12-20 15:02:04 +00:00
iketwandGitHub 7fdb1715e4 [RN] Export types to improve references (#2101) 2023-12-19 17:02:08 +00:00
github-actions[bot]GitHubgithub-actions[bot] <github-actions[bot]@users.noreply.github.com>
ae2fcf7e00 Version Packages (#2088)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2023-12-19 13:42:24 +13:00
iketwandGitHub 94a8f7960a [RN] Update coinbase wallet SDK to fix scheme bug (#2099) 2023-12-19 00:22:26 +00:00
Manan TankandGitHub c410a1c18a [react, react-core] - Migrate Docs content to JSDoc comments (#2084) 2023-12-18 21:11:29 +00:00
Winston YeoandGitHub 81c46e2298 [walllets]: don't rely on utils package for base url in embedded wallet (#2093) 2023-12-17 17:07:01 +00:00
YashandGitHub f369bffe5a [SDK] Deployment params: Empty default forwarders (#2090) 2023-12-16 21:57:35 +00:00
Kien NgoandGitHub fed1313a19 [SDK] Fix invalid recipient issue when deploy built-in contracts (#2020) 2023-12-15 03:05:02 +00:00
iketwandGitHub b7d4dee446 [RN] Support expo versions >=47 <50 (#2087) 2023-12-14 23:37:58 +00:00
Kien NgoandGitHub 23db97cca5 [react-core] Add hook: useTransferNativeToken (#2008) 2023-12-14 23:22:45 +00:00
github-actions[bot]GitHubgithub-actions[bot] <github-actions[bot]@users.noreply.github.com>
0f54e99141 Version Packages (#2083)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2023-12-15 09:31:22 +13:00
c701c388c6 feat: ethers skipFetchSetup support (#2085)
Co-authored-by: Manan Tank <[email protected]>
2023-12-15 08:37:55 +13:00
iketwandGitHub 328ef5dc9c [RN] Hide back button in WC modal when WC is the only supportedWallet (#2086) 2023-12-14 18:13:55 +00:00
iketwandGitHub 07fbb799be [RN] Adds the ability to login with any arbitrary login payload (#2074) 2023-12-13 20:50:24 +00:00
iketwandGitHub 699f31c20a [RN/React-Core] Improve comments (#2082) 2023-12-13 02:56:39 +00:00
github-actions[bot]GitHubgithub-actions[bot] <github-actions[bot]@users.noreply.github.com>
c97e51b855 Version Packages (#2071)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2023-12-13 13:11:43 +13:00
Adam MajmudarandGitHub e10173bf8a [Wallets] Add support for signTransaction for smart wallets (#2080) 2023-12-12 23:57:45 +00:00
Joaquim VergesandGitHub dbfa73d75a [SDK] Export contract verifier (#2081) 2023-12-12 23:34:31 +00:00
Joaquim VergesandGitHub 1b1212d9fb [Wallet] Export getUserOpReceipt() (#2079) 2023-12-12 22:46:52 +00:00
FirekeeperandGitHub 065f85bf71 [Unity] Support revokeSessionKey/getAllActiveSigners (#2078) 2023-12-12 21:30:46 +00:00
Joaquim VergesandGitHub 09bafa9aeb [Wallets] Respect value in smart wallet gas estimations + add getUserOpReceipt utility function (#2077) 2023-12-12 21:13:18 +00:00
Joaquim VergesandGitHub fe30c88cc3 [SDK] Re-export classes, comment cleanup (#2076) 2023-12-12 09:35:51 +00:00
Joaquim VergesandGitHub 3a9538259c [SDK] cleanup (#2075) 2023-12-12 00:12:03 +00:00
FirekeeperandGitHub 0c730e57e0 [Unity] Add JWT/AuthEndpoint login options (#2073) 2023-12-11 23:43:10 +00:00
iketwandGitHub 33c9f6b1ab [Embedded] Enforce encryption key for custom jwt (#2018) 2023-12-11 22:47:41 +00:00
iketwandGitHub 2346396bdf [RN] Adds analytics nonce to ews (#2072) 2023-12-11 22:41:32 +00:00
Manan TankandGitHub de5ebc9093 [wallets] Fix assertWindowEthereum (#2070) 2023-12-11 20:37:32 +00:00
Joaquim VergesandGitHub 42c4c33d30 [SDK] un-export unneeded classes + package reorganization (#2069) 2023-12-11 19:06:32 +00:00
github-actions[bot]GitHubgithub-actions[bot] <github-actions[bot]@users.noreply.github.com>
046603ac54 Version Packages (#2068)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2023-12-08 22:29:51 -08:00
YashandGitHub bcfa9463bb Fix deployments (#2067) 2023-12-09 04:37:58 +00:00
github-actions[bot]GitHubgithub-actions[bot] <github-actions[bot]@users.noreply.github.com>
42bda873b4 Version Packages (#2054)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2023-12-08 18:04:02 -08:00
Joaquim VergesandGitHub d2001ca464 sync chains (#2066) 2023-12-09 00:14:35 +00:00
Manan TankandGitHub c8ba5cf863 [react] - Add option to only show Official WC Modal, Fix focus trap when CW Modal is hidden (#2063) 2023-12-08 13:14:04 +00:00
Joaquim VergesandGitHub 85842c1596 [SDK] expose BaseFee in getDynamicFeeData() (#2062) 2023-12-07 23:29:17 +00:00
FirekeeperandGitHub 0fb2f1fc5e [Unity] Support for sdk.wallet.GetEmail (#2061) 2023-12-07 22:21:23 +00:00
Jonas DanielsandGitHub 497677f359 fix(sdk): roles.setAll.prepare() correctly sorts role removals (#2059) 2023-12-07 18:48:16 +00:00
Manan TankandGitHub 15ae5e7f95 [react] Add "Open Official WalletConnect Modal" in ConnectWallet (#2058) 2023-12-07 16:57:52 +00:00
FirekeeperandGitHub 5a0283d083 [Unity] Reload local wallet in case of reconnection (sw) (#2056) 2023-12-07 00:32:24 +00:00
Winston YeoandGitHub 9496606964 [wallets]: Winston/custom auth endpoint (#2052) 2023-12-06 23:35:47 +00:00
Manan TankandGitHub b50e4a41b5 [react] Use WalletConnect to connect MM on mobile by default (#2029) 2023-12-06 19:52:46 +00:00
YashandGitHub e595d4d92f [SDK] Update implementation (#2053) 2023-12-06 19:29:10 +00:00
github-actions[bot]GitHubgithub-actions[bot] <github-actions[bot]@users.noreply.github.com>
3e526d46fa Version Packages (#2036)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2023-12-05 21:14:32 -08:00
Manan TankandGitHub a36c7e8331 Update typedoc setup, JSDoc improvements (#1842)
Signed-off-by: Manan Tank <[email protected]>
2023-12-05 19:00:11 +00:00
7bb054e45c [wallets] Remove barrel files (#2040)
Co-authored-by: Manan Tank <[email protected]>
2023-12-05 15:22:22 +00:00
cd87be4a24 [react-core] Remove barrel files (#2039)
Co-authored-by: Manan Tank <[email protected]>
2023-12-05 15:17:24 +00:00
Joaquim VergesandGitHub aefc4cda4c [SDK] Add migration role (#2051) 2023-12-05 06:08:30 +00:00
YashandGitHub cfe81b4432 [SDK] Update implementation (#2050) 2023-12-05 05:33:40 +00:00
Jonas DanielsandGitHub 72c0bb10d6 fix(contract-roles): ensure connected wallet address is removed last (#2049) 2023-12-05 01:27:07 +00:00
YashandGitHub ca618ea0c9 [SDK] Metadata role for nft base contracts (#2048) 2023-12-04 23:31:02 +00:00
YashandGitHub d20e789856 [SDK] Update publisher and registry (#2044) 2023-12-04 19:11:29 +00:00
Manan TankandGitHub a135857c7a [react] Fix EmbeddedWalletConfigOptions type (#2045) 2023-12-04 17:44:24 +00:00
Manan TankandGitHub 34546c24c7 improved smart wallet autoconnect (#2043) 2023-12-04 15:58:41 +00:00
Manan TankandGitHub 61c62b3f07 [react, wallets] JSDoc Improvements, Type exports for autogenerated docs (#2042) 2023-12-04 13:57:22 +00:00
Jonas DanielsandGitHub f2390b64e8 testing(merkletree): add additional tests back (#2041) 2023-12-04 03:41:03 +00:00
4ae1cd63bb [wallet, react] Add OneKey wallet (#1938)
Co-authored-by: Manan Tank <[email protected]>
2023-12-03 12:00:32 +00:00
github-actions[bot]GitHubgithub-actions[bot] <github-actions[bot]@users.noreply.github.com>
a4339818a0 Version Packages (#1998)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2023-12-01 06:55:35 -08:00
Manan TankandGitHub b3394277c7 [react] JSDoc improvements (#1987) 2023-12-01 13:13:30 +00:00
Manan TankandGitHub fdf19b0a26 [react] Do not swallow error in useEmbeddedWallet() connect (#2031) 2023-12-01 12:42:39 +00:00
FirekeeperandGitHub 9798a31a9a [Unity] Pass down authOptions with smart wallet connections (#2026) 2023-11-30 00:59:22 +00:00
Kien NgoandGitHub f93bd325e1 [Storage] Catch error when converting invalid IPFS URIs (#2021) 2023-11-29 21:35:50 +00:00
iketwandGitHub 97ba1fbd42 [RN] Adds version header to ews calls (#2025) 2023-11-29 20:43:35 +00:00
Kien NgoandGitHub 28fc3736aa [storage] Add Base Sepolia to defaultChains (#2024) 2023-11-29 20:02:58 +00:00
Kien NgoandGitHub 06805217c2 [chains] Add Eth Sepolia to defaultChains (#2023) 2023-11-29 15:24:54 +00:00
Jonas DanielsandGitHub b833250053 chore(chains): add & update chains (#2019) 2023-11-28 22:07:14 +00:00
iketwandGitHub 9455912932 [ReactCore] Share WalletConnecthandler in react core (#2016) 2023-11-28 16:00:48 +00:00
Manan TankandGitHub 4c488aa31f [react-core] Fix auto-connecting a personal wallet for smart/safe wallet (#2015) 2023-11-28 12:17:28 +00:00
Joaquim VergesandGitHub b0ecfd2d8d [SDK] propagate isPartialABI (#2012) 2023-11-27 20:30:32 +00:00
2b4f1c8e55 [wallet, react] Add Crypto.com Defi wallet (#1928)
Co-authored-by: Manan Tank <[email protected]>
2023-11-27 15:16:30 +00:00
e79b293562 [react-core] Add hook: useBalanceForAddress (#2007)
Co-authored-by: Manan Tank <[email protected]>
2023-11-27 14:43:32 +00:00
Joaquim VergesandGitHub 2861dff1f0 [SDK] dont fetch metadata from CDN for local nodes (#2011) 2023-11-27 06:02:33 +00:00
Kien NgoandGitHub 61b6a00214 Fix typo in comment (#2010) 2023-11-27 05:35:30 +00:00
Joaquim VergesandGitHub b02fb91a54 [SDK] Add missing roles from new contracts (#2009) 2023-11-26 04:51:52 +00:00
Joaquim VergesandGitHub 8bf3be88be [SDK] Enable deployments for older AccountFactory contracts (#2005) 2023-11-24 23:02:15 +00:00
Joaquim VergesandGitHub fb5095bff5 [SDK] Handle other possible undefined cases for unknown chains (#2004) 2023-11-23 21:24:05 +00:00
Joaquim VergesandGitHub d28097f508 [SDK] Fix undefined error for unknow chains (#2003) 2023-11-23 17:31:11 +00:00
iketwandGitHub a27b10c5c3 [React] Do not set disconnected if connecting (#2001) 2023-11-23 16:12:39 +00:00
8c2d4e5ea7 [wallet, react] Add Rabby wallet (browser extension) (#1926)
Co-authored-by: Manan Tank <[email protected]>
2023-11-22 18:33:15 +00:00
Manan TankandGitHub 507496627b [react] Fix SmartWallet + MagicLink social login connection, Fix WalletIcon in CW (#1997) 2023-11-22 18:14:30 +00:00
github-actions[bot]GitHubgithub-actions[bot] <github-actions[bot]@users.noreply.github.com>
f5b89987af Version Packages (#1991)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2023-11-22 07:31:24 -08:00
Manan TankandGitHub 4bb8f5b15e Revert "add ConnectEmbed + Fix double connection issue" (#1996) 2023-11-22 15:11:43 +00:00
FirekeeperandGitHub 914befda16 [Unity] Add new tx/block processing methods to match static C# counterparts (#1995) 2023-11-22 11:31:25 +00:00
Joaquim VergesandGitHub b5bbe2bd43 [Wallets] Look at last 10 blocks for recently submitted userOp (#1992) 2023-11-22 04:52:24 +00:00
Kien NgoandGitHub 68288436ac [React, React native] Remove overrides prop from Web3Button (#1994) 2023-11-22 01:23:55 +00:00
Jonas DanielsandGitHub d4ce855e5f chore(chains): update chains & deprecate allChains (#1990) 2023-11-22 01:13:04 +00:00
Kien NgoandGitHub 47b0ed5171 [sdk, chains] Add Arb Sepolia to defaultChains (#1967) 2023-11-21 22:05:17 +00:00
github-actions[bot]GitHubgithub-actions[bot] <github-actions[bot]@users.noreply.github.com>
00b9eea9ec Version Packages (#1980)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2023-11-21 13:37:37 -08:00
iketwandGitHub bf27b88728 [RN] Improves error messages for embedded wallet (#1989) 2023-11-21 19:41:23 +00:00
Tair AsimandGitHub 17fe41d42b fix: api key caching ttl (#1988) 2023-11-21 17:38:59 +00:00
Tair AsimandGitHub 36600decef chore: add logging to authenticate (#1973) 2023-11-21 17:08:22 +00:00
FirekeeperandGitHub e09221f1e0 [Unity] SW Account Override Support (#1986) 2023-11-21 12:16:28 +00:00
FirekeeperandGitHub 62cc785c4a [Unity] Support Add/Remove Admin and Create Session Key for SW (#1985) 2023-11-21 10:42:57 +00:00
Adam MajmudarandGitHub 7c45941b57 Add support for executeMetaTransaction (#1974) 2023-11-20 19:12:11 +00:00
FirekeeperandGitHub 7a2e0edab4 [Unity] Apple and Facebook logins (#1981) 2023-11-20 18:45:33 +00:00
Manan TankandGitHub fb0cb676b9 add ConnectEmbed + Fix double connection issue with Safe/Smart in ConnectWallet (#1952) 2023-11-20 17:56:55 +00:00
12d85dec10 [React/RN] Move usePersonalWalletAddress hook to core (#1971)
Co-authored-by: Manan Tank <[email protected]>
2023-11-20 17:29:32 +00:00
1094a03a04 [wallet, react] Add Coin98 Wallet (#1921)
Co-authored-by: Manan Tank <[email protected]>
2023-11-20 16:27:00 +00:00
github-actions[bot]GitHubgithub-actions[bot] <github-actions[bot]@users.noreply.github.com>
6cc38b0680 Version Packages (#1970)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2023-11-18 14:30:05 -08:00
Joaquim VergesandGitHub 7abb36a7ec [Wallets] Enforce authenticated users when getting EW signers (#1978) 2023-11-18 17:21:15 +00:00
Joaquim VergesandGitHub 6832b19fc5 [Wallets] Fix potential embedded wallet autoconnect race condition (#1977) 2023-11-18 07:18:30 +00:00
nkrishangandGitHub 1c4cbedb6a Override signMessage for SmartWallet class (#1953) 2023-11-18 06:04:02 +00:00
Phillip HoandGitHub 8ff87be631 fix: Reuse response body in service utils helper (#1976) 2023-11-18 01:50:37 +00:00
YashandGitHub e43beec36a [SDK] Resolve diamond pattern facets abi (#1935) 2023-11-17 15:56:29 +00:00
github-actions[bot]GitHubgithub-actions[bot] <github-actions[bot]@users.noreply.github.com>
c5b7fef5ba Version Packages (#1966)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2023-11-17 10:40:41 +01:00
Manan TankandGitHub 4c5e40ae4e [react] Fix ConnectWallet text alignment issues in paper/embedded wallet (#1969) 2023-11-17 09:22:45 +00:00
Jonas DanielsandGitHub ab2dfd4f5c Initialize @thirdweb-dev/crypto and @thirdweb-dev/merkletree (#1861)
Signed-off-by: Jonas Daniels <[email protected]>
2023-11-16 22:32:24 +00:00
Manan TankandGitHub 13029e3286 [react] ConnectWallet UI adjustments, expose hook to fetch embeddedWallet email (#1965) 2023-11-16 20:25:25 +00:00
github-actions[bot]GitHubgithub-actions[bot] <github-actions[bot]@users.noreply.github.com>
44c9ccd65d Version Packages (#1963)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2023-11-16 10:21:09 -08:00
Manan TankandGitHub 7912c26323 [react] use custom theme context in styled components (#1954) 2023-11-16 17:53:44 +00:00
69d68f5a25 [RN/React] Enables FB and Apple sign in for embedded wallet (#1945)
Co-authored-by: Manan Tank <[email protected]>
2023-11-16 13:31:22 +00:00
github-actions[bot]GitHubgithub-actions[bot] <github-actions[bot]@users.noreply.github.com>
836be52724 Version Packages (#1959)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2023-11-15 20:26:55 -08:00
Joaquim VergesandGitHub 9f993dcc1e [EmbeddedWallet] fix switch chains logic (#1958) 2023-11-15 16:56:19 -08:00
github-actions[bot]GitHubgithub-actions[bot] <github-actions[bot]@users.noreply.github.com>
61760a180f Version Packages (#1946)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2023-11-15 15:20:43 -08:00
Joaquim VergesandGitHub a3f3e160e0 [SDK] Performance improvements for getContract (#1936) 2023-11-15 23:01:25 +00:00
Joaquim VergesandGitHub b1190914a9 [SmartWallet, React] Smart wallet performance and auto connect fixes (#1950) 2023-11-15 18:37:30 +00:00
Kien NgoandGitHub e79a952061 [React-core] Fix caching issue with useTotalCirculatingSupply (#1951) 2023-11-15 14:34:57 +00:00
iketwandGitHub 480ed721d1 Enforces tsdoc/syntax code comments (#1949) 2023-11-15 04:30:13 +00:00
42c7436827 [React/Wallets] Deprecates PaperWallet in favor of EmbeddedWallet (#1948)
Co-authored-by: ElasticBottle <[email protected]>
2023-11-15 03:33:10 +00:00
Adam MajmudarandGitHub 16e9e8b64d [Wallets] Add EngineWallet & EngineSigner (#1939) 2023-11-15 00:59:58 +00:00
Adam MajmudarandGitHub 23ab897e32 Add support for EIP-2612 to engine relayer (#1947) 2023-11-14 23:20:44 +00:00
iketwandGitHub 6fcdec7c12 [SDK] Fixes all tsdoc warnings (#1944) 2023-11-14 20:04:17 +00:00
github-actions[bot]GitHubgithub-actions[bot] <github-actions[bot]@users.noreply.github.com>
b734f05525 Version Packages (#1919)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2023-11-14 11:30:08 -08:00
iketwandGitHub 30ea9c6bf7 [All] Warns tsdoc formatting and fixes React, RN and ReactCore (#1943) 2023-11-14 19:19:46 +00:00
iketwandGitHub 6de3a19b86 [RN] Updated safe-area-context package to 4.7.4 (#1942) 2023-11-14 18:09:58 +00:00
iketwandGitHub 06e59cf916 [React/RN] Move shortenAdress util to react-core (#1929) 2023-11-14 15:48:52 +00:00
Joaquim VergesandGitHub 3f3a484a3a [SmartWallet] remove deprecated fallback (#1937) 2023-11-14 01:39:23 +00:00
05e52114bf [auth] update fastify login route response to match express/next (#1927)
Signed-off-by: Alec Ananian <[email protected]>
Co-authored-by: Joaquim Verges <[email protected]>
2023-11-13 16:42:41 -08:00
iketwandGitHub 1a421d3b5d [RN] Adds Apple sign in option to embedded wallet (#1912) 2023-11-10 21:59:10 +00:00
iketwandGitHub 97fdbc8f64 [RN] Refactor WC receiver for SW and EW (#1925) 2023-11-10 21:26:17 +00:00
ebf4025718 [wallets]: refactor for ease of adding oauth provider (#1923)
Co-authored-by: ikethirdweb <[email protected]>
Co-authored-by: Manan Tank <[email protected]>
2023-11-10 19:13:27 +00:00
a81a5285b7 [wallets, React SDK] Add FB and Apple social login (#1920)
Co-authored-by: ikethirdweb <[email protected]>
Co-authored-by: Manan Tank <[email protected]>
2023-11-10 18:07:25 +00:00
95c9d56ea4 [CLI] fixed url redirect for pre-built deploy command (#1918)
Co-authored-by: ikethirdweb <[email protected]>
2023-11-09 22:20:25 +00:00
18552f3a22 [React Native] Option to hide [Switch to Personal Wallet] button (#1908)
Co-authored-by: ikethirdweb <[email protected]>
2023-11-09 22:09:47 +00:00
1628 changed files with 64640 additions and 12850 deletions
+11 -1
View File
@@ -15,7 +15,17 @@
"access": "public",
"baseBranch": "main",
"updateInternalDependencies": "patch",
"ignore": ["e2e-cra-5", "e2e-next-13", "e2e-vite-3"],
"ignore": [
"e2e-cra-5",
"e2e-next-13",
"e2e-vite-3",
"bundlers-esbuild",
"bundlers-vite",
"bundlers-webpack",
"bundlers-swc",
"runtimes-node-commonjs",
"runtimes-node-module"
],
"___experimentalUnsafeOptions_WILL_CHANGE_IN_PATCH": {
"updateInternalDependents": "always",
"onlyUpdatePeerDependentsWhenOutOfRange": true
+22
View File
@@ -31,6 +31,11 @@ jobs:
with:
fetch-depth: 25
- name: Setup bun
uses: oven-sh/setup-bun@v1
with:
bun-version: 1.0.21
- name: Install
uses: ./.github/composite-actions/install
@@ -59,6 +64,11 @@ jobs:
node-version: 20
check-latest: true
- name: Setup bun
uses: oven-sh/setup-bun@v1
with:
bun-version: 1.0.21
- uses: pnpm/action-setup@v2
with:
version: 8
@@ -84,6 +94,12 @@ jobs:
node-version: 20
check-latest: true
# we use bun for some test suites
- name: Setup bun
uses: oven-sh/setup-bun@v1
with:
bun-version: 1.0.21
- uses: pnpm/action-setup@v2
with:
version: 8
@@ -114,6 +130,12 @@ jobs:
node-version: 20
check-latest: true
# we use bun for some test suites
- name: Setup bun
uses: oven-sh/setup-bun@v1
with:
bun-version: 1.0.21
- uses: pnpm/action-setup@v2
with:
version: 8
-17
View File
@@ -1,17 +0,0 @@
name: Dispatch Doc Generation
on:
push:
branches:
- main
jobs:
dispatch:
runs-on: ubuntu-latest
steps:
- name: Repository Dispatch
uses: peter-evans/[email protected]
with:
token: ${{ secrets.REPO_ACCESS_TOKEN }}
repository: thirdweb-dev/docs
event-type: generate-docs
+68
View File
@@ -0,0 +1,68 @@
# On the Version Packages branch
# Generate and Commit the Typedoc JSON files and the Snippets JSON files
name: Commit Release Artifacts
on:
push:
branches:
- changeset-release/main
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
jobs:
release-artifacts:
timeout-minutes: 15
runs-on: ubuntu-latest-16
steps:
- name: Checkout branch
uses: actions/checkout@v3
# bun setup is required, because pnpm typdoc will run pnpm build and some packages uses bun for build
- name: Setup bun
uses: oven-sh/setup-bun@v1
with:
bun-version: 1.0.21
- name: Install
uses: ./.github/composite-actions/install
- name: Build
run: pnpm build
- name: Typedoc
run: pnpm typedoc
- name: Generate Docs
run: |
cd packages/sdk
pnpm generate-docs
cd ../react-core
pnpm generate-docs
cd ../react
pnpm generate-docs
cd ../..
- name: Generate Snippets
run: pnpm generate-snippets
- name: Commit changes
run: |
git config --local user.email "[email protected]"
git config --local user.name "GitHub Action"
git status
git add packages/react/typedoc/documentation.json.gz
git add packages/react-core/typedoc/documentation.json.gz
git add packages/react-native/typedoc/documentation.json.gz
git add packages/sdk/typedoc/documentation.json.gz
git add packages/storage/typedoc/documentation.json.gz
git add packages/wallets/typedoc/documentation.json.gz
git add snippets/feature_snippets_react.json
git add snippets/feature_snippets_sdk.json
git add snippets/snippets.json
git commit -m "Commit Release Artifacts [skip ci]"
git push
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
+5
View File
@@ -26,6 +26,11 @@ jobs:
with:
fetch-depth: 0
- name: Setup bun
uses: oven-sh/setup-bun@v1
with:
bun-version: 1.0.21
- name: Install
uses: ./.github/composite-actions/install
+5
View File
@@ -67,6 +67,11 @@ jobs:
repository: ${{ fromJson(steps.get_pull_request_ref.outputs.data).head.repo.full_name }}
ref: ${{ fromJson(steps.get_pull_request_ref.outputs.data).head.ref }}
- name: Setup bun
uses: oven-sh/setup-bun@v1
with:
bun-version: 1.0.21
- name: Install
uses: ./.github/composite-actions/install
+12 -2
View File
@@ -1,3 +1,6 @@
# Using CUSTOM_GITHUB_TOKEN instead of GITHUB_TOKEN is required to trigger workflows in "Version Packages" PR created by changesets/action
# CUSTOM_GITHUB_TOKEN should be a PAT with write access to the repo and has to be created and set as a secret in the repo manually
name: Release Nightly & Stable
on:
@@ -25,6 +28,13 @@ jobs:
uses: actions/checkout@v3
with:
fetch-depth: 0
# Do not use the GITHUB_TOKEN by default
token: ${{ secrets.CUSTOM_GITHUB_TOKEN }}
- name: Setup bun
uses: oven-sh/setup-bun@v1
with:
bun-version: 1.0.21
- name: Install
uses: ./.github/composite-actions/install
@@ -41,7 +51,7 @@ jobs:
env:
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
NPM_TOKEN: ${{ secrets.NPM_TOKEN }}
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
GITHUB_TOKEN: ${{ secrets.CUSTOM_GITHUB_TOKEN }}
- name: Create @nightly release
if: steps.changesets.outputs.published != 'true'
@@ -51,4 +61,4 @@ jobs:
pnpm release:nightly
env:
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
GITHUB_TOKEN: ${{ secrets.CUSTOM_GITHUB_TOKEN }}
+19 -4
View File
@@ -14,6 +14,8 @@ jobs:
- name: Install bun
uses: oven-sh/setup-bun@v1
with:
bun-version: 1.0.21
- name: Run chains sync
run: bun run db:sync
@@ -22,10 +24,23 @@ jobs:
- name: Check for Changes
id: git-check
run: |
git diff --exit-code || echo "step.git-check.outputs.changes=true" >> $GITHUB_ENV
if git diff --quiet; then
echo "CHANGES_FOUND=false" >> $GITHUB_ENV
else
echo "CHANGES_FOUND=true" >> $GITHUB_ENV
fi
- name: Create or Update sync-chains.md
if: env.CHANGES_FOUND == 'true'
run: |
echo '---' > .changeset/sync-chains.md
echo '"@thirdweb-dev/chains": patch' >> .changeset/sync-chains.md
echo '---' >> .changeset/sync-chains.md
echo '' >> .changeset/sync-chains.md
echo 'Synced Chains Package' >> .changeset/sync-chains.md
- name: Commit Changes
if: env.step.git-check.outputs.changes == 'true'
if: env.CHANGES_FOUND == 'true'
run: |
git config --local user.email "[email protected]"
git config --local user.name "GitHub Action"
@@ -33,10 +48,10 @@ jobs:
git commit -m "chore(chains): sync from db"
- name: Create or Update Pull Request
if: env.step.git-check.outputs.changes == 'true'
if: env.CHANGES_FOUND == 'true'
uses: peter-evans/create-pull-request@v3
with:
title: "chore(chains): update chains"
branch: "sync-chains" # You can specify a different branch name if you wish
branch: "sync-chains"
body: "This PR was automatically created by a GitHub Action. It updates the chains package with the latest changes from the database."
commit-message: "chore(chains): sync from db"
+1 -3
View File
@@ -20,6 +20,4 @@ playwright-report/
.env/
# Artifacts
packages/cli/artifacts/
typedoc
packages/cli/artifacts/
+5 -3
View File
@@ -14,6 +14,8 @@
"test": "turbo run test --filter=./packages/*",
"e2e": "turbo run e2e",
"build": "turbo run build --filter=./packages/*",
"typedoc": "turbo run typedoc",
"generate-snippets": "node ./scripts/generate-snippets/index.mjs",
"build:release": "turbo run build --force --filter=./packages/*",
"dev": "turbo run dev --no-cache --parallel --continue",
"fix:repo": "manypkg fix",
@@ -45,10 +47,10 @@
"@playwright/test": "1.31.2",
"@trivago/prettier-plugin-sort-imports": "^4.2.0",
"@types/node": "^18.17.1",
"eslint": "^8.45.0",
"eslint": "^8.56.0",
"mocha": "^10.2.0",
"prettier": "^3.0.0",
"turbo": "^1.10.12",
"prettier": "^3.1.1",
"turbo": "^1.11.3",
"yalc": "1.0.0-pre.53"
},
"manypkg": {
+174
View File
@@ -1,5 +1,179 @@
# @thirdweb-dev/auth
## 4.1.28
### Patch Changes
- Updated dependencies [[`3ba15366`](https://github.com/thirdweb-dev/js/commit/3ba15366be8b57e577b871c44e386978dc9d4a8a)]:
- @thirdweb-dev/wallets@2.4.6
## 4.1.27
### Patch Changes
- Updated dependencies []:
- @thirdweb-dev/wallets@2.4.5
## 4.1.26
### Patch Changes
- [#2106](https://github.com/thirdweb-dev/js/pull/2106) [`1a5d41cc`](https://github.com/thirdweb-dev/js/commit/1a5d41cc8afeef5f9882753473aad3bc0c7757ac) Thanks [@hsynlms](https://github.com/hsynlms)! - Add support for Next.js App Router
- Updated dependencies [[`a5653f07`](https://github.com/thirdweb-dev/js/commit/a5653f07f82e3f94e193d2b90c9d0c163223583c), [`bf90fa50`](https://github.com/thirdweb-dev/js/commit/bf90fa5005358e040475627ae23a474f7b263803), [`6fdade6c`](https://github.com/thirdweb-dev/js/commit/6fdade6c45f5d93fb3571d33720ab8103a7d002c), [`4d89dc1e`](https://github.com/thirdweb-dev/js/commit/4d89dc1efa2412b1e121cd14b1e2e72c667fceb0)]:
- @thirdweb-dev/wallets@2.4.4
## 4.1.25
### Patch Changes
- Updated dependencies []:
- @thirdweb-dev/wallets@2.4.3
## 4.1.24
### Patch Changes
- Updated dependencies []:
- @thirdweb-dev/wallets@2.4.2
## 4.1.23
### Patch Changes
- Updated dependencies [[`90a2f2d4`](https://github.com/thirdweb-dev/js/commit/90a2f2d435df796fa9cee4e78d540ecfa10d9166), [`27c00ef7`](https://github.com/thirdweb-dev/js/commit/27c00ef779fd6386b529598a65346bdd1d6ecc70)]:
- @thirdweb-dev/wallets@2.4.1
## 4.1.22
### Patch Changes
- Updated dependencies [[`22571ba0`](https://github.com/thirdweb-dev/js/commit/22571ba0a9bd238f9ee16f548bc17ccad2e7ad1f), [`e66e9066`](https://github.com/thirdweb-dev/js/commit/e66e906650e04a63e084bc869a62681bd956e0bb)]:
- @thirdweb-dev/wallets@2.4.0
## 4.1.21
### Patch Changes
- Updated dependencies [[`cf606665`](https://github.com/thirdweb-dev/js/commit/cf606665fcfdad7b08259350d39b60313278a8dc)]:
- @thirdweb-dev/wallets@2.3.4
## 4.1.20
### Patch Changes
- Updated dependencies [[`e46dd025`](https://github.com/thirdweb-dev/js/commit/e46dd0254f157c3c4d50fe3e4f44e2e24eaf34a8)]:
- @thirdweb-dev/wallets@2.3.3
## 4.1.19
### Patch Changes
- Updated dependencies [[`c410a1c1`](https://github.com/thirdweb-dev/js/commit/c410a1c18a704d118555215db9ba7d92c3b24d8c), [`81c46e22`](https://github.com/thirdweb-dev/js/commit/81c46e22984cdb5b33b2e6eb99a0ebf0e4fbdb33)]:
- @thirdweb-dev/wallets@2.3.2
## 4.1.18
### Patch Changes
- Updated dependencies []:
- @thirdweb-dev/wallets@2.3.1
## 4.1.17
### Patch Changes
- Updated dependencies [[`33c9f6b1`](https://github.com/thirdweb-dev/js/commit/33c9f6b1ab3e65187b2c49c083412d39a1334bba), [`de5ebc90`](https://github.com/thirdweb-dev/js/commit/de5ebc9093aaf5fc08bc0d2d414138b520fe17fe), [`e10173bf`](https://github.com/thirdweb-dev/js/commit/e10173bf8aeaaabdb45231109b4da0c52c91b9da), [`09bafa9a`](https://github.com/thirdweb-dev/js/commit/09bafa9aebadb01641214747148c67d0b39c1275)]:
- @thirdweb-dev/wallets@2.3.0
## 4.1.16
### Patch Changes
- Updated dependencies []:
- @thirdweb-dev/wallets@2.2.1
## 4.1.15
### Patch Changes
- Updated dependencies [[`94966069`](https://github.com/thirdweb-dev/js/commit/9496606964d65268f8ee6bf9f78b2786e99d33ac), [`15ae5e7f`](https://github.com/thirdweb-dev/js/commit/15ae5e7f95a482a9736923c0e10916a0a6115c3d)]:
- @thirdweb-dev/wallets@2.2.0
## 4.1.14
### Patch Changes
- Updated dependencies [[`a36c7e83`](https://github.com/thirdweb-dev/js/commit/a36c7e8331744879a169f84e97b66abf0ab44f56), [`4ae1cd63`](https://github.com/thirdweb-dev/js/commit/4ae1cd63bb7b471cae48a27bf6554c4953c1dc82), [`61c62b3f`](https://github.com/thirdweb-dev/js/commit/61c62b3f07a082ffd7620c949e3bcc6b75c104b5), [`7bb054e4`](https://github.com/thirdweb-dev/js/commit/7bb054e45c75450c8f465809d23eb66371f6ef8e)]:
- @thirdweb-dev/wallets@2.1.11
## 4.1.13
### Patch Changes
- Updated dependencies [[`8c2d4e5e`](https://github.com/thirdweb-dev/js/commit/8c2d4e5ea7c38b3efa4d8d94c9822a92d271e59b), [`2b4f1c8e`](https://github.com/thirdweb-dev/js/commit/2b4f1c8e55de091100fb5279887bcb19ea31d38c)]:
- @thirdweb-dev/wallets@2.1.10
## 4.1.12
### Patch Changes
- Updated dependencies [[`b5bbe2bd`](https://github.com/thirdweb-dev/js/commit/b5bbe2bd438179c38451bc2cfa20a54fc79e4f3a)]:
- @thirdweb-dev/wallets@2.1.9
## 4.1.11
### Patch Changes
- [#1973](https://github.com/thirdweb-dev/js/pull/1973) [`36600dec`](https://github.com/thirdweb-dev/js/commit/36600decefca7b9ebb1924757b4186b559e439f6) Thanks [@assimovt](https://github.com/assimovt)! - add logging to authenticate
- Updated dependencies [[`1094a03a`](https://github.com/thirdweb-dev/js/commit/1094a03a04f3e7ade84af0f7a6073794c0904cb1)]:
- @thirdweb-dev/wallets@2.1.8
## 4.1.10
### Patch Changes
- Updated dependencies [[`6832b19f`](https://github.com/thirdweb-dev/js/commit/6832b19fc5eedc7c17e69940a361840de0a84881), [`7abb36a7`](https://github.com/thirdweb-dev/js/commit/7abb36a7ec39766dd7da03015ccef401ef7a7863), [`1c4cbedb`](https://github.com/thirdweb-dev/js/commit/1c4cbedb6a3c9f9014ffbf83c02b998768958d96)]:
- @thirdweb-dev/wallets@2.1.7
## 4.1.9
### Patch Changes
- Updated dependencies [[`ab2dfd4f`](https://github.com/thirdweb-dev/js/commit/ab2dfd4f5cf4256fa62d76f84ca804992afab1e4)]:
- @thirdweb-dev/wallets@2.1.6
## 4.1.8
### Patch Changes
- Updated dependencies [[`69d68f5a`](https://github.com/thirdweb-dev/js/commit/69d68f5a25877bf5ea694719d2cf4ca8388f3091)]:
- @thirdweb-dev/wallets@2.1.5
## 4.1.7
### Patch Changes
- Updated dependencies [[`9f993dcc`](https://github.com/thirdweb-dev/js/commit/9f993dcc1e60cc087850b8fb9ce09524073ce0b5)]:
- @thirdweb-dev/wallets@2.1.4
## 4.1.6
### Patch Changes
- Updated dependencies [[`6fcdec7c`](https://github.com/thirdweb-dev/js/commit/6fcdec7c12e4a3c0d10f3a67771e19cfad5c8ab5), [`42c74368`](https://github.com/thirdweb-dev/js/commit/42c743682739de77c264c11cc1692ed752f929a6), [`480ed721`](https://github.com/thirdweb-dev/js/commit/480ed721d1c736049fa8b6ee4cbdbdf3cce18abd), [`16e9e8b6`](https://github.com/thirdweb-dev/js/commit/16e9e8b64d7d1a97a5b32fc855479e992b7ed3a8), [`b1190914`](https://github.com/thirdweb-dev/js/commit/b1190914a97a9c4d9019c4ce8ee49ad345aed18c)]:
- @thirdweb-dev/wallets@2.1.3
## 4.1.5
### Patch Changes
- [#1927](https://github.com/thirdweb-dev/js/pull/1927) [`05e52114`](https://github.com/thirdweb-dev/js/commit/05e52114bf4f0ee352f393ed20115a904a18c310) Thanks [@alecananian](https://github.com/alecananian)! - Update Fastify login route response to match Express/Next
- Updated dependencies [[`3f3a484a`](https://github.com/thirdweb-dev/js/commit/3f3a484a3aa6e9f784e4d44458461bac0d3d4c6b), [`a81a5285`](https://github.com/thirdweb-dev/js/commit/a81a5285b7ef4ddf47fd2779ab80ebbef4bd9e0e), [`30ea9c6b`](https://github.com/thirdweb-dev/js/commit/30ea9c6bf74b483a98592a1d8d64589b7f1b22a3), [`97fdbc8f`](https://github.com/thirdweb-dev/js/commit/97fdbc8f6443dcd08a7610e4437bd4c9d6b0e8c8)]:
- @thirdweb-dev/wallets@2.1.2
## 4.1.4
### Patch Changes
+13 -13
View File
@@ -1,6 +1,6 @@
{
"name": "@thirdweb-dev/auth",
"version": "4.1.4",
"version": "4.1.28",
"main": "dist/thirdweb-dev-auth.cjs.js",
"module": "dist/thirdweb-dev-auth.esm.js",
"browser": {
@@ -58,7 +58,7 @@
"scripts": {
"build": "preconstruct build",
"format": "prettier --write 'src/**/*'",
"lint": "eslint src/",
"lint": "eslint src/ && bunx publint --strict --level warning",
"fix": "eslint src/ --fix",
"clean": "rm -rf dist/ && rm -rf node_modules/",
"test": "mocha --config './test/.mocharc.json' --timeout 30000 --parallel './test/**/*.test.ts'",
@@ -80,14 +80,14 @@
}
},
"devDependencies": {
"@babel/core": "^7.22.9",
"@babel/preset-env": "^7.22.9",
"@babel/preset-typescript": "^7.22.5",
"@babel/core": "^7.23.7",
"@babel/preset-env": "^7.23.8",
"@babel/preset-typescript": "^7.23.3",
"@microsoft/api-documenter": "^7.22.30",
"@microsoft/api-extractor": "^7.36.3",
"@microsoft/tsdoc": "^0.14.1",
"@preconstruct/cli": "2.7.0",
"@swc-node/register": "^1.6.6",
"@swc-node/register": "^1.6.8",
"@swc/core": "^1.3.71",
"@thirdweb-dev/tsconfig": "workspace:*",
"@types/chai": "^4.3.5",
@@ -97,10 +97,10 @@
"@types/mocha": "^10.0.0",
"@types/uuid": "^9.0.5",
"@typescript-eslint/eslint-plugin": "^6.2.0",
"@typescript-eslint/parser": "^6.2.0",
"@typescript-eslint/parser": "^6.19.1",
"chai": "^4.3.6",
"cookie-parser": "^1.4.6",
"eslint": "^8.45.0",
"eslint": "^8.56.0",
"eslint-config-prettier": "^8.9.0",
"eslint-config-thirdweb": "workspace:*",
"eslint-plugin-import": "^2.26.0",
@@ -109,18 +109,18 @@
"eslint-plugin-tsdoc": "^0.2.16",
"ethers": "^5.7.2",
"express": "^4.18.1",
"fastify": "^4.24.2",
"fastify": "^4.25.2",
"mocha": "^10.2.0",
"next": "^12.3.4",
"next": "^13.4",
"next-auth": "^4.22.3",
"prettier": "^3.0.0",
"typescript": "^5.1.6"
"prettier": "^3.1.1",
"typescript": "^5.3.3"
},
"peerDependencies": {
"cookie-parser": "^1.4.6",
"ethers": "^5",
"express": "^4",
"fastify": "^4.24.2",
"fastify": "^4.25.2",
"next": "^12 || ^13 || ^14",
"next-auth": "^4"
},
@@ -62,6 +62,7 @@ export async function getUser<
const token = getToken(req);
if (!token) {
console.error("Error: No auth token found");
return null;
}
@@ -75,6 +76,7 @@ export async function getUser<
},
});
} catch (err) {
console.error(`Authenticate Error: ${(err as Error)?.message}`);
return null;
}
+5 -2
View File
@@ -22,7 +22,9 @@ export const loginHandler = (
schema: {
body: LoginPayloadBodySchema,
response: {
200: z.any(),
200: z.object({
token: z.string(),
}),
},
},
handler: async (req, res) => {
@@ -104,7 +106,8 @@ export const loginHandler = (
},
);
return res.status(200).send({ success: true });
// Send token in body and as cookie for frontend and backend use cases
return res.status(200).send({ token });
},
});
};
+62
View File
@@ -0,0 +1,62 @@
import type { GenericAuthWallet } from "@thirdweb-dev/wallets";
import { z } from "zod";
import { Json, LoginPayloadOutputSchema, User } from "../../core";
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,
});
export type ThirdwebAuthRoute =
| "payload"
| "login"
| "logout"
| "user"
| "switch-account";
export type ThirdwebAuthUser<
TData extends Json = Json,
TSession extends Json = Json,
> = User<TSession> & {
data?: TData;
};
export type ThirdwebAuthConfigShared = {
domain: string;
wallet: GenericAuthWallet;
authOptions?: {
statement?: string;
uri?: string;
version?: string;
chainId?: string;
resources?: string[];
validateNonce?:
| ((nonce: string) => void)
| ((nonce: string) => Promise<void>);
validateTokenId?:
| ((tokenId: string) => void)
| ((tokenId: string) => Promise<void>);
loginPayloadDurationInSeconds?: number;
tokenDurationInSeconds?: number;
refreshIntervalInSeconds?: number;
};
cookieOptions?: {
domain?: string;
path?: string;
sameSite?: "lax" | "strict" | "none";
secure?: boolean;
};
};
export type ThirdwebNextContext = {
params?: Record<string, string | string[]>
};
+18 -74
View File
@@ -1,77 +1,21 @@
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 {
// Next.js Pages Router support
// default and backward compatible
export { ThirdwebAuth } from './router-pages'
export type {
ThirdwebAuthConfig,
ThirdwebAuthContext,
} from './router-pages/types'
// Next.js App Router support
export { ThirdwebAuth as ThirdwebAuthAppRouter } from './router-app'
export type {
ThirdwebAuthConfig as ThirdwebAuthAppRouterConfig,
ThirdwebAuthContext as ThirdwebAuthAppRouterContext,
} from './router-app/types'
// common types
export type {
ThirdwebAuthRoute,
} from "./types";
import { NextRequest } from "next/server";
import {
GetServerSidePropsContext,
NextApiRequest,
NextApiResponse,
} from "next/types";
export * from "./types";
async function ThirdwebAuthRouter(
req: NextApiRequest,
res: NextApiResponse,
ctx: ThirdwebAuthContext,
) {
// Catch-all route must be named with [...thirdweb]
const { thirdweb } = req.query;
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.",
});
}
}
export function ThirdwebAuth<
TData extends Json = Json,
TSession extends Json = Json,
>(cfg: ThirdwebAuthConfig<TData, TSession>) {
const ctx = {
...cfg,
auth: new ThirdwebAuthSDK(cfg.wallet, cfg.domain),
};
function ThirdwebAuthHandler(
...args: [] | [NextApiRequest, NextApiResponse]
) {
if (args.length === 0) {
return async (req: NextApiRequest, res: NextApiResponse) =>
await ThirdwebAuthRouter(req, res, ctx as ThirdwebAuthContext);
}
return ThirdwebAuthRouter(args[0], args[1], ctx as ThirdwebAuthContext);
}
return {
ThirdwebAuthHandler,
getUser: (
req: GetServerSidePropsContext["req"] | NextRequest | NextApiRequest,
) => {
return getUser<TData, TSession>(req, ctx);
},
};
}
ThirdwebAuthUser,
ThirdwebNextContext,
} from './common/types'
@@ -0,0 +1,75 @@
import { cookies, headers } from "next/headers";
import {
THIRDWEB_AUTH_ACTIVE_ACCOUNT_COOKIE,
THIRDWEB_AUTH_TOKEN_COOKIE_PREFIX,
} from "../../../constants";
import type { Json } from "../../../core";
import type { ThirdwebAuthUser } from "../../common/types";
import type { ThirdwebAuthContext } from "../types";
export function getCookie(cookie: string): string | undefined {
return cookies().get(cookie)?.value;
}
export function getActiveCookie(): string | undefined {
const activeAccount = getCookie(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(): string | undefined {
const headerList = headers();
if (headerList.has("authorization")) {
const authorizationHeader = headerList.get("authorization")?.split(" ");
if (authorizationHeader?.length === 2) {
return authorizationHeader[1];
}
}
const activeCookie = getActiveCookie();
if (!activeCookie) {
return undefined;
}
return getCookie(activeCookie);
}
export async function getUser<
TData extends Json = Json,
TSession extends Json = Json,
>(
ctx: ThirdwebAuthContext<TData, TSession>
): Promise<ThirdwebAuthUser<TData, TSession> | null> {
const token = getToken();
if (!token) {
return null;
}
let authenticatedUser: ThirdwebAuthUser<TData, TSession>;
try {
authenticatedUser = await ctx.auth.authenticate<TSession>(token, {
validateTokenId: async (tokenId: string) => {
if (ctx.authOptions?.validateTokenId) {
await ctx.authOptions?.validateTokenId(tokenId);
}
},
});
} catch (err) {
return null;
}
if (ctx.callbacks?.onUser) {
const data = await ctx.callbacks.onUser(authenticatedUser);
if (data) {
return { ...authenticatedUser, data };
}
}
return authenticatedUser;
}
@@ -0,0 +1,76 @@
import type { NextRequest } from "next/server";
import type { Json } from "../../core";
import { 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 type {
ThirdwebAuthConfig,
ThirdwebAuthContext,
} from "./types";
import type {
ThirdwebAuthRoute,
ThirdwebNextContext,
} from "../common/types";
export type {
ThirdwebAuthConfig,
ThirdwebAuthContext,
} from "./types";
export async function ThirdwebAuthRouter(
req: NextRequest,
ctx: ThirdwebNextContext,
authCtx: ThirdwebAuthContext,
) {
// Catch-all route must be named with [...thirdweb]
const action = ctx.params?.thirdweb?.[0] as ThirdwebAuthRoute;
switch (action) {
case "payload":
return await payloadHandler(req, authCtx);
case "login":
return await loginHandler(req, authCtx);
case "user":
return await userHandler(req, authCtx);
case "logout":
return await logoutHandler(req, authCtx);
case "switch-account":
return await switchAccountHandler(req, authCtx);
default:
return Response.json(
{ message: "Invalid route for authentication." },
{ status: 400},
);
}
}
export function ThirdwebAuth<
TData extends Json = Json,
TSession extends Json = Json,
>(cfg: ThirdwebAuthConfig<TData, TSession>) {
const authCtx = {
...cfg,
auth: new ThirdwebAuthSDK(cfg.wallet, cfg.domain),
};
async function ThirdwebAuthHandler(...args: [] | [NextRequest, ThirdwebNextContext]) {
if (args.length === 0) {
return async (req: NextRequest, ctx: ThirdwebNextContext): Promise<void | Response> =>
await ThirdwebAuthRouter(req, ctx, authCtx as ThirdwebAuthContext);
}
return ThirdwebAuthRouter(args[0], args[1], authCtx as ThirdwebAuthContext);
}
return {
ThirdwebAuthHandler,
getUser: async () => {
return await getUser<TData, TSession>(authCtx);
},
};
}
@@ -0,0 +1,123 @@
import type { NextRequest } from "next/server";
import { NextResponse } from "next/server";
import {
THIRDWEB_AUTH_ACTIVE_ACCOUNT_COOKIE,
THIRDWEB_AUTH_TOKEN_COOKIE_PREFIX,
} from "../../../constants";
import type { GenerateOptionsWithOptionalDomain } from "../../../core";
import type { ThirdwebAuthContext } from "../types";
import { LoginPayloadBodySchema } from "../types";
export default async function handler(
req: NextRequest,
ctx: ThirdwebAuthContext,
) {
if (req.method !== "POST") {
return Response.json(
{ error: "Invalid method. Only POST supported" },
{ status: 405 },
);
}
const reqBody = await req.json();
const parsedPayload = LoginPayloadBodySchema.safeParse(reqBody);
// Get signed login payload from the frontend
if (!parsedPayload.success) {
return Response.json(
{ error: "Invalid login payload" },
{ status: 400 },
);
}
const payload = parsedPayload.data.payload;
const validateNonce = async (nonce: string) => {
if (ctx.authOptions?.validateNonce) {
await ctx.authOptions?.validateNonce(nonce);
}
};
const getSession = async (address: string) => {
if (ctx.callbacks?.onLogin) {
return ctx.callbacks.onLogin(address);
}
};
const expirationTime = ctx.authOptions?.tokenDurationInSeconds
? new Date(Date.now() + 1000 * ctx.authOptions.tokenDurationInSeconds)
: undefined;
const generateOptions: GenerateOptionsWithOptionalDomain = {
verifyOptions: {
statement: ctx.authOptions?.statement,
uri: ctx.authOptions?.uri,
version: ctx.authOptions?.version,
chainId: ctx.authOptions?.chainId,
validateNonce,
resources: ctx.authOptions?.resources,
},
expirationTime,
session: getSession,
};
let token: string;
try {
// Generate an access token with the SDK using the signed payload
token = await ctx.auth.generate(payload, generateOptions);
} catch (err: any) {
if (err.message) {
return Response.json(
{ error: err.message },
{ status: 400 },
);
} else if (typeof err === "string") {
return Response.json(
{ error: err },
{ status: 400 },
);
} else {
return Response.json(
{ error: "Invalid login payload" },
{ status: 400 },
);
}
}
if (ctx.callbacks?.onToken) {
await ctx.callbacks.onToken(token);
}
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
const response = NextResponse.json({ token }, { status: 200 });
response.cookies.set({
name: `${THIRDWEB_AUTH_TOKEN_COOKIE_PREFIX}_${payload.payload.address}`,
value: token,
domain: ctx.cookieOptions?.domain,
path: ctx.cookieOptions?.path || "/",
sameSite: ctx.cookieOptions?.sameSite || "none",
expires: new Date(exp * 1000),
httpOnly: true,
secure: ctx.cookieOptions?.secure || true,
});
response.cookies.set({
name: THIRDWEB_AUTH_ACTIVE_ACCOUNT_COOKIE,
value: payload.payload.address,
domain: ctx.cookieOptions?.domain,
path: ctx.cookieOptions?.path || "/",
sameSite: ctx.cookieOptions?.sameSite || "none",
expires: new Date(exp * 1000),
httpOnly: true,
secure: ctx.cookieOptions?.secure || true,
});
// Send token in body and as cookie for frontend and backend use cases
return response;
}
@@ -0,0 +1,51 @@
import type { NextRequest } from "next/server";
import { NextResponse } from "next/server";
import { getActiveCookie, getUser } from "../helpers/user";
import type { ThirdwebAuthContext } from "../types";
export default async function handler(
req: NextRequest,
ctx: ThirdwebAuthContext,
) {
if (req.method !== "POST") {
return Response.json(
{ error: "Invalid method. Only POST supported" },
{ status: 405 },
);
}
const activeCookie = getActiveCookie();
if (!activeCookie) {
return Response.json(
{ error: "No logged in user to logout" },
{ status: 400 },
);
}
if (ctx.callbacks?.onLogout) {
const user = await getUser(ctx);
if (user) {
await ctx.callbacks.onLogout(user);
}
}
// Set the access token to 'none' and expire in 5 seconds
const response = NextResponse.json(
{ message: "Successfully logged out" },
{ status: 200 },
);
response.cookies.set({
name: activeCookie,
value: '',
domain: ctx.cookieOptions?.domain,
path: ctx.cookieOptions?.path || "/",
sameSite: ctx.cookieOptions?.sameSite || "none",
expires: new Date(Date.now() + 5 * 1000),
httpOnly: true,
secure: ctx.cookieOptions?.secure || true,
});
return response;
}
@@ -0,0 +1,44 @@
import type { NextRequest } from "next/server";
import type { ThirdwebAuthContext } from "../types";
import { PayloadBodySchema } from "../types";
export default async function handler(
req: NextRequest,
ctx: ThirdwebAuthContext,
) {
if (req.method !== "POST") {
return Response.json(
{ error: "Invalid method. Only POST supported" },
{ status: 405 },
);
}
const reqBody = await req.json();
const parsedPayload = PayloadBodySchema.safeParse(reqBody);
if (!parsedPayload.success) {
return Response.json(
{ error: "Please provide an address" },
{ status: 400 },
);
}
// 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,
});
const response = Response.json({ payload }, { status: 200 });
return response;
}
@@ -0,0 +1,68 @@
import type { NextRequest } from "next/server";
import { NextResponse } from "next/server";
import type { ThirdwebAuthContext } from "../types";
import { ActiveBodySchema } from "../types";
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: NextRequest,
ctx: ThirdwebAuthContext,
) {
if (req.method !== "POST") {
return Response.json(
{ error: "Invalid method. Only POST supported" },
{ status: 405 },
);
}
const reqBody = await req.json();
const parsedPayload = ActiveBodySchema.safeParse(reqBody);
if (!parsedPayload.success) {
return Response.json(
{ error: "Please provide an address" },
{ status: 400 },
);
}
let cookieExpiration: Date;
const cookie = getCookie(`${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,
);
}
const response = NextResponse.json('', { status: 200 });
response.cookies.set({
name: THIRDWEB_AUTH_ACTIVE_ACCOUNT_COOKIE,
value: parsedPayload.data.address,
domain: ctx.cookieOptions?.domain,
path: ctx.cookieOptions?.path || "/",
sameSite: ctx.cookieOptions?.sameSite || "none",
expires: cookieExpiration,
httpOnly: true,
secure: ctx.cookieOptions?.secure || true,
});
return response;
}
@@ -0,0 +1,76 @@
import type { NextRequest } from "next/server";
import { NextResponse } from "next/server";
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 type { ThirdwebAuthContext } from "../types";
export default async function handler(
req: NextRequest,
ctx: ThirdwebAuthContext,
) {
if (req.method !== "GET") {
return Response.json(
{ error: "Invalid method. Only GET supported" },
{ status: 405 },
);
}
const user = await getUser(ctx);
const response = NextResponse.json(user, { status: 200 });
// Importantly, make sure the user was actually logged in before refreshing
if (user) {
const token = getToken();
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);
response.cookies.set({
name: `${THIRDWEB_AUTH_TOKEN_COOKIE_PREFIX}_${user.address}`,
value: refreshedToken,
domain: ctx.cookieOptions?.domain,
path: ctx.cookieOptions?.path || "/",
sameSite: ctx.cookieOptions?.sameSite || "none",
expires: new Date(refreshedPayload.payload.exp * 1000),
httpOnly: true,
secure: ctx.cookieOptions?.secure || true,
});
response.cookies.set({
name: THIRDWEB_AUTH_ACTIVE_ACCOUNT_COOKIE,
value: 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: ctx.cookieOptions?.secure || true,
});
}
}
}
return response;
}
@@ -0,0 +1,35 @@
import type { Json, ThirdwebAuth, User } from "../../../core";
import type { ThirdwebAuthConfigShared } from '../../common/types'
export {
ActiveBodySchema,
LoginPayloadBodySchema,
PayloadBodySchema
} from '../../common/types'
export type ThirdwebAuthConfig<
TData extends Json = Json,
TSession extends Json = Json,
> = ThirdwebAuthConfigShared & {
callbacks?: {
onLogin?:
| ((address: string) => void | TSession)
| ((address: string) => Promise<void | TSession>);
onToken?:
| ((token: string) => void)
| ((token: string) => Promise<void>);
onUser?:
| ((user: User<TSession>) => void | TData)
| ((user: User<TSession>) => Promise<void | TData>);
onLogout?:
| ((user: User) => void)
| ((user: User) => Promise<void>);
};
};
export type ThirdwebAuthContext<
TData extends Json = Json,
TSession extends Json = Json,
> = Omit<Omit<ThirdwebAuthConfig<TData, TSession>, "wallet">, "domain"> & {
auth: ThirdwebAuth;
};
@@ -1,18 +1,19 @@
import {
THIRDWEB_AUTH_ACTIVE_ACCOUNT_COOKIE,
THIRDWEB_AUTH_TOKEN_COOKIE_PREFIX,
} from "../../constants";
import { Json } from "../../core";
import { ThirdwebAuthContext, ThirdwebAuthUser } from "../types";
import { GetServerSidePropsContext, NextApiRequest } from "next";
import { NextRequest } from "next/server";
} from "../../../constants";
import type { Json } from "../../../core";
import type { ThirdwebAuthContext } from "../types";
import type { ThirdwebAuthUser } from "../../common/types";
import type { GetServerSidePropsContext, NextApiRequest } from "next";
import type { NextRequest } from "next/server";
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.get(cookie)?.value;
}
return (req.cookies as any)[cookie];
@@ -0,0 +1,77 @@
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,
ThirdwebAuthRoute,
} from "./types";
import { NextRequest } from "next/server";
import {
GetServerSidePropsContext,
NextApiRequest,
NextApiResponse,
} from "next/types";
export * from "./types";
async function ThirdwebAuthRouter(
req: NextApiRequest,
res: NextApiResponse,
ctx: ThirdwebAuthContext,
) {
// Catch-all route must be named with [...thirdweb]
const { thirdweb } = req.query;
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.",
});
}
}
export function ThirdwebAuth<
TData extends Json = Json,
TSession extends Json = Json,
>(cfg: ThirdwebAuthConfig<TData, TSession>) {
const ctx = {
...cfg,
auth: new ThirdwebAuthSDK(cfg.wallet, cfg.domain),
};
function ThirdwebAuthHandler(
...args: [] | [NextApiRequest, NextApiResponse]
) {
if (args.length === 0) {
return async (req: NextApiRequest, res: NextApiResponse) =>
await ThirdwebAuthRouter(req, res, ctx as ThirdwebAuthContext);
}
return ThirdwebAuthRouter(args[0], args[1], ctx as ThirdwebAuthContext);
}
return {
ThirdwebAuthHandler,
getUser: (
req: GetServerSidePropsContext["req"] | NextRequest | NextApiRequest,
) => {
return getUser<TData, TSession>(req, ctx);
},
};
}
@@ -1,11 +1,12 @@
import {
THIRDWEB_AUTH_ACTIVE_ACCOUNT_COOKIE,
THIRDWEB_AUTH_TOKEN_COOKIE_PREFIX,
} from "../../constants";
import { GenerateOptionsWithOptionalDomain } from "../../core";
import { LoginPayloadBodySchema, ThirdwebAuthContext } from "../types";
} from "../../../constants";
import type { GenerateOptionsWithOptionalDomain } from "../../../core";
import type { ThirdwebAuthContext } from "../types";
import { LoginPayloadBodySchema } from "../types";
import { serialize } from "cookie";
import { NextApiRequest, NextApiResponse } from "next";
import type { NextApiRequest, NextApiResponse } from "next";
export default async function handler(
req: NextApiRequest,
@@ -1,7 +1,7 @@
import { getActiveCookie, getUser } from "../helpers/user";
import { ThirdwebAuthContext } from "../types";
import type { ThirdwebAuthContext } from "../types";
import { serialize } from "cookie";
import { NextApiRequest, NextApiResponse } from "next";
import type { NextApiRequest, NextApiResponse } from "next";
export default async function handler(
req: NextApiRequest,
@@ -10,14 +10,14 @@ export default async function handler(
) {
if (req.method !== "POST") {
return res.status(405).json({
error: "Invalid method. Only POST supported.",
error: "Invalid method. Only POST supported",
});
}
const activeCookie = getActiveCookie(req);
if (!activeCookie) {
return res.status(400).json({
error: "No logged in user to logout.",
error: "No logged in user to logout",
});
}
@@ -1,5 +1,6 @@
import { PayloadBodySchema, ThirdwebAuthContext } from "../types";
import { NextApiRequest, NextApiResponse } from "next";
import type { ThirdwebAuthContext } from "../types";
import { PayloadBodySchema } from "../types";
import type { NextApiRequest, NextApiResponse } from "next";
export default async function handler(
req: NextApiRequest,
@@ -8,7 +9,7 @@ export default async function handler(
) {
if (req.method !== "POST") {
return res.status(405).json({
error: "Invalid method. Only POST supported.",
error: "Invalid method. Only POST supported",
});
}
@@ -1,12 +1,13 @@
import { serialize } from "cookie";
import { getCookie } from "../helpers/user";
import { ActiveBodySchema, ThirdwebAuthContext } from "../types";
import { NextApiRequest, NextApiResponse } from "next";
import type { ThirdwebAuthContext } from "../types";
import { ActiveBodySchema } from "../types";
import type { NextApiRequest, NextApiResponse } from "next";
import {
THIRDWEB_AUTH_ACTIVE_ACCOUNT_COOKIE,
THIRDWEB_AUTH_DEFAULT_TOKEN_DURATION_IN_SECONDS,
THIRDWEB_AUTH_TOKEN_COOKIE_PREFIX,
} from "../../constants";
} from "../../../constants";
export default async function handler(
req: NextApiRequest,
@@ -15,7 +16,7 @@ export default async function handler(
) {
if (req.method !== "POST") {
return res.status(405).json({
error: "Invalid method. Only POST supported.",
error: "Invalid method. Only POST supported",
});
}
@@ -3,10 +3,10 @@ import {
THIRDWEB_AUTH_ACTIVE_ACCOUNT_COOKIE,
THIRDWEB_AUTH_DEFAULT_REFRESH_INTERVAL_IN_SECONDS,
THIRDWEB_AUTH_TOKEN_COOKIE_PREFIX,
} from "../../constants";
} from "../../../constants";
import { getToken, getUser } from "../helpers/user";
import { ThirdwebAuthContext } from "../types";
import { NextApiRequest, NextApiResponse } from "next";
import type { ThirdwebAuthContext } from "../types";
import type { NextApiRequest, NextApiResponse } from "next";
export default async function handler(
req: NextApiRequest,
@@ -14,8 +14,8 @@ export default async function handler(
ctx: ThirdwebAuthContext,
) {
if (req.method !== "GET") {
return res.status(400).json({
error: "Invalid method. Only GET supported.",
return res.status(405).json({
error: "Invalid method. Only GET supported",
});
}
@@ -0,0 +1,48 @@
import type { Json, ThirdwebAuth, User } from "../../../core";
import type { GetServerSidePropsContext, NextApiRequest } from "next";
import type { NextRequest } from "next/server";
import type { ThirdwebAuthConfigShared } from '../../common/types'
export {
ActiveBodySchema,
LoginPayloadBodySchema,
PayloadBodySchema
} from '../../common/types'
type RequestType =
| GetServerSidePropsContext["req"]
| NextRequest
| NextApiRequest;
export type ThirdwebAuthConfig<
TData extends Json = Json,
TSession extends Json = Json,
> = ThirdwebAuthConfigShared & {
callbacks?: {
onLogin?:
| ((address: string, req: NextApiRequest) => void | TSession)
| ((address: string, req: NextApiRequest) => Promise<void | TSession>);
onToken?:
| ((token: string, req: NextApiRequest) => void)
| ((token: string, req: NextApiRequest) => Promise<void>);
onUser?:
| (<TRequestType extends RequestType = RequestType>(
user: User<TSession>,
req: TRequestType,
) => void | TData)
| (<TRequestType extends RequestType = RequestType>(
user: User<TSession>,
req: TRequestType,
) => Promise<void | TData>);
onLogout?:
| ((user: User, req: NextApiRequest) => void)
| ((user: User, req: NextApiRequest) => Promise<void>);
};
};
export type ThirdwebAuthContext<
TData extends Json = Json,
TSession extends Json = Json,
> = Omit<Omit<ThirdwebAuthConfig<TData, TSession>, "wallet">, "domain"> & {
auth: ThirdwebAuth;
};
-94
View File
@@ -1,94 +0,0 @@
import { Json, LoginPayloadOutputSchema, ThirdwebAuth, User } from "../../core";
import type { GenericAuthWallet } from "@thirdweb-dev/wallets";
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,
});
type RequestType =
| GetServerSidePropsContext["req"]
| NextRequest
| NextApiRequest;
export type ThirdwebAuthRoute =
| "payload"
| "login"
| "logout"
| "user"
| "switch-account";
export type ThirdwebAuthUser<
TData extends Json = Json,
TSession extends Json = Json,
> = User<TSession> & {
data?: TData;
};
export type ThirdwebAuthConfig<
TData extends Json = Json,
TSession extends Json = Json,
> = {
domain: string;
wallet: GenericAuthWallet;
authOptions?: {
statement?: string;
uri?: string;
version?: string;
chainId?: string;
resources?: string[];
validateNonce?:
| ((nonce: string) => void)
| ((nonce: string) => Promise<void>);
validateTokenId?:
| ((tokenId: string) => void)
| ((tokenId: string) => Promise<void>);
loginPayloadDurationInSeconds?: number;
tokenDurationInSeconds?: number;
refreshIntervalInSeconds?: number;
};
cookieOptions?: {
domain?: string;
path?: string;
sameSite?: "lax" | "strict" | "none";
secure?: boolean;
};
callbacks?: {
onLogin?:
| ((address: string, req: NextApiRequest) => void | TSession)
| ((address: string, req: NextApiRequest) => Promise<void | TSession>);
onToken?:
| ((token: string, req: NextApiRequest) => void)
| ((token: string, req: NextApiRequest) => Promise<void>);
onUser?:
| (<TRequestType extends RequestType = RequestType>(
user: User<TSession>,
req: TRequestType,
) => void | TData)
| (<TRequestType extends RequestType = RequestType>(
user: User<TSession>,
req: TRequestType,
) => Promise<void | TData>);
onLogout?:
| ((user: User, req: NextApiRequest) => void)
| ((user: User, req: NextApiRequest) => Promise<void>);
};
};
export type ThirdwebAuthContext<
TData extends Json = Json,
TSession extends Json = Json,
> = Omit<Omit<ThirdwebAuthConfig<TData, TSession>, "wallet">, "domain"> & {
auth: ThirdwebAuth;
};
+78
View File
@@ -1,5 +1,83 @@
# @thirdweb-dev/chains
## 0.1.68
### Patch Changes
- [#2245](https://github.com/thirdweb-dev/js/pull/2245) [`771bd1e1`](https://github.com/thirdweb-dev/js/commit/771bd1e1b280681992195103c22aafa1fb98f7e0) Thanks [@github-actions](https://github.com/apps/github-actions)! - Synced Chains Package
## 0.1.67
### Patch Changes
- [#2243](https://github.com/thirdweb-dev/js/pull/2243) [`39e79282`](https://github.com/thirdweb-dev/js/commit/39e79282acb70959ba8140c779fa521c41c80a5f) Thanks [@github-actions](https://github.com/apps/github-actions)! - Synced Chains Package
- [#2240](https://github.com/thirdweb-dev/js/pull/2240) [`69c3eb91`](https://github.com/thirdweb-dev/js/commit/69c3eb910feb2265833a07b7472e32fac5a79d90) Thanks [@jnsdls](https://github.com/jnsdls)! - sync chains
## 0.1.66
### Patch Changes
- [#2232](https://github.com/thirdweb-dev/js/pull/2232) [`627d2099`](https://github.com/thirdweb-dev/js/commit/627d20992770670ab0c954ceea0b8679ce4f3088) Thanks [@joaquim-verges](https://github.com/joaquim-verges)! - Update chains
## 0.1.65
### Patch Changes
- [#2203](https://github.com/thirdweb-dev/js/pull/2203) [`3f2ee85a`](https://github.com/thirdweb-dev/js/commit/3f2ee85a1ab70e74aefe7f458379a2ccaf4058a9) Thanks [@iketw](https://github.com/iketw)! - Syncs Chains
## 0.1.64
### Patch Changes
- [#2187](https://github.com/thirdweb-dev/js/pull/2187) [`e21f7bb1`](https://github.com/thirdweb-dev/js/commit/e21f7bb171334fa3003c954060e60c1ce8c1228f) Thanks [@gerrysaporito](https://github.com/gerrysaporito)! - synced chains package with chains db
## 0.1.63
### Patch Changes
- [#2145](https://github.com/thirdweb-dev/js/pull/2145) [`d3637a16`](https://github.com/thirdweb-dev/js/commit/d3637a160d088dde6e35dc213ee611b73b831c3f) Thanks [@jnsdls](https://github.com/jnsdls)! - update chains
## 0.1.62
### Patch Changes
- [#2084](https://github.com/thirdweb-dev/js/pull/2084) [`c410a1c1`](https://github.com/thirdweb-dev/js/commit/c410a1c18a704d118555215db9ba7d92c3b24d8c) Thanks [@MananTank](https://github.com/MananTank)! - JSDoc comments Improvements
## 0.1.61
### Patch Changes
- [#2066](https://github.com/thirdweb-dev/js/pull/2066) [`d2001ca4`](https://github.com/thirdweb-dev/js/commit/d2001ca464aa699ac821c97eb37de7409ba865f3) Thanks [@joaquim-verges](https://github.com/joaquim-verges)! - Updatechains
## 0.1.60
### Patch Changes
- [#2019](https://github.com/thirdweb-dev/js/pull/2019) [`b8332500`](https://github.com/thirdweb-dev/js/commit/b833250053320c8608109053f5cffe2dc96ce70a) Thanks [@jnsdls](https://github.com/jnsdls)! - add & update chains
- [#2024](https://github.com/thirdweb-dev/js/pull/2024) [`28fc3736`](https://github.com/thirdweb-dev/js/commit/28fc3736aa30c89690084aa2c62556c183796352) Thanks [@kien-ngo](https://github.com/kien-ngo)! - Add Base Sepolia to defaultChains
- [#2023](https://github.com/thirdweb-dev/js/pull/2023) [`06805217`](https://github.com/thirdweb-dev/js/commit/06805217c26de203a57c21246acba22def8a78fa) Thanks [@kien-ngo](https://github.com/kien-ngo)! - Add Eth Sepolia to defaultChains
## 0.1.59
### Patch Changes
- [#1967](https://github.com/thirdweb-dev/js/pull/1967) [`47b0ed51`](https://github.com/thirdweb-dev/js/commit/47b0ed5171be5608ae23c19481a1b04948443c6a) Thanks [@kien-ngo](https://github.com/kien-ngo)! - Add Arbitrum Sepolia to defaultChains
- [#1990](https://github.com/thirdweb-dev/js/pull/1990) [`d4ce855e`](https://github.com/thirdweb-dev/js/commit/d4ce855e5f5e6c4206a3efa250e92e690ae87281) Thanks [@jnsdls](https://github.com/jnsdls)! - deprecate `allChains` `getChainById` and `getChainBySlug`
all of these would (necessarily) pull in every single chain in the package (>600kb)
instead these can be replaced with their async variants:
- `allChains` -> `await fetchChains()`
- `getChainById(chainId)` -> `await getChainByIdAsync(chainId)`
- `getChainBySlug(chainSlug)` -> `await getChainBySlugAsync(chainSlug)`
these async functions will return the same data as their sync counterparts, but without having to pull in every single chain at build-time.
## 0.1.58
### Patch Changes
+1
View File
@@ -19,6 +19,7 @@ export default {
"https://smartbch.devops.cash/testnet"
],
"shortName": "smartbchtest",
"slip44": 1,
"slug": "smart-bitcoin-cash-testnet",
"testnet": true
} as const satisfies Chain;
+1
View File
@@ -22,6 +22,7 @@ export default {
"networkId": 100010,
"rpc": [],
"shortName": "vechain-testnet",
"slip44": 1,
"slug": "vechain-testnet",
"testnet": true
} as const satisfies Chain;
+4
View File
@@ -12,6 +12,7 @@ export default {
"faucets": [
"https://baobab.wallet.klaytn.com/access?next=faucet"
],
"features": [],
"infoURL": "https://www.klaytn.com/",
"name": "Klaytn Testnet Baobab",
"nativeCurrency": {
@@ -20,12 +21,15 @@ export default {
"decimals": 18
},
"networkId": 1001,
"redFlags": [],
"rpc": [
"https://klaytn-testnet-baobab.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"https://1001.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"https://klaytn-baobab.blockpi.network/v1/rpc/public",
"https://api.baobab.klaytn.net:8651"
],
"shortName": "Baobab",
"slip44": 1,
"slug": "klaytn-testnet-baobab",
"testnet": true
} as const satisfies Chain;
+1
View File
@@ -28,6 +28,7 @@ export default {
"https://testnet.plian.io/child_test"
],
"shortName": "plian-testnet-l2",
"slip44": 1,
"slug": "plian-testnet-subchain-1",
"testnet": true
} as const satisfies Chain;
+1
View File
@@ -18,6 +18,7 @@ export default {
"https://rpc1.newchain.newtonproject.org"
],
"shortName": "tnew",
"slip44": 1,
"slug": "newton-testnet",
"testnet": true
} as const satisfies Chain;
+1
View File
@@ -25,6 +25,7 @@ export default {
"https://rpc-2.testnet.japanopenchain.org:8545"
],
"shortName": "joct",
"slip44": 1,
"slug": "japan-open-chain-testnet",
"testnet": true
} as const satisfies Chain;
+1
View File
@@ -32,6 +32,7 @@ export default {
"https://testnet-rpc.soverun.com"
],
"shortName": "SVRNt",
"slip44": 1,
"slug": "soverun-testnet",
"testnet": true
} as const satisfies Chain;
+1
View File
@@ -26,6 +26,7 @@ export default {
"https://testnet-rpc-2.web3games.org/evm"
],
"shortName": "tw3g",
"slip44": 1,
"slug": "web3games-testnet",
"testnet": true
} as const satisfies Chain;
+1
View File
@@ -42,6 +42,7 @@ export default {
"wss://gnosis-chiado.publicnode.com"
],
"shortName": "chi",
"slip44": 1,
"slug": "gnosis-chiado-testnet",
"testnet": true
} as const satisfies Chain;
+1
View File
@@ -14,6 +14,7 @@ export default {
"networkId": 1023,
"rpc": [],
"shortName": "tclv",
"slip44": 1,
"slug": "clover-testnet",
"testnet": true
} as const satisfies Chain;
+42
View File
@@ -0,0 +1,42 @@
import type { Chain } from "../src/types";
export default {
"chain": "AA",
"chainId": 10242,
"explorers": [
{
"name": "blockscout",
"url": "https://explorer.arthera.net",
"standard": "EIP3091",
"icon": {
"url": "ipfs://QmYtUimyqHkkFxYdbXXRbUqNg2VLPUg6Uu2C2nmFWowiZM",
"width": 551,
"height": 540,
"format": "png"
}
}
],
"faucets": [],
"icon": {
"url": "ipfs://QmYQp3e52KjkT4bYdAvB6ACEEpXs2D8DozsDitaADRY2Ak",
"width": 1024,
"height": 998,
"format": "png"
},
"infoURL": "https://docs.arthera.net/build/developing-sc/using-hardhat",
"name": "Arthera Mainnet",
"nativeCurrency": {
"name": "Arthera",
"symbol": "AA",
"decimals": 18
},
"networkId": 10242,
"rpc": [
"https://arthera.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"https://10242.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"https://rpc.arthera.net"
],
"shortName": "aa",
"slip44": 10242,
"slug": "arthera",
"testnet": false
} as const satisfies Chain;
+2 -1
View File
@@ -37,7 +37,8 @@ export default {
"https://10243.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"https://rpc-test.arthera.net"
],
"shortName": "aa",
"shortName": "aat",
"slip44": 1,
"slug": "arthera-testnet",
"testnet": true
} as const satisfies Chain;
+1
View File
@@ -24,6 +24,7 @@ export default {
"https://testrpc.bittorrentchain.io/"
],
"shortName": "tbtt",
"slip44": 1,
"slug": "bittorrent-chain-testnet",
"testnet": true
} as const satisfies Chain;
+1 -1
View File
@@ -20,7 +20,7 @@ export default {
"name": "Worldland Mainnet",
"nativeCurrency": {
"name": "Worldland",
"symbol": "WL",
"symbol": "WLC",
"decimals": 18
},
"networkId": 103,
+1
View File
@@ -24,6 +24,7 @@ export default {
"http://128.199.94.183:8041"
],
"shortName": "prx",
"slip44": 1,
"slug": "proxy-network-testnet",
"testnet": true
} as const satisfies Chain;
+1
View File
@@ -38,6 +38,7 @@ export default {
"https://evm-testnet.bronos.org"
],
"shortName": "bronos-testnet",
"slip44": 1,
"slug": "bronos-testnet",
"testnet": true
} as const satisfies Chain;
+2 -1
View File
@@ -20,7 +20,7 @@ export default {
"name": "Worldland Testnet",
"nativeCurrency": {
"name": "Worldland",
"symbol": "WL",
"symbol": "WLC",
"decimals": 18
},
"networkId": 10395,
@@ -30,6 +30,7 @@ export default {
"https://gwangju.worldland.foundation"
],
"shortName": "TWLC",
"slip44": 1,
"slug": "worldland-testnet",
"testnet": true
} as const satisfies Chain;
+1
View File
@@ -36,6 +36,7 @@ export default {
"https://klc.live/"
],
"shortName": "tklc",
"slip44": 1,
"slug": "kaiba-lightning-chain-testnet",
"testnet": true
} as const satisfies Chain;
+1
View File
@@ -33,6 +33,7 @@ export default {
"https://testnetrpc.num.network"
],
"shortName": "Snow",
"slip44": 1,
"slug": "numbers-testnet",
"testnet": true
} as const satisfies Chain;
+31
View File
@@ -0,0 +1,31 @@
import type { Chain } from "../src/types";
export default {
"chain": "Avalanche",
"chainId": 10671,
"explorers": [],
"faucets": [],
"features": [],
"icon": {
"url": "https://images.ctfassets.net/9bazykntljf6/62CceHSYsRS4D9fgDSkLRB/877cb8f26954e1743ff535fd7fdaf78f/avacloud-placeholder.svg",
"width": 256,
"height": 256,
"format": "svg"
},
"infoURL": "https://avacloud.io",
"name": "QI M 12131",
"nativeCurrency": {
"name": "QI M 12131 Token",
"symbol": "XVL",
"decimals": 18
},
"networkId": 10671,
"redFlags": [],
"rpc": [
"https://qi-m-12131.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"https://10671.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"https://subnets.avacloud-test.io/c3c8cc74-5101-4380-937f-4f534cad0128"
],
"shortName": "QI M 12131",
"slug": "qi-m-12131",
"testnet": true
} as const satisfies Chain;
+1
View File
@@ -32,6 +32,7 @@ export default {
"https://testnet.rpc.novanetwork.io"
],
"shortName": "ntn",
"slip44": 1,
"slug": "nebula-testnet",
"testnet": true
} as const satisfies Chain;
+1
View File
@@ -29,6 +29,7 @@ export default {
"networkId": 1071,
"rpc": [],
"shortName": "shimmerevm-testnet-deprecated",
"slip44": 1,
"slug": "shimmerevm-testnet-deprecated",
"status": "deprecated",
"testnet": true,
+7 -9
View File
@@ -20,20 +20,18 @@ export default {
"format": "png"
},
"infoURL": "https://shimmer.network",
"name": "ShimmerEVM Testnet",
"name": "ShimmerEVM Testnet Deprecated 1072",
"nativeCurrency": {
"name": "SMR",
"symbol": "SMR",
"decimals": 6
},
"networkId": 1072,
"rpc": [
"https://shimmerevm-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"https://1072.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"https://json-rpc.evm.testnet.shimmer.network"
],
"shortName": "shimmerevm-testnet",
"slug": "shimmerevm-testnet",
"rpc": [],
"shortName": "shimmerevm-testnet-deprecated-1072",
"slip44": 1,
"slug": "shimmerevm-testnet-deprecated-1072",
"status": "deprecated",
"testnet": true,
"title": "ShimmerEVM Testnet"
"title": "ShimmerEVM Testnet Deprecated 1072"
} as const satisfies Chain;
+40
View File
@@ -0,0 +1,40 @@
import type { Chain } from "../src/types";
export default {
"chain": "ShimmerEVM",
"chainId": 1073,
"explorers": [
{
"name": "explorer",
"url": "https://explorer.evm.testnet.shimmer.network",
"standard": "EIP3091"
}
],
"faucets": [
"https://evm-toolkit.evm.testnet.shimmer.network",
"https://evm-faucet.testnet.shimmer.network"
],
"icon": {
"url": "ipfs://bafkreibky2sy6qhi6arktayvologkrgu5kudpgdxfkx4uosbvmstz7v4di",
"width": 720,
"height": 720,
"format": "png"
},
"infoURL": "https://shimmer.network",
"name": "ShimmerEVM Testnet",
"nativeCurrency": {
"name": "SMR",
"symbol": "SMR",
"decimals": 6
},
"networkId": 1073,
"rpc": [
"https://shimmerevm-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"https://1073.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"https://json-rpc.evm.testnet.shimmer.network"
],
"shortName": "shimmerevm-testnet",
"slip44": 1,
"slug": "shimmerevm-testnet",
"testnet": true,
"title": "ShimmerEVM Testnet"
} as const satisfies Chain;
+1
View File
@@ -30,6 +30,7 @@ export default {
"https://subnets.avax.network/mintara/testnet/rpc"
],
"shortName": "mintara-testnet",
"slip44": 1,
"slug": "mintara-testnet",
"testnet": true,
"title": "Mintara Testnet"
+1
View File
@@ -39,6 +39,7 @@ export default {
"https://rpctest2.quadrans.io"
],
"shortName": "quadranstestnet",
"slip44": 1,
"slug": "quadrans-blockchain-testnet",
"testnet": true
} as const satisfies Chain;
+1
View File
@@ -18,6 +18,7 @@ export default {
"https://protontestnet.greymass.com/"
],
"shortName": "xpr",
"slip44": 1,
"slug": "proton-testnet",
"testnet": true
} as const satisfies Chain;
+1
View File
@@ -36,6 +36,7 @@ export default {
"https://testnetq1.blx.org"
],
"shortName": "tblxq",
"slip44": 1,
"slug": "blxq-testnet",
"testnet": true
} as const satisfies Chain;
+1
View File
@@ -36,6 +36,7 @@ export default {
"https://rpc.test.siberium.net"
],
"shortName": "testsbr",
"slip44": 1,
"slug": "siberium-test-network",
"testnet": true
} as const satisfies Chain;
+1
View File
@@ -49,6 +49,7 @@ export default {
"https://rpc.astranaut.dev"
],
"shortName": "astra-testnet",
"slip44": 1,
"slug": "astra-testnet",
"testnet": true
} as const satisfies Chain;
+1
View File
@@ -27,6 +27,7 @@ export default {
"wss://ws.test.wemix.com"
],
"shortName": "twemix",
"slip44": 1,
"slug": "wemix3-0-testnet",
"testnet": true
} as const satisfies Chain;
+1
View File
@@ -38,6 +38,7 @@ export default {
"https://rpc.test.btcs.network/"
],
"shortName": "tcore",
"slip44": 1,
"slug": "core-blockchain-testnet",
"testnet": true
} as const satisfies Chain;
+1
View File
@@ -48,6 +48,7 @@ export default {
"wss://ethereum-sepolia.publicnode.com"
],
"shortName": "sep",
"slip44": 1,
"slug": "sepolia",
"testnet": true,
"title": "Ethereum Testnet Sepolia"
+46
View File
@@ -0,0 +1,46 @@
import type { Chain } from "../src/types";
export default {
"chain": "ETH",
"chainId": 11155420,
"explorers": [
{
"name": "opscout",
"url": "https://optimism-sepolia.blockscout.com",
"standard": "EIP3091",
"icon": {
"url": "ipfs://QmYtUimyqHkkFxYdbXXRbUqNg2VLPUg6Uu2C2nmFWowiZM",
"width": 551,
"height": 540,
"format": "png"
}
}
],
"faucets": [
"https://app.optimism.io/faucet"
],
"features": [],
"icon": {
"url": "ipfs://QmcxZHpyJa8T4i63xqjPYrZ6tKrt55tZJpbXcjSDKuKaf9/optimism/512.png",
"width": 512,
"height": 512,
"format": "png"
},
"infoURL": "https://optimism.io",
"name": "OP Sepolia Testnet",
"nativeCurrency": {
"name": "Sepolia Ether",
"symbol": "ETH",
"decimals": 18
},
"networkId": 11155420,
"redFlags": [],
"rpc": [
"https://op-sepolia-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"https://11155420.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"https://sepolia.optimism.io"
],
"shortName": "opsep",
"slip44": 1,
"slug": "op-sepolia-testnet",
"testnet": true
} as const satisfies Chain;
+33
View File
@@ -0,0 +1,33 @@
import type { Chain } from "../src/types";
export default {
"chain": "TILTYARD",
"chainId": 1127469,
"explorers": [
{
"name": "TILTYARD Explorer",
"url": "http://testnet-explorer.tiltyard.gg",
"standard": "EIP3091"
}
],
"faucets": [],
"features": [
{
"name": "EIP1559"
}
],
"name": "Tiltyard Subnet",
"nativeCurrency": {
"name": "Tiltyard Token",
"symbol": "TILTG",
"decimals": 18
},
"networkId": 1127469,
"rpc": [
"https://tiltyard-subnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"https://1127469.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"https://subnets.avax.network/tiltyard/testnet/rpc"
],
"shortName": "tiltyard",
"slug": "tiltyard-subnet",
"testnet": true
} as const satisfies Chain;
+11 -4
View File
@@ -4,9 +4,14 @@ export default {
"chainId": 11297108099,
"explorers": [
{
"name": "Palm Testnet Explorer",
"url": "https://explorer.palm-uat.xyz",
"name": "Chainlens",
"url": "https://testnet.palm.chainlens.com",
"standard": "EIP3091"
},
{
"name": "Dora",
"url": "https://www.ondora.xyz/network/palm-testnet",
"standard": "none"
}
],
"faucets": [],
@@ -16,7 +21,7 @@ export default {
"height": 72,
"format": "svg"
},
"infoURL": "https://palm.io",
"infoURL": "https://palm.network",
"name": "Palm Testnet",
"nativeCurrency": {
"name": "PALM",
@@ -27,9 +32,11 @@ export default {
"rpc": [
"https://palm-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"https://11297108099.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"https://palm-testnet.infura.io/v3/${INFURA_API_KEY}"
"https://palm-testnet.infura.io/v3/${INFURA_API_KEY}",
"https://palm-testnet.public.blastapi.io"
],
"shortName": "tpalm",
"slip44": 1,
"slug": "palm-testnet",
"testnet": true
} as const satisfies Chain;
+10 -4
View File
@@ -4,9 +4,14 @@ export default {
"chainId": 11297108109,
"explorers": [
{
"name": "Palm Explorer",
"url": "https://explorer.palm.io",
"name": "Chainlens",
"url": "https://palm.chainlens.com",
"standard": "EIP3091"
},
{
"name": "Dora",
"url": "https://www.ondora.xyz/network/palm",
"standard": "none"
}
],
"faucets": [],
@@ -16,7 +21,7 @@ export default {
"height": 72,
"format": "svg"
},
"infoURL": "https://palm.io",
"infoURL": "https://palm.network",
"name": "Palm",
"nativeCurrency": {
"name": "PALM",
@@ -27,7 +32,8 @@ export default {
"rpc": [
"https://palm.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"https://11297108109.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"https://palm-mainnet.infura.io/v3/${INFURA_API_KEY}"
"https://palm-mainnet.infura.io/v3/${INFURA_API_KEY}",
"https://palm-mainnet.public.blastapi.io"
],
"shortName": "palm",
"slug": "palm",
+1
View File
@@ -20,6 +20,7 @@ export default {
"networkId": 1131,
"rpc": [],
"shortName": "DFI-T",
"slip44": 1,
"slug": "defichain-evm-network-testnet",
"status": "incubating",
"testnet": true
+9 -8
View File
@@ -13,13 +13,13 @@ export default {
"http://tc04.mydefichain.com/faucet"
],
"icon": {
"url": "ipfs://QmTFyaJFmkDQf35rVRzEf78nGThKAyUCW4BoRaKDi4nnV5",
"width": 720,
"height": 720,
"format": "png"
"url": "ipfs://QmdR3YL9F95ajwVwfxAGoEzYwm9w7JNsPSfUPjSaQogVjK",
"width": 512,
"height": 512,
"format": "svg"
},
"infoURL": "https://defichain.com",
"name": "DeFiMetaChain",
"infoURL": "https://meta.defichain.com",
"name": "DeFiMetaChain Changi Testnet",
"nativeCurrency": {
"name": "DeFiChain Token",
"symbol": "DFI",
@@ -27,11 +27,12 @@ export default {
},
"networkId": 1133,
"rpc": [
"https://defimetachain.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"https://defimetachain-changi-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"https://1133.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"https://dmc.mydefichain.com/changi",
"https://testnet-dmc.mydefichain.com:20551"
],
"shortName": "changi",
"slug": "defimetachain",
"slug": "defimetachain-changi-testnet",
"testnet": true
} as const satisfies Chain;
+1
View File
@@ -30,6 +30,7 @@ export default {
"https://testnet-rpc.amstarscan.com"
],
"shortName": "ASARt",
"slip44": 1,
"slug": "amstar-testnet",
"testnet": true
} as const satisfies Chain;
+1
View File
@@ -32,6 +32,7 @@ export default {
"https://coston2-api.flare.network/ext/bc/C/rpc"
],
"shortName": "c2flr",
"slip44": 1,
"slug": "flare-testnet-coston2",
"testnet": true
} as const satisfies Chain;
+1
View File
@@ -20,6 +20,7 @@ export default {
"https://galois-hk.maiziqianbao.net/rpc"
],
"shortName": "tMATH",
"slip44": 1,
"slug": "mathchain-testnet",
"testnet": true
} as const satisfies Chain;
+1
View File
@@ -26,6 +26,7 @@ export default {
"networkId": 11437,
"rpc": [],
"shortName": "shyftt",
"slip44": 1,
"slug": "shyft-testnet",
"testnet": true
} as const satisfies Chain;
+1
View File
@@ -20,6 +20,7 @@ export default {
"networkId": 115,
"rpc": [],
"shortName": "debank-testnet",
"slip44": 1,
"slug": "debank-testnet-deprecated",
"status": "deprecated",
"testnet": true
+35
View File
@@ -0,0 +1,35 @@
import type { Chain } from "../src/types";
export default {
"chain": "BEVM",
"chainId": 11503,
"explorers": [
{
"name": "bevm testnet scan",
"url": "https://scan-testnet.bevm.io",
"standard": "none"
}
],
"faucets": [],
"icon": {
"url": "ipfs://QmfMXiYn4xF9JwdjaqM5YKhqoByox51XvnL68VvKJS6yyu",
"width": 1000,
"height": 1000,
"format": "png"
},
"infoURL": "https://bevm.io",
"name": "BEVM Testnet",
"nativeCurrency": {
"name": "BTC",
"symbol": "BTC",
"decimals": 18
},
"networkId": 11503,
"rpc": [
"https://bevm-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"https://11503.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"https://testnet.bevm.io/"
],
"shortName": "bevm",
"slug": "bevm-testnet",
"testnet": true
} as const satisfies Chain;
+1
View File
@@ -32,6 +32,7 @@ export default {
"https://testnet-rpc.sardisnetwork.com"
],
"shortName": "SRDXt",
"slip44": 1,
"slug": "sardis-testnet",
"testnet": true
} as const satisfies Chain;
+1
View File
@@ -36,6 +36,7 @@ export default {
"https://json-rpc.origin.uptick.network"
],
"shortName": "auoc",
"slip44": 1,
"slug": "origin-testnet",
"testnet": true
} as const satisfies Chain;
+1
View File
@@ -44,6 +44,7 @@ export default {
"https://s2.tl.web.tr:4041"
],
"shortName": "sht",
"slip44": 1,
"slug": "smart-host-teknoloji-testnet",
"testnet": true
} as const satisfies Chain;
+1
View File
@@ -30,6 +30,7 @@ export default {
"https://testnet.arcology.network/rpc"
],
"shortName": "arcology",
"slip44": 1,
"slug": "arcology-testnet",
"testnet": true
} as const satisfies Chain;
+1
View File
@@ -18,6 +18,7 @@ export default {
"https://api.metadium.com/dev"
],
"shortName": "kal",
"slip44": 1,
"slug": "metadium-testnet",
"testnet": true
} as const satisfies Chain;
+1
View File
@@ -39,6 +39,7 @@ export default {
"https://beta.evmapi2.nuls.io"
],
"shortName": "enulst",
"slip44": 1,
"slug": "enuls-testnet",
"testnet": true
} as const satisfies Chain;
+1
View File
@@ -18,6 +18,7 @@ export default {
"https://seed5.evanesco.org:8547"
],
"shortName": "avis",
"slip44": 1,
"slug": "evanesco-testnet",
"testnet": true
} as const satisfies Chain;
+31
View File
@@ -0,0 +1,31 @@
import type { Chain } from "../src/types";
export default {
"chain": "Avalanche",
"chainId": 12035,
"explorers": [],
"faucets": [],
"features": [],
"icon": {
"url": "https://images.ctfassets.net/9bazykntljf6/62CceHSYsRS4D9fgDSkLRB/877cb8f26954e1743ff535fd7fdaf78f/avacloud-placeholder.svg",
"width": 256,
"height": 256,
"format": ".svg"
},
"infoURL": "https://avacloud.io",
"name": "QI M 11272",
"nativeCurrency": {
"name": "QI M 11272 Token",
"symbol": "JZW",
"decimals": 18
},
"networkId": 12035,
"redFlags": [],
"rpc": [
"https://qi-m-11272.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"https://12035.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"https://subnets.avacloud-dev.io/b19c9e32-f359-451f-ad15-7ec784625c04"
],
"shortName": "QI M 11272",
"slug": "qi-m-11272",
"testnet": true
} as const satisfies Chain;
+1
View File
@@ -26,6 +26,7 @@ export default {
"https://betaenv.singularity.gold:18545"
],
"shortName": "tZERO",
"slip44": 1,
"slug": "singularity-zero-testnet",
"testnet": true
} as const satisfies Chain;
+33
View File
@@ -0,0 +1,33 @@
import type { Chain } from "../src/types";
export default {
"chain": "1220",
"chainId": 1220,
"explorers": [
{
"name": "flagscan",
"url": "https://testnet-scan.flagscan.io/",
"standard": "EIP3091"
}
],
"faucets": [],
"features": [],
"icon": {
"url": "ipfs://QmXo2p1i4zsbTNEu41EjjrhdmbKFDGHEHeADXZ3x2fgNKE/1682003789585.jpeg",
"width": 3600,
"height": 3600,
"format": "jpeg"
},
"infoURL": "https://flagblockchain.com/",
"name": "Flag Testnet",
"nativeCurrency": {
"name": "FLAG",
"symbol": "FLAG",
"decimals": 18
},
"networkId": 1220,
"redFlags": [],
"rpc": [],
"shortName": "Flag",
"slug": "flag-testnet",
"testnet": true
} as const satisfies Chain;
+1
View File
@@ -36,6 +36,7 @@ export default {
"https://ultron-dev.io"
],
"shortName": "UltronTestnet",
"slip44": 1,
"slug": "ultron-testnet",
"testnet": true
} as const satisfies Chain;
+1
View File
@@ -26,6 +26,7 @@ export default {
"https://rpc.blgchain.com"
],
"shortName": "blgchain",
"slip44": 1,
"slug": "blg-testnet",
"testnet": true
} as const satisfies Chain;
+1
View File
@@ -42,6 +42,7 @@ export default {
"https://rpc.testnet.step.network"
],
"shortName": "steptest",
"slip44": 1,
"slug": "step-testnet",
"testnet": true,
"title": "Step Test Network"
+1
View File
@@ -32,6 +32,7 @@ export default {
"https://rpc-test-1.archiechain.io"
],
"shortName": "TARC",
"slip44": 1,
"slug": "arc-testnet",
"testnet": true
} as const satisfies Chain;
+29
View File
@@ -0,0 +1,29 @@
import type { Chain } from "../src/types";
export default {
"chain": "Dogether",
"chainId": 1248,
"explorers": [
{
"name": "DogetherExplorer",
"url": "https://explorer.dogether.dog",
"standard": "EIP3091"
}
],
"faucets": [],
"infoURL": "https://www.dogether.dog/",
"name": "Dogether Mainnet",
"nativeCurrency": {
"name": "Dogether",
"symbol": "dogeth",
"decimals": 18
},
"networkId": 1248,
"rpc": [
"https://dogether.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"https://1248.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"https://rpc.dogether.dog/"
],
"shortName": "Dogether",
"slug": "dogether",
"testnet": false
} as const satisfies Chain;
+1 -1
View File
@@ -26,7 +26,7 @@ export default {
"https://rpc.testnet.oychain.io"
],
"shortName": "OYchainTestnet",
"slip44": 125,
"slip44": 1,
"slug": "oychain-testnet",
"testnet": true
} as const satisfies Chain;
+1
View File
@@ -38,6 +38,7 @@ export default {
"https://testapi.cicscan.com"
],
"shortName": "CICT",
"slip44": 1,
"slug": "cic-chain-testnet",
"testnet": true
} as const satisfies Chain;
+1
View File
@@ -30,6 +30,7 @@ export default {
"https://testnet-rpc.rikscan.com"
],
"shortName": "tRIK",
"slip44": 1,
"slug": "rikeza-network-testnet",
"testnet": true,
"title": "Rikeza Network Testnet"
+48
View File
@@ -0,0 +1,48 @@
import type { Chain } from "../src/types";
export default {
"chain": "Etherlink",
"chainId": 128123,
"explorers": [
{
"name": "Explorer",
"url": "https://testnet-explorer.etherlink.com/",
"standard": "EIP1559"
}
],
"faucets": [
"https://faucet.etherlink.com"
],
"features": [
{
"name": "EIP1559"
}
],
"icon": {
"url": "ipfs://QmVqE4wq3fd3RKZwo7GxmW333ywHgYBZGvqwh3TUBM5DUi",
"width": 3600,
"height": 3600,
"format": "PNG"
},
"infoURL": "https://node.ghostnet.etherlink.com",
"name": "Etherlink Testnet",
"nativeCurrency": {
"name": "tez",
"symbol": "XTZ",
"decimals": 18
},
"networkId": 128123,
"parent": {
"type": "Etherlink",
"chain": "Etherlink",
"bridges": []
},
"redFlags": [],
"rpc": [
"https://etherlink-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"https://128123.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"https://node.ghostnet.etherlink.com"
],
"shortName": "etlt",
"slug": "etherlink-testnet",
"testnet": true
} as const satisfies Chain;
+1
View File
@@ -25,6 +25,7 @@ export default {
"wss://wss.api.moonbase.moonbeam.network"
],
"shortName": "mbase",
"slip44": 1,
"slug": "moonbase-alpha",
"testnet": true
} as const satisfies Chain;
+1
View File
@@ -30,6 +30,7 @@ export default {
"https://testnet-rpc.quantumscan.org"
],
"shortName": "tqnet",
"slip44": 1,
"slug": "quantum-chain-testnet",
"testnet": true
} as const satisfies Chain;

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