filter supported claim hashes for claims that dont exist from early takeover/activations
This commit is contained in:
parent
5be04448ea
commit
073283a433
1 changed files with 13 additions and 2 deletions
|
@ -1055,16 +1055,27 @@ class BlockProcessor:
|
||||||
# claim B is made for 0.2
|
# claim B is made for 0.2
|
||||||
# a block later, claim C is made for 0.3, it will schedule to activate 1 (or rarely 2) block(s) after B
|
# a block later, claim C is made for 0.3, it will schedule to activate 1 (or rarely 2) block(s) after B
|
||||||
# upon the delayed activation of B, we need to detect to activate C and make it take over early instead
|
# upon the delayed activation of B, we need to detect to activate C and make it take over early instead
|
||||||
|
|
||||||
|
claim_exists = {}
|
||||||
for activated, activated_txos in self.db.get_future_activated(height).items():
|
for activated, activated_txos in self.db.get_future_activated(height).items():
|
||||||
# uses the pending effective amount for the future activation height, not the current height
|
# uses the pending effective amount for the future activation height, not the current height
|
||||||
future_amount = self._get_pending_claim_amount(
|
future_amount = self._get_pending_claim_amount(
|
||||||
activated.name, activated.claim_hash, activated_txos[-1].height + 1
|
activated.name, activated.claim_hash, activated_txos[-1].height + 1
|
||||||
)
|
)
|
||||||
v = future_amount, activated, activated_txos[-1]
|
if activated.claim_hash not in claim_exists:
|
||||||
future_activations[activated.name][activated.claim_hash] = v
|
claim_exists[activated.claim_hash] = activated.claim_hash in self.pending_claim_txos or (
|
||||||
|
self.db.get_claim_txo(activated.claim_hash) is not None)
|
||||||
|
if claim_exists[activated.claim_hash]:
|
||||||
|
v = future_amount, activated, activated_txos[-1]
|
||||||
|
future_activations[activated.name][activated.claim_hash] = v
|
||||||
|
|
||||||
for name, future_activated in activate_in_future.items():
|
for name, future_activated in activate_in_future.items():
|
||||||
for claim_hash, activated in future_activated.items():
|
for claim_hash, activated in future_activated.items():
|
||||||
|
if claim_hash not in claim_exists:
|
||||||
|
claim_exists[claim_hash] = claim_hash in self.pending_claim_txos or (
|
||||||
|
self.db.get_claim_txo(claim_hash) is not None)
|
||||||
|
if not claim_exists[claim_hash]:
|
||||||
|
continue
|
||||||
for txo in activated:
|
for txo in activated:
|
||||||
v = txo[1], PendingActivationValue(claim_hash, name), txo[0]
|
v = txo[1], PendingActivationValue(claim_hash, name), txo[0]
|
||||||
future_activations[name][claim_hash] = v
|
future_activations[name][claim_hash] = v
|
||||||
|
|
Loading…
Reference in a new issue