bitcashorg / smartsale

SmartSale streamlines the auction process on EVM
MIT License
17 stars 3 forks source link

feat: presale deposits ux #364

Closed gaboesquivel closed 2 months ago

gaboesquivel commented 2 months ago

Summary by Sourcery

Enhance the presale deposit user experience by adding a new component to display token balances, refactoring the presale transactions card to accept contributions as a parameter, and updating the deposit intent function to handle additional transaction data. Simplify chain configurations and clean up code by removing unused elements.

New Features:

Enhancements:

Chores:

Summary by CodeRabbit

vercel[bot] commented 2 months ago

The latest updates on your projects. Learn more about Vercel for Git β†—οΈŽ

Name Status Preview Comments Updated (UTC)
bitlauncher βœ… Ready (Inspect) Visit Preview πŸ’¬ Add feedback Sep 5, 2024 5:59pm
smartsale-faucet βœ… Ready (Inspect) Visit Preview πŸ’¬ Add feedback Sep 5, 2024 5:59pm
sourcery-ai[bot] commented 2 months ago

Reviewer's Guide by Sourcery

This pull request implements improvements to the presale deposits user experience. The changes focus on updating the PresaleTransactionsCard component, modifying the database schema for presale deposits and transactions, and adjusting the presale deposit process.

File-Level Changes

Change Details Files
Refactored PresaleTransactionsCard component
  • Removed dependency on presaleData prop
  • Added contributions as a prop
  • Updated state management for contributions
  • Improved real-time updates using Supabase subscription
  • Enhanced error handling and UI for no transactions
apps/webapp/components/routes/project/presale/presale-transactions-card.tsx
Updated presale deposit database schema and operations
  • Removed 'id' field from presale_deposit table
  • Modified transaction table to have non-nullable fields
  • Updated savePresaleDepositIntent function to handle new schema
  • Added chain_type and chainId to presale deposit process
apps/webapp/app/actions/save-deposit.ts
packages/supabase/src/supa.schemas.ts
packages/supabase/src/supa.types.ts
packages/supabase/migrations/20240905143139_remote_schema.sql
packages/supabase/migrations/20240905142501_remote_schema.sql
Simplified chain configuration
  • Reduced the number of supported production chains
  • Updated devChains configuration
apps/webapp/components/layout/providers.tsx
Enhanced presale deposit user interface
  • Added PresaleTokenBalance component
  • Updated PresaleDepositCard to include token balance
  • Improved deposit process with better error handling and success feedback
apps/webapp/components/routes/project/presale/presale-deposit-card.tsx
apps/webapp/components/routes/project/presale/presale-token-balance.tsx
apps/webapp/app/(routes)/[lang]/[project]/presale/page.tsx

