Compare commits
No commits in common. "5a8ef1aef0cdffb9ec8ea05320d59559671bdc11" and "18054eed1acb31924966a25dc4072ce98bde498f" have entirely different histories.
5a8ef1aef0
...
18054eed1a
|
@ -1,13 +1,5 @@
|
||||||
# Changelog
|
# Changelog
|
||||||
|
|
||||||
## v1.1.7 - 2024-11-19
|
|
||||||
|
|
||||||
### Changed
|
|
||||||
|
|
||||||
- **aiken**: Move JSON schema help for `check` under a new dedicated flag `--show-json-schema`. @KtorZ
|
|
||||||
- **aiken-lang**: Fix pattern-matching on list wildcard sometimes causing compiler crash following the new _decision trees_ approach. @MicroProofs
|
|
||||||
- **uplc**, **aiken**, **aiken-lang**: Update internal dependencies to pallas-0.31.0. @KtorZ
|
|
||||||
|
|
||||||
## v1.1.6 - 2024-11-13
|
## v1.1.6 - 2024-11-13
|
||||||
|
|
||||||
### Added
|
### Added
|
||||||
|
|
File diff suppressed because it is too large
Load Diff
10
Cargo.toml
10
Cargo.toml
|
@ -52,11 +52,11 @@ x86_64-unknown-linux-musl = "ubuntu-22.04"
|
||||||
walkdir = "2.3.2"
|
walkdir = "2.3.2"
|
||||||
insta = { version = "1.30.0", features = ["yaml", "json", "redactions"] }
|
insta = { version = "1.30.0", features = ["yaml", "json", "redactions"] }
|
||||||
miette = { version = "7.2.0" }
|
miette = { version = "7.2.0" }
|
||||||
pallas-addresses = "0.31.0"
|
pallas-addresses = "0.30.1"
|
||||||
pallas-codec = { version = "0.31.0", features = ["num-bigint"] }
|
pallas-codec = { version = "0.30.1", features = ["num-bigint"] }
|
||||||
pallas-crypto = "0.31.0"
|
pallas-crypto = "0.30.1"
|
||||||
pallas-primitives = "0.31.0"
|
pallas-primitives = "0.30.1"
|
||||||
pallas-traverse = "0.31.0"
|
pallas-traverse = "0.30.1"
|
||||||
|
|
||||||
[profile.dev.package.insta]
|
[profile.dev.package.insta]
|
||||||
opt-level = 3
|
opt-level = 3
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
[package]
|
[package]
|
||||||
name = "aiken-lang"
|
name = "aiken-lang"
|
||||||
description = "The Aiken compiler"
|
description = "The Aiken compiler"
|
||||||
version = "1.1.7"
|
version = "1.1.6"
|
||||||
edition = "2021"
|
edition = "2021"
|
||||||
repository = "https://github.com/aiken-lang/aiken"
|
repository = "https://github.com/aiken-lang/aiken"
|
||||||
homepage = "https://github.com/aiken-lang/aiken"
|
homepage = "https://github.com/aiken-lang/aiken"
|
||||||
|
@ -32,7 +32,7 @@ pretty = "0.12.3"
|
||||||
serde = { version = "1.0.197", features = ["derive", "rc"] }
|
serde = { version = "1.0.197", features = ["derive", "rc"] }
|
||||||
strum = "0.24.1"
|
strum = "0.24.1"
|
||||||
thiserror = "1.0.39"
|
thiserror = "1.0.39"
|
||||||
uplc = { path = '../uplc', version = "1.1.7" }
|
uplc = { path = '../uplc', version = "1.1.6" }
|
||||||
vec1 = "1.10.1"
|
vec1 = "1.10.1"
|
||||||
|
|
||||||
[target.'cfg(not(target_family="wasm"))'.dependencies]
|
[target.'cfg(not(target_family="wasm"))'.dependencies]
|
||||||
|
|
|
@ -1007,7 +1007,6 @@ impl UntypedExpr {
|
||||||
PlutusData::Array(elems) => UntypedExpr::List {
|
PlutusData::Array(elems) => UntypedExpr::List {
|
||||||
location: Span::empty(),
|
location: Span::empty(),
|
||||||
elements: elems
|
elements: elems
|
||||||
.to_vec()
|
|
||||||
.into_iter()
|
.into_iter()
|
||||||
.map(UntypedExpr::reify_blind)
|
.map(UntypedExpr::reify_blind)
|
||||||
.collect::<Vec<_>>(),
|
.collect::<Vec<_>>(),
|
||||||
|
@ -1042,7 +1041,6 @@ impl UntypedExpr {
|
||||||
let ix = convert_tag_to_constr(tag).or(any_constructor).unwrap() as usize;
|
let ix = convert_tag_to_constr(tag).or(any_constructor).unwrap() as usize;
|
||||||
|
|
||||||
let fields = fields
|
let fields = fields
|
||||||
.to_vec()
|
|
||||||
.into_iter()
|
.into_iter()
|
||||||
.map(|field| CallArg {
|
.map(|field| CallArg {
|
||||||
location: Span::empty(),
|
location: Span::empty(),
|
||||||
|
@ -1129,7 +1127,6 @@ impl UntypedExpr {
|
||||||
Ok(UntypedExpr::List {
|
Ok(UntypedExpr::List {
|
||||||
location: Span::empty(),
|
location: Span::empty(),
|
||||||
elements: args
|
elements: args
|
||||||
.to_vec()
|
|
||||||
.into_iter()
|
.into_iter()
|
||||||
.map(|arg| {
|
.map(|arg| {
|
||||||
UntypedExpr::do_reify_data(generics, data_types, arg, inner)
|
UntypedExpr::do_reify_data(generics, data_types, arg, inner)
|
||||||
|
@ -1147,7 +1144,6 @@ impl UntypedExpr {
|
||||||
Type::Tuple { elems, .. } => Ok(UntypedExpr::Tuple {
|
Type::Tuple { elems, .. } => Ok(UntypedExpr::Tuple {
|
||||||
location: Span::empty(),
|
location: Span::empty(),
|
||||||
elems: args
|
elems: args
|
||||||
.to_vec()
|
|
||||||
.into_iter()
|
.into_iter()
|
||||||
.zip(elems)
|
.zip(elems)
|
||||||
.map(|(arg, arg_type)| {
|
.map(|(arg, arg_type)| {
|
||||||
|
@ -1157,7 +1153,6 @@ impl UntypedExpr {
|
||||||
}),
|
}),
|
||||||
Type::Pair { fst, snd, .. } => {
|
Type::Pair { fst, snd, .. } => {
|
||||||
let mut elems = args
|
let mut elems = args
|
||||||
.to_vec()
|
|
||||||
.into_iter()
|
.into_iter()
|
||||||
.zip([fst, snd])
|
.zip([fst, snd])
|
||||||
.map(|(arg, arg_type)| {
|
.map(|(arg, arg_type)| {
|
||||||
|
@ -1218,7 +1213,6 @@ impl UntypedExpr {
|
||||||
} else {
|
} else {
|
||||||
let arguments =
|
let arguments =
|
||||||
fields
|
fields
|
||||||
.to_vec()
|
|
||||||
.into_iter()
|
.into_iter()
|
||||||
.zip(constructor.arguments.iter())
|
.zip(constructor.arguments.iter())
|
||||||
.map(
|
.map(
|
||||||
|
@ -1270,9 +1264,9 @@ impl UntypedExpr {
|
||||||
UntypedExpr::do_reify_data(
|
UntypedExpr::do_reify_data(
|
||||||
generics,
|
generics,
|
||||||
data_types,
|
data_types,
|
||||||
Data::list(
|
PlutusData::Array(
|
||||||
kvs.into_iter()
|
kvs.into_iter()
|
||||||
.map(|(k, v)| Data::list(vec![k, v]))
|
.map(|(k, v)| PlutusData::Array(vec![k, v]))
|
||||||
.collect(),
|
.collect(),
|
||||||
),
|
),
|
||||||
tipo,
|
tipo,
|
||||||
|
|
|
@ -18,11 +18,14 @@ use indexmap::IndexMap;
|
||||||
use itertools::{Itertools, Position};
|
use itertools::{Itertools, Position};
|
||||||
use std::{ops::Deref, rc::Rc};
|
use std::{ops::Deref, rc::Rc};
|
||||||
use uplc::{
|
use uplc::{
|
||||||
ast::{Constant as UplcConstant, Data, Name, Term, Type as UplcType},
|
ast::{Constant as UplcConstant, Name, Term, Type as UplcType},
|
||||||
builder::{CONSTR_FIELDS_EXPOSER, CONSTR_INDEX_EXPOSER},
|
builder::{CONSTR_FIELDS_EXPOSER, CONSTR_INDEX_EXPOSER},
|
||||||
builtins::DefaultFunction,
|
builtins::DefaultFunction,
|
||||||
machine::{runtime::Compressable, value::to_pallas_bigint},
|
machine::{
|
||||||
KeyValuePairs, PlutusData,
|
runtime::{convert_constr_to_tag, Compressable, ANY_TAG},
|
||||||
|
value::to_pallas_bigint,
|
||||||
|
},
|
||||||
|
Constr, KeyValuePairs, PlutusData,
|
||||||
};
|
};
|
||||||
|
|
||||||
pub type Variant = String;
|
pub type Variant = String;
|
||||||
|
@ -634,7 +637,12 @@ pub fn convert_constants_to_data(constants: Vec<Rc<UplcConstant>>) -> Vec<UplcCo
|
||||||
UplcConstant::Data(PlutusData::BoundedBytes(s.as_bytes().to_vec().into()))
|
UplcConstant::Data(PlutusData::BoundedBytes(s.as_bytes().to_vec().into()))
|
||||||
}
|
}
|
||||||
|
|
||||||
UplcConstant::Bool(b) => UplcConstant::Data(Data::constr((*b).into(), vec![])),
|
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::ProtoList(list_type, constants) => {
|
UplcConstant::ProtoList(list_type, constants) => {
|
||||||
if matches!(list_type, UplcType::Pair(_, _)) {
|
if matches!(list_type, UplcType::Pair(_, _)) {
|
||||||
let inner_constants = constants
|
let inner_constants = constants
|
||||||
|
@ -667,7 +675,7 @@ pub fn convert_constants_to_data(constants: Vec<Rc<UplcConstant>>) -> Vec<UplcCo
|
||||||
})
|
})
|
||||||
.collect_vec();
|
.collect_vec();
|
||||||
|
|
||||||
UplcConstant::Data(Data::list(inner_constants))
|
UplcConstant::Data(PlutusData::Array(inner_constants))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
UplcConstant::ProtoPair(_, _, left, right) => {
|
UplcConstant::ProtoPair(_, _, left, right) => {
|
||||||
|
@ -680,13 +688,17 @@ pub fn convert_constants_to_data(constants: Vec<Rc<UplcConstant>>) -> Vec<UplcCo
|
||||||
})
|
})
|
||||||
.collect_vec();
|
.collect_vec();
|
||||||
|
|
||||||
UplcConstant::Data(Data::list(vec![
|
UplcConstant::Data(PlutusData::Array(vec![
|
||||||
inner_constants[0].clone(),
|
inner_constants[0].clone(),
|
||||||
inner_constants[1].clone(),
|
inner_constants[1].clone(),
|
||||||
]))
|
]))
|
||||||
}
|
}
|
||||||
d @ UplcConstant::Data(_) => d.clone(),
|
d @ UplcConstant::Data(_) => d.clone(),
|
||||||
UplcConstant::Unit => UplcConstant::Data(Data::constr(0, vec![])),
|
UplcConstant::Unit => UplcConstant::Data(PlutusData::Constr(Constr {
|
||||||
|
tag: convert_constr_to_tag(0).unwrap(),
|
||||||
|
any_constructor: None,
|
||||||
|
fields: vec![],
|
||||||
|
})),
|
||||||
UplcConstant::Bls12_381G1Element(b) => UplcConstant::Data(PlutusData::BoundedBytes(
|
UplcConstant::Bls12_381G1Element(b) => UplcConstant::Data(PlutusData::BoundedBytes(
|
||||||
b.deref().clone().compress().into(),
|
b.deref().clone().compress().into(),
|
||||||
)),
|
)),
|
||||||
|
@ -729,12 +741,33 @@ pub fn convert_type_to_data(term: Term<Name>, field_type: &Rc<Type>) -> Term<Nam
|
||||||
)
|
)
|
||||||
.lambda("__pair")
|
.lambda("__pair")
|
||||||
.apply(term),
|
.apply(term),
|
||||||
Some(UplcType::Unit) => Term::Constant(UplcConstant::Data(Data::constr(0, vec![])).into())
|
Some(UplcType::Unit) => Term::Constant(
|
||||||
|
UplcConstant::Data(PlutusData::Constr(Constr {
|
||||||
|
tag: convert_constr_to_tag(0).unwrap(),
|
||||||
|
any_constructor: None,
|
||||||
|
fields: vec![],
|
||||||
|
}))
|
||||||
|
.into(),
|
||||||
|
)
|
||||||
.lambda("_")
|
.lambda("_")
|
||||||
.apply(term),
|
.apply(term),
|
||||||
Some(UplcType::Bool) => term.if_then_else(
|
Some(UplcType::Bool) => term.if_then_else(
|
||||||
Term::Constant(UplcConstant::Data(Data::constr(1, vec![])).into()),
|
Term::Constant(
|
||||||
Term::Constant(UplcConstant::Data(Data::constr(0, vec![])).into()),
|
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(),
|
||||||
|
),
|
||||||
),
|
),
|
||||||
|
|
||||||
Some(UplcType::Data) | None => term,
|
Some(UplcType::Data) | None => term,
|
||||||
|
|
|
@ -428,17 +428,10 @@ impl<'a> DecisionTree<'a> {
|
||||||
.enumerate()
|
.enumerate()
|
||||||
.rev()
|
.rev()
|
||||||
.for_each(|(index, (_, detree))| {
|
.for_each(|(index, (_, detree))| {
|
||||||
if index + cases.len() == 0 {
|
|
||||||
prev.push(Marker::Push(
|
|
||||||
ScopePath::Case(index + cases.len()),
|
|
||||||
detree,
|
|
||||||
));
|
|
||||||
} else {
|
|
||||||
prev.push(Marker::PopPush(
|
prev.push(Marker::PopPush(
|
||||||
ScopePath::Case(index + cases.len()),
|
ScopePath::Case(index + cases.len()),
|
||||||
detree,
|
detree,
|
||||||
));
|
));
|
||||||
}
|
|
||||||
});
|
});
|
||||||
|
|
||||||
cases
|
cases
|
||||||
|
|
|
@ -559,15 +559,16 @@ impl Prng {
|
||||||
{
|
{
|
||||||
return Prng::Seeded {
|
return Prng::Seeded {
|
||||||
choices: choices.to_vec(),
|
choices: choices.to_vec(),
|
||||||
uplc: Data::constr(
|
uplc: PlutusData::Constr(Constr {
|
||||||
Prng::SEEDED,
|
tag: 121 + Prng::SEEDED,
|
||||||
vec![
|
fields: vec![
|
||||||
PlutusData::BoundedBytes(bytes.to_owned()),
|
PlutusData::BoundedBytes(bytes.to_owned()),
|
||||||
// Clear choices between seeded runs, to not
|
// Clear choices between seeded runs, to not
|
||||||
// accumulate ALL choices ever made.
|
// accumulate ALL choices ever made.
|
||||||
PlutusData::BoundedBytes(vec![].into()),
|
PlutusData::BoundedBytes(vec![].into()),
|
||||||
],
|
],
|
||||||
),
|
any_constructor: None,
|
||||||
|
}),
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
[package]
|
[package]
|
||||||
name = "aiken-lsp"
|
name = "aiken-lsp"
|
||||||
version = "1.1.7"
|
version = "1.1.6"
|
||||||
edition = "2021"
|
edition = "2021"
|
||||||
description = "Cardano smart contract language and toolchain"
|
description = "Cardano smart contract language and toolchain"
|
||||||
repository = "https://github.com/aiken-lang/aiken"
|
repository = "https://github.com/aiken-lang/aiken"
|
||||||
|
@ -24,5 +24,5 @@ tracing = "0.1.37"
|
||||||
url = "2.3.1"
|
url = "2.3.1"
|
||||||
urlencoding = "2.1.2"
|
urlencoding = "2.1.2"
|
||||||
|
|
||||||
aiken-lang = { path = '../aiken-lang', version = "1.1.7" }
|
aiken-lang = { path = '../aiken-lang', version = "1.1.6" }
|
||||||
aiken-project = { path = '../aiken-project', version = "1.1.7" }
|
aiken-project = { path = '../aiken-project', version = "1.1.6" }
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
[package]
|
[package]
|
||||||
name = "aiken-project"
|
name = "aiken-project"
|
||||||
description = "Aiken project utilities"
|
description = "Aiken project utilities"
|
||||||
version = "1.1.7"
|
version = "1.1.6"
|
||||||
edition = "2021"
|
edition = "2021"
|
||||||
repository = "https://github.com/aiken-lang/aiken"
|
repository = "https://github.com/aiken-lang/aiken"
|
||||||
homepage = "https://github.com/aiken-lang/aiken"
|
homepage = "https://github.com/aiken-lang/aiken"
|
||||||
|
@ -15,7 +15,7 @@ rust-version = "1.70.0"
|
||||||
build = "build.rs"
|
build = "build.rs"
|
||||||
|
|
||||||
[dependencies]
|
[dependencies]
|
||||||
aiken-lang = { path = "../aiken-lang", version = "1.1.7" }
|
aiken-lang = { path = "../aiken-lang", version = "1.1.6" }
|
||||||
askama = { version = "0.12.0", features = ["urlencode"] }
|
askama = { version = "0.12.0", features = ["urlencode"] }
|
||||||
camino = "1.1.9"
|
camino = "1.1.9"
|
||||||
ciborium = "0.2.2"
|
ciborium = "0.2.2"
|
||||||
|
@ -49,7 +49,7 @@ strip-ansi-escapes = "0.1.1"
|
||||||
thiserror = "1.0.39"
|
thiserror = "1.0.39"
|
||||||
tokio = { version = "1.26.0", features = ["full"] }
|
tokio = { version = "1.26.0", features = ["full"] }
|
||||||
toml = "0.7.2"
|
toml = "0.7.2"
|
||||||
uplc = { path = '../uplc', version = "1.1.7" }
|
uplc = { path = '../uplc', version = "1.1.6" }
|
||||||
vec1 = "1.10.1"
|
vec1 = "1.10.1"
|
||||||
walkdir.workspace = true
|
walkdir.workspace = true
|
||||||
zip = "0.6.4"
|
zip = "0.6.4"
|
||||||
|
|
|
@ -2,7 +2,7 @@ use aiken_lang::{
|
||||||
expr::UntypedExpr,
|
expr::UntypedExpr,
|
||||||
test_framework::{PropertyTestResult, TestResult, UnitTestResult},
|
test_framework::{PropertyTestResult, TestResult, UnitTestResult},
|
||||||
};
|
};
|
||||||
pub use json::{json_schema, Json};
|
pub use json::Json;
|
||||||
use std::{
|
use std::{
|
||||||
collections::BTreeMap,
|
collections::BTreeMap,
|
||||||
fmt::Display,
|
fmt::Display,
|
||||||
|
|
|
@ -137,137 +137,3 @@ where
|
||||||
.filter(|t| matches!(t, TestResult::PropertyTestResult { .. }))
|
.filter(|t| matches!(t, TestResult::PropertyTestResult { .. }))
|
||||||
.count()
|
.count()
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn json_schema() -> serde_json::Value {
|
|
||||||
let definitions = json!({
|
|
||||||
"Summary": {
|
|
||||||
"type": "object",
|
|
||||||
"required": ["total", "passed", "failed", "kind"],
|
|
||||||
"properties": {
|
|
||||||
"total": { "type": "integer" },
|
|
||||||
"passed": { "type": "integer" },
|
|
||||||
"failed": { "type": "integer" },
|
|
||||||
"kind": {
|
|
||||||
"type": "object",
|
|
||||||
"required": ["unit", "property"],
|
|
||||||
"properties": {
|
|
||||||
"unit": { "type": "integer" },
|
|
||||||
"property": { "type": "integer" }
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"Status": {
|
|
||||||
"type": "string",
|
|
||||||
"enum": [ "pass", "fail" ]
|
|
||||||
},
|
|
||||||
"OnFailure": {
|
|
||||||
"type": "string",
|
|
||||||
"enum": [
|
|
||||||
"fail_immediately",
|
|
||||||
"succeed_immediately",
|
|
||||||
"succeed_eventually"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
let unit_test = json!({
|
|
||||||
"type": "object",
|
|
||||||
"required": [
|
|
||||||
"kind",
|
|
||||||
"title",
|
|
||||||
"status",
|
|
||||||
"on_failure",
|
|
||||||
"execution_units"
|
|
||||||
],
|
|
||||||
"properties": {
|
|
||||||
"kind": {
|
|
||||||
"type": "string",
|
|
||||||
"enum": [ "unit" ]
|
|
||||||
},
|
|
||||||
"title": { "type": "string" },
|
|
||||||
"status": { "$ref": "#/properties/definitions/Status" },
|
|
||||||
"on_failure": { "$ref": "#/properties/definitions/OnFailure" },
|
|
||||||
"execution_units": {
|
|
||||||
"type": "object",
|
|
||||||
"properties": {
|
|
||||||
"mem": { "type": "integer" },
|
|
||||||
"cpu": { "type": "integer" }
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"assertion": { "type": "string" },
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
let property_test = json!({
|
|
||||||
"type": "object",
|
|
||||||
"required": [
|
|
||||||
"kind",
|
|
||||||
"title",
|
|
||||||
"status",
|
|
||||||
"on_failure",
|
|
||||||
"iterations",
|
|
||||||
"counterexample"
|
|
||||||
],
|
|
||||||
"properties": {
|
|
||||||
"kind": {
|
|
||||||
"type": "string",
|
|
||||||
"enum": [ "property" ]
|
|
||||||
},
|
|
||||||
"title": { "type": "string" },
|
|
||||||
"status": { "$ref": "#/properties/definitions/Status" },
|
|
||||||
"on_failure": { "$ref": "#/properties/definitions/OnFailure" },
|
|
||||||
"iterations": { "type": "integer" },
|
|
||||||
"labels": {
|
|
||||||
"type": "object",
|
|
||||||
"additionalProperties": { "type": "integer" }
|
|
||||||
},
|
|
||||||
"counterexample": {
|
|
||||||
"oneOf": [
|
|
||||||
{ "type": "string" },
|
|
||||||
{ "type": "null" },
|
|
||||||
{
|
|
||||||
"type": "object",
|
|
||||||
"properties": {
|
|
||||||
"error": { "type": "string" }
|
|
||||||
}
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
json!({
|
|
||||||
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
||||||
"$vocabulary": {
|
|
||||||
"https://json-schema.org/draft/2020-12/vocab/core": true,
|
|
||||||
"https://json-schema.org/draft/2020-12/vocab/applicator": true,
|
|
||||||
"https://json-schema.org/draft/2020-12/vocab/validation": true
|
|
||||||
},
|
|
||||||
"title": "Aiken CLI JSON Schema",
|
|
||||||
"type": "object",
|
|
||||||
"properties": {
|
|
||||||
"command[check]": {
|
|
||||||
"seed": { "type": "integer" },
|
|
||||||
"summary": { "$ref": "#/properties/definitions/Summary" },
|
|
||||||
"modules": {
|
|
||||||
"type": "array",
|
|
||||||
"items": {
|
|
||||||
"type": "object",
|
|
||||||
"properties": {
|
|
||||||
"name": { "type": "string" },
|
|
||||||
"summary": { "$ref": "#/properties/definitions/Summary" },
|
|
||||||
"test": {
|
|
||||||
"type": "array",
|
|
||||||
"items": {
|
|
||||||
"oneOf": [ unit_test, property_test ]
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"definitions": definitions
|
|
||||||
}
|
|
||||||
})
|
|
||||||
}
|
|
||||||
|
|
|
@ -109,7 +109,7 @@ impl EventListener for Terminal {
|
||||||
}
|
}
|
||||||
Event::RunningTests => {
|
Event::RunningTests => {
|
||||||
eprintln!(
|
eprintln!(
|
||||||
"{} {}",
|
"{} {}\n",
|
||||||
" Testing"
|
" Testing"
|
||||||
.if_supports_color(Stderr, |s| s.bold())
|
.if_supports_color(Stderr, |s| s.bold())
|
||||||
.if_supports_color(Stderr, |s| s.purple()),
|
.if_supports_color(Stderr, |s| s.purple()),
|
||||||
|
@ -144,10 +144,6 @@ impl EventListener for Terminal {
|
||||||
String::new()
|
String::new()
|
||||||
};
|
};
|
||||||
|
|
||||||
if !tests.is_empty() {
|
|
||||||
println!();
|
|
||||||
}
|
|
||||||
|
|
||||||
let summary = format!("{}{}", seed_info, fmt_test_summary(results, true));
|
let summary = format!("{}{}", seed_info, fmt_test_summary(results, true));
|
||||||
println!(
|
println!(
|
||||||
"{}\n",
|
"{}\n",
|
||||||
|
@ -208,11 +204,10 @@ impl EventListener for Terminal {
|
||||||
}
|
}
|
||||||
Event::ResolvingVersions => {
|
Event::ResolvingVersions => {
|
||||||
eprintln!(
|
eprintln!(
|
||||||
"{} {}",
|
"{}",
|
||||||
" Resolving"
|
" Resolving dependencies"
|
||||||
.if_supports_color(Stderr, |s| s.bold())
|
.if_supports_color(Stderr, |s| s.bold())
|
||||||
.if_supports_color(Stderr, |s| s.purple()),
|
.if_supports_color(Stderr, |s| s.purple()),
|
||||||
"dependencies".if_supports_color(Stderr, |s| s.bold())
|
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
[package]
|
[package]
|
||||||
name = "aiken"
|
name = "aiken"
|
||||||
description = "Cardano smart contract language and toolchain"
|
description = "Cardano smart contract language and toolchain"
|
||||||
version = "1.1.7"
|
version = "1.1.6"
|
||||||
edition = "2021"
|
edition = "2021"
|
||||||
repository = "https://github.com/aiken-lang/aiken"
|
repository = "https://github.com/aiken-lang/aiken"
|
||||||
homepage = "https://github.com/aiken-lang/aiken"
|
homepage = "https://github.com/aiken-lang/aiken"
|
||||||
|
@ -20,9 +20,9 @@ license = false
|
||||||
eula = false
|
eula = false
|
||||||
|
|
||||||
[dependencies]
|
[dependencies]
|
||||||
aiken-lang = { path = "../aiken-lang", version = "1.1.7" }
|
aiken-lang = { path = "../aiken-lang", version = "1.1.6" }
|
||||||
aiken-lsp = { path = "../aiken-lsp", version = "1.1.7" }
|
aiken-lsp = { path = "../aiken-lsp", version = "1.1.6" }
|
||||||
aiken-project = { path = '../aiken-project', version = "1.1.7" }
|
aiken-project = { path = '../aiken-project', version = "1.1.6" }
|
||||||
clap = { version = "4.1.8", features = [
|
clap = { version = "4.1.8", features = [
|
||||||
"derive",
|
"derive",
|
||||||
"wrap_help",
|
"wrap_help",
|
||||||
|
@ -46,7 +46,7 @@ rand = "0.8.5"
|
||||||
regex = "1.7.1"
|
regex = "1.7.1"
|
||||||
serde_json = "1.0.94"
|
serde_json = "1.0.94"
|
||||||
thiserror = "1.0.39"
|
thiserror = "1.0.39"
|
||||||
uplc = { path = '../uplc', version = "1.1.7" }
|
uplc = { path = '../uplc', version = "1.1.6" }
|
||||||
|
|
||||||
[target.'cfg(not(windows))'.dependencies]
|
[target.'cfg(not(windows))'.dependencies]
|
||||||
xdg = "2.5.2"
|
xdg = "2.5.2"
|
||||||
|
|
|
@ -3,10 +3,7 @@ use aiken_lang::{
|
||||||
ast::{TraceLevel, Tracing},
|
ast::{TraceLevel, Tracing},
|
||||||
test_framework::PropertyTest,
|
test_framework::PropertyTest,
|
||||||
};
|
};
|
||||||
use aiken_project::{
|
use aiken_project::watch::{self, watch_project, with_project};
|
||||||
telemetry::json_schema,
|
|
||||||
watch::{self, watch_project, with_project},
|
|
||||||
};
|
|
||||||
use rand::prelude::*;
|
use rand::prelude::*;
|
||||||
use std::{
|
use std::{
|
||||||
io::{self, IsTerminal},
|
io::{self, IsTerminal},
|
||||||
|
@ -22,9 +19,92 @@ Type-check an Aiken project and run any tests found.
|
||||||
|
|
||||||
Test results are printed as stylized outputs when `stdout` is a TTY-capable terminal. If it
|
Test results are printed as stylized outputs when `stdout` is a TTY-capable terminal. If it
|
||||||
isn't, (e.g. because you are redirecting the output to a file), test results are printed as
|
isn't, (e.g. because you are redirecting the output to a file), test results are printed as
|
||||||
a JSON structured object. Use `--show-json-schema` to see the whole schema.
|
a JSON structured object. Use `--help` to see the whole schema.
|
||||||
"#),
|
"#),
|
||||||
after_long_help = color_print::cstr!(r#"You are seeing the extended help. Use `-h` instead of `--help` for a more compact view.
|
after_long_help = color_print::cstr!(r#"<bold><underline>Output JSON schema:</underline></bold>
|
||||||
|
<bold>type</bold>: object
|
||||||
|
<bold>properties</bold>:
|
||||||
|
<bold>seed</bold>: <cyan>&type_integer</cyan>
|
||||||
|
<bold>type</bold>: integer
|
||||||
|
<bold>summary</bold>:
|
||||||
|
<bold>type</bold>: object
|
||||||
|
<bold>properties</bold>: <cyan>&type_summary</cyan>
|
||||||
|
<bold>total</bold>: *type_integer
|
||||||
|
<bold>passed</bold>: *type_integer
|
||||||
|
<bold>failed</bold>: *type_integer
|
||||||
|
<bold>kind</bold>:
|
||||||
|
<bold>type</bold>: object
|
||||||
|
<bold>properties</bold>:
|
||||||
|
<bold>unit</bold>: *type_integer
|
||||||
|
<bold>property</bold>: *type_integer
|
||||||
|
<bold>modules</bold>:
|
||||||
|
<bold>type</bold>: array
|
||||||
|
<bold>items</bold>:
|
||||||
|
<bold>type</bold>: object
|
||||||
|
<bold>properties</bold>:
|
||||||
|
<bold>name</bold>: <cyan>&type_string</cyan>
|
||||||
|
<bold>type</bold>: string
|
||||||
|
<bold>summary</bold>: *type_summary
|
||||||
|
<bold>test</bold>:
|
||||||
|
<bold>type</bold>: array
|
||||||
|
<bold>items</bold>:
|
||||||
|
<bold>oneOf</bold>:
|
||||||
|
- <bold>type</bold>: object
|
||||||
|
<bold>required</bold>:
|
||||||
|
- kind
|
||||||
|
- title
|
||||||
|
- status
|
||||||
|
- on_failure
|
||||||
|
- execution_units
|
||||||
|
<bold>properties</bold>:
|
||||||
|
<bold>kind</bold>
|
||||||
|
<bold>type</bold>: string
|
||||||
|
<bold>enum</bold>: [ "unit" ]
|
||||||
|
<bold>title</bold>: *type_string
|
||||||
|
<bold>status</bold>: <cyan>&type_status</cyan>
|
||||||
|
<bold>type</bold>: string
|
||||||
|
<bold>enum</bold>: [ "pass", "fail" ]
|
||||||
|
<bold>on_failure</bold>: <cyan>&type_on_failure</cyan>
|
||||||
|
<bold>type</bold>: string
|
||||||
|
<bold>enum</bold>:
|
||||||
|
- fail_immediately
|
||||||
|
- succeed_immediately
|
||||||
|
- succeed_eventually
|
||||||
|
<bold>execution_units</bold>:
|
||||||
|
<bold>type</bold>: object
|
||||||
|
<bold>properties</bold>:
|
||||||
|
<bold>mem</bold>: *type_integer
|
||||||
|
<bold>cpu</bold>: *type_integer
|
||||||
|
<bold>assertion</bold>: *type_string
|
||||||
|
- <bold>type</bold>: object
|
||||||
|
<bold>required</bold>:
|
||||||
|
- kind
|
||||||
|
- title
|
||||||
|
- status
|
||||||
|
- on_failure
|
||||||
|
- iterations
|
||||||
|
- counterexample
|
||||||
|
<bold>properties</bold>:
|
||||||
|
<bold>kind</bold>
|
||||||
|
<bold>type</bold>: string
|
||||||
|
<bold>enum</bold>: [ "property" ]
|
||||||
|
<bold>title</bold>: *type_string
|
||||||
|
<bold>status</bold>: *type_status
|
||||||
|
<bold>on_failure</bold>: *type_on_failure
|
||||||
|
<bold>iterations</bold>: *type_integer
|
||||||
|
<bold>labels</bold>:
|
||||||
|
<bold>type</bold>: object
|
||||||
|
<bold>additionalProperties</bold>: *type_integer
|
||||||
|
<bold>counterexample</bold>:
|
||||||
|
<bold>oneOf</bold>:
|
||||||
|
- *type_string
|
||||||
|
- <bold>type</bold>: "null"
|
||||||
|
- <bold>type</bold>: object
|
||||||
|
<bold>properties</bold>:
|
||||||
|
<bold>error</bold>: *type_string
|
||||||
|
|
||||||
|
<bold><underline>Note:</underline></bold>
|
||||||
|
You are seeing the extended help. Use `-h` instead of `--help` for a more compact view.
|
||||||
"#
|
"#
|
||||||
))]
|
))]
|
||||||
pub struct Args {
|
pub struct Args {
|
||||||
|
@ -43,11 +123,6 @@ pub struct Args {
|
||||||
#[clap(long)]
|
#[clap(long)]
|
||||||
debug: bool,
|
debug: bool,
|
||||||
|
|
||||||
/// When enabled, print-out the JSON-schema of the command output when the target isn't an
|
|
||||||
/// ANSI-capable terminal
|
|
||||||
#[clap(long, required = false)]
|
|
||||||
show_json_schema: bool,
|
|
||||||
|
|
||||||
/// When enabled, re-run the command on file changes instead of exiting
|
/// When enabled, re-run the command on file changes instead of exiting
|
||||||
#[clap(long)]
|
#[clap(long)]
|
||||||
watch: bool,
|
watch: bool,
|
||||||
|
@ -110,7 +185,6 @@ pub fn exec(
|
||||||
deny,
|
deny,
|
||||||
skip_tests,
|
skip_tests,
|
||||||
debug,
|
debug,
|
||||||
show_json_schema,
|
|
||||||
match_tests,
|
match_tests,
|
||||||
exact_match,
|
exact_match,
|
||||||
watch,
|
watch,
|
||||||
|
@ -121,11 +195,6 @@ pub fn exec(
|
||||||
env,
|
env,
|
||||||
}: Args,
|
}: Args,
|
||||||
) -> miette::Result<()> {
|
) -> miette::Result<()> {
|
||||||
if show_json_schema {
|
|
||||||
println!("{}", serde_json::to_string_pretty(&json_schema()).unwrap());
|
|
||||||
std::process::exit(0);
|
|
||||||
}
|
|
||||||
|
|
||||||
let mut rng = rand::thread_rng();
|
let mut rng = rand::thread_rng();
|
||||||
|
|
||||||
let seed = seed.unwrap_or_else(|| rng.gen());
|
let seed = seed.unwrap_or_else(|| rng.gen());
|
||||||
|
|
|
@ -42,7 +42,6 @@ fn create_project(args: Args, package_name: &PackageName) -> miette::Result<()>
|
||||||
if !args.lib {
|
if !args.lib {
|
||||||
create_env(&root)?;
|
create_env(&root)?;
|
||||||
create_validators(&root)?;
|
create_validators(&root)?;
|
||||||
create_validator(&root)?;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
readme(&root, &package_name.repo)?;
|
readme(&root, &package_name.repo)?;
|
||||||
|
@ -111,48 +110,6 @@ fn create_validators(root: &Path) -> miette::Result<()> {
|
||||||
fs::create_dir_all(validators).into_diagnostic()
|
fs::create_dir_all(validators).into_diagnostic()
|
||||||
}
|
}
|
||||||
|
|
||||||
fn create_validator(root: &Path) -> miette::Result<()> {
|
|
||||||
let validators = root.join("validators");
|
|
||||||
fs::write(
|
|
||||||
validators.join("hello.ak"),
|
|
||||||
indoc! {
|
|
||||||
r#"
|
|
||||||
use cardano/address.{{Credential}}
|
|
||||||
use cardano/assets.{{PolicyId}}
|
|
||||||
use cardano/certificate.{{Certificate}}
|
|
||||||
use cardano/governance.{{ProposalProcedure, Voter}}
|
|
||||||
use cardano/transaction.{{Transaction, OutputReference}}
|
|
||||||
|
|
||||||
validator my_script {{
|
|
||||||
mint(redeemer: MyMintRedeemer, policy_id: PolicyId, self: Transaction) {{
|
|
||||||
todo @"mint logic goes here"
|
|
||||||
}}
|
|
||||||
|
|
||||||
spend(datum: Option<MyDatum>, redeemer: MySpendRedeemer, utxo: OutputReference, self: Transaction) {{
|
|
||||||
todo @"spend logic goes here"
|
|
||||||
}}
|
|
||||||
|
|
||||||
withdraw(redeemer: MyWithdrawRedeemer, account: Credential, self: Transaction) {{
|
|
||||||
todo @"withdraw logic goes here"
|
|
||||||
}}
|
|
||||||
|
|
||||||
publish(redeemer: MyPublishRedeemer, certificate: Certificate, self: Transaction) {{
|
|
||||||
todo @"publish logic goes here"
|
|
||||||
}}
|
|
||||||
|
|
||||||
vote(redeemer: MyVoteRedeemer, voter: Voter, self: Transaction) {{
|
|
||||||
todo @"vote logic goes here"
|
|
||||||
}}
|
|
||||||
|
|
||||||
propose(redeemer: MyProposeRedeemer, proposal: ProposalProcedure, self: Transaction) {{
|
|
||||||
todo @"propose logic goes here"
|
|
||||||
}}
|
|
||||||
}}
|
|
||||||
"#,
|
|
||||||
},
|
|
||||||
).into_diagnostic()
|
|
||||||
}
|
|
||||||
|
|
||||||
fn readme(root: &Path, project_name: &str) -> miette::Result<()> {
|
fn readme(root: &Path, project_name: &str) -> miette::Result<()> {
|
||||||
fs::write(
|
fs::write(
|
||||||
root.join("README.md"),
|
root.join("README.md"),
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
[package]
|
[package]
|
||||||
name = "uplc"
|
name = "uplc"
|
||||||
description = "Utilities for working with Untyped Plutus Core"
|
description = "Utilities for working with Untyped Plutus Core"
|
||||||
version = "1.1.7"
|
version = "1.1.6"
|
||||||
edition = "2021"
|
edition = "2021"
|
||||||
repository = "https://github.com/aiken-lang/aiken"
|
repository = "https://github.com/aiken-lang/aiken"
|
||||||
homepage = "https://github.com/aiken-lang/aiken"
|
homepage = "https://github.com/aiken-lang/aiken"
|
||||||
|
|
|
@ -149,21 +149,21 @@ impl SerializableProgram {
|
||||||
PlutusV1Program(pgrm) => {
|
PlutusV1Program(pgrm) => {
|
||||||
let cbor = pgrm.to_cbor().unwrap();
|
let cbor = pgrm.to_cbor().unwrap();
|
||||||
let compiled_code = hex::encode(&cbor);
|
let compiled_code = hex::encode(&cbor);
|
||||||
let hash = conway::PlutusScript::<1>(cbor.into()).compute_hash();
|
let hash = conway::PlutusV1Script(cbor.into()).compute_hash();
|
||||||
(compiled_code, hash)
|
(compiled_code, hash)
|
||||||
}
|
}
|
||||||
|
|
||||||
PlutusV2Program(pgrm) => {
|
PlutusV2Program(pgrm) => {
|
||||||
let cbor = pgrm.to_cbor().unwrap();
|
let cbor = pgrm.to_cbor().unwrap();
|
||||||
let compiled_code = hex::encode(&cbor);
|
let compiled_code = hex::encode(&cbor);
|
||||||
let hash = conway::PlutusScript::<2>(cbor.into()).compute_hash();
|
let hash = conway::PlutusV2Script(cbor.into()).compute_hash();
|
||||||
(compiled_code, hash)
|
(compiled_code, hash)
|
||||||
}
|
}
|
||||||
|
|
||||||
PlutusV3Program(pgrm) => {
|
PlutusV3Program(pgrm) => {
|
||||||
let cbor = pgrm.to_cbor().unwrap();
|
let cbor = pgrm.to_cbor().unwrap();
|
||||||
let compiled_code = hex::encode(&cbor);
|
let compiled_code = hex::encode(&cbor);
|
||||||
let hash = conway::PlutusScript::<3>(cbor.into()).compute_hash();
|
let hash = conway::PlutusV3Script(cbor.into()).compute_hash();
|
||||||
(compiled_code, hash)
|
(compiled_code, hash)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -239,15 +239,15 @@ impl<'a> Deserialize<'a> for SerializableProgram {
|
||||||
.and_then(|program| {
|
.and_then(|program| {
|
||||||
let cbor = || program.to_cbor().unwrap().into();
|
let cbor = || program.to_cbor().unwrap().into();
|
||||||
|
|
||||||
if conway::PlutusScript::<1>(cbor()).compute_hash().to_string() == hash {
|
if conway::PlutusV3Script(cbor()).compute_hash().to_string() == hash {
|
||||||
return Ok(SerializableProgram::PlutusV3Program(program));
|
return Ok(SerializableProgram::PlutusV3Program(program));
|
||||||
}
|
}
|
||||||
|
|
||||||
if conway::PlutusScript::<2>(cbor()).compute_hash().to_string() == hash {
|
if conway::PlutusV2Script(cbor()).compute_hash().to_string() == hash {
|
||||||
return Ok(SerializableProgram::PlutusV2Program(program));
|
return Ok(SerializableProgram::PlutusV2Program(program));
|
||||||
}
|
}
|
||||||
|
|
||||||
if conway::PlutusScript::<3>(cbor()).compute_hash().to_string() == hash {
|
if conway::PlutusV1Script(cbor()).compute_hash().to_string() == hash {
|
||||||
return Ok(SerializableProgram::PlutusV1Program(program));
|
return Ok(SerializableProgram::PlutusV1Program(program));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -273,9 +273,9 @@ impl Program<DeBruijn> {
|
||||||
let cbor = self.to_cbor().unwrap();
|
let cbor = self.to_cbor().unwrap();
|
||||||
|
|
||||||
let validator_hash = match plutus_version {
|
let validator_hash = match plutus_version {
|
||||||
Language::PlutusV1 => conway::PlutusScript::<1>(cbor.into()).compute_hash(),
|
Language::PlutusV1 => conway::PlutusV1Script(cbor.into()).compute_hash(),
|
||||||
Language::PlutusV2 => conway::PlutusScript::<2>(cbor.into()).compute_hash(),
|
Language::PlutusV2 => conway::PlutusV2Script(cbor.into()).compute_hash(),
|
||||||
Language::PlutusV3 => conway::PlutusScript::<3>(cbor.into()).compute_hash(),
|
Language::PlutusV3 => conway::PlutusV3Script(cbor.into()).compute_hash(),
|
||||||
};
|
};
|
||||||
|
|
||||||
ShelleyAddress::new(
|
ShelleyAddress::new(
|
||||||
|
@ -420,20 +420,10 @@ impl Data {
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn list(xs: Vec<PlutusData>) -> PlutusData {
|
pub fn list(xs: Vec<PlutusData>) -> PlutusData {
|
||||||
PlutusData::Array(if xs.is_empty() {
|
PlutusData::Array(xs)
|
||||||
conway::MaybeIndefArray::Def(xs)
|
|
||||||
} else {
|
|
||||||
conway::MaybeIndefArray::Indef(xs)
|
|
||||||
})
|
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn constr(ix: u64, fields: Vec<PlutusData>) -> PlutusData {
|
pub fn constr(ix: u64, fields: Vec<PlutusData>) -> PlutusData {
|
||||||
let fields = if fields.is_empty() {
|
|
||||||
conway::MaybeIndefArray::Def(fields)
|
|
||||||
} else {
|
|
||||||
conway::MaybeIndefArray::Indef(fields)
|
|
||||||
};
|
|
||||||
|
|
||||||
// NOTE: see https://github.com/input-output-hk/plutus/blob/9538fc9829426b2ecb0628d352e2d7af96ec8204/plutus-core/plutus-core/src/PlutusCore/Data.hs#L139-L155
|
// NOTE: see https://github.com/input-output-hk/plutus/blob/9538fc9829426b2ecb0628d352e2d7af96ec8204/plutus-core/plutus-core/src/PlutusCore/Data.hs#L139-L155
|
||||||
if ix < 7 {
|
if ix < 7 {
|
||||||
PlutusData::Constr(Constr {
|
PlutusData::Constr(Constr {
|
||||||
|
|
|
@ -881,7 +881,7 @@ impl DefaultFunction {
|
||||||
})
|
})
|
||||||
.collect();
|
.collect();
|
||||||
|
|
||||||
let value = Value::data(Data::list(data_list));
|
let value = Value::data(PlutusData::Array(data_list));
|
||||||
|
|
||||||
Ok(value)
|
Ok(value)
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
use crate::{
|
use crate::{
|
||||||
ast::{Constant, Data, Name, Program, Term, Type},
|
ast::{Constant, Name, Program, Term, Type},
|
||||||
builtins::DefaultFunction,
|
builtins::DefaultFunction,
|
||||||
machine::{runtime::Compressable, value::to_pallas_bigint},
|
machine::{runtime::Compressable, value::to_pallas_bigint},
|
||||||
};
|
};
|
||||||
|
@ -239,7 +239,7 @@ peg::parser! {
|
||||||
|
|
||||||
rule data() -> PlutusData
|
rule data() -> PlutusData
|
||||||
= _* "Constr" _+ t:decimal() _+ fs:plutus_list() {?
|
= _* "Constr" _+ t:decimal() _+ fs:plutus_list() {?
|
||||||
Ok(Data::constr(
|
Ok(crate::ast::Data::constr(
|
||||||
u64::try_from(t).or(Err("tag"))?,
|
u64::try_from(t).or(Err("tag"))?,
|
||||||
fs,
|
fs,
|
||||||
))
|
))
|
||||||
|
@ -247,7 +247,7 @@ peg::parser! {
|
||||||
/ _* "Map" _+ kvps:plutus_key_value_pairs() {
|
/ _* "Map" _+ kvps:plutus_key_value_pairs() {
|
||||||
PlutusData::Map(pallas_codec::utils::KeyValuePairs::Def(kvps))
|
PlutusData::Map(pallas_codec::utils::KeyValuePairs::Def(kvps))
|
||||||
}
|
}
|
||||||
/ _* "List" _+ ls:plutus_list() { Data::list(ls) }
|
/ _* "List" _+ ls:plutus_list() { PlutusData::Array(ls) }
|
||||||
/ _* "I" _+ n:big_number() { PlutusData::BigInt(to_pallas_bigint(&n)) }
|
/ _* "I" _+ n:big_number() { PlutusData::BigInt(to_pallas_bigint(&n)) }
|
||||||
/ _* "B" _+ "#" i:ident()* {?
|
/ _* "B" _+ "#" i:ident()* {?
|
||||||
Ok(PlutusData::BoundedBytes(
|
Ok(PlutusData::BoundedBytes(
|
||||||
|
|
|
@ -5,10 +5,7 @@ use crate::{
|
||||||
};
|
};
|
||||||
use error::Error;
|
use error::Error;
|
||||||
use pallas_primitives::{
|
use pallas_primitives::{
|
||||||
conway::{
|
conway::{CostMdls, MintedTx, Redeemer, TransactionInput, TransactionOutput},
|
||||||
CostModels, ExUnits, MintedTx, Redeemer, Redeemers, RedeemersKey, TransactionInput,
|
|
||||||
TransactionOutput,
|
|
||||||
},
|
|
||||||
Fragment,
|
Fragment,
|
||||||
};
|
};
|
||||||
use pallas_traverse::{Era, MultiEraTx};
|
use pallas_traverse::{Era, MultiEraTx};
|
||||||
|
@ -31,7 +28,7 @@ pub mod to_plutus_data;
|
||||||
pub fn eval_phase_two(
|
pub fn eval_phase_two(
|
||||||
tx: &MintedTx,
|
tx: &MintedTx,
|
||||||
utxos: &[ResolvedInput],
|
utxos: &[ResolvedInput],
|
||||||
cost_mdls: Option<&CostModels>,
|
cost_mdls: Option<&CostMdls>,
|
||||||
initial_budget: Option<&ExBudget>,
|
initial_budget: Option<&ExBudget>,
|
||||||
slot_config: &SlotConfig,
|
slot_config: &SlotConfig,
|
||||||
run_phase_one: bool,
|
run_phase_one: bool,
|
||||||
|
@ -52,12 +49,12 @@ pub fn eval_phase_two(
|
||||||
|
|
||||||
let mut remaining_budget = *initial_budget.unwrap_or(&ExBudget::default());
|
let mut remaining_budget = *initial_budget.unwrap_or(&ExBudget::default());
|
||||||
|
|
||||||
for (key, data, ex_units) in iter_redeemers(rs) {
|
for (redeemer_key, redeemer_value) in rs.iter() {
|
||||||
let redeemer = Redeemer {
|
let redeemer = Redeemer {
|
||||||
tag: key.tag,
|
tag: redeemer_key.tag,
|
||||||
index: key.index,
|
index: redeemer_key.index,
|
||||||
data: data.clone(),
|
data: redeemer_value.data.clone(),
|
||||||
ex_units,
|
ex_units: redeemer_value.ex_units,
|
||||||
};
|
};
|
||||||
|
|
||||||
with_redeemer(&redeemer);
|
with_redeemer(&redeemer);
|
||||||
|
@ -103,9 +100,7 @@ pub fn eval_phase_two_raw(
|
||||||
.or_else(|_| MultiEraTx::decode_for_era(Era::Babbage, tx_bytes))
|
.or_else(|_| MultiEraTx::decode_for_era(Era::Babbage, tx_bytes))
|
||||||
.or_else(|_| MultiEraTx::decode_for_era(Era::Alonzo, tx_bytes))?;
|
.or_else(|_| MultiEraTx::decode_for_era(Era::Alonzo, tx_bytes))?;
|
||||||
|
|
||||||
let cost_mdls = cost_mdls_bytes
|
let cost_mdls = cost_mdls_bytes.map(CostMdls::decode_fragment).transpose()?;
|
||||||
.map(CostModels::decode_fragment)
|
|
||||||
.transpose()?;
|
|
||||||
|
|
||||||
let budget = ExBudget {
|
let budget = ExBudget {
|
||||||
cpu: initial_budget.0 as i64,
|
cpu: initial_budget.0 as i64,
|
||||||
|
@ -166,7 +161,7 @@ pub fn apply_params_to_script(
|
||||||
let mut buffer = Vec::new();
|
let mut buffer = Vec::new();
|
||||||
let mut program = Program::<DeBruijn>::from_cbor(plutus_script_bytes, &mut buffer)?;
|
let mut program = Program::<DeBruijn>::from_cbor(plutus_script_bytes, &mut buffer)?;
|
||||||
|
|
||||||
for param in params.to_vec() {
|
for param in params {
|
||||||
program = program.apply_data(param);
|
program = program.apply_data(param);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -175,31 +170,3 @@ pub fn apply_params_to_script(
|
||||||
Err(_) => Err(Error::ApplyParamsError),
|
Err(_) => Err(Error::ApplyParamsError),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn iter_redeemers(
|
|
||||||
redeemers: &Redeemers,
|
|
||||||
) -> impl Iterator<Item = (RedeemersKey, &PlutusData, ExUnits)> {
|
|
||||||
match redeemers {
|
|
||||||
Redeemers::List(rs) => Box::new(rs.iter().map(|r| {
|
|
||||||
(
|
|
||||||
RedeemersKey {
|
|
||||||
tag: r.tag,
|
|
||||||
index: r.index,
|
|
||||||
},
|
|
||||||
&r.data,
|
|
||||||
r.ex_units,
|
|
||||||
)
|
|
||||||
})),
|
|
||||||
Redeemers::Map(kv) => Box::new(kv.iter().map(|(k, v)| {
|
|
||||||
(
|
|
||||||
RedeemersKey {
|
|
||||||
tag: k.tag,
|
|
||||||
index: k.index,
|
|
||||||
},
|
|
||||||
&v.data,
|
|
||||||
v.ex_units,
|
|
||||||
)
|
|
||||||
}))
|
|
||||||
as Box<dyn Iterator<Item = (RedeemersKey, &PlutusData, ExUnits)>>,
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
|
@ -13,7 +13,7 @@ use crate::{
|
||||||
PlutusData,
|
PlutusData,
|
||||||
};
|
};
|
||||||
use pallas_codec::utils::Bytes;
|
use pallas_codec::utils::Bytes;
|
||||||
use pallas_primitives::conway::{CostModel, CostModels, ExUnits, Language, MintedTx, Redeemer};
|
use pallas_primitives::conway::{CostMdls, CostModel, ExUnits, Language, MintedTx, Redeemer};
|
||||||
|
|
||||||
pub fn eval_redeemer(
|
pub fn eval_redeemer(
|
||||||
tx: &MintedTx,
|
tx: &MintedTx,
|
||||||
|
@ -21,7 +21,7 @@ pub fn eval_redeemer(
|
||||||
slot_config: &SlotConfig,
|
slot_config: &SlotConfig,
|
||||||
redeemer: &Redeemer,
|
redeemer: &Redeemer,
|
||||||
lookup_table: &DataLookupTable,
|
lookup_table: &DataLookupTable,
|
||||||
cost_mdls_opt: Option<&CostModels>,
|
cost_mdls_opt: Option<&CostMdls>,
|
||||||
initial_budget: &ExBudget,
|
initial_budget: &ExBudget,
|
||||||
) -> Result<Redeemer, Error> {
|
) -> Result<Redeemer, Error> {
|
||||||
fn do_eval_redeemer(
|
fn do_eval_redeemer(
|
||||||
|
|
|
@ -7,8 +7,8 @@ use itertools::Itertools;
|
||||||
use pallas_addresses::{Address, ScriptHash, ShelleyPaymentPart, StakePayload};
|
use pallas_addresses::{Address, ScriptHash, ShelleyPaymentPart, StakePayload};
|
||||||
use pallas_codec::utils::Nullable;
|
use pallas_codec::utils::Nullable;
|
||||||
use pallas_primitives::conway::{
|
use pallas_primitives::conway::{
|
||||||
Certificate, GovAction, MintedTx, PolicyId, RedeemerTag, Redeemers, RedeemersKey,
|
Certificate, GovAction, MintedTx, PolicyId, RedeemerTag, RedeemersKey, RewardAccount,
|
||||||
RewardAccount, StakeCredential, TransactionOutput, Voter,
|
StakeCredential, TransactionOutput, Voter,
|
||||||
};
|
};
|
||||||
use std::collections::HashMap;
|
use std::collections::HashMap;
|
||||||
|
|
||||||
|
@ -92,7 +92,7 @@ pub fn scripts_needed(tx: &MintedTx, utxos: &[ResolvedInput]) -> Result<ScriptsN
|
||||||
|
|
||||||
if let Address::Stake(a) = address {
|
if let Address::Stake(a) = address {
|
||||||
if let StakePayload::Script(h) = a.payload() {
|
if let StakePayload::Script(h) = a.payload() {
|
||||||
let cred = StakeCredential::ScriptHash(*h);
|
let cred = StakeCredential::Scripthash(*h);
|
||||||
return Some((ScriptPurpose::Rewarding(cred), *h));
|
return Some((ScriptPurpose::Rewarding(cred), *h));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -110,19 +110,19 @@ pub fn scripts_needed(tx: &MintedTx, utxos: &[ResolvedInput]) -> Result<ScriptsN
|
||||||
m.iter()
|
m.iter()
|
||||||
.enumerate()
|
.enumerate()
|
||||||
.filter_map(|(ix, cert)| match cert {
|
.filter_map(|(ix, cert)| match cert {
|
||||||
Certificate::StakeDeregistration(StakeCredential::ScriptHash(h))
|
Certificate::StakeDeregistration(StakeCredential::Scripthash(h))
|
||||||
| Certificate::UnReg(StakeCredential::ScriptHash(h), _)
|
| Certificate::UnReg(StakeCredential::Scripthash(h), _)
|
||||||
| Certificate::VoteDeleg(StakeCredential::ScriptHash(h), _)
|
| Certificate::VoteDeleg(StakeCredential::Scripthash(h), _)
|
||||||
| Certificate::VoteRegDeleg(StakeCredential::ScriptHash(h), _, _)
|
| Certificate::VoteRegDeleg(StakeCredential::Scripthash(h), _, _)
|
||||||
| Certificate::StakeVoteDeleg(StakeCredential::ScriptHash(h), _, _)
|
| Certificate::StakeVoteDeleg(StakeCredential::Scripthash(h), _, _)
|
||||||
| Certificate::StakeRegDeleg(StakeCredential::ScriptHash(h), _, _)
|
| Certificate::StakeRegDeleg(StakeCredential::Scripthash(h), _, _)
|
||||||
| Certificate::StakeVoteRegDeleg(StakeCredential::ScriptHash(h), _, _, _)
|
| Certificate::StakeVoteRegDeleg(StakeCredential::Scripthash(h), _, _, _)
|
||||||
| Certificate::RegDRepCert(StakeCredential::ScriptHash(h), _, _)
|
| Certificate::RegDRepCert(StakeCredential::Scripthash(h), _, _)
|
||||||
| Certificate::UnRegDRepCert(StakeCredential::ScriptHash(h), _)
|
| Certificate::UnRegDRepCert(StakeCredential::Scripthash(h), _)
|
||||||
| Certificate::UpdateDRepCert(StakeCredential::ScriptHash(h), _)
|
| Certificate::UpdateDRepCert(StakeCredential::Scripthash(h), _)
|
||||||
| Certificate::AuthCommitteeHot(StakeCredential::ScriptHash(h), _)
|
| Certificate::AuthCommitteeHot(StakeCredential::Scripthash(h), _)
|
||||||
| Certificate::ResignCommitteeCold(StakeCredential::ScriptHash(h), _)
|
| Certificate::ResignCommitteeCold(StakeCredential::Scripthash(h), _)
|
||||||
| Certificate::StakeDelegation(StakeCredential::ScriptHash(h), _) => {
|
| Certificate::StakeDelegation(StakeCredential::Scripthash(h), _) => {
|
||||||
Some((ScriptPurpose::Certifying(ix, cert.clone()), *h))
|
Some((ScriptPurpose::Certifying(ix, cert.clone()), *h))
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -222,26 +222,11 @@ pub fn has_exact_set_of_redeemers(
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
let wits_redeemer_keys: Vec<RedeemersKey> = tx
|
let wits_redeemer_keys: Vec<&RedeemersKey> = tx
|
||||||
.transaction_witness_set
|
.transaction_witness_set
|
||||||
.redeemer
|
.redeemer
|
||||||
.as_deref()
|
.as_deref()
|
||||||
.map(|m| match m {
|
.map(|m| m.iter().map(|(k, _)| k).collect())
|
||||||
Redeemers::List(rs) => rs
|
|
||||||
.iter()
|
|
||||||
.map(|r| RedeemersKey {
|
|
||||||
index: r.index,
|
|
||||||
tag: r.tag,
|
|
||||||
})
|
|
||||||
.collect(),
|
|
||||||
Redeemers::Map(kv) => kv
|
|
||||||
.iter()
|
|
||||||
.map(|(k, _)| RedeemersKey {
|
|
||||||
index: k.index,
|
|
||||||
tag: k.tag,
|
|
||||||
})
|
|
||||||
.collect(),
|
|
||||||
})
|
|
||||||
.unwrap_or_default();
|
.unwrap_or_default();
|
||||||
|
|
||||||
let needed_redeemer_keys: Vec<RedeemersKey> =
|
let needed_redeemer_keys: Vec<RedeemersKey> =
|
||||||
|
@ -249,7 +234,7 @@ pub fn has_exact_set_of_redeemers(
|
||||||
|
|
||||||
let missing: Vec<_> = redeemers_needed
|
let missing: Vec<_> = redeemers_needed
|
||||||
.into_iter()
|
.into_iter()
|
||||||
.filter(|x| !wits_redeemer_keys.contains(&x.0))
|
.filter(|x| !wits_redeemer_keys.contains(&&x.0))
|
||||||
.map(|x| {
|
.map(|x| {
|
||||||
format!(
|
format!(
|
||||||
"{}[{:?}] -> {}",
|
"{}[{:?}] -> {}",
|
||||||
|
@ -336,7 +321,7 @@ fn build_redeemer_key(
|
||||||
for (idx, x) in reward_accounts.iter().enumerate() {
|
for (idx, x) in reward_accounts.iter().enumerate() {
|
||||||
let cred = match Address::from_bytes(x).unwrap() {
|
let cred = match Address::from_bytes(x).unwrap() {
|
||||||
Address::Stake(a) => match a.payload() {
|
Address::Stake(a) => match a.payload() {
|
||||||
StakePayload::Script(sh) => Some(StakeCredential::ScriptHash(*sh)),
|
StakePayload::Script(sh) => Some(StakeCredential::Scripthash(*sh)),
|
||||||
StakePayload::Stake(_) => None,
|
StakePayload::Stake(_) => None,
|
||||||
},
|
},
|
||||||
_ => return Err(Error::BadWithdrawalAddress),
|
_ => return Err(Error::BadWithdrawalAddress),
|
||||||
|
|
|
@ -1,5 +1,4 @@
|
||||||
use super::{to_plutus_data::MintValue, Error};
|
use super::{to_plutus_data::MintValue, Error};
|
||||||
use crate::tx::iter_redeemers;
|
|
||||||
use itertools::Itertools;
|
use itertools::Itertools;
|
||||||
use pallas_addresses::{Address, Network, StakePayload};
|
use pallas_addresses::{Address, Network, StakePayload};
|
||||||
use pallas_codec::utils::{
|
use pallas_codec::utils::{
|
||||||
|
@ -11,10 +10,10 @@ use pallas_primitives::{
|
||||||
conway::{
|
conway::{
|
||||||
AddrKeyhash, Certificate, Coin, DatumHash, DatumOption, GovAction, GovActionId, Mint,
|
AddrKeyhash, Certificate, Coin, DatumHash, DatumOption, GovAction, GovActionId, Mint,
|
||||||
MintedTransactionBody, MintedTransactionOutput, MintedTx, MintedWitnessSet, NativeScript,
|
MintedTransactionBody, MintedTransactionOutput, MintedTx, MintedWitnessSet, NativeScript,
|
||||||
PlutusData, PlutusScript, PolicyId, PostAlonzoTransactionOutput, ProposalProcedure,
|
PlutusData, PlutusV1Script, PlutusV2Script, PlutusV3Script, PolicyId,
|
||||||
PseudoDatumOption, PseudoScript, Redeemer, RedeemerTag, RedeemersKey, RequiredSigners,
|
PostAlonzoTransactionOutput, ProposalProcedure, PseudoDatumOption, PseudoScript, Redeemer,
|
||||||
RewardAccount, ScriptHash, StakeCredential, TransactionInput, TransactionOutput, Value,
|
RedeemerTag, RedeemersKey, RequiredSigners, RewardAccount, ScriptHash, StakeCredential,
|
||||||
Voter, VotingProcedure,
|
TransactionInput, TransactionOutput, Value, Voter, VotingProcedure,
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
use pallas_traverse::{ComputeHash, OriginalHash};
|
use pallas_traverse::{ComputeHash, OriginalHash};
|
||||||
|
@ -78,9 +77,9 @@ impl ScriptPurpose {
|
||||||
#[derive(Debug, PartialEq, Clone)]
|
#[derive(Debug, PartialEq, Clone)]
|
||||||
pub enum ScriptVersion {
|
pub enum ScriptVersion {
|
||||||
Native(NativeScript),
|
Native(NativeScript),
|
||||||
V1(PlutusScript<1>),
|
V1(PlutusV1Script),
|
||||||
V2(PlutusScript<2>),
|
V2(PlutusV2Script),
|
||||||
V3(PlutusScript<3>),
|
V3(PlutusV3Script),
|
||||||
}
|
}
|
||||||
|
|
||||||
pub struct DataLookupTable {
|
pub struct DataLookupTable {
|
||||||
|
@ -401,7 +400,7 @@ impl TxInfo {
|
||||||
| TxInfo::V2(TxInfoV2 { ref redeemers, .. }) => redeemers
|
| TxInfo::V2(TxInfoV2 { ref redeemers, .. }) => redeemers
|
||||||
.iter()
|
.iter()
|
||||||
.find_map(move |(purpose, some_redeemer)| {
|
.find_map(move |(purpose, some_redeemer)| {
|
||||||
if redeemer.tag == some_redeemer.tag && redeemer.index == some_redeemer.index {
|
if redeemer == some_redeemer {
|
||||||
Some(purpose.clone())
|
Some(purpose.clone())
|
||||||
} else {
|
} else {
|
||||||
None
|
None
|
||||||
|
@ -415,7 +414,7 @@ impl TxInfo {
|
||||||
TxInfo::V3(TxInfoV3 { ref redeemers, .. }) => redeemers
|
TxInfo::V3(TxInfoV3 { ref redeemers, .. }) => redeemers
|
||||||
.iter()
|
.iter()
|
||||||
.find_map(move |(purpose, some_redeemer)| {
|
.find_map(move |(purpose, some_redeemer)| {
|
||||||
if redeemer.tag == some_redeemer.tag && redeemer.index == some_redeemer.index {
|
if redeemer == some_redeemer {
|
||||||
Some(purpose.clone())
|
Some(purpose.clone())
|
||||||
} else {
|
} else {
|
||||||
None
|
None
|
||||||
|
@ -703,24 +702,24 @@ pub fn get_data_info(witness_set: &MintedWitnessSet) -> Vec<(DatumHash, PlutusDa
|
||||||
|
|
||||||
pub fn get_redeemers_info<'a>(
|
pub fn get_redeemers_info<'a>(
|
||||||
witness_set: &'a MintedWitnessSet,
|
witness_set: &'a MintedWitnessSet,
|
||||||
to_script_purpose: impl Fn(RedeemersKey) -> Result<ScriptPurpose, Error> + 'a,
|
to_script_purpose: impl Fn(&'a RedeemersKey) -> Result<ScriptPurpose, Error>,
|
||||||
) -> Result<KeyValuePairs<ScriptPurpose, Redeemer>, Error> {
|
) -> Result<KeyValuePairs<ScriptPurpose, Redeemer>, Error> {
|
||||||
Ok(KeyValuePairs::from(
|
Ok(KeyValuePairs::from(
|
||||||
witness_set
|
witness_set
|
||||||
.redeemer
|
.redeemer
|
||||||
.as_deref()
|
.as_deref()
|
||||||
.map(|m| {
|
.map(|m| {
|
||||||
iter_redeemers(m)
|
m.iter()
|
||||||
.sorted_by(|(a, _, _), (b, _, _)| sort_redeemers(a, b))
|
.sorted_by(|a, b| sort_redeemers(&a.0, &b.0))
|
||||||
.map(|(key, data, ex_units)| {
|
.map(|(redeemer_key, redeemer_value)| {
|
||||||
let redeemer = Redeemer {
|
let redeemer = Redeemer {
|
||||||
tag: key.tag,
|
tag: redeemer_key.tag,
|
||||||
index: key.index,
|
index: redeemer_key.index,
|
||||||
data: data.clone(),
|
data: redeemer_value.data.clone(),
|
||||||
ex_units,
|
ex_units: redeemer_value.ex_units,
|
||||||
};
|
};
|
||||||
|
|
||||||
to_script_purpose(key).map(|purpose| (purpose, redeemer))
|
to_script_purpose(redeemer_key).map(|purpose| (purpose, redeemer))
|
||||||
})
|
})
|
||||||
.collect::<Result<Vec<_>, _>>()
|
.collect::<Result<Vec<_>, _>>()
|
||||||
})
|
})
|
||||||
|
@ -767,8 +766,8 @@ fn script_purpose_builder<'a>(
|
||||||
withdrawals: &'a KeyValuePairs<Address, Coin>,
|
withdrawals: &'a KeyValuePairs<Address, Coin>,
|
||||||
proposal_procedures: &'a [ProposalProcedure],
|
proposal_procedures: &'a [ProposalProcedure],
|
||||||
votes: &'a [&'a Voter],
|
votes: &'a [&'a Voter],
|
||||||
) -> impl Fn(RedeemersKey) -> Result<ScriptPurpose, Error> + 'a {
|
) -> impl Fn(&'a RedeemersKey) -> Result<ScriptPurpose, Error> {
|
||||||
move |redeemer: RedeemersKey| {
|
move |redeemer: &'a RedeemersKey| {
|
||||||
let tag = redeemer.tag;
|
let tag = redeemer.tag;
|
||||||
let index = redeemer.index as usize;
|
let index = redeemer.index as usize;
|
||||||
|
|
||||||
|
@ -794,7 +793,7 @@ fn script_purpose_builder<'a>(
|
||||||
.map(|(address, _)| match address {
|
.map(|(address, _)| match address {
|
||||||
Address::Stake(stake_address) => match stake_address.payload() {
|
Address::Stake(stake_address) => match stake_address.payload() {
|
||||||
StakePayload::Script(script_hash) => Ok(ScriptPurpose::Rewarding(
|
StakePayload::Script(script_hash) => Ok(ScriptPurpose::Rewarding(
|
||||||
StakeCredential::ScriptHash(*script_hash),
|
StakeCredential::Scripthash(*script_hash),
|
||||||
)),
|
)),
|
||||||
StakePayload::Stake(_) => Err(Error::NonScriptWithdrawal),
|
StakePayload::Stake(_) => Err(Error::NonScriptWithdrawal),
|
||||||
},
|
},
|
||||||
|
@ -886,7 +885,7 @@ pub fn find_script(
|
||||||
| Certificate::AuthCommitteeHot(stake_credential, _)
|
| Certificate::AuthCommitteeHot(stake_credential, _)
|
||||||
| Certificate::ResignCommitteeCold(stake_credential, _)
|
| Certificate::ResignCommitteeCold(stake_credential, _)
|
||||||
| Certificate::StakeDelegation(stake_credential, _) => match stake_credential {
|
| Certificate::StakeDelegation(stake_credential, _) => match stake_credential {
|
||||||
StakeCredential::ScriptHash(hash) => Ok(hash),
|
StakeCredential::Scripthash(hash) => Ok(hash),
|
||||||
_ => Err(Error::NonScriptStakeCredential),
|
_ => Err(Error::NonScriptStakeCredential),
|
||||||
},
|
},
|
||||||
Certificate::StakeRegistration { .. }
|
Certificate::StakeRegistration { .. }
|
||||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -6,29 +6,24 @@ Constr(
|
||||||
Constr {
|
Constr {
|
||||||
tag: 121,
|
tag: 121,
|
||||||
any_constructor: None,
|
any_constructor: None,
|
||||||
fields: Indef(
|
fields: [
|
||||||
[
|
|
||||||
Constr(
|
Constr(
|
||||||
Constr {
|
Constr {
|
||||||
tag: 121,
|
tag: 121,
|
||||||
any_constructor: None,
|
any_constructor: None,
|
||||||
fields: Indef(
|
fields: [
|
||||||
[
|
|
||||||
Array(
|
Array(
|
||||||
Indef(
|
|
||||||
[
|
[
|
||||||
Constr(
|
Constr(
|
||||||
Constr {
|
Constr {
|
||||||
tag: 121,
|
tag: 121,
|
||||||
any_constructor: None,
|
any_constructor: None,
|
||||||
fields: Indef(
|
fields: [
|
||||||
[
|
|
||||||
Constr(
|
Constr(
|
||||||
Constr {
|
Constr {
|
||||||
tag: 121,
|
tag: 121,
|
||||||
any_constructor: None,
|
any_constructor: None,
|
||||||
fields: Indef(
|
fields: [
|
||||||
[
|
|
||||||
BoundedBytes(
|
BoundedBytes(
|
||||||
BoundedBytes(
|
BoundedBytes(
|
||||||
[
|
[
|
||||||
|
@ -78,27 +73,23 @@ Constr(
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
),
|
|
||||||
},
|
},
|
||||||
),
|
),
|
||||||
Constr(
|
Constr(
|
||||||
Constr {
|
Constr {
|
||||||
tag: 121,
|
tag: 121,
|
||||||
any_constructor: None,
|
any_constructor: None,
|
||||||
fields: Indef(
|
fields: [
|
||||||
[
|
|
||||||
Constr(
|
Constr(
|
||||||
Constr {
|
Constr {
|
||||||
tag: 121,
|
tag: 121,
|
||||||
any_constructor: None,
|
any_constructor: None,
|
||||||
fields: Indef(
|
fields: [
|
||||||
[
|
|
||||||
Constr(
|
Constr(
|
||||||
Constr {
|
Constr {
|
||||||
tag: 121,
|
tag: 121,
|
||||||
any_constructor: None,
|
any_constructor: None,
|
||||||
fields: Indef(
|
fields: [
|
||||||
[
|
|
||||||
BoundedBytes(
|
BoundedBytes(
|
||||||
BoundedBytes(
|
BoundedBytes(
|
||||||
[
|
[
|
||||||
|
@ -134,20 +125,16 @@ Constr(
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
),
|
|
||||||
},
|
},
|
||||||
),
|
),
|
||||||
Constr(
|
Constr(
|
||||||
Constr {
|
Constr {
|
||||||
tag: 122,
|
tag: 122,
|
||||||
any_constructor: None,
|
any_constructor: None,
|
||||||
fields: Def(
|
fields: [],
|
||||||
[],
|
|
||||||
),
|
|
||||||
},
|
},
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
),
|
|
||||||
},
|
},
|
||||||
),
|
),
|
||||||
Map(
|
Map(
|
||||||
|
@ -190,46 +177,36 @@ Constr(
|
||||||
Constr {
|
Constr {
|
||||||
tag: 121,
|
tag: 121,
|
||||||
any_constructor: None,
|
any_constructor: None,
|
||||||
fields: Def(
|
fields: [],
|
||||||
[],
|
|
||||||
),
|
|
||||||
},
|
},
|
||||||
),
|
),
|
||||||
Constr(
|
Constr(
|
||||||
Constr {
|
Constr {
|
||||||
tag: 122,
|
tag: 122,
|
||||||
any_constructor: None,
|
any_constructor: None,
|
||||||
fields: Def(
|
fields: [],
|
||||||
[],
|
|
||||||
),
|
|
||||||
},
|
},
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
),
|
|
||||||
},
|
},
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
),
|
|
||||||
},
|
},
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
),
|
|
||||||
Array(
|
Array(
|
||||||
Indef(
|
|
||||||
[
|
[
|
||||||
Constr(
|
Constr(
|
||||||
Constr {
|
Constr {
|
||||||
tag: 121,
|
tag: 121,
|
||||||
any_constructor: None,
|
any_constructor: None,
|
||||||
fields: Indef(
|
fields: [
|
||||||
[
|
|
||||||
Constr(
|
Constr(
|
||||||
Constr {
|
Constr {
|
||||||
tag: 121,
|
tag: 121,
|
||||||
any_constructor: None,
|
any_constructor: None,
|
||||||
fields: Indef(
|
fields: [
|
||||||
[
|
|
||||||
BoundedBytes(
|
BoundedBytes(
|
||||||
BoundedBytes(
|
BoundedBytes(
|
||||||
[
|
[
|
||||||
|
@ -279,27 +256,23 @@ Constr(
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
),
|
|
||||||
},
|
},
|
||||||
),
|
),
|
||||||
Constr(
|
Constr(
|
||||||
Constr {
|
Constr {
|
||||||
tag: 121,
|
tag: 121,
|
||||||
any_constructor: None,
|
any_constructor: None,
|
||||||
fields: Indef(
|
fields: [
|
||||||
[
|
|
||||||
Constr(
|
Constr(
|
||||||
Constr {
|
Constr {
|
||||||
tag: 121,
|
tag: 121,
|
||||||
any_constructor: None,
|
any_constructor: None,
|
||||||
fields: Indef(
|
fields: [
|
||||||
[
|
|
||||||
Constr(
|
Constr(
|
||||||
Constr {
|
Constr {
|
||||||
tag: 121,
|
tag: 121,
|
||||||
any_constructor: None,
|
any_constructor: None,
|
||||||
fields: Indef(
|
fields: [
|
||||||
[
|
|
||||||
BoundedBytes(
|
BoundedBytes(
|
||||||
BoundedBytes(
|
BoundedBytes(
|
||||||
[
|
[
|
||||||
|
@ -335,20 +308,16 @@ Constr(
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
),
|
|
||||||
},
|
},
|
||||||
),
|
),
|
||||||
Constr(
|
Constr(
|
||||||
Constr {
|
Constr {
|
||||||
tag: 122,
|
tag: 122,
|
||||||
any_constructor: None,
|
any_constructor: None,
|
||||||
fields: Def(
|
fields: [],
|
||||||
[],
|
|
||||||
),
|
|
||||||
},
|
},
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
),
|
|
||||||
},
|
},
|
||||||
),
|
),
|
||||||
Map(
|
Map(
|
||||||
|
@ -391,52 +360,41 @@ Constr(
|
||||||
Constr {
|
Constr {
|
||||||
tag: 121,
|
tag: 121,
|
||||||
any_constructor: None,
|
any_constructor: None,
|
||||||
fields: Def(
|
fields: [],
|
||||||
[],
|
|
||||||
),
|
|
||||||
},
|
},
|
||||||
),
|
),
|
||||||
Constr(
|
Constr(
|
||||||
Constr {
|
Constr {
|
||||||
tag: 122,
|
tag: 122,
|
||||||
any_constructor: None,
|
any_constructor: None,
|
||||||
fields: Def(
|
fields: [],
|
||||||
[],
|
|
||||||
),
|
|
||||||
},
|
},
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
),
|
|
||||||
},
|
},
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
),
|
|
||||||
},
|
},
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
),
|
|
||||||
Array(
|
Array(
|
||||||
Indef(
|
|
||||||
[
|
[
|
||||||
Constr(
|
Constr(
|
||||||
Constr {
|
Constr {
|
||||||
tag: 121,
|
tag: 121,
|
||||||
any_constructor: None,
|
any_constructor: None,
|
||||||
fields: Indef(
|
fields: [
|
||||||
[
|
|
||||||
Constr(
|
Constr(
|
||||||
Constr {
|
Constr {
|
||||||
tag: 121,
|
tag: 121,
|
||||||
any_constructor: None,
|
any_constructor: None,
|
||||||
fields: Indef(
|
fields: [
|
||||||
[
|
|
||||||
Constr(
|
Constr(
|
||||||
Constr {
|
Constr {
|
||||||
tag: 121,
|
tag: 121,
|
||||||
any_constructor: None,
|
any_constructor: None,
|
||||||
fields: Indef(
|
fields: [
|
||||||
[
|
|
||||||
BoundedBytes(
|
BoundedBytes(
|
||||||
BoundedBytes(
|
BoundedBytes(
|
||||||
[
|
[
|
||||||
|
@ -472,20 +430,16 @@ Constr(
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
),
|
|
||||||
},
|
},
|
||||||
),
|
),
|
||||||
Constr(
|
Constr(
|
||||||
Constr {
|
Constr {
|
||||||
tag: 122,
|
tag: 122,
|
||||||
any_constructor: None,
|
any_constructor: None,
|
||||||
fields: Def(
|
fields: [],
|
||||||
[],
|
|
||||||
),
|
|
||||||
},
|
},
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
),
|
|
||||||
},
|
},
|
||||||
),
|
),
|
||||||
Map(
|
Map(
|
||||||
|
@ -528,8 +482,7 @@ Constr(
|
||||||
Constr {
|
Constr {
|
||||||
tag: 122,
|
tag: 122,
|
||||||
any_constructor: None,
|
any_constructor: None,
|
||||||
fields: Indef(
|
fields: [
|
||||||
[
|
|
||||||
BoundedBytes(
|
BoundedBytes(
|
||||||
BoundedBytes(
|
BoundedBytes(
|
||||||
[
|
[
|
||||||
|
@ -569,40 +522,33 @@ Constr(
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
),
|
|
||||||
},
|
},
|
||||||
),
|
),
|
||||||
Constr(
|
Constr(
|
||||||
Constr {
|
Constr {
|
||||||
tag: 122,
|
tag: 122,
|
||||||
any_constructor: None,
|
any_constructor: None,
|
||||||
fields: Def(
|
fields: [],
|
||||||
[],
|
|
||||||
),
|
|
||||||
},
|
},
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
),
|
|
||||||
},
|
},
|
||||||
),
|
),
|
||||||
Constr(
|
Constr(
|
||||||
Constr {
|
Constr {
|
||||||
tag: 121,
|
tag: 121,
|
||||||
any_constructor: None,
|
any_constructor: None,
|
||||||
fields: Indef(
|
fields: [
|
||||||
[
|
|
||||||
Constr(
|
Constr(
|
||||||
Constr {
|
Constr {
|
||||||
tag: 121,
|
tag: 121,
|
||||||
any_constructor: None,
|
any_constructor: None,
|
||||||
fields: Indef(
|
fields: [
|
||||||
[
|
|
||||||
Constr(
|
Constr(
|
||||||
Constr {
|
Constr {
|
||||||
tag: 121,
|
tag: 121,
|
||||||
any_constructor: None,
|
any_constructor: None,
|
||||||
fields: Indef(
|
fields: [
|
||||||
[
|
|
||||||
BoundedBytes(
|
BoundedBytes(
|
||||||
BoundedBytes(
|
BoundedBytes(
|
||||||
[
|
[
|
||||||
|
@ -638,27 +584,23 @@ Constr(
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
),
|
|
||||||
},
|
},
|
||||||
),
|
),
|
||||||
Constr(
|
Constr(
|
||||||
Constr {
|
Constr {
|
||||||
tag: 121,
|
tag: 121,
|
||||||
any_constructor: None,
|
any_constructor: None,
|
||||||
fields: Indef(
|
fields: [
|
||||||
[
|
|
||||||
Constr(
|
Constr(
|
||||||
Constr {
|
Constr {
|
||||||
tag: 121,
|
tag: 121,
|
||||||
any_constructor: None,
|
any_constructor: None,
|
||||||
fields: Indef(
|
fields: [
|
||||||
[
|
|
||||||
Constr(
|
Constr(
|
||||||
Constr {
|
Constr {
|
||||||
tag: 121,
|
tag: 121,
|
||||||
any_constructor: None,
|
any_constructor: None,
|
||||||
fields: Indef(
|
fields: [
|
||||||
[
|
|
||||||
BoundedBytes(
|
BoundedBytes(
|
||||||
BoundedBytes(
|
BoundedBytes(
|
||||||
[
|
[
|
||||||
|
@ -694,19 +636,15 @@ Constr(
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
),
|
|
||||||
},
|
},
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
),
|
|
||||||
},
|
},
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
),
|
|
||||||
},
|
},
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
),
|
|
||||||
},
|
},
|
||||||
),
|
),
|
||||||
Map(
|
Map(
|
||||||
|
@ -878,42 +816,34 @@ Constr(
|
||||||
Constr {
|
Constr {
|
||||||
tag: 121,
|
tag: 121,
|
||||||
any_constructor: None,
|
any_constructor: None,
|
||||||
fields: Def(
|
fields: [],
|
||||||
[],
|
|
||||||
),
|
|
||||||
},
|
},
|
||||||
),
|
),
|
||||||
Constr(
|
Constr(
|
||||||
Constr {
|
Constr {
|
||||||
tag: 122,
|
tag: 122,
|
||||||
any_constructor: None,
|
any_constructor: None,
|
||||||
fields: Def(
|
fields: [],
|
||||||
[],
|
|
||||||
),
|
|
||||||
},
|
},
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
),
|
|
||||||
},
|
},
|
||||||
),
|
),
|
||||||
Constr(
|
Constr(
|
||||||
Constr {
|
Constr {
|
||||||
tag: 121,
|
tag: 121,
|
||||||
any_constructor: None,
|
any_constructor: None,
|
||||||
fields: Indef(
|
fields: [
|
||||||
[
|
|
||||||
Constr(
|
Constr(
|
||||||
Constr {
|
Constr {
|
||||||
tag: 121,
|
tag: 121,
|
||||||
any_constructor: None,
|
any_constructor: None,
|
||||||
fields: Indef(
|
fields: [
|
||||||
[
|
|
||||||
Constr(
|
Constr(
|
||||||
Constr {
|
Constr {
|
||||||
tag: 122,
|
tag: 122,
|
||||||
any_constructor: None,
|
any_constructor: None,
|
||||||
fields: Indef(
|
fields: [
|
||||||
[
|
|
||||||
BoundedBytes(
|
BoundedBytes(
|
||||||
BoundedBytes(
|
BoundedBytes(
|
||||||
[
|
[
|
||||||
|
@ -949,27 +879,23 @@ Constr(
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
),
|
|
||||||
},
|
},
|
||||||
),
|
),
|
||||||
Constr(
|
Constr(
|
||||||
Constr {
|
Constr {
|
||||||
tag: 121,
|
tag: 121,
|
||||||
any_constructor: None,
|
any_constructor: None,
|
||||||
fields: Indef(
|
fields: [
|
||||||
[
|
|
||||||
Constr(
|
Constr(
|
||||||
Constr {
|
Constr {
|
||||||
tag: 121,
|
tag: 121,
|
||||||
any_constructor: None,
|
any_constructor: None,
|
||||||
fields: Indef(
|
fields: [
|
||||||
[
|
|
||||||
Constr(
|
Constr(
|
||||||
Constr {
|
Constr {
|
||||||
tag: 121,
|
tag: 121,
|
||||||
any_constructor: None,
|
any_constructor: None,
|
||||||
fields: Indef(
|
fields: [
|
||||||
[
|
|
||||||
BoundedBytes(
|
BoundedBytes(
|
||||||
BoundedBytes(
|
BoundedBytes(
|
||||||
[
|
[
|
||||||
|
@ -1005,19 +931,15 @@ Constr(
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
),
|
|
||||||
},
|
},
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
),
|
|
||||||
},
|
},
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
),
|
|
||||||
},
|
},
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
),
|
|
||||||
},
|
},
|
||||||
),
|
),
|
||||||
Map(
|
Map(
|
||||||
|
@ -1127,17 +1049,14 @@ Constr(
|
||||||
Constr {
|
Constr {
|
||||||
tag: 121,
|
tag: 121,
|
||||||
any_constructor: None,
|
any_constructor: None,
|
||||||
fields: Def(
|
fields: [],
|
||||||
[],
|
|
||||||
),
|
|
||||||
},
|
},
|
||||||
),
|
),
|
||||||
Constr(
|
Constr(
|
||||||
Constr {
|
Constr {
|
||||||
tag: 121,
|
tag: 121,
|
||||||
any_constructor: None,
|
any_constructor: None,
|
||||||
fields: Indef(
|
fields: [
|
||||||
[
|
|
||||||
BoundedBytes(
|
BoundedBytes(
|
||||||
BoundedBytes(
|
BoundedBytes(
|
||||||
[
|
[
|
||||||
|
@ -1173,16 +1092,13 @@ Constr(
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
),
|
|
||||||
},
|
},
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
),
|
|
||||||
},
|
},
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
),
|
|
||||||
BigInt(
|
BigInt(
|
||||||
Int(
|
Int(
|
||||||
Int(
|
Int(
|
||||||
|
@ -1354,10 +1270,8 @@ Constr(
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
Array(
|
Array(
|
||||||
Def(
|
|
||||||
[],
|
[],
|
||||||
),
|
),
|
||||||
),
|
|
||||||
Map(
|
Map(
|
||||||
Def(
|
Def(
|
||||||
[],
|
[],
|
||||||
|
@ -1367,73 +1281,57 @@ Constr(
|
||||||
Constr {
|
Constr {
|
||||||
tag: 121,
|
tag: 121,
|
||||||
any_constructor: None,
|
any_constructor: None,
|
||||||
fields: Indef(
|
fields: [
|
||||||
[
|
|
||||||
Constr(
|
Constr(
|
||||||
Constr {
|
Constr {
|
||||||
tag: 121,
|
tag: 121,
|
||||||
any_constructor: None,
|
any_constructor: None,
|
||||||
fields: Indef(
|
fields: [
|
||||||
[
|
|
||||||
Constr(
|
Constr(
|
||||||
Constr {
|
Constr {
|
||||||
tag: 121,
|
tag: 121,
|
||||||
any_constructor: None,
|
any_constructor: None,
|
||||||
fields: Def(
|
fields: [],
|
||||||
[],
|
|
||||||
),
|
|
||||||
},
|
},
|
||||||
),
|
),
|
||||||
Constr(
|
Constr(
|
||||||
Constr {
|
Constr {
|
||||||
tag: 122,
|
tag: 122,
|
||||||
any_constructor: None,
|
any_constructor: None,
|
||||||
fields: Def(
|
fields: [],
|
||||||
[],
|
|
||||||
),
|
|
||||||
},
|
},
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
),
|
|
||||||
},
|
},
|
||||||
),
|
),
|
||||||
Constr(
|
Constr(
|
||||||
Constr {
|
Constr {
|
||||||
tag: 121,
|
tag: 121,
|
||||||
any_constructor: None,
|
any_constructor: None,
|
||||||
fields: Indef(
|
fields: [
|
||||||
[
|
|
||||||
Constr(
|
Constr(
|
||||||
Constr {
|
Constr {
|
||||||
tag: 123,
|
tag: 123,
|
||||||
any_constructor: None,
|
any_constructor: None,
|
||||||
fields: Def(
|
fields: [],
|
||||||
[],
|
|
||||||
),
|
|
||||||
},
|
},
|
||||||
),
|
),
|
||||||
Constr(
|
Constr(
|
||||||
Constr {
|
Constr {
|
||||||
tag: 122,
|
tag: 122,
|
||||||
any_constructor: None,
|
any_constructor: None,
|
||||||
fields: Def(
|
fields: [],
|
||||||
[],
|
|
||||||
),
|
|
||||||
},
|
},
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
),
|
|
||||||
},
|
},
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
),
|
|
||||||
},
|
},
|
||||||
),
|
),
|
||||||
Array(
|
Array(
|
||||||
Def(
|
|
||||||
[],
|
[],
|
||||||
),
|
),
|
||||||
),
|
|
||||||
Map(
|
Map(
|
||||||
Def(
|
Def(
|
||||||
[
|
[
|
||||||
|
@ -1442,8 +1340,7 @@ Constr(
|
||||||
Constr {
|
Constr {
|
||||||
tag: 121,
|
tag: 121,
|
||||||
any_constructor: None,
|
any_constructor: None,
|
||||||
fields: Indef(
|
fields: [
|
||||||
[
|
|
||||||
BoundedBytes(
|
BoundedBytes(
|
||||||
BoundedBytes(
|
BoundedBytes(
|
||||||
[
|
[
|
||||||
|
@ -1479,16 +1376,13 @@ Constr(
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
),
|
|
||||||
},
|
},
|
||||||
),
|
),
|
||||||
Constr(
|
Constr(
|
||||||
Constr {
|
Constr {
|
||||||
tag: 121,
|
tag: 121,
|
||||||
any_constructor: None,
|
any_constructor: None,
|
||||||
fields: Def(
|
fields: [],
|
||||||
[],
|
|
||||||
),
|
|
||||||
},
|
},
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
|
@ -1497,8 +1391,7 @@ Constr(
|
||||||
Constr {
|
Constr {
|
||||||
tag: 121,
|
tag: 121,
|
||||||
any_constructor: None,
|
any_constructor: None,
|
||||||
fields: Indef(
|
fields: [
|
||||||
[
|
|
||||||
BoundedBytes(
|
BoundedBytes(
|
||||||
BoundedBytes(
|
BoundedBytes(
|
||||||
[
|
[
|
||||||
|
@ -1534,7 +1427,6 @@ Constr(
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
),
|
|
||||||
},
|
},
|
||||||
),
|
),
|
||||||
BigInt(
|
BigInt(
|
||||||
|
@ -1597,9 +1489,7 @@ Constr(
|
||||||
Constr {
|
Constr {
|
||||||
tag: 121,
|
tag: 121,
|
||||||
any_constructor: None,
|
any_constructor: None,
|
||||||
fields: Def(
|
fields: [],
|
||||||
[],
|
|
||||||
),
|
|
||||||
},
|
},
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
|
@ -1650,30 +1540,23 @@ Constr(
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
Array(
|
Array(
|
||||||
Def(
|
|
||||||
[],
|
[],
|
||||||
),
|
),
|
||||||
),
|
|
||||||
Constr(
|
Constr(
|
||||||
Constr {
|
Constr {
|
||||||
tag: 122,
|
tag: 122,
|
||||||
any_constructor: None,
|
any_constructor: None,
|
||||||
fields: Def(
|
fields: [],
|
||||||
[],
|
|
||||||
),
|
|
||||||
},
|
},
|
||||||
),
|
),
|
||||||
Constr(
|
Constr(
|
||||||
Constr {
|
Constr {
|
||||||
tag: 122,
|
tag: 122,
|
||||||
any_constructor: None,
|
any_constructor: None,
|
||||||
fields: Def(
|
fields: [],
|
||||||
[],
|
|
||||||
),
|
|
||||||
},
|
},
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
),
|
|
||||||
},
|
},
|
||||||
),
|
),
|
||||||
BigInt(
|
BigInt(
|
||||||
|
@ -1690,8 +1573,7 @@ Constr(
|
||||||
Constr {
|
Constr {
|
||||||
tag: 121,
|
tag: 121,
|
||||||
any_constructor: None,
|
any_constructor: None,
|
||||||
fields: Indef(
|
fields: [
|
||||||
[
|
|
||||||
BoundedBytes(
|
BoundedBytes(
|
||||||
BoundedBytes(
|
BoundedBytes(
|
||||||
[
|
[
|
||||||
|
@ -1727,10 +1609,8 @@ Constr(
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
),
|
|
||||||
},
|
},
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
),
|
|
||||||
},
|
},
|
||||||
)
|
)
|
||||||
|
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
|
@ -6,29 +6,24 @@ Constr(
|
||||||
Constr {
|
Constr {
|
||||||
tag: 121,
|
tag: 121,
|
||||||
any_constructor: None,
|
any_constructor: None,
|
||||||
fields: Indef(
|
fields: [
|
||||||
[
|
|
||||||
Constr(
|
Constr(
|
||||||
Constr {
|
Constr {
|
||||||
tag: 121,
|
tag: 121,
|
||||||
any_constructor: None,
|
any_constructor: None,
|
||||||
fields: Indef(
|
fields: [
|
||||||
[
|
|
||||||
Array(
|
Array(
|
||||||
Indef(
|
|
||||||
[
|
[
|
||||||
Constr(
|
Constr(
|
||||||
Constr {
|
Constr {
|
||||||
tag: 121,
|
tag: 121,
|
||||||
any_constructor: None,
|
any_constructor: None,
|
||||||
fields: Indef(
|
fields: [
|
||||||
[
|
|
||||||
Constr(
|
Constr(
|
||||||
Constr {
|
Constr {
|
||||||
tag: 121,
|
tag: 121,
|
||||||
any_constructor: None,
|
any_constructor: None,
|
||||||
fields: Indef(
|
fields: [
|
||||||
[
|
|
||||||
BoundedBytes(
|
BoundedBytes(
|
||||||
BoundedBytes(
|
BoundedBytes(
|
||||||
[
|
[
|
||||||
|
@ -78,27 +73,23 @@ Constr(
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
),
|
|
||||||
},
|
},
|
||||||
),
|
),
|
||||||
Constr(
|
Constr(
|
||||||
Constr {
|
Constr {
|
||||||
tag: 121,
|
tag: 121,
|
||||||
any_constructor: None,
|
any_constructor: None,
|
||||||
fields: Indef(
|
fields: [
|
||||||
[
|
|
||||||
Constr(
|
Constr(
|
||||||
Constr {
|
Constr {
|
||||||
tag: 121,
|
tag: 121,
|
||||||
any_constructor: None,
|
any_constructor: None,
|
||||||
fields: Indef(
|
fields: [
|
||||||
[
|
|
||||||
Constr(
|
Constr(
|
||||||
Constr {
|
Constr {
|
||||||
tag: 122,
|
tag: 122,
|
||||||
any_constructor: None,
|
any_constructor: None,
|
||||||
fields: Indef(
|
fields: [
|
||||||
[
|
|
||||||
BoundedBytes(
|
BoundedBytes(
|
||||||
BoundedBytes(
|
BoundedBytes(
|
||||||
[
|
[
|
||||||
|
@ -134,20 +125,16 @@ Constr(
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
),
|
|
||||||
},
|
},
|
||||||
),
|
),
|
||||||
Constr(
|
Constr(
|
||||||
Constr {
|
Constr {
|
||||||
tag: 122,
|
tag: 122,
|
||||||
any_constructor: None,
|
any_constructor: None,
|
||||||
fields: Def(
|
fields: [],
|
||||||
[],
|
|
||||||
),
|
|
||||||
},
|
},
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
),
|
|
||||||
},
|
},
|
||||||
),
|
),
|
||||||
Map(
|
Map(
|
||||||
|
@ -190,67 +177,52 @@ Constr(
|
||||||
Constr {
|
Constr {
|
||||||
tag: 123,
|
tag: 123,
|
||||||
any_constructor: None,
|
any_constructor: None,
|
||||||
fields: Indef(
|
fields: [
|
||||||
[
|
|
||||||
Constr(
|
Constr(
|
||||||
Constr {
|
Constr {
|
||||||
tag: 121,
|
tag: 121,
|
||||||
any_constructor: None,
|
any_constructor: None,
|
||||||
fields: Def(
|
fields: [],
|
||||||
[],
|
|
||||||
),
|
|
||||||
},
|
},
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
),
|
|
||||||
},
|
},
|
||||||
),
|
),
|
||||||
Constr(
|
Constr(
|
||||||
Constr {
|
Constr {
|
||||||
tag: 122,
|
tag: 122,
|
||||||
any_constructor: None,
|
any_constructor: None,
|
||||||
fields: Def(
|
fields: [],
|
||||||
[],
|
|
||||||
),
|
|
||||||
},
|
},
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
),
|
|
||||||
},
|
},
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
),
|
|
||||||
},
|
},
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
),
|
|
||||||
Array(
|
Array(
|
||||||
Def(
|
|
||||||
[],
|
[],
|
||||||
),
|
),
|
||||||
),
|
|
||||||
Array(
|
Array(
|
||||||
Indef(
|
|
||||||
[
|
[
|
||||||
Constr(
|
Constr(
|
||||||
Constr {
|
Constr {
|
||||||
tag: 121,
|
tag: 121,
|
||||||
any_constructor: None,
|
any_constructor: None,
|
||||||
fields: Indef(
|
fields: [
|
||||||
[
|
|
||||||
Constr(
|
Constr(
|
||||||
Constr {
|
Constr {
|
||||||
tag: 121,
|
tag: 121,
|
||||||
any_constructor: None,
|
any_constructor: None,
|
||||||
fields: Indef(
|
fields: [
|
||||||
[
|
|
||||||
Constr(
|
Constr(
|
||||||
Constr {
|
Constr {
|
||||||
tag: 121,
|
tag: 121,
|
||||||
any_constructor: None,
|
any_constructor: None,
|
||||||
fields: Indef(
|
fields: [
|
||||||
[
|
|
||||||
BoundedBytes(
|
BoundedBytes(
|
||||||
BoundedBytes(
|
BoundedBytes(
|
||||||
[
|
[
|
||||||
|
@ -286,20 +258,16 @@ Constr(
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
),
|
|
||||||
},
|
},
|
||||||
),
|
),
|
||||||
Constr(
|
Constr(
|
||||||
Constr {
|
Constr {
|
||||||
tag: 122,
|
tag: 122,
|
||||||
any_constructor: None,
|
any_constructor: None,
|
||||||
fields: Def(
|
fields: [],
|
||||||
[],
|
|
||||||
),
|
|
||||||
},
|
},
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
),
|
|
||||||
},
|
},
|
||||||
),
|
),
|
||||||
Map(
|
Map(
|
||||||
|
@ -342,27 +310,21 @@ Constr(
|
||||||
Constr {
|
Constr {
|
||||||
tag: 121,
|
tag: 121,
|
||||||
any_constructor: None,
|
any_constructor: None,
|
||||||
fields: Def(
|
fields: [],
|
||||||
[],
|
|
||||||
),
|
|
||||||
},
|
},
|
||||||
),
|
),
|
||||||
Constr(
|
Constr(
|
||||||
Constr {
|
Constr {
|
||||||
tag: 122,
|
tag: 122,
|
||||||
any_constructor: None,
|
any_constructor: None,
|
||||||
fields: Def(
|
fields: [],
|
||||||
[],
|
|
||||||
),
|
|
||||||
},
|
},
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
),
|
|
||||||
},
|
},
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
),
|
|
||||||
BigInt(
|
BigInt(
|
||||||
Int(
|
Int(
|
||||||
Int(
|
Int(
|
||||||
|
@ -379,10 +341,8 @@ Constr(
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
Array(
|
Array(
|
||||||
Def(
|
|
||||||
[],
|
[],
|
||||||
),
|
),
|
||||||
),
|
|
||||||
Map(
|
Map(
|
||||||
Def(
|
Def(
|
||||||
[],
|
[],
|
||||||
|
@ -392,73 +352,57 @@ Constr(
|
||||||
Constr {
|
Constr {
|
||||||
tag: 121,
|
tag: 121,
|
||||||
any_constructor: None,
|
any_constructor: None,
|
||||||
fields: Indef(
|
fields: [
|
||||||
[
|
|
||||||
Constr(
|
Constr(
|
||||||
Constr {
|
Constr {
|
||||||
tag: 121,
|
tag: 121,
|
||||||
any_constructor: None,
|
any_constructor: None,
|
||||||
fields: Indef(
|
fields: [
|
||||||
[
|
|
||||||
Constr(
|
Constr(
|
||||||
Constr {
|
Constr {
|
||||||
tag: 121,
|
tag: 121,
|
||||||
any_constructor: None,
|
any_constructor: None,
|
||||||
fields: Def(
|
fields: [],
|
||||||
[],
|
|
||||||
),
|
|
||||||
},
|
},
|
||||||
),
|
),
|
||||||
Constr(
|
Constr(
|
||||||
Constr {
|
Constr {
|
||||||
tag: 122,
|
tag: 122,
|
||||||
any_constructor: None,
|
any_constructor: None,
|
||||||
fields: Def(
|
fields: [],
|
||||||
[],
|
|
||||||
),
|
|
||||||
},
|
},
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
),
|
|
||||||
},
|
},
|
||||||
),
|
),
|
||||||
Constr(
|
Constr(
|
||||||
Constr {
|
Constr {
|
||||||
tag: 121,
|
tag: 121,
|
||||||
any_constructor: None,
|
any_constructor: None,
|
||||||
fields: Indef(
|
fields: [
|
||||||
[
|
|
||||||
Constr(
|
Constr(
|
||||||
Constr {
|
Constr {
|
||||||
tag: 123,
|
tag: 123,
|
||||||
any_constructor: None,
|
any_constructor: None,
|
||||||
fields: Def(
|
fields: [],
|
||||||
[],
|
|
||||||
),
|
|
||||||
},
|
},
|
||||||
),
|
),
|
||||||
Constr(
|
Constr(
|
||||||
Constr {
|
Constr {
|
||||||
tag: 122,
|
tag: 122,
|
||||||
any_constructor: None,
|
any_constructor: None,
|
||||||
fields: Def(
|
fields: [],
|
||||||
[],
|
|
||||||
),
|
|
||||||
},
|
},
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
),
|
|
||||||
},
|
},
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
),
|
|
||||||
},
|
},
|
||||||
),
|
),
|
||||||
Array(
|
Array(
|
||||||
Def(
|
|
||||||
[],
|
[],
|
||||||
),
|
),
|
||||||
),
|
|
||||||
Map(
|
Map(
|
||||||
Def(
|
Def(
|
||||||
[
|
[
|
||||||
|
@ -467,14 +411,12 @@ Constr(
|
||||||
Constr {
|
Constr {
|
||||||
tag: 122,
|
tag: 122,
|
||||||
any_constructor: None,
|
any_constructor: None,
|
||||||
fields: Indef(
|
fields: [
|
||||||
[
|
|
||||||
Constr(
|
Constr(
|
||||||
Constr {
|
Constr {
|
||||||
tag: 121,
|
tag: 121,
|
||||||
any_constructor: None,
|
any_constructor: None,
|
||||||
fields: Indef(
|
fields: [
|
||||||
[
|
|
||||||
BoundedBytes(
|
BoundedBytes(
|
||||||
BoundedBytes(
|
BoundedBytes(
|
||||||
[
|
[
|
||||||
|
@ -524,20 +466,16 @@ Constr(
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
),
|
|
||||||
},
|
},
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
),
|
|
||||||
},
|
},
|
||||||
),
|
),
|
||||||
Constr(
|
Constr(
|
||||||
Constr {
|
Constr {
|
||||||
tag: 121,
|
tag: 121,
|
||||||
any_constructor: None,
|
any_constructor: None,
|
||||||
fields: Def(
|
fields: [],
|
||||||
[],
|
|
||||||
),
|
|
||||||
},
|
},
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
|
@ -593,53 +531,42 @@ Constr(
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
Array(
|
Array(
|
||||||
Def(
|
|
||||||
[],
|
[],
|
||||||
),
|
),
|
||||||
),
|
|
||||||
Constr(
|
Constr(
|
||||||
Constr {
|
Constr {
|
||||||
tag: 122,
|
tag: 122,
|
||||||
any_constructor: None,
|
any_constructor: None,
|
||||||
fields: Def(
|
fields: [],
|
||||||
[],
|
|
||||||
),
|
|
||||||
},
|
},
|
||||||
),
|
),
|
||||||
Constr(
|
Constr(
|
||||||
Constr {
|
Constr {
|
||||||
tag: 122,
|
tag: 122,
|
||||||
any_constructor: None,
|
any_constructor: None,
|
||||||
fields: Def(
|
fields: [],
|
||||||
[],
|
|
||||||
),
|
|
||||||
},
|
},
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
),
|
|
||||||
},
|
},
|
||||||
),
|
),
|
||||||
Constr(
|
Constr(
|
||||||
Constr {
|
Constr {
|
||||||
tag: 121,
|
tag: 121,
|
||||||
any_constructor: None,
|
any_constructor: None,
|
||||||
fields: Def(
|
fields: [],
|
||||||
[],
|
|
||||||
),
|
|
||||||
},
|
},
|
||||||
),
|
),
|
||||||
Constr(
|
Constr(
|
||||||
Constr {
|
Constr {
|
||||||
tag: 122,
|
tag: 122,
|
||||||
any_constructor: None,
|
any_constructor: None,
|
||||||
fields: Indef(
|
fields: [
|
||||||
[
|
|
||||||
Constr(
|
Constr(
|
||||||
Constr {
|
Constr {
|
||||||
tag: 121,
|
tag: 121,
|
||||||
any_constructor: None,
|
any_constructor: None,
|
||||||
fields: Indef(
|
fields: [
|
||||||
[
|
|
||||||
BoundedBytes(
|
BoundedBytes(
|
||||||
BoundedBytes(
|
BoundedBytes(
|
||||||
[
|
[
|
||||||
|
@ -689,33 +616,26 @@ Constr(
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
),
|
|
||||||
},
|
},
|
||||||
),
|
),
|
||||||
Constr(
|
Constr(
|
||||||
Constr {
|
Constr {
|
||||||
tag: 121,
|
tag: 121,
|
||||||
any_constructor: None,
|
any_constructor: None,
|
||||||
fields: Indef(
|
fields: [
|
||||||
[
|
|
||||||
Constr(
|
Constr(
|
||||||
Constr {
|
Constr {
|
||||||
tag: 121,
|
tag: 121,
|
||||||
any_constructor: None,
|
any_constructor: None,
|
||||||
fields: Def(
|
fields: [],
|
||||||
[],
|
|
||||||
),
|
|
||||||
},
|
},
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
),
|
|
||||||
},
|
},
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
),
|
|
||||||
},
|
},
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
),
|
|
||||||
},
|
},
|
||||||
)
|
)
|
||||||
|
|
|
@ -6,29 +6,24 @@ Constr(
|
||||||
Constr {
|
Constr {
|
||||||
tag: 121,
|
tag: 121,
|
||||||
any_constructor: None,
|
any_constructor: None,
|
||||||
fields: Indef(
|
fields: [
|
||||||
[
|
|
||||||
Constr(
|
Constr(
|
||||||
Constr {
|
Constr {
|
||||||
tag: 121,
|
tag: 121,
|
||||||
any_constructor: None,
|
any_constructor: None,
|
||||||
fields: Indef(
|
fields: [
|
||||||
[
|
|
||||||
Array(
|
Array(
|
||||||
Indef(
|
|
||||||
[
|
[
|
||||||
Constr(
|
Constr(
|
||||||
Constr {
|
Constr {
|
||||||
tag: 121,
|
tag: 121,
|
||||||
any_constructor: None,
|
any_constructor: None,
|
||||||
fields: Indef(
|
fields: [
|
||||||
[
|
|
||||||
Constr(
|
Constr(
|
||||||
Constr {
|
Constr {
|
||||||
tag: 121,
|
tag: 121,
|
||||||
any_constructor: None,
|
any_constructor: None,
|
||||||
fields: Indef(
|
fields: [
|
||||||
[
|
|
||||||
BoundedBytes(
|
BoundedBytes(
|
||||||
BoundedBytes(
|
BoundedBytes(
|
||||||
[
|
[
|
||||||
|
@ -78,27 +73,23 @@ Constr(
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
),
|
|
||||||
},
|
},
|
||||||
),
|
),
|
||||||
Constr(
|
Constr(
|
||||||
Constr {
|
Constr {
|
||||||
tag: 121,
|
tag: 121,
|
||||||
any_constructor: None,
|
any_constructor: None,
|
||||||
fields: Indef(
|
fields: [
|
||||||
[
|
|
||||||
Constr(
|
Constr(
|
||||||
Constr {
|
Constr {
|
||||||
tag: 121,
|
tag: 121,
|
||||||
any_constructor: None,
|
any_constructor: None,
|
||||||
fields: Indef(
|
fields: [
|
||||||
[
|
|
||||||
Constr(
|
Constr(
|
||||||
Constr {
|
Constr {
|
||||||
tag: 121,
|
tag: 121,
|
||||||
any_constructor: None,
|
any_constructor: None,
|
||||||
fields: Indef(
|
fields: [
|
||||||
[
|
|
||||||
BoundedBytes(
|
BoundedBytes(
|
||||||
BoundedBytes(
|
BoundedBytes(
|
||||||
[
|
[
|
||||||
|
@ -134,20 +125,16 @@ Constr(
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
),
|
|
||||||
},
|
},
|
||||||
),
|
),
|
||||||
Constr(
|
Constr(
|
||||||
Constr {
|
Constr {
|
||||||
tag: 122,
|
tag: 122,
|
||||||
any_constructor: None,
|
any_constructor: None,
|
||||||
fields: Def(
|
fields: [],
|
||||||
[],
|
|
||||||
),
|
|
||||||
},
|
},
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
),
|
|
||||||
},
|
},
|
||||||
),
|
),
|
||||||
Map(
|
Map(
|
||||||
|
@ -190,41 +177,30 @@ Constr(
|
||||||
Constr {
|
Constr {
|
||||||
tag: 121,
|
tag: 121,
|
||||||
any_constructor: None,
|
any_constructor: None,
|
||||||
fields: Def(
|
fields: [],
|
||||||
[],
|
|
||||||
),
|
|
||||||
},
|
},
|
||||||
),
|
),
|
||||||
Constr(
|
Constr(
|
||||||
Constr {
|
Constr {
|
||||||
tag: 122,
|
tag: 122,
|
||||||
any_constructor: None,
|
any_constructor: None,
|
||||||
fields: Def(
|
fields: [],
|
||||||
[],
|
|
||||||
),
|
|
||||||
},
|
},
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
),
|
|
||||||
},
|
},
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
),
|
|
||||||
},
|
},
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
),
|
|
||||||
Array(
|
Array(
|
||||||
Def(
|
|
||||||
[],
|
[],
|
||||||
),
|
),
|
||||||
),
|
|
||||||
Array(
|
Array(
|
||||||
Def(
|
|
||||||
[],
|
[],
|
||||||
),
|
),
|
||||||
),
|
|
||||||
BigInt(
|
BigInt(
|
||||||
Int(
|
Int(
|
||||||
Int(
|
Int(
|
||||||
|
@ -241,10 +217,8 @@ Constr(
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
Array(
|
Array(
|
||||||
Def(
|
|
||||||
[],
|
[],
|
||||||
),
|
),
|
||||||
),
|
|
||||||
Map(
|
Map(
|
||||||
Def(
|
Def(
|
||||||
[],
|
[],
|
||||||
|
@ -254,73 +228,57 @@ Constr(
|
||||||
Constr {
|
Constr {
|
||||||
tag: 121,
|
tag: 121,
|
||||||
any_constructor: None,
|
any_constructor: None,
|
||||||
fields: Indef(
|
fields: [
|
||||||
[
|
|
||||||
Constr(
|
Constr(
|
||||||
Constr {
|
Constr {
|
||||||
tag: 121,
|
tag: 121,
|
||||||
any_constructor: None,
|
any_constructor: None,
|
||||||
fields: Indef(
|
fields: [
|
||||||
[
|
|
||||||
Constr(
|
Constr(
|
||||||
Constr {
|
Constr {
|
||||||
tag: 121,
|
tag: 121,
|
||||||
any_constructor: None,
|
any_constructor: None,
|
||||||
fields: Def(
|
fields: [],
|
||||||
[],
|
|
||||||
),
|
|
||||||
},
|
},
|
||||||
),
|
),
|
||||||
Constr(
|
Constr(
|
||||||
Constr {
|
Constr {
|
||||||
tag: 122,
|
tag: 122,
|
||||||
any_constructor: None,
|
any_constructor: None,
|
||||||
fields: Def(
|
fields: [],
|
||||||
[],
|
|
||||||
),
|
|
||||||
},
|
},
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
),
|
|
||||||
},
|
},
|
||||||
),
|
),
|
||||||
Constr(
|
Constr(
|
||||||
Constr {
|
Constr {
|
||||||
tag: 121,
|
tag: 121,
|
||||||
any_constructor: None,
|
any_constructor: None,
|
||||||
fields: Indef(
|
fields: [
|
||||||
[
|
|
||||||
Constr(
|
Constr(
|
||||||
Constr {
|
Constr {
|
||||||
tag: 123,
|
tag: 123,
|
||||||
any_constructor: None,
|
any_constructor: None,
|
||||||
fields: Def(
|
fields: [],
|
||||||
[],
|
|
||||||
),
|
|
||||||
},
|
},
|
||||||
),
|
),
|
||||||
Constr(
|
Constr(
|
||||||
Constr {
|
Constr {
|
||||||
tag: 122,
|
tag: 122,
|
||||||
any_constructor: None,
|
any_constructor: None,
|
||||||
fields: Def(
|
fields: [],
|
||||||
[],
|
|
||||||
),
|
|
||||||
},
|
},
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
),
|
|
||||||
},
|
},
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
),
|
|
||||||
},
|
},
|
||||||
),
|
),
|
||||||
Array(
|
Array(
|
||||||
Def(
|
|
||||||
[],
|
[],
|
||||||
),
|
),
|
||||||
),
|
|
||||||
Map(
|
Map(
|
||||||
Def(
|
Def(
|
||||||
[
|
[
|
||||||
|
@ -329,20 +287,17 @@ Constr(
|
||||||
Constr {
|
Constr {
|
||||||
tag: 125,
|
tag: 125,
|
||||||
any_constructor: None,
|
any_constructor: None,
|
||||||
fields: Indef(
|
fields: [
|
||||||
[
|
|
||||||
Constr(
|
Constr(
|
||||||
Constr {
|
Constr {
|
||||||
tag: 121,
|
tag: 121,
|
||||||
any_constructor: None,
|
any_constructor: None,
|
||||||
fields: Indef(
|
fields: [
|
||||||
[
|
|
||||||
Constr(
|
Constr(
|
||||||
Constr {
|
Constr {
|
||||||
tag: 122,
|
tag: 122,
|
||||||
any_constructor: None,
|
any_constructor: None,
|
||||||
fields: Indef(
|
fields: [
|
||||||
[
|
|
||||||
BoundedBytes(
|
BoundedBytes(
|
||||||
BoundedBytes(
|
BoundedBytes(
|
||||||
[
|
[
|
||||||
|
@ -378,23 +333,19 @@ Constr(
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
),
|
|
||||||
},
|
},
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
),
|
|
||||||
},
|
},
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
),
|
|
||||||
},
|
},
|
||||||
),
|
),
|
||||||
Constr(
|
Constr(
|
||||||
Constr {
|
Constr {
|
||||||
tag: 121,
|
tag: 121,
|
||||||
any_constructor: None,
|
any_constructor: None,
|
||||||
fields: Def(
|
fields: [
|
||||||
[
|
|
||||||
BigInt(
|
BigInt(
|
||||||
Int(
|
Int(
|
||||||
Int(
|
Int(
|
||||||
|
@ -406,7 +357,6 @@ Constr(
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
),
|
|
||||||
},
|
},
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
|
@ -415,20 +365,17 @@ Constr(
|
||||||
Constr {
|
Constr {
|
||||||
tag: 125,
|
tag: 125,
|
||||||
any_constructor: None,
|
any_constructor: None,
|
||||||
fields: Indef(
|
fields: [
|
||||||
[
|
|
||||||
Constr(
|
Constr(
|
||||||
Constr {
|
Constr {
|
||||||
tag: 122,
|
tag: 122,
|
||||||
any_constructor: None,
|
any_constructor: None,
|
||||||
fields: Indef(
|
fields: [
|
||||||
[
|
|
||||||
Constr(
|
Constr(
|
||||||
Constr {
|
Constr {
|
||||||
tag: 122,
|
tag: 122,
|
||||||
any_constructor: None,
|
any_constructor: None,
|
||||||
fields: Indef(
|
fields: [
|
||||||
[
|
|
||||||
BoundedBytes(
|
BoundedBytes(
|
||||||
BoundedBytes(
|
BoundedBytes(
|
||||||
[
|
[
|
||||||
|
@ -464,24 +411,19 @@ Constr(
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
),
|
|
||||||
},
|
},
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
),
|
|
||||||
},
|
},
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
),
|
|
||||||
},
|
},
|
||||||
),
|
),
|
||||||
Constr(
|
Constr(
|
||||||
Constr {
|
Constr {
|
||||||
tag: 121,
|
tag: 121,
|
||||||
any_constructor: None,
|
any_constructor: None,
|
||||||
fields: Def(
|
fields: [],
|
||||||
[],
|
|
||||||
),
|
|
||||||
},
|
},
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
|
@ -539,14 +481,12 @@ Constr(
|
||||||
Constr {
|
Constr {
|
||||||
tag: 121,
|
tag: 121,
|
||||||
any_constructor: None,
|
any_constructor: None,
|
||||||
fields: Indef(
|
fields: [
|
||||||
[
|
|
||||||
Constr(
|
Constr(
|
||||||
Constr {
|
Constr {
|
||||||
tag: 122,
|
tag: 122,
|
||||||
any_constructor: None,
|
any_constructor: None,
|
||||||
fields: Indef(
|
fields: [
|
||||||
[
|
|
||||||
BoundedBytes(
|
BoundedBytes(
|
||||||
BoundedBytes(
|
BoundedBytes(
|
||||||
[
|
[
|
||||||
|
@ -582,11 +522,9 @@ Constr(
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
),
|
|
||||||
},
|
},
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
),
|
|
||||||
},
|
},
|
||||||
),
|
),
|
||||||
Map(
|
Map(
|
||||||
|
@ -597,8 +535,7 @@ Constr(
|
||||||
Constr {
|
Constr {
|
||||||
tag: 121,
|
tag: 121,
|
||||||
any_constructor: None,
|
any_constructor: None,
|
||||||
fields: Indef(
|
fields: [
|
||||||
[
|
|
||||||
BoundedBytes(
|
BoundedBytes(
|
||||||
BoundedBytes(
|
BoundedBytes(
|
||||||
[
|
[
|
||||||
|
@ -648,16 +585,13 @@ Constr(
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
),
|
|
||||||
},
|
},
|
||||||
),
|
),
|
||||||
Constr(
|
Constr(
|
||||||
Constr {
|
Constr {
|
||||||
tag: 122,
|
tag: 122,
|
||||||
any_constructor: None,
|
any_constructor: None,
|
||||||
fields: Def(
|
fields: [],
|
||||||
[],
|
|
||||||
),
|
|
||||||
},
|
},
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
|
@ -670,14 +604,12 @@ Constr(
|
||||||
Constr {
|
Constr {
|
||||||
tag: 121,
|
tag: 121,
|
||||||
any_constructor: None,
|
any_constructor: None,
|
||||||
fields: Indef(
|
fields: [
|
||||||
[
|
|
||||||
Constr(
|
Constr(
|
||||||
Constr {
|
Constr {
|
||||||
tag: 121,
|
tag: 121,
|
||||||
any_constructor: None,
|
any_constructor: None,
|
||||||
fields: Indef(
|
fields: [
|
||||||
[
|
|
||||||
BoundedBytes(
|
BoundedBytes(
|
||||||
BoundedBytes(
|
BoundedBytes(
|
||||||
[
|
[
|
||||||
|
@ -713,11 +645,9 @@ Constr(
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
),
|
|
||||||
},
|
},
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
),
|
|
||||||
},
|
},
|
||||||
),
|
),
|
||||||
Map(
|
Map(
|
||||||
|
@ -728,8 +658,7 @@ Constr(
|
||||||
Constr {
|
Constr {
|
||||||
tag: 121,
|
tag: 121,
|
||||||
any_constructor: None,
|
any_constructor: None,
|
||||||
fields: Indef(
|
fields: [
|
||||||
[
|
|
||||||
BoundedBytes(
|
BoundedBytes(
|
||||||
BoundedBytes(
|
BoundedBytes(
|
||||||
[
|
[
|
||||||
|
@ -779,16 +708,13 @@ Constr(
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
),
|
|
||||||
},
|
},
|
||||||
),
|
),
|
||||||
Constr(
|
Constr(
|
||||||
Constr {
|
Constr {
|
||||||
tag: 121,
|
tag: 121,
|
||||||
any_constructor: None,
|
any_constructor: None,
|
||||||
fields: Def(
|
fields: [],
|
||||||
[],
|
|
||||||
),
|
|
||||||
},
|
},
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
|
@ -801,14 +727,12 @@ Constr(
|
||||||
Constr {
|
Constr {
|
||||||
tag: 122,
|
tag: 122,
|
||||||
any_constructor: None,
|
any_constructor: None,
|
||||||
fields: Indef(
|
fields: [
|
||||||
[
|
|
||||||
Constr(
|
Constr(
|
||||||
Constr {
|
Constr {
|
||||||
tag: 122,
|
tag: 122,
|
||||||
any_constructor: None,
|
any_constructor: None,
|
||||||
fields: Indef(
|
fields: [
|
||||||
[
|
|
||||||
BoundedBytes(
|
BoundedBytes(
|
||||||
BoundedBytes(
|
BoundedBytes(
|
||||||
[
|
[
|
||||||
|
@ -844,11 +768,9 @@ Constr(
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
),
|
|
||||||
},
|
},
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
),
|
|
||||||
},
|
},
|
||||||
),
|
),
|
||||||
Map(
|
Map(
|
||||||
|
@ -859,8 +781,7 @@ Constr(
|
||||||
Constr {
|
Constr {
|
||||||
tag: 121,
|
tag: 121,
|
||||||
any_constructor: None,
|
any_constructor: None,
|
||||||
fields: Indef(
|
fields: [
|
||||||
[
|
|
||||||
BoundedBytes(
|
BoundedBytes(
|
||||||
BoundedBytes(
|
BoundedBytes(
|
||||||
[
|
[
|
||||||
|
@ -910,16 +831,13 @@ Constr(
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
),
|
|
||||||
},
|
},
|
||||||
),
|
),
|
||||||
Constr(
|
Constr(
|
||||||
Constr {
|
Constr {
|
||||||
tag: 121,
|
tag: 121,
|
||||||
any_constructor: None,
|
any_constructor: None,
|
||||||
fields: Def(
|
fields: [],
|
||||||
[],
|
|
||||||
),
|
|
||||||
},
|
},
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
|
@ -932,14 +850,12 @@ Constr(
|
||||||
Constr {
|
Constr {
|
||||||
tag: 122,
|
tag: 122,
|
||||||
any_constructor: None,
|
any_constructor: None,
|
||||||
fields: Indef(
|
fields: [
|
||||||
[
|
|
||||||
Constr(
|
Constr(
|
||||||
Constr {
|
Constr {
|
||||||
tag: 121,
|
tag: 121,
|
||||||
any_constructor: None,
|
any_constructor: None,
|
||||||
fields: Indef(
|
fields: [
|
||||||
[
|
|
||||||
BoundedBytes(
|
BoundedBytes(
|
||||||
BoundedBytes(
|
BoundedBytes(
|
||||||
[
|
[
|
||||||
|
@ -975,11 +891,9 @@ Constr(
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
),
|
|
||||||
},
|
},
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
),
|
|
||||||
},
|
},
|
||||||
),
|
),
|
||||||
Map(
|
Map(
|
||||||
|
@ -990,8 +904,7 @@ Constr(
|
||||||
Constr {
|
Constr {
|
||||||
tag: 121,
|
tag: 121,
|
||||||
any_constructor: None,
|
any_constructor: None,
|
||||||
fields: Indef(
|
fields: [
|
||||||
[
|
|
||||||
BoundedBytes(
|
BoundedBytes(
|
||||||
BoundedBytes(
|
BoundedBytes(
|
||||||
[
|
[
|
||||||
|
@ -1041,16 +954,13 @@ Constr(
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
),
|
|
||||||
},
|
},
|
||||||
),
|
),
|
||||||
Constr(
|
Constr(
|
||||||
Constr {
|
Constr {
|
||||||
tag: 123,
|
tag: 123,
|
||||||
any_constructor: None,
|
any_constructor: None,
|
||||||
fields: Def(
|
fields: [],
|
||||||
[],
|
|
||||||
),
|
|
||||||
},
|
},
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
|
@ -1059,8 +969,7 @@ Constr(
|
||||||
Constr {
|
Constr {
|
||||||
tag: 121,
|
tag: 121,
|
||||||
any_constructor: None,
|
any_constructor: None,
|
||||||
fields: Indef(
|
fields: [
|
||||||
[
|
|
||||||
BoundedBytes(
|
BoundedBytes(
|
||||||
BoundedBytes(
|
BoundedBytes(
|
||||||
[
|
[
|
||||||
|
@ -1110,16 +1019,13 @@ Constr(
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
),
|
|
||||||
},
|
},
|
||||||
),
|
),
|
||||||
Constr(
|
Constr(
|
||||||
Constr {
|
Constr {
|
||||||
tag: 123,
|
tag: 123,
|
||||||
any_constructor: None,
|
any_constructor: None,
|
||||||
fields: Def(
|
fields: [],
|
||||||
[],
|
|
||||||
),
|
|
||||||
},
|
},
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
|
@ -1128,8 +1034,7 @@ Constr(
|
||||||
Constr {
|
Constr {
|
||||||
tag: 121,
|
tag: 121,
|
||||||
any_constructor: None,
|
any_constructor: None,
|
||||||
fields: Indef(
|
fields: [
|
||||||
[
|
|
||||||
BoundedBytes(
|
BoundedBytes(
|
||||||
BoundedBytes(
|
BoundedBytes(
|
||||||
[
|
[
|
||||||
|
@ -1179,16 +1084,13 @@ Constr(
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
),
|
|
||||||
},
|
},
|
||||||
),
|
),
|
||||||
Constr(
|
Constr(
|
||||||
Constr {
|
Constr {
|
||||||
tag: 123,
|
tag: 123,
|
||||||
any_constructor: None,
|
any_constructor: None,
|
||||||
fields: Def(
|
fields: [],
|
||||||
[],
|
|
||||||
),
|
|
||||||
},
|
},
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
|
@ -1201,8 +1103,7 @@ Constr(
|
||||||
Constr {
|
Constr {
|
||||||
tag: 123,
|
tag: 123,
|
||||||
any_constructor: None,
|
any_constructor: None,
|
||||||
fields: Indef(
|
fields: [
|
||||||
[
|
|
||||||
BoundedBytes(
|
BoundedBytes(
|
||||||
BoundedBytes(
|
BoundedBytes(
|
||||||
[
|
[
|
||||||
|
@ -1238,7 +1139,6 @@ Constr(
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
),
|
|
||||||
},
|
},
|
||||||
),
|
),
|
||||||
Map(
|
Map(
|
||||||
|
@ -1249,8 +1149,7 @@ Constr(
|
||||||
Constr {
|
Constr {
|
||||||
tag: 121,
|
tag: 121,
|
||||||
any_constructor: None,
|
any_constructor: None,
|
||||||
fields: Indef(
|
fields: [
|
||||||
[
|
|
||||||
BoundedBytes(
|
BoundedBytes(
|
||||||
BoundedBytes(
|
BoundedBytes(
|
||||||
[
|
[
|
||||||
|
@ -1300,16 +1199,13 @@ Constr(
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
),
|
|
||||||
},
|
},
|
||||||
),
|
),
|
||||||
Constr(
|
Constr(
|
||||||
Constr {
|
Constr {
|
||||||
tag: 122,
|
tag: 122,
|
||||||
any_constructor: None,
|
any_constructor: None,
|
||||||
fields: Def(
|
fields: [],
|
||||||
[],
|
|
||||||
),
|
|
||||||
},
|
},
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
|
@ -1321,38 +1217,30 @@ Constr(
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
Array(
|
Array(
|
||||||
Def(
|
|
||||||
[],
|
[],
|
||||||
),
|
),
|
||||||
),
|
|
||||||
Constr(
|
Constr(
|
||||||
Constr {
|
Constr {
|
||||||
tag: 122,
|
tag: 122,
|
||||||
any_constructor: None,
|
any_constructor: None,
|
||||||
fields: Def(
|
fields: [],
|
||||||
[],
|
|
||||||
),
|
|
||||||
},
|
},
|
||||||
),
|
),
|
||||||
Constr(
|
Constr(
|
||||||
Constr {
|
Constr {
|
||||||
tag: 122,
|
tag: 122,
|
||||||
any_constructor: None,
|
any_constructor: None,
|
||||||
fields: Def(
|
fields: [],
|
||||||
[],
|
|
||||||
),
|
|
||||||
},
|
},
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
),
|
|
||||||
},
|
},
|
||||||
),
|
),
|
||||||
Constr(
|
Constr(
|
||||||
Constr {
|
Constr {
|
||||||
tag: 121,
|
tag: 121,
|
||||||
any_constructor: None,
|
any_constructor: None,
|
||||||
fields: Indef(
|
fields: [
|
||||||
[
|
|
||||||
BigInt(
|
BigInt(
|
||||||
Int(
|
Int(
|
||||||
Int(
|
Int(
|
||||||
|
@ -1364,27 +1252,23 @@ Constr(
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
),
|
|
||||||
},
|
},
|
||||||
),
|
),
|
||||||
Constr(
|
Constr(
|
||||||
Constr {
|
Constr {
|
||||||
tag: 125,
|
tag: 125,
|
||||||
any_constructor: None,
|
any_constructor: None,
|
||||||
fields: Indef(
|
fields: [
|
||||||
[
|
|
||||||
Constr(
|
Constr(
|
||||||
Constr {
|
Constr {
|
||||||
tag: 121,
|
tag: 121,
|
||||||
any_constructor: None,
|
any_constructor: None,
|
||||||
fields: Indef(
|
fields: [
|
||||||
[
|
|
||||||
Constr(
|
Constr(
|
||||||
Constr {
|
Constr {
|
||||||
tag: 122,
|
tag: 122,
|
||||||
any_constructor: None,
|
any_constructor: None,
|
||||||
fields: Indef(
|
fields: [
|
||||||
[
|
|
||||||
BoundedBytes(
|
BoundedBytes(
|
||||||
BoundedBytes(
|
BoundedBytes(
|
||||||
[
|
[
|
||||||
|
@ -1420,18 +1304,14 @@ Constr(
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
),
|
|
||||||
},
|
},
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
),
|
|
||||||
},
|
},
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
),
|
|
||||||
},
|
},
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
),
|
|
||||||
},
|
},
|
||||||
)
|
)
|
||||||
|
|
|
@ -6,29 +6,24 @@ Constr(
|
||||||
Constr {
|
Constr {
|
||||||
tag: 121,
|
tag: 121,
|
||||||
any_constructor: None,
|
any_constructor: None,
|
||||||
fields: Indef(
|
fields: [
|
||||||
[
|
|
||||||
Constr(
|
Constr(
|
||||||
Constr {
|
Constr {
|
||||||
tag: 121,
|
tag: 121,
|
||||||
any_constructor: None,
|
any_constructor: None,
|
||||||
fields: Indef(
|
fields: [
|
||||||
[
|
|
||||||
Array(
|
Array(
|
||||||
Indef(
|
|
||||||
[
|
[
|
||||||
Constr(
|
Constr(
|
||||||
Constr {
|
Constr {
|
||||||
tag: 121,
|
tag: 121,
|
||||||
any_constructor: None,
|
any_constructor: None,
|
||||||
fields: Indef(
|
fields: [
|
||||||
[
|
|
||||||
Constr(
|
Constr(
|
||||||
Constr {
|
Constr {
|
||||||
tag: 121,
|
tag: 121,
|
||||||
any_constructor: None,
|
any_constructor: None,
|
||||||
fields: Indef(
|
fields: [
|
||||||
[
|
|
||||||
BoundedBytes(
|
BoundedBytes(
|
||||||
BoundedBytes(
|
BoundedBytes(
|
||||||
[
|
[
|
||||||
|
@ -78,27 +73,23 @@ Constr(
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
),
|
|
||||||
},
|
},
|
||||||
),
|
),
|
||||||
Constr(
|
Constr(
|
||||||
Constr {
|
Constr {
|
||||||
tag: 121,
|
tag: 121,
|
||||||
any_constructor: None,
|
any_constructor: None,
|
||||||
fields: Indef(
|
fields: [
|
||||||
[
|
|
||||||
Constr(
|
Constr(
|
||||||
Constr {
|
Constr {
|
||||||
tag: 121,
|
tag: 121,
|
||||||
any_constructor: None,
|
any_constructor: None,
|
||||||
fields: Indef(
|
fields: [
|
||||||
[
|
|
||||||
Constr(
|
Constr(
|
||||||
Constr {
|
Constr {
|
||||||
tag: 122,
|
tag: 122,
|
||||||
any_constructor: None,
|
any_constructor: None,
|
||||||
fields: Indef(
|
fields: [
|
||||||
[
|
|
||||||
BoundedBytes(
|
BoundedBytes(
|
||||||
BoundedBytes(
|
BoundedBytes(
|
||||||
[
|
[
|
||||||
|
@ -134,27 +125,23 @@ Constr(
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
),
|
|
||||||
},
|
},
|
||||||
),
|
),
|
||||||
Constr(
|
Constr(
|
||||||
Constr {
|
Constr {
|
||||||
tag: 121,
|
tag: 121,
|
||||||
any_constructor: None,
|
any_constructor: None,
|
||||||
fields: Indef(
|
fields: [
|
||||||
[
|
|
||||||
Constr(
|
Constr(
|
||||||
Constr {
|
Constr {
|
||||||
tag: 121,
|
tag: 121,
|
||||||
any_constructor: None,
|
any_constructor: None,
|
||||||
fields: Indef(
|
fields: [
|
||||||
[
|
|
||||||
Constr(
|
Constr(
|
||||||
Constr {
|
Constr {
|
||||||
tag: 122,
|
tag: 122,
|
||||||
any_constructor: None,
|
any_constructor: None,
|
||||||
fields: Indef(
|
fields: [
|
||||||
[
|
|
||||||
BoundedBytes(
|
BoundedBytes(
|
||||||
BoundedBytes(
|
BoundedBytes(
|
||||||
[
|
[
|
||||||
|
@ -190,19 +177,15 @@ Constr(
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
),
|
|
||||||
},
|
},
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
),
|
|
||||||
},
|
},
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
),
|
|
||||||
},
|
},
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
),
|
|
||||||
},
|
},
|
||||||
),
|
),
|
||||||
Map(
|
Map(
|
||||||
|
@ -245,27 +228,22 @@ Constr(
|
||||||
Constr {
|
Constr {
|
||||||
tag: 123,
|
tag: 123,
|
||||||
any_constructor: None,
|
any_constructor: None,
|
||||||
fields: Indef(
|
fields: [
|
||||||
[
|
|
||||||
Constr(
|
Constr(
|
||||||
Constr {
|
Constr {
|
||||||
tag: 121,
|
tag: 121,
|
||||||
any_constructor: None,
|
any_constructor: None,
|
||||||
fields: Def(
|
fields: [],
|
||||||
[],
|
|
||||||
),
|
|
||||||
},
|
},
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
),
|
|
||||||
},
|
},
|
||||||
),
|
),
|
||||||
Constr(
|
Constr(
|
||||||
Constr {
|
Constr {
|
||||||
tag: 121,
|
tag: 121,
|
||||||
any_constructor: None,
|
any_constructor: None,
|
||||||
fields: Indef(
|
fields: [
|
||||||
[
|
|
||||||
BoundedBytes(
|
BoundedBytes(
|
||||||
BoundedBytes(
|
BoundedBytes(
|
||||||
[
|
[
|
||||||
|
@ -301,46 +279,36 @@ Constr(
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
),
|
|
||||||
},
|
},
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
),
|
|
||||||
},
|
},
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
),
|
|
||||||
},
|
},
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
),
|
|
||||||
Array(
|
Array(
|
||||||
Def(
|
|
||||||
[],
|
[],
|
||||||
),
|
),
|
||||||
),
|
|
||||||
Array(
|
Array(
|
||||||
Indef(
|
|
||||||
[
|
[
|
||||||
Constr(
|
Constr(
|
||||||
Constr {
|
Constr {
|
||||||
tag: 121,
|
tag: 121,
|
||||||
any_constructor: None,
|
any_constructor: None,
|
||||||
fields: Indef(
|
fields: [
|
||||||
[
|
|
||||||
Constr(
|
Constr(
|
||||||
Constr {
|
Constr {
|
||||||
tag: 121,
|
tag: 121,
|
||||||
any_constructor: None,
|
any_constructor: None,
|
||||||
fields: Indef(
|
fields: [
|
||||||
[
|
|
||||||
Constr(
|
Constr(
|
||||||
Constr {
|
Constr {
|
||||||
tag: 121,
|
tag: 121,
|
||||||
any_constructor: None,
|
any_constructor: None,
|
||||||
fields: Indef(
|
fields: [
|
||||||
[
|
|
||||||
BoundedBytes(
|
BoundedBytes(
|
||||||
BoundedBytes(
|
BoundedBytes(
|
||||||
[
|
[
|
||||||
|
@ -376,27 +344,23 @@ Constr(
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
),
|
|
||||||
},
|
},
|
||||||
),
|
),
|
||||||
Constr(
|
Constr(
|
||||||
Constr {
|
Constr {
|
||||||
tag: 121,
|
tag: 121,
|
||||||
any_constructor: None,
|
any_constructor: None,
|
||||||
fields: Indef(
|
fields: [
|
||||||
[
|
|
||||||
Constr(
|
Constr(
|
||||||
Constr {
|
Constr {
|
||||||
tag: 121,
|
tag: 121,
|
||||||
any_constructor: None,
|
any_constructor: None,
|
||||||
fields: Indef(
|
fields: [
|
||||||
[
|
|
||||||
Constr(
|
Constr(
|
||||||
Constr {
|
Constr {
|
||||||
tag: 122,
|
tag: 122,
|
||||||
any_constructor: None,
|
any_constructor: None,
|
||||||
fields: Indef(
|
fields: [
|
||||||
[
|
|
||||||
BoundedBytes(
|
BoundedBytes(
|
||||||
BoundedBytes(
|
BoundedBytes(
|
||||||
[
|
[
|
||||||
|
@ -432,19 +396,15 @@ Constr(
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
),
|
|
||||||
},
|
},
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
),
|
|
||||||
},
|
},
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
),
|
|
||||||
},
|
},
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
),
|
|
||||||
},
|
},
|
||||||
),
|
),
|
||||||
Map(
|
Map(
|
||||||
|
@ -487,42 +447,34 @@ Constr(
|
||||||
Constr {
|
Constr {
|
||||||
tag: 121,
|
tag: 121,
|
||||||
any_constructor: None,
|
any_constructor: None,
|
||||||
fields: Def(
|
fields: [],
|
||||||
[],
|
|
||||||
),
|
|
||||||
},
|
},
|
||||||
),
|
),
|
||||||
Constr(
|
Constr(
|
||||||
Constr {
|
Constr {
|
||||||
tag: 122,
|
tag: 122,
|
||||||
any_constructor: None,
|
any_constructor: None,
|
||||||
fields: Def(
|
fields: [],
|
||||||
[],
|
|
||||||
),
|
|
||||||
},
|
},
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
),
|
|
||||||
},
|
},
|
||||||
),
|
),
|
||||||
Constr(
|
Constr(
|
||||||
Constr {
|
Constr {
|
||||||
tag: 121,
|
tag: 121,
|
||||||
any_constructor: None,
|
any_constructor: None,
|
||||||
fields: Indef(
|
fields: [
|
||||||
[
|
|
||||||
Constr(
|
Constr(
|
||||||
Constr {
|
Constr {
|
||||||
tag: 121,
|
tag: 121,
|
||||||
any_constructor: None,
|
any_constructor: None,
|
||||||
fields: Indef(
|
fields: [
|
||||||
[
|
|
||||||
Constr(
|
Constr(
|
||||||
Constr {
|
Constr {
|
||||||
tag: 121,
|
tag: 121,
|
||||||
any_constructor: None,
|
any_constructor: None,
|
||||||
fields: Indef(
|
fields: [
|
||||||
[
|
|
||||||
BoundedBytes(
|
BoundedBytes(
|
||||||
BoundedBytes(
|
BoundedBytes(
|
||||||
[
|
[
|
||||||
|
@ -558,21 +510,18 @@ Constr(
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
),
|
|
||||||
},
|
},
|
||||||
),
|
),
|
||||||
Constr(
|
Constr(
|
||||||
Constr {
|
Constr {
|
||||||
tag: 121,
|
tag: 121,
|
||||||
any_constructor: None,
|
any_constructor: None,
|
||||||
fields: Indef(
|
fields: [
|
||||||
[
|
|
||||||
Constr(
|
Constr(
|
||||||
Constr {
|
Constr {
|
||||||
tag: 122,
|
tag: 122,
|
||||||
any_constructor: None,
|
any_constructor: None,
|
||||||
fields: Indef(
|
fields: [
|
||||||
[
|
|
||||||
BigInt(
|
BigInt(
|
||||||
Int(
|
Int(
|
||||||
Int(
|
Int(
|
||||||
|
@ -604,15 +553,12 @@ Constr(
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
),
|
|
||||||
},
|
},
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
),
|
|
||||||
},
|
},
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
),
|
|
||||||
},
|
},
|
||||||
),
|
),
|
||||||
Map(
|
Map(
|
||||||
|
@ -655,42 +601,34 @@ Constr(
|
||||||
Constr {
|
Constr {
|
||||||
tag: 121,
|
tag: 121,
|
||||||
any_constructor: None,
|
any_constructor: None,
|
||||||
fields: Def(
|
fields: [],
|
||||||
[],
|
|
||||||
),
|
|
||||||
},
|
},
|
||||||
),
|
),
|
||||||
Constr(
|
Constr(
|
||||||
Constr {
|
Constr {
|
||||||
tag: 122,
|
tag: 122,
|
||||||
any_constructor: None,
|
any_constructor: None,
|
||||||
fields: Def(
|
fields: [],
|
||||||
[],
|
|
||||||
),
|
|
||||||
},
|
},
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
),
|
|
||||||
},
|
},
|
||||||
),
|
),
|
||||||
Constr(
|
Constr(
|
||||||
Constr {
|
Constr {
|
||||||
tag: 121,
|
tag: 121,
|
||||||
any_constructor: None,
|
any_constructor: None,
|
||||||
fields: Indef(
|
fields: [
|
||||||
[
|
|
||||||
Constr(
|
Constr(
|
||||||
Constr {
|
Constr {
|
||||||
tag: 121,
|
tag: 121,
|
||||||
any_constructor: None,
|
any_constructor: None,
|
||||||
fields: Indef(
|
fields: [
|
||||||
[
|
|
||||||
Constr(
|
Constr(
|
||||||
Constr {
|
Constr {
|
||||||
tag: 122,
|
tag: 122,
|
||||||
any_constructor: None,
|
any_constructor: None,
|
||||||
fields: Indef(
|
fields: [
|
||||||
[
|
|
||||||
BoundedBytes(
|
BoundedBytes(
|
||||||
BoundedBytes(
|
BoundedBytes(
|
||||||
[
|
[
|
||||||
|
@ -726,21 +664,18 @@ Constr(
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
),
|
|
||||||
},
|
},
|
||||||
),
|
),
|
||||||
Constr(
|
Constr(
|
||||||
Constr {
|
Constr {
|
||||||
tag: 121,
|
tag: 121,
|
||||||
any_constructor: None,
|
any_constructor: None,
|
||||||
fields: Indef(
|
fields: [
|
||||||
[
|
|
||||||
Constr(
|
Constr(
|
||||||
Constr {
|
Constr {
|
||||||
tag: 122,
|
tag: 122,
|
||||||
any_constructor: None,
|
any_constructor: None,
|
||||||
fields: Indef(
|
fields: [
|
||||||
[
|
|
||||||
BigInt(
|
BigInt(
|
||||||
Int(
|
Int(
|
||||||
Int(
|
Int(
|
||||||
|
@ -772,15 +707,12 @@ Constr(
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
),
|
|
||||||
},
|
},
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
),
|
|
||||||
},
|
},
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
),
|
|
||||||
},
|
},
|
||||||
),
|
),
|
||||||
Map(
|
Map(
|
||||||
|
@ -823,27 +755,21 @@ Constr(
|
||||||
Constr {
|
Constr {
|
||||||
tag: 121,
|
tag: 121,
|
||||||
any_constructor: None,
|
any_constructor: None,
|
||||||
fields: Def(
|
fields: [],
|
||||||
[],
|
|
||||||
),
|
|
||||||
},
|
},
|
||||||
),
|
),
|
||||||
Constr(
|
Constr(
|
||||||
Constr {
|
Constr {
|
||||||
tag: 122,
|
tag: 122,
|
||||||
any_constructor: None,
|
any_constructor: None,
|
||||||
fields: Def(
|
fields: [],
|
||||||
[],
|
|
||||||
),
|
|
||||||
},
|
},
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
),
|
|
||||||
},
|
},
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
),
|
|
||||||
BigInt(
|
BigInt(
|
||||||
Int(
|
Int(
|
||||||
Int(
|
Int(
|
||||||
|
@ -860,10 +786,8 @@ Constr(
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
Array(
|
Array(
|
||||||
Def(
|
|
||||||
[],
|
[],
|
||||||
),
|
),
|
||||||
),
|
|
||||||
Map(
|
Map(
|
||||||
Def(
|
Def(
|
||||||
[
|
[
|
||||||
|
@ -872,8 +796,7 @@ Constr(
|
||||||
Constr {
|
Constr {
|
||||||
tag: 122,
|
tag: 122,
|
||||||
any_constructor: None,
|
any_constructor: None,
|
||||||
fields: Indef(
|
fields: [
|
||||||
[
|
|
||||||
BoundedBytes(
|
BoundedBytes(
|
||||||
BoundedBytes(
|
BoundedBytes(
|
||||||
[
|
[
|
||||||
|
@ -909,7 +832,6 @@ Constr(
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
),
|
|
||||||
},
|
},
|
||||||
),
|
),
|
||||||
BigInt(
|
BigInt(
|
||||||
|
@ -930,48 +852,39 @@ Constr(
|
||||||
Constr {
|
Constr {
|
||||||
tag: 121,
|
tag: 121,
|
||||||
any_constructor: None,
|
any_constructor: None,
|
||||||
fields: Indef(
|
fields: [
|
||||||
[
|
|
||||||
Constr(
|
Constr(
|
||||||
Constr {
|
Constr {
|
||||||
tag: 121,
|
tag: 121,
|
||||||
any_constructor: None,
|
any_constructor: None,
|
||||||
fields: Indef(
|
fields: [
|
||||||
[
|
|
||||||
Constr(
|
Constr(
|
||||||
Constr {
|
Constr {
|
||||||
tag: 121,
|
tag: 121,
|
||||||
any_constructor: None,
|
any_constructor: None,
|
||||||
fields: Def(
|
fields: [],
|
||||||
[],
|
|
||||||
),
|
|
||||||
},
|
},
|
||||||
),
|
),
|
||||||
Constr(
|
Constr(
|
||||||
Constr {
|
Constr {
|
||||||
tag: 122,
|
tag: 122,
|
||||||
any_constructor: None,
|
any_constructor: None,
|
||||||
fields: Def(
|
fields: [],
|
||||||
[],
|
|
||||||
),
|
|
||||||
},
|
},
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
),
|
|
||||||
},
|
},
|
||||||
),
|
),
|
||||||
Constr(
|
Constr(
|
||||||
Constr {
|
Constr {
|
||||||
tag: 121,
|
tag: 121,
|
||||||
any_constructor: None,
|
any_constructor: None,
|
||||||
fields: Indef(
|
fields: [
|
||||||
[
|
|
||||||
Constr(
|
Constr(
|
||||||
Constr {
|
Constr {
|
||||||
tag: 122,
|
tag: 122,
|
||||||
any_constructor: None,
|
any_constructor: None,
|
||||||
fields: Indef(
|
fields: [
|
||||||
[
|
|
||||||
BigInt(
|
BigInt(
|
||||||
Int(
|
Int(
|
||||||
Int(
|
Int(
|
||||||
|
@ -983,28 +896,22 @@ Constr(
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
),
|
|
||||||
},
|
},
|
||||||
),
|
),
|
||||||
Constr(
|
Constr(
|
||||||
Constr {
|
Constr {
|
||||||
tag: 121,
|
tag: 121,
|
||||||
any_constructor: None,
|
any_constructor: None,
|
||||||
fields: Def(
|
fields: [],
|
||||||
[],
|
|
||||||
),
|
|
||||||
},
|
},
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
),
|
|
||||||
},
|
},
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
),
|
|
||||||
},
|
},
|
||||||
),
|
),
|
||||||
Array(
|
Array(
|
||||||
Indef(
|
|
||||||
[
|
[
|
||||||
BoundedBytes(
|
BoundedBytes(
|
||||||
BoundedBytes(
|
BoundedBytes(
|
||||||
|
@ -1042,7 +949,6 @@ Constr(
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
),
|
|
||||||
Map(
|
Map(
|
||||||
Def(
|
Def(
|
||||||
[
|
[
|
||||||
|
@ -1051,14 +957,12 @@ Constr(
|
||||||
Constr {
|
Constr {
|
||||||
tag: 122,
|
tag: 122,
|
||||||
any_constructor: None,
|
any_constructor: None,
|
||||||
fields: Indef(
|
fields: [
|
||||||
[
|
|
||||||
Constr(
|
Constr(
|
||||||
Constr {
|
Constr {
|
||||||
tag: 121,
|
tag: 121,
|
||||||
any_constructor: None,
|
any_constructor: None,
|
||||||
fields: Indef(
|
fields: [
|
||||||
[
|
|
||||||
BoundedBytes(
|
BoundedBytes(
|
||||||
BoundedBytes(
|
BoundedBytes(
|
||||||
[
|
[
|
||||||
|
@ -1108,30 +1012,24 @@ Constr(
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
),
|
|
||||||
},
|
},
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
),
|
|
||||||
},
|
},
|
||||||
),
|
),
|
||||||
Constr(
|
Constr(
|
||||||
Constr {
|
Constr {
|
||||||
tag: 122,
|
tag: 122,
|
||||||
any_constructor: None,
|
any_constructor: None,
|
||||||
fields: Def(
|
fields: [
|
||||||
[
|
|
||||||
Constr(
|
Constr(
|
||||||
Constr {
|
Constr {
|
||||||
tag: 121,
|
tag: 121,
|
||||||
any_constructor: None,
|
any_constructor: None,
|
||||||
fields: Def(
|
fields: [],
|
||||||
[],
|
|
||||||
),
|
|
||||||
},
|
},
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
),
|
|
||||||
},
|
},
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
|
@ -1140,14 +1038,12 @@ Constr(
|
||||||
Constr {
|
Constr {
|
||||||
tag: 123,
|
tag: 123,
|
||||||
any_constructor: None,
|
any_constructor: None,
|
||||||
fields: Indef(
|
fields: [
|
||||||
[
|
|
||||||
Constr(
|
Constr(
|
||||||
Constr {
|
Constr {
|
||||||
tag: 122,
|
tag: 122,
|
||||||
any_constructor: None,
|
any_constructor: None,
|
||||||
fields: Indef(
|
fields: [
|
||||||
[
|
|
||||||
BoundedBytes(
|
BoundedBytes(
|
||||||
BoundedBytes(
|
BoundedBytes(
|
||||||
[
|
[
|
||||||
|
@ -1183,20 +1079,16 @@ Constr(
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
),
|
|
||||||
},
|
},
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
),
|
|
||||||
},
|
},
|
||||||
),
|
),
|
||||||
Constr(
|
Constr(
|
||||||
Constr {
|
Constr {
|
||||||
tag: 121,
|
tag: 121,
|
||||||
any_constructor: None,
|
any_constructor: None,
|
||||||
fields: Def(
|
fields: [],
|
||||||
[],
|
|
||||||
),
|
|
||||||
},
|
},
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
|
@ -1252,25 +1144,20 @@ Constr(
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
Array(
|
Array(
|
||||||
Def(
|
|
||||||
[],
|
[],
|
||||||
),
|
),
|
||||||
),
|
|
||||||
Constr(
|
Constr(
|
||||||
Constr {
|
Constr {
|
||||||
tag: 122,
|
tag: 122,
|
||||||
any_constructor: None,
|
any_constructor: None,
|
||||||
fields: Def(
|
fields: [],
|
||||||
[],
|
|
||||||
),
|
|
||||||
},
|
},
|
||||||
),
|
),
|
||||||
Constr(
|
Constr(
|
||||||
Constr {
|
Constr {
|
||||||
tag: 121,
|
tag: 121,
|
||||||
any_constructor: None,
|
any_constructor: None,
|
||||||
fields: Indef(
|
fields: [
|
||||||
[
|
|
||||||
BigInt(
|
BigInt(
|
||||||
Int(
|
Int(
|
||||||
Int(
|
Int(
|
||||||
|
@ -1282,34 +1169,28 @@ Constr(
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
),
|
|
||||||
},
|
},
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
),
|
|
||||||
},
|
},
|
||||||
),
|
),
|
||||||
Constr(
|
Constr(
|
||||||
Constr {
|
Constr {
|
||||||
tag: 121,
|
tag: 121,
|
||||||
any_constructor: None,
|
any_constructor: None,
|
||||||
fields: Def(
|
fields: [],
|
||||||
[],
|
|
||||||
),
|
|
||||||
},
|
},
|
||||||
),
|
),
|
||||||
Constr(
|
Constr(
|
||||||
Constr {
|
Constr {
|
||||||
tag: 123,
|
tag: 123,
|
||||||
any_constructor: None,
|
any_constructor: None,
|
||||||
fields: Indef(
|
fields: [
|
||||||
[
|
|
||||||
Constr(
|
Constr(
|
||||||
Constr {
|
Constr {
|
||||||
tag: 122,
|
tag: 122,
|
||||||
any_constructor: None,
|
any_constructor: None,
|
||||||
fields: Indef(
|
fields: [
|
||||||
[
|
|
||||||
BoundedBytes(
|
BoundedBytes(
|
||||||
BoundedBytes(
|
BoundedBytes(
|
||||||
[
|
[
|
||||||
|
@ -1345,14 +1226,11 @@ Constr(
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
),
|
|
||||||
},
|
},
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
),
|
|
||||||
},
|
},
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
),
|
|
||||||
},
|
},
|
||||||
)
|
)
|
||||||
|
|
|
@ -2,7 +2,7 @@ use super::{eval_phase_two, ResolvedInput, SlotConfig};
|
||||||
use crate::machine::cost_model::ExBudget;
|
use crate::machine::cost_model::ExBudget;
|
||||||
use pallas_codec::utils::MaybeIndefArray;
|
use pallas_codec::utils::MaybeIndefArray;
|
||||||
use pallas_primitives::{
|
use pallas_primitives::{
|
||||||
conway::{CostModels, TransactionInput, TransactionOutput},
|
conway::{CostMdls, TransactionInput, TransactionOutput},
|
||||||
Fragment,
|
Fragment,
|
||||||
};
|
};
|
||||||
use pallas_traverse::{Era, MultiEraTx};
|
use pallas_traverse::{Era, MultiEraTx};
|
||||||
|
@ -222,7 +222,7 @@ fn test_eval_0() {
|
||||||
20000000000,
|
20000000000,
|
||||||
];
|
];
|
||||||
|
|
||||||
let cost_mdl = CostModels {
|
let cost_mdl = CostMdls {
|
||||||
plutus_v1: None,
|
plutus_v1: None,
|
||||||
plutus_v2: Some(costs),
|
plutus_v2: Some(costs),
|
||||||
plutus_v3: None,
|
plutus_v3: None,
|
||||||
|
@ -494,7 +494,7 @@ fn test_eval_1() {
|
||||||
20000000000,
|
20000000000,
|
||||||
];
|
];
|
||||||
|
|
||||||
let cost_mdl = CostModels {
|
let cost_mdl = CostMdls {
|
||||||
plutus_v1: None,
|
plutus_v1: None,
|
||||||
plutus_v2: Some(costs),
|
plutus_v2: Some(costs),
|
||||||
plutus_v3: None,
|
plutus_v3: None,
|
||||||
|
@ -606,7 +606,7 @@ fn test_eval_2() {
|
||||||
31220, 32, 32696, 32, 43357, 32, 32247, 32, 38314, 32, 9462713, 1021, 10,
|
31220, 32, 32696, 32, 43357, 32, 32247, 32, 38314, 32, 9462713, 1021, 10,
|
||||||
];
|
];
|
||||||
|
|
||||||
let cost_mdl = CostModels {
|
let cost_mdl = CostMdls {
|
||||||
plutus_v1: Some(costs),
|
plutus_v1: Some(costs),
|
||||||
plutus_v2: None,
|
plutus_v2: None,
|
||||||
plutus_v3: None,
|
plutus_v3: None,
|
||||||
|
@ -876,7 +876,7 @@ fn test_eval_3() {
|
||||||
20000000000,
|
20000000000,
|
||||||
];
|
];
|
||||||
|
|
||||||
let cost_mdl = CostModels {
|
let cost_mdl = CostMdls {
|
||||||
plutus_v1: None,
|
plutus_v1: None,
|
||||||
plutus_v2: Some(costs),
|
plutus_v2: Some(costs),
|
||||||
plutus_v3: None,
|
plutus_v3: None,
|
||||||
|
@ -984,7 +984,7 @@ fn test_eval_4() {
|
||||||
31220, 32, 32696, 32, 43357, 32, 32247, 32, 38314, 32, 9462713, 1021, 10,
|
31220, 32, 32696, 32, 43357, 32, 32247, 32, 38314, 32, 9462713, 1021, 10,
|
||||||
];
|
];
|
||||||
|
|
||||||
let cost_mdl = CostModels {
|
let cost_mdl = CostMdls {
|
||||||
plutus_v1: Some(costs),
|
plutus_v1: Some(costs),
|
||||||
plutus_v2: None,
|
plutus_v2: None,
|
||||||
plutus_v3: None,
|
plutus_v3: None,
|
||||||
|
@ -1069,7 +1069,7 @@ fn test_eval_5() {
|
||||||
31220, 32, 32696, 32, 43357, 32, 32247, 32, 38314, 32, 9462713, 1021, 10,
|
31220, 32, 32696, 32, 43357, 32, 32247, 32, 38314, 32, 9462713, 1021, 10,
|
||||||
];
|
];
|
||||||
|
|
||||||
let cost_mdl = CostModels {
|
let cost_mdl = CostMdls {
|
||||||
plutus_v1: Some(costs),
|
plutus_v1: Some(costs),
|
||||||
plutus_v2: None,
|
plutus_v2: None,
|
||||||
plutus_v3: None,
|
plutus_v3: None,
|
||||||
|
@ -1179,7 +1179,7 @@ fn test_eval_6() {
|
||||||
3345831, 1, 1,
|
3345831, 1, 1,
|
||||||
];
|
];
|
||||||
|
|
||||||
let cost_mdl = CostModels {
|
let cost_mdl = CostMdls {
|
||||||
plutus_v1: Some(costs),
|
plutus_v1: Some(costs),
|
||||||
plutus_v2: None,
|
plutus_v2: None,
|
||||||
plutus_v3: None,
|
plutus_v3: None,
|
||||||
|
@ -1289,7 +1289,7 @@ fn test_eval_7() {
|
||||||
3345831, 1, 1,
|
3345831, 1, 1,
|
||||||
];
|
];
|
||||||
|
|
||||||
let cost_mdl = CostModels {
|
let cost_mdl = CostMdls {
|
||||||
plutus_v1: Some(costs),
|
plutus_v1: Some(costs),
|
||||||
plutus_v2: None,
|
plutus_v2: None,
|
||||||
plutus_v3: None,
|
plutus_v3: None,
|
||||||
|
@ -1550,7 +1550,7 @@ fn test_eval_8() {
|
||||||
20000000000,
|
20000000000,
|
||||||
];
|
];
|
||||||
|
|
||||||
let cost_mdl = CostModels {
|
let cost_mdl = CostMdls {
|
||||||
plutus_v1: None,
|
plutus_v1: None,
|
||||||
plutus_v2: Some(costs),
|
plutus_v2: Some(costs),
|
||||||
plutus_v3: None,
|
plutus_v3: None,
|
||||||
|
@ -1656,7 +1656,7 @@ fn eval_missing_redeemer() {
|
||||||
31220, 32, 32696, 32, 43357, 32, 32247, 32, 38314, 32, 9462713, 1021, 10,
|
31220, 32, 32696, 32, 43357, 32, 32247, 32, 38314, 32, 9462713, 1021, 10,
|
||||||
];
|
];
|
||||||
|
|
||||||
let cost_mdl = CostModels {
|
let cost_mdl = CostMdls {
|
||||||
plutus_v1: Some(costs),
|
plutus_v1: Some(costs),
|
||||||
plutus_v2: None,
|
plutus_v2: None,
|
||||||
plutus_v3: None,
|
plutus_v3: None,
|
||||||
|
@ -1739,7 +1739,7 @@ fn eval_extraneous_redeemer() {
|
||||||
31220, 32, 32696, 32, 43357, 32, 32247, 32, 38314, 32, 9462713, 1021, 10,
|
31220, 32, 32696, 32, 43357, 32, 32247, 32, 38314, 32, 9462713, 1021, 10,
|
||||||
];
|
];
|
||||||
|
|
||||||
let cost_mdl = CostModels {
|
let cost_mdl = CostMdls {
|
||||||
plutus_v1: Some(costs),
|
plutus_v1: Some(costs),
|
||||||
plutus_v2: None,
|
plutus_v2: None,
|
||||||
plutus_v3: None,
|
plutus_v3: None,
|
||||||
|
|
|
@ -11,8 +11,7 @@ use pallas_addresses::{
|
||||||
Address, ShelleyDelegationPart, ShelleyPaymentPart, StakeAddress, StakePayload,
|
Address, ShelleyDelegationPart, ShelleyPaymentPart, StakeAddress, StakePayload,
|
||||||
};
|
};
|
||||||
use pallas_codec::utils::{
|
use pallas_codec::utils::{
|
||||||
AnyUInt, Bytes, Int, KeyValuePairs, MaybeIndefArray, NonEmptyKeyValuePairs, Nullable,
|
AnyUInt, Bytes, Int, KeyValuePairs, NonEmptyKeyValuePairs, Nullable, PositiveCoin,
|
||||||
PositiveCoin,
|
|
||||||
};
|
};
|
||||||
use pallas_crypto::hash::Hash;
|
use pallas_crypto::hash::Hash;
|
||||||
use pallas_primitives::conway::{
|
use pallas_primitives::conway::{
|
||||||
|
@ -29,11 +28,7 @@ fn wrap_multiple_with_constr(index: u64, data: Vec<PlutusData>) -> PlutusData {
|
||||||
PlutusData::Constr(Constr {
|
PlutusData::Constr(Constr {
|
||||||
tag: converted.unwrap_or(ANY_TAG),
|
tag: converted.unwrap_or(ANY_TAG),
|
||||||
any_constructor: converted.map_or(Some(index), |_| None),
|
any_constructor: converted.map_or(Some(index), |_| None),
|
||||||
fields: if data.is_empty() {
|
fields: data,
|
||||||
MaybeIndefArray::Def(data)
|
|
||||||
} else {
|
|
||||||
MaybeIndefArray::Indef(data)
|
|
||||||
},
|
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -109,7 +104,7 @@ impl ToPlutusData for Address {
|
||||||
.to_plutus_data(),
|
.to_plutus_data(),
|
||||||
ShelleyDelegationPart::Script(script_hash) => Some(wrap_with_constr(
|
ShelleyDelegationPart::Script(script_hash) => Some(wrap_with_constr(
|
||||||
0,
|
0,
|
||||||
StakeCredential::ScriptHash(*script_hash).to_plutus_data(),
|
StakeCredential::Scripthash(*script_hash).to_plutus_data(),
|
||||||
))
|
))
|
||||||
.to_plutus_data(),
|
.to_plutus_data(),
|
||||||
ShelleyDelegationPart::Pointer(pointer) => Some(wrap_multiple_with_constr(
|
ShelleyDelegationPart::Pointer(pointer) => Some(wrap_multiple_with_constr(
|
||||||
|
@ -179,7 +174,7 @@ where
|
||||||
A: ToPlutusData,
|
A: ToPlutusData,
|
||||||
{
|
{
|
||||||
fn to_plutus_data(&self) -> PlutusData {
|
fn to_plutus_data(&self) -> PlutusData {
|
||||||
Data::list(self.iter().map(|p| p.to_plutus_data()).collect())
|
PlutusData::Array(self.iter().map(|p| p.to_plutus_data()).collect())
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -419,7 +414,7 @@ impl ToPlutusData for ScriptRef {
|
||||||
|
|
||||||
impl<'a> ToPlutusData for WithOptionDatum<'a, WithZeroAdaAsset<'a, Vec<TransactionOutput>>> {
|
impl<'a> ToPlutusData for WithOptionDatum<'a, WithZeroAdaAsset<'a, Vec<TransactionOutput>>> {
|
||||||
fn to_plutus_data(&self) -> PlutusData {
|
fn to_plutus_data(&self) -> PlutusData {
|
||||||
Data::list(
|
PlutusData::Array(
|
||||||
self.0
|
self.0
|
||||||
.0
|
.0
|
||||||
.iter()
|
.iter()
|
||||||
|
@ -431,7 +426,7 @@ impl<'a> ToPlutusData for WithOptionDatum<'a, WithZeroAdaAsset<'a, Vec<Transacti
|
||||||
|
|
||||||
impl<'a> ToPlutusData for WithZeroAdaAsset<'a, Vec<TransactionOutput>> {
|
impl<'a> ToPlutusData for WithZeroAdaAsset<'a, Vec<TransactionOutput>> {
|
||||||
fn to_plutus_data(&self) -> PlutusData {
|
fn to_plutus_data(&self) -> PlutusData {
|
||||||
Data::list(
|
PlutusData::Array(
|
||||||
self.0
|
self.0
|
||||||
.iter()
|
.iter()
|
||||||
.map(|p| WithZeroAdaAsset(p).to_plutus_data())
|
.map(|p| WithZeroAdaAsset(p).to_plutus_data())
|
||||||
|
@ -521,7 +516,7 @@ impl ToPlutusData for StakeCredential {
|
||||||
StakeCredential::AddrKeyhash(addr_keyhas) => {
|
StakeCredential::AddrKeyhash(addr_keyhas) => {
|
||||||
wrap_with_constr(0, addr_keyhas.to_plutus_data())
|
wrap_with_constr(0, addr_keyhas.to_plutus_data())
|
||||||
}
|
}
|
||||||
StakeCredential::ScriptHash(script_hash) => {
|
StakeCredential::Scripthash(script_hash) => {
|
||||||
wrap_with_constr(1, script_hash.to_plutus_data())
|
wrap_with_constr(1, script_hash.to_plutus_data())
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -746,7 +741,7 @@ impl ToPlutusData for DRep {
|
||||||
wrap_with_constr(0, StakeCredential::AddrKeyhash(*hash).to_plutus_data())
|
wrap_with_constr(0, StakeCredential::AddrKeyhash(*hash).to_plutus_data())
|
||||||
}
|
}
|
||||||
DRep::Script(hash) => {
|
DRep::Script(hash) => {
|
||||||
wrap_with_constr(0, StakeCredential::ScriptHash(*hash).to_plutus_data())
|
wrap_with_constr(0, StakeCredential::Scripthash(*hash).to_plutus_data())
|
||||||
}
|
}
|
||||||
DRep::Abstain => empty_constr(1),
|
DRep::Abstain => empty_constr(1),
|
||||||
DRep::NoConfidence => empty_constr(2),
|
DRep::NoConfidence => empty_constr(2),
|
||||||
|
@ -803,7 +798,7 @@ impl<'a> ToPlutusData
|
||||||
for WithOptionDatum<'a, WithZeroAdaAsset<'a, WithWrappedTransactionId<'a, Vec<TxInInfo>>>>
|
for WithOptionDatum<'a, WithZeroAdaAsset<'a, WithWrappedTransactionId<'a, Vec<TxInInfo>>>>
|
||||||
{
|
{
|
||||||
fn to_plutus_data(&self) -> PlutusData {
|
fn to_plutus_data(&self) -> PlutusData {
|
||||||
Data::list(
|
PlutusData::Array(
|
||||||
self.0
|
self.0
|
||||||
.0
|
.0
|
||||||
.0
|
.0
|
||||||
|
@ -819,7 +814,7 @@ impl<'a> ToPlutusData
|
||||||
|
|
||||||
impl<'a> ToPlutusData for WithZeroAdaAsset<'a, WithWrappedTransactionId<'a, Vec<TxInInfo>>> {
|
impl<'a> ToPlutusData for WithZeroAdaAsset<'a, WithWrappedTransactionId<'a, Vec<TxInInfo>>> {
|
||||||
fn to_plutus_data(&self) -> PlutusData {
|
fn to_plutus_data(&self) -> PlutusData {
|
||||||
Data::list(
|
PlutusData::Array(
|
||||||
self.0
|
self.0
|
||||||
.0
|
.0
|
||||||
.iter()
|
.iter()
|
||||||
|
@ -1259,13 +1254,13 @@ impl ToPlutusData for Voter {
|
||||||
fn to_plutus_data(&self) -> PlutusData {
|
fn to_plutus_data(&self) -> PlutusData {
|
||||||
match self {
|
match self {
|
||||||
Voter::ConstitutionalCommitteeScript(hash) => {
|
Voter::ConstitutionalCommitteeScript(hash) => {
|
||||||
wrap_with_constr(0, StakeCredential::ScriptHash(*hash).to_plutus_data())
|
wrap_with_constr(0, StakeCredential::Scripthash(*hash).to_plutus_data())
|
||||||
}
|
}
|
||||||
Voter::ConstitutionalCommitteeKey(hash) => {
|
Voter::ConstitutionalCommitteeKey(hash) => {
|
||||||
wrap_with_constr(0, StakeCredential::AddrKeyhash(*hash).to_plutus_data())
|
wrap_with_constr(0, StakeCredential::AddrKeyhash(*hash).to_plutus_data())
|
||||||
}
|
}
|
||||||
Voter::DRepScript(hash) => {
|
Voter::DRepScript(hash) => {
|
||||||
wrap_with_constr(1, StakeCredential::ScriptHash(*hash).to_plutus_data())
|
wrap_with_constr(1, StakeCredential::Scripthash(*hash).to_plutus_data())
|
||||||
}
|
}
|
||||||
Voter::DRepKey(hash) => {
|
Voter::DRepKey(hash) => {
|
||||||
wrap_with_constr(1, StakeCredential::AddrKeyhash(*hash).to_plutus_data())
|
wrap_with_constr(1, StakeCredential::AddrKeyhash(*hash).to_plutus_data())
|
||||||
|
|
|
@ -1,5 +1,4 @@
|
||||||
use num_bigint::ToBigInt;
|
use num_bigint::ToBigInt;
|
||||||
use pallas_codec::utils::MaybeIndefArray;
|
|
||||||
use uplc::{
|
use uplc::{
|
||||||
ast::{Constant, Name, Term, Type},
|
ast::{Constant, Name, Term, Type},
|
||||||
parser::term,
|
parser::term,
|
||||||
|
@ -112,9 +111,9 @@ fn constant_data_constr() {
|
||||||
Constant::Data(PlutusData::Constr(Constr::<PlutusData> {
|
Constant::Data(PlutusData::Constr(Constr::<PlutusData> {
|
||||||
tag: 122,
|
tag: 122,
|
||||||
any_constructor: None,
|
any_constructor: None,
|
||||||
fields: MaybeIndefArray::Indef(vec![PlutusData::BigInt(
|
fields: vec![PlutusData::BigInt(pallas_primitives::alonzo::BigInt::Int(
|
||||||
pallas_primitives::alonzo::BigInt::Int(2.into()),
|
2.into(),
|
||||||
)]),
|
))],
|
||||||
}))
|
}))
|
||||||
.into(),
|
.into(),
|
||||||
),
|
),
|
||||||
|
@ -146,10 +145,10 @@ fn constant_data_map() {
|
||||||
fn constant_data_list() {
|
fn constant_data_list() {
|
||||||
round_trip(
|
round_trip(
|
||||||
Term::<Name>::Constant(
|
Term::<Name>::Constant(
|
||||||
Constant::Data(PlutusData::Array(MaybeIndefArray::Indef(vec![
|
Constant::Data(PlutusData::Array(vec![
|
||||||
PlutusData::BigInt(pallas_primitives::alonzo::BigInt::Int(0.into())),
|
PlutusData::BigInt(pallas_primitives::alonzo::BigInt::Int(0.into())),
|
||||||
PlutusData::BigInt(pallas_primitives::alonzo::BigInt::Int(1.into())),
|
PlutusData::BigInt(pallas_primitives::alonzo::BigInt::Int(1.into())),
|
||||||
])))
|
]))
|
||||||
.into(),
|
.into(),
|
||||||
),
|
),
|
||||||
"(con data (List [I 0, I 1]))",
|
"(con data (List [I 0, I 1]))",
|
||||||
|
|
|
@ -1,2 +0,0 @@
|
||||||
name = "aiken-lang/acceptance_test_006"
|
|
||||||
version = "0.0.0"
|
|
|
@ -1,20 +0,0 @@
|
||||||
test baz() {
|
|
||||||
let assets =
|
|
||||||
[
|
|
||||||
("PolicyId1", [("AssetName", 20)]),
|
|
||||||
("PolicyId2", [("AssetName1", 300), ("AssetName2", 4_000)]),
|
|
||||||
("PolicyId3", []),
|
|
||||||
]
|
|
||||||
let is_empty_or_contains_policyid2 =
|
|
||||||
when assets is {
|
|
||||||
[] -> True
|
|
||||||
[_head, (p, [_, (a, q), ..] as tokens), ..] -> and {
|
|
||||||
tokens == [("AssetName1", 300), ("AssetName2", 4000)],
|
|
||||||
p == "PolicyId2",
|
|
||||||
a == "AssetName2",
|
|
||||||
q >= 4_000,
|
|
||||||
}
|
|
||||||
_ -> False
|
|
||||||
}
|
|
||||||
is_empty_or_contains_policyid2
|
|
||||||
}
|
|
|
@ -5,11 +5,11 @@
|
||||||
"systems": "systems"
|
"systems": "systems"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1731533236,
|
"lastModified": 1689068808,
|
||||||
"narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=",
|
"narHash": "sha256-6ixXo3wt24N/melDWjq70UuHQLxGV8jZvooRanIHXw0=",
|
||||||
"owner": "numtide",
|
"owner": "numtide",
|
||||||
"repo": "flake-utils",
|
"repo": "flake-utils",
|
||||||
"rev": "11707dc2f618dd54ca8739b309ec4fc024de578b",
|
"rev": "919d646de7be200f3bf08cb76ae1f09402b6f9b4",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -20,11 +20,11 @@
|
||||||
},
|
},
|
||||||
"nixpkgs": {
|
"nixpkgs": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1731676054,
|
"lastModified": 1725103162,
|
||||||
"narHash": "sha256-OZiZ3m8SCMfh3B6bfGC/Bm4x3qc1m2SVEAlkV6iY7Yg=",
|
"narHash": "sha256-Ym04C5+qovuQDYL/rKWSR+WESseQBbNAe5DsXNx5trY=",
|
||||||
"owner": "nixos",
|
"owner": "nixos",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "5e4fbfb6b3de1aa2872b76d49fafc942626e2add",
|
"rev": "12228ff1752d7b7624a54e9c1af4b222b3c1073b",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -36,11 +36,11 @@
|
||||||
},
|
},
|
||||||
"nixpkgs_2": {
|
"nixpkgs_2": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1728538411,
|
"lastModified": 1718428119,
|
||||||
"narHash": "sha256-f0SBJz1eZ2yOuKUr5CA9BHULGXVSn6miBuUWdTyhUhU=",
|
"narHash": "sha256-WdWDpNaq6u1IPtxtYHHWpl5BmabtpmLnMAx0RdJ/vo8=",
|
||||||
"owner": "NixOS",
|
"owner": "NixOS",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "b69de56fac8c2b6f8fd27f2eca01dcda8e0a4221",
|
"rev": "e6cea36f83499eb4e9cd184c8a8e823296b50ad5",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -62,11 +62,11 @@
|
||||||
"nixpkgs": "nixpkgs_2"
|
"nixpkgs": "nixpkgs_2"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1732069891,
|
"lastModified": 1725330199,
|
||||||
"narHash": "sha256-moKx8AVJrViCSdA0e0nSsG8b1dAsObI4sRAtbqbvBY8=",
|
"narHash": "sha256-oUkdPJIxP3r3YyVOBLkDVLIJiQV9YlrVqA+jNcdpCvM=",
|
||||||
"owner": "oxalica",
|
"owner": "oxalica",
|
||||||
"repo": "rust-overlay",
|
"repo": "rust-overlay",
|
||||||
"rev": "8509a51241c407d583b1963d5079585a992506e8",
|
"rev": "a562172c72d00350f9f2ff830e6515b6e7bee6d5",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
|
Loading…
Reference in New Issue