Closed carlhammann closed 1 year ago
The new design of the contract that was necessary in order to accomplish this is explained in this comment.
If I follow the comment, I find this description of the problem:
That version of the contract had the following problem, which we think is fundamentally unsolve with only one transaction: If we want to use only one transaction to mint some tokens with a policy P and make sure that they end up at the correct validator V,
The text then goes immediately to discuss the implementation. But it distills that the problem is "ensuring that minted tokens are only paid to a specific validator V".
If I look at the new version of the Auction, the minting policy still allows tokens to be paid to any address. This minting policy can still be used in a transaction that doesn't use validator V. Which begs the question, how does the new design solve the problem?
Oh, I think I get it.
Since the minting policy requires offerTxOut
to be spent, and this output has a known validator (unlike in the previous design), that would imply that the transaction needs to pay the minted tokens to the script in order to satisfy the validator.
Maybe there is room to articulate the problem and this argument clearer.
Maybe there is room to articulate the problem and this argument clearer.
That's a very good observation! I'll reformulate.
This PR closes #153. The new design of the contract that was necessary in order to accomplish this is explained in this comment.
Before this gets merged, I'd like to cooperate with someone on coming up with a few interesting test cases.