|
1 | 1 | import os |
2 | 2 | import httpx |
| 3 | +import logging |
3 | 4 |
|
4 | | -from openai import OpenAI |
| 5 | +from langchain_openai import ChatOpenAI |
5 | 6 | from langgraph.prebuilt import create_react_agent |
6 | 7 | from langchain_google_genai import ChatGoogleGenerativeAI |
7 | 8 | from langchain_core.language_models.chat_models import BaseChatModel |
|
10 | 11 | from onchain.tokens.metadata import TokenMetadataRepo |
11 | 12 | from server import config |
12 | 13 | from web3 import Web3 |
13 | | -from x402.clients.base import x402Client |
14 | | -from x402.types import x402PaymentRequiredResponse |
15 | | -from langchain_openai import ChatOpenAI |
16 | | -from .x402 import X402Auth |
| 14 | + |
| 15 | +from x402v2 import x402Client as x402Clientv2 |
| 16 | +from x402v2.http.clients import x402HttpxClient as x402HttpxClientv2 |
| 17 | +from x402v2.mechanisms.evm import EthAccountSigner as EthAccountSignerv2 |
| 18 | +from x402v2.mechanisms.evm.exact.register import ( |
| 19 | + register_exact_evm_client as register_exact_evm_clientv2, |
| 20 | +) |
| 21 | +from x402v2.mechanisms.evm.upto.register import ( |
| 22 | + register_upto_evm_client as register_upto_evm_clientv2, |
| 23 | +) |
| 24 | + |
| 25 | +logging.getLogger("x402.httpx").setLevel(logging.DEBUG) |
17 | 26 |
|
18 | 27 | WEB3_CONFIG = Web3(Web3.HTTPProvider(config.OG_RPC_URL)) |
19 | 28 | WALLET_ACCOUNT = WEB3_CONFIG.eth.account.from_key(config.WALLET_PRIV_KEY) |
| 29 | +BASE_TESTNET_NETWORK = "eip155:84532" |
| 30 | + |
| 31 | +x402_client = x402Clientv2() |
| 32 | +register_exact_evm_clientv2( |
| 33 | + x402_client, |
| 34 | + EthAccountSignerv2(WALLET_ACCOUNT), |
| 35 | + networks=[BASE_TESTNET_NETWORK], |
| 36 | +) |
| 37 | +register_upto_evm_clientv2( |
| 38 | + x402_client, |
| 39 | + EthAccountSignerv2(WALLET_ACCOUNT), |
| 40 | + networks=[BASE_TESTNET_NETWORK], |
| 41 | +) |
| 42 | + |
20 | 43 |
|
21 | 44 | TIMEOUT = httpx.Timeout( |
22 | 45 | timeout=90.0, |
|
48 | 71 | ) |
49 | 72 | GROK_MODEL = "x-ai/grok-2-1212" # $2/M input tokens; $10/M output tokens |
50 | 73 |
|
51 | | -x402_http_client = httpx.AsyncClient( |
52 | | - base_url=config.LLM_SERVER_URL, |
53 | | - headers={"Authorization": f"Bearer {config.DUMMY_X402_API_KEY}"}, |
| 74 | +x402_http_client = x402HttpxClientv2( |
| 75 | + x402_client, |
54 | 76 | timeout=TIMEOUT, |
55 | 77 | limits=LIMITS, |
56 | 78 | http2=False, |
57 | 79 | follow_redirects=False, |
58 | | - auth=X402Auth(account=WALLET_ACCOUNT), # type: ignore |
59 | 80 | ) |
60 | 81 |
|
61 | 82 | # Select model based on configuration |
|
0 commit comments