# @file wots_layers.py (2023-03-16T14:29Z)
# @author David Ireland <www.di-mgt.com.au/contact>
# @copyright 2023 DI Management Services Pty Ltd
# @license Apache-2.0
"""Compute the WOTS tree address for each layer."""
from spx_adrs import Adrs
PKseed = 'B505D7CFAD1B497499323C8686325E47'
SKseed = '7c9935a0b07694aa0c6d10e4db6b1add'
w = 16
d = 22
# Starting tree address at layer 0
tree_addr = 0x28daecdc86eb8761
tree_idx = 6
for layer in range(d):
adrs = Adrs(Adrs.WOTS_HASH, layer=layer)
adrs.setTreeAddress(tree_addr)
adrs.setKeyPairAddress(tree_idx)
print(f"layer={layer:2d},ADRS={adrs.toHexSP()}")
# Compute next tree address
tree_idx = tree_addr & 0x7
tree_addr >>= 3