a2a-protocol-core 0.2.0__tar.gz → 0.2.1__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {a2a_protocol_core-0.2.0 → a2a_protocol_core-0.2.1}/CHANGELOG.md +17 -1
- {a2a_protocol_core-0.2.0 → a2a_protocol_core-0.2.1}/PKG-INFO +1 -1
- {a2a_protocol_core-0.2.0 → a2a_protocol_core-0.2.1}/pyproject.toml +1 -1
- {a2a_protocol_core-0.2.0 → a2a_protocol_core-0.2.1}/src/a2a_protocol_core/__init__.py +1 -1
- {a2a_protocol_core-0.2.0 → a2a_protocol_core-0.2.1}/src/a2a_protocol_core/x402_pay.py +7 -2
- {a2a_protocol_core-0.2.0 → a2a_protocol_core-0.2.1}/.gitignore +0 -0
- {a2a_protocol_core-0.2.0 → a2a_protocol_core-0.2.1}/LICENSE +0 -0
- {a2a_protocol_core-0.2.0 → a2a_protocol_core-0.2.1}/README.md +0 -0
- {a2a_protocol_core-0.2.0 → a2a_protocol_core-0.2.1}/examples/agent_pay_alias.py +0 -0
- {a2a_protocol_core-0.2.0 → a2a_protocol_core-0.2.1}/examples/trigger_payment_hook.py +0 -0
- {a2a_protocol_core-0.2.0 → a2a_protocol_core-0.2.1}/src/a2a_protocol_core/addressing.py +0 -0
- {a2a_protocol_core-0.2.0 → a2a_protocol_core-0.2.1}/src/a2a_protocol_core/canonical_hash.py +0 -0
- {a2a_protocol_core-0.2.0 → a2a_protocol_core-0.2.1}/src/a2a_protocol_core/client.py +0 -0
- {a2a_protocol_core-0.2.0 → a2a_protocol_core-0.2.1}/src/a2a_protocol_core/py.typed +0 -0
- {a2a_protocol_core-0.2.0 → a2a_protocol_core-0.2.1}/src/a2a_protocol_core/schemas.py +0 -0
- {a2a_protocol_core-0.2.0 → a2a_protocol_core-0.2.1}/src/a2a_protocol_core/semantic_normalizer.py +0 -0
- {a2a_protocol_core-0.2.0 → a2a_protocol_core-0.2.1}/tests/test_addressing.py +0 -0
- {a2a_protocol_core-0.2.0 → a2a_protocol_core-0.2.1}/tests/test_canonical_hash.py +0 -0
- {a2a_protocol_core-0.2.0 → a2a_protocol_core-0.2.1}/tests/test_cross_language_vectors.py +0 -0
- {a2a_protocol_core-0.2.0 → a2a_protocol_core-0.2.1}/tests/test_schemas.py +0 -0
- {a2a_protocol_core-0.2.0 → a2a_protocol_core-0.2.1}/tests/test_semantic_normalizer.py +0 -0
- {a2a_protocol_core-0.2.0 → a2a_protocol_core-0.2.1}/tests/test_x402_pay.py +0 -0
- {a2a_protocol_core-0.2.0 → a2a_protocol_core-0.2.1}/tests/vectors/canonical_vectors.json +0 -0
- {a2a_protocol_core-0.2.0 → a2a_protocol_core-0.2.1}/tests/vectors/generate_vectors.py +0 -0
|
@@ -3,7 +3,23 @@
|
|
|
3
3
|
All notable changes to `a2a-protocol-core` are documented here. This project
|
|
4
4
|
adheres to [Semantic Versioning](https://semver.org/).
|
|
5
5
|
|
|
6
|
-
## [0.2.
|
|
6
|
+
## [0.2.1] — 2026-07-20
|
|
7
|
+
|
|
8
|
+
Conformance fix for the XRPL exact scheme's field placement. Required before
|
|
9
|
+
the server drops its deprecated top-level mirrors (scheduled after 2026-10-01)
|
|
10
|
+
— a 0.2.0 client will stop attaching `InvoiceID` at that point and be rejected
|
|
11
|
+
by the server's mandatory invoice binding.
|
|
12
|
+
|
|
13
|
+
### Fixed
|
|
14
|
+
- `pay_alias_xrp` now reads `invoiceId` and `sourceTag` from the x402
|
|
15
|
+
requirement's `extra` block, where the XRPL exact scheme
|
|
16
|
+
(`scheme_exact_xrpl.md`) places them, falling back to the deprecated
|
|
17
|
+
top-level mirrors for not-yet-updated servers. Previously only the top-level
|
|
18
|
+
copies were read, so a spec-conformant server that stopped mirroring them
|
|
19
|
+
would silently produce payments without `InvoiceID` — which the invoice
|
|
20
|
+
binding (the anti-replay mechanism) mandatorily rejects.
|
|
21
|
+
|
|
22
|
+
## [0.2.0] — 2026-07-11
|
|
7
23
|
|
|
8
24
|
Adds the one-call x402 pay-path so an agent can pay a `pay:` alias from its own
|
|
9
25
|
wallet — the "make it actually easy" client, still fully non-custodial.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: a2a-protocol-core
|
|
3
|
-
Version: 0.2.
|
|
3
|
+
Version: 0.2.1
|
|
4
4
|
Summary: Open, deterministic protocol core for the DNS of Money A2A payment surface (FAS-1 pay: addressing, canonical hashing, payment-hook client).
|
|
5
5
|
Project-URL: Homepage, https://dnsofmoney.com
|
|
6
6
|
Project-URL: Specification, https://github.com/dnsofmoney/dns-of-money
|
|
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "a2a-protocol-core"
|
|
7
|
-
version = "0.2.
|
|
7
|
+
version = "0.2.1"
|
|
8
8
|
description = "Open, deterministic protocol core for the DNS of Money A2A payment surface (FAS-1 pay: addressing, canonical hashing, payment-hook client)."
|
|
9
9
|
readme = "README.md"
|
|
10
10
|
requires-python = ">=3.10"
|
|
@@ -239,14 +239,19 @@ def pay_alias_xrp(
|
|
|
239
239
|
"""
|
|
240
240
|
http = session or requests.Session()
|
|
241
241
|
req = fetch_requirement(base_url=base_url, alias=alias, amount_xrp=amount_xrp, session=http, timeout=timeout)
|
|
242
|
-
|
|
242
|
+
# The XRPL exact scheme carries scheme fields in `extra`; the top-level copies
|
|
243
|
+
# are our own deprecated mirrors (removed after 2026-10-01). Prefer `extra`, fall
|
|
244
|
+
# back to top-level so this client still works against not-yet-updated servers.
|
|
245
|
+
extra = req.get("extra") or {}
|
|
246
|
+
invoice = extra.get("invoiceId") or req.get("invoiceId")
|
|
247
|
+
source_tag = extra.get("sourceTag") if extra.get("sourceTag") is not None else req.get("sourceTag")
|
|
243
248
|
tx_hash, payer = _sign_and_submit_xrp(
|
|
244
249
|
pay_to=req["payTo"],
|
|
245
250
|
drops=req["maxAmountRequired"],
|
|
246
251
|
seed=seed,
|
|
247
252
|
rpc_url=xrpl_rpc_url,
|
|
248
253
|
invoice_id=invoice_id_hash(invoice) if invoice else None,
|
|
249
|
-
source_tag=
|
|
254
|
+
source_tag=source_tag,
|
|
250
255
|
)
|
|
251
256
|
body = _settle(
|
|
252
257
|
base_url=base_url,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{a2a_protocol_core-0.2.0 → a2a_protocol_core-0.2.1}/src/a2a_protocol_core/semantic_normalizer.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|