axis-synome 0.1.0.dev32__tar.gz → 0.1.0.dev34__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.
- {axis_synome-0.1.0.dev32 → axis_synome-0.1.0.dev34}/PKG-INFO +1 -1
- {axis_synome-0.1.0.dev32 → axis_synome-0.1.0.dev34}/src/axis_synome/_version.py +2 -2
- axis_synome-0.1.0.dev34/src/axis_synome/spec/asc/entities/alm_proxies.py +209 -0
- {axis_synome-0.1.0.dev32 → axis_synome-0.1.0.dev34}/src/axis_synome/spec/asc/entities/networks.py +2 -0
- {axis_synome-0.1.0.dev32 → axis_synome-0.1.0.dev34}/src/axis_synome/spec/asc/entities/primes.py +4 -0
- {axis_synome-0.1.0.dev32 → axis_synome-0.1.0.dev34}/src/axis_synome.egg-info/PKG-INFO +1 -1
- {axis_synome-0.1.0.dev32 → axis_synome-0.1.0.dev34}/src/axis_synome.egg-info/SOURCES.txt +2 -0
- axis_synome-0.1.0.dev34/tests/axis_synome/asc/test_alm_proxies.py +32 -0
- {axis_synome-0.1.0.dev32 → axis_synome-0.1.0.dev34}/.flake8 +0 -0
- {axis_synome-0.1.0.dev32 → axis_synome-0.1.0.dev34}/README.md +0 -0
- {axis_synome-0.1.0.dev32 → axis_synome-0.1.0.dev34}/WRITING_SPECS.md +0 -0
- {axis_synome-0.1.0.dev32 → axis_synome-0.1.0.dev34}/pyproject.toml +0 -0
- {axis_synome-0.1.0.dev32 → axis_synome-0.1.0.dev34}/setup.cfg +0 -0
- {axis_synome-0.1.0.dev32 → axis_synome-0.1.0.dev34}/src/axis_synome/__init__.py +0 -0
- {axis_synome-0.1.0.dev32 → axis_synome-0.1.0.dev34}/src/axis_synome/spec/__init__.py +0 -0
- {axis_synome-0.1.0.dev32 → axis_synome-0.1.0.dev34}/src/axis_synome/spec/asc/README.md +0 -0
- {axis_synome-0.1.0.dev32 → axis_synome-0.1.0.dev34}/src/axis_synome/spec/asc/entities/__init__.py +0 -0
- {axis_synome-0.1.0.dev32 → axis_synome-0.1.0.dev34}/src/axis_synome/spec/asc/entities/assets.py +0 -0
- {axis_synome-0.1.0.dev32 → axis_synome-0.1.0.dev34}/src/axis_synome/spec/asc/entities/assets_by_prime.py +0 -0
- {axis_synome-0.1.0.dev32 → axis_synome-0.1.0.dev34}/src/axis_synome/spec/asc/entities/protocol_sets.py +0 -0
- {axis_synome-0.1.0.dev32 → axis_synome-0.1.0.dev34}/src/axis_synome/spec/asc/entities/tokens.py +0 -0
- {axis_synome-0.1.0.dev32 → axis_synome-0.1.0.dev34}/src/axis_synome/spec/asc/entities/types.py +0 -0
- {axis_synome-0.1.0.dev32 → axis_synome-0.1.0.dev34}/src/axis_synome/spec/asc/formulas/asc.py +0 -0
- {axis_synome-0.1.0.dev32 → axis_synome-0.1.0.dev34}/src/axis_synome/spec/asc/formulas/asc_collateral_ratio.py +0 -0
- {axis_synome-0.1.0.dev32 → axis_synome-0.1.0.dev34}/src/axis_synome/spec/asc/formulas/asc_incentive.py +0 -0
- {axis_synome-0.1.0.dev32 → axis_synome-0.1.0.dev34}/src/axis_synome/spec/asc/formulas/dab.py +0 -0
- {axis_synome-0.1.0.dev32 → axis_synome-0.1.0.dev34}/src/axis_synome/spec/asc/formulas/latent_asc.py +0 -0
- {axis_synome-0.1.0.dev32 → axis_synome-0.1.0.dev34}/src/axis_synome/spec/asc/formulas/ratio_latent_asc.py +0 -0
- {axis_synome-0.1.0.dev32 → axis_synome-0.1.0.dev34}/src/axis_synome/spec/asc/formulas/resting_asc.py +0 -0
- {axis_synome-0.1.0.dev32 → axis_synome-0.1.0.dev34}/src/axis_synome/spec/codegen_test/entities/agents.py +0 -0
- {axis_synome-0.1.0.dev32 → axis_synome-0.1.0.dev34}/src/axis_synome/spec/crypto_lending/__init__.py +0 -0
- {axis_synome-0.1.0.dev32 → axis_synome-0.1.0.dev34}/src/axis_synome/spec/crypto_lending/formulas/__init__.py +0 -0
- {axis_synome-0.1.0.dev32 → axis_synome-0.1.0.dev34}/src/axis_synome/spec/crypto_lending/formulas/lif.py +0 -0
- {axis_synome-0.1.0.dev32 → axis_synome-0.1.0.dev34}/src/axis_synome/spec/risk_capital/__init__.py +0 -0
- {axis_synome-0.1.0.dev32 → axis_synome-0.1.0.dev34}/src/axis_synome/spec/risk_capital/financial_rrc/__init__.py +0 -0
- {axis_synome-0.1.0.dev32 → axis_synome-0.1.0.dev34}/src/axis_synome/spec/risk_capital/financial_rrc/entities.py +0 -0
- {axis_synome-0.1.0.dev32 → axis_synome-0.1.0.dev34}/src/axis_synome/spec/risk_capital/financial_rrc/perpetual_positions.py +0 -0
- {axis_synome-0.1.0.dev32 → axis_synome-0.1.0.dev34}/src/axis_synome/spec/risk_capital/formulas/__init__.py +0 -0
- {axis_synome-0.1.0.dev32 → axis_synome-0.1.0.dev34}/src/axis_synome/spec/risk_capital/formulas/required_risk_capital.py +0 -0
- {axis_synome-0.1.0.dev32 → axis_synome-0.1.0.dev34}/src/axis_synome/spec/suraf/README.md +0 -0
- {axis_synome-0.1.0.dev32 → axis_synome-0.1.0.dev34}/src/axis_synome/spec/suraf/entities/assessor_score.py +0 -0
- {axis_synome-0.1.0.dev32 → axis_synome-0.1.0.dev34}/src/axis_synome/spec/suraf/entities/assets.py +0 -0
- {axis_synome-0.1.0.dev32 → axis_synome-0.1.0.dev34}/src/axis_synome/spec/suraf/entities/mappings.py +0 -0
- {axis_synome-0.1.0.dev32 → axis_synome-0.1.0.dev34}/src/axis_synome/spec/suraf/formulas/crr.py +0 -0
- {axis_synome-0.1.0.dev32 → axis_synome-0.1.0.dev34}/src/axis_synome/spec/suraf/formulas/scoring.py +0 -0
- {axis_synome-0.1.0.dev32 → axis_synome-0.1.0.dev34}/src/axis_synome/spec_support/__init__.py +0 -0
- {axis_synome-0.1.0.dev32 → axis_synome-0.1.0.dev34}/src/axis_synome/spec_support/evm_address.py +0 -0
- {axis_synome-0.1.0.dev32 → axis_synome-0.1.0.dev34}/src/axis_synome/spec_support/pendle_validation.py +0 -0
- {axis_synome-0.1.0.dev32 → axis_synome-0.1.0.dev34}/src/axis_synome/spec_support/runtime/__init__.py +0 -0
- {axis_synome-0.1.0.dev32 → axis_synome-0.1.0.dev34}/src/axis_synome/spec_support/runtime/base.py +0 -0
- {axis_synome-0.1.0.dev32 → axis_synome-0.1.0.dev34}/src/axis_synome/spec_support/runtime/math.py +0 -0
- {axis_synome-0.1.0.dev32 → axis_synome-0.1.0.dev34}/src/axis_synome/spec_support/runtime/reference.py +0 -0
- {axis_synome-0.1.0.dev32 → axis_synome-0.1.0.dev34}/src/axis_synome/spec_support/validated_dataclass.py +0 -0
- {axis_synome-0.1.0.dev32 → axis_synome-0.1.0.dev34}/src/axis_synome/spec_support/validated_str.py +0 -0
- {axis_synome-0.1.0.dev32 → axis_synome-0.1.0.dev34}/src/axis_synome/spec_validator/__init__.py +0 -0
- {axis_synome-0.1.0.dev32 → axis_synome-0.1.0.dev34}/src/axis_synome/spec_validator/checker.py +0 -0
- {axis_synome-0.1.0.dev32 → axis_synome-0.1.0.dev34}/src/axis_synome/spec_validator/flake8_plugin.py +0 -0
- {axis_synome-0.1.0.dev32 → axis_synome-0.1.0.dev34}/src/axis_synome/spec_validator/python_subset.py +0 -0
- {axis_synome-0.1.0.dev32 → axis_synome-0.1.0.dev34}/src/axis_synome.egg-info/dependency_links.txt +0 -0
- {axis_synome-0.1.0.dev32 → axis_synome-0.1.0.dev34}/src/axis_synome.egg-info/entry_points.txt +0 -0
- {axis_synome-0.1.0.dev32 → axis_synome-0.1.0.dev34}/src/axis_synome.egg-info/requires.txt +0 -0
- {axis_synome-0.1.0.dev32 → axis_synome-0.1.0.dev34}/src/axis_synome.egg-info/top_level.txt +0 -0
- {axis_synome-0.1.0.dev32 → axis_synome-0.1.0.dev34}/tests/axis_synome/asc/__init__.py +0 -0
- {axis_synome-0.1.0.dev32 → axis_synome-0.1.0.dev34}/tests/axis_synome/asc/conftest.py +0 -0
- {axis_synome-0.1.0.dev32 → axis_synome-0.1.0.dev34}/tests/axis_synome/asc/mocks.py +0 -0
- {axis_synome-0.1.0.dev32 → axis_synome-0.1.0.dev34}/tests/axis_synome/asc/test_asc.py +0 -0
- {axis_synome-0.1.0.dev32 → axis_synome-0.1.0.dev34}/tests/axis_synome/asc/test_asc_collateral_ratio.py +0 -0
- {axis_synome-0.1.0.dev32 → axis_synome-0.1.0.dev34}/tests/axis_synome/asc/test_asc_incentive.py +0 -0
- {axis_synome-0.1.0.dev32 → axis_synome-0.1.0.dev34}/tests/axis_synome/asc/test_dab.py +0 -0
- {axis_synome-0.1.0.dev32 → axis_synome-0.1.0.dev34}/tests/axis_synome/asc/test_evm_address.py +0 -0
- {axis_synome-0.1.0.dev32 → axis_synome-0.1.0.dev34}/tests/axis_synome/asc/test_latent_asc.py +0 -0
- {axis_synome-0.1.0.dev32 → axis_synome-0.1.0.dev34}/tests/axis_synome/asc/test_prime_agent_data_validation.py +0 -0
- {axis_synome-0.1.0.dev32 → axis_synome-0.1.0.dev34}/tests/axis_synome/asc/test_ratio_latent_asc.py +0 -0
- {axis_synome-0.1.0.dev32 → axis_synome-0.1.0.dev34}/tests/axis_synome/asc/test_resting_asc.py +0 -0
- {axis_synome-0.1.0.dev32 → axis_synome-0.1.0.dev34}/tests/axis_synome/risk_capital/__init__.py +0 -0
- {axis_synome-0.1.0.dev32 → axis_synome-0.1.0.dev34}/tests/axis_synome/risk_capital/financial_rrc/__init__.py +0 -0
- {axis_synome-0.1.0.dev32 → axis_synome-0.1.0.dev34}/tests/axis_synome/risk_capital/financial_rrc/test_perpetual_positions.py +0 -0
- {axis_synome-0.1.0.dev32 → axis_synome-0.1.0.dev34}/tests/axis_synome/risk_capital/formulas/__init__.py +0 -0
- {axis_synome-0.1.0.dev32 → axis_synome-0.1.0.dev34}/tests/axis_synome/risk_capital/formulas/test_loss_given_default.py +0 -0
- {axis_synome-0.1.0.dev32 → axis_synome-0.1.0.dev34}/tests/axis_synome/spec_support/__init__.py +0 -0
- {axis_synome-0.1.0.dev32 → axis_synome-0.1.0.dev34}/tests/axis_synome/spec_support/runtime/__init__.py +0 -0
- {axis_synome-0.1.0.dev32 → axis_synome-0.1.0.dev34}/tests/axis_synome/spec_support/runtime/test_base.py +0 -0
- {axis_synome-0.1.0.dev32 → axis_synome-0.1.0.dev34}/tests/axis_synome/spec_support/runtime/test_math.py +0 -0
- {axis_synome-0.1.0.dev32 → axis_synome-0.1.0.dev34}/tests/axis_synome/spec_validator/test_checker.py +0 -0
- {axis_synome-0.1.0.dev32 → axis_synome-0.1.0.dev34}/tests/axis_synome/spec_validator/test_flake8_plugin.py +0 -0
- {axis_synome-0.1.0.dev32 → axis_synome-0.1.0.dev34}/tests/axis_synome/suraf/__init__.py +0 -0
- {axis_synome-0.1.0.dev32 → axis_synome-0.1.0.dev34}/tests/axis_synome/suraf/entities/__init__.py +0 -0
- {axis_synome-0.1.0.dev32 → axis_synome-0.1.0.dev34}/tests/axis_synome/suraf/entities/test_assessor_score.py +0 -0
- {axis_synome-0.1.0.dev32 → axis_synome-0.1.0.dev34}/tests/axis_synome/suraf/formulas/__init__.py +0 -0
- {axis_synome-0.1.0.dev32 → axis_synome-0.1.0.dev34}/tests/axis_synome/suraf/formulas/test_crr.py +0 -0
- {axis_synome-0.1.0.dev32 → axis_synome-0.1.0.dev34}/tests/axis_synome/suraf/formulas/test_scoring.py +0 -0
- {axis_synome-0.1.0.dev32 → axis_synome-0.1.0.dev34}/tests/axis_synome/suraf/static/aave_ausdc/v1/crr_mapping.csv +0 -0
- {axis_synome-0.1.0.dev32 → axis_synome-0.1.0.dev34}/tests/axis_synome/suraf/static/aave_ausdc/v1/penalty.csv +0 -0
- {axis_synome-0.1.0.dev32 → axis_synome-0.1.0.dev34}/tests/axis_synome/suraf/static/aave_ausdc/v1/scorecards/Assessor_1_scores.csv +0 -0
- {axis_synome-0.1.0.dev32 → axis_synome-0.1.0.dev34}/tests/axis_synome/suraf/static/aave_ausdc/v1/scorecards/Assessor_2_scores.csv +0 -0
- {axis_synome-0.1.0.dev32 → axis_synome-0.1.0.dev34}/tests/axis_synome/suraf/static/aave_ausdc/v1/scorecards/Assessor_3_scores.csv +0 -0
- {axis_synome-0.1.0.dev32 → axis_synome-0.1.0.dev34}/tests/axis_synome/suraf/static/aave_ausdc/v1/weights.csv +0 -0
- {axis_synome-0.1.0.dev32 → axis_synome-0.1.0.dev34}/tests/axis_synome/suraf/suraf_client/__init__.py +0 -0
- {axis_synome-0.1.0.dev32 → axis_synome-0.1.0.dev34}/tests/axis_synome/suraf/suraf_client/suraf_client.py +0 -0
- {axis_synome-0.1.0.dev32 → axis_synome-0.1.0.dev34}/tests/axis_synome/suraf/suraf_client/test_suraf_client.py +0 -0
- {axis_synome-0.1.0.dev32 → axis_synome-0.1.0.dev34}/uv.lock +0 -0
|
@@ -18,7 +18,7 @@ version_tuple: tuple[int | str, ...]
|
|
|
18
18
|
commit_id: str | None
|
|
19
19
|
__commit_id__: str | None
|
|
20
20
|
|
|
21
|
-
__version__ = version = '0.1.0.
|
|
22
|
-
__version_tuple__ = version_tuple = (0, 1, 0, '
|
|
21
|
+
__version__ = version = '0.1.0.dev34'
|
|
22
|
+
__version_tuple__ = version_tuple = (0, 1, 0, 'dev34')
|
|
23
23
|
|
|
24
24
|
__commit_id__ = commit_id = None
|
|
@@ -0,0 +1,209 @@
|
|
|
1
|
+
"""ALM Proxy contract deployments per (Prime, Network).
|
|
2
|
+
|
|
3
|
+
The ALM Proxy is the contract authorised to allocate liquidity for a Sky Star
|
|
4
|
+
(Prime) on a given chain. Each deployment is defined as a ``Final`` constant
|
|
5
|
+
carrying its Atlas provenance via a ``:source_uuid:`` docstring marker; the
|
|
6
|
+
``AlmProxy`` enum at the bottom of the module aggregates the constants into
|
|
7
|
+
a closed-world set for graph traversal.
|
|
8
|
+
|
|
9
|
+
The set below is the union of (a) entries currently approved in the Sky
|
|
10
|
+
Atlas — each constant's ``:source_uuid:`` is the authoritative reference to
|
|
11
|
+
the Atlas document — and (b) entries used by downstream consumers that
|
|
12
|
+
maintain their own hard-coded allocation tracker config. Where the two
|
|
13
|
+
disagree the divergence is documented in the constant's docstring. The
|
|
14
|
+
Atlas is the governance source of truth; entries that exist only on the
|
|
15
|
+
consumer side are kept so that axis_synome remains a superset that those
|
|
16
|
+
consumers can pull from.
|
|
17
|
+
"""
|
|
18
|
+
|
|
19
|
+
from enum import Enum
|
|
20
|
+
from typing import Final
|
|
21
|
+
|
|
22
|
+
from axis_synome.spec.asc.entities.networks import Network
|
|
23
|
+
from axis_synome.spec.asc.entities.primes import PrimeAgent
|
|
24
|
+
from axis_synome.spec_support.evm_address import EvmAddress
|
|
25
|
+
from axis_synome.spec_support.validated_dataclass import validated_dataclass
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
@validated_dataclass
|
|
29
|
+
class AlmProxyDeployment:
|
|
30
|
+
"""A Sky Star's ALM Proxy contract deployment on a specific network."""
|
|
31
|
+
|
|
32
|
+
prime: PrimeAgent
|
|
33
|
+
network: Network
|
|
34
|
+
address: EvmAddress
|
|
35
|
+
|
|
36
|
+
|
|
37
|
+
# --- Spark (Atlas ALM Contracts parent :source_uuid: 7db865de-8519-464b-8752-f39ecaf54fd2) ---
|
|
38
|
+
|
|
39
|
+
SPARK_ETHEREUM_MAINNET_ALM_PROXY: Final[AlmProxyDeployment] = AlmProxyDeployment(
|
|
40
|
+
prime=PrimeAgent.SPARK,
|
|
41
|
+
network=Network.ETHEREUM_MAINNET,
|
|
42
|
+
address=EvmAddress("0x1601843c5E9bC251A3272907010AFa41Fa18347E"),
|
|
43
|
+
)
|
|
44
|
+
"""ALM Proxy contract deployment for Spark on Ethereum Mainnet.
|
|
45
|
+
|
|
46
|
+
:source_uuid: a29a6751-4809-446c-a659-0dd93ca40379
|
|
47
|
+
"""
|
|
48
|
+
|
|
49
|
+
|
|
50
|
+
SPARK_BASE_ALM_PROXY: Final[AlmProxyDeployment] = AlmProxyDeployment(
|
|
51
|
+
prime=PrimeAgent.SPARK,
|
|
52
|
+
network=Network.BASE,
|
|
53
|
+
address=EvmAddress("0x2917956eFF0B5eaF030abDB4EF4296DF775009cA"),
|
|
54
|
+
)
|
|
55
|
+
"""ALM Proxy contract deployment for Spark on Base.
|
|
56
|
+
|
|
57
|
+
:source_uuid: 425339ce-8e44-430b-ab8c-6c69f0b757e9
|
|
58
|
+
"""
|
|
59
|
+
|
|
60
|
+
|
|
61
|
+
SPARK_ARBITRUM_ALM_PROXY: Final[AlmProxyDeployment] = AlmProxyDeployment(
|
|
62
|
+
prime=PrimeAgent.SPARK,
|
|
63
|
+
network=Network.ARBITRUM,
|
|
64
|
+
address=EvmAddress("0x92afd6F2385a90e44da3a8B60fe36f6cBe1D8709"),
|
|
65
|
+
)
|
|
66
|
+
"""ALM Proxy contract deployment for Spark on Arbitrum.
|
|
67
|
+
|
|
68
|
+
:source_uuid: c671b407-fcb2-48eb-8217-2ec156b581ad
|
|
69
|
+
"""
|
|
70
|
+
|
|
71
|
+
|
|
72
|
+
SPARK_UNICHAIN_ALM_PROXY: Final[AlmProxyDeployment] = AlmProxyDeployment(
|
|
73
|
+
prime=PrimeAgent.SPARK,
|
|
74
|
+
network=Network.UNICHAIN,
|
|
75
|
+
address=EvmAddress("0x345E368fcCd62266B3f5F37C9a131FD1c39f5869"),
|
|
76
|
+
)
|
|
77
|
+
"""ALM Proxy contract deployment for Spark on Unichain.
|
|
78
|
+
|
|
79
|
+
:source_uuid: 6affe08d-0c1c-4cbf-a100-4a04c58220bb
|
|
80
|
+
"""
|
|
81
|
+
|
|
82
|
+
|
|
83
|
+
SPARK_OPTIMISM_ALM_PROXY: Final[AlmProxyDeployment] = AlmProxyDeployment(
|
|
84
|
+
prime=PrimeAgent.SPARK,
|
|
85
|
+
network=Network.OPTIMISM,
|
|
86
|
+
address=EvmAddress("0x876664f0c9Ff24D1aa355Ce9f1680AE1A5bf36fB"),
|
|
87
|
+
)
|
|
88
|
+
"""ALM Proxy contract deployment for Spark on Optimism.
|
|
89
|
+
|
|
90
|
+
:source_uuid: f1895dfc-a18c-4009-bfd3-1c16c9a62092
|
|
91
|
+
"""
|
|
92
|
+
|
|
93
|
+
|
|
94
|
+
SPARK_AVALANCHE_ALM_PROXY: Final[AlmProxyDeployment] = AlmProxyDeployment(
|
|
95
|
+
prime=PrimeAgent.SPARK,
|
|
96
|
+
network=Network.AVALANCHE,
|
|
97
|
+
address=EvmAddress("0xecE6B0E8a54c2f44e066fBb9234e7157B15b7FeC"),
|
|
98
|
+
)
|
|
99
|
+
"""ALM Proxy contract deployment for Spark on Avalanche.
|
|
100
|
+
|
|
101
|
+
Discrepancy: the Atlas document below records the address as ``TBD`` while
|
|
102
|
+
sentinel stl-verify config.go already uses the address encoded above. The
|
|
103
|
+
``:source_uuid:`` still points at the Atlas document so the entry remains
|
|
104
|
+
auditable once the Atlas value is filled in.
|
|
105
|
+
|
|
106
|
+
:source_uuid: 179f186a-079b-4663-b06c-b21f9dec85ca
|
|
107
|
+
"""
|
|
108
|
+
|
|
109
|
+
|
|
110
|
+
# --- Grove (Atlas ALM Contracts parent :source_uuid: f233a46b-8dff-4335-8ccf-dc3f1c18a96f) ---
|
|
111
|
+
|
|
112
|
+
GROVE_ETHEREUM_MAINNET_ALM_PROXY: Final[AlmProxyDeployment] = AlmProxyDeployment(
|
|
113
|
+
prime=PrimeAgent.GROVE,
|
|
114
|
+
network=Network.ETHEREUM_MAINNET,
|
|
115
|
+
address=EvmAddress("0x491EDFB0B8b608044e227225C715981a30F3A44E"),
|
|
116
|
+
)
|
|
117
|
+
"""ALM Proxy contract deployment for Grove on Ethereum Mainnet.
|
|
118
|
+
|
|
119
|
+
:source_uuid: fda13ac2-b3ed-4b2a-9be6-9247632dafe3
|
|
120
|
+
"""
|
|
121
|
+
|
|
122
|
+
|
|
123
|
+
GROVE_AVALANCHE_ALM_PROXY: Final[AlmProxyDeployment] = AlmProxyDeployment(
|
|
124
|
+
prime=PrimeAgent.GROVE,
|
|
125
|
+
network=Network.AVALANCHE,
|
|
126
|
+
address=EvmAddress("0x7107DD8F56642327945294a18A4280C78e153644"),
|
|
127
|
+
)
|
|
128
|
+
"""ALM Proxy contract deployment for Grove on Avalanche.
|
|
129
|
+
|
|
130
|
+
:source_uuid: 0704f4b5-ee5c-455c-932f-94591b8a6594
|
|
131
|
+
"""
|
|
132
|
+
|
|
133
|
+
|
|
134
|
+
GROVE_BASE_ALM_PROXY: Final[AlmProxyDeployment] = AlmProxyDeployment(
|
|
135
|
+
prime=PrimeAgent.GROVE,
|
|
136
|
+
network=Network.BASE,
|
|
137
|
+
address=EvmAddress("0x9B746dBC5269e1DF6e4193Bcb441C0FbBF1CeCEe"),
|
|
138
|
+
)
|
|
139
|
+
"""ALM Proxy contract deployment for Grove on Base.
|
|
140
|
+
|
|
141
|
+
Discrepancy: sentinel stl-verify config.go does not currently include this
|
|
142
|
+
deployment; the address below is sourced from the Atlas document referenced
|
|
143
|
+
by ``:source_uuid:`` and should be added to the Go side.
|
|
144
|
+
|
|
145
|
+
:source_uuid: 5c382a94-ce36-4ffa-862b-4718382450fe
|
|
146
|
+
"""
|
|
147
|
+
|
|
148
|
+
|
|
149
|
+
GROVE_PLASMA_ALM_PROXY: Final[AlmProxyDeployment] = AlmProxyDeployment(
|
|
150
|
+
prime=PrimeAgent.GROVE,
|
|
151
|
+
network=Network.PLASMA,
|
|
152
|
+
address=EvmAddress("0x0C462Fff7Cc975bC9F2B0aEB8270febA5FD71e1B"),
|
|
153
|
+
)
|
|
154
|
+
"""ALM Proxy contract deployment for Grove on Plasma.
|
|
155
|
+
|
|
156
|
+
Discrepancy: sentinel stl-verify config.go does not currently include this
|
|
157
|
+
deployment; the address below is sourced from the Atlas document referenced
|
|
158
|
+
by ``:source_uuid:`` and should be added to the Go side.
|
|
159
|
+
|
|
160
|
+
:source_uuid: 9d0bcc23-02d4-4389-9c85-707acf900dee
|
|
161
|
+
"""
|
|
162
|
+
|
|
163
|
+
|
|
164
|
+
GROVE_PLUME_ALM_PROXY: Final[AlmProxyDeployment] = AlmProxyDeployment(
|
|
165
|
+
prime=PrimeAgent.GROVE,
|
|
166
|
+
network=Network.PLUME,
|
|
167
|
+
address=EvmAddress("0x1DB91ad50446a671e2231f77e00948E68876F812"),
|
|
168
|
+
)
|
|
169
|
+
"""ALM Proxy contract deployment for Grove on Plume.
|
|
170
|
+
|
|
171
|
+
:source_uuid: dcf0beac-b93e-41a7-b8b6-98c1d4cc819b
|
|
172
|
+
"""
|
|
173
|
+
|
|
174
|
+
|
|
175
|
+
GROVE_MONAD_ALM_PROXY: Final[AlmProxyDeployment] = AlmProxyDeployment(
|
|
176
|
+
prime=PrimeAgent.GROVE,
|
|
177
|
+
network=Network.MONAD,
|
|
178
|
+
address=EvmAddress("0x94B398ACb2fcE988871218221EA6a4a2b26CcCbC"),
|
|
179
|
+
)
|
|
180
|
+
"""ALM Proxy contract deployment for Grove on Monad.
|
|
181
|
+
|
|
182
|
+
Discrepancy: no Atlas ALM Proxy Contract document exists for Grove on Monad
|
|
183
|
+
yet, so ``:source_uuid:`` is omitted. The address is sourced from sentinel
|
|
184
|
+
stl-verify config.go and should be backfilled in the Atlas.
|
|
185
|
+
"""
|
|
186
|
+
|
|
187
|
+
|
|
188
|
+
class AlmProxy(Enum):
|
|
189
|
+
"""Closed-world set of all known ALM Proxy deployments.
|
|
190
|
+
|
|
191
|
+
Each member's value is one of the ``Final[AlmProxyDeployment]`` constants
|
|
192
|
+
defined above. The constants carry the canonical ``:source_uuid:`` markers
|
|
193
|
+
used by the synome formula extractor; this enum exists so that downstream
|
|
194
|
+
consumers can traverse the deployments as a closed set.
|
|
195
|
+
"""
|
|
196
|
+
|
|
197
|
+
SPARK_ETHEREUM_MAINNET = SPARK_ETHEREUM_MAINNET_ALM_PROXY
|
|
198
|
+
SPARK_BASE = SPARK_BASE_ALM_PROXY
|
|
199
|
+
SPARK_ARBITRUM = SPARK_ARBITRUM_ALM_PROXY
|
|
200
|
+
SPARK_UNICHAIN = SPARK_UNICHAIN_ALM_PROXY
|
|
201
|
+
SPARK_OPTIMISM = SPARK_OPTIMISM_ALM_PROXY
|
|
202
|
+
SPARK_AVALANCHE = SPARK_AVALANCHE_ALM_PROXY
|
|
203
|
+
|
|
204
|
+
GROVE_ETHEREUM_MAINNET = GROVE_ETHEREUM_MAINNET_ALM_PROXY
|
|
205
|
+
GROVE_AVALANCHE = GROVE_AVALANCHE_ALM_PROXY
|
|
206
|
+
GROVE_BASE = GROVE_BASE_ALM_PROXY
|
|
207
|
+
GROVE_PLASMA = GROVE_PLASMA_ALM_PROXY
|
|
208
|
+
GROVE_PLUME = GROVE_PLUME_ALM_PROXY
|
|
209
|
+
GROVE_MONAD = GROVE_MONAD_ALM_PROXY
|
{axis_synome-0.1.0.dev32 → axis_synome-0.1.0.dev34}/src/axis_synome/spec/asc/entities/primes.py
RENAMED
|
@@ -39,6 +39,8 @@ class PrimeAgent(Enum):
|
|
|
39
39
|
Network.AVALANCHE,
|
|
40
40
|
Network.BASE,
|
|
41
41
|
Network.ETHEREUM_MAINNET,
|
|
42
|
+
Network.OPTIMISM,
|
|
43
|
+
Network.UNICHAIN,
|
|
42
44
|
},
|
|
43
45
|
)
|
|
44
46
|
GROVE = PrimeAgentData(
|
|
@@ -51,6 +53,8 @@ class PrimeAgent(Enum):
|
|
|
51
53
|
Network.BASE,
|
|
52
54
|
Network.ETHEREUM_MAINNET,
|
|
53
55
|
Network.PLASMA,
|
|
56
|
+
Network.PLUME,
|
|
57
|
+
Network.MONAD,
|
|
54
58
|
},
|
|
55
59
|
)
|
|
56
60
|
KEEL = PrimeAgentData(
|
|
@@ -14,6 +14,7 @@ src/axis_synome.egg-info/top_level.txt
|
|
|
14
14
|
src/axis_synome/spec/__init__.py
|
|
15
15
|
src/axis_synome/spec/asc/README.md
|
|
16
16
|
src/axis_synome/spec/asc/entities/__init__.py
|
|
17
|
+
src/axis_synome/spec/asc/entities/alm_proxies.py
|
|
17
18
|
src/axis_synome/spec/asc/entities/assets.py
|
|
18
19
|
src/axis_synome/spec/asc/entities/assets_by_prime.py
|
|
19
20
|
src/axis_synome/spec/asc/entities/networks.py
|
|
@@ -60,6 +61,7 @@ src/axis_synome/spec_validator/python_subset.py
|
|
|
60
61
|
tests/axis_synome/asc/__init__.py
|
|
61
62
|
tests/axis_synome/asc/conftest.py
|
|
62
63
|
tests/axis_synome/asc/mocks.py
|
|
64
|
+
tests/axis_synome/asc/test_alm_proxies.py
|
|
63
65
|
tests/axis_synome/asc/test_asc.py
|
|
64
66
|
tests/axis_synome/asc/test_asc_collateral_ratio.py
|
|
65
67
|
tests/axis_synome/asc/test_asc_incentive.py
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
"""Tests for ALM Proxy deployment entities."""
|
|
2
|
+
|
|
3
|
+
from axis_synome.spec.asc.entities.alm_proxies import AlmProxy, AlmProxyDeployment
|
|
4
|
+
from axis_synome.spec.asc.entities.primes import PrimeAgent
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
class TestAlmProxyEnum:
|
|
8
|
+
def test_imports_and_constructs(self) -> None:
|
|
9
|
+
# Importing the module triggers EIP-55 validation on every member, so
|
|
10
|
+
# reaching this point means all addresses are well-formed checksums.
|
|
11
|
+
assert len(list(AlmProxy)) == 12
|
|
12
|
+
|
|
13
|
+
def test_unique_prime_network_pairs(self) -> None:
|
|
14
|
+
pairs = {(m.value.prime, m.value.network) for m in AlmProxy}
|
|
15
|
+
assert len(pairs) == len(list(AlmProxy))
|
|
16
|
+
|
|
17
|
+
def test_each_member_payload_is_deployment(self) -> None:
|
|
18
|
+
for member in AlmProxy:
|
|
19
|
+
assert isinstance(member.value, AlmProxyDeployment)
|
|
20
|
+
|
|
21
|
+
def test_deployment_networks_match_prime_networks(self) -> None:
|
|
22
|
+
# Every deployment's network must be declared on its prime's network set.
|
|
23
|
+
for member in AlmProxy:
|
|
24
|
+
dep = member.value
|
|
25
|
+
assert dep.network in dep.prime.value.networks, (
|
|
26
|
+
f"{member.name}: {dep.network} not in {dep.prime.name}.networks"
|
|
27
|
+
)
|
|
28
|
+
|
|
29
|
+
def test_covers_both_active_primes(self) -> None:
|
|
30
|
+
primes = {m.value.prime for m in AlmProxy}
|
|
31
|
+
assert PrimeAgent.SPARK in primes
|
|
32
|
+
assert PrimeAgent.GROVE in primes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{axis_synome-0.1.0.dev32 → axis_synome-0.1.0.dev34}/src/axis_synome/spec/asc/entities/__init__.py
RENAMED
|
File without changes
|
{axis_synome-0.1.0.dev32 → axis_synome-0.1.0.dev34}/src/axis_synome/spec/asc/entities/assets.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{axis_synome-0.1.0.dev32 → axis_synome-0.1.0.dev34}/src/axis_synome/spec/asc/entities/tokens.py
RENAMED
|
File without changes
|
{axis_synome-0.1.0.dev32 → axis_synome-0.1.0.dev34}/src/axis_synome/spec/asc/entities/types.py
RENAMED
|
File without changes
|
{axis_synome-0.1.0.dev32 → axis_synome-0.1.0.dev34}/src/axis_synome/spec/asc/formulas/asc.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{axis_synome-0.1.0.dev32 → axis_synome-0.1.0.dev34}/src/axis_synome/spec/asc/formulas/dab.py
RENAMED
|
File without changes
|
{axis_synome-0.1.0.dev32 → axis_synome-0.1.0.dev34}/src/axis_synome/spec/asc/formulas/latent_asc.py
RENAMED
|
File without changes
|
|
File without changes
|
{axis_synome-0.1.0.dev32 → axis_synome-0.1.0.dev34}/src/axis_synome/spec/asc/formulas/resting_asc.py
RENAMED
|
File without changes
|
|
File without changes
|
{axis_synome-0.1.0.dev32 → axis_synome-0.1.0.dev34}/src/axis_synome/spec/crypto_lending/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{axis_synome-0.1.0.dev32 → axis_synome-0.1.0.dev34}/src/axis_synome/spec/risk_capital/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{axis_synome-0.1.0.dev32 → axis_synome-0.1.0.dev34}/src/axis_synome/spec/suraf/entities/assets.py
RENAMED
|
File without changes
|
{axis_synome-0.1.0.dev32 → axis_synome-0.1.0.dev34}/src/axis_synome/spec/suraf/entities/mappings.py
RENAMED
|
File without changes
|
{axis_synome-0.1.0.dev32 → axis_synome-0.1.0.dev34}/src/axis_synome/spec/suraf/formulas/crr.py
RENAMED
|
File without changes
|
{axis_synome-0.1.0.dev32 → axis_synome-0.1.0.dev34}/src/axis_synome/spec/suraf/formulas/scoring.py
RENAMED
|
File without changes
|
{axis_synome-0.1.0.dev32 → axis_synome-0.1.0.dev34}/src/axis_synome/spec_support/__init__.py
RENAMED
|
File without changes
|
{axis_synome-0.1.0.dev32 → axis_synome-0.1.0.dev34}/src/axis_synome/spec_support/evm_address.py
RENAMED
|
File without changes
|
|
File without changes
|
{axis_synome-0.1.0.dev32 → axis_synome-0.1.0.dev34}/src/axis_synome/spec_support/runtime/__init__.py
RENAMED
|
File without changes
|
{axis_synome-0.1.0.dev32 → axis_synome-0.1.0.dev34}/src/axis_synome/spec_support/runtime/base.py
RENAMED
|
File without changes
|
{axis_synome-0.1.0.dev32 → axis_synome-0.1.0.dev34}/src/axis_synome/spec_support/runtime/math.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{axis_synome-0.1.0.dev32 → axis_synome-0.1.0.dev34}/src/axis_synome/spec_support/validated_str.py
RENAMED
|
File without changes
|
{axis_synome-0.1.0.dev32 → axis_synome-0.1.0.dev34}/src/axis_synome/spec_validator/__init__.py
RENAMED
|
File without changes
|
{axis_synome-0.1.0.dev32 → axis_synome-0.1.0.dev34}/src/axis_synome/spec_validator/checker.py
RENAMED
|
File without changes
|
{axis_synome-0.1.0.dev32 → axis_synome-0.1.0.dev34}/src/axis_synome/spec_validator/flake8_plugin.py
RENAMED
|
File without changes
|
{axis_synome-0.1.0.dev32 → axis_synome-0.1.0.dev34}/src/axis_synome/spec_validator/python_subset.py
RENAMED
|
File without changes
|
{axis_synome-0.1.0.dev32 → axis_synome-0.1.0.dev34}/src/axis_synome.egg-info/dependency_links.txt
RENAMED
|
File without changes
|
{axis_synome-0.1.0.dev32 → axis_synome-0.1.0.dev34}/src/axis_synome.egg-info/entry_points.txt
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{axis_synome-0.1.0.dev32 → axis_synome-0.1.0.dev34}/tests/axis_synome/asc/test_asc_incentive.py
RENAMED
|
File without changes
|
|
File without changes
|
{axis_synome-0.1.0.dev32 → axis_synome-0.1.0.dev34}/tests/axis_synome/asc/test_evm_address.py
RENAMED
|
File without changes
|
{axis_synome-0.1.0.dev32 → axis_synome-0.1.0.dev34}/tests/axis_synome/asc/test_latent_asc.py
RENAMED
|
File without changes
|
|
File without changes
|
{axis_synome-0.1.0.dev32 → axis_synome-0.1.0.dev34}/tests/axis_synome/asc/test_ratio_latent_asc.py
RENAMED
|
File without changes
|
{axis_synome-0.1.0.dev32 → axis_synome-0.1.0.dev34}/tests/axis_synome/asc/test_resting_asc.py
RENAMED
|
File without changes
|
{axis_synome-0.1.0.dev32 → axis_synome-0.1.0.dev34}/tests/axis_synome/risk_capital/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{axis_synome-0.1.0.dev32 → axis_synome-0.1.0.dev34}/tests/axis_synome/spec_support/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{axis_synome-0.1.0.dev32 → axis_synome-0.1.0.dev34}/tests/axis_synome/spec_validator/test_checker.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{axis_synome-0.1.0.dev32 → axis_synome-0.1.0.dev34}/tests/axis_synome/suraf/entities/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
{axis_synome-0.1.0.dev32 → axis_synome-0.1.0.dev34}/tests/axis_synome/suraf/formulas/__init__.py
RENAMED
|
File without changes
|
{axis_synome-0.1.0.dev32 → axis_synome-0.1.0.dev34}/tests/axis_synome/suraf/formulas/test_crr.py
RENAMED
|
File without changes
|
{axis_synome-0.1.0.dev32 → axis_synome-0.1.0.dev34}/tests/axis_synome/suraf/formulas/test_scoring.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{axis_synome-0.1.0.dev32 → axis_synome-0.1.0.dev34}/tests/axis_synome/suraf/suraf_client/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|