Tips - Trigger a new Sourcery review by commenting `@sourcery-ai review` on the pull request. - Continue your discussion with Sourcery by replying directly to review comments. - You can change your review settings at any time by accessing your [dashboard](https://app.sourcery.ai): - Enable or disable the Sourcery-generated pull request summary or reviewer's guide; - Change the review language; - You can always [contact us](mailto:support@sourcery.ai) if you have any questions or feedback.
coderabbitai[bot] commented 2 months ago

[!WARNING]

Rate limit exceeded

@gaboesquivel has exceeded the limit for the number of commits or files that can be reviewed per hour. Please wait 17 minutes and 23 seconds before requesting another review.

How to resolve this issue? After the wait time has elapsed, a review can be triggered using the `@coderabbitai review` command as a PR comment. Alternatively, push new commits to this PR. We recommend that you space out your commits to avoid hitting the rate limit.
How do rate limits work? CodeRabbit enforces hourly rate limits for each developer per organization. Our paid plans have higher rate limits than the trial, open-source and free plans. In all cases, we re-allow further reviews after a brief timeout. Please see our [FAQ](https://coderabbit.ai/docs/faq) for further information.
Commits Files that changed from the base of the PR and between 5e2d31a6428c8ef0a4aa80ef39e61236c2a3bb42 and ae0d7b3446556c436de8584cf209b28c0ddc06c7.

Walkthrough

The changes involve enhancements to type safety, validation logic, and data structure within the application. Key modifications include the addition of new types, restructuring of component props, and updates to database schemas. The adjustments aim to improve clarity, enforce stricter data integrity, and streamline the handling of presale deposits and transactions.

Changes

Files Change Summary
apps/indexer/src/config.ts Enhanced type imports with Account type; refined validation logic for ISSUER_ADDRESS and PRESALE_ADDRESS; explicit typing of issuerAccount as Account.
apps/indexer/src/lib/issuer-client.ts Explicitly typed walletClient as WalletClient to improve type safety.
apps/webapp/app/(routes)/[lang]/[project]/presale/page.tsx Modified props for PresaleDepositCard and PresaleTransactionsCard for improved readability and data handling; PresaleTransactionsCard now receives contributions directly.
apps/webapp/app/actions/save-deposit.ts Updated input schema to include chain_type and chainId; refined handling of transfer object for database insertion.
apps/webapp/components/layout/providers.tsx Streamlined prodChains and modified devChains configuration for blockchain networks.
apps/webapp/components/routes/project/presale/presale-deposit-card.tsx Added PresaleTokenBalance import; restructured availableChains computation; modified onSuccess callback to await savePresaleDepositIntent.
apps/webapp/components/routes/project/presale/presale-token-balance.tsx Introduced PresaleTokenBalance component to display user token balance.
apps/webapp/components/routes/project/presale/presale-transactions-card.tsx Changed props to accept contributions array; updated state management and rendering logic for contributions.
packages/alchemy/webhooks/activity-test.ts Updated webhook URL for address activity notifications.
packages/supabase/migrations/20240905142501_remote_schema.sql Dropped primary key constraint and id column from presale_deposit table, indicating a restructuring of the table.
packages/supabase/migrations/20240905143139_remote_schema.sql Enforced non-null constraints on several columns in the transaction table; created a unique index on deposit_hash and established a primary key for presale_deposit.
packages/supabase/src/supa.schemas.ts Removed id from several schemas; updated relationship and transaction schemas to enforce stricter validation rules.
packages/supabase/src/supa.types.ts Removed optional properties from Database type; enforced stricter type requirements for transaction-related fields.

Sequence Diagram(s)

sequenceDiagram
    participant User
    participant PresaleDepositCard
    participant PresaleTransactionsCard
    participant Database

    User->>PresaleDepositCard: Initiate deposit
    PresaleDepositCard->>Database: Save deposit intent
    Database-->>PresaleDepositCard: Confirm deposit saved
    PresaleDepositCard->>User: Show deposit success

    User->>PresaleTransactionsCard: View contributions
    PresaleTransactionsCard->>Database: Fetch contributions
    Database-->>PresaleTransactionsCard: Return contributions
    PresaleTransactionsCard->>User: Display contributions

🐰 In the garden, changes bloom bright,
New types and schemas bring delight!
With deposits and tokens in view,
Our paths are clearer, our goals anew.
Hopping along, we cheer with glee,
For a better world, just wait and see! 🌼


Thank you for using CodeRabbit. We offer it for free to the OSS community and would appreciate your support in helping us grow. If you find it useful, would you consider giving us a shout-out on your favorite social media?

Share - [X](https://twitter.com/intent/tweet?text=I%20just%20used%20%40coderabbitai%20for%20my%20code%20review%2C%20and%20it%27s%20fantastic%21%20It%27s%20free%20for%20OSS%20and%20offers%20a%20free%20trial%20for%20the%20proprietary%20code.%20Check%20it%20out%3A&url=https%3A//coderabbit.ai) - [Mastodon](https://mastodon.social/share?text=I%20just%20used%20%40coderabbitai%20for%20my%20code%20review%2C%20and%20it%27s%20fantastic%21%20It%27s%20free%20for%20OSS%20and%20offers%20a%20free%20trial%20for%20the%20proprietary%20code.%20Check%20it%20out%3A%20https%3A%2F%2Fcoderabbit.ai) - [Reddit](https://www.reddit.com/submit?title=Great%20tool%20for%20code%20review%20-%20CodeRabbit&text=I%20just%20used%20CodeRabbit%20for%20my%20code%20review%2C%20and%20it%27s%20fantastic%21%20It%27s%20free%20for%20OSS%20and%20offers%20a%20free%20trial%20for%20proprietary%20code.%20Check%20it%20out%3A%20https%3A//coderabbit.ai) - [LinkedIn](https://www.linkedin.com/sharing/share-offsite/?url=https%3A%2F%2Fcoderabbit.ai&mini=true&title=Great%20tool%20for%20code%20review%20-%20CodeRabbit&summary=I%20just%20used%20CodeRabbit%20for%20my%20code%20review%2C%20and%20it%27s%20fantastic%21%20It%27s%20free%20for%20OSS%20and%20offers%20a%20free%20trial%20for%20proprietary%20code)
Tips ### Chat There are 3 ways to chat with [CodeRabbit](https://coderabbit.ai): - Review comments: Directly reply to a review comment made by CodeRabbit. Example: - `I pushed a fix in commit .` - `Generate unit testing code for this file.` - `Open a follow-up GitHub issue for this discussion.` - Files and specific lines of code (under the "Files changed" tab): Tag `@coderabbitai` in a new review comment at the desired location with your query. Examples: - `@coderabbitai generate unit testing code for this file.` - `@coderabbitai modularize this function.` - PR comments: Tag `@coderabbitai` in a new PR comment to ask questions about the PR branch. For the best results, please provide a very specific query, as very limited context is provided in this mode. Examples: - `@coderabbitai generate interesting stats about this repository and render them as a table.` - `@coderabbitai show all the console.log statements in this repository.` - `@coderabbitai read src/utils.ts and generate unit testing code.` - `@coderabbitai read the files in the src/scheduler package and generate a class diagram using mermaid and a README in the markdown format.` - `@coderabbitai help me debug CodeRabbit configuration file.` Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments. ### CodeRabbit Commands (Invoked using PR comments) - `@coderabbitai pause` to pause the reviews on a PR. - `@coderabbitai resume` to resume the paused reviews. - `@coderabbitai review` to trigger an incremental review. This is useful when automatic reviews are disabled for the repository. - `@coderabbitai full review` to do a full review from scratch and review all the files again. - `@coderabbitai summary` to regenerate the summary of the PR. - `@coderabbitai resolve` resolve all the CodeRabbit review comments. - `@coderabbitai configuration` to show the current CodeRabbit configuration for the repository. - `@coderabbitai help` to get help. ### Other keywords and placeholders - Add `@coderabbitai ignore` anywhere in the PR description to prevent this PR from being reviewed. - Add `@coderabbitai summary` to generate the high-level summary at a specific location in the PR description. - Add `@coderabbitai` anywhere in the PR title to generate the title automatically. ### CodeRabbit Configuration File (`.coderabbit.yaml`) - You can programmatically configure CodeRabbit by adding a `.coderabbit.yaml` file to the root of your repository. - Please see the [configuration documentation](https://docs.coderabbit.ai/guides/configure-coderabbit) for more information. - If your editor has YAML language server enabled, you can add the path at the top of this file to enable auto-completion and validation: `# yaml-language-server: $schema=https://coderabbit.ai/integrations/schema.v2.json` ### Documentation and Community - Visit our [Documentation](https://coderabbit.ai/docs) for detailed information on how to use CodeRabbit. - Join our [Discord Community](https://discord.com/invite/GsXnASn26c) to get help, request features, and share feedback. - Follow us on [X/Twitter](https://twitter.com/coderabbitai) for updates and announcements.