Skip to content

Conversation

@devin-ai-integration
Copy link
Contributor

@devin-ai-integration devin-ai-integration bot commented Nov 10, 2025

Description

Implements APKT-4175 to make batch call transaction parameters configurable in the AppKit laboratory app. Previously, all transaction test components used hardcoded addresses (vitalikEthAddress). This change allows Uniswap and other enterprise customers to customize transaction parameters including recipient address, amount, and transaction data.

Link to Devin run: https://app.devin.ai/sessions/db46fa811556478aabef7b6c3af9ac5f
Requested by: enes@reown.com

Type of change

  • New feature (non-breaking change which adds functionality)

What Changed

Core Changes

AddTransactionModal Enhancement (apps/laboratory/src/components/AddTransactionModal.tsx):

  • Added optional data field for hex-encoded transaction data
  • Implemented hex validation with regex /^0x[0-9a-fA-F]*$/u
  • Added Simple/Advanced mode toggle (data field only visible in Advanced mode)
  • Added tooltips and helper text for all fields
  • Updated onSubmit signature to include optional data?: string parameter

Simple Transaction Components (WagmiTransactionTest.tsx, EthersTransactionTest.tsx):

  • Added "Configure Transaction" button to open AddTransactionModal
  • Added state management for custom transaction parameters
  • Button text changes dynamically: "Send Transaction to Vitalik" → "Send Custom Transaction"
  • Added "Reset to Default" button when custom transaction is configured
  • Transactions use custom parameters when provided, fall back to hardcoded defaults otherwise

Batch Transaction Components (WagmiSendCallsTest.tsx, EthersSendCallsTest.tsx):

  • Integrated AddTransactionModal for adding custom transactions to batch
  • Added UI to display transaction cards with amount, recipient, and optional data
  • Added ability to remove individual transactions from batch
  • Falls back to hardcoded TEST_TX_1 and TEST_TX_2 when no custom transactions

ESLint Fix

Fixed ESLint errors in AddTransactionModal.tsx that were causing CI build failures:

  • Added curly braces around if statement
  • Moved inline comment above code
  • Added newline before return statement
  • Added unicode flag (u) to regex

Associated Issues

Closes APKT-4175

Key Review Points

⚠️ Type Assertions: The code uses type assertions between viem's Hex type and @reown/appkit-common's Hex type (e.g., args.data as Hex | undefined). Please verify these types are compatible.

⚠️ Hex Validation: The regex /^0x[0-9a-fA-F]*$/u allows "0x" as valid input (empty data after prefix). This is intentional for optional fields but worth confirming.

⚠️ Playwright Test Failures: 3 Playwright test shards failed (2, 6, 8) with network switching tests. These appear unrelated to the changes (no network switching logic was modified, and grep confirms no tests reference the changed button text). However, please review to confirm they're flaky tests.

⚠️ UI Layout: New buttons added to transaction test pages. Please test on different screen sizes to ensure layout doesn't break.

Testing Notes

  • ✅ All build, lint, typecheck, and Vercel deployment checks passed
  • ✅ Local laboratory app build succeeded
  • ✅ Code formatted with prettier
  • ⚠️ 3 Playwright test shards failed with network switching tests (appear unrelated)
  • 🔍 Manual testing recommended: Configure custom transactions in laboratory app and verify they execute correctly

Checklist

  • Code in this PR is covered by automated tests (existing Playwright tests cover transaction flows)
  • My changes generate no new warnings (all lint/typecheck passed)
  • I have reviewed my own code
  • I have filled out all required sections
  • I have tested my changes on the preview link (requires human verification)
  • Approver of this PR confirms that the changes are tested on the preview link

Preview Links

…ry app

APKT-4175: Implement configurable transaction parameters for Uniswap

Changes:
- Enhanced AddTransactionModal with optional data field and hex validation
- Added Simple/Advanced mode toggle with tooltips and help text
- Integrated configuration UI in WagmiTransactionTest and EthersTransactionTest
- Added transaction management to WagmiSendCallsTest with AddTransactionModal
- Updated EthersSendCallsTest to support optional data field
- All components now support custom recipient, amount, and transaction data
- Maintains backward compatibility with default hardcoded values

Co-Authored-By: enes@reown.com <enes@reown.com>
@linear
Copy link

linear bot commented Nov 10, 2025

@devin-ai-integration
Copy link
Contributor Author

🤖 Devin AI Engineer

I'll be helping with this pull request! Here's what you should know:

✅ I will automatically:

  • Address comments on this PR. Add '(aside)' to your comment to have me ignore it.
  • Look at CI failures and help fix them

Note: I can only respond to comments from users who have write access to this repository.

⚙️ Control Options:

  • Disable automatic comment and CI monitoring

@changeset-bot
Copy link

changeset-bot bot commented Nov 10, 2025

⚠️ No Changeset found

Latest commit: a615101

Merging this PR will not cause a version bump for any packages. If these changes should not result in a new version, you're good to go. If these changes should result in a version bump, you need to add a changeset.

