mainnet prep: tighten max_send_lovelace default + cost model docs

max_send_lovelace default is now network-aware: mainnet 10 ADA,
preprod/preview 100 (t)ADA. Mainnet handles real value, so the cap
should bite earlier — anything > 10 ADA needs explicit force=true.
Test ada on preprod/preview is faucet-replaceable, no need to
sand off the test surface. New regression
mainnet_default_max_send_is_tighter locks the rule in.

PLUTUS_V3_COST_MODEL_PREPROD docstring updated: confirmed identical
to mainnet PV3 cost model (preprod epoch 286 = mainnet epoch 629,
both 297 params, byte-identical). Cost models are protocol-version
parameters, not network parameters; using the same constant on
both is correct. Re-snapshot from mainnet Koios after any major
hard fork. Naming kept as _PREPROD for git churn reasons.
This commit is contained in:
Sulkta 2026-05-04 21:09:31 -07:00
parent 2fc4474639
commit 667c55c75e
2 changed files with 43 additions and 4 deletions

View file

@ -1,5 +1,17 @@
// Conway-era preprod Plutus V3 cost model, epoch 286 (2026-05).
// 297 params. Pull fresh via koios epoch_params after major hard forks.
// Conway-era Plutus V3 cost model, 297 params. Snapshot from preprod
// epoch 286 (2026-05) but **identical to mainnet epoch 629** —
// confirmed 2026-05-04 by parallel Koios `epoch_params` fetch from
// `api.koios.rest` and `preprod.koios.rest`. Cost models are
// protocol-version parameters, not network parameters; they only
// diverge if a network does an experimental hard fork off-cycle.
//
// Used by both preprod and mainnet Plutus paths today. Re-snapshot
// from mainnet Koios after any major hard fork. If preprod and
// mainnet ever diverge, split into two constants and select by
// `Network`.
//
// Naming kept as `_PREPROD` for git churn reasons; treat as
// "current Plutus V3 protocol parameters."
pub const PLUTUS_V3_COST_MODEL_PREPROD: [i64; 297] = [
100788, 420, 1, 1, 1000, 173, 0, 1,
1000, 59957, 4, 1, 11183, 32, 201305, 8356,