Skip to content

feat(example): Pendle demo real-tx readiness on Arbitrum Sepolia#26

Merged
mike-diamond merged 14 commits into
mainfrom
feat/arbitrum-pendle-real-tx
Jun 8, 2026
Merged

feat(example): Pendle demo real-tx readiness on Arbitrum Sepolia#26
mike-diamond merged 14 commits into
mainfrom
feat/arbitrum-pendle-real-tx

Conversation

@mike-diamond

Copy link
Copy Markdown
Contributor

What

Readies the Pendle demo (Scenario A) to really execute executeEnvelope on Arbitrum Sepolia, where the contracts are now deployed. Syncs the addresses, fixes a latent typecheck error main inherited from the ERC last-call merge, and fills the judge-facing README. Branch off main (which now has the merged Week 2 flow, #25).

Changes

  • Sync deployed addresses - contracts/deployed.json + decoder-data/* now carry the live Arbitrum Sepolia AgentPolicyGate / MockPendleRouter addresses, so the deploy-pending banner clears and the agent route builds real envelopes.
  • Fix latent typecheck on main - app/api/decode/route.ts now passes operation: 'call' to decodeCall. After the ERC-8265 last-call merge, @txkit/tx-protocol's EvmCall.operation became required; CI builds packages/** only, so the example's break was latent. This PR makes the example typecheck again.
  • README - the Arbitrum Sepolia "Live on-chain" table is filled with the gate + router addresses + Arbiscan links + the contract deploy-tx links. The executeEnvelope row stays a placeholder until the demo run.

Verified

  • Deploy read-verified on live Arbitrum Sepolia (no keys, read-only): gate + router have bytecode; gate.agentSigner() = 0xEC6613578be203e23e360A3985EA1601435D5907; gate.allowedRecipients(router) = true; gate.spendLimit() = 0 (the Pendle swap forwards value 0, so it passes).
  • tsc --noEmit clean · next build clean (9 routes) · forge test 20/20 · em-dash scan clean.

For Mike (the real tx - needs a funded key you hold)

  1. .env.local: AGENT_SIGNER_PRIVATE_KEY for 0xEC66...5907 (server-side EIP-712 envelope signing), ANTHROPIC_API_KEY, ARB_SEPOLIA_RPC_URL.
  2. Fund a user wallet with Arbitrum Sepolia ETH for gas.
  3. Run /flow-a end to end (or SmokeExecuteEnvelope, see DEPLOY.md) -> capture the executeEnvelope tx hash -> paste it into the README Arbitrum Sepolia table.

Pending

  • Demo polish (visible agent-reasoning indicator + policy-gate green-checkmarks) awaits a UI/UX design - the clickable Arbiscan tx link already exists in SignEnvelopeActions.

Do not merge - review first.

🤖 Generated with Claude Code

@vercel

vercel Bot commented Jun 5, 2026

Copy link
Copy Markdown

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

Project Deployment Actions Updated (UTC)
txkit-docs Ready Ready Preview, Comment Jun 5, 2026 1:15pm
txkit-land Ready Ready Preview, Comment Jun 5, 2026 1:15pm
txkit-story Ready Ready Preview, Comment Jun 5, 2026 1:15pm

…router + real executeEnvelope tx

Deploy MockPendleRouter to Robinhood Chain testnet and allow-list it on the existing AgentPolicyGate, then land a real non-reverting executeEnvelope via SmokeExecuteEnvelope - the AI Agentic category needs a real tx, not a preview. Sync addresses + tx hashes into deployed.json, decoder-data, and the judge-facing README table.

Robinhood Chain (Arbitrum Orbit) executes the cancun/PUSH0 bytecode unchanged; forge's EIP-3855 warning is only a stale chain-id allowlist, so no evm_version downgrade was needed and the Arbitrum default build is untouched (20 forge tests pass).

Gate   0x03008A57b9f1FA575D891a26b70608381D1Ab19E
Router 0xDCF04578bD2C379dc6BaD97bD21A37aC65F53D51
ExecTx 0xfe39ae63191998fb6af0c4fc9868aa7ad7b4c17a506f2f9a22ffee02f17fefcc
…ge table

Ran SmokeExecuteEnvelope against Arbitrum Sepolia (gate 0x8C696D..., router 0x92d8a5...) - status 1, EnvelopeExecuted + SwapExactTokenForPt events. Fills the last 0x__PENDING__ row in the judge-facing README; both chains now show a real agent-executed tx.

ExecTx 0x97ca441d66a1a934f94de1cde628cde145359f45e114270184894f35cadb9c3a
…ification

The hardcoded V1 arbiscan url (api-sepolia.arbiscan.io/api) was deprecated in Etherscan's 2025 V2 migration and now rejects requests ("deprecated V1 endpoint"). Dropping the url lets forge resolve the V2 unified endpoint from --chain. AgentPolicyGate + MockPendleRouter are now verified on Arbiscan; this also unblocks --verify in DeployArbSepolia.
Anthropic Claude stays the preferred provider when ANTHROPIC_API_KEY is
set; otherwise the route uses the free, OpenAI-compatible Groq endpoint
when GROQ_API_KEY is present. Model call is extracted to src/agent/llm.ts
so zod validation, envelope build and EIP-712 signing stay provider-
agnostic. No new dependency - Groq is reached via a plain fetch.
@mike-diamond mike-diamond merged commit 82a226b into main Jun 8, 2026
9 of 15 checks passed
@mike-diamond mike-diamond deleted the feat/arbitrum-pendle-real-tx branch June 8, 2026 09:42
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