mirror of
https://github.com/fluencelabs/trust-graph
synced 2025-07-04 17:11:41 +00:00
Compare commits
14 Commits
trust-grap
...
trust-grap
Author | SHA1 | Date | |
---|---|---|---|
d0c6c62ca4 | |||
b6df3fe548 | |||
a747b9cc75 | |||
d567848cba | |||
9b942eacca | |||
c85fb16de3 | |||
97ce5bbac7 | |||
864b7f5c13 | |||
da38a41ba7 | |||
7493eed216 | |||
e9399b7d0c | |||
81eb924476 | |||
fe902acc50 | |||
f5994b33d1 |
2
.github/release-please/config.json
vendored
2
.github/release-please/config.json
vendored
@ -19,7 +19,7 @@
|
||||
}
|
||||
],
|
||||
"packages": {
|
||||
".": {
|
||||
"trust-graph": {
|
||||
"component": "trust-graph"
|
||||
},
|
||||
"aqua": {
|
||||
|
8
.github/release-please/manifest.json
vendored
8
.github/release-please/manifest.json
vendored
@ -1,6 +1,6 @@
|
||||
{
|
||||
".": "0.4.0",
|
||||
"aqua": "0.4.0",
|
||||
"service": "0.4.0",
|
||||
"keypair": "0.10.0"
|
||||
"trust-graph": "0.4.3",
|
||||
"aqua": "0.4.3",
|
||||
"service": "0.4.3",
|
||||
"keypair": "0.10.1"
|
||||
}
|
||||
|
15
.github/workflows/release.yml
vendored
15
.github/workflows/release.yml
vendored
@ -14,9 +14,9 @@ jobs:
|
||||
|
||||
outputs:
|
||||
releases-created: ${{ steps.release.outputs['releases_created'] }}
|
||||
trust-graph-api-release-created: ${{ steps.release.outputs['aqua--release-created'] }}
|
||||
trust-graph-release-created: ${{ steps.release.outputs['release-created'] }}
|
||||
trust-graph-tag-name: ${{ steps.release.outputs['tag_name'] }}
|
||||
trust-graph-api-release-created: ${{ steps.release.outputs['aqua--release_created'] }}
|
||||
trust-graph-release-created: ${{ steps.release.outputs['trust-graph--release_created'] }}
|
||||
trust-graph-tag-name: ${{ steps.release.outputs['trust-graph--tag_name'] }}
|
||||
|
||||
steps:
|
||||
- name: Run release-please
|
||||
@ -65,10 +65,8 @@ jobs:
|
||||
- name: Setup Rust toolchain
|
||||
uses: actions-rust-lang/setup-rust-toolchain@v1
|
||||
|
||||
- name: Install Marine
|
||||
uses: baptiste0928/cargo-install@v1.3.0
|
||||
with:
|
||||
crate: marine
|
||||
- name: Setup marine
|
||||
uses: fluencelabs/setup-marine@v1
|
||||
|
||||
- name: Build
|
||||
run: ./build.sh
|
||||
@ -107,6 +105,9 @@ jobs:
|
||||
run: npm publish --access public
|
||||
working-directory: aqua
|
||||
|
||||
- name: Install ipfs
|
||||
uses: nahsi/setup-ipfs@v1
|
||||
|
||||
- name: Create builtin distribution package
|
||||
if: needs.release-please.outputs.trust-graph-release-created
|
||||
run: ./builtin-package/package.sh
|
||||
|
9
.github/workflows/tests.yml
vendored
9
.github/workflows/tests.yml
vendored
@ -19,10 +19,8 @@ jobs:
|
||||
- name: Setup Rust toolchain
|
||||
uses: actions-rust-lang/setup-rust-toolchain@v1
|
||||
|
||||
- name: Install marine
|
||||
uses: baptiste0928/cargo-install@v1.3.0
|
||||
with:
|
||||
crate: marine
|
||||
- name: Setup marine
|
||||
uses: fluencelabs/setup-marine@v1
|
||||
|
||||
- name: Build
|
||||
working-directory: ./service
|
||||
@ -60,6 +58,9 @@ jobs:
|
||||
- run: npm run build
|
||||
working-directory: aqua
|
||||
|
||||
- name: Install ipfs
|
||||
uses: nahsi/setup-ipfs@v1
|
||||
|
||||
- name: Create distribution package
|
||||
run: ./builtin-package/package.sh
|
||||
|
||||
|
1732
Cargo.lock
generated
1732
Cargo.lock
generated
File diff suppressed because it is too large
Load Diff
24
Cargo.toml
24
Cargo.toml
@ -1,28 +1,6 @@
|
||||
[package]
|
||||
name = "trust-graph"
|
||||
version = "0.4.0"
|
||||
authors = ["Fluence Labs"]
|
||||
edition = "2021"
|
||||
description = "trust graph"
|
||||
license = "Apache-2.0"
|
||||
repository = "https://github.com/fluencelabs/trust-graph"
|
||||
|
||||
[dependencies]
|
||||
serde = { version = "1.0.118", features = ["derive"] }
|
||||
|
||||
fluence-keypair = { path = "./keypair", version = "0.10.0" }
|
||||
bs58 = "0.4.0"
|
||||
failure = "0.1.6"
|
||||
log = "0.4.11"
|
||||
ref-cast = "1.0.2"
|
||||
derivative = "2.1.1"
|
||||
thiserror = "1.0.23"
|
||||
sha2 = "0.10.6"
|
||||
rand = "0.8.5"
|
||||
nonempty = "0.8.1"
|
||||
|
||||
[workspace]
|
||||
members = [
|
||||
"trust-graph",
|
||||
"keypair",
|
||||
"service"
|
||||
]
|
||||
|
@ -1,5 +1,20 @@
|
||||
# Changelog
|
||||
|
||||
## [0.4.3](https://github.com/fluencelabs/trust-graph/compare/trust-graph-api-v0.4.1...trust-graph-api-v0.4.3) (2023-05-08)
|
||||
|
||||
|
||||
### Miscellaneous Chores
|
||||
|
||||
* **trust-graph-api:** Synchronize trust-graph, wasm and api versions
|
||||
|
||||
## [0.4.1](https://github.com/fluencelabs/trust-graph/compare/trust-graph-api-v0.4.0...trust-graph-api-v0.4.1) (2023-04-13)
|
||||
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
* **deps:** update aqua to 0.10.3 ([fe902ac](https://github.com/fluencelabs/trust-graph/commit/fe902acc50a6b4c6bf97c487f3e47ae0f5ef8a95))
|
||||
* **deps:** update aqua-lib to 0.7.0 ([fe902ac](https://github.com/fluencelabs/trust-graph/commit/fe902acc50a6b4c6bf97c487f3e47ae0f5ef8a95))
|
||||
|
||||
## [0.4.0](https://github.com/fluencelabs/trust-graph/compare/trust-graph-api-v0.3.2...trust-graph-api-v0.4.0) (2023-03-15)
|
||||
|
||||
|
||||
|
4744
aqua/package-lock.json
generated
4744
aqua/package-lock.json
generated
File diff suppressed because it is too large
Load Diff
@ -1,12 +1,12 @@
|
||||
{
|
||||
"name": "@fluencelabs/trust-graph",
|
||||
"version": "0.4.0",
|
||||
"version": "0.4.3",
|
||||
"description": "Aqua Trust Graph API library",
|
||||
"files": [
|
||||
"*.aqua"
|
||||
],
|
||||
"dependencies": {
|
||||
"@fluencelabs/aqua-lib": "^0.5.2"
|
||||
"@fluencelabs/aqua-lib": "^0.7.0"
|
||||
},
|
||||
"scripts": {
|
||||
"generate-aqua": "../service/build.sh",
|
||||
@ -31,6 +31,6 @@
|
||||
},
|
||||
"homepage": "https://github.com/fluencelabs/trust-graph#readme",
|
||||
"devDependencies": {
|
||||
"@fluencelabs/aqua": "^0.7.4-322"
|
||||
"@fluencelabs/aqua": "^0.10.3"
|
||||
}
|
||||
}
|
||||
|
@ -1,7 +0,0 @@
|
||||
{
|
||||
"name": "trust-graph",
|
||||
"dependencies": [
|
||||
"name:sqlite3",
|
||||
"name:trust-graph"
|
||||
]
|
||||
}
|
@ -3,20 +3,39 @@ set -o pipefail -o nounset -o errexit
|
||||
|
||||
# set current working directory to script directory to run script from everywhere
|
||||
cd "$(dirname "$0")"
|
||||
SCRIPT_DIR="$(pwd)"
|
||||
PACKAGE_DIR="$(pwd)/../package"
|
||||
|
||||
(
|
||||
rm -f $PACKAGE_DIR/*
|
||||
mkdir -p $PACKAGE_DIR
|
||||
)
|
||||
|
||||
(
|
||||
echo "*** copy wasm files ***"
|
||||
cd ../service
|
||||
cp artifacts/*.wasm "$SCRIPT_DIR"
|
||||
cp artifacts/*.wasm "$PACKAGE_DIR"
|
||||
)
|
||||
|
||||
(
|
||||
echo "*** copy on_start script ***"
|
||||
cp on_start.json "$PACKAGE_DIR"
|
||||
cp on_start.air "$PACKAGE_DIR"
|
||||
)
|
||||
|
||||
TRUST_GRAPH_CID=$(ipfs add -q --only-hash --cid-version=1 --chunker=size-262144 $PACKAGE_DIR/trust-graph.wasm)
|
||||
SQLITE_CID=$(ipfs add -q --only-hash --cid-version=1 --chunker=size-262144 $PACKAGE_DIR/sqlite3.wasm)
|
||||
mv $PACKAGE_DIR/trust-graph.wasm "$PACKAGE_DIR"/"$TRUST_GRAPH_CID".wasm
|
||||
mv $PACKAGE_DIR/sqlite3.wasm "$PACKAGE_DIR"/"$SQLITE_CID".wasm
|
||||
cp trust-graph_config.json "$PACKAGE_DIR"/"$TRUST_GRAPH_CID"_config.json
|
||||
cp sqlite3_config.json "$PACKAGE_DIR"/"$SQLITE_CID"_config.json
|
||||
|
||||
# write blueprint.json
|
||||
echo "{}" | jq --arg trust_graph_cid "$TRUST_GRAPH_CID" --arg sqlite_cid "$SQLITE_CID" '{"name": "trust-graph", "dependencies":[{"/":$sqlite_cid},{"/":$trust_graph_cid}]}' > "$PACKAGE_DIR/blueprint.json"
|
||||
|
||||
(
|
||||
echo "*** create builtin distribution package ***"
|
||||
cd ..
|
||||
mv builtin-package trust-graph
|
||||
tar --exclude="package.sh" -f trust-graph.tar.gz -zcv ./trust-graph
|
||||
mv trust-graph builtin-package
|
||||
cd $PACKAGE_DIR
|
||||
(tar cf - * | gzip) > ../trust-graph.tar.gz
|
||||
)
|
||||
|
||||
echo "*** done ***"
|
||||
|
@ -4,6 +4,13 @@ All notable changes to this project will be documented in this file.
|
||||
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
||||
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
||||
|
||||
## [0.10.1](https://github.com/fluencelabs/trust-graph/compare/keypair-v0.10.0...keypair-v0.10.1) (2023-05-02)
|
||||
|
||||
|
||||
### Features
|
||||
|
||||
* **keypair:** Make `KeyFormat` more convenient ([#91](https://github.com/fluencelabs/trust-graph/issues/91)) ([9b942ea](https://github.com/fluencelabs/trust-graph/commit/9b942eacca49d0468b4d7512667102363a6c9aa3))
|
||||
|
||||
## [0.10.0](https://github.com/fluencelabs/trust-graph/compare/keypair-v0.9.0...keypair-v0.10.0) (2023-03-15)
|
||||
|
||||
|
||||
|
@ -1,6 +1,6 @@
|
||||
[package]
|
||||
name = "fluence-keypair"
|
||||
version = "0.10.0"
|
||||
version = "0.10.1"
|
||||
authors = ["Fluence Labs"]
|
||||
edition = "2021"
|
||||
description = "identity"
|
||||
|
@ -48,6 +48,7 @@ use std::str::FromStr;
|
||||
/// ```
|
||||
///
|
||||
|
||||
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
|
||||
pub enum KeyFormat {
|
||||
Ed25519,
|
||||
#[cfg(not(target_arch = "wasm32"))]
|
||||
@ -168,6 +169,18 @@ impl KeyPair {
|
||||
}
|
||||
}
|
||||
|
||||
/// Get the key format of this keypair.
|
||||
pub fn key_format(&self) -> KeyFormat {
|
||||
use KeyPair::*;
|
||||
|
||||
match self {
|
||||
Ed25519(_) => KeyFormat::Ed25519,
|
||||
#[cfg(not(target_arch = "wasm32"))]
|
||||
Rsa(_) => KeyFormat::Rsa,
|
||||
Secp256k1(_) => KeyFormat::Secp256k1,
|
||||
}
|
||||
}
|
||||
|
||||
/// Get the public key of this keypair.
|
||||
pub fn public(&self) -> PublicKey {
|
||||
use KeyPair::*;
|
||||
|
@ -234,7 +234,6 @@ pub struct Signature(pub Vec<u8>);
|
||||
mod tests {
|
||||
use super::*;
|
||||
use quickcheck::*;
|
||||
use rand::seq::SliceRandom;
|
||||
use std::fmt;
|
||||
|
||||
const KEY1: &'static [u8] = include_bytes!("test/rsa-2048.pk8");
|
||||
@ -251,8 +250,8 @@ mod tests {
|
||||
}
|
||||
|
||||
impl Arbitrary for SomeKeypair {
|
||||
fn arbitrary<G: Gen>(g: &mut G) -> SomeKeypair {
|
||||
let mut key = [KEY1, KEY2, KEY3].choose(g).unwrap().to_vec();
|
||||
fn arbitrary(g: &mut Gen) -> SomeKeypair {
|
||||
let mut key = g.choose(&[KEY1, KEY2, KEY3]).unwrap().to_vec();
|
||||
SomeKeypair(Keypair::from_pkcs8(&mut key).unwrap())
|
||||
}
|
||||
}
|
||||
|
@ -4,6 +4,39 @@ All notable changes to this project will be documented in this file.
|
||||
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
||||
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
||||
|
||||
* The following workspace dependencies were updated
|
||||
* dependencies
|
||||
* trust-graph bumped from 0.4.1 to 0.4.2
|
||||
* fluence-keypair bumped from 0.10.0 to 0.10.1
|
||||
|
||||
## [0.4.3](https://github.com/fluencelabs/trust-graph/compare/trust-graph-wasm-v0.4.2...trust-graph-wasm-v0.4.3) (2023-05-08)
|
||||
|
||||
|
||||
### Miscellaneous Chores
|
||||
|
||||
* **trust-graph-wasm:** Synchronize trust-graph, wasm and api versions
|
||||
|
||||
|
||||
### Dependencies
|
||||
|
||||
* The following workspace dependencies were updated
|
||||
* dependencies
|
||||
* trust-graph bumped from 0.4.2 to 0.4.3
|
||||
|
||||
## [0.4.1](https://github.com/fluencelabs/trust-graph/compare/trust-graph-wasm-v0.4.0...trust-graph-wasm-v0.4.1) (2023-04-13)
|
||||
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
* **deps:** Add trust-graph to workspace and bump sqlite-wasm version ([#87](https://github.com/fluencelabs/trust-graph/issues/87)) ([da38a41](https://github.com/fluencelabs/trust-graph/commit/da38a41ba727a14774a71bba6612b1bf1f498db9))
|
||||
|
||||
|
||||
### Dependencies
|
||||
|
||||
* The following workspace dependencies were updated
|
||||
* dependencies
|
||||
* trust-graph bumped from 0.4.0 to 0.4.1
|
||||
|
||||
## [0.4.0](https://github.com/fluencelabs/trust-graph/compare/trust-graph-wasm-v0.3.2...trust-graph-wasm-v0.4.0) (2023-03-15)
|
||||
|
||||
|
||||
|
@ -1,6 +1,6 @@
|
||||
[package]
|
||||
name = "trust-graph-wasm"
|
||||
version = "0.4.0"
|
||||
version = "0.4.3"
|
||||
authors = ["Fluence Labs"]
|
||||
edition = "2021"
|
||||
description = "trust graph wasm"
|
||||
@ -12,8 +12,8 @@ name = "trust-graph"
|
||||
path = "src/main.rs"
|
||||
|
||||
[dependencies]
|
||||
trust-graph = { version = "0.4.0", path = "../." }
|
||||
fluence-keypair = { version = "0.10.0", path = "../keypair" }
|
||||
trust-graph = { version = "0.4.3", path = "../trust-graph" }
|
||||
fluence-keypair = { version = "0.10.1", path = "../keypair" }
|
||||
marine-rs-sdk = { version = "0.7.1", features = ["logger"] }
|
||||
marine-sqlite-connector = "0.8.0"
|
||||
|
||||
@ -29,8 +29,8 @@ bincode = "1.3.1"
|
||||
thiserror = "1.0.23"
|
||||
|
||||
[dev-dependencies]
|
||||
marine-rs-sdk-test = "0.8.1"
|
||||
marine-rs-sdk-test = "0.9.1"
|
||||
rusqlite = "0.28.0"
|
||||
|
||||
[build-dependencies]
|
||||
marine-rs-sdk-test = "0.8.1"
|
||||
marine-rs-sdk-test = "0.9.1"
|
||||
|
@ -5,12 +5,10 @@ modules_dir = "artifacts/"
|
||||
logger_enabled = true
|
||||
|
||||
[module.wasi]
|
||||
preopened_files = ["/tmp"]
|
||||
mapped_dirs = { "tmp" = "/tmp" }
|
||||
mapped_dirs = { "/tmp" = "data" }
|
||||
[[module]]
|
||||
name = "trust-graph"
|
||||
logger_enabled = true
|
||||
|
||||
[module.wasi]
|
||||
preopened_files = ["/tmp"]
|
||||
mapped_dirs = { "tmp" = "/tmp" }
|
||||
mapped_dirs = { "/tmp" = "data" }
|
||||
|
@ -13,7 +13,7 @@ mkdir -p artifacts
|
||||
cp ../target/wasm32-wasi/release/trust-graph.wasm artifacts/
|
||||
|
||||
# download SQLite 3 to use in tests
|
||||
curl -sS -L https://github.com/fluencelabs/sqlite/releases/download/v0.15.0_w/sqlite3.wasm -o artifacts/sqlite3.wasm
|
||||
curl -sS -L https://github.com/fluencelabs/sqlite/releases/download/sqlite-wasm-v0.18.1/sqlite3.wasm -o artifacts/sqlite3.wasm
|
||||
|
||||
# generate Aqua bindings
|
||||
marine aqua artifacts/trust-graph.wasm -s TrustGraph -i trust-graph > ../aqua/trust-graph.aqua
|
||||
|
@ -18,18 +18,18 @@
|
||||
mod service_tests {
|
||||
marine_rs_sdk_test::include_test_env!("/marine_test_env.rs");
|
||||
use crate::error::ServiceError;
|
||||
use crate::storage_impl::DB_PATH;
|
||||
use crate::TRUSTED_TIMESTAMP;
|
||||
use fluence_keypair::KeyPair;
|
||||
use libp2p_identity::PeerId;
|
||||
use marine_rs_sdk::{CallParameters, SecurityTetraplet};
|
||||
use marine_test_env::trust_graph::{Certificate, Revocation, ServiceInterface, Trust};
|
||||
use rusqlite::Connection;
|
||||
use std::collections::HashMap;
|
||||
use std::time::{SystemTime, UNIX_EPOCH};
|
||||
|
||||
static HOST_ID: &str = "some_host_id";
|
||||
|
||||
static TEST_DB_PATH: &str = "data/trust-graph.sqlite";
|
||||
|
||||
struct Auth {
|
||||
issuer: PeerId,
|
||||
trust: Trust,
|
||||
@ -55,12 +55,7 @@ mod service_tests {
|
||||
}
|
||||
|
||||
fn clear_env() {
|
||||
let connection = Connection::open(DB_PATH).unwrap();
|
||||
|
||||
connection
|
||||
.execute("DELETE FROM trust_relations", [])
|
||||
.unwrap();
|
||||
connection.execute("DELETE FROM roots", []).unwrap();
|
||||
std::fs::remove_file(TEST_DB_PATH).unwrap_or_default();
|
||||
}
|
||||
|
||||
fn get_correct_timestamp_cp(arg_number: usize) -> CallParameters {
|
||||
@ -445,32 +440,32 @@ mod service_tests {
|
||||
let mut trust_graph = marine_test_env::trust_graph::ServiceInterface::new();
|
||||
clear_env();
|
||||
|
||||
let peerA_kp = KeyPair::generate_ed25519();
|
||||
let peer_a_kp = KeyPair::generate_ed25519();
|
||||
let mut cur_time = 100u64;
|
||||
add_root_with_trust(&mut trust_graph, &peerA_kp, cur_time, cur_time + 9999, 10);
|
||||
add_root_with_trust(&mut trust_graph, &peer_a_kp, cur_time, cur_time + 9999, 10);
|
||||
|
||||
let peerB_kp = KeyPair::generate_ed25519();
|
||||
let peer_b_kp = KeyPair::generate_ed25519();
|
||||
add_trust(
|
||||
&mut trust_graph,
|
||||
&peerA_kp,
|
||||
&peerB_kp.get_peer_id(),
|
||||
&peer_a_kp,
|
||||
&peer_b_kp.get_peer_id(),
|
||||
cur_time,
|
||||
cur_time + 99999,
|
||||
);
|
||||
|
||||
let weight = get_weight(&mut trust_graph, peerB_kp.get_peer_id(), cur_time);
|
||||
let weight = get_weight(&mut trust_graph, peer_b_kp.get_peer_id(), cur_time);
|
||||
assert_ne!(weight, 0u32);
|
||||
|
||||
cur_time += 1;
|
||||
// A revokes B and cancels trust
|
||||
revoke(
|
||||
&mut trust_graph,
|
||||
&peerA_kp,
|
||||
&peerB_kp.get_peer_id(),
|
||||
&peer_a_kp,
|
||||
&peer_b_kp.get_peer_id(),
|
||||
cur_time,
|
||||
);
|
||||
|
||||
let weight = get_weight(&mut trust_graph, peerB_kp.get_peer_id(), cur_time);
|
||||
let weight = get_weight(&mut trust_graph, peer_b_kp.get_peer_id(), cur_time);
|
||||
assert_eq!(weight, 0u32);
|
||||
}
|
||||
|
||||
|
@ -1,5 +1,23 @@
|
||||
# Changelog
|
||||
|
||||
* The following workspace dependencies were updated
|
||||
* dependencies
|
||||
* fluence-keypair bumped from 0.10.0 to 0.10.1
|
||||
|
||||
## [0.4.3](https://github.com/fluencelabs/trust-graph/compare/trust-graph-v0.4.2...trust-graph-v0.4.3) (2023-05-08)
|
||||
|
||||
|
||||
### Features
|
||||
|
||||
* dummy change for release ([#95](https://github.com/fluencelabs/trust-graph/issues/95)) ([b6df3fe](https://github.com/fluencelabs/trust-graph/commit/b6df3fe5484b0adcad0c88abe170317a837142b3))
|
||||
|
||||
## [0.4.1](https://github.com/fluencelabs/trust-graph/compare/trust-graph-v0.4.0...trust-graph-v0.4.1) (2023-04-13)
|
||||
|
||||
|
||||
### Miscellaneous Chores
|
||||
|
||||
* **trust-graph:** Synchronize trust-graph, wasm and api versions
|
||||
|
||||
## [0.4.0](https://github.com/fluencelabs/trust-graph/compare/trust-graph-v0.3.2...trust-graph-v0.4.0) (2023-03-15)
|
||||
|
||||
|
22
trust-graph/Cargo.toml
Normal file
22
trust-graph/Cargo.toml
Normal file
@ -0,0 +1,22 @@
|
||||
[package]
|
||||
name = "trust-graph"
|
||||
version = "0.4.3"
|
||||
authors = ["Fluence Labs"]
|
||||
edition = "2021"
|
||||
description = "trust graph"
|
||||
license = "Apache-2.0"
|
||||
repository = "https://github.com/fluencelabs/trust-graph"
|
||||
|
||||
[dependencies]
|
||||
serde = { version = "1.0.118", features = ["derive"] }
|
||||
|
||||
fluence-keypair = { path = "../keypair", version = "0.10.1" }
|
||||
bs58 = "0.4.0"
|
||||
failure = "0.1.6"
|
||||
log = "0.4.11"
|
||||
ref-cast = "1.0.2"
|
||||
derivative = "2.1.1"
|
||||
thiserror = "1.0.23"
|
||||
sha2 = "0.10.6"
|
||||
nonempty = "0.8.1"
|
||||
rand = "0.8.5"
|
Reference in New Issue
Block a user