|
Some checks failed
ci.yml / feat(transport): get_machine_config RPC — server-delivered machine config (#41) (pull_request) Failing after 0s
A paired ATM pulls its operator pubkey + fee config over the already-
authenticated kind-21000 transport, instead of the operator pubkey being
provisioned into the machine's .env and the fee config learned only from an
operator-signed kind-30078 broadcast. This lets a seed-only machine (blank
.env, scanned spire-seed) leave "awaiting configuration" with zero per-machine
provisioning — closing the gap surfaced by bitspire#70. Client half: bitspire#71.
The transport is already per-machine authenticated (the ATM signs with its
bunker-minted spire key == dca_machines.machine_npub), so the handler resolves
the exact machine → operator from the verified request.sender_pubkey — same
lookup as cashin_transport, no client-supplied trust — and returns only the
caller's own config. Returns {operator_pubkey, fee_config, fiat_code,
machine_npub, wallet_id, created_at}; fee_config is None until the operator has
a super-config. Reuses build_fee_payload + get_account; AUTH_ACCOUNT; registers
soft-failing (older lnbits) like the roster hook. kind-30078 push stays
dual-run for live mid-run updates.
6 tests; full suite 235 pass; black + ruff clean.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
||
|---|---|---|
| .. | ||
| __init__.py | ||
| conftest.py | ||
| test_calculations.py | ||
| test_cassette_configs.py | ||
| test_cassette_state_consumer.py | ||
| test_collision_guard.py | ||
| test_deposit_currency.py | ||
| test_fee_cap_validation.py | ||
| test_fee_mismatch_recording.py | ||
| test_fee_publish_triggers.py | ||
| test_fee_transport.py | ||
| test_machine_config_transport.py | ||
| test_nip44_v2.py | ||
| test_nostr_attribution.py | ||
| test_operator_split_legs.py | ||
| test_pair_endpoint.py | ||
| test_pairing.py | ||
| test_principal_based_fees.py | ||
| test_roster_resolver.py | ||
| test_unpaired_machine_guards.py | ||