@mayflower-sys/evm-avm-client-demo
v202607.1306.150
Published
Demo that uses the AVM client SDK to interact with an AVM program.
Readme
@mayflower-sys/evm-avm-client-demo
A runnable, tutorial-style reference for talking to the AVM (Autonomous Value
Machine) on EVM with @mayflower-sys/evm-avm-sdk. Every
example is a real test that runs against a local
anvil node preloaded with a "golden"
snapshot — a fully deployed and wired AVM that already contains one tenant.
Nothing is deployed by the examples; the world already exists, and the code acts
as that tenant's admin and downward.
The model in one minute
The SDK never touches the network — it just packs an interaction into pure data, and you do the I/O:
- A read is packed as a
PackedCall(Entities.X.fetchMsg(...)), run with aneth_call, and decoded into typed state. - A write is packed as a
PackedTx(Ix.X.pack(...)), then signed and sent by a wallet. - Event logs off a receipt decode via
Events.*into a typed tagged union.
src/clients.ts holds the thin transport glue (sendPackedCall,
sendPackedTxAndAssertSuccess) that wires those pure payloads to a
viem client.
Run it
anvil must be on your PATH (it ships with
Foundry).
pnpm test # run the whole tour once
pnpm test:watch # re-run on change
pnpm anvil # boot a standalone golden-state node on :8545 to poke atRead it in this order
Each file is heavily commented and reads top-to-bottom:
src/smoke.test.ts— start here. Proves the snapshot loaded and shows the simplest read (fetch the tenant).src/market-group-admin.test.ts— a tenant admin opens a market group, then a group admin re-prices it.src/create-market.test.ts— create a linear bonding-curve market, then read its curve back.src/swap.test.ts— the four trade instructions (buy/sell, each in exact-input and exact-output flavors) against a live market.
Supporting pieces: src/manifest.ts (the golden world's addresses),
src/fixtures.ts (the Vitest fixtures every test receives), src/clients.ts
(transport glue), and src/groups.ts / src/erc20.ts (small helper wrappers).
License
FSL-1.1-MIT.
