Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
23 changes: 0 additions & 23 deletions .github/ISSUE_TEMPLATE/task.md

This file was deleted.

34 changes: 17 additions & 17 deletions .github/workflows/bindings.yml → .github/workflows/crates.yml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
name: Bindings
name: Crates

on:
push:
Expand All @@ -8,10 +8,13 @@ on:

jobs:
tests:
name: Bindings Tests
name: Crates Tests
runs-on: macos-latest
env:
ALCHEMY_API_KEY: ${{ secrets.ALCHEMY_API_KEY }}
QUEUE_BASE_URL: ${{ secrets.QUEUE_BASE_URL }}
QUEUE_AUTH_TOKEN: ${{ secrets.QUEUE_AUTH_TOKEN }}
RISC0_SKIP_BUILD_KERNELS: true

steps:
- name: Checkout repository
Expand All @@ -20,6 +23,11 @@ jobs:
- name: Install just
uses: extractions/setup-just@v3

- name: Install Foundry
uses: foundry-rs/foundry-toolchain@v1
with:
version: v1.7.0

- name: Install Rust
uses: dtolnay/rust-toolchain@stable
with:
Expand All @@ -28,30 +36,22 @@ jobs:
- name: Show Rust version
run: rustc --version

- name: Install Foundry
uses: foundry-rs/foundry-toolchain@v1
with:
version: v1.7.0

- name: Show Foundry version
run: forge --version

- name: Restore dependencies cache
uses: actions/cache@v4
with:
path: |
target
key: rust-${{ runner.os }}-${{ hashFiles('**/Cargo.lock') }}
key: rust-${{ runner.os }}-${{ hashFiles('Cargo.lock') }}
restore-keys: rust-

- name: Run rustfmt
run: just bindings-fmt-check
run: just crates-fmt-check

- name: Build Bindings
run: just bindings-build
- name: Build
run: just crates-build --features e2e

- name: Lint Bindings
run: just bindings-lint
- name: Lint
run: just crates-lint

- name: Run Tests
run: just bindings-test
run: just crates-test --features e2e
40 changes: 40 additions & 0 deletions CONTEXT.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
# Anoma EVM Protocol Adapter

The protocol adapter contract and integration-test layer that settles **Anoma
Resource Machine** transactions on EVM-compatible chains.

## Language

**Protocol Adapter (PA)**:
The EVM contract that verifies and settles ARM transactions on-chain — checking
the compliance, logic, and delta proofs and updating the commitment tree and
nullifier set. Use "protocol adapter" (not "verifier" or "settler") for the
contract.

**Anoma Resource Machine (ARM)**:
The state model the PA settles: state is a set of immutable **resources** that
transactions consume and create. The off-chain ARM types live in `anoma-rm-risc0`.

**Resource**:
The unit of ARM state. Created and consumed by actions; committed to the
commitment tree and spent via a nullifier.

**Action**:
A bundle of consumed and created resources proven together — one compliance unit
plus the per-resource logic proofs.

**Transaction**:
A set of actions plus a delta proof, submitted to the PA's `execute` function.

**Compliance / Logic / Delta**:
The three proof kinds the PA verifies — compliance for resource bookkeeping, logic
for each resource's application rules, delta for value balance. Aggregation folds
them into a single proof.

**Commitment Tree / Nullifier Set**:
The PA's on-chain state — a Merkle tree of resource commitments and the set of
spent nullifiers.

**Forwarder**:
An application contract (e.g. the ERC20 or generic-call forwarder) that the PA
drives to enact EVM side effects on behalf of an action. Each lives in its own repo.
Loading
Loading