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 />
[](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 -->
<!-- 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 -->
### 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>
<!-- 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 -->
### 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 -->
### 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.
---
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.
---
<!-- 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 -->
<!-- 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 -->
<!-- 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 -->
## 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 -->
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 -->
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 -->
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 -->
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 -->
You can find a full video tutorial on how to contribute to thirdweb below:
https://www.youtube.com/watch?v=TXsQ3qok3B0
## Getting Started
To get started, read the [How this repo works](#how-this-repo-works) section below to learn about the structure of this repo.
@@ -12,23 +8,19 @@ From there, you can take a look at our [Good First Issues](https://github.com/th
If you have any questions about the issue, feel free to ask on our [Discord server](https://discord.gg/thirdweb) in the `#contributors` channel; where you'll be able to get help from our team and other contributors.
<br/>
<br/>
## How this repo works
[@thirdweb-dev/js](https://github.com/thirdweb-dev/js) is a monorepo, meaning it contains many projects within it.
We use [Turborepo](https://turbo.build/repo/docs) to manage the repository, and help speed up the [CI/CD](https://www.atlassian.com/continuous-delivery/principles/continuous-integration-vs-delivery-vs-deployment) pipeline to ship to production faster 🚢. Turborepo is a project dependency, and doesn't need to be installed separately.
We use [Turborepo](https://turborepo.org/docs/getting-started) to manage the monorepo, and help speed up the [CI/CD](https://www.atlassian.com/continuous-delivery/principles/continuous-integration-vs-delivery-vs-deployment) pipeline to ship to production faster 🚢.
We use [pnpm](https://pnpm.io) for package management across the repo. `pnpm` is similar to `npm` or `yarn` but with more efficient disk space usage.
You can see a quick outline of each of the projects within this repo below, each living within the [/packages](/packages) directory:
**With the v5 SDK, we've consolidated everything into a single project at [/packages/thirdweb](./packages/thirdweb). You can still find the legacy packages at [/legacy_packages](./legacy_packages).**
| [/sdk](./packages/sdk) | Best in class web3 SDK for Browser, Node and Mobile apps | <a href="https://www.npmjs.com/package/@thirdweb-dev/sdk"><img src="https://img.shields.io/npm/v/@thirdweb-dev/sdk?color=red&label=npm&logo=npm" alt="npm version"/></a> |
| [/react](./packages/react) | Ultimate collection of React hooks for your web3 apps | <a href="https://www.npmjs.com/package/@thirdweb-dev/react"><img src="https://img.shields.io/npm/v/@thirdweb-dev/react?color=red&label=npm&logo=npm" alt="npm version"/></a> |
| [/auth](./packages/auth) | Best in class wallet authentication for Node backends | <a href="https://www.npmjs.com/package/@thirdweb-dev/auth"><img src="https://img.shields.io/npm/v/@thirdweb-dev/auth?color=red&label=npm&logo=npm" alt="npm version"/></a> |
| [/storage](./packages/storage) | Best in class decentralized storage SDK for Browser and Node | <a href="https://www.npmjs.com/package/@thirdweb-dev/storage"><img src="https://img.shields.io/npm/v/@thirdweb-dev/storage?color=red&label=npm&logo=npm" alt="npm version"/></a> |
| [/cli](./packages/cli) | Publish and deploy smart contracts without dealing with private keys | <a href="https://www.npmjs.com/package/thirdweb"><img src="https://img.shields.io/npm/v/thirdweb?color=red&label=npm&logo=npm" alt="npm version"/></a> |
This single package provides a performant & lightweight SDK to interact with any EVM chain across Node, React, and React Native. Learn more about how to use the thirdweb SDK in our [documentation](https://portal.thirdweb.com/typescript/v5).
<br />
## How to contribute
@@ -36,7 +28,7 @@ Let's explore how you can set up the repo on your local machine and start contri
This section requires some existing knowledge of [Git](https://git-scm.com/), [Node.js](https://nodejs.org/en/) and [pnpm](https://pnpm.io/).
<br/>
<br/>
### Getting the repo
@@ -50,67 +42,60 @@ To begin:
3. Create a new branch on your fork to start working on your changes:
```
git checkout -b MY_BRANCH_NAME
```bash
git checkout -b <YOUR BRANCHNAME>
```
4. Install the dependencies:
```
```bash
pnpm install
```
If you are on windows, use the `--ignore-scripts` flag
```
```bash
pnpm install --ignore-scripts
```
Now you have got the repo on your local machine, and you're ready to start making your changes!
Now you have the repo on your local machine, and you're ready to start making your changes!
<br/>
### Test Your Changes
We use [yalc](https://github.com/wclr/yalc) to test changes locally.
#### Writing Unit Tests
Install the yalc CLI globally:
Try to include unit test coverage with your changes where appropriate. We use `vitest` for testing, look for files with the `.test.ts` extension for examples of how to structure your unit tests.
To run your tests, run the following from the package directory (most likely /packages/thirdweb):
```bash
pnpm add yalc -g
pnpm test:dev <YOUR TEST FILE PATH>
```
First, create a test project where you can experiment with your changes:
> 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.
You can create a basic starter project with the `sdk` and `react` packages installed using the CLI:
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:
```bash
npx thirdweb create --app
pnpm lint
```
Use `yalc` to link your local changes in the monorepo to the test project, by running the following command from your test repo:
If there are errors, try running `pnpm fix` to auto-fix any basic errors. Other linter errors, like missing documentation, will need to be fixed manually. See existing files for examples of inline documentation.
```bash
yalc add @thirdweb-dev/react # Link the react package
yalc add @thirdweb-dev/sdk # Link the sdk package
# etc...
```
#### Testing on the Demo Apps
From the monorepo, run the following command to publish your local changes to the test project:
```bash
pnpm push
```
Now, each time you make a change to the monorepo, you can run `pnpm push` to publish your changes to the test project.
In your test project, you need to:
1. Delete the dependencies cache. If you're using Next.js, that is the `.next` directory, and if you're using CRA, that is the `node_modules/.cache` directory.
2. Restart the development server.
You can test your changes on any of the demo apps within the `/apps` directory without linking or publishing your changes to npm. When you run `pnpm dev` from the root directory, turbo will start the demo apps and watch the dependent packages for changes. Any time you make a change anywhere in the repo, the apps will hot reload and the changes will be reflected in the browser.
#### Testing from npm
You can also test your changes by publishing a dev package to npm and adding your package as you normally do in your projects.
Once you have your PR up you can add a comment with the text: `/release-pr`. This will trigger a GitHub action that will publish a dev version to npm.
**Once you have your PR up** you can add a comment with the text: `/release-pr`. This will trigger a GitHub action that will publish a dev version to npm.
You can see the action progress in GitHub's `Actions` tab, look for the workflow: `release-pr`.
@@ -154,9 +139,7 @@ git commit -am "My commit message"
3. Push your changes to the SDK:
```
git push origin MY_BRANCH_NAME
git push origin <YOUR BRANCHNAME>
```
4. Create a [pull request](https://www.atlassian.com/git/tutorials/making-a-pull-request) to the `main` branch of the official (not your fork) SDK repo.
It's helpful to tag PRs with `[SDK]`, `[REACT]`, `[AUTH]`, (the name of the package you're modifying) to indicate the package that you are engaging with.
# Learn more about CodeQL language support at https://aka.ms/codeql-docs/language-support
steps:
- name:Checkout repository
uses:actions/checkout@v3
- name:Checkout repository
uses:actions/checkout@v4
# Initializes the CodeQL tools for scanning.
- name:Initialize CodeQL
uses:github/codeql-action/init@v2
with:
languages:${{ matrix.language }}
# If you wish to specify custom queries, you can do so here or in a config file.
# By default, queries listed here will override any specified in a config file.
# Prefix the list here with "+" to use these queries and those in the config file.
# Details on CodeQL's query packs refer to : https://docs.github.com/en/code-security/code-scanning/automatically-scanning-your-code-for-vulnerabilities-and-errors/configuring-code-scanning#using-queries-in-ql-packs
# queries: security-extended,security-and-quality
# Initializes the CodeQL tools for scanning.
- name:Initialize CodeQL
uses:github/codeql-action/init@v3
with:
languages:${{ matrix.language }}
# If you wish to specify custom queries, you can do so here or in a config file.
# By default, queries listed here will override any specified in a config file.
# Prefix the list here with "+" to use these queries and those in the config file.
# Autobuild attempts to build any compiled languages (C/C++, C#, or Java).
# If this step fails, then you should remove it and run the build manually (see below)
- name:Autobuild
uses:github/codeql-action/autobuild@v2
# Details on CodeQL's query packs refer to : https://docs.github.com/en/code-security/code-scanning/automatically-scanning-your-code-for-vulnerabilities-and-errors/configuring-code-scanning#using-queries-in-ql-packs
# queries: security-extended,security-and-quality
# ℹ️ Command-line programs to run using the OS shell.
# 📚 See https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#jobsjob_idstepsrun
# Autobuild attempts to build any compiled languages (C/C++, C#, or Java).
# If this step fails, then you should remove it and run the build manually (see below)
- name:Autobuild
uses:github/codeql-action/autobuild@v3
# If the Autobuild fails above, remove it and uncomment the following three lines.
# modify them (or add more) to build your code if your project, please refer to the EXAMPLE below for guidance.
# ℹ️ Command-line programs to run using the OS shell.
# 📚 See https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#jobsjob_idstepsrun
# - run: |
# echo "Run, Build Application using script"
# ./location_of_script_within_repo/buildscript.sh
# If the Autobuild fails above, remove it and uncomment the following three lines.
# modify them (or add more) to build your code if your project, please refer to the EXAMPLE below for guidance.
| [/sdk](./packages/sdk) | Best in class web3 SDK for Browser, Node and Mobile apps | <a href="https://www.npmjs.com/package/@thirdweb-dev/sdk"><img src="https://img.shields.io/npm/v/@thirdweb-dev/sdk?color=red&label=npm&logo=npm" alt="npm version"/></a> |
| [/wallets](./packages/wallets) | Unified web3 Wallet library to integrate any wallet into your applications. | <a href="https://www.npmjs.com/package/@thirdweb-dev/wallets"><img src="https://img.shields.io/npm/v/@thirdweb-dev/wallets?color=red&label=npm&logo=npm" alt="npm version"/></a> |
| [/react](./packages/react) | Ultimate collection of React hooks for your web3 apps | <a href="https://www.npmjs.com/package/@thirdweb-dev/react"><img src="https://img.shields.io/npm/v/@thirdweb-dev/react?color=red&label=npm&logo=npm" alt="npm version"/></a> |
| [/react-native](./packages/react-native) | Ultimate collection of React hooks for your native mobile web3 apps | <a href="https://www.npmjs.com/package/@thirdweb-dev/react-native"><img src="https://img.shields.io/npm/v/@thirdweb-dev/react-native?color=red&label=npm&logo=npm" alt="npm version"/></a> |
| [/auth](./packages/auth) | Best in class wallet authentication for Node backends | <a href="https://www.npmjs.com/package/@thirdweb-dev/auth"><img src="https://img.shields.io/npm/v/@thirdweb-dev/auth?color=red&label=npm&logo=npm" alt="npm version"/></a> |
| [/storage](./packages/storage) | Best in class decentralized storage SDK for Browser and Node | <a href="https://www.npmjs.com/package/@thirdweb-dev/storage"><img src="https://img.shields.io/npm/v/@thirdweb-dev/storage?color=red&label=npm&logo=npm" alt="npm version"/></a> |
| [/cli](./packages/cli) | Publish and deploy smart contracts without dealing with private keys | <a href="https://www.npmjs.com/package/thirdweb"><img src="https://img.shields.io/npm/v/thirdweb?color=red&label=npm&logo=npm" alt="npm version"/></a> |
| [/chains](./packages/chains) | All EVM chain information as JS objects for easy handling | <a href="https://www.npmjs.com/package/@thirdweb-dev/chains"><img src="https://img.shields.io/npm/v/@thirdweb-dev/chains?color=red&label=npm&logo=npm" alt="npm version"/></a> |
- Support for React & React-Native
- First party support for [Embedded Wallets](https://portal.thirdweb.com/connect/embedded-wallet/overview) (social/email login)
- First party support for [Account Abstraction](https://portal.thirdweb.com/connect/account-abstraction)
- Instant connection to any chain with RPC Edge integration
- Integrated IPFS upload/download
- UI Components for connection, transactions, nft rendering
- High level contract extensions for interacting with common standards
- Automatic ABI resolution
## Documentation
## Library Comparison
Visit [https://portal.thirdweb.com/](https://portal.thirdweb.com/) to view the full documentation.
| Embedded wallet (email/ social login) | ✅ | ⚠️via 3rd party | ❌ |
| Account abstraction (ERC4337) support | ✅ | ⚠️via 3rd party | ❌ |
| Web3 wallet connectors | ✅ | ✅ | ❌ |
| Local wallet creation | ✅ | ✅ | ✅ |
| Auth (SIWE) | ✅ | ✅ | ❌ |
| Extensions functions for common standards | ✅ | ✅ | ❌ |
| React Hooks | ✅ | ✅ | ❌ |
| React UI components | ✅ | ❌ | ❌ |
| React Native Hooks | ✅ | ✅ | ❌ |
| React Native UI Components | ✅ | ❌ | ❌ |
## Contributing
We welcome contributions from all developers, regardless of experience level. If you are interested in contributing, please read our [Contributing Guide](.github/contributing.md) where you'll learn how the repo works, how to test your changes, and how to submit a pull request.
We welcome contributions from all developers regardless of experience level. If you are interested in contributing, please read our [Contributing Guide](.github/contributing.md) to learn how the repo works, how to test your changes, and how to submit a pull request.
<br />
See our [open source page](https://thirdweb.com/open-source) for more information on our open-source bounties and program.
## Community
## Additional Resources
The best place to discuss your ideas, ask questions, and troubleshoot issues is our [Discord server](https://discord.gg/thirdweb).
This is a [Next.js](https://nextjs.org/) project bootstrapped with [`create-next-app`](https://github.com/vercel/next.js/tree/canary/packages/create-next-app).
## Getting Started
First, run the development server:
```bash
npm run dev
# or
yarn dev
# or
pnpm dev
# or
bun dev
```
Open [http://localhost:3000](http://localhost:3000) with your browser to see the result.
You can start editing the page by modifying `app/page.tsx`. The page auto-updates as you edit the file.
This project uses [`next/font`](https://nextjs.org/docs/basic-features/font-optimization) to automatically optimize and load Inter, a custom Google Font.
## Learn More
To learn more about Next.js, take a look at the following resources:
- [Next.js Documentation](https://nextjs.org/docs) - learn about Next.js features and API.
- [Learn Next.js](https://nextjs.org/learn) - an interactive Next.js tutorial.
You can check out [the Next.js GitHub repository](https://github.com/vercel/next.js/) - your feedback and contributions are welcome!
## Deploy on Vercel
The easiest way to deploy your Next.js app is to use the [Vercel Platform](https://vercel.com/new?utm_medium=default-template&filter=next.js&utm_source=create-next-app&utm_campaign=create-next-app-readme) from the creators of Next.js.
Check out our [Next.js deployment documentation](https://nextjs.org/docs/deployment) for more details.
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.",
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.",
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.",
Some files were not shown because too many files have changed in this diff
Show More
Reference in New Issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.