[package] authors = ["info@tos.network"] description = "rtvm Precompiles - Ethereum compatible precompiled contracts" edition = "2021" keywords = ["no_std", "ethereum", "evm", "rtvm", "precompiles"] license = "MIT" name = "rtvm-precompile" repository = "https://github.com/tos-network/rtvm" version = "6.0.0" [package.metadata.docs.rs] all-features = true rustdoc-args = ["--cfg", "docsrs"] [dependencies] rtvm-primitives = { path = "../primitives", version = "3.1.1", default-features = false } bn = { package = "substrate-bn", version = "0.6", default-features = false } once_cell = { version = "1.19", default-features = false, features = ["alloc"] } ripemd = { version = "0.1", default-features = false } sha2 = { version = "0.10", default-features = false } # modexp precompile aurora-engine-modexp = { version = "1.0", default-features = false } # Optional KZG point evaluation precompile c-kzg = { version = "1.0.0", default-features = false, optional = true } # ecRecover precompile k256 = { version = "0.13.3", default-features = false, features = ["ecdsa"] } secp256k1 = { version = "0.29.0", default-features = false, features = [ "alloc", "recovery", "rand", "global-context", ], optional = true } [dev-dependencies] criterion = { version = "0.5" } rand = { version = "0.8", features = ["std"] } [features] default = ["std", "c-kzg", "secp256k1", "portable"] std = [ "rtvm-primitives/std", "k256/std", "once_cell/std", "ripemd/std", "sha2/std", "c-kzg?/std", "secp256k1?/std", ] hashbrown = ["rtvm-primitives/hashbrown"] asm-keccak = ["rtvm-primitives/asm-keccak"] optimism = ["rtvm-primitives/optimism"] # Optimism default handler enabled Optimism handler register by default in EvmBuilder. optimism-default-handler = [ "optimism", "rtvm-primitives/optimism-default-handler", ] negate-optimism-default-handler = [ "rtvm-primitives/negate-optimism-default-handler", ] # These libraries may not work on all no_std platforms as they depend on C. # Enables the KZG point evaluation precompile. c-kzg = ["dep:c-kzg", "rtvm-primitives/c-kzg"] portable = ["rtvm-primitives/portable", "c-kzg?/portable"] # Use `secp256k1` as a faster alternative to `k256`. # The problem that `secp256k1` has is it fails to build for `wasm` target on Windows and Mac as it is c lib. # In Linux it passes. If you don't require to build wasm on win/mac, it is safe to use it and it is enabled by default. secp256k1 = ["dep:secp256k1"] [[bench]] name = "bench" path = "benches/bench.rs" harness = false