ratio1 3.4.51__py3-none-any.whl → 3.4.53__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.
ratio1/_ver.py CHANGED
@@ -1,4 +1,4 @@
1
- __VER__ = "3.4.51"
1
+ __VER__ = "3.4.53"
2
2
 
3
3
  if __name__ == "__main__":
4
4
  with open("pyproject.toml", "rt") as fd:
ratio1/bc/evm.py CHANGED
@@ -237,7 +237,7 @@ class _EVMMixin:
237
237
  proxy_contract_address = network_data[dAuth.EvmNetData.DAUTH_PROXYAPI_ADDR_KEY]
238
238
  str_genesis_date = network_data[dAuth.EvmNetData.EE_GENESIS_EPOCH_DATE_KEY]
239
239
  controller_contract_address = network_data[dAuth.EvmNetData.DAUTH_CONTROLLER_ADDR_KEY]
240
- poai_manager_address = network_data[dAuth.EvmNetData.DAUTH_POAI_MANAGER_KEY]
240
+ poai_manager_address = network_data[dAuth.EvmNetData.DAUTH_POAI_MANAGER_ADDR_KEY]
241
241
  get_oracles_abi = network_data[dAuth.EvmNetData.DAUTH_GET_ORACLES_ABI]
242
242
  genesis_date = self.log.str_to_date(str_genesis_date).replace(tzinfo=timezone.utc)
