Fulfillment
A fulfillment is when an EOA or smart contract submits the assets for the bounty's reconstitiution.
A fulfillment can be an externally owned account (EOA) or a smart contract. In the former, the EOA will need to have the tokens pre-approved for spending by the bounty contract. In the latter, the smart contract can request a callback where it can do its own custom logic for routing.
When one fulfills a bounty, the smart contract actually "releases" the outgoing tokens to the fulfiller upfront to allow the fulfiller to make trades with them if needed. In practice the outgoing and incoming amounts should have the same value.
The smart contracts atomically enforce the incoming amounts. Failure to return the new tokens will also take back the tokens released to the fulfiller.
Last updated