crates/holger-monetize-guest/Cargo.toml
[package]
name = "holger-monetize-guest"
workspace = "../../estate"
description = "holger's own monetize plugin: the holger product as a signed WASM guest — the six ops of the product contract (its meters, its estate lifecycle, its estate guardian), pure, with no door, socket, key or clock of its own"
version.workspace = true
edition = "2021"
license = "MIT"
publish = false
# **Why it lives in holger** (owner 2026-09-25, "the product registers its own
# plugin"): holger-server (`metered`) registers ITS OWN plugin into the front's
# monetize, and the metered holger build carries it, built and signed from the
# same commit as the server — so the plugin and the server it speaks to can never
# be two versions. It was `monetize/guests/holger` in open monetize until
# 2026-09-27; it moved here the way gunnar's did (`gunnar/crates/
# gunnar-monetize-guest`), and it compiles holger's OWN `proto/holger.proto`
# instead of a hand-vendored mirror. The linked plugin `monetize/products/holger`
# keeps its own mirror and drift guard, and the parity tests that set this guest
# against monetize's commercial crates live there, beside the crates they link.
#
# Built for wasm32-unknown-unknown by the commercial monetize-impl's Build Thing row
# `holger-guest` (`manifest_dir = "../holger"`, signed `purpose = "plugin"`).
#
# **Not in any holger server tier.** Nothing in holger depends on this crate;
# holger-server `metered` carries only the signed `.wasm` bytes it is handed
# (`server/lib/build.rs`), never this code. The open build is untouched.
# `cdylib` produces the `.wasm` on wasm32-unknown-unknown; `rlib` lets a native
# test drive the same `Guest` through `dispatch`, and lets monetize's parity
# tests link it.
[lib]
name = "holger_monetize_guest"
crate-type = ["cdylib", "rlib"]
# wasm32-unknown-unknown, not wasip1: this module opens no file, owns no socket
# and reads no clock of its own — each is a host door — so a wasip1 build would
# import `wasi_snapshot_preview1`, which the host does not define and refuses by
# name.
#
# The monetize crate is OPEN monetize, from crates.io; an estate checkout patches it to the
# sibling (`.cargo/estate-siblings.toml`). 0.2.0 (monetize v2.0 P2 T13, A28 M2) is the six-op
# contract: no grants, no gRPC half, so no protos and no prost here either.
[dependencies]
monetize-product-guest = "0.3.0"
# Op 91's answer type (`lifecycle.lay_plan`, a plan as JSON).
serde_json = "1"
[dev-dependencies]
# The test dispatch helper's bounds; the SDK's wire is serde and a test that
# encodes a request spells the bound itself.
serde = "1"