Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
27 changes: 16 additions & 11 deletions agent_docs/multi_index_array.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,10 @@

Issue: [plutus-private#2261](https://github.com/IntersectMBO/plutus-private/issues/2261).
The builtin takes the array first, unlike the older signature in the issue.
The tests target PV12 with PlutusV3 and PlutusV4 / PLC 1.1.0. The node and CLI
must both use a Plutus revision that activates batch7 at PV12 in both languages;
a development version number alone does not establish that activation.
The tests target PV12 with PlutusV3 and PlutusV4, each compiled for PLC 1.1.0 and
1.2.0. The node and CLI must both use a Plutus revision that activates batch7 at
PV12 in both languages; a development version number alone does not establish
that activation.

## Established practice

Expand All @@ -19,16 +20,20 @@ the complete conformance suite or its golden budgets.
The test reuses the chunked funding/subtest runner, caches funded addresses, and
checks confirmed transaction outputs and optional db-sync records. Its fixture locks
governance and Plutus resources and uses the cluster pools. When necessary, it
enacts one cost-model update for every tested language, then marks the cluster for
respin. The update can require three epochs; the fixture skips this setup on
long-epoch testnets before doing any governance work. All PlutusV3 scenarios and
then all PlutusV4 scenarios run as subtests of one test, so both languages share
this setup. Separate parametrized tests would each pay for the update and a respin.
marks the cluster for respin before proposing one cost-model update for every
tested language. The update can require three epochs; the fixture skips this
setup on long-epoch testnets before doing any governance work. All four ledger/Core
combinations run as subtests of one test and share this setup. Each combination
reuses the same scenario runner, budget-growth checks and raw budget tests.
Separate parametrized tests would each pay for the update and a respin.

The PlutusV4 policies have the same code as the PlutusV3 ones, because the
policies don't read the script context. Only the envelope `type` differs. The
PlutusV4 scenarios are skipped, without skipping PlutusV3, when the transaction
era is older than Dijkstra or the CLI cannot decode the PlutusV4 policies.
policies don't read the script context. Only the envelope `type` differs between
languages for a given Core version. The scenario definitions are shared between
both Core versions and compiled separately with their respective target versions.
Known batch7 decoding incompatibilities produce skips per combination; both
PlutusV4 variants are skipped when the transaction era is older than Dijkstra.
Other decoder errors, including missing artifacts, fail setup.

## Scenario selection

Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
{
"type": "PlutusScriptV3",
"description": "failingMultiIndexArrayEmptyPolicyScript_V3_120",
"cborHex": "58b5010200339800aba0abdaab9cabe548888c8c8c8c8888ca4cdc4a400060106a00a66012002600e0073263300a49011b756e726561636861626c65206e65676174697665206c656e6774680049a930c028c01400cc8cc00400448004884a4006450030029a9980280289000800b000191800800914800d2f581223300a00233004004001191800800914800d2f581223300900233004004001191800800914800d20009119b8048008cc010010004800400d2000c001"
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
{
"type": "PlutusScriptV3",
"description": "failingMultiIndexArrayHugeNegativePolicyScript_V3_120",
"cborHex": "58cb010200339800aba0abdaab9cabe548888c8c8c8c8888ca4cdc4a400060106a00a66012002600e0073263300a49011b756e726561636861626c65206e65676174697665206c656e6774680049a930c028c01400cc8cc00400448004884a4006450030029a9980280289000800b000191800800914800d2f581223300a00233004004001191800800914800d2f581223300900233004004001191800800914800d20009119b8048008cc010010004801a4029801a4051801a40798000801a41fffffffffffffffffe0780001"
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
{
"type": "PlutusScriptV3",
"description": "failingMultiIndexArrayHugePositivePolicyScript_V3_120",
"cborHex": "58cb010200339800aba0abdaab9cabe548888c8c8c8c8888ca4cdc4a400060106a00a66012002600e0073263300a49011b756e726561636861626c65206e65676174697665206c656e6774680049a930c028c01400cc8cc00400448004884a4006450030029a9980280289000800b000191800800914800d2f581223300a00233004004001191800800914800d2f581223300900233004004001191800800914800d20009119b8048008cc010010004801a4029801a4051801a40798000801a410101010101010101000980001"
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
{
"type": "PlutusScriptV3",
"description": "failingMultiIndexArrayLateInvalidPolicyScript_V3_120",
"cborHex": "58ca010200339800aba0abdaab9cabe548888c8c8c8c8888ca4cdc4a400060106a00a66012002600e0073263300a49011b756e726561636861626c65206e65676174697665206c656e6774680049a930c028c01400cc8cc00400448004884a4006450030029a9980280289000800b000191800800914800d2f581223300a00233004004001191800800914800d2f581223300900233004004001191800800914800d20009119b8048008cc010010004801a4029801a4051801a40798000801a4001801a4005801a400d80001"
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
{
"type": "PlutusScriptV3",
"description": "failingMultiIndexArrayNegativePolicyScript_V3_120",
"cborHex": "58ca010200339800aba0abdaab9cabe548888c8c8c8c8888ca4cdc4a400060106a00a66012002600e0073263300a49011b756e726561636861626c65206e65676174697665206c656e6774680049a930c028c01400cc8cc00400448004884a4006450030029a9980280289000800b000191800800914800d2f581223300a00233004004001191800800914800d2f581223300900233004004001191800800914800d20009119b8048008cc010010004801a4029801a4051801a40798000801a4001801a4005801a400380001"
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
{
"type": "PlutusScriptV3",
"description": "failingMultiIndexArrayOverLimitPolicyScript_V3_120",
"cborHex": "58d60102009800aba0abdaab9cabe548888c8c8c8c8c8c88ca4cdc4a400060106a00866012002600e0073263300a49011b756e726561636861626c65206e65676174697665206c656e6774680049a930c028c016006902a600030024820840c8cc00400448004884a4006450030029a9980280289000800b00019180080091499b890014800300348002646600600600266e0400520026000323001001229001a5eb02446601400466008008002323001001229001a5eb02446601200466008008002323001001229001a400122337009001198020020009"
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
{
"type": "PlutusScriptV3",
"description": "failingMultiIndexArrayUpperBoundPolicyScript_V3_120",
"cborHex": "58c2010200339800aba0abdaab9cabe548888c8c8c8c8888ca4cdc4a400060106a00a66012002600e0073263300a49011b756e726561636861626c65206e65676174697665206c656e6774680049a930c028c01400cc8cc00400448004884a4006450030029a9980280289000800b000191800800914800d2f581223300a00233004004001191800800914800d2f581223300900233004004001191800800914800d20009119b8048008cc010010004801a4029801a4051801a40798000801a400d80001"
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
{
"type": "PlutusScriptV3",
"description": "succeedingMultiIndexArrayDataPolicyScript_V3_120",
"cborHex": "5901380102009800aba0abdaab9cabe548888c8c8c8c88c8c8ca660024466ebc008006003801801e00698102182a00c00c00f0034c0108477061796c6f616400c000150054c98cc02924011e6d756c7469496e646578417272617920446174612073656c656374696f6e0049a930c8cc004004cc024008c022006900260069000600690026006900160000452003228018014cc0100100058000c024c01600698102182a00c00d300108477061796c6f616400c00c00700006e9cc00e0069001600690026006900360000c8cc0040044800488488a400b20034a3224a0914801d2848a4cc01c01000a9433001007801c005533009009120010323001001229001a5eb8244660146ea0008cc0100100046460020024520034bd70488cc024008cc0100100046460020024520034bd60488cc020008cc01001000401"
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
{
"type": "PlutusScriptV3",
"description": "succeedingMultiIndexArrayPolicyScript_V3_120",
"cborHex": "59015b0102009800aba3aba0abdaab9cabe5488888c8c8c8c8c8c88c8c8c8c8ca6660024466e1c008006005801a40a1801a40290041500752864c044006942602200a4c98cc0392401216d756c7469496e646578417272617920696e74656765722073656c656374696f6e0049a930cc030008c02e00064660020026601800460150034801b00348003003480130034801b000022900191400c00a66008008002c0006018600f00348053003480a2002400d203cc00d2050c00033008300a300380018024000c8cc0040044800488488a400b20034a3224a0914801d2848a4cc01c01000a9433001007801c005533009009120010323001001229001a5eb02446601800466008008002323001001229001a5eb02446601600466008008002323001001229001a5eb02446601400466008008002323001001229001a5eb02446601200466008008002323001001229001a5eb024466010004660080080021"
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
{
"type": "PlutusScriptV3",
"description": "succeedingMultiIndexArrayRepeated1024PolicyScript_V3_120",
"cborHex": "59010001020039800aba0abdaab9cabe548888c8c8c8c8c8c888c8c8ca64cdc39805000802d284c02c0053263300d491226d756c7469496e64657841727261792072657065617465642073656c656374696f6e0049a930d4014cc02c004008c030c01e006902a6000300430050023233001001120012212900191400c00a6a6600a00a24002002c0006460020024520034bd60488cc030008cc01001000464600200245266e240052000c00d2000991980180180099b81001480098000c8c0040048a400697ac09119805001198020020008c8c0040048a40069000488cdc02400466008008002323001001229001a5191499b874815000a9426600800800212080101"
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
{
"type": "PlutusScriptV3",
"description": "succeedingMultiIndexArrayRepeated1PolicyScript_V3_120",
"cborHex": "58ff01020039800aba0abdaab9cabe548888c8c8c8c8c8c888c8c8ca64cdc39805000802d284c02c0053263300d491226d756c7469496e64657841727261792072657065617465642073656c656374696f6e0049a930d4014cc02c004008c030c01e006902a6000300430050023233001001120012212900191400c00a6a6600a00a24002002c0006460020024520034bd60488cc030008cc01001000464600200245266e240052000c00d2000991980180180099b81001480098000c8c0040048a400697ac09119805001198020020008c8c0040048a40069000488cdc02400466008008002323001001229001a5191499b874815000a94266008008002120021"
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
{
"type": "PlutusScriptV3",
"description": "succeedingMultiIndexArrayRepeated64PolicyScript_V3_120",
"cborHex": "59010001020039800aba0abdaab9cabe548888c8c8c8c8c8c888c8c8ca64cdc39805000802d284c02c0053263300d491226d756c7469496e64657841727261792072657065617465642073656c656374696f6e0049a930d4014cc02c004008c030c01e006902a6000300430050023233001001120012212900191400c00a6a6600a00a24002002c0006460020024520034bd60488cc030008cc01001000464600200245266e240052000c00d2000991980180180099b81001480098000c8c0040048a400697ac09119805001198020020008c8c0040048a40069000488cdc02400466008008002323001001229001a5191499b874815000a9426600800800212080011"
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
{
"type": "PlutusScriptV4",
"description": "failingMultiIndexArrayEmptyPolicyScript_V4_120",
"cborHex": "58b5010200339800aba0abdaab9cabe548888c8c8c8c8888ca4cdc4a400060106a00a66012002600e0073263300a49011b756e726561636861626c65206e65676174697665206c656e6774680049a930c028c01400cc8cc00400448004884a4006450030029a9980280289000800b000191800800914800d2f581223300a00233004004001191800800914800d2f581223300900233004004001191800800914800d20009119b8048008cc010010004800400d2000c001"
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
{
"type": "PlutusScriptV4",
"description": "failingMultiIndexArrayHugeNegativePolicyScript_V4_120",
"cborHex": "58cb010200339800aba0abdaab9cabe548888c8c8c8c8888ca4cdc4a400060106a00a66012002600e0073263300a49011b756e726561636861626c65206e65676174697665206c656e6774680049a930c028c01400cc8cc00400448004884a4006450030029a9980280289000800b000191800800914800d2f581223300a00233004004001191800800914800d2f581223300900233004004001191800800914800d20009119b8048008cc010010004801a4029801a4051801a40798000801a41fffffffffffffffffe0780001"
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
{
"type": "PlutusScriptV4",
"description": "failingMultiIndexArrayHugePositivePolicyScript_V4_120",
"cborHex": "58cb010200339800aba0abdaab9cabe548888c8c8c8c8888ca4cdc4a400060106a00a66012002600e0073263300a49011b756e726561636861626c65206e65676174697665206c656e6774680049a930c028c01400cc8cc00400448004884a4006450030029a9980280289000800b000191800800914800d2f581223300a00233004004001191800800914800d2f581223300900233004004001191800800914800d20009119b8048008cc010010004801a4029801a4051801a40798000801a410101010101010101000980001"
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
{
"type": "PlutusScriptV4",
"description": "failingMultiIndexArrayLateInvalidPolicyScript_V4_120",
"cborHex": "58ca010200339800aba0abdaab9cabe548888c8c8c8c8888ca4cdc4a400060106a00a66012002600e0073263300a49011b756e726561636861626c65206e65676174697665206c656e6774680049a930c028c01400cc8cc00400448004884a4006450030029a9980280289000800b000191800800914800d2f581223300a00233004004001191800800914800d2f581223300900233004004001191800800914800d20009119b8048008cc010010004801a4029801a4051801a40798000801a4001801a4005801a400d80001"
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
{
"type": "PlutusScriptV4",
"description": "failingMultiIndexArrayNegativePolicyScript_V4_120",
"cborHex": "58ca010200339800aba0abdaab9cabe548888c8c8c8c8888ca4cdc4a400060106a00a66012002600e0073263300a49011b756e726561636861626c65206e65676174697665206c656e6774680049a930c028c01400cc8cc00400448004884a4006450030029a9980280289000800b000191800800914800d2f581223300a00233004004001191800800914800d2f581223300900233004004001191800800914800d20009119b8048008cc010010004801a4029801a4051801a40798000801a4001801a4005801a400380001"
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
{
"type": "PlutusScriptV4",
"description": "failingMultiIndexArrayOverLimitPolicyScript_V4_120",
"cborHex": "58d60102009800aba0abdaab9cabe548888c8c8c8c8c8c88ca4cdc4a400060106a00866012002600e0073263300a49011b756e726561636861626c65206e65676174697665206c656e6774680049a930c028c016006902a600030024820840c8cc00400448004884a4006450030029a9980280289000800b00019180080091499b890014800300348002646600600600266e0400520026000323001001229001a5eb02446601400466008008002323001001229001a5eb02446601200466008008002323001001229001a400122337009001198020020009"
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
{
"type": "PlutusScriptV4",
"description": "failingMultiIndexArrayUpperBoundPolicyScript_V4_120",
"cborHex": "58c2010200339800aba0abdaab9cabe548888c8c8c8c8888ca4cdc4a400060106a00a66012002600e0073263300a49011b756e726561636861626c65206e65676174697665206c656e6774680049a930c028c01400cc8cc00400448004884a4006450030029a9980280289000800b000191800800914800d2f581223300a00233004004001191800800914800d2f581223300900233004004001191800800914800d20009119b8048008cc010010004801a4029801a4051801a40798000801a400d80001"
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
{
"type": "PlutusScriptV4",
"description": "succeedingMultiIndexArrayDataPolicyScript_V4_120",
"cborHex": "5901380102009800aba0abdaab9cabe548888c8c8c8c88c8c8ca660024466ebc008006003801801e00698102182a00c00c00f0034c0108477061796c6f616400c000150054c98cc02924011e6d756c7469496e646578417272617920446174612073656c656374696f6e0049a930c8cc004004cc024008c022006900260069000600690026006900160000452003228018014cc0100100058000c024c01600698102182a00c00d300108477061796c6f616400c00c00700006e9cc00e0069001600690026006900360000c8cc0040044800488488a400b20034a3224a0914801d2848a4cc01c01000a9433001007801c005533009009120010323001001229001a5eb8244660146ea0008cc0100100046460020024520034bd70488cc024008cc0100100046460020024520034bd60488cc020008cc01001000401"
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
{
"type": "PlutusScriptV4",
"description": "succeedingMultiIndexArrayPolicyScript_V4_120",
"cborHex": "59015b0102009800aba3aba0abdaab9cabe5488888c8c8c8c8c8c88c8c8c8c8ca6660024466e1c008006005801a40a1801a40290041500752864c044006942602200a4c98cc0392401216d756c7469496e646578417272617920696e74656765722073656c656374696f6e0049a930cc030008c02e00064660020026601800460150034801b00348003003480130034801b000022900191400c00a66008008002c0006018600f00348053003480a2002400d203cc00d2050c00033008300a300380018024000c8cc0040044800488488a400b20034a3224a0914801d2848a4cc01c01000a9433001007801c005533009009120010323001001229001a5eb02446601800466008008002323001001229001a5eb02446601600466008008002323001001229001a5eb02446601400466008008002323001001229001a5eb02446601200466008008002323001001229001a5eb024466010004660080080021"
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
{
"type": "PlutusScriptV4",
"description": "succeedingMultiIndexArrayRepeated1024PolicyScript_V4_120",
"cborHex": "59010001020039800aba0abdaab9cabe548888c8c8c8c8c8c888c8c8ca64cdc39805000802d284c02c0053263300d491226d756c7469496e64657841727261792072657065617465642073656c656374696f6e0049a930d4014cc02c004008c030c01e006902a6000300430050023233001001120012212900191400c00a6a6600a00a24002002c0006460020024520034bd60488cc030008cc01001000464600200245266e240052000c00d2000991980180180099b81001480098000c8c0040048a400697ac09119805001198020020008c8c0040048a40069000488cdc02400466008008002323001001229001a5191499b874815000a9426600800800212080101"
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
{
"type": "PlutusScriptV4",
"description": "succeedingMultiIndexArrayRepeated1PolicyScript_V4_120",
"cborHex": "58ff01020039800aba0abdaab9cabe548888c8c8c8c8c8c888c8c8ca64cdc39805000802d284c02c0053263300d491226d756c7469496e64657841727261792072657065617465642073656c656374696f6e0049a930d4014cc02c004008c030c01e006902a6000300430050023233001001120012212900191400c00a6a6600a00a24002002c0006460020024520034bd60488cc030008cc01001000464600200245266e240052000c00d2000991980180180099b81001480098000c8c0040048a400697ac09119805001198020020008c8c0040048a40069000488cdc02400466008008002323001001229001a5191499b874815000a94266008008002120021"
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
{
"type": "PlutusScriptV4",
"description": "succeedingMultiIndexArrayRepeated64PolicyScript_V4_120",
"cborHex": "59010001020039800aba0abdaab9cabe548888c8c8c8c8c8c888c8c8ca64cdc39805000802d284c02c0053263300d491226d756c7469496e64657841727261792072657065617465642073656c656374696f6e0049a930d4014cc02c004008c030c01e006902a6000300430050023233001001120012212900191400c00a6a6600a00a24002002c0006460020024520034bd60488cc030008cc01001000464600200245266e240052000c00d2000991980180180099b81001480098000c8c0040048a400697ac09119805001198020020008c8c0040048a40069000488cdc02400466008008002323001001229001a5191499b874815000a9426600800800212080011"
}
Loading
Loading