```\nFile: BondBaseSDA.sol\n    function purchaseBond(\n        uint256 id_,\n        uint256 amount_,\n        uint256 minAmountOut_\n    ) external override returns (uint256 payout) {\n        if (msg.sender != address(_teller)) revert Auctioneer_NotAuthorized();\n\n        BondMarket storage market = markets[id_];\n        BondTerms memory term = terms[id_];\n\n        // If market uses a callback, check that owner is still callback authorized\n        if (market.callbackAddr != address(0) && !callbackAuthorized[market.owner])\n            revert Auctioneer_NotAuthorized();\n```\n