Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Remove vergen dep on feat-track-2.0 for cargo audit #185

Merged
merged 5 commits into from
Aug 28, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
46 changes: 39 additions & 7 deletions .github/workflows/ci-casper-client-rs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,12 +3,12 @@ name: ci-casper-client-rs

on:
push:
branches: [main, dev, release-2.0.0]
branches: [main, dev, release-2.0.0, feat-track-node-2.0]
paths-ignore:
- '**.md'

pull_request:
branches: [main, dev, release-2.0.0]
branches: [main, dev, release-2.0.0, feat-track-node-2.0]
paths-ignore:
- '**.md'

Expand All @@ -22,11 +22,19 @@ jobs:

steps:
- uses: actions/checkout@v2
- uses: actions-rs/toolchain@v1
with:
toolchain: stable
profile: minimal
components: rustfmt, clippy

- name: Get stable from rust-toolchain.toml
id: stable-toolchain
run: |
VER=$(sed -nr 's/channel\s+=\s+\"(.*)\"/\1/p' rust-toolchain.toml)
echo "RUST_CHANNEL=$VER" >> $GITHUB_ENV

- name: Install Toolchain - Stable
run: |
rustup update --no-self-update ${{ env.RUST_CHANNEL }}
rustup component add --toolchain ${{ env.RUST_CHANNEL }} rustfmt rust-src clippy
rustup default ${{ env.RUST_CHANNEL }}
rustup target add wasm32-unknown-unknown

- name: Fmt
uses: actions-rs/cargo@v1
Expand All @@ -45,6 +53,12 @@ jobs:
command: clippy
args: --all-targets

# - name: Clippy with no features
# uses: actions-rs/cargo@v1
# with:
# command: clippy
# args: --all-targets --no-default-features

- name: Doc
uses: actions-rs/cargo@v1
with:
Expand All @@ -55,3 +69,21 @@ jobs:
uses: actions-rs/cargo@v1
with:
command: test

# - name: Test with no features
# uses: actions-rs/cargo@v1
# with:
# command: test
# args: --no-default-features

- name: Build
uses: actions-rs/cargo@v1
with:
command: build
args: --all-targets

# - name: Build lib for Wasm with no features
# uses: actions-rs/cargo@v1
# with:
# command: build
# args: --lib --target wasm32-unknown-unknown --no-default-features
34 changes: 13 additions & 21 deletions Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,7 +1,11 @@
[package]
name = "casper-client"
version = "2.0.0" # when updating, also update 'html_root_url' in lib.rs
authors = ["Marc Brinkmann <[email protected]>", "Fraser Hutchison <[email protected]>", "Zachary Showalter <[email protected]>"]
authors = [
"Marc Brinkmann <[email protected]>",
"Fraser Hutchison <[email protected]>",
"Zachary Showalter <[email protected]>",
]
edition = "2021"
description = "A client library and binary for interacting with the Casper network"
documentation = "https://docs.rs/casper-client"
Expand All @@ -18,56 +22,44 @@ path = "lib/lib.rs"
name = "casper-client"
path = "src/main.rs"
doc = false
required-features = ["async-trait", "clap", "clap_complete", "std-fs-io"]

[features]
default = ["async-trait", "clap", "clap_complete", "tokio", "std-fs-io"]
default = ["async-trait", "clap", "clap_complete", "std-fs-io"]
std-fs-io = ["casper-types/std-fs-io"]

[dependencies]
async-trait = { version = "0.1.59", default-features = false, optional = true }
base16 = "0.2.1"
casper-types = { version = "5.0.0", features = ["std"] }
clap = { version = "4", features = [
"cargo",
"deprecated",
"wrap_help",
], optional = true }
clap_complete = { version = "4", default-features = false, optional = true }
clap = { version = "~4.4", features = ["cargo", "deprecated"], optional = true }
clap_complete = { version = "~4.4", default-features = false, optional = true }
hex-buffer-serde = "0.4.0"
humantime = "2"
itertools = "0.11.0"
jsonrpc-lite = "0.6.0"
num-traits = "0.2.15"
once_cell = "1"
rand = "0.8.5"
reqwest = { version = "0.11.13", features = ["json"] }
reqwest = { version = "0.12.5", features = ["json"] }
schemars = "0.8.13"
serde = { version = "1", default-features = false, features = ["derive"] }
serde-map-to-array = "1.1.1"
serde_json = { version = "1", features = ["preserve_order"] }
thiserror = "1.0.34"
tokio = { version = "1.23.0", features = [
"macros",
"net",
"rt-multi-thread",
"sync",
"time",
], optional = true }
thiserror = "1"
tokio = { version = "1.38.0", features = ["macros", "rt", "sync", "time"] }
uint = "0.9.4"

[dev-dependencies]
tempfile = "3.7.1"

[build-dependencies]
vergen = { version = "7", default-features = false, features = ["git"] }

[patch.crates-io]
casper-types = { git = "https://github.com/casper-network/casper-node.git", branch = "feat-2.0" }

