From 9382e107009f71b345e5e318eb3859205206f52a Mon Sep 17 00:00:00 2001 From: Aniket Dixit Date: Thu, 19 Mar 2026 21:20:33 +0530 Subject: [PATCH 1/3] dep updates --- requirements.txt | 2 +- src/opengradient/client/llm.py | 20 ++++++++++---------- src/opengradient/client/opg_token.py | 2 +- 3 files changed, 12 insertions(+), 12 deletions(-) diff --git a/requirements.txt b/requirements.txt index df03caa0..480424d4 100644 --- a/requirements.txt +++ b/requirements.txt @@ -7,4 +7,4 @@ requests>=2.32.3 langchain>=0.3.7 openai>=1.58.1 pydantic>=2.9.2 -og-test-v2-x402==0.0.11 \ No newline at end of file +og-x402==0.0.1.dev2 \ No newline at end of file diff --git a/src/opengradient/client/llm.py b/src/opengradient/client/llm.py index 74a33d7f..eecfa148 100644 --- a/src/opengradient/client/llm.py +++ b/src/opengradient/client/llm.py @@ -8,11 +8,11 @@ from eth_account import Account from eth_account.account import LocalAccount -from x402v2 import x402Client as x402Clientv2 -from x402v2.http.clients import x402HttpxClient as x402HttpxClientv2 -from x402v2.mechanisms.evm import EthAccountSigner as EthAccountSignerv2 -from x402v2.mechanisms.evm.exact.register import register_exact_evm_client as register_exact_evm_clientv2 -from x402v2.mechanisms.evm.upto.register import register_upto_evm_client as register_upto_evm_clientv2 +from x402 import x402Client +from x402.http.clients import x402HttpxClient +from x402.mechanisms.evm import EthAccountSigner +from x402.mechanisms.evm.exact.register import register_exact_evm_client +from x402.mechanisms.evm.upto.register import register_upto_evm_client from ..types import TEE_LLM, StreamChoice, StreamChunk, StreamDelta, TextGenerationOutput, x402SettlementMode from .opg_token import Permit2ApprovalResult, ensure_opg_approval @@ -112,12 +112,12 @@ def __init__( self._tls_verify: Union[ssl.SSLContext, bool] = ssl_ctx if ssl_ctx else verify_ssl # x402 client and signer - signer = EthAccountSignerv2(self._wallet_account) - self._x402_client = x402Clientv2() - register_exact_evm_clientv2(self._x402_client, signer, networks=[BASE_TESTNET_NETWORK]) - register_upto_evm_clientv2(self._x402_client, signer, networks=[BASE_TESTNET_NETWORK]) + signer = EthAccountSigner(self._wallet_account) + self._x402_client = x402Client() + register_exact_evm_client(self._x402_client, signer, networks=[BASE_TESTNET_NETWORK]) + register_upto_evm_client(self._x402_client, signer, networks=[BASE_TESTNET_NETWORK]) # httpx.AsyncClient subclass - construction is sync, connections open lazily - self._http_client = x402HttpxClientv2(self._x402_client, verify=self._tls_verify) + self._http_client = x402HttpxClient(self._x402_client, verify=self._tls_verify) # ── TEE resolution ────────────────────────────────────────────────── diff --git a/src/opengradient/client/opg_token.py b/src/opengradient/client/opg_token.py index b19c1de1..87d38670 100644 --- a/src/opengradient/client/opg_token.py +++ b/src/opengradient/client/opg_token.py @@ -5,7 +5,7 @@ from eth_account.account import LocalAccount from web3 import Web3 -from x402v2.mechanisms.evm.constants import PERMIT2_ADDRESS +from x402.mechanisms.evm.constants import PERMIT2_ADDRESS BASE_OPG_ADDRESS = "0x240b09731D96979f50B2C649C9CE10FcF9C7987F" BASE_SEPOLIA_RPC = "https://sepolia.base.org" From b7e454203b051b97490a96ae3a819a5478e37697 Mon Sep 17 00:00:00 2001 From: Aniket Dixit Date: Thu, 19 Mar 2026 21:47:13 +0530 Subject: [PATCH 2/3] uv lock update --- pyproject.toml | 2 +- uv.lock | 14 +++++++------- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/pyproject.toml b/pyproject.toml index c0d6f343..38fe8a4d 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -27,7 +27,7 @@ dependencies = [ "langchain>=0.3.7", "openai>=1.58.1", "pydantic>=2.9.2", - "og-test-v2-x402==0.0.11" + "og-x402==0.0.1.dev2" ] [project.scripts] diff --git a/uv.lock b/uv.lock index bb262794..c8c370f6 100644 --- a/uv.lock +++ b/uv.lock @@ -1609,16 +1609,16 @@ wheels = [ ] [[package]] -name = "og-test-v2-x402" -version = "0.0.9" +name = "og-x402" +version = "0.0.1.dev2" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "pydantic" }, { name = "typing-extensions" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/a0/de/fd26c297113c483f62f3a5ee5fc535e81f9413edc68d1bf9d2db4ba62dd4/og_test_v2_x402-0.0.9.tar.gz", hash = "sha256:f5353be907c7224371214d40ec8dc125ee0633e3dbd9deadf6e43c904a7a9328", size = 892006, upload-time = "2026-02-17T16:16:34.028Z" } +sdist = { url = "https://files.pythonhosted.org/packages/1e/75/40c43cd44aa394e68acc98f8d5b8376f3a5e3b9eddf55b1c0c34616c340b/og_x402-0.0.1.dev2.tar.gz", hash = "sha256:bf5d4484ece5a371358a336fcc79fe5678be611044c55ade45c4be9d19d7691b", size = 899662, upload-time = "2026-03-17T06:35:36.587Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/54/da/bd0f6670d9d577b10d13a9a68371b8fd40e1b24fd30dd690b2aa497eea81/og_test_v2_x402-0.0.9-py3-none-any.whl", hash = "sha256:80257701e8a1909ec5fba434482aa2cdcd9de2a7868b99cff70cf1763c8a53b0", size = 945014, upload-time = "2026-02-17T16:16:32.107Z" }, + { url = "https://files.pythonhosted.org/packages/4c/79/8c7543c2e647508e04ad0983e9a3a7b861f388ec591ccdc42c69a3128d42/og_x402-0.0.1.dev2-py3-none-any.whl", hash = "sha256:65e7d3bbb3c7f51e51dad974f6c405a230693816f72d874cf0d6d705a8eec271", size = 952331, upload-time = "2026-03-17T06:35:34.695Z" }, ] [[package]] @@ -1642,7 +1642,7 @@ wheels = [ [[package]] name = "opengradient" -version = "0.7.3" +version = "0.8.1" source = { editable = "." } dependencies = [ { name = "click" }, @@ -1650,7 +1650,7 @@ dependencies = [ { name = "firebase-rest-api" }, { name = "langchain" }, { name = "numpy" }, - { name = "og-test-v2-x402" }, + { name = "og-x402" }, { name = "openai" }, { name = "pydantic" }, { name = "requests" }, @@ -1664,7 +1664,7 @@ requires-dist = [ { name = "firebase-rest-api", specifier = ">=1.11.0" }, { name = "langchain", specifier = ">=0.3.7" }, { name = "numpy", specifier = ">=1.26.4" }, - { name = "og-test-v2-x402", specifier = "==0.0.9" }, + { name = "og-x402", specifier = "==0.0.1.dev2" }, { name = "openai", specifier = ">=1.58.1" }, { name = "pydantic", specifier = ">=2.9.2" }, { name = "requests", specifier = ">=2.32.3" }, From ec84f70370957fabe90af098b01a973b307d03ba Mon Sep 17 00:00:00 2001 From: Aniket Dixit Date: Thu, 19 Mar 2026 21:55:38 +0530 Subject: [PATCH 3/3] test updates --- CLAUDE.md | 2 +- tests/llm_test.py | 16 ++++++++-------- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/CLAUDE.md b/CLAUDE.md index bd4d27b6..657ced98 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -153,5 +153,5 @@ Key dependencies (Python >=3.11): - `click`: CLI framework - `firebase-rest-api`: Backend services - `pydantic`: Data validation -- `og-test-v2-x402`: x402 payment protocol +- `og-x402`: x402 payment protocol - `numpy`: Array handling \ No newline at end of file diff --git a/tests/llm_test.py b/tests/llm_test.py index 3f068f3e..bb845a75 100644 --- a/tests/llm_test.py +++ b/tests/llm_test.py @@ -1,6 +1,6 @@ """Tests for LLM class. -Construction patches the x402 boundary (x402HttpxClientv2, EthAccountSignerv2, etc.) +Construction patches the x402 boundary (x402HttpxClient, EthAccountSigner, etc.) so LLM builds normally — no test-only constructor params, no mocking of private methods. """ @@ -19,10 +19,10 @@ class FakeHTTPClient: - """Stands in for x402HttpxClientv2. + """Stands in for x402HttpxClient. Configured per-test with set_response / set_stream_response, then - injected via the x402HttpxClientv2 patch so LLM's normal __init__ + injected via the x402HttpxClient patch so LLM's normal __init__ assigns it to self._http_client. """ @@ -90,11 +90,11 @@ async def aread(self) -> bytes: # so LLM.__init__ runs its real code but gets our FakeHTTPClient. _PATCHES = { - "x402_httpx": "src.opengradient.client.llm.x402HttpxClientv2", - "x402_client": "src.opengradient.client.llm.x402Clientv2", - "signer": "src.opengradient.client.llm.EthAccountSignerv2", - "register_exact": "src.opengradient.client.llm.register_exact_evm_clientv2", - "register_upto": "src.opengradient.client.llm.register_upto_evm_clientv2", + "x402_httpx": "src.opengradient.client.llm.x402HttpxClient", + "x402_client": "src.opengradient.client.llm.x402Client", + "signer": "src.opengradient.client.llm.EthAccountSigner", + "register_exact": "src.opengradient.client.llm.register_exact_evm_client", + "register_upto": "src.opengradient.client.llm.register_upto_evm_client", }