Skip to content

Commit 9e75f7b

Browse files
committed
dev
1 parent e9b1b09 commit 9e75f7b

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

104 files changed

+20865
-8420
lines changed

Cargo.lock

Lines changed: 3768 additions & 209 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Cargo.toml

Lines changed: 66 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -4,20 +4,56 @@ default-members = ["r402"]
44
resolver = "3"
55

66
[workspace.package]
7-
version = "0.2.2"
7+
version = "0.3.0"
88
edition = "2024"
99
license = "MIT OR Apache-2.0"
1010
repository = "https://github.com/qntx/r402"
1111
description = "x402 Payment Protocol SDK for Rust."
1212

1313
[workspace.dependencies]
14-
r402 = { version = "0.2", path = "r402" }
15-
r402-evm = { version = "0.2", path = "r402-evm" }
16-
r402-facilitator = { version = "0.2", path = "r402-facilitator" }
17-
r402-http = { version = "0.2", path = "r402-http" }
18-
r402-svm = { version = "0.2", path = "r402-svm" }
14+
# Internal crates
15+
r402 = { version = "0.3", path = "r402" }
16+
r402-evm = { version = "0.3", path = "r402-evm" }
17+
r402-facilitator = { version = "0.3", path = "r402-facilitator" }
18+
r402-http = { version = "0.3", path = "r402-http" }
19+
r402-svm = { version = "0.3", path = "r402-svm" }
1920

21+
# Core
2022
async-trait = "0.1"
23+
serde = { version = "1", features = ["derive"] }
24+
serde_json = { version = "1", features = ["raw_value"] }
25+
serde_with = "3"
26+
thiserror = "2"
27+
28+
# Runtime
29+
futures-util = "0.3"
30+
tokio = { version = "1", features = ["sync", "rt-multi-thread"] }
31+
tokio-util = { version = "0.7", features = ["rt"] }
32+
33+
# Web
34+
axum = "0.8"
35+
axum-core = "0.5"
36+
http = "1.4"
37+
reqwest = { version = "0.13", features = ["json"] }
38+
reqwest-middleware = "0.5"
39+
rustls = { version = "0.23", features = ["ring"] }
40+
tower = "0.5"
41+
tower-http = { version = "0.6", features = ["trace", "cors"] }
42+
url = { version = "2", features = ["serde"] }
43+
44+
# Utility
45+
base64 = "0.22"
46+
bincode = "1.3"
47+
bs58 = "0.5"
48+
clap = { version = "4.5", features = ["derive", "env"] }
49+
dashmap = "6"
50+
dotenvy = "0.15"
51+
rand = "0.10"
52+
regex = "1"
53+
rust_decimal = "1"
54+
wiremock = "0.6"
55+
56+
# Alloy (EVM)
2157
alloy-contract = "1.4"
2258
alloy-network = "1.4"
2359
alloy-primitives = { version = "1.4", features = ["k256"] }
@@ -29,26 +65,31 @@ alloy-signer-local = "1.4"
2965
alloy-sol-types = { version = "1.4", features = ["json"] }
3066
alloy-transport = { version = "1.4", features = ["throttle"] }
3167
alloy-transport-http = "1.4"
32-
dashmap = "6"
33-
futures = "0.3"
34-
axum = "0.8"
35-
getrandom = "0.4"
36-
axum-core = "0.5"
37-
base64 = "0.22"
38-
http = "1"
39-
reqwest = { version = "0.13", features = ["json"] }
40-
reqwest-middleware = "0.5"
41-
rust_decimal = "1"
42-
serde = { version = "1", features = ["derive"] }
43-
serde_json = { version = "1", features = ["raw_value"] }
44-
thiserror = "2"
45-
tokio = { version = "1", features = ["sync", "rt-multi-thread", "signal"] }
46-
toml = "0.9"
47-
tower = "0.5"
48-
tower-http = { version = "0.6", features = ["trace", "cors"] }
68+
69+
# Solana (SVM)
70+
solana-account = "3"
71+
solana-client = "3"
72+
solana-commitment-config = "3"
73+
solana-compute-budget-interface = "3"
74+
solana-keypair = "3"
75+
solana-message = "3"
76+
solana-pubkey = "4"
77+
solana-signature = "3"
78+
solana-signer = "3"
79+
solana-transaction = "3"
80+
spl-token = { version = "9", features = ["no-entrypoint"] }
81+
spl-token-2022 = { version = "10", features = ["no-entrypoint"] }
82+
83+
# Telemetry
84+
opentelemetry = "0.31"
85+
opentelemetry_sdk = "0.31"
86+
opentelemetry-otlp = { version = "0.31", features = ["metrics", "grpc-tonic"] }
87+
opentelemetry-semantic-conventions = { version = "0.31", features = ["semconv_experimental"] }
88+
opentelemetry-stdout = { version = "0.31", features = ["trace", "metrics"] }
4989
tracing = "0.1"
50-
tracing-subscriber = { version = "0.3", features = ["env-filter", "json"] }
51-
url = { version = "2", features = ["serde"] }
90+
tracing-core = "0.1"
91+
tracing-opentelemetry = "0.32"
92+
tracing-subscriber = { version = "0.3", features = ["env-filter"] }
5293

