arete-sdk 0.11.0__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.
Files changed (66) hide show
  1. arete_sdk-0.11.0/LICENSE +21 -0
  2. arete_sdk-0.11.0/PKG-INFO +157 -0
  3. arete_sdk-0.11.0/README.md +130 -0
  4. arete_sdk-0.11.0/arete/__init__.py +310 -0
  5. arete_sdk-0.11.0/arete/amounts.py +157 -0
  6. arete_sdk-0.11.0/arete/auth.py +626 -0
  7. arete_sdk-0.11.0/arete/chain.py +350 -0
  8. arete_sdk-0.11.0/arete/client.py +811 -0
  9. arete_sdk-0.11.0/arete/connection.py +631 -0
  10. arete_sdk-0.11.0/arete/errors.py +88 -0
  11. arete_sdk-0.11.0/arete/extensions.py +239 -0
  12. arete_sdk-0.11.0/arete/gateway.py +235 -0
  13. arete_sdk-0.11.0/arete/http.py +569 -0
  14. arete_sdk-0.11.0/arete/instructions/__init__.py +89 -0
  15. arete_sdk-0.11.0/arete/instructions/_curve.py +76 -0
  16. arete_sdk-0.11.0/arete/instructions/accounts.py +285 -0
  17. arete_sdk-0.11.0/arete/instructions/args.py +375 -0
  18. arete_sdk-0.11.0/arete/instructions/errors.py +53 -0
  19. arete_sdk-0.11.0/arete/instructions/handler.py +170 -0
  20. arete_sdk-0.11.0/arete/instructions/pda.py +276 -0
  21. arete_sdk-0.11.0/arete/operations.py +1402 -0
  22. arete_sdk-0.11.0/arete/program_read_transport.py +443 -0
  23. arete_sdk-0.11.0/arete/read.py +418 -0
  24. arete_sdk-0.11.0/arete/session.py +563 -0
  25. arete_sdk-0.11.0/arete/spl.py +75 -0
  26. arete_sdk-0.11.0/arete/stack.py +551 -0
  27. arete_sdk-0.11.0/arete/store.py +591 -0
  28. arete_sdk-0.11.0/arete/subscription.py +552 -0
  29. arete_sdk-0.11.0/arete/transactions.py +342 -0
  30. arete_sdk-0.11.0/arete/views.py +556 -0
  31. arete_sdk-0.11.0/arete/wallet.py +405 -0
  32. arete_sdk-0.11.0/arete/wire.py +477 -0
  33. arete_sdk-0.11.0/arete_sdk.egg-info/PKG-INFO +157 -0
  34. arete_sdk-0.11.0/arete_sdk.egg-info/SOURCES.txt +64 -0
  35. arete_sdk-0.11.0/arete_sdk.egg-info/dependency_links.txt +1 -0
  36. arete_sdk-0.11.0/arete_sdk.egg-info/requires.txt +6 -0
  37. arete_sdk-0.11.0/arete_sdk.egg-info/top_level.txt +1 -0
  38. arete_sdk-0.11.0/pyproject.toml +43 -0
  39. arete_sdk-0.11.0/setup.cfg +4 -0
  40. arete_sdk-0.11.0/tests/test_amounts.py +162 -0
  41. arete_sdk-0.11.0/tests/test_auth.py +186 -0
  42. arete_sdk-0.11.0/tests/test_chain.py +328 -0
  43. arete_sdk-0.11.0/tests/test_client.py +514 -0
  44. arete_sdk-0.11.0/tests/test_collation.py +274 -0
  45. arete_sdk-0.11.0/tests/test_connection.py +422 -0
  46. arete_sdk-0.11.0/tests/test_error_classification.py +188 -0
  47. arete_sdk-0.11.0/tests/test_extensions.py +238 -0
  48. arete_sdk-0.11.0/tests/test_gateway.py +352 -0
  49. arete_sdk-0.11.0/tests/test_http.py +512 -0
  50. arete_sdk-0.11.0/tests/test_instructions_args.py +353 -0
  51. arete_sdk-0.11.0/tests/test_instructions_curve.py +75 -0
  52. arete_sdk-0.11.0/tests/test_instructions_handler.py +216 -0
  53. arete_sdk-0.11.0/tests/test_instructions_pda.py +222 -0
  54. arete_sdk-0.11.0/tests/test_instructions_resolve.py +282 -0
  55. arete_sdk-0.11.0/tests/test_operations.py +699 -0
  56. arete_sdk-0.11.0/tests/test_program_read_transport.py +624 -0
  57. arete_sdk-0.11.0/tests/test_read.py +441 -0
  58. arete_sdk-0.11.0/tests/test_session.py +435 -0
  59. arete_sdk-0.11.0/tests/test_spl.py +97 -0
  60. arete_sdk-0.11.0/tests/test_stack.py +354 -0
  61. arete_sdk-0.11.0/tests/test_store.py +660 -0
  62. arete_sdk-0.11.0/tests/test_subscription.py +404 -0
  63. arete_sdk-0.11.0/tests/test_transactions.py +199 -0
  64. arete_sdk-0.11.0/tests/test_views.py +546 -0
  65. arete_sdk-0.11.0/tests/test_wallet.py +157 -0
  66. arete_sdk-0.11.0/tests/test_wire.py +357 -0
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 Arete
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
@@ -0,0 +1,157 @@
1
+ Metadata-Version: 2.4
2
+ Name: arete-sdk
3
+ Version: 0.11.0
4
+ Summary: Python SDK for Arete
5
+ Author: Arete Team
6
+ License-Expression: MIT
7
+ Project-URL: Homepage, https://arete.run
8
+ Project-URL: Repository, https://github.com/AreteA4/arete
9
+ Project-URL: Documentation, https://docs.arete.run
10
+ Project-URL: Issues, https://github.com/AreteA4/arete/issues
11
+ Classifier: Development Status :: 3 - Alpha
12
+ Classifier: Intended Audience :: Developers
13
+ Classifier: Programming Language :: Python :: 3
14
+ Classifier: Programming Language :: Python :: 3.9
15
+ Classifier: Programming Language :: Python :: 3.10
16
+ Classifier: Programming Language :: Python :: 3.11
17
+ Classifier: Programming Language :: Python :: 3.12
18
+ Requires-Python: >=3.9
19
+ Description-Content-Type: text/markdown
20
+ License-File: LICENSE
21
+ Requires-Dist: websockets>=12.0
22
+ Requires-Dist: httpx>=0.27
23
+ Provides-Extra: dev
24
+ Requires-Dist: pytest>=8.0; extra == "dev"
25
+ Requires-Dist: pytest-asyncio>=0.23; extra == "dev"
26
+ Dynamic: license-file
27
+
28
+ # arete-sdk
29
+
30
+ > **Work in Progress:** This SDK is under active development and has not yet been published to PyPI.
31
+
32
+ Python SDK for Arete — real-time Solana program data streaming. The Python SDK is an
33
+ idiomatic projection of the same core API exposed by `@usearete/sdk` (TypeScript),
34
+ `@usearete/react`, and the `arete-sdk` Rust crate: same nouns, same semantics, native
35
+ Python idiom. See `docs/internal/sdk-core-api.md` for the canonical surface.
36
+
37
+ ## Installation
38
+
39
+ ```bash
40
+ # Not yet published - install from source for development
41
+ pip install -e .
42
+ ```
43
+
44
+ Requires Python 3.9+. Runtime dependencies: `websockets`, `httpx`.
45
+
46
+ ## Quick start
47
+
48
+ ```python
49
+ import arete
50
+ from my_generated_stack import ORE_STREAM_STACK # generated by `a4 sdk create --python`
51
+
52
+ async def main():
53
+ async with await arete.Arete.connect(
54
+ ORE_STREAM_STACK,
55
+ auth=arete.AuthConfig(publishable_key="a4_pk_..."),
56
+ ) as a4:
57
+ # Live stream of merged entities (patches applied, removals filtered)
58
+ async for round in a4.views.ore_round.latest.use(take=10):
59
+ print(round)
60
+ break
61
+
62
+ # Keyed state view, one-shot read
63
+ round = await a4.views.ore_round.state.get(round_id=42)
64
+
65
+ # Raw update stream with the full taxonomy (upsert | patch | remove | delete)
66
+ async for update in a4.views.ore_round.latest.watch(filters={"state.status": "open"}):
67
+ print(update.op, update.key)
68
+ break
69
+ ```
70
+
71
+ ## Program SDKs
72
+
73
+ Raw builders are pure and work offline — no connection required. Instruction
74
+ parameters use the IDL wire names, and unknown parameters fail closed.
75
+
76
+ ```python
77
+ from my_generated_stack import programs
78
+
79
+ async def build_and_send(a4, wallet_address):
80
+ # Pure, offline instruction building (also on the connected client:
81
+ # a4.programs.ore.raw.deploy.build(...))
82
+ ix = programs.ore_deploy(
83
+ amount=1_000_000,
84
+ squares=3,
85
+ signer=wallet_address,
86
+ authority=wallet_address,
87
+ round="11111111111111111111111111111111",
88
+ entropyVar="11111111111111111111111111111111",
89
+ entropyProgram=programs.ENTROPY_PROGRAM_ID,
90
+ )
91
+
92
+ # Typed PDA derivation
93
+ miner, bump = programs.OrePdas.miner.derive(authority=wallet_address)
94
+
95
+ # Release-addressed account reads over HTTP
96
+ miner_account = await a4.programs.ore.accounts.miner.fetch(miner)
97
+
98
+ # Execute built instructions through your wallet
99
+ receipt = await a4.transaction([ix])
100
+ return receipt
101
+ ```
102
+
103
+ Stacks that ship semantic operations (via SDK extensions) also expose
104
+ `instructions` / `transactions` / `flows`, which prepare portable operations:
105
+
106
+ ```python
107
+ async def execute_semantic(a4):
108
+ prepared = await a4.programs.ore.instructions.deploy.prepare(amount=1_000_000)
109
+ receipt = await a4.execute(prepared)
110
+ if receipt.transaction.slot is not None:
111
+ await a4.wait_for_processed_slot(receipt.transaction.slot)
112
+ ```
113
+
114
+ Wallets implement the `arete.WalletAdapter` protocol (`async sign_and_send(...)`).
115
+ Execution outcomes follow the shared four-state model
116
+ (`confirmed | not-submitted | submitted-unknown | chain-failed`), and
117
+ `wait_for_processed_slot` bridges writes back to view state.
118
+
119
+ ## Chain and transaction relay
120
+
121
+ ```python
122
+ async def read_chain(a4, address):
123
+ clock = await a4.chain.clock()
124
+ lamports = await a4.chain.lamports(address)
125
+ # One request per batch, up to 100 addresses; items align with the input.
126
+ accounts = await a4.chain.accounts([address])
127
+ blockhash = await a4.transactions.get_latest_blockhash()
128
+ return clock, lamports, accounts, blockhash
129
+ ```
130
+
131
+ ## Sessions (multi-stack)
132
+
133
+ ```python
134
+ async def stream_session(auth):
135
+ session = await arete.create_session(stacks={"ore": ORE_STREAM_STACK}, auth=auth)
136
+ async for round in session.stacks.ore.views.ore_round.latest.use():
137
+ print(round)
138
+ break
139
+ await session.close()
140
+ ```
141
+
142
+ ## Development
143
+
144
+ ```bash
145
+ pip install -e '.[dev]'
146
+ python -m pytest tests/ -q
147
+ ```
148
+
149
+ ## License
150
+
151
+ MIT
152
+
153
+ ## Links
154
+
155
+ - [Repository](https://github.com/AreteA4/arete)
156
+ - [Documentation](https://docs.arete.run)
157
+ - [Issues](https://github.com/AreteA4/arete/issues)
@@ -0,0 +1,130 @@
1
+ # arete-sdk
2
+
3
+ > **Work in Progress:** This SDK is under active development and has not yet been published to PyPI.
4
+
5
+ Python SDK for Arete — real-time Solana program data streaming. The Python SDK is an
6
+ idiomatic projection of the same core API exposed by `@usearete/sdk` (TypeScript),
7
+ `@usearete/react`, and the `arete-sdk` Rust crate: same nouns, same semantics, native
8
+ Python idiom. See `docs/internal/sdk-core-api.md` for the canonical surface.
9
+
10
+ ## Installation
11
+
12
+ ```bash
13
+ # Not yet published - install from source for development
14
+ pip install -e .
15
+ ```
16
+
17
+ Requires Python 3.9+. Runtime dependencies: `websockets`, `httpx`.
18
+
19
+ ## Quick start
20
+
21
+ ```python
22
+ import arete
23
+ from my_generated_stack import ORE_STREAM_STACK # generated by `a4 sdk create --python`
24
+
25
+ async def main():
26
+ async with await arete.Arete.connect(
27
+ ORE_STREAM_STACK,
28
+ auth=arete.AuthConfig(publishable_key="a4_pk_..."),
29
+ ) as a4:
30
+ # Live stream of merged entities (patches applied, removals filtered)
31
+ async for round in a4.views.ore_round.latest.use(take=10):
32
+ print(round)
33
+ break
34
+
35
+ # Keyed state view, one-shot read
36
+ round = await a4.views.ore_round.state.get(round_id=42)
37
+
38
+ # Raw update stream with the full taxonomy (upsert | patch | remove | delete)
39
+ async for update in a4.views.ore_round.latest.watch(filters={"state.status": "open"}):
40
+ print(update.op, update.key)
41
+ break
42
+ ```
43
+
44
+ ## Program SDKs
45
+
46
+ Raw builders are pure and work offline — no connection required. Instruction
47
+ parameters use the IDL wire names, and unknown parameters fail closed.
48
+
49
+ ```python
50
+ from my_generated_stack import programs
51
+
52
+ async def build_and_send(a4, wallet_address):
53
+ # Pure, offline instruction building (also on the connected client:
54
+ # a4.programs.ore.raw.deploy.build(...))
55
+ ix = programs.ore_deploy(
56
+ amount=1_000_000,
57
+ squares=3,
58
+ signer=wallet_address,
59
+ authority=wallet_address,
60
+ round="11111111111111111111111111111111",
61
+ entropyVar="11111111111111111111111111111111",
62
+ entropyProgram=programs.ENTROPY_PROGRAM_ID,
63
+ )
64
+
65
+ # Typed PDA derivation
66
+ miner, bump = programs.OrePdas.miner.derive(authority=wallet_address)
67
+
68
+ # Release-addressed account reads over HTTP
69
+ miner_account = await a4.programs.ore.accounts.miner.fetch(miner)
70
+
71
+ # Execute built instructions through your wallet
72
+ receipt = await a4.transaction([ix])
73
+ return receipt
74
+ ```
75
+
76
+ Stacks that ship semantic operations (via SDK extensions) also expose
77
+ `instructions` / `transactions` / `flows`, which prepare portable operations:
78
+
79
+ ```python
80
+ async def execute_semantic(a4):
81
+ prepared = await a4.programs.ore.instructions.deploy.prepare(amount=1_000_000)
82
+ receipt = await a4.execute(prepared)
83
+ if receipt.transaction.slot is not None:
84
+ await a4.wait_for_processed_slot(receipt.transaction.slot)
85
+ ```
86
+
87
+ Wallets implement the `arete.WalletAdapter` protocol (`async sign_and_send(...)`).
88
+ Execution outcomes follow the shared four-state model
89
+ (`confirmed | not-submitted | submitted-unknown | chain-failed`), and
90
+ `wait_for_processed_slot` bridges writes back to view state.
91
+
92
+ ## Chain and transaction relay
93
+
94
+ ```python
95
+ async def read_chain(a4, address):
96
+ clock = await a4.chain.clock()
97
+ lamports = await a4.chain.lamports(address)
98
+ # One request per batch, up to 100 addresses; items align with the input.
99
+ accounts = await a4.chain.accounts([address])
100
+ blockhash = await a4.transactions.get_latest_blockhash()
101
+ return clock, lamports, accounts, blockhash
102
+ ```
103
+
104
+ ## Sessions (multi-stack)
105
+
106
+ ```python
107
+ async def stream_session(auth):
108
+ session = await arete.create_session(stacks={"ore": ORE_STREAM_STACK}, auth=auth)
109
+ async for round in session.stacks.ore.views.ore_round.latest.use():
110
+ print(round)
111
+ break
112
+ await session.close()
113
+ ```
114
+
115
+ ## Development
116
+
117
+ ```bash
118
+ pip install -e '.[dev]'
119
+ python -m pytest tests/ -q
120
+ ```
121
+
122
+ ## License
123
+
124
+ MIT
125
+
126
+ ## Links
127
+
128
+ - [Repository](https://github.com/AreteA4/arete)
129
+ - [Documentation](https://docs.arete.run)
130
+ - [Issues](https://github.com/AreteA4/arete/issues)
@@ -0,0 +1,310 @@
1
+ """Arete Python SDK — idiomatic Python projection of the Arete core SDK API.
2
+
3
+ See docs/internal/sdk-core-api.md (canonical surface) and
4
+ docs/internal/sdk-python-alignment.md (Python projection).
5
+
6
+ import arete
7
+ a4 = await arete.Arete.connect(STACK, wallet=wallet)
8
+ async for round in a4.views.ore_round.latest.use(take=10):
9
+ ...
10
+ """
11
+
12
+ from __future__ import annotations
13
+
14
+ __version__ = "0.4.0"
15
+
16
+
17
+ class _Unset:
18
+ """Sentinel distinguishing "no active subscription" from an empty result."""
19
+
20
+ _instance = None
21
+
22
+ def __new__(cls):
23
+ if cls._instance is None:
24
+ cls._instance = super().__new__(cls)
25
+ return cls._instance
26
+
27
+ def __repr__(self) -> str:
28
+ return "arete.UNSET"
29
+
30
+ def __bool__(self) -> bool:
31
+ return False
32
+
33
+
34
+ UNSET = _Unset()
35
+
36
+ # NOTE: UNSET must exist before the submodule imports below (arete.views
37
+ # imports it at module load).
38
+
39
+ from arete.errors import ( # noqa: E402
40
+ AreteConnectionError,
41
+ AreteError,
42
+ AuthError,
43
+ HttpRequestError,
44
+ ProcessedSlotTimeoutError,
45
+ SubscriptionError,
46
+ )
47
+ from arete.auth import AuthConfig # noqa: E402
48
+ from arete.wire import RichUpdate, Update # noqa: E402
49
+ from arete.views import ( # noqa: E402
50
+ DEFAULT_INITIAL_DATA_TIMEOUT,
51
+ InitialDataTimeoutError,
52
+ ListViewHandle,
53
+ StateViewHandle,
54
+ ViewDef,
55
+ ViewsNamespace,
56
+ )
57
+ from arete.chain import ( # noqa: E402
58
+ ChainClient,
59
+ ChainClock,
60
+ ChainError,
61
+ HttpChainClient,
62
+ MintAccountInfo,
63
+ NativeBalanceInfo,
64
+ RawAccountInfo,
65
+ TokenAccountInfo,
66
+ TokenBalanceInfo,
67
+ )
68
+ from arete.transactions import ( # noqa: E402
69
+ HttpTransactionTransport,
70
+ TransactionTransport,
71
+ TransactionTransportError,
72
+ )
73
+ from arete.gateway import ( # noqa: E402
74
+ HostedSolanaGatewayBindings,
75
+ create_hosted_solana_gateway_transports,
76
+ )
77
+ from arete.amounts import ( # noqa: E402
78
+ format_raw_to_ui,
79
+ get_mint_decimals,
80
+ parse_ui_amount_to_raw,
81
+ resolve_amount,
82
+ resolve_amount_to_raw,
83
+ resolve_amounts_to_raw,
84
+ to_raw_amount,
85
+ )
86
+ from arete.spl import ( # noqa: E402
87
+ ASSOCIATED_TOKEN_PROGRAM_ADDRESS,
88
+ SPL_TOKEN_PROGRAM_ADDRESS,
89
+ SYSTEM_PROGRAM_ADDRESS,
90
+ TOKEN_2022_PROGRAM_ADDRESS,
91
+ derive_associated_token_account,
92
+ resolve_token_program_address,
93
+ )
94
+ from arete.instructions import ( # noqa: E402
95
+ BuiltAccountMeta,
96
+ BuiltInstruction,
97
+ ErrorMetadata,
98
+ InstructionError,
99
+ InstructionHandler,
100
+ PdaConfig,
101
+ derive_pda,
102
+ find_program_address,
103
+ format_program_error,
104
+ parse_program_error,
105
+ )
106
+ from arete.read import ( # noqa: E402
107
+ AccountBatchItem,
108
+ AccountBatchResult,
109
+ AccountReader,
110
+ ProgramAccountReadDef,
111
+ ProgramQueryDef,
112
+ ReadRequestError,
113
+ StackQueryDef,
114
+ )
115
+ from arete.program_read_transport import ( # noqa: E402
116
+ ProgramReadDescriptor,
117
+ ProgramReleaseReference,
118
+ validate_program_read_descriptor,
119
+ )
120
+ from arete.wallet import ( # noqa: E402
121
+ ConfirmedTransactionOutcome,
122
+ SendOptions,
123
+ SendResult,
124
+ TransactionFailureOutcome,
125
+ TransactionInspectionResult,
126
+ WalletAdapter,
127
+ WalletError,
128
+ WalletExecutionContext,
129
+ )
130
+ from arete.operations import ( # noqa: E402
131
+ OperationCallbackError,
132
+ OperationExecutionError,
133
+ OperationReceipt,
134
+ OperationTransactionReceipt,
135
+ PreparedFlow,
136
+ PreparedInstruction,
137
+ PreparedOperation,
138
+ PreparedTransaction,
139
+ PreparedTransactionBody,
140
+ SignerRegistry,
141
+ TransactionExecutionError,
142
+ append_flow_transactions,
143
+ append_transaction_instructions,
144
+ create_prepared_flow,
145
+ create_prepared_instruction,
146
+ create_prepared_transaction,
147
+ create_prepared_transaction_body,
148
+ create_signer_registry,
149
+ describe_prepared_operation,
150
+ execute_prepared_operation,
151
+ format_prepared_operation,
152
+ get_transaction_failure_outcome,
153
+ inspect_prepared_operation,
154
+ prepend_flow_transaction_instructions,
155
+ prepend_transaction_instructions,
156
+ unwrap_operation_execution_error,
157
+ )
158
+ from arete.stack import ( # noqa: E402
159
+ ConnectedProgram,
160
+ Operation,
161
+ ProgramDef,
162
+ ProgramOperationContext,
163
+ ProgramOperations,
164
+ StackDef,
165
+ StackEndpoints,
166
+ flow_operation,
167
+ instruction_operation,
168
+ transaction_operation,
169
+ with_programs,
170
+ )
171
+ from arete.extensions import ( # noqa: E402
172
+ apply_connected_stack_extensions,
173
+ extend_program,
174
+ extend_programs,
175
+ extend_stack,
176
+ )
177
+ from arete.client import Arete # noqa: E402
178
+ from arete.session import Session, SessionError, create_session # noqa: E402
179
+
180
+ __all__ = [
181
+ "UNSET",
182
+ "__version__",
183
+ # client & session
184
+ "Arete",
185
+ "Session",
186
+ "SessionError",
187
+ "create_session",
188
+ # errors
189
+ "AreteError",
190
+ "AreteConnectionError",
191
+ "AuthError",
192
+ "ChainError",
193
+ "HttpRequestError",
194
+ "InitialDataTimeoutError",
195
+ "InstructionError",
196
+ "OperationCallbackError",
197
+ "OperationExecutionError",
198
+ "ProcessedSlotTimeoutError",
199
+ "ReadRequestError",
200
+ "SubscriptionError",
201
+ "TransactionExecutionError",
202
+ "TransactionTransportError",
203
+ "WalletError",
204
+ # auth
205
+ "AuthConfig",
206
+ # views & updates
207
+ "Update",
208
+ "RichUpdate",
209
+ "ViewDef",
210
+ "ViewsNamespace",
211
+ "DEFAULT_INITIAL_DATA_TIMEOUT",
212
+ "ListViewHandle",
213
+ "StateViewHandle",
214
+ # stack binding model
215
+ "StackDef",
216
+ "StackEndpoints",
217
+ "ProgramDef",
218
+ "ProgramOperations",
219
+ "ProgramOperationContext",
220
+ "ConnectedProgram",
221
+ "with_programs",
222
+ # extensions
223
+ "extend_stack",
224
+ "extend_program",
225
+ "extend_programs",
226
+ "apply_connected_stack_extensions",
227
+ "Operation",
228
+ "instruction_operation",
229
+ "transaction_operation",
230
+ "flow_operation",
231
+ # wallet & outcomes
232
+ "WalletAdapter",
233
+ "WalletExecutionContext",
234
+ "SendOptions",
235
+ "SendResult",
236
+ "TransactionInspectionResult",
237
+ "ConfirmedTransactionOutcome",
238
+ "TransactionFailureOutcome",
239
+ "get_transaction_failure_outcome",
240
+ # prepared operations
241
+ "PreparedInstruction",
242
+ "PreparedTransaction",
243
+ "PreparedFlow",
244
+ "PreparedOperation",
245
+ "PreparedTransactionBody",
246
+ "create_prepared_instruction",
247
+ "create_prepared_transaction",
248
+ "create_prepared_flow",
249
+ "create_prepared_transaction_body",
250
+ "prepend_transaction_instructions",
251
+ "append_transaction_instructions",
252
+ "append_flow_transactions",
253
+ "prepend_flow_transaction_instructions",
254
+ "execute_prepared_operation",
255
+ "inspect_prepared_operation",
256
+ "describe_prepared_operation",
257
+ "format_prepared_operation",
258
+ "unwrap_operation_execution_error",
259
+ "OperationReceipt",
260
+ "OperationTransactionReceipt",
261
+ "SignerRegistry",
262
+ "create_signer_registry",
263
+ # chain & transactions
264
+ "ChainClient",
265
+ "HttpChainClient",
266
+ "ChainClock",
267
+ "RawAccountInfo",
268
+ "MintAccountInfo",
269
+ "TokenAccountInfo",
270
+ "TokenBalanceInfo",
271
+ "NativeBalanceInfo",
272
+ "TransactionTransport",
273
+ "HttpTransactionTransport",
274
+ "HostedSolanaGatewayBindings",
275
+ "create_hosted_solana_gateway_transports",
276
+ # amounts & SPL
277
+ "parse_ui_amount_to_raw",
278
+ "format_raw_to_ui",
279
+ "to_raw_amount",
280
+ "get_mint_decimals",
281
+ "resolve_amount",
282
+ "resolve_amount_to_raw",
283
+ "resolve_amounts_to_raw",
284
+ "SPL_TOKEN_PROGRAM_ADDRESS",
285
+ "TOKEN_2022_PROGRAM_ADDRESS",
286
+ "ASSOCIATED_TOKEN_PROGRAM_ADDRESS",
287
+ "SYSTEM_PROGRAM_ADDRESS",
288
+ "derive_associated_token_account",
289
+ "resolve_token_program_address",
290
+ # instruction runtime
291
+ "InstructionHandler",
292
+ "BuiltInstruction",
293
+ "BuiltAccountMeta",
294
+ "ErrorMetadata",
295
+ "PdaConfig",
296
+ "derive_pda",
297
+ "find_program_address",
298
+ "parse_program_error",
299
+ "format_program_error",
300
+ # program reads
301
+ "AccountReader",
302
+ "AccountBatchItem",
303
+ "AccountBatchResult",
304
+ "ProgramAccountReadDef",
305
+ "ProgramQueryDef",
306
+ "StackQueryDef",
307
+ "ProgramReadDescriptor",
308
+ "ProgramReleaseReference",
309
+ "validate_program_read_descriptor",
310
+ ]