remvoe dead code; patch in TOKEN_TRANSFER callbacks

This commit is contained in:
Jude Nelson
2018-04-13 19:17:53 -04:00
parent a07d932074
commit f59b63b6b7

View File

@@ -31,6 +31,7 @@ import namespacepreorder
import namespacereveal
import namespaceready
import announce
import tokentransfer
import binascii
import copy
@@ -52,6 +53,7 @@ from .namespacepreorder import tx_extract as extract_namespace_preorder, check a
from .namespacereveal import tx_extract as extract_namespace_reveal, check as check_namespace_reveal, canonicalize as canonicalize_namespace_reveal, decanonicalize as decanonicalize_namespace_reveal
from .namespaceready import tx_extract as extract_namespace_ready, check as check_namespace_ready, canonicalize as canonicalize_namespace_ready, decanonicalize as decanonicalize_namespace_ready
from .announce import tx_extract as extract_announce, check as check_announce
from .tokentransfer import tx_extract as extract_token_transfer, check as check_token_transfer
SERIALIZE_FIELDS = {
"NAME_PREORDER": preorder.FIELDS,
@@ -64,7 +66,8 @@ SERIALIZE_FIELDS = {
"NAMESPACE_PREORDER": namespacepreorder.FIELDS,
"NAMESPACE_REVEAL": namespacereveal.FIELDS,
"NAMESPACE_READY": namespaceready.FIELDS,
"ANNOUNCE": announce.FIELDS
"ANNOUNCE": announce.FIELDS,
"TOKEN_TRANSFER": tokentransfer.FIELDS
}
MUTATE_FIELDS = {
@@ -78,7 +81,8 @@ MUTATE_FIELDS = {
"NAMESPACE_PREORDER": namespacepreorder.MUTATE_FIELDS,
"NAMESPACE_REVEAL": namespacereveal.MUTATE_FIELDS,
"NAMESPACE_READY": namespaceready.MUTATE_FIELDS,
"ANNOUNCE": announce.MUTATE_FIELDS
"ANNOUNCE": announce.MUTATE_FIELDS,
"TOKEN_TRANSFER": tokentransfer.MUTATE_FIELDS,
}
# fields that do not have columns in the db schema, but are part of this operation's consensus ops hash
@@ -93,7 +97,8 @@ UNSTORED_CANONICAL_FIELDS = {
'NAMESPACE_PREORDER': [],
'NAMESPACE_REVEAL': [],
'NAMESPACE_READY': [],
'ANNOUNCE': []
'ANNOUNCE': [],
'TOKEN_TRANSFER': [],
}
# NOTE: these all have the same signatures
@@ -108,7 +113,8 @@ EXTRACT_METHODS = {
"NAMESPACE_PREORDER": extract_namespace_preorder,
"NAMESPACE_REVEAL": extract_namespace_reveal,
"NAMESPACE_READY": extract_namespace_ready,
"ANNOUNCE": extract_announce
"ANNOUNCE": extract_announce,
"TOKEN_TRANSFER": extract_token_transfer,
}
# NOTE: these all have the same signature
@@ -123,7 +129,8 @@ CHECK_METHODS = {
"NAMESPACE_PREORDER": check_namespace_preorder,
"NAMESPACE_REVEAL": check_namespace_reveal,
"NAMESPACE_READY": check_namespace_ready,
"ANNOUNCE": check_announce
"ANNOUNCE": check_announce,
"TOKEN_TRANSFER": check_token_transfer,
}
# NOTE: these all have the same signature
@@ -329,79 +336,6 @@ def op_check( state_engine, nameop, block_id, checked_ops ):
return rc
'''
global CHECK_METHODS, MUTATE_FIELDS
count = 0
while count < 3:
count += 1
nameop_clone = copy.deepcopy( nameop )
opcode = None
if 'opcode' not in nameop_clone.keys():
op = nameop_clone.get('op', None)
try:
assert op is not None, "BUG: no op defined"
opcode = op_get_opcode_name( op )
assert opcode is not None, "BUG: op '%s' undefined" % op
except Exception, e:
log.exception(e)
log.error("FATAL: BUG: no 'op' defined")
sys.exit(1)
else:
opcode = nameop_clone['opcode']
check_method = CHECK_METHODS.get( opcode, None )
try:
assert check_method is not None, "BUG: no check-method for '%s'" % opcode
except Exception, e:
log.exception(e)
log.error("FATAL: BUG: no check-method for '%s'" % opcode )
sys.exit(1)
rc = check_method( state_engine, nameop_clone, block_id, checked_ops )
if not rc:
# rejected
break
# was this type-cast to a new operation?
new_opcode = nameop_clone.get('opcode', None)
if new_opcode is None or new_opcode == opcode:
# we're done
nameop.clear()
nameop.update( nameop_clone )
break
else:
# try again
log.debug("Nameop re-interpreted from '%s' to '%s' (%s)" % (opcode, new_opcode, count))
nameop['opcode'] = new_opcode
continue
try:
assert count < 3, "BUG: multiple opcode type-casts detected"
except Exception, e:
log.exception(e)
log.error("FATAL: BUG: multiple opcode type-casts detected")
sys.exit(1)
if rc:
nameop = op_canonicalize(nameop['opcode'], nameop)
# make sure we don't send unstored fields to the db that are otherwise canonical
unstored_canonical_fields = UNSTORED_CANONICAL_FIELDS.get(nameop['opcode'])
assert unstored_canonical_fields is not None, "BUG: no UNSTORED_CANONICAL_FIELDS entry for {}".format(nameop['opcode'])
for f in unstored_canonical_fields:
if f in nameop:
del nameop[f]
return rc
'''
def op_get_mutate_fields( op_name ):
"""