Pin to the repo rust-toolchain and refresh workspace/crate manifests across openpay, eoc, arl, smart-byte, and joule-ui, and update the jouleclaw omni/policy/sandbox crates accordingly. No wire-format or conformance-vector changes. Co-Authored-By: Claude Opus 4.8 <[email protected]>
38 lines
1.3 KiB
TOML
38 lines
1.3 KiB
TOML
[package]
|
|
name = "demo-merchant"
|
|
version.workspace = true
|
|
edition.workspace = true
|
|
rust-version.workspace = true
|
|
license.workspace = true
|
|
publish = false
|
|
description = "Local pilot-merchant demo. Generates a fresh EVM wallet, listens for op-server webhooks, polls Base for USDC balance changes, and exits on the first observed payment."
|
|
|
|
[[bin]]
|
|
name = "demo-merchant"
|
|
path = "src/main.rs"
|
|
|
|
[dependencies]
|
|
# Re-use the production EVM gateway's address-derivation primitives.
|
|
op-rails-crypto = { path = "../../crates/op-rails-crypto", features = ["evm"] }
|
|
|
|
# Fresh-keypair generation: secp256k1 ECDSA via k256, matching what
|
|
# LocalKeyEvmSigner uses on the receive side of this stack.
|
|
k256 = { workspace = true }
|
|
sha3 = { workspace = true }
|
|
hex = { workspace = true }
|
|
|
|
# Async runtime + HTTP server for the inbound op-server webhook.
|
|
tokio = { workspace = true }
|
|
axum = { workspace = true }
|
|
|
|
# Async HTTP client for polling the Base JSON-RPC. We bring our own
|
|
# (non-workspace) reqwest config because the workspace pins the
|
|
# blocking client; the demo uses async to overlap webhook + poll.
|
|
reqwest = { version = "0.13", default-features = false, features = ["json", "rustls"] }
|
|
serde_json = { workspace = true }
|
|
serde = { workspace = true }
|
|
|
|
clap = { workspace = true }
|
|
|
|
tracing = { workspace = true }
|
|
tracing-subscriber = { workspace = true }
|