symbol-sdk-python 3.3.0__tar.gz → 3.3.1__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.
Files changed (55) hide show
  1. {symbol_sdk_python-3.3.0 → symbol_sdk_python-3.3.1}/PKG-INFO +4 -4
  2. {symbol_sdk_python-3.3.0 → symbol_sdk_python-3.3.1}/pyproject.toml +4 -4
  3. {symbol_sdk_python-3.3.0 → symbol_sdk_python-3.3.1}/symbolchain/nem/TransactionFactory.py +5 -1
  4. {symbol_sdk_python-3.3.0 → symbol_sdk_python-3.3.1}/symbolchain/symbol/IdGenerator.py +8 -0
  5. {symbol_sdk_python-3.3.0 → symbol_sdk_python-3.3.1}/symbolchain/symbol/Network.py +6 -1
  6. symbol_sdk_python-3.3.1/symbolchain/symbol/Restriction.py +10 -0
  7. {symbol_sdk_python-3.3.0 → symbol_sdk_python-3.3.1}/symbolchain/symbol/TransactionFactory.py +4 -0
  8. {symbol_sdk_python-3.3.0 → symbol_sdk_python-3.3.1}/README.md +0 -0
  9. {symbol_sdk_python-3.3.0 → symbol_sdk_python-3.3.1}/symbolchain/AccountDescriptorRepository.py +0 -0
  10. {symbol_sdk_python-3.3.0 → symbol_sdk_python-3.3.1}/symbolchain/ArrayHelpers.py +0 -0
  11. {symbol_sdk_python-3.3.0 → symbol_sdk_python-3.3.1}/symbolchain/BaseValue.py +0 -0
  12. {symbol_sdk_python-3.3.0 → symbol_sdk_python-3.3.1}/symbolchain/Bip32.py +0 -0
  13. {symbol_sdk_python-3.3.0 → symbol_sdk_python-3.3.1}/symbolchain/BlockchainSettings.py +0 -0
  14. {symbol_sdk_python-3.3.0 → symbol_sdk_python-3.3.1}/symbolchain/BufferReader.py +0 -0
  15. {symbol_sdk_python-3.3.0 → symbol_sdk_python-3.3.1}/symbolchain/BufferWriter.py +0 -0
  16. {symbol_sdk_python-3.3.0 → symbol_sdk_python-3.3.1}/symbolchain/ByteArray.py +0 -0
  17. {symbol_sdk_python-3.3.0 → symbol_sdk_python-3.3.1}/symbolchain/Cipher.py +0 -0
  18. {symbol_sdk_python-3.3.0 → symbol_sdk_python-3.3.1}/symbolchain/CodeWordsEncoder.py +0 -0
  19. {symbol_sdk_python-3.3.0 → symbol_sdk_python-3.3.1}/symbolchain/CryptoTypes.py +0 -0
  20. {symbol_sdk_python-3.3.0 → symbol_sdk_python-3.3.1}/symbolchain/DiceMnemonicGenerator.py +0 -0
  21. {symbol_sdk_python-3.3.0 → symbol_sdk_python-3.3.1}/symbolchain/Network.py +0 -0
  22. {symbol_sdk_python-3.3.0 → symbol_sdk_python-3.3.1}/symbolchain/NetworkTimestamp.py +0 -0
  23. {symbol_sdk_python-3.3.0 → symbol_sdk_python-3.3.1}/symbolchain/NodeDescriptorRepository.py +0 -0
  24. {symbol_sdk_python-3.3.0 → symbol_sdk_python-3.3.1}/symbolchain/Ordered.py +0 -0
  25. {symbol_sdk_python-3.3.0 → symbol_sdk_python-3.3.1}/symbolchain/PrivateKeyStorage.py +0 -0
  26. {symbol_sdk_python-3.3.0 → symbol_sdk_python-3.3.1}/symbolchain/QrSignatureStorage.py +0 -0
  27. {symbol_sdk_python-3.3.0 → symbol_sdk_python-3.3.1}/symbolchain/QrStorage.py +0 -0
  28. {symbol_sdk_python-3.3.0 → symbol_sdk_python-3.3.1}/symbolchain/RuleBasedTransactionFactory.py +0 -0
  29. {symbol_sdk_python-3.3.0 → symbol_sdk_python-3.3.1}/symbolchain/SharedKey.py +0 -0
  30. {symbol_sdk_python-3.3.0 → symbol_sdk_python-3.3.1}/symbolchain/TransactionDescriptorProcessor.py +0 -0
  31. {symbol_sdk_python-3.3.0 → symbol_sdk_python-3.3.1}/symbolchain/Transforms.py +0 -0
  32. {symbol_sdk_python-3.3.0 → symbol_sdk_python-3.3.1}/symbolchain/__init__.py +0 -0
  33. {symbol_sdk_python-3.3.0 → symbol_sdk_python-3.3.1}/symbolchain/external/__init__.py +0 -0
  34. {symbol_sdk_python-3.3.0 → symbol_sdk_python-3.3.1}/symbolchain/external/ed25519.py +0 -0
  35. {symbol_sdk_python-3.3.0 → symbol_sdk_python-3.3.1}/symbolchain/facade/BatchOperations.py +0 -0
  36. {symbol_sdk_python-3.3.0 → symbol_sdk_python-3.3.1}/symbolchain/facade/NemFacade.py +0 -0
  37. {symbol_sdk_python-3.3.0 → symbol_sdk_python-3.3.1}/symbolchain/facade/SymbolFacade.py +0 -0
  38. {symbol_sdk_python-3.3.0 → symbol_sdk_python-3.3.1}/symbolchain/facade/__init__.py +0 -0
  39. {symbol_sdk_python-3.3.0 → symbol_sdk_python-3.3.1}/symbolchain/impl/CipherHelpers.py +0 -0
  40. {symbol_sdk_python-3.3.0 → symbol_sdk_python-3.3.1}/symbolchain/impl/__init__.py +0 -0
  41. {symbol_sdk_python-3.3.0 → symbol_sdk_python-3.3.1}/symbolchain/nc/__init__.py +0 -0
  42. {symbol_sdk_python-3.3.0 → symbol_sdk_python-3.3.1}/symbolchain/nem/KeyPair.py +0 -0
  43. {symbol_sdk_python-3.3.0 → symbol_sdk_python-3.3.1}/symbolchain/nem/MessageEncoder.py +0 -0
  44. {symbol_sdk_python-3.3.0 → symbol_sdk_python-3.3.1}/symbolchain/nem/Network.py +0 -0
  45. {symbol_sdk_python-3.3.0 → symbol_sdk_python-3.3.1}/symbolchain/nem/SharedKey.py +0 -0
  46. {symbol_sdk_python-3.3.0 → symbol_sdk_python-3.3.1}/symbolchain/nem/__init__.py +0 -0
  47. {symbol_sdk_python-3.3.0 → symbol_sdk_python-3.3.1}/symbolchain/ripemd160.py +0 -0
  48. {symbol_sdk_python-3.3.0 → symbol_sdk_python-3.3.1}/symbolchain/sc/__init__.py +0 -0
  49. {symbol_sdk_python-3.3.0 → symbol_sdk_python-3.3.1}/symbolchain/symbol/KeyPair.py +0 -0
  50. {symbol_sdk_python-3.3.0 → symbol_sdk_python-3.3.1}/symbolchain/symbol/Merkle.py +0 -0
  51. {symbol_sdk_python-3.3.0 → symbol_sdk_python-3.3.1}/symbolchain/symbol/MessageEncoder.py +0 -0
  52. {symbol_sdk_python-3.3.0 → symbol_sdk_python-3.3.1}/symbolchain/symbol/Metadata.py +0 -0
  53. {symbol_sdk_python-3.3.0 → symbol_sdk_python-3.3.1}/symbolchain/symbol/SharedKey.py +0 -0
  54. {symbol_sdk_python-3.3.0 → symbol_sdk_python-3.3.1}/symbolchain/symbol/VotingKeysGenerator.py +0 -0
  55. {symbol_sdk_python-3.3.0 → symbol_sdk_python-3.3.1}/symbolchain/symbol/__init__.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: symbol-sdk-python
