[package]
name = "solang"
version = "0.3.2"
authors = ["Sean Young <sean@mess.org>", "Lucas Steuernagel <lucas.tnagel@gmail.com>", "Cyrill Leutwiler <bigcyrill@hotmail.com>"]
homepage = "https://github.com/hyperledger/solang"
documentation = "https://solang.readthedocs.io/"
license = "Apache-2.0"
build = "build.rs"
description = "Solang Solidity Compiler"
keywords = [ "solidity", "compiler", "solana", "polkadot", "substrate" ]
rust-version = "1.68.0"
edition = "2021"
exclude = [ "/.*", "/docs",  "/examples", "/solana-library", "/tests", "/integration", "/vscode", "/testdata" ]

[build-dependencies]
cc = "1.0"

[dependencies]
regex = "1"
rand = "0.8"
num-bigint = { version = "0.4", features = ["rand"]}
num-traits = "0.2"
num-integer = "0.1"
clap = {version = "4.1", features = ["derive"]}
clap_complete = "4.1"
hex = "0.4"
tiny-keccak = { version = "2.0", features = ["keccak"] }
serde_json = "1.0"
serde = "1.0"
serde_derive = { version = "1.0" }
inkwell = { version = "0.2.0", features = ["target-webassembly", "no-libffi-linking", "llvm15-0"], optional = true }
blake2-rfc = "0.2.18"
handlebars = "4.3"
contract-metadata = "3.0"
semver = { version = "1.0", features = ["serde"] }
tempfile = "3.4"
libc = { version = "0.2", optional = true }
tower-lsp = "0.20"
tokio = { version = "1.27", features = ["rt", "io-std", "macros"] }
base58 = "0.2.0"
sha2 = "0.10"
ripemd = "0.1"
bitvec = "1"
funty = "2.0"
itertools = "0.11"
num-rational = "0.4"
indexmap = "2.0"
once_cell = "1.17"
solang-parser = { path = "solang-parser", version = "0.3.1" }
codespan-reporting = "0.11"
phf = { version = "0.11", features = ["macros"] }
rust-lapper = "1.1"
anchor-syn = { version = "0.28.0", features = ["idl"] }
convert_case = "0.6"
parse-display = "0.8.0"
parity-scale-codec = "3.4"
ink_env = "4.2.0"
ink_metadata = "4.2.0"
scale-info = "2.4"
petgraph = "0.6.3"
wasmparser = "0.110.0"
wasm-encoder = "0.31"
toml = "0.7"
wasm-opt = { version = "0.112.0", optional = true }
contract-build = { version = "3.0.1", optional = true }
primitive-types = { version = "0.12", features = ["codec"] }
normalize-path = "0.2.1"

[dev-dependencies]
num-derive = "0.4"
wasmi = "0.31"
# solana_rbpf makes api changes in patch versions
solana_rbpf = "=0.6.0"
byteorder = "1.4"
assert_cmd = "2.0"
bincode = "1.3"
ed25519-dalek = { version = "2", features = ["rand_core"] }
path-slash = "0.2"
pretty_assertions = "1.3"
byte-slice-cast = "1.2"
borsh = "0.10"
rayon = "1"
walkdir = "2.3.3"
ink_primitives = "4.2.0"
wasm_host_attr = { path = "tests/wasm_host_attr" }
num-bigint = { version = "0.4", features = ["rand", "serde"]}

[package.metadata.docs.rs]
no-default-features = true

[profile.release]
lto = true

[features]
default = ["llvm", "wasm_opt"]
llvm = ["inkwell", "libc"]
wasm_opt = ["llvm", "wasm-opt", "contract-build"]

[workspace]
members = ["solang-parser", "tests/wasm_host_attr"]
