brawny 0.1.13__py3-none-any.whl → 0.1.22__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.
- brawny/__init__.py +2 -0
- brawny/_context.py +5 -5
- brawny/_rpc/__init__.py +36 -12
- brawny/_rpc/broadcast.py +14 -13
- brawny/_rpc/caller.py +243 -0
- brawny/_rpc/client.py +539 -0
- brawny/_rpc/clients.py +11 -11
- brawny/_rpc/context.py +23 -0
- brawny/_rpc/errors.py +465 -31
- brawny/_rpc/gas.py +7 -6
- brawny/_rpc/pool.py +18 -0
- brawny/_rpc/retry.py +266 -0
- brawny/_rpc/retry_policy.py +81 -0
- brawny/accounts.py +28 -9
- brawny/alerts/__init__.py +15 -18
- brawny/alerts/abi_resolver.py +212 -36
- brawny/alerts/base.py +2 -2
- brawny/alerts/contracts.py +77 -10
- brawny/alerts/errors.py +30 -3
- brawny/alerts/events.py +38 -5
- brawny/alerts/health.py +19 -13
- brawny/alerts/send.py +513 -55
- brawny/api.py +39 -11
- brawny/assets/AGENTS.md +325 -0
- brawny/async_runtime.py +48 -0
- brawny/chain.py +3 -3
- brawny/cli/commands/__init__.py +2 -0
- brawny/cli/commands/console.py +69 -19
- brawny/cli/commands/contract.py +2 -2
- brawny/cli/commands/controls.py +121 -0
- brawny/cli/commands/health.py +2 -2
- brawny/cli/commands/job_dev.py +6 -5
- brawny/cli/commands/jobs.py +99 -2
- brawny/cli/commands/maintenance.py +13 -29
- brawny/cli/commands/migrate.py +1 -0
- brawny/cli/commands/run.py +10 -3
- brawny/cli/commands/script.py +8 -3
- brawny/cli/commands/signer.py +143 -26
- brawny/cli/helpers.py +0 -3
- brawny/cli_templates.py +25 -349
- brawny/config/__init__.py +4 -1
- brawny/config/models.py +43 -57
- brawny/config/parser.py +268 -57
- brawny/config/validation.py +52 -15
- brawny/daemon/context.py +4 -2
- brawny/daemon/core.py +185 -63
- brawny/daemon/loops.py +166 -98
- brawny/daemon/supervisor.py +261 -0
- brawny/db/__init__.py +14 -26
- brawny/db/base.py +248 -151
- brawny/db/global_cache.py +11 -1
- brawny/db/migrate.py +175 -28
- brawny/db/migrations/001_init.sql +4 -3
- brawny/db/migrations/010_add_nonce_gap_index.sql +1 -1
- brawny/db/migrations/011_add_job_logs.sql +1 -2
- brawny/db/migrations/012_add_claimed_by.sql +2 -2
- brawny/db/migrations/013_attempt_unique.sql +10 -0
- brawny/db/migrations/014_add_lease_expires_at.sql +5 -0
- brawny/db/migrations/015_add_signer_alias.sql +14 -0
- brawny/db/migrations/016_runtime_controls_and_quarantine.sql +32 -0
- brawny/db/migrations/017_add_job_drain.sql +6 -0
- brawny/db/migrations/018_add_nonce_reset_audit.sql +20 -0
- brawny/db/migrations/019_add_job_cooldowns.sql +8 -0
- brawny/db/migrations/020_attempt_unique_initial.sql +7 -0
- brawny/db/ops/__init__.py +3 -25
- brawny/db/ops/logs.py +1 -2
- brawny/db/queries.py +47 -91
- brawny/db/serialized.py +65 -0
- brawny/db/sqlite/__init__.py +1001 -0
- brawny/db/sqlite/connection.py +231 -0
- brawny/db/sqlite/execute.py +116 -0
- brawny/db/sqlite/mappers.py +190 -0
- brawny/db/sqlite/repos/attempts.py +372 -0
- brawny/db/sqlite/repos/block_state.py +102 -0
- brawny/db/sqlite/repos/cache.py +104 -0
- brawny/db/sqlite/repos/intents.py +1021 -0
- brawny/db/sqlite/repos/jobs.py +200 -0
- brawny/db/sqlite/repos/maintenance.py +182 -0
- brawny/db/sqlite/repos/signers_nonces.py +566 -0
- brawny/db/sqlite/tx.py +119 -0
- brawny/http.py +194 -0
- brawny/invariants.py +11 -24
- brawny/jobs/base.py +8 -0
- brawny/jobs/job_validation.py +2 -1
- brawny/keystore.py +83 -7
- brawny/lifecycle.py +64 -12
- brawny/logging.py +0 -2
- brawny/metrics.py +84 -12
- brawny/model/contexts.py +111 -9
- brawny/model/enums.py +1 -0
- brawny/model/errors.py +18 -0
- brawny/model/types.py +47 -131
- brawny/network_guard.py +133 -0
- brawny/networks/__init__.py +5 -5
- brawny/networks/config.py +1 -7
- brawny/networks/manager.py +14 -11
- brawny/runtime_controls.py +74 -0
- brawny/scheduler/poller.py +11 -7
- brawny/scheduler/reorg.py +95 -39
- brawny/scheduler/runner.py +442 -168
- brawny/scheduler/shutdown.py +3 -3
- brawny/script_tx.py +3 -3
- brawny/telegram.py +53 -7
- brawny/testing.py +1 -0
- brawny/timeout.py +38 -0
- brawny/tx/executor.py +922 -308
- brawny/tx/intent.py +54 -16
- brawny/tx/monitor.py +31 -12
- brawny/tx/nonce.py +212 -90
- brawny/tx/replacement.py +69 -18
- brawny/tx/retry_policy.py +24 -0
- brawny/tx/stages/types.py +75 -0
- brawny/types.py +18 -0
- brawny/utils.py +41 -0
- {brawny-0.1.13.dist-info → brawny-0.1.22.dist-info}/METADATA +3 -3
- brawny-0.1.22.dist-info/RECORD +163 -0
- brawny/_rpc/manager.py +0 -982
- brawny/_rpc/selector.py +0 -156
- brawny/db/base_new.py +0 -165
- brawny/db/mappers.py +0 -182
- brawny/db/migrations/008_add_transactions.sql +0 -72
- brawny/db/ops/attempts.py +0 -108
- brawny/db/ops/blocks.py +0 -83
- brawny/db/ops/cache.py +0 -93
- brawny/db/ops/intents.py +0 -296
- brawny/db/ops/jobs.py +0 -110
- brawny/db/ops/nonces.py +0 -322
- brawny/db/postgres.py +0 -2535
- brawny/db/postgres_new.py +0 -196
- brawny/db/sqlite.py +0 -2733
- brawny/db/sqlite_new.py +0 -191
- brawny-0.1.13.dist-info/RECORD +0 -141
- {brawny-0.1.13.dist-info → brawny-0.1.22.dist-info}/WHEEL +0 -0
- {brawny-0.1.13.dist-info → brawny-0.1.22.dist-info}/entry_points.txt +0 -0
- {brawny-0.1.13.dist-info → brawny-0.1.22.dist-info}/top_level.txt +0 -0
brawny/db/sqlite_new.py
DELETED
|
@@ -1,191 +0,0 @@
|
|
|
1
|
-
"""SQLite database implementation.
|
|
2
|
-
|
|
3
|
-
Slim execution layer with 4 primitives. All business operations live in db/ops/.
|
|
4
|
-
Uses single connection with WAL mode.
|
|
5
|
-
|
|
6
|
-
SQLite supports :name placeholders natively with dict params.
|
|
7
|
-
"""
|
|
8
|
-
|
|
9
|
-
from __future__ import annotations
|
|
10
|
-
|
|
11
|
-
import sqlite3
|
|
12
|
-
import threading
|
|
13
|
-
from contextlib import contextmanager
|
|
14
|
-
from datetime import datetime, timezone
|
|
15
|
-
from pathlib import Path
|
|
16
|
-
from typing import Any, Iterator
|
|
17
|
-
|
|
18
|
-
from brawny.db.base_new import Database, Dialect, IsolationLevel
|
|
19
|
-
from brawny.model.errors import DatabaseError
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
def _adapt_datetime(dt: datetime) -> str:
|
|
23
|
-
"""Adapt datetime to ISO format string for SQLite."""
|
|
24
|
-
if dt.tzinfo is None:
|
|
25
|
-
dt = dt.replace(tzinfo=timezone.utc)
|
|
26
|
-
return dt.isoformat()
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
def _convert_datetime(val: bytes) -> datetime:
|
|
30
|
-
"""Convert ISO format string from SQLite to datetime."""
|
|
31
|
-
s = val.decode("utf-8")
|
|
32
|
-
try:
|
|
33
|
-
return datetime.fromisoformat(s)
|
|
34
|
-
except ValueError:
|
|
35
|
-
# Handle format without timezone
|
|
36
|
-
return datetime.strptime(s, "%Y-%m-%d %H:%M:%S").replace(tzinfo=timezone.utc)
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
# Register adapters globally
|
|
40
|
-
sqlite3.register_adapter(datetime, _adapt_datetime)
|
|
41
|
-
sqlite3.register_converter("TIMESTAMP", _convert_datetime)
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
def _dict_factory(cursor: sqlite3.Cursor, row: tuple) -> dict[str, Any]:
|
|
45
|
-
"""Row factory that returns dict rows."""
|
|
46
|
-
cols = [d[0] for d in cursor.description]
|
|
47
|
-
return dict(zip(cols, row))
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
class SQLiteDatabase(Database):
|
|
51
|
-
"""SQLite implementation with single connection.
|
|
52
|
-
|
|
53
|
-
Uses WAL mode for better concurrency. Thread safety via lock.
|
|
54
|
-
Queries use :name placeholders natively.
|
|
55
|
-
"""
|
|
56
|
-
|
|
57
|
-
def __init__(self, database_path: str) -> None:
|
|
58
|
-
"""Initialize SQLite database.
|
|
59
|
-
|
|
60
|
-
Args:
|
|
61
|
-
database_path: Path to SQLite database file (or :memory:)
|
|
62
|
-
"""
|
|
63
|
-
# Remove sqlite:/// prefix if present
|
|
64
|
-
if database_path.startswith("sqlite:///"):
|
|
65
|
-
database_path = database_path[10:]
|
|
66
|
-
|
|
67
|
-
self._database_path = database_path
|
|
68
|
-
self._conn: sqlite3.Connection | None = None
|
|
69
|
-
self._lock = threading.RLock()
|
|
70
|
-
self._in_transaction = False
|
|
71
|
-
|
|
72
|
-
@property
|
|
73
|
-
def dialect(self) -> Dialect:
|
|
74
|
-
"""Return dialect name for query selection."""
|
|
75
|
-
return "sqlite"
|
|
76
|
-
|
|
77
|
-
def connect(self) -> None:
|
|
78
|
-
"""Establish database connection."""
|
|
79
|
-
if self._conn is not None:
|
|
80
|
-
return
|
|
81
|
-
|
|
82
|
-
# Create directory if needed
|
|
83
|
-
if self._database_path != ":memory:":
|
|
84
|
-
path = Path(self._database_path)
|
|
85
|
-
path.parent.mkdir(parents=True, exist_ok=True)
|
|
86
|
-
|
|
87
|
-
self._conn = sqlite3.connect(
|
|
88
|
-
self._database_path,
|
|
89
|
-
detect_types=sqlite3.PARSE_DECLTYPES | sqlite3.PARSE_COLNAMES,
|
|
90
|
-
check_same_thread=False,
|
|
91
|
-
timeout=30.0,
|
|
92
|
-
isolation_level=None, # Autocommit mode - we manage transactions manually
|
|
93
|
-
)
|
|
94
|
-
self._conn.row_factory = _dict_factory
|
|
95
|
-
# Enable foreign keys and WAL mode
|
|
96
|
-
self._conn.execute("PRAGMA foreign_keys = ON")
|
|
97
|
-
self._conn.execute("PRAGMA journal_mode = WAL")
|
|
98
|
-
|
|
99
|
-
def close(self) -> None:
|
|
100
|
-
"""Close database connection."""
|
|
101
|
-
if self._conn:
|
|
102
|
-
self._conn.close()
|
|
103
|
-
self._conn = None
|
|
104
|
-
|
|
105
|
-
def is_connected(self) -> bool:
|
|
106
|
-
"""Check if database is connected."""
|
|
107
|
-
return self._conn is not None
|
|
108
|
-
|
|
109
|
-
def _ensure_connected(self) -> sqlite3.Connection:
|
|
110
|
-
"""Ensure connection exists and return it."""
|
|
111
|
-
if self._conn is None:
|
|
112
|
-
raise DatabaseError("Database not connected. Call connect() first.")
|
|
113
|
-
return self._conn
|
|
114
|
-
|
|
115
|
-
@contextmanager
|
|
116
|
-
def transaction(
|
|
117
|
-
self, isolation_level: IsolationLevel | None = None
|
|
118
|
-
) -> Iterator[None]:
|
|
119
|
-
"""Context manager for database transactions.
|
|
120
|
-
|
|
121
|
-
Uses BEGIN IMMEDIATE for write transactions to avoid
|
|
122
|
-
SQLITE_BUSY errors on concurrent writes.
|
|
123
|
-
|
|
124
|
-
Args:
|
|
125
|
-
isolation_level: Ignored on SQLite (BEGIN IMMEDIATE provides isolation)
|
|
126
|
-
"""
|
|
127
|
-
conn = self._ensure_connected()
|
|
128
|
-
|
|
129
|
-
with self._lock:
|
|
130
|
-
if self._in_transaction:
|
|
131
|
-
raise DatabaseError("Nested transactions are not supported")
|
|
132
|
-
|
|
133
|
-
try:
|
|
134
|
-
conn.execute("BEGIN IMMEDIATE")
|
|
135
|
-
self._in_transaction = True
|
|
136
|
-
yield
|
|
137
|
-
conn.commit()
|
|
138
|
-
except Exception:
|
|
139
|
-
conn.rollback()
|
|
140
|
-
raise
|
|
141
|
-
finally:
|
|
142
|
-
self._in_transaction = False
|
|
143
|
-
|
|
144
|
-
def execute(self, query: str, params: dict[str, Any] | None = None) -> None:
|
|
145
|
-
"""Execute a query without returning results."""
|
|
146
|
-
conn = self._ensure_connected()
|
|
147
|
-
with self._lock:
|
|
148
|
-
try:
|
|
149
|
-
conn.execute(query, params or {})
|
|
150
|
-
if not self._in_transaction:
|
|
151
|
-
conn.commit()
|
|
152
|
-
except sqlite3.Error as e:
|
|
153
|
-
raise DatabaseError(f"SQLite query failed: {e}") from e
|
|
154
|
-
|
|
155
|
-
def fetch_one(
|
|
156
|
-
self, query: str, params: dict[str, Any] | None = None
|
|
157
|
-
) -> dict[str, Any] | None:
|
|
158
|
-
"""Execute a query and return single result or None."""
|
|
159
|
-
conn = self._ensure_connected()
|
|
160
|
-
with self._lock:
|
|
161
|
-
try:
|
|
162
|
-
cursor = conn.execute(query, params or {})
|
|
163
|
-
return cursor.fetchone()
|
|
164
|
-
except sqlite3.Error as e:
|
|
165
|
-
raise DatabaseError(f"SQLite query failed: {e}") from e
|
|
166
|
-
|
|
167
|
-
def fetch_all(
|
|
168
|
-
self, query: str, params: dict[str, Any] | None = None
|
|
169
|
-
) -> list[dict[str, Any]]:
|
|
170
|
-
"""Execute a query and return all results."""
|
|
171
|
-
conn = self._ensure_connected()
|
|
172
|
-
with self._lock:
|
|
173
|
-
try:
|
|
174
|
-
cursor = conn.execute(query, params or {})
|
|
175
|
-
return cursor.fetchall()
|
|
176
|
-
except sqlite3.Error as e:
|
|
177
|
-
raise DatabaseError(f"SQLite query failed: {e}") from e
|
|
178
|
-
|
|
179
|
-
def execute_rowcount(
|
|
180
|
-
self, query: str, params: dict[str, Any] | None = None
|
|
181
|
-
) -> int:
|
|
182
|
-
"""Execute a query and return affected row count."""
|
|
183
|
-
conn = self._ensure_connected()
|
|
184
|
-
with self._lock:
|
|
185
|
-
try:
|
|
186
|
-
cursor = conn.execute(query, params or {})
|
|
187
|
-
if not self._in_transaction:
|
|
188
|
-
conn.commit()
|
|
189
|
-
return cursor.rowcount
|
|
190
|
-
except sqlite3.Error as e:
|
|
191
|
-
raise DatabaseError(f"SQLite query failed: {e}") from e
|
brawny-0.1.13.dist-info/RECORD
DELETED
|
@@ -1,141 +0,0 @@
|
|
|
1
|
-
brawny/__init__.py,sha256=S3rU6-n_H1NQdNAghB4zSTgvAEuT4ln2eNii87Hm1Js,2344
|
|
2
|
-
brawny/_context.py,sha256=jDdUBpMxApxsGCwYouJN7lHYiX6ukPWyYakLQZ4xhD4,6614
|
|
3
|
-
brawny/accounts.py,sha256=IbAeHiTQ64a-f56sckAOAOkGPZ3tT3R9sQlsal94aNs,16206
|
|
4
|
-
brawny/api.py,sha256=4gxTRgak5lDIiVtJrWo-dOUyF0XmEaHnnFbhkO_lJJs,19217
|
|
5
|
-
brawny/chain.py,sha256=EzPViqzXspHHr6S1NHrlYLDN9Q-A4tPNry9ZMMqUva4,2213
|
|
6
|
-
brawny/cli_templates.py,sha256=6ZyvarLsNWJJIcm_YqYix85lpxRPxx_2lcubTdxa5JQ,37239
|
|
7
|
-
brawny/history.py,sha256=8ODRudA-iiPF12s9mRR78doOIcnlCwaNQhEc901x6Do,3192
|
|
8
|
-
brawny/interfaces.py,sha256=eJXjRh1HxeESaroItT-YCxsYlUceLw0ZmenZhR-H_LI,4393
|
|
9
|
-
brawny/invariants.py,sha256=_oj2KPfqf1dLajJN5yW-jzviC9SDX7PhHMbxKWPfhdc,5234
|
|
10
|
-
brawny/keystore.py,sha256=O0PPtXYmW48xd0040xRU2tN1fdCYTgiyOgQYv34tZeA,16764
|
|
11
|
-
brawny/lifecycle.py,sha256=zP4fOyiGPGhWQtnLnGqmS1sjW0K0Sis6m5Fr0xLg13k,20191
|
|
12
|
-
brawny/logging.py,sha256=FuXf8CJUxODVPdzWrK8oHTLBgIWtmhfTjsD_PJEfHJw,8937
|
|
13
|
-
brawny/metrics.py,sha256=w3s1objzFf-biPiw5-_KqR9Wpu4zSiEPMRUoWLw_mqQ,22450
|
|
14
|
-
brawny/reconciliation.py,sha256=_WFVf8fEKnkJVhTjThb0oTHXDM7njOOsLuTR5bU0Bik,3466
|
|
15
|
-
brawny/script_tx.py,sha256=fIsso5u30it94-XWYmi22aTImGzeQt97Ekjm3Ac3cas,9506
|
|
16
|
-
brawny/scripting.py,sha256=n-2i4oUUVajz1Q2ilU0SKNx3vE9X2kCr_7VuAiGVBAU,7867
|
|
17
|
-
brawny/startup.py,sha256=ChHzLR3dNv_4vxXG-uyp-XxgPCpbjRKkcIENyLhq_wg,2386
|
|
18
|
-
brawny/telegram.py,sha256=7TbzuL8UMQ2I572tAD_ktq4vhzqHaWLlj3-VMjwmT5w,11189
|
|
19
|
-
brawny/testing.py,sha256=tw33Fm9cljB1QJGvyAhzIPipbmVraLtvop24TA_GgHU,3448
|
|
20
|
-
brawny/utils.py,sha256=KGnBWklkg5J-vZEWm4WhHE1I-tHATAqK8r8I5N1-n-I,5167
|
|
21
|
-
brawny/validation.py,sha256=f63DcrEABO1qdCL_9RVk7QbOhstpFFgxtAP7lU5VNfQ,1893
|
|
22
|
-
brawny/_rpc/__init__.py,sha256=Tb-LjDx_n2Lglwnx2ZebcBnHKySiAnQZmLmfGi_0Uys,935
|
|
23
|
-
brawny/_rpc/broadcast.py,sha256=5RAYy1xm42k5oZiX8A7DR5M6yJnLZuQZM0UJyktiXcI,5477
|
|
24
|
-
brawny/_rpc/clients.py,sha256=fSKajPXXzQ2gZ6XnJikOpsFUJRm7xmx9YgNAXON_Dvg,3308
|
|
25
|
-
brawny/_rpc/context.py,sha256=7MtOkAuFhGxvFVqTPWXC6Jfmr4Ld8UGjO8S4OW0Gzx0,1222
|
|
26
|
-
brawny/_rpc/errors.py,sha256=FriHwPAnrBc9d5FMtgHxcvmbp0NOjNBxctE9t07LjgU,7550
|
|
27
|
-
brawny/_rpc/gas.py,sha256=f6MT51vJHH1UJQZndON_ksZ_IJM5vnm4EZPwnCyidNM,5453
|
|
28
|
-
brawny/_rpc/manager.py,sha256=cMG6CD-KlQTw-JkjNSnhstLrecxp489n4Rcgiw1r3BM,37464
|
|
29
|
-
brawny/_rpc/selector.py,sha256=UChAnDsmbB49z8TnrP1-z44FL0j-CYSbX1VMMVDfQ3M,5415
|
|
30
|
-
brawny/alerts/__init__.py,sha256=MykNI98oMx2RWH2t-2PLXo-rc3Hozqmno21BAQOOY-A,3314
|
|
31
|
-
brawny/alerts/abi_resolver.py,sha256=pF2Npsfq0Z0Uye1_Y6_61ze2IQ7DKLUJa1ZtAvO4m9M,17831
|
|
32
|
-
brawny/alerts/base.py,sha256=sKqh1rM55zj_SXEiSVAU7Cztc6oABghpmAVWzpnUhm4,4153
|
|
33
|
-
brawny/alerts/context.py,sha256=Qv2QhsUE2CwPjzmOqNLJp2vyaGzxZ9CoXE2dgP372Dg,8871
|
|
34
|
-
brawny/alerts/contracts.py,sha256=Hw321LIwBEJ4minH3RCiw3_k4RkCQKSeiyvm2KN210o,21714
|
|
35
|
-
brawny/alerts/encoded_call.py,sha256=DzKYop5U9ciNI-S8e3CAA-yLYVeQ2UlwogZ_LN5-oHQ,6755
|
|
36
|
-
brawny/alerts/errors.py,sha256=p4eXELXTAAorzGfKQ4ebgLoW3eRrOHAp-W6cIqklHQU,8379
|
|
37
|
-
brawny/alerts/events.py,sha256=T-HIim1c0t1ScYuMSb1YZ-HZglMJuh7jrlZvPfMR7OI,22830
|
|
38
|
-
brawny/alerts/function_caller.py,sha256=M_QNg0hMs_XuuT66CphXB2DQxtv0MPr_HUpNmBJBTHw,13459
|
|
39
|
-
brawny/alerts/health.py,sha256=KolaclVvBdGol9jN9-Qeu76vCan3peUqjeM9iKT1krs,6324
|
|
40
|
-
brawny/alerts/routing.py,sha256=r8UMxRihfVxVmr6PRwWgU-NCi8_xjAIdWakfyUL-ssA,3239
|
|
41
|
-
brawny/alerts/send.py,sha256=LLeimlqZ5lG98yNrPkDiVPWLq0RK5KYsX62SgNBWAgM,11838
|
|
42
|
-
brawny/cli/__init__.py,sha256=A96bKB68ldVoDafAhRf0_Jd4z6R4KaEenXs8131M5Ac,229
|
|
43
|
-
brawny/cli/app.py,sha256=xx7uyBjmKkFtqtdNIQJYgLhMTzgMIdRTBFZ-S2lnJP8,374
|
|
44
|
-
brawny/cli/bootstrap.py,sha256=cqqbw2_UFIOlPKtcphWWXyD-FqTMttTulXoZ4RHa7tk,1060
|
|
45
|
-
brawny/cli/helpers.py,sha256=10yoo1TyXUudcpRqxpuMzjZjKfufx0E3GMNIGACEI4Q,8729
|
|
46
|
-
brawny/cli/commands/__init__.py,sha256=ywymaH-keFP2ux9OCjVjvasfGh7C27huzy17MEcA_Jw,1830
|
|
47
|
-
brawny/cli/commands/abi.py,sha256=epaQIMcoLo952blPfFq-cPlZ6OFPW8-xjYBR2cq3qNM,2767
|
|
48
|
-
brawny/cli/commands/accounts.py,sha256=1OreYRUNhSnVIWoQp_NTeUA_1l7ZDpul0fCKueteEZg,19213
|
|
49
|
-
brawny/cli/commands/console.py,sha256=N_S2ghLLW6ken4l7-8UjPhvcsrjyPX6HckygkRuyu3g,17257
|
|
50
|
-
brawny/cli/commands/contract.py,sha256=bWzFsHnbFGmdAVj8ebdrRWr0AcR0n7eys_Psd5EH6I8,4327
|
|
51
|
-
brawny/cli/commands/health.py,sha256=fmunPEjWFXyOEML8cC8yNipMOvJprWLmtkOcYeP8BRI,3660
|
|
52
|
-
brawny/cli/commands/init_project.py,sha256=B6Cy9w2Z86kB8Gs9dAC6zCb9q_5FYBGSrmHmqUr63-c,2586
|
|
53
|
-
brawny/cli/commands/intents.py,sha256=4W96VmofUxjwUaV51T9vvT7BvquLl2g4z2NUdTGtET4,4717
|
|
54
|
-
brawny/cli/commands/job_dev.py,sha256=uYKnrJ2VzJVaTzxaDR3q6JcobucuawnkbEBVWVae1lU,8499
|
|
55
|
-
brawny/cli/commands/jobs.py,sha256=x_F5BZeEDL5sPd6crtcjONGT0AzdS1Z4eqwTsaoKcIE,10096
|
|
56
|
-
brawny/cli/commands/logs.py,sha256=aqyPthS-CBlM4n6GGufrefU0WZYI3EFmXZKcETgAx7s,2684
|
|
57
|
-
brawny/cli/commands/maintenance.py,sha256=224TNrqxKrAiMpgxIKhcQafJEaQu0U10EUyNw2qAPJY,6381
|
|
58
|
-
brawny/cli/commands/migrate.py,sha256=Xlc8wlG8kOJwz91wV-By-hX2rieBTtQDkwMRwrS15os,1649
|
|
59
|
-
brawny/cli/commands/networks.py,sha256=e3nkiTLgbDCHOiBMo6Y5WIwOetOpP3hnbUSRze3mHOc,8499
|
|
60
|
-
brawny/cli/commands/run.py,sha256=EUNv-ZL3QU_UwpLYGuC9PAPHxLqbYnLKVxu9byy8kBM,8599
|
|
61
|
-
brawny/cli/commands/script.py,sha256=ZHC2XKXCtUstMqvUiAdBWYOjIsqME4WL17AMDOClslg,6475
|
|
62
|
-
brawny/cli/commands/signer.py,sha256=5KJ0i2N10Zb0OFSBC-NGXf7nBBkBFt1m6fKKY1NiXzY,8716
|
|
63
|
-
brawny/config/__init__.py,sha256=Ty8HQ9t2b3OihV7xuakXTcF41tiqsQSo3di_SBoqqho,1722
|
|
64
|
-
brawny/config/models.py,sha256=aOdk1XYRCofgUoIUM8ORLxm4o_CBpWE6-rc9satA8KY,12833
|
|
65
|
-
brawny/config/parser.py,sha256=L2v_CurgUw7UUTyzfz6mqvO8LPtHn2e-1Q4Tj4YiHHw,23917
|
|
66
|
-
brawny/config/routing.py,sha256=AyeMsuzkqzEbW1XZMCAyK3ufTC4fyV4wcMLZHwt8L_w,1720
|
|
67
|
-
brawny/config/validation.py,sha256=WUkW18UKIP__VTIZM5bb_tFne6NRBp32ng6V9E5zRbE,7996
|
|
68
|
-
brawny/daemon/__init__.py,sha256=c3IDbNv7aaXej69nh4fOYdNjX2U144tVfU2CtSd2icQ,331
|
|
69
|
-
brawny/daemon/context.py,sha256=TEZYXfoeM6wFoX9I7uLgdc-6HZWBrNO-fyZVvCqqsxs,1832
|
|
70
|
-
brawny/daemon/core.py,sha256=62lxjUv3qgr81QkMo95Drl9_B8OoNfRFkXAwAx-PY5M,24679
|
|
71
|
-
brawny/daemon/loops.py,sha256=Mv1AUly_FOsbOHtrlxKi8QV4J1DqFXPfd6AKch_2SJk,11788
|
|
72
|
-
brawny/db/__init__.py,sha256=JqDFTFhAdW3g4NqsYpSmgAZqbfhtOzpCAD5PVP9RwnA,2479
|
|
73
|
-
brawny/db/base.py,sha256=I0KjhiM_avviYBzTM4WBEDcMwwDlloQbA-92UC7hSps,29218
|
|
74
|
-
brawny/db/base_new.py,sha256=NPjSCNvGw0BhOmAo5Dl0t1oZzMUMCXxCzeTL2xhXUHU,3976
|
|
75
|
-
brawny/db/circuit_breaker.py,sha256=pRyCz6P-2C9tFHlR-xomk7dmiMVgyYFBznHSog4H0QY,2984
|
|
76
|
-
brawny/db/global_cache.py,sha256=fvE23C0mo7Hj6kqYMIxegjd0pTh5IIX7Y0hivUA0Bwo,9339
|
|
77
|
-
brawny/db/mappers.py,sha256=lpB-tP-WExJqPe3kFja-xDw_lBj74ngzq9NVhG2xfIM,6139
|
|
78
|
-
brawny/db/migrate.py,sha256=BPFbo7GN9Ez8XjenQuFoUVbHG9OoqWq0A4e28tbv_N8,10092
|
|
79
|
-
brawny/db/postgres.py,sha256=v8hkP-GN6dkQzM_ZGzsfld0OJFE4GKJXYleZQVl2tJU,89969
|
|
80
|
-
brawny/db/postgres_new.py,sha256=sl-ozPPiEjsi0_O0Y8cMZrK3pQr4_f8UL7BoJSCwNP8,6712
|
|
81
|
-
brawny/db/queries.py,sha256=YXHdHPCIvbhSiJ_nWeCK9ll8W1ebWucu9V1ZleYhDgU,18472
|
|
82
|
-
brawny/db/sqlite.py,sha256=mNeevi1qWA1RtpsJYpG3pFXX51--6fdYwu60894N_v0,97570
|
|
83
|
-
brawny/db/sqlite_new.py,sha256=n9gS5mQNG5u7E3bA7JqF8ixBBN_LqpNuhcvn6bkaOcA,6434
|
|
84
|
-
brawny/db/migrations/001_init.sql,sha256=ej1svcWEIeeAprV3bIv9ACcKcYAj_stJwJalKRxU504,8291
|
|
85
|
-
brawny/db/migrations/002_add_included_block.sql,sha256=e8w0PABNspPiTY--SunB2K1uBTgPYiB01UuJ-L8Wg-k,204
|
|
86
|
-
brawny/db/migrations/003_add_broadcast_at.sql,sha256=DYqlvuw7Kvphps49UAl-Blau0j80Oh8XKEBjBCShEpk,267
|
|
87
|
-
brawny/db/migrations/004_broadcast_binding.sql,sha256=I6T_AI_aKgkmFcKYPaJua7sU4ZC1A967ykBeHhiFX1Q,884
|
|
88
|
-
brawny/db/migrations/005_add_retry_after.sql,sha256=3dCDnjyRa3y_om_IiJLZGNEzt2JcdA8hRJqIaAXtP2c,273
|
|
89
|
-
brawny/db/migrations/006_add_retry_count_column.sql,sha256=6weoQrcTyiQsbFe1BPvSDyr2f9nq1M_dMhuJbJsmBXw,489
|
|
90
|
-
brawny/db/migrations/007_add_gap_tracking.sql,sha256=SUNXm6j7PtiQa1Tw-Bk_mz0R6BeRxddlMGT08XpKlCs,671
|
|
91
|
-
brawny/db/migrations/008_add_transactions.sql,sha256=yLuuODC3PGR4kueWzmRvQ1bVL8UGn4c1IdzwtChztPE,3023
|
|
92
|
-
brawny/db/migrations/009_add_intent_metadata.sql,sha256=gP61XLMhlqRs0gGHlWim6AjsQeKJz6sRCBAX5INfObU,217
|
|
93
|
-
brawny/db/migrations/010_add_nonce_gap_index.sql,sha256=pRlt3OavdVizK7-9bvaJvTAUqhoBU6WM8y3Xb3Q-yr0,434
|
|
94
|
-
brawny/db/migrations/011_add_job_logs.sql,sha256=REwWRMM2VsuF2GfLcDcyZL-ujhetX-uonmkx6Ccirzk,771
|
|
95
|
-
brawny/db/migrations/012_add_claimed_by.sql,sha256=9Sr-iDrFoWIi5gtg6JjBJ1kJIVytwNjifEWoS0qBDbQ,209
|
|
96
|
-
brawny/db/ops/__init__.py,sha256=dF_bDv6TrYqBX-iM-3EO6zA71r-OybgstAITiCwTZI0,830
|
|
97
|
-
brawny/db/ops/attempts.py,sha256=O9_tsaZ5eDchkbvE07k9cwSgM7_XWae5gERZpERb5QU,3458
|
|
98
|
-
brawny/db/ops/blocks.py,sha256=CUyLi6zk18YXxzBKu_fLXXfeNmywshoXDDphWRvxZDU,2725
|
|
99
|
-
brawny/db/ops/cache.py,sha256=rGN1T8fl3c8mgLNB_EeyKd7zF3uMRbphk3f6Ii1rRkg,2710
|
|
100
|
-
brawny/db/ops/intents.py,sha256=-lyNsKxBNKA42JyRjzFZW18OwPnOa4g3BOx1Pm7q0Vo,9907
|
|
101
|
-
brawny/db/ops/jobs.py,sha256=_DZVENuiqpEpVnuEFTjSFsll8cD57DPxlKFvDpWPI6g,3276
|
|
102
|
-
brawny/db/ops/logs.py,sha256=49Z2G3fArHMK18lh-46uWvwkkoW5MOFXl59alcwdFko,2590
|
|
103
|
-
brawny/db/ops/nonces.py,sha256=ZUjIBoc3pwPLoBiVHNqLsi2qCfIESNO0QTTuC6qzPHU,10122
|
|
104
|
-
brawny/jobs/__init__.py,sha256=tko3VoRTh2YbzOJws0wuYGWQQEgnCQNGqIVldEYU2Po,694
|
|
105
|
-
brawny/jobs/base.py,sha256=0S6_Zlv0cdm08s2wiVYkVrVZKe3j_j_Qx3J5u-R63Bw,9537
|
|
106
|
-
brawny/jobs/discovery.py,sha256=JcjUwj9hDyCn7R_PjUMDxs6k5otdLx_y9gcbV_KUowU,7027
|
|
107
|
-
brawny/jobs/job_validation.py,sha256=PcHwGVhZGQ_bz6q7rTiJM0HVCP5rPXUVkMxjuFhoQrw,3031
|
|
108
|
-
brawny/jobs/kv.py,sha256=jjVgikiqib6NPxOu_pKbtdZ5aFWegVFa9e2Zovo54S4,3527
|
|
109
|
-
brawny/jobs/registry.py,sha256=WlYW4FApqeFje6cTkN9sOFMwOeXomhRRHXkIVCKCpfE,9396
|
|
110
|
-
brawny/model/__init__.py,sha256=8U2gUE20TB6vbFA3M06dsVN0pHVgSIHAYRZoUNVdViw,934
|
|
111
|
-
brawny/model/contexts.py,sha256=2omWbqo69G_J3QRAmMriF2kbEemOjuh6cABa8LgaBRg,10006
|
|
112
|
-
brawny/model/enums.py,sha256=p6xkqY1I7MsBczdMy5eqlxb4RPDYTn77yE9lef5Thh8,1535
|
|
113
|
-
brawny/model/errors.py,sha256=YdPjJ7Fj3-rx4XHteURUT8Pv0pdHhKnwMK1Ub6VLK5E,4522
|
|
114
|
-
brawny/model/events.py,sha256=Hq7zXXXDnhscy_uE4Dq6LYdp7hnFHpyaSWx3XUT6K-I,2496
|
|
115
|
-
brawny/model/startup.py,sha256=PeO5l-q6QPrmW8ibl0X_5hTOu922s9Vs5TKH_QiQRJI,487
|
|
116
|
-
brawny/model/types.py,sha256=NK523jfl4vnIwF5eViKJSxytKgxdZb892mQ6UPknL1Q,14819
|
|
117
|
-
brawny/networks/__init__.py,sha256=vSp4SKrp8W4pKPQ3xgBRBUaSZQ5cKTOOuIs4wy_VRvo,2767
|
|
118
|
-
brawny/networks/config.py,sha256=svx0wabynIUsq1ok2CMOFy6yVqNKW2HeY_uILjH_tWE,9562
|
|
119
|
-
brawny/networks/manager.py,sha256=22Vc8_Ld3EsHySBvJfCxTw8KtzKOYjyIUiQy07PMhLk,15308
|
|
120
|
-
brawny/obs/__init__.py,sha256=LZEUGcvTj5GphlX8r2QZChmjKzyA6Ejps-fPrzfnkNU,1486
|
|
121
|
-
brawny/obs/emit.py,sha256=8splCumkhX3zBYGmKp1DR6v42FDC4IDJ-SCPbRLLLys,4802
|
|
122
|
-
brawny/obs/health.py,sha256=j8SngL9gcjLxQpKZgYe5ILsWAb7zseQm4XLVlTFUqGM,5242
|
|
123
|
-
brawny/obs/heartbeat.py,sha256=QneRoISZ59g1tK6ulb7EpXxhhakzdmkSxKsr53LjSww,3826
|
|
124
|
-
brawny/scheduler/__init__.py,sha256=ecMObpBINPeqhGxR_GT1jhalQwkPS2ct-hphibxAVXk,547
|
|
125
|
-
brawny/scheduler/poller.py,sha256=yavj7QGvckgY2LOVzQgUgAb5Krqu6f4xM-h96yKNsVU,16823
|
|
126
|
-
brawny/scheduler/reorg.py,sha256=j0icKia2eAozbhMAVblTD_zNneEzzM4k8BmO_AlXGv4,23630
|
|
127
|
-
brawny/scheduler/runner.py,sha256=L1bw4yGwF-xmDkAkEjTYgEKyKgkZkVpHVURZv-pOUU4,26599
|
|
128
|
-
brawny/scheduler/shutdown.py,sha256=T3qfNffFTYNr-A4Gsh_gbOC8D9395dl1YCb1TGpcXy4,11444
|
|
129
|
-
brawny/tx/__init__.py,sha256=EAutSKQ5_SHfhmqylgHwqmPHqkJuPFFq0TmF3xCYEgs,1026
|
|
130
|
-
brawny/tx/executor.py,sha256=pB_pbM5tKB5QjKUVhl6BASFfrXwbMAk9hOeIFDimxDw,39527
|
|
131
|
-
brawny/tx/fees.py,sha256=x8LofoFtchD3YsjSLebxzl0M1kMDvHi8usfcOCDZ4Jw,1755
|
|
132
|
-
brawny/tx/intent.py,sha256=M2wIwtioHvSoggoL2lkhK1zD2bij6SDlGrJqqOERF-U,12093
|
|
133
|
-
brawny/tx/monitor.py,sha256=bJT4bj0yKblJikF-_PqqwsPZD8JxGU9D8ySq1al9boY,21508
|
|
134
|
-
brawny/tx/nonce.py,sha256=_opCcRBrScCVRh2q7wjKm_5wBtVIVJQ5pOrkD2Jslxk,16907
|
|
135
|
-
brawny/tx/replacement.py,sha256=IcxkhqIYt4S1TxEzZkxM0M_VbHLp6JRxP_X7nLJHTbM,15344
|
|
136
|
-
brawny/tx/utils.py,sha256=CKoxuqtyFkqgKuTgRCDbV3DwQUlTluPI-dFYSVWml0Q,592
|
|
137
|
-
brawny-0.1.13.dist-info/METADATA,sha256=hR_hxF6F62H29Yb-t-G3uAmwlyqvgvOEMk6gL9J0qbY,4931
|
|
138
|
-
brawny-0.1.13.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
|
139
|
-
brawny-0.1.13.dist-info/entry_points.txt,sha256=hIidVhlON00WJDOrxya-bycfP6Hsml9B2qGlrhZtzbw,43
|
|
140
|
-
brawny-0.1.13.dist-info/top_level.txt,sha256=CjjN4HE-2fk8M8ULl1YgEZz6Ar5LpiYLLC4eLl_HW4Y,7
|
|
141
|
-
brawny-0.1.13.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|