mirror of
https://github.com/logos-blockchain/lssa.git
synced 2026-03-18 18:03:07 +00:00
251 lines
8.7 KiB
TOML
251 lines
8.7 KiB
TOML
[workspace.package]
|
|
license = "MIT or Apache-2.0"
|
|
|
|
[workspace]
|
|
resolver = "3"
|
|
members = [
|
|
"integration_tests",
|
|
"storage",
|
|
"key_protocol",
|
|
"mempool",
|
|
"wallet",
|
|
"wallet-ffi",
|
|
"common",
|
|
"nssa",
|
|
"nssa/core",
|
|
"programs/amm/core",
|
|
"programs/amm",
|
|
"programs/token/core",
|
|
"programs/token",
|
|
"sequencer_core",
|
|
"sequencer_rpc",
|
|
"sequencer_runner",
|
|
"indexer/core",
|
|
"indexer/service",
|
|
"indexer/service/protocol",
|
|
"indexer/service/rpc",
|
|
"explorer_service",
|
|
"program_methods",
|
|
"program_methods/guest",
|
|
"test_program_methods",
|
|
"test_program_methods/guest",
|
|
"examples/program_deployment",
|
|
"examples/program_deployment/methods",
|
|
"examples/program_deployment/methods/guest",
|
|
"bedrock_client",
|
|
]
|
|
|
|
[workspace.dependencies]
|
|
nssa = { path = "nssa" }
|
|
nssa_core = { path = "nssa/core" }
|
|
common = { path = "common" }
|
|
mempool = { path = "mempool" }
|
|
storage = { path = "storage" }
|
|
key_protocol = { path = "key_protocol" }
|
|
sequencer_core = { path = "sequencer_core" }
|
|
sequencer_rpc = { path = "sequencer_rpc" }
|
|
sequencer_runner = { path = "sequencer_runner" }
|
|
indexer_core = { path = "indexer/core" }
|
|
indexer_service = { path = "indexer/service" }
|
|
indexer_service_protocol = { path = "indexer/service/protocol" }
|
|
indexer_service_rpc = { path = "indexer/service/rpc" }
|
|
wallet = { path = "wallet" }
|
|
wallet-ffi = { path = "wallet-ffi", default-features = false }
|
|
token_core = { path = "programs/token/core" }
|
|
token_program = { path = "programs/token" }
|
|
amm_core = { path = "programs/amm/core" }
|
|
amm_program = { path = "programs/amm" }
|
|
test_program_methods = { path = "test_program_methods" }
|
|
bedrock_client = { path = "bedrock_client" }
|
|
|
|
tokio = { version = "1.28.2", features = [
|
|
"net",
|
|
"rt-multi-thread",
|
|
"sync",
|
|
"fs",
|
|
] }
|
|
tokio-util = "0.7.18"
|
|
risc0-zkvm = { version = "3.0.5", features = ['std'] }
|
|
risc0-build = "3.0.5"
|
|
anyhow = "1.0.98"
|
|
num_cpus = "1.13.1"
|
|
openssl = { version = "0.10", features = ["vendored"] }
|
|
openssl-probe = { version = "0.1.2" }
|
|
serde = { version = "1.0.60", default-features = false, features = ["derive"] }
|
|
serde_json = "1.0.81"
|
|
serde_with = "3.16.1"
|
|
actix = "0.13.0"
|
|
actix-cors = "0.6.1"
|
|
jsonrpsee = "0.26.0"
|
|
futures = "0.3"
|
|
actix-rt = "*"
|
|
lazy_static = "1.5.0"
|
|
env_logger = "0.10"
|
|
log = "0.4.28"
|
|
lru = "0.7.8"
|
|
thiserror = "2.0.12"
|
|
sha2 = "0.10.8"
|
|
hex = "0.4.3"
|
|
bytemuck = "1.24.0"
|
|
bytesize = { version = "2.3.1", features = ["serde"] }
|
|
humantime-serde = "1.1"
|
|
humantime = "2.1"
|
|
aes-gcm = "0.10.3"
|
|
toml = "0.7.4"
|
|
bincode = "1.3.3"
|
|
tempfile = "3.14.0"
|
|
light-poseidon = "0.3.0"
|
|
ark-bn254 = "0.5.0"
|
|
ark-ff = "0.5.0"
|
|
tiny-keccak = { version = "2.0.2", features = ["keccak"] }
|
|
base64 = "0.22.1"
|
|
bip39 = "2.2.0"
|
|
hmac-sha512 = "1.1.7"
|
|
chrono = "0.4.41"
|
|
borsh = "1.5.7"
|
|
base58 = "0.2.0"
|
|
itertools = "0.14.0"
|
|
url = { version = "2.5.4", features = ["serde"] }
|
|
tokio-retry = "0.3.0"
|
|
schemars = "1.2.0"
|
|
async-stream = "0.3.6"
|
|
|
|
logos-blockchain-common-http-client = { git = "https://github.com/logos-blockchain/logos-blockchain.git" }
|
|
logos-blockchain-key-management-system-service = { git = "https://github.com/logos-blockchain/logos-blockchain.git" }
|
|
logos-blockchain-core = { git = "https://github.com/logos-blockchain/logos-blockchain.git" }
|
|
logos-blockchain-chain-broadcast-service = { git = "https://github.com/logos-blockchain/logos-blockchain.git" }
|
|
logos-blockchain-chain-service = { git = "https://github.com/logos-blockchain/logos-blockchain.git" }
|
|
|
|
rocksdb = { version = "0.24.0", default-features = false, features = [
|
|
"snappy",
|
|
"bindgen-runtime",
|
|
] }
|
|
rand = { version = "0.8.5", features = ["std", "std_rng", "getrandom"] }
|
|
k256 = { version = "0.13.3", features = [
|
|
"ecdsa-core",
|
|
"arithmetic",
|
|
"expose-field",
|
|
"serde",
|
|
"pem",
|
|
] }
|
|
elliptic-curve = { version = "0.13.8", features = ["arithmetic"] }
|
|
actix-web = { version = "=4.1.0", default-features = false, features = [
|
|
"macros",
|
|
] }
|
|
clap = { version = "4.5.42", features = ["derive", "env"] }
|
|
reqwest = { version = "0.12", features = ["json", "rustls-tls", "stream"] }
|
|
|
|
# Profile for leptos WASM release builds
|
|
[profile.wasm-release]
|
|
inherits = "release"
|
|
opt-level = 'z'
|
|
lto = true
|
|
codegen-units = 1
|
|
|
|
[workspace.lints.rust]
|
|
warnings = "deny"
|
|
|
|
[workspace.lints]
|
|
clippy.all = { level = "deny", priority = -1 }
|
|
|
|
# Pedantic
|
|
clippy.pedantic = { level = "deny", priority = -1 }
|
|
|
|
# Reason: documenting every function returning Result is too verbose and doesn't add much value when you have good error types.
|
|
clippy.missing-errors-doc = "allow"
|
|
# Reason: most of the panics are internal and not part of the public API, so documenting them is not necessary.
|
|
clippy.missing-panics-doc = "allow"
|
|
# Reason: this isn't always bad and actually works well for our financial and cryptography code.
|
|
clippy.similar-names = "allow"
|
|
# Reason: this lint is too strict and hard to fix.
|
|
clippy.too-many-lines = "allow"
|
|
# Reason: std hasher is fine for us in public functions.
|
|
clippy.implicit-hasher = "allow"
|
|
|
|
# Restriction
|
|
clippy.restriction = { level = "deny", priority = -1 }
|
|
|
|
# Reason: we deny the whole `restriction` group but we allow things that don't make sense for us.
|
|
# That way we can still benefit from new lints added to the `restriction` group without having to
|
|
# explicitly allow them.
|
|
# As a downside our contributors don't know if some lint was enabled intentionally or just no one
|
|
# else faced it before to allow it but we can handle this during code reviews.
|
|
clippy.blanket-clippy-restriction-lints = "allow"
|
|
# Reason: we can't avoid using unwrap for now.
|
|
clippy.unwrap-used = "allow"
|
|
# Reason: we can't avoid using expect for now.
|
|
clippy.expect-used = "allow"
|
|
# Reason: unreachable is good in many cases.
|
|
clippy.unreachable = "allow"
|
|
# Reason: this is ridiculous strict in our codebase and doesn't add any value.
|
|
clippy.single-call-fn = "allow"
|
|
# Reason: we use panic in some places and it's okay.
|
|
clippy.panic = "allow"
|
|
# Reason: shadowing is good most of the times.
|
|
clippy.shadow-reuse = "allow"
|
|
# Reason: implicit return is good.
|
|
clippy.implicit-return = "allow"
|
|
# Reason: std is fine for us, we don't need to use core.
|
|
clippy.std-instead-of-core = "allow"
|
|
# Reason: std is fine for us, we don't need to use alloc.
|
|
clippy.std-instead-of-alloc = "allow"
|
|
# Reason: default methods are good most of the time.
|
|
clippy.missing-trait-methods = "allow"
|
|
# Reason: this is too verbose and doesn't help much if you have rust analyzer.
|
|
clippy.pattern-type-mismatch = "allow"
|
|
# Reason: decreases readability.
|
|
clippy.assertions-on-result-states = "allow"
|
|
# Reason: documenting every assert is too verbose.
|
|
clippy.missing-assert-message = "allow"
|
|
# Reason: documenting private items is too verbose and doesn't add much value.
|
|
clippy.missing-docs-in-private-items = "allow"
|
|
# Reason: we use separated suffix style.
|
|
clippy.separated_literal_suffix = "allow"
|
|
# Reason: sometimes absolute paths are more readable.
|
|
clippy.absolute-paths = "allow"
|
|
# Reason: sometimes it's as readable as full variable naming.
|
|
clippy.min-ident-chars = "allow"
|
|
# Reason: it's very common and handy.
|
|
clippy.indexing-slicing = "allow"
|
|
# Reason: we use little endian style.
|
|
clippy.little-endian-bytes = "allow"
|
|
# Reason: we use this style of pub visibility.
|
|
clippy.pub-with-shorthand = "allow"
|
|
# Reason: question mark operator is very cool.
|
|
clippy.question-mark-used = "allow"
|
|
# Reason: it's fine to panic in tests and some functions where it makes sense.
|
|
clippy.panic-in-result-fn = "allow"
|
|
# Reason: we don't care that much about inlining and LTO should take care of it.
|
|
clippy.missing_inline_in_public_items = "allow"
|
|
# Reason: it's okay for us.
|
|
clippy.default-numeric-fallback = "allow"
|
|
# Reason: this is fine for us.
|
|
clippy.exhaustive-enums = "allow"
|
|
# Reason: this is fine for us.
|
|
clippy.exhaustive-structs = "allow"
|
|
# Reason: this helps readability when item is imported in other modules.
|
|
clippy.module-name-repetitions = "allow"
|
|
# Reason: mostly historical reasons, maybe we'll address this in future.
|
|
clippy.mod-module-files = "allow"
|
|
# Reason: named module files is our preferred way.
|
|
clippy.self-named-module-files = "allow"
|
|
# Reason: this is actually quite handy.
|
|
clippy.impl-trait-in-params = "allow"
|
|
# Reason: this is often useful.
|
|
clippy.use-debug = "allow"
|
|
# Reason: this is sometimes useful.
|
|
clippy.field-scoped-visibility-modifiers = "allow"
|
|
# Reason: `pub use` is good for re-exports and hiding unnecessary details.
|
|
clippy.pub-use = "allow"
|
|
# Reason: we prefer semicolons inside blocks.
|
|
clippy.semicolon-outside-block = "allow"
|
|
# Reason: we don't do it blindly, this is mostly internal constraints checks.
|
|
clippy.unwrap-in-result = "allow"
|
|
# Reason: we don't see any problems with that.
|
|
clippy.shadow-same = "allow"
|
|
# Reason: this lint is too verbose.
|
|
clippy.let-underscore-untyped = "allow"
|
|
# Reason: this lint is actually bad as it forces to use wildcard `..` instead of
|
|
# field-by-field `_` which may lead to subtle bugs when new fields are added to the struct.
|
|
clippy.unneeded-field-pattern = "allow"
|