Compare commits

...
Author SHA1 Message Date
Jonas DanielsGitHubgithub-actions[bot] <github-actions[bot]@users.noreply.github.com>GitHub Action
449ae19f94 Version Packages (#3352)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Co-authored-by: GitHub Action <[email protected]>
2024-06-18 10:08:57 +12:00
joaquim-verges 7304c5b0c7 refactor: respect Coinbase wallet optons when preloading (#3364) 2024-06-17 21:46:10 +00:00
dependabot 49cfdb3fd9 build(deps): bump @eth-optimism/sdk from 3.3.0 to 3.3.2 (#3357)
Bumps [@eth-optimism/sdk](https://github.com/ethereum-optimism/ecosystem) from 3.3.0 to 3.3.2.
<details>
<summary>Commits</summary>
<ul>
<li>See full diff in <a href="https://github.com/ethereum-optimism/ecosystem/commits/@eth-optimism/[email protected]">compare view</a></li>
</ul>
</details>
<br />

[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=@eth-optimism/sdk&package-manager=npm_and_yarn&previous-version=3.3.0&new-version=3.3.2)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)

</details>

<!-- start pr-codex -->

---

## PR-Codex overview
This PR updates the `@eth-optimism/sdk` package to version 3.3.2 and makes corresponding changes in the `pnpm-lock.yaml` file.

### Detailed summary
- Updated `@eth-optimism/sdk` to version 3.3.2 in `package.json`
- Updated version and specifier in `pnpm-lock.yaml` for `@eth-optimism/sdk` to 3.3.2

> ✨ Ask PR-Codex anything about this PR by commenting with `/codex {your question}`

<!-- end pr-codex -->
2024-06-17 20:47:43 +00:00
joaquim-verges 2d7ebe2111 fix: ConnectButton custom theme + customized component in playground (#3356) 2024-06-17 20:36:44 +00:00
kien-ngo a9ce10f39a Add ERC721 extension: updateMetadata & updateBatchBaseURI (#3347)
<!-- start pr-codex -->

## PR-Codex overview
This PR adds an ERC721 extension `updateMetadata` for updating NFT metadata in batches.

### Detailed summary
- Added `updateMetadata` function to update NFT metadata
- Implemented `getUpdateMetadataParams` to prepare transaction
- Added tests for `updateMetadata` function
- Introduced `freezeBatchBaseURI` function and related utilities

> The following files were skipped due to too many changes: `packages/thirdweb/src/extensions/erc721/__generated__/DropERC721/write/freezeBatchBaseURI.ts`, `packages/thirdweb/src/extensions/erc721/__generated__/DropERC721/write/setMaxTotalSupply.ts`, `packages/thirdweb/src/extensions/erc721/__generated__/DropERC721/write/updateBatchBaseURI.ts`

> ✨ Ask PR-Codex anything about this PR by commenting with `/codex {your question}`

<!-- end pr-codex -->
2024-06-17 19:20:14 +00:00
github-actions[bot]GitHubgithub-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
321cf26342 chore(chains): update chains (#3348)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2024-06-17 11:31:07 -07:00
jnsdls d2ad36d76d [Fix] Ensure proper awaiting of the format function in generate script (#3349)
### TL;DR

This PR modifies the `generateFromAbi` function to ensure that the `format` function from Prettier is properly awaited. This solves issues with file writing inconsistencies.

### What changed?

- Added `await` to the `format` function calls within `generateFromAbi`.

### How to test?

1. Run the `generateFromAbi` script.
2. Ensure that generated files are consistently formatted.

### Why make this change?

This change ensures that the Prettier formatting is correctly applied before the files are written, resolving any inconsistencies and potential bugs caused by non-awaited formatting.

---
2024-06-17 18:26:12 +00:00
Jonas DanielsGitHubgithub-actions[bot] <github-actions[bot]@users.noreply.github.com>
507d0e5bf4 Version Packages (#3346)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2024-06-17 16:19:35 +12:00
Joaquim VergesandGitHub 79e6a047d6 fix: inApp native wallet creation (#3345) 2024-06-17 16:02:30 +12:00
Jonas DanielsGitHubgithub-actions[bot] <github-actions[bot]@users.noreply.github.com>GitHub Action
4dce62de1c Version Packages (#3319)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Co-authored-by: GitHub Action <[email protected]>
2024-06-17 15:09:31 +12:00
joaquim-verges 1c533efcd5 fix: respect transaction button theme prop (#3341)
<!-- start pr-codex -->

## PR-Codex overview
This PR fixes the issue where the transaction button did not respect the theme prop in the `SponsoredTxPreview` component.

### Detailed summary
- Fixed transaction button theme prop issue in `SponsoredTxPreview`
- Added `isValidTheme` and `parseTheme` functions in `buttons.tsx`
- Updated `parseTheme` to validate theme and return default if invalid

> ✨ Ask PR-Codex anything about this PR by commenting with `/codex {your question}`

<!-- end pr-codex -->
2024-06-17 02:39:52 +00:00
joaquim-verges eca6217f77 refactor: separate onConnectRequested impl between web and native (#3344) 2024-06-17 00:36:22 +00:00
joaquim-verges df84f9c4ce refactor: improve Coinbase connection handling (#3340)
### TL;DR

To prevent popups from Coinbase wallet being blocked in Safari, pre-connection actions have been added. Specifically, popups will be displayed immediately upon connection request and before transaction preprocessing.

### What changed?

1. Removed the `COINBASE` constant and its related connection flow.
2. Integrated `onConnectRequested` optional function for wallets.
3. Updated Coinbase wallet's `onConnectRequested` to show the popup immediately.
4. Added `onTransactionRequested` to show popup before transaction processing.

### How to test?

1. Initiate connection with Coinbase wallet and observe that the popup appears immediately.
2. Perform a transaction with Coinbase wallet and ensure the popup is not blocked.
3. Test across different browsers, focusing on Safari.

### Why make this change?

Safari has stricter rules regarding popups, and the previous delay in showing the popup led to it being blocked. This change ensures a smoother user experience for Coinbase wallet users on Safari by addressing the popup blocking issue.

---

<!-- start pr-codex -->

---

## PR-Codex overview
The focus of this PR is to enhance wallet connectivity and transaction handling in the application.

### Detailed summary
- Added `onConnectRequested` and `onTransactionRequested` functions to wallet interfaces
- Updated wallet connection and transaction handling logic
- Preloaded wallet providers for smoother user experience

> ✨ Ask PR-Codex anything about this PR by commenting with `/codex {your question}`

<!-- end pr-codex -->
2024-06-16 23:02:22 +00:00
jnsdls 17c0e6f282 [ConnectWallet] Include wallet name in injectedWalletLocale query key (#3333)
### TL;DR
Updated the queryKey used in the useQuery hook to also include the walletInfo.data?.name parameter, ensuring that injectedWalletLocale queries are correctly keyed and updated when the wallet name changes.

### What changed?
The queryKey array in the useQuery hook was updated from `["injectedWalletLocale", localeId]` to `["injectedWalletLocale", localeId, walletInfo.data?.name]`.

### How to test?
1. Ensure the application runs without errors.
2. Verify that locale-specific wallet names are correctly handled when displayed in the UI.

### Why make this change?
The change ensures that the locale-based queries are properly identified and updated when the wallet name changes, preventing potential stale data from being used in the UI.

---
2024-06-16 22:56:42 +00:00
jnsdls d51c1883af [Refactor] Migrate usePreloadWalletProviders to useQueries for wallet preloading (#3331)
Refactor `usePreloadWalletProviders` to utilize `useQueries` from `@tanstack/react-query`. This change optimizes wallet provider preloading, ensuring a non-blocking, and parallel fetching of necessary providers. Removes the `useEffect` based logic.

---
2024-06-16 22:56:39 +00:00
joaquim-verges 9cf3a1d663 feat: preloading wallet providers for improved performance (#3330)
<!-- start pr-codex -->

## PR-Codex overview
This PR fixes an issue with the Coinbase wallet popup not opening on Safari and improves inAppWallet web performance.

### Detailed summary
- Fixed Coinbase wallet popup not opening on Safari
- Improved inAppWallet web performance
- Added `usePreloadWalletProviders` hook
- Preloaded wallet providers for Coinbase and inApp wallet
- Updated `ConnectButton`, `ConnectEmbed`, `usePreloadWalletProviders`, and `ConnectModalContent` components

> ✨ Ask PR-Codex anything about this PR by commenting with `/codex {your question}`

<!-- end pr-codex -->
2024-06-16 22:56:36 +00:00
joaquim-verges c94bcd574a refactor: change Coinbase SDK import to dynamic in coinbaseSDKWallet.ts (#3329)
<!-- start pr-codex -->

## PR-Codex overview
The focus of this PR is to dynamically import the `CoinbaseWalletSDK` to resolve cloudflare bundler issues.

### Detailed summary
- Dynamically import `CoinbaseWalletSDK` to avoid bundler issues
- Updated import statement for `ProviderInterface`
- Removed unnecessary imports
- Refactored `getCoinbaseWebProvider` function to dynamically import `CoinbaseWalletSDK`

> ✨ Ask PR-Codex anything about this PR by commenting with `/codex {your question}`

<!-- end pr-codex -->
2024-06-15 04:55:17 +00:00
jnsdls 41c6d04c2f [dependencies] Bump turbo package to 2.0.4 (#3323)
<!-- start pr-codex -->

## PR-Codex overview
This PR updates Yarn installation and package versions, enhances test project scripts, and modifies Turbo tasks configuration.

### Detailed summary
- Updated Yarn installation to version 1.22.19
- Updated package versions in the test project
- Modified Turbo tasks configuration for various packages and builds

> ✨ Ask PR-Codex anything about this PR by commenting with `/codex {your question}`

<!-- end pr-codex -->
2024-06-15 01:28:21 +00:00
jnsdls 3a78041de7 [Multi] Update dependencies and version packages (#3327)
## Problem solved

Short description of the bug fixed or feature added

## Changes made

- [ ] Public API changes: list the public API changes made if any
- [ ] Internal API changes: explain the internal logic changes

## How to test

- [ ] Automated tests: link to unit test file
- [ ] Manual tests: step by step instructions on how to test

## Contributor NFT

Paste in your wallet address below and we will airdrop you a special NFT when your pull request is merged.

```Address: ```

<!-- start pr-codex -->

---

## PR-Codex overview
This PR updates dependencies in `package.json` and `pnpm-lock.yaml`, focusing on versions of `axios`, `@grpc/grpc-js`, and `braces`.

### Detailed summary
- Updated `@grpc/grpc-js` to version `1.10.9`
- Updated `braces` to version `3.0.3`
- Adjusted versions of `axios` and `@ethereumjs/util`
- Updated `fill-range` to version `7.1.1`

> ✨ Ask PR-Codex anything about this PR by commenting with `/codex {your question}`

<!-- end pr-codex -->
2024-06-14 22:32:39 +00:00
github-actions[bot]GitHubgithub-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
8b74602e3b chore(chains): update chains (#3311)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2024-06-14 13:23:51 -07:00
Joaquim VergesandGitHub f9081d58d4 refactor: inject storage and session handler in wallet connect connector [part 5] (#3314) 2024-06-14 19:11:03 +00:00
Joaquim VergesandGitHub b051d844d0 refactor: Inject storage EVERYWHERE [part 4] (#3312) 2024-06-14 19:00:12 +00:00
Joaquim VergesandGitHub f8e0c5f84b reafactor: reorganize react native export files [part 3] (#3304) 2024-06-14 18:54:24 +00:00
Joaquim VergesandGitHub 476b6cc271 refactor: separate native exports for inapp wallet [part 2] (#3300) 2024-06-14 18:43:27 +00:00
Joaquim VergesandGitHub ffaff744f7 refactor: separate native exports for cb wallet [part 1] (#3298) 2024-06-14 18:37:23 +00:00
FirekeeperandGitHub 198f72c493 [Unity] fix tx builder type parsing (#3317) 2024-06-14 18:20:49 +00:00
Jonas DanielsGitHubgithub-actions[bot] <github-actions[bot]@users.noreply.github.com>GitHub Action
5cb580e99e Version Packages (#3316)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Co-authored-by: GitHub Action <[email protected]>
2024-06-14 11:12:41 -07:00
Manan TankandGitHub eff710738c [v4 react] Allow configuring qrcode and qrModalOptions on various wallet configurators (#3315) 2024-06-14 17:28:41 +00:00
Jonas DanielsandGitHub fb6a07d4b8 [Multi] Optimize package.json types versions & update ERC4337 factory methods (#3318) 2024-06-14 17:19:35 +00:00
7768067bf4 Modular contracts (#2880)
Signed-off-by: Yash <[email protected]>
Co-authored-by: Jonas Daniels <[email protected]>
2024-06-14 16:32:34 +00:00
Jonas DanielsGitHubgithub-actions[bot] <github-actions[bot]@users.noreply.github.com>GitHub Action
5ece04cdc0 Version Packages (#3287)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Co-authored-by: GitHub Action <[email protected]>
2024-06-14 20:10:01 +12:00
1b15e7b1f2 docs: add examples for defineChain usage (#3308)
Co-authored-by: Joaquim Verges <[email protected]>
2024-06-14 18:48:02 +12:00
gregandGitHub a4086c6a39 refactor(constants): rename ADDRESS_ZERO to ZERO_ADDRESS and deprecate older name (#3307) 2024-06-14 06:16:41 +00:00
1aaa63eec7 fix(wallets): don't serialize eip5792 calls (#3306)
Co-authored-by: Joaquim Verges <[email protected]>
2024-06-14 06:16:02 +00:00
gregandGitHub 502c53ac0b fix(tests): zk AA tests (#3313) 2024-06-14 05:42:36 +00:00
gregandGitHub e7ba698f3e fix: set default recipients in sigMint and update tests (#3305) 2024-06-13 23:49:35 +00:00
github-actions[bot]andGitHub 6746416db9 chore(chains): update chains (#3289)
This PR was automatically created by a GitHub Action. It updates the chains package with the latest changes from the database.
2024-06-13 16:09:10 -07:00
fivecutandGitHub 2fb81bd4b7 chore: remove repeat words (#3297)
Signed-off-by: fivecut <[email protected]>
2024-06-13 15:57:16 +00:00
gregandGitHub 841c86aa12 feat: add export private key functionality (#3296) 2024-06-13 05:57:18 +00:00
Alec AnanianandGitHub 132b3cb45a feat(react): add ability to pass ReactNode for ConnectButton label (#3292) 2024-06-12 23:20:38 +00:00
b248afc160 fix(react): use custom title and icon in compact Connect modal (#3290)
Co-authored-by: Joaquim Verges <[email protected]>
2024-06-12 22:53:34 +00:00
github-actions[bot]GitHubgithub-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
9f42e4d241 chore(chains): update chains (#3279)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2024-06-12 10:37:25 -07:00
Winston YeoandGitHub 901427c33c [service-utils]: update usage tracker schema (#3286) 2024-06-12 16:22:00 +00:00
Jonas DanielsGitHubgithub-actions[bot] <github-actions[bot]@users.noreply.github.com>GitHub Action
62ee972a20 Version Packages (#3234)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Co-authored-by: GitHub Action <[email protected]>
2024-06-12 16:52:09 +12:00
Joaquim VergesandGitHub 84e07fa9d5 fix tsdoc (#3282) 2024-06-12 15:41:25 +12:00
0ef7d6c0a8 fix ConnectEmbed example in playground (#3247)
Co-authored-by: Manan Tank <[email protected]>
Co-authored-by: greg <[email protected]>
Co-authored-by: Joaquim Verges <[email protected]>
2024-06-12 14:41:38 +12:00
Manan TankandGitHub 7dec4d049d Prevent autoConnect from running again on window focus (#3280) 2024-06-12 00:14:21 +00:00
Joaquim VergesandGitHub 3a1fd985fc Align inAppWallet secret sharing implementation with web and previous RN SDK (#3271) 2024-06-11 23:45:10 +00:00
FirekeeperandGitHub 5698b0c5a9 [v4 & v5] zkCandy Sepolia AA Support (#3278) 2024-06-11 22:08:34 +00:00
gregandGitHub 6a48b62783 fix(tests): update eth_signTypedData to eth_signTypedData_v4 in session_request tests (#3268) 2024-06-11 21:47:55 +00:00
github-actions[bot]GitHubgithub-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
668e3b9333 chore(chains): update chains (#3276)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2024-06-11 13:47:05 -07:00
gregandGitHub 7afd2dac0a Adds options refetchInterval and retry params to useReadContract (#3273) 2024-06-11 17:29:29 +00:00
Manan TankandGitHub 3948f4320c Wallet connection manager fixes (#3264) 2024-06-11 16:55:49 +00:00
github-actions[bot]andGitHub a4d041b368 chore(chains): update chains (#3267)
This PR was automatically created by a GitHub Action. It updates the chains package with the latest changes from the database.
2024-06-11 09:43:02 -07:00
Manan TankandGitHub 7a7b491e15 Add sections prop for ConnectWallet NetworkSelector screen customization (#3274) 2024-06-11 16:35:10 +00:00
ce45a793b5 Add currency selector in Pay UI (#3251)
Co-authored-by: greg <[email protected]>
2024-06-11 15:59:33 +00:00
FirekeeperandGitHub d2cbb1ee7e [TSv4] Force eth_signTypedData_v4 session proposal (#3269) 2024-06-11 14:46:07 +00:00
github-actions[bot]andGitHub 8750470d90 chore(chains): update chains (#3265)
This PR was automatically created by a GitHub Action. It updates the chains package with the latest changes from the database.
2024-06-10 19:24:59 -07:00
gregandGitHub 923a5ec556 Adds retry on watchContractEvents (#3256) 2024-06-11 00:24:04 +00:00
dependabot[bot]GitHubdependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
75fde5c89f build(deps): bump @walletconnect/react-native-compat from 2.13.0 to 2.13.2 (#3260)
Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-06-10 23:18:04 +00:00
Joaquim VergesandGitHub e763ace602 fix: sign typed data using inAppWalelt with salt in domain (#3266) 2024-06-11 11:14:30 +12:00
gregGitHubgithub-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
f2004b54ea Fix tests (#3263)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2024-06-10 22:36:24 +00:00
github-actions[bot]andGitHub ce45d4f3bd chore(chains): update chains (#3257)
This PR was automatically created by a GitHub Action. It updates the chains package with the latest changes from the database.
2024-06-10 14:57:32 -07:00
github-actions[bot]andGitHub 7135d6051a chore(chains): update chains (#3250)
This PR was automatically created by a GitHub Action. It updates the chains package with the latest changes from the database.

<!-- start pr-codex -->

---

## PR-Codex overview
This PR adds new chains with updated icons, URLs, and testnet information. It also includes new explorers, faucets, and network details.

### Detailed summary
- Added new chains with updated information and icons
- Included testnet details for various chains
- Added explorers and faucets for the chains

> The following files were skipped due to too many changes: `legacy_packages/chains/src/index.ts`

> ✨ Ask PR-Codex anything about this PR by commenting with `/codex {your question}`

<!-- end pr-codex -->
2024-06-10 12:13:04 -07:00
github-actions[bot]andGitHub 0b3829032f chore(chains): update chains (#3249)
This PR was automatically created by a GitHub Action. It updates the chains package with the latest changes from the database.
2024-06-09 14:01:15 -07:00
github-actions[bot]andGitHub a5db9a330f chore(chains): update chains (#3245)
This PR was automatically created by a GitHub Action. It updates the chains package with the latest changes from the database.

<!-- start pr-codex -->

---

## PR-Codex overview
This PR adds new testnet chains `Xterio` and `LayerEdge` with unique configurations. It also updates chain imports and removes legacy chain configurations.

### Detailed summary
- Added `Xterio` testnet chain configuration
- Added `LayerEdge` testnet chain configuration
- Updated chain imports
- Removed legacy chain configurations

> The following files were skipped due to too many changes: `legacy_packages/chains/src/index.ts`

> ✨ Ask PR-Codex anything about this PR by commenting with `/codex {your question}`

<!-- end pr-codex -->
2024-06-09 07:59:22 -07:00
Winston YeoandGitHub 73af67aad1 [service-utils]: Expose domain and bundle id validation logic (#3238) 2024-06-08 03:14:40 +00:00
Manan TankandGitHub d4882236b7 Fix custom theme not used in ConnectEmbed loading screen (#3240) 2024-06-08 15:13:47 +12:00
FirekeeperandGitHub 913f99a9a4 [TSv4] ZkSync AA & Default Factory (#3232) 2024-06-08 02:47:12 +00:00
github-actions[bot]andGitHub 5938f0d4a5 chore(chains): update chains (#3244)
This PR was automatically created by a GitHub Action. It updates the chains package with the latest changes from the database.

<!-- start pr-codex -->

---

## PR-Codex overview
This PR adds support for the Avalanche chain with specific explorers and features like EIP1559. It also includes a new SPACE Explorer and EIP1559 support.

### Detailed summary
- Added support for Avalanche chain with chain ID 48795
- Included a new SPACE Explorer with EIP3091 standard
- Added EIP1559 feature support

> ✨ Ask PR-Codex anything about this PR by commenting with `/codex {your question}`

<!-- end pr-codex -->
2024-06-07 17:03:06 -07:00
github-actions[bot]andGitHub efae2f36b6 chore(chains): update chains (#3222)
This PR was automatically created by a GitHub Action. It updates the chains package with the latest changes from the database.

<!-- start pr-codex -->

---

## PR-Codex overview
This PR adds and updates chain configurations for various networks, including icon URLs, faucets, and RPC endpoints.

### Detailed summary
- Added new chain configurations for multiple networks
- Updated native currency names and symbols
- Included icon URLs, faucets, and RPC endpoints
- Added explorers and info URLs for some chains

> The following files were skipped due to too many changes: `legacy_packages/chains/chains/20041.ts`, `legacy_packages/chains/chains/721529.ts`, `legacy_packages/chains/chains/132902.ts`, `legacy_packages/chains/chains/7924.ts`, `legacy_packages/chains/chains/20073.ts`, `legacy_packages/chains/chains/9797.ts`, `legacy_packages/chains/chains/8008135.ts`, `legacy_packages/chains/chains/70157.ts`, `legacy_packages/chains/chains/32112.ts`, `legacy_packages/chains/chains/64947.ts`, `legacy_packages/chains/chains/66729.ts`, `legacy_packages/chains/chains/12885.ts`, `legacy_packages/chains/chains/53399.ts`, `legacy_packages/chains/chains/90343.ts`, `legacy_packages/chains/chains/41847.ts`, `legacy_packages/chains/chains/43994.ts`, `legacy_packages/chains/chains/49995.ts`, `legacy_packages/chains/chains/2715.ts`, `legacy_packages/chains/chains/14093.ts`, `legacy_packages/chains/chains/33100.ts`, `legacy_packages/chains/chains/51173.ts`, `legacy_packages/chains/chains/57822.ts`, `legacy_packages/chains/chains/60147.ts`, `legacy_packages/chains/chains/84977.ts`, `legacy_packages/chains/chains/16316.ts`, `legacy_packages/chains/chains/282.ts`, `legacy_packages/chains/chains/65622.ts`, `legacy_packages/chains/chains/328527624.ts`, `legacy_packages/chains/chains/97970.ts`, `legacy_packages/chains/chains/109.ts`, `legacy_packages/chains/chains/899.ts`, `legacy_packages/chains/chains/345.ts`, `legacy_packages/chains/chains/5112.ts`, `legacy_packages/chains/chains/10222.ts`, `legacy_packages/chains/chains/48899.ts`, `legacy_packages/chains/chains/820522.ts`, `legacy_packages/chains/chains/53302.ts`, `legacy_packages/chains/chains/622463.ts`, `legacy_packages/chains/chains/2340.ts`, `legacy_packages/chains/chains/240515.ts`, `legacy_packages/chains/chains/62298.ts`, `legacy_packages/chains/chains/8844.ts`, `legacy_packages/chains/chains/978657.ts`, `legacy_packages/chains/src/index.ts`

> ✨ Ask PR-Codex anything about this PR by commenting with `/codex {your question}`

<!-- end pr-codex -->
2024-06-07 16:41:22 -07:00
Jonas DanielsandGitHub f66161f666 [CI, Size] Update release workflow permissions and increase thirdweb size limit (#3243) 2024-06-07 22:47:36 +00:00
Jonas DanielsandGitHub 37ec4ca28d Jd/fix ipfs reolve scheme bug (#3241) 2024-06-07 10:51:59 +00:00
558885aae9 fix: resolves viem#2306 (#3237)
Co-authored-by: Joaquim Verges <[email protected]>
2024-06-07 10:12:32 +12:00
21ca67dc13 [TSv4] Avoid unnecessary fetching for error formatting (#3239)
Co-authored-by: Joaquim Verges <[email protected]>
2024-06-06 20:23:38 +00:00
FirekeeperandGitHub 8acf5643d5 [TSv4] Fix caching logic, avoid fetch when abi passed (#3236) 2024-06-06 02:15:09 +00:00
Joaquim VergesandGitHub dbf74aad3f feat: TransactionButton react native implementation (#3231) 2024-06-06 12:06:40 +12:00
hsutaiyuandGitHub 63b4e6c507 Polygon amoy config update (#3233) 2024-06-06 11:23:20 +12:00
gregandGitHub 824a631b55 Move EIP-5792 hooks ro thirdweb/react export to match documentation (#3235) 2024-06-05 22:54:41 +00:00
Manan TankandGitHub e7b9b9f438 add useWalletDetailsModal hook (#3229) 2024-06-05 15:06:07 +00:00
Joaquim VergesandGitHub 95c4151f59 Update playground pages (#3224) 2024-06-04 21:47:21 +12:00
Jonas DanielsGitHubgithub-actions[bot] <github-actions[bot]@users.noreply.github.com>GitHub Action
5d47e505ed Version Packages (#3202)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Co-authored-by: GitHub Action <[email protected]>
2024-06-04 20:56:10 +12:00
Joaquim VergesandGitHub 043f0da708 fix: better gas cost estimation for opBNB (#3227) 2024-06-04 20:31:18 +12:00
Joaquim VergesandGitHub 58d14c9eaf feat: add option to choose contract type for 1155 generateMintSignature (#3226) 2024-06-04 19:55:44 +12:00
ca31a6c0d8 Export toSerializableTransaction, getGasPrice, and estimateGasCost (#3198)
Co-authored-by: Joaquim Verges <[email protected]>
2024-06-04 02:56:21 +00:00
FirekeeperandGitHub fa146b1ec9 Unity 4.15.0 (#3223) 2024-06-04 02:44:14 +00:00
dependabot[bot]GitHubdependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
1cf9da4946 build(deps-dev): bump @swc/core from 1.5.7 to 1.5.24 (#3211)
Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-06-03 20:37:10 +00:00
dependabot[bot]GitHubdependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
0852edfe15 build(deps): bump @manypkg/cli from 0.21.3 to 0.21.4 (#3212)
Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-06-03 13:36:04 -07:00
github-actions[bot]GitHubgithub-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
f13a40ba99 chore(chains): update chains (#3168)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2024-06-03 12:50:49 -07:00
Manan TankandGitHub e7443edda7 Fixes #3204 - Update Account object properly on Account change in Wallet (#3207) 2024-06-03 19:02:12 +00:00
Manan TankandGitHub ee20298535 Add JSDoc descriptions for Wallet and Account interface methods (#3206) 2024-06-03 11:53:22 -07:00
YashandGitHub ae9496e9d8 Fix zksync deterministic deploy (#3196) 2024-06-03 11:14:09 +00:00
Joaquim VergesandGitHub 4cd83e6707 initial account abstraction playground page (#3203) 2024-06-02 14:54:19 +12:00
Joaquim VergesandGitHub 0328bc894e fix: don't throw on erc20 metadata fetch failure (#3201) 2024-06-01 20:06:31 +00:00
Joaquim VergesandGitHub 61b0d26023 chore: update displayBalanceToken jsdoc (#3200) 2024-06-01 20:15:26 +12:00
Jonas DanielsGitHubgithub-actions[bot] <github-actions[bot]@users.noreply.github.com>
4cddbe775f Version Packages (#3197)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2024-06-01 16:19:36 +12:00
gregandGitHub a3461114c5 Headless WalletConnect Integration (#3181) 2024-06-01 03:29:37 +00:00
Joaquim VergesandGitHub 51e7adaeb0 feat: native zkync AA support (#3105) 2024-06-01 15:17:23 +12:00
gregandGitHub 3f669453d0 Fix estimateGas transaction type resolution (#3195) 2024-06-01 03:05:24 +00:00
Kien NgoandGitHub fe0c4ed00c Add unit tests (#3180) 2024-05-31 21:27:07 +00:00
gregandGitHub fb8a11654e Increase error log on smart account address generation (#3193) 2024-05-31 21:23:29 +00:00
Jonas DanielsGitHubgithub-actions[bot] <github-actions[bot]@users.noreply.github.com>GitHub Action
c1e155d04f Version Packages (#3172)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Co-authored-by: GitHub Action <[email protected]>
2024-06-01 07:14:56 +12:00
gregandGitHub 91e658035d Add forked chains explainer to contributing guide (#3189) 2024-05-31 07:51:51 +00:00
gregandGitHub 8491675e2e Fix AutoConnect on MIPD wallets (#3190) 2024-05-31 19:50:38 +12:00
Joaquim VergesandGitHub 1b2edb4c09 show connect button if disconnected in pay playground (#3188) 2024-05-31 16:12:10 +12:00
Joaquim VergesandGitHub 874747b3e0 chore: update cb SDK (#3187) 2024-05-31 14:30:07 +12:00
FirekeeperandGitHub 01f883f637 Unity 4.14.1 (#3185) 2024-05-31 00:06:09 +00:00
gregandGitHub 123275bbe2 Catch any rogue poller errors in watchBlockNumber (#3186) 2024-05-30 17:05:52 -07:00
Manan TankandGitHub 7bb241f7db Improved OTP input in v4 SDK using input-otp lib (#3183) 2024-05-30 15:34:20 +00:00
Jonas DanielsandGitHub a1f53a2b9e refactor: Improve CI workflow configuration and setup (#3182) 2024-05-30 08:46:42 +00:00
gregandGitHub 46e9072576 Adds predefined hardhat chain (#3176) 2024-05-30 02:48:31 +00:00
501ef9339d fix: peerDependency version of react-native-quick-crypto (#3174)
Signed-off-by: Kacper <[email protected]>
Co-authored-by: Joaquim Verges <[email protected]>
2024-05-30 13:52:26 +12:00
Joaquim VergesandGitHub 3dca028a7e fix: transaction button gas estimation for pay (#3178) 2024-05-30 00:31:40 +00:00
Edward SunandGitHub fd777c71c2 Upgrade dependencies for legacy_packages/wallets, add new AuthProviders (#3175) 2024-05-29 21:42:53 +00:00
Joaquim VergesandGitHub fbec24e260 chore: add tsdoc tags (#3177) 2024-05-30 09:22:45 +12:00
bbf65acc80 Add some basic tests for React (#3165)
Co-authored-by: greg <[email protected]>
2024-05-29 20:46:08 +00:00
gregandGitHub b569eb48ad Adds EIP-5792 hooks and waitForBundle fn (#3161) 2024-05-29 00:00:29 +00:00
gregandGitHub b6b0eb9120 Improve connect wallet copy (#3171) 2024-05-28 23:37:51 +00:00
FirekeeperandGitHub 7cfe6745e8 Unity 4.14.0 (#3170) 2024-05-28 23:18:20 +00:00
732 changed files with 29197 additions and 4513 deletions
+4
View File
@@ -73,6 +73,10 @@ pnpm test:dev <YOUR TEST FILE PATH>
> Specifying your test file path is optional, but will save time by only running specific tests each time. Before opening your PR, run `pnpm test` from the monorepo root (without specifying your test file) to ensure your changes didn't break any existing tests.
Many of the tests use forked versions of live chains like mainnet. We fork these chains at a specific arbitrary block number so results are consistent across test runs. If you're interacting with on-chain data, you can write tests that interact with real contracts at the same block number by using `FORKED_ETHEREUM_CHAIN`. However, if you don't need to interact with existing contracts, we recommend running your tests against `ANVIL_CHAIN`.
If you need to use accounts in your tests, use the predefined accounts in `test/src/test-wallets.ts`. These are the default anvil accounts that are pre-funded on the local test forks.
#### Linting
We use a linter to maintain best practices across projects. Once your changes are complete (or periodically while making changes), run the linter with the following command from the repo root:
+56 -1
View File
@@ -90,6 +90,10 @@ jobs:
timeout-minutes: 15
name: E2E Tests
runs-on: ubuntu-latest
strategy:
matrix:
package_manager: [npm, yarn, pnpm, bun]
bundler: [vite, webpack, esbuild]
steps:
- name: Check out the code
uses: actions/checkout@v4
@@ -97,7 +101,58 @@ jobs:
- name: Setup & Install
uses: ./.github/composite-actions/install
# TODO actually run e2e tests
- name: Build Packages
run: pnpm build:packages
- name: Install Yarn (if needed)
if: matrix.package_manager == 'yarn'
run: npm install -g [email protected]
- name: Create test project
run: |
mkdir test-project
cd test-project
npm init -y
${{ matrix.package_manager }} add react react-dom ../packages/thirdweb
- name: Create test file
run: |
cd test-project
echo "import { createThirdwebClient } from 'thirdweb'; console.log(createThirdwebClient({clientId: "foo_bar_baz"}));" > index.js
- name: Bundle with vite
if: matrix.bundler == 'vite'
run: |
cd test-project
${{matrix.package_manager}} add vite
echo 'import { defineConfig } from "vite"; import {resolve} from "path"; export default defineConfig({ build: { lib: { entry: resolve(__dirname, "index.js"), name: "e2e_test" }, outDir: "dist" }});' > vite.config.js
npx vite build
- name: Bundle with webpack
if: matrix.bundler == 'webpack'
run: |
cd test-project
${{matrix.package_manager}} add webpack webpack-cli
echo 'const path = require("path"); module.exports = { mode: "production", entry: "./index.js", output: { path: path.resolve(__dirname, "dist"), filename: "bundle.js" }};' > webpack.config.js
npx webpack
- name: Bundle with esbuild
if: matrix.bundler == 'esbuild'
run: |
cd test-project
${{matrix.package_manager}} add esbuild
npx esbuild index.js --bundle --outdir=dist
- name: Verify bundle
run: |
cd test-project/dist
file_count=$(find . -type f | wc -l)
if [ "$file_count" -gt 0 ]; then
echo "Bundling successful"
else
echo "Bundling failed"
exit 1
fi
benchmark:
# cannot run benchmarks on merge group
+1 -1
View File
@@ -27,7 +27,7 @@ jobs:
id: validate_user
if: ${{ steps.check.outputs.triggered == 'true' }}
run: |
if [[ "${AUTHOR_ASSOCIATION}" != 'MEMBER' && "${AUTHOR_ASSOCIATION}" != 'OWNER' && "${AUTHOR_ASSOCIATION}" != 'CONTRIBUTOR' ]]
if [[ "${AUTHOR_ASSOCIATION}" != 'MEMBER' && "${AUTHOR_ASSOCIATION}" != 'OWNER' ]]
then
echo "User authorization failed"
exit 1
Binary file not shown.

After

Width:  |  Height:  |  Size: 551 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 112 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 33 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 33 KiB

@@ -0,0 +1,158 @@
import { Button } from "@/components/ui/button";
import { metadataBase } from "@/lib/constants";
import type { Metadata } from "next";
import Image from "next/image";
import Link from "next/link";
import {
ConnectSmartAccountCustomPreview,
ConnectSmartAccountPreview,
} from "../../../components/account-abstraction/connect-smart-account";
import { SponsoredTxPreview } from "../../../components/account-abstraction/sponsored-tx";
import { CodeExample } from "../../../components/code/code-example";
export const metadata: Metadata = {
metadataBase,
title: "Sign In, Account Abstraction and SIWE Auth | thirdweb Connect",
description:
"Let users sign up with their email, phone number, social media accounts or directly with a wallet. Seemlessly integrate account abstraction and SIWE auth.",
};
export default function Page() {
return (
<main className="flex-1 content-center relative py-12 md:py-24 lg:py-32 xl:py-48 space-y-12 md:space-y-24">
<section className="container px-4 md:px-6">
<div className="grid gap-10 lg:grid-cols-[1fr_400px] lg:gap-12 xl:grid-cols-[1fr_600px]">
<div className="flex flex-col justify-center space-y-4 min-h-[100%]">
<div className="space-y-2">
<h1 className="text-4xl font-bold tracking-tighter sm:text-5xl xl:text-6xl/none font-inter mb-6 text-balance">
Account abstraction
</h1>
<p className="max-w-[600px] text-gray-500 md:text-xl dark:text-gray-300 mb-6 font-inter">
Let users connect to their smart accounts with any wallet and
unlock gas sponsorship, batched transactions, session keys and
full wallet programmability.
</p>
</div>
<div className="flex flex-col gap-4 min-[400px]:flex-row">
<Button asChild size="lg">
<Link
target="_blank"
href="https://portal.thirdweb.com/connect/account-abstraction"
>
View docs
</Link>
</Button>
<Button asChild variant="outline" size="lg">
<Link target="_blank" href="https://thirdweb.com/contact-us">
Book a Demo
</Link>
</Button>
</div>
</div>
<div className="w-full mx-auto my-auto sm:w-full order-first lg:order-last relative flex flex-col space-y-2">
<div className="max-w-full sm:max-w-[500px] p-8">
<Image
src={"/account-abstraction.png"}
width={600}
height={400}
objectFit={"contain"}
alt=""
priority={true}
/>
</div>
</div>
</div>
</section>
<section className="container px-4 md:px-6 space-y-8">
<ConnectSmartAccount />
</section>
<section className="container px-4 md:px-6 space-y-8">
<SponsoredTx />
</section>
</main>
);
}
function ConnectSmartAccount() {
return (
<>
<div className="space-y-2">
<h2 className="text-2xl sm:text-3xl font-semibold tracking-tight">
Connect smart accounts
</h2>
<p className="max-w-[600px]">
Enable smart accounts on the UI components or build your own UI.
</p>
</div>
<CodeExample
preview={<ConnectSmartAccountPreview />}
code={`// Using UI components
import { ConnectButton } from "thirdweb/react";
function App(){
return (<>
<ConnectButton client={client}
// account abstraction options
accountAbstraction={{ chain, sponsorGas: true }} />
</>);
};`}
lang="tsx"
/>
<CodeExample
preview={<ConnectSmartAccountCustomPreview />}
code={`// Using your own UI
import { useConnect } from "thirdweb/react";
import { createWallet } from "thirdweb/wallets";
function App(){
const { connect } = useConnect({ client,
// account abstraction options
accountAbstraction: { chain, sponsorGas: true }});
return (<>
<button onClick={() => connect(async () => {
// any wallet connected here will be
// converted to a smart account
const adminWallet = createWallet("io.metamask");
await adminWallet.connect({ client });
return adminWallet;
})}>Connect (metamask)</button>
</>);
};`}
lang="tsx"
/>
</>
);
}
function SponsoredTx() {
return (
<>
<div className="space-y-2">
<h2 className="text-2xl sm:text-3xl font-semibold tracking-tight">
Sponsored transactions
</h2>
<p className="max-w-[600px]">
Set `sponsorGas: true` to enable gas-free transactions for your users.
<br />
Free on testnets, billed at the end of the month on mainnets.
</p>
</div>
<CodeExample
preview={<SponsoredTxPreview />}
code={`import { claimTo } from "thirdweb/extensions/erc1155";
import { TransactionButton } from "thirdweb/react";
function App(){
return (<>
{/* transactions will be sponsored */}
<TransactionButton transaction={() => claimTo({ contract, to: "0x123...", tokenId: 0n, quantity: 1n })}>Mint</TransactionButton>
</>);
};`}
lang="tsx"
/>
</>
);
}
@@ -0,0 +1,156 @@
import { CodeExample } from "@/components/code/code-example";
import { Button } from "@/components/ui/button";
import { metadataBase } from "@/lib/constants";
import type { Metadata } from "next";
import Image from "next/image";
import Link from "next/link";
import { SponsoredInAppTxPreview } from "../../../components/in-app-wallet/sponsored-tx";
import { StyledConnectEmbed } from "../../../components/styled-connect-embed";
export const metadata: Metadata = {
metadataBase,
title: "Sign In, Account Abstraction and SIWE Auth | thirdweb Connect",
description:
"Let users sign up with their email, phone number, social media accounts or directly with a wallet. Seemlessly integrate account abstraction and SIWE auth.",
};
export default function Page() {
return (
<main className="flex-1 content-center relative py-12 md:py-24 lg:py-32 xl:py-48 space-y-12 md:space-y-24">
<section className="container px-4 md:px-6">
<div className="grid gap-10 lg:grid-cols-[1fr_400px] lg:gap-12 xl:grid-cols-[1fr_600px]">
<div className="flex flex-col justify-center space-y-4 min-h-[100%]">
<div className="space-y-2">
<h1 className="text-4xl font-bold tracking-tighter sm:text-5xl xl:text-6xl/none font-inter mb-6 text-balance">
Onboard users to web3
</h1>
<p className="max-w-[600px] text-gray-500 md:text-xl dark:text-gray-300 mb-6 font-inter">
Onboard anyone with flexible auth options, secure account
recovery, and smart account integration.
</p>
</div>
<div className="flex flex-col gap-4 min-[400px]:flex-row">
<Button asChild size="lg">
<Link
target="_blank"
href="https://portal.thirdweb.com/connect/in-app-wallet/overview"
>
View docs
</Link>
</Button>
<Button asChild variant="outline" size="lg">
<Link target="_blank" href="https://thirdweb.com/contact-us">
Book a Demo
</Link>
</Button>
</div>
</div>
<div className="w-full mx-auto my-auto sm:w-full order-first lg:order-last relative flex flex-col space-y-2">
<div className="max-w-full sm:max-w-[600px]">
<Image
src={"/in-app-wallet.png"}
width={600}
height={400}
objectFit={"contain"}
alt=""
priority={true}
/>
</div>
</div>
</div>
</section>
<section className="container px-4 md:px-6 space-y-8">
<AnyAuth />
</section>
<section className="container px-4 md:px-6 space-y-8">
<SponsoredInAppTx />
</section>
</main>
);
}
function AnyAuth() {
return (
<>
<div className="space-y-2">
<h2 className="text-2xl sm:text-3xl font-semibold tracking-tight">
Any Auth Method
</h2>
<p className="max-w-[600px]">
Use any of the built-in auth methods or bring your own.
<br />
Supports custom auth endpoints to integrate with your existing user
base.
</p>
</div>
<CodeExample
preview={<StyledConnectEmbed />}
code={`import { inAppWallet } from "thirdweb/wallets";
import { ConnectEmbed } from "thirdweb/react";
const wallets = [
inAppWallet(
// built-in auth methods
{ auth: {
options: ["email", "phone", "passkey", "google", "apple", "facebook"]
}
}
// or bring your own auth endpoint
)
];
function App(){
return (
<ConnectEmbed client={client} wallets={wallets} />);
};`}
lang="tsx"
/>
</>
);
}
function SponsoredInAppTx() {
return (
<>
<div className="space-y-2">
<h2 className="text-2xl sm:text-3xl font-semibold tracking-tight">
Signless Sponsored Transactions
</h2>
<p className="max-w-[600px]">
With in-app wallets, users don&apos;t need to confirm every
transaction.
<br />
Combine it with smart account flag to cover gas costs for the best UX.
</p>
</div>
<CodeExample
preview={<SponsoredInAppTxPreview />}
code={`import { inAppWallet } from "thirdweb/wallets";
import { claimTo } from "thirdweb/extensions/erc1155";
import { ConnectButton, TransactionButton } from "thirdweb/react";
const wallets = [
inAppWallet(
// turn on gas sponsorship for in-app wallets
{ smartAccount: { chain, sponsorGas: true }}
)
];
function App(){
return (<>
<ConnectButton client={client} wallets={wallets} />
{/* signless, sponsored transactions */}
<TransactionButton transaction={() => claimTo({ contract, to: "0x123...", tokenId: 0n, quantity: 1n })}>Mint</TransactionButton>
</>);
};`}
lang="tsx"
/>
</>
);
}
+126 -38
View File
@@ -1,8 +1,11 @@
import { StyledPayEmbed } from "@/components/styled-pay-embed";
import { Button } from "@/components/ui/button";
import { metadataBase } from "@/lib/constants";
import type { Metadata } from "next";
import Image from "next/image";
import Link from "next/link";
import { CodeExample } from "../../../components/code/code-example";
import { StyledPayEmbedPreview } from "../../../components/pay/embed";
import { PayTransactionButtonPreview } from "../../../components/pay/transaction-button";
export const metadata: Metadata = {
metadataBase,
@@ -13,48 +16,133 @@ export const metadata: Metadata = {
export default function Page() {
return (
<main className="flex-1 content-center relative">
<section className="w-full py-12 md:py-24 lg:py-32 xl:py-48 z-10">
<div className="container px-4 md:px-6">
<div className="grid gap-10 lg:grid-cols-[1fr_400px] lg:gap-12 xl:grid-cols-[1fr_600px]">
<div className="flex flex-col justify-center space-y-4 min-h-[100%]">
<div className="space-y-2">
<h1 className="text-3xl font-bold tracking-tighter sm:text-5xl xl:text-6xl/none font-inter mb-6 text-balance">
The easiest way for users to transact in your app
</h1>
<p className="max-w-[600px] text-gray-500 md:text-xl dark:text-gray-300 mb-6 font-inter">
Onramp users in clicks with credit card &amp; cross-chain
crypto payments — and generate revenue for each user
transaction. Integrate for free.
</p>
</div>
<div className="flex flex-col gap-4 min-[400px]:flex-row">
<Button asChild size="lg">
<Link
target="_blank"
href="https://portal.thirdweb.com/connect/pay/get-started"
>
Get Started
</Link>
</Button>
<Button asChild variant="outline" size="lg">
<Link target="_blank" href="https://thirdweb.com/contact-us">
Book a Demo
</Link>
</Button>
</div>
</div>
<div className="w-full mx-auto my-auto sm:w-full lg:order-last relative flex flex-col space-y-2">
<div className="shadow-xl md:w-[400px] md:mx-auto">
<StyledPayEmbed />
</div>
<p className="md:text-xl text-center text-muted-foreground">
<small>👆 This is live, try it out! 👆</small>
<main className="flex-1 content-center relative py-12 md:py-24 lg:py-32 xl:py-48 space-y-12 md:space-y-24">
<section className="container px-4 md:px-6">
<div className="grid gap-10 lg:grid-cols-[1fr_400px] lg:gap-12 xl:grid-cols-[1fr_600px]">
<div className="flex flex-col justify-center space-y-4 min-h-[100%]">
<div className="space-y-2">
<h1 className="text-4xl font-bold tracking-tighter sm:text-5xl xl:text-6xl/none font-inter mb-6 text-balance">
The easiest way for users to transact in your app
</h1>
<p className="max-w-[600px] text-gray-500 md:text-xl dark:text-gray-300 mb-6 font-inter">
Onramp users with credit card &amp; cross-chain crypto payments
— and generate revenue for each user transaction.
</p>
</div>
<div className="flex flex-col gap-4 min-[400px]:flex-row">
<Button asChild size="lg">
<Link
target="_blank"
href="https://portal.thirdweb.com/connect/pay/get-started"
>
View docs
</Link>
</Button>
<Button asChild variant="outline" size="lg">
<Link target="_blank" href="https://thirdweb.com/contact-us">
Book a Demo
</Link>
</Button>
</div>
</div>
<div className="w-full mx-auto my-auto sm:w-full order-first lg:order-last relative flex flex-col space-y-2">
<div className="max-w-full sm:max-w-[600px]">
<Image
width={600}
height={400}
src={"/pay.png"}
objectFit={"contain"}
alt=""
priority={true}
/>
</div>
</div>
</div>
</section>
<section className="container px-4 md:px-6 space-y-8">
<StyledPayEmbed />
</section>
<section className="container px-4 md:px-6 space-y-8">
<PayTransactionButton />
</section>
</main>
);
}
function StyledPayEmbed() {
return (
<>
<div className="space-y-2">
<h2 className="text-2xl sm:text-3xl font-semibold tracking-tight">
Embed component
</h2>
<p className="max-w-[600px]">
Inline component that allows users to buy any currency.
<br />
Customize theme, currency, amounts, payment methods and more.
</p>
</div>
<CodeExample
preview={<StyledPayEmbedPreview />}
code={`
import { PayEmbed } from "thirdweb/react";
function App() {
return (
<PayEmbed
client={client}
/>
);
};`}
lang="tsx"
/>
</>
);
}
function PayTransactionButton() {
return (
<>
<div className="space-y-2">
<h2 className="text-2xl sm:text-3xl font-semibold tracking-tight">
Transaction Button
</h2>
<p className="max-w-[600px]">
Transaction Button is a handy component that handles transactions.
<br />
If your user doesn&apos;t have enough funds for that transaction, a
pre-filled pay modal will appear with the exact amount needed.
</p>
</div>
<CodeExample
preview={<PayTransactionButtonPreview />}
code={`import { claimTo } from "thirdweb/extensions/erc1155";
import { TransactionButton, useActiveAccount } from "thirdweb/react";
function App() {
const account = useActiveAccount();
return (
<TransactionButton
transaction={() => {
// any transaction works
return claimTo({
contract,
quantity: 1n,
tokenId: 0n,
to: account.address,
});
}}
>
Buy for 10 MATIC
</TransactionButton>
);
};`}
lang="tsx"
/>
</>
);
}
@@ -1,10 +1,13 @@
import { CodeExample } from "@/components/code/code-example";
import { StyledConnectButton } from "@/components/styled-connect-button";
import { StyledConnectEmbed } from "@/components/styled-connect-embed";
import { Button } from "@/components/ui/button";
import { metadataBase } from "@/lib/constants";
import type { Metadata } from "next";
import Image from "next/image";
import Link from "next/link";
import { CodeExample } from "../../../components/code/code-example";
import { CustomizedConnect } from "../../../components/sign-in/custom";
import { HooksPreview } from "../../../components/sign-in/hooks";
import { StyledConnectButton } from "../../../components/styled-connect-button";
import { StyledConnectEmbed } from "../../../components/styled-connect-embed";
export const metadata: Metadata = {
metadataBase,
@@ -15,18 +18,18 @@ export const metadata: Metadata = {
export default function Page() {
return (
<main className="flex-1 content-center relative py-12 md:py-24 lg:py-32 xl:py-48 space-y-12 md:space-y-24 lg:space-y-32 xl:space-y-48">
<main className="flex-1 content-center relative py-12 md:py-24 lg:py-32 xl:py-48 space-y-12 md:space-y-24">
<section className="container px-4 md:px-6">
<div className="grid gap-10 lg:grid-cols-[1fr_400px] lg:gap-12 xl:grid-cols-[1fr_600px]">
<div className="flex flex-col justify-center space-y-4 min-h-[100%]">
<div className="space-y-2">
<h1 className="text-3xl font-bold tracking-tighter sm:text-5xl xl:text-6xl/none font-inter mb-6 text-balance">
The easiest way for users to sign in to your app
<h1 className="text-4xl font-bold tracking-tighter sm:text-5xl xl:text-6xl/none font-inter mb-6 text-balance">
Sign in
</h1>
<p className="max-w-[600px] text-gray-500 md:text-xl dark:text-gray-300 mb-6 font-inter">
Let users sign in with their email, phone number, social media
accounts or directly with a wallet. Seemlessly integrate account
abstraction and SIWE auth.
Create a login experience tailor-made for your app. Add your
wallets of choice, enable web2 sign-in options and create a
modal that fits your brand.
</p>
</div>
<div className="flex flex-col gap-4 min-[400px]:flex-row">
@@ -35,7 +38,7 @@ export default function Page() {
target="_blank"
href="https://portal.thirdweb.com/connect/sign-in"
>
Get Started
View docs
</Link>
</Button>
<Button asChild variant="outline" size="lg">
@@ -45,78 +48,202 @@ export default function Page() {
</Button>
</div>
</div>
<div className="w-full mx-auto my-auto sm:w-full lg:order-last relative flex flex-col space-y-2">
<div className="mx-auto">
<StyledConnectButton />
<div className="w-full mx-auto my-auto sm:w-full order-first lg:order-last relative flex flex-col space-y-2">
<div className="max-w-full sm:max-w-[600px]">
<Image
src={"/connectors.png"}
width={600}
height={400}
objectFit={"contain"}
alt=""
priority={true}
/>
</div>
<p className="md:text-xl text-center text-muted-foreground">
<small>👆 This is live, try it out! 👆</small>
</p>
</div>
</div>
</section>
<section className="container px-4 md:px-6 space-y-8">
<div className="space-y-2">
<h2 className="text-4xl font-semibold tracking-tight">
Connect Button
</h2>
<p className="max-w-[600px]">
When clicked opens a modal and allows users to connect to various
wallets.
<br />
It is extremely customizable and very easy to use.
</p>
</div>
<CodeExample
preview={<StyledConnectButton />}
code={`import { createThirdwebClient } from "thirdweb";
import { ConnectButton } from "thirdweb/react";
const THIRDWEB_CLIENT = createThirdwebClient({
clientId: "<YOUR_CLIENT_ID>"
});
function App(){
return (
<ConnectButton client={THIRDWEB_CLIENT} />
);
};`}
lang="tsx"
/>
<ButtonComponent />
</section>
<section className="container px-4 md:px-6 space-y-8">
<div className="space-y-2">
<h2 className="text-4xl font-semibold tracking-tight">
Connect Embed
</h2>
<p className="max-w-[600px]">
When clicked opens a modal and allows users to connect to various
wallets.
<br />
It is extremely customizable and very easy to use.
</p>
</div>
<CodeExample
preview={<StyledConnectEmbed />}
code={`import { createThirdwebClient } from "thirdweb";
import { ConnectEmbed } from "thirdweb/react";
<EmbedComponent />
</section>
const THIRDWEB_CLIENT = createThirdwebClient({
clientId: "<YOUR_CLIENT_ID>"
});
<section className="container px-4 md:px-6 space-y-8">
<CustomizedComponent />
</section>
function App(){
return (
<ConnectEmbed client={THIRDWEB_CLIENT} />
);
};`}
lang="tsx"
/>
<section className="container px-4 md:px-6 space-y-8">
<Hooks />
</section>
</main>
);
}
function ButtonComponent() {
return (
<>
<div className="space-y-2">
<h2 className="text-2xl sm:text-3xl font-semibold tracking-tight">
Button Component
</h2>
<p className="max-w-[600px]">
When clicked opens a modal and allows users to connect to various
wallets.
<br />
Extremely customizable and easy to use.
</p>
</div>
<CodeExample
preview={<StyledConnectButton />}
code={`import { createThirdwebClient } from "thirdweb";
import { ConnectButton } from "thirdweb/react";
const THIRDWEB_CLIENT = createThirdwebClient({
clientId: "<YOUR_CLIENT_ID>"
});
function App(){
return (
<ConnectButton client={THIRDWEB_CLIENT} />
);
};`}
lang="tsx"
/>
</>
);
}
function EmbedComponent() {
return (
<>
<div className="space-y-2">
<h2 className="text-2xl sm:text-3xl font-semibold tracking-tight">
Embed Component
</h2>
<p className="max-w-[600px]">
Inline component to connect to various wallets.
<br />
Use this to create your own full screen login page.
</p>
</div>
<CodeExample
preview={<StyledConnectEmbed />}
code={`import { createThirdwebClient } from "thirdweb";
import { ConnectEmbed } from "thirdweb/react";
const THIRDWEB_CLIENT = createThirdwebClient({
clientId: "<YOUR_CLIENT_ID>"
});
function App(){
return (
<ConnectEmbed client={THIRDWEB_CLIENT} />
);
};`}
lang="tsx"
/>
</>
);
}
function CustomizedComponent() {
return (
<>
<div className="space-y-2">
<h2 className="text-2xl sm:text-3xl font-semibold tracking-tight">
Customized Component
</h2>
<p className="max-w-[600px]">
Change the look and feel of the connect button without rewriting your
own.
</p>
</div>
<CodeExample
preview={<CustomizedConnect />}
code={`import { createThirdwebClient } from "thirdweb";
import { ConnectEmbed } from "thirdweb/react";
const THIRDWEB_CLIENT = createThirdwebClient({
clientId: "<YOUR_CLIENT_ID>"
});
function App(){
return (
<ConnectButton
client={THIRDWEB_CLIENT}
connectButton={{
label: "Custom Connect Button",
}}
showAllWallets={false}
connectModal={{
title: "Custom Connect Modal",
size: "compact",
}}
theme={darkTheme({
colors: {
modalBg: "#281866",
accentButtonBg: "#281866",
connectedButtonBgHover: "#281866",
borderColor: "rgba(256, 256,256, 0.1)",
accentText: "rgba(256, 256,256, 0.1)",
connectedButtonBg: "#281866",
tertiaryBg: "rgba(256, 256,256, 0.1)",
primaryButtonBg: "#281866",
secondaryButtonBg: "rgba(256, 256,256, 0.1)",
primaryButtonText: "#E7E8E9",
primaryText: "#E7E8E9",
separatorLine: "rgba(256, 256,256, 0.1)",
},
})}
/>
);
};`}
lang="tsx"
/>
</>
);
}
function Hooks() {
return (
<>
<div className="space-y-2">
<h2 className="text-2xl sm:text-3xl font-semibold tracking-tight">
Custom UI
</h2>
<p className="max-w-[600px]">
Build your own connect UI using react hooks.
<br />
Wallet state management is all handled for you.
</p>
</div>
<CodeExample
preview={<HooksPreview />}
code={`// Using your own UI
import { useConnect } from "thirdweb/react";
import { createWallet } from "thirdweb/wallets";
function App(){
const { connect } = useConnect();
return (<>
<button onClick={() => connect(async () => {
// 350+ wallets supported with id autocomplete
const wallet = createWallet("io.metamask");
await wallet.connect({ client });
return wallet;
})}>Connect with Metamask</button>
</>);
};`}
lang="tsx"
/>
</>
);
}
@@ -23,7 +23,7 @@ export function Header() {
</div>
<div className="flex items-center gap-1">
<ThemeSelector />
{/* <ThemeSelector /> */}
<Button asChild size="icon" variant="ghost">
<Link href="https://github.com/thirdweb-dev" target="_blank">
<GithubIcon strokeWidth={1} />
+16 -21
View File
@@ -27,27 +27,22 @@ function WalletsSection() {
<div className="my-4 grid gap-4 md:grid-cols-2 lg:grid-cols-3">
<ArticleCardIndex
href="/connect/sign-in"
title="Sign-In"
description="Flexible user sign-up flow with wallet and social sign-in methods"
title="Sign In"
description="Integrate 350+ web3 wallets, in-app wallets, and smart accounts"
icon={WalletsConnectIcon}
/>
<ComingSoonWrapper>
<ArticleCardIndex
href="/connect/account-abstraction"
title="Account abstraction"
description="Complete toolkit for Account Abstraction"
icon={WalletsSmartIcon}
/>
</ComingSoonWrapper>
<ComingSoonWrapper>
<ArticleCardIndex
title="In-App Wallet"
description="Email & social login wallets for your customers"
href="/connect/in-app-wallet"
icon={WalletsInAppIcon}
/>
</ComingSoonWrapper>
<ArticleCardIndex
href="/connect/account-abstraction"
title="Account abstraction"
description="Complete toolkit for Account Abstraction"
icon={WalletsSmartIcon}
/>
<ArticleCardIndex
title="In-App Wallet"
description="Onboard users with an email, social logins, passkey or your own auth system"
href="/connect/in-app-wallet"
icon={WalletsInAppIcon}
/>
<ComingSoonWrapper>
<ArticleCardIndex
href="/connect/auth"
@@ -59,7 +54,7 @@ function WalletsSection() {
<ArticleCardIndex
href="/connect/pay"
title="Pay"
description="Easily integrate fiat onramps and cross-chain crypto purchases"
description="Add fiat and cross-chain crypto payments in your apps"
icon={PayIcon}
/>
<ComingSoonWrapper>
@@ -87,7 +82,7 @@ function ArticleCardIndex(props: {
return (
<Link
href={props.href}
className="flex items-center gap-4 rounded-lg border p-4 transition-colors hover:border-ring hover:bg-ring/20 h-full"
className="flex items-center gap-4 rounded-lg border p-4 transition-colors hover:border-ring hover:bg-ring/20 min-h-32"
>
{props.icon && <props.icon className="size-10 shrink-0" />}
<div className="flex flex-col gap-1">
+1 -1
View File
@@ -6,7 +6,7 @@ import { ThirdwebProvider } from "thirdweb/react";
export const Providers: React.FC<React.PropsWithChildren> = ({ children }) => {
return (
<ThemeProvider attribute="class" enableSystem>
<ThemeProvider attribute="class" defaultTheme="dark">
<ThirdwebProvider>{children}</ThirdwebProvider>
</ThemeProvider>
);
@@ -0,0 +1,74 @@
"use client";
import { useEffect } from "react";
import {
useActiveAccount,
useActiveWallet,
useConnect,
useDisconnect,
} from "thirdweb/react";
import { shortenAddress } from "thirdweb/utils";
import { createWallet } from "thirdweb/wallets";
import { THIRDWEB_CLIENT } from "../../lib/client";
import { StyledConnectButton } from "../styled-connect-button";
import { Button } from "../ui/button";
import { chain } from "./constants";
export function ConnectSmartAccountPreview() {
// force disconnect if not smart wallet already
const wallet = useActiveWallet();
const { disconnect } = useDisconnect();
useEffect(() => {
if (wallet && wallet.id !== "smart") {
disconnect(wallet);
}
}, [wallet, disconnect]);
return (
<div className="flex flex-col">
<StyledConnectButton
accountAbstraction={{
chain,
sponsorGas: true,
}}
/>
</div>
);
}
export function ConnectSmartAccountCustomPreview() {
const account = useActiveAccount();
const wallet = useActiveWallet();
const connectMutation = useConnect({
client: THIRDWEB_CLIENT,
accountAbstraction: { chain, sponsorGas: true },
});
const { disconnect } = useDisconnect();
const connect = async () => {
const wallet = await connectMutation.connect(async () => {
const adminWallet = createWallet("io.metamask");
await adminWallet.connect({
client: THIRDWEB_CLIENT,
});
return adminWallet;
});
return wallet;
};
return (
<div className="flex flex-col">
{account && wallet ? (
<>
<p className="py-4">Connected as {shortenAddress(account.address)}</p>
<Button variant={"outline"} onClick={() => disconnect(wallet)}>
Disconnect
</Button>
</>
) : (
<Button variant={"default"} onClick={connect}>
Connect (metamask)
</Button>
)}
</div>
);
}
@@ -0,0 +1,13 @@
import { getContract } from "thirdweb";
import { baseSepolia } from "thirdweb/chains";
import { THIRDWEB_CLIENT } from "../../lib/client";
export const chain = baseSepolia;
export const editionDropAddress = "0x638263e3eAa3917a53630e61B1fBa685308024fa";
export const editionDropTokenId = 0n;
export const editionDropContract = getContract({
address: editionDropAddress,
chain,
client: THIRDWEB_CLIENT,
});
@@ -0,0 +1,91 @@
"use client";
import { useTheme } from "next-themes";
import { useEffect } from "react";
import { claimTo, getNFT, getOwnedNFTs } from "thirdweb/extensions/erc1155";
import {
MediaRenderer,
TransactionButton,
useActiveAccount,
useActiveWallet,
useDisconnect,
useReadContract,
} from "thirdweb/react";
import { THIRDWEB_CLIENT } from "../../lib/client";
import { editionDropContract, editionDropTokenId } from "./constants";
export function SponsoredTxPreview() {
const wallet = useActiveWallet();
const { disconnect } = useDisconnect();
useEffect(() => {
if (wallet && wallet.id !== "smart") {
disconnect(wallet);
}
}, [wallet, disconnect]);
const { theme } = useTheme();
const smartAccount = useActiveAccount();
const { data: nft, isLoading: isNftLoading } = useReadContract(getNFT, {
contract: editionDropContract,
tokenId: editionDropTokenId,
});
const { data: ownedNfts } = useReadContract(getOwnedNFTs, {
contract: editionDropContract,
// biome-ignore lint/style/noNonNullAssertion: handled by queryOptions
address: smartAccount?.address!,
queryOptions: { enabled: !!smartAccount },
});
return (
<div className="flex flex-col">
{isNftLoading ? (
<div className="w-full mt-24">Loading...</div>
) : (
<>
{nft ? (
<MediaRenderer
client={THIRDWEB_CLIENT}
src={nft.metadata.image}
style={{ width: "100%", marginTop: "10px" }}
/>
) : null}
{smartAccount ? (
<div className="flex flex-col justify-center p-8">
<p className="font-semibold text-center mb-2">
You own {ownedNfts?.[0]?.quantityOwned.toString() || "0"}{" "}
Kittens
</p>
<TransactionButton
transaction={() =>
claimTo({
contract: editionDropContract,
tokenId: editionDropTokenId,
to: smartAccount.address,
quantity: 1n,
})
}
onError={(error) => {
alert(`Error: ${error.message}`);
}}
onTransactionConfirmed={async () => {
alert("Minted successful!");
}}
>
Mint
</TransactionButton>
</div>
) : (
<p
style={{
textAlign: "center",
width: "100%",
marginTop: "10px",
}}
>
Login to mint this Kitten!
</p>
)}
</>
)}
</div>
);
}
@@ -1,8 +1,3 @@
// enforces this only gets rendered on the server
import "server-only";
import { transformerTwoslash } from "@shikijs/twoslash";
import "@shikijs/twoslash/style-rich.css";
import * as parserBabel from "prettier/plugins/babel";
import * as estree from "prettier/plugins/estree";
import { format } from "prettier/standalone";
@@ -14,22 +9,17 @@ export type CodeProps = {
};
export const Code: React.FC<CodeProps> = async ({ code, lang }) => {
const formattedCode = await format(
`// @noErrors
${code}`,
{
parser: "babel-ts",
plugins: [parserBabel, estree],
printWidth: 50,
},
);
const formattedCode = await format(code, {
parser: "babel-ts",
plugins: [parserBabel, estree],
printWidth: 50,
});
const html = await codeToHtml(formattedCode, {
lang: lang,
themes: {
light: "github-light",
dark: "github-dark-default",
},
transformers: [transformerTwoslash()],
});
return (
@@ -0,0 +1,33 @@
"use client";
import { THIRDWEB_CLIENT } from "@/lib/client";
import { useTheme } from "next-themes";
import { ConnectButton } from "thirdweb/react";
import type { ConnectButtonProps } from "thirdweb/react";
import { inAppWallet } from "thirdweb/wallets/in-app";
import { chain } from "./constants";
export function InAppConnectButton(
props?: Omit<ConnectButtonProps, "client" | "theme">,
) {
const { theme } = useTheme();
return (
<ConnectButton
client={THIRDWEB_CLIENT}
theme={theme === "light" ? "light" : "dark"}
connectButton={{
label: "Sign in",
}}
wallets={[
inAppWallet({
smartAccount: {
chain,
sponsorGas: true,
},
}),
]}
{...props}
/>
);
}
@@ -0,0 +1,20 @@
import { getContract } from "thirdweb";
import { baseSepolia } from "thirdweb/chains";
import { THIRDWEB_CLIENT } from "../../lib/client";
export const chain = baseSepolia;
export const tokenDropAddress = "0xd64A548A82c190083707CBEFD26958E5e6551D18";
export const editionDropAddress = "0x638263e3eAa3917a53630e61B1fBa685308024fa";
export const editionDropTokenId = 0n;
export const editionDropContract = getContract({
address: editionDropAddress,
chain,
client: THIRDWEB_CLIENT,
});
export const tokenDropContract = getContract({
address: tokenDropAddress,
chain,
client: THIRDWEB_CLIENT,
});
@@ -0,0 +1,91 @@
"use client";
import { useTheme } from "next-themes";
import { useEffect } from "react";
import { claimTo, getNFT, getOwnedNFTs } from "thirdweb/extensions/erc1155";
import {
MediaRenderer,
TransactionButton,
useActiveAccount,
useActiveWallet,
useDisconnect,
useReadContract,
} from "thirdweb/react";
import { THIRDWEB_CLIENT } from "../../lib/client";
import { editionDropContract, editionDropTokenId } from "./constants";
export function SponsoredInAppTxPreview() {
const wallet = useActiveWallet();
const { disconnect } = useDisconnect();
useEffect(() => {
if (wallet && wallet.id !== "inApp") {
disconnect(wallet);
}
}, [wallet, disconnect]);
const { theme } = useTheme();
const smartAccount = useActiveAccount();
const { data: nft, isLoading: isNftLoading } = useReadContract(getNFT, {
contract: editionDropContract,
tokenId: editionDropTokenId,
});
const { data: ownedNfts } = useReadContract(getOwnedNFTs, {
contract: editionDropContract,
// biome-ignore lint/style/noNonNullAssertion: handled by queryOptions
address: smartAccount?.address!,
queryOptions: { enabled: !!smartAccount },
});
return (
<div className="flex flex-col">
{isNftLoading ? (
<div className="w-full mt-24">Loading...</div>
) : (
<>
{nft ? (
<MediaRenderer
client={THIRDWEB_CLIENT}
src={nft.metadata.image}
style={{ width: "100%", marginTop: "10px" }}
/>
) : null}
{smartAccount ? (
<>
<p className="font-semibold text-center mb-2">
You own {ownedNfts?.[0]?.quantityOwned.toString() || "0"}{" "}
Kittens
</p>
<TransactionButton
transaction={() =>
claimTo({
contract: editionDropContract,
tokenId: editionDropTokenId,
to: smartAccount.address,
quantity: 1n,
})
}
onError={(error) => {
alert(`Error: ${error.message}`);
}}
onTransactionConfirmed={async () => {
alert("Minted successful!");
}}
>
Mint
</TransactionButton>
</>
) : (
<p
style={{
textAlign: "center",
width: "100%",
marginTop: "10px",
}}
>
Login to mint this Kitten!
</p>
)}
</>
)}
</div>
);
}
@@ -4,13 +4,13 @@ import { THIRDWEB_CLIENT } from "@/lib/client";
import { useTheme } from "next-themes";
import { PayEmbed } from "thirdweb/react";
export function StyledPayEmbed() {
export function StyledPayEmbedPreview() {
const { theme } = useTheme();
return (
<PayEmbed
client={THIRDWEB_CLIENT}
theme={theme === "light" ? "dark" : "light"}
theme={theme === "light" ? "light" : "dark"}
/>
);
}
@@ -0,0 +1,41 @@
"use client";
import { useTheme } from "next-themes";
import { getContract } from "thirdweb";
import { polygon } from "thirdweb/chains";
import { claimTo } from "thirdweb/extensions/erc1155";
import { TransactionButton, useActiveAccount } from "thirdweb/react";
import { THIRDWEB_CLIENT } from "../../lib/client";
import { StyledConnectButton } from "../styled-connect-button";
const contract = getContract({
address: "0x96B30d36f783c7BC68535De23147e2ce65788e93",
chain: polygon,
client: THIRDWEB_CLIENT,
});
export function PayTransactionButtonPreview() {
const account = useActiveAccount();
const { theme } = useTheme();
return account ? (
<TransactionButton
transaction={() => {
if (!account) throw new Error("No active account");
return claimTo({
contract,
quantity: 1n,
tokenId: 0n,
to: account?.address,
});
}}
payModal={{
theme: theme === "light" ? "light" : "dark",
}}
>
Buy for 10 MATIC
</TransactionButton>
) : (
<StyledConnectButton />
);
}
@@ -0,0 +1,36 @@
"use client";
import { ConnectButton } from "thirdweb/react";
import { darkTheme, lightTheme } from "thirdweb/react";
import { THIRDWEB_CLIENT } from "../../lib/client";
export const CustomizedConnect = () => {
return (
<ConnectButton
client={THIRDWEB_CLIENT}
connectButton={{
label: "Custom Connect Button",
}}
showAllWallets={false}
connectModal={{
title: "Custom Connect Modal",
size: "compact",
}}
theme={darkTheme({
colors: {
modalBg: "#281866",
accentButtonBg: "#281866",
connectedButtonBgHover: "#281866",
borderColor: "rgba(256, 256,256, 0.1)",
accentText: "rgba(256, 256,256, 0.1)",
connectedButtonBg: "#281866",
tertiaryBg: "rgba(256, 256,256, 0.1)",
primaryButtonBg: "#281866",
secondaryButtonBg: "rgba(256, 256,256, 0.1)",
primaryButtonText: "#E7E8E9",
primaryText: "#E7E8E9",
separatorLine: "rgba(256, 256,256, 0.1)",
},
})}
/>
);
};
@@ -0,0 +1,47 @@
"use client";
import {
useActiveAccount,
useActiveWallet,
useConnect,
useDisconnect,
} from "thirdweb/react";
import { shortenAddress } from "thirdweb/utils";
import { createWallet } from "thirdweb/wallets";
import { THIRDWEB_CLIENT } from "../../lib/client";
import { Button } from "../ui/button";
export function HooksPreview() {
const account = useActiveAccount();
const wallet = useActiveWallet();
const connectMutation = useConnect();
const { disconnect } = useDisconnect();
const connect = async () => {
const wallet = await connectMutation.connect(async () => {
const adminWallet = createWallet("io.metamask");
await adminWallet.connect({
client: THIRDWEB_CLIENT,
});
return adminWallet;
});
return wallet;
};
return (
<div className="flex flex-col">
{account && wallet ? (
<>
<p className="py-4">Connected as {shortenAddress(account.address)}</p>
<Button variant={"outline"} onClick={() => disconnect(wallet)}>
Disconnect
</Button>
</>
) : (
<Button variant={"default"} onClick={connect}>
Connect with Metamask
</Button>
)}
</div>
);
}
@@ -3,14 +3,18 @@
import { THIRDWEB_CLIENT } from "@/lib/client";
import { useTheme } from "next-themes";
import { ConnectButton } from "thirdweb/react";
import type { ConnectButtonProps } from "thirdweb/react";
export function StyledConnectButton() {
export function StyledConnectButton(
props?: Omit<ConnectButtonProps, "client" | "theme">,
) {
const { theme } = useTheme();
return (
<ConnectButton
client={THIRDWEB_CLIENT}
theme={theme === "light" ? "light" : "dark"}
{...props}
/>
);
}
@@ -2,15 +2,28 @@
import { THIRDWEB_CLIENT } from "@/lib/client";
import { useTheme } from "next-themes";
import { ConnectEmbed } from "thirdweb/react";
import {
ConnectEmbed,
type ConnectEmbedProps,
useActiveAccount,
} from "thirdweb/react";
import { StyledConnectButton } from "./styled-connect-button";
export function StyledConnectEmbed() {
export function StyledConnectEmbed(
props?: Omit<ConnectEmbedProps, "client" | "theme">,
) {
const { theme } = useTheme();
const account = useActiveAccount();
return (
return account ? (
<div className="flex flex-col">
<StyledConnectButton />
</div>
) : (
<ConnectEmbed
client={THIRDWEB_CLIENT}
theme={theme === "light" ? "light" : "dark"}
{...props}
/>
);
}
@@ -0,0 +1,41 @@
"use client";
import { THIRDWEB_CLIENT } from "@/lib/client";
import { useTheme } from "next-themes";
import { getContract } from "thirdweb";
import { polygon } from "thirdweb/chains";
import { claimTo } from "thirdweb/extensions/erc1155";
import { TransactionButton, useActiveAccount } from "thirdweb/react";
import { StyledConnectButton } from "./styled-connect-button";
const contract = getContract({
address: "0x96B30d36f783c7BC68535De23147e2ce65788e93",
chain: polygon,
client: THIRDWEB_CLIENT,
});
export function StyledPayTransaction() {
const account = useActiveAccount();
const { theme } = useTheme();
return account ? (
<TransactionButton
transaction={() => {
if (!account) throw new Error("No active account");
return claimTo({
contract,
quantity: 1n,
tokenId: 0n,
to: account?.address,
});
}}
payModal={{
theme: theme === "light" ? "light" : "dark",
}}
>
Buy for 10 MATIC
</TransactionButton>
) : (
<StyledConnectButton />
);
}
+5 -18
View File
@@ -1,10 +1,6 @@
{
"compilerOptions": {
"lib": [
"dom",
"dom.iterable",
"esnext"
],
"lib": ["dom", "dom.iterable", "esnext"],
"allowJs": true,
"skipLibCheck": true,
"strict": true,
@@ -22,19 +18,10 @@
}
],
"paths": {
"@/*": [
"./src/*"
]
"@/*": ["./src/*"]
},
"target": "ES2017"
"target": "ES2020"
},
"include": [
"next-env.d.ts",
"**/*.ts",
"**/*.tsx",
".next/types/**/*.ts"
],
"exclude": [
"node_modules"
]
"include": ["next-env.d.ts", "**/*.ts", "**/*.tsx", ".next/types/**/*.ts"],
"exclude": ["node_modules"]
}
+1
View File
@@ -22,6 +22,7 @@
"packages/thirdweb/src/crypto/aes/lib/md5.ts",
"packages/thirdweb/src/utils/promise/p-limit.ts",
"packages/thirdweb/src/utils/bytecode/cbor-decode.ts",
"packages/thirdweb/src/wallets/in-app/native/helpers/wallet/sss.ts",
"packages/thirdweb/src/**/__generated__/**"
]
},
+1 -1
View File
@@ -15,7 +15,7 @@
},
"devDependencies": {
"@swc/cli": "0.3.10",
"@swc/core": "^1.4.12",
"@swc/core": "^1.5.24",
"ora": "^6.3.1"
}
}
+63
View File
@@ -1,5 +1,68 @@
# @thirdweb-dev/auth
## 4.1.96
### Patch Changes
- Updated dependencies []:
- @thirdweb-dev/wallets@2.5.38
## 4.1.95
### Patch Changes
- Updated dependencies []:
- @thirdweb-dev/wallets@2.5.37
## 4.1.94
### Patch Changes
- Updated dependencies []:
- @thirdweb-dev/wallets@2.5.36
## 4.1.93
### Patch Changes
- Updated dependencies []:
- @thirdweb-dev/wallets@2.5.35
## 4.1.92
### Patch Changes
- Updated dependencies []:
- @thirdweb-dev/wallets@2.5.34
## 4.1.91
### Patch Changes
- Updated dependencies [[`5698b0c`](https://github.com/thirdweb-dev/js/commit/5698b0c5a9779830fa2d2582e551d050427c6254), [`913f99a`](https://github.com/thirdweb-dev/js/commit/913f99a9a4d002b82fcd9e55db41c64aab99cf83), [`d2cbb1e`](https://github.com/thirdweb-dev/js/commit/d2cbb1ee7ebe5aea9021d5be57cd80abd1df7a1c)]:
- @thirdweb-dev/wallets@2.5.33
## 4.1.90
### Patch Changes
- Updated dependencies []:
- @thirdweb-dev/wallets@2.5.32
## 4.1.89
### Patch Changes
- Updated dependencies []:
- @thirdweb-dev/wallets@2.5.31
## 4.1.88
### Patch Changes
- Updated dependencies []:
- @thirdweb-dev/wallets@2.5.30
## 4.1.87
### Patch Changes
+2 -2
View File
@@ -1,6 +1,6 @@
{
"name": "@thirdweb-dev/auth",
"version": "4.1.87",
"version": "4.1.96",
"main": "dist/thirdweb-dev-auth.cjs.js",
"module": "dist/thirdweb-dev-auth.esm.js",
"browser": {
@@ -85,7 +85,7 @@
"@microsoft/tsdoc": "^0.14.2",
"@preconstruct/cli": "2.7.0",
"@swc-node/register": "^1.9.0",
"@swc/core": "^1.4.12",
"@swc/core": "^1.5.24",
"@thirdweb-dev/tsconfig": "workspace:*",
"@types/cookie": "^0.6.0",
"@types/cookie-parser": "^1.4.7",
+30
View File
@@ -1,5 +1,35 @@
# @thirdweb-dev/chains
## 0.1.120
### Patch Changes
- [#3348](https://github.com/thirdweb-dev/js/pull/3348) [`321cf26`](https://github.com/thirdweb-dev/js/commit/321cf26342d0755204aa465bc2390e052d5ed071) Thanks [@github-actions](https://github.com/apps/github-actions)! - Synced Chains Package
## 0.1.119
### Patch Changes
- [#3311](https://github.com/thirdweb-dev/js/pull/3311) [`8b74602`](https://github.com/thirdweb-dev/js/commit/8b74602e3b7fbe011bf886b9d5ee0e2ea62f7447) Thanks [@github-actions](https://github.com/apps/github-actions)! - Synced Chains Package
## 0.1.118
### Patch Changes
- [#3279](https://github.com/thirdweb-dev/js/pull/3279) [`9f42e4d`](https://github.com/thirdweb-dev/js/commit/9f42e4d2412df536d1b5f03a4e2a8b516911facb) Thanks [@github-actions](https://github.com/apps/github-actions)! - Synced Chains Package
## 0.1.117
### Patch Changes
- [#3222](https://github.com/thirdweb-dev/js/pull/3222) [`efae2f3`](https://github.com/thirdweb-dev/js/commit/efae2f36b60e0bcade159608903c9b756843151c) Thanks [@github-actions](https://github.com/apps/github-actions)! - Synced Chains Package
## 0.1.116
### Patch Changes
- [#3168](https://github.com/thirdweb-dev/js/pull/3168) [`f13a40b`](https://github.com/thirdweb-dev/js/commit/f13a40ba9905a05d02640aa6672557f53567b087) Thanks [@github-actions](https://github.com/apps/github-actions)! - Synced Chains Package
## 0.1.115
### Patch Changes
+26
View File
@@ -0,0 +1,26 @@
import type { Chain } from "../src/types";
export default {
"chain": "QuarkChain",
"chainId": 100011,
"explorers": [],
"faucets": [],
"infoURL": "https://www.quarkchain.io",
"name": "QuarkChain L2 Mainnet",
"nativeCurrency": {
"name": "QKC",
"symbol": "QKC",
"decimals": 18
},
"networkId": 100011,
"parent": {
"type": "L2",
"chain": "eip155-100000"
},
"rpc": [
"https://100011.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"https://mainnet-l2-ethapi.quarkchain.io"
],
"shortName": "qkc-l2",
"slug": "quarkchain-l2",
"testnet": false
} as const satisfies Chain;
+6
View File
@@ -10,6 +10,12 @@ export default {
}
],
"faucets": [],
"icon": {
"url": "ipfs://bafkreid3wd6ouu53r677q2z24a4eq5un5tlwbc4izfapcvvtrlhkmz43au",
"width": 133,
"height": 144,
"format": "png"
},
"infoURL": "https://stabilityprotocol.com",
"name": "Global Trust Network",
"nativeCurrency": {
+41
View File
@@ -0,0 +1,41 @@
import type { Chain } from "../src/types";
export default {
"chain": "GLC",
"chainId": 10222,
"explorers": [
{
"name": "GLScan Explorer",
"url": "https://glscan.io",
"standard": "none",
"icon": {
"url": "ipfs://QmTw21p6UfXVH2BCU81G2Ck28ecoknz4v9mC35fF8Z987i",
"width": 512,
"height": 557,
"format": "png"
}
}
],
"faucets": [],
"icon": {
"url": "ipfs://QmTw21p6UfXVH2BCU81G2Ck28ecoknz4v9mC35fF8Z987i",
"width": 512,
"height": 557,
"format": "png"
},
"infoURL": "https://glscan.io/",
"name": "GLScan",
"nativeCurrency": {
"name": "GLC",
"symbol": "GLC",
"decimals": 18
},
"networkId": 10222,
"rpc": [
"https://10222.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"https://glc-dataseed.glscan.io/"
],
"shortName": "glc",
"slip44": 1,
"slug": "glscan",
"testnet": false
} as const satisfies Chain;
@@ -4,12 +4,6 @@ export default {
"chainId": 107107114116,
"explorers": [],
"faucets": [],
"icon": {
"url": "ipfs://QmNTZ9nEomAXK6bLxUbMfTS1TvrsN22HU1zTtxHUpMkUhz",
"width": 1000,
"height": 1000,
"format": "png"
},
"infoURL": "https://kakarot.org",
"name": "Kakarot Sepolia Deprecated",
"nativeCurrency": {
@@ -0,0 +1,31 @@
import type { Chain } from "../src/types";
export default {
"chain": "Oraichain",
"chainId": 108160679,
"explorers": [],
"faucets": [],
"features": [
{
"name": "EIP155"
},
{
"name": "EIP1559"
}
],
"infoURL": "https://orai.io",
"name": "Oraichain Mainnet",
"nativeCurrency": {
"name": "Oraichain Token",
"symbol": "ORAI",
"decimals": 18
},
"networkId": 108160679,
"rpc": [
"https://108160679.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"https://evm.orai.io"
],
"shortName": "Oraichain",
"slug": "oraichain",
"testnet": false,
"title": "Oraichain Mainnet"
} as const satisfies Chain;
+13 -2
View File
@@ -2,9 +2,19 @@ import type { Chain } from "../src/types";
export default {
"chain": "Avalanche",
"chainId": 10849,
"explorers": [],
"explorers": [
{
"name": "Lamina1 Explorer",
"url": "https://subnets.avax.network/lamina1",
"standard": "EIP3091"
}
],
"faucets": [],
"features": [],
"features": [
{
"name": "EIP1559"
}
],
"icon": {
"url": "https://images.ctfassets.net/9bazykntljf6/62CceHSYsRS4D9fgDSkLRB/877cb8f26954e1743ff535fd7fdaf78f/avacloud-placeholder.svg",
"width": 256,
@@ -25,6 +35,7 @@ export default {
"https://subnets.avax.network/lamina1/mainnet/rpc"
],
"shortName": "Lamina1",
"slip44": 1,
"slug": "lamina1",
"testnet": false
} as const satisfies Chain;
+13 -2
View File
@@ -2,9 +2,19 @@ import type { Chain } from "../src/types";
export default {
"chain": "Avalanche",
"chainId": 10850,
"explorers": [],
"explorers": [
{
"name": "Lamina1 Identity Explorer",
"url": "https://subnets.avax.network/lamina1id",
"standard": "EIP3091"
}
],
"faucets": [],
"features": [],
"features": [
{
"name": "EIP1559"
}
],
"icon": {
"url": "https://images.ctfassets.net/9bazykntljf6/62CceHSYsRS4D9fgDSkLRB/877cb8f26954e1743ff535fd7fdaf78f/avacloud-placeholder.svg",
"width": 256,
@@ -25,6 +35,7 @@ export default {
"https://subnets.avax.network/lamina1id/mainnet/rpc"
],
"shortName": "Lamina1 Identity",
"slip44": 1,
"slug": "lamina1-identity",
"testnet": false
} as const satisfies Chain;
+14 -5
View File
@@ -4,16 +4,23 @@ export default {
"chainId": 109,
"explorers": [
{
"name": "shibariumscan",
"name": "Shibariumscan",
"url": "https://www.shibariumscan.io",
"standard": "none"
"standard": "EIP3091",
"icon": {
"url": "https://www.shibariumscan.io/assets/configs/network_icon_dark.png",
"width": 360,
"height": 360,
"format": "png"
}
}
],
"faucets": [],
"features": [],
"icon": {
"url": "ipfs://QmYNVkoZgRjDBQzJz6kog9mA2yPzQFW2oSKvhnkwuBhLQE",
"width": 2000,
"height": 2000,
"url": "https://chewyswap.dog/images/chains/109.png",
"width": 200,
"height": 200,
"format": "png"
},
"infoURL": "https://shibariumecosystem.com",
@@ -24,8 +31,10 @@ export default {
"decimals": 18
},
"networkId": 109,
"redFlags": [],
"rpc": [
"https://109.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"https://rpc.shibrpc.com",
"https://www.shibrpc.com"
],
"shortName": "shibariumecosystem",
+26
View File
@@ -0,0 +1,26 @@
import type { Chain } from "../src/types";
export default {
"chain": "QuarkChain",
"chainId": 110011,
"explorers": [],
"faucets": [],
"infoURL": "https://www.quarkchain.io",
"name": "QuarkChain L2 Testnet",
"nativeCurrency": {
"name": "QKC",
"symbol": "QKC",
"decimals": 18
},
"networkId": 110011,
"parent": {
"type": "L2",
"chain": "eip155-110000"
},
"rpc": [
"https://110011.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"https://testnet-l2-ethapi.quarkchain.io"
],
"shortName": "qkc-l2-t",
"slug": "quarkchain-l2-testnet",
"testnet": true
} as const satisfies Chain;
+13 -1
View File
@@ -6,10 +6,22 @@ export default {
{
"name": "NetMind Testnet Explorer",
"url": "https://testbrower.protago-dev.com",
"standard": "EIP3091"
"standard": "EIP3091",
"icon": {
"url": "ipfs://QmQNipd6uen7sm7HZXGbqhcSVkUXxu3Tp6c3BoeFpvmywp",
"width": 500,
"height": 500,
"format": "png"
}
}
],
"faucets": [],
"icon": {
"url": "ipfs://QmQNipd6uen7sm7HZXGbqhcSVkUXxu3Tp6c3BoeFpvmywp",
"width": 500,
"height": 500,
"format": "png"
},
"infoURL": "https://netmind.ai",
"name": "Netmind Chain Testnet",
"nativeCurrency": {
+30
View File
@@ -0,0 +1,30 @@
import type { Chain } from "../src/types";
export default {
"chain": "Avalanche",
"chainId": 111223,
"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": "Chennai Testnet",
"nativeCurrency": {
"name": "Chennai Testnet Token",
"symbol": "ZOD",
"decimals": 18
},
"networkId": 111223,
"redFlags": [],
"rpc": [
"https://111223.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"https://subnets.avax.network/chennai/testnet/rpc"
],
"shortName": "Chennai Testnet",
"slug": "chennai-testnet",
"testnet": true
} as const satisfies Chain;
+12 -2
View File
@@ -2,9 +2,19 @@ import type { Chain } from "../src/types";
export default {
"chain": "Avalanche",
"chainId": 11227,
"explorers": [],
"explorers": [
{
"name": "JIRITSUTES Explorer",
"url": "https://subnets-test.avax.network/jiritsutes",
"standard": "EIP3091"
}
],
"faucets": [],
"features": [],
"features": [
{
"name": "EIP1559"
}
],
"icon": {
"url": "https://images.ctfassets.net/9bazykntljf6/62CceHSYsRS4D9fgDSkLRB/877cb8f26954e1743ff535fd7fdaf78f/avacloud-placeholder.svg",
"width": 256,
+3 -1
View File
@@ -36,7 +36,9 @@ export default {
},
"rpc": [
"https://1123.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"https://b2-testnet.alt.technology"
"https://b2-testnet.alt.technology",
"https://rpc.ankr.com/b2_testnet",
"https://testnet-rpc.bsquared.network"
],
"shortName": "B2-testnet",
"slug": "b2-testnet",
+6
View File
@@ -16,6 +16,12 @@ export default {
}
],
"faucets": [],
"icon": {
"url": "ipfs://QmVTS8jmWD5e7jVEn86wLjJsuMnc6s8fym3JbtE4etzSKf",
"width": 400,
"height": 400,
"format": "png"
},
"infoURL": "https://lisk.com",
"name": "Lisk",
"nativeCurrency": {
+13 -1
View File
@@ -6,10 +6,22 @@ export default {
{
"name": "CybEthExplorer",
"url": "http://cybeth1.cyberdeck.eu:8000",
"standard": "none"
"standard": "none",
"icon": {
"url": "ipfs://QmTvYMJXeZeWxYPuoQ15mHCS8K5EQzkMMCHQVs3GshooyR",
"width": 193,
"height": 214,
"format": "png"
}
}
],
"faucets": [],
"icon": {
"url": "ipfs://QmTvYMJXeZeWxYPuoQ15mHCS8K5EQzkMMCHQVs3GshooyR",
"width": 193,
"height": 214,
"format": "png"
},
"infoURL": "https://cyberdeck.eu",
"name": "CyberdeckNet",
"nativeCurrency": {
+36
View File
@@ -0,0 +1,36 @@
import type { Chain } from "../src/types";
export default {
"chain": "Flag",
"chainId": 1147,
"explorers": [
{
"name": "Flag Testnet Explorer",
"url": "https://testnet-explorer.flagscan.xyz",
"standard": "EIP3091"
}
],
"faucets": [
"https://faucet.flagscan.xyz"
],
"icon": {
"url": "ipfs://bafybeibcrxeavdxpwwmj4mc6hhp232nkrfbpvfpngcqux2v5rmoshycj3u",
"width": 500,
"height": 500,
"format": "png"
},
"infoURL": "https://testnet-explorer.flagscan.xyz",
"name": "Flag Testnet",
"nativeCurrency": {
"name": "Flag Testnet",
"symbol": "FLAG",
"decimals": 18
},
"networkId": 1147,
"rpc": [
"https://1147.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"https://testnet-rpc.flagscan.xyz"
],
"shortName": "tFLAG",
"slug": "flag-testnet",
"testnet": true
} as const satisfies Chain;
+28
View File
@@ -0,0 +1,28 @@
import type { Chain } from "../src/types";
export default {
"chain": "Artela",
"chainId": 11822,
"explorers": [
{
"name": "ArtelaScan",
"url": "https://betanet-scan.artela.network",
"standard": "EIP3091"
}
],
"faucets": [],
"infoURL": "https://artela.network/",
"name": "Artela Testnet",
"nativeCurrency": {
"name": "ART",
"symbol": "ART",
"decimals": 18
},
"networkId": 11822,
"rpc": [
"https://11822.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"https://betanet-rpc1.artela.network"
],
"shortName": "Artela",
"slug": "artela-testnet",
"testnet": true
} as const satisfies Chain;
+7 -6
View File
@@ -1,6 +1,6 @@
import type { Chain } from "../src/types";
export default {
"chain": "Santiment Intelligence Network",
"chain": "Santiment Intelligence Network DEPRECATED",
"chainId": 11888,
"explorers": [
{
@@ -17,10 +17,10 @@ export default {
"format": "png"
},
"infoURL": "https://sanr.app",
"name": "Santiment Intelligence Network",
"name": "Santiment Intelligence Network DEPRECATED",
"nativeCurrency": {
"name": "SANR",
"symbol": "SANR",
"name": "SANold",
"symbol": "SANold",
"decimals": 18
},
"networkId": 11888,
@@ -37,7 +37,8 @@ export default {
"https://11888.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"https://sanrchain-node.santiment.net"
],
"shortName": "SAN",
"slug": "santiment-intelligence-network",
"shortName": "SANold",
"slug": "santiment-intelligence-network-deprecated",
"status": "deprecated",
"testnet": false
} as const satisfies Chain;
+36
View File
@@ -0,0 +1,36 @@
import type { Chain } from "../src/types";
export default {
"chain": "CuckooAI",
"chainId": 1200,
"explorers": [
{
"name": "Cuckoo Chain Explorer",
"url": "https://mainnet-scan.cuckoo.network",
"standard": "EIP3091"
}
],
"faucets": [],
"icon": {
"url": "ipfs://QmZjVDfk56DjqkCPymaweJJaj9ASGjjgcwJ95XsFDzj9us",
"width": 512,
"height": 512,
"format": "png"
},
"infoURL": "https://cuckoo.network",
"name": "Cuckoo Chain",
"nativeCurrency": {
"name": "CuckooAI",
"symbol": "CAI",
"decimals": 18
},
"networkId": 1200,
"rpc": [
"https://1200.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"https://mainnet-rpc.cuckoo.network",
"wss://mainnet-rpc.cuckoo.network"
],
"shortName": "cai",
"slug": "cuckoo-chain",
"testnet": false,
"title": "Cuckoo Chain"
} as const satisfies Chain;
+38
View File
@@ -0,0 +1,38 @@
import type { Chain } from "../src/types";
export default {
"chain": "CuckooAI",
"chainId": 1210,
"explorers": [
{
"name": "Cuckoo Sepolia Explorer",
"url": "https://testnet-scan.cuckoo.network",
"standard": "EIP3091"
}
],
"faucets": [
"https://cuckoo.network/portal/faucet/"
],
"icon": {
"url": "ipfs://QmZjVDfk56DjqkCPymaweJJaj9ASGjjgcwJ95XsFDzj9us",
"width": 512,
"height": 512,
"format": "png"
},
"infoURL": "https://cuckoo.network",
"name": "Cuckoo Sepolia",
"nativeCurrency": {
"name": "CuckooAI",
"symbol": "CAI",
"decimals": 18
},
"networkId": 1210,
"rpc": [
"https://1210.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"https://testnet-rpc.cuckoo.network",
"wss://testnet-rpc.cuckoo.network"
],
"shortName": "caisepolia",
"slug": "cuckoo-sepolia",
"testnet": true,
"title": "Cuckoo AI Testnet Sepolia"
} as const satisfies Chain;
+1 -1
View File
@@ -25,6 +25,6 @@ export default {
"https://testnet.flagscan.io"
],
"shortName": "Flag",
"slug": "flag-testnet",
"slug": "flag-testnet-flag",
"testnet": true
} as const satisfies Chain;
+4 -3
View File
@@ -17,7 +17,7 @@ export default {
"format": "png"
},
"infoURL": "https://buildonhybrid.com",
"name": "Hybrid Testnet",
"name": "Hybrid Testnet (Deprecated)",
"nativeCurrency": {
"name": "Hybrid",
"symbol": "HYB",
@@ -28,7 +28,8 @@ export default {
"https://1224.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"https://testnet-rpc.buildonhybrid.com"
],
"shortName": "hyb",
"slug": "hybrid-testnet",
"shortName": "hyb_deprecated",
"slug": "hybrid-testnet-deprecated",
"status": "deprecated",
"testnet": true
} as const satisfies Chain;
+36
View File
@@ -0,0 +1,36 @@
import type { Chain } from "../src/types";
export default {
"chain": "HYB",
"chainId": 1225,
"explorers": [
{
"name": "Hybrid Testnet",
"url": "https://explorer.buildonhybrid.com",
"standard": "EIP3091"
}
],
"faucets": [],
"icon": {
"url": "ipfs://QmdGfvH9qfvbMXYKosS1nHbw3q5UtFJky4hdMDmmKDTx8Y",
"width": 250,
"height": 250,
"format": "png"
},
"infoURL": "https://buildonhybrid.com",
"name": "Hybrid Testnet",
"nativeCurrency": {
"name": "Hybrid",
"symbol": "HYB",
"decimals": 18
},
"networkId": 1225,
"rpc": [
"https://1225.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"https://hybrid-testnet.rpc.caldera.xyz/http",
"wss://hybrid-testnet.rpc.caldera.xyz/ws"
],
"shortName": "hyb",
"slug": "hybrid-testnet",
"status": "active",
"testnet": true
} as const satisfies Chain;
+28
View File
@@ -0,0 +1,28 @@
import type { Chain } from "../src/types";
export default {
"chain": "ITX",
"chainId": 1235,
"explorers": [
{
"name": "ITX Mainnet Explorer (Blockscout)",
"url": "https://explorer.itxchain.com",
"standard": "EIP3091"
}
],
"faucets": [],
"infoURL": "https://explorer.itxchain.com",
"name": "ITX Mainnet",
"nativeCurrency": {
"name": "ITX",
"symbol": "ITX",
"decimals": 18
},
"networkId": 1235,
"rpc": [
"https://1235.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"https://rpc.itxchain.com"
],
"shortName": "itx",
"slug": "itx",
"testnet": false
} as const satisfies Chain;
-6
View File
@@ -15,12 +15,6 @@ export default {
}
],
"faucets": [],
"icon": {
"url": "ipfs://QmRySLe3su59dE5x5JPm2b1GeZfz6DR9qUzcbp3rt4SD3A",
"width": 300,
"height": 300,
"format": "png"
},
"infoURL": "https://astar.network",
"name": "zKatana",
"nativeCurrency": {
+30
View File
@@ -0,0 +1,30 @@
import type { Chain } from "../src/types";
export default {
"chain": "Avalanche",
"chainId": 12885,
"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": "QI0603I3",
"nativeCurrency": {
"name": "QI0603I3 Token",
"symbol": "UQI",
"decimals": 18
},
"networkId": 12885,
"redFlags": [],
"rpc": [
"https://12885.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"https://subnets.avax.network/defi-kingdoms/dfk-chain/rpc"
],
"shortName": "QI0603I3",
"slug": "qi0603i3",
"testnet": true
} as const satisfies Chain;
+37
View File
@@ -0,0 +1,37 @@
import type { Chain } from "../src/types";
export default {
"chain": "Sei",
"chainId": 1328,
"explorers": [
{
"name": "Seitrace",
"url": "https://seitrace.com",
"standard": "EIP3091"
}
],
"faucets": [
"https://atlantic-2.app.sei.io/faucet"
],
"icon": {
"url": "ipfs://bafkreih3l3iisplmikofkbfyimqlox7nmixzlkzhjoewmpi4jbqitwryoa",
"width": 600,
"height": 600,
"format": "png"
},
"infoURL": "https://www.sei.io",
"name": "Sei Testnet",
"nativeCurrency": {
"name": "Sei",
"symbol": "SEI",
"decimals": 18
},
"networkId": 1328,
"rpc": [
"https://1328.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"https://evm-rpc-testnet.sei-apis.com",
"wss://evm-ws-testnet.sei-apis.com"
],
"shortName": "sei-testnet",
"slug": "sei-testnet",
"testnet": true
} as const satisfies Chain;
+48
View File
@@ -0,0 +1,48 @@
import type { Chain } from "../src/types";
export default {
"chain": "Sei",
"chainId": 1329,
"explorers": [
{
"name": "Seitrace",
"url": "https://seitrace.com",
"standard": "EIP3091"
},
{
"name": "Sei Explorer",
"url": "https://github.com/sei-protocol/sei-chain/blob/main/assets/SeiLogo.png",
"standard": "EIP3091",
"icon": {
"url": "https://github.com/sei-protocol/sei-chain/blob/main/assets/SeiLogo.png",
"width": 231,
"height": 231,
"format": "png"
}
}
],
"faucets": [],
"features": [],
"icon": {
"url": "https://github.com/sei-protocol/sei-chain/blob/main/assets/SeiLogo.png",
"width": 231,
"height": 231,
"format": "png"
},
"infoURL": "https://www.sei.io",
"name": "Sei",
"nativeCurrency": {
"name": "Sei",
"symbol": "Sei",
"decimals": 18
},
"networkId": 1329,
"redFlags": [],
"rpc": [
"https://1329.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"https://evm-rpc.sei-apis.com",
"wss://evm-ws.sei-apis.com"
],
"shortName": "sei",
"slug": "sei",
"testnet": false
} as const satisfies Chain;
+18 -3
View File
@@ -2,11 +2,24 @@ import type { Chain } from "../src/types";
export default {
"chain": "Form",
"chainId": 132902,
"explorers": [],
"explorers": [
{
"name": "Form Testnet explorer",
"url": "https://testnet-explorer.form.network",
"standard": "EIP3091"
}
],
"faucets": [
"https://info.form.network/faucet"
],
"features": [],
"features": [
{
"name": "EIP155"
},
{
"name": "EIP1559"
}
],
"icon": {
"url": "ipfs://bafkreif6anuffunp3le26jsyemdrg4ydf2abensokw4qnlgvg5nc43zqbi",
"width": 3600,
@@ -29,7 +42,9 @@ export default {
"redFlags": [],
"rpc": [
"https://132902.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"https://rpc.form.network/http"
"https://rpc.form.network/http",
"https://testnet-rpc.form.network/http",
"wss://testnet-rpc.form.network/ws"
],
"shortName": "Form",
"slug": "form-testnet",
+3 -3
View File
@@ -22,9 +22,9 @@ export default {
}
],
"icon": {
"url": "ipfs://QmZR15YFtH3EyQp3V7vPkm8PFyevXs2w3y2Trf2k6ikVQL",
"width": 480,
"height": 480,
"url": "ipfs://QmU5XU4S5oaGM5fj8oU1ovhWoXCzGWspwRj2zWRTuJrU4k",
"width": 512,
"height": 512,
"format": "png"
},
"infoURL": "https://gravity.xyz",
+7 -1
View File
@@ -6,7 +6,13 @@ export default {
{
"name": "Blockscout",
"url": "https://staging-fast-active-bellatrix.explorer.staging-v3.skalenodes.com",
"standard": "EIP3091"
"standard": "EIP3091",
"icon": {
"url": "ipfs://QmbYYCoU2G4LUfRr9ofGowF3eatfvWv9FiPVhqKndZeqwA",
"width": 400,
"height": 400,
"format": "png"
}
}
],
"faucets": [
+41
View File
@@ -0,0 +1,41 @@
import type { Chain } from "../src/types";
export default {
"chain": "Ramestta",
"chainId": 1370,
"explorers": [
{
"name": "ramascan",
"url": "https://ramascan.com",
"standard": "EIP3091",
"icon": {
"url": "ipfs://QmUtnYVBeDMKudGq2Wue25pqYfQEdgbyvzTzoGPMqRGMJZ",
"width": 300,
"height": 300,
"format": "png"
}
}
],
"faucets": [],
"icon": {
"url": "ipfs://QmUtnYVBeDMKudGq2Wue25pqYfQEdgbyvzTzoGPMqRGMJZ",
"width": 300,
"height": 300,
"format": "png"
},
"infoURL": "https://www.ramestta.com",
"name": "Ramestta Mainnet",
"nativeCurrency": {
"name": "Rama",
"symbol": "RAMA",
"decimals": 18
},
"networkId": 1370,
"rpc": [
"https://1370.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"https://blockchain.ramestta.com",
"https://blockchain2.ramestta.com"
],
"shortName": "RAMA",
"slug": "ramestta",
"testnet": false
} as const satisfies Chain;
+40
View File
@@ -0,0 +1,40 @@
import type { Chain } from "../src/types";
export default {
"chain": "Pingaksha",
"chainId": 1377,
"explorers": [
{
"name": "Pingaksha",
"url": "https://pingaksha.ramascan.com",
"standard": "EIP3091",
"icon": {
"url": "ipfs://QmUtnYVBeDMKudGq2Wue25pqYfQEdgbyvzTzoGPMqRGMJZ",
"width": 300,
"height": 300,
"format": "png"
}
}
],
"faucets": [],
"icon": {
"url": "ipfs://QmUtnYVBeDMKudGq2Wue25pqYfQEdgbyvzTzoGPMqRGMJZ",
"width": 300,
"height": 300,
"format": "png"
},
"infoURL": "https://www.ramestta.com",
"name": "Pingaksha testnet",
"nativeCurrency": {
"name": "Rama",
"symbol": "tRAMA",
"decimals": 18
},
"networkId": 1377,
"rpc": [
"https://1377.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"https://testnet.ramestta.com"
],
"shortName": "tRAMA",
"slug": "pingaksha-testnet",
"testnet": true
} as const satisfies Chain;
+2 -2
View File
@@ -11,7 +11,7 @@ export default {
"format": "svg"
},
"infoURL": "https://eternalcoin.io",
"name": "EternalCoin Mainnet",
"name": "Eternal Mainnet",
"nativeCurrency": {
"name": "Eternal",
"symbol": "Eter",
@@ -24,6 +24,6 @@ export default {
"ws://mainnet.eternalcoin.io/v1/ws"
],
"shortName": "Eter",
"slug": "eternalcoin",
"slug": "eternal",
"testnet": false
} as const satisfies Chain;
+30
View File
@@ -0,0 +1,30 @@
import type { Chain } from "../src/types";
export default {
"chain": "Avalanche",
"chainId": 14093,
"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": "QaUser6598",
"nativeCurrency": {
"name": "QaUser6598 Token",
"symbol": "UQC",
"decimals": 18
},
"networkId": 14093,
"redFlags": [],
"rpc": [
"https://14093.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"https://subnets.avax.network/defi-kingdoms/dfk-chain/rpc"
],
"shortName": "QaUser6598",
"slug": "qauser6598",
"testnet": true
} as const satisfies Chain;
+1 -13
View File
@@ -6,13 +6,7 @@ export default {
{
"name": "etherscan",
"url": "http://testnet-api.magape.io:81",
"standard": "EIP3091",
"icon": {
"url": "ipfs://QmPsxWMvnxnZ9dZcRJJMaE24o34dQsnsAMCJh3kVDrE1aB",
"width": 1000,
"height": 1000,
"format": "png"
}
"standard": "EIP3091"
}
],
"faucets": [],
@@ -21,12 +15,6 @@ export default {
"name": "EIP155"
}
],
"icon": {
"url": "ipfs://QmPsxWMvnxnZ9dZcRJJMaE24o34dQsnsAMCJh3kVDrE1aB",
"width": 1000,
"height": 1000,
"format": "png"
},
"infoURL": "https://magape.io",
"name": "MagApe Testnet",
"nativeCurrency": {
+30
View File
@@ -0,0 +1,30 @@
import type { Chain } from "../src/types";
export default {
"chain": "Avalanche",
"chainId": 14299,
"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": "Diego's",
"nativeCurrency": {
"name": "Diego's Token",
"symbol": "VMF",
"decimals": 18
},
"networkId": 14299,
"redFlags": [],
"rpc": [
"https://14299.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"https://subnets.avax.network/diegos/testnet/rpc"
],
"shortName": "Diego's",
"slug": "diego-s",
"testnet": true
} as const satisfies Chain;
+34
View File
@@ -0,0 +1,34 @@
import type { Chain } from "../src/types";
export default {
"chain": "Flag",
"chainId": 147,
"explorers": [
{
"name": "Flag Mainnet Explorer",
"url": "https://flagscan.xyz",
"standard": "EIP3091"
}
],
"faucets": [],
"icon": {
"url": "ipfs://bafybeibcrxeavdxpwwmj4mc6hhp232nkrfbpvfpngcqux2v5rmoshycj3u",
"width": 500,
"height": 500,
"format": "png"
},
"infoURL": "https://flagscan.xyz",
"name": "Flag Mainnet",
"nativeCurrency": {
"name": "Flag",
"symbol": "FLAG",
"decimals": 18
},
"networkId": 147,
"rpc": [
"https://147.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"https://mainnet-rpc.flagscan.xyz"
],
"shortName": "FLAG",
"slug": "flag",
"testnet": false
} as const satisfies Chain;
+30
View File
@@ -0,0 +1,30 @@
import type { Chain } from "../src/types";
export default {
"chain": "Satori",
"chainId": 14801,
"explorers": [
{
"name": "satoriscan",
"url": "https://satori.vanascan.io",
"standard": "EIP3091"
}
],
"faucets": [
"https://faucet.vana.org"
],
"infoURL": "https://satori.vana.org",
"name": "Vana Satori Testnet",
"nativeCurrency": {
"name": "DAT",
"symbol": "DAT",
"decimals": 18
},
"networkId": 14801,
"rpc": [
"https://14801.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"http://rpc.satori.vana.org"
],
"shortName": "satori",
"slug": "vana-satori-testnet",
"testnet": true
} as const satisfies Chain;
+1
View File
@@ -14,6 +14,7 @@ export default {
"networkId": 151,
"rpc": [],
"shortName": "rbn",
"slip44": 824,
"slug": "redbelly-network",
"status": "incubating",
"testnet": false
+12 -3
View File
@@ -2,7 +2,13 @@ import type { Chain } from "../src/types";
export default {
"chain": "RBN",
"chainId": 153,
"explorers": [],
"explorers": [
{
"name": "Redbelly Network Testnet Explorer",
"url": "https://explorer.testnet.redbelly.network",
"standard": "none"
}
],
"faucets": [],
"infoURL": "https://redbelly.network",
"name": "Redbelly Network Testnet",
@@ -12,10 +18,13 @@ export default {
"decimals": 18
},
"networkId": 153,
"rpc": [],
"rpc": [
"https://153.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"https://governors.testnet.redbelly.network"
],
"shortName": "rbn-testnet",
"slip44": 1,
"slug": "redbelly-network-testnet",
"status": "incubating",
"status": "active",
"testnet": true
} as const satisfies Chain;
+3 -3
View File
@@ -22,9 +22,9 @@ export default {
}
],
"icon": {
"url": "ipfs://QmZR15YFtH3EyQp3V7vPkm8PFyevXs2w3y2Trf2k6ikVQL",
"width": 480,
"height": 480,
"url": "ipfs://QmU5XU4S5oaGM5fj8oU1ovhWoXCzGWspwRj2zWRTuJrU4k",
"width": 512,
"height": 512,
"format": "png"
},
"infoURL": "https://gravity.xyz",
+30
View File
@@ -0,0 +1,30 @@
import type { Chain } from "../src/types";
export default {
"chain": "Avalanche",
"chainId": 16316,
"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": "Stripe Test",
"nativeCurrency": {
"name": "Stripe Test Token",
"symbol": "STR",
"decimals": 18
},
"networkId": 16316,
"redFlags": [],
"rpc": [
"https://16316.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"https://subnets.avax.network/defi-kingdoms/dfk-chain/rpc"
],
"shortName": "Stripe Test",
"slug": "stripe-test",
"testnet": true
} as const satisfies Chain;
+28
View File
@@ -0,0 +1,28 @@
import type { Chain } from "../src/types";
export default {
"chain": "Xterio Testnet",
"chainId": 1637450,
"explorers": [
{
"name": "Xterio Testnet Explorer",
"url": "https://testnet.xterscan.io",
"standard": "EIP3091"
}
],
"faucets": [],
"infoURL": "https://xter.io",
"name": "Xterio Testnet",
"nativeCurrency": {
"name": "tBNB",
"symbol": "tBNB",
"decimals": 18
},
"networkId": 1637450,
"rpc": [
"https://1637450.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"https://xterio-testnet.alt.technology"
],
"shortName": "xteriotest",
"slug": "xterio-testnet",
"testnet": true
} as const satisfies Chain;
+30
View File
@@ -0,0 +1,30 @@
import type { Chain } from "../src/types";
export default {
"chain": "Avalanche",
"chainId": 16587,
"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": "QI0603I1",
"nativeCurrency": {
"name": "QI0603I1 Token",
"symbol": "ODK",
"decimals": 18
},
"networkId": 16587,
"redFlags": [],
"rpc": [
"https://16587.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"https://subnets.avax.network/defi-kingdoms/dfk-chain/rpc"
],
"shortName": "QI0603I1",
"slug": "qi0603i1",
"testnet": true
} as const satisfies Chain;
+10 -4
View File
@@ -2,7 +2,13 @@ import type { Chain } from "../src/types";
export default {
"chain": "ETH",
"chainId": 167000,
"explorers": [],
"explorers": [
{
"name": "etherscan",
"url": "https://taikoscan.io",
"standard": "EIP3091"
}
],
"faucets": [],
"features": [],
"icon": {
@@ -25,11 +31,11 @@ export default {
"https://rpc.mainnet.taiko.xyz/",
"https://rpc.ankr.com/taiko/",
"https://rpc.taiko.xyz/",
"https://rpc.taiko.xyz",
"wss://ws.taiko.xyz"
"https://rpc.mainnet.taiko.xyz",
"wss://ws.mainnet.taiko.xyz"
],
"shortName": "tko-mainnet",
"slug": "taiko",
"status": "incubating",
"status": "active",
"testnet": false
} as const satisfies Chain;
+4 -4
View File
@@ -28,13 +28,13 @@ export default {
"redFlags": [],
"rpc": [
"https://167008.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"https://taiko-katla.drpc.org",
"wss://taiko-katla.drpc.org",
"https://rpc.katla.taiko.xyz",
"wss://ws.katla.taiko.xyz"
"wss://ws.katla.taiko.xyz",
"https://taiko-katla.drpc.org",
"wss://taiko-katla.drpc.org"
],
"shortName": "tko-katla",
"slug": "taiko-katla-l2",
"status": "active",
"status": "deprecated",
"testnet": true
} as const satisfies Chain;
+7
View File
@@ -7,9 +7,15 @@ export default {
"name": "konet-explorer",
"url": "https://explorer.kon-wallet.com",
"standard": "EIP3091"
},
{
"name": "Konetscan",
"url": "https://konetexplorer.io",
"standard": "EIP3091"
}
],
"faucets": [],
"features": [],
"icon": {
"url": "ipfs://QmSszu2AhLPgcp8SZYiBYCQiRVwb9ueqbnGbcTx9H9CJjZ",
"width": 1851,
@@ -24,6 +30,7 @@ export default {
"decimals": 18
},
"networkId": 17217,
"redFlags": [],
"rpc": [
"https://17217.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"https://api.kon-wallet.com"
+53
View File
@@ -0,0 +1,53 @@
import type { Chain } from "../src/types";
export default {
"chain": "ETH",
"chainId": 1789,
"explorers": [
{
"name": "ZKbase Block Explorer",
"url": "https://sepolia-explorer.zkbase.app",
"standard": "EIP3091",
"icon": {
"url": "ipfs://QmRLtNvkVhC7rRDiLMHLckWbesaSU6sNYhQZgsAM1phTZx",
"width": 400,
"height": 400,
"format": "jpg"
}
}
],
"faucets": [],
"icon": {
"url": "ipfs://QmRLtNvkVhC7rRDiLMHLckWbesaSU6sNYhQZgsAM1phTZx",
"width": 400,
"height": 400,
"format": "jpg"
},
"infoURL": "https://zkbase.org/",
"name": "ZKBase Sepolia Testnet",
"nativeCurrency": {
"name": "Ether",
"symbol": "ETH",
"decimals": 18
},
"networkId": 1789,
"parent": {
"type": "L2",
"chain": "eip155-1",
"bridges": [
{
"url": "https://portral.zkbase.app/"
}
]
},
"redFlags": [
"reusedChainId"
],
"rpc": [
"https://1789.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"https://sepolia-rpc.zkbase.app"
],
"shortName": "zkbase-sepolia",
"slip44": 1,
"slug": "zkbase-sepolia-testnet",
"testnet": true
} as const satisfies Chain;
@@ -15,12 +15,6 @@ export default {
}
],
"faucets": [],
"icon": {
"url": "ipfs://QmNTZ9nEomAXK6bLxUbMfTS1TvrsN22HU1zTtxHUpMkUhz",
"width": 1000,
"height": 1000,
"format": "png"
},
"infoURL": "https://kakarot.org",
"name": "Kakarot Sepolia",
"nativeCurrency": {
+13 -1
View File
@@ -6,12 +6,24 @@ export default {
{
"name": "Lite Explorer",
"url": "https://ethereum-pocr.github.io/explorer/kerleano",
"standard": "EIP3091"
"standard": "EIP3091",
"icon": {
"url": "ipfs://QmRLwpq47tyEd3rfK4tKRhbTvyb3fc7PCutExnL1XAb37A",
"width": 334,
"height": 360,
"format": "png"
}
}
],
"faucets": [
"https://github.com/ethereum-pocr/kerleano/blob/main/docs/faucet.md"
],
"icon": {
"url": "ipfs://QmRLwpq47tyEd3rfK4tKRhbTvyb3fc7PCutExnL1XAb37A",
"width": 334,
"height": 360,
"format": "png"
},
"infoURL": "https://github.com/ethereum-pocr/kerleano",
"name": "Kerleano",
"nativeCurrency": {
+33
View File
@@ -0,0 +1,33 @@
import type { Chain } from "../src/types";
export default {
"chain": "Waterfall Network",
"chainId": 181,
"explorers": [],
"faucets": [],
"features": [
{
"name": "EIP1559"
}
],
"icon": {
"url": "ipfs://QmSDJPBKh9cLVL8UZ5KYwdwPyhD8bRWNb33jjt48wtu5Uc",
"width": 241,
"height": 179,
"format": "png"
},
"infoURL": "https://waterfall.network",
"name": "Waterfall Network",
"nativeCurrency": {
"name": "WATER",
"symbol": "WATER",
"decimals": 18
},
"networkId": 181,
"rpc": [
"https://181.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"https://rpc.waterfall.network/"
],
"shortName": "water",
"slug": "waterfall-network",
"testnet": false
} as const satisfies Chain;
+38
View File
@@ -0,0 +1,38 @@
import type { Chain } from "../src/types";
export default {
"chain": "TCC Network",
"chainId": 181155,
"explorers": [
{
"name": "Tcc Scan",
"url": "https://scan.tccworld.org/",
"standard": "181155",
"icon": {
"url": "ipfs://QmchZTtvuU7oRe3rSu1HNPELJQdnutV79NjcHxoybJ4SVo/tcc-coin.png",
"width": 100,
"height": 100,
"format": "png"
}
}
],
"faucets": [],
"features": [],
"icon": {
"url": "ipfs://QmchZTtvuU7oRe3rSu1HNPELJQdnutV79NjcHxoybJ4SVo/tcc-coin.png",
"width": 100,
"height": 100,
"format": "png"
},
"name": "TCC Network",
"nativeCurrency": {
"name": "The ChampCoin",
"symbol": "TCC",
"decimals": 18
},
"networkId": 181155,
"redFlags": [],
"rpc": [],
"shortName": "TCC",
"slug": "tcc-network",
"testnet": false
} as const satisfies Chain;
@@ -0,0 +1,41 @@
import type { Chain } from "../src/types";
export default {
"chain": "Gemuchain",
"chainId": 1903648807,
"explorers": [
{
"name": "Gemuchain Explorer",
"url": "https://gemutest-explorer.gemuchain.io",
"standard": "EIP3091",
"icon": {
"url": "https://explorer.gemuchain.io/assets/network_logo.svg",
"width": 345,
"height": 48,
"format": "svg"
}
}
],
"faucets": [],
"features": [],
"icon": {
"url": "https://raw.githubusercontent.com/UrfinDeuce/logos/05725373b48fb7e3de75737f621b21a4a6557c76/GemuChain%20logo.svg",
"width": 345,
"height": 48,
"format": "svg"
},
"name": "Gemuchain Lab",
"nativeCurrency": {
"name": "GEMU",
"symbol": "GEMU",
"decimals": 18
},
"networkId": 1903648807,
"redFlags": [],
"rpc": [
"https://1903648807.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"https://gemutest-rpc.gemuchain.io"
],
"shortName": "GEMU",
"slug": "gemuchain-lab",
"testnet": true
} as const satisfies Chain;
+34
View File
@@ -0,0 +1,34 @@
import type { Chain } from "../src/types";
export default {
"chain": "KYOTO",
"chainId": 1997,
"explorers": [
{
"name": "Kyotoscan",
"url": "https://kyotoscan.io",
"standard": "EIP3091"
}
],
"faucets": [],
"features": [
{
"name": "EIP155"
}
],
"infoURL": "https://kyotoprotocol.io",
"name": "Kyoto",
"nativeCurrency": {
"name": "Kyoto",
"symbol": "KYOTO",
"decimals": 18
},
"networkId": 1997,
"rpc": [
"https://1997.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"https://rpc.kyotochain.io"
],
"shortName": "kyoto",
"slip44": 1,
"slug": "kyoto",
"testnet": false
} as const satisfies Chain;
+34
View File
@@ -0,0 +1,34 @@
import type { Chain } from "../src/types";
export default {
"chain": "MetaLink",
"chainId": 2004,
"explorers": [
{
"name": "MetaScan",
"url": "http://twoto3.com:3000",
"standard": "none"
}
],
"faucets": [],
"icon": {
"url": "ipfs://QmfSXRkDPSwt7heQ24pDtWKN6vvervEaTJHmueyRp1mpg1",
"width": 800,
"height": 800,
"format": "jpg"
},
"infoURL": "http://totwo3.com:3000",
"name": "MetaLink Network",
"nativeCurrency": {
"name": "MetaLink",
"symbol": "MTL",
"decimals": 18
},
"networkId": 2004,
"rpc": [
"https://2004.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"http://77.237.237.69:9933"
],
"shortName": "mtl",
"slug": "metalink-network",
"testnet": false
} as const satisfies Chain;
+34
View File
@@ -0,0 +1,34 @@
import type { Chain } from "../src/types";
export default {
"chain": "NIZA",
"chainId": 20041,
"explorers": [
{
"name": "NizaScan",
"url": "https://nizascan.io",
"standard": "EIP3091"
}
],
"faucets": [],
"icon": {
"url": "ipfs://QmPh2FdjoPWBaCKNrknv6HjruxdUCr8AvJYvhpgHZP6e2C",
"width": 512,
"height": 512,
"format": "png"
},
"infoURL": "https://niza.io",
"name": "Niza Chain Mainnet",
"nativeCurrency": {
"name": "Niza Global",
"symbol": "NIZA",
"decimals": 18
},
"networkId": 20041,
"rpc": [
"https://20041.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"https://nizascan.io/rpc"
],
"shortName": "niza",
"slug": "niza-chain",
"testnet": false
} as const satisfies Chain;
+34
View File
@@ -0,0 +1,34 @@
import type { Chain } from "../src/types";
export default {
"chain": "NIZA",
"chainId": 20073,
"explorers": [
{
"name": "NizaScan",
"url": "https://testnet.nizascan.io",
"standard": "EIP3091"
}
],
"faucets": [],
"icon": {
"url": "ipfs://QmPh2FdjoPWBaCKNrknv6HjruxdUCr8AvJYvhpgHZP6e2C",
"width": 512,
"height": 512,
"format": "png"
},
"infoURL": "https://niza.io",
"name": "Niza Chain Testnet",
"nativeCurrency": {
"name": "Niza Global",
"symbol": "NIZA",
"decimals": 18
},
"networkId": 20073,
"rpc": [
"https://20073.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"https://testnet.nizascan.io/rpc"
],
"shortName": "niza_testnet",
"slug": "niza-chain-testnet",
"testnet": true
} as const satisfies Chain;
+2 -2
View File
@@ -5,8 +5,8 @@ export default {
"explorers": [
{
"name": "bitlayer testnet scan",
"url": "https://testnet-scan.bitlayer.org",
"standard": "none"
"url": "https://testnet.btrscan.com",
"standard": "EIP3091"
}
],
"faucets": [
@@ -0,0 +1,28 @@
import type { Chain } from "../src/types";
export default {
"chain": "GM Network Testnet",
"chainId": 202402181627,
"explorers": [
{
"name": "gmnetwork-testnet",
"url": "https://gmnetwork-testnet-explorer.alt.technology",
"standard": "EIP3091"
}
],
"faucets": [],
"infoURL": "https://gmnetwork.ai",
"name": "GM Network Testnet",
"nativeCurrency": {
"name": "Ether",
"symbol": "ETH",
"decimals": 18
},
"networkId": 202402181627,
"rpc": [
"https://202402181627.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"https://gmnetwork-testnet.alt.technology/"
],
"shortName": "gmnetwork-testnet",
"slug": "gm-network-testnet",
"testnet": true
} as const satisfies Chain;
+3 -1
View File
@@ -10,8 +10,9 @@ export default {
}
],
"faucets": [],
"features": [],
"icon": {
"url": "ipfs://bafybeib75gwytvblyvjpfminitr3i6mpat3a624udfsqsl5nysf5vuuvie",
"url": "ipfs://QmXxTwwfYzagtJqvWreUDoq4pKz3A22YmAi7c3hcgZp5Rt/bnb-bnb-logo.png",
"width": 96,
"height": 96,
"format": "png"
@@ -24,6 +25,7 @@ export default {
"decimals": 18
},
"networkId": 204,
"redFlags": [],
"rpc": [
"https://204.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"https://opbnb-mainnet-rpc.bnbchain.org",
+7 -7
View File
@@ -1,14 +1,14 @@
import type { Chain } from "../src/types";
export default {
"chain": "OTP",
"chain": "NEUROWEB",
"chainId": 2043,
"explorers": [],
"faucets": [],
"infoURL": "https://parachain.origintrail.io",
"name": "OriginTrail Parachain",
"infoURL": "https://neuroweb.ai",
"name": "NeuroWeb",
"nativeCurrency": {
"name": "OriginTrail Parachain Token",
"symbol": "OTP",
"name": "NeuroWeb Token",
"symbol": "NEURO",
"decimals": 12
},
"networkId": 2043,
@@ -17,7 +17,7 @@ export default {
"https://astrosat.origintrail.network",
"wss://parachain-rpc.origin-trail.network"
],
"shortName": "otp",
"slug": "origintrail-parachain",
"shortName": "NEURO",
"slug": "neuroweb",
"testnet": false
} as const satisfies Chain;
+29
View File
@@ -0,0 +1,29 @@
import type { Chain } from "../src/types";
export default {
"chain": "Parodychain",
"chainId": 2078,
"explorers": [],
"faucets": [],
"features": [],
"icon": {
"url": "ipfs://QmR2ovc7zeM7gdzpL6FdvWBEhLyE8dL1w8GWnooHEk9uEZ/parodychain-logo.png",
"width": 512,
"height": 512,
"format": "png"
},
"name": "Parody Network",
"nativeCurrency": {
"name": "Parody",
"symbol": "PDY",
"decimals": 18
},
"networkId": 2078,
"redFlags": [],
"rpc": [
"https://2078.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"https://fraa-flashbox-4392-rpc.a.stagenet.tanssi.network"
],
"shortName": "Parody",
"slug": "parody-network",
"testnet": true
} as const satisfies Chain;
+2 -2
View File
@@ -20,8 +20,8 @@ export default {
"networkId": 2136,
"rpc": [
"https://2136.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"https://test-market.bigsb.io",
"wss://test-market.bigsb.io"
"https://test-market.bigsb.network",
"wss://test-market.bigsb.network"
],
"shortName": "bigsb_testnet",
"slug": "bigshortbets-testnet",
+30
View File
@@ -0,0 +1,30 @@
import type { Chain } from "../src/types";
export default {
"chain": "Avalanche",
"chainId": 2144,
"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": "Test Subnet Resources",
"nativeCurrency": {
"name": "Test Subnet Resources Token",
"symbol": "LNV",
"decimals": 18
},
"networkId": 2144,
"redFlags": [],
"rpc": [
"https://2144.rpc.thirdweb.com/${THIRDWEB_API_KEY}",
"https://subnets.avax.network/testsubnet/testnet/rpc"
],
"shortName": "Test Subnet Resources",
"slug": "test-subnet-resources",
"testnet": true
} as const satisfies Chain;
+1 -1
View File
@@ -31,6 +31,6 @@ export default {
"https://mainnet.flagscan.io/"
],
"shortName": "Flag",
"slug": "flag",
"slug": "flag-flag",
"testnet": false
} as const satisfies Chain;

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