Skip to content

fix: merge conflicts - #98

Merged
rongquan1 merged 3 commits into
developfrom
fix/merge-conflicts
Jul 31, 2026
Merged

fix: merge conflicts#98
rongquan1 merged 3 commits into
developfrom
fix/merge-conflicts

Conversation

@RishabhS7

Copy link
Copy Markdown
Contributor

Resolve code conflicts and code rabit comments

RishabhS7 and others added 3 commits July 31, 2026 14:51
…ionless

permissionless@0.3.7 has optional peer ox@^0.11.3 but viem@2.55.1 ships
ox@0.14.30, which is outside that range. Adding overrides.permissionless.ox
in package.json pins the resolution to 0.14.30 so npm resolves cleanly
without the blanket legacy-peer-deps flag.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
@coderabbitai

coderabbitai Bot commented Jul 31, 2026

Copy link
Copy Markdown
Contributor

Important

Review skipped

Auto reviews are disabled on base/target branches other than the default branch.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro Plus

Run ID: e02b7258-64cd-4a40-ae62-a5d12a9fb30b

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@rongquan1
rongquan1 merged commit b9371cd into develop Jul 31, 2026
5 checks passed
@rongquan1
rongquan1 deleted the fix/merge-conflicts branch July 31, 2026 09:57
rongquan1 pushed a commit that referenced this pull request Jul 31, 2026
* feat: gasless transactions (#89)

* chore: e2e tests for txns

* feat: gasless transactions

* fix: add legacy-peer-deps to resolve permissionless/ox/viem conflict

permissionless@0.3.7 declares peerOptional ox@^0.11.3 but viem@2.55.1
ships ox@0.14.30, which is out of range. trustvc@2.15.0-beta.2 requires
both viem@^2.53.1 and permissionless@^0.3.6, so neither can be downgraded.
legacy-peer-deps makes npm skip the conflicting optional peer check.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* chore: regenerate package-lock.json with sentry and react-ga4 entries

Lock file was missing @sentry/react, @sentry/vite-plugin, and react-ga4
that were added during the upstream merge, causing npm ci to fail in CI.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* fix: move whitelist fallback tests into gasless section for CI compatibility

The two whitelist-fallback tests require hasGaslessConfig=true (PIMLICO_API_KEY
set) to reach the whitelist check. In CI without a .env file the module-level
constant is undefined, so the hook skips delegation/whitelist entirely and the
assertions on checkPaymasterWhitelist always failed.

Moving them into the gasless section which uses vi.stubEnv + vi.resetModules +
dynamic imports ensures PIMLICO_API_KEY is set when these tests run.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* fix: add @playwright/test explicitly to ensure playwright-core is installed

synpress-cache imports playwright-core at runtime. Since @playwright/test
was only a transitive peer dep of synpress (not listed directly), it was
not installed under legacy-peer-deps, causing ERR_MODULE_NOT_FOUND in CI
during the e2e:setup-wallet step. Pinning to 1.48.2 matches the version
already resolved in the lock file.

* fix: exclude amoy-verify and pol-verify specs from main e2e run

The pattern /verify-.*\.spec\.ts/ only matched files starting with
"verify-", leaving amoy-verify.spec.ts and pol-verify.spec.ts in the
main MetaMask suite. Those specs hit external RPC endpoints (Amoy/Polygon
mainnet) which are unreliable in CI and have no MetaMask dependency.

Widened to /.*verify.*\.spec\.ts/ so all verify specs (local, amoy, pol)
run only via playwright.verify.config.ts.

* chore: remove push trigger from e2e workflow

E2E runs on every push to main/develop were expensive and unnecessary.
Keeping only pull_request (gates PRs) and workflow_dispatch (manual runs).

* fix: move @testing-library/dom to devDeps; disable e2e retries on dirty chain

- @testing-library/dom belongs in devDependencies (test-only, not shipped)
- retries disabled in playwright.config.ts: every spec mutates Hardhat chain
  state (transfer/reject/return), so a retry after partial failure hits an
  already-modified chain and fails for a different reason — retries here
  give false signal, not recovery

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* fix: apply CodeRabbit review fixes for gasless transaction feature

- Extract shared makeGaslessHook factory to eliminate ~90-line duplication
  across 10 hooks; each hook is now a ~20-line thin wrapper
- Add paymasterStorage.ts helper with custom event for same-tab reactivity
- Make ActionSelectionForm reactive to paymaster localStorage changes
- Add try/catch around eligibility checks to fall back to paid path on RPC failure
- Add tokenRegistryAddress + tokenId to hasGaslessConfig for AcceptReturned/RejectReturned
- Fix blank error messages for unknown/gasless errors with Error.message fallback
- Add aria-invalid, aria-describedby, role="alert" to paymaster address input
- Merge duplicate .check-gasless-content-success-text CSS rules
- Replace hard-coded pixel dimensions with fluid values in pay-on-behalf CSS
- Replace gap shorthand with column-gap to preserve row-gap: 0px

* fix: show both children and errorMessage in DocumentTransferMessage

Previously the component rendered errorMessage OR children — never both.
After the error-fallback fix in makeGaslessHook (e.message for unknown
errors), errorMessage became truthy for contract-level reverts, hiding
address/context children that E2E tests depend on.

Now children always render; errorMessage appends below when present,
giving users both the context (current addresses) and the error detail.

* chore: reset paymaster address on page reload (in-memory store)

Swap localStorage for a module-level Map so the paymaster address
clears on every page load. Also drops the cross-tab 'storage' event
listener in ActionSelectionForm since it is no longer relevant.

TODO: restore localStorage persistence when the feature is ready.

---------

Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>

* fix: apply CodeRabbit review fixes (round 2) (#94)

* fix: apply CodeRabbit review fixes (round 2)

- Icons: use stroke prop for line/circle in warning icon (was hardcoded #FF8200)
- VerifyResult: remove debug console statements leaking RPC URL and wallet identifiers
- checkDelegation: add 10s AbortController timeout to RPC fetch
- AcceptReturned/RejectReturned: add tokenId validation to directGuard
- useContactForm: validate presigned.length === pendingItems.length before upload
- index.css: replace fixed height/width on gasless error classes with min-height/auto

* chore: pin @trustvc/trustvc to exact version 2.15.0-beta.2

Remove caret range to prevent unintended upgrades to future beta versions.

* fix: merge conflicts (#98)

* fix: code rabbit changes

* chore: replace legacy-peer-deps with targeted ox override for permissionless

permissionless@0.3.7 has optional peer ox@^0.11.3 but viem@2.55.1 ships
ox@0.14.30, which is outside that range. Adding overrides.permissionless.ox
in package.json pins the resolution to 0.14.30 so npm resolves cleanly
without the blanket legacy-peer-deps flag.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* fix: code rabit comments

---------

Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>

* chore: wire VITE_PIMLICO_API_KEY into dev and prod deploy workflows (#99)

Without this key at build time hasGaslessConfig evaluates to false in
makeGaslessHook, causing every transaction to fall back to the direct
(payable) path even after paymaster verification succeeds.

---------

Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.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.

2 participants