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 +1 -1
- ratio1/bc/evm.py +238 -2
- ratio1/const/evm_net.py +91 -36
- {ratio1-3.4.51.dist-info → ratio1-3.4.53.dist-info}/METADATA +1 -1
- {ratio1-3.4.51.dist-info → ratio1-3.4.53.dist-info}/RECORD +8 -8
- {ratio1-3.4.51.dist-info → ratio1-3.4.53.dist-info}/WHEEL +0 -0
- {ratio1-3.4.51.dist-info → ratio1-3.4.53.dist-info}/entry_points.txt +0 -0
- {ratio1-3.4.51.dist-info → ratio1-3.4.53.dist-info}/licenses/LICENSE +0 -0
ratio1/_ver.py
CHANGED
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.
|
|
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.
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
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
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
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
|
-
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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=
|
|
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=
|
|
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=
|
|
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.
|
|
107
|
-
ratio1-3.4.
|
|
108
|
-
ratio1-3.4.
|
|
109
|
-
ratio1-3.4.
|
|
110
|
-
ratio1-3.4.
|
|
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,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|