Skip to content

feat(nextjs-stablecoin-yield-pods): rework Pods example for ZeroDev batched deposits - #70

Open
avneesh0612 wants to merge 3 commits into
mainfrom
devin/1786077062-pods-zerodev-batched-deposit
Open

feat(nextjs-stablecoin-yield-pods): rework Pods example for ZeroDev batched deposits#70
avneesh0612 wants to merge 3 commits into
mainfrom
devin/1786077062-pods-zerodev-batched-deposit

Conversation

@avneesh0612

@avneesh0612 avneesh0612 commented Aug 7, 2026

Copy link
Copy Markdown
Contributor

Summary

Replaces the existing nextjs-stablecoin-yield-pods example with the Pods engineer's updated Next.js app that demonstrates batched deposits through ZeroDev smart wallets, then restores the shared example shell (header, logo, footer, and card-based page layout) used by the Aave/Morpho examples.

The previous example sent each Pods bytecode transaction in a loop with walletClient.sendTransaction. The new implementation requests GET /strategies/:strategyId/bytecode without output=userOperation, converts the returned bytecode[] into ZeroDev { to, value, data } calls, and submits the whole array as a single kernelClient.sendTransaction({ calls }) user operation. It also polls ZeroDev for a receipt and, if missing, queries Monad EntryPoint logs for the user operation hash.

Key changes

  • Replaced useTransactionOperations.ts / YieldInterface.tsx with useZeroDevBatchedDeposit.ts and BatchedPodsDeposit.tsx.
  • Added local Next.js API route handlers:
    • src/app/api/pods/deposit-bytecode — proxies the Pods bytecode request so PODS_API_KEY stays server-side.
    • src/app/api/monad/user-operation-inclusion — queries Monad eth_getLogs for the EntryPoint UserOperationEvent when ZeroDev has not indexed the receipt.
  • Added helper modules and Vitest tests:
    • zerodev-batch.ts / .test.ts
    • zerodev-errors.ts / .test.ts
    • pods-client.ts / .test.ts
    • pods-validation.ts
    • monad-inclusion.ts / .test.ts
  • Updated providers.tsx to register ZeroDevSmartWalletConnectorsWithConfig with an optional NEXT_PUBLIC_ZERODEV_RPC_URL override and to map Monad mainnet (chainId 143) via mergeNetworks.
  • Added vitest.config.ts and next-env.d.ts.
  • Restored shared example UI:
    • Added Header with DynamicLogo and a React-SDK DynamicButton.
    • Added Footer with the Dynamic logo and example-specific links.
    • Wrapped the page in the shared Providers/Header/Footer shell.
    • Moved the BatchedPodsDeposit form into a two-column card layout inside max-w-6xl and aligned the color tokens (white cards, #F9F9F9 page background, #DADADA borders, #030303 primary text).
    • Restored shared public assets (favicon.ico, logo-dark.png, logo-light.png, image-dark.png, image-light.png).
  • Regenerated pnpm-lock.yaml against the JFrog registry, downgrading jsdom to 29.1.0 to match available versions.

Verification

  • pnpm lint — passed
  • pnpm type-check — passed
  • pnpm test — 26 tests passed
  • pnpm build — passed

Follow-up

The docs recipe recipes/integrations/yield/stablecoin-yield-pods.mdx currently references the old useTransactionOperations.ts and YieldInterface.tsx files. If this example is merged, that recipe will need to be rewritten to match the new file structure and focused ZeroDev batched-deposit scope.

Link to Devin session: https://dynamicxyz.devinenterprise.com/sessions/4180a0421d5643e1abf1599253e25df5
Requested by: @fb-kimcodeashian

@vercel

vercel Bot commented Aug 7, 2026

Copy link
Copy Markdown

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

Project Deployment Actions Updated (UTC)
kamino Error Error Aug 10, 2026 2:14am
nextjs-iron-ramp Ready Ready Preview Aug 10, 2026 2:14am
predictions-market-demo Ready Ready Preview Aug 10, 2026 2:14am

Request Review

@vercel

vercel Bot commented Aug 7, 2026

Copy link
Copy Markdown

Deployment failed for project sidebar-example with the following error:

There is no GitHub account connected to this Vercel account.

@vercel

vercel Bot commented Aug 7, 2026

Copy link
Copy Markdown

Deployment failed for project dynamic-morpho with the following error:

There is no GitHub account connected to this Vercel account.

@vercel

vercel Bot commented Aug 7, 2026

Copy link
Copy Markdown

Deployment failed for project dynamic-gasless-starter with the following error:

There is no GitHub account connected to this Vercel account.

@vercel

vercel Bot commented Aug 7, 2026

Copy link
Copy Markdown

Deployment failed for project dynamic-aave with the following error:

There is no GitHub account connected to this Vercel account.

@vercel

vercel Bot commented Aug 7, 2026

Copy link
Copy Markdown

Deployment failed for project lifi with the following error:

There is no GitHub account connected to this Vercel account.

@vercel

vercel Bot commented Aug 7, 2026

Copy link
Copy Markdown

Deployment failed for project circle-gateway with the following error:

There is no GitHub account connected to this Vercel account.

@avneesh0612 avneesh0612 changed the title feat(nextjs-stablecoin-yield-pods): rework Pods example for ZeroDev b… feat(nextjs-stablecoin-yield-pods): rework Pods example for ZeroDev batched deposits Aug 7, 2026
@vercel

vercel Bot commented Aug 7, 2026

Copy link
Copy Markdown

Deployment failed for project blindpay with the following error:

There is no GitHub account connected to this Vercel account.

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.

3 participants