Merge pull request #1018 from solidsnakedev/main

fix: Plutus V3 NoDatum
This commit is contained in:
Matthias Benkort
2024-09-13 09:29:55 +02:00
committed by GitHub
4 changed files with 98 additions and 7 deletions

View File

@@ -0,0 +1,5 @@
[
{ 0: h'70{{ simple_spend_no_datum.simple_spend.spend.hash }}'
, 1: 1000000000
}
]

View File

@@ -0,0 +1,33 @@
[
{ 0:
[ [h'0000000000000000000000000000000000000000000000000000000000000000', 0]
]
, 1:
[]
, 2: 42
, 11: h'FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF'
, 13:
[ [h'0000000000000000000000000000000000000000000000000000000000000000', 0]
]
, 16:
[ h'6000000000000000000000000000000000000000000000000000000000', 1000000000
]
, 17: 1
},
{ 5: [[0, 0, 121([]), [1000000, 100000000]]]
, 7: [h'{{ simple_spend_no_datum.simple_spend.spend.cbor }}']
},
true,
null
]

View File

@@ -0,0 +1,49 @@
use aiken/collection/dict
use cardano/address.{Address, Script}
use cardano/assets
use cardano/transaction.{Input, NoDatum, Output, OutputReference, Transaction}
validator simple_spend {
spend(
datum: Option<Void>,
_redeemer: Void,
_output_ref: OutputReference,
transaction: Transaction,
) {
expect None = datum
assert_inputs(transaction.inputs)
expect [] == dict.to_pairs(transaction.datums)
True
}
else(_ctx) {
fail
}
}
fn assert_inputs(inputs: List<Input>) {
expect [
Input {
output_reference: OutputReference { transaction_id, output_index: 0 },
output: Output {
address,
value: resolved_input_value,
datum: NoDatum,
reference_script: None,
},
},
] = inputs
expect
transaction_id == #"0000000000000000000000000000000000000000000000000000000000000000"
expect resolved_input_value == assets.from_lovelace(1000000000)
expect Address { payment_credential: Script(_), stake_credential: None } =
address
Void
}