[package]
name = "ic-platform"
description = "Controlled Candid and IC runtime dependency boundary"
version.workspace = true
edition.workspace = true
rust-version.workspace = true
license = "MIT AND Apache-2.0"
repository.workspace = true
readme = "README.md"
publish = ["crates-io"]
include = ["src/**", "README.md", "LICENSE", "Cargo.toml"]
[features]
default = []
agent = ["dep:ic-agent"]
bls = ["dep:ic-verify-bls-signature"]
candid = ["dep:candid", "candid/bignum", "candid/printer", "dep:serde"]
candid-parser = ["dep:candid_parser"]
canister-sig-creation = ["dep:ic-canister-sig-creation"]
cdk = [
"executor",
"ic0",
"dep:ic-platform-macros",
"dep:ic-error-types",
"dep:pin-project-lite",
"dep:thiserror",
]
certification = ["dep:ic-certification"]
ecdsa = ["dep:k256"]
ed25519 = ["dep:curve25519-dalek", "dep:ed25519-dalek"]
executor = ["dep:ic-cdk-executor"]
ic0 = ["dep:ic0"]
icrc-ledger-types = ["dep:icrc-ledger-types"]
management-canister-types = ["dep:ic-management-canister-types"]
signature-verification = ["dep:ic-signature-verification"]
pocket-ic = ["dep:pocket-ic"]
secp256k1 = ["dep:ic-secp256k1"]
[target.'cfg(not(target_family = "wasm"))'.dependencies]
candid_parser = { workspace = true, optional = true }
ic-agent = { workspace = true, optional = true }
ic-secp256k1 = { workspace = true, optional = true }
pocket-ic = { workspace = true, optional = true }
[dependencies]
candid = { workspace = true, optional = true }
curve25519-dalek = { workspace = true, optional = true }
ed25519-dalek = { workspace = true, optional = true }
ic-canister-sig-creation = { workspace = true, optional = true }
ic-cdk-executor = { workspace = true, optional = true }
ic-certification = { workspace = true, optional = true }
ic-error-types = { workspace = true, optional = true }
ic-management-canister-types = { workspace = true, optional = true }
ic-platform-macros = { workspace = true, optional = true }
ic-signature-verification = { workspace = true, optional = true }
ic-verify-bls-signature = { workspace = true, optional = true }
ic0 = { workspace = true, optional = true }
ic_principal.workspace = true
icrc-ledger-types = { workspace = true, optional = true }
k256 = { workspace = true, optional = true }
pin-project-lite = { workspace = true, optional = true }
serde = { workspace = true, optional = true }
thiserror = { workspace = true, optional = true }
[[test]]
name = "ecdsa_consumer"
path = "tests/ecdsa_consumer.rs"
required-features = ["ecdsa"]
[[test]]
name = "ed25519_consumer"
path = "tests/ed25519_consumer.rs"
required-features = ["ed25519"]
[[test]]
name = "cdk_consumer"
path = "tests/cdk_consumer.rs"
required-features = ["cdk"]
[[test]]
name = "secp256k1_consumer"
path = "tests/secp256k1_consumer.rs"
required-features = ["secp256k1"]
[[test]]
name = "secp256k1_identity"
path = "tests/secp256k1_identity.rs"
required-features = ["secp256k1"]
[[test]]
name = "bls_consumer"
path = "tests/bls_consumer.rs"
required-features = ["bls"]
[[test]]
name = "canister_sig_consumer"
path = "tests/canister_sig_consumer.rs"
required-features = ["canister-sig-creation"]
[[test]]
name = "signature_consumer"
path = "tests/signature_consumer.rs"
required-features = ["signature-verification"]
[[test]]
name = "agent_consumer"
path = "tests/agent_consumer.rs"
required-features = ["agent", "certification"]
[[test]]
name = "candid_consumer"
path = "tests/candid_consumer.rs"
required-features = ["candid"]
[[test]]
name = "dynamic_consumer"
path = "tests/dynamic_consumer.rs"
required-features = ["candid", "candid-parser"]
[[test]]
name = "ic0_consumer"
path = "tests/ic0_consumer.rs"
required-features = ["ic0"]
[[test]]
name = "icrc_consumer"
path = "tests/icrc_consumer.rs"
required-features = ["icrc-ledger-types", "candid"]
[[test]]
name = "management_consumer"
path = "tests/management_consumer.rs"
required-features = ["management-canister-types", "candid"]
[[test]]
name = "parser_consumer"
path = "tests/parser_consumer.rs"
required-features = ["candid-parser"]
[[test]]
name = "certification_consumer"
path = "tests/certification_consumer.rs"
required-features = ["certification"]
[[test]]
name = "pocket_ic_consumer"
path = "tests/pocket_ic_consumer.rs"
required-features = ["pocket-ic"]
[lints]
workspace = true