3
- Version: 3.3.0
3
+ Version: 3.3.1
4
4
  Summary: Symbol SDK
5
5
  Home-page: https://github.com/symbol/symbol/tree/main/sdk/python
6
6
  License: MIT
@@ -9,17 +9,17 @@ Author: Symbol Contributors
9
9
  Author-email: contributors@symbol.dev
10
10
  Maintainer: Symbol Contributors
11
11
  Maintainer-email: contributors@symbol.dev
12
- Requires-Python: >=3.9.2,<4.0.0
12
+ Requires-Python: >=3.10,<4.0
13
13
  Classifier: License :: OSI Approved :: MIT License
14
14
  Classifier: Programming Language :: Python :: 3
15
15
  Classifier: Programming Language :: Python :: 3.10
16
16
  Classifier: Programming Language :: Python :: 3.11
17
17
  Classifier: Programming Language :: Python :: 3.12
18
18
  Classifier: Programming Language :: Python :: 3.13
19
- Classifier: Programming Language :: Python :: 3.9
19
+ Classifier: Programming Language :: Python :: 3.14
20
20
  Requires-Dist: cryptography (>=46.0.1,<46.1.0)
21
21
  Requires-Dist: mnemonic (>=0.20,<1.0)
22
- Requires-Dist: pillow (>=11.3.0,<11.4.0)
22
+ Requires-Dist: pillow (>=12.2.0,<12.3.0)
23
23
  Requires-Dist: pynacl (>=1.6.0,<1.7.0)
24
24
  Requires-Dist: pyyaml (>=6.0.1,<6.1.0)
25
25
  Requires-Dist: pyzbar (>=0.1.9,<0.2.0)
@@ -1,6 +1,6 @@
1
1
  [tool.poetry]
2
2
  name = 'symbol-sdk-python'
3
- version = '3.3.0'
3
+ version = '3.3.1'
4
4
  description = 'Symbol SDK'
5
5
  authors = ['Symbol Contributors <contributors@symbol.dev>']