243
243
  ep_sec = (
@@ -1327,7 +1327,7 @@ class _EVMMixin:
1327
1327
  network = w3vars.network
1328
1328
  contract = w3vars.w3.eth.contract(
1329
1329
  address=w3vars.poai_manager_address,
1330
- abi=EVM_ABI_DATA.GET_JOB_DETAILS
1330
+ abi=EVM_ABI_DATA.POAI_MANAGER_ABI
1331
1331
  )
1332
1332
 
1333
1333
  self.P(f"`getJobDetails` on {network} via {w3vars.rpc_url}", verbosity=2)
@@ -1356,6 +1356,242 @@ class _EVMMixin:
1356
1356
 
1357
1357
  return details
1358
1358
 
1359
+ def web3_submit_node_update(
1360
+ self,
1361
+ job_id: int,
1362
+ nodes: list,
1363
+ wait_for_tx: bool = False,
1364
+ timeout: int = 120,
1365
+ network: str = None,
1366
+ return_receipt=False,
1367
+ ):
1368
+ """
1369
+ Submit nodes update for a given job.
1370
+
1371
+ Parameters
1372
+ ----------
1373
+ job_id : int
1374
+ The job ID to update.
1375
+
1376
+ nodes : list
1377
+ The list of new nodes running the job.
1378
+
1379
+ network : str, optional
1380
+ The network to use. If None, uses the default self.evm_network.
1381
+
1382
+ Returns
1383
+ -------
1384
+ The transaction hash.
1385
+ """
1386
+ # Validate the input parameters.
1387
+ assert isinstance(job_id, int), "Invalid job ID"
1388
+ assert isinstance(nodes, list), "Nodes must be a list"
1389
+
1390
+ # Retrieve the Web3 instance, RPC URL, and the R1 contract address.
1391
+ # Note: This follows the same pattern as web3_get_balance_r1.
1392
+ w3vars = self._get_web3_vars(network)
1393
+ network = w3vars.network
1394
+
1395
+ # Create the token contract instance.
1396
+ poai_manager_contract = w3vars.w3.eth.contract(
1397
+ address=w3vars.poai_manager_address, abi=EVM_ABI_DATA.POAI_MANAGER_ABI
1398
+ )
1399
+
1400
+ # Estimate gas fees for the token transfer.
1401
+ gas_price = w3vars.w3.eth.gas_price # This fetches the current suggested gas price from the network.
1402
+ estimated_gas = poai_manager_contract.functions.submitNodeUpdate(job_id, nodes).estimate_gas(
1403
+ {'from': self.eth_address}
1404
+ )
1405
+ gas_cost = estimated_gas * gas_price
1406
+
1407
+ # Check that the sender's ETH balance can cover gas costs plus an extra buffer.
1408
+ eth_balance = w3vars.w3.eth.get_balance(self.eth_address)
1409
+ if eth_balance < gas_cost:
1410
+ raise Exception("Insufficient ETH balance to cover gas fees.")
1411
+
1412
+ # Get the transaction count for the nonce.
1413
+ nonce = w3vars.w3.eth.get_transaction_count(self.eth_address)
1414
+
1415
+ # Programmatically determine the chainId.
1416
+ chain_id = w3vars.w3.eth.chain_id
1417
+
1418
+ # Build the transaction for the ERC20 transfer.
1419
+ tx = poai_manager_contract.functions.submitNodeUpdate(job_id, nodes).build_transaction({
1420
+ 'from': self.eth_address,
1421
+ 'nonce': nonce,
1422
+ 'gas': estimated_gas,
1423
+ 'gasPrice': gas_price,
1424
+ 'chainId': chain_id,
1425
+ })
1426
+
1427
+ self.P(f"Executing transaction on {network} via {w3vars.rpc_url}:\n {json.dumps(dict(tx), indent=2)}", verbosity=2)
1428
+
1429
+ # Sign the transaction using the internal account (via _get_eth_account).
1430
+ eth_account = self._get_eth_account()
1431
+ signed_tx = w3vars.w3.eth.account.sign_transaction(tx, eth_account.key)
1432
+
1433
+ # Broadcast the transaction.
1434
+ tx_hash = w3vars.w3.eth.send_raw_transaction(signed_tx.raw_transaction)
1435
+
1436
+ if wait_for_tx:
1437
+ # Wait for the transaction receipt if required.
1438
+ tx_receipt = w3vars.w3.eth.wait_for_transaction_receipt(tx_hash, timeout=timeout)
1439
+ tx_hash_hex = tx_receipt.transactionHash.hex()
1440
+ self.P(f"Transaction mined: {tx_hash_hex}", color='g', verbosity=2)
1441
+ if return_receipt:
1442
+ return tx_receipt
1443
+ else:
1444
+ return tx_hash_hex
1445
+ else:
1446
+ return tx_hash.hex()
1447
+
1448
+ def web3_allocate_rewards_across_all_escrows(
1449
+ self,
1450
+ network: str = None,
1451
+ wait_for_tx=True,
1452
+ timeout=120,
1453
+ return_receipt=False,
1454
+ ):
1455
+ """
1456
+ Allocate rewards across all escrows.
1457
+
1458
+ Parameters
1459
+ ----------
1460
+ network : str, optional
1461
+ The network to use. If None, uses the default self.evm_network.
1462
+
1463
+ Returns
1464
+ -------
1465
+ The transaction hash.
1466
+ """
1467
+ # Retrieve the Web3 instance, RPC URL, and the R1 contract address.
1468
+ # Note: This follows the same pattern as web3_get_balance_r1.
1469
+ w3vars = self._get_web3_vars(network)
1470
+ network = w3vars.network
1471
+
1472
+ # Create the token contract instance.
1473
+ poai_manager_contract = w3vars.w3.eth.contract(
1474
+ address=w3vars.poai_manager_address, abi=EVM_ABI_DATA.POAI_MANAGER_ABI
1475
+ )
1476
+
1477
+ # Estimate gas fees for the token transfer.
1478
+ gas_price = w3vars.w3.eth.gas_price # This fetches the current suggested gas price from the network.
1479
+ estimated_gas = poai_manager_contract.functions.allocateRewardsAcrossAllEscrows().estimate_gas(
1480
+ {'from': self.eth_address}
1481
+ )
1482
+ gas_cost = estimated_gas * gas_price
1483
+
1484
+ # Check that the sender's ETH balance can cover gas costs plus an extra buffer.
1485
+ eth_balance = w3vars.w3.eth.get_balance(self.eth_address)
1486
+ if eth_balance < gas_cost:
1487
+ raise Exception("Insufficient ETH balance to cover gas fees.")
1488
+
1489
+ # Get the transaction count for the nonce.
1490
+ nonce = w3vars.w3.eth.get_transaction_count(self.eth_address)
1491
+
1492
+ # Programmatically determine the chainId.
1493
+ chain_id = w3vars.w3.eth.chain_id
1494
+
1495
+ # Build the transaction for the ERC20 transfer.
1496
+ tx = poai_manager_contract.functions.allocateRewardsAcrossAllEscrows().build_transaction({
1497
+ 'from': self.eth_address,
1498
+ 'nonce': nonce,
1499
+ 'gas': estimated_gas,
1500
+ 'gasPrice': gas_price,
1501
+ 'chainId': chain_id,
1502
+ })
1503
+
1504
+ self.P(f"Executing transaction on {network} via {w3vars.rpc_url}:\n {json.dumps(dict(tx), indent=2)}", verbosity=2)
1505
+
1506
+ # Sign the transaction using the internal account (via _get_eth_account).
1507
+ eth_account = self._get_eth_account()
1508
+ signed_tx = w3vars.w3.eth.account.sign_transaction(tx, eth_account.key)
1509
+
1510
+ # Broadcast the transaction.
1511
+ tx_hash = w3vars.w3.eth.send_raw_transaction(signed_tx.raw_transaction)
1512
+
1513
+ if wait_for_tx:
1514
+ # Wait for the transaction receipt if required.
1515
+ tx_receipt = w3vars.w3.eth.wait_for_transaction_receipt(tx_hash, timeout=timeout)
1516
+ tx_hash_hex = tx_receipt.transactionHash.hex()
1517
+ self.P(f"Transaction mined: {tx_hash_hex}", color='g', verbosity=2)
1518
+ if return_receipt:
1519
+ return tx_receipt
1520
+ else:
1521
+ return tx_hash_hex
1522
+ else:
1523
+ return tx_hash.hex()
1524
+
1525
+ def web3_get_unvalidated_job_ids(
1526
+ self,
1527
+ network: str = None
1528
+ ):
1529
+ """
1530
+ Retrieve unvalidated job IDs using getUnvalidatedJobIds().
1531
+
1532
+ Parameters
1533
+ ----------
1534
+ network : str, optional
1535
+ The network to use. If None, defaults to self.evm_network.
1536
+
1537
+ Returns
1538
+ -------
1539
+ list
1540
+ A list of unvalidated job IDs.
1541
+ """
1542
+ # Retrieve the necessary Web3 variables (pattern consistent with web3_get_job_details).
1543
+ w3vars = self._get_web3_vars(network)
1544
+ network = w3vars.network
1545
+
1546
+ contract = w3vars.w3.eth.contract(
1547
+ address=w3vars.poai_manager_address,
1548
+ abi=EVM_ABI_DATA.POAI_MANAGER_ABI
1549
+ )
1550
+
1551
+ self.P(f"`getUnvalidatedJobIds` on {network} via {w3vars.rpc_url}", verbosity=2)
1552
+
1553
+ # Call the contract function to get unvalidated job IDs.
1554
+ result = contract.functions.getUnvalidatedJobIds().call()
1555
+
1556
+ self.P(f"Unvalidated Job IDs: {result}", verbosity=2)
1557
+
1558
+ return result
1559
+
1560
+ def web3_get_is_last_epoch_allocated(
1561
+ self,
1562
+ network: str = None
1563
+ ):
1564
+ """
1565
+ Check if the last epoch has been allocated using getIsLastEpochAllocated().
1566
+
1567
+ Parameters
1568
+ ----------
1569
+ network : str, optional
1570
+ The network to use. If None, defaults to self.evm_network.
1571
+
1572
+ Returns
1573
+ -------
1574
+ bool
1575
+ True if the last epoch has been allocated, False otherwise.
1576
+ """
1577
+ # Retrieve the necessary Web3 variables (pattern consistent with web3_get_unvalidated_job_ids).
1578
+ w3vars = self._get_web3_vars(network)
1579
+ network = w3vars.network
1580
+
1581
+ contract = w3vars.w3.eth.contract(
1582
+ address=w3vars.poai_manager_address,
1583
+ abi=EVM_ABI_DATA.POAI_MANAGER_ABI
1584
+ )
1585
+
1586
+ self.P(f"`getIsLastEpochAllocated` on {network} via {w3vars.rpc_url}", verbosity=2)
1587
+
1588
+ # Call the contract function to check if last epoch is allocated.
1589
+ result = contract.functions.getIsLastEpochAllocated().call()
1590
+
1591
+ self.P(f"Last epoch allocated: {result}", verbosity=2)
1592
+
1593
+ return result
1594
+
1359
1595
  def get_deeploy_url(self):
1360
1596
  """
1361
1597
  Returns the deeploy URL from the environment or the network data
ratio1/const/evm_net.py CHANGED
@@ -9,7 +9,7 @@ class EvmNetData:
9
9
  DAUTH_R1_ADDR_KEY = 'EE_DAUTH_R1_ADDR'
10
10
  DAUTH_MND_ADDR_KEY = 'EE_DAUTH_MND_ADDR'
11
11
  DAUTH_PROXYAPI_ADDR_KEY = 'EE_DAUTH_PROXYAPI_ADDR'
12
- DAUTH_POAI_MANAGER_KEY = 'EE_DAUTH_POAI_MANAGER'
12
+ DAUTH_POAI_MANAGER_ADDR_KEY = 'EE_DAUTH_POAI_MANAGER_ADDR'
13
13
 
14
14
  DAUTH_CONTROLLER_ADDR_KEY = 'EE_DAUTH_CONTROLLER_ADDR'
15
15
  DAUTH_GET_ORACLES_ABI = 'EE_DAUTH_GET_ORACLES_ABI'
@@ -220,7 +220,41 @@ _GET_ADDRESSES_BALANCES = [
220
220
  }
221
221
  ]
222
222
 
223
- _GET_JOB_DETAILS_ABI = [
223
+ # A minimal ERC20 ABI for balanceOf, transfer, and decimals functions.
224
+ _ERC20_ABI = [
225
+ {
226
+ "constant": True,
227
+ "inputs": [{"name": "_owner", "type": "address"}],
228
+ "name": "balanceOf",
229
+ "outputs": [{"name": "balance", "type": "uint256"}],
230
+ "payable": False,
231
+ "stateMutability": "view",
232
+ "type": "function"
233
+ },
234
+ {
235
+ "constant": False,
236
+ "inputs": [
237
+ {"name": "_to", "type": "address"},
238
+ {"name": "_value", "type": "uint256"}
239
+ ],
240
+ "name": "transfer",
241
+ "outputs": [{"name": "success", "type": "bool"}],
242
+ "payable": False,
243
+ "stateMutability": "nonpayable",
244
+ "type": "function"
245
+ },
246
+ {
247
+ "constant": True,
248
+ "inputs": [],
249
+ "name": "decimals",
250
+ "outputs": [{"name": "", "type": "uint8"}],
251
+ "payable": False,
252
+ "stateMutability": "view",
253
+ "type": "function"
254
+ }
255
+ ]
256
+
257
+ _POAI_MANAGER_ABI = [
224
258
  {
225
259
  "inputs": [
226
260
  {
@@ -238,6 +272,11 @@ _GET_JOB_DETAILS_ABI = [
238
272
  "name": "id",
239
273
  "type": "uint256"
240
274
  },
275
+ {
276
+ "internalType": "bytes32",
277
+ "name": "projectHash",
278
+ "type": "bytes32"
279
+ },
241
280
  {
242
281
  "internalType": "uint256",
243
282
  "name": "requestTimestamp",
@@ -306,44 +345,60 @@ _GET_JOB_DETAILS_ABI = [
306
345
  ],
307
346
  "stateMutability": "view",
308
347
  "type": "function"
309
- }
310
- ]
311
-
312
- # A minimal ERC20 ABI for balanceOf, transfer, and decimals functions.
313
- _ERC20_ABI = [
348
+ },
314
349
  {
315
- "constant": True,
316
- "inputs": [{"name": "_owner", "type": "address"}],
317
- "name": "balanceOf",
318
- "outputs": [{"name": "balance", "type": "uint256"}],
319
- "payable": False,
320
- "stateMutability": "view",
321
- "type": "function"
350
+ "inputs": [
351
+ {
352
+ "internalType": "uint256",
353
+ "name": "jobId",
354
+ "type": "uint256"
355
+ },
356
+ {
357
+ "internalType": "address[]",
358
+ "name": "newActiveNodes",
359
+ "type": "address[]"
360
+ }
361
+ ],
362
+ "name": "submitNodeUpdate",
363
+ "outputs": [],
364
+ "stateMutability": "nonpayable",
365
+ "type": "function"
322
366
  },
323
367
  {
324
- "constant": False,
325
- "inputs": [
326
- {"name": "_to", "type": "address"},
327
- {"name": "_value", "type": "uint256"}
328
- ],
329
- "name": "transfer",
330
- "outputs": [{"name": "success", "type": "bool"}],
331
- "payable": False,
332
- "stateMutability": "nonpayable",
333
- "type": "function"
368
+ "inputs": [],
369
+ "name": "allocateRewardsAcrossAllEscrows",
370
+ "outputs": [],
371
+ "stateMutability": "nonpayable",
372
+ "type": "function"
334
373
  },
335
374
  {
336
- "constant": True,
337
- "inputs": [],
338
- "name": "decimals",
339
- "outputs": [{"name": "", "type": "uint8"}],
340
- "payable": False,
341
- "stateMutability": "view",
342
- "type": "function"
375
+ "inputs": [],
376
+ "name": "getUnvalidatedJobIds",
377
+ "outputs": [
378
+ {
379
+ "internalType": "uint256[]",
380
+ "name": "",
381
+ "type": "uint256[]"
382
+ }
383
+ ],
384
+ "stateMutability": "view",
385
+ "type": "function"
386
+ },
387
+ {
388
+ "inputs": [],
389
+ "name": "getIsLastEpochAllocated",
390
+ "outputs": [
391
+ {
392
+ "internalType": "bool",
393
+ "name": "",
394
+ "type": "bool"
395
+ }
396
+ ],
397
+ "stateMutability": "view",
398
+ "type": "function"
343
399
  }
344
400
  ]
345
401
 
346
-
347
402
  # Here are all the constants used for blockchain interaction for each network.
348
403
  EVM_NET_DATA = {
349
404
  EvmNetData.MAINNET: {
@@ -353,7 +408,7 @@ EVM_NET_DATA = {
353
408
  EvmNetData.DAUTH_R1_ADDR_KEY : "0x6444C6c2D527D85EA97032da9A7504d6d1448ecF",
354
409
  EvmNetData.DAUTH_MND_ADDR_KEY : "0x0C431e546371C87354714Fcc1a13365391A549E2",
355
410
  EvmNetData.DAUTH_PROXYAPI_ADDR_KEY : "0xa2fDD4c7E93790Ff68a01f01AA789D619F12c6AC",
356
- EvmNetData.DAUTH_POAI_MANAGER_KEY : "0xTODO",
411
+ EvmNetData.DAUTH_POAI_MANAGER_ADDR_KEY : "0xa8d7FFCE91a888872A9f5431B4Dd6c0c135055c1",
357
412
  EvmNetData.DAUTH_RPC_KEY : "https://base-mainnet.public.blastapi.io",
358
413
  EvmNetData.EE_GENESIS_EPOCH_DATE_KEY : "2025-05-23 16:00:00",
359
414
  EvmNetData.EE_EPOCH_INTERVALS_KEY : 24,
@@ -371,7 +426,7 @@ EVM_NET_DATA = {
371
426
  EvmNetData.DAUTH_R1_ADDR_KEY : "0xCC96f389F45Fc08b4fa8e2bC4C7DA9920292ec64",
372
427
  EvmNetData.DAUTH_MND_ADDR_KEY : "0xa8d7FFCE91a888872A9f5431B4Dd6c0c135055c1",
373
428
  EvmNetData.DAUTH_PROXYAPI_ADDR_KEY : "0xd1c7Dca934B37FAA402EB2EC64F6644d6957bE3b",
374
- EvmNetData.DAUTH_POAI_MANAGER_KEY : "0xTODO",
429
+ EvmNetData.DAUTH_POAI_MANAGER_ADDR_KEY : "0xTODO",
375
430
  EvmNetData.DAUTH_RPC_KEY : "https://base-sepolia.public.blastapi.io",
376
431
  EvmNetData.EE_GENESIS_EPOCH_DATE_KEY : "2025-05-23 16:00:00",
377
432
  EvmNetData.EE_EPOCH_INTERVALS_KEY : 24,
@@ -390,7 +445,7 @@ EVM_NET_DATA = {
390
445
  EvmNetData.DAUTH_R1_ADDR_KEY : "0x277CbD0Cf25F4789Bc04035eCd03d811FAf73691",
391
446
  EvmNetData.DAUTH_MND_ADDR_KEY : "0x17B8934dc5833CdBa1eF42D13D65D677C4727748",
392
447
  EvmNetData.DAUTH_PROXYAPI_ADDR_KEY : "0xFcF04c9A67330431Af75a546615E4881BD8bdC78",
393
- EvmNetData.DAUTH_POAI_MANAGER_KEY : "0x9A41f43494fCD592577228fE8E4014f2D75d2aa3",
448
+ EvmNetData.DAUTH_POAI_MANAGER_ADDR_KEY : "0xCc7C4e0f4f25b57807F34227Fb446E68c8c36ce5",
394
449
  EvmNetData.DAUTH_RPC_KEY : "https://base-sepolia.public.blastapi.io",
395
450
  EvmNetData.EE_GENESIS_EPOCH_DATE_KEY : "2025-06-30 07:00:00",
396
451
  EvmNetData.EE_EPOCH_INTERVALS_KEY : 1,
@@ -439,6 +494,6 @@ class EVM_ABI_DATA:
439
494
  GET_WALLET_NODES = _GET_WALLET_NODES
440
495
  GET_ADDRESSES_BALANCES = _GET_ADDRESSES_BALANCES
441
496
  IS_NODE_ACTIVE = _DAUTH_ABI_IS_NODE_ACTIVE
442
- GET_JOB_DETAILS = _GET_JOB_DETAILS_ABI
443
497
  ERC20_ABI = _ERC20_ABI
498
+ POAI_MANAGER_ABI = _POAI_MANAGER_ABI
444
499
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: ratio1
3
- Version: 3.4.51
3
+ Version: 3.4.53
4
4
  Summary: `ratio1` or Ration1 SDK is the Python SDK required for client app development for the Ratio1 ecosystem
5
5
  Project-URL: Homepage, https://github.com/Ratio1/ratio1_sdk
6
6
  Project-URL: Bug Tracker, https://github.com/Ratio1/ratio1_sdk/issues
@@ -1,5 +1,5 @@
1
1
  ratio1/__init__.py,sha256=YimqgDbjLuywsf8zCWE0EaUXH4MBUrqLxt0TDV558hQ,632
2
- ratio1/_ver.py,sha256=qHv5teUZ8W4UMIVd209wNIuRH77s8GcbdlvnLKbcP3g,331
2
+ ratio1/_ver.py,sha256=epalyun16wNffDlGP2Ne2BpGbElRDwOkcK182S7o9QQ,331
3
3
  ratio1/base_decentra_object.py,sha256=iXvAAf6wPnGWzeeiRfwLojVoan-m1e_VsyPzjUQuENo,4492
4
4
  ratio1/plugins_manager_mixin.py,sha256=X1JdGLDz0gN1rPnTN_5mJXR8JmqoBFQISJXmPR9yvCo,11106
5
5
  ratio1/base/__init__.py,sha256=hACh83_cIv7-PwYMM3bQm2IBmNqiHw-3PAfDfAEKz9A,259
@@ -17,7 +17,7 @@ ratio1/bc/__init__.py,sha256=BI5pcqHdhwnMdbWTYDLW1cVP_844VtLra-lz7xprgsk,171
17
17
  ratio1/bc/base.py,sha256=g7tARNgi_0N1p9HpvqRDWDVYxuqU7W6S0q3ARC6oxKk,45870
18
18
  ratio1/bc/chain.py,sha256=HCTQGnmuKqTvUo95OKdg8rL2jhKfSMwrich2e_7Nyms,2336
19
19
  ratio1/bc/ec.py,sha256=FwlkWmJvQ9aHuf_BZX1CWSUAxw6OZ9jBparLIWcs_e4,18933
20
- ratio1/bc/evm.py,sha256=syQ1h_m9tsx5rKj7lAlfi-hHrCChdpzB4oKTcnmrh6Y,43114
20
+ ratio1/bc/evm.py,sha256=SUyx1qPaUVgDiuWS1WvHWdXECHAZ5wwVSO2WpuuKgIY,51320
21
21
  ratio1/certs/51.15.142.167.crt,sha256=rLxkwDIQm-u6Kw570NmdSFgjSChcdSJvXPxr4Mj-EU8,1167
22
22
  ratio1/certs/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
23
23
  ratio1/certs/a0d9818f.ala.eu-central-1.emqxsl.com.crt,sha256=y-6io0tseyx9-a4Pmde1z1gPULtJNSYUpG_YFkYaMKU,1337
@@ -42,7 +42,7 @@ ratio1/const/apps.py,sha256=0NiuoAPak0HjEULF3fs3xaUH8IRSZ0i4fZw7T2fEd_g,785
42
42
  ratio1/const/base.py,sha256=kYCV2O1IBiu28a18RnKyq24ie4eJOJivhYrMPRIOG-Y,6022
43
43
  ratio1/const/comms.py,sha256=qEYX4ciYg8SYWSDZZTUYxzpR1--2a7UusrWzAq0hxo8,2259
44
44
  ratio1/const/environment.py,sha256=632L5GrcNqF3-JhvrC6kXzXwLMcihRgMlOkLurnOwGY,1031
45
- ratio1/const/evm_net.py,sha256=GCABrs9Q1Kkec0tuZ9Btcp15cVqwouE3l12bRR317zI,13830
45
+ ratio1/const/evm_net.py,sha256=HEzXWDg-Em2IUeah9__lINyYhU2NDkTw7zIlmBXhIR8,14990
46
46
  ratio1/const/formatter.py,sha256=AW3bWlqf39uaqV4BBUuW95qKYfF2OkkU4f9hy3kSVhM,200
47
47
  ratio1/const/heartbeat.py,sha256=6l3wcpExs1KQE_2lvkJb7q4Q8gqs1KWTThO_uJ1DRa0,2667
48
48
  ratio1/const/misc.py,sha256=VDCwwpf5bl9ltx9rzT2WPVP8B3mZFRufU1tSS5MO240,413
@@ -103,8 +103,8 @@ ratio1/utils/comm_utils.py,sha256=4cS9llRr_pK_3rNgDcRMCQwYPO0kcNU7AdWy_LtMyCY,10
103
103
  ratio1/utils/config.py,sha256=IMXAN9bpHePKEuTFGRRqFJXz_vBa-wi7s9gLhFEheRY,9953
104
104
  ratio1/utils/dotenv.py,sha256=_AgSo35n7EnQv5yDyu7C7i0kHragLJoCGydHjvOkrYY,2008
105
105
  ratio1/utils/oracle_sync/oracle_tester.py,sha256=aJOPcZhtbw1XPqsFG4qYpfv2Taj5-qRXbwJzrPyeXDE,27465
106
- ratio1-3.4.51.dist-info/METADATA,sha256=IHosCHidwMeFA_ou_BL6iCW7ZCS7mhMlz3vRKf_IDrY,12248
107
- ratio1-3.4.51.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
108
- ratio1-3.4.51.dist-info/entry_points.txt,sha256=DR_olREzU1egwmgek3s4GfQslBi-KR7lXsd4ap0TFxE,46
109
- ratio1-3.4.51.dist-info/licenses/LICENSE,sha256=cvOsJVslde4oIaTCadabXnPqZmzcBO2f2zwXZRmJEbE,11311
110
- ratio1-3.4.51.dist-info/RECORD,,
106
+ ratio1-3.4.53.dist-info/METADATA,sha256=VCplx7Q6vIktIOeWy6v8FU943996TjYu3wpRh4NNxhE,12248
107
+ ratio1-3.4.53.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
108
+ ratio1-3.4.53.dist-info/entry_points.txt,sha256=DR_olREzU1egwmgek3s4GfQslBi-KR7lXsd4ap0TFxE,46
109
+ ratio1-3.4.53.dist-info/licenses/LICENSE,sha256=cvOsJVslde4oIaTCadabXnPqZmzcBO2f2zwXZRmJEbE,11311
110
+ ratio1-3.4.53.dist-info/RECORD,,