# @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