[package]
edition = "2021"
name = "agent-first-pay"
version = "0.4.0"
build = "build.rs"
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "Agent-first cryptocurrency micropayment tool — multi-network wallet (Cashu, Lightning, Solana, EVM, Bitcoin on-chain), send/receive, spend limits, REST/RPC modes"
readme = "README.md"
keywords = [
"cryptocurrency",
"micropayment",
"cashu",
"lightning",
"bitcoin",
]
categories = [
"cryptography::cryptocurrencies",
"command-line-utilities",
]
license = "MIT"
repository = "https://github.com/cmnspore/agent-first-pay"
[features]
btc-core = [
"dep:bdk_wallet",
"dep:bdk_bitcoind_rpc",
"dep:bip39",
]
btc-electrum = [
"dep:bdk_wallet",
"dep:bdk_electrum",
"dep:bip39",
]
btc-esplora = [
"dep:bdk_wallet",
"dep:bdk_esplora",
"dep:bip39",
"dep:reqwest",
]
cashu = [
"dep:cdk",
"dep:bip39",
]
default = [
"redb",
"postgres",
"interactive",
"cashu",
"ln-phoenixd",
"sol",
"evm",
"btc-esplora",
"exchange-rate",
]
evm = [
"dep:alloy",
"dep:reqwest",
"dep:bip39",
]
exchange-rate = ["dep:reqwest"]
interactive = [
"dep:rustyline",
"dep:qrcode",
]
ln-lnbits = ["dep:reqwest"]
ln-nwc = ["dep:nostr-wallet-connect"]
ln-phoenixd = ["dep:reqwest"]
postgres = [
"dep:sqlx",
"dep:cdk-postgres",
]
redb = [
"dep:redb",
"dep:fs2",
"dep:cdk-redb",
]
rest = [
"dep:axum",
"dep:tower-http",
]
sol = [
"dep:reqwest",
"dep:solana-sdk",
"dep:solana-system-interface",
"dep:bs58",
"dep:base64",
"dep:wincode",
"dep:bip39",
"dep:spl-token",
"dep:spl-associated-token-account",
]
[lib]
name = "agent_first_pay"
path = "src/lib.rs"
[[bin]]
name = "afpay"
path = "src/main.rs"
[[test]]
name = "btc_live"
path = "tests/btc_live.rs"
[[test]]
name = "btc_receive_wait"
path = "tests/btc_receive_wait.rs"
[[test]]
name = "cashu_live"
path = "tests/cashu_live.rs"
[[test]]
name = "evm_live"
path = "tests/evm_live.rs"
[[test]]
name = "evm_receive_wait"
path = "tests/evm_receive_wait.rs"
[[test]]
name = "history_sync"
path = "tests/history_sync.rs"
[[test]]
name = "ln_live"
path = "tests/ln_live.rs"
[[test]]
name = "lnbits_live"
path = "tests/lnbits_live.rs"
[[test]]
name = "rest_test"
path = "tests/rest_test.rs"
[[test]]
name = "rpc_test"
path = "tests/rpc_test.rs"
[[test]]
name = "sol_live"
path = "tests/sol_live.rs"
[[test]]
name = "sol_receive_wait"
path = "tests/sol_receive_wait.rs"
[dependencies.aes-gcm]
version = "0.10"
[dependencies.agent-first-data]
version = "0.7.0"
[dependencies.alloy]
version = "1.7"
features = [
"provider-http",
"signers",
"signer-local",
"signer-mnemonic",
"network",
"contract",
"reqwest-rustls-tls",
"rpc-types",
]
optional = true
default-features = false
[dependencies.async-trait]
version = "0.1"
[dependencies.axum]
version = "0.8"
optional = true
[dependencies.base64]
version = "0.22"
optional = true
[dependencies.bdk_bitcoind_rpc]
version = "0.22"
optional = true
[dependencies.bdk_electrum]
version = "0.23"
features = ["use-rustls"]
optional = true
default-features = false
[dependencies.bdk_esplora]
version = "0.22"
features = [
"async-https-rustls",
"tokio",
]
optional = true
default-features = false
[dependencies.bdk_wallet]
version = "2"
features = [
"std",
"keys-bip39",
]
optional = true
default-features = false
[dependencies.bip39]
version = "2"
optional = true
default-features = false
[dependencies.bs58]
version = "0.5"
optional = true
[dependencies.cdk]
version = "0.15"
features = ["wallet"]
optional = true
default-features = false
[dependencies.cdk-postgres]
version = "0.15"
optional = true
[dependencies.cdk-redb]
version = "0.15"
optional = true
[dependencies.clap]
version = "4"
features = ["derive"]
[dependencies.fs2]
version = "0.4"
optional = true
[dependencies.getrandom]
version = "0.4"
[dependencies.hex]
version = "0.4"
[dependencies.lightning-invoice]
version = "0.34"
[dependencies.nostr-wallet-connect]
version = "0.44"
optional = true
package = "nwc"
[dependencies.prost]
version = "0.14"
[dependencies.qrcode]
version = "0.14"
optional = true
[dependencies.redb]
version = "3"
optional = true
[dependencies.reqwest]
version = "0.13"
features = [
"json",
"rustls",
"form",
"query",
]
optional = true
default-features = false
[dependencies.rustyline]
version = "17"
optional = true
[dependencies.serde]
version = "1"
features = ["derive"]
[dependencies.serde_json]
version = "1"
[dependencies.sha2]
version = "0.10"
[dependencies.shell-words]
version = "1"
[dependencies.solana-sdk]
version = "4"
optional = true
[dependencies.solana-system-interface]
version = "3.1"
features = ["wincode"]
optional = true
[dependencies.spl-associated-token-account]
version = "8"
features = ["no-entrypoint"]
optional = true
[dependencies.spl-token]
version = "9"
features = ["no-entrypoint"]
optional = true
[dependencies.sqlx]
version = "0.8"
features = [
"runtime-tokio",
"postgres",
"json",
]
optional = true
[dependencies.tokio]
version = "1"
features = ["full"]
[dependencies.toml]
version = "1.0"
[dependencies.tonic]
version = "0.14"
[dependencies.tonic-prost]
version = "0.14"
[dependencies.tower-http]
version = "0.6"
features = ["cors"]
optional = true
[dependencies.wincode]
version = "0.4"
optional = true
[dependencies.zstd]
version = "0.13"
[dev-dependencies.reqwest]
version = "0.13"
features = [
"json",
"rustls",
]
default-features = false
[dev-dependencies.tempfile]
version = "3"
[dev-dependencies.tower]
version = "0.5"
features = ["util"]
[build-dependencies.tonic-build]
version = "0.14"
[build-dependencies.tonic-prost-build]
version = "0.14"