Compare commits

...
Author SHA1 Message Date
Jonas DanielsGitHubgithub-actions[bot] <github-actions[bot]@users.noreply.github.com>
af01c63b45 Version Packages (#2384)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2024-03-05 20:54:31 -08:00
3796204372 chore(chains): update chains (#2402)
Co-authored-by: GitHub Action <[email protected]>
2024-03-05 20:48:29 -08:00
Joaquim VergesandGitHub 9c7fbc1603 [SDK] update NFT drop metadata (#2404) 2024-03-06 04:41:47 +00:00
iketwandGitHub 156950423b [RN] cap expo-app version for automatic installation (#2405) 2024-03-06 04:13:01 +00:00
FirekeeperandGitHub f80f6307a3 [Smart Wallet] ERC20Paymaster Generic Support (#2388) 2024-03-05 21:38:43 +00:00
5f243bba0d chore(chains): update chains (#2378)
Co-authored-by: GitHub Action <[email protected]>
2024-03-05 10:16:45 -08:00
Joaquim VergesandGitHub 7d8697ec3f [React] expose useUpdateNFTMetadata hook (#2382) 2024-03-04 19:41:31 +00:00
FirekeeperandGitHub ab44b8f0ae [Smart Wallet] Do not deploy to sign typed data, allow presigned deploy+session key (#2379) 2024-03-02 15:13:56 +00:00
ad135b67b9 add factory v2 unit test (#2357)
Co-authored-by: Jonas Daniels <[email protected]>
2024-03-01 12:52:31 +00:00
Jonas DanielsGitHubgithub-actions[bot] <github-actions[bot]@users.noreply.github.com>GitHub Action
5a648f7e74 Version Packages (#2377)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Co-authored-by: GitHub Action <[email protected]>
2024-02-29 16:17:22 -08:00
e87292ab60 chore(chains): update chains (#2372)
Co-authored-by: GitHub Action <[email protected]>
2024-02-29 15:09:34 -08:00
Manan TankandGitHub d5d7d542ce [react] Make OTPInput numeric ( EmbeddedWallet UI ) (#2376) 2024-02-29 22:11:51 +00:00
Jonas DanielsGitHubgithub-actions[bot] <github-actions[bot]@users.noreply.github.com>GitHub Action
bc694a1823 Version Packages (#2338)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Co-authored-by: GitHub Action <[email protected]>
2024-02-29 11:30:35 -08:00
Manan TankandGitHub 553f7fda47 [react] Remove unnecessary ConnectModal opening (#2375) 2024-02-29 19:13:01 +00:00
Manan TankandGitHub bc198e215e Use private for private members in classes instead of # (#2374) 2024-02-29 17:49:32 +00:00
73e34c083c [wallet, react] Add Magic Eden wallet (#2347)
Co-authored-by: Manan Tank <[email protected]>
Co-authored-by: Jonas Daniels <[email protected]>
2024-02-29 10:24:00 +00:00
cc22fa84e5 chore(chains): update chains (#2371)
Co-authored-by: GitHub Action <[email protected]>
2024-02-29 02:08:13 -08:00
58b9dbc17d chore(chains): update chains (#2368)
Co-authored-by: GitHub Action <[email protected]>
2024-02-28 21:18:28 -08:00
Joaquim VergesandGitHub 8d2811dd13 [SDK] handle updating metadata for ERC1155Token contracts (#2369) 2024-02-29 03:38:45 +00:00
YashandGitHub 7d74d30b9f [SDK] Resolve EIP7511 minimal proxy (#2362) 2024-02-28 23:25:12 +00:00
f3a0154b5a chore(chains): update chains (#2367)
Co-authored-by: GitHub Action <[email protected]>
2024-02-28 15:08:03 -08:00
Jonas DanielsandGitHub 10b71dd7a0 revert: 4d89dc1efa (#2364)
Signed-off-by: Jonas Daniels <[email protected]>
2024-02-28 20:21:54 +00:00
FirekeeperandGitHub 1ac06b9286 Unity 4.7.1 (#2363) 2024-02-28 19:51:11 +00:00
cff6ef2c97 [react] remove const enums (#2354)
Co-authored-by: Jonas Daniels <[email protected]>
2024-02-28 19:15:39 +00:00
574f180dde chore(chains): update chains (#2358)
Co-authored-by: GitHub Action <[email protected]>
2024-02-28 11:04:22 -08:00
YashandGitHub bac0c9b4a1 [SDK] Fix joinABI filtering (#2359) 2024-02-28 18:57:12 +00:00
a11f27be4e chore(chains): update chains (#2345)
Co-authored-by: GitHub Action <[email protected]>
2024-02-27 09:55:25 -08:00
FirekeeperandGitHub e7528af48f [Smart Wallet] Always force deploy on sign/auth, support 1271 (#2341) 2024-02-26 23:03:51 +00:00
Kien NgoandGitHub a50d3b04f6 [React] Update code snippet for XDEFI wallet (#2348) 2024-02-26 05:33:13 +00:00
fb5c185319 chore(chains): update chains (#2339)
Co-authored-by: GitHub Action <[email protected]>
2024-02-23 10:36:27 -08:00
Joaquim VergesandGitHub a00917cca4 [SDK] updateMetadata for edition drop contracts (#2343) 2024-02-22 18:18:22 +00:00
Jonas DanielsandGitHub 7bbf3e235e refactor(utils): update RPC URLs and remove unnecessary code (#2337) 2024-02-21 13:11:13 +00:00
abc0a53dc3 chore(chains): update chains (#2336)
Co-authored-by: GitHub Action <[email protected]>
2024-02-21 05:01:20 -08:00
Jonas DanielsGitHubgithub-actions[bot] <github-actions[bot]@users.noreply.github.com>GitHub Action
38ea61c649 Version Packages (#2293)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Co-authored-by: GitHub Action <[email protected]>
2024-02-21 04:36:32 -08:00
652275834e chore(chains): update chains (#2322)
Co-authored-by: GitHub Action <[email protected]>
2024-02-21 03:54:12 -08:00
Joaquim VergesandGitHub 64f05ad040 Doc Grouping (#2262) 2024-02-21 05:24:44 +00:00
Manan TankandGitHub b5337bcfc3 Add hideSendButton and hideReceiveButton props in ConnectWallet (#2331) 2024-02-20 08:56:48 +00:00
YashandGitHub 2348417114 [SDK] Custom gas for Xpla create2 factory deployment (#1529) 2024-02-19 21:15:43 +00:00
Manan TankandGitHub e6a2407ee5 Add ABI in useContract query key (#2311) 2024-02-19 15:50:33 +00:00
b2a493f748 chore(chains): update chains (#2314)
Co-authored-by: GitHub Action <[email protected]>
2024-02-16 15:57:07 -08:00
Jonas DanielsandGitHub 440f5f1b9e fix storage test (#2319) 2024-02-16 15:28:40 -08:00
Gerry SaporitoandGitHub 42d7510daf fix: respect usage limits (#2318) 2024-02-16 22:33:28 +00:00
Manan TankandGitHub 73a374aac2 [wallets] Ignore Rabby in MM injected provider detection (#2316) 2024-02-16 15:58:27 +00:00
dependabot[bot]GitHubdependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
4bb65cf8be Bump @changesets/changelog-github from 0.4.8 to 0.5.0 (#2263)
Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-02-16 02:55:24 -08:00
dependabot[bot]GitHubdependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
7bcecc5628 Bump yaml from 2.3.1 to 2.3.4 (#2264)
Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-02-16 02:55:12 -08:00
dependabot[bot]GitHubdependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
e13b0d8cf3 Bump @types/crypto-js from 4.1.3 to 4.2.2 (#2265)
Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-02-16 02:54:55 -08:00
db50b2fcc5 chore(chains): update chains (#2310)
Co-authored-by: GitHub Action <[email protected]>
2024-02-15 23:33:10 -08:00
Manan TankandGitHub 23820b2771 [wallets, react] Update supported networks in Safe (#2309) 2024-02-15 18:22:28 +00:00
a4722053bd chore(chains): update chains (#2306)
Co-authored-by: GitHub Action <[email protected]>
2024-02-15 09:10:31 -08:00
FirekeeperandGitHub b33d13161c Unity 4.6.4 (#2307) 2024-02-14 19:13:47 +00:00
fa637c2e3c chore(chains): update chains (#2305)
Co-authored-by: GitHub Action <[email protected]>
2024-02-13 23:41:05 -08:00
Joaquim VergesandGitHub 3137e45bb8 [SDK] expose rpcBatchingOptions (#2294) 2024-02-14 00:32:02 +00:00
ed4ad8658e chore(chains): update chains (#2295)
Co-authored-by: GitHub Action <[email protected]>
2024-02-13 16:32:36 -08:00
Manan TankandGitHub 9e6b3e5764 ConnectWallet fixes and Improvements (#2303) 2024-02-13 15:46:51 +00:00
YashandGitHub 94a699caae Resolve implementation update (#2300) 2024-02-12 22:46:35 +00:00
Manan TankandGitHub ecd82b4619 [react] Fix usage of dashed props instead of camel case on SVG (#2299) 2024-02-12 14:52:17 +00:00
FirekeeperandGitHub c44d6f2f9d [Unity] Support Wallet.GetSignerAddress (#2298) 2024-02-12 14:07:03 +00:00
ca70cd3882 chore(chains): update chains (#2285)
Co-authored-by: GitHub Action <[email protected]>
2024-02-09 22:56:42 -08:00
Joaquim VergesandGitHub 0f9a7b2571 [SDK] Lower max RPC batch size (#2292) 2024-02-10 05:41:34 +00:00
Jonas DanielsGitHubgithub-actions[bot] <github-actions[bot]@users.noreply.github.com>GitHub Action
d33227ab2b Version Packages (#2282)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Co-authored-by: GitHub Action <[email protected]>
2024-02-09 17:37:26 -08:00
Joaquim VergesandGitHub 53786fc306 [SDK] memoize extensions (#2291) 2024-02-10 01:00:42 +00:00
Manan TankandGitHub f85806c067 Update EmbeddedWallet name in CW (#2290) 2024-02-09 22:40:40 +00:00
Manan TankandGitHub 0155adcea4 Show EmbeddedWallet UI as initial screen in CW (#2289) 2024-02-09 20:57:32 +00:00
Manan TankandGitHub 74d76ff580 Add "Powered By Thirdweb" Branding in CW (#2288) 2024-02-09 16:32:27 +00:00
farhanW3andGitHub 537e5e063d [Usage]: Usage Schema to have new field (#2287) 2024-02-09 00:47:33 +00:00
Isaac DubuqueandGitHub a86478bf24 add sdk support for engine relayer options (#2233) 2024-02-09 00:40:52 +00:00
Joaquim VergesandGitHub 09de55f13c [SDK] Export MerkleTree helper functions (#2286) 2024-02-08 22:43:13 +00:00
23d0e55308 chore(chains): update chains (#2280)
Co-authored-by: GitHub Action <[email protected]>
2024-02-08 09:44:22 -08:00
FirekeeperandGitHub 185093c185 Unity 4.6.2 (#2284) 2024-02-08 14:35:00 +00:00
farhanW3andGitHub 77400fcf21 Added new properties to usage (#2281) 2024-02-08 01:34:19 +00:00
Jonas DanielsGitHubgithub-actions[bot] <github-actions[bot]@users.noreply.github.com>GitHub Action
6a41fe9829 Version Packages (#2274)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Co-authored-by: GitHub Action <[email protected]>
2024-02-07 13:11:26 -08:00
0092e2a317 fix(auth): Next.js App Router handler return type (#2278)
Signed-off-by: Jonas Daniels <[email protected]>
Co-authored-by: Jonas Daniels <[email protected]>
2024-02-07 12:47:09 -08:00
87b9e6d42d chore(chains): update chains (#2279)
Co-authored-by: GitHub Action <[email protected]>
2024-02-07 10:29:29 -08:00
github-actions[bot]andGitHub 336dfd3b37 chore(chains): update chains (#2277) 2024-02-07 08:52:01 -08:00
957c75a36e chore(chains): update chains (#2276)
Co-authored-by: GitHub Action <[email protected]>
2024-02-06 22:27:49 -08:00
357886e31b chore(chains): update chains (#2258)
Co-authored-by: GitHub Action <[email protected]>
2024-02-06 15:46:46 -08:00
DustinandGitHub 330c270f3c Update .env.example (#2272) 2024-02-06 13:52:51 -08:00
Joaquim VergesandGitHub 9096bdc0f1 [ServiceUtils] Add latency prop to CF worker logs (#2273) 2024-02-06 21:44:43 +00:00
saminaandGitHub 62ef83c9e0 Update pull_request_template.md (#2267)
Signed-off-by: samina <[email protected]>
2024-02-06 18:15:54 +00:00
Jonas DanielsGitHubgithub-actions[bot] <github-actions[bot]@users.noreply.github.com>GitHub Action
1e7a7a5f3c Version Packages (#2261)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Co-authored-by: GitHub Action <[email protected]>
2024-02-06 09:36:14 -08:00
Manan TankandGitHub 433d49e3ab [react-core] keep wallet states in sync (#2270) 2024-02-06 17:18:46 +00:00
Joaquim VergesandGitHub 5a3f7fa123 [ServiceUtil] add latency prop to logHttpRequest (#2266) 2024-02-06 05:08:46 +00:00
FirekeeperandGitHub 3857cba8ab Unity v4.6.1 (#2268) 2024-02-06 01:57:02 +00:00
Manan TankandGitHub 6a3cacb622 [react] Enforce compact CW modal size based on available space (#2260) 2024-02-02 17:35:52 +00:00
Jonas DanielsGitHubgithub-actions[bot] <github-actions[bot]@users.noreply.github.com>
bdf60e9890 Version Packages (#2257)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2024-02-01 17:26:18 -08:00
1e50caeed1 chore(chains): update chains (#2255)
Co-authored-by: GitHub Action <[email protected]>
2024-02-01 17:21:42 -08:00
Jonas DanielsandGitHub 1decd52a36 fix(gas-price): handle flag-chain overrides (#2256) 2024-02-02 01:10:37 +00:00
Jonas DanielsGitHubgithub-actions[bot] <github-actions[bot]@users.noreply.github.com>GitHub Action
0b7010eccb Version Packages (#2249)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Co-authored-by: GitHub Action <[email protected]>
2024-02-01 15:52:14 -08:00
041c01341b chore(chains): update chains (#2250)
Co-authored-by: GitHub Action <[email protected]>
2024-02-01 15:09:04 -08:00
Manan TankandGitHub 439a377aa7 [react] add detailsModalFooter prop in ConnectWallet (#2252) 2024-02-01 21:53:21 +00:00
Nacho IacovinoandGitHub 4f52c29611 Update error message link (#2248) 2024-02-01 18:39:14 +00:00
374671fd9a chore(chains): update chains (#2247)
Co-authored-by: GitHub Action <[email protected]>
2024-01-31 21:25:01 -08:00
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
1843 changed files with 35455 additions and 9169 deletions
+2 -1
View File
@@ -3,4 +3,5 @@
# used for unit tests that hit real IPFS gateway
# get a secret key from https://thirdweb.com/create-api-key
TW_SECRET_KEY=""
# Learn more about API keys. https://portal.thirdweb.com/account/api-keys
TW_SECRET_KEY=""
+6
View File
@@ -11,3 +11,9 @@ Short description of the bug fixed or feature added
- [ ] Automated tests: link to unit test file
- [ ] Manual tests: step by step instructions on how to test
## Contributor NFT
Paste in your wallet address below and we will airdrop you a special NFT when your pull request is merged.
```Address: ```
+4 -4
View File
@@ -34,7 +34,7 @@ jobs:
- name: Setup bun
uses: oven-sh/setup-bun@v1
with:
bun-version: latest
bun-version: 1.0.21
- name: Install
uses: ./.github/composite-actions/install
@@ -67,7 +67,7 @@ jobs:
- name: Setup bun
uses: oven-sh/setup-bun@v1
with:
bun-version: latest
bun-version: 1.0.21
- uses: pnpm/action-setup@v2
with:
@@ -98,7 +98,7 @@ jobs:
- name: Setup bun
uses: oven-sh/setup-bun@v1
with:
bun-version: latest
bun-version: 1.0.21
- uses: pnpm/action-setup@v2
with:
@@ -134,7 +134,7 @@ jobs:
- name: Setup bun
uses: oven-sh/setup-bun@v1
with:
bun-version: latest
bun-version: 1.0.21
- uses: pnpm/action-setup@v2
with:
-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 }}
+1 -1
View File
@@ -29,7 +29,7 @@ jobs:
- name: Setup bun
uses: oven-sh/setup-bun@v1
with:
bun-version: latest
bun-version: 1.0.21
- name: Install
uses: ./.github/composite-actions/install
+1 -1
View File
@@ -70,7 +70,7 @@ jobs:
- name: Setup bun
uses: oven-sh/setup-bun@v1
with:
bun-version: latest
bun-version: 1.0.21
- name: Install
uses: ./.github/composite-actions/install
+8 -3
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,11 +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: latest
bun-version: 1.0.21
- name: Install
uses: ./.github/composite-actions/install
@@ -46,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'
@@ -56,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 -4
View File
@@ -15,6 +15,7 @@
"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",
@@ -36,7 +37,7 @@
},
"packageManager": "[email protected]",
"dependencies": {
"@changesets/changelog-github": "^0.4.8",
"@changesets/changelog-github": "^0.5.0",
"@changesets/cli": "^2.26.2",
"@changesets/get-dependents-graph": "^1.3.6",
"@changesets/get-release-plan": "^3.0.17",
@@ -46,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": {
+102
View File
@@ -1,5 +1,107 @@
# @thirdweb-dev/auth
## 4.1.36
### Patch Changes
- Updated dependencies [[`ab44b8f`](https://github.com/thirdweb-dev/js/commit/ab44b8f0ae760065f400f76d69703e26bcbcc022), [`f80f630`](https://github.com/thirdweb-dev/js/commit/f80f6307a3ebe1adaaf072dd2e02aecf83bfa43f)]:
- @thirdweb-dev/wallets@2.4.14
## 4.1.35
### Patch Changes
- Updated dependencies []:
- @thirdweb-dev/wallets@2.4.13
## 4.1.34
### Patch Changes
- Updated dependencies [[`73e34c0`](https://github.com/thirdweb-dev/js/commit/73e34c083cd9c0d634e39657a4fad0f49f6fec89), [`e7528af`](https://github.com/thirdweb-dev/js/commit/e7528af48ff2dda622ed47074611499cfd66f819), [`10b71dd`](https://github.com/thirdweb-dev/js/commit/10b71dd7a0c6e91bb1ebe8250ca7fac7bac76635), [`bc198e2`](https://github.com/thirdweb-dev/js/commit/bc198e215e57094aac525b262fe91add4786df92)]:
- @thirdweb-dev/wallets@2.4.12
## 4.1.33
### Patch Changes
- Updated dependencies [[`23820b2`](https://github.com/thirdweb-dev/js/commit/23820b277118ae0845d4f0189ac58ef4e75896ba), [`73a374a`](https://github.com/thirdweb-dev/js/commit/73a374aac25c2396dd2a895629737c6e8d024f45)]:
- @thirdweb-dev/wallets@2.4.11
## 4.1.32
### Patch Changes
- Updated dependencies []:
- @thirdweb-dev/wallets@2.4.10
## 4.1.31
### Patch Changes
- [#2278](https://github.com/thirdweb-dev/js/pull/2278) [`0092e2a3`](https://github.com/thirdweb-dev/js/commit/0092e2a3177364ad26af15ecafb4381591dc9be1) Thanks [@hsynlms](https://github.com/hsynlms)! - fix(auth): Next.js App Router handler return type
- Updated dependencies []:
- @thirdweb-dev/wallets@2.4.9
## 4.1.30
### Patch Changes
- Updated dependencies []:
- @thirdweb-dev/wallets@2.4.8
## 4.1.29
### Patch Changes
- Updated dependencies []:
- @thirdweb-dev/wallets@2.4.7
## 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
+12 -12
View File
@@ -1,6 +1,6 @@
{
"name": "@thirdweb-dev/auth",
"version": "4.1.22",
"version": "4.1.36",
"main": "dist/thirdweb-dev-auth.cjs.js",
"module": "dist/thirdweb-dev-auth.esm.js",
"browser": {
@@ -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
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,71 @@
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(req: NextRequest, ctx: ThirdwebNextContext) {
return await ThirdwebAuthRouter(req, ctx, 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;
};
+86
View File
@@ -1,5 +1,91 @@
# @thirdweb-dev/chains
## 0.1.76
### Patch Changes
- [#2378](https://github.com/thirdweb-dev/js/pull/2378) [`5f243bb`](https://github.com/thirdweb-dev/js/commit/5f243bba0ded5dace9344c79e8904a4a342d16af) Thanks [@github-actions](https://github.com/apps/github-actions)! - Synced Chains Package
## 0.1.75
### Patch Changes
- [#2372](https://github.com/thirdweb-dev/js/pull/2372) [`e87292a`](https://github.com/thirdweb-dev/js/commit/e87292ab604897ddfc337d24d2d1fe0f3560baae) Thanks [@github-actions](https://github.com/apps/github-actions)! - Synced Chains Package
## 0.1.74
### Patch Changes
- [#2336](https://github.com/thirdweb-dev/js/pull/2336) [`abc0a53`](https://github.com/thirdweb-dev/js/commit/abc0a53dc398264f205d194e3f87a79f74e91eb1) Thanks [@github-actions](https://github.com/apps/github-actions)! - Synced Chains Package
## 0.1.73
### Patch Changes
- [#2285](https://github.com/thirdweb-dev/js/pull/2285) [`ca70cd3`](https://github.com/thirdweb-dev/js/commit/ca70cd3882b39ffd56275d267e6af9c04fae179b) Thanks [@github-actions](https://github.com/apps/github-actions)! - Synced Chains Package
## 0.1.72
### Patch Changes
- [#2280](https://github.com/thirdweb-dev/js/pull/2280) [`23d0e553`](https://github.com/thirdweb-dev/js/commit/23d0e553088321edfe3971950c2e7f27209d9aaf) Thanks [@github-actions](https://github.com/apps/github-actions)! - Synced Chains Package
## 0.1.71
### Patch Changes
- [#2258](https://github.com/thirdweb-dev/js/pull/2258) [`357886e3`](https://github.com/thirdweb-dev/js/commit/357886e31b37aad950731ce8f013a101190ebd07) Thanks [@github-actions](https://github.com/apps/github-actions)! - Synced Chains Package
## 0.1.70
### Patch Changes
- [#2255](https://github.com/thirdweb-dev/js/pull/2255) [`1e50caee`](https://github.com/thirdweb-dev/js/commit/1e50caeed1b85f91a6d2efb2e5204f3acf300134) Thanks [@github-actions](https://github.com/apps/github-actions)! - Synced Chains Package
## 0.1.69
### Patch Changes
- [#2247](https://github.com/thirdweb-dev/js/pull/2247) [`374671fd`](https://github.com/thirdweb-dev/js/commit/374671fd9ac97a93263b09c6c0a53cfd129881d7) Thanks [@github-actions](https://github.com/apps/github-actions)! - Synced Chains Package
## 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
+2 -3
View File
@@ -59,15 +59,14 @@ export default {
"networkId": 1,
"redFlags": [],
"rpc": [
"https://ethereum.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"https://1.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"https://mainnet.infura.io/v3/${INFURA_API_KEY}",
"wss://mainnet.infura.io/ws/v3/${INFURA_API_KEY}",
"https://eth-mainnet.g.alchemy.com/v2/${ALCHEMY_API_KEY}",
"https://api.mycryptoapi.com/eth",
"https://cloudflare-eth.com",
"https://ethereum.publicnode.com",
"wss://ethereum.publicnode.com",
"https://ethereum-rpc.publicnode.com",
"wss://ethereum-rpc.publicnode.com",
"https://mainnet.gateway.tenderly.co",
"wss://mainnet.gateway.tenderly.co",
"https://rpc.blocknative.com/boost",
+3 -3
View File
@@ -49,15 +49,15 @@ export default {
"networkId": 10,
"redFlags": [],
"rpc": [
"https://optimism.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"https://10.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"https://optimism-mainnet.infura.io/v3/${INFURA_API_KEY}",
"https://opt-mainnet.g.alchemy.com/v2/${ALCHEMY_API_KEY}",
"https://mainnet.optimism.io",
"https://optimism.publicnode.com",
"wss://optimism.publicnode.com",
"https://optimism.gateway.tenderly.co",
"wss://optimism.gateway.tenderly.co"
"wss://optimism.gateway.tenderly.co",
"https://optimism-rpc.publicnode.com",
"wss://optimism-rpc.publicnode.com"
],
"shortName": "oeth",
"slug": "optimism",
+2 -3
View File
@@ -51,7 +51,6 @@ export default {
},
"networkId": 100,
"rpc": [
"https://gnosis.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"https://100.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"https://rpc.gnosischain.com",
"https://rpc.gnosis.gateway.fm",
@@ -63,8 +62,8 @@ export default {
"https://web3endpoints.com/gnosischain-mainnet",
"https://gnosis.oat.farm",
"wss://rpc.gnosischain.com/wss",
"https://gnosis.publicnode.com",
"wss://gnosis.publicnode.com"
"https://gnosis-rpc.publicnode.com",
"wss://gnosis-rpc.publicnode.com"
],
"shortName": "gno",
"slip44": 700,
-1
View File
@@ -23,7 +23,6 @@ export default {
"chain": "eip155-1"
},
"rpc": [
"https://gton.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"https://1000.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"https://rpc.gton.network/"
],
-1
View File
@@ -13,7 +13,6 @@ export default {
},
"networkId": 10000,
"rpc": [
"https://smart-bitcoin-cash.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"https://10000.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"https://smartbch.greyh.at",
"https://rpc-mainnet.smartbch.org",
-1
View File
@@ -13,7 +13,6 @@ export default {
},
"networkId": 100000,
"rpc": [
"https://quarkchain-root.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"https://100000.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"http://jrpc.mainnet.quarkchain.io:38391"
],
-1
View File
@@ -23,7 +23,6 @@ export default {
"chain": "eip155-100000"
},
"rpc": [
"https://quarkchain-shard-0.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"https://100001.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"https://mainnet-s0-ethapi.quarkchain.io",
"http://eth-jrpc.mainnet.quarkchain.io:39000"
-1
View File
@@ -23,7 +23,6 @@ export default {
"chain": "eip155-100000"
},
"rpc": [
"https://quarkchain-shard-1.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"https://100002.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"https://mainnet-s1-ethapi.quarkchain.io",
"http://eth-jrpc.mainnet.quarkchain.io:39001"
-1
View File
@@ -23,7 +23,6 @@ export default {
"chain": "eip155-100000"
},
"rpc": [
"https://quarkchain-shard-2.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"https://100003.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"https://mainnet-s2-ethapi.quarkchain.io",
"http://eth-jrpc.mainnet.quarkchain.io:39002"
-1
View File
@@ -23,7 +23,6 @@ export default {
"chain": "eip155-100000"
},
"rpc": [
"https://quarkchain-shard-3.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"https://100004.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"https://mainnet-s3-ethapi.quarkchain.io",
"http://eth-jrpc.mainnet.quarkchain.io:39003"
-1
View File
@@ -23,7 +23,6 @@ export default {
"chain": "eip155-100000"
},
"rpc": [
"https://quarkchain-shard-4.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"https://100005.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"https://mainnet-s4-ethapi.quarkchain.io",
"http://eth-jrpc.mainnet.quarkchain.io:39004"
-1
View File
@@ -23,7 +23,6 @@ export default {
"chain": "eip155-100000"
},
"rpc": [
"https://quarkchain-shard-5.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"https://100006.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"https://mainnet-s5-ethapi.quarkchain.io",
"http://eth-jrpc.mainnet.quarkchain.io:39005"
-1
View File
@@ -23,7 +23,6 @@ export default {
"chain": "eip155-100000"
},
"rpc": [
"https://quarkchain-shard-6.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"https://100007.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"https://mainnet-s6-ethapi.quarkchain.io",
"http://eth-jrpc.mainnet.quarkchain.io:39006"
-1
View File
@@ -23,7 +23,6 @@ export default {
"chain": "eip155-100000"
},
"rpc": [
"https://quarkchain-shard-7.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"https://100008.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"https://mainnet-s7-ethapi.quarkchain.io",
"http://eth-jrpc.mainnet.quarkchain.io:39007"
+1 -1
View File
@@ -13,12 +13,12 @@ export default {
},
"networkId": 10001,
"rpc": [
"https://smart-bitcoin-cash-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"https://10001.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"https://rpc-testnet.smartbch.org",
"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;
+3 -1
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,13 @@ 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://api.baobab.klaytn.net:8651"
],
"shortName": "Baobab",
"slip44": 1,
"slug": "klaytn-testnet-baobab",
"testnet": true
} as const satisfies Chain;
-1
View File
@@ -24,7 +24,6 @@ export default {
},
"networkId": 10024,
"rpc": [
"https://gon-chain.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"https://10024.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"https://node1.testnet.gaiaopen.network",
"https://node1.mainnet.gon.network",
-1
View File
@@ -25,7 +25,6 @@ export default {
},
"networkId": 1003,
"rpc": [
"https://tectum-emission-token.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"https://1003.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"https://rpc.softnote.com/"
],
-1
View File
@@ -31,7 +31,6 @@ export default {
},
"networkId": 1004,
"rpc": [
"https://t-ekta.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"https://1004.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"https://test.ekta.io:8545"
],
+1 -1
View File
@@ -23,11 +23,11 @@ export default {
"chain": "eip155-16658437"
},
"rpc": [
"https://plian-testnet-subchain-1.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"https://10067275.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"https://testnet.plian.io/child_test"
],
"shortName": "plian-testnet-l2",
"slip44": 1,
"slug": "plian-testnet-subchain-1",
"testnet": true
} as const satisfies Chain;
+1 -1
View File
@@ -13,11 +13,11 @@ export default {
},
"networkId": 1007,
"rpc": [
"https://newton-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"https://1007.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"https://rpc1.newchain.newtonproject.org"
],
"shortName": "tnew",
"slip44": 1,
"slug": "newton-testnet",
"testnet": true
} as const satisfies Chain;
-1
View File
@@ -31,7 +31,6 @@ export default {
},
"networkId": 1008,
"rpc": [
"https://eurus.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"https://1008.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"https://mainnet.eurus.network/"
],
+1 -1
View File
@@ -19,12 +19,12 @@ export default {
},
"networkId": 10081,
"rpc": [
"https://japan-open-chain-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"https://10081.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"https://rpc-1.testnet.japanopenchain.org:8545",
"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
@@ -13,7 +13,6 @@ export default {
},
"networkId": 10086,
"rpc": [
"https://sjatsh.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"https://10086.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"http://geth.free.idcfengye.com"
],
-1
View File
@@ -13,7 +13,6 @@ export default {
},
"networkId": 1,
"rpc": [
"https://etherinc.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"https://101.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"https://api.einc.io/jsonrpc/mainnet"
],
-1
View File
@@ -13,7 +13,6 @@ export default {
},
"networkId": 1010,
"rpc": [
"https://evrice-network.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"https://1010.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"https://meta.evrice.com"
],
-1
View File
@@ -13,7 +13,6 @@ export default {
},
"networkId": 10101,
"rpc": [
"https://blockchain-genesis.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"https://10101.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"https://eu.mainnet.xixoio.com",
"https://us.mainnet.xixoio.com",
+1 -1
View File
@@ -27,11 +27,11 @@ export default {
},
"networkId": 101010,
"rpc": [
"https://soverun-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"https://101010.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"https://testnet-rpc.soverun.com"
],
"shortName": "SVRNt",
"slip44": 1,
"slug": "soverun-testnet",
"testnet": true
} as const satisfies Chain;
-1
View File
@@ -27,7 +27,6 @@ export default {
},
"networkId": 10101010,
"rpc": [
"https://soverun.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"https://10101010.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"https://mainnet-rpc.soverun.com"
],
-1
View File
@@ -13,7 +13,6 @@ export default {
},
"networkId": 1012,
"rpc": [
"https://newton.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"https://1012.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"https://global.rpc.mainnet.newtonproject.org"
],
+1 -1
View File
@@ -19,13 +19,13 @@ export default {
},
"networkId": 102,
"rpc": [
"https://web3games-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"https://102.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"https://testnet-rpc-0.web3games.org/evm",
"https://testnet-rpc-1.web3games.org/evm",
"https://testnet-rpc-2.web3games.org/evm"
],
"shortName": "tw3g",
"slip44": 1,
"slug": "web3games-testnet",
"testnet": true
} as const satisfies Chain;
+3 -3
View File
@@ -33,15 +33,15 @@ export default {
},
"networkId": 10200,
"rpc": [
"https://gnosis-chiado-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"https://10200.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"https://rpc.chiadochain.net",
"https://rpc.chiado.gnosis.gateway.fm",
"wss://rpc.chiadochain.net/wss",
"https://gnosis-chiado.publicnode.com",
"wss://gnosis-chiado.publicnode.com"
"https://gnosis-chiado-rpc.publicnode.com",
"wss://gnosis-chiado-rpc.publicnode.com"
],
"shortName": "chi",
"slip44": 1,
"slug": "gnosis-chiado-testnet",
"testnet": true
} as const satisfies Chain;
-1
View File
@@ -27,7 +27,6 @@ export default {
},
"networkId": 10201,
"rpc": [
"https://maxxchain.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"https://10201.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"https://rpc.maxxchain.org",
"https://rpc1.maxxchain.org",
+38
View File
@@ -0,0 +1,38 @@
import type { Chain } from "../src/types";
export default {
"chain": "aware-fake-trim-testnet",
"chainId": 1020352220,
"explorers": [
{
"name": "Blockscout",
"url": "https://aware-fake-trim-testnet.explorer.testnet.skalenodes.com",
"standard": "EIP3091"
}
],
"faucets": [
"https://www.sfuelstation.com/"
],
"icon": {
"url": "ipfs://bafkreiagrt5dhgltg2kmw7hf24kslstr5h42e745luuxwp2wbg24gm6zza",
"width": 500,
"height": 500,
"format": "png"
},
"name": "SKALE Titan Hub Testnet",
"nativeCurrency": {
"name": "sFUEL",
"symbol": "sFUEL",
"decimals": 18
},
"networkId": 1020352220,
"rpc": [
"https://1020352220.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"https://testnet.skalenodes.com/v1/aware-fake-trim-testnet",
"wss://testnet.skalenodes.com/v1/ws/aware-fake-trim-testnet"
],
"shortName": "titan-testnet",
"slip44": 1,
"slug": "skale-titan-hub-testnet",
"testnet": true,
"title": "SKALE Titan Hub Testnet"
} 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;
-1
View File
@@ -13,7 +13,6 @@ export default {
},
"networkId": 1024,
"rpc": [
"https://clv-parachain.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"https://1024.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"https://api-para.clover.finance"
],
+41
View File
@@ -0,0 +1,41 @@
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://10242.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"https://rpc.arthera.net"
],
"shortName": "aa",
"slip44": 10242,
"slug": "arthera",
"testnet": false
} as const satisfies Chain;
+2 -2
View File
@@ -33,11 +33,11 @@ export default {
},
"networkId": 10243,
"rpc": [
"https://arthera-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"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
@@ -19,7 +19,6 @@ export default {
},
"networkId": 10248,
"rpc": [
"https://0xtade.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"https://10248.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"https://node.0xtchain.com"
],
+1 -1
View File
@@ -19,11 +19,11 @@ export default {
},
"networkId": 1028,
"rpc": [
"https://bittorrent-chain-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"https://1028.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"https://testrpc.bittorrentchain.io/"
],
"shortName": "tbtt",
"slip44": 1,
"slug": "bittorrent-chain-testnet",
"testnet": true
} as const satisfies Chain;
+1 -2
View File
@@ -20,12 +20,11 @@ export default {
"name": "Worldland Mainnet",
"nativeCurrency": {
"name": "Worldland",
"symbol": "WL",
"symbol": "WLC",
"decimals": 18
},
"networkId": 103,
"rpc": [
"https://worldland.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"https://103.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"https://seoul.worldland.foundation"
],
-1
View File
@@ -25,7 +25,6 @@ export default {
},
"networkId": 1030,
"rpc": [
"https://conflux-espace.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"https://1030.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"https://evm.confluxrpc.com"
],
-1
View File
@@ -31,7 +31,6 @@ export default {
},
"networkId": 1,
"rpc": [
"https://crystaleum.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"https://103090.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"https://evm.cryptocurrencydevs.org",
"https://rpc.crystaleum.org"
+1 -1
View File
@@ -19,11 +19,11 @@ export default {
},
"networkId": 1031,
"rpc": [
"https://proxy-network-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"https://1031.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"http://128.199.94.183:8041"
],
"shortName": "prx",
"slip44": 1,
"slug": "proxy-network-testnet",
"testnet": true
} as const satisfies Chain;
+40
View File
@@ -0,0 +1,40 @@
import type { Chain } from "../src/types";
export default {
"chain": "Avalanche",
"chainId": 103454,
"explorers": [
{
"name": "Masa Testnet Explorer",
"url": "https://subnets-test.avax.network/masatestnet",
"standard": "EIP3091"
}
],
"faucets": [],
"features": [
{
"name": "EIP1559"
}
],
"icon": {
"url": "https://images.ctfassets.net/9bazykntljf6/62CceHSYsRS4D9fgDSkLRB/877cb8f26954e1743ff535fd7fdaf78f/avacloud-placeholder.svg",
"width": 256,
"height": 256,
"format": "svg"
},
"infoURL": "https://avacloud.io",
"name": "Masa Testnet",
"nativeCurrency": {
"name": "Masa Testnet Token",
"symbol": "tMASA",
"decimals": 18
},
"networkId": 103454,
"redFlags": [],
"rpc": [
"https://103454.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"https://subnets.avax.network/masatestne/testnet/rpc"
],
"shortName": "Masa Testnet",
"slug": "masa-testnet",
"testnet": true
} as const satisfies Chain;
+1 -1
View File
@@ -33,11 +33,11 @@ export default {
},
"networkId": 1038,
"rpc": [
"https://bronos-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"https://1038.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"https://evm-testnet.bronos.org"
],
"shortName": "bronos-testnet",
"slip44": 1,
"slug": "bronos-testnet",
"testnet": true
} as const satisfies Chain;
+2 -2
View File
@@ -20,16 +20,16 @@ export default {
"name": "Worldland Testnet",
"nativeCurrency": {
"name": "Worldland",
"symbol": "WL",
"symbol": "WLC",
"decimals": 18
},
"networkId": 10395,
"rpc": [
"https://worldland-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"https://10395.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"https://gwangju.worldland.foundation"
],
"shortName": "TWLC",
"slip44": 1,
"slug": "worldland-testnet",
"testnet": true
} as const satisfies Chain;
+1 -1
View File
@@ -31,11 +31,11 @@ export default {
},
"networkId": 104,
"rpc": [
"https://kaiba-lightning-chain-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"https://104.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"https://klc.live/"
],
"shortName": "tklc",
"slip44": 1,
"slug": "kaiba-lightning-chain-testnet",
"testnet": true
} as const satisfies Chain;
-1
View File
@@ -25,7 +25,6 @@ export default {
},
"networkId": 105,
"rpc": [
"https://web3games-devnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"https://105.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"https://devnet.web3games.org/evm"
],
-1
View File
@@ -25,7 +25,6 @@ export default {
},
"networkId": 10507,
"rpc": [
"https://numbers.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"https://10507.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"https://mainnetrpc.num.network"
],
+1 -1
View File
@@ -28,11 +28,11 @@ export default {
},
"networkId": 10508,
"rpc": [
"https://numbers-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"https://10508.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"https://testnetrpc.num.network"
],
"shortName": "Snow",
"slip44": 1,
"slug": "numbers-testnet",
"testnet": true
} as const satisfies Chain;
-1
View File
@@ -25,7 +25,6 @@ export default {
},
"networkId": 106,
"rpc": [
"https://velas-evm.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"https://106.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"https://evmexplorer.velas.com/rpc",
"https://explorer.velas.com/rpc"
+30
View File
@@ -0,0 +1,30 @@
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://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 -1
View File
@@ -27,11 +27,11 @@ export default {
},
"networkId": 107,
"rpc": [
"https://nebula-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"https://107.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"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,
+30
View File
@@ -0,0 +1,30 @@
import type { Chain } from "../src/types";
export default {
"chain": "ETH",
"chainId": 107107114116,
"explorers": [],
"faucets": [],
"icon": {
"url": "ipfs://QmNTZ9nEomAXK6bLxUbMfTS1TvrsN22HU1zTtxHUpMkUhz",
"width": 1000,
"height": 1000,
"format": "png"
},
"infoURL": "https://kakarot.org",
"name": "Kakarot Sepolia",
"nativeCurrency": {
"name": "Ether",
"symbol": "ETH",
"decimals": 18
},
"networkId": 107107114116,
"parent": {
"type": "L2",
"chain": "eip155-11155111",
"bridges": []
},
"rpc": [],
"shortName": "kkrt-sepolia",
"slug": "kakarot-sepolia",
"testnet": false
} as const satisfies Chain;
+1
View File
@@ -29,6 +29,7 @@ export default {
"networkId": 1072,
"rpc": [],
"shortName": "shimmerevm-testnet-deprecated-1072",
"slip44": 1,
"slug": "shimmerevm-testnet-deprecated-1072",
"status": "deprecated",
"testnet": true,
+1 -1
View File
@@ -28,11 +28,11 @@ export default {
},
"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"
+1 -1
View File
@@ -25,11 +25,11 @@ export default {
},
"networkId": 1079,
"rpc": [
"https://mintara-testnet.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"https://1079.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"https://subnets.avax.network/mintara/testnet/rpc"
],
"shortName": "mintara-testnet",
"slip44": 1,
"slug": "mintara-testnet",
"testnet": true,
"title": "Mintara Testnet"
-1
View File
@@ -19,7 +19,6 @@ export default {
},
"networkId": 108,
"rpc": [
"https://thundercore.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"https://108.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"https://mainnet-rpc.thundercore.com",
"https://mainnet-rpc.thundertoken.net",
-1
View File
@@ -25,7 +25,6 @@ export default {
},
"networkId": 1080,
"rpc": [
"https://mintara.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"https://1080.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"https://subnets.avax.network/mintara/mainnet/rpc"
],
-1
View File
@@ -25,7 +25,6 @@ export default {
},
"networkId": 10823,
"rpc": [
"https://cryptocoinpay.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"https://10823.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"http://node106.cryptocoinpay.info:8545",
"ws://node106.cryptocoinpay.info:8546"
-1
View File
@@ -36,7 +36,6 @@ export default {
},
"redFlags": [],
"rpc": [
"https://metis-andromeda.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"https://1088.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"https://andromeda.metis.io/?owner=1088"
],
-1
View File
@@ -19,7 +19,6 @@ export default {
},
"networkId": 108801,
"rpc": [
"https://brochain.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"https://108801.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"https://rpc.brochain.org",
"http://rpc.brochain.org",
+3 -3
View File
@@ -39,14 +39,14 @@ export default {
},
"networkId": 1089,
"rpc": [
"https://humans-ai.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"https://1089.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"https://jsonrpc.humans.nodestake.top",
"https://humans-mainnet-evm.itrocket.net:443",
"https://humans-mainnet-evm.itrocket.net",
"https://humans-evm-rpc.staketab.org:443",
"https://evm.humans.stakepool.dev.br",
"https://mainnet-humans-evm.konsortech.xyz",
"https://evm-rpc.mainnet.humans.zone"
"https://evm-rpc.mainnet.humans.zone",
"https://json-rpc.humans.bh.rocks"
],
"shortName": "humans",
"slug": "humans-ai",
-1
View File
@@ -25,7 +25,6 @@ export default {
},
"networkId": 109,
"rpc": [
"https://shibarium.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"https://109.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"https://www.shibrpc.com"
],

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