6
6
  maintainers = ['Symbol Contributors <contributors@symbol.dev>']
@@ -14,13 +14,13 @@ repository = 'https://github.com/symbol/symbol/tree/main/sdk/python'
14
14
 
15
15
  keywords = ['symbol', 'sdk', 'Symbol SDK']
16
16
 
17
- classifiers = ['Programming Language :: Python :: 3.9', 'Programming Language :: Python :: 3.10', 'Programming Language :: Python :: 3.11']
17
+ classifiers = ['Programming Language :: Python :: 3.10', 'Programming Language :: Python :: 3.11', 'Programming Language :: Python :: 3.12', 'Programming Language :: Python :: 3.13', 'Programming Language :: Python :: 3.14']
18
18
 
19
19
  [tool.poetry.dependencies]
20
- python = "^3.9.2"
20
+ python = "^3.10"
21
21
  cryptography = ">=46.0.1,<46.1.0"
22
22
  mnemonic = ">=0.20,<1.0"
23
- pillow = ">=11.3.0,<11.4.0"
23
+ pillow = ">=12.2.0,<12.3.0"
24
24
  pynacl = ">=1.6.0,<1.7.0"
25
25
  pyyaml = ">=6.0.1,<6.1.0"
26
26
  pyzbar = ">=0.1.9,<0.2.0"
@@ -66,9 +66,13 @@ class TransactionFactory:
66
66
  def attach_signature(transaction, signature):
67
67
  """Attaches a signature to a transaction."""
68
68
  transaction.signature = nc.Signature(signature.bytes)
69
+ return TransactionFactory.to_json(transaction)
69
70
 
71
+ @staticmethod
72
+ def to_json(transaction):
73
+ """Generates a JSON representation of transaction that can be sent to a node."""
70
74
  transaction_hex = hexlify(TransactionFactory.to_non_verifiable_transaction(transaction).serialize()).decode('utf8').upper()
71
- signature_hex = str(signature)
75
+ signature_hex = str(transaction.signature)
72
76
  json_payload = f'{{"data":"{transaction_hex}", "signature":"{signature_hex}"}}'
73
77
  return json_payload
74
78
 
@@ -19,6 +19,9 @@ def generate_mosaic_id(owner_address, nonce):
19
19
 
20
20
  def generate_namespace_id(name, parent_namespace_id=0):
21
21
  """Generates a namespace id from a name and an optional parent namespace id."""
22
+ if '.' in name:
23
+ raise ValueError(f'\'name\' cannot contain \'.\'; if {name} is a namepace path, consider using generate_namespace_path')
24
+
22
25
  hasher = hashlib.sha3_256()
23
26
  hasher.update(parent_namespace_id.to_bytes(8, 'little'))
24
27
  hasher.update(name.encode('utf8'))
@@ -33,6 +36,11 @@ def generate_mosaic_alias_id(fully_qualified_name):
33
36
  return generate_namespace_path(fully_qualified_name)[-1]
34
37
 
35
38
 
39
+ def is_mosaic_alias(mosaic_id):
40
+ """Determines if mosaic_id is an alias."""
41
+ return 0 != (mosaic_id & NAMESPACE_FLAG)
42
+
43
+
36
44
  def is_valid_namespace_name(name):
37
45
  """Returns true if a name is a valid namespace name."""
38
46
  def is_alphanum(character):
@@ -41,11 +41,16 @@ class Address(ByteArray):
41
41
  def to_namespace_id(self):
42
42
  """Attempts to convert this address into a namespace id."""
43
43
 
44
- if not self.bytes[0] & 0x01:
44
+ if not self.is_alias():
45
45
  return None
46
46
 
47
47
  return NamespaceId(int.from_bytes(self.bytes[1:9], 'little'))
48
48
 
49
+ def is_alias(self):
50
+ """Determines if this address is an alias."""
51
+
52
+ return 0 != (self.bytes[0] & 0x01)
53
+
49
54
  def __str__(self):
50
55
  return base64.b32encode(self.bytes + bytes(0)).decode('utf8')[0:-1]
51
56
 
@@ -0,0 +1,10 @@
1
+ import hashlib
2
+
3
+
4
+ def mosaic_restriction_generate_key(seed):
5
+ """Generates a mosaic restriction key from a string."""
6
+
7
+ hash_result = hashlib.sha3_256(seed.encode('utf8')).digest()
8
+ key_bytes = bytearray(hash_result[:8])
9
+
10
+ return int.from_bytes(key_bytes, 'little')
@@ -69,7 +69,11 @@ class TransactionFactory:
69
69
  def attach_signature(transaction, signature):
70
70
  """Attaches a signature to a transaction."""
71
71
  transaction.signature = sc.Signature(signature.bytes)
72
+ return TransactionFactory.to_json(transaction)
72
73
 
74
+ @staticmethod
75
+ def to_json(transaction):
76
+ """Generates a JSON representation of transaction that can be sent to a node."""
73
77
  transaction_buffer = transaction.serialize()
74
78
  hex_payload = hexlify(transaction_buffer).decode('utf8').upper()
75
79
  json_payload = f'{{"payload": "{hex_payload}"}}'