// SPDX-License-Identifier: BUSL-1.1 pragma solidity >=0.8.13; import "../../Witch.sol"; import "./interfaces/IContangoWitchListener.sol"; contract ContangoWitch is Witch { IContangoWitchListener public immutable contango; constructor( IContangoWitchListener contango_, ICauldron cauldron_, ILadle ladle_ ) Witch(cauldron_, ladle_) { contango = contango_; } /// @dev Put an under-collateralised vault up for liquidation /// @param vaultId Id of the vault to liquidate /// @param to Receiver of the auctioneer reward /// @return auction_ Info associated to the auction itself /// @return vault Vault that's being auctioned /// @return series Series for the vault that's being auctioned function auction(bytes12 vaultId, address to) public override beforeAshes returns ( DataTypes.Auction memory auction_, DataTypes.Vault memory vault, DataTypes.Series memory series ) { super.auction(vaultId, to); contango.auctionStarted(vaultId); } function _collateralBought( bytes12 vaultId, address buyer, uint256 ink, uint256 art ) internal override { super._collateralBought(vaultId, buyer, ink, art); contango.collateralBought(vaultId, buyer, ink, art); } function _auctionEnded(bytes12 vaultId, address owner) internal override { super._auctionEnded(vaultId, owner); contango.auctionEnded(vaultId, owner); } }