Skip to content

Migrate transaction-building to evm-actions-api (v0.1.0) - #1

Merged
ungaro merged 21 commits into
mainfrom
feat/evm-actions-migration
May 27, 2026
Merged

Migrate transaction-building to evm-actions-api (v0.1.0)#1
ungaro merged 21 commits into
mainfrom
feat/evm-actions-migration

Conversation

@ungaro

@ungaro ungaro commented May 26, 2026

Copy link
Copy Markdown
Member

Summary

Makes nest the canonical Plume CLI for both human (private-key broadcast) and agentic (--dry-run -o json + --address) use by moving transaction-building onto the evm-actions-api HTTP service.

  • Route same-chain deposit/withdraw through mint/build-tx and redeem/build-tx; keep cross-chain boring deposit-and-bridge built locally behind --bridge.
  • Add EvmActionsClient (retry-once on 5xx, clean 4xx {error} surfacing) alongside the untouched NestApiClient.
  • New commands: bridge (local LayerZero OFT send), claim {pending,submit}, instant-redeem {quote,liquidity,submit}, update-redeem {pending,submit}, auto-claim {status,enable,disable}.
  • Introduce the TxBundle stable JSON contract (decimal value, per-route label set, extra passthrough) for agentic signing; drop the private-key requirement for dry-runs (use --address).
  • Remove dead client-side encoding (predicate-message building, AtomicQueue, UnsignedTx); cargo clippy --all-targets -- -D warnings clean.
  • Fixes found en route: self-update no longer panics inside the async runtime (every invocation used to crash); support the boringNest vault type the API returns for nest-treasury-vault.
  • Bump to v0.1.0; rewrite README; add design spec + implementation plan.

New env var: EVM_ACTIONS_API_BASE (default https://api-dev-test.nest.credit/v1/actions). Chains served by the API are pinned in ACTIONS_API_CHAINS (1, 56, 9745, 42161, 98866; no Worldchain).

Test Plan

  • cargo test (19 unit/wiremock tests), cargo clippy --all-targets -- -D warnings, cargo build --release — all green
  • Live plumbing verified against the dev API: nest-treasury-vault (boringNest) parses, decimals resolve, requests reach the API, 4xx errors surface cleanly
  • Run with a Predicate-compliant address + a real ETHEREUM_RPC_URL to confirm happy-path output:
    • deposit --vault nest-treasury-vault --asset 0x55d3…(USDT) --amount 1 --chain bsc --address <you> --dry-run -o json → 2-tx bundle, shareDecimals: 18
    • deposit --vault nest-elixir-vault --asset 0xa0b8…(USDC) --amount 1 --chain ethereum --address <you> --dry-run -o json → 2-tx boring bundle, shareDecimals: 6
    • bridge --vault nest-treasury-vault --shares 0.1 --from-chain ethereum --to-chain plume --address <you> --dry-run -o json → 1-tx send bundle, non-zero value
    • claim pending --vault nest-treasury-vault --redemption-asset <valid plume asset> --user <you> --chain plume -o json → claimable-shares structure

Release: tag v0.1.0 after merge to build the three platform tarballs (aarch64-darwin, x86_64-darwin, x86_64-linux-gnu).

ungaro added 21 commits May 26, 2026 18:02
@ungaro
ungaro merged commit b513ada into main May 27, 2026
1 check passed
@ungaro
ungaro deleted the feat/evm-actions-migration branch May 27, 2026 00:11
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