with tempfile.TemporaryDirectory() as td:
conn = connect_db(Path(td) / "unit.sqlite")
init_schema(conn)
reward_row = {
"node_id": 14,
"height": 21312001,
"txhash": "R1",
"timestamp": "2026-01-01T00:00:00Z",
"epoch": 1,
"prior_unit_reward": "1",
"prior_delegates": "1",
"delegates_reward": "1",
"operator_reward": "1",
"msg_index": 0,
"contract_address": DEFAULT_MIXNET_CONTRACT,
}
delegation_row = {
"node_id": 14,
"height": 21312002,
"txhash": "D1",
"timestamp": "2026-01-01T00:00:01Z",
"event_type": "wasm-v2_delegation",
"delegator": "n1deleg",
"delta_amount_unym": "100",
"contract_address": DEFAULT_MIXNET_CONTRACT,
}
withdraw_row = {
"node_id": 14,
"height": 21312003,
"txhash": "W1",
"timestamp": "2026-01-01T00:00:02Z",
"event_type": "wasm-v2_withdraw_delegator_reward",
"delegator": "n1deleg",
"amount_unym": "10",
"contract_address": DEFAULT_MIXNET_CONTRACT,
}
wallet_row = {
"wallet_address": "n1wallet",
"height": 21312004,
"txhash": "T1",
"timestamp": "2026-01-01T00:00:03Z",
"action_kind": "transfer_receive",
"event_type": "transfer",
"node_id": None,
"amount_unym": "7",
"msg_index": -1,
"contract_address": "",
}
assert insert_reward_rows(conn, [reward_row]) == 1
assert insert_reward_rows(conn, [reward_row]) == 0
assert insert_delegation_rows(conn, [delegation_row]) == 1
assert insert_delegation_rows(conn, [delegation_row]) == 0
assert insert_withdraw_rows(conn, [withdraw_row]) == 1
assert insert_withdraw_rows(conn, [withdraw_row]) == 0
assert insert_wallet_action_rows(conn, [wallet_row]) == 1
assert insert_wallet_action_rows(conn, [wallet_row]) == 0
upsert_node_metadata(conn, node_id=14, bonding_height=21300000, unit_delegation="1", contract=DEFAULT_MIXNET_CONTRACT)
upsert_current_rewarding_state(conn, node_id=14, total_unit_reward="12", unique_delegations=2)
replace_current_delegation_state(conn, node_id=14, rows=[{"owner": "n1deleg", "amount": {"amount": "100"}, "cumulative_reward_ratio": "0"}])
replace_current_pending_reward_state(conn, node_id=14, rows=[{
"delegator": "n1deleg",
"amount_staked_unym": "100",
"amount_earned_unym": "1",
"amount_earned_detailed": "1.0",
"node_still_fully_bonded": True,
"mixnode_still_fully_bonded": True,
}])
upsert_wallet_node_link(conn, wallet_address="n1wallet", node_id=14, relation="delegator", start_height=21312002)
record_scan_window(conn, node_id=14, event_kind="reward", start_height=21312000, end_height=21312999, status="ok", endpoint=DEFAULT_NYX_TX_REST)
record_wallet_scan_window(conn, wallet_address="n1wallet", event_kind="wallet_actions", start_height=21312000, end_height=21312999, status="ok", endpoint=DEFAULT_NYX_TX_REST)
conn.commit()
assert window_done(conn, node_id=14, event_kind="reward", start_height=21312000, end_height=21312999)
assert wallet_window_done(conn, wallet_address="n1wallet", event_kind="wallet_actions", start_height=21312000, end_height=21312999)
assert max_scanned_end_height(conn, node_id=14, event_kind="reward") == 21312999
assert max_wallet_scanned_end_height(conn, wallet_address="n1wallet", event_kind="wallet_actions") == 21312999
assert len(_query_cached_rows(conn, "reward_events", 14)) == 1
assert len(_query_cached_rows(conn, "delegation_events", 14)) == 1
assert len(_query_cached_rows(conn, "withdraw_events", 14)) == 1
assert len([dict(r) for r in conn.execute("SELECT * FROM wallet_actions").fetchall()]) == 1