[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."
[dependencies]
anyhow = { version = "1.0", optional = true }
backtrace = { version = "0.3", optional = true }
bitflags = "1"
derivative = "2.2"
dyn-clone = { version = "1.0", optional = true }
fuel-asm = { workspace = true, path = "../fuel-asm" }
fuel-crypto = { workspace = true, path = "../fuel-crypto" }
fuel-merkle = { workspace = true }
fuel-storage = { workspace = true, path = "../fuel-storage" }
fuel-tx = { workspace = true, features = ["builder", "std"], path = "../fuel-tx" }
fuel-types = { workspace = true, path = "../fuel-types" }
itertools = "0.10"
rand = { version = "0.8", optional = true }
serde = { version = "1.0", features = ["derive", "rc"], optional = true }
sha3 = "0.10"
strum = { version = "0.24", features = ["derive"], optional = true }
tai64 = "4.0"
thiserror = "1.0"
[dev-dependencies]
fuel-tx = { workspace = true, features = ["builder"] }
fuel-vm = { path = ".", default-features = false, features = ["test-helpers"] }
num-integer = "0.1.45"
quickcheck = "1.0"
quickcheck_macros = "1.0"
rayon = "1.5.3"
regex = "1.6"
serde_json = "1.0"
test-case = "2.2"
[features]
default = ["optimized"]
arbitrary = ["fuel-asm/arbitrary"]
debug = []
optimized = []
profile-gas = ["profile-any"]
profile-coverage = ["profile-any"]
profile-any = ["dyn-clone"]
random = ["fuel-crypto/random", "fuel-types/random", "fuel-tx/random", "rand"]
serde = ["dep:serde", "fuel-asm/serde", "fuel-types/serde", "fuel-tx/serde"]
test-helpers = ["fuel-tx/builder", "random", "dep:anyhow"]
[[test]]
name = "test-backtrace"
path = "tests/backtrace.rs"
required-features = ["random"]
[[test]]
name = "test-blockchain"
path = "tests/blockchain.rs"
required-features = ["random"]
[[test]]
name = "test-code-coverage"
path = "tests/code_coverage.rs"
required-features = ["random", "profile-coverage"]
[[test]]
name = "test-contract"
path = "tests/contract.rs"
required-features = ["random"]
[[test]]
name = "test-crypto"
path = "tests/crypto.rs"
required-features = ["random"]
[[test]]
name = "test-encoding"
path = "tests/encoding.rs"
required-features = ["random"]
[[test]]
name = "test-flow"
path = "tests/flow.rs"
required-features = ["random"]
[[test]]
name = "test-gas-factor"
path = "tests/gas_factor.rs"
required-features = ["profile-gas"]
[[test]]
name = "test-memory"
path = "tests/memory.rs"
required-features = ["random"]
[[test]]
name = "test-metadata"
path = "tests/metadata.rs"
required-features = ["random"]
[[test]]
name = "test-predicate"
path = "tests/predicate.rs"
required-features = ["random"]
[[test]]
name = "test-profile-gas"
path = "tests/profile_gas.rs"
required-features = ["random", "profile-gas"]
[[test]]
name = "test-serde-profile"
path = "tests/serde_profile.rs"
required-features = ["random", "profile-coverage", "profile-gas", "serde"]