-
-
Save hackaugusto/a846775ad7cf7202a89bf1250cbe3d7e to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
from raiden.transfer.architecture import StateManager | |
from raiden.storage import serialize, sqlite | |
from raiden.transfer import node | |
from raiden.storage.wal import WriteAheadLog | |
def replay_wal(storage): | |
all_state_changes = storage.get_statechanges_by_identifier( | |
from_identifier=0, | |
to_identifier='latest', | |
) | |
state_manager = StateManager(state_transition=node.state_transition, current_state=None) | |
wal = WriteAheadLog(state_manager, storage) | |
secrethash = ( | |
b'\xf6.\xb5}B0\xf5\xbaK\x1em\xde)\xda\xf3\xf9\x9bU\xbd\r' | |
b'\xc54`\xcd\x93\xf0!\x92\xba\x84\xcd\x03' | |
) | |
found_payment = False | |
task_exists = False | |
all_events = list() | |
all_states = list() | |
for pos, state_change in enumerate(all_state_changes): | |
events = wal.state_manager.dispatch(state_change) | |
all_states.append(wal.state_manager.current_state) | |
all_events.append(events) | |
if state_manager.current_state is not None: | |
chain_state = wal.state_manager.current_state | |
task_exists = secrethash in chain_state.payment_mapping.secrethashes_to_task | |
found_payment = found_payment or task_exists | |
if found_payment and not task_exists: | |
import pdb | |
pdb.set_trace() | |
def main(): | |
import argparse | |
parser = argparse.ArgumentParser() | |
parser.add_argument('database') | |
args = parser.parse_args() | |
replay_wal( | |
storage=sqlite.SQLiteStorage(args.database, serialize.JSONSerializer()), | |
) | |
if __name__ == '__main__': | |
main() |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment