The AI rewrite (Claude) produced output with quality issues.
This may be a prompt problem, missing context, or model hallucination.
use aiken/builtin
use aiken/list
const script_hash_0 = #"99e5aacf401fed0eb0e2993d72d423947f42342e8f848353d03efe61"
type Action {
Cancel
}
fn process_list(mapper, input_list) {
when input_list is {
[] -> Void
[head, ..tail] -> {
let mapped = mapper(head)
process_list(mapper, tail)
}
}
}
fn process_datum(m2, r, s, t, u, datum) {
let constructor_tag = builtin.fst_pair(builtin.un_constr_data(datum))
when constructor_tag is {
0 -> {
let fields = builtin.snd_pair(builtin.un_constr_data(datum))
let value = builtin.un_b_data(builtin.head_list(fields))
when builtin.tail_list(fields) is {
[] -> Void
_ -> fail
}
}
1 -> {
let fields = builtin.snd_pair(builtin.un_constr_data(datum))
let list_data = builtin.un_list_data(builtin.head_list(fields))
when builtin.tail_list(fields) is {
[] -> {
let processed = m2(list_data, fn(item) { process_datum(m2, r, s, t, u, item) })
Void
}
_ -> fail
}
}
2 -> {
let fields = builtin.snd_pair(builtin.un_constr_data(datum))
let list_data = builtin.un_list_data(builtin.head_list(fields))
when builtin.tail_list(fields) is {
[] -> {
let processed = m2(list_data, fn(item) { process_datum(m2, r, s, t, u, item) })
Void
}
_ -> fail
}
}
3 -> {
let fields = builtin.snd_pair(builtin.un_constr_data(datum))
let int_val = builtin.un_i_data(builtin.head_list(fields))
let remaining = builtin.tail_list(fields)
let list_data = builtin.un_list_data(builtin.head_list(remaining))
when builtin.tail_list(remaining) is {
[] -> {
let processed = m2(list_data, fn(item) { process_datum(m2, r, s, t, u, item) })
Void
}
_ -> fail
}
}
4 -> {
let fields = builtin.snd_pair(builtin.un_constr_data(datum))
let int_val = builtin.un_i_data(builtin.head_list(fields))
when builtin.tail_list(fields) is {
[] -> Void
_ -> fail
}
}
5 -> {
let fields = builtin.snd_pair(builtin.un_constr_data(datum))
let int_val = builtin.un_i_data(builtin.head_list(fields))
when builtin.tail_list(fields) is {
[] -> Void
_ -> fail
}
}
6 -> {
let fields = builtin.snd_pair(builtin.un_constr_data(datum))
let byte_val = builtin.un_b_data(builtin.head_list(fields))
when builtin.tail_list(fields) is {
[] -> Void
_ -> fail
}
}
_ -> fail
}
}
fn find_bytestring(target, input_list) {
when input_list is {
[] -> False
[head, ..tail] -> {
let byte_val = builtin.un_b_data(head)
if builtin.equals_bytestring(byte_val, target) {
True
} else {
find_bytestring(target, tail)
}
}
}
}
fn check_all(predicate, y, r, s, t, w, z, q, u, a1, input_list) {
when input_list is {
[] -> True
[head, ..tail] -> {
if predicate(head) {
check_all(predicate, y, r, s, t, w, z, q, u, a1, tail)
} else {
False
}
}
}
}
fn check_any(predicate, y, r, s, t, w, z, q, u, a1, input_list) {
when input_list is {
[] -> False
[head, ..tail] -> {
if predicate(head) {
True
} else {
check_any(predicate, y, r, s, t, w, z, q, u, a1, tail)
}
}
}
}
fn count_matches(predicate, y, r, s, t, w, z, q, u, a1, input_list, accumulator) {
when input_list is {
[] -> accumulator
[head, ..tail] -> {
let new_acc = if predicate(head) {
accumulator + 1
} else {
accumulator
}
count_matches(predicate, y, r, s, t, w, z, q, u, a1, tail, new_acc)
}
}
}
fn find_pair_key(target_key, pair_list) {
when pair_list is {
[] -> False
[head, ..tail] -> {
let key = builtin.fst_pair(head)
if target_key == key {
True
} else {
find_pair_key(target_key, tail)
}
}
}
}
fn validate_context(y, r, s, t, w, z, q, u, a1, context_data) {
let constructor_tag = builtin.fst_pair(builtin.un_constr_data(context_data))
when constructor_tag is {
0 -> {
let pubkey_hash = builtin.un_b_data(builtin.head_list(builtin.snd_pair(builtin.un_constr_data(context_data))))
find_bytestring(pubkey_hash, y)
}
1 -> {
check_all(fn(x) { True }, y, r, s, t, w, z, q, u, a1, builtin.un_list_data(builtin.head_list(builtin.snd_pair(builtin.un_constr_data(context_data)))))
}
2 -> {
check_any(fn(x) { True }, y, r, s, t, w, z, q, u, a1, builtin.un_list_data(builtin.head_list(builtin.snd_pair(builtin.un_constr_data(context_data)))))
}
3 -> {
let fields = builtin.snd_pair(builtin.un_constr_data(context_data))
let threshold = builtin.un_i_data(builtin.head_list(fields))
let count = count_matches(fn(x) { True }, y, r, s, t, w, z, q, u, a1, builtin.un_list_data(builtin.head_list(builtin.tail_list(fields))), 0)
threshold <= count
}
4 -> {
let target_val = builtin.un_i_data(builtin.head_list(builtin.snd_pair(builtin.un_constr_data(context_data))))
let validity_range = q(builtin.snd_pair(builtin.un_constr_data(w(builtin.snd_pair(builtin.un_constr_data(z))))))
when builtin.fst_pair(builtin.un_constr_data(validity_range)) is {
1 -> {
let range_val = builtin.un_i_data(builtin.head_list(builtin.snd_pair(builtin.un_constr_data(validity_range))))
let is_finite = {
let range_data = builtin.un_constr_data(w(builtin.snd_pair(builtin.un_constr_data(w(builtin.snd_pair(builtin.un_constr_data(z)))))))
when builtin.snd_pair(range_data) is {
[] -> {
when builtin.fst_pair(range_data) is {
1 -> True
0 -> False
_ -> fail
}
}
_ -> fail
}
}
if is_finite {
range_val <= target_val
} else {
range_val < target_val
}
}
_ -> False
}
}
5 -> {
let target_val = builtin.un_i_data(builtin.head_list(builtin.snd_pair(builtin.un_constr_data(context_data))))
let validity_range = q(builtin.snd_pair(builtin.un_constr_data(q(builtin.snd_pair(builtin.un_constr_data(z))))))
when builtin.fst_pair(builtin.un_constr_data(validity_range)) is {
1 -> {
let range_val = builtin.un_i_data(builtin.head_list(builtin.snd_pair(builtin.un_constr_data(validity_range))))
let is_finite = {
let range_data = builtin.un_constr_data(w(builtin.snd_pair(builtin.un_constr_data(q(builtin.snd_pair(builtin.un_constr_data(z)))))))
when builtin.snd_pair(range_data) is {
[] -> {
when builtin.fst_pair(range_data) is {
1 -> True
0 -> False
_ -> fail
}
}
_ -> fail
}
}
if is_finite {
target_val <= range_val
} else {
target_val < range_val
}
}
_ -> False
}
}
_ -> {
let lookup_key = builtin.constr_data(0, [builtin.constr_data(1, [builtin.head_list(builtin.snd_pair(builtin.un_constr_data(context_data)))])])
find_pair_key(lookup_key, a1)
}
}
}
fn check_outputs(script_hash, output_list, has_match) {
when output_list is {
[] -> has_match
[head, ..tail] -> {
let output_data = builtin.fst_pair(head)
let new_has_match = when builtin.fst_pair(builtin.un_constr_data(output_data)) is {
0 -> {
let address_data = builtin.head_list(builtin.snd_pair(builtin.un_constr_data(output_data)))
when builtin.fst_pair(builtin.un_constr_data(address_data)) is {
1 -> {
let credential = builtin.un_b_data(builtin.head_list(b
... (truncated, 10000 chars total)
Raw Decompiled Aiken
use aiken/builtin
use aiken/collection/list
// Script parameters (hardcoded constants)
const script_hash_0 = #"99e5aacf401fed0eb0e2993d72d423947f42342e8f848353d03efe61"
type Action {
Cancel
}
fn rec_0(i8, l8) {
if builtin.null_list(l8) { Void } else { {
let m8 = i8(builtin.head_list({
expect _headList_arg0: List<Data> = l8
_headList_arg0
}))
(k8 as fn(fn(Data) -> Data, Data) -> Data)(k8 as fn(Data) -> Data, builtin.tail_list({
expect _tailList_arg0: List<Data> = l8
_tailList_arg0
}))
} }
}
fn rec_1(m2, r, s, t, u, j7) {
{
let k7 = builtin.fst_pair(builtin.un_constr_data(j7))
if {
expect _ifThenElse_arg0: Bool = 0 == {
expect _equalsInteger_arg1: Int = k7
_equalsInteger_arg1
}
_ifThenElse_arg0
} { {
let l7 = builtin.snd_pair(builtin.un_constr_data(j7))
{
let m7 = builtin.un_b_data(builtin.head_list({
expect _headList_arg0: List<Data> = l7
_headList_arg0
}))
if builtin.null_list(builtin.tail_list({
expect _tailList_arg0: List<Data> = l7
_tailList_arg0
})) { Void } else { fail }
}
} } else { if {
expect _ifThenElse_arg0: Bool = 1 == {
expect _equalsInteger_arg1: Int = k7
_equalsInteger_arg1
}
_ifThenElse_arg0
} { {
let n7 = builtin.snd_pair(builtin.un_constr_data(j7))
{
let o7 = builtin.un_list_data(builtin.head_list({
expect _headList_arg0: List<Data> = n7
_headList_arg0
}))
if builtin.null_list(builtin.tail_list({
expect _tailList_arg0: List<Data> = n7
_tailList_arg0
})) { {
let p7 = m2(o7, fn(q7) { (i7 as fn(fn(Data) -> Data, Data) -> Data)(i7 as fn(Data) -> Data, q7) })
Void
} } else { fail }
}
} } else { if {
expect _ifThenElse_arg0: Bool = 2 == {
expect _equalsInteger_arg1: Int = k7
_equalsInteger_arg1
}
_ifThenElse_arg0
} { {
let r7 = builtin.snd_pair(builtin.un_constr_data(j7))
{
let s7 = builtin.un_list_data(builtin.head_list({
expect _headList_arg0: List<Data> = r7
_headList_arg0
}))
if builtin.null_list(builtin.tail_list({
expect _tailList_arg0: List<Data> = r7
_tailList_arg0
})) { {
let t7 = m2(s7, fn(u7) { (i7 as fn(fn(Data) -> Data, Data) -> Data)(i7 as fn(Data) -> Data, u7) })
Void
} } else { fail }
}
} } else { if {
expect _ifThenElse_arg0: Bool = 3 == {
expect _equalsInteger_arg1: Int = k7
_equalsInteger_arg1
}
_ifThenElse_arg0
} { {
let v7 = builtin.snd_pair(builtin.un_constr_data(j7))
{
let w7 = builtin.un_i_data(builtin.head_list({
expect _headList_arg0: List<Data> = v7
_headList_arg0
}))
{
let x7 = builtin.tail_list({
expect _tailList_arg0: List<Data> = v7
_tailList_arg0
})
{
let y7 = builtin.un_list_data(builtin.head_list({
expect _headList_arg0: List<Data> = x7
_headList_arg0
}))
if builtin.null_list(builtin.tail_list({
expect _tailList_arg0: List<Data> = x7
_tailList_arg0
})) { {
let z7 = m2(y7, fn(a8) { (i7 as fn(fn(Data) -> Data, Data) -> Data)(i7 as fn(Data) -> Data, a8) })
Void
} } else { fail }
}
}
}
} } else { if {
expect _ifThenElse_arg0: Bool = 4 == {
expect _equalsInteger_arg1: Int = k7
_equalsInteger_arg1
}
_ifThenElse_arg0
} { {
let b8 = builtin.snd_pair(builtin.un_constr_data(j7))
{
let c8 = builtin.un_i_data(builtin.head_list({
expect _headList_arg0: List<Data> = b8
_headList_arg0
}))
if builtin.null_list(builtin.tail_list({
expect _tailList_arg0: List<Data> = b8
_tailList_arg0
})) { Void } else { fail }
}
} } else { if {
expect _ifThenElse_arg0: Bool = 5 == {
expect _equalsInteger_arg1: Int = k7
_equalsInteger_arg1
}
_ifThenElse_arg0
} { {
let d8 = builtin.snd_pair(builtin.un_constr_data(j7))
{
let e8 = builtin.un_i_data(builtin.head_list({
expect _headList_arg0: List<Data> = d8
_headList_arg0
}))
if builtin.null_list(builtin.tail_list({
expect _tailList_arg0: List<Data> = d8
_tailList_arg0
})) { Void } else { fail }
}
} } else { if {
expect _ifThenElse_arg0: Bool = 6 == {
expect _equalsInteger_arg1: Int = k7
_equalsInteger_arg1
}
_ifThenElse_arg0
} { {
let f8 = builtin.snd_pair(builtin.un_constr_data(j7))
{
let g8 = builtin.un_b_data(builtin.head_list({
expect _headList_arg0: List<Data> = f8
_headList_arg0
}))
if builtin.null_list(builtin.tail_list({
expect _tailList_arg0: List<Data> = f8
_tailList_arg0
})) { Void } else { fail }
}
} } else { fail } } } } } } }
}
}
fn rec_3(f1, i1) {
if builtin.null_list(i1) { False } else { {
let j1 = builtin.tail_list({
expect _tailList_arg0: List<Data> = i1
_tailList_arg0
})
if builtin.equals_bytearray(builtin.un_b_data(builtin.head_list({
expect _headList_arg0: List<Data> = i1
_headList_arg0
})), {
expect _equalsByteString_arg1: ByteArray = f1
_equalsByteString_arg1
}) { True } else { (h1 as fn(fn(Data) -> Data, Data) -> Data)(h1 as fn(Data) -> Data, j1) }
} }
}
fn rec_4(c1, y, r, s, t, w, z, q, u, a1, m1) {
if builtin.null_list(m1) { True } else { {
let n1 = builtin.tail_list({
expect _tailList_arg0: List<Data> = m1
_tailList_arg0
})
if {
expect _ifThenElse_arg0: Bool = (c1 as fn(fn(Data) -> Data, Data) -> Data)(c1 as fn(Data) -> Data, builtin.head_list({
expect _headList_arg0: List<Data> = m1
_headList_arg0
}))
_ifThenElse_arg0
} { (l1 as fn(fn(Data) -> Data, Data) -> Data)(l1 as fn(Data) -> Data, n1) } else { False }
} }
}
fn rec_5(c1, y, r, s, t, w, z, q, u, a1, q1) {
if builtin.null_list(q1) { False } else { {
let r1 = builtin.tail_list({
expect _tailList_arg0: List<Data> = q1
_tailList_arg0
})
if {
expect _ifThenElse_arg0: Bool = (c1 as fn(fn(Data) -> Data, Data) -> Data)(c1 as fn(Data) -> Data, builtin.head_list({
expect _headList_arg0: List<Data> = q1
_headList_arg0
}))
_ifThenElse_arg0
} { True } else { (p1 as fn(fn(Data) -> Data, Data) -> Data)(p1 as fn(Data) -> Data, r1) }
} }
}
fn rec_6(c1, y, r, s, t, w, z, q, u, a1, v1, w1) {
if builtin.null_list(v1) { w1 } else { (u1 as fn(fn(Data) -> Data, Data) -> Data)(u1 as fn(Data) -> Data, builtin.tail_list({
expect _tailList_arg0: List<Data> = v1
_tailList_arg0
}), if {
expect _ifThenElse_arg0: Bool = (c1 as fn(fn(Data) -> Data, Data) -> Data)(c1 as fn(Data) -> Data, builtin.head_list({
expect _headList_arg0: List<Data> = v1
_headList_arg0
}))
_ifThenElse_arg0
} { {
expect _addInteger_arg0: Int = w1
_addInteger_arg0
} + 1 } else { w1 }) }
}
fn rec_7(f2, i2) {
if builtin.null_list(i2) { False } else { {
let j2 = builtin.tail_list({
expect _tailList_arg0: List<Data> = i2
_tailList_arg0
})
if f2 == builtin.fst_pair({
expect _fstPair_arg0: Pair<Int, List<Data>> = builtin.head_list({
expect _headList_arg0: List<Data> = i2
_headList_arg0
})
_fstPair_arg0
}) { True } else { (h2 as fn(fn(Data) -> Data, Data) -> Data)(h2 as fn(Data) -> Data, j2) }
} }
}
fn rec_2(y, r, s, t, w, z, q, u, a1, d1) {
{
let e1 = builtin.fst_pair(builtin.un_constr_data(d1))
if {
expect _ifThenElse_arg0: Bool = 0 == {
expect _equalsInteger_arg1: Int = e1
_equalsInteger_arg1
}
_ifThenElse_arg0
} { {
let f1 = builtin.un_b_data(builtin.head_list(builtin.snd_pair(builtin.un_constr_data(d1))))
(g1 as fn(fn(Data) -> Data, Data) -> Data)(g1 as fn(Data) -> Data, y)
} } else { if {
expect _ifThenElse_arg0: Bool = 1 == {
expect _equalsInteger_arg1: Int = e1
_equalsInteger_arg1
}
_ifThenElse_arg0
} { (k1 as fn(fn(Data) -> Data, Data) -> Data)(k1 as fn(Data) -> Data, builtin.un_list_data(builtin.head_list(builtin.snd_pair(builtin.un_constr_data(d1))))) } else { if {
expect _ifThenElse_arg0: Bool = 2 == {
expect _equalsInteger_arg1: Int = e1
_equalsInteger_arg1
}
_ifThenElse_arg0
} { (o1 as fn(fn(Data) -> Data, Data) -> Data)(o1 as fn(Data) -> Data, builtin.un_list_data(builtin.head_list(builtin.snd_pair(builtin.un_constr_data(d1))))) } else { if {
expect _ifThenElse_arg0: Bool = 3 == {
expect _equalsInteger_arg1: Int = e1
_equalsInteger_arg1
}
_ifThenElse_arg0
} { {
let s1 = builtin.snd_pair(builtin.un_constr_data(d1))
builtin.un_i_data(builtin.head_list({
expect _headList_arg0: List<Data> = s1
_headList_arg0
})) <= (t1 as fn(fn(Data) -> Data, Data) -> Data)(t1 as fn(Data) -> Data, builtin.un_list_data(builtin.head_list(builtin.tail_list({
expect _tailList_arg0: List<Data> = s1
_tailList_arg0
}))), 0)
} } else { if {
expect _ifThenE
... (truncated, 10000 chars total)
AI Enhancement Issue
The AI rewrite (Claude) produced output with quality issues.
This may be a prompt problem, missing context, or model hallucination.
Script:
fa6a58bbe2d0ff05534431c8e2f0ef2cbdc1602a8456e4b13c8f3077Retry: Force re-enhancement
Confidence: medium
Constants
Undefined Functions (2 — AI referenced but never defined)
mapper()predicate()Scores (AI → Static)
AI-Enhanced Aiken
Raw Decompiled Aiken
UPLC (compact)
Auto-filed by UPLC.WTF verification system