feat!: Support CallParameters and Particle Vault File Format (#165)

* Support the new CallParameters and the new Safe Particle Vault file format
This commit is contained in:
Maria Kuklina 2024-02-22 12:45:27 +01:00 committed by GitHub
parent a1781d36cf
commit e3e89cf4d0
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
8 changed files with 160 additions and 74 deletions

View File

@ -40,6 +40,7 @@ jobs:
- snapshot - snapshot
uses: fluencelabs/nox/.github/workflows/build.yml@master uses: fluencelabs/nox/.github/workflows/build.yml@master
with: with:
ref: new-vault
cargo-dependencies: | cargo-dependencies: |
[ [
{ {

193
service/Cargo.lock generated
View File

@ -677,9 +677,9 @@ dependencies = [
[[package]] [[package]]
name = "fluence-app-service" name = "fluence-app-service"
version = "0.31.0" version = "0.33.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5be1794d6900d3b0376a54d8017d656a1d549e4503b7075f977cbc476c9293b3" checksum = "ec5358cd011d91885b81539bc36f8f67075cd6bb1bf260c7ab35a7ff31b5870d"
dependencies = [ dependencies = [
"log", "log",
"maplit", "maplit",
@ -1064,9 +1064,9 @@ dependencies = [
[[package]] [[package]]
name = "it-json-serde" name = "it-json-serde"
version = "0.5.0" version = "0.5.1"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0bdf951681696f6c957026a6aa576c9a6b1a25e753c1f4d62f75fcf0ff38abe5" checksum = "a74b6ed688d9de56b4e4cb5aca2bd7a883909f1be8d8d6ba40e3a2d25b9feba5"
dependencies = [ dependencies = [
"serde", "serde",
"serde_derive", "serde_derive",
@ -1228,29 +1228,51 @@ checksum = "3e2e65a1a2e43cfcb47a895c4c8b10d1f4a61097f9f254f183aee60cad9c651d"
[[package]] [[package]]
name = "marine-build-rs-generator" name = "marine-build-rs-generator"
version = "0.12.1" version = "0.14.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "733bc760227adf6efd733341d67e948d0cbaa71e9a64bd9076de5a79ab595d25" checksum = "1d2653ea504c4d2bef9389793693fa8eb8bfd7edd8a312317e2f7ecf2ff2defa"
dependencies = [ dependencies = [
"marine-test-macro-impl", "marine-test-macro-impl",
] ]
[[package]] [[package]]
name = "marine-call-parameters" name = "marine-call-parameters"
version = "0.10.2" version = "0.10.3"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "60dfc6d5a00b2d5aadbd60a13bdd6c6d6a5f46b31bf8db9f80ad295032f3bda3" checksum = "ef9a7c6ed5fa9052474c1cd76d3b3e67dbc4c455c76263c2c043214e12cce6bd"
dependencies = [ dependencies = [
"marine-macro", "marine-macro 0.10.3",
"marine-rs-sdk-main", "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", "serde",
] ]
[[package]] [[package]]
name = "marine-core" name = "marine-core"
version = "0.26.0" version = "0.28.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "eb4758abae2100ab5a89e6df2341492ac753a7c9be72076528b5adf94aeaeb8f" checksum = "9b9a08bd99ea96356abdac57700a58496dc4034d1f48000fb54e532fc5021c8d"
dependencies = [ dependencies = [
"anyhow", "anyhow",
"bytesize", "bytesize",
@ -1277,13 +1299,13 @@ dependencies = [
[[package]] [[package]]
name = "marine-it-generator" name = "marine-it-generator"
version = "0.13.0" version = "0.15.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "416d13df5d4d301fc780ae85368e031c1526dc23c9609ecc8a89c09b246d999c" checksum = "64902f7fee0488f2b1e27e8f595772f1a7a386d07f74e55a07def1ad967a64fd"
dependencies = [ dependencies = [
"it-lilo", "it-lilo",
"marine-it-parser", "marine-it-parser",
"marine-macro-impl 0.7.1", "marine-macro-impl 0.13.0",
"once_cell", "once_cell",
"serde", "serde",
"serde_json", "serde_json",
@ -1294,9 +1316,9 @@ dependencies = [
[[package]] [[package]]
name = "marine-it-interfaces" name = "marine-it-interfaces"
version = "0.9.0" version = "0.9.1"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "942f05f37d694802550d9dfed55a1d56fe53f15ef3a3219b9345e9a235c042cd" checksum = "1c610d90a031911c17b2babc32c9fad7261bae6ab0bf118051cd665b5d9bcfbe"
dependencies = [ dependencies = [
"multimap", "multimap",
"wasmer-interface-types-fl", "wasmer-interface-types-fl",
@ -1304,9 +1326,9 @@ dependencies = [
[[package]] [[package]]
name = "marine-it-parser" name = "marine-it-parser"
version = "0.15.0" version = "0.15.1"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ec9325e7cf7c4e01087be83ae5abb26fe76445b0df517a201fbe6ca298b8661b" checksum = "921afa7f139791b24c4cb91c918d1ef7411ef40c3b801309ec43f6b2c89b107b"
dependencies = [ dependencies = [
"anyhow", "anyhow",
"itertools 0.10.5", "itertools 0.10.5",
@ -1323,19 +1345,39 @@ dependencies = [
[[package]] [[package]]
name = "marine-macro" name = "marine-macro"
version = "0.10.2" version = "0.10.3"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "3f4bef66ff0a930272053bc622e60ae07a444b6bdd6b2406ee2e85ee93fa34a8" checksum = "acdaa50f8239afa104ef8a99d4219288f68169e29c913485bbd094a35fe79113"
dependencies = [ dependencies = [
"marine-macro-impl 0.10.2", "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]] [[package]]
name = "marine-macro-impl" name = "marine-macro-impl"
version = "0.7.1" version = "0.10.3"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ca474b63cabaf8d7d9b38de87d630023cbc91ddc77e92f9c7bb745462a131b44" checksum = "460ef42c1bf6dbb88976a00514f8e1b97a7ccb60e3e6009cbb563b0d163166c7"
dependencies = [ dependencies = [
"proc-macro2", "proc-macro2",
"quote", "quote",
@ -1346,9 +1388,22 @@ dependencies = [
[[package]] [[package]]
name = "marine-macro-impl" name = "marine-macro-impl"
version = "0.10.2" version = "0.12.0"
source = "registry+https://github.com/rust-lang/crates.io-index" 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 = [ dependencies = [
"proc-macro2", "proc-macro2",
"quote", "quote",
@ -1359,9 +1414,9 @@ dependencies = [
[[package]] [[package]]
name = "marine-min-it-version" name = "marine-min-it-version"
version = "0.3.1" version = "0.3.2"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a84be3c30abaa13df50cdaceb6b62ca806ac8a10fd5bacfeb4371ec1bd0f5101" checksum = "147e6e4c9d3dc9afbb06b2e3bc069b63c749733f698d0c364c320a72b133f1d5"
dependencies = [ dependencies = [
"once_cell", "once_cell",
"semver", "semver",
@ -1369,14 +1424,14 @@ dependencies = [
[[package]] [[package]]
name = "marine-module-info-parser" name = "marine-module-info-parser"
version = "0.11.0" version = "0.13.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5b3c94cb70c951bf8ef26bd921ef9ddc5b61e2a45b7c62683ad98313f21fb8df" checksum = "e39ef4b727e6e895b0b53682dc35463e00004aa0089d49797b4f289227ea3b5d"
dependencies = [ dependencies = [
"anyhow", "anyhow",
"chrono", "chrono",
"derivative", "derivative",
"marine-rs-sdk-main", "marine-rs-sdk-main 0.13.0",
"marine-wasm-backend-traits", "marine-wasm-backend-traits",
"semver", "semver",
"serde", "serde",
@ -1386,9 +1441,9 @@ dependencies = [
[[package]] [[package]]
name = "marine-module-interface" name = "marine-module-interface"
version = "0.8.0" version = "0.8.1"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8ace780e273bfa9c2124e53da578af10059e053ba9c22400e1e86a99c00576c4" checksum = "d92d2243bf0d3aea6401d9e57a1ee17677b624337981322e0153cc2d54744080"
dependencies = [ dependencies = [
"anyhow", "anyhow",
"itertools 0.10.5", "itertools 0.10.5",
@ -1403,22 +1458,42 @@ dependencies = [
[[package]] [[package]]
name = "marine-rs-sdk" name = "marine-rs-sdk"
version = "0.10.2" version = "0.13.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d189b674dfcebfbb5668ead5335c3ba52fd4f8e8947b6f2d48869765ab403bd9" checksum = "6f33834365d1e6dd041e821a758000f32bed5b960edb09f9d8c61e340dd82e29"
dependencies = [ dependencies = [
"marine-call-parameters", "marine-call-parameters 0.13.0",
"marine-macro", "marine-macro 0.13.0",
"marine-rs-sdk-main", "marine-rs-sdk-main 0.13.0",
"marine-timestamp-macro", "marine-timestamp-macro",
"serde", "serde",
] ]
[[package]] [[package]]
name = "marine-rs-sdk-main" name = "marine-rs-sdk-main"
version = "0.10.2" version = "0.10.3"
source = "registry+https://github.com/rust-lang/crates.io-index" 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 = [ dependencies = [
"log", "log",
"serde", "serde",
@ -1426,9 +1501,9 @@ dependencies = [
[[package]] [[package]]
name = "marine-rs-sdk-test" name = "marine-rs-sdk-test"
version = "0.12.1" version = "0.14.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d549eb527d35885391ec73786a7b36c91507ff1e2f2ca5ec5015953f3d8320a2" checksum = "d0226e1bc7755fc1c6edd2c0162e7a585a47b6cf32450f4c3a3b03755f5592f8"
dependencies = [ dependencies = [
"fluence-app-service", "fluence-app-service",
"marine-build-rs-generator", "marine-build-rs-generator",
@ -1440,19 +1515,21 @@ dependencies = [
[[package]] [[package]]
name = "marine-runtime" name = "marine-runtime"
version = "0.32.0" version = "0.34.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "4254658402bf40cb64c0116f44124de84fee46e7fcd413ae6cc6097cbd6b3bff" checksum = "e26c68703d0dc853790adf27813734a696dc75182a93c2a7b3d24a86eed56254"
dependencies = [ dependencies = [
"bytesize", "bytesize",
"it-json-serde", "it-json-serde",
"it-memory-traits", "it-memory-traits",
"itertools 0.10.5", "itertools 0.10.5",
"log", "log",
"marine-call-parameters 0.10.3",
"marine-call-parameters 0.12.0",
"marine-core", "marine-core",
"marine-module-interface", "marine-module-interface",
"marine-rs-sdk", "marine-rs-sdk",
"marine-rs-sdk-main", "marine-rs-sdk-main 0.13.0",
"marine-utils", "marine-utils",
"marine-wasm-backend-traits", "marine-wasm-backend-traits",
"marine-wasmtime-backend", "marine-wasmtime-backend",
@ -1469,9 +1546,9 @@ dependencies = [
[[package]] [[package]]
name = "marine-test-macro" name = "marine-test-macro"
version = "0.12.1" version = "0.14.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "17d51e361ae860da35f2a8f189a89a36dcb6657d0e44057dc3658dc7236fe630" checksum = "f0c9e6b85b9f96f8ac0dd5785991526c630bc81414126d4f373bbe7725bc191c"
dependencies = [ dependencies = [
"marine-test-macro-impl", "marine-test-macro-impl",
"proc-macro-error", "proc-macro-error",
@ -1482,9 +1559,9 @@ dependencies = [
[[package]] [[package]]
name = "marine-test-macro-impl" name = "marine-test-macro-impl"
version = "0.12.1" version = "0.14.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f3a7c981122443dd9ab5e4192ff34d41805dfb3402a03be4c3a39c0d425675f6" checksum = "c15d3f54fdf628f05db7693d7058304f27790d468e96c78e4e799c3cb646b3cb"
dependencies = [ dependencies = [
"darling", "darling",
"fluence-app-service", "fluence-app-service",
@ -1500,9 +1577,9 @@ dependencies = [
[[package]] [[package]]
name = "marine-timestamp-macro" name = "marine-timestamp-macro"
version = "0.10.2" version = "0.13.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d1465b4dcc7d85940cf33f8d64fd0bb2f98093cc3a5384e2d224bf6e50069adb" checksum = "1a5086357724dc2a65e7abe39c85d58b9971198f8678ebc642a69aae1bbc7ae0"
dependencies = [ dependencies = [
"chrono", "chrono",
"quote", "quote",
@ -1510,15 +1587,15 @@ dependencies = [
[[package]] [[package]]
name = "marine-utils" name = "marine-utils"
version = "0.5.0" version = "0.5.1"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7e86cb57ff0e2fdc8e188a52d388287d38e5cc781eddd09a82d20f8ee1f48b80" checksum = "fce56bfabfd0af5326ff81c32c8d2261aa03b10e00ea6c165de4ebf8a3f998e4"
[[package]] [[package]]
name = "marine-wasm-backend-traits" name = "marine-wasm-backend-traits"
version = "0.5.0" version = "0.5.1"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "470aaec9c93cec6a4cfd6ce78e338c92e688da14d3203863c517a96027aec417" checksum = "220bc47cfabb8b4ab97bf2bd7bbab9738857b69beeda0a1ac5776c600b64bb46"
dependencies = [ dependencies = [
"anyhow", "anyhow",
"it-memory-traits", "it-memory-traits",
@ -1531,9 +1608,9 @@ dependencies = [
[[package]] [[package]]
name = "marine-wasmtime-backend" name = "marine-wasmtime-backend"
version = "0.5.0" version = "0.5.1"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e1f9991a1c37b7d414c6865ddb04e93c27b260d8e575cb2b6d994454c69ebf76" checksum = "aaa0dc5a7da0e3334f3ce5b341ba4354341af9a1f9efae24884a1b931efdf23e"
dependencies = [ dependencies = [
"anyhow", "anyhow",
"it-memory-traits", "it-memory-traits",

View File

@ -5,3 +5,6 @@ members = [
"distro", "distro",
"types", "types",
] ]
[workspace.dependencies]
marine-rs-sdk = { version = "0.13.0", features = ["logger"] }
marine-rs-sdk-test = "0.14.0"

View File

@ -10,7 +10,7 @@ name = "ipfs_effector"
path = "src/main.rs" path = "src/main.rs"
[dependencies] [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" } multiaddr = { version = "0.11.2", package = "fluence-fork-parity-multiaddr" }
log = "0.4.20" log = "0.4.20"
eyre = "0.6.8" eyre = "0.6.8"
@ -20,7 +20,7 @@ itertools = "0.12.0"
types = { path = "../types" } types = { path = "../types" }
[dev-dependencies] [dev-dependencies]
marine-rs-sdk-test = "0.12.1" marine-rs-sdk-test = { workspace = true }
[build-dependencies] [build-dependencies]
marine-rs-sdk-test = "0.12.1" marine-rs-sdk-test = { workspace = true }

View File

@ -185,7 +185,7 @@ pub fn cat(hash: String, api_multiaddr: String, timeout_sec: u64) -> IpfsCatResu
} }
#[marine] #[marine]
#[link(wasm_import_module = "host")] #[host_import]
extern "C" { extern "C" {
/// Execute provided cmd as a parameters of ipfs cli, return result. /// Execute provided cmd as a parameters of ipfs cli, return result.
pub fn ipfs(cmd: Vec<String>) -> MountedBinaryResult; pub fn ipfs(cmd: Vec<String>) -> MountedBinaryResult;

View File

@ -10,7 +10,7 @@ name = "ipfs_pure"
path = "src/main.rs" path = "src/main.rs"
[dependencies] [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" } multiaddr = { version = "0.11.2", package = "fluence-fork-parity-multiaddr" }
log = "0.4.20" log = "0.4.20"
eyre = "0.6.8" eyre = "0.6.8"
@ -21,7 +21,7 @@ bs58 = "0.5.0"
types = { path = "../types" } types = { path = "../types" }
[dev-dependencies] [dev-dependencies]
marine-rs-sdk-test = "0.12.1" marine-rs-sdk-test = { workspace = true }
[build-dependencies] [build-dependencies]
marine-rs-sdk-test = "0.12.1" marine-rs-sdk-test = { workspace = true }

View File

@ -23,6 +23,7 @@ use types::{
use marine_rs_sdk::marine; use marine_rs_sdk::marine;
use marine_rs_sdk::module_manifest; use marine_rs_sdk::module_manifest;
use marine_rs_sdk::ParticleParameters;
use marine_rs_sdk::WasmLoggerBuilder; use marine_rs_sdk::WasmLoggerBuilder;
use eyre::WrapErr; use eyre::WrapErr;
@ -110,6 +111,10 @@ pub fn get_peer_id(api_multiaddr: String, timeout: u64) -> eyre::Result<Protocol
)) ))
} }
fn vault_path(particle: &ParticleParameters) -> String {
format!("/tmp/vault/{}-{}", particle.id, particle.token)
}
#[marine] #[marine]
pub fn connect(multiaddr: String) -> IpfsResult { pub fn connect(multiaddr: String) -> IpfsResult {
if Multiaddr::from_str(&multiaddr).is_err() { 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(); return Err(eyre::eyre!("invalid multiaddr: {}", external_multiaddr)).into();
} }
let particle_id = marine_rs_sdk::get_call_parameters().particle_id; let particle = marine_rs_sdk::get_call_parameters().particle;
let particle_vault_path = format!("/tmp/vault/{}", particle_id); let particle_vault_path = vault_path(&particle);
let path = format!("{}/{}", particle_vault_path, hash); let path = format!("{}/{}", particle_vault_path, hash);
let get_result = ipfs_get(hash, &path, external_multiaddr, timeout); 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(); return Err(eyre::eyre!("invalid multiaddr: {}", external_multiaddr)).into();
} }
let particle_id = marine_rs_sdk::get_call_parameters().particle_id; let particle = marine_rs_sdk::get_call_parameters().particle;
let particle_vault_path = format!("/tmp/vault/{}", particle_id); let particle_vault_path = vault_path(&particle);
let path = format!("{}/{}", particle_vault_path, hash); let path = format!("{}/{}", particle_vault_path, hash);
let get_result = ipfs_dag_get(hash, &path, external_multiaddr, timeout); let get_result = ipfs_dag_get(hash, &path, external_multiaddr, timeout);
@ -240,7 +245,7 @@ pub fn get_external_api_multiaddr() -> IpfsMultiaddrResult {
#[marine] #[marine]
pub fn set_external_api_multiaddr(multiaddr: String) -> IpfsResult { pub fn set_external_api_multiaddr(multiaddr: String) -> IpfsResult {
let call_parameters = marine_rs_sdk::get_call_parameters(); 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!( return eyre::Result::<()>::Err(eyre::eyre!(
"only service creator can set external api multiaddr" "only service creator can set external api multiaddr"
)) ))
@ -291,7 +296,7 @@ pub fn get_local_api_multiaddr() -> IpfsMultiaddrResult {
#[marine] #[marine]
pub fn set_local_api_multiaddr(multiaddr: String) -> IpfsResult { pub fn set_local_api_multiaddr(multiaddr: String) -> IpfsResult {
let call_parameters = marine_rs_sdk::get_call_parameters(); 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!( return eyre::Result::<()>::Err(eyre::eyre!(
"only service creator can set local api multiaddr" "only service creator can set local api multiaddr"
)) ))
@ -320,7 +325,7 @@ pub fn get_external_swarm_multiaddr() -> IpfsMultiaddrResult {
#[marine] #[marine]
pub fn set_external_swarm_multiaddr(multiaddr: String) -> IpfsResult { pub fn set_external_swarm_multiaddr(multiaddr: String) -> IpfsResult {
let call_parameters = marine_rs_sdk::get_call_parameters(); 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!( return eyre::Result::<()>::Err(eyre::eyre!(
"only service creator can set external swarm multiaddr" "only service creator can set external swarm multiaddr"
)) ))
@ -371,7 +376,7 @@ pub fn set_timeout(timeout_sec: u64) {
} }
#[marine] #[marine]
#[link(wasm_import_module = "ipfs_effector")] #[module_import("ipfs_effector")]
extern "C" { extern "C" {
#[link_name = "connect"] #[link_name = "connect"]
pub fn ipfs_connect( pub fn ipfs_connect(

View File

@ -7,5 +7,5 @@ publish = false
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
[dependencies] [dependencies]
marine-rs-sdk = { version = "0.10.2", features = ["logger"] } marine-rs-sdk = { workspace = true }
eyre = "0.6.8" eyre = "0.6.8"