Trigger and Function

def extract(self, address, tp0, log, ens_middle, contract_object_map, event_map, prev_logs=None) -> ENSMiddleD:
if (tp0 == RegisterExtractor.tp0_register) or (tp0 == self.tp0a):
event_data = decode_log(log, contract_object_map, event_map)
tmp = event_data["args"]
ens_middle.expires = convert_str_ts(tmp.get("expires", ""))
ens_middle.name = tmp.get("name")
if "." in ens_middle.name:
# not supported
return None
ens_middle.name = ens_middle.name + ".eth"
ens_middle.label = tmp.get("label").lower()
ens_middle.owner = tmp.get("owner").lower()
ens_middle.base_node = BASE_NODE
ens_middle.node = namehash(ens_middle.name)
ens_middle.event_name = event_data["_event"]
token_id = None
w_token_id = None
for log in prev_logs:
if (
log["address"] == "0x57f1887a8bf19b14fc0df6fd9b2acc9af147ea85"
and log["topic1"] == "0x0000000000000000000000000000000000000000000000000000000000000000"
):
token_id = str(int(log["topic3"], 16))
if (
log["address"] == "0xd4416b13d2b3a9abae7acd5d6c2bbdbe25686401"
and log["topic0"] == "0xc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62"
):
evd = decode_log(log, contract_object_map, event_map)
if evd["args"].get("id"):
w_token_id = str(evd["args"].get("id"))
return ENSMiddleD(
transaction_hash=ens_middle.transaction_hash,
log_index=ens_middle.log_index,
transaction_index=ens_middle.transaction_index,
block_number=ens_middle.block_number,
block_hash=ens_middle.block_hash,
block_timestamp=ens_middle.block_timestamp,
from_address=ens_middle.from_address,
to_address=ens_middle.to_address,
expires=ens_middle.expires,
name=ens_middle.name,
label=ens_middle.label,
owner=ens_middle.owner,
base_node=ens_middle.base_node,
node=ens_middle.node,
event_name=ens_middle.event_name,
method=ens_middle.method,
token_id=token_id,
w_token_id=w_token_id,
)
else:
return None


Last updated