[package.metadata.deb]
features = ["vendored-openssl"]
revision = "0"
assets = [["./target/release/casper-client", "/usr/bin/casper-client", "755"], ]
assets = [["./target/release/casper-client", "/usr/bin/casper-client", "755"]]
extended-description = """
Package for Casper Client to connect to Casper Node.

Expand Down
36 changes: 32 additions & 4 deletions build.rs
Original file line number Diff line number Diff line change
@@ -1,7 +1,35 @@
use vergen::{Config, ShaKind};
use std::io;
use std::process::Command;

const GIT_HASH_ENV_VAR: &str = "GIT_SHA_SHORT";

fn main() {
let mut config = Config::default();
*config.git_mut().sha_kind_mut() = ShaKind::Short;
let _ = vergen::vergen(config);
match get_git_commit_hash() {
// If the git commit hash is retrieved successfully, set the environment variable
Ok(git_hash) => {
println!("cargo:rustc-env={GIT_HASH_ENV_VAR}={git_hash}");
}
// If there's an error retrieving the git commit hash, print a note and set the environment variable to "unknown"
Err(e) => {
println!("cargo:warning=Note: Failed to get git commit hash: {}", e);
println!("cargo:rustc-env={GIT_HASH_ENV_VAR}=unknown");
}
}
}

fn get_git_commit_hash() -> Result<String, io::Error> {
// Build the command to retrieve the short git commit hash
let output = Command::new("git")
.arg("rev-parse")
.arg("--short")
.arg("HEAD")
.output()?;

if output.status.success() {
// Parse the raw output into a string and trim the newline character
Ok(String::from_utf8_lossy(&output.stdout).trim().to_string())
} else {
// Return an error if the command failed
Err(io::Error::new(io::ErrorKind::Other, "Git command failed"))
}
}
16 changes: 8 additions & 8 deletions lib/cli/tests.rs
Original file line number Diff line number Diff line change
Expand Up @@ -585,8 +585,8 @@ mod transaction {
let validator_public_key = PublicKey::from(&validator_secret_key);
let amount = U512::from(2000);

let delegator_public_key_cl = &CLValue::from_t(&delegator_public_key).unwrap();
let validator_public_key_cl = &CLValue::from_t(&validator_public_key).unwrap();
let delegator_public_key_cl = &CLValue::from_t(delegator_public_key).unwrap();
let validator_public_key_cl = &CLValue::from_t(validator_public_key).unwrap();
let amount_cl = &CLValue::from_t(amount).unwrap();

let transaction_string_params = TransactionStrParams {
Expand Down Expand Up @@ -699,8 +699,8 @@ mod transaction {
let validator_public_key = PublicKey::from(&validator_secret_key);

let amount_cl = &CLValue::from_t(amount).unwrap();
let delegator_public_key_cl = &CLValue::from_t(&delegator_public_key).unwrap();
let validator_public_key_cl = &CLValue::from_t(&validator_public_key).unwrap();
let delegator_public_key_cl = &CLValue::from_t(delegator_public_key).unwrap();
let validator_public_key_cl = &CLValue::from_t(validator_public_key).unwrap();

let transaction_string_params = TransactionStrParams {
secret_key: "",
Expand Down Expand Up @@ -764,9 +764,9 @@ mod transaction {
let new_validator_public_key = PublicKey::from(&new_validator_secret_key);
let amount = U512::from(5000);

let delegator_public_key_cl = &CLValue::from_t(&delegator_public_key).unwrap();
let validator_public_key_cl = &CLValue::from_t(&validator_public_key).unwrap();
let new_validator_public_key_cl = &CLValue::from_t(&new_validator_public_key).unwrap();
let delegator_public_key_cl = &CLValue::from_t(delegator_public_key).unwrap();
let validator_public_key_cl = &CLValue::from_t(validator_public_key).unwrap();
let new_validator_public_key_cl = &CLValue::from_t(new_validator_public_key).unwrap();
let amount_cl = &CLValue::from_t(amount).unwrap();

let transaction_string_params = TransactionStrParams {
Expand Down Expand Up @@ -1053,7 +1053,7 @@ mod transaction {
let maybe_source = Some(source_uref);

let source_uref_cl = &CLValue::from_t(Some(&source_uref)).unwrap();
let target_uref_cl = &CLValue::from_t(&target_uref).unwrap();
let target_uref_cl = &CLValue::from_t(target_uref).unwrap();

let transaction_string_params = TransactionStrParams {
secret_key: "",
Expand Down
2 changes: 2 additions & 0 deletions rust-toolchain.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
[toolchain]
channel = "1.73.0"
4 changes: 2 additions & 2 deletions src/main.rs
Original file line number Diff line number Diff line change
Expand Up @@ -63,7 +63,7 @@ const APP_NAME: &str = "Casper client";

static VERSION: Lazy<String> =
Lazy::new(
|| match option_env!("VERGEN_GIT_SHA_SHORT").map(|sha| sha.to_lowercase()) {
|| match option_env!("GIT_SHA_SHORT").map(|sha| sha.to_lowercase()) {
None => crate_version!().to_string(),
Some(git_sha_short) => {
if git_sha_short.to_lowercase() == "unknown" {
Expand Down Expand Up @@ -175,7 +175,7 @@ fn cli() -> Command {
))
}

#[tokio::main]
#[tokio::main(flavor = "current_thread")]
async fn main() {
let arg_matches = cli().get_matches();
let (subcommand_name, matches) = arg_matches.subcommand().unwrap_or_else(|| {
Expand Down
Loading