naeural-client 2.6.40__py3-none-any.whl → 2.7.0__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.
- naeural_client/_ver.py +1 -1
- naeural_client/bc/base.py +74 -0
- naeural_client/bc/ec.py +23 -4
- naeural_client/const/base.py +48 -0
- naeural_client/utils/config.py +3 -7
- {naeural_client-2.6.40.dist-info → naeural_client-2.7.0.dist-info}/METADATA +1 -1
- {naeural_client-2.6.40.dist-info → naeural_client-2.7.0.dist-info}/RECORD +10 -10
- {naeural_client-2.6.40.dist-info → naeural_client-2.7.0.dist-info}/WHEEL +0 -0
- {naeural_client-2.6.40.dist-info → naeural_client-2.7.0.dist-info}/entry_points.txt +0 -0
- {naeural_client-2.6.40.dist-info → naeural_client-2.7.0.dist-info}/licenses/LICENSE +0 -0
naeural_client/_ver.py
CHANGED
naeural_client/bc/base.py
CHANGED
@@ -7,6 +7,8 @@ import datetime
|
|
7
7
|
import uuid
|
8
8
|
import requests
|
9
9
|
|
10
|
+
from web3 import Web3
|
11
|
+
|
10
12
|
from hashlib import sha256, md5
|
11
13
|
from threading import Lock
|
12
14
|
from copy import deepcopy
|
@@ -1404,6 +1406,78 @@ class BaseBlockEngine:
|
|
1404
1406
|
True if `address` meets the basic criteria for an EVM address, False otherwise.
|
1405
1407
|
"""
|
1406
1408
|
return BaseBlockEngine.is_valid_evm_address(address)
|
1409
|
+
|
1410
|
+
|
1411
|
+
@staticmethod
|
1412
|
+
def web3_is_node_licensed(address : str, network=None) -> bool:
|
1413
|
+
"""
|
1414
|
+
Check if the address is allowed to send commands to the node
|
1415
|
+
|
1416
|
+
Parameters
|
1417
|
+
----------
|
1418
|
+
address : str
|
1419
|
+
the address to check.
|
1420
|
+
"""
|
1421
|
+
if network is None:
|
1422
|
+
network = os.environ.get(dAuth.DAUTH_NET_ENV_KEY, dAuth.DAUTH_SDK_NET_DEFAULT)
|
1423
|
+
|
1424
|
+
assert network.lower() in ['mainnet', 'testnet'], f"Invalid network {network}"
|
1425
|
+
|
1426
|
+
assert BaseBlockEngine.is_valid_eth_address(address), "Invalid Ethereum address"
|
1427
|
+
|
1428
|
+
if network.lower() == 'mainnet':
|
1429
|
+
contract_address = dAuth.DAUTH_MAINNET_ND_ADDR
|
1430
|
+
rpc_url = dAuth.DAUTH_MAINNET_RPC
|
1431
|
+
else:
|
1432
|
+
contract_address = dAuth.DAUTH_TESTNET_ND_ADDR
|
1433
|
+
rpc_url = dAuth.DAUTH_TESTNET_RPC
|
1434
|
+
|
1435
|
+
w3 = Web3(Web3.HTTPProvider(rpc_url))
|
1436
|
+
|
1437
|
+
contract_abi = dAuth.DAUTH_ABI_IS_NODE_ACTIVE
|
1438
|
+
|
1439
|
+
contract = w3.eth.contract(address=contract_address, abi=contract_abi)
|
1440
|
+
|
1441
|
+
result = contract.functions.isNodeActive(address).call()
|
1442
|
+
return result
|
1443
|
+
|
1444
|
+
|
1445
|
+
def web3_get_oracles(self, network=None) -> list:
|
1446
|
+
"""
|
1447
|
+
Get the list of oracles from the contract
|
1448
|
+
|
1449
|
+
Parameters
|
1450
|
+
----------
|
1451
|
+
network : str, optional
|
1452
|
+
the network to use. The default is None.
|
1453
|
+
|
1454
|
+
Returns
|
1455
|
+
-------
|
1456
|
+
list
|
1457
|
+
the list of oracles addresses.
|
1458
|
+
|
1459
|
+
"""
|
1460
|
+
if network is None:
|
1461
|
+
network = os.environ.get(dAuth.DAUTH_NET_ENV_KEY, dAuth.DAUTH_SDK_NET_DEFAULT)
|
1462
|
+
|
1463
|
+
assert network.lower() in ['mainnet', 'testnet'], f"Invalid network {network}"
|
1464
|
+
|
1465
|
+
if network.lower() == 'mainnet':
|
1466
|
+
contract_address = dAuth.DAUTH_MAINNET_ND_ADDR
|
1467
|
+
rpc_url = dAuth.DAUTH_MAINNET_RPC
|
1468
|
+
else:
|
1469
|
+
contract_address = dAuth.DAUTH_TESTNET_ND_ADDR
|
1470
|
+
rpc_url = dAuth.DAUTH_TESTNET_RPC
|
1471
|
+
|
1472
|
+
w3 = Web3(Web3.HTTPProvider(rpc_url))
|
1473
|
+
|
1474
|
+
contract_abi = dAuth.DAUTH_ABI_GET_SIGNERS
|
1475
|
+
|
1476
|
+
contract = w3.eth.contract(address=contract_address, abi=contract_abi)
|
1477
|
+
|
1478
|
+
result = contract.functions.getSigners().call()
|
1479
|
+
return result
|
1480
|
+
|
1407
1481
|
|
1408
1482
|
|
1409
1483
|
### end Ethereum
|
naeural_client/bc/ec.py
CHANGED
@@ -12,12 +12,11 @@ from cryptography.hazmat.backends import default_backend
|
|
12
12
|
from cryptography.hazmat.primitives.ciphers.aead import AESGCM
|
13
13
|
from cryptography.hazmat.primitives.kdf.hkdf import HKDF
|
14
14
|
|
15
|
-
from web3 import Web3
|
16
15
|
from eth_account import Account
|
17
16
|
from eth_utils import keccak, to_checksum_address
|
18
17
|
from eth_account.messages import encode_defunct
|
19
18
|
|
20
|
-
from .base import BaseBlockEngine, VerifyMessage, BCct
|
19
|
+
from .base import BaseBlockEngine, VerifyMessage, BCct, Web3
|
21
20
|
|
22
21
|
|
23
22
|
|
@@ -708,9 +707,29 @@ class BaseBCEllipticCurveEngine(BaseBlockEngine):
|
|
708
707
|
"""
|
709
708
|
public_key = self._address_to_pk(address)
|
710
709
|
return self._get_eth_address(pk=public_key)
|
711
|
-
|
712
|
-
|
713
710
|
|
711
|
+
def is_node_address_in_eth_addresses(self, node_address: str, lst_eth_addrs) -> bool:
|
712
|
+
"""
|
713
|
+
Check if the node address is in the list of Ethereum addresses
|
714
|
+
|
715
|
+
Parameters
|
716
|
+
----------
|
717
|
+
node_address : str
|
718
|
+
the node address.
|
719
|
+
|
720
|
+
lst_eth_addrs : list
|
721
|
+
list of Ethereum addresses.
|
722
|
+
|
723
|
+
Returns
|
724
|
+
-------
|
725
|
+
bool
|
726
|
+
True if the node address is in the list of Ethereum addresses.
|
727
|
+
|
728
|
+
"""
|
729
|
+
eth_addr = self.node_address_to_eth_address(node_address)
|
730
|
+
return eth_addr in lst_eth_addrs
|
731
|
+
|
732
|
+
|
714
733
|
def eth_hash_message(self, types, values, as_hex=False):
|
715
734
|
"""
|
716
735
|
Hashes a message using the keccak256 algorithm.
|
naeural_client/const/base.py
CHANGED
@@ -16,7 +16,52 @@ DAUTH_ENV_KEY = 'EE_DAUTH_URL'
|
|
16
16
|
DAUTH_NONCE = 'nonce'
|
17
17
|
DAUTH_VARS = [DAUTH_NONCE, BCctbase.SIGN, BCctbase.SENDER, BCctbase.HASH]
|
18
18
|
|
19
|
+
_DAUTH_ABI_IS_NODE_ACTIVE = [{
|
20
|
+
"inputs": [
|
21
|
+
{
|
22
|
+
"internalType": "address",
|
23
|
+
"name": "nodeAddress",
|
24
|
+
"type": "address"
|
25
|
+
}
|
26
|
+
],
|
27
|
+
"name": "isNodeActive",
|
28
|
+
"outputs": [
|
29
|
+
{
|
30
|
+
"internalType": "bool",
|
31
|
+
"name": "",
|
32
|
+
"type": "bool"
|
33
|
+
}
|
34
|
+
],
|
35
|
+
"stateMutability": "view",
|
36
|
+
"type": "function"
|
37
|
+
}]
|
38
|
+
|
39
|
+
_DAUTH_ABI_GET_SIGNERS = [{
|
40
|
+
"inputs": [],
|
41
|
+
"name": "getSigners",
|
42
|
+
"outputs": [
|
43
|
+
{
|
44
|
+
"internalType": "address[]",
|
45
|
+
"name": "",
|
46
|
+
"type": "address[]"
|
47
|
+
}
|
48
|
+
],
|
49
|
+
"stateMutability": "view",
|
50
|
+
"type": "function"
|
51
|
+
}]
|
52
|
+
|
53
|
+
|
54
|
+
|
19
55
|
class dAuth:
|
56
|
+
DAUTH_TESTNET_ND_ADDR = '0xE20198EE2B76eED916A568a47cdea9681f7c79BF'
|
57
|
+
DAUTH_MAINNET_ND_ADDR = ''
|
58
|
+
|
59
|
+
DAUTH_NET_ENV_KEY = 'EE_EVM_NET'
|
60
|
+
DAUTH_SDK_NET_DEFAULT = 'testnet'
|
61
|
+
|
62
|
+
DAUTH_MAINNET_RPC = 'https://base-mainnet.public.blastapi.io'
|
63
|
+
DAUTH_TESTNET_RPC = 'https://base-sepolia.public.blastapi.io'
|
64
|
+
|
20
65
|
DAUTH_SENDER_ALIAS = 'sender_alias'
|
21
66
|
DAUTH_SENDER_ALIAS_DEFAULT = 'direct-call'
|
22
67
|
DAUTH_SENDER_CORE_VER = 'sender_core_ver'
|
@@ -44,6 +89,9 @@ class dAuth:
|
|
44
89
|
DAUTH_SENDER_TYPE_SDK = 'sdk'
|
45
90
|
DAUTH_SENDER_TYPE_NODE = 'node'
|
46
91
|
DAUTH_SENDER_ETH = 'sender_eth_addr'
|
92
|
+
DAUTH_ABI_IS_NODE_ACTIVE = _DAUTH_ABI_IS_NODE_ACTIVE
|
93
|
+
DAUTH_ABI_GET_SIGNERS = _DAUTH_ABI_GET_SIGNERS
|
94
|
+
# end class dAuth
|
47
95
|
|
48
96
|
ETH_ENABLED_ENV_KEY = 'EE_ETH_ENABLED'
|
49
97
|
|
naeural_client/utils/config.py
CHANGED
@@ -11,15 +11,11 @@ SDK_HOME = ".naeural"
|
|
11
11
|
LOCAL_PEM_PATH = "./_local_cache/_data/" + BCct.DEFAULT_PEM_FILE
|
12
12
|
|
13
13
|
ENV_TEMPLATE = """
|
14
|
+
# Configuration file for the Ratio1 SDK
|
14
15
|
|
15
|
-
|
16
|
-
EE_MQTT_PORT=8883
|
17
|
-
EE_MQTT_USER=
|
18
|
-
EE_MQTT=
|
19
|
-
|
20
|
-
EE_SECURED=true
|
21
|
-
|
16
|
+
EE_EVM_NET=testnet
|
22
17
|
TARGET_NODE=
|
18
|
+
|
23
19
|
"""
|
24
20
|
|
25
21
|
def seconds_to_short_format(seconds):
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.4
|
2
2
|
Name: naeural_client
|
3
|
-
Version: 2.
|
3
|
+
Version: 2.7.0
|
4
4
|
Summary: `naeural_client` is the Python SDK required for client app development for the Naeural Edge Protocol Edge Protocol framework
|
5
5
|
Project-URL: Homepage, https://github.com/NaeuralEdgeProtocol/naeural_client
|
6
6
|
Project-URL: Bug Tracker, https://github.com/NaeuralEdgeProtocol/naeural_client/issues
|
@@ -1,5 +1,5 @@
|
|
1
1
|
naeural_client/__init__.py,sha256=YimqgDbjLuywsf8zCWE0EaUXH4MBUrqLxt0TDV558hQ,632
|
2
|
-
naeural_client/_ver.py,sha256=
|
2
|
+
naeural_client/_ver.py,sha256=nfltH8r5uusxZpl2LJRARfkdeeDNO2O50Jfy5fKIaQo,330
|
3
3
|
naeural_client/base_decentra_object.py,sha256=C4iwZTkhKNBS4VHlJs5DfElRYLo4Q9l1V1DNVSk1fyQ,4412
|
4
4
|
naeural_client/plugins_manager_mixin.py,sha256=X1JdGLDz0gN1rPnTN_5mJXR8JmqoBFQISJXmPR9yvCo,11106
|
5
5
|
naeural_client/base/__init__.py,sha256=hACh83_cIv7-PwYMM3bQm2IBmNqiHw-3PAfDfAEKz9A,259
|
@@ -14,9 +14,9 @@ naeural_client/base/webapp_pipeline.py,sha256=ZNGqZ36DY076XVDfGu2Q61kCt3kxIJ4Mi4
|
|
14
14
|
naeural_client/base/payload/__init__.py,sha256=y8fBI8tG2ObNfaXFWjyWZXwu878FRYj_I8GIbHT4GKE,29
|
15
15
|
naeural_client/base/payload/payload.py,sha256=x-au7l67Z_vfn_4R2C_pjZCaFuUVXHngJiGOfIAYVdE,2690
|
16
16
|
naeural_client/bc/__init__.py,sha256=FQj23D1PrY06NUOARiKQi4cdj0-VxnoYgYDEht8lpr8,158
|
17
|
-
naeural_client/bc/base.py,sha256=
|
17
|
+
naeural_client/bc/base.py,sha256=XyFPSIR5fKQ9iIErDpUDNYtacusTaJieH8D47dGVAD0,44964
|
18
18
|
naeural_client/bc/chain.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
19
|
-
naeural_client/bc/ec.py,sha256
|
19
|
+
naeural_client/bc/ec.py,sha256=-HPfKpYAqy_eZpiJf3gWR2L4ZDDP7fZY2uwdNYYmS80,23868
|
20
20
|
naeural_client/certs/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
21
21
|
naeural_client/certs/r9092118.ala.eu-central-1.emqxsl.com.crt,sha256=y-6io0tseyx9-a4Pmde1z1gPULtJNSYUpG_YFkYaMKU,1337
|
22
22
|
naeural_client/cli/README.md,sha256=WPdI_EjzAbUW1aPyj1sSR8rLydcJKZtoiaEtklQrjHo,74
|
@@ -33,7 +33,7 @@ naeural_client/comm/mqtt_wrapper.py,sha256=Ig3bFZkCbWd4y_Whn2PPa91Z3aLgNbNPau6Tn
|
|
33
33
|
naeural_client/const/README.md,sha256=6OHesr-f5NBuuJGryEoi_TCu2XdlhfQYlDKx_IJoXeg,177
|
34
34
|
naeural_client/const/__init__.py,sha256=MM6Zib6i7M2qWcMkLtLx14zqU-lE-u2uPHjNvbh2jAM,478
|
35
35
|
naeural_client/const/apps.py,sha256=ePBiJXLuPfFOKuw-LJrT9OWbaodU7QApfDurIPNDoB4,655
|
36
|
-
naeural_client/const/base.py,sha256=
|
36
|
+
naeural_client/const/base.py,sha256=l54zSoPY0wp_tmDsRVwpESlMxn8HrVtQqnskVNXkaQg,6334
|
37
37
|
naeural_client/const/comms.py,sha256=La6JXWHexH8CfcBCKyT4fCIoeaoZlcm7KtZ57ab4ZgU,2201
|
38
38
|
naeural_client/const/environment.py,sha256=iytmTDgbOjvORPwHQmc0K0r-xJx7dnnzNnqAJJiFCDA,870
|
39
39
|
naeural_client/const/formatter.py,sha256=AW3bWlqf39uaqV4BBUuW95qKYfF2OkkU4f9hy3kSVhM,200
|
@@ -80,11 +80,11 @@ naeural_client/logging/tzlocal/win32.py,sha256=zBoj0vFVrGhnCm_f7xmYzGym4-fV-4Ij2
|
|
80
80
|
naeural_client/logging/tzlocal/windows_tz.py,sha256=Sv9okktjZJfRGGUOOppsvQuX_eXyXUxkSKCAFmWT9Hw,34203
|
81
81
|
naeural_client/utils/__init__.py,sha256=mAnke3-MeRzz3nhQvhuHqLnpaaCSmDxicd7Ck9uwpmI,77
|
82
82
|
naeural_client/utils/comm_utils.py,sha256=4cS9llRr_pK_3rNgDcRMCQwYPO0kcNU7AdWy_LtMyCY,1072
|
83
|
-
naeural_client/utils/config.py,sha256=
|
83
|
+
naeural_client/utils/config.py,sha256=oLCalBgMpgh5PUskK8EG3O4X40yW5ptnR91HV_gWJug,6354
|
84
84
|
naeural_client/utils/dotenv.py,sha256=_AgSo35n7EnQv5yDyu7C7i0kHragLJoCGydHjvOkrYY,2008
|
85
85
|
naeural_client/utils/oracle_sync/oracle_tester.py,sha256=GmZwu2JM9_UB2K-4rKB3o0RgWLqM-7Im6HwBnQLXmHI,25312
|
86
|
-
naeural_client-2.
|
87
|
-
naeural_client-2.
|
88
|
-
naeural_client-2.
|
89
|
-
naeural_client-2.
|
90
|
-
naeural_client-2.
|
86
|
+
naeural_client-2.7.0.dist-info/METADATA,sha256=G3zvArkG0it73ESOcIzU4rEjuNdi0xnRGqwC0s_Rugs,12353
|
87
|
+
naeural_client-2.7.0.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
|
88
|
+
naeural_client-2.7.0.dist-info/entry_points.txt,sha256=CTua17GUrRa4aXeafezGC9TiWKGKQzwTjQmB2jyj22g,91
|
89
|
+
naeural_client-2.7.0.dist-info/licenses/LICENSE,sha256=cvOsJVslde4oIaTCadabXnPqZmzcBO2f2zwXZRmJEbE,11311
|
90
|
+
naeural_client-2.7.0.dist-info/RECORD,,
|
File without changes
|
File without changes
|
File without changes
|