Update to pallas=0.31.0
This commit is contained in:
@@ -1007,6 +1007,7 @@ impl UntypedExpr {
|
||||
PlutusData::Array(elems) => UntypedExpr::List {
|
||||
location: Span::empty(),
|
||||
elements: elems
|
||||
.to_vec()
|
||||
.into_iter()
|
||||
.map(UntypedExpr::reify_blind)
|
||||
.collect::<Vec<_>>(),
|
||||
@@ -1041,6 +1042,7 @@ impl UntypedExpr {
|
||||
let ix = convert_tag_to_constr(tag).or(any_constructor).unwrap() as usize;
|
||||
|
||||
let fields = fields
|
||||
.to_vec()
|
||||
.into_iter()
|
||||
.map(|field| CallArg {
|
||||
location: Span::empty(),
|
||||
@@ -1127,6 +1129,7 @@ impl UntypedExpr {
|
||||
Ok(UntypedExpr::List {
|
||||
location: Span::empty(),
|
||||
elements: args
|
||||
.to_vec()
|
||||
.into_iter()
|
||||
.map(|arg| {
|
||||
UntypedExpr::do_reify_data(generics, data_types, arg, inner)
|
||||
@@ -1144,6 +1147,7 @@ impl UntypedExpr {
|
||||
Type::Tuple { elems, .. } => Ok(UntypedExpr::Tuple {
|
||||
location: Span::empty(),
|
||||
elems: args
|
||||
.to_vec()
|
||||
.into_iter()
|
||||
.zip(elems)
|
||||
.map(|(arg, arg_type)| {
|
||||
@@ -1153,6 +1157,7 @@ impl UntypedExpr {
|
||||
}),
|
||||
Type::Pair { fst, snd, .. } => {
|
||||
let mut elems = args
|
||||
.to_vec()
|
||||
.into_iter()
|
||||
.zip([fst, snd])
|
||||
.map(|(arg, arg_type)| {
|
||||
@@ -1213,6 +1218,7 @@ impl UntypedExpr {
|
||||
} else {
|
||||
let arguments =
|
||||
fields
|
||||
.to_vec()
|
||||
.into_iter()
|
||||
.zip(constructor.arguments.iter())
|
||||
.map(
|
||||
@@ -1264,9 +1270,9 @@ impl UntypedExpr {
|
||||
UntypedExpr::do_reify_data(
|
||||
generics,
|
||||
data_types,
|
||||
PlutusData::Array(
|
||||
Data::list(
|
||||
kvs.into_iter()
|
||||
.map(|(k, v)| PlutusData::Array(vec![k, v]))
|
||||
.map(|(k, v)| Data::list(vec![k, v]))
|
||||
.collect(),
|
||||
),
|
||||
tipo,
|
||||
|
||||
@@ -18,14 +18,11 @@ use indexmap::IndexMap;
|
||||
use itertools::{Itertools, Position};
|
||||
use std::{ops::Deref, rc::Rc};
|
||||
use uplc::{
|
||||
ast::{Constant as UplcConstant, Name, Term, Type as UplcType},
|
||||
ast::{Constant as UplcConstant, Data, Name, Term, Type as UplcType},
|
||||
builder::{CONSTR_FIELDS_EXPOSER, CONSTR_INDEX_EXPOSER},
|
||||
builtins::DefaultFunction,
|
||||
machine::{
|
||||
runtime::{convert_constr_to_tag, Compressable, ANY_TAG},
|
||||
value::to_pallas_bigint,
|
||||
},
|
||||
Constr, KeyValuePairs, PlutusData,
|
||||
machine::{runtime::Compressable, value::to_pallas_bigint},
|
||||
KeyValuePairs, PlutusData,
|
||||
};
|
||||
|
||||
pub type Variant = String;
|
||||
@@ -637,12 +634,7 @@ pub fn convert_constants_to_data(constants: Vec<Rc<UplcConstant>>) -> Vec<UplcCo
|
||||
UplcConstant::Data(PlutusData::BoundedBytes(s.as_bytes().to_vec().into()))
|
||||
}
|
||||
|
||||
UplcConstant::Bool(b) => UplcConstant::Data(PlutusData::Constr(Constr {
|
||||
tag: convert_constr_to_tag((*b).into()).unwrap_or(ANY_TAG),
|
||||
any_constructor: convert_constr_to_tag((*b).into())
|
||||
.map_or(Some((*b).into()), |_| None),
|
||||
fields: vec![],
|
||||
})),
|
||||
UplcConstant::Bool(b) => UplcConstant::Data(Data::constr((*b).into(), vec![])),
|
||||
UplcConstant::ProtoList(list_type, constants) => {
|
||||
if matches!(list_type, UplcType::Pair(_, _)) {
|
||||
let inner_constants = constants
|
||||
@@ -675,7 +667,7 @@ pub fn convert_constants_to_data(constants: Vec<Rc<UplcConstant>>) -> Vec<UplcCo
|
||||
})
|
||||
.collect_vec();
|
||||
|
||||
UplcConstant::Data(PlutusData::Array(inner_constants))
|
||||
UplcConstant::Data(Data::list(inner_constants))
|
||||
}
|
||||
}
|
||||
UplcConstant::ProtoPair(_, _, left, right) => {
|
||||
@@ -688,17 +680,13 @@ pub fn convert_constants_to_data(constants: Vec<Rc<UplcConstant>>) -> Vec<UplcCo
|
||||
})
|
||||
.collect_vec();
|
||||
|
||||
UplcConstant::Data(PlutusData::Array(vec![
|
||||
UplcConstant::Data(Data::list(vec![
|
||||
inner_constants[0].clone(),
|
||||
inner_constants[1].clone(),
|
||||
]))
|
||||
}
|
||||
d @ UplcConstant::Data(_) => d.clone(),
|
||||
UplcConstant::Unit => UplcConstant::Data(PlutusData::Constr(Constr {
|
||||
tag: convert_constr_to_tag(0).unwrap(),
|
||||
any_constructor: None,
|
||||
fields: vec![],
|
||||
})),
|
||||
UplcConstant::Unit => UplcConstant::Data(Data::constr(0, vec![])),
|
||||
UplcConstant::Bls12_381G1Element(b) => UplcConstant::Data(PlutusData::BoundedBytes(
|
||||
b.deref().clone().compress().into(),
|
||||
)),
|
||||
@@ -741,33 +729,12 @@ pub fn convert_type_to_data(term: Term<Name>, field_type: &Rc<Type>) -> Term<Nam
|
||||
)
|
||||
.lambda("__pair")
|
||||
.apply(term),
|
||||
Some(UplcType::Unit) => Term::Constant(
|
||||
UplcConstant::Data(PlutusData::Constr(Constr {
|
||||
tag: convert_constr_to_tag(0).unwrap(),
|
||||
any_constructor: None,
|
||||
fields: vec![],
|
||||
}))
|
||||
.into(),
|
||||
)
|
||||
.lambda("_")
|
||||
.apply(term),
|
||||
Some(UplcType::Unit) => Term::Constant(UplcConstant::Data(Data::constr(0, vec![])).into())
|
||||
.lambda("_")
|
||||
.apply(term),
|
||||
Some(UplcType::Bool) => term.if_then_else(
|
||||
Term::Constant(
|
||||
UplcConstant::Data(PlutusData::Constr(Constr {
|
||||
tag: convert_constr_to_tag(1).unwrap(),
|
||||
any_constructor: None,
|
||||
fields: vec![],
|
||||
}))
|
||||
.into(),
|
||||
),
|
||||
Term::Constant(
|
||||
UplcConstant::Data(PlutusData::Constr(Constr {
|
||||
tag: convert_constr_to_tag(0).unwrap(),
|
||||
any_constructor: None,
|
||||
fields: vec![],
|
||||
}))
|
||||
.into(),
|
||||
),
|
||||
Term::Constant(UplcConstant::Data(Data::constr(1, vec![])).into()),
|
||||
Term::Constant(UplcConstant::Data(Data::constr(0, vec![])).into()),
|
||||
),
|
||||
|
||||
Some(UplcType::Data) | None => term,
|
||||
|
||||
@@ -559,16 +559,15 @@ impl Prng {
|
||||
{
|
||||
return Prng::Seeded {
|
||||
choices: choices.to_vec(),
|
||||
uplc: PlutusData::Constr(Constr {
|
||||
tag: 121 + Prng::SEEDED,
|
||||
fields: vec![
|
||||
uplc: Data::constr(
|
||||
Prng::SEEDED,
|
||||
vec![
|
||||
PlutusData::BoundedBytes(bytes.to_owned()),
|
||||
// Clear choices between seeded runs, to not
|
||||
// accumulate ALL choices ever made.
|
||||
PlutusData::BoundedBytes(vec![].into()),
|
||||
],
|
||||
any_constructor: None,
|
||||
}),
|
||||
),
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user