mirror of
https://github.com/fluencelabs/aquavm
synced 2025-06-22 19:21:33 +00:00
feat!: update marine-rs-sdk to 0.14.0, remove all of json_path remains (#820)
* support call_parameters v2 * remove old comment * use released marine * fix test wasm * update sdk marine use lens * fix test module * WIP fixing the tests to use lens * WIP tetraplet field renaming test fixes * rename more lambda to lens * fix build * Fix gen-bench-data compilation * Update gen-bench-data Cargo.lock * Fix signature tests --------- Co-authored-by: drrtuy <roman@fluence.one> Co-authored-by: Ivan Boldyrev <ivan@fluence.one>
This commit is contained in:
183
Cargo.lock
generated
183
Cargo.lock
generated
@ -199,7 +199,7 @@ dependencies = [
|
||||
"air-interpreter-sede",
|
||||
"air-interpreter-value",
|
||||
"fluence-it-types",
|
||||
"marine-call-parameters",
|
||||
"marine-call-parameters 0.14.0",
|
||||
"marine-rs-sdk",
|
||||
"serde",
|
||||
"serde_bytes",
|
||||
@ -483,6 +483,7 @@ dependencies = [
|
||||
"atty",
|
||||
"avm-data-store",
|
||||
"avm-interface",
|
||||
"avm-server",
|
||||
"bs58 0.5.0",
|
||||
"clap 4.4.11",
|
||||
"eyre",
|
||||
@ -2427,9 +2428,9 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "fluence-app-service"
|
||||
version = "0.31.1"
|
||||
version = "0.34.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "b01d8308282e3ab2e46e722d3004fbf9ac4f345a9de4e2a2d1afdc74fda64a8b"
|
||||
checksum = "7e95950035a16589b5ed736ee920839e475b864965b4e4061e2bc1faaf58f1f2"
|
||||
dependencies = [
|
||||
"log",
|
||||
"maplit",
|
||||
@ -3412,17 +3413,50 @@ version = "0.10.3"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "ef9a7c6ed5fa9052474c1cd76d3b3e67dbc4c455c76263c2c043214e12cce6bd"
|
||||
dependencies = [
|
||||
"marine-macro",
|
||||
"marine-rs-sdk-main",
|
||||
"marine-macro 0.10.3",
|
||||
"marine-rs-sdk-main 0.10.3",
|
||||
"serde",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "marine-call-parameters"
|
||||
version = "0.12.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "f47b1186bad0b2a5e9218e3f6fbe0612ef6b17c58c58537d77bd08044596ea95"
|
||||
dependencies = [
|
||||
"marine-macro 0.12.0",
|
||||
"marine-rs-sdk-main 0.12.0",
|
||||
"serde",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "marine-call-parameters"
|
||||
version = "0.13.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "8d16852b36a3cfc8fa044955380901e78109db0035dc93eea4f666d8f3979072"
|
||||
dependencies = [
|
||||
"marine-macro 0.13.0",
|
||||
"marine-rs-sdk-main 0.13.0",
|
||||
"serde",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "marine-call-parameters"
|
||||
version = "0.14.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "05495180730abae04abe209386ce367309a82110edb65fcdb1f3080f819bc1a0"
|
||||
dependencies = [
|
||||
"marine-macro 0.14.0",
|
||||
"marine-rs-sdk-main 0.14.0",
|
||||
"rkyv",
|
||||
"serde",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "marine-core"
|
||||
version = "0.26.1"
|
||||
version = "0.29.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "6e0e21dd5918c69eefcc06acea338bf444f9137fca6e193b52bfd8e0f069ab4d"
|
||||
checksum = "81f40fac4650a022a2ce8d7b6df5614062fc32cb25fb44e61027997e90a3aff6"
|
||||
dependencies = [
|
||||
"anyhow",
|
||||
"bytesize",
|
||||
@ -3449,13 +3483,13 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "marine-it-generator"
|
||||
version = "0.13.1"
|
||||
version = "0.16.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "7d03328e174951faf739e7e12be3d9ffb044cfc308508dc89260d63a1a43a0df"
|
||||
checksum = "23bdd0119dc71f98e2f0a4bef305e43b9a4d9b9adbead12bc05b0fac1d5a247c"
|
||||
dependencies = [
|
||||
"it-lilo",
|
||||
"marine-it-parser",
|
||||
"marine-macro-impl 0.7.1",
|
||||
"marine-macro-impl 0.14.0",
|
||||
"once_cell",
|
||||
"serde",
|
||||
"serde_json",
|
||||
@ -3500,14 +3534,44 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "acdaa50f8239afa104ef8a99d4219288f68169e29c913485bbd094a35fe79113"
|
||||
dependencies = [
|
||||
"marine-macro-impl 0.10.3",
|
||||
"marine-rs-sdk-main",
|
||||
"marine-rs-sdk-main 0.10.3",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "marine-macro"
|
||||
version = "0.12.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "727b1a5449eb1676837c5fc22a8c31dc9980dcef4de938f26f2eaf7c2c54331b"
|
||||
dependencies = [
|
||||
"marine-macro-impl 0.12.0",
|
||||
"marine-rs-sdk-main 0.12.0",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "marine-macro"
|
||||
version = "0.13.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "cec2cd19fedf559833d0f1e6a33cbcc5cf0efa338bb0975346ff12538a3cdde4"
|
||||
dependencies = [
|
||||
"marine-macro-impl 0.13.0",
|
||||
"marine-rs-sdk-main 0.13.0",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "marine-macro"
|
||||
version = "0.14.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "f502185316f584a9373cceb6ff24a11d260dfd39505c817056bc127cd1a96a08"
|
||||
dependencies = [
|
||||
"marine-macro-impl 0.14.0",
|
||||
"marine-rs-sdk-main 0.14.0",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "marine-macro-impl"
|
||||
version = "0.7.1"
|
||||
version = "0.10.3"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "ca474b63cabaf8d7d9b38de87d630023cbc91ddc77e92f9c7bb745462a131b44"
|
||||
checksum = "460ef42c1bf6dbb88976a00514f8e1b97a7ccb60e3e6009cbb563b0d163166c7"
|
||||
dependencies = [
|
||||
"proc-macro2",
|
||||
"quote",
|
||||
@ -3518,9 +3582,35 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "marine-macro-impl"
|
||||
version = "0.10.3"
|
||||
version = "0.12.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "460ef42c1bf6dbb88976a00514f8e1b97a7ccb60e3e6009cbb563b0d163166c7"
|
||||
checksum = "57c8cd8a228856db057bd4a32c6e2708848b2b1db7552be0a6063d534cafb4e2"
|
||||
dependencies = [
|
||||
"proc-macro2",
|
||||
"quote",
|
||||
"serde",
|
||||
"serde_json",
|
||||
"syn 1.0.109",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "marine-macro-impl"
|
||||
version = "0.13.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "e09acb3ada67e69a301b6d7b52a915a36176c5eedb312647de7d5b6cf17f51e4"
|
||||
dependencies = [
|
||||
"proc-macro2",
|
||||
"quote",
|
||||
"serde",
|
||||
"serde_json",
|
||||
"syn 1.0.109",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "marine-macro-impl"
|
||||
version = "0.14.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "e50fbc0e70ee4cde7802f0748acfb197d7770c7feffb980ce8c29bddd007519e"
|
||||
dependencies = [
|
||||
"proc-macro2",
|
||||
"quote",
|
||||
@ -3541,14 +3631,14 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "marine-module-info-parser"
|
||||
version = "0.11.1"
|
||||
version = "0.14.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "d578b9c5b1a95e9f76301a347d0fbaef5e5e22a0c370e43fc575253e69fa23e6"
|
||||
checksum = "9b312830884d07fc495a43e867d9641163897f0b0b047842cf1172cc61f57075"
|
||||
dependencies = [
|
||||
"anyhow",
|
||||
"chrono",
|
||||
"derivative",
|
||||
"marine-rs-sdk-main",
|
||||
"marine-rs-sdk-main 0.14.0",
|
||||
"marine-wasm-backend-traits",
|
||||
"semver 1.0.21",
|
||||
"serde",
|
||||
@ -3575,13 +3665,13 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "marine-rs-sdk"
|
||||
version = "0.10.3"
|
||||
version = "0.14.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "034cab8adf708e87db08f093e0c7b8ea49359cc875ed2a778c1bf245b5d9d9f8"
|
||||
checksum = "f93d2bd852fea1fea8097c195044430347eda98fd6a3752119b549192d5ac4ba"
|
||||
dependencies = [
|
||||
"marine-call-parameters",
|
||||
"marine-macro",
|
||||
"marine-rs-sdk-main",
|
||||
"marine-call-parameters 0.14.0",
|
||||
"marine-macro 0.14.0",
|
||||
"marine-rs-sdk-main 0.14.0",
|
||||
"marine-timestamp-macro",
|
||||
"serde",
|
||||
]
|
||||
@ -3597,20 +3687,53 @@ dependencies = [
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "marine-runtime"
|
||||
version = "0.32.1"
|
||||
name = "marine-rs-sdk-main"
|
||||
version = "0.12.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "4c9a539b0b1586839f133f768db670f0b3f6cd5ffd977dc247cbf8acf8a3dc1a"
|
||||
checksum = "6cba9000500575b4965ec44e44bbbfd056d121be1195969ce1a5cc146646c37b"
|
||||
dependencies = [
|
||||
"log",
|
||||
"serde",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "marine-rs-sdk-main"
|
||||
version = "0.13.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "58b487a1a1b288ba06c832942eadb43384cd99c9754c1454e1e061dd9866be92"
|
||||
dependencies = [
|
||||
"log",
|
||||
"serde",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "marine-rs-sdk-main"
|
||||
version = "0.14.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "0b79c165fc21438b069babeec5ae36ba0eade5e08fb1d92dabbe6b41014ce841"
|
||||
dependencies = [
|
||||
"log",
|
||||
"serde",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "marine-runtime"
|
||||
version = "0.35.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "6c599c7c13e976170a1211e31fe2fb4557e0479cbdba331b19a5a9e87f145f52"
|
||||
dependencies = [
|
||||
"bytesize",
|
||||
"it-json-serde",
|
||||
"it-memory-traits",
|
||||
"itertools",
|
||||
"log",
|
||||
"marine-call-parameters 0.10.3",
|
||||
"marine-call-parameters 0.12.0",
|
||||
"marine-call-parameters 0.13.0",
|
||||
"marine-core",
|
||||
"marine-module-interface",
|
||||
"marine-rs-sdk",
|
||||
"marine-rs-sdk-main",
|
||||
"marine-rs-sdk-main 0.14.0",
|
||||
"marine-utils",
|
||||
"marine-wasm-backend-traits",
|
||||
"marine-wasmtime-backend",
|
||||
@ -3627,9 +3750,9 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "marine-timestamp-macro"
|
||||
version = "0.10.3"
|
||||
version = "0.14.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "7f812a03cb13b79ab75e38053a77ecc4b4738a1b485b650d971dec3dbbcb2561"
|
||||
checksum = "d03f267ac0a29f543ef12a1a519ff8d98e74ac66e1c580f2930d41ce2c50507d"
|
||||
dependencies = [
|
||||
"chrono",
|
||||
"quote",
|
||||
@ -4844,7 +4967,7 @@ dependencies = [
|
||||
name = "polyplets"
|
||||
version = "0.6.0"
|
||||
dependencies = [
|
||||
"marine-call-parameters",
|
||||
"marine-call-parameters 0.14.0",
|
||||
"serde",
|
||||
]
|
||||
|
||||
|
@ -22,7 +22,7 @@ aquavm-air = { version = "0.60.0", path = "../air" }
|
||||
air-interpreter-interface = { version = "0.18.0", path = "../crates/air-lib/interpreter-interface" }
|
||||
air-log-targets = { version = "0.1.0", path = "../crates/air-lib/log-targets" }
|
||||
|
||||
marine-rs-sdk = {version = "0.10.3", features = ["logger"] }
|
||||
marine-rs-sdk = {version = "0.14.0", features = ["logger"] }
|
||||
|
||||
wasm-bindgen = "=0.2.83"
|
||||
|
||||
|
@ -53,8 +53,8 @@ rkyv = { version = "0.7.43", features = ["strict", "validation", "size_32", "arc
|
||||
[dev_dependencies]
|
||||
air-test-utils = { path = "../crates/air-lib/test-utils" }
|
||||
air-testing-framework = { path = "../crates/testing-framework" }
|
||||
fluence-app-service = "0.31.0"
|
||||
marine-rs-sdk = { version = "0.10.0", features = ["logger"] }
|
||||
fluence-app-service = "0.34.0"
|
||||
marine-rs-sdk = { version = "0.14.0", features = ["logger"] }
|
||||
|
||||
borsh = "0.10.3"
|
||||
bs58 = "0.5.0"
|
||||
|
@ -149,7 +149,7 @@ fn apply_canon_stream(
|
||||
let value = JValuable::as_jvalue(&&canon_stream.canon_stream);
|
||||
let tetraplet = canon_stream.tetraplet().clone();
|
||||
let position = trace_ctx.trace_pos().map_err(UncatchableError::from)?;
|
||||
let value = CanonResultAggregate::new(value, tetraplet.peer_pk.as_str().into(), &tetraplet.json_path, position);
|
||||
let value = CanonResultAggregate::new(value, tetraplet.peer_pk.as_str().into(), &tetraplet.lens, position);
|
||||
let result = ValueAggregate::from_canon_result(value, canon_stream.cid.clone());
|
||||
Ok(result)
|
||||
}
|
||||
@ -187,7 +187,7 @@ fn apply_canon_stream_map(
|
||||
let value = JValuable::as_jvalue(&&canon_stream_map.canon_stream_map);
|
||||
let tetraplet = canon_stream_map.tetraplet();
|
||||
let position = trace_ctx.trace_pos().map_err(UncatchableError::from)?;
|
||||
let value = CanonResultAggregate::new(value, tetraplet.peer_pk.as_str().into(), &tetraplet.json_path, position);
|
||||
let value = CanonResultAggregate::new(value, tetraplet.peer_pk.as_str().into(), &tetraplet.lens, position);
|
||||
let result = ValueAggregate::from_canon_result(value, canon_stream_map.cid.clone());
|
||||
Ok(result)
|
||||
}
|
||||
|
@ -87,7 +87,7 @@ fn epilog_closure<'closure, 'name: 'closure>(scalar_name: &'name str) -> Box<Can
|
||||
|
||||
let position = trace_ctx.trace_pos().map_err(UncatchableError::from)?;
|
||||
|
||||
let value = CanonResultAggregate::new(value, peer_pk, &tetraplet.json_path, position);
|
||||
let value = CanonResultAggregate::new(value, peer_pk, &tetraplet.lens, position);
|
||||
let result = ValueAggregate::from_canon_result(value, canon_result_cid.clone());
|
||||
|
||||
exec_ctx.scalars.set_scalar_value(scalar_name, result)?;
|
||||
|
@ -117,9 +117,9 @@ fn select_by_path_from_canon_map_stream<'value>(
|
||||
let result = select_by_path_from_scalar(&value, body.iter(), exec_ctx)?;
|
||||
|
||||
let joined = body.iter().map(ToString::to_string).collect::<Vec<_>>().join(".");
|
||||
let json_path_suffix = format!(".{}", joined);
|
||||
let lambda_suffix = format!(".{}", joined);
|
||||
let prefix_with_path = true;
|
||||
let updated_tetraplet = update_tetraplet_with_path(&tetraplet, &json_path_suffix, prefix_with_path);
|
||||
let updated_tetraplet = update_tetraplet_with_path(&tetraplet, &lambda_suffix, prefix_with_path);
|
||||
|
||||
MapLensResult::new(result, updated_tetraplet)
|
||||
};
|
||||
@ -206,14 +206,14 @@ fn update_tetraplet_with_path(
|
||||
original_path: &impl ToString,
|
||||
prefix_with_path: bool,
|
||||
) -> RcSecurityTetraplet {
|
||||
let json_path_updated = if prefix_with_path {
|
||||
original_tetraplet.json_path.to_string() + &original_path.to_string()
|
||||
let lens_updated = if prefix_with_path {
|
||||
original_tetraplet.lens.to_string() + &original_path.to_string()
|
||||
} else {
|
||||
original_path.to_string()
|
||||
};
|
||||
|
||||
SecurityTetraplet {
|
||||
json_path: json_path_updated,
|
||||
lens: lens_updated,
|
||||
..original_tetraplet.clone()
|
||||
}
|
||||
.into()
|
||||
|
@ -61,7 +61,7 @@ impl<'ctx> Iterable<'ctx> for IterableLambdaResult {
|
||||
|
||||
let jvalue = &self.jvalues[self.cursor];
|
||||
let mut tetraplet = (*self.tetraplet).clone();
|
||||
tetraplet.add_lambda(&format!(".$.[{}]", self.cursor));
|
||||
tetraplet.add_lens(&format!(".$.[{}]", self.cursor));
|
||||
let result = IterableItem::RefValue((jvalue, tetraplet.into(), 0.into(), self.provenance.clone()));
|
||||
|
||||
Some(result)
|
||||
|
@ -64,7 +64,7 @@ impl<'ctx> Iterable<'ctx> for IterableResolvedCall {
|
||||
};
|
||||
|
||||
let mut tetraplet = (*tetraplet).clone();
|
||||
tetraplet.add_lambda(&format!(".$.[{}]", self.cursor));
|
||||
tetraplet.add_lens(&format!(".$.[{}]", self.cursor));
|
||||
|
||||
let result = IterableItem::RefValue((jvalue, tetraplet.into(), trace_pos, provenance));
|
||||
Some(result)
|
||||
|
@ -93,7 +93,7 @@ impl ValueAggregate {
|
||||
result: CanonResultAggregate::new(
|
||||
result,
|
||||
tetraplet.peer_pk.as_str().into(),
|
||||
&tetraplet.json_path,
|
||||
&tetraplet.lens,
|
||||
trace_pos,
|
||||
),
|
||||
provenance_cid: cid,
|
||||
|
@ -23,7 +23,7 @@ pub(crate) fn populate_tetraplet_with_lambda(
|
||||
) -> SecurityTetraplet {
|
||||
match lambda {
|
||||
LambdaAST::ValuePath(_) => {
|
||||
tetraplet.add_lambda(&lambda.to_string());
|
||||
tetraplet.add_lens(&lambda.to_string());
|
||||
tetraplet
|
||||
}
|
||||
LambdaAST::Functor(_) => SecurityTetraplet::new("", "", "", lambda.to_string()),
|
||||
|
@ -61,12 +61,12 @@ fn test_canon_ok() {
|
||||
stream_exec_state,
|
||||
canon_tracked(
|
||||
json!({
|
||||
"tetraplet": {"function_name": "", "json_path": "", "peer_pk": init_peer_id, "service_id": ""},
|
||||
"tetraplet": {"function_name": "", "lens": "", "peer_pk": init_peer_id, "service_id": ""},
|
||||
"values": [{
|
||||
"result": 42,
|
||||
"tetraplet": {
|
||||
"function_name": "",
|
||||
"json_path": "",
|
||||
"lens": "",
|
||||
"peer_pk": init_peer_id,
|
||||
"service_id": "",
|
||||
},
|
||||
@ -75,7 +75,7 @@ fn test_canon_ok() {
|
||||
"result": "to canon",
|
||||
"tetraplet": {
|
||||
"function_name": "func",
|
||||
"json_path": "",
|
||||
"lens": "",
|
||||
"peer_pk": init_peer_id,
|
||||
"service_id": "serv..0",
|
||||
},
|
||||
@ -151,12 +151,12 @@ fn test_canon_ok_multi() {
|
||||
stream_state_2,
|
||||
canon_tracked(
|
||||
json!({
|
||||
"tetraplet": {"function_name": "", "json_path": "", "peer_pk": init_peer_id, "service_id": ""},
|
||||
"tetraplet": {"function_name": "", "lens": "", "peer_pk": init_peer_id, "service_id": ""},
|
||||
"values": [{
|
||||
"result": "to canon",
|
||||
"tetraplet": {
|
||||
"function_name": "func",
|
||||
"json_path": "",
|
||||
"lens": "",
|
||||
"peer_pk": init_peer_id,
|
||||
"service_id": "serv..0",
|
||||
},
|
||||
@ -165,7 +165,7 @@ fn test_canon_ok_multi() {
|
||||
"result": "other",
|
||||
"tetraplet": {
|
||||
"function_name": "other_func",
|
||||
"json_path": "",
|
||||
"lens": "",
|
||||
"peer_pk": other_peer_id,
|
||||
"service_id": "other_serv..1",
|
||||
},
|
||||
@ -207,12 +207,12 @@ fn test_canon_value_not_found() {
|
||||
ap(0),
|
||||
canon_tracked(
|
||||
json!({
|
||||
"tetraplet": {"function_name": "", "json_path": "", "peer_pk": init_peer_id, "service_id": ""},
|
||||
"tetraplet": {"function_name": "", "lens": "", "peer_pk": init_peer_id, "service_id": ""},
|
||||
"values": [{
|
||||
"result": 42,
|
||||
"tetraplet": {
|
||||
"function_name": "",
|
||||
"json_path": "",
|
||||
"lens": "",
|
||||
"peer_pk": init_peer_id,
|
||||
"service_id": "",
|
||||
},
|
||||
@ -256,12 +256,12 @@ fn test_canon_root_tetraplet_not_found() {
|
||||
ap(0),
|
||||
canon_tracked(
|
||||
json!({
|
||||
"tetraplet": {"function_name": "", "json_path": "", "peer_pk": init_peer_id, "service_id": ""},
|
||||
"tetraplet": {"function_name": "", "lens": "", "peer_pk": init_peer_id, "service_id": ""},
|
||||
"values": [{
|
||||
"result": 42,
|
||||
"tetraplet": {
|
||||
"function_name": "",
|
||||
"json_path": "",
|
||||
"lens": "",
|
||||
"peer_pk": other_peer_id,
|
||||
"service_id": "",
|
||||
},
|
||||
@ -271,7 +271,7 @@ fn test_canon_root_tetraplet_not_found() {
|
||||
),
|
||||
];
|
||||
|
||||
let missing_cid = "bagaaihraydnoggy3vbf42ebqdjffuqnqpiwk2ryytc4esqasavlo6zzv7e4a";
|
||||
let missing_cid = "bagaaihrays67nve662j4pn5jdqquxlqqi5vpisgs72n4tmnrqbbnah3t5ola";
|
||||
let tetraplet_store: CidStore<_> = cid_state.tetraplet_tracker.into();
|
||||
assert!(
|
||||
tetraplet_store.get(&CID::<_>::new(missing_cid)).is_some(),
|
||||
@ -317,12 +317,12 @@ fn test_canon_tetraplet_not_found() {
|
||||
),
|
||||
canon_tracked(
|
||||
json!({
|
||||
"tetraplet": {"function_name": "", "json_path": "", "peer_pk": init_peer_id, "service_id": ""},
|
||||
"tetraplet": {"function_name": "", "lens": "", "peer_pk": init_peer_id, "service_id": ""},
|
||||
"values": [{
|
||||
"result": 42,
|
||||
"tetraplet": {
|
||||
"function_name": "func",
|
||||
"json_path": "",
|
||||
"lens": "",
|
||||
"peer_pk": "peer_1",
|
||||
"service_id": "serv..0",
|
||||
},
|
||||
@ -331,7 +331,7 @@ fn test_canon_tetraplet_not_found() {
|
||||
&mut cid_state,
|
||||
),
|
||||
];
|
||||
let missing_cid = "bagaaihrasj5rizxwp3gypeiszoyq6nwmlvyu3fxqmfv6yu7uvuir6litgyna";
|
||||
let missing_cid = "bagaaihramktnmwzskmyxlah5zyownsfxv4vt7wf2ypzwvrygb2x7o72vpfyq";
|
||||
let tetraplet_store: CidStore<_> = cid_state.tetraplet_tracker.into();
|
||||
assert!(
|
||||
tetraplet_store.get(&CID::<_>::new(missing_cid)).is_some(),
|
||||
@ -369,12 +369,12 @@ fn test_canon_agg_not_found() {
|
||||
ap(0),
|
||||
canon_tracked(
|
||||
json!({
|
||||
"tetraplet": {"function_name": "", "json_path": "", "peer_pk": "other_peer_id", "service_id": ""},
|
||||
"tetraplet": {"function_name": "", "lens": "", "peer_pk": "other_peer_id", "service_id": ""},
|
||||
"values": [{
|
||||
"result": 42,
|
||||
"tetraplet": {
|
||||
"function_name": "",
|
||||
"json_path": "",
|
||||
"lens": "",
|
||||
"peer_pk": init_peer_id,
|
||||
"service_id": "",
|
||||
},
|
||||
@ -385,7 +385,7 @@ fn test_canon_agg_not_found() {
|
||||
),
|
||||
];
|
||||
|
||||
let missing_cid = "bagaaihraqxwgyh7ihp2cmyt6piqqm7s2bz2xr2sgohzn34tnstksoyb4wsza";
|
||||
let missing_cid = "bagaaihrad3w3ebwqwgzoxyvdyq7wgxeawv2i6olczg6mnivu6fnwwm4m42oq";
|
||||
let canon_element_store: CidStore<_> = cid_state.canon_element_tracker.into();
|
||||
assert!(
|
||||
canon_element_store.get(&CID::<_>::new(missing_cid)).is_some(),
|
||||
|
@ -88,7 +88,7 @@ fn last_error_tetraplets() {
|
||||
assert_eq!(tetraplet.peer_pk, fallible_peer_id);
|
||||
assert_eq!(tetraplet.service_id, "fallible_call_service");
|
||||
assert_eq!(tetraplet.function_name, "");
|
||||
assert_eq!(&(*tetraplets.borrow()).as_ref().unwrap()[0][0].json_path, "");
|
||||
assert_eq!(&(*tetraplets.borrow()).as_ref().unwrap()[0][0].lens, "");
|
||||
}
|
||||
|
||||
#[test]
|
||||
|
@ -19,7 +19,7 @@ use air::LambdaError;
|
||||
use air_test_utils::prelude::*;
|
||||
|
||||
#[test]
|
||||
fn dont_wait_on_json_path() {
|
||||
fn dont_wait_on_lambda() {
|
||||
let status = json!({
|
||||
"err_msg": "",
|
||||
"is_authenticated": 1,
|
||||
@ -67,7 +67,7 @@ fn dont_wait_on_json_path() {
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn dont_wait_on_json_path_on_scalars() {
|
||||
fn dont_wait_on_lambda_on_scalars() {
|
||||
let array = json!([1u32, 2u32, 3u32, 4u32, 5u32]);
|
||||
|
||||
let object = json!({
|
||||
@ -271,7 +271,7 @@ fn canon_with_empty_behaviour() {
|
||||
let result = checked_call_vm!(peer_2, <_>::default(), script, "", "");
|
||||
let actual_trace = trace_from_result(&result);
|
||||
let expected_trace = vec![executed_state::canon(
|
||||
json!({"tetraplet": {"function_name": "", "json_path": "", "peer_pk": "peer_id", "service_id": ""}, "values": []}),
|
||||
json!({"tetraplet": {"function_name": "", "lens": "", "peer_pk": "peer_id", "service_id": ""}, "values": []}),
|
||||
)];
|
||||
|
||||
assert_eq!(actual_trace, expected_trace);
|
||||
|
@ -94,16 +94,16 @@ fn length_functor_for_stream() {
|
||||
executed_state::ap(0),
|
||||
executed_state::ap(0),
|
||||
executed_state::canon(json!({
|
||||
"tetraplet": {"function_name": "", "json_path": "", "peer_pk": init_peer_id, "service_id": ""},
|
||||
"tetraplet": {"function_name": "", "lens": "", "peer_pk": init_peer_id, "service_id": ""},
|
||||
"values": [
|
||||
{
|
||||
"result": 1,
|
||||
"tetraplet": {"function_name": "", "json_path": "", "peer_pk": init_peer_id, "service_id": ""},
|
||||
"tetraplet": {"function_name": "", "lens": "", "peer_pk": init_peer_id, "service_id": ""},
|
||||
"trace_pos": 0,
|
||||
},
|
||||
{
|
||||
"result": 1,
|
||||
"tetraplet": {"function_name": "", "json_path": "", "peer_pk": init_peer_id, "service_id": ""},
|
||||
"tetraplet": {"function_name": "", "lens": "", "peer_pk": init_peer_id, "service_id": ""},
|
||||
"trace_pos": 1,
|
||||
},
|
||||
]
|
||||
@ -135,7 +135,7 @@ fn length_functor_for_empty_stream() {
|
||||
|
||||
let expected_trace = vec![
|
||||
executed_state::canon(
|
||||
json!({"tetraplet": {"function_name": "", "json_path": "", "peer_pk": init_peer_id, "service_id": ""},
|
||||
json!({"tetraplet": {"function_name": "", "lens": "", "peer_pk": init_peer_id, "service_id": ""},
|
||||
"values": []} ),
|
||||
),
|
||||
unused!(0, peer = init_peer_id, service = "..0", args = vec![0]),
|
||||
@ -170,9 +170,9 @@ fn length_functor_for_canon_stream() {
|
||||
executed_state::ap(0),
|
||||
executed_state::ap(0),
|
||||
executed_state::canon(
|
||||
json!({"tetraplet": {"function_name": "", "json_path": "", "peer_pk": init_peer_id, "service_id": ""},
|
||||
"values": [{"result": 1, "tetraplet": {"function_name": "", "json_path": "", "peer_pk": init_peer_id, "service_id": ""}, "trace_pos": 0},
|
||||
{"result": 1, "tetraplet": {"function_name": "", "json_path": "", "peer_pk": init_peer_id, "service_id": ""}, "trace_pos": 1}
|
||||
json!({"tetraplet": {"function_name": "", "lens": "", "peer_pk": init_peer_id, "service_id": ""},
|
||||
"values": [{"result": 1, "tetraplet": {"function_name": "", "lens": "", "peer_pk": init_peer_id, "service_id": ""}, "trace_pos": 0},
|
||||
{"result": 1, "tetraplet": {"function_name": "", "lens": "", "peer_pk": init_peer_id, "service_id": ""}, "trace_pos": 1}
|
||||
]} ),
|
||||
),
|
||||
unused!(2, peer = init_peer_id, service = "..0", args = vec![2]),
|
||||
@ -202,7 +202,7 @@ fn length_functor_for_empty_canon_stream() {
|
||||
|
||||
let expected_trace = vec![
|
||||
executed_state::canon(
|
||||
json!({"tetraplet": {"function_name": "", "json_path": "", "peer_pk": init_peer_id, "service_id": ""}, "values": []} ),
|
||||
json!({"tetraplet": {"function_name": "", "lens": "", "peer_pk": init_peer_id, "service_id": ""}, "values": []} ),
|
||||
),
|
||||
unused!(0, peer = init_peer_id, service = "..0", args = vec![0]),
|
||||
];
|
||||
|
@ -448,10 +448,10 @@ fn test_attack_replay() {
|
||||
let nested_error = fluence_keypair::error::VerificationError::Ed25519(
|
||||
dalek_error,
|
||||
// will break if signed data format changes
|
||||
"8ATKuSr1J6NvqT3PBBf3qcDWsnDcnNpznFBSdzAVJnASV8MHrc15zKYYQkCcywcXFPgXJAdEzTNdhixDQKQjDL4".to_owned(),
|
||||
"5KxZZzHbixcH8idzggBJYDgXP87qBBWAHLeFvPvCRVMqyAbf6mrqMdAa1P3iNjAaxXVFuJsxtrrQaL1MKw6C8pER".to_owned(),
|
||||
"6m3zmtymxDL56KBpNgKqc7QiGRuWuxr82bG2q7dF5xCD".to_owned(),
|
||||
);
|
||||
let cids: Vec<Rc<CidRef>> = vec!["bagaaihra7fcndppbd44kltfjcy6ihc4fmxepwt256vswc7x2qqgznazx3j3a".into()];
|
||||
let cids: Vec<Rc<CidRef>> = vec!["bagaaihrarsryjavaf4zikqilrc2hzph7rszpfyfxjpopfnczjxlqeb56nbhq".into()];
|
||||
let expected = PreparationError::DataSignatureCheckError(verification::DataVerifierError::SignatureMismatch {
|
||||
error: Box::new(nested_error.into()),
|
||||
cids,
|
||||
|
@ -173,7 +173,7 @@ fn test_attack_replace_tetraplet() {
|
||||
PreparationError::CidStoreVerificationError(
|
||||
CidVerificationError::ValueMismatch {
|
||||
type_name: "marine_call_parameters::SecurityTetraplet",
|
||||
cid_repr: "bagaaihraqlxlbr5q54odmlqwrzpw4smuxzzqbrfas6c7ajhb73samtrjkkva".into(),
|
||||
cid_repr: "bagaaihraxnms7hna6c27qhgfzhyayz62y2q2dxc4dwriq33tdilonmq4ruoq".into(),
|
||||
}
|
||||
.into()
|
||||
)
|
||||
@ -256,7 +256,7 @@ fn test_attack_replace_call_result() {
|
||||
PreparationError::CidStoreVerificationError(
|
||||
CidVerificationError::ValueMismatch {
|
||||
type_name: "air_interpreter_data::executed_state::ServiceResultCidAggregate",
|
||||
cid_repr: "bagaaihrai3ii6rephch2kv2efkbolmhfjvpj2w3fyr2tj6lavd4yiloy2ybq".into(),
|
||||
cid_repr: "bagaaihradr2m7mlsvqhtnzszpuifqgiytee6zpyxyfzxbuqcmf23fgmbemqq".into(),
|
||||
}
|
||||
.into()
|
||||
)
|
||||
@ -290,9 +290,9 @@ fn test_attack_replace_canon_value() {
|
||||
let mut mallory_cid_state = ExecutionCidState::new();
|
||||
let alice_canon_cid = canon_tracked(
|
||||
json!({
|
||||
"tetraplet": {"peer_pk": &alice_peer_id, "service_id": "", "function_name": "", "json_path": ""},
|
||||
"tetraplet": {"peer_pk": &alice_peer_id, "service_id": "", "function_name": "", "lens": ""},
|
||||
"values": [{
|
||||
"tetraplet": {"peer_pk": &alice_peer_id, "service_id": "", "function_name": "", "json_path": ""},
|
||||
"tetraplet": {"peer_pk": &alice_peer_id, "service_id": "", "function_name": "", "lens": ""},
|
||||
"result": 1,
|
||||
"provenance": Provenance::literal(),
|
||||
}]
|
||||
@ -346,7 +346,7 @@ fn test_attack_replace_canon_value() {
|
||||
PreparationError::CidStoreVerificationError(
|
||||
CidVerificationError::ValueMismatch {
|
||||
type_name: "air_interpreter_data::executed_state::CanonCidAggregate",
|
||||
cid_repr: "bagaaihram3i44lmbxmukumwohtp2dkocgdqjwzixddzxjmzlvhea7aid5l7q".into(),
|
||||
cid_repr: "bagaaihracce5ggyu3cbxm4xh35mjlmb7qb3xltlwoqqas62e2yftii4x4msq".into(),
|
||||
}
|
||||
.into()
|
||||
)
|
||||
@ -382,13 +382,13 @@ fn test_attack_replace_canon_result_values() {
|
||||
let mut mallory_cid_state = ExecutionCidState::new();
|
||||
let alice_canon_cid = canon_tracked(
|
||||
json!({
|
||||
"tetraplet": {"peer_pk": alice_peer_id, "service_id": "", "function_name": "", "json_path": ""},
|
||||
"tetraplet": {"peer_pk": alice_peer_id, "service_id": "", "function_name": "", "lens": ""},
|
||||
"values": [{
|
||||
"tetraplet": {"peer_pk": alice_peer_id, "service_id": "", "function_name": "", "json_path": ""},
|
||||
"tetraplet": {"peer_pk": alice_peer_id, "service_id": "", "function_name": "", "lens": ""},
|
||||
"result": 1,
|
||||
"provenance": Provenance::literal(),
|
||||
}, {
|
||||
"tetraplet": {"peer_pk": alice_peer_id, "service_id": "", "function_name": "", "json_path": ""},
|
||||
"tetraplet": {"peer_pk": alice_peer_id, "service_id": "", "function_name": "", "lens": ""},
|
||||
"result": 2,
|
||||
"provenance": Provenance::literal(),
|
||||
}]
|
||||
@ -445,7 +445,7 @@ fn test_attack_replace_canon_result_values() {
|
||||
PreparationError::CidStoreVerificationError(
|
||||
CidVerificationError::ValueMismatch {
|
||||
type_name: "air_interpreter_data::executed_state::CanonResultCidAggregate",
|
||||
cid_repr: "bagaaihrar7xfyl5usjhn5s6xisvwkh55zyq5lvjnwr6j5j3yjutf55aowqea".into(),
|
||||
cid_repr: "bagaaihraxsxqmnfevwk6briizagprfikpm4x73mdf626mm5xju2f33vp7c7q".into(),
|
||||
}
|
||||
.into()
|
||||
)
|
||||
@ -481,13 +481,13 @@ fn test_attack_replace_canon_result_tetraplet() {
|
||||
let mut mallory_cid_state = ExecutionCidState::new();
|
||||
let alice_canon_cid = canon_tracked(
|
||||
json!({
|
||||
"tetraplet": {"peer_pk": alice_peer_id, "service_id": "", "function_name": "", "json_path": ""},
|
||||
"tetraplet": {"peer_pk": alice_peer_id, "service_id": "", "function_name": "", "lens": ""},
|
||||
"values": [{
|
||||
"tetraplet": {"peer_pk": alice_peer_id, "service_id": "", "function_name": "", "json_path": ""},
|
||||
"tetraplet": {"peer_pk": alice_peer_id, "service_id": "", "function_name": "", "lens": ""},
|
||||
"result": 1,
|
||||
"provenance": Provenance::literal(),
|
||||
}, {
|
||||
"tetraplet": {"peer_pk": alice_peer_id, "service_id": "", "function_name": "", "json_path": ""},
|
||||
"tetraplet": {"peer_pk": alice_peer_id, "service_id": "", "function_name": "", "lens": ""},
|
||||
"result": 2,
|
||||
"provenance": Provenance::literal(),
|
||||
}]
|
||||
@ -548,7 +548,7 @@ fn test_attack_replace_canon_result_tetraplet() {
|
||||
PreparationError::CidStoreVerificationError(
|
||||
CidVerificationError::ValueMismatch {
|
||||
type_name: "air_interpreter_data::executed_state::CanonResultCidAggregate",
|
||||
cid_repr: "bagaaihrar7xfyl5usjhn5s6xisvwkh55zyq5lvjnwr6j5j3yjutf55aowqea".into(),
|
||||
cid_repr: "bagaaihraxsxqmnfevwk6briizagprfikpm4x73mdf626mm5xju2f33vp7c7q".into(),
|
||||
}
|
||||
.into()
|
||||
)
|
||||
|
@ -126,14 +126,14 @@ fn test_runtime_executed_call_tetraplet() {
|
||||
let expected_value = format!(
|
||||
concat!(
|
||||
r#"SecurityTetraplet {{ peer_pk: "{alice_peer_id}","#,
|
||||
r#" service_id: "service1", function_name: "func", json_path: "" }}"#
|
||||
r#" service_id: "service1", function_name: "func", lens: "" }}"#
|
||||
),
|
||||
alice_peer_id = alice_peer_id,
|
||||
);
|
||||
let stored_value = format!(
|
||||
concat!(
|
||||
r#"SecurityTetraplet {{ peer_pk: "{alice_peer_id}","#,
|
||||
r#" service_id: "service2", function_name: "func", json_path: "" }}"#,
|
||||
r#" service_id: "service2", function_name: "func", lens: "" }}"#,
|
||||
),
|
||||
alice_peer_id = alice_peer_id,
|
||||
);
|
||||
@ -262,14 +262,14 @@ fn test_runtime_failed_call_tetraplet() {
|
||||
let expected_value = format!(
|
||||
concat!(
|
||||
r#"SecurityTetraplet {{ peer_pk: "{alice_peer_id}","#,
|
||||
r#" service_id: "service1", function_name: "func", json_path: "" }}"#
|
||||
r#" service_id: "service1", function_name: "func", lens: "" }}"#
|
||||
),
|
||||
alice_peer_id = alice_peer_id,
|
||||
);
|
||||
let stored_value = format!(
|
||||
concat!(
|
||||
r#"SecurityTetraplet {{ peer_pk: "{alice_peer_id}","#,
|
||||
r#" service_id: "service2", function_name: "func", json_path: "" }}"#,
|
||||
r#" service_id: "service2", function_name: "func", lens: "" }}"#,
|
||||
),
|
||||
alice_peer_id = alice_peer_id,
|
||||
);
|
||||
@ -335,14 +335,14 @@ fn test_runtime_canon_tetraplet() {
|
||||
let expected_value = format!(
|
||||
concat!(
|
||||
r#"SecurityTetraplet {{ peer_pk: "{alice_peer_id}","#,
|
||||
r#" service_id: "", function_name: "", json_path: "" }}"#
|
||||
r#" service_id: "", function_name: "", lens: "" }}"#
|
||||
),
|
||||
alice_peer_id = alice_peer_id,
|
||||
);
|
||||
let stored_value = format!(
|
||||
concat!(
|
||||
r#"SecurityTetraplet {{ peer_pk: "{mallory_peer_id}","#,
|
||||
r#" service_id: "", function_name: "", json_path: "" }}"#,
|
||||
r#" service_id: "", function_name: "", lens: "" }}"#,
|
||||
),
|
||||
mallory_peer_id = mallory_peer_id,
|
||||
);
|
||||
|
@ -237,14 +237,14 @@ fn test_signature_canon_basic() {
|
||||
let expected_call_result_cid = extract_service_result_cid(&expected_call_result);
|
||||
|
||||
let expected_canon_state = canon(json!({
|
||||
"tetraplet": {"peer_pk": init_peer_id, "service_id": "", "function_name": "", "json_path": ""},
|
||||
"tetraplet": {"peer_pk": init_peer_id, "service_id": "", "function_name": "", "lens": ""},
|
||||
"values": [{
|
||||
"result": 1,
|
||||
"tetraplet": {
|
||||
"peer_pk": init_peer_id,
|
||||
"service_id": "serv..0",
|
||||
"function_name": "func",
|
||||
"json_path": ".$.[0]",
|
||||
"lens": ".$.[0]",
|
||||
},
|
||||
"provenance": Provenance::service_result(expected_call_result_cid.clone()),
|
||||
}, {
|
||||
@ -253,7 +253,7 @@ fn test_signature_canon_basic() {
|
||||
"peer_pk": init_peer_id,
|
||||
"service_id": "serv..0",
|
||||
"function_name": "func",
|
||||
"json_path": ".$.[1]",
|
||||
"lens": ".$.[1]",
|
||||
},
|
||||
"provenance": Provenance::service_result(expected_call_result_cid.clone()),
|
||||
}, {
|
||||
@ -262,7 +262,7 @@ fn test_signature_canon_basic() {
|
||||
"peer_pk": init_peer_id,
|
||||
"service_id": "serv..0",
|
||||
"function_name": "func",
|
||||
"json_path": ".$.[2]",
|
||||
"lens": ".$.[2]",
|
||||
},
|
||||
"provenance": Provenance::service_result(expected_call_result_cid.clone()),
|
||||
}]
|
||||
@ -318,14 +318,14 @@ fn test_signature_canon_merge() {
|
||||
let expected_call_result_cid = extract_service_result_cid(&expected_call_result);
|
||||
|
||||
let expected_canon_state = canon(json!({
|
||||
"tetraplet": {"peer_pk": init_peer_id, "service_id": "", "function_name": "", "json_path": ""},
|
||||
"tetraplet": {"peer_pk": init_peer_id, "service_id": "", "function_name": "", "lens": ""},
|
||||
"values": [{
|
||||
"result": 1,
|
||||
"tetraplet": {
|
||||
"peer_pk": init_peer_id,
|
||||
"service_id": "serv..0",
|
||||
"function_name": "func",
|
||||
"json_path": ".$.[0]",
|
||||
"lens": ".$.[0]",
|
||||
},
|
||||
"provenance": Provenance::service_result(expected_call_result_cid.clone()),
|
||||
}, {
|
||||
@ -334,7 +334,7 @@ fn test_signature_canon_merge() {
|
||||
"peer_pk": init_peer_id,
|
||||
"service_id": "serv..0",
|
||||
"function_name": "func",
|
||||
"json_path": ".$.[1]",
|
||||
"lens": ".$.[1]",
|
||||
},
|
||||
"provenance": Provenance::service_result(expected_call_result_cid.clone()),
|
||||
}, {
|
||||
@ -343,7 +343,7 @@ fn test_signature_canon_merge() {
|
||||
"peer_pk": init_peer_id,
|
||||
"service_id": "serv..0",
|
||||
"function_name": "func",
|
||||
"json_path": ".$.[2]",
|
||||
"lens": ".$.[2]",
|
||||
},
|
||||
"provenance": Provenance::service_result(expected_call_result_cid.clone()),
|
||||
}]
|
||||
@ -403,14 +403,14 @@ fn test_signature_canon_result() {
|
||||
let expected_call_result_cid2 = extract_service_result_cid(&expected_call_result2);
|
||||
|
||||
let expected_canon_state = canon(json!({
|
||||
"tetraplet": {"peer_pk": init_peer_id, "service_id": "", "function_name": "", "json_path": ""},
|
||||
"tetraplet": {"peer_pk": init_peer_id, "service_id": "", "function_name": "", "lens": ""},
|
||||
"values": [{
|
||||
"result": 1,
|
||||
"tetraplet": {
|
||||
"peer_pk": init_peer_id,
|
||||
"service_id": "serv..0",
|
||||
"function_name": "func",
|
||||
"json_path": ".$.[0]",
|
||||
"lens": ".$.[0]",
|
||||
},
|
||||
"provenance": Provenance::service_result(expected_call_result_cid1.clone()),
|
||||
}, {
|
||||
@ -419,7 +419,7 @@ fn test_signature_canon_result() {
|
||||
"peer_pk": init_peer_id,
|
||||
"service_id": "serv..0",
|
||||
"function_name": "func",
|
||||
"json_path": ".$.[1]",
|
||||
"lens": ".$.[1]",
|
||||
},
|
||||
"provenance": Provenance::service_result(expected_call_result_cid1.clone()),
|
||||
}, {
|
||||
@ -428,7 +428,7 @@ fn test_signature_canon_result() {
|
||||
"peer_pk": init_peer_id,
|
||||
"service_id": "serv..0",
|
||||
"function_name": "func",
|
||||
"json_path": ".$.[2]",
|
||||
"lens": ".$.[2]",
|
||||
},
|
||||
"provenance": Provenance::service_result(expected_call_result_cid1.clone()),
|
||||
}, {
|
||||
@ -437,7 +437,7 @@ fn test_signature_canon_result() {
|
||||
"peer_pk": init_peer_id,
|
||||
"service_id": "serv..1",
|
||||
"function_name": "func2",
|
||||
"json_path": "",
|
||||
"lens": "",
|
||||
},
|
||||
"provenance": Provenance::service_result(expected_call_result_cid2.clone()),
|
||||
}]
|
||||
|
@ -50,7 +50,7 @@ fn call_result() {
|
||||
"peer_pk": init_peer_id,
|
||||
"service_id": "",
|
||||
"function_name": "",
|
||||
"json_path": "",
|
||||
"lens": "",
|
||||
},
|
||||
"values": [{
|
||||
"result": "some_data",
|
||||
@ -58,7 +58,7 @@ fn call_result() {
|
||||
"peer_pk": init_peer_id,
|
||||
"service_id": "service..0",
|
||||
"function_name": "func",
|
||||
"json_path": "",
|
||||
"lens": "",
|
||||
},
|
||||
"provenance": Provenance::service_result(val_cid.clone()),
|
||||
}]
|
||||
@ -105,7 +105,7 @@ fn call_result_iteration() {
|
||||
"peer_pk": init_peer_id,
|
||||
"service_id": "",
|
||||
"function_name": "",
|
||||
"json_path": "",
|
||||
"lens": "",
|
||||
},
|
||||
"values": [{
|
||||
"result": 10,
|
||||
@ -113,7 +113,7 @@ fn call_result_iteration() {
|
||||
"peer_pk": init_peer_id,
|
||||
"service_id": "service..0",
|
||||
"function_name": "func",
|
||||
"json_path": ".$.[0]",
|
||||
"lens": ".$.[0]",
|
||||
},
|
||||
"provenance": Provenance::service_result(val_cid.clone()),
|
||||
}, {
|
||||
@ -122,7 +122,7 @@ fn call_result_iteration() {
|
||||
"peer_pk": init_peer_id,
|
||||
"service_id": "service..0",
|
||||
"function_name": "func",
|
||||
"json_path": ".$.[1]",
|
||||
"lens": ".$.[1]",
|
||||
},
|
||||
"provenance": Provenance::service_result(val_cid.clone()),
|
||||
}, {
|
||||
@ -131,7 +131,7 @@ fn call_result_iteration() {
|
||||
"peer_pk": init_peer_id,
|
||||
"service_id": "service..0",
|
||||
"function_name": "func",
|
||||
"json_path": ".$.[2]",
|
||||
"lens": ".$.[2]",
|
||||
},
|
||||
"provenance": Provenance::service_result(val_cid),
|
||||
}]
|
||||
@ -165,7 +165,7 @@ fn literal() {
|
||||
"peer_pk": init_peer_id,
|
||||
"service_id": "",
|
||||
"function_name": "",
|
||||
"json_path": "",
|
||||
"lens": "",
|
||||
},
|
||||
"values": [{
|
||||
"result": 1,
|
||||
@ -173,7 +173,7 @@ fn literal() {
|
||||
"peer_pk": init_peer_id,
|
||||
"service_id": "",
|
||||
"function_name": "",
|
||||
"json_path": "",
|
||||
"lens": "",
|
||||
},
|
||||
"provenance": Provenance::literal(),
|
||||
}]
|
||||
@ -212,7 +212,7 @@ fn canon_in_canon() {
|
||||
"peer_pk": init_peer_id,
|
||||
"service_id": "service..0",
|
||||
"function_name": "func",
|
||||
"json_path": "",
|
||||
"lens": "",
|
||||
});
|
||||
|
||||
let canon_val = canon(json!({
|
||||
@ -220,7 +220,7 @@ fn canon_in_canon() {
|
||||
"peer_pk": init_peer_id,
|
||||
"service_id": "",
|
||||
"function_name": "",
|
||||
"json_path": "",
|
||||
"lens": "",
|
||||
},
|
||||
"values": [{
|
||||
"result": 1,
|
||||
@ -235,7 +235,7 @@ fn canon_in_canon() {
|
||||
"peer_pk": init_peer_id,
|
||||
"service_id": "",
|
||||
"function_name": "",
|
||||
"json_path": "",
|
||||
"lens": "",
|
||||
},
|
||||
"values": [{
|
||||
"result": 1,
|
||||
@ -247,7 +247,7 @@ fn canon_in_canon() {
|
||||
"peer_pk": init_peer_id,
|
||||
"service_id": "",
|
||||
"function_name": "",
|
||||
"json_path": "",
|
||||
"lens": "",
|
||||
},
|
||||
"provenance": Provenance::canon(canon_cid),
|
||||
}]
|
||||
@ -297,7 +297,7 @@ fn lambda_result_iteration() {
|
||||
"peer_pk": init_peer_id,
|
||||
"service_id": "",
|
||||
"function_name": "",
|
||||
"json_path": "",
|
||||
"lens": "",
|
||||
},
|
||||
"values": [{
|
||||
"result": 10,
|
||||
@ -305,7 +305,7 @@ fn lambda_result_iteration() {
|
||||
"peer_pk": init_peer_id,
|
||||
"service_id": "service..0",
|
||||
"function_name": "func",
|
||||
"json_path": ".$.[0].$.field.$.[0]",
|
||||
"lens": ".$.[0].$.field.$.[0]",
|
||||
},
|
||||
"provenance": Provenance::service_result(val_cid.clone()),
|
||||
}, {
|
||||
@ -314,7 +314,7 @@ fn lambda_result_iteration() {
|
||||
"peer_pk": init_peer_id,
|
||||
"service_id": "service..0",
|
||||
"function_name": "func",
|
||||
"json_path": ".$.[0].$.field.$.[1]",
|
||||
"lens": ".$.[0].$.field.$.[1]",
|
||||
},
|
||||
"provenance": Provenance::service_result(val_cid.clone()),
|
||||
}, {
|
||||
@ -323,7 +323,7 @@ fn lambda_result_iteration() {
|
||||
"peer_pk": init_peer_id,
|
||||
"service_id": "service..0",
|
||||
"function_name": "func",
|
||||
"json_path": ".$.[0].$.field.$.[2]",
|
||||
"lens": ".$.[0].$.field.$.[2]",
|
||||
},
|
||||
"provenance": Provenance::service_result(val_cid),
|
||||
}]
|
||||
|
@ -87,7 +87,7 @@ fn fold_with_inner_call() {
|
||||
peer_pk: set_variable_vm_peer_id.clone(),
|
||||
service_id: service_id.clone(),
|
||||
function_name: function_name.clone(),
|
||||
json_path: format!(".$.[{}]", i),
|
||||
lens: format!(".$.[{}]", i),
|
||||
};
|
||||
|
||||
let expected_tetraplets = vec![vec![first_arg_tetraplet], vec![second_arg_tetraplet.clone()]];
|
||||
@ -126,14 +126,14 @@ fn fold_stream_with_inner_call() {
|
||||
|
||||
let expected_trace = vec![
|
||||
stream!(
|
||||
json!([[{"peer_pk": init_peer_id, "service_id": "..0", "function_name": "", "json_path": ""}]]),
|
||||
json!([[{"peer_pk": init_peer_id, "service_id": "..0", "function_name": "", "lens": ""}]]),
|
||||
0,
|
||||
peer = &init_peer_id,
|
||||
service = "..2",
|
||||
args = [42]
|
||||
),
|
||||
stream!(
|
||||
json!([[{"peer_pk": init_peer_id, "service_id": "..1", "function_name": "", "json_path": ".$.field"}]]),
|
||||
json!([[{"peer_pk": init_peer_id, "service_id": "..1", "function_name": "", "lens": ".$.field"}]]),
|
||||
0,
|
||||
peer = init_peer_id,
|
||||
service = "..2",
|
||||
@ -174,14 +174,14 @@ fn fold_canon_with_inner_call() {
|
||||
|
||||
let expected_trace = vec![
|
||||
stream!(
|
||||
json!([[{"peer_pk": init_peer_id, "service_id": "..0", "function_name": "", "json_path": ""}]]),
|
||||
json!([[{"peer_pk": init_peer_id, "service_id": "..0", "function_name": "", "lens": ""}]]),
|
||||
0,
|
||||
peer = &init_peer_id,
|
||||
service = "..2",
|
||||
args = [42]
|
||||
),
|
||||
stream!(
|
||||
json!([[{"peer_pk": init_peer_id, "service_id": "..1", "function_name": "", "json_path": ".$.field"}]]),
|
||||
json!([[{"peer_pk": init_peer_id, "service_id": "..1", "function_name": "", "lens": ".$.field"}]]),
|
||||
1,
|
||||
peer = init_peer_id,
|
||||
service = "..2",
|
||||
@ -192,7 +192,7 @@ fn fold_canon_with_inner_call() {
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn fold_json_path() {
|
||||
fn fold_lambda() {
|
||||
let variable_numbers = json!({"args": ["1", "2", "3", "4", "5", "6", "7", "8", "9", "10"]});
|
||||
|
||||
let set_variable_vm_peer_id = String::from("some_peer_id_1");
|
||||
@ -233,14 +233,14 @@ fn fold_json_path() {
|
||||
peer_pk: set_variable_vm_peer_id,
|
||||
service_id,
|
||||
function_name,
|
||||
json_path: String::from(".$.args.$.[9]"),
|
||||
lens: String::from(".$.args.$.[9]"),
|
||||
};
|
||||
|
||||
let second_arg_tetraplet = SecurityTetraplet {
|
||||
peer_pk: test_params.init_peer_id.clone(),
|
||||
service_id: String::new(),
|
||||
function_name: String::new(),
|
||||
json_path: String::new(),
|
||||
lens: String::new(),
|
||||
};
|
||||
|
||||
let expected_tetraplets = vec![vec![first_arg_tetraplet], vec![second_arg_tetraplet]];
|
||||
@ -281,14 +281,14 @@ fn check_tetraplet_works_correctly() {
|
||||
peer_pk: set_variable_vm_peer_id.clone(),
|
||||
service_id: service_id.clone(),
|
||||
function_name: function_name.clone(),
|
||||
json_path: String::from(".$.args"),
|
||||
lens: String::from(".$.args"),
|
||||
};
|
||||
|
||||
let second_arg_tetraplet = SecurityTetraplet {
|
||||
peer_pk: set_variable_vm_peer_id,
|
||||
service_id,
|
||||
function_name,
|
||||
json_path: String::from(".$.args.[0]"),
|
||||
lens: String::from(".$.args.[0]"),
|
||||
};
|
||||
|
||||
let expected_tetraplets = vec![vec![first_arg_tetraplet], vec![second_arg_tetraplet]];
|
||||
@ -359,7 +359,7 @@ fn tetraplet_with_wasm_modules() {
|
||||
serde_json::from_slice(&tetraplets).expect("default deserializer shouldn't fail");
|
||||
|
||||
let mut call_parameters = CallParameters::default();
|
||||
call_parameters.init_peer_id = ADMIN_PEER_PK.to_string();
|
||||
call_parameters.particle.init_peer_id = ADMIN_PEER_PK.to_string();
|
||||
call_parameters.tetraplets = tetraplets;
|
||||
|
||||
let mut service = services_inner.borrow_mut();
|
||||
@ -400,11 +400,11 @@ fn to_app_service_call_parameters(
|
||||
call_parameters: marine_rs_sdk::CallParameters,
|
||||
) -> fluence_app_service::CallParameters {
|
||||
fluence_app_service::CallParameters {
|
||||
init_peer_id: call_parameters.init_peer_id,
|
||||
particle: to_app_service_particle_parameters(call_parameters.particle),
|
||||
service_id: call_parameters.service_id,
|
||||
service_creator_peer_id: call_parameters.service_creator_peer_id,
|
||||
host_id: call_parameters.host_id,
|
||||
particle_id: call_parameters.particle_id,
|
||||
worker_id: call_parameters.worker_id,
|
||||
tetraplets: call_parameters
|
||||
.tetraplets
|
||||
.into_iter()
|
||||
@ -413,6 +413,20 @@ fn to_app_service_call_parameters(
|
||||
}
|
||||
}
|
||||
|
||||
fn to_app_service_particle_parameters(
|
||||
particle: marine_rs_sdk::ParticleParameters,
|
||||
) -> fluence_app_service::ParticleParameters {
|
||||
fluence_app_service::ParticleParameters {
|
||||
id: particle.id,
|
||||
init_peer_id: particle.init_peer_id,
|
||||
timestamp: particle.timestamp,
|
||||
ttl: particle.ttl,
|
||||
script: particle.script,
|
||||
signature: particle.signature,
|
||||
token: particle.token,
|
||||
}
|
||||
}
|
||||
|
||||
fn to_app_service_tetraplets(
|
||||
tetraplets: Vec<marine_rs_sdk::SecurityTetraplet>,
|
||||
) -> Vec<fluence_app_service::SecurityTetraplet> {
|
||||
@ -424,6 +438,6 @@ fn to_app_service_tetraplet(tetraplet: marine_rs_sdk::SecurityTetraplet) -> flue
|
||||
peer_pk: tetraplet.peer_pk,
|
||||
service_id: tetraplet.service_id,
|
||||
function_name: tetraplet.function_name,
|
||||
json_path: tetraplet.json_path,
|
||||
lens: tetraplet.lens,
|
||||
}
|
||||
}
|
||||
|
@ -10,6 +10,6 @@ path = "src/main.rs"
|
||||
|
||||
[dependencies]
|
||||
aquavm-air = { path = "../../../../../../../air" }
|
||||
marine-rs-sdk = "0.10.3"
|
||||
marine-rs-sdk = "0.14.0"
|
||||
|
||||
[workspace]
|
||||
|
@ -28,7 +28,7 @@ struct AuthResult {
|
||||
#[marine]
|
||||
fn is_authorized() -> AuthResult {
|
||||
let call_parameters = marine_rs_sdk::get_call_parameters();
|
||||
let is_authorized = call_parameters.init_peer_id == ADMIN_PEER_PK;
|
||||
let is_authorized = call_parameters.particle.init_peer_id == ADMIN_PEER_PK;
|
||||
|
||||
AuthResult {
|
||||
is_authorized
|
||||
|
@ -10,6 +10,6 @@ path = "src/main.rs"
|
||||
|
||||
[dependencies]
|
||||
aquavm-air = { path = "../../../../../../../air" }
|
||||
marine-rs-sdk = "0.10.3"
|
||||
marine-rs-sdk = "0.14.0"
|
||||
|
||||
[workspace]
|
||||
|
@ -24,8 +24,8 @@ fn delete(is_authorized: bool, _record_id: String) -> String {
|
||||
let tetraplets = call_parameters.tetraplets;
|
||||
let tetraplet = &tetraplets[0];
|
||||
|
||||
if tetraplet[0].json_path != "$.is_authorized" {
|
||||
return String::from("invalid json path in tetraplet");
|
||||
if tetraplet[0].lens != "$.is_authorized" {
|
||||
return String::from("invalid lambda in tetraplet");
|
||||
}
|
||||
|
||||
if is_authorized {
|
||||
|
@ -85,11 +85,11 @@ fn ap_with_string_literal() {
|
||||
executed_state::ap(0),
|
||||
executed_state::canon(json!(
|
||||
{
|
||||
"tetraplet": {"function_name": "", "json_path": "", "peer_pk": "vm_1_peer_id", "service_id": ""},
|
||||
"tetraplet": {"function_name": "", "lens": "", "peer_pk": "vm_1_peer_id", "service_id": ""},
|
||||
"values": [
|
||||
{
|
||||
"result": "some_string",
|
||||
"tetraplet": {"function_name": "", "json_path": "", "peer_pk": "", "service_id": ""},
|
||||
"tetraplet": {"function_name": "", "lens": "", "peer_pk": "", "service_id": ""},
|
||||
"trace_pos": 0
|
||||
}
|
||||
]
|
||||
@ -123,11 +123,11 @@ fn ap_with_bool_literal() {
|
||||
let expected_state = vec![
|
||||
executed_state::ap(0),
|
||||
executed_state::canon(json!( {
|
||||
"tetraplet": {"function_name": "", "json_path": "", "peer_pk": "vm_1_peer_id", "service_id": ""},
|
||||
"tetraplet": {"function_name": "", "lens": "", "peer_pk": "vm_1_peer_id", "service_id": ""},
|
||||
"values": [
|
||||
{
|
||||
"result": true,
|
||||
"tetraplet": {"function_name": "", "json_path": "", "peer_pk": "", "service_id": ""},
|
||||
"tetraplet": {"function_name": "", "lens": "", "peer_pk": "", "service_id": ""},
|
||||
"trace_pos": 0
|
||||
}
|
||||
]
|
||||
@ -160,11 +160,11 @@ fn ap_with_number_literal() {
|
||||
let expected_state = vec![
|
||||
executed_state::ap(0),
|
||||
executed_state::canon(json!({
|
||||
"tetraplet": {"function_name": "", "json_path": "", "peer_pk": "vm_1_peer_id", "service_id": ""},
|
||||
"tetraplet": {"function_name": "", "lens": "", "peer_pk": "vm_1_peer_id", "service_id": ""},
|
||||
"values": [
|
||||
{
|
||||
"result": 100,
|
||||
"tetraplet": {"function_name": "", "json_path": "", "peer_pk": "", "service_id": ""},
|
||||
"tetraplet": {"function_name": "", "lens": "", "peer_pk": "", "service_id": ""},
|
||||
"trace_pos": 0
|
||||
}
|
||||
]
|
||||
@ -197,11 +197,11 @@ fn ap_with_last_error() {
|
||||
let expected_state = vec![
|
||||
executed_state::ap(0),
|
||||
executed_state::canon(json!({
|
||||
"tetraplet": {"function_name": "", "json_path": "", "peer_pk": "vm_1_peer_id", "service_id": ""},
|
||||
"tetraplet": {"function_name": "", "lens": "", "peer_pk": "vm_1_peer_id", "service_id": ""},
|
||||
"values": [
|
||||
{
|
||||
"result": no_error_object(),
|
||||
"tetraplet": {"function_name": "", "json_path": "", "peer_pk": "", "service_id": ""},
|
||||
"tetraplet": {"function_name": "", "lens": "", "peer_pk": "", "service_id": ""},
|
||||
"trace_pos": 0
|
||||
}
|
||||
]
|
||||
@ -238,11 +238,11 @@ fn ap_with_error() {
|
||||
let expected_state = vec![
|
||||
executed_state::ap(0),
|
||||
executed_state::canon(json!({
|
||||
"tetraplet": {"function_name": "", "json_path": "", "peer_pk": "vm_1_peer_id", "service_id": ""},
|
||||
"tetraplet": {"function_name": "", "lens": "", "peer_pk": "vm_1_peer_id", "service_id": ""},
|
||||
"values": [
|
||||
{
|
||||
"result": no_error_object(),
|
||||
"tetraplet": {"function_name": "", "json_path": "", "peer_pk": "", "service_id": ""},
|
||||
"tetraplet": {"function_name": "", "lens": "", "peer_pk": "", "service_id": ""},
|
||||
"trace_pos": 0
|
||||
}
|
||||
]
|
||||
@ -344,10 +344,10 @@ fn ap_with_dst_stream() {
|
||||
val_1,
|
||||
executed_state::ap(0),
|
||||
executed_state::canon(json!({
|
||||
"tetraplet": {"function_name": "", "json_path": "", "peer_pk": "vm_2_peer_id", "service_id": ""},
|
||||
"tetraplet": {"function_name": "", "lens": "", "peer_pk": "vm_2_peer_id", "service_id": ""},
|
||||
"values": [{
|
||||
"result": {"field": "scalar_2"},
|
||||
"tetraplet": {"function_name": "", "json_path": "", "peer_pk": "vm_1_peer_id", "service_id": ""},
|
||||
"tetraplet": {"function_name": "", "lens": "", "peer_pk": "vm_1_peer_id", "service_id": ""},
|
||||
"provenance": Provenance::service_result(cid_1),
|
||||
}]
|
||||
})),
|
||||
@ -403,19 +403,19 @@ fn ap_canon_stream_with_lambda() {
|
||||
let canon_1 = executed_state::canon(json!({
|
||||
"tetraplet": {
|
||||
"function_name": "",
|
||||
"json_path": "",
|
||||
"lens": "",
|
||||
"peer_pk": "vm_1_peer_id",
|
||||
"service_id": "",
|
||||
},
|
||||
"values": [{
|
||||
"result": 0,
|
||||
"tetraplet": {"function_name": "", "json_path": "", "peer_pk": "vm_1_peer_id", "service_id": ""},
|
||||
"tetraplet": {"function_name": "", "lens": "", "peer_pk": "vm_1_peer_id", "service_id": ""},
|
||||
"provenance": Provenance::service_result(cid_1),
|
||||
}, {
|
||||
"result": 1,
|
||||
"tetraplet": {
|
||||
"function_name": "some_function_name",
|
||||
"json_path": "",
|
||||
"lens": "",
|
||||
"peer_pk": "vm_1_peer_id",
|
||||
"service_id": "some_service_name",
|
||||
},
|
||||
@ -429,10 +429,10 @@ fn ap_canon_stream_with_lambda() {
|
||||
canon_1,
|
||||
executed_state::ap(0),
|
||||
executed_state::canon(json!({
|
||||
"tetraplet": {"function_name": "", "json_path": "", "peer_pk": "vm_1_peer_id", "service_id": ""},
|
||||
"tetraplet": {"function_name": "", "lens": "", "peer_pk": "vm_1_peer_id", "service_id": ""},
|
||||
"values": [{
|
||||
"result": 1,
|
||||
"tetraplet": {"function_name": "some_function_name", "json_path": "", "peer_pk": "vm_1_peer_id", "service_id": "some_service_name"},
|
||||
"tetraplet": {"function_name": "some_function_name", "lens": "", "peer_pk": "vm_1_peer_id", "service_id": "some_service_name"},
|
||||
"provenance": Provenance::service_result(cid_2),
|
||||
}]
|
||||
})),
|
||||
@ -497,16 +497,16 @@ fn ap_canon_stream() {
|
||||
let cid_2 = extract_service_result_cid(&val_2);
|
||||
|
||||
let canon_1 = executed_state::canon(json!({
|
||||
"tetraplet": {"function_name": "", "json_path": "", "peer_pk": "vm_1_peer_id", "service_id": ""},
|
||||
"tetraplet": {"function_name": "", "lens": "", "peer_pk": "vm_1_peer_id", "service_id": ""},
|
||||
"values": [{
|
||||
"result": 0,
|
||||
"tetraplet": {"function_name": "", "json_path": "", "peer_pk": "vm_1_peer_id", "service_id": ""},
|
||||
"tetraplet": {"function_name": "", "lens": "", "peer_pk": "vm_1_peer_id", "service_id": ""},
|
||||
"provenance": Provenance::service_result(cid_1),
|
||||
}, {
|
||||
"result": 1,
|
||||
"tetraplet": {
|
||||
"function_name": "some_function_name",
|
||||
"json_path": "",
|
||||
"lens": "",
|
||||
"peer_pk": "vm_1_peer_id",
|
||||
"service_id": "some_service_name"
|
||||
},
|
||||
@ -521,10 +521,10 @@ fn ap_canon_stream() {
|
||||
canon_1,
|
||||
executed_state::ap(0),
|
||||
executed_state::canon(json!({
|
||||
"tetraplet": {"function_name": "", "json_path": "", "peer_pk": "vm_1_peer_id", "service_id": ""},
|
||||
"tetraplet": {"function_name": "", "lens": "", "peer_pk": "vm_1_peer_id", "service_id": ""},
|
||||
"values": [{
|
||||
"result": [0, 1],
|
||||
"tetraplet": {"function_name": "", "json_path": "", "peer_pk": "vm_1_peer_id", "service_id": ""},
|
||||
"tetraplet": {"function_name": "", "lens": "", "peer_pk": "vm_1_peer_id", "service_id": ""},
|
||||
"provenance": Provenance::canon(canon_cid_1),
|
||||
}]}
|
||||
)),
|
||||
@ -670,7 +670,7 @@ fn ap_canon_stream_map_with_string_key_accessor_lambda() {
|
||||
|
||||
let mut cid_tracker: ExecutionCidState = ExecutionCidState::new();
|
||||
let map_value = json!({"key": "key", "value": "value1"});
|
||||
let tetraplet = json!({"function_name": "", "json_path": "", "peer_pk": vm_1_peer_id, "service_id": ""});
|
||||
let tetraplet = json!({"function_name": "", "lens": "", "peer_pk": vm_1_peer_id, "service_id": ""});
|
||||
let call_arg = json!(["value1"]);
|
||||
|
||||
let expected_trace: Vec<ExecutedState> = vec![
|
||||
@ -726,7 +726,7 @@ fn ap_canon_stream_map_with_numeric_key_accessor_lambda() {
|
||||
|
||||
let mut cid_tracker: ExecutionCidState = ExecutionCidState::new();
|
||||
let map_value = json!({"key": 42, "value": "value1"});
|
||||
let tetraplet = json!({"function_name": "", "json_path": "", "peer_pk": vm_1_peer_id, "service_id": ""});
|
||||
let tetraplet = json!({"function_name": "", "lens": "", "peer_pk": vm_1_peer_id, "service_id": ""});
|
||||
let call_arg = json!(["value1"]);
|
||||
|
||||
let expected_trace: Vec<ExecutedState> = vec![
|
||||
|
@ -225,7 +225,7 @@ fn call_canon_stream_map_arg() {
|
||||
let actual_trace = trace_from_result(&result.last().unwrap());
|
||||
|
||||
let mut cid_tracker: ExecutionCidState = ExecutionCidState::new();
|
||||
let tetraplet = json!({"function_name": "", "json_path": "", "peer_pk": vm_1_peer_id, "service_id": ""});
|
||||
let tetraplet = json!({"function_name": "", "lens": "", "peer_pk": vm_1_peer_id, "service_id": ""});
|
||||
|
||||
let map_value_1 = json!({"key": "key", "value": "value1"});
|
||||
let map_value_2 = json!({"key": -42, "value": "value2"});
|
||||
@ -293,7 +293,7 @@ fn call_peer_id_from_canon_stream_map() {
|
||||
let actual_trace = trace_from_result(&result.last().unwrap());
|
||||
|
||||
let mut cid_tracker: ExecutionCidState = ExecutionCidState::new();
|
||||
let tetraplet = json!({"function_name": "", "json_path": "", "peer_pk": vm_1_peer_id, "service_id": ""});
|
||||
let tetraplet = json!({"function_name": "", "lens": "", "peer_pk": vm_1_peer_id, "service_id": ""});
|
||||
|
||||
let map_value_1 = json!({"key": "peerid", "value": vm_1_peer_id});
|
||||
let map_value_2 = json!({"key": -42, "value": "value2"});
|
||||
@ -360,8 +360,8 @@ fn call_module_func_from_canon_stream_map() {
|
||||
let actual_trace = trace_from_result(&result);
|
||||
|
||||
let mut cid_tracker: ExecutionCidState = ExecutionCidState::new();
|
||||
let tetraplet = json!({"function_name": "", "json_path": "", "peer_pk": vm_1_peer_id, "service_id": ""});
|
||||
let empty_tetraplet = json!({"function_name": "", "json_path": "", "peer_pk": "", "service_id": ""});
|
||||
let tetraplet = json!({"function_name": "", "lens": "", "peer_pk": vm_1_peer_id, "service_id": ""});
|
||||
let empty_tetraplet = json!({"function_name": "", "lens": "", "peer_pk": "", "service_id": ""});
|
||||
|
||||
let map_value_1 = json!({"key": "module", "value": "m"});
|
||||
let map_value_2 = json!({"key": "function", "value": "f"});
|
||||
|
@ -82,26 +82,26 @@ fn basic_canon() {
|
||||
.collect();
|
||||
|
||||
let expected_state = executed_state::canon(
|
||||
json!({"tetraplet": {"function_name": "", "json_path": "", "peer_pk": "A", "service_id": ""},
|
||||
json!({"tetraplet": {"function_name": "", "lens": "", "peer_pk": "A", "service_id": ""},
|
||||
"values": [{
|
||||
"result": "1",
|
||||
"tetraplet": {"function_name": "", "json_path": "", "peer_pk": "A", "service_id": ""},
|
||||
"tetraplet": {"function_name": "", "lens": "", "peer_pk": "A", "service_id": ""},
|
||||
"provenance": Provenance::service_result(cids[0].clone()),
|
||||
}, {
|
||||
"result": "2",
|
||||
"tetraplet": {"function_name": "", "json_path": "", "peer_pk": "A", "service_id": ""},
|
||||
"tetraplet": {"function_name": "", "lens": "", "peer_pk": "A", "service_id": ""},
|
||||
"provenance": Provenance::service_result(cids[1].clone()),
|
||||
}, {
|
||||
"result": "3",
|
||||
"tetraplet": {"function_name": "", "json_path": "", "peer_pk": "A", "service_id": ""},
|
||||
"tetraplet": {"function_name": "", "lens": "", "peer_pk": "A", "service_id": ""},
|
||||
"provenance": Provenance::service_result(cids[2].clone()),
|
||||
}, {
|
||||
"result": "4",
|
||||
"tetraplet": {"function_name": "", "json_path": "", "peer_pk": "A", "service_id": ""},
|
||||
"tetraplet": {"function_name": "", "lens": "", "peer_pk": "A", "service_id": ""},
|
||||
"provenance": Provenance::service_result(cids[3].clone()),
|
||||
}, {
|
||||
"result": "5",
|
||||
"tetraplet": {"function_name": "", "json_path": "", "peer_pk": "A", "service_id": ""},
|
||||
"tetraplet": {"function_name": "", "lens": "", "peer_pk": "A", "service_id": ""},
|
||||
"provenance": Provenance::service_result(cids[4].clone()),
|
||||
}]}),
|
||||
);
|
||||
@ -157,14 +157,14 @@ fn canon_fixes_stream_correct() {
|
||||
val_3,
|
||||
unused!(4, peer = peer_id_4, args = [4]),
|
||||
executed_state::canon(json!({
|
||||
"tetraplet": {"function_name": "", "json_path": "", "peer_pk": "peer_id_3", "service_id": ""},
|
||||
"tetraplet": {"function_name": "", "lens": "", "peer_pk": "peer_id_3", "service_id": ""},
|
||||
"values": [{
|
||||
"result": 2,
|
||||
"tetraplet": {"function_name": "", "json_path": "", "peer_pk": "peer_id_2", "service_id": ""},
|
||||
"tetraplet": {"function_name": "", "lens": "", "peer_pk": "peer_id_2", "service_id": ""},
|
||||
"provenance": Provenance::service_result(cid_2.clone()),
|
||||
}, {
|
||||
"result": 3,
|
||||
"tetraplet": {"function_name": "", "json_path": "", "peer_pk": "peer_id_3", "service_id": ""},
|
||||
"tetraplet": {"function_name": "", "lens": "", "peer_pk": "peer_id_3", "service_id": ""},
|
||||
"provenance": Provenance::service_result(cid_3.clone()),
|
||||
}]})),
|
||||
executed_state::par(1, 1),
|
||||
@ -183,14 +183,14 @@ fn canon_fixes_stream_correct() {
|
||||
stream!(3, 2, peer = peer_id_3, args = [3]),
|
||||
unused!(4, peer = peer_id_4, args = [4]),
|
||||
executed_state::canon(json!({
|
||||
"tetraplet": {"function_name": "", "json_path": "", "peer_pk": "peer_id_3", "service_id": ""},
|
||||
"tetraplet": {"function_name": "", "lens": "", "peer_pk": "peer_id_3", "service_id": ""},
|
||||
"values": [{
|
||||
"result": 2,
|
||||
"tetraplet": {"function_name": "", "json_path": "", "peer_pk": "peer_id_2", "service_id": ""},
|
||||
"tetraplet": {"function_name": "", "lens": "", "peer_pk": "peer_id_2", "service_id": ""},
|
||||
"provenance": Provenance::service_result(cid_2),
|
||||
}, {
|
||||
"result": 3,
|
||||
"tetraplet": {"function_name": "", "json_path": "", "peer_pk": "peer_id_3", "service_id": ""},
|
||||
"tetraplet": {"function_name": "", "lens": "", "peer_pk": "peer_id_3", "service_id": ""},
|
||||
"provenance": Provenance::service_result(cid_3),
|
||||
}]
|
||||
})),
|
||||
@ -309,7 +309,7 @@ fn canon_empty_stream() {
|
||||
let actual_trace = trace_from_result(&result);
|
||||
let expected_trace = vec![
|
||||
executed_state::canon(
|
||||
json!({"tetraplet": {"function_name": "", "json_path": "", "peer_pk": "peer_id_1", "service_id": ""}, "values": []}),
|
||||
json!({"tetraplet": {"function_name": "", "lens": "", "peer_pk": "peer_id_1", "service_id": ""}, "values": []}),
|
||||
),
|
||||
unused!(json!([]), peer = peer_id_1, args = [json!([])]),
|
||||
];
|
||||
@ -319,7 +319,7 @@ fn canon_empty_stream() {
|
||||
let actual_trace = trace_from_result(&result);
|
||||
let expected_trace = vec![
|
||||
executed_state::canon(
|
||||
json!({"tetraplet": {"function_name": "", "json_path": "", "peer_pk": "peer_id_1", "service_id": ""}, "values": []} ),
|
||||
json!({"tetraplet": {"function_name": "", "lens": "", "peer_pk": "peer_id_1", "service_id": ""}, "values": []} ),
|
||||
),
|
||||
unused!(json!([]), peer = peer_id_1, args = [json!([])]),
|
||||
];
|
||||
@ -346,7 +346,7 @@ fn canon_empty_not_writable_stream() {
|
||||
executed_state::par(1, 1),
|
||||
executed_state::request_sent_by(peer_id),
|
||||
executed_state::canon(
|
||||
json!({"tetraplet": {"function_name": "", "json_path": "", "peer_pk": "peer_id", "service_id": ""}, "values": []} ),
|
||||
json!({"tetraplet": {"function_name": "", "lens": "", "peer_pk": "peer_id", "service_id": ""}, "values": []} ),
|
||||
),
|
||||
];
|
||||
assert_eq!(actual_trace, expected_trace);
|
||||
@ -384,7 +384,7 @@ fn canon_over_later_defined_stream() {
|
||||
executed_state::par(1, 2),
|
||||
stream!(1, 0, peer = vm_peer_id_2, args = [1]),
|
||||
executed_state::canon(
|
||||
json!({"tetraplet": {"function_name": "", "json_path": "", "peer_pk": "vm_peer_id_1", "service_id": ""},"values": []}),
|
||||
json!({"tetraplet": {"function_name": "", "lens": "", "peer_pk": "vm_peer_id_1", "service_id": ""},"values": []}),
|
||||
),
|
||||
unused!(json!([]), peer = vm_peer_id_3, args = [json!([])]),
|
||||
];
|
||||
@ -429,7 +429,7 @@ fn canon_map_scalar() {
|
||||
|
||||
let mut cid_state: ExecutionCidState = ExecutionCidState::new();
|
||||
let value1 = json!({"k": "v1", "42": "v3", "-42": "v5"});
|
||||
let tetraplet = json!({"function_name": "", "json_path": "", "peer_pk": "vm_peer_id_1", "service_id": ""});
|
||||
let tetraplet = json!({"function_name": "", "lens": "", "peer_pk": "vm_peer_id_1", "service_id": ""});
|
||||
|
||||
let expected_trace = ExecutionTrace::from(vec![
|
||||
executed_state::ap(0),
|
||||
@ -439,7 +439,7 @@ fn canon_map_scalar() {
|
||||
executed_state::ap(0),
|
||||
executed_state::ap(0),
|
||||
canon_tracked(
|
||||
json!({"tetraplet": {"function_name": "", "json_path": "", "peer_pk": "vm_peer_id_1", "service_id": ""},
|
||||
json!({"tetraplet": {"function_name": "", "lens": "", "peer_pk": "vm_peer_id_1", "service_id": ""},
|
||||
"values": [
|
||||
{
|
||||
"result": value1,
|
||||
@ -501,7 +501,7 @@ fn canon_map_scalar_with_par() {
|
||||
|
||||
let mut cid_state: ExecutionCidState = ExecutionCidState::new();
|
||||
let value_1 = json!({"k": "v1", "-42": "v2"});
|
||||
let tetraplet = json!({"function_name": "", "json_path": "", "peer_pk": "vm_peer_id_1", "service_id": ""});
|
||||
let tetraplet = json!({"function_name": "", "lens": "", "peer_pk": "vm_peer_id_1", "service_id": ""});
|
||||
let mut states_vec = vec![
|
||||
executed_state::par(4, 3),
|
||||
executed_state::ap(0),
|
||||
@ -542,7 +542,7 @@ fn canon_map_scalar_with_par() {
|
||||
// remove last state to be replaced
|
||||
let can_req = states_vec.pop();
|
||||
assert_eq!(can_req, Some(canon_request(vm_peer_id_1)), "test invalid");
|
||||
let tetraplet = json!({"function_name": "", "json_path": "", "peer_pk": "vm_peer_id_2", "service_id": ""});
|
||||
let tetraplet = json!({"function_name": "", "lens": "", "peer_pk": "vm_peer_id_2", "service_id": ""});
|
||||
|
||||
states_vec.extend(vec![
|
||||
canon_tracked(
|
||||
@ -681,10 +681,10 @@ fn test_merge_executed() {
|
||||
s1,
|
||||
stream!(1, 1, peer = peer_id_2, args = [1]),
|
||||
executed_state::canon(
|
||||
json!({"tetraplet": {"function_name": "", "json_path": "", "peer_pk": other_peer_id, "service_id": ""},
|
||||
json!({"tetraplet": {"function_name": "", "lens": "", "peer_pk": other_peer_id, "service_id": ""},
|
||||
"values": [{
|
||||
"result": 1,
|
||||
"tetraplet": {"function_name": "", "json_path": "", "peer_pk": peer_id_1, "service_id": ""},
|
||||
"tetraplet": {"function_name": "", "lens": "", "peer_pk": peer_id_1, "service_id": ""},
|
||||
"provenance": Provenance::service_result(cid1),
|
||||
}]}),
|
||||
),
|
||||
@ -720,7 +720,7 @@ fn canon_stream_map() {
|
||||
let mut cid_state: ExecutionCidState = ExecutionCidState::new();
|
||||
let map_value1 = json!({"key": 42, "value": "value2"});
|
||||
let map_value2 = json!({"key": "key", "value": "value1"});
|
||||
let tetraplet = json!({"function_name": "", "json_path": "", "peer_pk": vm_peer_id_1_id, "service_id": ""});
|
||||
let tetraplet = json!({"function_name": "", "lens": "", "peer_pk": vm_peer_id_1_id, "service_id": ""});
|
||||
|
||||
let states_vec = vec![
|
||||
executed_state::ap(0),
|
||||
@ -788,8 +788,8 @@ fn canon_map_single_index_tetraplet_check() {
|
||||
let map_value3 = json!({"key": 42, "value": "value1"});
|
||||
let call_result = json!(["value2", "value1"]);
|
||||
|
||||
let tetraplet = json!({"function_name": "", "json_path": "", "peer_pk": "vm_peer_id_1", "service_id": ""});
|
||||
let empty_tetraplet = json!({"function_name": "", "json_path": "", "peer_pk": "", "service_id": ""});
|
||||
let tetraplet = json!({"function_name": "", "lens": "", "peer_pk": "vm_peer_id_1", "service_id": ""});
|
||||
let empty_tetraplet = json!({"function_name": "", "lens": "", "peer_pk": "", "service_id": ""});
|
||||
|
||||
let states_vec = vec![
|
||||
executed_state::ap(0),
|
||||
@ -880,9 +880,9 @@ fn canon_map_index_with_element_access_tetraplet_check() {
|
||||
let map_value2 = json!({"key": 42, "value": "value1"});
|
||||
let call_result = json!("value2");
|
||||
|
||||
let tetraplet = json!({"function_name": "", "json_path": "", "peer_pk": vm_peer_id_1, "service_id": ""});
|
||||
let map_value1_tetraplet = json!({"function_name": f1, "json_path": "", "peer_pk": vm_peer_id_1, "service_id": m1});
|
||||
let empty_tetraplet = json!({"function_name": "", "json_path": "", "peer_pk": "", "service_id": ""});
|
||||
let tetraplet = json!({"function_name": "", "lens": "", "peer_pk": vm_peer_id_1, "service_id": ""});
|
||||
let map_value1_tetraplet = json!({"function_name": f1, "lens": "", "peer_pk": vm_peer_id_1, "service_id": m1});
|
||||
let empty_tetraplet = json!({"function_name": "", "lens": "", "peer_pk": "", "service_id": ""});
|
||||
|
||||
let service_result = scalar_tracked!(
|
||||
call_result.clone(),
|
||||
@ -988,9 +988,9 @@ fn canon_map_index_with_element_and_attribute_tetraplet_check() {
|
||||
let map_value1 = json!({"key": 42, "value": call_result1});
|
||||
let map_value2 = json!({"key": 42, "value": "value1"});
|
||||
|
||||
let tetraplet = json!({"function_name": "", "json_path": "", "peer_pk": vm_peer_id_1, "service_id": ""});
|
||||
let map_value1_tetraplet = json!({"function_name": f1, "json_path": "", "peer_pk": vm_peer_id_1, "service_id": m1});
|
||||
let empty_tetraplet = json!({"function_name": "", "json_path": "", "peer_pk": "", "service_id": ""});
|
||||
let tetraplet = json!({"function_name": "", "lens": "", "peer_pk": vm_peer_id_1, "service_id": ""});
|
||||
let map_value1_tetraplet = json!({"function_name": f1, "lens": "", "peer_pk": vm_peer_id_1, "service_id": m1});
|
||||
let empty_tetraplet = json!({"function_name": "", "lens": "", "peer_pk": "", "service_id": ""});
|
||||
|
||||
let service_result = scalar_tracked!(
|
||||
call_result1.clone(),
|
||||
@ -1096,8 +1096,8 @@ fn canon_map_non_existing_index_tetraplet_check() {
|
||||
let map_value1 = json!({"key": 42, "value": "value2"});
|
||||
let call_result = json!([]);
|
||||
|
||||
let tetraplet = json!({"function_name": "", "json_path": "", "peer_pk": "vm_peer_id_1", "service_id": ""});
|
||||
let empty_tetraplet = json!({"function_name": "", "json_path": "", "peer_pk": "", "service_id": ""});
|
||||
let tetraplet = json!({"function_name": "", "lens": "", "peer_pk": "vm_peer_id_1", "service_id": ""});
|
||||
let empty_tetraplet = json!({"function_name": "", "lens": "", "peer_pk": "", "service_id": ""});
|
||||
|
||||
let states_vec = vec![
|
||||
executed_state::ap(0),
|
||||
@ -1170,8 +1170,8 @@ fn canon_map_non_existing_index_and_element_tetraplet_check() {
|
||||
let map_value3 = json!({"key": 42, "value": "value1"});
|
||||
let call_result = json!([]);
|
||||
|
||||
let tetraplet = json!({"function_name": "", "json_path": "", "peer_pk": "vm_peer_id_1", "service_id": ""});
|
||||
let empty_tetraplet = json!({"function_name": "", "json_path": "", "peer_pk": "", "service_id": ""});
|
||||
let tetraplet = json!({"function_name": "", "lens": "", "peer_pk": "vm_peer_id_1", "service_id": ""});
|
||||
let empty_tetraplet = json!({"function_name": "", "lens": "", "peer_pk": "", "service_id": ""});
|
||||
|
||||
let states_vec = vec![
|
||||
executed_state::ap(0),
|
||||
@ -1261,7 +1261,7 @@ fn canon_map_2_scalar_tetraplet_check() {
|
||||
let map_value1 = json!({"42": "value1", "key": "value1"});
|
||||
let call_result = map_value1.clone();
|
||||
|
||||
let tetraplet = json!({"function_name": "", "json_path": "", "peer_pk": vm_peer_id_1, "service_id": ""});
|
||||
let tetraplet = json!({"function_name": "", "lens": "", "peer_pk": vm_peer_id_1, "service_id": ""});
|
||||
|
||||
let states_vec = vec![
|
||||
executed_state::ap(0),
|
||||
@ -1336,7 +1336,7 @@ fn canon_map_2_scalar_with_lens_tetraplet_check() {
|
||||
let map_value1 = json!({"42": "value1", "key": "value1"});
|
||||
let call_result = json!("value1");
|
||||
|
||||
let tetraplet = json!({"function_name": "", "json_path": "", "peer_pk": vm_peer_id_1, "service_id": ""});
|
||||
let tetraplet = json!({"function_name": "", "lens": "", "peer_pk": vm_peer_id_1, "service_id": ""});
|
||||
|
||||
let states_vec = vec![
|
||||
executed_state::ap(0),
|
||||
@ -1412,7 +1412,7 @@ fn canon_map_with_lens_by_key_number_tetraplet_check() {
|
||||
let map_value1 = json!({"42": "value1", "key": "value1"});
|
||||
let call_result = map_value1.clone();
|
||||
|
||||
let tetraplet = json!({"function_name": "", "json_path": "", "peer_pk": "vm_peer_id_1", "service_id": ""});
|
||||
let tetraplet = json!({"function_name": "", "lens": "", "peer_pk": "vm_peer_id_1", "service_id": ""});
|
||||
|
||||
let states_vec = vec![
|
||||
executed_state::ap(0),
|
||||
@ -1492,7 +1492,7 @@ fn canon_map_with_lens_by_key_number_key_tetraplet_check() {
|
||||
let map_value1 = json!({"42": "value1", "key": "value1"});
|
||||
let call_result = map_value1.clone();
|
||||
|
||||
let tetraplet = json!({"function_name": "", "json_path": "", "peer_pk": "vm_peer_id_1", "service_id": ""});
|
||||
let tetraplet = json!({"function_name": "", "lens": "", "peer_pk": "vm_peer_id_1", "service_id": ""});
|
||||
|
||||
let states_vec = vec![
|
||||
executed_state::ap(0),
|
||||
|
@ -220,7 +220,7 @@ fn empty_literal_array_fold() {
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn empty_fold_json_path() {
|
||||
fn empty_fold_lens() {
|
||||
let mut vm = create_avm(echo_call_service(), "A");
|
||||
let mut set_variable_vm = create_avm(set_variable_call_service(json!({ "messages": [] })), "set_variable");
|
||||
|
||||
@ -605,7 +605,7 @@ fn fold_scalar_seq_next_completes_with_null() {
|
||||
executed_state::par(1, 0),
|
||||
stream!(service_result.clone(), 0, peer = vm_peer_id, args = [2]),
|
||||
executed_state::canon(
|
||||
json!({"tetraplet": {"function_name": "", "json_path": "", "peer_pk": "vm_peer_id", "service_id": ""}, "values": []}),
|
||||
json!({"tetraplet": {"function_name": "", "lens": "", "peer_pk": "vm_peer_id", "service_id": ""}, "values": []}),
|
||||
),
|
||||
unused!(service_result, peer = vm_peer_id, args = [json!([])]),
|
||||
]);
|
||||
@ -870,10 +870,10 @@ fn fold_stream_map() {
|
||||
stream_1,
|
||||
executed_state::canon_tracked(
|
||||
json!({
|
||||
"tetraplet": {"function_name": "", "json_path": "", "peer_pk": vm_1_peer_id, "service_id": ""},
|
||||
"tetraplet": {"function_name": "", "lens": "", "peer_pk": vm_1_peer_id, "service_id": ""},
|
||||
"values": [{
|
||||
"result": service_result.clone(),
|
||||
"tetraplet": {"function_name": "f2", "json_path": "", "peer_pk": vm_1_peer_id, "service_id": "m2"},
|
||||
"tetraplet": {"function_name": "f2", "lens": "", "peer_pk": vm_1_peer_id, "service_id": "m2"},
|
||||
"provenance": Provenance::service_result(cid_1),
|
||||
}]
|
||||
}),
|
||||
@ -967,7 +967,7 @@ fn fold_canon_stream_map() {
|
||||
let actual_trace = trace_from_result(&result.last().unwrap());
|
||||
|
||||
let mut cid_tracker: ExecutionCidState = ExecutionCidState::new();
|
||||
let tetraplet = json!({"function_name": "", "json_path": "", "peer_pk": vm_1_peer_id, "service_id": ""});
|
||||
let tetraplet = json!({"function_name": "", "lens": "", "peer_pk": vm_1_peer_id, "service_id": ""});
|
||||
|
||||
let map_value_1 = json!({"key": "key", "value": "value1"});
|
||||
let map_value_2 = json!({"key": -42, "value": "value2"});
|
||||
@ -1062,7 +1062,7 @@ fn fold_map_and_canon_map_orders_are_same() {
|
||||
let actual_trace = trace_from_result(&result.last().unwrap());
|
||||
|
||||
let mut cid_tracker: ExecutionCidState = ExecutionCidState::new();
|
||||
let tetraplet = json!({"function_name": "", "json_path": "", "peer_pk": vm_1_peer_id, "service_id": ""});
|
||||
let tetraplet = json!({"function_name": "", "lens": "", "peer_pk": vm_1_peer_id, "service_id": ""});
|
||||
|
||||
let map_value_1 = json!({"key": "key", "value": "value1"});
|
||||
let map_value_2 = json!({"key": -42, "value": "value2"});
|
||||
|
@ -119,7 +119,7 @@ fn several_restrictions() {
|
||||
let expected_trace = ExecutionTrace::from(vec![
|
||||
stream!("test", 0, peer = vm_peer_id, args = ["test"]),
|
||||
executed_state::canon(json!({
|
||||
"tetraplet": {"function_name": "", "json_path": "", "peer_pk": "vm_peer_id", "service_id": ""},
|
||||
"tetraplet": {"function_name": "", "lens": "", "peer_pk": "vm_peer_id", "service_id": ""},
|
||||
"values": [
|
||||
|
||||
]
|
||||
@ -184,11 +184,11 @@ fn check_influence_to_not_restricted() {
|
||||
executed_state::ap(0),
|
||||
executed_state::canon(json!(
|
||||
{
|
||||
"tetraplet": {"function_name": "", "json_path": "", "peer_pk": "vm_peer_id", "service_id": ""},
|
||||
"tetraplet": {"function_name": "", "lens": "", "peer_pk": "vm_peer_id", "service_id": ""},
|
||||
"values": [
|
||||
{
|
||||
"result": "more",
|
||||
"tetraplet": {"function_name": "", "json_path": "", "peer_pk": "", "service_id": ""},
|
||||
"tetraplet": {"function_name": "", "lens": "", "peer_pk": "", "service_id": ""},
|
||||
"trace_pos": 2
|
||||
}
|
||||
]
|
||||
@ -203,11 +203,11 @@ fn check_influence_to_not_restricted() {
|
||||
),
|
||||
executed_state::canon(json!(
|
||||
{
|
||||
"tetraplet": {"function_name": "", "json_path": "", "peer_pk": "vm_peer_id", "service_id": ""},
|
||||
"tetraplet": {"function_name": "", "lens": "", "peer_pk": "vm_peer_id", "service_id": ""},
|
||||
"values": [
|
||||
{
|
||||
"result": "push more",
|
||||
"tetraplet": {"function_name": "", "json_path": "", "peer_pk": "", "service_id": ""},
|
||||
"tetraplet": {"function_name": "", "lens": "", "peer_pk": "", "service_id": ""},
|
||||
"trace_pos": 0
|
||||
}
|
||||
]
|
||||
@ -221,11 +221,11 @@ fn check_influence_to_not_restricted() {
|
||||
args = [json!(["push more"])]
|
||||
),
|
||||
executed_state::canon(json!({
|
||||
"tetraplet": {"function_name": "", "json_path": "", "peer_pk": "vm_peer_id", "service_id": ""},
|
||||
"tetraplet": {"function_name": "", "lens": "", "peer_pk": "vm_peer_id", "service_id": ""},
|
||||
"values": [
|
||||
{
|
||||
"result": "push more",
|
||||
"tetraplet": {"function_name": "", "json_path": "", "peer_pk": "", "service_id": ""},
|
||||
"tetraplet": {"function_name": "", "lens": "", "peer_pk": "", "service_id": ""},
|
||||
"trace_pos": 1
|
||||
}
|
||||
]
|
||||
@ -238,7 +238,7 @@ fn check_influence_to_not_restricted() {
|
||||
args = [json!(["push more"])]
|
||||
),
|
||||
executed_state::canon(json!({
|
||||
"tetraplet": {"function_name": "", "json_path": "", "peer_pk": "vm_peer_id", "service_id": ""},
|
||||
"tetraplet": {"function_name": "", "lens": "", "peer_pk": "vm_peer_id", "service_id": ""},
|
||||
"values": [
|
||||
]
|
||||
})),
|
||||
@ -298,11 +298,11 @@ fn new_in_fold_with_ap() {
|
||||
scalar!(json!([1, 2, 3, 4, 5]), peer = set_variable_peer_id),
|
||||
executed_state::ap(0),
|
||||
executed_state::canon(json!({
|
||||
"tetraplet": {"function_name": "", "json_path": "", "peer_pk": "vm_peer_id", "service_id": ""},
|
||||
"tetraplet": {"function_name": "", "lens": "", "peer_pk": "vm_peer_id", "service_id": ""},
|
||||
"values": [
|
||||
{
|
||||
"result": "none",
|
||||
"tetraplet": {"function_name": "", "json_path": "", "peer_pk": "", "service_id": ""},
|
||||
"tetraplet": {"function_name": "", "lens": "", "peer_pk": "", "service_id": ""},
|
||||
"trace_pos": 1
|
||||
}
|
||||
]
|
||||
@ -310,11 +310,11 @@ fn new_in_fold_with_ap() {
|
||||
scalar!(json!(["none"]), peer = vm_peer_id, args = [json!(["none"])]),
|
||||
executed_state::ap(0),
|
||||
executed_state::canon(json!({
|
||||
"tetraplet": {"function_name": "", "json_path": "", "peer_pk": "vm_peer_id", "service_id": ""},
|
||||
"tetraplet": {"function_name": "", "lens": "", "peer_pk": "vm_peer_id", "service_id": ""},
|
||||
"values": [
|
||||
{
|
||||
"result": "none",
|
||||
"tetraplet": {"function_name": "", "json_path": "", "peer_pk": "", "service_id": ""},
|
||||
"tetraplet": {"function_name": "", "lens": "", "peer_pk": "", "service_id": ""},
|
||||
"trace_pos": 4
|
||||
}
|
||||
]
|
||||
@ -322,11 +322,11 @@ fn new_in_fold_with_ap() {
|
||||
scalar!(json!(["none"]), peer = vm_peer_id, args = [json!(["none"])]),
|
||||
executed_state::ap(0),
|
||||
executed_state::canon(json!({
|
||||
"tetraplet": {"function_name": "", "json_path": "", "peer_pk": "vm_peer_id", "service_id": ""},
|
||||
"tetraplet": {"function_name": "", "lens": "", "peer_pk": "vm_peer_id", "service_id": ""},
|
||||
"values": [
|
||||
{
|
||||
"result": "none",
|
||||
"tetraplet": {"function_name": "", "json_path": "", "peer_pk": "", "service_id": ""},
|
||||
"tetraplet": {"function_name": "", "lens": "", "peer_pk": "", "service_id": ""},
|
||||
"trace_pos": 7
|
||||
}
|
||||
]
|
||||
@ -334,11 +334,11 @@ fn new_in_fold_with_ap() {
|
||||
scalar!(json!(["none"]), peer = vm_peer_id, args = [json!(["none"])]),
|
||||
executed_state::ap(0),
|
||||
executed_state::canon(json!({
|
||||
"tetraplet": {"function_name": "", "json_path": "", "peer_pk": "vm_peer_id", "service_id": ""},
|
||||
"tetraplet": {"function_name": "", "lens": "", "peer_pk": "vm_peer_id", "service_id": ""},
|
||||
"values": [
|
||||
{
|
||||
"result": "none",
|
||||
"tetraplet": {"function_name": "", "json_path": "", "peer_pk": "", "service_id": ""},
|
||||
"tetraplet": {"function_name": "", "lens": "", "peer_pk": "", "service_id": ""},
|
||||
"trace_pos": 10
|
||||
}
|
||||
]
|
||||
@ -346,11 +346,11 @@ fn new_in_fold_with_ap() {
|
||||
scalar!(json!(["none"]), peer = vm_peer_id, args = [json!(["none"])]),
|
||||
executed_state::ap(0),
|
||||
executed_state::canon(json!({
|
||||
"tetraplet": {"function_name": "", "json_path": "", "peer_pk": "vm_peer_id", "service_id": ""},
|
||||
"tetraplet": {"function_name": "", "lens": "", "peer_pk": "vm_peer_id", "service_id": ""},
|
||||
"values": [
|
||||
{
|
||||
"result": "none",
|
||||
"tetraplet": {"function_name": "", "json_path": "", "peer_pk": "", "service_id": ""},
|
||||
"tetraplet": {"function_name": "", "lens": "", "peer_pk": "", "service_id": ""},
|
||||
"trace_pos": 13
|
||||
}
|
||||
]
|
||||
|
@ -96,21 +96,21 @@ fn issue_211() {
|
||||
executed_state::par(1, 0),
|
||||
executed_state::ap(0),
|
||||
executed_state::canon(json!({
|
||||
"tetraplet": {"function_name": "", "json_path": "", "peer_pk": peer_1_id, "service_id": ""},
|
||||
"tetraplet": {"function_name": "", "lens": "", "peer_pk": peer_1_id, "service_id": ""},
|
||||
"values": [
|
||||
{
|
||||
"result": 1,
|
||||
"tetraplet": {"function_name": "nodes", "json_path": ".$.[0]", "peer_pk": peer_1_id, "service_id": "getdatasrv..1"},
|
||||
"tetraplet": {"function_name": "nodes", "lens": ".$.[0]", "peer_pk": peer_1_id, "service_id": "getdatasrv..1"},
|
||||
"provenance": Provenance::service_result(cid_2.clone()),
|
||||
},
|
||||
{
|
||||
"result": 2,
|
||||
"tetraplet": {"function_name": "nodes", "json_path": ".$.[1]", "peer_pk": peer_1_id, "service_id": "getdatasrv..1"},
|
||||
"tetraplet": {"function_name": "nodes", "lens": ".$.[1]", "peer_pk": peer_1_id, "service_id": "getdatasrv..1"},
|
||||
"provenance": Provenance::service_result(cid_2.clone()),
|
||||
},
|
||||
{
|
||||
"result": 3,
|
||||
"tetraplet": {"function_name": "nodes", "json_path": ".$.[2]", "peer_pk": peer_1_id, "service_id": "getdatasrv..1"},
|
||||
"tetraplet": {"function_name": "nodes", "lens": ".$.[2]", "peer_pk": peer_1_id, "service_id": "getdatasrv..1"},
|
||||
"provenance": Provenance::service_result(cid_2.clone()),
|
||||
},
|
||||
]
|
||||
@ -123,21 +123,21 @@ fn issue_211() {
|
||||
args = vec![json!(3), json!([1, 2, 3])]
|
||||
),
|
||||
executed_state::canon(json!({
|
||||
"tetraplet": {"function_name": "", "json_path": "", "peer_pk": peer_1_id, "service_id": ""},
|
||||
"tetraplet": {"function_name": "", "lens": "", "peer_pk": peer_1_id, "service_id": ""},
|
||||
"values": [
|
||||
{
|
||||
"result": 1,
|
||||
"tetraplet": {"function_name": "nodes", "json_path": ".$.[0]", "peer_pk": peer_1_id, "service_id": "getdatasrv..1"},
|
||||
"tetraplet": {"function_name": "nodes", "lens": ".$.[0]", "peer_pk": peer_1_id, "service_id": "getdatasrv..1"},
|
||||
"provenance": Provenance::service_result(cid_2.clone()),
|
||||
},
|
||||
{
|
||||
"result": 2,
|
||||
"tetraplet": {"function_name": "nodes", "json_path": ".$.[1]", "peer_pk": peer_1_id, "service_id": "getdatasrv..1"},
|
||||
"tetraplet": {"function_name": "nodes", "lens": ".$.[1]", "peer_pk": peer_1_id, "service_id": "getdatasrv..1"},
|
||||
"provenance": Provenance::service_result(cid_2.clone()),
|
||||
},
|
||||
{
|
||||
"result": 3,
|
||||
"tetraplet": {"function_name": "nodes", "json_path": ".$.[2]", "peer_pk": peer_1_id, "service_id": "getdatasrv..1"},
|
||||
"tetraplet": {"function_name": "nodes", "lens": ".$.[2]", "peer_pk": peer_1_id, "service_id": "getdatasrv..1"},
|
||||
"provenance": Provenance::service_result(cid_2),
|
||||
},
|
||||
]
|
||||
|
@ -70,18 +70,18 @@ fn issue_302() {
|
||||
val_1,
|
||||
val_0,
|
||||
executed_state::canon(json!({
|
||||
"tetraplet": {"function_name": "", "json_path": "", "peer_pk": "peer_id_2", "service_id": ""},
|
||||
"tetraplet": {"function_name": "", "lens": "", "peer_pk": "peer_id_2", "service_id": ""},
|
||||
"values": [{
|
||||
"result": 1,
|
||||
"tetraplet": {"function_name": "", "json_path": "", "peer_pk": "peer_id_2", "service_id": ""},
|
||||
"tetraplet": {"function_name": "", "lens": "", "peer_pk": "peer_id_2", "service_id": ""},
|
||||
"provenance": Provenance::service_result(cid_1),
|
||||
}, {
|
||||
"result": 2,
|
||||
"tetraplet": {"function_name": "", "json_path": "", "peer_pk": "peer_id_1", "service_id": ""},
|
||||
"tetraplet": {"function_name": "", "lens": "", "peer_pk": "peer_id_1", "service_id": ""},
|
||||
"provenance": Provenance::service_result(cid_2),
|
||||
}, {
|
||||
"result": 0,
|
||||
"tetraplet": {"function_name": "", "json_path": "", "peer_pk": "peer_id_3", "service_id": ""},
|
||||
"tetraplet": {"function_name": "", "lens": "", "peer_pk": "peer_id_3", "service_id": ""},
|
||||
"provenance": Provenance::service_result(cid_0),
|
||||
}],
|
||||
})),
|
||||
|
@ -387,11 +387,11 @@ fn canon_result_error() {
|
||||
"#
|
||||
);
|
||||
let prev_tetraplet = json!({
|
||||
"tetraplet": {"function_name": "s", "json_path": "", "peer_pk": "vm_peer_id_1", "service_id": ""},
|
||||
"tetraplet": {"function_name": "s", "lens": "", "peer_pk": "vm_peer_id_1", "service_id": ""},
|
||||
"values": [
|
||||
{
|
||||
"result": 42,
|
||||
"tetraplet": {"function_name": "s", "json_path": "", "peer_pk": "vm_peer_id_1", "service_id": ""},
|
||||
"tetraplet": {"function_name": "s", "lens": "", "peer_pk": "vm_peer_id_1", "service_id": ""},
|
||||
},
|
||||
]
|
||||
});
|
||||
@ -399,11 +399,11 @@ fn canon_result_error() {
|
||||
let prev_cid = extract_canon_result_cid(&prev_trace[0]);
|
||||
let prev_data = raw_data_from_trace(prev_trace, <_>::default());
|
||||
let curr_tetraplet = json!({
|
||||
"tetraplet": {"function_name": "s", "json_path": "", "peer_pk": "vm_peer_id_1", "service_id": ""},
|
||||
"tetraplet": {"function_name": "s", "lens": "", "peer_pk": "vm_peer_id_1", "service_id": ""},
|
||||
"values": [
|
||||
{
|
||||
"result": 43,
|
||||
"tetraplet": {"function_name": "s", "json_path": "", "peer_pk": "vm_peer_id_1", "service_id": ""},
|
||||
"tetraplet": {"function_name": "s", "lens": "", "peer_pk": "vm_peer_id_1", "service_id": ""},
|
||||
},
|
||||
]
|
||||
});
|
||||
|
@ -167,9 +167,9 @@ export interface ResolvedTriplet {
|
||||
*/
|
||||
export interface SecurityTetraplet extends ResolvedTriplet {
|
||||
/**
|
||||
* Value was produced by applying this `json_path` to the output from `call_service`.
|
||||
* Value was produced by applying this `lens` to the output from `call_service`.
|
||||
*/
|
||||
json_path: string;
|
||||
lens: string;
|
||||
}
|
||||
|
||||
export type JSONValue = string | number | boolean | { [x: string]: JSONValue } | Array<JSONValue>;
|
||||
|
@ -19,7 +19,7 @@ air-interpreter-interface = { version = "0.18.0", path = "../../crates/air-lib/i
|
||||
air-interpreter-sede = { version = "0.1.0", path = "../../crates/air-lib/interpreter-sede" }
|
||||
air-utils = { version = "0.3.0", path = "../../crates/air-lib/utils" }
|
||||
avm-data-store = { version = "0.7.8", path = "../../crates/data-store" }
|
||||
marine-runtime = "0.32.0"
|
||||
marine-runtime = "0.35.0"
|
||||
polyplets = { version = "0.6.0", path = "../../crates/air-lib/polyplets" }
|
||||
avm-interface = { version = "0.32.0", path = "../../avm/interface" }
|
||||
|
||||
|
@ -176,11 +176,11 @@ impl<'input> CallVariableParser<'input> {
|
||||
fn try_parse_as_variable(&mut self) -> LexerResult<()> {
|
||||
if self.try_parse_as_canon()?
|
||||
|| self.try_parse_as_stream()?
|
||||
|| self.try_parse_as_json_path_start()?
|
||||
|| self.try_parse_as_lens_start()?
|
||||
{
|
||||
return Ok(());
|
||||
} else if self.is_json_path_started() {
|
||||
self.try_parse_as_json_path()?;
|
||||
} else if self.is_lens_started() {
|
||||
self.try_parse_as_lens()?;
|
||||
} else {
|
||||
self.try_parse_as_alphanumeric()?;
|
||||
}
|
||||
@ -219,7 +219,7 @@ impl<'input> CallVariableParser<'input> {
|
||||
Ok(false)
|
||||
}
|
||||
|
||||
fn try_parse_as_json_path_start(&mut self) -> LexerResult<bool> {
|
||||
fn try_parse_as_lens_start(&mut self) -> LexerResult<bool> {
|
||||
self.try_parse_first_met_dot()
|
||||
}
|
||||
|
||||
@ -232,8 +232,8 @@ impl<'input> CallVariableParser<'input> {
|
||||
Ok(())
|
||||
}
|
||||
|
||||
fn try_parse_as_json_path(&mut self) -> LexerResult<()> {
|
||||
if !self.json_path_allowed_char() && !self.try_parse_as_flattening() {
|
||||
fn try_parse_as_lens(&mut self) -> LexerResult<()> {
|
||||
if !self.lens_allowed_char() && !self.try_parse_as_flattening() {
|
||||
let error_pos = self.pos_in_string_to_parse();
|
||||
return Err(LexerError::invalid_lambda(error_pos..error_pos));
|
||||
}
|
||||
@ -267,7 +267,7 @@ impl<'input> CallVariableParser<'input> {
|
||||
Ok(false)
|
||||
}
|
||||
|
||||
fn is_json_path_started(&self) -> bool {
|
||||
fn is_lens_started(&self) -> bool {
|
||||
self.dot_met()
|
||||
}
|
||||
|
||||
@ -279,8 +279,8 @@ impl<'input> CallVariableParser<'input> {
|
||||
super::is_air_alphanumeric(self.current_char())
|
||||
}
|
||||
|
||||
fn json_path_allowed_char(&self) -> bool {
|
||||
super::is_json_path_allowed_char(self.current_char())
|
||||
fn lens_allowed_char(&self) -> bool {
|
||||
super::is_lens_allowed_char(self.current_char())
|
||||
}
|
||||
|
||||
fn pos_in_string_to_parse(&self) -> AirPos {
|
||||
|
@ -34,4 +34,4 @@ pub use token::Token;
|
||||
pub(super) type LexerResult<T> = std::result::Result<T, LexerError>;
|
||||
|
||||
use utils::is_air_alphanumeric;
|
||||
use utils::is_json_path_allowed_char;
|
||||
use utils::is_lens_allowed_char;
|
||||
|
@ -18,10 +18,7 @@ pub(super) fn is_air_alphanumeric(ch: char) -> bool {
|
||||
ch.is_alphanumeric() || ch == '_' || ch == '-'
|
||||
}
|
||||
|
||||
pub(super) fn is_json_path_allowed_char(ch: char) -> bool {
|
||||
// we don't have spec for json path now, but some possible example could be found here
|
||||
// https://packagist.org/packages/softcreatr/jsonpath
|
||||
|
||||
pub(super) fn is_lens_allowed_char(ch: char) -> bool {
|
||||
// good old switch faster here than hash set
|
||||
match ch {
|
||||
'$' => true,
|
||||
|
@ -25,7 +25,7 @@ use lalrpop_util::ParseError;
|
||||
use std::rc::Rc;
|
||||
|
||||
#[test]
|
||||
fn parse_json_path() {
|
||||
fn parse_lambda() {
|
||||
let source_code = r#"
|
||||
(call peer_id.$.a! ("service_id" "function_name") ["hello" name] $void)
|
||||
"#;
|
||||
@ -125,7 +125,7 @@ fn parse_undefined_variable() {
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn parse_undefined_stream_without_json_path() {
|
||||
fn parse_undefined_stream_without_lambda() {
|
||||
let source_code = r#"
|
||||
(call "" ("" "") [$stream])
|
||||
"#;
|
||||
@ -247,7 +247,7 @@ fn parse_lambda_with_scalars_complex() {
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn json_path_square_braces() {
|
||||
fn lambda_square_braces() {
|
||||
let source_code = r#"
|
||||
(call u.$.peer_id! ("return" "") [u.$[1].cde[0][0].abc u.$.name] $void)
|
||||
"#;
|
||||
|
@ -299,7 +299,7 @@ fn fold_with_scalar_and_last_instruction() {
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn fold_json_path() {
|
||||
fn fold_lambda() {
|
||||
let source_code = r#"
|
||||
; comment
|
||||
(fold members.$.[123321] m (null)) ;;; comment
|
||||
|
@ -15,11 +15,11 @@ name = "air_interpreter_interface"
|
||||
path = "src/lib.rs"
|
||||
|
||||
[dependencies]
|
||||
marine-rs-sdk = {version = "0.10.3", optional = true }
|
||||
marine-rs-sdk = {version = "0.14.0", optional = true }
|
||||
fluence-it-types = { version = "0.4.1", optional = true }
|
||||
air-interpreter-sede = { version = "0.1.0", path = "../interpreter-sede", features = ["msgpack"] }
|
||||
|
||||
marine-call-parameters = { version = "0.10.3", default-features = false }
|
||||
marine-call-parameters = { version = "0.14.0", default-features = false }
|
||||
serde = "1.0.190"
|
||||
serde_json = "1.0.108"
|
||||
serde_bytes = "0.11.12"
|
||||
|
@ -14,7 +14,7 @@ categories = ["wasm"]
|
||||
rmp-serde = { version = "1.1.2", optional = true }
|
||||
serde = { version = "1.0.190" }
|
||||
serde_json = { version = "1.0.108" }
|
||||
marine-rs-sdk = { version = "0.10.3", optional = true }
|
||||
marine-rs-sdk = { version = "0.14.0", optional = true }
|
||||
unsigned-varint = { version = "0.8.0", default-features = false, features = ["std"] }
|
||||
thiserror = "1.0.50"
|
||||
serde_bytes = "0.11.12"
|
||||
|
@ -15,7 +15,7 @@ name = "polyplets"
|
||||
path = "src/lib.rs"
|
||||
|
||||
[dependencies]
|
||||
marine-call-parameters = { version = "0.10.3", default-features = false }
|
||||
marine-call-parameters = { version = "0.14.0", default-features = false }
|
||||
|
||||
serde = { version = "1.0.190", features = ["rc", "derive"] }
|
||||
|
||||
|
@ -36,7 +36,7 @@ impl From<ResolvedTriplet> for SecurityTetraplet {
|
||||
peer_pk: triplet.peer_pk,
|
||||
service_id: triplet.service_id,
|
||||
function_name: triplet.function_name,
|
||||
json_path: String::new(),
|
||||
lens: String::new(),
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -23,7 +23,7 @@ air-interpreter-sede = { version = "0.1.0", path = "../interpreter-sede" }
|
||||
air-interpreter-signatures = { version = "0.1.7", path = "../interpreter-signatures" }
|
||||
avm-interface = { version = "0.32.0", path = "../../../avm/interface" }
|
||||
avm-server = { version = "0.36.0", path = "../../../avm/server" }
|
||||
marine-rs-sdk = "0.10.3"
|
||||
marine-rs-sdk = "0.14.0"
|
||||
|
||||
object-pool = "0.5.4"
|
||||
once_cell = "1.17.1"
|
||||
|
@ -323,8 +323,8 @@ impl ExecutedCallBuilder {
|
||||
self
|
||||
}
|
||||
|
||||
pub fn json_path(mut self, json_path: impl Into<String>) -> Self {
|
||||
self.tetraplet.json_path = json_path.into();
|
||||
pub fn lens(mut self, lens: impl Into<String>) -> Self {
|
||||
self.tetraplet.lens = lens.into();
|
||||
self
|
||||
}
|
||||
|
||||
|
@ -23,8 +23,8 @@ use once_cell::sync::OnceCell;
|
||||
|
||||
use std::path::PathBuf;
|
||||
|
||||
// 10 Mb
|
||||
const AVM_MAX_HEAP_SIZE: u64 = 10 * 1024 * 1024;
|
||||
// 100 Mb
|
||||
const AVM_MAX_HEAP_SIZE: u64 = 100 * 1024 * 1024;
|
||||
const AIR_WASM_PATH: &str = "../target/wasm32-wasi/debug/air_interpreter_server.wasm";
|
||||
const RELEASE_AIR_WASM_PATH: &str = "../target/wasm32-wasi/release/air_interpreter_server.wasm";
|
||||
|
||||
|
@ -961,12 +961,12 @@ mod tests {
|
||||
ExecutionTrace::from(vec![scalar!(
|
||||
json!([[{
|
||||
"function_name": "",
|
||||
"json_path": "",
|
||||
"lens": "",
|
||||
"peer_pk": &peer_id,
|
||||
"service_id": "",
|
||||
}], [{
|
||||
"function_name": "",
|
||||
"json_path": "",
|
||||
"lens": "",
|
||||
"peer_pk": &peer_id,
|
||||
"service_id": "",
|
||||
}]]),
|
||||
|
202
junk/gen-bench-data/Cargo.lock
generated
202
junk/gen-bench-data/Cargo.lock
generated
@ -51,7 +51,7 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "air-execution-info-collector"
|
||||
version = "0.7.12"
|
||||
version = "0.7.13"
|
||||
dependencies = [
|
||||
"aquavm-air-parser",
|
||||
]
|
||||
@ -74,7 +74,7 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "air-interpreter-data"
|
||||
version = "0.17.0"
|
||||
version = "0.17.1"
|
||||
dependencies = [
|
||||
"air-interpreter-cid",
|
||||
"air-interpreter-sede",
|
||||
@ -99,12 +99,12 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "air-interpreter-interface"
|
||||
version = "0.17.2"
|
||||
version = "0.18.0"
|
||||
dependencies = [
|
||||
"air-interpreter-sede",
|
||||
"air-interpreter-value",
|
||||
"fluence-it-types",
|
||||
"marine-call-parameters",
|
||||
"marine-call-parameters 0.14.0",
|
||||
"marine-rs-sdk",
|
||||
"serde",
|
||||
"serde_bytes",
|
||||
@ -174,7 +174,7 @@ version = "0.1.0"
|
||||
|
||||
[[package]]
|
||||
name = "air-test-utils"
|
||||
version = "0.15.1"
|
||||
version = "0.16.0"
|
||||
dependencies = [
|
||||
"air-interpreter-cid",
|
||||
"air-interpreter-data",
|
||||
@ -199,7 +199,7 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "air-testing-framework"
|
||||
version = "0.8.4"
|
||||
version = "0.9.0"
|
||||
dependencies = [
|
||||
"air-interpreter-signatures",
|
||||
"air-test-utils",
|
||||
@ -215,7 +215,7 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "air-trace-handler"
|
||||
version = "0.5.10"
|
||||
version = "0.5.11"
|
||||
dependencies = [
|
||||
"air-interpreter-cid",
|
||||
"air-interpreter-data",
|
||||
@ -232,7 +232,7 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "air-utils"
|
||||
version = "0.2.0"
|
||||
version = "0.3.0"
|
||||
|
||||
[[package]]
|
||||
name = "ambient-authority"
|
||||
@ -311,7 +311,7 @@ checksum = "080e9890a082662b09c1ad45f567faeeb47f22b5fb23895fbe1e651e718e25ca"
|
||||
|
||||
[[package]]
|
||||
name = "aquavm-air"
|
||||
version = "0.59.0"
|
||||
version = "0.60.0"
|
||||
dependencies = [
|
||||
"air-execution-info-collector",
|
||||
"air-interpreter-cid",
|
||||
@ -346,7 +346,7 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "aquavm-air-parser"
|
||||
version = "0.11.1"
|
||||
version = "0.11.2"
|
||||
dependencies = [
|
||||
"air-interpreter-value",
|
||||
"air-lambda-ast",
|
||||
@ -435,7 +435,7 @@ checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa"
|
||||
|
||||
[[package]]
|
||||
name = "avm-data-store"
|
||||
version = "0.7.7"
|
||||
version = "0.7.8"
|
||||
dependencies = [
|
||||
"avm-interface",
|
||||
"serde",
|
||||
@ -444,7 +444,7 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "avm-interface"
|
||||
version = "0.31.2"
|
||||
version = "0.32.0"
|
||||
dependencies = [
|
||||
"air-interpreter-interface",
|
||||
"air-interpreter-sede",
|
||||
@ -460,7 +460,7 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "avm-server"
|
||||
version = "0.35.0"
|
||||
version = "0.36.0"
|
||||
dependencies = [
|
||||
"air-interpreter-interface",
|
||||
"air-interpreter-sede",
|
||||
@ -2177,17 +2177,50 @@ version = "0.10.3"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "ef9a7c6ed5fa9052474c1cd76d3b3e67dbc4c455c76263c2c043214e12cce6bd"
|
||||
dependencies = [
|
||||
"marine-macro",
|
||||
"marine-rs-sdk-main",
|
||||
"marine-macro 0.10.3",
|
||||
"marine-rs-sdk-main 0.10.3",
|
||||
"serde",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "marine-call-parameters"
|
||||
version = "0.12.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "f47b1186bad0b2a5e9218e3f6fbe0612ef6b17c58c58537d77bd08044596ea95"
|
||||
dependencies = [
|
||||
"marine-macro 0.12.0",
|
||||
"marine-rs-sdk-main 0.12.0",
|
||||
"serde",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "marine-call-parameters"
|
||||
version = "0.13.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "8d16852b36a3cfc8fa044955380901e78109db0035dc93eea4f666d8f3979072"
|
||||
dependencies = [
|
||||
"marine-macro 0.13.0",
|
||||
"marine-rs-sdk-main 0.13.0",
|
||||
"serde",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "marine-call-parameters"
|
||||
version = "0.14.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "05495180730abae04abe209386ce367309a82110edb65fcdb1f3080f819bc1a0"
|
||||
dependencies = [
|
||||
"marine-macro 0.14.0",
|
||||
"marine-rs-sdk-main 0.14.0",
|
||||
"rkyv",
|
||||
"serde",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "marine-core"
|
||||
version = "0.26.1"
|
||||
version = "0.29.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "6e0e21dd5918c69eefcc06acea338bf444f9137fca6e193b52bfd8e0f069ab4d"
|
||||
checksum = "81f40fac4650a022a2ce8d7b6df5614062fc32cb25fb44e61027997e90a3aff6"
|
||||
dependencies = [
|
||||
"anyhow",
|
||||
"bytesize",
|
||||
@ -2214,13 +2247,13 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "marine-it-generator"
|
||||
version = "0.13.1"
|
||||
version = "0.16.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "7d03328e174951faf739e7e12be3d9ffb044cfc308508dc89260d63a1a43a0df"
|
||||
checksum = "23bdd0119dc71f98e2f0a4bef305e43b9a4d9b9adbead12bc05b0fac1d5a247c"
|
||||
dependencies = [
|
||||
"it-lilo",
|
||||
"marine-it-parser",
|
||||
"marine-macro-impl 0.7.1",
|
||||
"marine-macro-impl 0.14.0",
|
||||
"once_cell",
|
||||
"serde",
|
||||
"serde_json",
|
||||
@ -2265,14 +2298,44 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "acdaa50f8239afa104ef8a99d4219288f68169e29c913485bbd094a35fe79113"
|
||||
dependencies = [
|
||||
"marine-macro-impl 0.10.3",
|
||||
"marine-rs-sdk-main",
|
||||
"marine-rs-sdk-main 0.10.3",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "marine-macro"
|
||||
version = "0.12.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "727b1a5449eb1676837c5fc22a8c31dc9980dcef4de938f26f2eaf7c2c54331b"
|
||||
dependencies = [
|
||||
"marine-macro-impl 0.12.0",
|
||||
"marine-rs-sdk-main 0.12.0",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "marine-macro"
|
||||
version = "0.13.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "cec2cd19fedf559833d0f1e6a33cbcc5cf0efa338bb0975346ff12538a3cdde4"
|
||||
dependencies = [
|
||||
"marine-macro-impl 0.13.0",
|
||||
"marine-rs-sdk-main 0.13.0",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "marine-macro"
|
||||
version = "0.14.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "f502185316f584a9373cceb6ff24a11d260dfd39505c817056bc127cd1a96a08"
|
||||
dependencies = [
|
||||
"marine-macro-impl 0.14.0",
|
||||
"marine-rs-sdk-main 0.14.0",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "marine-macro-impl"
|
||||
version = "0.7.1"
|
||||
version = "0.10.3"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "ca474b63cabaf8d7d9b38de87d630023cbc91ddc77e92f9c7bb745462a131b44"
|
||||
checksum = "460ef42c1bf6dbb88976a00514f8e1b97a7ccb60e3e6009cbb563b0d163166c7"
|
||||
dependencies = [
|
||||
"proc-macro2",
|
||||
"quote",
|
||||
@ -2283,9 +2346,35 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "marine-macro-impl"
|
||||
version = "0.10.3"
|
||||
version = "0.12.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "460ef42c1bf6dbb88976a00514f8e1b97a7ccb60e3e6009cbb563b0d163166c7"
|
||||
checksum = "57c8cd8a228856db057bd4a32c6e2708848b2b1db7552be0a6063d534cafb4e2"
|
||||
dependencies = [
|
||||
"proc-macro2",
|
||||
"quote",
|
||||
"serde",
|
||||
"serde_json",
|
||||
"syn 1.0.109",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "marine-macro-impl"
|
||||
version = "0.13.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "e09acb3ada67e69a301b6d7b52a915a36176c5eedb312647de7d5b6cf17f51e4"
|
||||
dependencies = [
|
||||
"proc-macro2",
|
||||
"quote",
|
||||
"serde",
|
||||
"serde_json",
|
||||
"syn 1.0.109",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "marine-macro-impl"
|
||||
version = "0.14.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "e50fbc0e70ee4cde7802f0748acfb197d7770c7feffb980ce8c29bddd007519e"
|
||||
dependencies = [
|
||||
"proc-macro2",
|
||||
"quote",
|
||||
@ -2306,14 +2395,14 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "marine-module-info-parser"
|
||||
version = "0.11.1"
|
||||
version = "0.14.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "d578b9c5b1a95e9f76301a347d0fbaef5e5e22a0c370e43fc575253e69fa23e6"
|
||||
checksum = "9b312830884d07fc495a43e867d9641163897f0b0b047842cf1172cc61f57075"
|
||||
dependencies = [
|
||||
"anyhow",
|
||||
"chrono",
|
||||
"derivative",
|
||||
"marine-rs-sdk-main",
|
||||
"marine-rs-sdk-main 0.14.0",
|
||||
"marine-wasm-backend-traits",
|
||||
"semver 1.0.21",
|
||||
"serde",
|
||||
@ -2340,13 +2429,13 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "marine-rs-sdk"
|
||||
version = "0.10.3"
|
||||
version = "0.14.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "034cab8adf708e87db08f093e0c7b8ea49359cc875ed2a778c1bf245b5d9d9f8"
|
||||
checksum = "f93d2bd852fea1fea8097c195044430347eda98fd6a3752119b549192d5ac4ba"
|
||||
dependencies = [
|
||||
"marine-call-parameters",
|
||||
"marine-macro",
|
||||
"marine-rs-sdk-main",
|
||||
"marine-call-parameters 0.14.0",
|
||||
"marine-macro 0.14.0",
|
||||
"marine-rs-sdk-main 0.14.0",
|
||||
"marine-timestamp-macro",
|
||||
"serde",
|
||||
]
|
||||
@ -2362,20 +2451,53 @@ dependencies = [
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "marine-runtime"
|
||||
version = "0.32.1"
|
||||
name = "marine-rs-sdk-main"
|
||||
version = "0.12.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "4c9a539b0b1586839f133f768db670f0b3f6cd5ffd977dc247cbf8acf8a3dc1a"
|
||||
checksum = "6cba9000500575b4965ec44e44bbbfd056d121be1195969ce1a5cc146646c37b"
|
||||
dependencies = [
|
||||
"log",
|
||||
"serde",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "marine-rs-sdk-main"
|
||||
version = "0.13.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "58b487a1a1b288ba06c832942eadb43384cd99c9754c1454e1e061dd9866be92"
|
||||
dependencies = [
|
||||
"log",
|
||||
"serde",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "marine-rs-sdk-main"
|
||||
version = "0.14.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "0b79c165fc21438b069babeec5ae36ba0eade5e08fb1d92dabbe6b41014ce841"
|
||||
dependencies = [
|
||||
"log",
|
||||
"serde",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "marine-runtime"
|
||||
version = "0.35.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "6c599c7c13e976170a1211e31fe2fb4557e0479cbdba331b19a5a9e87f145f52"
|
||||
dependencies = [
|
||||
"bytesize",
|
||||
"it-json-serde",
|
||||
"it-memory-traits",
|
||||
"itertools",
|
||||
"log",
|
||||
"marine-call-parameters 0.10.3",
|
||||
"marine-call-parameters 0.12.0",
|
||||
"marine-call-parameters 0.13.0",
|
||||
"marine-core",
|
||||
"marine-module-interface",
|
||||
"marine-rs-sdk",
|
||||
"marine-rs-sdk-main",
|
||||
"marine-rs-sdk-main 0.14.0",
|
||||
"marine-utils",
|
||||
"marine-wasm-backend-traits",
|
||||
"marine-wasmtime-backend",
|
||||
@ -2392,9 +2514,9 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "marine-timestamp-macro"
|
||||
version = "0.10.3"
|
||||
version = "0.14.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "7f812a03cb13b79ab75e38053a77ecc4b4738a1b485b650d971dec3dbbcb2561"
|
||||
checksum = "d03f267ac0a29f543ef12a1a519ff8d98e74ac66e1c580f2930d41ce2c50507d"
|
||||
dependencies = [
|
||||
"chrono",
|
||||
"quote",
|
||||
@ -2834,7 +2956,7 @@ checksum = "626dec3cac7cc0e1577a2ec3fc496277ec2baa084bebad95bb6fdbfae235f84c"
|
||||
name = "polyplets"
|
||||
version = "0.6.0"
|
||||
dependencies = [
|
||||
"marine-call-parameters",
|
||||
"marine-call-parameters 0.14.0",
|
||||
"serde",
|
||||
]
|
||||
|
||||
|
@ -43,7 +43,7 @@ struct CallInfo {
|
||||
service: Option<String>,
|
||||
function: Option<String>,
|
||||
args: Option<Vec<Value>>,
|
||||
json_path: Option<String>,
|
||||
lens: Option<String>,
|
||||
kind: Option<Kind>,
|
||||
}
|
||||
|
||||
@ -88,8 +88,8 @@ fn transform_cid(
|
||||
if let Some(args) = meta.args {
|
||||
builder = builder.args(args);
|
||||
}
|
||||
if let Some(json_path) = meta.json_path {
|
||||
builder = builder.json_path(json_path);
|
||||
if let Some(lens) = meta.lens {
|
||||
builder = builder.lens(lens);
|
||||
}
|
||||
|
||||
match meta.kind {
|
||||
|
Reference in New Issue
Block a user