@@ -2,7 +2,7 @@ use aiken/collection/list
22use aiken/ crypto.{Blake2b_256 , Hash }
33use cardano/ assets
44use cardano/ certificate.{Certificate , RegisterCredential , UnregisterCredential }
5- use cardano/ transaction.{Publish , Transaction }
5+ use cardano/ transaction.{Transaction }
66use midgard/ common/ parameter_validation
77use midgard/ user_events/ witness.{
88 MintOrBurn , PublishRedeemer , RegisterToProveNotRegistered ,
@@ -28,62 +28,36 @@ validator main(nonce: Hash<Blake2b_256, ByteArray>) {
2828 _ -> False
2929 }
3030 }
31- RegisterToProveNotRegistered { registration_redeemer_index } -> {
32- // 1. The registration redeemer must be immediately followed by the
33- // unregistration counterpart.
34- expect [registration_pair ,
35- unregistration_pair , .. ] =
36- tx.redeemers |> list.drop (registration_redeemer_index )
31+ RegisterToProveNotRegistered { registration_certificate_index } -> {
32+ // 1. The registration certificate must be immediately followed by
33+ // the unregistration counterpart.
34+ expect [reg_cert ,
35+ unreg_cert , .. ] =
36+ tx.certificates |> list.drop (registration_certificate_index )
3737
38- expect Pair (Publish {
39- certificate: RegisterCredential { credential: reg_cred, .. } as reg_cert,
40- ..
41- },
42- reg_redeemer_data) = registration_pair
43-
44- // 2. Ensure correctness of the provided redeemer index.
38+ // 2. Ensure correctness of the provided certificate index.
4539 expect reg_cert == cert
46- expect RegisterToProveNotRegistered { .. } = reg_redeemer_data
4740
48- expect Pair (Publish {
49- certificate: UnregisterCredential { credential: unreg_cred, .. },
50- ..
51- },
52- unreg_redeemer_data) = unregistration_pair
41+ expect RegisterCredential { credential: reg_cred, .. } = reg_cert
5342
54- // 3. The unregistration redeemer must invoke the same script.
55- expect reg_cred == unreg_cred
43+ expect UnregisterCredential { credential: unreg_cred, .. } =
44+ unreg_cert
5645
57- // 4. The index carried in the unregistration redeemer must match
58- // the index from the registration redeemer.
59- expect UnregisterToProveNotRegistered {
60- registration_redeemer_index: index_from_unregistration,
61- } = unreg_redeemer_data
62- index_from_unregistration == registration_redeemer_index
46+ // 3. The unregistration certificate must be of the same script.
47+ reg_cred == unreg_cred
6348 }
64- UnregisterToProveNotRegistered { registration_redeemer_index } -> {
49+ UnregisterToProveNotRegistered { registration_certificate_index } -> {
6550 // 1. Current certificate must be an `UnregisterCredential`.
6651 expect UnregisterCredential { credential: unreg_cred, .. } = cert
6752
68- // 2. The provided index must point to a registration endpoint.
69- expect [registration_pair, .. ] =
70- tx.redeemers |> list.drop (registration_redeemer_index)
71- expect Pair (Publish {
72- certificate: RegisterCredential { credential: reg_cred, .. },
73- ..
74- },
75- reg_redeemer_data) = registration_pair
53+ // 2. The provided index must point to a registration certificate.
54+ expect [reg_cert, .. ] =
55+ tx.certificates |> list.drop (registration_certificate_index)
56+ expect RegisterCredential { credential: reg_cred, .. } = reg_cert
7657
77- // 3. Credential from the registration endpoint must match the
58+ // 3. Credential from the registration certificate must match the
7859 // current credential.
79- expect reg_cred == unreg_cred
80-
81- // 4. Index from the registration endpoint must be equal to the
82- // index from the current endpoint.
83- expect RegisterToProveNotRegistered {
84- registration_redeemer_index: index_from_registration,
85- } = reg_redeemer_data
86- registration_redeemer_index == index_from_registration
60+ reg_cred == unreg_cred
8761 }
8862 }
8963 },
0 commit comments