[package]
name = "fuel-vm"
version = { workspace = true }
authors = { workspace = true }
categories = { workspace = true }
edition = { workspace = true }
homepage = { workspace = true }
keywords = ["blockchain", "cryptocurrencies", "fuel", "fuel-vm"]
license = "BUSL-1.1"
repository = { workspace = true }
description = "FuelVM interpreter."
[[bench]]
name = "execution"
harness = false
required-features = ["std"]
[dependencies]
anyhow = { version = "1.0", optional = true }
async-trait = "0.1"
backtrace = { version = "0.3", optional = true }
bitflags = { workspace = true }
derivative = "2.2"
derive_more = { version = "0.99", default-features = false, features = [
"display",
] }
dyn-clone = { version = "1.0", optional = true }
ethnum = "1.3"
fuel-asm = { workspace = true, default-features = false }
fuel-compression = { workspace = true, default-features = false, optional = true }
fuel-crypto = { workspace = true, default-features = false }
fuel-merkle = { workspace = true, default-features = false }
fuel-storage = { workspace = true }
fuel-tx = { workspace = true, default-features = false, features = ["alloc"] }
fuel-types = { workspace = true, default-features = false }
hashbrown = "0.14"
itertools = { version = "0.10", default-features = false }
libm = { version = "0.2", default-features = false }
paste = "1.0"
percent-encoding = { version = "2.3", features = [
"alloc",
], default-features = false }
primitive-types = { version = "0.12", default-features = false }
rand = { version = "0.8", optional = true }
serde = { version = "1.0", features = ["derive", "rc"], optional = true }
serde_with = { version = "3.7", optional = true }
sha3 = { version = "0.10", default-features = false }
static_assertions = "1.1"
strum = { version = "0.24", features = ["derive"], default-features = false }
tai64 = { version = "4.0", default-features = false, optional = true }
[dev-dependencies]
criterion = "0.4"
ed25519-dalek = { version = "2.0.0", features = ["rand_core"] }
fuel-crypto = { workspace = true, features = ["test-helpers"] }
fuel-tx = { workspace = true, features = ["test-helpers"] }
fuel-vm = { path = ".", default-features = false, features = [
"test-helpers",
"serde",
"profile-coverage",
"profile-gas",
"random",
] }
futures = "0.3.28"
ntest = "0.9.2"
num-integer = "0.1.45"
p256 = "0.13"
quickcheck = "1.0"
quickcheck_macros = "1.0"
rayon = "1.7"
rstest = "0.17"
serde_json = "1.0"
test-case = "2.2"
tokio = { version = "1.27", features = ["full"] }
tokio-rayon = "2.1.0"
[features]
default = ["std"]
std = [
"alloc",
"fuel-crypto/std",
"fuel-types/std",
"fuel-asm/std",
"fuel-tx/std",
"itertools/use_std",
]
alloc = ["fuel-asm/alloc", "fuel-tx/alloc", "fuel-crypto/alloc"]
profile-gas = ["profile-any"]
profile-coverage = ["profile-any"]
profile-any = ["dyn-clone"]
random = ["fuel-crypto/random", "fuel-types/random", "fuel-tx/random", "rand"]
da-compression = ["fuel-compression", "fuel-tx/da-compression"]
serde = [
"dep:serde",
"dep:serde_with",
"hashbrown/serde",
"fuel-asm/serde",
"fuel-types/serde",
"fuel-merkle/serde",
"fuel-crypto/serde",
"backtrace?/serde",
]
test-helpers = [
"fuel-tx/test-helpers",
"alloc",
"random",
"dep:anyhow",
"tai64",
"fuel-crypto/test-helpers",
]
[lints.rust]
unexpected_cfgs = { level = "warn", check-cfg = ['cfg(fuzzing)'] }