This PR includes no changesets

When changesets are added to this PR, you'll see the packages that this PR includes changesets for and the associated semver types

Click here to learn what changesets are, and how to add one.

Click here if you're a maintainer who wants to add a changeset to this PR

@vercel
Copy link

vercel bot commented Nov 10, 2025

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Preview Comments Updated (UTC)
appkit-basic-html Ready Ready Preview Comment Nov 10, 2025 5:16am
appkit-demo Ready Ready Preview Comment Nov 10, 2025 5:16am
appkit-gallery Ready Ready Preview Comment Nov 10, 2025 5:16am
appkit-laboratory Ready Ready Preview Comment Nov 10, 2025 5:16am
10 Skipped Deployments
Project Deployment Preview Comments Updated (UTC)
appkit-basic-example Ignored Ignored Nov 10, 2025 5:16am
appkit-basic-sign-client-example Ignored Ignored Nov 10, 2025 5:16am
appkit-basic-up-example Ignored Ignored Nov 10, 2025 5:16am
appkit-ethers5-bera Ignored Ignored Nov 10, 2025 5:16am
appkit-nansen-demo Ignored Ignored Nov 10, 2025 5:16am
appkit-vue-solana Ignored Ignored Nov 10, 2025 5:16am
appkit-wagmi-cdn-example Ignored Ignored Nov 10, 2025 5:16am
ethereum-provider-wagmi-example Ignored Ignored Nov 10, 2025 5:16am
next-wagmi-solana-bitcoin-example Ignored Ignored Nov 10, 2025 5:16am
vue-wagmi-example Ignored Ignored Nov 10, 2025 5:16am

@github-actions
Copy link
Contributor

github-actions bot commented Nov 10, 2025

Visual Regression Test Results ✅ Passed

✨ No visual changes detected

Chromatic Build: https://www.chromatic.com/build?appId=6493191bf4b10fed8ca7353f&number=351
Storybook Preview: https://6493191bf4b10fed8ca7353f-tlvgttibtn.chromatic.com/

@github-actions
Copy link
Contributor

github-actions bot commented Nov 10, 2025

Warnings
⚠️

🌐 Non-company domain introduced (host: sepoliafaucet.com) in apps/laboratory/src/components/Wagmi/WagmiTransactionTest.tsx (line 136): https://sepoliafaucet.com

⚠️

🌐 Non-company domain introduced (host: www.infura.io) in apps/laboratory/src/components/Wagmi/WagmiTransactionTest.tsx (line 142): https://www.infura.io/faucet/sepolia

⚠️

🌐 Non-company domain introduced (host: sepoliafaucet.com) in apps/laboratory/src/components/Ethers/EthersTransactionTest.tsx (line 111): https://sepoliafaucet.com

⚠️

🌐 Non-company domain introduced (host: www.infura.io) in apps/laboratory/src/components/Ethers/EthersTransactionTest.tsx (line 117): https://www.infura.io/faucet/sepolia

Generated by 🚫 dangerJS against a615101

@github-actions
Copy link
Contributor

github-actions bot commented Nov 10, 2025

📦 Bundle Size Check

All bundles are within size limits

📊 View detailed bundle sizes

> @reown/appkit-monorepo@1.7.1 size /home/runner/work/appkit/appkit


> size-limit

@reown/appkit - Main Entry
Size limit:   80 kB
Size:         73.59 kB with all dependencies, minified and gzipped
Loading time: 1.5 s    on slow 3G
Running time: 865 ms   on Snapdragon 410
Total time:   2.4 s
@reown/appkit/react
Size limit:   230 kB
Size:         227.1 kB with all dependencies, minified and gzipped
Loading time: 4.5 s    on slow 3G
Running time: 2.6 s    on Snapdragon 410
Total time:   7 s
@reown/appkit/vue
Size limit:   80 kB
Size:         73.59 kB with all dependencies, minified and gzipped
Loading time: 1.5 s    on slow 3G
Running time: 1.4 s    on Snapdragon 410
Total time:   2.8 s
@reown/appkit-scaffold-ui
Size limit:   220 kB
Size:         207.84 kB with all dependencies, minified and gzipped
Loading time: 4.1 s     on slow 3G
Running time: 2 s       on Snapdragon 410
Total time:   6.1 s
@reown/appkit-ui
Size limit:   500 kB
Size:         13.15 kB with all dependencies, minified and gzipped
Loading time: 257 ms   on slow 3G
Running time: 91 ms    on Snapdragon 410
Total time:   348 ms

@github-actions
Copy link
Contributor

github-actions bot commented Nov 10, 2025

Coverage Report

Status Category Percentage Covered / Total
🔵 Lines 79.93% 38054 / 47609
🔵 Statements 79.93% 38054 / 47609
🔵 Functions 77.93% 4111 / 5275
🔵 Branches 86.5% 9235 / 10676
File CoverageNo changed files found.
Generated in workflow #16267 for commit a615101 by the Vitest Coverage Report Action

Co-Authored-By: enes@reown.com <enes@reown.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant