Skip to content

[WIP] Add CIP-0168 Value builtin scripts - #34

Draft
Unisay wants to merge 1 commit into
masterfrom
yura/issue-2406-value-builtins
Draft

Unisay wants to merge 1 commit into
masterfrom
yura/issue-2406-value-builtins

Conversation

@Unisay

@Unisay Unisay commented Nov 4, 2026 •

Copy link
Copy Markdown
Collaborator

Generate policies for policies, keepPolicies, dropPolicies and assetCount for PlutusV3/V4 with PLC 1.1.0/1.2.0. The semantic cases check complete filter results, policy ordering, ADA, negative quantities and cancellation, and the 256/257 input-list boundary. Six profiles vary distinct asset counts across one policy and multiple policies.

A spending validator checks the builtins on its own input and continuing output. Its two redeemer modes preserve either a chosen protocol policy or all native assets while allowing ADA to change. Both check keep/drop reconstruction and asset-count partitioning.

Source validation passed: build, formatting, HLint and pre-commit hooks; runtime builtin retention and PLC headers in all 148 envelopes; 144 offline policy expectations; 74 offline checks on hand-built spending contexts; and 48 negative-wrapper mutations.

The companion cardano-node-tests run passed 2 tests and 822 subtests (768 Value, 54 multiIndexArray), with no failures, errors or skips, in 672.38 seconds. It exercised all four ledger/PLC combinations, including confirmed state transitions with 5/20/68 Value entries, both restriction modes, invalid transitions, ADA increases/decreases, whole-script budgets and CPU/memory boundaries. Perturbing the 14 new cost-model parameters on compiled policies checked 224 exact resource deltas. All 148 fixtures match this source commit.

The run used the experimental Dijkstra/PV12 node/CLI integration pinned to Plutus 1ef5a0eef37772e35b1e587f7a3b0afa61be4358, complete 369-entry V3/V4 models and policyid.patch. db-sync was unavailable, so its optional checks did not run. The tests need batch-7 support and the 256-entry filter limit from IntersectMBO/plutus#8013. The compiler uses CHaP Plutus 1.72; its released evaluator predates that limit.

Refs IntersectMBO/plutus-private#2406

Generate PlutusV3/V4 policies for PLC 1.1.0 and 1.2.0, including
filter boundaries, complete Value comparisons and size profiles.

Add spending validators that exercise keep/drop duality and asset
counts on the state input and its continuing output.

Refs IntersectMBO/plutus-private#2406
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant