markInterestingSpendable

open override fun markInterestingSpendable(sp: Spendable): Boolean?

This is called by the wallet when it processes incoming transactions. It notifies this contract of a UTXO that it might be able to spend. The wallet may provide every spendable it sees so the contract MUST filter for spendables that it really can spend. In particular, the contract should set the contractId field of outputs to "claim" them as unspendable as "normal" coins (if they are unspendable), since the "contractId" is used in UTXO filtering. The destination installed by the contract also "knows" how to spend coins. So a contract wants to "claim" a utxo if it is not automatically spendable or if the contract wants to isolate their spending. For example, a "time vault or early multisig access" contract could set the contractId, to prevent automatic spending. It would then clear it when the time has passed. But before the time passed, the contract could access its own marked-by-contractId UTXOs and execute the multisig protocol to spend them