Cleaning
This commit is contained in:
parent
d6c15d6ea2
commit
67df07193d
1
.gitignore
vendored
1
.gitignore
vendored
@ -9,3 +9,4 @@ docs/_build
|
|||||||
/build
|
/build
|
||||||
/dist
|
/dist
|
||||||
/electrumx.egg-info
|
/electrumx.egg-info
|
||||||
|
.idea/
|
||||||
@ -402,82 +402,6 @@ class DeserializerTxTimeAuxPow(DeserializerTxTime):
|
|||||||
return self._read_nbytes(header_end)
|
return self._read_nbytes(header_end)
|
||||||
|
|
||||||
|
|
||||||
class TxFlo(namedtuple("Tx", "version inputs outputs locktime txcomment")):
|
|
||||||
'''Class representing a transaction.'''
|
|
||||||
|
|
||||||
@cachedproperty
|
|
||||||
def is_coinbase(self):
|
|
||||||
return self.inputs[0].is_coinbase
|
|
||||||
|
|
||||||
|
|
||||||
class TxFloSegWit(namedtuple("Tx", "version marker flag inputs outputs "
|
|
||||||
"witness locktime txcomment")):
|
|
||||||
'''Class representing a SegWit transaction.'''
|
|
||||||
|
|
||||||
@cachedproperty
|
|
||||||
def is_coinbase(self):
|
|
||||||
return self.inputs[0].is_coinbase
|
|
||||||
|
|
||||||
|
|
||||||
class DeserializerFlo(DeserializerSegWit):
|
|
||||||
|
|
||||||
# https://bitcoincore.org/en/segwit_wallet_dev/#transaction-serialization
|
|
||||||
|
|
||||||
def _read_tx(self):
|
|
||||||
'''Return a deserialized transaction.'''
|
|
||||||
version = self._read_le_int32()
|
|
||||||
inputs = self._read_inputs()
|
|
||||||
outputs = self._read_outputs()
|
|
||||||
locktime = self._read_le_uint32()
|
|
||||||
|
|
||||||
if version >= 2:
|
|
||||||
comment = self._read_varbytes()
|
|
||||||
else:
|
|
||||||
comment = ""
|
|
||||||
|
|
||||||
return TxFlo(version, inputs, outputs, locktime, comment)
|
|
||||||
|
|
||||||
def _read_tx_parts(self):
|
|
||||||
'''Return a (deserialized TX, tx_hash, vsize) tuple.'''
|
|
||||||
start = self.cursor
|
|
||||||
marker = self.binary[self.cursor + 4]
|
|
||||||
if marker:
|
|
||||||
tx = self._read_tx()
|
|
||||||
tx_hash = double_sha256(self.binary[start:self.cursor])
|
|
||||||
return tx, tx_hash, self.binary_length
|
|
||||||
|
|
||||||
# Ugh, this is nasty.
|
|
||||||
version = self._read_le_int32()
|
|
||||||
orig_ser = self.binary[start:self.cursor]
|
|
||||||
|
|
||||||
marker = self._read_byte()
|
|
||||||
flag = self._read_byte()
|
|
||||||
|
|
||||||
start = self.cursor
|
|
||||||
inputs = self._read_inputs()
|
|
||||||
outputs = self._read_outputs()
|
|
||||||
orig_ser += self.binary[start:self.cursor]
|
|
||||||
|
|
||||||
base_size = self.cursor - start
|
|
||||||
witness = self._read_witness(len(inputs))
|
|
||||||
|
|
||||||
start = self.cursor
|
|
||||||
locktime = self._read_le_uint32()
|
|
||||||
|
|
||||||
# FLO ->
|
|
||||||
if version >= 2:
|
|
||||||
tx_comment = self._read_varbytes()
|
|
||||||
else:
|
|
||||||
tx_comment = ""
|
|
||||||
# <- FLO
|
|
||||||
|
|
||||||
orig_ser += self.binary[start:self.cursor]
|
|
||||||
vsize = (3 * base_size + self.binary_length) // 4
|
|
||||||
|
|
||||||
return TxFloSegWit(version, marker, flag, inputs, outputs, witness,
|
|
||||||
locktime, tx_comment), double_sha256(orig_ser), vsize
|
|
||||||
|
|
||||||
|
|
||||||
class DeserializerBitcoinAtom(DeserializerSegWit):
|
class DeserializerBitcoinAtom(DeserializerSegWit):
|
||||||
FORK_BLOCK_HEIGHT = 505888
|
FORK_BLOCK_HEIGHT = 505888
|
||||||
|
|
||||||
@ -589,3 +513,79 @@ class DeserializerDecred(Deserializer):
|
|||||||
expiry,
|
expiry,
|
||||||
witness
|
witness
|
||||||
), DeserializerDecred.blake256(no_witness_tx)
|
), DeserializerDecred.blake256(no_witness_tx)
|
||||||
|
|
||||||
|
|
||||||
|
class TxFlo(namedtuple("Tx", "version inputs outputs locktime txcomment")):
|
||||||
|
'''Class representing a transaction.'''
|
||||||
|
|
||||||
|
@cachedproperty
|
||||||
|
def is_coinbase(self):
|
||||||
|
return self.inputs[0].is_coinbase
|
||||||
|
|
||||||
|
|
||||||
|
class TxFloSegWit(namedtuple("Tx", "version marker flag inputs outputs "
|
||||||
|
"witness locktime txcomment")):
|
||||||
|
'''Class representing a SegWit transaction.'''
|
||||||
|
|
||||||
|
@cachedproperty
|
||||||
|
def is_coinbase(self):
|
||||||
|
return self.inputs[0].is_coinbase
|
||||||
|
|
||||||
|
|
||||||
|
class DeserializerFlo(DeserializerSegWit):
|
||||||
|
|
||||||
|
# https://bitcoincore.org/en/segwit_wallet_dev/#transaction-serialization
|
||||||
|
|
||||||
|
def _read_tx(self):
|
||||||
|
'''Return a deserialized transaction.'''
|
||||||
|
version = self._read_le_int32()
|
||||||
|
inputs = self._read_inputs()
|
||||||
|
outputs = self._read_outputs()
|
||||||
|
locktime = self._read_le_uint32()
|
||||||
|
|
||||||
|
if version >= 2:
|
||||||
|
comment = self._read_varbytes()
|
||||||
|
else:
|
||||||
|
comment = ""
|
||||||
|
|
||||||
|
return TxFlo(version, inputs, outputs, locktime, comment)
|
||||||
|
|
||||||
|
def _read_tx_parts(self):
|
||||||
|
'''Return a (deserialized TX, tx_hash, vsize) tuple.'''
|
||||||
|
start = self.cursor
|
||||||
|
marker = self.binary[self.cursor + 4]
|
||||||
|
if marker:
|
||||||
|
tx = self._read_tx()
|
||||||
|
tx_hash = double_sha256(self.binary[start:self.cursor])
|
||||||
|
return tx, tx_hash, self.binary_length
|
||||||
|
|
||||||
|
# Ugh, this is nasty.
|
||||||
|
version = self._read_le_int32()
|
||||||
|
orig_ser = self.binary[start:self.cursor]
|
||||||
|
|
||||||
|
marker = self._read_byte()
|
||||||
|
flag = self._read_byte()
|
||||||
|
|
||||||
|
start = self.cursor
|
||||||
|
inputs = self._read_inputs()
|
||||||
|
outputs = self._read_outputs()
|
||||||
|
orig_ser += self.binary[start:self.cursor]
|
||||||
|
|
||||||
|
base_size = self.cursor - start
|
||||||
|
witness = self._read_witness(len(inputs))
|
||||||
|
|
||||||
|
start = self.cursor
|
||||||
|
locktime = self._read_le_uint32()
|
||||||
|
|
||||||
|
# FLO ->
|
||||||
|
if version >= 2:
|
||||||
|
tx_comment = self._read_varbytes()
|
||||||
|
else:
|
||||||
|
tx_comment = ""
|
||||||
|
# <- FLO
|
||||||
|
|
||||||
|
orig_ser += self.binary[start:self.cursor]
|
||||||
|
vsize = (3 * base_size + self.binary_length) // 4
|
||||||
|
|
||||||
|
return TxFloSegWit(version, marker, flag, inputs, outputs, witness,
|
||||||
|
locktime, tx_comment), double_sha256(orig_ser), vsize
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user