5394
[profile.release]
5495
codegen-units = 1

Makefile

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,9 @@ test:
2727
.PHONY: clippy
2828
clippy:
2929
cargo +nightly clippy --fix \
30+
--workspace \
3031
--all-targets \
32+
--all-features \
3133
--allow-dirty \
3234
--allow-staged \
3335
-- -D warnings

r402-evm/Cargo.toml

Lines changed: 28 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -4,55 +4,59 @@ version.workspace = true
44
edition.workspace = true
55
license.workspace = true
66
repository.workspace = true
7-
description = "EVM chain support for the x402 payment protocol."
8-
categories = [
9-
"cryptography::cryptocurrencies",
10-
"finance",
11-
"network-programming",
12-
]
13-
keywords = ["blockchain", "payments", "x402", "evm", "eip-3009"]
7+
description = "EIP-155 (EVM) chain support for the x402 payment protocol."
148

159
[package.metadata.docs.rs]
1610
all-features = true
1711

1812
[features]
1913
default = []
20-
client = ["dep:alloy-signer", "dep:alloy-signer-local", "dep:getrandom"]
14+
telemetry = ["dep:tracing", "dep:tracing-core", "r402/telemetry"]
15+
client = ["dep:alloy-signer", "dep:alloy-signer-local", "dep:async-trait", "dep:rand"]
16+
server = []
2117
facilitator = [
22-
"dep:alloy-provider",
23-
"dep:alloy-network",
24-
"dep:alloy-transport",
2518
"dep:alloy-contract",
19+
"dep:alloy-network",
20+
"dep:alloy-provider",
2621
"dep:alloy-rpc-client",
2722
"dep:alloy-rpc-types-eth",
23+
"dep:alloy-signer",
24+
"dep:alloy-signer-local",
25+
"dep:alloy-transport",
26+
"dep:alloy-transport-http",
2827
"dep:async-trait",
2928
"dep:dashmap",
30-
"dep:futures",
3129
"dep:tokio",
30+
"dep:tower",
31+
"dep:url",
3232
]
33-
tracing = ["dep:tracing"]
33+
full = ["telemetry", "client", "server", "facilitator"]
3434

3535
[dependencies]
36-
async-trait = { workspace = true, optional = true }
36+
alloy-primitives = { workspace = true }
37+
alloy-sol-types = { workspace = true }
38+
r402 = { workspace = true }
39+
serde = { workspace = true }
40+
serde_json = { workspace = true }
41+
thiserror = { workspace = true }
42+
3743
alloy-contract = { workspace = true, optional = true }
3844
alloy-network = { workspace = true, optional = true }
39-
alloy-primitives = { workspace = true }
4045
alloy-provider = { workspace = true, optional = true }
4146
alloy-rpc-client = { workspace = true, optional = true }
4247
alloy-rpc-types-eth = { workspace = true, optional = true }
43-
dashmap = { workspace = true, optional = true }
44-
futures = { workspace = true, optional = true }
45-
tokio = { workspace = true, optional = true }
4648
alloy-signer = { workspace = true, optional = true }
4749
alloy-signer-local = { workspace = true, optional = true }
48-
alloy-sol-types = { workspace = true }
4950
alloy-transport = { workspace = true, optional = true }
50-
getrandom = { workspace = true, optional = true }
51-
r402 = { workspace = true }
52-
serde = { workspace = true }
53-
serde_json = { workspace = true }
54-
thiserror = { workspace = true }
51+
alloy-transport-http = { workspace = true, optional = true }
52+
async-trait = { workspace = true, optional = true }
53+
dashmap = { workspace = true, optional = true }
54+
rand = { workspace = true, optional = true }
55+
tokio = { workspace = true, optional = true }
56+
tower = { workspace = true, optional = true }
5557
tracing = { workspace = true, optional = true }
58+
tracing-core = { workspace = true, optional = true }
59+
url = { workspace = true, optional = true }
5660

5761
[lints]
5862
workspace = true

0 commit comments

Comments
 (0)