uvd-x402-sdk 0.5.5__py3-none-any.whl → 0.7.0__py3-none-any.whl
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.
- uvd_x402_sdk/__init__.py +348 -239
- uvd_x402_sdk/advanced_escrow.py +633 -0
- uvd_x402_sdk/erc8004.py +663 -0
- uvd_x402_sdk/escrow.py +637 -0
- uvd_x402_sdk/models.py +51 -0
- uvd_x402_sdk/networks/__init__.py +12 -9
- uvd_x402_sdk/networks/base.py +3 -0
- uvd_x402_sdk/networks/evm.py +71 -1
- uvd_x402_sdk/networks/sui.py +8 -1
- {uvd_x402_sdk-0.5.5.dist-info → uvd_x402_sdk-0.7.0.dist-info}/METADATA +313 -9
- {uvd_x402_sdk-0.5.5.dist-info → uvd_x402_sdk-0.7.0.dist-info}/RECORD +14 -11
- {uvd_x402_sdk-0.5.5.dist-info → uvd_x402_sdk-0.7.0.dist-info}/WHEEL +1 -1
- {uvd_x402_sdk-0.5.5.dist-info → uvd_x402_sdk-0.7.0.dist-info}/LICENSE +0 -0
- {uvd_x402_sdk-0.5.5.dist-info → uvd_x402_sdk-0.7.0.dist-info}/top_level.txt +0 -0
uvd_x402_sdk/__init__.py
CHANGED
|
@@ -1,239 +1,348 @@
|
|
|
1
|
-
"""
|
|
2
|
-
uvd-x402-sdk: Python SDK for x402 payments via Ultravioleta DAO facilitator.
|
|
3
|
-
|
|
4
|
-
This SDK enables developers to easily integrate x402 cryptocurrency payments
|
|
5
|
-
into their Python applications with support for
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
The SDK automatically handles facilitator configuration - users don't need to
|
|
9
|
-
configure fee payer addresses or other facilitator details manually.
|
|
10
|
-
|
|
11
|
-
Supports both x402 v1 and v2 protocols:
|
|
12
|
-
- v1: network as string ("base", "solana")
|
|
13
|
-
- v2: network as CAIP-2 ("eip155:8453", "solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp")
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
-
|
|
41
|
-
|
|
42
|
-
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
#
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
)
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
#
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
"
|
|
207
|
-
#
|
|
208
|
-
"
|
|
209
|
-
|
|
210
|
-
"
|
|
211
|
-
"
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
"
|
|
215
|
-
"
|
|
216
|
-
"
|
|
217
|
-
#
|
|
218
|
-
"
|
|
219
|
-
"
|
|
220
|
-
"
|
|
221
|
-
"
|
|
222
|
-
"
|
|
223
|
-
"
|
|
224
|
-
"
|
|
225
|
-
"
|
|
226
|
-
"
|
|
227
|
-
|
|
228
|
-
"
|
|
229
|
-
"
|
|
230
|
-
"
|
|
231
|
-
"
|
|
232
|
-
"
|
|
233
|
-
"
|
|
234
|
-
"
|
|
235
|
-
|
|
236
|
-
"
|
|
237
|
-
"
|
|
238
|
-
"
|
|
239
|
-
|
|
1
|
+
"""
|
|
2
|
+
uvd-x402-sdk: Python SDK for x402 payments via Ultravioleta DAO facilitator.
|
|
3
|
+
|
|
4
|
+
This SDK enables developers to easily integrate x402 cryptocurrency payments
|
|
5
|
+
into their Python applications with support for 21 blockchain networks across
|
|
6
|
+
6 network types (EVM, SVM, NEAR, Stellar, Algorand, Sui).
|
|
7
|
+
|
|
8
|
+
The SDK automatically handles facilitator configuration - users don't need to
|
|
9
|
+
configure fee payer addresses or other facilitator details manually.
|
|
10
|
+
|
|
11
|
+
Supports both x402 v1 and v2 protocols:
|
|
12
|
+
- v1: network as string ("base", "solana")
|
|
13
|
+
- v2: network as CAIP-2 ("eip155:8453", "solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp")
|
|
14
|
+
|
|
15
|
+
New features:
|
|
16
|
+
- ERC-8004 Trustless Agents: Submit reputation feedback with proof of payment
|
|
17
|
+
- Escrow & Refund: Hold payments in escrow with dispute resolution
|
|
18
|
+
|
|
19
|
+
Example usage:
|
|
20
|
+
from uvd_x402_sdk import X402Client, require_payment
|
|
21
|
+
|
|
22
|
+
# Create a client
|
|
23
|
+
client = X402Client(
|
|
24
|
+
recipient_address="0xYourWallet...",
|
|
25
|
+
facilitator_url="https://facilitator.ultravioletadao.xyz"
|
|
26
|
+
)
|
|
27
|
+
|
|
28
|
+
# Verify and settle a payment
|
|
29
|
+
result = client.process_payment(
|
|
30
|
+
x_payment_header=request.headers.get("X-PAYMENT"),
|
|
31
|
+
expected_amount_usd=Decimal("10.00")
|
|
32
|
+
)
|
|
33
|
+
|
|
34
|
+
# Or use the decorator
|
|
35
|
+
@require_payment(amount_usd=Decimal("1.00"))
|
|
36
|
+
def protected_endpoint():
|
|
37
|
+
return {"message": "Payment verified!"}
|
|
38
|
+
|
|
39
|
+
Supported Networks (21 total):
|
|
40
|
+
- EVM (13): Base, Ethereum, Polygon, Arbitrum, Optimism, Avalanche, Celo,
|
|
41
|
+
HyperEVM, Unichain, Monad, Scroll, SKALE, SKALE Testnet
|
|
42
|
+
- SVM (2): Solana, Fogo
|
|
43
|
+
- NEAR (1): NEAR Protocol
|
|
44
|
+
- Stellar (1): Stellar
|
|
45
|
+
- Algorand (2): Algorand mainnet, Algorand testnet
|
|
46
|
+
- Sui (2): Sui mainnet, Sui testnet
|
|
47
|
+
"""
|
|
48
|
+
|
|
49
|
+
__version__ = "0.6.0"
|
|
50
|
+
__author__ = "Ultravioleta DAO"
|
|
51
|
+
|
|
52
|
+
from uvd_x402_sdk.client import X402Client
|
|
53
|
+
from uvd_x402_sdk.config import X402Config, NetworkConfig, MultiPaymentConfig
|
|
54
|
+
from uvd_x402_sdk.decorators import require_payment, x402_required, configure_x402
|
|
55
|
+
from uvd_x402_sdk.exceptions import (
|
|
56
|
+
X402Error,
|
|
57
|
+
PaymentRequiredError,
|
|
58
|
+
PaymentVerificationError,
|
|
59
|
+
PaymentSettlementError,
|
|
60
|
+
UnsupportedNetworkError,
|
|
61
|
+
InvalidPayloadError,
|
|
62
|
+
FacilitatorError,
|
|
63
|
+
ConfigurationError,
|
|
64
|
+
TimeoutError as X402TimeoutError,
|
|
65
|
+
)
|
|
66
|
+
from uvd_x402_sdk.models import (
|
|
67
|
+
# Payload models
|
|
68
|
+
PaymentPayload,
|
|
69
|
+
EVMPayloadContent,
|
|
70
|
+
SVMPayloadContent,
|
|
71
|
+
SolanaPayloadContent, # Alias for backward compatibility
|
|
72
|
+
NEARPayloadContent,
|
|
73
|
+
StellarPayloadContent,
|
|
74
|
+
SuiPayloadContent,
|
|
75
|
+
# Requirements models (v1)
|
|
76
|
+
PaymentRequirements,
|
|
77
|
+
# Requirements models (v2)
|
|
78
|
+
PaymentOption,
|
|
79
|
+
PaymentRequirementsV2,
|
|
80
|
+
# Request/Response models
|
|
81
|
+
VerifyRequest,
|
|
82
|
+
VerifyResponse,
|
|
83
|
+
SettleRequest,
|
|
84
|
+
SettleResponse,
|
|
85
|
+
PaymentResult,
|
|
86
|
+
)
|
|
87
|
+
from uvd_x402_sdk.networks import (
|
|
88
|
+
SUPPORTED_NETWORKS,
|
|
89
|
+
get_network,
|
|
90
|
+
get_network_by_chain_id,
|
|
91
|
+
register_network,
|
|
92
|
+
list_networks,
|
|
93
|
+
get_supported_chain_ids,
|
|
94
|
+
get_supported_network_names,
|
|
95
|
+
NetworkType,
|
|
96
|
+
# Token types (multi-stablecoin support)
|
|
97
|
+
TokenType,
|
|
98
|
+
TokenConfig,
|
|
99
|
+
ALL_TOKEN_TYPES,
|
|
100
|
+
get_token_config,
|
|
101
|
+
get_supported_tokens,
|
|
102
|
+
is_token_supported,
|
|
103
|
+
get_networks_by_token,
|
|
104
|
+
# CAIP-2 utilities (v2 support)
|
|
105
|
+
parse_caip2_network,
|
|
106
|
+
to_caip2_network,
|
|
107
|
+
is_caip2_format,
|
|
108
|
+
normalize_network,
|
|
109
|
+
)
|
|
110
|
+
from uvd_x402_sdk.response import (
|
|
111
|
+
# v1 response helpers
|
|
112
|
+
create_402_response,
|
|
113
|
+
create_402_headers,
|
|
114
|
+
payment_required_response,
|
|
115
|
+
Payment402Builder,
|
|
116
|
+
# v2 response helpers
|
|
117
|
+
create_402_response_v2,
|
|
118
|
+
create_402_headers_v2,
|
|
119
|
+
payment_required_response_v2,
|
|
120
|
+
Payment402BuilderV2,
|
|
121
|
+
)
|
|
122
|
+
from uvd_x402_sdk.facilitator import (
|
|
123
|
+
# Facilitator URL and constants
|
|
124
|
+
DEFAULT_FACILITATOR_URL,
|
|
125
|
+
get_facilitator_url,
|
|
126
|
+
# Fee payer addresses by chain
|
|
127
|
+
ALGORAND_FEE_PAYER_MAINNET,
|
|
128
|
+
ALGORAND_FEE_PAYER_TESTNET,
|
|
129
|
+
SOLANA_FEE_PAYER_MAINNET,
|
|
130
|
+
SOLANA_FEE_PAYER_DEVNET,
|
|
131
|
+
FOGO_FEE_PAYER_MAINNET,
|
|
132
|
+
FOGO_FEE_PAYER_TESTNET,
|
|
133
|
+
NEAR_FEE_PAYER_MAINNET,
|
|
134
|
+
NEAR_FEE_PAYER_TESTNET,
|
|
135
|
+
STELLAR_FEE_PAYER_MAINNET,
|
|
136
|
+
STELLAR_FEE_PAYER_TESTNET,
|
|
137
|
+
SUI_FEE_PAYER_MAINNET,
|
|
138
|
+
SUI_FEE_PAYER_TESTNET,
|
|
139
|
+
# EVM facilitator addresses (for reference)
|
|
140
|
+
EVM_FACILITATOR_MAINNET,
|
|
141
|
+
EVM_FACILITATOR_TESTNET,
|
|
142
|
+
# Helper functions
|
|
143
|
+
get_fee_payer,
|
|
144
|
+
get_facilitator_address,
|
|
145
|
+
requires_fee_payer,
|
|
146
|
+
get_all_fee_payers,
|
|
147
|
+
build_payment_info,
|
|
148
|
+
)
|
|
149
|
+
|
|
150
|
+
# ERC-8004 Trustless Agents support
|
|
151
|
+
from uvd_x402_sdk.erc8004 import (
|
|
152
|
+
Erc8004Client,
|
|
153
|
+
ERC8004_EXTENSION_ID,
|
|
154
|
+
ERC8004_CONTRACTS,
|
|
155
|
+
ProofOfPayment,
|
|
156
|
+
AgentIdentity,
|
|
157
|
+
AgentRegistrationFile,
|
|
158
|
+
ReputationSummary,
|
|
159
|
+
FeedbackEntry,
|
|
160
|
+
FeedbackParams,
|
|
161
|
+
FeedbackRequest,
|
|
162
|
+
FeedbackResponse,
|
|
163
|
+
ReputationResponse,
|
|
164
|
+
SettleResponseWithProof,
|
|
165
|
+
build_erc8004_payment_requirements,
|
|
166
|
+
)
|
|
167
|
+
|
|
168
|
+
# Escrow & Refund support
|
|
169
|
+
from uvd_x402_sdk.escrow import (
|
|
170
|
+
EscrowClient,
|
|
171
|
+
EscrowPayment,
|
|
172
|
+
EscrowStatus,
|
|
173
|
+
RefundRequest,
|
|
174
|
+
RefundStatus,
|
|
175
|
+
Dispute,
|
|
176
|
+
DisputeOutcome,
|
|
177
|
+
ReleaseConditions,
|
|
178
|
+
RefundResponse,
|
|
179
|
+
EscrowListResponse,
|
|
180
|
+
can_release_escrow,
|
|
181
|
+
can_refund_escrow,
|
|
182
|
+
is_escrow_expired,
|
|
183
|
+
escrow_time_remaining,
|
|
184
|
+
)
|
|
185
|
+
|
|
186
|
+
# Advanced Escrow (PaymentOperator - on-chain escrow)
|
|
187
|
+
# Requires: eth_abi, eth_account, web3, httpx
|
|
188
|
+
try:
|
|
189
|
+
from uvd_x402_sdk.advanced_escrow import (
|
|
190
|
+
AdvancedEscrowClient,
|
|
191
|
+
PaymentInfo,
|
|
192
|
+
TaskTier,
|
|
193
|
+
AuthorizationResult,
|
|
194
|
+
TransactionResult,
|
|
195
|
+
TIER_TIMINGS,
|
|
196
|
+
BASE_MAINNET_CONTRACTS,
|
|
197
|
+
OPERATOR_ABI,
|
|
198
|
+
DEPOSIT_LIMIT_USDC,
|
|
199
|
+
)
|
|
200
|
+
ADVANCED_ESCROW_AVAILABLE = True
|
|
201
|
+
except ImportError:
|
|
202
|
+
ADVANCED_ESCROW_AVAILABLE = False
|
|
203
|
+
|
|
204
|
+
__all__ = [
|
|
205
|
+
# Version
|
|
206
|
+
"__version__",
|
|
207
|
+
# Main client
|
|
208
|
+
"X402Client",
|
|
209
|
+
# Configuration
|
|
210
|
+
"X402Config",
|
|
211
|
+
"NetworkConfig",
|
|
212
|
+
"MultiPaymentConfig",
|
|
213
|
+
# Decorators
|
|
214
|
+
"require_payment",
|
|
215
|
+
"x402_required",
|
|
216
|
+
"configure_x402",
|
|
217
|
+
# Exceptions
|
|
218
|
+
"X402Error",
|
|
219
|
+
"PaymentRequiredError",
|
|
220
|
+
"PaymentVerificationError",
|
|
221
|
+
"PaymentSettlementError",
|
|
222
|
+
"UnsupportedNetworkError",
|
|
223
|
+
"InvalidPayloadError",
|
|
224
|
+
"FacilitatorError",
|
|
225
|
+
"ConfigurationError",
|
|
226
|
+
"X402TimeoutError",
|
|
227
|
+
# Payload models
|
|
228
|
+
"PaymentPayload",
|
|
229
|
+
"EVMPayloadContent",
|
|
230
|
+
"SVMPayloadContent",
|
|
231
|
+
"SolanaPayloadContent",
|
|
232
|
+
"NEARPayloadContent",
|
|
233
|
+
"StellarPayloadContent",
|
|
234
|
+
"SuiPayloadContent",
|
|
235
|
+
# Requirements models
|
|
236
|
+
"PaymentRequirements",
|
|
237
|
+
"PaymentOption",
|
|
238
|
+
"PaymentRequirementsV2",
|
|
239
|
+
# Request/Response models
|
|
240
|
+
"VerifyRequest",
|
|
241
|
+
"VerifyResponse",
|
|
242
|
+
"SettleRequest",
|
|
243
|
+
"SettleResponse",
|
|
244
|
+
"PaymentResult",
|
|
245
|
+
# Networks
|
|
246
|
+
"SUPPORTED_NETWORKS",
|
|
247
|
+
"get_network",
|
|
248
|
+
"get_network_by_chain_id",
|
|
249
|
+
"register_network",
|
|
250
|
+
"list_networks",
|
|
251
|
+
"get_supported_chain_ids",
|
|
252
|
+
"get_supported_network_names",
|
|
253
|
+
"NetworkType",
|
|
254
|
+
# Token types (multi-stablecoin support)
|
|
255
|
+
"TokenType",
|
|
256
|
+
"TokenConfig",
|
|
257
|
+
"ALL_TOKEN_TYPES",
|
|
258
|
+
"get_token_config",
|
|
259
|
+
"get_supported_tokens",
|
|
260
|
+
"is_token_supported",
|
|
261
|
+
"get_networks_by_token",
|
|
262
|
+
# CAIP-2 utilities
|
|
263
|
+
"parse_caip2_network",
|
|
264
|
+
"to_caip2_network",
|
|
265
|
+
"is_caip2_format",
|
|
266
|
+
"normalize_network",
|
|
267
|
+
# Response helpers (v1)
|
|
268
|
+
"create_402_response",
|
|
269
|
+
"create_402_headers",
|
|
270
|
+
"payment_required_response",
|
|
271
|
+
"Payment402Builder",
|
|
272
|
+
# Response helpers (v2)
|
|
273
|
+
"create_402_response_v2",
|
|
274
|
+
"create_402_headers_v2",
|
|
275
|
+
"payment_required_response_v2",
|
|
276
|
+
"Payment402BuilderV2",
|
|
277
|
+
# Facilitator constants and helpers
|
|
278
|
+
"DEFAULT_FACILITATOR_URL",
|
|
279
|
+
"get_facilitator_url",
|
|
280
|
+
"ALGORAND_FEE_PAYER_MAINNET",
|
|
281
|
+
"ALGORAND_FEE_PAYER_TESTNET",
|
|
282
|
+
"SOLANA_FEE_PAYER_MAINNET",
|
|
283
|
+
"SOLANA_FEE_PAYER_DEVNET",
|
|
284
|
+
"FOGO_FEE_PAYER_MAINNET",
|
|
285
|
+
"FOGO_FEE_PAYER_TESTNET",
|
|
286
|
+
"NEAR_FEE_PAYER_MAINNET",
|
|
287
|
+
"NEAR_FEE_PAYER_TESTNET",
|
|
288
|
+
"STELLAR_FEE_PAYER_MAINNET",
|
|
289
|
+
"STELLAR_FEE_PAYER_TESTNET",
|
|
290
|
+
"SUI_FEE_PAYER_MAINNET",
|
|
291
|
+
"SUI_FEE_PAYER_TESTNET",
|
|
292
|
+
"EVM_FACILITATOR_MAINNET",
|
|
293
|
+
"EVM_FACILITATOR_TESTNET",
|
|
294
|
+
"get_fee_payer",
|
|
295
|
+
"get_facilitator_address",
|
|
296
|
+
"requires_fee_payer",
|
|
297
|
+
"get_all_fee_payers",
|
|
298
|
+
"build_payment_info",
|
|
299
|
+
# ERC-8004 Trustless Agents
|
|
300
|
+
"Erc8004Client",
|
|
301
|
+
"ERC8004_EXTENSION_ID",
|
|
302
|
+
"ERC8004_CONTRACTS",
|
|
303
|
+
"ProofOfPayment",
|
|
304
|
+
"AgentIdentity",
|
|
305
|
+
"AgentRegistrationFile",
|
|
306
|
+
"ReputationSummary",
|
|
307
|
+
"FeedbackEntry",
|
|
308
|
+
"FeedbackParams",
|
|
309
|
+
"FeedbackRequest",
|
|
310
|
+
"FeedbackResponse",
|
|
311
|
+
"ReputationResponse",
|
|
312
|
+
"SettleResponseWithProof",
|
|
313
|
+
"build_erc8004_payment_requirements",
|
|
314
|
+
# Escrow & Refund
|
|
315
|
+
"EscrowClient",
|
|
316
|
+
"EscrowPayment",
|
|
317
|
+
"EscrowStatus",
|
|
318
|
+
"RefundRequest",
|
|
319
|
+
"RefundStatus",
|
|
320
|
+
"Dispute",
|
|
321
|
+
"DisputeOutcome",
|
|
322
|
+
"ReleaseConditions",
|
|
323
|
+
"RefundResponse",
|
|
324
|
+
"EscrowListResponse",
|
|
325
|
+
"can_release_escrow",
|
|
326
|
+
"can_refund_escrow",
|
|
327
|
+
"is_escrow_expired",
|
|
328
|
+
"escrow_time_remaining",
|
|
329
|
+
# Advanced Escrow (PaymentOperator) - available when eth_abi/web3/httpx installed
|
|
330
|
+
"ADVANCED_ESCROW_AVAILABLE",
|
|
331
|
+
"AdvancedEscrowClient",
|
|
332
|
+
"PaymentInfo",
|
|
333
|
+
"TaskTier",
|
|
334
|
+
"AuthorizationResult",
|
|
335
|
+
"TransactionResult",
|
|
336
|
+
"TIER_TIMINGS",
|
|
337
|
+
"BASE_MAINNET_CONTRACTS",
|
|
338
|
+
"OPERATOR_ABI",
|
|
339
|
+
]
|
|
340
|
+
|
|
341
|
+
# Conditionally remove Advanced Escrow names from __all__ if not available
|
|
342
|
+
if not ADVANCED_ESCROW_AVAILABLE:
|
|
343
|
+
_advanced_names = {
|
|
344
|
+
"AdvancedEscrowClient", "PaymentInfo", "TaskTier",
|
|
345
|
+
"AuthorizationResult", "TransactionResult", "TIER_TIMINGS",
|
|
346
|
+
"BASE_MAINNET_CONTRACTS", "OPERATOR_ABI",
|
|
347
|
+
}
|
|
348
|
+
__all__ = [n for n in __all__ if n not in _advanced_names]
|