diff --git a/.github/workflows/e2e.yml b/.github/workflows/e2e.yml index 1c0e55c..34e4a73 100644 --- a/.github/workflows/e2e.yml +++ b/.github/workflows/e2e.yml @@ -40,6 +40,7 @@ jobs: - snapshot uses: fluencelabs/nox/.github/workflows/build.yml@master with: + ref: new-vault cargo-dependencies: | [ { diff --git a/service/Cargo.lock b/service/Cargo.lock index 689868d..4f0dc0e 100644 --- a/service/Cargo.lock +++ b/service/Cargo.lock @@ -677,9 +677,9 @@ dependencies = [ [[package]] name = "fluence-app-service" -version = "0.31.0" +version = "0.33.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5be1794d6900d3b0376a54d8017d656a1d549e4503b7075f977cbc476c9293b3" +checksum = "ec5358cd011d91885b81539bc36f8f67075cd6bb1bf260c7ab35a7ff31b5870d" dependencies = [ "log", "maplit", @@ -1064,9 +1064,9 @@ dependencies = [ [[package]] name = "it-json-serde" -version = "0.5.0" +version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0bdf951681696f6c957026a6aa576c9a6b1a25e753c1f4d62f75fcf0ff38abe5" +checksum = "a74b6ed688d9de56b4e4cb5aca2bd7a883909f1be8d8d6ba40e3a2d25b9feba5" dependencies = [ "serde", "serde_derive", @@ -1228,29 +1228,51 @@ checksum = "3e2e65a1a2e43cfcb47a895c4c8b10d1f4a61097f9f254f183aee60cad9c651d" [[package]] name = "marine-build-rs-generator" -version = "0.12.1" +version = "0.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "733bc760227adf6efd733341d67e948d0cbaa71e9a64bd9076de5a79ab595d25" +checksum = "1d2653ea504c4d2bef9389793693fa8eb8bfd7edd8a312317e2f7ecf2ff2defa" dependencies = [ "marine-test-macro-impl", ] [[package]] name = "marine-call-parameters" -version = "0.10.2" +version = "0.10.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "60dfc6d5a00b2d5aadbd60a13bdd6c6d6a5f46b31bf8db9f80ad295032f3bda3" +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-core" -version = "0.26.0" +version = "0.28.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eb4758abae2100ab5a89e6df2341492ac753a7c9be72076528b5adf94aeaeb8f" +checksum = "9b9a08bd99ea96356abdac57700a58496dc4034d1f48000fb54e532fc5021c8d" dependencies = [ "anyhow", "bytesize", @@ -1277,13 +1299,13 @@ dependencies = [ [[package]] name = "marine-it-generator" -version = "0.13.0" +version = "0.15.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "416d13df5d4d301fc780ae85368e031c1526dc23c9609ecc8a89c09b246d999c" +checksum = "64902f7fee0488f2b1e27e8f595772f1a7a386d07f74e55a07def1ad967a64fd" dependencies = [ "it-lilo", "marine-it-parser", - "marine-macro-impl 0.7.1", + "marine-macro-impl 0.13.0", "once_cell", "serde", "serde_json", @@ -1294,9 +1316,9 @@ dependencies = [ [[package]] name = "marine-it-interfaces" -version = "0.9.0" +version = "0.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "942f05f37d694802550d9dfed55a1d56fe53f15ef3a3219b9345e9a235c042cd" +checksum = "1c610d90a031911c17b2babc32c9fad7261bae6ab0bf118051cd665b5d9bcfbe" dependencies = [ "multimap", "wasmer-interface-types-fl", @@ -1304,9 +1326,9 @@ dependencies = [ [[package]] name = "marine-it-parser" -version = "0.15.0" +version = "0.15.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ec9325e7cf7c4e01087be83ae5abb26fe76445b0df517a201fbe6ca298b8661b" +checksum = "921afa7f139791b24c4cb91c918d1ef7411ef40c3b801309ec43f6b2c89b107b" dependencies = [ "anyhow", "itertools 0.10.5", @@ -1323,19 +1345,39 @@ dependencies = [ [[package]] name = "marine-macro" -version = "0.10.2" +version = "0.10.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3f4bef66ff0a930272053bc622e60ae07a444b6bdd6b2406ee2e85ee93fa34a8" +checksum = "acdaa50f8239afa104ef8a99d4219288f68169e29c913485bbd094a35fe79113" dependencies = [ - "marine-macro-impl 0.10.2", - "marine-rs-sdk-main", + "marine-macro-impl 0.10.3", + "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-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", @@ -1346,9 +1388,22 @@ dependencies = [ [[package]] name = "marine-macro-impl" -version = "0.10.2" +version = "0.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "51866ba9045c01e96a716343c30b2d9302d1451c969ceba8f8e3cb52b78053c8" +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", @@ -1359,9 +1414,9 @@ dependencies = [ [[package]] name = "marine-min-it-version" -version = "0.3.1" +version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a84be3c30abaa13df50cdaceb6b62ca806ac8a10fd5bacfeb4371ec1bd0f5101" +checksum = "147e6e4c9d3dc9afbb06b2e3bc069b63c749733f698d0c364c320a72b133f1d5" dependencies = [ "once_cell", "semver", @@ -1369,14 +1424,14 @@ dependencies = [ [[package]] name = "marine-module-info-parser" -version = "0.11.0" +version = "0.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5b3c94cb70c951bf8ef26bd921ef9ddc5b61e2a45b7c62683ad98313f21fb8df" +checksum = "e39ef4b727e6e895b0b53682dc35463e00004aa0089d49797b4f289227ea3b5d" dependencies = [ "anyhow", "chrono", "derivative", - "marine-rs-sdk-main", + "marine-rs-sdk-main 0.13.0", "marine-wasm-backend-traits", "semver", "serde", @@ -1386,9 +1441,9 @@ dependencies = [ [[package]] name = "marine-module-interface" -version = "0.8.0" +version = "0.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8ace780e273bfa9c2124e53da578af10059e053ba9c22400e1e86a99c00576c4" +checksum = "d92d2243bf0d3aea6401d9e57a1ee17677b624337981322e0153cc2d54744080" dependencies = [ "anyhow", "itertools 0.10.5", @@ -1403,22 +1458,42 @@ dependencies = [ [[package]] name = "marine-rs-sdk" -version = "0.10.2" +version = "0.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d189b674dfcebfbb5668ead5335c3ba52fd4f8e8947b6f2d48869765ab403bd9" +checksum = "6f33834365d1e6dd041e821a758000f32bed5b960edb09f9d8c61e340dd82e29" dependencies = [ - "marine-call-parameters", - "marine-macro", - "marine-rs-sdk-main", + "marine-call-parameters 0.13.0", + "marine-macro 0.13.0", + "marine-rs-sdk-main 0.13.0", "marine-timestamp-macro", "serde", ] [[package]] name = "marine-rs-sdk-main" -version = "0.10.2" +version = "0.10.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d3b4d597243fa88bf33fe91e080ab155cc1679ac4970e1a20dce6b58df084673" +checksum = "031eeea016dab58c1ccb0c65b798cb5e47d214b05115c8c06198717d18275756" +dependencies = [ + "log", + "serde", +] + +[[package]] +name = "marine-rs-sdk-main" +version = "0.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +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", @@ -1426,9 +1501,9 @@ dependencies = [ [[package]] name = "marine-rs-sdk-test" -version = "0.12.1" +version = "0.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d549eb527d35885391ec73786a7b36c91507ff1e2f2ca5ec5015953f3d8320a2" +checksum = "d0226e1bc7755fc1c6edd2c0162e7a585a47b6cf32450f4c3a3b03755f5592f8" dependencies = [ "fluence-app-service", "marine-build-rs-generator", @@ -1440,19 +1515,21 @@ dependencies = [ [[package]] name = "marine-runtime" -version = "0.32.0" +version = "0.34.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4254658402bf40cb64c0116f44124de84fee46e7fcd413ae6cc6097cbd6b3bff" +checksum = "e26c68703d0dc853790adf27813734a696dc75182a93c2a7b3d24a86eed56254" dependencies = [ "bytesize", "it-json-serde", "it-memory-traits", "itertools 0.10.5", "log", + "marine-call-parameters 0.10.3", + "marine-call-parameters 0.12.0", "marine-core", "marine-module-interface", "marine-rs-sdk", - "marine-rs-sdk-main", + "marine-rs-sdk-main 0.13.0", "marine-utils", "marine-wasm-backend-traits", "marine-wasmtime-backend", @@ -1469,9 +1546,9 @@ dependencies = [ [[package]] name = "marine-test-macro" -version = "0.12.1" +version = "0.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "17d51e361ae860da35f2a8f189a89a36dcb6657d0e44057dc3658dc7236fe630" +checksum = "f0c9e6b85b9f96f8ac0dd5785991526c630bc81414126d4f373bbe7725bc191c" dependencies = [ "marine-test-macro-impl", "proc-macro-error", @@ -1482,9 +1559,9 @@ dependencies = [ [[package]] name = "marine-test-macro-impl" -version = "0.12.1" +version = "0.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f3a7c981122443dd9ab5e4192ff34d41805dfb3402a03be4c3a39c0d425675f6" +checksum = "c15d3f54fdf628f05db7693d7058304f27790d468e96c78e4e799c3cb646b3cb" dependencies = [ "darling", "fluence-app-service", @@ -1500,9 +1577,9 @@ dependencies = [ [[package]] name = "marine-timestamp-macro" -version = "0.10.2" +version = "0.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d1465b4dcc7d85940cf33f8d64fd0bb2f98093cc3a5384e2d224bf6e50069adb" +checksum = "1a5086357724dc2a65e7abe39c85d58b9971198f8678ebc642a69aae1bbc7ae0" dependencies = [ "chrono", "quote", @@ -1510,15 +1587,15 @@ dependencies = [ [[package]] name = "marine-utils" -version = "0.5.0" +version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7e86cb57ff0e2fdc8e188a52d388287d38e5cc781eddd09a82d20f8ee1f48b80" +checksum = "fce56bfabfd0af5326ff81c32c8d2261aa03b10e00ea6c165de4ebf8a3f998e4" [[package]] name = "marine-wasm-backend-traits" -version = "0.5.0" +version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "470aaec9c93cec6a4cfd6ce78e338c92e688da14d3203863c517a96027aec417" +checksum = "220bc47cfabb8b4ab97bf2bd7bbab9738857b69beeda0a1ac5776c600b64bb46" dependencies = [ "anyhow", "it-memory-traits", @@ -1531,9 +1608,9 @@ dependencies = [ [[package]] name = "marine-wasmtime-backend" -version = "0.5.0" +version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e1f9991a1c37b7d414c6865ddb04e93c27b260d8e575cb2b6d994454c69ebf76" +checksum = "aaa0dc5a7da0e3334f3ce5b341ba4354341af9a1f9efae24884a1b931efdf23e" dependencies = [ "anyhow", "it-memory-traits", diff --git a/service/Cargo.toml b/service/Cargo.toml index 4eb2478..2127e31 100644 --- a/service/Cargo.toml +++ b/service/Cargo.toml @@ -5,3 +5,6 @@ members = [ "distro", "types", ] +[workspace.dependencies] +marine-rs-sdk = { version = "0.13.0", features = ["logger"] } +marine-rs-sdk-test = "0.14.0" diff --git a/service/effector/Cargo.toml b/service/effector/Cargo.toml index 82b41dd..a462c13 100644 --- a/service/effector/Cargo.toml +++ b/service/effector/Cargo.toml @@ -10,7 +10,7 @@ name = "ipfs_effector" path = "src/main.rs" [dependencies] -marine-rs-sdk = { version = "0.10.2", features = ["logger"] } +marine-rs-sdk = { workspace = true } multiaddr = { version = "0.11.2", package = "fluence-fork-parity-multiaddr" } log = "0.4.20" eyre = "0.6.8" @@ -20,7 +20,7 @@ itertools = "0.12.0" types = { path = "../types" } [dev-dependencies] -marine-rs-sdk-test = "0.12.1" +marine-rs-sdk-test = { workspace = true } [build-dependencies] -marine-rs-sdk-test = "0.12.1" +marine-rs-sdk-test = { workspace = true } diff --git a/service/effector/src/effector.rs b/service/effector/src/effector.rs index 069a5f1..ee9df3e 100644 --- a/service/effector/src/effector.rs +++ b/service/effector/src/effector.rs @@ -185,7 +185,7 @@ pub fn cat(hash: String, api_multiaddr: String, timeout_sec: u64) -> IpfsCatResu } #[marine] -#[link(wasm_import_module = "host")] +#[host_import] extern "C" { /// Execute provided cmd as a parameters of ipfs cli, return result. pub fn ipfs(cmd: Vec) -> MountedBinaryResult; diff --git a/service/pure/Cargo.toml b/service/pure/Cargo.toml index 9389dba..b519a5e 100644 --- a/service/pure/Cargo.toml +++ b/service/pure/Cargo.toml @@ -10,7 +10,7 @@ name = "ipfs_pure" path = "src/main.rs" [dependencies] -marine-rs-sdk = { version = "0.10.2", features = ["logger"] } +marine-rs-sdk = { workspace = true } multiaddr = { version = "0.11.2", package = "fluence-fork-parity-multiaddr" } log = "0.4.20" eyre = "0.6.8" @@ -21,7 +21,7 @@ bs58 = "0.5.0" types = { path = "../types" } [dev-dependencies] -marine-rs-sdk-test = "0.12.1" +marine-rs-sdk-test = { workspace = true } [build-dependencies] -marine-rs-sdk-test = "0.12.1" +marine-rs-sdk-test = { workspace = true } diff --git a/service/pure/src/pure.rs b/service/pure/src/pure.rs index 9bfb89c..6381cc2 100644 --- a/service/pure/src/pure.rs +++ b/service/pure/src/pure.rs @@ -23,6 +23,7 @@ use types::{ use marine_rs_sdk::marine; use marine_rs_sdk::module_manifest; +use marine_rs_sdk::ParticleParameters; use marine_rs_sdk::WasmLoggerBuilder; use eyre::WrapErr; @@ -110,6 +111,10 @@ pub fn get_peer_id(api_multiaddr: String, timeout: u64) -> eyre::Result String { + format!("/tmp/vault/{}-{}", particle.id, particle.token) +} + #[marine] pub fn connect(multiaddr: String) -> IpfsResult { if Multiaddr::from_str(&multiaddr).is_err() { @@ -167,8 +172,8 @@ pub fn get_from(hash: String, external_multiaddr: String) -> IpfsGetResult { return Err(eyre::eyre!("invalid multiaddr: {}", external_multiaddr)).into(); } - let particle_id = marine_rs_sdk::get_call_parameters().particle_id; - let particle_vault_path = format!("/tmp/vault/{}", particle_id); + let particle = marine_rs_sdk::get_call_parameters().particle; + let particle_vault_path = vault_path(&particle); let path = format!("{}/{}", particle_vault_path, hash); let get_result = ipfs_get(hash, &path, external_multiaddr, timeout); @@ -198,8 +203,8 @@ pub fn dag_get_from(hash: String, external_multiaddr: String) -> IpfsGetResult { return Err(eyre::eyre!("invalid multiaddr: {}", external_multiaddr)).into(); } - let particle_id = marine_rs_sdk::get_call_parameters().particle_id; - let particle_vault_path = format!("/tmp/vault/{}", particle_id); + let particle = marine_rs_sdk::get_call_parameters().particle; + let particle_vault_path = vault_path(&particle); let path = format!("{}/{}", particle_vault_path, hash); let get_result = ipfs_dag_get(hash, &path, external_multiaddr, timeout); @@ -240,7 +245,7 @@ pub fn get_external_api_multiaddr() -> IpfsMultiaddrResult { #[marine] pub fn set_external_api_multiaddr(multiaddr: String) -> IpfsResult { let call_parameters = marine_rs_sdk::get_call_parameters(); - if call_parameters.init_peer_id != call_parameters.service_creator_peer_id { + if call_parameters.particle.init_peer_id != call_parameters.service_creator_peer_id { return eyre::Result::<()>::Err(eyre::eyre!( "only service creator can set external api multiaddr" )) @@ -291,7 +296,7 @@ pub fn get_local_api_multiaddr() -> IpfsMultiaddrResult { #[marine] pub fn set_local_api_multiaddr(multiaddr: String) -> IpfsResult { let call_parameters = marine_rs_sdk::get_call_parameters(); - if call_parameters.init_peer_id != call_parameters.service_creator_peer_id { + if call_parameters.particle.init_peer_id != call_parameters.service_creator_peer_id { return eyre::Result::<()>::Err(eyre::eyre!( "only service creator can set local api multiaddr" )) @@ -320,7 +325,7 @@ pub fn get_external_swarm_multiaddr() -> IpfsMultiaddrResult { #[marine] pub fn set_external_swarm_multiaddr(multiaddr: String) -> IpfsResult { let call_parameters = marine_rs_sdk::get_call_parameters(); - if call_parameters.init_peer_id != call_parameters.service_creator_peer_id { + if call_parameters.particle.init_peer_id != call_parameters.service_creator_peer_id { return eyre::Result::<()>::Err(eyre::eyre!( "only service creator can set external swarm multiaddr" )) @@ -371,7 +376,7 @@ pub fn set_timeout(timeout_sec: u64) { } #[marine] -#[link(wasm_import_module = "ipfs_effector")] +#[module_import("ipfs_effector")] extern "C" { #[link_name = "connect"] pub fn ipfs_connect( diff --git a/service/types/Cargo.toml b/service/types/Cargo.toml index 5cb0fd4..542d505 100644 --- a/service/types/Cargo.toml +++ b/service/types/Cargo.toml @@ -7,5 +7,5 @@ publish = false # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html [dependencies] -marine-rs-sdk = { version = "0.10.2", features = ["logger"] } +marine-rs-sdk = { workspace = true } eyre = "0.6.8"