Skip to content

Commit d6d0290

Browse files
committed
Merge remote-tracking branch 'origin/feat/mainsail' into refactor/eip-155-support
2 parents e6a4d02 + 9c282b7 commit d6d0290

5 files changed

Lines changed: 18 additions & 10 deletions

File tree

crypto/transactions/builder/validator_registration_builder.py

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,5 +13,10 @@ def validator_public_key(self, validator_public_key: str):
1313
self.transaction.refresh_payload_data()
1414
return self
1515

16+
def value(self, value: int):
17+
self.transaction.data['value'] = int(value)
18+
self.transaction.refresh_payload_data()
19+
return self
20+
1621
def get_transaction_instance(self, data: dict):
1722
return ValidatorRegistration(data)

crypto/transactions/deserializer.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -80,9 +80,6 @@ def __guess_transaction_from_data(self, data: dict) -> AbstractTransaction:
8080
if function_name == AbiFunction.MULTIPAYMENT.value:
8181
return Multipayment(data)
8282

83-
if data['value'] != '0':
84-
return Transfer(data)
85-
8683
consensus_payload_data = self.decode_payload(data)
8784
if consensus_payload_data is not None:
8885
function_name = consensus_payload_data.get('functionName')
@@ -107,6 +104,9 @@ def __guess_transaction_from_data(self, data: dict) -> AbstractTransaction:
107104
if function_name == AbiFunction.USERNAME_RESIGNATION.value:
108105
return UsernameResignation(data)
109106

107+
if data['value'] != '0':
108+
return Transfer(data)
109+
110110
return EvmCall(data)
111111

112112
@staticmethod

tests/fixtures/transactions/validator-registration.json

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -4,15 +4,15 @@
44
"gasPrice": "5000000000",
55
"gasLimit": "200000",
66
"to": "0x535B3D7A252fa034Ed71F0C53ec0C6F784cB64E1",
7-
"value": "0",
7+
"value": "250000000000000000000",
88
"data": "602a9eee0000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000003030954f46d6097a1d314e900e66e11e0dad0a57cd03e04ec99f0dedd1c765dcb11e6d7fa02e22cf40f9ee23d9cc1c062400000000000000000000000000000000",
99
"network": 11812,
1010
"v": 0,
11-
"r": "047b1a36778d3a7c88b3b00623bf1c2be4875f8220df429ee6f661f8722f6dcd",
12-
"s": "484b805c306d017a107b1bd8b46115282b60f956fa04cf9d62a160e6d53a11ef",
11+
"r": "c36e366f58d30e34099fdaf2104081bc75aaca456d042618df0e7fdfce48d9a6",
12+
"s": "7cc525d7cfa88f83286396b483ef817a9e14cc240ce027ac9bee38c1fdc7e883",
1313
"senderPublicKey": "0243333347c8cbf4e3cbc7a96964181d02a2b0c854faa2fef86b4b8d92afcf473d",
1414
"from": "0x1E6747BEAa5B4076a6A98D735DF8c35a70D18Bdd",
15-
"hash": "997ffdd531ff879b9cdc8c0f147110c5696b6c5a11607566d846beecaf41b4ed"
15+
"hash": "09edf0fcf2af28ff4ad05e0dc831119f25dcdc3261d786b9fa953a227d560b2e"
1616
},
17-
"serialized": "f8ec0185012a05f20083030d4094535b3d7a252fa034ed71f0c53ec0c6f784cb64e180b884602a9eee0000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000003030954f46d6097a1d314e900e66e11e0dad0a57cd03e04ec99f0dedd1c765dcb11e6d7fa02e22cf40f9ee23d9cc1c062400000000000000000000000000000000825c6ba0047b1a36778d3a7c88b3b00623bf1c2be4875f8220df429ee6f661f8722f6dcda0484b805c306d017a107b1bd8b46115282b60f956fa04cf9d62a160e6d53a11ef"
18-
}
17+
"serialized": "f8f50185012a05f20083030d4094535b3d7a252fa034ed71f0c53ec0c6f784cb64e1890d8d726b7177a80000b884602a9eee0000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000003030954f46d6097a1d314e900e66e11e0dad0a57cd03e04ec99f0dedd1c765dcb11e6d7fa02e22cf40f9ee23d9cc1c062400000000000000000000000000000000825c6ba0c36e366f58d30e34099fdaf2104081bc75aaca456d042618df0e7fdfce48d9a6a07cc525d7cfa88f83286396b483ef817a9e14cc240ce027ac9bee38c1fdc7e883"
18+
}

tests/transactions/builder/test_validator_registration_builder.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ def test_validator_registration_transaction(passphrase, validator_public_key, lo
99
.gas_price(fixture['data']['gasPrice'])
1010
.gas_limit(fixture['data']['gasLimit'])
1111
.nonce(fixture['data']['nonce'])
12+
.value(fixture['data']['value'])
1213
.validator_public_key(validator_public_key)
1314
.to(fixture['data']['to'])
1415
.sign(passphrase)
@@ -37,6 +38,7 @@ def test_validator_registration_transaction_with_default_to(passphrase, validato
3738
.gas_price(fixture['data']['gasPrice'])
3839
.gas_limit(fixture['data']['gasLimit'])
3940
.nonce(fixture['data']['nonce'])
41+
.value(fixture['data']['value'])
4042
.validator_public_key(validator_public_key)
4143
.sign(passphrase)
4244
)

tests/transactions/test_deserializer.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,9 +43,10 @@ def test_deserialize_unvote(load_transaction_fixture):
4343

4444
def test_deserialize_validator_registration(load_transaction_fixture):
4545
fixture = load_transaction_fixture('transactions/validator-registration')
46-
transaction = assert_deserialized(fixture, ['hash', 'nonce', 'gasPrice', 'gasLimit', 'v', 'r', 's'])
46+
transaction = assert_deserialized(fixture, ['hash', 'nonce', 'gasPrice', 'gasLimit', 'value', 'v', 'r', 's'])
4747

4848
assert isinstance(transaction, ValidatorRegistration)
49+
assert transaction.data['value'] == '250000000000000000000'
4950

5051
def test_deserialize_validator_resignation(load_transaction_fixture):
5152
fixture = load_transaction_fixture('transactions/validator-resignation')

0 commit comments

Comments
 (0)