commit 9f799a980540f24741d77b3dd3fa8de8834a968c
parent 8f05913261d3e5fcb5fec9a562184e5d30087498
Author: nolash <dev@holbrook.no>
Date: Tue, 15 Jun 2021 11:22:35 +0200
Revert "Add tx reverse re-pack"
This reverts commit b9788adb1855a21f50bbfd4ac90693aca96533fe.
Diffstat:
4 files changed, 6 insertions(+), 80 deletions(-)
diff --git a/chainlib/eth/tx.py b/chainlib/eth/tx.py
@@ -14,7 +14,6 @@ from rlp import decode as rlp_decode
from rlp import encode as rlp_encode
from crypto_dev_signer.eth.transaction import EIP155Transaction
from crypto_dev_signer.encoding import public_key_to_address
-from crypto_dev_signer.eth.encoding import chain_id_to_v
from potaahto.symbols import snake_and_camel
@@ -72,25 +71,6 @@ def count_confirmed(address):
return count(address, True)
-def pack(tx_src, chain_spec):
- if isinstance(tx_src, Tx):
- tx_src = tx_src.as_dict()
- tx = EIP155Transaction(tx_src, tx_src['nonce'], chain_spec.chain_id())
-
- signature = bytearray(65)
- cursor = 0
- for a in [
- tx_src['r'],
- tx_src['s'],
- ]:
- for b in bytes.fromhex(strip_0x(a)):
- signature[cursor] = b
- cursor += 1
- signature[cursor] = tx_src['v']
- tx.apply_signature(chain_spec.chain_id(), signature, literal_v=True)
- return tx.rlp_serialize()
-
-
def unpack(tx_raw_bytes, chain_spec):
chain_id = chain_spec.chain_id()
tx = __unpack_raw(tx_raw_bytes, chain_id)
@@ -174,11 +154,10 @@ def __unpack_raw(tx_raw_bytes, chain_id=1):
'gas': d[2],
'value': d[4],
'data': data,
- 'v': v,
- 'recovery_byte': vb,
+ 'v': chain_id,
'r': add_0x(sig[:32].hex()),
's': add_0x(sig[32:64].hex()),
- 'chainId': vb, #chain_id,
+ 'chainId': chain_id,
'hash': add_0x(signed_hash.hex()),
'hash_unsigned': add_0x(unsigned_hash.hex()),
}
@@ -398,10 +377,6 @@ class Tx:
return snake_and_camel(src)
- def as_dict(self):
- return self.src
-
-
def apply_receipt(self, rcpt):
rcpt = self.src_normalize(rcpt)
logg.debug('rcpt {}'.format(rcpt))
diff --git a/requirements.txt b/requirements.txt
@@ -1,4 +1,4 @@
-crypto-dev-signer~=0.4.14b5
+crypto-dev-signer~=0.4.14b3
pysha3==1.0.2
hexathon~=0.0.1a7
websocket-client==0.57.0
diff --git a/setup.cfg b/setup.cfg
@@ -1,6 +1,6 @@
[metadata]
name = chainlib
-version = 0.0.3rc4
+version = 0.0.3rc3
description = Generic blockchain access library and tooling
author = Louis Holbrook
author_email = dev@holbrook.no
diff --git a/tests/test_tx.py b/tests/test_tx.py
@@ -1,7 +1,5 @@
# standard imports
-import os
-import unittest
-import logging
+import unittest
# local imports
from chainlib.eth.unittest.ethtester import EthTesterCase
@@ -12,26 +10,9 @@ from chainlib.eth.gas import (
)
from chainlib.eth.tx import (
unpack,
- pack,
- raw,
- transaction,
TxFormat,
- TxFactory,
- Tx,
)
-from chainlib.eth.contract import (
- ABIContractEncoder,
- ABIContractType,
- )
-from chainlib.eth.address import to_checksum_address
-from hexathon import (
- strip_0x,
- add_0x,
- )
-
-logging.basicConfig(level=logging.DEBUG)
-logg = logging.getLogger()
-
+from hexathon import strip_0x
class TxTestCase(EthTesterCase):
@@ -45,35 +26,5 @@ class TxTestCase(EthTesterCase):
self.assertEqual(tx['to'], self.accounts[1])
- def test_tx_pack(self):
- nonce_oracle = RPCNonceOracle(self.accounts[0], self.rpc)
- gas_oracle = RPCGasOracle(self.rpc)
-
- mock_contract = to_checksum_address(add_0x(os.urandom(20).hex()))
-
- f = TxFactory(self.chain_spec, signer=self.rpc)
- enc = ABIContractEncoder()
- enc.method('fooMethod')
- enc.typ(ABIContractType.UINT256)
- enc.uint256(13)
- data = enc.get()
- tx = f.template(self.accounts[0], mock_contract, use_nonce=True)
- tx = f.set_code(tx, data)
- (tx_hash, tx_signed_raw_hex) = f.finalize(tx, TxFormat.RLP_SIGNED)
- logg.debug('tx result {}'.format(tx))
- o = raw(tx_signed_raw_hex)
- r = self.rpc.do(o)
- o = transaction(tx_hash)
- tx_rpc_src = self.rpc.do(o)
- logg.debug('rpc src {}'.format(tx_rpc_src))
-
- tx_signed_raw_bytes = bytes.fromhex(strip_0x(tx_signed_raw_hex))
- tx_src = unpack(tx_signed_raw_bytes, self.chain_spec)
- txo = Tx(tx_src)
- tx_signed_raw_bytes_recovered = pack(txo, self.chain_spec)
- logg.debug('o {}'.format(tx_signed_raw_bytes.hex()))
- logg.debug('r {}'.format(tx_signed_raw_bytes_recovered.hex()))
- self.assertEqual(tx_signed_raw_bytes, tx_signed_raw_bytes_recovered)
-
if __name__ == '__main__':
unittest.main()