add timestamp_sec to get_weight and get_all_certs api

This commit is contained in:
Alexey Proshutinskiy 2021-09-15 15:22:32 +03:00
parent f00a861918
commit aa762d4136
5 changed files with 47 additions and 47 deletions

62
Cargo.lock generated
View File

@ -28,9 +28,9 @@ dependencies = [
[[package]] [[package]]
name = "anyhow" name = "anyhow"
version = "1.0.43" version = "1.0.44"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "28ae2b3dec75a406790005a200b1bd89785afc02517a00ca99ecfe093ee9e6cf" checksum = "61604a8f862e1d5c3229fdd78f8b02c68dcf73a4c4b05fd636d12240aaa242c1"
[[package]] [[package]]
name = "arrayref" name = "arrayref"
@ -537,7 +537,7 @@ dependencies = [
"rand 0.7.3", "rand 0.7.3",
"serde", "serde",
"serde_bytes", "serde_bytes",
"sha2 0.9.6", "sha2 0.9.8",
"zeroize", "zeroize",
] ]
@ -700,7 +700,7 @@ dependencies = [
"ring", "ring",
"rw-stream-sink", "rw-stream-sink",
"serde", "serde",
"sha2 0.9.6", "sha2 0.9.8",
"smallvec", "smallvec",
"thiserror", "thiserror",
"unsigned-varint 0.7.0", "unsigned-varint 0.7.0",
@ -772,7 +772,7 @@ dependencies = [
"serde_bytes", "serde_bytes",
"serde_json", "serde_json",
"serde_with", "serde_with",
"sha2 0.9.6", "sha2 0.9.8",
"signature", "signature",
"thiserror", "thiserror",
"zeroize", "zeroize",
@ -1145,9 +1145,9 @@ checksum = "b71991ff56294aa922b450139ee08b3bfc70982c6b2c7562771375cf73542dd4"
[[package]] [[package]]
name = "js-sys" name = "js-sys"
version = "0.3.53" version = "0.3.54"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e4bf49d50e2961077d9c99f4b7997d770a1114f087c3c2e0069b36c13fc2979d" checksum = "1866b355d9c878e5e607473cbe3f63282c0b7aad2db1dbebf55076c686918254"
dependencies = [ dependencies = [
"wasm-bindgen", "wasm-bindgen",
] ]
@ -1179,9 +1179,9 @@ dependencies = [
[[package]] [[package]]
name = "libc" name = "libc"
version = "0.2.101" version = "0.2.102"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "3cb00336871be5ed2c8ed44b60ae9959dc5b9f08539422ed43f09e34ecaeba21" checksum = "a2a5ac8f984bfcf3a823267e5fde638acc3325f6496633a5da6bb6eb2171e103"
[[package]] [[package]]
name = "libsecp256k1" name = "libsecp256k1"
@ -1533,7 +1533,7 @@ dependencies = [
"digest 0.9.0", "digest 0.9.0",
"generic-array 0.14.4", "generic-array 0.14.4",
"multihash-derive", "multihash-derive",
"sha2 0.9.6", "sha2 0.9.8",
"unsigned-varint 0.5.1", "unsigned-varint 0.5.1",
] ]
@ -1796,9 +1796,9 @@ checksum = "ac74c624d6b2d21f425f752262f42188365d7b8ff1aff74c82e45136510a4857"
[[package]] [[package]]
name = "proc-macro-crate" name = "proc-macro-crate"
version = "1.0.0" version = "1.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "41fdbd1df62156fbc5945f4762632564d7d038153091c3fcf1067f6aef7cff92" checksum = "1ebace6889caf889b4d3f76becee12e90353f2b8c7d875534a71e5742f8f6f83"
dependencies = [ dependencies = [
"thiserror", "thiserror",
"toml", "toml",
@ -2274,9 +2274,9 @@ dependencies = [
[[package]] [[package]]
name = "serde_json" name = "serde_json"
version = "1.0.67" version = "1.0.68"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a7f9e390c27c3c0ce8bc5d725f6e4d30a29d26659494aa4b17535f7522c5c950" checksum = "0f690853975602e1bfe1ccbf50504d67174e3bcf340f23b5ea9992e0587a52d8"
dependencies = [ dependencies = [
"itoa", "itoa",
"ryu", "ryu",
@ -2319,9 +2319,9 @@ dependencies = [
[[package]] [[package]]
name = "sha2" name = "sha2"
version = "0.9.6" version = "0.9.8"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "9204c41a1597a8c5af23c82d1c921cb01ec0a4c59e07a9c7306062829a3903f3" checksum = "b69f9a4c9740d74c5baa3fd2e547f9525fa8088a8a958e0ca2409a514e33f5fa"
dependencies = [ dependencies = [
"block-buffer 0.9.0", "block-buffer 0.9.0",
"cfg-if 1.0.0", "cfg-if 1.0.0",
@ -2454,9 +2454,9 @@ dependencies = [
[[package]] [[package]]
name = "tinyvec" name = "tinyvec"
version = "1.3.1" version = "1.4.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "848a1e1181b9f6753b5e96a092749e29b11d19ede67dfbbd6c7dc7e0f49b5338" checksum = "5241dd6f21443a3606b432718b166d3cedc962fd4b8bea54a8bc7f514ebda986"
dependencies = [ dependencies = [
"tinyvec_macros", "tinyvec_macros",
] ]
@ -2491,7 +2491,7 @@ dependencies = [
"serde", "serde",
"serde_json", "serde_json",
"serde_with", "serde_with",
"sha2 0.9.6", "sha2 0.9.8",
"signature", "signature",
"thiserror", "thiserror",
] ]
@ -2683,9 +2683,9 @@ checksum = "1a143597ca7c7793eff794def352d41792a93c481eb1042423ff7ff72ba2c31f"
[[package]] [[package]]
name = "wasm-bindgen" name = "wasm-bindgen"
version = "0.2.76" version = "0.2.77"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8ce9b1b516211d33767048e5d47fa2a381ed8b76fc48d2ce4aa39877f9f183e0" checksum = "5e68338db6becec24d3c7977b5bf8a48be992c934b5d07177e3931f5dc9b076c"
dependencies = [ dependencies = [
"cfg-if 1.0.0", "cfg-if 1.0.0",
"wasm-bindgen-macro", "wasm-bindgen-macro",
@ -2693,9 +2693,9 @@ dependencies = [
[[package]] [[package]]
name = "wasm-bindgen-backend" name = "wasm-bindgen-backend"
version = "0.2.76" version = "0.2.77"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "cfe8dc78e2326ba5f845f4b5bf548401604fa20b1dd1d365fb73b6c1d6364041" checksum = "f34c405b4f0658583dba0c1c7c9b694f3cac32655db463b56c254a1c75269523"
dependencies = [ dependencies = [
"bumpalo", "bumpalo",
"lazy_static", "lazy_static",
@ -2708,9 +2708,9 @@ dependencies = [
[[package]] [[package]]
name = "wasm-bindgen-macro" name = "wasm-bindgen-macro"
version = "0.2.76" version = "0.2.77"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "44468aa53335841d9d6b6c023eaab07c0cd4bddbcfdee3e2bb1e8d2cb8069fef" checksum = "b9d5a6580be83b19dc570a8f9c324251687ab2184e57086f71625feb57ec77c8"
dependencies = [ dependencies = [
"quote", "quote",
"wasm-bindgen-macro-support", "wasm-bindgen-macro-support",
@ -2718,9 +2718,9 @@ dependencies = [
[[package]] [[package]]
name = "wasm-bindgen-macro-support" name = "wasm-bindgen-macro-support"
version = "0.2.76" version = "0.2.77"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0195807922713af1e67dc66132c7328206ed9766af3858164fb583eedc25fbad" checksum = "e3775a030dc6f5a0afd8a84981a21cc92a781eb429acef9ecce476d0c9113e92"
dependencies = [ dependencies = [
"proc-macro2", "proc-macro2",
"quote", "quote",
@ -2731,9 +2731,9 @@ dependencies = [
[[package]] [[package]]
name = "wasm-bindgen-shared" name = "wasm-bindgen-shared"
version = "0.2.76" version = "0.2.77"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "acdb075a845574a1fa5f09fd77e43f7747599301ea3417a9fbffdeedfc1f4a29" checksum = "c279e376c7a8e8752a8f1eaa35b7b0bee6bb9fb0cdacfa97cc3f1f289c87e2b4"
[[package]] [[package]]
name = "wasmer-clif-backend-fl" name = "wasmer-clif-backend-fl"
@ -2934,9 +2934,9 @@ dependencies = [
[[package]] [[package]]
name = "web-sys" name = "web-sys"
version = "0.3.53" version = "0.3.54"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "224b2f6b67919060055ef1a67807367c2066ed520c3862cc013d26cf893a783c" checksum = "0a84d70d1ec7d2da2d26a5bd78f4bca1b8c3254805363ce743b7a05bc30d195a"
dependencies = [ dependencies = [
"js-sys", "js-sys",
"wasm-bindgen", "wasm-bindgen",

View File

@ -26,16 +26,16 @@ fn insert_cert(certificate: Certificate, timestamp_sec: u64) -> InsertResult {
// TODO: pass current timestamp, return only valid, delete expired, return max weight // TODO: pass current timestamp, return only valid, delete expired, return max weight
#[marine] #[marine]
fn get_weight(peer_id: String) -> WeightResult { fn get_weight(peer_id: String, timestamp_sec: u64) -> WeightResult {
get_weight_impl(peer_id.clone()) get_weight_impl(peer_id.clone(), timestamp_sec)
.map(|w| (w, peer_id)) .map(|w| (w, peer_id))
.into() .into()
} }
// TODO: pass current timestamp, return only valid, delete expired // TODO: pass current timestamp, return only valid, delete expired
#[marine] #[marine]
fn get_all_certs(issued_for: String) -> AllCertsResult { fn get_all_certs(issued_for: String, timestamp_sec: u64) -> AllCertsResult {
get_all_certs_impl(issued_for).into() get_all_certs_impl(issued_for, timestamp_sec).into()
} }
#[marine] #[marine]

View File

@ -82,7 +82,8 @@ fn extract_public_key(peer_id: String) -> Result<PublicKey, ServiceError> {
.map_err(|e| ServiceError::PublicKeyExtractionError(e.to_string())) .map_err(|e| ServiceError::PublicKeyExtractionError(e.to_string()))
} }
pub fn get_weight_impl(peer_id: String) -> Result<u32, ServiceError> { pub fn get_weight_impl(peer_id: String, _timestamp_sec: u64) -> Result<u32, ServiceError> {
check_timestamp_tetraplets(&marine_rs_sdk::get_call_parameters(), 1)?;
let tg = get_data().lock(); let tg = get_data().lock();
let public_key = extract_public_key(peer_id)?; let public_key = extract_public_key(peer_id)?;
let weight = tg.weight(public_key)?; let weight = tg.weight(public_key)?;
@ -103,13 +104,11 @@ pub fn insert_cert_impl_raw(certificate: String, timestamp_sec: u64) -> Result<(
Ok(()) Ok(())
} }
fn string_to_public_key(public_key: String) -> Result<PublicKey, ServiceError> { pub fn get_all_certs_impl(
let public_key = PublicKey::from_base58(&public_key)?; issued_for: String,
_timestamp_sec: u64,
Ok(public_key) ) -> Result<Vec<Certificate>, ServiceError> {
} check_timestamp_tetraplets(&marine_rs_sdk::get_call_parameters(), 1)?;
pub fn get_all_certs_impl(issued_for: String) -> Result<Vec<Certificate>, ServiceError> {
let tg = get_data().lock(); let tg = get_data().lock();
let public_key = extract_public_key(issued_for)?; let public_key = extract_public_key(issued_for)?;

View File

@ -6,6 +6,7 @@ use crate::storage_impl::SQLiteStorageError::{
PublicKeyConversion, PublicKeyFromStr, PublicKeyNotFound, TrustNodeConversion, PublicKeyConversion, PublicKeyFromStr, PublicKeyNotFound, TrustNodeConversion,
WeightConversionDB, WeightConversionDB,
}; };
use core::convert::TryFrom; use core::convert::TryFrom;
use marine_sqlite_connector; use marine_sqlite_connector;
use marine_sqlite_connector::Connection; use marine_sqlite_connector::Connection;

View File

@ -49,10 +49,10 @@ data WeightResult:
service TrustGraph("trust-graph"): service TrustGraph("trust-graph"):
add_root(peer_id: string, weight: u32) -> AddRootResult add_root(peer_id: string, weight: u32) -> AddRootResult
add_trust(trust: Trust, issuer_peer_id: string, timestamp_sec: u64) -> AddTrustResult add_trust(trust: Trust, issuer_peer_id: string, timestamp_sec: u64) -> AddTrustResult
get_all_certs(issued_for: string) -> AllCertsResult get_all_certs(issued_for: string, timestamp_sec: u64) -> AllCertsResult
get_trust_metadata(issued_for_peer_id: string, expires_at: u64, issued_at: u64) -> GetTrustMetadataResult get_trust_metadata(issued_for_peer_id: string, expires_at_sec: u64, issued_at_sec: u64) -> GetTrustMetadataResult
get_weight(peer_id: string) -> WeightResult get_weight(peer_id: string, timestamp_sec: u64) -> WeightResult
insert_cert(certificate: Certificate, timestamp_sec: u64) -> InsertResult insert_cert(certificate: Certificate, timestamp_sec: u64) -> InsertResult
insert_cert_raw(certificate: string, timestamp_sec: u64) -> InsertResult insert_cert_raw(certificate: string, timestamp_sec: u64) -> InsertResult
issue_trust(issued_for_peer_id: string, expires_at: u64, issued_at: u64, signed_metadata: []u8) -> IssueTrustResult issue_trust(issued_for_peer_id: string, expires_at_sec: u64, issued_at_sec: u64, signed_metadata: []u8) -> IssueTrustResult
verify_trust(trust: Trust, issuer_peer_id: string, timestamp_sec: u64) -> VerifyTrustResult verify_trust(trust: Trust, issuer_peer_id: string, timestamp_sec: u64) -> VerifyTrustResult