[package]
name = "fogo-paymaster"
version = "0.5.2"
edition = { workspace = true }
license = { workspace = true }
description = "Fogo paymaster service and transaction validator CLI"
repository = "https://github.com/fogo-foundation/fogo-sessions"

[dependencies]
anchor-lang = {workspace = true}
anyhow = {workspace = true}
arc-swap = {workspace = true}
async-recursion = "1.1.1"
async-trait = "0.1.89"
axum = "0.8.4"
axum-extra = {version = "0.10.1", features = ["typed-header"]}
axum-prometheus = "0.9.0"
base64 = {workspace = true}
bincode = {workspace = true, features = ["serde"]}
borsh = {workspace = true}
bytemuck = {workspace = true}
clap = {workspace = true}
config = "0.15.13"
dashmap = {workspace = true}
dotenvy = "0.15.7"
fogo-sessions-sdk = { version = "0.7.0", path = "../../packages/sessions-sdk-rs" }
futures = {workspace = true}
governor = {workspace = true}
hex = {workspace = true}
intent-transfer = {workspace = true}
libsecp256k1 = "0.6.0"
nonempty = "0.12.0"
opentelemetry = "0.30.0"
opentelemetry-otlp = {version = "0.30.0", features = ["grpc-tonic"]}
opentelemetry_sdk = {version = "0.30.0", features = ["rt-tokio"]}
reqwest = {workspace = true}
reqwest-middleware = "0.4.2"
serde = {workspace = true}
serde_json = {workspace = true}
serde_with = { version = "3.14.0", features = ["base64"] }
solana-address-lookup-table-interface = {workspace = true}
solana-client = {workspace = true}
solana-commitment-config = {workspace = true}
solana-compute-budget-interface = { workspace = true, features = ["borsh"] }
solana-derivation-path = {workspace = true}
solana-ed25519-program = {workspace = true}
solana-hash = {workspace = true}
solana-keypair = {workspace = true, features = ["seed-derivable"]}
solana-message = {workspace = true}
solana-packet = {workspace = true}
solana-program = {workspace = true}
solana-pubkey = {workspace = true}
solana-pubsub-client = {workspace = true}
solana-rpc-client = {workspace = true}
solana-rpc-client-api = {workspace = true}
solana-sdk-ids = {workspace = true}
solana-seed-derivable = {workspace = true}
solana-seed-phrase = {workspace = true}
solana-signature = {workspace = true}
solana-signer = {workspace = true}
solana-transaction = {workspace = true}
solana-transaction-error = {workspace = true}
solana-transaction-status-client-types = {workspace = true}
spl-associated-token-account = {workspace = true}
sqlx = { version = "0.8", features = [ "postgres", "runtime-tokio", "tls-native-tls", "uuid" ] }
tokio = {workspace = true}
tower-http = {version = "0.6.6", features = ["cors"]}
tracing = {workspace = true}
tracing-opentelemetry = "0.31.0"
tracing-subscriber = {workspace = true}
utoipa = "5.4.0"
utoipa-axum = "0.2.0"
url = "2.5.7"
uuid = {version = "1.18.1", features = ["v4"]}

[[bin]]
name = "paymaster-tx-validator"
path = "src/bin/tx_validator.rs"

[[bin]]
name = "paymaster-config-sync"
path = "src/bin/config_sync.rs"
