diff --git a/Cargo.toml b/Cargo.toml index bb68ada..836d1fa 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -12,10 +12,11 @@ exclude = ["examples/transfers/contracts", "examples/transfers/enclave"] [workspace.package] version = "0.1.0" edition = "2021" -rust-version = "1.74.1" -license = "" +rust-version = "1.75.0" +license-file = "LICENSE" readme = "README.md" repository = "https://github.com/informalsystems/cycles-quartz" +homepage = "https://cycles.money" authors = ["Informal Systems "] [workspace.dependencies] diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..e570af1 --- /dev/null +++ b/LICENSE @@ -0,0 +1,10 @@ +This code is not yet licensed. We are making the source available for this early pre-production release, but all rights reserved by the copyright holder (Informal Systems). + +We accept contributions to the code, however by contributing to the codebase you hereby agree to allow Informal Systems to license your contribution however it deems appropriate in the future. We reserve the right to use, make derivative works from and/or license such contributions however we see fit, including via open-source or other business or proprietary licenses. + +This is not a long term viable strategy and we apologize on behalf of our civilization for the abysmal state of intellectual property law and really capitalism in general. You deserve better. + + +— + +In the meantime, enjoy this poem: diff --git a/crates/cli/Cargo.toml b/crates/cli/Cargo.toml index a85b1d6..3eb1235 100644 --- a/crates/cli/Cargo.toml +++ b/crates/cli/Cargo.toml @@ -4,10 +4,15 @@ version.workspace = true authors.workspace = true edition.workspace = true rust-version.workspace = true -license.workspace = true +license-file.workspace = true repository.workspace = true -keywords = ["blockchain", "cosmos", "tendermint", "cycles", "quartz"] +homepage.workspace = true +categories = ["command-line-utilities", "cryptography::cryptocurrencies", "hardware-support", "wasm"] +keywords = ["cosmos", "cosmwasm", "cycles", "quartz", "sgx"] readme = "README.md" +description = """ +A CLI tool to streamline development and deployment of Quartz applications. Quartz is a flexible framework for privacy-preserving computation via Trusted Execution Environments (TEEs) organized and secured by smart contracts. +""" [[bin]] name = "quartz" diff --git a/crates/common/Cargo.toml b/crates/common/Cargo.toml index 21ef10e..fa99f33 100644 --- a/crates/common/Cargo.toml +++ b/crates/common/Cargo.toml @@ -1,12 +1,18 @@ [package] name = "quartz-common" version.workspace = true +authors.workspace = true edition.workspace = true rust-version.workspace = true -license.workspace = true -readme.workspace = true +license-file.workspace = true repository.workspace = true -authors.workspace = true +homepage.workspace = true +categories = ["cryptography::cryptocurrencies", "wasm"] +keywords = ["cosmos", "cosmwasm", "cycles", "quartz", "sgx"] +readme = "README.md" +description = """ +A wrapper crate around quartz-contract-core, quartz-enclave-core, and quartz-proto. +""" [features] full = ["contract", "enclave", "proto"] diff --git a/crates/contracts/core/Cargo.toml b/crates/contracts/core/Cargo.toml index 40d2c10..07ab35f 100644 --- a/crates/contracts/core/Cargo.toml +++ b/crates/contracts/core/Cargo.toml @@ -4,10 +4,15 @@ version.workspace = true authors.workspace = true edition.workspace = true rust-version.workspace = true -license.workspace = true +license-file.workspace = true repository.workspace = true -keywords = ["blockchain", "cosmos", "cosmwasm", "cycles", "quartz"] +homepage.workspace = true +categories = ["cryptography::cryptocurrencies", "wasm"] +keywords = ["cosmos", "cosmwasm", "cycles", "quartz", "sgx"] readme = "README.md" +description = """ +A CosmWasm framework for securely interacting with Intel SGX enclaves. +""" [features] default = [] diff --git a/crates/contracts/dcap-verifier/Cargo.toml b/crates/contracts/dcap-verifier/Cargo.toml index 1666a38..8da0fe0 100644 --- a/crates/contracts/dcap-verifier/Cargo.toml +++ b/crates/contracts/dcap-verifier/Cargo.toml @@ -1,7 +1,18 @@ [package] name = "quartz-dcap-verifier" -version = "0.1.0" -edition = "2021" +version.workspace = true +authors.workspace = true +edition.workspace = true +rust-version.workspace = true +license-file.workspace = true +repository.workspace = true +homepage.workspace = true +categories = ["cryptography::cryptocurrencies", "wasm"] +keywords = ["cosmos", "cosmwasm", "cycles", "quartz", "sgx"] +readme = "README.md" +description = """ +Standalone CosmWasm smart contract for verifying Intel SGX DCAP attestations that can be called by other contracts. +""" exclude = [ # Those files are rust-optimizer artifacts. You might want to commit them for convenience but they should not be part of the source code publication. diff --git a/crates/contracts/dcap-verifier/msgs/Cargo.toml b/crates/contracts/dcap-verifier/msgs/Cargo.toml index a1916d0..0f441b2 100644 --- a/crates/contracts/dcap-verifier/msgs/Cargo.toml +++ b/crates/contracts/dcap-verifier/msgs/Cargo.toml @@ -4,8 +4,13 @@ version.workspace = true authors.workspace = true edition.workspace = true rust-version.workspace = true -license.workspace = true +license-file.workspace = true repository.workspace = true +homepage.workspace = true +keywords = ["cosmos", "cosmwasm", "cycles", "quartz", "sgx"] +readme = "README.md" +description = """ +""" [dependencies] # cosmos diff --git a/crates/contracts/tcbinfo/Cargo.toml b/crates/contracts/tcbinfo/Cargo.toml index fff6d62..4eef8e6 100644 --- a/crates/contracts/tcbinfo/Cargo.toml +++ b/crates/contracts/tcbinfo/Cargo.toml @@ -4,8 +4,15 @@ version.workspace = true authors.workspace = true edition.workspace = true rust-version.workspace = true -license.workspace = true +license-file.workspace = true repository.workspace = true +homepage.workspace = true +categories = ["cryptography::cryptocurrencies", "wasm"] +keywords = ["cosmos", "cosmwasm", "cycles", "quartz", "sgx"] +readme = "README.md" +description = """ +Standalone CosmWasm smart contract for storage and verification of TcbInfos for Intel SGX. +""" # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html diff --git a/crates/contracts/tcbinfo/msgs/Cargo.toml b/crates/contracts/tcbinfo/msgs/Cargo.toml index 1420906..c9a6b65 100644 --- a/crates/contracts/tcbinfo/msgs/Cargo.toml +++ b/crates/contracts/tcbinfo/msgs/Cargo.toml @@ -4,8 +4,13 @@ version.workspace = true authors.workspace = true edition.workspace = true rust-version.workspace = true -license.workspace = true +license-file.workspace = true repository.workspace = true +homepage.workspace = true +keywords = ["cosmos", "cosmwasm", "cycles", "quartz", "sgx"] +readme = "README.md" +description = """ +""" [dependencies] # external diff --git a/crates/contracts/tee-ra/Cargo.toml b/crates/contracts/tee-ra/Cargo.toml index b9aeeb3..981da24 100644 --- a/crates/contracts/tee-ra/Cargo.toml +++ b/crates/contracts/tee-ra/Cargo.toml @@ -4,10 +4,15 @@ version.workspace = true authors.workspace = true edition.workspace = true rust-version.workspace = true -license.workspace = true +license-file.workspace = true repository.workspace = true -keywords = ["blockchain", "cosmos", "cosmwasm", "cycles", "quartz"] +homepage.workspace = true +categories = ["cryptography::cryptocurrencies", "wasm"] +keywords = ["cosmos", "cosmwasm", "cycles", "quartz", "sgx"] readme = "README.md" +description = """ +Internal CosmWasm library for handling Intel SGX DCAP remote attestations. +""" [dependencies] # external diff --git a/crates/enclave/core/Cargo.toml b/crates/enclave/core/Cargo.toml index b65b4c8..dbf6e9b 100644 --- a/crates/enclave/core/Cargo.toml +++ b/crates/enclave/core/Cargo.toml @@ -4,10 +4,15 @@ version.workspace = true authors.workspace = true edition.workspace = true rust-version.workspace = true -license.workspace = true +license-file.workspace = true repository.workspace = true -keywords = ["blockchain", "cosmos", "tendermint", "cycles", "quartz"] +homepage.workspace = true +categories = ["cryptography::cryptocurrencies", "hardware-support", "wasm"] +keywords = ["cosmos", "cosmwasm", "cycles", "quartz", "sgx"] readme = "README.md" +description = """ +A Rust framework for building Intel SGX enclaves managed by a CosmWasm contract. +""" [features] mock-sgx = ["quartz-contract-core/mock-sgx"] @@ -41,7 +46,7 @@ cosmrs.workspace = true cosmwasm-std.workspace = true tendermint.workspace = true tendermint-light-client.workspace = true -tendermint-rpc = { workspace = true, features=["websocket-client", "http-client"] } +tendermint-rpc = { workspace = true, features = ["websocket-client", "http-client"] } # quartz quartz-cw-proof.workspace = true diff --git a/crates/enclave/cw-proof/Cargo.toml b/crates/enclave/cw-proof/Cargo.toml index 9313a5c..00fd26c 100644 --- a/crates/enclave/cw-proof/Cargo.toml +++ b/crates/enclave/cw-proof/Cargo.toml @@ -4,10 +4,15 @@ version.workspace = true authors.workspace = true edition.workspace = true rust-version.workspace = true -license.workspace = true +license-file.workspace = true repository.workspace = true -keywords = ["blockchain", "cosmos", "cosmwasm", "cycles", "quartz"] +homepage.workspace = true +categories = ["cryptography::cryptocurrencies", "wasm"] +keywords = ["cosmos", "cosmwasm", "cycles", "quartz", "sgx"] readme = "README.md" +description = """ +Merkle proofs of CosmWasm contract state. This crate contains proof types and a verifier implementation. +""" [dependencies] # external diff --git a/crates/enclave/proto/Cargo.toml b/crates/enclave/proto/Cargo.toml index b0cfc1d..f3fbc2a 100644 --- a/crates/enclave/proto/Cargo.toml +++ b/crates/enclave/proto/Cargo.toml @@ -4,10 +4,15 @@ version.workspace = true authors.workspace = true edition.workspace = true rust-version.workspace = true -license.workspace = true +license-file.workspace = true repository.workspace = true -keywords = ["blockchain", "cosmos", "tendermint", "cycles", "quartz"] +homepage.workspace = true +categories = ["cryptography::cryptocurrencies", "wasm"] +keywords = ["cosmos", "cosmwasm", "cycles", "quartz", "sgx"] readme = "README.md" +description = """ +Protobuf types defining the Quartz handshake to initialize connection between a smart contract and trusted execution environment. +""" [dependencies] diff --git a/crates/enclave/tm-stateless-verifier/Cargo.toml b/crates/enclave/tm-stateless-verifier/Cargo.toml index 019d62a..dd73b44 100644 --- a/crates/enclave/tm-stateless-verifier/Cargo.toml +++ b/crates/enclave/tm-stateless-verifier/Cargo.toml @@ -4,10 +4,15 @@ version.workspace = true authors.workspace = true edition.workspace = true rust-version.workspace = true -license.workspace = true +license-file.workspace = true repository.workspace = true -keywords = ["blockchain", "cosmos", "tendermint", "cycles", "quartz"] +homepage.workspace = true +categories = ["cryptography::cryptocurrencies", "wasm"] +keywords = ["cosmos", "cosmwasm", "cycles", "quartz", "sgx"] readme = "README.md" +description = """ +Stateless verification of a tendermint light client proof. +""" [dependencies] # external diff --git a/crates/utils/cw-client/Cargo.toml b/crates/utils/cw-client/Cargo.toml index 2c4c524..d6c550f 100644 --- a/crates/utils/cw-client/Cargo.toml +++ b/crates/utils/cw-client/Cargo.toml @@ -1,12 +1,19 @@ [package] name = "cw-client" version.workspace = true +authors.workspace = true edition.workspace = true rust-version.workspace = true -license.workspace = true -readme.workspace = true +license-file.workspace = true repository.workspace = true -authors.workspace = true +homepage.workspace = true +categories = ["cryptography::cryptocurrencies", "wasm"] +keywords = ["cosmos", "cosmwasm", "cycles", "quartz", "sgx"] +readme = "README.md" +description = """ +Rust library for interacting with CosmWasm-enabled blockchains. +Deploy contracts, query them, and execute transactions. +""" [lib] path = "src/lib.rs" diff --git a/crates/utils/cw-prover/Cargo.toml b/crates/utils/cw-prover/Cargo.toml index a81efd1..d085192 100644 --- a/crates/utils/cw-prover/Cargo.toml +++ b/crates/utils/cw-prover/Cargo.toml @@ -4,10 +4,15 @@ version.workspace = true authors.workspace = true edition.workspace = true rust-version.workspace = true -license.workspace = true +license-file.workspace = true repository.workspace = true -keywords = ["blockchain", "cosmos", "cosmwasm", "cycles", "quartz"] +homepage.workspace = true +categories = ["command-line-utilities", "cryptography::cryptocurrencies", "wasm"] +keywords = ["cosmos", "cosmwasm", "cycles", "quartz", "sgx"] readme = "README.md" +description = """ +CLI to generate a merkle proof of a key in the state of a CosmWasm contract. +""" [dependencies] # external diff --git a/crates/utils/print-fmspc/Cargo.toml b/crates/utils/print-fmspc/Cargo.toml index 0bd8595..8c68de4 100644 --- a/crates/utils/print-fmspc/Cargo.toml +++ b/crates/utils/print-fmspc/Cargo.toml @@ -1,12 +1,18 @@ [package] name = "quartz-print-fmspc" version.workspace = true +authors.workspace = true edition.workspace = true rust-version.workspace = true -license.workspace = true -readme.workspace = true +license-file.workspace = true repository.workspace = true -authors.workspace = true +homepage.workspace = true +categories = ["command-line-utilities", "cryptography::cryptocurrencies", "hardware-support", "wasm"] +keywords = ["cosmos", "cosmwasm", "cycles", "quartz", "sgx"] +readme = "README.md" +description = """ +Convenience tool to print the FMSPC (Family-Model-Stepping-Platform-Custom) of the local SGX processor. +""" [dependencies] dcap-qvl = "0.1.0" diff --git a/crates/utils/tm-prover/Cargo.toml b/crates/utils/tm-prover/Cargo.toml index d8e5543..c369493 100644 --- a/crates/utils/tm-prover/Cargo.toml +++ b/crates/utils/tm-prover/Cargo.toml @@ -4,10 +4,15 @@ version.workspace = true authors.workspace = true edition.workspace = true rust-version.workspace = true -license.workspace = true +license-file.workspace = true repository.workspace = true -keywords = ["blockchain", "cosmos", "tendermint", "cycles", "quartz"] +homepage.workspace = true +categories = ["command-line-utilities", "cryptography::cryptocurrencies", "wasm"] +keywords = ["cosmos", "cosmwasm", "cycles", "quartz", "sgx"] readme = "README.md" +description = """ +CLI for generating a Merkle proof of CosmWasm state and accompanying tendermint light client proof (i.e. verification trace) for a given block height and trusted height/hash. Resulting proofs can be verified by quartz-tm-stateless-verifier. +""" [[bin]] name = "main" @@ -32,4 +37,4 @@ tendermint-light-client.workspace = true tendermint-light-client-detector.workspace = true # quartz -quartz-cw-proof.workspace = true \ No newline at end of file +quartz-cw-proof.workspace = true diff --git a/examples/transfers/contracts/Cargo.toml b/examples/transfers/contracts/Cargo.toml index 992d2e5..405f58c 100644 --- a/examples/transfers/contracts/Cargo.toml +++ b/examples/transfers/contracts/Cargo.toml @@ -1,11 +1,16 @@ -[workspace] - [package] name = "transfers-contract" version = "0.1.0" edition = "2021" +rust-version = "1.75.0" +license-file = "LICENSE" +readme = "README.md" +repository = "https://github.com/informalsystems/cycles-quartz" +homepage = "https://cycles.money" authors = ["Informal Systems "] exclude = ["contract.wasm", "hash.txt"] +description = """ +""" [[bin]] name = "schema" @@ -37,7 +42,7 @@ thiserror = { version = "1.0.63" } # cosmwasm cosmwasm-std = { version = "2.1.1", default-features = false, features = [ - "abort", + "abort", ] } cosmwasm-schema = { version = "2.1.1", default-features = false } cw-storage-plus = { version = "2.0.0", default-features = false } diff --git a/examples/transfers/enclave/Cargo.toml b/examples/transfers/enclave/Cargo.toml index c4f52e8..c583ed8 100644 --- a/examples/transfers/enclave/Cargo.toml +++ b/examples/transfers/enclave/Cargo.toml @@ -4,8 +4,15 @@ name = "quartz-app-transfers-enclave" version = "0.1.0" edition = "2021" +rust-version = "1.75.0" +license-file = "LICENSE" +readme = "README.md" +repository = "https://github.com/informalsystems/cycles-quartz" +homepage = "https://cycles.money" authors = ["Informal Systems "] default-run = "quartz-app-transfers-enclave" +description = """ +""" [[bin]] name = "encrypt" @@ -21,32 +28,32 @@ async-trait = "0.1.81" anyhow = { version = "1.0.86" } base64 = "0.22.1" clap = { version = "4.1.8", default-features = false, features = [ - "derive", - "std", + "derive", + "std", ] } color-eyre = { version = "0.6.2", default-features = false } ecies = { version = "0.2.3", default-features = false, features = ["pure"] } hex = { version = "0.4.3", default-features = false } k256 = { version = "0.13.2", default-features = false, features = [ - "ecdsa", - "alloc", + "ecdsa", + "alloc", ] } prost = { version = "0.13.1", default-features = false } serde = { version = "1.0.203", default-features = false, features = ["derive"] } serde_json = { version = "1.0.94", default-features = false, features = [ - "alloc", + "alloc", ] } sha2 = { version = "0.10.8", default-features = false } reqwest = "0.12.7" thiserror = { version = "1.0.49", default-features = false } tokio = { version = "1.39.2", default-features = false, features = [ - "macros", - "rt", + "macros", + "rt", ] } tonic = { version = "0.12.1", default-features = false, features = [ - "codegen", - "prost", - "transport", + "codegen", + "prost", + "transport", ] } tracing = "0.1.39" futures-util = "0.3.30" @@ -54,12 +61,12 @@ futures-util = "0.3.30" # cosmos cosmrs = { version = "0.18.0", default-features = false } cosmwasm-std = { version = "2.1.1", default-features = false, features = [ - "std", + "std", ] } tendermint = { version = "=0.38.1", default-features = false } tendermint-rpc = { version = "=0.38.1", default-features = false } tendermint-light-client = { version = "=0.38.1", default-features = false, features = [ - "rust-crypto", + "rust-crypto", ] } transfers-contract = { path = "../contracts", default-features = false } @@ -77,6 +84,6 @@ cw-multi-test = "2.1.0" [build-dependencies] tonic-build = { version = "0.12.1", default-features = false, features = [ - "prost", - "transport", + "prost", + "transport", ] }