## Problem solved
Short description of the bug fixed or feature added
<!-- start pr-codex -->
---
## PR-Codex overview
The focus of this PR is to refactor the `ListForm` interface and adjust form inputs for creating direct listings and auctions.
### Detailed summary
- Refactored `ListForm` interface for direct listings and auctions
- Adjusted form inputs for price per token in direct listings and auctions
> ✨ 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
<!-- start pr-codex -->
---
## PR-Codex overview
The focus of this PR is to add a new "Add Your Chain" button, implement breadcrumb UI components, and enhance chain filtering options in the dashboard.
### Detailed summary
- Added `AddYourChainButton` component with a link to add a chain
- Implemented breadcrumb UI components (`Breadcrumb`, `BreadcrumbItem`, etc.)
- Enhanced chain filtering options in the dashboard with `AllFilters` and related components
> The following files were skipped due to too many changes: `apps/dashboard/src/app/(dashboard)/(chain)/[chain_id]/(chainPage)/layout.tsx`, `apps/dashboard/src/app/(dashboard)/(chain)/chainlist/components/server/chain-table.tsx`, `apps/dashboard/src/app/(dashboard)/(chain)/chainlist/page.tsx`
> ✨ Ask PR-Codex anything about this PR by commenting with `/codex {your question}`
<!-- end pr-codex -->
Updates the documentation of the modular contracts based on the recent refactor
<!-- start pr-codex -->
---
## PR-Codex overview
The focus of this PR is to update metadata and add GitHub links to modular contract pages.
### Detailed summary
- Added GitHub links to `TransferableERC20`, `TransferableERC721`, `TransferableERC1155`, and `SequentialTokenIdERC1155` contracts
- Updated metadata for contract pages
- Removed unnecessary image imports
- Updated sidebar links for `Get Started` section in the contracts page
> The following files were skipped due to too many changes: `apps/portal/src/app/contracts/sidebar.tsx`, `apps/portal/src/app/contracts/modular-contracts/module-contracts/erc-20/misc/creatorTokenERC20/page.mdx`, `apps/portal/src/app/contracts/modular-contracts/module-contracts/erc-1155/metadata/openEditionMetadataERC1155/page.mdx`, `apps/portal/src/app/contracts/modular-contracts/module-contracts/erc-721/metadata/openEditionMetadataERC721/page.mdx`, `apps/portal/src/app/contracts/modular-contracts/core-contracts/erc-721/page.mdx`, `apps/portal/src/app/contracts/modular-contracts/module-contracts/erc-20/minting/mintableERC20/page.mdx`, `apps/portal/src/app/contracts/modular-contracts/module-contracts/erc-721/minting/mintableERC721/page.mdx`, `apps/portal/src/app/contracts/modular-contracts/module-contracts/erc-1155/minting/mintableERC1155/page.mdx`, `apps/portal/src/app/contracts/modular-contracts/core-contracts/erc-20/page.mdx`, `apps/portal/src/app/contracts/modular-contracts/core-contracts/erc-1155/page.mdx`, `apps/portal/src/app/contracts/modular-contracts/module-contracts/erc-1155/metadata/batchMetadataERC1155/page.mdx`, `apps/portal/src/app/contracts/modular-contracts/module-contracts/erc-721/metadata/batchMetadataERC721/page.mdx`, `apps/portal/src/app/contracts/modular-contracts/module-contracts/erc-1155/minting/claimableERC1155/page.mdx`, `apps/portal/src/app/contracts/modular-contracts/get-started/deploy-modular-contract/page.mdx`, `apps/portal/src/app/contracts/modular-contracts/module-contracts/erc-20/minting/claimableERC20/page.mdx`, `apps/portal/src/app/contracts/modular-contracts/module-contracts/erc-721/minting/claimableERC721/page.mdx`, `apps/portal/src/app/contracts/modular-contracts/get-started/create-core-contract/page.mdx`, `apps/portal/src/app/contracts/modular-contracts/module-contracts/erc-721/misc/royaltyERC721/page.mdx`, `apps/portal/src/app/contracts/modular-contracts/module-contracts/erc-1155/misc/royaltyERC1155/page.mdx`, `apps/portal/src/app/contracts/modular-contracts/how-it-works/page.mdx`, `apps/portal/src/app/contracts/modular-contracts/get-started/page.mdx`, `apps/portal/src/app/contracts/modular-contracts/get-started/create-module-contract/page.mdx`
> ✨ 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
<!-- start pr-codex -->
---
## PR-Codex overview
This PR updates account pages with new components, refactors UI, and adds wallet linking functionality.
### Detailed summary
- Updated components for account teams and wallets
- Added wallet linking feature
- Refactored UI for better user experience
> ✨ 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
<!-- start pr-codex -->
---
## PR-Codex overview
This PR introduces a new `TeamPlanBadge` component and updates various files to use it for displaying team plans.
### Detailed summary
- Added `TeamPlanBadge` component to display team plans
- Updated `TeamHeaderUI` and `AccountTeamsUI` components to use `TeamPlanBadge`
- Created stories for `AccountTeamsUI` component with different team plan variants
> ✨ 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
<!-- start pr-codex -->
---
## PR-Codex overview
This PR improves the UsageCard component in the Account settings by ensuring the width does not exceed 100%.
### Detailed summary
- Updated the width calculation in the UsageCard component to ensure it does not exceed 100%
> ✨ 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
<!-- start pr-codex -->
---
## PR-Codex overview
The focus of this PR is to update the styling of alerts in the `Alert.tsx` component and add `overflow-hidden` to the main content in `SidebarLayout.tsx`.
### Detailed summary
- Updated styling of alerts in `Alert.tsx` by replacing `mb={12}` with `className="py-6"`
- Added `overflow-hidden` to the main content in `SidebarLayout.tsx` for better layout.
> ✨ 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
<!-- start pr-codex -->
---
## PR-Codex overview
The focus of this PR is to refactor the `SocialProfiles` component, update dependencies, and improve profile card rendering.
### Detailed summary
- Refactored `SocialProfiles` component to use `useMutation` and `useState`
- Updated dependencies for `@react-native-async-storage/async-storage`
- Improved profile card rendering with `ProfileCard` component
- Added error handling for weird avatar formats in `SocialProfileCard`
> 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 -->
## Problem solved
Short description of the bug fixed or feature added
<!-- start pr-codex -->
---
## PR-Codex overview
This PR updates sidebar components and layouts in the dashboard, adds `SidebarLayout`, and refactors sidebar imports.
### Detailed summary
- Updated sidebar links in various components
- Added `SidebarLayout` component
- Refactored sidebar imports to use `SidebarLayout` and `MobileSidebar`
- Updated layout components for better organization
> The following files were skipped due to too many changes: `apps/dashboard/src/pages/dashboard/settings/notifications.tsx`, `apps/dashboard/src/app/(dashboard)/dashboard/connect/ecosystem/create/EcosystemCreatePage.tsx`, `apps/dashboard/src/pages/dashboard/settings/api-keys/[id].tsx`, `apps/dashboard/src/pages/dashboard/settings/api-keys/index.tsx`, `apps/dashboard/src/pages/dashboard/contracts/publish.tsx`, `apps/dashboard/src/components/layout/app-shell/index.tsx`, `apps/dashboard/src/pages/dashboard/settings/devices.tsx`, `apps/dashboard/src/pages/publish/[...paths].tsx`, `apps/dashboard/src/pages/dashboard/contracts/deploy.tsx`, `apps/dashboard/src/@/components/blocks/SidebarLayout.stories.tsx`, `apps/dashboard/.storybook/preview.tsx`, `apps/dashboard/src/pages/dashboard/connect/analytics.tsx`, `apps/dashboard/src/app/(dashboard)/dashboard/connect/layout.tsx`, `apps/dashboard/src/pages/dashboard/connect/in-app-wallets.tsx`, `apps/dashboard/src/pages/dashboard/settings/storage.tsx`, `apps/dashboard/src/app/(dashboard)/trending/page.tsx`, `apps/dashboard/src/pages/dashboard/connect/account-abstraction.tsx`, `apps/dashboard/src/app/account/layout.tsx`, `apps/dashboard/src/@/components/blocks/MobileSidebar.tsx`, `apps/dashboard/src/@/components/blocks/Sidebar.tsx`, `apps/dashboard/src/core-ui/sidebar/contracts.tsx`, `apps/dashboard/src/pages/explore/index.tsx`, `apps/dashboard/src/core-ui/sidebar/settings.tsx`, `apps/dashboard/src/components/pages/publish.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
<!-- start pr-codex -->
---
## PR-Codex overview
This PR exposes `toFunctionSelector` and updates its usage in the dashboard component for better navigation.
### Detailed summary
- Exposed `toFunctionSelector` in `thirdweb/utils.ts`
- Updated `ContractFunctionsPanel` to use `toFunctionSelector` for navigation based on function selector
- Improved function selection logic in `FunctionsOrEventsListItem` to use `toFunctionSelector`
> ✨ 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
<!-- start pr-codex -->
---
## PR-Codex overview
This PR adds `Social API` functionality to the codebase.
### Detailed summary
- Added `@social` tag to `useSocialProfiles` and `getSocialProfiles` functions
- Updated sidebar components to include `Social API` section with relevant links
- Updated sidebar order to include `Social API` in the correct position
> ✨ 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 NFT handling in the wallet and contract UI components. It replaces `BigInt` with `string` for `id` and `supply` fields to prevent serialization errors and improves metadata handling.
### Detailed summary
- Replaced `BigInt` with `string` for `id` and `supply` fields in `WalletNFT` type
- Updated NFT handling in various files to ensure compatibility and prevent serialization errors
> ✨ 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 dependencies across multiple packages and fix minor code issues.
### Detailed summary
- Updated `typedoc` to versions `0.26.7`.
- Updated `tsup` to versions `8.2.4`.
- Updated `typescript` to versions `5.6.2`.
- Updated various packages to use the latest TypeScript version.
- Fixed minor code issues like handling `delete` operations and eslint comments.
> The following files were skipped due to too many changes: `packages/thirdweb/src/wallets/in-app/core/eip5972/in-app-wallet-calls.ts`, `legacy_packages/wallets/src/evm/connectors/gcp-kms/utils/gcp-kms-utils.ts`, `apps/dashboard/package.json`, `packages/thirdweb/package.json`, `legacy_packages/contracts-js/package.json`, `pnpm-lock.yaml`
> ✨ 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
<!-- start pr-codex -->
---
## PR-Codex overview
This PR updates file imports, restructures components, and adds a new `TabPathLinks` component.
### Detailed summary
- Updated file imports for components
- Reorganized component structure
- Added `TabPathLinks` component
- Updated `AccountHeader` component for accounts
- Added `HeaderAndNav` function for account layout
> The following files were skipped due to too many changes: `apps/dashboard/src/stories/stubs.ts`, `apps/dashboard/src/app/account/components/AccountHeaderUI.stories.tsx`, `apps/dashboard/src/app/team/[team_slug]/[project_slug]/layout.tsx`, `apps/dashboard/src/app/components/Header/TeamHeader/TeamHeaderUI.tsx`, `apps/dashboard/src/app/components/Header/TeamHeader/TeamSelectionUI.tsx`, `apps/dashboard/src/app/account/components/AccountHeaderUI.tsx`, `apps/dashboard/src/app/components/Header/TeamHeader/TeamHeaderUI.stories.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
<!-- start pr-codex -->
---
## PR-Codex overview
This PR focuses on updating contract initializer parameters from arrays to objects for better clarity and consistency.
### Detailed summary
- Updated contract initializer params from arrays to objects for improved readability
- Refactored multiple files to use object-based contract params
- Added normalization function for function parameters in zkDeployContract file
> The following files were skipped due to too many changes: `packages/thirdweb/src/contract/deployment/zksync/zkDeployContract.ts`, `packages/thirdweb/src/utils/abi/normalizeFunctionParams.ts`, `packages/thirdweb/src/extensions/prebuilts/deploy-published.test.ts`, `packages/thirdweb/test/src/chains.ts`, `packages/thirdweb/src/contract/deployment/zksync/zkDeployDeterministic.ts`, `packages/thirdweb/src/extensions/prebuilts/deploy-marketplace.ts`, `packages/thirdweb/src/utils/any-evm/compute-published-contract-address.ts`, `packages/thirdweb/src/utils/any-evm/compute-published-contract-deploy-info.ts`, `packages/thirdweb/src/contract/deployment/deploy-deterministic.test.ts`, `packages/thirdweb/src/extensions/prebuilts/get-required-transactions.test.ts`, `packages/thirdweb/src/extensions/prebuilts/get-required-transactions.ts`, `packages/thirdweb/src/extensions/prebuilts/deploy-modular-core.test.ts`, `packages/thirdweb/src/contract/deployment/utils/infra.ts`, `packages/thirdweb/src/extensions/prebuilts/deploy-modular.ts`, `packages/thirdweb/src/contract/deployment/utils/bootstrap.ts`, `packages/thirdweb/src/extensions/prebuilts/deploy-published.ts`
> ✨ Ask PR-Codex anything about this PR by commenting with `/codex {your question}`
<!-- end pr-codex -->
### TL;DR
Enhanced the WalletAddress component to handle undefined addresses and improved address display.
### What changed?
- Added support for undefined addresses by defaulting to ZERO_ADDRESS
- Updated address processing to use the new default address
- Made the WalletAvatar conditional on the presence of an address
- Imported ZERO_ADDRESS from the thirdweb library
### How to test?
1. Render the WalletAddress component with an undefined address
2. Verify that it displays the ZERO_ADDRESS
3. Test with valid addresses to ensure proper shortening and display
4. Check that the WalletAvatar only appears when an address is provided
### Why make this change?
This change improves the robustness of the WalletAddress component by gracefully handling undefined addresses. It prevents potential errors and provides a consistent display even when address data is missing or not yet loaded.
---
<!-- start pr-codex -->
## PR-Codex overview
This PR updates NFT transformation functions in `alchemy.ts` and `moralis.ts` to use `download` method with `thirdwebClient` for fetching metadata.
### Detailed summary
- Updated NFT transformation functions to use `download` method with `thirdwebClient` for fetching metadata
- Replaced `StorageSingleton.downloadJSON` with `download` method in both 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
<!-- start pr-codex -->
---
## PR-Codex overview
The focus of this PR is to refactor the login process by simplifying the `login` function and updating the login logic in the login page component.
### Detailed summary
- Simplified `login` function in `auth.ts`
- Updated login logic in `login/page.tsx` to use the simplified `login` function and navigate to wallet page after successful login
> ✨ Ask PR-Codex anything about this PR by commenting with `/codex {your question}`
<!-- end pr-codex -->
<img width="1143" alt="Screenshot 2024-09-10 at 2 30 34 PM" src="https://github.com/user-attachments/assets/c3848dce-0bb2-4bd7-ac8a-300f1757a207">
<!-- start pr-codex -->
---
## PR-Codex overview
The focus of this PR is to add social profile functionality and API documentation to the app.
### Detailed summary
- Added "Social" link to nav bar
- Implemented `Badge` component with variants
- Created `SocialProfiles` component to display user profiles
- Added API documentation for social profiles
> ✨ 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
<!-- start pr-codex -->
---
## PR-Codex overview
The focus of this PR is to add support for LINE authentication in various parts of the application.
### Detailed summary
- Added LINE authentication option in multiple files
- Updated constants and icons for LINE
- Integrated LINE in authentication flows
> ✨ Ask PR-Codex anything about this PR by commenting with `/codex {your question}`
<!-- end pr-codex -->
before:
<img width="1942" alt="image" src="https://github.com/user-attachments/assets/8ac59faa-f81c-4670-98e5-f750ce68e5d6">
after:
<img width="1819" alt="image" src="https://github.com/user-attachments/assets/c8c015eb-528b-44a7-8cd5-478ca3ca907e">
<!-- start pr-codex -->
---
## PR-Codex overview
This PR adds social API domain support, new UI components, and updates dependencies.
### Detailed summary
- Added `THIRDWEB_SOCIAL_API_DOMAIN` in `urls.ts`
- Added `WalletAddress` component
- Updated UI components in various files
- Added new dependencies like `@radix-ui/react-avatar` and `@radix-ui/react-hover-card`
> The following files were skipped due to too many changes: `apps/dashboard/src/components/wallets/ConnectWalletMiniPlayground/MiniPlayground.tsx`, `apps/dashboard/src/contract-ui/tabs/analytics/page.tsx`, `apps/dashboard/src/components/contract-components/contract-deploy-form/split-fieldset.tsx`, `apps/dashboard/src/components/contract-components/contract-deploy-form/custom-contract.tsx`, `apps/dashboard/src/contract-ui/tabs/manage/components/InstalledModulesTable.tsx`, `apps/dashboard/src/components/contract-components/contract-table-v2/index.tsx`, `apps/dashboard/src/components/pay/PayAnalytics/components/PaymentHistory.tsx`, `apps/dashboard/src/contract-ui/tabs/overview/components/MarketplaceDetails.tsx`, `apps/dashboard/src/contract-ui/tabs/nfts/components/table.tsx`, `apps/dashboard/src/pages/[chain_id]/[...paths].tsx`, `apps/dashboard/src/components/embedded-wallets/Users/index.tsx`, `apps/dashboard/src/components/engine/overview/engine-overview.tsx`, `apps/dashboard/src/components/engine/permissions/access-tokens-table.tsx`, `apps/dashboard/src/contract-ui/tabs/shared-components/marketplace-table.tsx`, `apps/dashboard/src/pages/dashboard/connect/analytics.tsx`, `apps/dashboard/src/app/(dashboard)/styleguide/page.tsx`, `apps/dashboard/src/contract-ui/tabs/account-permissions/components/account-signer.tsx`, `apps/dashboard/src/components/engine/engine-instances-table.tsx`, `apps/dashboard/src/components/engine/overview/backend-wallets-table.tsx`, `apps/dashboard/src/components/engine/overview/transactions-table.tsx`, `apps/dashboard/src/components/pay/PayAnalytics/components/PayCustomersTable.tsx`, `apps/dashboard/src/@/components/ui/hover-card.tsx`, `apps/dashboard/src/@/components/ui/avatar.tsx`, `apps/dashboard/src/@/components/blocks/wallet-address.tsx`, `pnpm-lock.yaml`
> ✨ 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
<!-- start pr-codex -->
---
## PR-Codex overview
This PR removes the `z-index` property from the `ScrollShadow` component in the dashboard UI to prevent stacking issues.
### Detailed summary
- Removed `z-index` property from `ScrollShadow` component in `ScrollShadow.tsx`
- Adjusted styles in `ScrollShadow.module.css` to remove `z-index` property
> ✨ 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
<!-- start pr-codex -->
---
## PR-Codex overview
This PR updates API key handling and smart wallet components.
### Detailed summary
- Added `isOpChainId` function for chain validation
- Modified `getAuthToken` and `getAPIKey` functions
- Updated `SponsorshipPolicies` and `SmartWallets` components
- Introduced `AccountAbstractionPage` for account abstraction details
> ✨ Ask PR-Codex anything about this PR by commenting with `/codex {your question}`
<!-- end pr-codex -->
Users are reporting the inability to login on the modal as a "bug" and it's causing confusion while trying to reproduce actual bugs. This PR allows connecting on the playground modal as is the expected behavior.
<!-- start pr-codex -->
---
## PR-Codex overview
The focus of this PR is to update the `navLinks.ts` file and refactor the `RightSection.tsx` component in the `playground-web` app.
### Detailed summary
- Updated the name from "in-App wallet" to "In-App wallet" in `navLinks.ts`
- Refactored the `RightSection` component in `RightSection.tsx`
- Removed the `useDisconnect` hook and refactored the disconnect logic in `RightSection.tsx`
- Improved conditional rendering for the modal in `RightSection.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
<!-- start pr-codex -->
---
## PR-Codex overview
The focus of this PR is to update the StepsCard component styling and add a new hook `useDashboardRouter` for navigation in the GetStartedWithContractsDeploy component.
### Detailed summary
- Updated styling in `StepsCard` component
- Added `useDashboardRouter` hook for navigation in `GetStartedWithContractsDeploy` 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 the `SettingsMetadata` component in `metadata.tsx` to resolve image URIs using the `resolveScheme` function from `thirdweb/storage`.
### Detailed summary
- Added import for `resolveScheme` from `thirdweb/storage`
- Resolved image URIs using `resolveScheme` function
- Updated the dependencies of the `useMemo` hook to include `contract.client`
> ✨ 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
<!-- start pr-codex -->
---
## PR-Codex overview
The focus of this PR is to refactor imports in the `publish.tsx` file in the `dashboard` component.
### Detailed summary
- Added imports for `Badge`, `Button`, and `Select` components
- Updated imports for `usePathname` and `useSearchParams`
- Removed duplicate imports for `Select` related components
- Updated import paths for certain components
> ✨ 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
<!-- start pr-codex -->
---
## PR-Codex overview
This PR removes the `favicon.ico` file from the `wallet-ui` app.
### Detailed summary
- Deleted the `favicon.ico` file from the `wallet-ui` app.
> ✨ 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 contract components and SDK with default modules support.
### Detailed summary
- Added `defaultModules` support in SDK and contract components
- Updated contract card to display modules
- Added transfer validator field in royalty fieldset
- Improved contract publishing information display
> The following files were skipped due to too many changes: `apps/dashboard/src/components/contract-components/shared/published-by.tsx`, `apps/dashboard/src/components/contract-components/contract-deploy-form/custom-contract.tsx`, `apps/dashboard/src/components/explore/contract-card/index.tsx`, `apps/dashboard/src/components/pages/publish.tsx`, `apps/dashboard/src/data/explore.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
<!-- start pr-codex -->
---
## PR-Codex overview
This PR focuses on restructuring ecosystem-related components and pages in the dashboard.
### Detailed summary
- Deleted `redirects.js`.
- Updated page components for ecosystem permissions and creation.
- Added new components for ecosystem layout and header.
- Modified functions for fetching ecosystem data and ecosystem selection.
> 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`, `apps/dashboard/src/app/(dashboard)/dashboard/connect/ecosystem/EcosystemLandingPage.tsx`, `apps/dashboard/src/app/(dashboard)/dashboard/connect/ecosystem/page.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
<!-- start pr-codex -->
---
## PR-Codex overview
The focus of this PR is to simplify the layout component in the contracts section by removing unnecessary elements and only rendering the children components.
### Detailed summary
- Removed sidebar and mobile sidebar components
- Simplified layout to only render children components
> ✨ 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
<!-- start pr-codex -->
---
## PR-Codex overview
The focus of this PR is to add a `data-theme` attribute to the `Card` component in `contact-us.tsx`.
### Detailed summary
- Added `data-theme="light"` attribute to the `Card` component.
> ✨ 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
<!-- start pr-codex -->
---
## PR-Codex overview
This PR introduces a new `SettingsNotificationsPage` component to handle notification settings in the dashboard.
### Detailed summary
- Added `SettingsNotificationsPage` component to manage notification settings
- Refactored `Page` component to use `SettingsNotificationsPage`
- Updated UI for notification settings with switches and labels
> ✨ Ask PR-Codex anything about this PR by commenting with `/codex {your question}`
<!-- end pr-codex -->
Sets an idempotency key to Engine that prevents duplicate transactions _today_ (UTC).
<!-- start pr-codex -->
---
## PR-Codex overview
This PR updates error message spelling and adds idempotency key to prevent duplicate claims in the testnet faucet API.
### Detailed summary
- Fixed spelling error in error message
- Added idempotency key to prevent duplicate claims
> ✨ Ask PR-Codex anything about this PR by commenting with `/codex {your question}`
<!-- end pr-codex -->