Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Remove manual pruning from the policy satisfier. The satisfier still needs to track the satisfiability of sub-policies, so we introduce a symmetric Result<T, T> where T is the compiled sub-policy and Ok / Err signify satisfiability. Refactor the code that satisfies threshold fragments by using the iterator API and by removing mutable state. Introduce SatisfierError to better track which errors a satisfier can actually throw and what to do about them. We can remove the "missing assembly" error if we allow the construction of hidden nodes. The satisfier only returns pruned programs and needs to know the transaction environment because of that. Returning unpruned program seems like a potential footgun, especially because callers will want to immediately put their programs on the blockchain.
- Loading branch information