Finding transactions ----------------- Bob (the person) doesn't have to necessarily know that there's an auction going in the blockchain, but he can launch a transaction and look for UTXOs of this type of contract. If the off-chain code finds these specific type of UTXOs, then he can fetch the datum associated to it, and therefore he can place a bid. If you look in the `EnglishAuction.hs` file, line 334: ``` findAuction :: CurrencySymbol -> TokenName -> Contract w s Text (TxOutRef, ChainIndexTxOut, AuctionDatum) findAuction cs tn = do utxos <- utxosAt $ scriptHashAddress auctionHash ... ``` This is the function responsible for this. This happens when bidding (line 277): ```haskell (oref, o, d@AuctionDatum{..}) <- findAuction bpCurrency bpToken ... ``` ...or closing the auction (line 309), or with any other endpoint the contract opens to the public. UTxOs, scripts and redeemers ----------------- - Scripts are not "giving" different types of UTxOs, rather, scripts are attached, linked to UTxOs. - UTxOs contain the hash of the datum attached to them. - They are not stored in any database, the blockchain is the "database" itself for these UTxOs, scripts, etc... The Cardano node in charge of processing the transaction or the script will reach the UTxOs via the script address, or vice-versa, if needed, and then validate according to its logic, evaluate the script, and create new resulting UTxOs. On the other hand, the script will know about the redeemer because the person who sends a transaction to the blockchain for this concrete script will attach it. **The redeemer is the data the user provides to the smart contract**. References ----------------- You can learn more about datums and redeemers in the Cardano docs: [Working with datums and redeemers](https://docs.cardano.org/plutus/datums-redeemers). Other interesting Cardano SE questions: - [What exactly is a Redeemer?](https://cardano.stackexchange.com/questions/471/what-exactly-is-a-redeemer) - [What does it mean that a UTxO sits at script address?](https://cardano.stackexchange.com/questions/2537/what-does-it-mean-that-a-utxo-sits-at-script-address)