diff --git a/crypto/enums/constants.py b/crypto/enums/constants.py deleted file mode 100644 index 53ed6e28..00000000 --- a/crypto/enums/constants.py +++ /dev/null @@ -1,5 +0,0 @@ -from enum import Enum - -class Constants(Enum): - ETHEREUM_RECOVERY_ID_OFFSET = 27 - EIP_1559_PREFIX = '02' diff --git a/crypto/identity/private_key.py b/crypto/identity/private_key.py index 9b186e14..d85703b2 100644 --- a/crypto/identity/private_key.py +++ b/crypto/identity/private_key.py @@ -5,7 +5,6 @@ from base58 import b58decode from crypto.configuration.network import Network -from crypto.enums.constants import Constants class PrivateKey(object): def __init__(self, private_key: str): @@ -26,7 +25,7 @@ def sign(self, message: bytes) -> bytes: der = self.private_key.sign_recoverable(message_hash, hasher=None) - return bytes([der[64] + Constants.ETHEREUM_RECOVERY_ID_OFFSET.value]) + der[0:64] + return bytes([der[64]]) + der[0:64] def to_hex(self): """Returns a private key in hex format diff --git a/crypto/transactions/builder/abstract_transaction_builder.py b/crypto/transactions/builder/abstract_transaction_builder.py index 6fcadbbd..a90d2a77 100644 --- a/crypto/transactions/builder/abstract_transaction_builder.py +++ b/crypto/transactions/builder/abstract_transaction_builder.py @@ -1,4 +1,3 @@ -from crypto.configuration.network import Network from crypto.identity.private_key import PrivateKey from crypto.transactions.types.abstract_transaction import AbstractTransaction @@ -9,9 +8,8 @@ def __init__(self, data: dict): 'value': 0, 'senderPublicKey': '', 'gasPrice': '5', + 'gasLimit': 1_000_000, 'nonce': '1', - 'network': Network.get_network().chain_id(), - 'gas': 1_000_000, 'data': '', **data, @@ -26,8 +24,8 @@ def __str__(self): def new(cls): return cls({}) - def gas(self, gas: int): - self.transaction.data['gas'] = int(gas) + def gas_limit(self, gas_limit: int): + self.transaction.data['gasLimit'] = int(gas_limit) return self def to(self, to: str): @@ -42,10 +40,6 @@ def nonce(self, nonce: str): self.transaction.data['nonce'] = nonce return self - def network(self, network: int): - self.transaction.data['network'] = network - return self - def sign(self, passphrase: str): keys = PrivateKey.from_passphrase(passphrase) self.transaction.data['senderPublicKey'] = keys.public_key diff --git a/crypto/transactions/deserializer.py b/crypto/transactions/deserializer.py index f5bfa572..8eadf2d3 100644 --- a/crypto/transactions/deserializer.py +++ b/crypto/transactions/deserializer.py @@ -1,6 +1,6 @@ from binascii import unhexlify from typing import Optional -from crypto.enums.constants import Constants +from crypto.configuration.network import Network from crypto.enums.contract_abi_type import ContractAbiType from crypto.transactions.types.abstract_transaction import AbstractTransaction from crypto.transactions.types.multipayment import Multipayment @@ -26,7 +26,7 @@ def __init__(self, serialized: str): self.serialized = unhexlify(serialized) if isinstance(serialized, str) else serialized self.pointer = 0 - self.encoded_rlp = '0x' + serialized[2:] + self.encoded_rlp = '0x' + serialized @staticmethod def new(serialized: str): @@ -36,19 +36,18 @@ def deserialize(self) -> AbstractTransaction: decoded_rlp = RlpDecoder.decode(self.encoded_rlp) data = { - 'network': Deserializer.__parse_number(decoded_rlp[0]), - 'nonce': Deserializer.__parse_big_number(decoded_rlp[1]), - 'gasPrice': Deserializer.__parse_number(decoded_rlp[3]), - 'gas': Deserializer.__parse_number(decoded_rlp[4]), - 'to': Deserializer.__parse_address(decoded_rlp[5]), - 'value': Deserializer.__parse_big_number(decoded_rlp[6]), - 'data': Deserializer.__parse_hex(decoded_rlp[7]), + 'nonce': Deserializer.__parse_big_number(decoded_rlp[0]), + 'gasPrice': Deserializer.__parse_number(decoded_rlp[1]), + 'gasLimit': Deserializer.__parse_number(decoded_rlp[2]), + 'to': Deserializer.__parse_address(decoded_rlp[3]), + 'value': Deserializer.__parse_big_number(decoded_rlp[4]), + 'data': Deserializer.__parse_hex(decoded_rlp[5]), } - if len(decoded_rlp) == 12: - data['v'] = Deserializer.__parse_number(decoded_rlp[9]) + Constants.ETHEREUM_RECOVERY_ID_OFFSET.value - data['r'] = Deserializer.__parse_hex(decoded_rlp[10]) - data['s'] = Deserializer.__parse_hex(decoded_rlp[11]) + if len(decoded_rlp) >= 9: + data['v'] = Deserializer.__parse_number(decoded_rlp[6]) - (Network.get_network().chain_id() * 2 + 35) + data['r'] = Deserializer.__parse_hex(decoded_rlp[7]) + data['s'] = Deserializer.__parse_hex(decoded_rlp[8]) transaction = self.__guess_transaction_from_data(data) diff --git a/crypto/transactions/types/abstract_transaction.py b/crypto/transactions/types/abstract_transaction.py index fe7a2e38..d62a2eb3 100644 --- a/crypto/transactions/types/abstract_transaction.py +++ b/crypto/transactions/types/abstract_transaction.py @@ -1,7 +1,7 @@ import json from typing import Optional -from crypto.enums.constants import Constants +from crypto.configuration.network import Network from crypto.enums.contract_abi_type import ContractAbiType from crypto.identity.address import Address from crypto.identity.private_key import PrivateKey @@ -73,7 +73,7 @@ def hash(self, skip_signature: bool) -> str: return TransactionUtils.to_hash(self.data, skip_signature=skip_signature) def _get_signature(self): - recover_id = int(self.data.get('v', 0)) - Constants.ETHEREUM_RECOVERY_ID_OFFSET.value + recover_id = int(self.data.get('v', 0)) r = self.data.get('r') s = self.data.get('s') diff --git a/crypto/utils/message.py b/crypto/utils/message.py index 55d89203..246f8c2e 100644 --- a/crypto/utils/message.py +++ b/crypto/utils/message.py @@ -90,7 +90,7 @@ def verify(self): signature_s = signature[32:64] signature_v = signature[64] - signature = signature_r + signature_s + bytes([signature_v - 27]) + signature = signature_r + signature_s + bytes([signature_v]) public_key = PublicKey.recover(message_hash, signature) diff --git a/crypto/utils/transaction_utils.py b/crypto/utils/transaction_utils.py index b4ad6275..2049c603 100644 --- a/crypto/utils/transaction_utils.py +++ b/crypto/utils/transaction_utils.py @@ -1,9 +1,8 @@ from binascii import unhexlify -import hashlib import re from Cryptodome.Hash import keccak -from crypto.enums.constants import Constants +from crypto.configuration.network import Network from crypto.utils.rlp_encoder import RlpEncoder class TransactionUtils: @@ -19,25 +18,29 @@ def to_buffer(cls, transaction: dict, skip_signature: bool = False) -> bytes: # Build the fields array fields = [ - cls.to_be_array(int(transaction['network'])), cls.to_be_array(int(transaction.get('nonce', 0))), - cls.to_be_array(0), cls.to_be_array(int(transaction['gasPrice'])), - cls.to_be_array(int(transaction['gas'])), + cls.to_be_array(int(transaction['gasLimit'])), to, cls.to_be_array(int(transaction.get('value', 0))), bytes.fromhex(cls.parse_hex_from_str(transaction.get('data', ''))) if transaction.get('data') else b'', - [], ] - if not skip_signature and 'v' in transaction and 'r' in transaction and 's' in transaction: - fields.append(cls.to_be_array(int(transaction['v']) - Constants.ETHEREUM_RECOVERY_ID_OFFSET.value)) + if not skip_signature and 'v' in transaction and transaction['v'] is not None and 'r' in transaction and 's' in transaction: + fields.append(cls.to_be_array(int(transaction['v']) + (Network.get_network().chain_id() * 2 + 35))) fields.append(bytes.fromhex(transaction['r'])) fields.append(bytes.fromhex(transaction['s'])) + else: + # Push chainId + 0s for r and s + fields.append(cls.to_be_array(Network.get_network().chain_id())) + fields.append(cls.to_be_array(0)) + fields.append(cls.to_be_array(0)) + + # TODO: second signature handling encoded = RlpEncoder.encode(fields) - hash_input = Constants.EIP_1559_PREFIX.value + encoded + hash_input = encoded return hash_input.encode() diff --git a/tests/conftest.py b/tests/conftest.py index 2d32a94b..fe0f41c3 100644 --- a/tests/conftest.py +++ b/tests/conftest.py @@ -37,202 +37,3 @@ def passphrase(): """Passphrase used for tests""" return 'found lobster oblige describe ready addict body brave live vacuum display salute lizard combine gift resemble race senior quality reunion proud tell adjust angle' - -@pytest.fixture -def transaction_type_0(): - """Transaction of type "transfer" - """ - data = { - "version": 1, - "network": 30, - "typeGroup": 1, - "type": 0, - "nonce": 5, - "senderPublicKey": '023efc1da7f315f3c533a4080e491f32cd4219731cef008976c3876539e1f192d3', - "fee": 10000000, - "value": 1, - "expiration": 0, - "to": '0xb693449AdDa7EFc015D87944EAE8b7C37EB1690A', - "signature": '95abbcadcfb4b8991392b1ce819777abd471d837ae8bfbf28f39cad4c7b2e815116622f3ceb099386ec19b781d7b38bdf008e1851a7f848bb88382f893ff85ea', - "hash": '0ba2a3bf50747a89e5527235ec9beaab055ceadedfa347e81e95ba97e5166c6b', - "serialized": "ff011e0100000000000500000000000000023efc1da7f315f3c533a4080e491f32cd4219731cef008976c3876539e1f192d3809698000000000000010000000000000000000000b693449adda7efc015d87944eae8b7c37eb1690a95abbcadcfb4b8991392b1ce819777abd471d837ae8bfbf28f39cad4c7b2e815116622f3ceb099386ec19b781d7b38bdf008e1851a7f848bb88382f893ff85ea", - } - return data - - -@pytest.fixture -def transaction_type_2(): - """Transaction of type "validator registration" - """ - data = { - 'version': 1, - 'network': 30, - 'typeGroup': 1, - 'type': 2, - 'nonce': 5, - 'senderPublicKey': '023efc1da7f315f3c533a4080e491f32cd4219731cef008976c3876539e1f192d3', - 'fee': 2500000000, - 'asset': { - 'validatorPublicKey': 'a08058db53e2665c84a40f5152e76dd2b652125a6079130d4c315e728bcf4dd1dfb44ac26e82302331d61977d3141118' - }, - 'signature': '5a1a0dba931a1b0a9055801578109a657fd4a2551fdb42dfd24a2c3a70835648d576f1d6b76b7a1cfedb4061d877c0a0f8adb3b47c7bbcb43b1b038da6b3ab19', # noqa - 'value': 0, - 'hash': '89b3df28b9069b9cba26ba8a4d2b970bb7e87a37271a96a0e9e0dd831e831f8d', - 'serialized': 'ff011e0100000002000500000000000000023efc1da7f315f3c533a4080e491f32cd4219731cef008976c3876539e1f192d300f902950000000000a08058db53e2665c84a40f5152e76dd2b652125a6079130d4c315e728bcf4dd1dfb44ac26e82302331d61977d31411185a1a0dba931a1b0a9055801578109a657fd4a2551fdb42dfd24a2c3a70835648d576f1d6b76b7a1cfedb4061d877c0a0f8adb3b47c7bbcb43b1b038da6b3ab19' # noqa - } - return data - - -@pytest.fixture -def transaction_type_3(): - """Transaction of type "vote" - """ - data = { - "version": 1, - "network": 30, - "typeGroup": 1, - "type": 3, - "nonce": 5, - "senderPublicKey": "023efc1da7f315f3c533a4080e491f32cd4219731cef008976c3876539e1f192d3", - "fee": 100000000, - "asset": { - "unvotes": [], - "votes": ["03f25455408f9a7e6c6a056b121e68fbda98f3511d22e9ef27b0ebaf1ef9e4eabc"] - }, - "signature": "5946eea46e46026bd5feb5335ba9411fa30677c9a9a9a788065cf1e95bf2896659485fd26b78613640b1209827ce6d4587a05a4721c63e8af24d3351e1eeaa6c", # noqa - "value": 0, - "hash": "a2ff7837281cb978d6f293b46da7bb0342fe09923eede0bfbef9dd57ffee9158", - "serialized": - "ff011e0100000003000500000000000000023efc1da7f315f3c533a4080e491f32cd4219731cef008976c3876539e1f192d300e1f50500000000000103f25455408f9a7e6c6a056b121e68fbda98f3511d22e9ef27b0ebaf1ef9e4eabc005946eea46e46026bd5feb5335ba9411fa30677c9a9a9a788065cf1e95bf2896659485fd26b78613640b1209827ce6d4587a05a4721c63e8af24d3351e1eeaa6c" # noqa - } - return data - - -@pytest.fixture -def transaction_type_4(): - """Transaction of type "multi signature registration" - """ - data = { - 'version': 1, - 'network': 30, - 'typeGroup': 1, - 'type': 4, - 'nonce': 5, - 'senderPublicKey': '023efc1da7f315f3c533a4080e491f32cd4219731cef008976c3876539e1f192d3', - 'hash': 'f140e52f89c3b782da2fc47111abc85610e784ab3a55115712fe5fb2aa061f16', - 'value': 0, - 'fee': 500000000, - 'signature': '5cc5dc6ca87dd1b3bd24dba27e72cce6b32284821f217f1a0195ba319e3ad3b8c9bdae225da62cd52ee911e7ffecd5e4d1197421070a8c92ee57e00398cf3dcb', # noqa - 'asset': { - 'multiSignature': { - 'publicKeys': [ - "029fab3cb2f5e248ae7cbb4de646741da4d73c493b2a03ab5c71507fb2c0dcca92", - "03629f9dbf7f1e91cefa845126189816ceae357bdd1f41bd14787318a7d5b55d48", - "027941d2059f89a26d89e87d3385e261a0ede1234aaeaa487012b69d6b67962dc5", - ], - 'min': 2, - } - }, - 'signatures': [ - '003eeb63ff599b2d2255127323522f0559dd9444873b08203f998515bfb107cee68edb9e393622d93913a1afdb28768d6accd2b725c75942a638719795de344156', # noqa - '017aeccd6d60ae1b6ab5121f59225fe8246d58f8cfae76deb3e492a87abe4e37f622cc07948f7c9b62c0447deef05f4960bae25354699f9d8f9ddfa4be4de04923', # noqa - '02e6df01f999919f1a6236c8ac8ce54e3e41042e14547b1aa86b44c4c05e02f1ac89a44d0ad8a5f0374b00b5285d0b9b1cb64e4212a792bf5e4775c4d761c44c9d' # noqa - ], - 'serialized': 'ff011e0100000004000500000000000000023efc1da7f315f3c533a4080e491f32cd4219731cef008976c3876539e1f192d30065cd1d00000000000203029fab3cb2f5e248ae7cbb4de646741da4d73c493b2a03ab5c71507fb2c0dcca9203629f9dbf7f1e91cefa845126189816ceae357bdd1f41bd14787318a7d5b55d48027941d2059f89a26d89e87d3385e261a0ede1234aaeaa487012b69d6b67962dc55cc5dc6ca87dd1b3bd24dba27e72cce6b32284821f217f1a0195ba319e3ad3b8c9bdae225da62cd52ee911e7ffecd5e4d1197421070a8c92ee57e00398cf3dcb003eeb63ff599b2d2255127323522f0559dd9444873b08203f998515bfb107cee68edb9e393622d93913a1afdb28768d6accd2b725c75942a638719795de344156017aeccd6d60ae1b6ab5121f59225fe8246d58f8cfae76deb3e492a87abe4e37f622cc07948f7c9b62c0447deef05f4960bae25354699f9d8f9ddfa4be4de0492302e6df01f999919f1a6236c8ac8ce54e3e41042e14547b1aa86b44c4c05e02f1ac89a44d0ad8a5f0374b00b5285d0b9b1cb64e4212a792bf5e4775c4d761c44c9d' # noqa - } - return data - - -@pytest.fixture -def transaction_type_6(): - """Transaction of type "multi payment" - """ - data = { - 'version': 1, - 'network': 30, - 'typeGroup': 1, - 'type': 6, - 'nonce': 5, - 'senderPublicKey': '023efc1da7f315f3c533a4080e491f32cd4219731cef008976c3876539e1f192d3', - 'fee': 10000000, - 'value': 0, - 'asset': { - 'payments': [ - { - 'value': 100000000, - 'recipientId': '0xb693449AdDa7EFc015D87944EAE8b7C37EB1690A' - }, - { - 'value': 200000000, - 'recipientId': '0xb693449AdDa7EFc015D87944EAE8b7C37EB1690A' - }, - ], - }, - 'signature': '220b5d1597716c63f7945da495793f6fcb9997481108e9c1e4e7b72c6ec31fe11b2015b4940938ca8979e84ec06550825b3c0a24e23fdae087173d4d74e4d8bc', - 'hash': 'c42df7851d62e99ef52363b6344a7f81069e5a2e239144853990839aa4084fb3', - 'serialized': 'ff011e0100000006000500000000000000023efc1da7f315f3c533a4080e491f32cd4219731cef008976c3876539e1f192d3809698000000000000020000e1f50500000000b693449adda7efc015d87944eae8b7c37eb1690a00c2eb0b00000000b693449adda7efc015d87944eae8b7c37eb1690a220b5d1597716c63f7945da495793f6fcb9997481108e9c1e4e7b72c6ec31fe11b2015b4940938ca8979e84ec06550825b3c0a24e23fdae087173d4d74e4d8bc' - } - return data - - -@pytest.fixture -def transaction_type_7(): - """Transaction of type "validator resignation" - """ - data = { - 'version': 1, - 'network': 30, - 'typeGroup': 1, - 'type': 7, - 'nonce': 5, - 'senderPublicKey': '023efc1da7f315f3c533a4080e491f32cd4219731cef008976c3876539e1f192d3', - 'fee': 2500000000, - 'value': 0, - 'signature': '34ec032ec41273043cf4f809e16e0892104743fac7da1d7ff33fb75b5569cc1c59e03558ceb2f28daf1cfaec8b88ce994c2114177f4bfeca03c0b0533d58dc1f', - 'hash': '4579323b640090f5a43f1b22d29082348a6f0016b2b28ad3bc44f1838647c83d', - 'serialized': 'ff011e0100000007000500000000000000023efc1da7f315f3c533a4080e491f32cd4219731cef008976c3876539e1f192d300f90295000000000034ec032ec41273043cf4f809e16e0892104743fac7da1d7ff33fb75b5569cc1c59e03558ceb2f28daf1cfaec8b88ce994c2114177f4bfeca03c0b0533d58dc1f' - } - return data - - -@pytest.fixture -def transaction_type_8(): - """Transaction of type "username registration" - """ - data = { - 'version': 1, - 'network': 30, - 'typeGroup': 1, - 'type': 8, - 'nonce': 9, - 'senderPublicKey': '023efc1da7f315f3c533a4080e491f32cd4219731cef008976c3876539e1f192d3', - 'fee': 2500000000, - 'asset': { - 'username': 'test_username' - }, - 'signature': 'd6886e48b8df120f5f51d22c00583ef9cda61c32fd578cd07812f95cca16cdf98972e7f0789221cf1e0ad8fe174f68b4b3fe57a32692c83e0f7b1bd18c9b1640', # noqa - 'value': 0, - 'hash': 'f6ae0049bc3b79ddac96e37ceb6dadbf311b817d70ae1613ca5a97ceba6c8d40', - 'serialized': 'ff011e0100000008000900000000000000023efc1da7f315f3c533a4080e491f32cd4219731cef008976c3876539e1f192d300f9029500000000000d746573745f757365726e616d65d6886e48b8df120f5f51d22c00583ef9cda61c32fd578cd07812f95cca16cdf98972e7f0789221cf1e0ad8fe174f68b4b3fe57a32692c83e0f7b1bd18c9b1640' # noqa - } - return data - - -@pytest.fixture -def transaction_type_9(): - """Transaction of type "username resignation" - """ - data = { - 'version': 1, - 'network': 30, - 'typeGroup': 1, - 'type': 9, - 'nonce': 9, - 'senderPublicKey': '023efc1da7f315f3c533a4080e491f32cd4219731cef008976c3876539e1f192d3', - 'fee': 2500000000, - 'value': 0, - 'signature': '728c2c5d5f090e8c5dfd433bb2b15b30442cbafb9b882117f7b6f284da4093c6a96e8456f764628ec809514ac4e8b06d5450978b9b763f7d01f696b8881f702a', - 'hash': '9d01eb12cb47d5acbfe0ba0aff501e24e8313e2b08ecba118bb45332903d776b', - 'serialized': 'ff011e0100000009000900000000000000023efc1da7f315f3c533a4080e491f32cd4219731cef008976c3876539e1f192d300f902950000000000728c2c5d5f090e8c5dfd433bb2b15b30442cbafb9b882117f7b6f284da4093c6a96e8456f764628ec809514ac4e8b06d5450978b9b763f7d01f696b8881f702a' - } - return data diff --git a/tests/fixtures/message-sign.json b/tests/fixtures/message-sign.json index 50bc350e..88ad8eaa 100644 --- a/tests/fixtures/message-sign.json +++ b/tests/fixtures/message-sign.json @@ -1,5 +1,5 @@ { "message": "Hello, world!", "publicKey": "0243333347c8cbf4e3cbc7a96964181d02a2b0c854faa2fef86b4b8d92afcf473d", - "signature": "0e2e53409be748834cac44052817ecef569b429a0492aa6bbc0d934eb71a09547e77aeef33d45669bbcba0498149f0e2b637fe8905186e08a5410c6f2b013bb41b" + "signature": "0e2e53409be748834cac44052817ecef569b429a0492aa6bbc0d934eb71a09547e77aeef33d45669bbcba0498149f0e2b637fe8905186e08a5410c6f2b013bb400" } diff --git a/tests/fixtures/transactions/evm-sign.json b/tests/fixtures/transactions/evm-sign.json index f4a4176b..edd06b3b 100644 --- a/tests/fixtures/transactions/evm-sign.json +++ b/tests/fixtures/transactions/evm-sign.json @@ -1,18 +1,18 @@ { - "data": { - "network": 10000, - "nonce": "1", - "gasPrice": 5000000000, - "gas": 200000, - "to": "0xE536720791A7DaDBeBdBCD8c8546fb0791a11901", - "value": "0", - "data": "a9059cbb00000000000000000000000027fa7caffaae77ddb9ab232fdbda56d5e5af23930000000000000000000000000000000000000000000000000000000000000064", - "v": 28, - "r": "8cd7afafdfaaa6c4b6c97e49888dff89713c99f8b1324693ef4427ce88994bbe", - "s": "01c589bb8d3bc908aaee56d64ca35458f2cebf977bbc29180c574aba8bc12b0d", - "senderPublicKey": "0243333347c8cbf4e3cbc7a96964181d02a2b0c854faa2fef86b4b8d92afcf473d", - "from": "0x1E6747BEAa5B4076a6A98D735DF8c35a70D18Bdd", - "hash": "85cdc2ae6cd4569dd1b5b11df10fc409b3996864032d6acf87ff907286f40a03" - }, - "serialized": "02f8af822710018085012a05f20083030d4094e536720791a7dadbebdbcd8c8546fb0791a1190180b844a9059cbb00000000000000000000000027fa7caffaae77ddb9ab232fdbda56d5e5af23930000000000000000000000000000000000000000000000000000000000000064c001a08cd7afafdfaaa6c4b6c97e49888dff89713c99f8b1324693ef4427ce88994bbea001c589bb8d3bc908aaee56d64ca35458f2cebf977bbc29180c574aba8bc12b0d" -} + "data": { + "nonce": "1", + "gasPrice": "5000000000", + "gasLimit": "200000", + "to": "0xE536720791A7DaDBeBdBCD8c8546fb0791a11901", + "value": "0", + "data": "a9059cbb00000000000000000000000027fa7caffaae77ddb9ab232fdbda56d5e5af23930000000000000000000000000000000000000000000000000000000000000064", + "network": 11812, + "v": 0, + "r": "14060f3bca79284de0a4bc8b4cf85a3377b058e3d5ee90b11b36c1e7eb76b3e6", + "s": "77a5c3b2ab083a0ff73d81ac00c7e2fb2c6bcd51276151b8745ef771379e22f2", + "senderPublicKey": "0243333347c8cbf4e3cbc7a96964181d02a2b0c854faa2fef86b4b8d92afcf473d", + "from": "0x1E6747BEAa5B4076a6A98D735DF8c35a70D18Bdd", + "hash": "244ab0d2ee5ebf4d503dd8e5d81222eadba8b2299c12ecee1649fcd2dd6e4714" + }, + "serialized": "f8ac0185012a05f20083030d4094e536720791a7dadbebdbcd8c8546fb0791a1190180b844a9059cbb00000000000000000000000027fa7caffaae77ddb9ab232fdbda56d5e5af23930000000000000000000000000000000000000000000000000000000000000064825c6ba014060f3bca79284de0a4bc8b4cf85a3377b058e3d5ee90b11b36c1e7eb76b3e6a077a5c3b2ab083a0ff73d81ac00c7e2fb2c6bcd51276151b8745ef771379e22f2" +} \ No newline at end of file diff --git a/tests/fixtures/transactions/multipayment-empty.json b/tests/fixtures/transactions/multipayment-empty.json index a35a1edd..3525f8b0 100644 --- a/tests/fixtures/transactions/multipayment-empty.json +++ b/tests/fixtures/transactions/multipayment-empty.json @@ -1,18 +1,18 @@ { - "data": { - "network": 10000, - "nonce": "1", - "gasPrice": 5000000000, - "gas": 200000, - "to": "0x00EFd0D4639191C49908A7BddbB9A11A994A8527", - "value": "0", - "data": "084ce7080000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "v": 27, - "r": "cbec73e1cba1177789adf44fcd3cea797d132563635fae211c350acd7c328046", - "s": "216eabb6cd1eb5c0000e7eb74f66595bd5b688f43dd646f15f33e3827c8c966b", - "senderPublicKey": "0243333347c8cbf4e3cbc7a96964181d02a2b0c854faa2fef86b4b8d92afcf473d", - "from": "0x1E6747BEAa5B4076a6A98D735DF8c35a70D18Bdd", - "hash": "555fcaca65f9319c638ebb15c5ffdee0a5e41b7dc3b171aca3707bc43f40ed57" - }, - "serialized": "02f8ef822710018085012a05f20083030d409400efd0d4639191c49908a7bddbb9a11a994a852780b884084ce7080000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c080a0cbec73e1cba1177789adf44fcd3cea797d132563635fae211c350acd7c328046a0216eabb6cd1eb5c0000e7eb74f66595bd5b688f43dd646f15f33e3827c8c966b" -} + "data": { + "nonce": "1", + "gasPrice": "5000000000", + "gasLimit": "200000", + "to": "0x00EFd0D4639191C49908A7BddbB9A11A994A8527", + "value": "0", + "data": "084ce7080000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "network": 11812, + "v": 0, + "r": "40e02ce4215d78cc865d552c8f44f5a7c80cb9e671e626f1d519aa694bb4dd78", + "s": "7840c867134eba65bad3e100b4adaae41157ed89d7f5dee60a0b7846b1c341d2", + "senderPublicKey": "0243333347c8cbf4e3cbc7a96964181d02a2b0c854faa2fef86b4b8d92afcf473d", + "from": "0x1E6747BEAa5B4076a6A98D735DF8c35a70D18Bdd", + "hash": "e547e91308efade7ebf92b47f246f0df4effdbfbbc46e4954830aaba70c0f578" + }, + "serialized": "f8ec0185012a05f20083030d409400efd0d4639191c49908a7bddbb9a11a994a852780b884084ce7080000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000825c6ba040e02ce4215d78cc865d552c8f44f5a7c80cb9e671e626f1d519aa694bb4dd78a07840c867134eba65bad3e100b4adaae41157ed89d7f5dee60a0b7846b1c341d2" +} \ No newline at end of file diff --git a/tests/fixtures/transactions/multipayment-single.json b/tests/fixtures/transactions/multipayment-single.json index 55a8b240..f6860836 100644 --- a/tests/fixtures/transactions/multipayment-single.json +++ b/tests/fixtures/transactions/multipayment-single.json @@ -1,18 +1,18 @@ { - "data": { - "network": 10000, - "nonce": "1", - "gasPrice": 5000000000, - "gas": 200000, - "to": "0x00EFd0D4639191C49908A7BddbB9A11A994A8527", - "value": "100000", - "data": "084ce7080000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000010000000000000000000000006f0182a0cc707b055322ccf6d4cb6a5aff1aeb22000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000186a0", - "v": 28, - "r": "e381eb89f21e450009706650346e3abfaee0c91c5685c8ec923d86b8212a2427", - "s": "5b3a7bfdec8ca69469e989805e7715f5d317bf62304f868a905224e7dabe7b37", - "senderPublicKey": "0243333347c8cbf4e3cbc7a96964181d02a2b0c854faa2fef86b4b8d92afcf473d", - "from": "0x1E6747BEAa5B4076a6A98D735DF8c35a70D18Bdd", - "hash": "1d0e3d567ffa39defba7904202941070b224f885f9399c817a58aeb36f4f3863" - }, - "serialized": "02f90132822710018085012a05f20083030d409400efd0d4639191c49908a7bddbb9a11a994a8527830186a0b8c4084ce7080000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000010000000000000000000000006f0182a0cc707b055322ccf6d4cb6a5aff1aeb22000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000186a0c001a0e381eb89f21e450009706650346e3abfaee0c91c5685c8ec923d86b8212a2427a05b3a7bfdec8ca69469e989805e7715f5d317bf62304f868a905224e7dabe7b37" -} + "data": { + "nonce": "1", + "gasPrice": "5000000000", + "gasLimit": "200000", + "to": "0x00EFd0D4639191C49908A7BddbB9A11A994A8527", + "value": "100000", + "data": "084ce7080000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000010000000000000000000000006f0182a0cc707b055322ccf6d4cb6a5aff1aeb22000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000186a0", + "network": 11812, + "v": 1, + "r": "49e0148931a5c7bdece9dfc1ee98192ad114d5c15545058ee7c3a8c232b3ba68", + "s": "62051ddcb47aefed5c6945dfb9a6ceb691a5d8d088d4a01275b9a24dfa174404", + "senderPublicKey": "0243333347c8cbf4e3cbc7a96964181d02a2b0c854faa2fef86b4b8d92afcf473d", + "from": "0x1E6747BEAa5B4076a6A98D735DF8c35a70D18Bdd", + "hash": "2f2ff06ba09315915d2ac86f12252a9a7ba1fa2a4b3ab0d732df5ee7d53b2e49" + }, + "serialized": "f9012f0185012a05f20083030d409400efd0d4639191c49908a7bddbb9a11a994a8527830186a0b8c4084ce7080000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000010000000000000000000000006f0182a0cc707b055322ccf6d4cb6a5aff1aeb22000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000186a0825c6ca049e0148931a5c7bdece9dfc1ee98192ad114d5c15545058ee7c3a8c232b3ba68a062051ddcb47aefed5c6945dfb9a6ceb691a5d8d088d4a01275b9a24dfa174404" +} \ No newline at end of file diff --git a/tests/fixtures/transactions/multipayment.json b/tests/fixtures/transactions/multipayment.json index e4cf64d4..cfce43b3 100644 --- a/tests/fixtures/transactions/multipayment.json +++ b/tests/fixtures/transactions/multipayment.json @@ -1,18 +1,18 @@ { - "data": { - "network": 10000, - "nonce": "1", - "gasPrice": 5000000000, - "gas": 200000, - "to": "0x00EFd0D4639191C49908A7BddbB9A11A994A8527", - "value": "300000", - "data": "084ce708000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000020000000000000000000000006f0182a0cc707b055322ccf6d4cb6a5aff1aeb22000000000000000000000000c3bbe9b1cee1ff85ad72b87414b0e9b7f2366763000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000186a00000000000000000000000000000000000000000000000000000000000030d40", - "v": 27, - "r": "0c7cfc6e77249b44385decfd49b8d4deac3c4c49147a0a8d539d82d51da81581", - "s": "6af2959905394b401c87872f78ae321cf8cfdd03fe80a815a99bdd723cc90462", - "senderPublicKey": "0243333347c8cbf4e3cbc7a96964181d02a2b0c854faa2fef86b4b8d92afcf473d", - "from": "0x1E6747BEAa5B4076a6A98D735DF8c35a70D18Bdd", - "hash": "d2b7d9e8730de8ab788a37905974c11f6df1a7e5bea5f9a716bffbec17b1d3a8" - }, - "serialized": "02f90173822710018085012a05f20083030d409400efd0d4639191c49908a7bddbb9a11a994a8527830493e0b90104084ce708000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000020000000000000000000000006f0182a0cc707b055322ccf6d4cb6a5aff1aeb22000000000000000000000000c3bbe9b1cee1ff85ad72b87414b0e9b7f2366763000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000186a00000000000000000000000000000000000000000000000000000000000030d40c080a00c7cfc6e77249b44385decfd49b8d4deac3c4c49147a0a8d539d82d51da81581a06af2959905394b401c87872f78ae321cf8cfdd03fe80a815a99bdd723cc90462" -} + "data": { + "nonce": "1", + "gasPrice": "5000000000", + "gasLimit": "200000", + "to": "0x00EFd0D4639191C49908A7BddbB9A11A994A8527", + "value": "300000", + "data": "084ce708000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000020000000000000000000000006f0182a0cc707b055322ccf6d4cb6a5aff1aeb22000000000000000000000000c3bbe9b1cee1ff85ad72b87414b0e9b7f2366763000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000186a00000000000000000000000000000000000000000000000000000000000030d40", + "network": 11812, + "v": 1, + "r": "9720cd5959af4fc513ec8f9c55a3f3b53a1f24a3a577e8132cadd81c116c6c82", + "s": "3411570db14d5e1a6673b2e80fe6cc22bf67752808ac4752c8bcfd9732e33dc8", + "senderPublicKey": "0243333347c8cbf4e3cbc7a96964181d02a2b0c854faa2fef86b4b8d92afcf473d", + "from": "0x1E6747BEAa5B4076a6A98D735DF8c35a70D18Bdd", + "hash": "f603e0b5fe0743021d2879ffe53ace7b40c9d823edbf058bd25a045753c82aa9" + }, + "serialized": "f901700185012a05f20083030d409400efd0d4639191c49908a7bddbb9a11a994a8527830493e0b90104084ce708000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000020000000000000000000000006f0182a0cc707b055322ccf6d4cb6a5aff1aeb22000000000000000000000000c3bbe9b1cee1ff85ad72b87414b0e9b7f2366763000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000186a00000000000000000000000000000000000000000000000000000000000030d40825c6ca09720cd5959af4fc513ec8f9c55a3f3b53a1f24a3a577e8132cadd81c116c6c82a03411570db14d5e1a6673b2e80fe6cc22bf67752808ac4752c8bcfd9732e33dc8" +} \ No newline at end of file diff --git a/tests/fixtures/transactions/transfer-0.json b/tests/fixtures/transactions/transfer-0.json index 57ffd702..117de293 100644 --- a/tests/fixtures/transactions/transfer-0.json +++ b/tests/fixtures/transactions/transfer-0.json @@ -1,18 +1,18 @@ { - "data": { - "network": 10000, - "nonce": "1", - "gasPrice": 5000000000, - "gas": 21000, - "to": "0x6F0182a0cc707b055322CcF6d4CB6a5Aff1aEb22", - "value": "0", - "data": "", - "v": 27, - "r": "2c42ef45cb01b01c0a59b61a7e82d37c8566e0fc0f0f47c2a2825d1cbc8abefc", - "s": "455bb2aec9d8d038db506d5a964728c78eaa4f237e0d40666742e4d5d686f576", - "senderPublicKey": "0243333347c8cbf4e3cbc7a96964181d02a2b0c854faa2fef86b4b8d92afcf473d", - "from": "0x1E6747BEAa5B4076a6A98D735DF8c35a70D18Bdd", - "hash": "241ce787680623dea7b9acf2951e2f8b8afac5f92b33b9909ab2bfbadf4be92c" - }, - "serialized": "02f869822710018085012a05f200825208946f0182a0cc707b055322ccf6d4cb6a5aff1aeb228080c080a02c42ef45cb01b01c0a59b61a7e82d37c8566e0fc0f0f47c2a2825d1cbc8abefca0455bb2aec9d8d038db506d5a964728c78eaa4f237e0d40666742e4d5d686f576" -} + "data": { + "nonce": "1", + "gasPrice": "5000000000", + "gasLimit": "21000", + "to": "0x6F0182a0cc707b055322CcF6d4CB6a5Aff1aEb22", + "value": "0", + "data": "", + "network": 11812, + "v": 1, + "r": "a645cd813052b8a317bbd4f5ae99cfbaf99e15ea96b74d1a971eefb7341cd16b", + "s": "5008e178fe9f6226815af300aebc68fbb1e5e906f1a989f8ee35138a3614d4cb", + "senderPublicKey": "0243333347c8cbf4e3cbc7a96964181d02a2b0c854faa2fef86b4b8d92afcf473d", + "from": "0x1E6747BEAa5B4076a6A98D735DF8c35a70D18Bdd", + "hash": "73570e6c367ee1b23339c6df4ba79b23fd12af3811c2c8f23fa578d7ced2a95c" + }, + "serialized": "f8660185012a05f200825208946f0182a0cc707b055322ccf6d4cb6a5aff1aeb228080825c6ca0a645cd813052b8a317bbd4f5ae99cfbaf99e15ea96b74d1a971eefb7341cd16ba05008e178fe9f6226815af300aebc68fbb1e5e906f1a989f8ee35138a3614d4cb" +} \ No newline at end of file diff --git a/tests/fixtures/transactions/transfer-large-amount.json b/tests/fixtures/transactions/transfer-large-amount.json index 2d66a93a..9d44b59a 100644 --- a/tests/fixtures/transactions/transfer-large-amount.json +++ b/tests/fixtures/transactions/transfer-large-amount.json @@ -1,18 +1,18 @@ { - "data": { - "network": 10000, - "nonce": "1", - "gasPrice": 5000000000, - "gas": 21000, - "to": "0x6F0182a0cc707b055322CcF6d4CB6a5Aff1aEb22", - "value": "10000000000000000000", - "data": "", - "v": 27, - "r": "62666b937e4c3f55c87c44ee72b5a228c1377adbdad44264dd953b3c2b878734", - "s": "2d8670a69ce09018cfac5604d59a2b74bee18c99a91cbd14ac33c3ccfe96a35a", - "senderPublicKey": "0243333347c8cbf4e3cbc7a96964181d02a2b0c854faa2fef86b4b8d92afcf473d", - "from": "0x1E6747BEAa5B4076a6A98D735DF8c35a70D18Bdd", - "hash": "0d22ff14b09da9c5fa975d8fe79b93086853d223000cf88ff923a57650c93e4a" - }, - "serialized": "02f871822710018085012a05f200825208946f0182a0cc707b055322ccf6d4cb6a5aff1aeb22888ac7230489e8000080c080a062666b937e4c3f55c87c44ee72b5a228c1377adbdad44264dd953b3c2b878734a02d8670a69ce09018cfac5604d59a2b74bee18c99a91cbd14ac33c3ccfe96a35a" -} + "data": { + "nonce": "1", + "gasPrice": "5000000000", + "gasLimit": "21000", + "to": "0x6F0182a0cc707b055322CcF6d4CB6a5Aff1aEb22", + "value": "10000000000000000000", + "data": "", + "network": 11812, + "v": 1, + "r": "2ee46aba6c285231d92bb3eb7c348ac01fa5d4e1f057ad8ba47d4c5f120c9090", + "s": "559b3971e492cfd8b1dc1fecdefcc0ed99619ffc1da09e12144880070134e6b1", + "senderPublicKey": "0243333347c8cbf4e3cbc7a96964181d02a2b0c854faa2fef86b4b8d92afcf473d", + "from": "0x1E6747BEAa5B4076a6A98D735DF8c35a70D18Bdd", + "hash": "5546be3e83984644030daa06ae8445d8367ad9e503bd7b87e3761d3ab676e75e" + }, + "serialized": "f86e0185012a05f200825208946f0182a0cc707b055322ccf6d4cb6a5aff1aeb22888ac7230489e8000080825c6ca02ee46aba6c285231d92bb3eb7c348ac01fa5d4e1f057ad8ba47d4c5f120c9090a0559b3971e492cfd8b1dc1fecdefcc0ed99619ffc1da09e12144880070134e6b1" +} \ No newline at end of file diff --git a/tests/fixtures/transactions/transfer.json b/tests/fixtures/transactions/transfer.json index e90b60dc..6fe549e0 100644 --- a/tests/fixtures/transactions/transfer.json +++ b/tests/fixtures/transactions/transfer.json @@ -1,18 +1,18 @@ { - "data": { - "network": 10000, - "nonce": "1", - "gasPrice": 5000000000, - "gas": 21000, - "to": "0x6F0182a0cc707b055322CcF6d4CB6a5Aff1aEb22", - "value": "100000000", - "data": "", - "v": 28, - "r": "104665257d4dea61c4654e74c6c0f6cd0a398905781c3040bea67dc641a66da0", - "s": "46d718d04b2331f3b0561808549ed3f3f0d867a284acf6b334869078df7a9136", - "senderPublicKey": "0243333347c8cbf4e3cbc7a96964181d02a2b0c854faa2fef86b4b8d92afcf473d", - "from": "0x1E6747BEAa5B4076a6A98D735DF8c35a70D18Bdd", - "hash": "b7927d90b38cd1296351f26145b3d8b0674fdc9b8721bc1a10f71a12bcbccf60" - }, - "serialized": "02f86d822710018085012a05f200825208946f0182a0cc707b055322ccf6d4cb6a5aff1aeb228405f5e10080c001a0104665257d4dea61c4654e74c6c0f6cd0a398905781c3040bea67dc641a66da0a046d718d04b2331f3b0561808549ed3f3f0d867a284acf6b334869078df7a9136" -} + "data": { + "nonce": "1", + "gasPrice": "5000000000", + "gasLimit": "21000", + "to": "0x6F0182a0cc707b055322CcF6d4CB6a5Aff1aEb22", + "value": "100000000", + "data": "", + "network": 11812, + "v": 0, + "r": "a1f79cb40a4bb409d6cebd874002ceda3ec0ccb614c1d8155f5c2f7f798135f9", + "s": "2d2ef517aaf6feed747385e260c206f46b2ce9d6b2a585427a111685a097bd79", + "senderPublicKey": "0243333347c8cbf4e3cbc7a96964181d02a2b0c854faa2fef86b4b8d92afcf473d", + "from": "0x1E6747BEAa5B4076a6A98D735DF8c35a70D18Bdd", + "hash": "a39435ec5de418e77479856d06a653efc171afe43e091472af22ee359eeb83be" + }, + "serialized": "f86a0185012a05f200825208946f0182a0cc707b055322ccf6d4cb6a5aff1aeb228405f5e10080825c6ba0a1f79cb40a4bb409d6cebd874002ceda3ec0ccb614c1d8155f5c2f7f798135f9a02d2ef517aaf6feed747385e260c206f46b2ce9d6b2a585427a111685a097bd79" +} \ No newline at end of file diff --git a/tests/fixtures/transactions/unvote.json b/tests/fixtures/transactions/unvote.json index 058e0ed1..8708e366 100644 --- a/tests/fixtures/transactions/unvote.json +++ b/tests/fixtures/transactions/unvote.json @@ -1,18 +1,18 @@ { - "data": { - "network": 10000, - "nonce": "1", - "gasPrice": 5000000000, - "gas": 200000, - "to": "0x535B3D7A252fa034Ed71F0C53ec0C6F784cB64E1", - "value": "0", - "data": "3174b689", - "v": 27, - "r": "bd7f932c18b49e05600cd1603808fd0a19701ee4af99035fc7b1a9159458d08d", - "s": "18a4420edfdc90fcff7c6e4d062ae11dae7a62a7ab53f6499862f3e79d67a252", - "senderPublicKey": "0243333347c8cbf4e3cbc7a96964181d02a2b0c854faa2fef86b4b8d92afcf473d", - "from": "0x1E6747BEAa5B4076a6A98D735DF8c35a70D18Bdd", - "hash": "ed937a96f4edc0fa89e7d6146b88f17a3de71f86fc200da49c73e7c93eabfea9" - }, - "serialized": "02f86e822710018085012a05f20083030d4094535b3d7a252fa034ed71f0c53ec0c6f784cb64e180843174b689c080a0bd7f932c18b49e05600cd1603808fd0a19701ee4af99035fc7b1a9159458d08da018a4420edfdc90fcff7c6e4d062ae11dae7a62a7ab53f6499862f3e79d67a252" -} + "data": { + "nonce": "1", + "gasPrice": "5000000000", + "gasLimit": "200000", + "to": "0x535B3D7A252fa034Ed71F0C53ec0C6F784cB64E1", + "value": "0", + "data": "3174b689", + "network": 11812, + "v": 0, + "r": "7e05d686131973a9fbda9028f9df5702d9a229823b183caac03ec3a874ccec52", + "s": "1980fbc959612d8c7b97f6f16742259635f42a2039839a81aaaeb7ae6930a5f5", + "senderPublicKey": "0243333347c8cbf4e3cbc7a96964181d02a2b0c854faa2fef86b4b8d92afcf473d", + "from": "0x1E6747BEAa5B4076a6A98D735DF8c35a70D18Bdd", + "hash": "38d018d22e2cef185dc3c2f5d25ec63535160d8dfeaf78da8db719cb7ffc730d" + }, + "serialized": "f86b0185012a05f20083030d4094535b3d7a252fa034ed71f0c53ec0c6f784cb64e180843174b689825c6ba07e05d686131973a9fbda9028f9df5702d9a229823b183caac03ec3a874ccec52a01980fbc959612d8c7b97f6f16742259635f42a2039839a81aaaeb7ae6930a5f5" +} \ No newline at end of file diff --git a/tests/fixtures/transactions/username-registration.json b/tests/fixtures/transactions/username-registration.json index 931c6166..afe110dd 100644 --- a/tests/fixtures/transactions/username-registration.json +++ b/tests/fixtures/transactions/username-registration.json @@ -1,18 +1,18 @@ { - "data": { - "network": 10000, - "nonce": "1", - "gasPrice": 5000000000, - "gas": 200000, - "to": "0x2c1DE3b4Dbb4aDebEbB5dcECAe825bE2a9fc6eb6", - "value": "0", - "data": "36a94134000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000076669787475726500000000000000000000000000000000000000000000000000", - "v": 28, - "r": "4564cc1adbde3e8a309bf9d3eb76b45fecfae62fbdc0604f70483197de4d66b3", - "s": "4d4573a50c9a80221c21d11ce51b9b8bd196f9e1ab1a805b7d8b8e56fcfe2003", - "senderPublicKey": "0243333347c8cbf4e3cbc7a96964181d02a2b0c854faa2fef86b4b8d92afcf473d", - "from": "0x1E6747BEAa5B4076a6A98D735DF8c35a70D18Bdd", - "hash": "781979a58ac75475b91a1e401b50f9cc52465b21fe83e1c30e05676aaeb6a806" - }, - "serialized": "02f8cf822710018085012a05f20083030d40942c1de3b4dbb4adebebb5dcecae825be2a9fc6eb680b86436a94134000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000076669787475726500000000000000000000000000000000000000000000000000c001a04564cc1adbde3e8a309bf9d3eb76b45fecfae62fbdc0604f70483197de4d66b3a04d4573a50c9a80221c21d11ce51b9b8bd196f9e1ab1a805b7d8b8e56fcfe2003" -} + "data": { + "nonce": "1", + "gasPrice": "5000000000", + "gasLimit": "200000", + "to": "0x2c1DE3b4Dbb4aDebEbB5dcECAe825bE2a9fc6eb6", + "value": "0", + "data": "36a94134000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000076669787475726500000000000000000000000000000000000000000000000000", + "network": 11812, + "v": 1, + "r": "80c77145c6b5450f4805e7c7b649b49653d151ca74275991ae49731084e35049", + "s": "1a25084fb0e997f93d9cc84472281f01c3e1fdeb15c29abf24f3469aeaac87c1", + "senderPublicKey": "0243333347c8cbf4e3cbc7a96964181d02a2b0c854faa2fef86b4b8d92afcf473d", + "from": "0x1E6747BEAa5B4076a6A98D735DF8c35a70D18Bdd", + "hash": "0fd23793ced45b59f54d6250b0d74860fb5960ffc971457c349032cc33cf560a" + }, + "serialized": "f8cc0185012a05f20083030d40942c1de3b4dbb4adebebb5dcecae825be2a9fc6eb680b86436a94134000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000076669787475726500000000000000000000000000000000000000000000000000825c6ca080c77145c6b5450f4805e7c7b649b49653d151ca74275991ae49731084e35049a01a25084fb0e997f93d9cc84472281f01c3e1fdeb15c29abf24f3469aeaac87c1" +} \ No newline at end of file diff --git a/tests/fixtures/transactions/username-resignation.json b/tests/fixtures/transactions/username-resignation.json index 372ec3af..c0a1d777 100644 --- a/tests/fixtures/transactions/username-resignation.json +++ b/tests/fixtures/transactions/username-resignation.json @@ -1,18 +1,18 @@ { - "data": { - "network": 10000, - "nonce": "1", - "gasPrice": 5000000000, - "gas": 200000, - "to": "0x2c1DE3b4Dbb4aDebEbB5dcECAe825bE2a9fc6eb6", - "value": "0", - "data": "ebed6dab", - "v": 27, - "r": "c786beafa03da8c6485bc15870ea8512db27427e3aa38654a7b8d534b30c48da", - "s": "78b2b4568f4d0f5d482c670001e6877b282ed6e16cdcbea6bd29195ca2bb036d", - "senderPublicKey": "0243333347c8cbf4e3cbc7a96964181d02a2b0c854faa2fef86b4b8d92afcf473d", - "from": "0x1E6747BEAa5B4076a6A98D735DF8c35a70D18Bdd", - "hash": "d1647fe630bcf63a23bda6015295dafe246356b0e7930cdc8a52f216fa4429a5" - }, - "serialized": "02f86e822710018085012a05f20083030d40942c1de3b4dbb4adebebb5dcecae825be2a9fc6eb68084ebed6dabc080a0c786beafa03da8c6485bc15870ea8512db27427e3aa38654a7b8d534b30c48daa078b2b4568f4d0f5d482c670001e6877b282ed6e16cdcbea6bd29195ca2bb036d" -} + "data": { + "nonce": "1", + "gasPrice": "5000000000", + "gasLimit": "200000", + "to": "0x2c1DE3b4Dbb4aDebEbB5dcECAe825bE2a9fc6eb6", + "value": "0", + "data": "ebed6dab", + "network": 11812, + "v": 0, + "r": "9092b27fd1ae599b3248cc0fb3d652b63f77537d0d8d75695394cbb4f2b42d12", + "s": "7d887c8e4b9a989bfb35abe87f6f5850669596b1d4bbc1b42a7a8a04ea982477", + "senderPublicKey": "0243333347c8cbf4e3cbc7a96964181d02a2b0c854faa2fef86b4b8d92afcf473d", + "from": "0x1E6747BEAa5B4076a6A98D735DF8c35a70D18Bdd", + "hash": "204c05f0590157fd71377130ddc962928a53c5b178302061969d294a43ff6909" + }, + "serialized": "f86b0185012a05f20083030d40942c1de3b4dbb4adebebb5dcecae825be2a9fc6eb68084ebed6dab825c6ba09092b27fd1ae599b3248cc0fb3d652b63f77537d0d8d75695394cbb4f2b42d12a07d887c8e4b9a989bfb35abe87f6f5850669596b1d4bbc1b42a7a8a04ea982477" +} \ No newline at end of file diff --git a/tests/fixtures/transactions/validator-registration.json b/tests/fixtures/transactions/validator-registration.json index 77f61555..8c41c4e3 100644 --- a/tests/fixtures/transactions/validator-registration.json +++ b/tests/fixtures/transactions/validator-registration.json @@ -1,18 +1,18 @@ { - "data": { - "network": 10000, - "nonce": "1", - "gasPrice": 5000000000, - "gas": 200000, - "to": "0x535B3D7A252fa034Ed71F0C53ec0C6F784cB64E1", - "value": "250000000000000000000", - "data": "602a9eee0000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000003030954f46d6097a1d314e900e66e11e0dad0a57cd03e04ec99f0dedd1c765dcb11e6d7fa02e22cf40f9ee23d9cc1c062400000000000000000000000000000000", - "v": 28, - "r": "94cc05fc2abfdf0d84b5aa8a0d7ecfc7e07076e137d97781725daa568cda3b72", - "s": "6fde8095be44340cc34f12d192cec63289c0eba759e3df25b6e89c05786588cd", - "senderPublicKey": "0243333347c8cbf4e3cbc7a96964181d02a2b0c854faa2fef86b4b8d92afcf473d", - "from": "0x1E6747BEAa5B4076a6A98D735DF8c35a70D18Bdd", - "hash": "a3a35d0fe9429b43833b4f4b8ec90cc56f431d68e24d10602967d9eab68caf6b" - }, - "serialized": "02f8f8822710018085012a05f20083030d4094535b3d7a252fa034ed71f0c53ec0c6f784cb64e1890d8d726b7177a80000b884602a9eee0000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000003030954f46d6097a1d314e900e66e11e0dad0a57cd03e04ec99f0dedd1c765dcb11e6d7fa02e22cf40f9ee23d9cc1c062400000000000000000000000000000000c001a094cc05fc2abfdf0d84b5aa8a0d7ecfc7e07076e137d97781725daa568cda3b72a06fde8095be44340cc34f12d192cec63289c0eba759e3df25b6e89c05786588cd" + "data": { + "nonce": "1", + "gasPrice": "5000000000", + "gasLimit": "200000", + "to": "0x535B3D7A252fa034Ed71F0C53ec0C6F784cB64E1", + "value": "250000000000000000000", + "data": "602a9eee0000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000003030954f46d6097a1d314e900e66e11e0dad0a57cd03e04ec99f0dedd1c765dcb11e6d7fa02e22cf40f9ee23d9cc1c062400000000000000000000000000000000", + "network": 11812, + "v": 0, + "r": "c36e366f58d30e34099fdaf2104081bc75aaca456d042618df0e7fdfce48d9a6", + "s": "7cc525d7cfa88f83286396b483ef817a9e14cc240ce027ac9bee38c1fdc7e883", + "senderPublicKey": "0243333347c8cbf4e3cbc7a96964181d02a2b0c854faa2fef86b4b8d92afcf473d", + "from": "0x1E6747BEAa5B4076a6A98D735DF8c35a70D18Bdd", + "hash": "09edf0fcf2af28ff4ad05e0dc831119f25dcdc3261d786b9fa953a227d560b2e" + }, + "serialized": "f8f50185012a05f20083030d4094535b3d7a252fa034ed71f0c53ec0c6f784cb64e1890d8d726b7177a80000b884602a9eee0000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000003030954f46d6097a1d314e900e66e11e0dad0a57cd03e04ec99f0dedd1c765dcb11e6d7fa02e22cf40f9ee23d9cc1c062400000000000000000000000000000000825c6ba0c36e366f58d30e34099fdaf2104081bc75aaca456d042618df0e7fdfce48d9a6a07cc525d7cfa88f83286396b483ef817a9e14cc240ce027ac9bee38c1fdc7e883" } diff --git a/tests/fixtures/transactions/validator-resignation.json b/tests/fixtures/transactions/validator-resignation.json index 58ddbabf..2776e42b 100644 --- a/tests/fixtures/transactions/validator-resignation.json +++ b/tests/fixtures/transactions/validator-resignation.json @@ -1,18 +1,18 @@ { - "data": { - "network": 10000, - "nonce": "1", - "gasPrice": 5000000000, - "gas": 200000, - "to": "0x535B3D7A252fa034Ed71F0C53ec0C6F784cB64E1", - "value": "0", - "data": "b85f5da2", - "v": 28, - "r": "5670e5d314906eeaf92da15b55eaeabbb92814874f2fe6c72bcbee7e13e7ff40", - "s": "32a34c8438e441d10e83180b5a8a84cf1bfb92fc0fe8b53cd23dc4105631b83d", - "senderPublicKey": "0243333347c8cbf4e3cbc7a96964181d02a2b0c854faa2fef86b4b8d92afcf473d", - "from": "0x1E6747BEAa5B4076a6A98D735DF8c35a70D18Bdd", - "hash": "2dc3b976d8dee25e2ecf341c1493670d9d087cc338ed63f764c0eb9e28869dc3" - }, - "serialized": "02f86e822710018085012a05f20083030d4094535b3d7a252fa034ed71f0c53ec0c6f784cb64e18084b85f5da2c001a05670e5d314906eeaf92da15b55eaeabbb92814874f2fe6c72bcbee7e13e7ff40a032a34c8438e441d10e83180b5a8a84cf1bfb92fc0fe8b53cd23dc4105631b83d" -} + "data": { + "nonce": "1", + "gasPrice": "5000000000", + "gasLimit": "200000", + "to": "0x535B3D7A252fa034Ed71F0C53ec0C6F784cB64E1", + "value": "0", + "data": "b85f5da2", + "network": 11812, + "v": 1, + "r": "c4cdcf1e6ea401db32e3688aeb2e89e790ce2ea82b57a0125585ba085d6cec5c", + "s": "0a8cde2f42b20a5b6aeb3a4d8443fc5c31f2c3af5eb698551a057bd5709847e3", + "senderPublicKey": "0243333347c8cbf4e3cbc7a96964181d02a2b0c854faa2fef86b4b8d92afcf473d", + "from": "0x1E6747BEAa5B4076a6A98D735DF8c35a70D18Bdd", + "hash": "6bfc80b761bba22759f282a0639637f402e86ca07ca952833e0590592a661401" + }, + "serialized": "f86b0185012a05f20083030d4094535b3d7a252fa034ed71f0c53ec0c6f784cb64e18084b85f5da2825c6ca0c4cdcf1e6ea401db32e3688aeb2e89e790ce2ea82b57a0125585ba085d6cec5ca00a8cde2f42b20a5b6aeb3a4d8443fc5c31f2c3af5eb698551a057bd5709847e3" +} \ No newline at end of file diff --git a/tests/fixtures/transactions/vote.json b/tests/fixtures/transactions/vote.json index 93859176..f412de29 100644 --- a/tests/fixtures/transactions/vote.json +++ b/tests/fixtures/transactions/vote.json @@ -1,18 +1,18 @@ { - "data": { - "network": 10000, - "nonce": "1", - "gasPrice": 5000000000, - "gas": 200000, - "to": "0x535B3D7A252fa034Ed71F0C53ec0C6F784cB64E1", - "value": "0", - "data": "6dd7d8ea000000000000000000000000c3bbe9b1cee1ff85ad72b87414b0e9b7f2366763", - "v": 27, - "r": "67734fadb38bd9cd584d39fc08af836f15dd6337b05511b312add11a3586451a", - "s": "08ba89cec57c38b1e1f488d3507b9cbe1a21aa3f441482e62bd9c1eef61d3bd9", - "senderPublicKey": "0243333347c8cbf4e3cbc7a96964181d02a2b0c854faa2fef86b4b8d92afcf473d", - "from": "0x1E6747BEAa5B4076a6A98D735DF8c35a70D18Bdd", - "hash": "351114ee096ad8a02ddb7abee6f4fe283b8dadceff17157722d7a8153de710c1" - }, - "serialized": "02f88e822710018085012a05f20083030d4094535b3d7a252fa034ed71f0c53ec0c6f784cb64e180a46dd7d8ea000000000000000000000000c3bbe9b1cee1ff85ad72b87414b0e9b7f2366763c080a067734fadb38bd9cd584d39fc08af836f15dd6337b05511b312add11a3586451aa008ba89cec57c38b1e1f488d3507b9cbe1a21aa3f441482e62bd9c1eef61d3bd9" -} + "data": { + "nonce": "1", + "gasPrice": "5000000000", + "gasLimit": "200000", + "to": "0x535B3D7A252fa034Ed71F0C53ec0C6F784cB64E1", + "value": "0", + "data": "6dd7d8ea000000000000000000000000c3bbe9b1cee1ff85ad72b87414b0e9b7f2366763", + "network": 11812, + "v": 1, + "r": "48cdb8cd112e05823e227319b66f2ef5e89c16ff5c568edab1cfa5f3fd8401c0", + "s": "264a4bcd27a62696e15e8588765b2739c3ed34f4b83aacd87998b2ac4c4335ec", + "senderPublicKey": "0243333347c8cbf4e3cbc7a96964181d02a2b0c854faa2fef86b4b8d92afcf473d", + "from": "0x1E6747BEAa5B4076a6A98D735DF8c35a70D18Bdd", + "hash": "7885cf77a0b272488efa03ed14994f2560490d14bd5df9b5fbdb7a6f389c8713" + }, + "serialized": "f88b0185012a05f20083030d4094535b3d7a252fa034ed71f0c53ec0c6f784cb64e180a46dd7d8ea000000000000000000000000c3bbe9b1cee1ff85ad72b87414b0e9b7f2366763825c6ca048cdb8cd112e05823e227319b66f2ef5e89c16ff5c568edab1cfa5f3fd8401c0a0264a4bcd27a62696e15e8588765b2739c3ed34f4b83aacd87998b2ac4c4335ec" +} \ No newline at end of file diff --git a/tests/identity/conftest.py b/tests/identity/conftest.py index ebda2616..df8a6fb1 100644 --- a/tests/identity/conftest.py +++ b/tests/identity/conftest.py @@ -25,7 +25,7 @@ def sign_compact(): 'data': { 'serialized': '1c104665257d4dea61c4654e74c6c0f6cd0a398905781c3040bea67dc641a66da046d718d04b2331f3b0561808549ed3f3f0d867a284acf6b334869078df7a9136', 'message': '02ea822710018085012a05f200825208946f0182a0cc707b055322ccf6d4cb6a5aff1aeb228405f5e10080c0', - 'v': 28, + 'v': 1, 'r': '104665257d4dea61c4654e74c6c0f6cd0a398905781c3040bea67dc641a66da0', 's': '46d718d04b2331f3b0561808549ed3f3f0d867a284acf6b334869078df7a9136', }, diff --git a/tests/identity/test_private_key.py b/tests/identity/test_private_key.py index f983d461..fcbe7b77 100644 --- a/tests/identity/test_private_key.py +++ b/tests/identity/test_private_key.py @@ -20,7 +20,6 @@ def test_sign_compact(sign_compact): assert signature[0] == sign_compact['data']['v'] assert signature[1:33] == bytes.fromhex(sign_compact['data']['r']) assert signature[33:] == bytes.fromhex(sign_compact['data']['s']) - assert signature.hex() == sign_compact['data']['serialized'] def test_it_should_parse_the_private_key_from_wif(identity): private_key = PrivateKey.from_wif(identity['data']['wif']) diff --git a/tests/transactions/builder/test_evm_call_builder.py b/tests/transactions/builder/test_evm_call_builder.py index 8741abe8..2b4a4af2 100644 --- a/tests/transactions/builder/test_evm_call_builder.py +++ b/tests/transactions/builder/test_evm_call_builder.py @@ -7,18 +7,16 @@ def test_evm_call_transaction(passphrase, load_transaction_fixture): EvmCallBuilder .new() .gas_price(fixture['data']['gasPrice']) + .gas_limit(fixture['data']['gasLimit']) .nonce(fixture['data']['nonce']) - .network(fixture['data']['network']) .payload(fixture['data']['data']) - .gas(fixture['data']['gas']) .to('0xE536720791A7DaDBeBdBCD8c8546fb0791a11901') .sign(passphrase) ) - assert builder.transaction.data['gasPrice'] == fixture['data']['gasPrice'] + assert builder.transaction.data['gasPrice'] == int(fixture['data']['gasPrice']) + assert builder.transaction.data['gasLimit'] == int(fixture['data']['gasLimit']) assert builder.transaction.data['nonce'] == fixture['data']['nonce'] - assert builder.transaction.data['network'] == fixture['data']['network'] - assert builder.transaction.data['gas'] == fixture['data']['gas'] assert builder.transaction.data['to'].lower() == fixture['data']['to'].lower() assert builder.transaction.data['value'] == int(fixture['data']['value']) assert builder.transaction.data['v'] == fixture['data']['v'] diff --git a/tests/transactions/builder/test_multipayment_builder.py b/tests/transactions/builder/test_multipayment_builder.py index dcb82d93..ebbec394 100644 --- a/tests/transactions/builder/test_multipayment_builder.py +++ b/tests/transactions/builder/test_multipayment_builder.py @@ -7,18 +7,16 @@ def test_it_should_sign_it_with_a_passphrase(passphrase, load_transaction_fixtur MultipaymentBuilder .new() .gas_price(fixture['data']['gasPrice']) + .gas_limit(fixture['data']['gasLimit']) .nonce(fixture['data']['nonce']) - .network(fixture['data']['network']) - .gas(fixture['data']['gas']) .pay('0x6F0182a0cc707b055322CcF6d4CB6a5Aff1aEb22', '100000') .pay('0xc3bbe9b1cee1ff85ad72b87414b0e9b7f2366763', '200000') .sign(passphrase) ) - assert builder.transaction.data['gasPrice'] == fixture['data']['gasPrice'] + assert builder.transaction.data['gasPrice'] == int(fixture['data']['gasPrice']) + assert builder.transaction.data['gasLimit'] == int(fixture['data']['gasLimit']) assert builder.transaction.data['nonce'] == fixture['data']['nonce'] - assert builder.transaction.data['network'] == fixture['data']['network'] - assert builder.transaction.data['gas'] == fixture['data']['gas'] assert builder.transaction.data['v'] == fixture['data']['v'] assert builder.transaction.data['r'] == fixture['data']['r'] assert builder.transaction.data['s'] == fixture['data']['s'] @@ -34,17 +32,15 @@ def test_it_should_handle_single_recipient(passphrase, load_transaction_fixture) MultipaymentBuilder .new() .gas_price(fixture['data']['gasPrice']) + .gas_limit(fixture['data']['gasLimit']) .nonce(fixture['data']['nonce']) - .network(fixture['data']['network']) - .gas(fixture['data']['gas']) .pay('0x6F0182a0cc707b055322CcF6d4CB6a5Aff1aEb22', '100000') .sign(passphrase) ) - assert builder.transaction.data['gasPrice'] == fixture['data']['gasPrice'] + assert builder.transaction.data['gasPrice'] == int(fixture['data']['gasPrice']) + assert builder.transaction.data['gasLimit'] == int(fixture['data']['gasLimit']) assert builder.transaction.data['nonce'] == fixture['data']['nonce'] - assert builder.transaction.data['network'] == fixture['data']['network'] - assert builder.transaction.data['gas'] == fixture['data']['gas'] assert builder.transaction.data['v'] == fixture['data']['v'] assert builder.transaction.data['r'] == fixture['data']['r'] assert builder.transaction.data['s'] == fixture['data']['s'] @@ -60,16 +56,14 @@ def test_it_should_handle_empty_payment(passphrase, load_transaction_fixture): MultipaymentBuilder .new() .gas_price(fixture['data']['gasPrice']) + .gas_limit(fixture['data']['gasLimit']) .nonce(fixture['data']['nonce']) - .network(fixture['data']['network']) - .gas(fixture['data']['gas']) .sign(passphrase) ) - assert builder.transaction.data['gasPrice'] == fixture['data']['gasPrice'] + assert builder.transaction.data['gasPrice'] == int(fixture['data']['gasPrice']) + assert builder.transaction.data['gasLimit'] == int(fixture['data']['gasLimit']) assert builder.transaction.data['nonce'] == fixture['data']['nonce'] - assert builder.transaction.data['network'] == fixture['data']['network'] - assert builder.transaction.data['gas'] == fixture['data']['gas'] assert builder.transaction.data['v'] == fixture['data']['v'] assert builder.transaction.data['r'] == fixture['data']['r'] assert builder.transaction.data['s'] == fixture['data']['s'] diff --git a/tests/transactions/builder/test_transfer_builder.py b/tests/transactions/builder/test_transfer_builder.py index 92f31be3..5f9db213 100644 --- a/tests/transactions/builder/test_transfer_builder.py +++ b/tests/transactions/builder/test_transfer_builder.py @@ -9,17 +9,15 @@ def test_it_should_sign_it_with_a_passphrase(passphrase, load_transaction_fixtur .new() .gas_price(fixture['data']['gasPrice']) .nonce(fixture['data']['nonce']) - .network(fixture['data']['network']) - .gas(fixture['data']['gas']) + .gas_limit(fixture['data']['gasLimit']) .to(fixture['data']['to']) .value(fixture['data']['value']) .sign(passphrase) ) - assert builder.transaction.data['gasPrice'] == fixture['data']['gasPrice'] + assert builder.transaction.data['gasPrice'] == int(fixture['data']['gasPrice']) + assert builder.transaction.data['gasLimit'] == int(fixture['data']['gasLimit']) assert builder.transaction.data['nonce'] == fixture['data']['nonce'] - assert builder.transaction.data['network'] == fixture['data']['network'] - assert builder.transaction.data['gas'] == fixture['data']['gas'] assert builder.transaction.data['to'] == fixture['data']['to'] assert builder.transaction.data['value'] == int(fixture['data']['value']) assert builder.transaction.data['v'] == fixture['data']['v'] @@ -36,15 +34,15 @@ def test_it_should_handle_unit_converter(passphrase, address): .new() .gas_price(UnitConverter.parse_units(5, 'gwei')) .nonce('1') - .gas(UnitConverter.parse_units(0.1, 'gwei')) + .gas_limit(UnitConverter.parse_units(0.1, 'gwei')) .to(address) .value(UnitConverter.parse_units(10, 'ark')) .sign(passphrase) ) assert builder.transaction.data['gasPrice'] == 5000000000 + assert builder.transaction.data['gasLimit'] == 100000000 assert builder.transaction.data['nonce'] == '1' - assert builder.transaction.data['gas'] == 100000000 assert builder.transaction.data['value'] == 10000000000000000000 assert builder.verify() diff --git a/tests/transactions/builder/test_unvote_builder.py b/tests/transactions/builder/test_unvote_builder.py index c20befa8..f06ee099 100644 --- a/tests/transactions/builder/test_unvote_builder.py +++ b/tests/transactions/builder/test_unvote_builder.py @@ -7,17 +7,15 @@ def test_unvote_transaction(passphrase, load_transaction_fixture): UnvoteBuilder .new() .gas_price(fixture['data']['gasPrice']) + .gas_limit(fixture['data']['gasLimit']) .nonce(fixture['data']['nonce']) - .network(fixture['data']['network']) - .gas(fixture['data']['gas']) .to(fixture['data']['to']) .sign(passphrase) ) - assert builder.transaction.data['gasPrice'] == fixture['data']['gasPrice'] + assert builder.transaction.data['gasPrice'] == int(fixture['data']['gasPrice']) + assert builder.transaction.data['gasLimit'] == int(fixture['data']['gasLimit']) assert builder.transaction.data['nonce'] == fixture['data']['nonce'] - assert builder.transaction.data['network'] == fixture['data']['network'] - assert builder.transaction.data['gas'] == fixture['data']['gas'] assert builder.transaction.data['to'] == fixture['data']['to'] assert builder.transaction.data['value'] == int(fixture['data']['value']) assert builder.transaction.data['v'] == fixture['data']['v'] @@ -35,16 +33,14 @@ def test_unvote_transaction_with_default_to(passphrase, load_transaction_fixture UnvoteBuilder .new() .gas_price(fixture['data']['gasPrice']) + .gas_limit(fixture['data']['gasLimit']) .nonce(fixture['data']['nonce']) - .network(fixture['data']['network']) - .gas(fixture['data']['gas']) .sign(passphrase) ) - assert builder.transaction.data['gasPrice'] == fixture['data']['gasPrice'] + assert builder.transaction.data['gasPrice'] == int(fixture['data']['gasPrice']) + assert builder.transaction.data['gasLimit'] == int(fixture['data']['gasLimit']) assert builder.transaction.data['nonce'] == fixture['data']['nonce'] - assert builder.transaction.data['network'] == fixture['data']['network'] - assert builder.transaction.data['gas'] == fixture['data']['gas'] assert builder.transaction.data['to'].lower() == fixture['data']['to'].lower() assert builder.transaction.data['value'] == int(fixture['data']['value']) assert builder.transaction.data['v'] == fixture['data']['v'] diff --git a/tests/transactions/builder/test_username_registration_builder.py b/tests/transactions/builder/test_username_registration_builder.py index 58a1c0fd..26e01acc 100644 --- a/tests/transactions/builder/test_username_registration_builder.py +++ b/tests/transactions/builder/test_username_registration_builder.py @@ -8,9 +8,8 @@ def test_username_registration_transaction(passphrase, username, load_transactio UsernameRegistrationBuilder .new() .gas_price(fixture['data']['gasPrice']) + .gas_limit(fixture['data']['gasLimit']) .nonce(fixture['data']['nonce']) - .network(fixture['data']['network']) - .gas(fixture['data']['gas']) .username(username) .sign(passphrase) ) diff --git a/tests/transactions/builder/test_username_resignation_builder.py b/tests/transactions/builder/test_username_resignation_builder.py index 8b569839..da4bc402 100644 --- a/tests/transactions/builder/test_username_resignation_builder.py +++ b/tests/transactions/builder/test_username_resignation_builder.py @@ -7,9 +7,8 @@ def test_username_resignation_transaction(passphrase, load_transaction_fixture): UsernameResignationBuilder .new() .gas_price(fixture['data']['gasPrice']) + .gas_limit(fixture['data']['gasLimit']) .nonce(fixture['data']['nonce']) - .network(fixture['data']['network']) - .gas(fixture['data']['gas']) .sign(passphrase) ) diff --git a/tests/transactions/builder/test_validator_registration_builder.py b/tests/transactions/builder/test_validator_registration_builder.py index b7d545be..d4eaabc6 100644 --- a/tests/transactions/builder/test_validator_registration_builder.py +++ b/tests/transactions/builder/test_validator_registration_builder.py @@ -7,9 +7,8 @@ def test_validator_registration_transaction(passphrase, validator_public_key, lo ValidatorRegistrationBuilder .new() .gas_price(fixture['data']['gasPrice']) + .gas_limit(fixture['data']['gasLimit']) .nonce(fixture['data']['nonce']) - .network(fixture['data']['network']) - .gas(fixture['data']['gas']) .value(fixture['data']['value']) .validator_public_key(validator_public_key) .to(fixture['data']['to']) @@ -17,10 +16,9 @@ def test_validator_registration_transaction(passphrase, validator_public_key, lo ) assert builder.transaction.serialize().hex() == fixture['serialized'] - assert builder.transaction.data['gasPrice'] == fixture['data']['gasPrice'] + assert builder.transaction.data['gasPrice'] == int(fixture['data']['gasPrice']) + assert builder.transaction.data['gasLimit'] == int(fixture['data']['gasLimit']) assert builder.transaction.data['nonce'] == fixture['data']['nonce'] - assert builder.transaction.data['network'] == fixture['data']['network'] - assert builder.transaction.data['gas'] == fixture['data']['gas'] assert builder.transaction.data['to'] == fixture['data']['to'] assert builder.transaction.data['value'] == int(fixture['data']['value']) assert builder.transaction.data['v'] == fixture['data']['v'] @@ -38,18 +36,16 @@ def test_validator_registration_transaction_with_default_to(passphrase, validato ValidatorRegistrationBuilder .new() .gas_price(fixture['data']['gasPrice']) + .gas_limit(fixture['data']['gasLimit']) .nonce(fixture['data']['nonce']) - .network(fixture['data']['network']) - .gas(fixture['data']['gas']) .value(fixture['data']['value']) .validator_public_key(validator_public_key) .sign(passphrase) ) - assert builder.transaction.data['gasPrice'] == fixture['data']['gasPrice'] + assert builder.transaction.data['gasPrice'] == int(fixture['data']['gasPrice']) + assert builder.transaction.data['gasLimit'] == int(fixture['data']['gasLimit']) assert builder.transaction.data['nonce'] == fixture['data']['nonce'] - assert builder.transaction.data['network'] == fixture['data']['network'] - assert builder.transaction.data['gas'] == fixture['data']['gas'] assert builder.transaction.data['to'].lower() == fixture['data']['to'].lower() assert builder.transaction.data['value'] == int(fixture['data']['value']) assert builder.transaction.data['v'] == fixture['data']['v'] diff --git a/tests/transactions/builder/test_validator_resignation_builder.py b/tests/transactions/builder/test_validator_resignation_builder.py index 9773a0ad..9537bba2 100644 --- a/tests/transactions/builder/test_validator_resignation_builder.py +++ b/tests/transactions/builder/test_validator_resignation_builder.py @@ -7,17 +7,15 @@ def test_validator_resignation_transaction(passphrase, load_transaction_fixture) ValidatorResignationBuilder .new() .gas_price(fixture['data']['gasPrice']) + .gas_limit(fixture['data']['gasLimit']) .nonce(fixture['data']['nonce']) - .network(fixture['data']['network']) - .gas(fixture['data']['gas']) .to(fixture['data']['to']) .sign(passphrase) ) - assert builder.transaction.data['gasPrice'] == fixture['data']['gasPrice'] + assert builder.transaction.data['gasPrice'] == int(fixture['data']['gasPrice']) + assert builder.transaction.data['gasLimit'] == int(fixture['data']['gasLimit']) assert builder.transaction.data['nonce'] == fixture['data']['nonce'] - assert builder.transaction.data['network'] == fixture['data']['network'] - assert builder.transaction.data['gas'] == fixture['data']['gas'] assert builder.transaction.data['to'] == fixture['data']['to'] assert builder.transaction.data['value'] == int(fixture['data']['value']) assert builder.transaction.data['v'] == fixture['data']['v'] @@ -35,16 +33,14 @@ def test_validator_resignation_transaction_with_default_to(passphrase, load_tran ValidatorResignationBuilder .new() .gas_price(fixture['data']['gasPrice']) + .gas_limit(fixture['data']['gasLimit']) .nonce(fixture['data']['nonce']) - .network(fixture['data']['network']) - .gas(fixture['data']['gas']) .sign(passphrase) ) - assert builder.transaction.data['gasPrice'] == fixture['data']['gasPrice'] + assert builder.transaction.data['gasPrice'] == int(fixture['data']['gasPrice']) + assert builder.transaction.data['gasLimit'] == int(fixture['data']['gasLimit']) assert builder.transaction.data['nonce'] == fixture['data']['nonce'] - assert builder.transaction.data['network'] == fixture['data']['network'] - assert builder.transaction.data['gas'] == fixture['data']['gas'] assert builder.transaction.data['to'].lower() == fixture['data']['to'].lower() assert builder.transaction.data['value'] == int(fixture['data']['value']) assert builder.transaction.data['v'] == fixture['data']['v'] diff --git a/tests/transactions/builder/test_vote_builder.py b/tests/transactions/builder/test_vote_builder.py index 345f6597..b3ff99c9 100644 --- a/tests/transactions/builder/test_vote_builder.py +++ b/tests/transactions/builder/test_vote_builder.py @@ -7,18 +7,16 @@ def test_vote_transaction(passphrase, load_transaction_fixture): VoteBuilder .new() .gas_price(fixture['data']['gasPrice']) + .gas_limit(fixture['data']['gasLimit']) .nonce(fixture['data']['nonce']) - .network(fixture['data']['network']) - .gas(fixture['data']['gas']) .to(fixture['data']['to']) .vote('0xC3bBE9B1CeE1ff85Ad72b87414B0E9B7F2366763') # Example vote address .sign(passphrase) ) - assert builder.transaction.data['gasPrice'] == fixture['data']['gasPrice'] + assert builder.transaction.data['gasPrice'] == int(fixture['data']['gasPrice']) + assert builder.transaction.data['gasLimit'] == int(fixture['data']['gasLimit']) assert builder.transaction.data['nonce'] == fixture['data']['nonce'] - assert builder.transaction.data['network'] == fixture['data']['network'] - assert builder.transaction.data['gas'] == fixture['data']['gas'] assert builder.transaction.data['to'] == fixture['data']['to'] assert builder.transaction.data['value'] == int(fixture['data']['value']) assert builder.transaction.data['v'] == fixture['data']['v'] @@ -36,17 +34,15 @@ def test_vote_transaction_with_default_to(passphrase, load_transaction_fixture): VoteBuilder .new() .gas_price(fixture['data']['gasPrice']) + .gas_limit(fixture['data']['gasLimit']) .nonce(fixture['data']['nonce']) - .network(fixture['data']['network']) - .gas(fixture['data']['gas']) .vote('0xC3bBE9B1CeE1ff85Ad72b87414B0E9B7F2366763') # Example vote address .sign(passphrase) ) - assert builder.transaction.data['gasPrice'] == fixture['data']['gasPrice'] + assert builder.transaction.data['gasPrice'] == int(fixture['data']['gasPrice']) + assert builder.transaction.data['gasLimit'] == int(fixture['data']['gasLimit']) assert builder.transaction.data['nonce'] == fixture['data']['nonce'] - assert builder.transaction.data['network'] == fixture['data']['network'] - assert builder.transaction.data['gas'] == fixture['data']['gas'] assert builder.transaction.data['to'].lower() == fixture['data']['to'].lower() assert builder.transaction.data['value'] == int(fixture['data']['value']) assert builder.transaction.data['v'] == fixture['data']['v'] diff --git a/tests/transactions/test_deserializer.py b/tests/transactions/test_deserializer.py index cd72c2af..4d532fd4 100644 --- a/tests/transactions/test_deserializer.py +++ b/tests/transactions/test_deserializer.py @@ -12,21 +12,24 @@ def assert_deserialized(fixture, keys): deserializer = Deserializer.new(fixture['serialized']) transaction = deserializer.deserialize() for key in keys: - assert transaction.data[key] == fixture['data'][key], f"Mismatch in {key}" + if key in ['gasPrice', 'gasLimit']: + assert transaction.data[key] == int(fixture['data'][key]), f"Mismatch in {key}" + else: + assert transaction.data[key] == fixture['data'][key], f"Mismatch in {key}" assert transaction.serialize().hex() == fixture['serialized'] assert transaction.verify() return transaction def test_deserialize_transfer(load_transaction_fixture): fixture = load_transaction_fixture('transactions/transfer') - transaction = assert_deserialized(fixture, ['hash', 'nonce', 'gasPrice', 'gas', 'value', 'v', 'r', 's']) + transaction = assert_deserialized(fixture, ['hash', 'nonce', 'gasPrice', 'gasLimit', 'value', 'v', 'r', 's']) assert isinstance(transaction, Transfer) assert transaction.data['value'] == '100000000' def test_deserialize_vote(load_transaction_fixture): fixture = load_transaction_fixture('transactions/vote') - transaction = assert_deserialized(fixture, ['hash', 'nonce', 'gasPrice', 'gas', 'v', 'r', 's']) + transaction = assert_deserialized(fixture, ['hash', 'nonce', 'gasPrice', 'gasLimit', 'v', 'r', 's']) assert isinstance(transaction, Vote) assert transaction.data['vote'].lower() == '0xc3bbe9b1cee1ff85ad72b87414b0e9b7f2366763' @@ -34,38 +37,38 @@ def test_deserialize_vote(load_transaction_fixture): def test_deserialize_unvote(load_transaction_fixture): fixture = load_transaction_fixture('transactions/unvote') - transaction = assert_deserialized(fixture, ['hash', 'nonce', 'gasPrice', 'gas', 'v', 'r', 's']) + transaction = assert_deserialized(fixture, ['hash', 'nonce', 'gasPrice', 'gasLimit', 'v', 'r', 's']) assert isinstance(transaction, Unvote) def test_deserialize_validator_registration(load_transaction_fixture): fixture = load_transaction_fixture('transactions/validator-registration') - transaction = assert_deserialized(fixture, ['hash', 'nonce', 'gasPrice', 'gas', 'value', 'v', 'r', 's']) + transaction = assert_deserialized(fixture, ['hash', 'nonce', 'gasPrice', 'gasLimit', 'value', 'v', 'r', 's']) assert isinstance(transaction, ValidatorRegistration) assert transaction.data['value'] == '250000000000000000000' def test_deserialize_validator_resignation(load_transaction_fixture): fixture = load_transaction_fixture('transactions/validator-resignation') - transaction = assert_deserialized(fixture, ['hash', 'nonce', 'gasPrice', 'gas', 'v', 'r', 's']) + transaction = assert_deserialized(fixture, ['hash', 'nonce', 'gasPrice', 'gasLimit', 'v', 'r', 's']) assert isinstance(transaction, ValidatorResignation) def test_deserialize_username_registration(load_transaction_fixture): fixture = load_transaction_fixture('transactions/username-registration') - transaction = assert_deserialized(fixture, ['hash', 'nonce', 'gasPrice', 'gas', 'v', 'r', 's']) + transaction = assert_deserialized(fixture, ['hash', 'nonce', 'gasPrice', 'gasLimit', 'v', 'r', 's']) assert isinstance(transaction, UsernameRegistration) def test_deserialize_username_resignation(load_transaction_fixture): fixture = load_transaction_fixture('transactions/username-resignation') - transaction = assert_deserialized(fixture, ['hash', 'nonce', 'gasPrice', 'gas', 'v', 'r', 's']) + transaction = assert_deserialized(fixture, ['hash', 'nonce', 'gasPrice', 'gasLimit', 'v', 'r', 's']) assert isinstance(transaction, UsernameResignation) def test_deserialize_multipayment(load_transaction_fixture): fixture = load_transaction_fixture('transactions/multipayment') - transaction = assert_deserialized(fixture, ['hash', 'nonce', 'gasPrice', 'gas', 'value', 'v', 'r', 's']) + transaction = assert_deserialized(fixture, ['hash', 'nonce', 'gasPrice', 'gasLimit', 'value', 'v', 'r', 's']) assert isinstance(transaction, Multipayment) diff --git a/tests/utils/test_rpl_decoder.py b/tests/utils/test_rpl_decoder.py index 979cf7a5..c7adc5bd 100644 --- a/tests/utils/test_rpl_decoder.py +++ b/tests/utils/test_rpl_decoder.py @@ -4,21 +4,18 @@ def test_decode_function_call(load_transaction_fixture): fixture = load_transaction_fixture('transactions/transfer') - decoded_rlp = RlpDecoder.decode('0x' + fixture['serialized'][2:]) - - assert len(decoded_rlp) == 12 - assert decoded_rlp[0] == '0x2710' - assert decoded_rlp[1] == '0x01' - assert decoded_rlp[2] == '0x' - assert decoded_rlp[3] == '0x012a05f200' - assert decoded_rlp[4] == '0x5208' - assert decoded_rlp[5] == '0x6f0182a0cc707b055322ccf6d4cb6a5aff1aeb22' - assert decoded_rlp[6] == '0x05f5e100' - assert decoded_rlp[7] == '0x' - assert decoded_rlp[8] == [] - assert decoded_rlp[9] == '0x01' - assert decoded_rlp[10] == '0x104665257d4dea61c4654e74c6c0f6cd0a398905781c3040bea67dc641a66da0' - assert decoded_rlp[11] == '0x46d718d04b2331f3b0561808549ed3f3f0d867a284acf6b334869078df7a9136' + decoded_rlp = RlpDecoder.decode('0x' + fixture['serialized']) + + assert len(decoded_rlp) == 9 + assert decoded_rlp[0] == '0x01' + assert decoded_rlp[1] == '0x012a05f200' + assert decoded_rlp[2] == '0x5208' + assert decoded_rlp[3] == '0x6f0182a0cc707b055322ccf6d4cb6a5aff1aeb22' + assert decoded_rlp[4] == '0x05f5e100' + assert decoded_rlp[5] == '0x' + assert decoded_rlp[6] == '0x5c6b' + assert decoded_rlp[7] == '0xa1f79cb40a4bb409d6cebd874002ceda3ec0ccb614c1d8155f5c2f7f798135f9' + assert decoded_rlp[8] == '0x2d2ef517aaf6feed747385e260c206f46b2ce9d6b2a585427a111685a097bd79' def test_decoding_str(): decoded = RlpDecoder.decode('0x8774657374696e67')