1. Renamed `ViewFunds` to `ViewAssets` throughout the codebase for better clarity.
2. Updated file names and corresponding imports to reflect this change.
3. Modified the styling of the tabs on the `TransactionsScreen`.
4. Updated the grid layout and spacing in the `ViewNFTs` component.
5. Streamlined token viewing logic by creating reusable content components for tokens and NFTs in `ViewAssets`, `ViewNFTs`, and `ViewTokens`.
---
<!-- start pr-codex -->
---
## PR-Codex overview
The focus of this PR is to restyle the View Assets Connect UI page and rename `ViewFunds` to `ViewAssets`.
### Detailed summary
- Restyled the View Assets Connect UI page
- Renamed `ViewFunds` component to `ViewAssets`
- Updated references and function names accordingly
- Added new components `ViewTokensContent` and `ViewNFTsContent`
- Updated UI layout and styling for better user experience
> ✨ Ask PR-Codex anything about this PR by commenting with `/codex {your question}`
<!-- end pr-codex -->


### TL;DR
Improved the TransactionsScreen UI in the thirdweb package by adding new icons for better visualization and adjusted some layout styles for uniformity.
### What changed?
- Added CoinsIcon and FundsIcon for better tab representation in TransactionsScreen.tsx.
- Updated Tabs component to support labels with React nodes.
- Implemented padding and minHeight adjustments in BuyTxHistory and WalletTransactionHistory components.
- Conditionally rendered transaction history buttons only when transactions are available.
### How to test?
1. Navigate to the TransactionsScreen in the thirdweb package.
2. Verify that the tabs now display icons alongside text labels.
3. Check the layout adjustments in the transaction history components for proper spacing and padding.
### Why make this change?
To enhance the user experience by improving the visual representation of tabs and ensuring consistency in the layout of transaction history components.
---
## 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
The focus of this PR is to expose a new ERC20 extension function `getApprovalForTransaction` for handling ERC20 token approvals.
### Detailed summary
- Exposed `getApprovalForTransaction` in `erc20.ts`
- Added `getApprovalForTransaction` function in `getApprovalForTransaction.ts`
- Defined `GetApprovalForTransactionParams` interface in `getApprovalForTransaction.ts`
- Provided detailed documentation and example usage for `getApprovalForTransaction`
> ✨ Ask PR-Codex anything about this PR by commenting with `/codex {your question}`
<!-- end pr-codex -->
### TL;DR
Added Farcaster icon and login support to the thirdweb package.
### What changed?
- Added Farcaster icon to `socialIcons.ts` and `svgs.ts`
- Updated `WalletImage.tsx` to include Farcaster icon.
- Added Farcaster as a supported social login option throughout the codebase.
### How to test?
1. Ensure the Farcaster icon is rendered correctly by using the Farcaster login option.
2. Verify the Farcaster login flow works as expected on both web and native applications.
### Why make this change?
This update adds support for Farcaster as a social login option, enhancing the flexibility and options available to users for authentication.
---
<!-- start pr-codex -->
---
## PR-Codex overview
This PR adds support for the "Farcaster" authentication option in various parts of the application.
### Detailed summary
- Added "Farcaster" as an authentication option
- Updated login and connection flows to include "Farcaster"
- Introduced Farcaster icons for web and native UI components
- Enhanced social auth login paths to support Farcaster
> The following files were skipped due to too many changes: `packages/thirdweb/src/react/core/utils/socialIcons.ts`
> ✨ 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 update UI components and improve code readability in the dashboard explore feature.
### Detailed summary
- Updated UI components in `ContractCard` and `PublishUpsellCard`
- Simplified `showSkeleton` logic in `ContractCard`
- Replaced `ChakraNextImage` with `Image` and `Button` components
- Reorganized JSX structure for better readability
> ✨ 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 enhance the UI/UX of the dashboard explore section and components.
### Detailed summary
- Updated styling and layout for Explore page components
- Added `TrackedLinkTW` component for analytics tracking
- Introduced `isBeta` flag for contracts
- Improved UI consistency and accessibility across components
> The following files were skipped due to too many changes: `apps/dashboard/src/components/explore/upsells/deploy-your-own.tsx`, `apps/dashboard/src/components/explore/contract-card/index.tsx`
> ✨ 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 add a feature for refreshing contract metadata in the Contract Sources page.
### Detailed summary
- Added `RefreshContractMetadataButton` component for refreshing contract metadata
- Imported `useMutation` and `useQueryClient` from `@tanstack/react-query`
- Imported `toast` from `sonner`
- Updated `VerifyContractParams` type to `ContractParams`
- Modified function parameters in `verifyContract`
- Updated conditional check in `ContractSourcesPage`
- Added logic to handle refreshing contract metadata and invalidating queries
> ✨ Ask PR-Codex anything about this PR by commenting with `/codex {your question}`
<!-- end pr-codex -->
CLOSES: DASH-88, DASH-87, DASH-85, DASH-86
<!-- start pr-codex -->
---
## PR-Codex overview
This PR enhances the Pay UI in the dashboard by adding a new "Webhooks" tab with functionality to create, view, and delete webhooks.
### Detailed summary
- Added a new `WebhooksPage` component
- Integrated webhooks functionality with API calls
- Implemented create and delete webhook features with dialogs
- Updated UI components for webhooks management
> ✨ Ask PR-Codex anything about this PR by commenting with `/codex {your question}`
<!-- end pr-codex -->
Refactored the AppFooter component in the dashboard app to simplify the DOM structure, clean up redundant class names and properties, and group social media icons more effectively. Adjusted the layout to use container and grid classes for better organization.
---
## 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 the `title` property in the `ChainMetadata` object in `utils.ts`.
### Detailed summary
- Updated the `title` property value in the `ChainMetadata` object to "Fully EVM compatible L1 for Entertainment".
> ✨ Ask PR-Codex anything about this PR by commenting with `/codex {your question}`
<!-- end pr-codex -->
* Improved Dialog styles on mobile
* Use the correct color in form error message
* Fix z-index issue with footer
* Fix z-index issue with tab underline
* Fix padding for various other elements
<!-- start pr-codex -->
---
## PR-Codex overview
The focus of this PR is to update styles and components in the dashboard layout.
### Detailed summary
- Added padding to a container in `layout.tsx`
- Updated form layout in `create-ticket.client.tsx`
- Adjusted styling in `sidebar.client.tsx`
- Enhanced uninstall dialog in `InstalledExtensionsTable.tsx`
- Modified classnames in `form.tsx`
- Revised dialog styles in `dialog.tsx`
- Refactored layout structure in `index.tsx`
> ✨ Ask PR-Codex anything about this PR by commenting with `/codex {your question}`
<!-- end pr-codex -->
- New `AppFooter` component added in `app-footer.tsx` under `components/blocks`.
- Replaced `DashboardFooter` with `AppFooter` in `dashboard/layout.tsx`.
- Deleted old `DashboardFooter` implementation.
- Updated social icons and layout in the footer.
- Adjusted `DashboardHeader` styles for consistency.
---
<!-- start pr-codex -->
---
## PR-Codex overview
The focus of this PR is to update the footer component and layout in the dashboard app.
### Detailed summary
- Changed `DashboardFooter` to `AppFooter` in `DashboardLayout`
- Updated styles and content in `AppFooter`
- Removed `MobileBurgerMenu` import
- Updated button variant in `MobileBurgerMenu`
- Updated header layout in `DashboardHeader`
> ✨ 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 refactor the `faucet` page in the dashboard for a specific chain.
### Detailed summary
- Moved `getChain` import to a different path
- Reorganized `InfoCard` and added new headings with styling
- Updated `SpinWheel` component with `Skeleton` import and conditional rendering
> ✨ Ask PR-Codex anything about this PR by commenting with `/codex {your question}`
<!-- end pr-codex -->
### TL;DR
Added support for OAuth redirects in the In-App wallet authentication flow.
### What changed?
1. Introduced `auth.mode` with options `
---
<!-- start pr-codex -->
---
## PR-Codex overview
This PR introduces the ability to open OAuth windows as a redirect, beneficial for embedded applications like Telegram web apps.
### Detailed summary
- Added `mode: "redirect"` option for OAuth windows
- Implemented functions for OAuth redirection
- Updated authentication options for in-app wallets
> The following files were skipped due to too many changes: `packages/thirdweb/src/react/core/hooks/wallets/useAutoConnect.ts`, `packages/thirdweb/src/wallets/in-app/web/lib/web-connector.ts`
> ✨ 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 exposes new types `NFTInput` and `NFTMetadata`, updates type imports, and adds `SUPPORTED_CHAIN_ID` type.
### Detailed summary
- Exposed types: `NFTInput` and `NFTMetadata`
- Updated type imports in various files
- Added `SUPPORTED_CHAIN_ID` type definition
> ✨ Ask PR-Codex anything about this PR by commenting with `/codex {your question}`
<!-- end pr-codex -->
Use this preview link to test:
https://thirdweb.com/avalanche-fuji/0x8C1D464B385A2B7EAa80dcAAD66DD8BC0256e717/direct-listings
<!-- start pr-codex -->
## PR-Codex overview
The focus of this PR is to enhance the listing details display in the dashboard UI.
### Detailed summary
- Added `Listing ID` and `Type` display sections
- Improved `Status` section with additional text for clarity
- Included `Price` section with currency value and symbol
- Commented out a TODO for adding a Buy button in the future
> ✨ Ask PR-Codex anything about this PR by commenting with `/codex {your question}`
<!-- end pr-codex -->
Note: We are still waiting for the CTA text from them
<!-- start pr-codex -->
---
## PR-Codex overview
The focus of this PR is to add support for the VANAR blockchain in the dashboard.
### Detailed summary
- Added support for VANAR blockchain in `utils.ts`
- Imported `vanarBanner` and `vanarCTABG` images
- Defined metadata for VANAR blockchain in `chainMetaRecord`
> ✨ Ask PR-Codex anything about this PR by commenting with `/codex {your question}`
<!-- end pr-codex -->
### TL;DR
This PR refactors the dashboard application by removing the custom toast component and its dependencies, and migrating to the 'sonner' library for toasts. Key changes include the deletion of toast-related components and utilities, adjustments to the `ExportToCSVButton` component to use 'sonner' for toast notifications, and the streamlining of `package.json` and `pnpm-lock.yaml` files.
### What changed?
- Removed custom toast components (`toast.tsx`, `toaster.tsx`, `use-toast.ts`).
- Updated `ExportToCSVButton.tsx` to use 'sonner' for toast notifications.
- Removed `@radix-ui/react-toast` dependency from `package.json` and `pnpm-lock.yaml`.
- Cleaned up `package.json` and `pnpm-lock.yaml` by removing the old toast dependencies.
### How to test?
1. Export a CSV in the dashboard and confirm that toast notifications appear correctly.
2. Check the application for any missing toast notifications that might indicate issues with the migration.
### Why make this change?
The custom toast implementation was redundant with the introduction of the 'sonner' library, which provides a more efficient and streamlined approach to toast notifications. This migration simplifies the codebase and reduces dependencies.
---
- ETH RPC calls to block, transaction and receipt
- TODO: tooltips (copy from blockscout), replace in ENS names where appropriate, decode input data, detect whether it's a transfer or contract interaction, event logs page
### What it looks like
<img width="1055" alt="Screenshot 2024-07-12 at 11 00 23 AM" src="https://github.com/user-attachments/assets/182f392a-1f2a-4323-ab55-706374060b4a">
<!-- start pr-codex -->
---
## PR-Codex overview
This PR focuses on restructuring file paths and importing components for better organization in the dashboard chain pages.
### Detailed summary
- Moved components to `(chainPage)` directory for clarity
- Updated import paths for components in various files
- Refactored file paths for consistency and organization
> The following files were skipped due to too many changes: `apps/dashboard/src/app/(dashboard)/(chain)/[chain_id]/tx/[txHash]/page.tsx`
> ✨ Ask PR-Codex anything about this PR by commenting with `/codex {your question}`
<!-- end pr-codex -->
2024-07-25 04:49:46 +00:00
Jonas DanielsGitHubgithub-actions[bot] <github-actions[bot]@users.noreply.github.com>
## 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 introduces support for modular extensions in contract publishing forms.
### Detailed summary
- Added support for modular extensions in contract publishing forms
- Updated extension input fields to handle modular extensions
- Implemented extension installation parameters for modular extensions
> The following files were skipped due to too many changes: `apps/dashboard/src/components/contract-components/contract-publish-form/index.tsx`, `legacy_packages/sdk/src/evm/common/any-evm-utils/getModularDeploymentInfo.ts`, `legacy_packages/sdk/src/evm/core/sdk.ts`
> ✨ Ask PR-Codex anything about this PR by commenting with `/codex {your question}`
<!-- end pr-codex -->
### TL;DR
Fixes an issue with RPC client reuse to improve performance.
### What changed?
The change replaces the use of `chainId` with `rpcUrl` as the key in the `rpcClientMap` to ensure the correct RPC client is reused.
### How to test?
Test by running existing unit tests and functional tests for RPC client related functionality. Ensure that performance metrics show improvement in RPC client reuse scenarios.
### Why make this change?
This change is motivated by the need to improve performance by ensuring the RPC client is correctly reused.
---
<!-- start pr-codex -->
## PR-Codex overview
This PR fixes gas estimation issues on Arbitrum Sepolia and ensures proper handling of zero `maxPriorityFeePerGas`.
### Detailed summary
- Fixed gas estimation for Arbitrum Sepolia
- Added test case for 0 `maxPriorityFeePerGas`
- Updated conditions for handling `maxPriorityFeePerGas` as `null`
> ✨ 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 allow overriding the nonce for smart accounts in the `thirdweb` package.
### Detailed summary
- Added the ability to override nonce for smart accounts
- Exported `generateRandomUint192` function
- Updated imports and added new functions in `userop.ts` file
- Modified `createUnsignedUserOp` function to use custom nonce logic
> ✨ 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 test descriptions to conditionally run based on a secret key presence.
### Detailed summary
- Updated test descriptions to run conditionally with `runIf` based on `TW_SECRET_KEY`
- Added conditional execution for specific test cases
- Ensured tests run only if the secret key is present
> ✨ Ask PR-Codex anything about this PR by commenting with `/codex {your question}`
<!-- end pr-codex -->
<!-- start pr-codex -->
## PR-Codex overview
This PR focuses on fixing the RPC URL construction for chains in the `thirdweb` package.
### Detailed summary
- Updated RPC URL construction in `IFrameWallet` for signing transactions and typed data
- Updated RPC URL construction in chain utilities for defining, caching, and converting chains
> ✨ Ask PR-Codex anything about this PR by commenting with `/codex {your question}`
<!-- end pr-codex -->
### TL;DR
This pull request centers the text and aligns the spinner in the SendFunds button within the ConnectWallet screen.
### What changed?
- Added `textAlign: "center"` to the button style to center the text
- Moved the spinner alignment condition to ensure it appears correctly when the button is in a pending state
### How to test?
1. Navigate to the `ConnectWallet` screen
2. Trigger the `SendFunds` action
3. Verify that the button text is centered and the spinner is correctly aligned during pending state
### Why make this change?
This change improves the UI by ensuring the button text is consistently centered and the spinner is appropriately aligned during the fund sending process.
---
<!-- start pr-codex -->
---
## PR-Codex overview
This PR focuses on making minor style fixes on the Connect UI Send Funds page.
### Detailed summary
- Updated the text element to be centered and multiline with a red color for error messages
- Adjusted the conditional rendering of the spinner to display only when sending funds is pending
> ✨ Ask PR-Codex anything about this PR by commenting with `/codex {your question}`
<!-- end pr-codex -->
- [x] Remove ethers.utils.isAddress
- [x] Remove useBalanceForAddress
- [x] Remove useTransferNativeToken
<!-- start pr-codex -->
---
## PR-Codex overview
This PR updates wallet balance functions and address validation in various components.
### Detailed summary
- Updated `getWalletBalance` function parameter from `account` to `address`
- Replaced `utils.isAddress` with `isAddress` for address validation
- Updated balance retrieval and address validation in multiple components
- Added new wallet balance hooks for fetching balances
- Refactored deposit functionality to use new wallet balance hooks
> ✨ 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 adds a `ClaimButton` component for claiming tokens from thirdweb Drop contracts.
### Detailed summary
- Added `ClaimButton` component for thirdweb Drop contracts
- Defined types for different token claim parameters
- Implemented claim logic for ERC721, ERC1155, and ERC20 tokens
- Added tests for ERC721 and ERC1155 claim scenarios
> The following files were skipped due to too many changes: `packages/thirdweb/src/react/web/ui/prebuilt/thirdweb/ClaimButton/ClaimButton.test.tsx`
> ✨ 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 update text colors across the application for better consistency and clarity.
### Detailed summary
- Updated text color classes to `text-success-text` and `text-destructive-text` for better clarity and consistency.
- Renamed background color class from `bg-destructive` to `bg-warning` for better semantics.
- Adjusted CSS variables for text colors to enhance readability and maintain consistency.
> ✨ Ask PR-Codex anything about this PR by commenting with `/codex {your question}`
<!-- end pr-codex -->
### TL;DR
Improve the UI layout of the contract-card component by adjusting spacing and removing unnecessary Skeleton wrappers.
### What changed?
The `gap` property for the `Flex` component was increased from 0 to 1 to provide better spacing. The `Skeleton` wrappers around the `Icon` and `Text` components were removed for a cleaner design.
### How to test?
1. Go to the dashboard and navigate to the explore section.
2. Check the contract-card components and observe the new spacing and the absence of loading skeletons around the `Icon` and `Text`.
### Why make this change?
The change is aimed at improving the user interface by making the contract-card component cleaner and visually more appealing.
---
<!-- start pr-codex -->
## PR-Codex overview
This PR ensures that the `possibleChainId` is not rewritten to the slug if it equals 404.
### Detailed summary
- Updated condition to exclude rewriting `possibleChainId` if it equals 404.
> ✨ 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 the `useRegistry.ts` and `hooks.ts` files to include a new `account` value of `300000n`.
### Detailed summary
- Updated `useRegistry.ts` and `hooks.ts` with `account: 300000n` value
- Called `deployContext.nextStep()` after the changes
> ✨ Ask PR-Codex anything about this PR by commenting with `/codex {your question}`
<!-- end pr-codex -->
### TL;DR
Improved the in-app wallet sign-in speed by refactoring OAuth path handling to make it more generic and efficient.
### What changed?
- Standardized the OAuth path handling to make it more generic and reusable across multiple providers.
- Updated `getLoginPath` to `getSocialAuthLoginPath` for OAuth providers like Google, Facebook, Apple, and Discord.
- Improved login speed and reduced redundancy by streamlining the OAuth path logic.
- Removed outdated and redundant code related to individual OAuth provider handling.
### How to test?
1. Test the sign-in process using various OAuth providers such as Google, Facebook, Apple, and Discord.
2. Ensure the redirection and sign-in speed are improved.
3. Verify that the in-app wallet sign-in works seamlessly without any errors.
### Why make this change?
The changes were necessary to optimize and standardize the OAuth sign-in process, improving the overall user experience. The previous implementation had redundant code for individual providers, which was refactored to be more efficient and easier to maintain.
---
<!-- start pr-codex -->
---
## PR-Codex overview
This PR improves in-app wallet sign-in speed by updating authentication strategies and paths.
### Detailed summary
- Updated OAuth authentication strategy to `SocialAuthOption`
- Improved login path retrieval for social authentication providers
- Refactored Discord-specific authentication to generic OAuth approach
> The following files were skipped due to too many changes: `packages/thirdweb/src/wallets/in-app/native/auth/native-auth.ts`
> ✨ Ask PR-Codex anything about this PR by commenting with `/codex {your question}`
<!-- end pr-codex -->
Fix deterministic deploys with specified versions by adding the 'version' argument to the 'computeDeploymentInfoFromContractId' function.
---
<!-- start pr-codex -->
---
## PR-Codex overview
This PR focuses on fixing deterministic deploys with specified versions in the `compute-published-contract-deploy-info.ts` file under `thirdweb` package.
### Detailed summary
- Added `version` field to `computePublishedContractDeployInfo` function parameters.
- Utilizes the specified version for deterministic deployments.
> ✨ 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 enhance the app setup process by adding placeholder chains and improving dynamic routing.
### Detailed summary
- Added `PLACEHOLDER_CHAIN` object in `Billing.tsx` and `provider-setup.tsx`
- Updated context with placeholder chain if configured chains are empty
- Added dynamic routing logic in `middleware.ts` for chain IDs
> ✨ 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 a conditional check in the file `apps/dashboard/src/pages/[chain_id]/[...paths].tsx`.
### Detailed summary
- Updated conditional check for `configuredChain` to compare `getDashboardChainRpc` values for different chain IDs.
> ✨ Ask PR-Codex anything about this PR by commenting with `/codex {your question}`
<!-- end pr-codex -->
<!-- start pr-codex -->
## PR-Codex overview
This PR focuses on fixing proxy resolution in the `thirdweb` package. It includes updates to contract deployment and implementation extraction logic.
### Detailed summary
- Fixed proxy resolution in `resolveImplementation.ts`
- Added tests for extracting implementation address
- Updated proxy bytecode and constructor ABI for ERC1967 proxy
- Added `DUMMY_BYTECODE` for contract deployment
> ✨ 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
The focus of this PR is to update chain definitions and RPC URLs, improve network configuration, and enhance contract component utilities.
### Detailed summary
- Updated chain definitions for various networks
- Adjusted RPC URLs in network configuration
- Enhanced contract component utilities with new features
> The following files were skipped due to too many changes: `packages/thirdweb/src/chains/chain-definitions/polygon-zkevm-testnet.ts`, `packages/thirdweb/src/chains/chain-definitions/scroll-sepolia-testnet.ts`, `packages/thirdweb/src/chains/chain-definitions/manta-pacific-testnet.ts`, `packages/thirdweb/src/chains/chain-definitions/scroll-alpha-testnet.ts`, `apps/dashboard/src/@3rdweb-sdk/react/hooks/useActiveChainId.tsx`, `apps/dashboard/src/lib/ens.ts`, `apps/dashboard/src/components/custom-contract/contract-header/contract-metadata.tsx`, `apps/dashboard/src/@3rdweb-sdk/react/hooks/useApi.ts`, `apps/dashboard/package.json`, `apps/dashboard/src/components/custom-contract/contract-header/metadata-header.tsx`, `apps/dashboard/src/constants/chains.ts`, `apps/dashboard/src/hooks/chains/configureChains.ts`, `apps/dashboard/src/lib/rpc.ts`, `apps/dashboard/src/pages/[chain_id]/[...paths].tsx`, `apps/dashboard/src/utils/tx-frame.ts`, `.changeset/beige-seas-design.md`, `apps/dashboard/src/utils/fetchChain.ts`, `apps/dashboard/src/components/settings/Account/Billing/CreditsItem.tsx`, `apps/dashboard/src/pages/publish/[...paths].tsx`, `apps/dashboard/src/@3rdweb-sdk/react/hooks/useFavoriteChains.ts`, `apps/dashboard/src/components/wallets/ConnectWalletPlayground/PreviewThirdwebProvider.tsx`, `apps/dashboard/src/lib/v5-adapter.ts`, `apps/dashboard/src/pages/profile/[profileAddress].tsx`, `apps/dashboard/src/@3rdweb-sdk/react/components/popularChains.ts`, `apps/dashboard/src/components/engine/overview/transactions-table.tsx`, `apps/dashboard/src/components/explore/contract-card/index.tsx`, `apps/dashboard/src/pages/api/revalidate/publish.ts`, `apps/dashboard/src/components/smart-wallets/AccountFactories/factory-contracts.tsx`, `apps/dashboard/src/components/smart-wallets/AccountFactories/index.tsx`, `apps/dashboard/src/components/contract-components/contract-publish-form/index.tsx`, `apps/dashboard/src/contexts/all-chains.tsx`, `apps/dashboard/src/components/app-layouts/provider-setup.tsx`, `apps/dashboard/src/components/shared/DeprecatedAlert.tsx`, `apps/dashboard/src/contract-ui/tabs/embed/components/embed-setup.tsx`, `apps/dashboard/src/constants/currencies.ts`, `packages/thirdweb/src/exports/chains.ts`, `apps/dashboard/src/contexts/configured-chains.tsx`, `apps/dashboard/src/components/contract-components/hooks.ts`, `pnpm-lock.yaml`, `apps/dashboard/src/lib/wallet/nfts/types.ts`
> ✨ 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 extension support for the Lens Protocol, updates text in a component, and includes various changes related to Lens metadata handling.
### Detailed summary
- Added extension support for Lens Protocol
- Updated text in SponsorshipPolicies component
- Added functions in various Lens-related JSON files
- Modified test files to use `MAX_UINT256`
- Updated Lens profile schema and metadata attributes
- Added tests for Lens protocol functions and metadata retrieval
> The following files were skipped due to too many changes: `packages/thirdweb/src/extensions/lens/read/getHandleFromProfileId.test.ts`, `packages/thirdweb/src/extensions/lens/consts.ts`, `packages/thirdweb/src/extensions/lens/read/getHandleFromProfileId.ts`, `packages/thirdweb/src/extensions/lens/read/getProfileMetadata.ts`, `packages/thirdweb/src/extensions/lens/__generated__/FollowNFT/read/getFollowerCount.ts`, `packages/thirdweb/src/extensions/lens/__generated__/LensHandle/read/getHandleTokenURIContract.ts`, `packages/thirdweb/src/extensions/lens/read/getFullProfile.ts`, `packages/thirdweb/src/extensions/lens/__generated__/LensHub/read/nonces.ts`, `packages/thirdweb/src/extensions/lens/__generated__/LensHub/read/exists.ts`, `packages/thirdweb/src/extensions/lens/__generated__/TokenHandleRegistry/read/nonces.ts`, `packages/thirdweb/src/extensions/lens/__generated__/TokenHandleRegistry/read/resolve.ts`, `packages/thirdweb/src/extensions/lens/__generated__/LensHandle/read/getHandle.ts`, `packages/thirdweb/src/extensions/lens/__generated__/LensHandle/read/getTokenId.ts`, `packages/thirdweb/src/extensions/lens/__generated__/LensHandle/read/getLocalName.ts`, `packages/thirdweb/src/extensions/lens/__generated__/FollowNFT/read/isFollowing.ts`, `packages/thirdweb/src/extensions/lens/__generated__/LensHub/read/tokenDataOf.ts`, `packages/thirdweb/src/extensions/lens/__generated__/LensHub/read/mintTimestampOf.ts`, `packages/thirdweb/src/extensions/lens/__generated__/FollowNFT/read/mintTimestampOf.ts`, `packages/thirdweb/src/extensions/lens/__generated__/ModuleRegistry/read/getModuleTypes.ts`, `packages/thirdweb/src/extensions/lens/__generated__/TokenHandleRegistry/read/getDefaultHandle.ts`, `packages/thirdweb/src/extensions/lens/__generated__/FollowNFT/read/getFollowTokenId.ts`, `packages/thirdweb/src/extensions/lens/__generated__/LensHub/read/getContentURI.ts`, `packages/thirdweb/src/extensions/lens/__generated__/FollowNFT/read/getFollowTimestamp.ts`, `packages/thirdweb/src/extensions/lens/__generated__/ModuleRegistry/read/isModuleRegistered.ts`, `packages/thirdweb/src/extensions/lens/__generated__/FollowNFT/read/getFollowerProfileId.ts`, `packages/thirdweb/src/extensions/lens/__generated__/FollowNFT/read/getFollowData.ts`, `packages/thirdweb/src/extensions/lens/__generated__/LensHub/read/getProfile.ts`, `packages/thirdweb/src/extensions/lens/__generated__/LensHub/read/getProfileIdByHandleHash.ts`, `packages/thirdweb/src/extensions/lens/__generated__/ModuleRegistry/read/isErc20CurrencyRegistered.ts`, `packages/thirdweb/src/extensions/lens/__generated__/FollowNFT/read/getOriginalFollowTimestamp.ts`, `packages/thirdweb/src/extensions/lens/__generated__/ModuleRegistry/read/isModuleRegisteredAs.ts`, `packages/thirdweb/src/extensions/lens/__generated__/FollowNFT/read/getProfileIdAllowedToRecover.ts`, `packages/thirdweb/src/extensions/lens/__generated__/LensHub/read/getPublication.ts`, `packages/thirdweb/src/exports/extensions/lens.ts`
> ✨ 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 expose `roleMap` and `getRoleHash` functions.
### Detailed summary
- Exposed `roleMap` and `getRoleHash` functions in `permissions.ts`
- Updated imports to use `thirdweb` instead of `@thirdweb-dev/sdk`
- Added `roleMap` import in `permissions` component
- Updated address resolution and validation in `airdrop-upload.tsx`
> ✨ 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 refactor address-related functions and constants, consolidating them under `thirdweb` library.
### Detailed summary
- Refactored address-related functions and constants to use `thirdweb` library
- Updated imports and usage of `isAddress`, `ZERO_ADDRESS`, and `NATIVE_TOKEN_ADDRESS`
- Replaced `constants.AddressZero` with `ZERO_ADDRESS` where applicable
> The following files were skipped due to too many changes: `apps/dashboard/src/contract-ui/tabs/nfts/components/claim-tab.tsx`, `apps/dashboard/src/contract-ui/tabs/claim-conditions/components/claim-conditions-form/index.tsx`, `apps/dashboard/src/contract-ui/tabs/nfts/components/airdrop-upload.tsx`, `apps/dashboard/src/contract-ui/tabs/claim-conditions/components/snapshot-upload.tsx`, `apps/dashboard/src/contract-ui/tabs/split/page.tsx`, `apps/dashboard/src/contract-ui/tabs/permissions/components/permissions-editor.tsx`, `apps/dashboard/src/components/shared/CurrencySelector.tsx`, `apps/dashboard/src/contract-ui/tabs/permissions/components/contract-permission.tsx`, `apps/dashboard/src/@3rdweb-sdk/react/cache-keys.ts`
> ✨ 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 enhance authentication and authorization features using Thirdweb for the `playground-web` app.
### Detailed summary
- Updated `client.ts` to handle secret key for Thirdweb client
- Modified authentication logic in `auth-button.tsx` and `basic-auth.tsx`
- Added gated content feature in `gated-content.tsx`
- Updated page layout and content for authentication in `page.tsx`
> ✨ Ask PR-Codex anything about this PR by commenting with `/codex {your question}`
<!-- end pr-codex -->
<!-- start pr-codex -->
## PR-Codex overview
This PR fixes the wallet switcher icon position in the wallet details modal.
### Detailed summary
- Adjusted the wallet switcher icon position in `Modal.tsx`
- Updated the `borderRadius` in `buttons.tsx`
- Added a new `ShuffleIconLucide` component in `ShuffleIconLucide.tsx`
- Replaced `ShuffleIcon` with `ShuffleIconLucide` in `Details.tsx`
> ✨ 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 enhance the deployment process of contracts by adding a gas override option and improving the registration process on the multichain registry for ZkSync contracts.
### Detailed summary
- Added `gasOverride` option for contract deployment
- Improved ZkSync contract registration process
- Removed unnecessary contract registration function
- Updated contract deployment handling for ZkSync
- Refactored contract deployment logic and metadata handling
> ✨ 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 Discord login functionality to the React Native SDK, including new paths, UI changes, and authentication methods.
### Detailed summary
- Added Discord login feature to React Native SDK
- Updated UI components for Discord login
- Implemented Discord authentication methods
- Created new paths for Discord login
- Updated authentication middleware for Discord integration
> The following files were skipped due to too many changes: `packages/thirdweb/src/wallets/in-app/native/helpers/wallet/recoveryCode.ts`
> ✨ 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 adds Discord login option to thirdweb in-app and ecosystem wallets.
### Detailed summary
- Added Discord login option to in-app and ecosystem wallets
- Updated authentication constants and locales
- Implemented Discord login functionality
- Updated wallet images and social login components
> The following files were skipped due to too many changes: `packages/thirdweb/src/react/web/wallets/shared/ConnectWalletSocialOptions.tsx`, `packages/thirdweb/src/react/native/ui/icons/svgs.ts`, `packages/thirdweb/src/wallets/in-app/web/lib/auth/discord.ts`
> ✨ Ask PR-Codex anything about this PR by commenting with `/codex {your question}`
<!-- end pr-codex -->
### TL;DR
This pull request addresses a bug in the `estimateGas` function where a gas value of `0` is now respected instead of being overridden.
### What changed?
- Updated `estimateGas` function to properly handle and respect a gas value of `0`.
- Added a test case to ensure that a gas value of `0` does not throw an error and is correctly serialized.
### How to test?
- Run unit tests to ensure the new test case passes.
### Why make this change?
This change ensures that transactions explicitly set with a gas value of `0` are respected and not overridden, providing more accurate and expected behavior.
---
## 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
The focus of this PR is to update the icon used for editing partners in the partners table component.
### Detailed summary
- Updated icon for editing partners from `Wrench` to `Pencil` in `partners-table.tsx`
> ✨ Ask PR-Codex anything about this PR by commenting with `/codex {your question}`
<!-- end pr-codex -->
<!-- start pr-codex -->
## PR-Codex overview
This PR enhances the `prepareContractCall` function in the `thirdweb` package to allow adding extra call data to transactions.
### Detailed summary
- Added support for extra call data in `prepareContractCall`
- Introduced internal functions to handle extra call data in transactions
- Updated tests to cover extra call data scenarios
> ✨ Ask PR-Codex anything about this PR by commenting with `/codex {your question}`
<!-- end pr-codex -->
## Problem solved
Reverts back to workspace version for `service-utils` package
## 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
The focus of this PR is to update the dependency resolution for `@thirdweb-dev/service-utils` and `@thirdweb-dev/dynamic-contracts`.
### Detailed summary
- Updated `@thirdweb-dev/service-utils` dependency resolution to `workspace:*`
- Removed specific dependencies for `@thirdweb-dev/[email protected]`
- Updated snapshot for `@thirdweb-dev/[email protected]`
> ✨ Ask PR-Codex anything about this PR by commenting with `/codex {your question}`
<!-- end pr-codex -->
### TL;DR
This PR introduces new functionalities and updates aimed at improving partner management within the ecosystem section of the dashboard.
### What changed?
1. **Partner Update Feature**: Added a new form and modal to enable the updating of partner details, including name, domains, bundle IDs, and permissions.
2. **Refactored Domain Validation**: Moved domain validation regex to a constants file for improved code maintainability.
3. **UI Enhancements**: Updated UI components to include an edit button for partner details in the partners' table.
4. **Code Cleanup**: Removed redundant code and improved component structure for better readability.
### How to test?
1. Navigate to the ecosystem section in the dashboard.
2. Select a partner and click the edit button to open the update modal.
3. Update the partner details and save changes. Ensure that the details are updated correctly in the database and UI.
### Why make this change?
This change aims to enhance the user experience by allowing easier management of ecosystem partners directly from the dashboard. It also improves code maintainability and readability by refactoring existing components and validation logic.
---
<!-- start pr-codex -->
---
## PR-Codex overview
This PR updates partner permission handling and refactors form validation in the ecosystem dashboard.
### Detailed summary
- Added `PartnerPermission` type and `isValidPermission` function
- Updated partner object permissions to use `PartnerPermission`
- Refactored form validation using `partnerFormSchema`
- Added `useUpdatePartner` hook for updating partners
- Updated UI components and modals for partner management
> The following files were skipped due to too many changes: `apps/dashboard/src/app/(dashboard)/dashboard/connect/ecosystem/[slug]/(active)/components/server/partners-table.tsx`, `apps/dashboard/src/app/(dashboard)/dashboard/connect/ecosystem/[slug]/(active)/components/client/update-partner-form.client.tsx`
> ✨ Ask PR-Codex anything about this PR by commenting with `/codex {your question}`
<!-- end pr-codex -->
### TL;DR
Improve the precision of the wait function tests by changing the expectation from a simple greater-than-or-equal check to an absolute difference check within a margin of error of 10 milliseconds.
### What changed?
In `wait.test.ts` files located in the `thirdweb/src/react/core/utils/` and `thirdweb/src/utils/promise/` paths, the expectation `expect(elapsedTime).toBeGreaterThanOrEqual(waitTime)` was updated to `expect(Math.abs(elapsedTime - waitTime)).toBeLessThan(10)` to improve test accuracy by accounting for slight timing variations.
### How to test?
Run the test suites located in `thirdweb/src/react/core/utils/wait.test.ts` and `thirdweb/src/utils/promise/wait.test.ts` to ensure that they pass successfully with the updated precision checks.
### Why make this change?
The motivation behind this change is to enhance the reliability and precision of the wait function tests by accommodating minor variations in elapsed time, which can occur due to factors like system load and execution context.
---
## Problem solved
Added chainsaw service description so it can be used for auth
## 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 adds a new service called `chainsaw` to the service-utils package and updates dependencies and configurations related to it.
### Detailed summary
- Added `chainsaw` service definition in `service-utils`
- Updated dependencies and configurations for the `chainsaw` service
- Updated `service-utils` version to `0.4.36` in various files and lock files
> ✨ 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 banner images and gradient styling in the dashboard for a better visual experience.
### Detailed summary
- Deleted `ancient8-banner.jpg` and updated to `ancient8-banner.png` for better quality.
- Changed gradient styling in the header for improved visual appeal.
- Updated imports of banner images in `utils.ts` to match file extensions.
> ✨ Ask PR-Codex anything about this PR by commenting with `/codex {your question}`
<!-- end pr-codex -->
<!-- start pr-codex -->
## PR-Codex overview
This PR focuses on handling the minimum amount in the buy-to-crypto flow.
### Detailed summary
- Updated error handling messages for buy with fiat and crypto flows
- Added functions to set token amount and track editing status
- Improved error messages display for minimum purchase amount
- Implemented functionality to set the minimum amount in the UI
> ✨ Ask PR-Codex anything about this PR by commenting with `/codex {your question}`
<!-- end pr-codex -->
### TL;DR
This PR introduces support for ERC20 tokens in the transaction flow, allowing users to seamlessly interact with contracts that require ERC20 token payments.
### What changed?
1. Added ERC20 token handling in the `useSendTransaction` hook to check balance and prompt users to buy ERC20 if needed.
2. Integrated ERC20 token fields, such as `erc20Value`, into the transaction preparation and cost estimation processes.
3. Updated various contract-writing scripts to include `erc20Value` overrides where necessary.
4. Enhanced the UI in `TxModal` and `BuyScreen` to display and process ERC20 token transactions.
5. Added tests for ERC20 token transactions in the `drop721.test.ts` file.
6. Extended documentation and examples to include ERC20 token use cases in transaction flows.
### How to test?
1. Run the unit tests in the `drop721.test.ts` file to ensure ERC20 transactions are correctly processed.
2. Use the `useSendTransaction` hook in a sample component and attempt transactions with both native and ERC20 tokens.
3. Verify that the ERC20 token purchase prompt appears when balance is insufficient.
### Why make this change?
Adding ERC20 support enhances the flexibility and functionality of the transaction flow, making it easier for users to interact with a wider range of smart contracts that require different types of token payments.
---
<!-- start pr-codex -->
---
## PR-Codex overview
This PR focuses on handling ERC20 transaction values in Pay components.
### Detailed summary
- Added `tokenDecimals` in `types.ts`
- Modified `title` in `PayEmbed.tsx` and `transferBatch.ts`
- Added `overrides` in `transfer.ts`, `transferFrom.ts`, `approve.ts`
- Added `erc20Value` in various transaction files
- Updated `prepare-transaction.ts` with `erc20Value`
- Added `erc20Value` in generated files for different ERC20 transactions
> The following files were skipped due to too many changes: `packages/thirdweb/src/extensions/common/__generated__/IMulticall/write/multicall.ts`, `packages/thirdweb/src/extensions/erc20/__generated__/IMintableERC20/write/mintTo.ts`, `packages/thirdweb/src/extensions/erc721/__generated__/IBurnableERC721/write/burn.ts`, `packages/thirdweb/src/extensions/erc721/__generated__/IStaking721/write/withdraw.ts`, `packages/thirdweb/src/extensions/farcaster/__generated__/IBundler/write/register.ts`, `packages/thirdweb/src/extensions/airdrop/__generated__/Airdrop/write/airdropERC20.ts`, `packages/thirdweb/src/extensions/airdrop/__generated__/Airdrop/write/claimERC1155.ts`, `packages/thirdweb/src/extensions/erc4337/__generated__/IEntryPoint/write/addStake.ts`, `packages/thirdweb/src/extensions/erc721/__generated__/IDelayedReveal/write/reveal.ts`, `packages/thirdweb/src/extensions/erc721/__generated__/IERC721A/write/transferFrom.ts`, `packages/thirdweb/src/extensions/farcaster/__generated__/IKeyGateway/write/addFor.ts`, `packages/thirdweb/src/extensions/marketplace/__generated__/IMarketplace/write/buy.ts`, `packages/thirdweb/src/extensions/airdrop/__generated__/Airdrop/write/airdropERC721.ts`, `packages/thirdweb/src/extensions/airdrop/__generated__/Airdrop/write/setMerkleRoot.ts`, `packages/thirdweb/src/extensions/erc1155/__generated__/IBurnableERC1155/write/burn.ts`, `packages/thirdweb/src/extensions/erc1155/__generated__/IStaking1155/write/withdraw.ts`, `packages/thirdweb/src/extensions/erc20/__generated__/IBurnableERC20/write/burnFrom.ts`, `packages/thirdweb/src/extensions/erc4337/__generated__/IEntryPoint/write/depositTo.ts`, `packages/thirdweb/src/extensions/erc4337/__generated__/IEntryPoint/write/handleOps.ts`, `packages/thirdweb/src/extensions/erc721/__generated__/IClaimableERC721/write/claim.ts`, `packages/thirdweb/src/extensions/erc721/__generated__/IMintableERC721/write/mintTo.ts`, `packages/thirdweb/src/extensions/farcaster/__generated__/IIdGateway/write/register.ts`, `packages/thirdweb/src/extensions/farcaster/__generated__/IIdRegistry/write/recover.ts`, `packages/thirdweb/src/extensions/farcaster/__generated__/IKeyRegistry/write/remove.ts`, `packages/thirdweb/src/extensions/marketplace/__generated__/IOffers/write/makeOffer.ts`, `packages/thirdweb/src/extensions/airdrop/__generated__/Airdrop/write/airdropERC1155.ts`, `packages/thirdweb/src/extensions/erc4337/__generated__/IEntryPoint/write/withdrawTo.ts`, `packages/thirdweb/src/extensions/farcaster/__generated__/IIdRegistry/write/transfer.ts`, `packages/thirdweb/src/extensions/marketplace/__generated__/IMarketplace/write/offer.ts`, `packages/thirdweb/src/extensions/modular/__generated__/ModularCore/write/grantRoles.ts`, `packages/thirdweb/src/extensions/prebuilts/__generated__/DropERC20/write/initialize.ts`, `packages/thirdweb/src/extensions/uniswap/__generated__/ISwapRouter/write/exactInput.ts`, `packages/thirdweb/src/extensions/erc1155/__generated__/IClaimableERC1155/write/claim.ts`, `packages/thirdweb/src/extensions/erc1155/__generated__/IMintableERC1155/write/mintTo.ts`, `packages/thirdweb/src/extensions/erc4337/__generated__/IAccount/write/validateUserOp.ts`, `packages/thirdweb/src/extensions/erc721/__generated__/IDrop/write/setClaimConditions.ts`, `packages/thirdweb/src/extensions/erc721/__generated__/INFTMetadata/write/setTokenURI.ts`, `packages/thirdweb/src/extensions/farcaster/__generated__/IStorageRegistry/write/rent.ts`, `packages/thirdweb/src/extensions/marketplace/__generated__/IOffers/write/acceptOffer.ts`, `packages/thirdweb/src/extensions/marketplace/__generated__/IOffers/write/cancelOffer.ts`, `packages/thirdweb/src/extensions/modular/__generated__/ModularCore/write/revokeRoles.ts`, `packages/thirdweb/src/extensions/prebuilts/__generated__/DropERC721/write/initialize.ts`, `packages/thirdweb/src/extensions/prebuilts/__generated__/TokenERC20/write/initialize.ts`, `packages/thirdweb/src/extensions/uniswap/__generated__/IQuoter/write/quoteExactInput.ts`, `packages/thirdweb/src/extensions/uniswap/__generated__/ISwapRouter/write/exactOutput.ts`, `packages/thirdweb/src/extensions/erc1155/__generated__/INFTMetadata/write/setTokenURI.ts`, `packages/thirdweb/src/extensions/erc20/__generated__/IAirdropERC20/write/airdropERC20.ts`, `packages/thirdweb/src/extensions/erc721/__generated__/IERC721A/write/safeTransferFrom.ts`, `packages/thirdweb/src/extensions/farcaster/__generated__/IIdGateway/write/registerFor.ts`, `packages/thirdweb/src/extensions/farcaster/__generated__/IIdRegistry/write/recoverFor.ts`, `packages/thirdweb/src/extensions/farcaster/__generated__/IKeyRegistry/write/removeFor.ts`, `packages/thirdweb/src/extensions/multicall3/__generated__/IMulticall3/write/aggregate.ts`, `packages/thirdweb/src/extensions/prebuilts/__generated__/DropERC1155/write/initialize.ts`, `packages/thirdweb/src/extensions/prebuilts/__generated__/Marketplace/write/initialize.ts`, `packages/thirdweb/src/extensions/prebuilts/__generated__/TokenERC721/write/initialize.ts`, `packages/thirdweb/src/extensions/thirdweb/__generated__/IRulesEngine/write/deleteRule.ts`, `packages/thirdweb/src/extensions/uniswap/__generated__/IQuoter/write/quoteExactOutput.ts`, `packages/thirdweb/src/extensions/erc1155/__generated__/IERC1155/write/safeTransferFrom.ts`, `packages/thirdweb/src/extensions/erc1155/__generated__/IStaking1155/write/claimRewards.ts`, `packages/thirdweb/src/extensions/erc4337/__generated__/IEntryPoint/write/withdrawStake.ts`, `packages/thirdweb/src/extensions/erc721/__generated__/IERC721A/write/setApprovalForAll.ts`, `packages/thirdweb/src/extensions/farcaster/__generated__/IIdRegistry/write/transferFor.ts`, `packages/thirdweb/src/extensions/modular/__generated__/ModularCore/write/renounceRoles.ts`, `packages/thirdweb/src/extensions/multicall3/__generated__/IMulticall3/write/aggregate3.ts`, `packages/thirdweb/src/extensions/prebuilts/__generated__/TokenERC1155/write/initialize.ts`, `packages/thirdweb/src/extensions/airdrop/__generated__/Airdrop/write/airdropNativeToken.ts`, `packages/thirdweb/src/extensions/common/__generated__/IRoyaltyPayments/write/getRoyalty.ts`, `packages/thirdweb/src/extensions/erc1155/__generated__/IBurnableERC1155/write/burnBatch.ts`, `packages/thirdweb/src/extensions/erc1155/__generated__/IERC1155/write/setApprovalForAll.ts`, `packages/thirdweb/src/extensions/erc20/__generated__/IAirdropERC20Claimable/write/claim.ts`, `packages/thirdweb/src/extensions/erc4337/__generated__/IEntryPoint/write/incrementNonce.ts`, `packages/thirdweb/src/extensions/permissions/__generated__/IPermissions/write/grantRole.ts`, `packages/thirdweb/src/extensions/thirdweb/__generated__/ITWMultichainRegistry/write/add.ts`, `packages/thirdweb/src/extensions/uniswap/__generated__/IUniswapV3Factory/write/setOwner.ts`, `packages/thirdweb/src/extensions/erc20/__generated__/IDropERC20/write/setClaimConditions.ts`, `packages/thirdweb/src/extensions/erc721/__generated__/DropERC721/write/setMaxTotalSupply.ts`, `packages/thirdweb/src/extensions/erc721/__generated__/IAirdropERC721/write/airdropERC721.ts`, `packages/thirdweb/src/extensions/multicall3/__generated__/IMulticall3/write/tryAggregate.ts`, `packages/thirdweb/src/extensions/permissions/__generated__/IPermissions/write/revokeRole.ts`, `packages/thirdweb/src/extensions/erc1155/__generated__/IDrop1155/write/setClaimConditions.ts`, `packages/thirdweb/src/extensions/erc4337/__generated__/IEntryPoint/write/getSenderAddress.ts`, `packages/thirdweb/src/extensions/erc4337/__generated__/IEntryPoint/write/simulateHandleOp.ts`, `packages/thirdweb/src/extensions/erc721/__generated__/DropERC721/write/freezeBatchBaseURI.ts`, `packages/thirdweb/src/extensions/erc721/__generated__/DropERC721/write/updateBatchBaseURI.ts`, `packages/thirdweb/src/extensions/erc721/__generated__/IAirdropERC721Claimable/write/claim.ts`, `packages/thirdweb/src/extensions/erc721/__generated__/INFTStake/write/depositRewardTokens.ts`, `packages/thirdweb/src/extensions/farcaster/__generated__/IStorageRegistry/write/batchRent.ts`, `packages/thirdweb/src/extensions/marketplace/__generated__/IMarketplace/write/acceptOffer.ts`, `packages/thirdweb/src/extensions/modular/__generated__/ModularCore/write/installExtension.ts`, `packages/thirdweb/src/extensions/uniswap/__generated__/ISwapRouter/write/exactInputSingle.ts`, `packages/thirdweb/src/extensions/uniswap/__generated__/IUniswapV3Factory/write/createPool.ts`, `packages/thirdweb/src/extensions/common/__generated__/IRoyalty/write/setDefaultRoyaltyInfo.ts`, `packages/thirdweb/src/extensions/erc1155/__generated__/DropERC1155/write/setMaxTotalSupply.ts`, `packages/thirdweb/src/extensions/erc20/__generated__/ITokenStake/write/depositRewardTokens.ts`, `packages/thirdweb/src/extensions/erc4337/__generated__/IAccountFactory/write/createAccount.ts`, `packages/thirdweb/src/extensions/erc4337/__generated__/IAccountFactory/write/onSignerAdded.ts`, `packages/thirdweb/src/extensions/erc721/__generated__/INFTStake/write/withdrawRewardTokens.ts`, `packages/thirdweb/src/extensions/marketplace/__generated__/IMarketplace/write/closeAuction.ts`, `packages/thirdweb/src/extensions/modular/__generated__/IModularCore/write/installExtension.ts`, `packages/thirdweb/src/extensions/modular/__generated__/ModularCore/write/transferOwnership.ts`, `packages/thirdweb/src/extensions/permissions/__generated__/IPermissions/write/renounceRole.ts`, `packages/thirdweb/src/extensions/thirdweb/__generated__/ITWMultichainRegistry/write/remove.ts`, `packages/thirdweb/src/extensions/uniswap/__generated__/IQuoter/write/quoteExactInputSingle.ts`, `packages/thirdweb/src/extensions/uniswap/__generated__/ISwapRouter/write/exactOutputSingle.ts`, `packages/thirdweb/src/extensions/common/__generated__/IPlatformFee/write/setPlatformFeeInfo.ts`, `packages/thirdweb/src/extensions/common/__generated__/IRoyalty/write/setRoyaltyInfoForToken.ts`, `packages/thirdweb/src/extensions/erc1155/__generated__/DropERC1155/write/freezeBatchBaseURI.ts`, `packages/thirdweb/src/extensions/erc1155/__generated__/DropERC1155/write/updateBatchBaseURI.ts`, `packages/thirdweb/src/extensions/erc1155/__generated__/IAirdropERC1155/write/airdropERC1155.ts`, `packages/thirdweb/src/extensions/erc1155/__generated__/IAirdropERC1155Claimable/write/claim.ts`, `packages/thirdweb/src/extensions/erc1155/__generated__/IERC1155/write/safeBatchTransferFrom.ts`, `packages/thirdweb/src/extensions/erc20/__generated__/ITokenStake/write/withdrawRewardTokens.ts`, `packages/thirdweb/src/extensions/erc4337/__generated__/IEntryPoint/write/simulateValidation.ts`, `packages/thirdweb/src/extensions/marketplace/__generated__/IMarketplace/write/createListing.ts`, `packages/thirdweb/src/extensions/marketplace/__generated__/IMarketplace/write/updateListing.ts`, `packages/thirdweb/src/extensions/modular/__generated__/ModularCore/write/uninstallExtension.ts`, `packages/thirdweb/src/extensions/multicall3/__generated__/IMulticall3/write/aggregate3Value.ts`, `packages/thirdweb/src/extensions/prebuilts/__generated__/OpenEditionERC721/write/initialize.ts`, `packages/thirdweb/src/extensions/uniswap/__generated__/IQuoter/write/quoteExactOutputSingle.ts`, `packages/thirdweb/src/extensions/common/__generated__/IContractMetadata/write/setContractURI.ts`, `packages/thirdweb/src/extensions/erc4337/__generated__/IAccountFactory/write/onSignerRemoved.ts`, `packages/thirdweb/src/extensions/erc4337/__generated__/IEntryPoint/write/handleAggregatedOps.ts`, `packages/thirdweb/src/extensions/erc721/__generated__/IERC721Receiver/write/onERC721Received.ts`, `packages/thirdweb/src/extensions/marketplace/__generated__/IMarketplace/write/setContractURI.ts`, `packages/thirdweb/src/extensions/modular/__generated__/IModularCore/write/uninstallExtension.ts`, `packages/thirdweb/src/extensions/common/__generated__/IRoyaltyPayments/write/setRoyaltyEngine.ts`, `packages/thirdweb/src/extensions/erc721/__generated__/ISharedMetadata/write/setSharedMetadata.ts`, `packages/thirdweb/src/extensions/multicall3/__generated__/IMulticall3/write/blockAndAggregate.ts`, `packages/thirdweb/src/extensions/airdrop/__generated__/Airdrop/write/airdropERC20WithSignature.ts`, `packages/thirdweb/src/extensions/erc1155/__generated__/IEditionStake/write/depositRewardTokens.ts`, `packages/thirdweb/src/extensions/marketplace/__generated__/IDirectListings/write/cancelListing.ts`, `packages/thirdweb/src/extensions/marketplace/__generated__/IDirectListings/write/createListing.ts`, `packages/thirdweb/src/extensions/marketplace/__generated__/IDirectListings/write/updateListing.ts`, `packages/thirdweb/src/extensions/marketplace/__generated__/IEnglishAuctions/write/bidInAuction.ts`, `packages/thirdweb/src/extensions/thirdweb/__generated__/IRulesEngine/write/createRuleThreshold.ts`, `packages/thirdweb/src/extensions/thirdweb/__generated__/IThirdwebContract/write/setContractURI.ts`, `packages/thirdweb/src/extensions/uniswap/__generated__/IUniswapV3Factory/write/enableFeeAmount.ts`, `packages/thirdweb/src/extensions/airdrop/__generated__/Airdrop/write/airdropERC721WithSignature.ts`, `packages/thirdweb/src/extensions/erc1155/__generated__/IERC1155Receiver/write/onERC1155Received.ts`, `packages/thirdweb/src/extensions/erc1155/__generated__/IEditionStake/write/withdrawRewardTokens.ts`, `packages/thirdweb/src/extensions/erc4337/__generated__/IPaymaster/write/validatePaymasterUserOp.ts`, `packages/thirdweb/src/extensions/marketplace/__generated__/IDirectListings/write/buyFromListing.ts`, `packages/thirdweb/src/extensions/marketplace/__generated__/IEnglishAuctions/write/cancelAuction.ts`, `packages/thirdweb/src/extensions/marketplace/__generated__/IEnglishAuctions/write/createAuction.ts`, `packages/thirdweb/src/extensions/airdrop/__generated__/Airdrop/write/airdropERC1155WithSignature.ts`, `packages/thirdweb/src/extensions/common/__generated__/IPrimarySale/write/setPrimarySaleRecipient.ts`, `packages/thirdweb/src/extensions/erc20/__generated__/ISignatureMintERC20/write/mintWithSignature.ts`, `packages/thirdweb/src/extensions/farcaster/__generated__/IIdRegistry/write/changeRecoveryAddress.ts`, `packages/thirdweb/src/extensions/marketplace/__generated__/IMarketplace/write/setPlatformFeeInfo.ts`, `packages/thirdweb/src/extensions/multicall3/__generated__/IMulticall3/write/tryBlockAndAggregate.ts`, `packages/thirdweb/src/extensions/thirdweb/__generated__/IContractPublisher/write/publishContract.ts`, `packages/thirdweb/src/extensions/erc1155/__generated__/DropERC1155/write/setSaleRecipientForToken.ts`, `packages/thirdweb/src/extensions/marketplace/__generated__/IMarketplace/write/cancelDirectListing.ts`, `packages/thirdweb/src/extensions/permissions/__generated__/IPermissionsEnumerable/write/grantRole.ts`, `packages/thirdweb/src/extensions/thirdweb/__generated__/IRulesEngine/write/setRulesEngineOverride.ts`, `packages/thirdweb/src/extensions/erc721/__generated__/ISharedMetadataBatch/write/setSharedMetadata.ts`, `packages/thirdweb/src/extensions/erc721/__generated__/ISignatureMintERC721/write/mintWithSignature.ts`, `packages/thirdweb/src/extensions/modular/__generated__/ModularCore/write/completeOwnershipHandover.ts`, `packages/thirdweb/src/extensions/permissions/__generated__/IPermissionsEnumerable/write/revokeRole.ts`, `packages/thirdweb/src/extensions/thirdweb/__generated__/IContractPublisher/write/unpublishContract.ts`, `packages/thirdweb/src/extensions/erc1155/__generated__/IPackVRFDirect/write/openPackAndClaimRewards.ts`, `packages/thirdweb/src/extensions/farcaster/__generated__/IIdRegistry/write/changeRecoveryAddressFor.ts`, `packages/thirdweb/src/extensions/thirdweb/__generated__/IRulesEngine/write/createRuleMultiplicative.ts`, `packages/thirdweb/src/extensions/erc1155/__generated__/IERC1155Receiver/write/onERC1155BatchReceived.ts`, `packages/thirdweb/src/extensions/erc1155/__generated__/ISignatureMintERC1155/write/mintWithSignature.ts`, `packages/thirdweb/src/extensions/farcaster/__generated__/IIdRegistry/write/transferAndChangeRecovery.ts`, `packages/thirdweb/src/extensions/permissions/__generated__/IPermissionsEnumerable/write/renounceRole.ts`, `packages/thirdweb/src/extensions/erc721/__generated__/ISharedMetadataBatch/write/deleteSharedMetadata.ts`, `packages/thirdweb/src/extensions/marketplace/__generated__/IEnglishAuctions/write/collectAuctionPayout.ts`, `packages/thirdweb/src/extensions/marketplace/__generated__/IEnglishAuctions/write/collectAuctionTokens.ts`, `packages/thirdweb/src/extensions/farcaster/__generated__/IIdRegistry/write/transferAndChangeRecoveryFor.ts`, `packages/thirdweb/src/extensions/marketplace/__generated__/IDirectListings/write/approveBuyerForListing.ts`, `packages/thirdweb/src/extensions/thirdweb/__generated__/IContractPublisher/write/setPublisherProfileUri.ts`, `packages/thirdweb/src/extensions/erc4337/__generated__/IAccountPermissions/write/setPermissionsForSigner.ts`, `packages/thirdweb/src/extensions/common/__generated__/IClaimConditionsSinglePhase/write/setClaimConditions.ts`, `packages/thirdweb/src/extensions/marketplace/__generated__/IDirectListings/write/approveCurrencyForListing.ts`, `packages/thirdweb/src/extensions/thirdweb/__generated__/IContractFactory/write/deployProxyByImplementation.ts`, `packages/thirdweb/src/extensions/erc20/write/sigMint.ts`, `packages/thirdweb/src/react/web/ui/ConnectWallet/screens/Buy/main/useBuyTxStates.ts`, `packages/thirdweb/src/react/web/ui/ConnectWallet/screens/Buy/pay-transactions/BuyTxHistory.tsx`, `packages/thirdweb/src/react/web/ui/ConnectWallet/screens/Buy/pay-transactions/TxDetailsScreen.tsx`, `packages/thirdweb/src/react/web/ui/ConnectWallet/TransactionsScreen.tsx`, `packages/thirdweb/src/react/web/ui/ConnectWallet/screens/Buy/pay-transactions/FiatDetailsScreen.tsx`, `packages/thirdweb/src/extensions/erc20/write/deposit.ts`, `packages/thirdweb/src/utils/extensions/drops/get-claim-params.ts`, `packages/thirdweb/src/react/web/ui/ConnectWallet/screens/Buy/PayTokenIcon.tsx`, `packages/thirdweb/src/react/web/ui/ConnectWallet/screens/Buy/BuyScreen.tsx`, `packages/thirdweb/src/extensions/erc20/write/getApprovalForTransaction.ts`, `apps/playground-web/src/components/pay/transaction-button.tsx`, `packages/thirdweb/src/extensions/erc721/drop721.test.ts`, `packages/thirdweb/src/react/core/hooks/transaction/useSendTransaction.ts`, `packages/thirdweb/src/react/web/hooks/transaction/useSendTransaction.tsx`
> ✨ 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
- [ ] come back tomorrow gives funds now
## 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 the SpinWheel component in the dashboard app to adjust the amount displayed based on the result and improve the success message.
### Detailed summary
- Updated the amount displayed based on the result in `SpinWheel.tsx`
- Improved success message with a more informative and positive message
> ✨ Ask PR-Codex anything about this PR by commenting with `/codex {your question}`
<!-- end pr-codex -->
## Problem solved
Users rate limited when faucet fails to transfer funds e.g. faucet empty
## Changes made
- [ ] Added the mechanism to remove users from the cache when the funding transfer fails (e.g. when the faucet is empty)
## How to test
- [ ] empty the faucet or make the transfer request fail
## 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
The focus of this PR is to add a new function `cacheDeleteKey` to delete a cache key and update its usage in the testnet faucet route.
### Detailed summary
- Added `cacheDeleteKey` function to delete a cache key in `lib/redis`
- Updated the testnet faucet route to use `cacheDeleteKey` for cache management
> ✨ Ask PR-Codex anything about this PR by commenting with `/codex {your question}`
<!-- end pr-codex -->
Fixes#3683
<!-- start pr-codex -->
---
## PR-Codex overview
The focus of this PR is to add an optional 'from' parameter in the `readContract()` function and update default max block wait times to 100 in various files.
### Detailed summary
- Added optional 'from' parameter in `readContract()`
- Updated default max block wait times to 10 in specific files
- Increased default max block wait times to 100 in other files
> ✨ 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 the condition for rendering a form in the `engine-instances-table.tsx` component based on the `instance` status.
### Detailed summary
- Changed the condition for rendering a form based on `instance.status`
- Form now appears for instances with status "paymentFailed" or "active" without `cloudDeployedAt`
> ✨ Ask PR-Codex anything about this PR by commenting with `/codex {your question}`
<!-- end pr-codex -->
This pull request introduces new features and modifications to the transaction history feature within the connect modal UI. Key changes include:
- Addition of a transaction history page accessible from the connect modal's main menu, allowing users to view and manage their transaction history more effectively.
- Refactoring of transaction-related components to enhance code maintainability and readability. Specifically, renaming components related to 'BuyTxHistory' to 'PayTxHistory' to better reflect their functionality.
- Updates to locale files to include new translations for added labels such as 'payTransactions' and 'walletTransactions'.
- Integration of new navigation options within the connect modal, enabling seamless switching between different transaction views, including 'Fiat Transactions' and 'Wallet Transactions'.
- Ensuring that the transaction history page supports multiple languages, with updated English, Spanish, Japanese, and Vietnamese locale files.
- Improvements to UI components to ensure consistent styling and user experience across the transaction history pages.
These enhancements aim to provide users with an improved interface for managing their transaction histories, thereby enhancing overall user experience.
---
<!-- start pr-codex -->
---
## PR-Codex overview
This PR adds a transaction history page to the connect modal UI.
### Detailed summary
- Added transaction history page to connect modal UI
- Renamed "pending-tx" to "transactions"
- Updated text and components related to transactions and fiat transactions
- Reorganized file structure for transaction-related screens and components
> The following files were skipped due to too many changes: `packages/thirdweb/src/react/web/ui/ConnectWallet/TransactionsScreen.tsx`, `packages/thirdweb/src/react/web/ui/ConnectWallet/screens/WalletTransactionHistory.tsx`, `packages/thirdweb/src/react/web/ui/ConnectWallet/screens/Buy/tx-history/BuyTxHistory.tsx`
> ✨ 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 refactor the handling of search parameters in the trending section of the dashboard.
### Detailed summary
- Updated the handling of search parameters in the trending section of the dashboard.
- Reorganized the code to use `searchParams` object for time range, page, and sort by.
- Refactored the `TrendingContractSection` and `TrendingTable` components to utilize `searchParams` object efficiently.
> ✨ 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 a new "Trending" section to the sidebar, updates the pagination component, and modifies search filters for gas usage. Additionally, it refactors the package.json file for thirdweb.
### Detailed summary
- Added "Trending" section to sidebar
- Updated pagination component
- Modified search filters for gas usage
- Refactored package.json for thirdweb
> ✨ Ask PR-Codex anything about this PR by commenting with `/codex {your question}`
<!-- end pr-codex -->
### TL;DR
Adds support for using an ERC20 paymaster in smart accounts. This includes functionality to check and approve ERC20 allowances as needed.
### What changed?
- Introduced support for ERC20 paymasters in smart accounts.
- Added logic to check and approve ERC20 allowances.
- Updated the `defaultTokens` list to include a new token for testing purposes.
### How to test?
1. Ensure that the smart account can interact with ERC20 paymasters.
2. Verify that the account approval for ERC20 paymasters works as expected.
3. Check that the default tokens list reflects the new token and can be utilized appropriately.
### Why make this change?
To enable smart accounts to use ERC20 tokens for paymaster functionalities, enhancing versatility and use-case scenarios for smart accounts.
---
<!-- start pr-codex -->
---
## PR-Codex overview
The focus of this PR is to add support for ERC20 paymaster for smart accounts.
### Detailed summary
- Added ERC20 paymaster support for smart accounts
- Implemented functions for approving ERC20 transactions
- Modified smart account creation to handle ERC20 paymasters
> ✨ 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 various components across different files to allow for dynamic customization of titles in the UI screens.
### Detailed summary
- Added `title` prop to multiple components for dynamic title customization.
- Updated titles in UI screens to use the dynamic `title` prop.
- Enhanced flexibility for customizing display titles in the UI.
> ✨ Ask PR-Codex anything about this PR by commenting with `/codex {your question}`
<!-- end pr-codex -->
## Problem solved
Faucet for EVM every chain. When the faucet is empty we crowdfund faucet sponsors
## Changes made
- [ ] Added faucet UI
- [ ] Added faucet endpoint
- [ ] Added faucet eligibility endpoint
## How to test
- [ ] See video
https://github.com/user-attachments/assets/b4414d63-c4cf-44f9-8824-c7307ad34013
## 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
The focus of this PR is to implement a faucet feature for testnet chains, allowing users to claim testnet funds.
### Detailed summary
- Added "faucet" service type and functionality.
- Implemented faucet-related components and pages.
- Utilized Redis for caching faucet requests.
- Added necessary dependencies for faucet functionality.
- Updated chain metadata generation for faucet feature.
> The following files were skipped due to too many changes: `apps/dashboard/src/app/(dashboard)/(chain)/[chain_id]/faucet/components/SpinWheel.tsx`, `pnpm-lock.yaml`
> ✨ Ask PR-Codex anything about this PR by commenting with `/codex {your question}`
<!-- end pr-codex -->
Corresponding Engine PR: https://github.com/thirdweb-dev/engine/pull/564
<img width="773" alt="image" src="https://github.com/user-attachments/assets/a27098a6-4d6f-4cbb-a2aa-795f50d531ac">
<!-- start pr-codex -->
---
## PR-Codex overview
This PR introduces IP allowlisting feature to the engine configuration.
### Detailed summary
- Added `ipaddr.js` library for IP address validation
- Implemented IP allowlist configuration in the engine settings
- Created hooks for fetching and setting IP allowlist
- Added UI components for managing IP allowlist in the dashboard
> The following files were skipped due to too many changes: `pnpm-lock.yaml`
> ✨ 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 the recipient address feature to PayEmbed and refactors recipient address handling in various components.
### Detailed summary
- Added recipient address to PayEmbed for sending purchased tokens
- Refactored handling of recipient address in different screens and hooks
- Updated logic for onramp and swap processes based on recipient address
> ✨ Ask PR-Codex anything about this PR by commenting with `/codex {your question}`
<!-- end pr-codex -->
### TL;DR
- Added domain data for typed data signatures.
- Updated hooks and utilities to use `account` instead of `signer`.
### What changed?
- Modified `useRegistry.ts`, `hooks.ts`, and `utils.ts` to replace `signer` with `account` for signing transactions.
- Updated `in-app-account.ts` to correctly handle domain data for typed data signatures.
### How to test?
1. Deploy a contract using the dashboard and ensure that `account` is used correctly instead of `signer`.
2. Validate that typed data signatures are correctly generated in the in-app wallet.
### Why make this change?
To improve the accuracy and reliability of in-app wallet typed data signatures by ensuring the correct handling of domain data and consistent use of `account` across the application.
---
<!-- start pr-codex -->
---
## PR-Codex overview
The focus of this PR is to fix in-app wallet typed data signatures and optimize contract-related functions.
### Detailed summary
- Fixed in-app wallet typed data signatures
- Updated contract-related functions for better optimization and clarity
> ✨ Ask PR-Codex anything about this PR by commenting with `/codex {your question}`
<!-- end pr-codex -->
This update introduces new methods for fetching proofs for ERCXX tokens (specifically ERC20, ERC721, and ERC1155). The methods `fetchProofsERC20`, `fetchProofsERC721`, and `fetchProofsERC1155` have been added to the airdrop extension. These methods allow users to retrieve claim Merkle proofs for the specified address and tokens, ensuring that users in the allowlist can claim their airdrop. Additionally, example usage and detailed docstrings have been included to guide developers on how to implement these methods in their projects.
---
<!-- start pr-codex -->
---
## PR-Codex overview
The focus of this PR is to add `fetchProofsERCXX` methods for ERC721, ERC20, and ERC1155 airdrop contracts.
### Detailed summary
- Added `fetchProofsERC721`, `fetchProofsERC20`, and `fetchProofsERC1155` methods
- Updated `claimERC20` to use `fetchProofsERC20`
- Added detailed documentation for each method
- Renamed `fetchProofsrERC20` to `fetchProofsERC20`
> ✨ 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 Vietnamese locale support for the ConnectButton components and updates various language files for the ConnectWallet feature.
### Detailed summary
- Added Vietnamese locale for ConnectButton components
- Updated language files for ConnectWallet screens and wallets with Vietnamese translations
> The following files were skipped due to too many changes: `packages/thirdweb/src/react/web/wallets/local/locale/vi.ts`, `packages/thirdweb/src/react/web/wallets/shared/locale/vi.ts`, `packages/thirdweb/src/react/web/ui/ConnectWallet/locale/vi.ts`
> ✨ 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 add a link to the `MetadataHeader` component that redirects to a specific chain page.
### Detailed summary
- Added `Link` import from "next/link"
- Applied `as={Link}` and `href={`/${chain.chainId}`}` to make the header clickable
- Set `cursor="pointer"` for better user interaction
> ✨ Ask PR-Codex anything about this PR by commenting with `/codex {your question}`
<!-- end pr-codex -->
### TL;DR
Updated the domain validation regex in the AddPartnerForm component to handle new wildcard subdomain cases and made minor formatting fixes.
### What changed?
- Updated the domain validation regex to handle new wildcard subdomain cases.
- Fixed minor formatting issues with array and string declarations.
### How to test?
1. Navigate to the Add Partner form in the dashboard.
2. Test the domain input field with the following cases to ensure proper validation:
- general domains (e.g., example.com)
- wildcard subdomains (e.g., *.example.com)
- nested wildcard subdomains (e.g., *.*.example.com)
### Why make this change?
The changes were necessary to improve the domain validation mechanism by accommodating new wildcard subdomain cases, and to maintain code quality through consistent formatting.
---
<!-- start pr-codex -->
---
## PR-Codex overview
The focus of this PR is to update the `isDomainRegex` pattern in the `add-partner-form.client.tsx` file for improved domain validation.
### Detailed summary
- Updated the `isDomainRegex` pattern for domain validation with additional flexibility and accuracy.
> ✨ Ask PR-Codex anything about this PR by commenting with `/codex {your question}`
<!-- end pr-codex -->
## Problem solved
Adds 2 new optional fields to usage event schema:
* evmRequestParams
* providerIp
Allows a new possible source for the event - `rpcV2`
## Changes made
- [x] service-utils: Update usage tracker schema
## 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 the schema for the usage tracker event in the `service-utils` package to include new fields `evmRequestParams` and `providerIp`.
### Detailed summary
- Added `evmRequestParams` field to the usage event schema
- Added `providerIp` field to the usage event schema
> ✨ Ask PR-Codex anything about this PR by commenting with `/codex {your question}`
<!-- end pr-codex -->
### TL;DR
Updated UI elements and feature list in the create page of the ecosystem section.
### What changed?
- Adjusted padding and positioning of elements for better alignment and appearance.
- Added a new feature item to the list: '30,000 active wallets included*'.
- Included a note regarding additional wallet costs ('$0.02 per additional wallet').
### How to test?
Navigate to the 'Create Ecosystem' page in the dashboard. Verify that the layout changes are correctly applied and the new feature/item is visible with the note on wallet costs.
### Why make this change?
These updates improve the clarity of information provided to users and enhance the overall user experience on the create page of the ecosystem section.
---
<!-- start pr-codex -->
---
## PR-Codex overview
The focus of this PR is to update the ecosystem creation page in the dashboard with additional wallet information.
### Detailed summary
- Added display of 30,000 active wallets included
- Added pricing information for additional wallets
> ✨ 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 add a `type` prop for the `TransactionButton` component in the `thirdweb` package.
### Detailed summary
- Added `type` prop for `TransactionButton`
- Updated `TransactionButton` component to include `type` attribute for button element
> ✨ Ask PR-Codex anything about this PR by commenting with `/codex {your question}`
<!-- end pr-codex -->
Initially this is for interacting with other frameworks like frog.fm
Might be useful elsewhere idk
<!-- start pr-codex -->
---
## PR-Codex overview
This PR focuses on exporting a new utils method `getClaimParams` for thirdweb Drop contracts.
### Detailed summary
- Added export for `getClaimParams` method in `utils/extensions/drops/get-claim-params.js`
- Exported type `GetClaimParamsOptions` for thirdweb Drop contracts
> ✨ Ask PR-Codex anything about this PR by commenting with `/codex {your question}`
<!-- end pr-codex -->
<!-- start pr-codex -->
## PR-Codex overview
This PR enhances file input handling in components by adding support for `.obj` files alongside `.usdz` and `.glb` files.
### Detailed summary
- Updated `FileInput.tsx` to support `.obj` files for 3D models
- Updated `mint-form.tsx` to recognize `.gltf` files and `.obj` files for 3D models
> ✨ 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 add support for Zora1155 in ERC1155 > getOwned.
### Detailed summary
- Added support for Zora1155 contract in ERC1155 > getOwned function
- Updated functions to handle Zora1155 contract methods
- Introduced new functions for Zora1155 contract interaction
> ✨ Ask PR-Codex anything about this PR by commenting with `/codex {your question}`
<!-- end pr-codex -->
Adds new tools pages:
- Wei converter
- Hex converter
- Unix time converter
- Keccak256 converter
<!-- start pr-codex -->
---
## PR-Codex overview
The focus of this PR is to add new tools to the dashboard for converting between different formats like hex, decimal, Unix time, and Keccak-256 hashes.
### Detailed summary
- Added Hex Converter, Wei Converter, Unix Time Converter, and Keccak256 Converter tools
- Created components for each converter tool
- Implemented share functionality for each tool
- Added metadata for each tool
- Included tab navigation for easy access to tools
> The following files were skipped due to too many changes: `apps/dashboard/src/app/(dashboard)/tools/unixtime-converter/components/UnixTimeConverter.tsx`, `apps/dashboard/src/app/(dashboard)/tools/wei-converter/components/WeiConverter.tsx`
> ✨ 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 enhance the dashboard engine functionality by adding a demo engine feature and improving user interactions.
### Detailed summary
- Added a demo engine URL environment variable
- Updated import engine instance button style
- Implemented try demo button functionality with analytics tracking
- Improved error handling for missing environment variables
> ✨ Ask PR-Codex anything about this PR by commenting with `/codex {your question}`
<!-- end pr-codex -->
<!-- start pr-codex -->
## PR-Codex overview
This PR focuses on fixing extension contract detection and enhancing ownership function detection for ERC721 contracts.
### Detailed summary
- Fixed extension contract detection in `detectExtension.ts`
- Added ownership function detection in `getOwnedNFTs.test.ts`
- Updated imports for test clients and contract utils
> ✨ Ask PR-Codex anything about this PR by commenting with `/codex {your question}`
<!-- end pr-codex -->
2024-07-11 19:32:30 +00:00
Jonas DanielsGitHubgithub-actions[bot] <github-actions[bot]@users.noreply.github.com>
### TL;DR
Updated the createTicketAction function to ensure that only specific fields (attachments and json) are retained in formData during ticket creation.
### What changed?
- Introduced a constant KEEP_FIELDS to specify fields that should be retained in formData.
- Added the content field to formData before deleting non-essential fields.
- Removed specific deletion of extraInfo_Problem_Area key.
### How to test?
1. Trigger the createTicketAction function in support component.
2. Verify if only attachments and json fields are present in the formData when a ticket is created.
### Why make this change?
To ensure that only necessary data is sent when creating a ticket, optimizing the data payload and avoiding potential issues with extraneous fields.
---
This PR enhances the ChainPageLayout by adding support for background images for different chains and integrating Mantle chain-specific assets. Key updates include:
- Addition of the `mantle-banner.jpeg` and `mantle-cta.jpeg` images.
- Updates to `add-chain-to-wallet.tsx` and `layout.tsx` to support dynamic background and text color adjustments based on the presence of a background image.
- Modification of the `chainMetaRecord` to include metadata for the Mantle chain (chain ID 5000).
### TL;DR
Enhanced the ChainPageLayout component by adding support for chain-specific background images and integrating Mantle assets.
### What changed?
- New chain-specific background image support
- Integration with Mantle assets
- Updates to relevant components to handle background and text adjustments dynamically.
### How to test?
1. Go to the ChainPageLayout for any chain that has a background image (e.g., Mantle).
2. Verify that the background image is displayed correctly.
3. Check that text color and other UI elements adjust appropriately based on the background image.
4. Ensure that Mantle-specific content is displayed correctly.
### Why make this change?
This enhancement provides a more visually engaging and chain-specific user experience. The integration with Mantle also helps in showcasing specific chains more effectively.
---
<!-- start pr-codex -->
## PR-Codex overview
This PR updates time range handling and contract fetching in the trending feature.
### Detailed summary
- Updated time range handling in `TimeRangeSwitcher`
- Moved `TimeRange` type to `lib/search`
- Refactored contract fetching logic to `fetchTopContracts`
- Added new types and functions related to trending contracts
- Updated imports and removed redundant code in `trending-table`
> The following files were skipped due to too many changes: `apps/dashboard/src/app/trending/components/trending-table.tsx`, `apps/dashboard/src/components/cmd-k-search/index.tsx`
> ✨ 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 enhance the dashboard UI and functionality.
### Detailed summary
- Updated UI components like `Spinner` and `Toggle`
- Improved styling and color schemes
- Added new pages and components for trending contracts
- Refactored search functionality
- Integrated thirdweb client for chain icons
> The following files were skipped due to too many changes: `apps/dashboard/src/app/(dashboard)/(chain)/[chain_id]/page.tsx`, `apps/dashboard/src/@/components/ui/table.tsx`, `apps/dashboard/src/app/trending/components/icons.tsx`, `apps/dashboard/src/app/trending/components/trending-table.tsx`, `pnpm-lock.yaml`
> ✨ Ask PR-Codex anything about this PR by commenting with `/codex {your question}`
<!-- end pr-codex -->
This refactor replaces the usage of individual Unthread environment variables with a single `UNTHREAD_API_KEY`. Additionally, components and forms related to support tickets have been updated to streamline the support request flow. The Chakra UI components have been replaced with Radix UI components for consistency. Unused components have been removed and some components were slightly enhanced for development simplicity.
---
<!-- start pr-codex -->
---
## PR-Codex overview
The focus of this PR is to refactor code in the dashboard app, update dependencies, and improve UI components.
### Detailed summary
- Removed support-related components and pages
- Updated layout and styling in various dashboard components
- Added new products and product-related functions
- Updated dependencies in `package.json` and `pnpm-lock.yaml`
- Refactored form inputs and layouts in support forms
> The following files were skipped due to too many changes: `apps/dashboard/src/components/help/contact-forms/engine/index.tsx`, `apps/dashboard/src/components/help/contact-forms/connect/AffectedAreaInput.tsx`, `apps/dashboard/src/components/help/contact-forms/shared/SupportForm_SelectInput.tsx`, `apps/dashboard/src/components/help/contact-forms/contracts/index.tsx`, `apps/dashboard/src/components/help/contact-forms/connect/index.tsx`, `apps/dashboard/src/@/components/ui/dialog.tsx`, `apps/dashboard/src/app/(dashboard)/support/components/create-ticket.client.tsx`, `apps/dashboard/src/app/(dashboard)/support/components/create-ticket.action.ts`, `apps/dashboard/src/components/help/contact-forms/shared/SupportForm_AttachmentUploader.tsx`, `apps/dashboard/src/app/(dashboard)/support/page.tsx`
> ✨ Ask PR-Codex anything about this PR by commenting with `/codex {your question}`
<!-- end pr-codex -->
<!-- start pr-codex -->
## PR-Codex overview
This PR focuses on updating the `MediaRenderer` component to only render the video poster if it's an image.
### Detailed summary
- Updated `MediaRenderer` to conditionally render video poster based on MIME type
- Improved handling of poster rendering for better compatibility
> ✨ Ask PR-Codex anything about this PR by commenting with `/codex {your question}`
<!-- end pr-codex -->
### TL;DR
This PR removes the `ContextAIBotButton` and `NeedSomeHelp` components from the dashboard source code.
### What changed?
- Deleted `context-ai-button.tsx` and `need-some-help.tsx` files from the help folder.
- Updated `support.tsx` to remove the `NeedSomeHelp` component.
### How to test?
1. Navigate to the support page in the dashboard.
2. Ensure that the `NeedSomeHelp` section is no longer displayed.
3. Check that there are no console errors related to the missing components.
### Why make this change?
These components are no longer needed as part of the dashboard's help system and are being removed to simplify the codebase and reduce unnecessary dependencies.
---
<!-- start pr-codex -->
---
## PR-Codex overview
The focus of this PR is to remove unused help components and restructure the Support page layout.
### Detailed summary
- Deleted `NeedSomeHelp` and `ContextAiButton` components
- Removed unnecessary import statements
- Updated the layout of the Support page to exclude `NeedSomeHelp` component
> ✨ 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 update authentication endpoints and improve error handling in the codebase.
### Detailed summary
- Updated logout endpoint in `General.tsx`
- Changed user authentication endpoint to `/v1/account/me`
- Removed `decodeJWT` function import
- Added `THIRDWEB_API_HOST` environment variable
- Improved error handling in `GET` function in `route.ts`
> ✨ 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 components related to Pay analytics and configuration.
### Detailed summary
- Updated `usePayPurchases`, `usePayVolume`, `usePayNewCustomers`, and `usePayCustomers` hooks
- Refactored `PayUI` component in `dashboard/connect/pay/components/pay-ui.client.tsx`
- Added `getApiKeys` function in `dashboard/connect/pay/page.tsx`
> The following files were skipped due to too many changes: `apps/dashboard/src/app/(dashboard)/dashboard/connect/pay/page.tsx`
> ✨ Ask PR-Codex anything about this PR by commenting with `/codex {your question}`
<!-- end pr-codex -->
<!-- start pr-codex -->
## PR-Codex overview
This PR removes the `checkout` service from `services.ts` and adjusts the `pay` service properties.
### Detailed summary
- Removed `checkout` service
- Adjusted properties of `pay` service
> ✨ 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 refactor authentication and onboarding flows, removing unused code and optimizing user creation and confirmation processes.
### Detailed summary
- Added user creation logic if user does not exist
- Removed `useConfirmEmbeddedWallet` hook
- Refactored onboarding flow and removed unused code
- Optimized handling of account confirmation and email verification
> ✨ 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 add a custom payment embed component for a specific chain in the dashboard.
### Detailed summary
- Added `CustomPayEmbed` component in `pay-embed.client.tsx`
- Utilized `thirdwebClient` and `defineChain` for payment functionality
- Integrated theme handling and payment options for a specific chain
> ✨ 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 fix the search functionality in the Network Selector screen by optimizing chain queries and improving user experience.
### Detailed summary
- Added `useChainsQuery` and `useChainQuery` functions for chain data retrieval
- Improved search functionality by optimizing chain queries and handling loading states
- Updated dependencies and imports for better code organization
> ✨ 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 refactor ecosystem creation and management components in the dashboard.
### Detailed summary
- Refactored ecosystem creation components
- Updated ecosystem status handling
- Improved ecosystem selection functionality
- Reorganized ecosystem layout components
> The following files were skipped due to too many changes: `apps/dashboard/src/app/(dashboard)/dashboard/connect/ecosystem/[slug]/(active)/components/client/ecosystem-header.client.tsx`
> ✨ Ask PR-Codex anything about this PR by commenting with `/codex {your question}`
<!-- end pr-codex -->
### TL;DR
Added a new chain definition for the 'Blast' chain.
### What changed?
- Added a new file `blast.ts` in `chain-definitions`
- Defined the Blast chain with ID 81457, name 'Blast', and native currency 'Ether'.
- Added Blastscan as the block explorer with corresponding URL and API URL.
- Updated `chains.ts` to export the `blast` chain.
### How to test?
1. Verify that the `blast.ts` file exists in the `chain-definitions` directory.
2. Check that the chain ID, name, and native currency are correctly defined.
3. Ensure the block explorer details are accurate.
4. Confirm that `chains.ts` exports the `blast` chain.
### Why make this change?
This change adds support for the Blast chain, which may be required for upcoming features or integrations. Including it ensures that the system can recognize and interact with the Blast blockchain.
---
<!-- start pr-codex -->
---
## PR-Codex overview
This PR adds the `blast` chain preset to `thirdweb` package.
### Detailed summary
- Added `blast` chain definition in `blast.ts`
- Exported `blast` in `chains.ts` for use in `thirdweb` package
> ✨ 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 enhance the user guidance in the ecosystem-partners-section by adding a reminder to generate at least one partner ID for use in the app.
### Detailed summary
- Added a reminder to generate at least one partner ID for app usage.
> ✨ Ask PR-Codex anything about this PR by commenting with `/codex {your question}`
<!-- end pr-codex -->
<!-- start pr-codex -->
## PR-Codex overview
This PR enhances ERC20 functionality and token details display.
### Detailed summary
- Added `transferBatch()` extension to `erc20.ts`
- Updated `TokenDetails` component to include `chainId`
- Improved ERC20 contract handling in `useTxNotifications`
- Updated `TokenBurnButton` and `TokenAirdropButton` components to use V5 contract handling
> The following files were skipped due to too many changes: `apps/dashboard/src/contract-ui/tabs/tokens/components/airdrop-button.tsx`, `apps/dashboard/src/contract-ui/tabs/tokens/components/transfer-button.tsx`, `apps/dashboard/src/contract-ui/tabs/tokens/components/supply.tsx`, `apps/dashboard/src/contract-ui/tabs/tokens/components/airdrop-form.tsx`, `apps/dashboard/src/contract-ui/tabs/tokens/components/transfer-form.tsx`, `apps/dashboard/src/contract-ui/tabs/tokens/components/burn-form.tsx`
> ✨ Ask PR-Codex anything about this PR by commenting with `/codex {your question}`
<!-- end pr-codex -->
<!-- start pr-codex -->
## PR-Codex overview
This PR focuses on enhancing JWT utils, updating API host paths, and optimizing user authentication handling.
### Detailed summary
- Export JWT utils, fix naming of `decodeJWT`
- Update API host paths to use relative paths
- Optimize user authentication handling in various components
> The following files were skipped due to too many changes: `apps/dashboard/src/app/(dashboard)/dashboard/connect/ecosystem/[slug]/(active)/hooks/use-delete-partner.ts`, `apps/dashboard/src/components/app-layouts/app.tsx`, `apps/dashboard/src/components/buttons/TransactionButton.tsx`, `apps/dashboard/src/pages/dashboard/settings/notifications.tsx`, `apps/dashboard/src/components/engine/overview/transaction-timeline.tsx`, `apps/dashboard/src/pages/dashboard/settings/devices.tsx`, `apps/dashboard/src/app/(dashboard)/dashboard/connect/ecosystem/[slug]/(active)/hooks/use-add-partner.ts`, `apps/dashboard/src/app/(dashboard)/dashboard/connect/ecosystem/[slug]/(active)/hooks/use-update-ecosystem.ts`, `apps/dashboard/src/app/(dashboard)/dashboard/connect/pay/page.tsx`, `apps/dashboard/src/pages/dashboard/engine/index.tsx`, `apps/dashboard/src/pages/dashboard/settings/billing.tsx`, `apps/dashboard/src/components/engine/engine-instances-table.tsx`, `apps/dashboard/src/pages/dashboard/settings/usage.tsx`, `apps/dashboard/src/pages/dashboard/settings/gas-credits.tsx`, `apps/dashboard/src/pages/dashboard/settings/api-keys/index.tsx`, `apps/dashboard/src/pages/api/server-proxy/api/[...paths].tsx`, `apps/dashboard/src/pages/dashboard/connect/analytics.tsx`, `apps/dashboard/src/components/storage/your-files.tsx`, `apps/dashboard/src/pages/api/server-proxy/pay/[...paths].tsx`, `apps/dashboard/src/components/engine/engine-list.tsx`, `apps/dashboard/src/components/pay/PayAnalytics/hooks/usePayVolume.ts`, `apps/dashboard/src/components/pay/PayAnalytics/hooks/usePayNewCustomers.ts`, `apps/dashboard/src/components/pay/PayAnalytics/hooks/usePayPurchases.ts`, `apps/dashboard/src/pages/dashboard/connect/in-app-wallets.tsx`, `apps/dashboard/src/middleware.ts`, `apps/dashboard/src/components/pay/PayAnalytics/hooks/usePayCustomers.ts`, `apps/dashboard/src/pages/dashboard/connect/account-abstraction.tsx`, `apps/dashboard/src/app/login/page.tsx`, `apps/dashboard/src/app/components/ThirdwebMiniLogo.tsx`, `apps/dashboard/src/app/api/auth/ensure-login/route.ts`, `apps/dashboard/src/app/login/auth-actions.ts`, `apps/dashboard/src/components/buttons/MismatchButton.tsx`, `apps/dashboard/src/@3rdweb-sdk/react/hooks/useLoggedInUser.ts`, `apps/dashboard/src/@3rdweb-sdk/react/components/connect-wallet/index.tsx`, `apps/dashboard/src/@3rdweb-sdk/react/hooks/useApi.ts`, `apps/dashboard/src/@3rdweb-sdk/react/hooks/useEngine.ts`
> ✨ Ask PR-Codex anything about this PR by commenting with `/codex {your question}`
<!-- end pr-codex -->
This PR introduces the ability to add NFTs to the connect modal in the thirdweb package. By using the `supportedNFTs` configuration, users can customize which NFTs are shown in the 'View Funds' section within the details modal. This update includes modifications to several TypeScript files to support the new functionality, adjustments in the UI components to handle NFT displays, and updates to hooks and utility functions to fetch and display owned NFTs.
---
<!-- start pr-codex -->
---
## PR-Codex overview
The focus of this PR is to add support for NFTs in the connect modal and customize the NFTs shown in the "View Funds" screen.
### Detailed summary
- Added support for NFTs in the connect modal with `supportedNFTs`
- Customized NFTs shown in the "View Funds" screen with `supportedNFTs`
- Updated components and types to handle NFTs
- Added NFT customization examples in documentation
> The following files were skipped due to too many changes: `packages/thirdweb/src/react/web/ui/ConnectWallet/screens/ViewFunds.tsx`, `packages/thirdweb/src/react/web/ui/ConnectWallet/Details.tsx`, `packages/thirdweb/src/react/web/ui/ConnectWallet/screens/ViewNFTs.tsx`
> ✨ Ask PR-Codex anything about this PR by commenting with `/codex {your question}`
<!-- end pr-codex -->
<!-- start pr-codex -->
## PR-Codex overview
This PR focuses on fixing Transaction Button callbacks not being called when a transaction is executed in the Pay Modal.
### Detailed summary
- Added `rejectTx` parameter with reason in `useSendTransaction.ts`
- Added `resolveTx` parameter in `useSendTransaction.ts`
- Updated `useSendTransaction` in `useSendTransaction.tsx` to handle `rejectTx` and `resolveTx`
- Added `onTxSent` callback in `TxModal` and `ExecutingTxScreen` to handle transaction data
> ✨ Ask PR-Codex anything about this PR by commenting with `/codex {your question}`
<!-- end pr-codex -->
Introducing a patch in the `thirdweb` library to address wallet disconnect events. The main changes involve making the `onDisconnect` function asynchronous and ensuring that it correctly emits disconnect events. Affected files include `coinbaseWebSDK.ts` and `index.ts` in the `thirdweb/src/wallets` directory.
---
<!-- start pr-codex -->
---
## PR-Codex overview
This PR focuses on fixing wallet disconnect events not being emitted in the `thirdweb` package.
### Detailed summary
- Added `async` keyword to `onDisconnect` function in `injected/index.ts` and `coinbaseWebSDK.ts`
- Replaced `disconnect` with `onDisconnect` in `onConnect` functions in both files
> ✨ Ask PR-Codex anything about this PR by commenting with `/codex {your question}`
<!-- end pr-codex -->
2024-07-05 01:30:32 +00:00
Jonas DanielsGitHubgithub-actions[bot] <github-actions[bot]@users.noreply.github.com>
<!-- start pr-codex -->
## PR-Codex overview
This PR enhances the `siwe_auth` functionality for better user authentication and access control.
### Detailed summary
- Renamed `ConnectWallet` component to `ConnectButton`
- Updated `useExtensionContractInfo` to use `useActiveAccount`
- Replaced `useApiAuthToken` with `useAccessToken` in multiple files
- Improved `useSiweAuth` with additional features and mutations
- Updated components to use `useAccessToken` for authentication
- Refactored `useLoggedInUser` to fetch user data efficiently
> The following files were skipped due to too many changes: `apps/dashboard/src/@3rdweb-sdk/react/hooks/useApi.ts`, `apps/dashboard/src/@3rdweb-sdk/react/components/connect-wallet/index.tsx`, `apps/dashboard/src/@3rdweb-sdk/react/hooks/useEngine.ts`
> ✨ 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 the `sizes`, `alt`, `fill`, and `unoptimized` attributes to the image in `ecosystem-header.client.tsx`.
### Detailed summary
- Added `sizes="100px"` attribute to the image
- Added `alt={ecosystem.name}` attribute
- Added `fill` attribute
- Added `unoptimized` attribute
> ✨ Ask PR-Codex anything about this PR by commenting with `/codex {your question}`
<!-- end pr-codex -->
FIXES: DASH-58
<!-- start pr-codex -->
---
## PR-Codex overview
This PR focuses on fixing the `ethers5` adapter's `populateTransaction` method for `sendTransaction`.
### Detailed summary
- Updated `populateTransaction` method in `ethers5.ts` to fix `sendTransaction` functionality
- Adjusted `nonce` default value from -1 to 0 for better handling
> ✨ 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 focuses on adding support for Blockscout v2 contract verification.
### Detailed summary
- Added `ExplorerType` enum for different explorer types
- Modified contract verifier to handle Blockscout v2 verification
- Updated verification functions to support different explorer types
> ✨ Ask PR-Codex anything about this PR by commenting with `/codex {your question}`
<!-- end pr-codex -->
### TL;DR
Replaced `process.env.NEXT_PUBLIC_THIRDWEB_API_HOST` with `THIRDWEB_API_HOST` constant for ecosystem wallet-related fetch calls.
### What changed?
1. Updated import statements to bring in the `THIRDWEB_API_HOST` constant.
2. Replaced instances of `${process.env.NEXT_PUBLIC_THIRDWEB_API_HOST}` with `${THIRDWEB_API_HOST}` in ecosystem wallet-related fetch calls.
3. Updated links in the main ecosystem page for better navigation.
### How to test?
1. Ensure all ecosystem wallet functionality (fetching list, creating, etc.) still works without errors.
2. Verify that the navigation links on the main ecosystem page point to the correct URLs.
### Why make this change?
To replace the use of environment variables with constants for better code maintainability and readability.
---
## 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
The focus of this PR is to update the ecosystem wallet integration by replacing the `integratorId` parameter with `partnerId`.
### Detailed summary
- Replaced `integratorId` parameter with `partnerId` for connecting to a restricted ecosystem wallet with designated partner ID.
- Updated the code comments to reflect the change in parameter name.
> ✨ Ask PR-Codex anything about this PR by commenting with `/codex {your question}`
<!-- end pr-codex -->
### TL;DR
Rewrite `useAddress` function with `useActiveAccount` function across various components to streamline account state handling. Replace `useChainId` with `useActiveWalletChain` to manage chain IDs more accurately. Update various other functions to align with the `thirdweb/react` package changes.
### What changed?
1. Replaced `useAddress` with `useActiveAccount` in multiple components.
2. Replaced `useChainId` with `useActiveWalletChain` in multiple components.
3. Updated hook imports and usages to align with the `thirdweb/react` package updates.
4. Revisited and updated certain functionalities, including wallet connections, contract interactions, and UI updates for better efficiency.
### How to test?
1. Check if the `useActiveAccount` function accurately reflects the current active account state across different components.
2. Verify the `useActiveWalletChain` function is managing and reflecting the chain ID appropriately.
3. Test various functionalities including wallet connections and contract interactions to ensure they are working as expected after the hook changes.
### Why make this change?
To streamline account and chain state handling, leveraging the latest hooks from the `thirdweb/react` package for better modernity and efficiency in code maintenance and functionality.
---
<!-- start pr-codex -->
---
## PR-Codex overview
This PR focuses on improving loading performance for chains and updating to useActiveAccount instead of useAddress.
### Detailed summary
- Improved loading performance for chains
- Replaced `useAddress` with `useActiveAccount` in multiple components
- Updated `fetchAuthToken` function to remove promises from the map when done
> The following files were skipped due to too many changes: `apps/dashboard/src/pages/dashboard/settings/billing.tsx`, `apps/dashboard/src/contract-ui/tabs/tokens/components/burn-button.tsx`, `apps/dashboard/src/contract-ui/tabs/proposals/page.tsx`, `apps/dashboard/src/core-ui/nft-drawer/useNftDrawerTabs.tsx`, `apps/dashboard/src/contract-ui/tabs/tokens/components/transfer-button.tsx`, `apps/dashboard/src/contract-ui/tabs/tokens/components/burn-form.tsx`, `apps/dashboard/src/contract-ui/tabs/claim-conditions/components/claim-conditions-form/index.tsx`, `apps/dashboard/src/contract-ui/tabs/settings/components/royalties.tsx`, `packages/thirdweb/src/react/web/ui/components/ChainName.tsx`, `apps/dashboard/src/contract-ui/components/solidity-inputs/address-input.tsx`, `apps/dashboard/src/components/engine/contract-subscription/contract-subscriptions-table.tsx`, `apps/dashboard/src/contract-ui/tabs/listings/components/listing-drawer.tsx`, `apps/dashboard/src/contract-ui/tabs/tokens/components/airdrop-button.tsx`, `apps/dashboard/src/pages/api/moralis/balances.ts`, `apps/dashboard/src/contract-ui/tabs/tokens/components/mint-form.tsx`, `apps/dashboard/src/contract-ui/tabs/tokens/components/airdrop-form.tsx`, `apps/dashboard/src/components/contract-components/contract-deploy-form/index.tsx`, `apps/dashboard/src/contract-ui/tabs/shared-components/listing-drawer.tsx`, `apps/dashboard/src/contract-ui/tabs/settings/components/primary-sale.tsx`, `apps/dashboard/src/contract-ui/tabs/account-permissions/components/account-signer.tsx`, `apps/dashboard/src/pages/profile/[profileAddress].tsx`, `apps/dashboard/src/contract-ui/tabs/nfts/components/claim-form.tsx`, `apps/dashboard/src/app/(dashboard)/(chain)/[chain_id]/layout.tsx`, `apps/dashboard/src/components/onboarding/Steps.tsx`, `apps/dashboard/src/contract-ui/tabs/shared-components/list-button.tsx`, `apps/dashboard/src/contract-ui/components/primary-dashboard-button.tsx`, `packages/thirdweb/src/react/native/ui/components/ChainIcon.tsx`, `apps/dashboard/src/@3rdweb-sdk/react/hooks/useEngine.ts`, `apps/dashboard/src/contract-ui/tabs/nfts/components/mint-supply-tab.tsx`, `apps/dashboard/src/contract-ui/tabs/split/page.tsx`, `apps/dashboard/src/contract-ui/tabs/nfts/components/airdrop-tab.tsx`, `packages/thirdweb/src/react/web/ui/components/TokenIcon.tsx`, `apps/dashboard/src/contract-ui/tabs/nfts/components/claim-tab.tsx`, `packages/thirdweb/src/react/web/ui/components/token/TokenSymbol.tsx`, `apps/dashboard/src/pages/dashboard/contracts/deploy.tsx`, `apps/dashboard/src/components/contract-components/published-contract/index.tsx`, `apps/dashboard/src/contract-ui/tabs/english-auctions/components/table.tsx`, `apps/dashboard/src/pages/dashboard/contracts/publish.tsx`, `apps/dashboard/src/components/contract-components/contract-publish-form/index.tsx`, `apps/dashboard/src/app/(dashboard)/providers.tsx`, `apps/dashboard/src/components/engine/engine-instances-table.tsx`, `packages/thirdweb/src/react/web/ui/ConnectWallet/screens/Buy/swap/BuyTokenInput.tsx`, `packages/thirdweb/src/react/web/ui/ConnectWallet/screens/Buy/tx-history/TokenInfoRow.tsx`, `apps/dashboard/src/contract-ui/tabs/direct-listings/components/table.tsx`, `apps/dashboard/src/components/contract-tabs/code/ContractCode.tsx`, `apps/dashboard/src/components/cmd-k-search/index.tsx`, `apps/dashboard/src/contract-ui/tabs/nfts/components/mint-form.tsx`, `packages/thirdweb/src/react/native/ui/connect/SendScreen.tsx`, `apps/dashboard/src/contract-ui/tabs/settings/components/metadata.tsx`, `packages/thirdweb/src/react/web/ui/ConnectWallet/screens/Buy/swap/ConfirmationScreen.tsx`, `apps/dashboard/src/contract-ui/tabs/code/components/code-overview.tsx`, `apps/dashboard/src/@3rdweb-sdk/react/hooks/useRegistry.ts`, `apps/dashboard/src/contract-ui/tabs/settings/components/platform-fees.tsx`, `packages/thirdweb/src/chains/utils.ts`, `packages/thirdweb/src/react/web/ui/ConnectWallet/screens/Buy/tx-history/BuyTxHistory.tsx`, `packages/thirdweb/src/react/native/ui/connect/ConnectedModal.tsx`, `apps/dashboard/src/pages/dashboard/index.tsx`, `packages/thirdweb/src/react/web/ui/ConnectWallet/screens/Buy/swap/PayWithCrypto.tsx`, `packages/thirdweb/src/react/web/ui/ConnectWallet/screens/Buy/fiat/FiatTxDetailsTable.tsx`, `apps/dashboard/src/contract-ui/tabs/overview/components/MarketplaceDetails.tsx`, `apps/dashboard/src/components/engine/overview/backend-wallets-table.tsx`, `packages/thirdweb/src/react/web/ui/ConnectWallet/screens/TokenSelector.tsx`, `apps/dashboard/src/@3rdweb-sdk/react/hooks/useVote.ts`, `packages/thirdweb/src/react/web/ui/ConnectWallet/screens/Buy/BuyScreen.tsx`, `apps/dashboard/src/components/ipfs-upload/dropzone.tsx`, `apps/dashboard/src/components/app-layouts/app.tsx`, `apps/dashboard/src/components/contract-components/import-contract/modal.tsx`, `apps/dashboard/src/app/(dashboard)/(chain)/[chain_id]/components/client/add-chain-to-wallet.tsx`, `apps/dashboard/src/components/wallets/PosthogIdentifier.tsx`, `apps/dashboard/src/@3rdweb-sdk/react/hooks/useContractRoles.ts`, `apps/dashboard/src/components/onboarding/index.tsx`, `packages/thirdweb/src/react/web/ui/ConnectWallet/Details.tsx`, `apps/dashboard/src/@3rdweb-sdk/react/hooks/useLoggedInUser.ts`, `apps/dashboard/src/components/selects/CustomChainRenderer.tsx`, `apps/dashboard/src/pages/cli/login.tsx`, `packages/thirdweb/src/react/web/ui/ConnectWallet/screens/Buy/tx-history/SwapDetailsScreen.tsx`, `packages/thirdweb/src/react/web/ui/ConnectWallet/screens/Buy/fiat/FiatSteps.tsx`, `apps/dashboard/src/components/app-layouts/providers.tsx`, `apps/dashboard/src/components/buttons/TransactionButton.tsx`, `apps/dashboard/src/components/contract-components/hooks.ts`, `packages/thirdweb/src/react/core/hooks/others/useChainQuery.ts`, `apps/dashboard/src/components/buttons/MismatchButton.tsx`, `apps/dashboard/src/components/selects/NetworkSelectorButton.tsx`, `apps/dashboard/src/components/app-layouts/provider-setup.tsx`, `apps/dashboard/src/@3rdweb-sdk/react/components/connect-wallet/index.tsx`, `packages/thirdweb/src/react/web/ui/ConnectWallet/NetworkSelector.tsx`
> ✨ Ask PR-Codex anything about this PR by commenting with `/codex {your question}`
<!-- end pr-codex -->
<!-- start pr-codex -->
## PR-Codex overview
This PR introduces new error classes, updates routing, adds UI components, and refactors styles in the dashboard app.
### Detailed summary
- Added `FetchError` class for errors in API fetch requests
- Updated routing for ecosystem permissions
- Added new UI components for alerts, dropdown menus, and tabs
- Refactored global CSS styles for colors and backgrounds
- Updated ecosystem and partner types
- Refactored layout and input components
- Added hooks for fetching partners and ecosystem status
- Added pages for payment failure and ecosystem creation status
- Updated user authentication hook for better handling of connection status
> The following files were skipped due to too many changes: `apps/dashboard/src/@3rdweb-sdk/react/hooks/useLoggedInUser.ts`, `apps/dashboard/src/app/(dashboard)/dashboard/connect/ecosystem/[slug]/(active)/hooks/use-ecosystem.ts`, `apps/dashboard/src/app/(dashboard)/dashboard/connect/ecosystem/hooks/use-ecosystem-list.ts`, `apps/dashboard/src/app/components/Header/DashboardHeader.tsx`, `apps/dashboard/src/app/(dashboard)/dashboard/connect/ecosystem/[slug]/(active)/layout.tsx`, `apps/dashboard/src/app/(dashboard)/dashboard/components/sidebar/sidebar.client.tsx`, `apps/dashboard/src/@/components/ui/form.tsx`, `apps/dashboard/src/@/components/ui/ConfirmationDialog.tsx`, `apps/dashboard/src/app/components/DashboardFooter.tsx`, `apps/dashboard/src/app/(dashboard)/dashboard/connect/ecosystem/[slug]/(active)/hooks/use-delete-partner.ts`, `apps/dashboard/src/@/components/ui/image-upload.tsx`, `apps/dashboard/src/app/(dashboard)/dashboard/connect/ecosystem/[slug]/(active)/hooks/use-update-ecosystem.ts`, `apps/dashboard/src/app/(dashboard)/dashboard/connect/ecosystem/create/page.tsx`, `apps/dashboard/src/app/(dashboard)/(chain)/chainlist/components/server/chainlist-card.tsx`, `apps/dashboard/src/app/(dashboard)/dashboard/connect/ecosystem/create/hooks/use-create-ecosystem.ts`, `apps/dashboard/src/@/components/ui/radio-group.tsx`, `apps/dashboard/src/app/(dashboard)/dashboard/connect/ecosystem/[slug]/(active)/hooks/use-add-partner.ts`, `apps/dashboard/src/app/(dashboard)/(chain)/chainlist/components/client/filters.tsx`, `apps/dashboard/src/app/(dashboard)/dashboard/connect/ecosystem/[slug]/(active)/components/client/integration-permissions-toggle.client.tsx`, `apps/dashboard/src/app/(dashboard)/dashboard/connect/ecosystem/[slug]/(active)/components/client/ecosystem-header.client.tsx`, `apps/dashboard/src/app/(dashboard)/dashboard/connect/ecosystem/page.tsx`, `apps/dashboard/src/app/(dashboard)/dashboard/connect/ecosystem/[slug]/(active)/components/server/partners-table.tsx`, `apps/dashboard/src/@/components/ui/alert-dialog.tsx`, `apps/dashboard/src/app/(dashboard)/dashboard/connect/ecosystem/create/components/client/create-ecosystem-form.client.tsx`, `apps/dashboard/src/app/(dashboard)/dashboard/connect/ecosystem/[slug]/(active)/components/client/add-partner-form.client.tsx`, `apps/dashboard/src/@/components/ui/dropdown-menu.tsx`, `pnpm-lock.yaml`
> ✨ Ask PR-Codex anything about this PR by commenting with `/codex {your question}`
<!-- end pr-codex -->
<!-- start pr-codex -->
## PR-Codex overview
This PR focuses on displaying ecosystem wallet branding in a wide modal layout.
### Detailed summary
- Display ecosystem wallet branding in wide modal layout
- Updated `EcosystemWalletFormUI.tsx` to show wallet header in all layouts
> ✨ Ask PR-Codex anything about this PR by commenting with `/codex {your question}`
<!-- end pr-codex -->
<!-- start pr-codex -->
## PR-Codex overview
This PR focuses on fixing issues related to the inApp wallet connection flow in the Compact size Connect UI.
### Detailed summary
- Fixed broken inApp wallet connection flow
- Added missing back button in inApp wallet connection flow
- Updated handling of going back to main screen in wallet UI components
> ✨ Ask PR-Codex anything about this PR by commenting with `/codex {your question}`
<!-- end pr-codex -->
## Problem solved
Use "http://" if localhost domain used for thirdweb Pay
<!-- start pr-codex -->
---
## PR-Codex overview
This PR adds support for using localhost as a domain override option for the Pay service.
### Detailed summary
- Added support for localhost as a domain override option for the Pay service in `definitions.ts`
- Updated all endpoint URLs to use the `getPayBaseUrl()` function instead of directly fetching the domain from `getThirdwebDomains().pay`
> ✨ Ask PR-Codex anything about this PR by commenting with `/codex {your question}`
<!-- end pr-codex -->
### TL;DR
Corrected the import handling for CoinbaseWalletSDK in the coinbaseWebSDK.ts file.
### What changed?
The import statement for CoinbaseWalletSDK was modified to handle cases where the import does not return a default function directly.
### How to test?
- Verify the Coinbase wallet integration in the application.
- Ensure that different environments (e.g., development, production) can import and utilize the CoinbaseWalletSDK without errors.
### Why make this change?
This change ensures that the CoinbaseWalletSDK import is handled correctly, thereby preventing potential import errors that could occur in various environments.
---
<!-- start pr-codex -->
---
## PR-Codex overview
This PR fixes coinbase wallet connections on Vite by addressing import errors related to `CoinbaseWalletSDK`.
### Detailed summary
- Fixed import error for `CoinbaseWalletSDK` on Vite
- Added workaround for Vite dev import issues
- Ensured proper initialization of `CoinbaseWalletSDK` to connect coinbase wallet
> ✨ 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 update the AnnouncementBanner component with a new link and label for the Onchain Olympics event, along with revised text content.
### Detailed summary
- Updated link `href` to "https://onchainolympics.com"
- Updated `label` to "onchain-olympics"
- Revised text content to promote the Onchain Olympics event and NFT minting.
> ✨ 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 the link in the sign-in page to direct users to the new "overview" section instead of the main sign-in page.
### Detailed summary
- Updated the link `href` in the sign-in page to navigate to the "overview" section instead of the main sign-in page.
> ✨ Ask PR-Codex anything about this PR by commenting with `/codex {your question}`
<!-- end pr-codex -->
## Problem solved
Recommended wallets were being compared for object equality when sorting, which caused confusion when using inline `createWallet` to set the recommended wallets. This PR updates sorting to compare the recommended wallets by ID (installed providers already work this way)
This pull request updates package.json dependencies to specific versions across multiple packages, moving from using caret (^) to specific version numbers for consistency and to prevent unwanted updates. Additionally, it includes changes to various TypeScript files, primarily adding the ESLint directive `@typescript-eslint/no-unused-vars` to suppress warnings for unused variables.
---
<!-- start pr-codex -->
---
## PR-Codex overview
This PR updates dependencies, adds styled components, and disables eslint for unused vars in various React components.
### Detailed summary
- Updated dependencies in multiple package.json files
- Added styled components for DialogContent, Overlay, DropContainer, QRPlaceholder, and more
- Disabled eslint for unused vars in React components
- Updated next.config.mjs in playground-web
- Updated pnpm-workspace.yaml
- Added eslint and styled components in wallets package.json
- Updated dependencies in wallet-ui package.json
> The following files were skipped due to too many changes: `apps/playground-web/src/components/blockchain-api/write-contract-extension.tsx`, `legacy_packages/react/src/wallet/ConnectWallet/NetworkSelector.tsx`, `apps/playground-web/package.json`, `legacy_packages/react/package.json`, `apps/playground-web/src/components/blockchain-api/write-contract-raw.tsx`, `package.json`, `apps/dashboard/package.json`, `pnpm-lock.yaml`
> ✨ Ask PR-Codex anything about this PR by commenting with `/codex {your question}`
<!-- end pr-codex -->
This pull request updates the function names and constants used in the deploy-modular-core.test.ts file. Specific changes include:
- Replacing `ADDRESS_ZERO` with `ZERO_ADDRESS` to align with existing codebase conventions.
- Changing `sendTransaction` to `sendAndConfirmTransaction` to include transaction confirmation within the test cases.
### TL;DR
Updated function names and constants in the deploy-modular-core.test.ts for better alignment with the codebase.
### What changed?
- Replaced `ADDRESS_ZERO` with `ZERO_ADDRESS`.
- Replaced `sendTransaction` with `sendAndConfirmTransaction`.
### How to test?
Run the updated tests in deploy-modular-core.test.ts to ensure all changes work as expected.
### Why make this change?
These changes improve the code readability and follow naming conventions already established in the codebase. By including transaction confirmation, the tests are more robust and reliable.
---
<!-- start pr-codex -->
## PR-Codex overview
This PR updates various dependencies across different packages to their latest versions.
### Detailed summary
- Updated `webpack` to `5.92.1`
- Updated `@types/node` to `20.14.9`
- Updated `@microsoft/api-documenter` to `^7.25.4`
- Updated `abitype` to `1.0.5`
- Updated `@babel/preset-react` to `^7.24.7`
- Updated `eslint-config-turbo` to `2.0.6`
- Updated `@typescript-eslint/eslint-plugin` to `7.14.1`
- Updated `viem` to `2.16.4`
- Updated various other dependencies across packages
> The following files were skipped due to too many changes: `apps/dashboard/package.json`, `packages/thirdweb/package.json`, `pnpm-lock.yaml`
> ✨ 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 a new `unpin` function to `thirdweb` package for unpinning files from IPFS.
### Detailed summary
- Added `unpin` function to unpin files from IPFS in `thirdweb` package
- Defined `UnpinOptions` type for specifying client and CID
- Implemented unpin logic with error handling and authorization check
> ✨ Ask PR-Codex anything about this PR by commenting with `/codex {your question}`
<!-- end pr-codex -->
<!-- start pr-codex -->
## PR-Codex overview
This PR focuses on adding Thirdweb Wallet UI to the project, configuring Next.js, Tailwind CSS, and PostCSS, setting up Biome, and defining TypeScript settings.
### Detailed summary
- Added Thirdweb Wallet UI
- Configured Next.js, Tailwind CSS, and PostCSS
- Set up Biome configuration
- Defined TypeScript settings for Wallet UI
- Added global CSS styles for the app
- Updated dependencies and scripts in package.json
> ✨ 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 add a `CopyTextButton` component with copy functionality and icon positioning to enable copying text in various components.
### Detailed summary
- Added `CopyTextButton` component for copying text with icon positioning
- Implemented `CopyTextButton` in multiple files for copying chain IDs and addresses
- Updated components to include the new `CopyTextButton` for better user experience
> ✨ Ask PR-Codex anything about this PR by commenting with `/codex {your question}`
<!-- end pr-codex -->
### TL;DR
Corrected stylesheet imports for `swagger-ui.css` in the Engine Explorer component and added the Toaster component import in the _app.tsx.
### What changed?
- Added missing `swagger-ui.css` import in `engine-explorer.tsx`
- Removed duplicate `swagger-ui.css` import from `_app.tsx`
- Ensured Toaster component import in `_app.tsx`
### How to test?
- Verify UI for the Engine Explorer relies on the correct styles
- Ensure the Toaster component renders correctly without issues
### Why make this change?
To ensure the correct CSS styles are applied and to improve the maintainability of the import statements.
---
<!-- start pr-codex -->
---
## PR-Codex overview
This PR adds `swagger-ui.css` to `engine-explorer.tsx` and removes it from `_app.tsx`.
### Detailed summary
- Added `swagger-ui.css` import to `engine-explorer.tsx`
- Removed `swagger-ui.css` import from `_app.tsx`
> ✨ Ask PR-Codex anything about this PR by commenting with `/codex {your question}`
<!-- end pr-codex -->
### TL;DR
This PR introduces new form components and integrates Sonner for toast notifications, along with various enhancements and fixes.
### What changed?
- Added new form components (`Form`, `FormField`, `FormLabel`, etc.) to the `ui` directory.
- Integrated `sonner` for toast notifications, adding a `Toaster` component.
- Migrated `pay.tsx` to the App Router and refactored its structure.
- Updated `DashboardHeader` and `DashboardLayout` for consistent spacing and padding.
- Refactored existing API key components and updated styles for better alignment and responsiveness.
- Fixed layout issues in `PayConfig` and other related components.
### How to test?
1. Navigate to the Dashboard and ensure the form components are rendering correctly.
2. Interact with forms and verify validation and error messages display as expected.
3. Trigger actions that would show toast notifications and ensure they are styled and positioned correctly.
4. Check the `PayConfig` and API key management sections for any UI regressions or inconsistencies.
### Why make this change?
- To enhance the user experience with improved form components and toast notifications.
- To maintain consistency in layout and design across the Dashboard.
- To address layout and spacing issues reported in the Pay section and other related components.
---
<!-- start pr-codex -->
---
## PR-Codex overview
This PR updates the layout, components, and dependencies in the dashboard app.
### Detailed summary
- Updated layout styles in `layout.tsx` and `DashboardHeader.tsx`
- Added `Toaster` component in `layout.tsx`
- Updated `sonner` package to version `1.5.0`
- Refactored components in `ConnectWalletPrompt.tsx` and `NoApiKeys.tsx`
- Implemented a new `Toaster` component in `sonner.tsx`
- Added new components and refactored UI in `Menu.tsx` and `ApiKeys/NoApiKeys.tsx`
- Updated page structure in `connect/pay.tsx`
> The following files were skipped due to too many changes: `apps/dashboard/src/@/components/ui/form.tsx`, `apps/dashboard/src/components/pay/PayConfig.tsx`
> ✨ Ask PR-Codex anything about this PR by commenting with `/codex {your question}`
<!-- end pr-codex -->
Adding thirdwebClient to createWalletConnectClient and fulfillRequest functions to ensure proper transaction execution through WalletConnect. This update includes a refactor of handleSendTransactionRequest to utilize the new client and various other related changes for consistency.
---
<!-- start pr-codex -->
---
## PR-Codex overview
This PR focuses on fixing in-app wallet transaction execution via WalletConnect by introducing `thirdwebClient` and updating related functions.
### Detailed summary
- Introduced `thirdwebClient` to handle WalletConnect transactions
- Updated functions to include `thirdwebClient` parameter
- Added tests using `TEST_CLIENT` for `thirdwebClient` integration
> ✨ Ask PR-Codex anything about this PR by commenting with `/codex {your question}`
<!-- end pr-codex -->
<!-- start pr-codex -->
## PR-Codex overview
This PR focuses on fixing errors related to connecting with an open access ecosystem by updating permissions logic in the `in-app-account.ts` file.
### Detailed summary
- Updated permissions logic to include partnerId check for ecosystem connectivity.
> ✨ Ask PR-Codex anything about this PR by commenting with `/codex {your question}`
<!-- end pr-codex -->
<!-- start pr-codex -->
## PR-Codex overview
This PR focuses on fixing WalletConnect client disconnections and improving error handling.
### Detailed summary
- Added a delay in testing for WalletConnect client disconnections
- Updated the `onDisconnect` function in `WalletConnectReceiverScreen.tsx` to handle loading state and query invalidation
- Improved error handling in `wallet-connect/receiver/index.ts` by catching errors during disconnect
- Added a function to remove sessions in `disconnectWalletConnectSession`
- Updated `disconnectWalletConnectSession` to handle errors gracefully
> ✨ Ask PR-Codex anything about this PR by commenting with `/codex {your question}`
<!-- end pr-codex -->
This pull request introduces a minor update to the thirdweb library, specifically adding the feature to override transaction properties in the `mintTo` functions for ERC1155, ERC20, and ERC721 tokens. Additionally, it refines the ENS avatar resolution tests by removing an offchain record test that relies on a secret key, improving overall test reliability.
---
<!-- start pr-codex -->
## PR-Codex overview
This PR updates the dashboard layout and styling, adds Ecosystem Wallet features, and refactors navigation components.
### Detailed summary
- Added "Ecosystem Wallets" section to dashboard sidebar
- Updated button styles in UI components
- Implemented Ecosystem Wallet page with alerts and buttons
- Refactored navigation components for better usability
> The following files were skipped due to too many changes: `apps/dashboard/src/app/(dashboard)/dashboard/components/sidebar/sidebar.client.tsx`
> ✨ Ask PR-Codex anything about this PR by commenting with `/codex {your question}`
<!-- end pr-codex -->
### TL;DR
This pull request modifies the `transaction-store.ts` module by exporting the type `StoredTransaction`, making it available for external use.
### What changed?
- The type `StoredTransaction` was exported from `transaction-store.ts`
- Updated the export statement for `StoredTransaction` in `transaction.ts`
### How to test?
1. Ensure that the module `transaction-store.ts` exports the type `StoredTransaction`.
2. Verify that importing `StoredTransaction` from the module works correctly in another file.
### Why make this change?
This change was made to facilitate the external utilization of the `StoredTransaction` type.
---
<!-- start pr-codex -->
---
## PR-Codex overview
The focus of this PR is to add a `StoredTransaction` type to the `thirdweb` package.
### Detailed summary
- Added `StoredTransaction` type to `transaction-store.ts`
- Exported `StoredTransaction` type in `transaction.ts`
> ✨ Ask PR-Codex anything about this PR by commenting with `/codex {your question}`
<!-- end pr-codex -->
## Problem solved
Fix error: "Do not know how to serialize bigint" by casting bigint to number when used as a string.
<!-- start pr-codex -->
---
## PR-Codex overview
This PR updates the README file to provide instructions for starting a local dev server and modifies a query key in a TypeScript file for improved functionality.
### Detailed summary
- Updated README.md to include instructions for starting a local dev server
- Modified query key in contract-subscriptions-table.tsx for better functionality
> ✨ Ask PR-Codex anything about this PR by commenting with `/codex {your question}`
<!-- end pr-codex -->
"Ancient8 is building an ETH gaming Layer 2 built with OP Stack, offering a suite of Web3 gaming infrastructure tools that serve as the distribution and marketing channel for games globally. With Space3 Game Publishing Platform, Ancient8 Gaming Guild, Reneverse Web3 Ads engine, A8ID, and Gosu Network, Ancient8 is dedicated to onboard millions of gamers to Web3 gaming, while providing unparalleled support to game developers looking to reach more players. Ancient8’s products have helped 100+ Web3 games and 200K+ users better navigate Web3.\n\nAncient8 has raised $10M in total financing from leading investors including Pantera, Dragonfly, Hashed, Makers Fund, Mechanism, Coinbase, IOSG, Jump and Animoca.",
// TODO: add CTA
headerImgUrl: ancient8Banner.src,
},
// mantle
5000:{
about:
"A fast-growing, DAO-led web3 ecosystem whose mission is the mass adoption of token-governed technologies. Mantle Ecosystem comprises Mantle Network, an Ethereum layer 2; Mantle Governance, Mantle Treasury and Mantle LSP.",
headerImgUrl: mantleBanner.src,
// TODO: waiting on CTA copy
// cta: {
// backgroundImageUrl: mantleCTA.src,
// title: "Title Goes Here",
// description: "Optional description goes here",
// buttonText: "Learn More",
// buttonLink: "https://www.mantle.xyz",
// },
},
// rootstock
30:{
headerImgUrl: rootStockBanner.src,
about:
"Deploy EVM compatible smart contracts on Rootstock and leverage the security of the Bitcoin network.",
cta:{
backgroundImageUrl: rootStockCTABG.src,
title:"Fully EVM-compatible Bitcoin L2",
buttonLink:"https://rootstock.io/",
buttonText:"Learn more",
},
},
// vanar
2040:{
headerImgUrl: vanarBanner.src,
about:
"Discover VANAR – The future of blockchain technology tailored for global adoption. This cutting-edge, L1 EVM blockchain offers high-speed transactions and scalability, powered by Google's renewable energy sources. With a suite of apps, low fixed transaction costs and a zero-cost option for brands, VANAR makes blockchain scalable, accessible and affordable.",
cta:{
buttonLink:"https://docs.vanarchain.com",
buttonText:"Learn more",
backgroundImageUrl: vanarCTABG.src,
title:"Fully EVM compatible L1 for Entertainment",
isActive: pathname?.endsWith("/permissions")||false,// pathname will almost never be null: https://nextjs.org/docs/app/api-reference/functions/use-pathname
"Are you sure you want to set an allowlist for this ecosystem?",
description:
"Existing apps without a partner ID will no longer be able to connect to your ecosystem. You will need to create partner IDs and distribute them to developers using your ecosystem wallet.",
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.