strideutils 0.3.13__tar.gz → 0.3.15__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.
- {strideutils-0.3.13 → strideutils-0.3.15}/PKG-INFO +1 -1
- {strideutils-0.3.13 → strideutils-0.3.15}/pyproject.toml +1 -1
- {strideutils-0.3.13 → strideutils-0.3.15}/strideutils/stride_config.py +2 -0
- {strideutils-0.3.13 → strideutils-0.3.15}/strideutils/stride_requests.py +30 -1
- {strideutils-0.3.13 → strideutils-0.3.15}/README.md +0 -0
- {strideutils-0.3.13 → strideutils-0.3.15}/strideutils/Makefile +0 -0
- {strideutils-0.3.13 → strideutils-0.3.15}/strideutils/__init__.py +0 -0
- {strideutils-0.3.13 → strideutils-0.3.15}/strideutils/coingecko.py +0 -0
- {strideutils-0.3.13 → strideutils-0.3.15}/strideutils/config_examples/strideutils_config.yaml.example +0 -0
- {strideutils-0.3.13 → strideutils-0.3.15}/strideutils/config_examples/strideutils_secrets.yaml.example +0 -0
- {strideutils-0.3.13 → strideutils-0.3.15}/strideutils/cryptography.py +0 -0
- {strideutils-0.3.13 → strideutils-0.3.15}/strideutils/exec_tx.py +0 -0
- {strideutils-0.3.13 → strideutils-0.3.15}/strideutils/invariant_helpers.py +0 -0
- {strideutils-0.3.13 → strideutils-0.3.15}/strideutils/run_safely.py +0 -0
- {strideutils-0.3.13 → strideutils-0.3.15}/strideutils/sheets_connector.py +0 -0
- {strideutils-0.3.13 → strideutils-0.3.15}/strideutils/slack_connector.py +0 -0
- {strideutils-0.3.13 → strideutils-0.3.15}/strideutils/stride_alerts.py +0 -0
- {strideutils-0.3.13 → strideutils-0.3.15}/strideutils/stride_upstash.py +0 -0
- {strideutils-0.3.13 → strideutils-0.3.15}/strideutils/twilio_connector.py +0 -0
- {strideutils-0.3.13 → strideutils-0.3.15}/strideutils/types.py +0 -0
- {strideutils-0.3.13 → strideutils-0.3.15}/strideutils-stubs/__init__.pyi +0 -0
- {strideutils-0.3.13 → strideutils-0.3.15}/strideutils-stubs/coingecko.pyi +0 -0
- {strideutils-0.3.13 → strideutils-0.3.15}/strideutils-stubs/cryptography.pyi +0 -0
- {strideutils-0.3.13 → strideutils-0.3.15}/strideutils-stubs/exec_tx.pyi +0 -0
- {strideutils-0.3.13 → strideutils-0.3.15}/strideutils-stubs/invariant_helpers.pyi +0 -0
- {strideutils-0.3.13 → strideutils-0.3.15}/strideutils-stubs/run_safely.pyi +0 -0
- {strideutils-0.3.13 → strideutils-0.3.15}/strideutils-stubs/sheets_connector.pyi +0 -0
- {strideutils-0.3.13 → strideutils-0.3.15}/strideutils-stubs/slack_connector.pyi +0 -0
- {strideutils-0.3.13 → strideutils-0.3.15}/strideutils-stubs/stride_alerts.pyi +0 -0
- {strideutils-0.3.13 → strideutils-0.3.15}/strideutils-stubs/stride_config.pyi +0 -0
- {strideutils-0.3.13 → strideutils-0.3.15}/strideutils-stubs/stride_requests.pyi +0 -0
- {strideutils-0.3.13 → strideutils-0.3.15}/strideutils-stubs/stride_upstash.pyi +0 -0
- {strideutils-0.3.13 → strideutils-0.3.15}/strideutils-stubs/twilio_connector.pyi +0 -0
|
@@ -78,6 +78,7 @@ class ChainConfig(ConfigObj):
|
|
|
78
78
|
ticker: str = ""
|
|
79
79
|
api_endpoint: str = ""
|
|
80
80
|
rpc_endpoint: str = ""
|
|
81
|
+
evm_chain: bool = False
|
|
81
82
|
|
|
82
83
|
def __repr__(self) -> str:
|
|
83
84
|
return f"ChainConfig(name={self.name}, id={self.id})"
|
|
@@ -154,6 +155,7 @@ class AppChainsConfig(ConfigObj):
|
|
|
154
155
|
agoric: ChainConfig = field(default_factory=ChainConfig)
|
|
155
156
|
sei: ChainConfig = field(default_factory=ChainConfig)
|
|
156
157
|
noble: ChainConfig = field(default_factory=ChainConfig)
|
|
158
|
+
forma: ChainConfig = field(default_factory=ChainConfig)
|
|
157
159
|
|
|
158
160
|
|
|
159
161
|
@dataclass(repr=False)
|
|
@@ -68,6 +68,7 @@ def request(
|
|
|
68
68
|
url: str,
|
|
69
69
|
headers: dict = {},
|
|
70
70
|
params: Union[dict, List[Tuple[str, str]]] = {},
|
|
71
|
+
data: Optional[str] = None,
|
|
71
72
|
block_height: int = 0,
|
|
72
73
|
cache_response: bool = False,
|
|
73
74
|
_cache: Dict[str, Any] = {},
|
|
@@ -96,7 +97,7 @@ def request(
|
|
|
96
97
|
if type(params) is dict:
|
|
97
98
|
params = list(params.items())
|
|
98
99
|
|
|
99
|
-
resp = requests_session.get(url, headers=headers, params=params)
|
|
100
|
+
resp = requests_session.get(url, headers=headers, params=params, data=data)
|
|
100
101
|
if not resp.ok: # resp.ok is true if state_code is less than 400
|
|
101
102
|
print(f"Error fetching {url}: {resp.status_code} {resp.json()}")
|
|
102
103
|
raise Exception(f"Error fetching {url}: {resp.status_code} {resp.json()}")
|
|
@@ -1218,3 +1219,31 @@ def get_empirical_annual_fees(ticker: str) -> float:
|
|
|
1218
1219
|
stride_upstash.get("sheet_STRD_STAKING_ST{}_DOLLARS".format(ticker.upper()), db_name="frontend") or "0"
|
|
1219
1220
|
)
|
|
1220
1221
|
return float(cast(str, empirical_dollar_fees))
|
|
1222
|
+
|
|
1223
|
+
|
|
1224
|
+
def query_evm_method(method: str, params: list[str], rpc_endpoint: str) -> str:
|
|
1225
|
+
"""
|
|
1226
|
+
Generic querier for evm contract calls
|
|
1227
|
+
Returns a hex endcoded response specific to the contract call
|
|
1228
|
+
"""
|
|
1229
|
+
headers = {"Content-Type": "application/json"}
|
|
1230
|
+
payload = {
|
|
1231
|
+
"jsonrpc": "2.0",
|
|
1232
|
+
"method": method,
|
|
1233
|
+
"params": params,
|
|
1234
|
+
"id": 1,
|
|
1235
|
+
}
|
|
1236
|
+
|
|
1237
|
+
response = request(rpc_endpoint, headers=headers, data=json.dumps(payload))
|
|
1238
|
+
return response["result"]
|
|
1239
|
+
|
|
1240
|
+
|
|
1241
|
+
def get_evm_balance(address: str, rpc_endpoint: str) -> int:
|
|
1242
|
+
"""
|
|
1243
|
+
Queries the native token balance of an evm address
|
|
1244
|
+
Address should be a hex address with an 0x prefix
|
|
1245
|
+
"""
|
|
1246
|
+
params = [address, "latest"]
|
|
1247
|
+
balance_raw = query_evm_method("eth_getBalance", params=params, rpc_endpoint=rpc_endpoint)
|
|
1248
|
+
balance = int(balance_raw, 16)
|
|
1249
|
+
return balance
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|