The deterministic UPLC → Aiken decompiler produced output with verification gaps.
This is a bug in the parser, codegen, or pattern detection — not an AI issue.
use aiken/builtin
fn rec_0(w1: Data, x1: Data, i: Data, w8: Data, x8: Data, k: Data, c9: Data) -> Data {
{
let d9 = builtin.head_list({
expect _headList_arg0: List<Data> = c9
_headList_arg0
})
if builtin.null_list(c9) { fn(e9) { w1 } } else { fn(f9) { x1(i(w8(builtin.fst_pair({
expect _fstPair_arg0: Pair<Int, List<Data>> = d9
_fstPair_arg0
})), x8(builtin.snd_pair({
expect _sndPair_arg0: Pair<Int, List<Data>> = d9
_sndPair_arg0
}))), rec_0(w1, x1, i, w8, x8, k, builtin.tail_list({
expect _tailList_arg0: List<Data> = c9
_tailList_arg0
}))) } }
}
}
fn rec_1(w1: Data, x1: Data, u7: Data, k: Data, z7: Data) -> Data {
if builtin.null_list(z7) { fn(a8) { w1 } } else { fn(b8) { x1(u7(builtin.head_list({
expect _headList_arg0: List<Data> = z7
_headList_arg0
})), rec_1(w1, x1, u7, k, builtin.tail_list({
expect _tailList_arg0: List<Data> = z7
_tailList_arg0
}))) } }
}
fn rec_2(u17: Data, u36: Data, t36: Data, y36: Data) -> Data {
u17(y36)(u36, fn(z36, a37) { t36(z36, rec_2(u17, u36, t36, a37)) })
}
fn rec_3(u17: Data, g18: Data, e29: Data) -> Data {
fn(f29, g29, h29) { u17(h29)(g18(f29)(fn(i29, j29) { j29 }), fn(k29, l29) { g18(f29)(fn(m29, n29) { m29 }, g29(k29), rec_3(u17, g18, fn(o29) { o29 })(f29, g29, l29)) }) }
}
fn rec_4(u17: Data, s17: Data, t17: Data, w28: Data) -> Data {
fn(x28, y28) { u17(y28)(s17, fn(z28, a29) { t17(x28(z28), rec_4(u17, s17, t17, fn(b29) { b29 })(x28, a29)) }) }
}
fn rec_5(u17: Data, o27: Data) -> Data {
fn(p27, q27, r27) { u17(r27)(q27, fn(s27, t27) { p27(s27, rec_5(u17, fn(u27) { u27 })(p27, q27, t27)) }) }
}
fn rec_6(u17: Data, o20: Data, d27: Data, r17: Data, j17: Data, h26: Data, c27: Data, n20: Data, h27: Data) -> Data {
u17(h27)(o20(d27), fn(i27, j27) { r17(i27)(fn(k27, l27) { j17(h26(k27, c27))(n20(d27, l27), rec_6(u17, o20, d27, r17, j17, h26, c27, n20, j27)) }) })
}
validator script {
spend(o3: Option<Data>, p3: Data, q3: Data, r3: Data) {
fn(a) { fn(b, c, d) { fn(e, f) { fn(g, h) { fn(i, j) { fn(k, l) { {
let m = fn(h16) { fail }
{
let n = fn(a16, b16, c16) { {
let d16 = builtin.un_constr_data(c16)
{
let e16 = builtin.snd_pair({
expect _sndPair_arg0: Pair<Int, List<Data>> = d16
_sndPair_arg0
})
if builtin.fst_pair({
expect _fstPair_arg0: Pair<Int, List<Data>> = d16
_fstPair_arg0
}) == 0 { fn(f16) { i(a16(builtin.head_list({
expect _headList_arg0: List<Data> = e16
_headList_arg0
})), b16(builtin.head_list(builtin.tail_list({
expect _tailList_arg0: List<Data> = e16
_tailList_arg0
})))) } } else { fn(g16) { m(trace @"PT1": k(Void)) } }
}
} }
fn(o, p, q) { {
let r = fn(m15) { {
let n15 = builtin.un_constr_data(m15)
{
let o15 = builtin.fst_pair({
expect _fstPair_arg0: Pair<Int, List<Data>> = n15
_fstPair_arg0
})
if {
expect _ifThenElse_arg0: Bool = {
expect _equalsInteger_arg0: Int = o15
_equalsInteger_arg0
} == 1
_ifThenElse_arg0
} { fn(p15) { p(builtin.un_b_data(builtin.head_list(builtin.snd_pair({
expect _sndPair_arg0: Pair<Int, List<Data>> = n15
_sndPair_arg0
})))) } } else { fn(q15) { if {
expect _ifThenElse_arg0: Bool = {
expect _equalsInteger_arg0: Int = o15
_equalsInteger_arg0
} == 0
_ifThenElse_arg0
} { fn(r15) { o(builtin.un_b_data(builtin.head_list(builtin.snd_pair({
expect _sndPair_arg0: Pair<Int, List<Data>> = n15
_sndPair_arg0
})))) } } else { fn(s15) { m(trace @"PT1": k(Void)) } } } }
}
} }
fn(s, t, u) { {
let v = fn(u14) { {
let v14 = builtin.un_constr_data(u14)
{
let w14 = builtin.snd_pair({
expect _sndPair_arg0: Pair<Int, List<Data>> = v14
_sndPair_arg0
})
{
let x14 = builtin.tail_list({
expect _tailList_arg0: List<Data> = w14
_tailList_arg0
})
{
let y14 = builtin.fst_pair({
expect _fstPair_arg0: Pair<Int, List<Data>> = v14
_fstPair_arg0
})
if {
expect _ifThenElse_arg0: Bool = {
expect _equalsInteger_arg0: Int = y14
_equalsInteger_arg0
} == 1
_ifThenElse_arg0
} { fn(z14) { t(builtin.un_i_data(builtin.head_list({
expect _headList_arg0: List<Data> = w14
_headList_arg0
})), builtin.un_i_data(builtin.head_list({
expect _headList_arg0: List<Data> = x14
_headList_arg0
})), builtin.un_i_data(builtin.head_list(builtin.tail_list({
expect _tailList_arg0: List<Data> = x14
_tailList_arg0
})))) } } else { fn(a15) { if {
expect _ifThenElse_arg0: Bool = {
expect _equalsInteger_arg0: Int = y14
_equalsInteger_arg0
} == 0
_ifThenElse_arg0
} { fn(b15) { s(r(builtin.head_list(builtin.snd_pair({
expect _sndPair_arg0: Pair<Int, List<Data>> = v14
_sndPair_arg0
})))) } } else { fn(c15) { m(trace @"PT1": k(Void)) } } } }
}
}
}
} }
fn(w, x, y, z, a1, b1) { fn(c1, d1) { {
let e1 = fn(u11) { {
let v11 = builtin.un_constr_data(u11)
{
let w11 = builtin.snd_pair({
expect _sndPair_arg0: Pair<Int, List<Data>> = v11
_sndPair_arg0
})
{
let x11 = builtin.snd_pair({
expect _sndPair_arg0: Pair<Int, List<Data>> = v11
_sndPair_arg0
})
{
let y11 = builtin.snd_pair({
expect _sndPair_arg0: Pair<Int, List<Data>> = v11
_sndPair_arg0
})
{
let z11 = builtin.fst_pair({
expect _fstPair_arg0: Pair<Int, List<Data>> = v11
_fstPair_arg0
})
if {
expect _ifThenElse_arg0: Bool = {
expect _equalsInteger_arg0: Int = z11
_equalsInteger_arg0
} == 6
_ifThenElse_arg0
} { fn(a12) { a1 } } else { fn(b12) { if {
expect _ifThenElse_arg0: Bool = {
expect _equalsInteger_arg0: Int = z11
_equalsInteger_arg0
} == 5
_ifThenElse_arg0
} { fn(c12) { z } } else { fn(d12) { if {
expect _ifThenElse_arg0: Bool = {
expect _equalsInteger_arg0: Int = z11
_equalsInteger_arg0
} == 4
_ifThenElse_arg0
} { fn(e12) { c1(builtin.un_b_data(builtin.head_list({
expect _headList_arg0: List<Data> = y11
_headList_arg0
})), builtin.un_i_data(builtin.head_list(builtin.tail_list({
expect _tailList_arg0: List<Data> = y11
_tailList_arg0
})))) } } else { fn(f12) { if {
expect _ifThenElse_arg0: Bool = {
expect _equalsInteger_arg0: Int = z11
_equalsInteger_arg0
} == 3
_ifThenElse_arg0
} { fn(g12) { b1(builtin.un_b_data(builtin.head_list({
expect _headList_arg0: List<Data> = x11
_headList_arg0
})), builtin.un_b_data(builtin.head_list(builtin.tail_list({
expect _tailList_arg0: List<Data> = x11
_tailList_arg0
})))) } } else { fn(h12) { if {
expect _ifThenElse_arg0: Bool = {
expect _equalsInteger_arg0: Int = z11
_equalsInteger_arg0
} == 2
_ifThenElse_arg0
} { fn(i12) { x(v(builtin.head_list({
expect _headList_arg0: List<Data> = w11
_headList_arg0
})), builtin.un_b_data(builtin.head_list(builtin.tail_list({
expect _tailList_arg0: List<Data> = w11
_tailList_arg0
})))) } } else { fn(j12) { if {
expect _ifThenElse_arg0: Bool = {
expect _equalsInteger_arg0: Int = z11
_equalsInteger_arg0
} == 1
_ifThenElse_arg0
} { fn(k12) { w(v(builtin.head_list(builtin.snd_pair({
expect _sndPair_arg0: Pair<Int, List<Data>> = v11
_sndPair_arg0
})))) } } else { fn(l12) { if {
expect _ifThenElse_arg0: Bool = {
expect _equalsInteger_arg0: Int = z11
_equalsInteger_arg0
} == 0
_ifThenElse_arg0
} { fn(m12) { y(v(builtin.head_list(builtin.snd_pair({
expect _sndPair_arg0: Pair<Int, List<Data>> = v11
_sndPair_arg0
})))) } } else { fn(n12) { m(trace @"PT1": k(Void)) } } } } } } } } } } } } } }
}
}
}
}
} }
fn(f1, g1, h1) { {
let i1 = fn(j11) { {
let k11 = builtin.fst_pair(builtin.un_constr_data(j11))
if {
expect _ifThenElse_arg0: Bool = {
expect _equalsInteger_arg0: Int = k11
_equalsInteger_arg0
} == 1
_ifThenElse_arg0
} { fn(l11) { f1 } } else { fn(m11) { if {
expect _ifThenElse_arg0: Bool = {
expect _equalsInteger_arg0: Int = k11
_equalsInteger_arg0
} == 0
_ifThenElse_arg0
} { fn(n11) { g1 } } else { fn(o11) { m(trace @"PT1": k(Void)) } } } }
} }
fn(j1, k1, l1, m1) { {
let n1 = fn(o10, p10) { {
let q10 = builtin.un_constr_data(p10)
{
let r10 = builtin.fst_pair({
expect _fstPair_arg0: Pair<Int, List<Data>> = q10
_fstPair_arg0
})
if {
expect _ifThenElse_arg0: Bool = {
expect _equalsInteger_arg0: Int = r10
_equalsInteger_arg0
} == 2
_ifThenElse_arg0
} { fn(s10) { l1 } } else { fn(t10) { if {
expect _ifThenElse_arg0: Bool = {
expect _equalsInteger_arg0: Int = r10
_equalsInteger_arg0
} == 1
_ifThenElse_arg
... (truncated, 10000 chars total)
Static Decompilation Issue
The deterministic UPLC → Aiken decompiler produced output with verification gaps.
This is a bug in the parser, codegen, or pattern detection — not an AI issue.
Script:
ea184d0a7e640c4b5daa3f2cef851e75477729c2fd89f6ffbed7874cConfidence: medium
Constants (3/4 found in decompiled code)
1 constant(s) from UPLC bytecode not found in Aiken output:
trace: "invalid public key hash"Scores
???,TODO, stub patternsbuiltin.*densityRaw Decompiled Aiken
UPLC (compact)
Auto-filed by UPLC.WTF verification system