{"abi":[{"type":"constructor","inputs":[],"stateMutability":"nonpayable"},{"name":"Empty","type":"error","inputs":[]},{"name":"FirstDepositLessThanRequired","type":"error","inputs":[{"name":"amount","type":"uint256","internalType":"uint256"},{"name":"minimum","type":"uint256","internalType":"uint256"}]},{"name":"InsufficientOutput","type":"error","inputs":[{"name":"received","type":"uint256","internalType":"uint256"},{"name":"minimum","type":"uint256","internalType":"uint256"}]},{"name":"MintLessThanMinimum","type":"error","inputs":[{"name":"amount","type":"uint256","internalType":"uint256"},{"name":"minimum","type":"uint256","internalType":"uint256"}]},{"name":"MintLimitExceeded","type":"error","inputs":[]},{"name":"OutOfBounds","type":"error","inputs":[]},{"name":"RedeemLessThanMinimum","type":"error","inputs":[{"name":"amount","type":"uint256","internalType":"uint256"},{"name":"minimum","type":"uint256","internalType":"uint256"}]},{"name":"RedeemLimitExceeded","type":"error","inputs":[]},{"name":"TotalSupplyCapExceeded","type":"error","inputs":[]},{"name":"USDOExpressInsufficientLiquidity","type":"error","inputs":[{"name":"required","type":"uint256","internalType":"uint256"},{"name":"available","type":"uint256","internalType":"uint256"}]},{"name":"USDOExpressInvalidInput","type":"error","inputs":[{"name":"input","type":"uint256","internalType":"uint256"}]},{"name":"USDOExpressNotInKycList","type":"error","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"}]},{"name":"USDOExpressReceiveUSDCFailed","type":"error","inputs":[{"name":"amount","type":"uint256","internalType":"uint256"},{"name":"received","type":"uint256","internalType":"uint256"}]},{"name":"USDOExpressTokenNotSupported","type":"error","inputs":[{"name":"token","type":"address","internalType":"address"}]},{"name":"USDOExpressTooEarly","type":"error","inputs":[{"name":"amount","type":"uint256","internalType":"uint256"}]},{"name":"USDOExpressZeroAddress","type":"error","inputs":[]},{"name":"AddToRedemptionQueue","type":"event","inputs":[{"name":"from","type":"address","indexed":true,"internalType":"address"},{"name":"to","type":"address","indexed":true,"internalType":"address"},{"name":"usdoAmt","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"id","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"name":"AdminChanged","type":"event","inputs":[{"name":"previousAdmin","type":"address","indexed":false,"internalType":"address"},{"name":"newAdmin","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"name":"AssetRegistryUpdated","type":"event","inputs":[{"name":"newRegistry","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"name":"BeaconUpgraded","type":"event","inputs":[{"name":"beacon","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"name":"Cancel","type":"event","inputs":[{"name":"len","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"totalUsdo","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"name":"FirstDepositAmount","type":"event","inputs":[{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"name":"Initialized","type":"event","inputs":[{"name":"version","type":"uint8","indexed":false,"internalType":"uint8"}],"anonymous":false},{"name":"InstantMint","type":"event","inputs":[{"name":"underlying","type":"address","indexed":true,"internalType":"address"},{"name":"from","type":"address","indexed":true,"internalType":"address"},{"name":"to","type":"address","indexed":true,"internalType":"address"},{"name":"reqAmt","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"receiveAmt","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"fee","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"name":"InstantMintAndWrap","type":"event","inputs":[{"name":"underlying","type":"address","indexed":true,"internalType":"address"},{"name":"from","type":"address","indexed":true,"internalType":"address"},{"name":"to","type":"address","indexed":true,"internalType":"address"},{"name":"reqAmt","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"usdoAmt","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"cusdoAmt","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"fee","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"name":"InstantRedeem","type":"event","inputs":[{"name":"from","type":"address","indexed":true,"internalType":"address"},{"name":"to","type":"address","indexed":true,"internalType":"address"},{"name":"reqAmt","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"receiveAmt","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"fee","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"payout","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"usycFee","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"minUsdcOut","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"name":"ManualRedeem","type":"event","inputs":[{"name":"from","type":"address","indexed":true,"internalType":"address"},{"name":"reqAmt","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"receiveAmt","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"fee","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"name":"MintDurationUpdated","type":"event","inputs":[{"name":"newDuration","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"name":"MintLimitUpdated","type":"event","inputs":[{"name":"newLimit","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"name":"MintMinimumUpdated","type":"event","inputs":[{"name":"newMinimum","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"name":"OffRamp","type":"event","inputs":[{"name":"to","type":"address","indexed":true,"internalType":"address"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"name":"PausedMint","type":"event","inputs":[{"name":"account","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"name":"PausedRedeem","type":"event","inputs":[{"name":"account","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"name":"ProcessRedeem","type":"event","inputs":[{"name":"from","type":"address","indexed":true,"internalType":"address"},{"name":"to","type":"address","indexed":true,"internalType":"address"},{"name":"usdoAmt","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"usdcAmt","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"fee","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"id","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"name":"ProcessRedemptionCancel","type":"event","inputs":[{"name":"from","type":"address","indexed":true,"internalType":"address"},{"name":"to","type":"address","indexed":true,"internalType":"address"},{"name":"usdoAmt","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"id","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"name":"ProcessRedemptionQueue","type":"event","inputs":[{"name":"totalRedeemAssets","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"totalBurnUsdo","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"totalFees","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"name":"RdeemMinimumUpdated","type":"event","inputs":[{"name":"newMinimum","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"name":"RedeemDurationUpdated","type":"event","inputs":[{"name":"newDuration","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"name":"RedeemLimitUpdated","type":"event","inputs":[{"name":"newLimit","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"name":"RoleAdminChanged","type":"event","inputs":[{"name":"role","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"previousAdminRole","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"newAdminRole","type":"bytes32","indexed":true,"internalType":"bytes32"}],"anonymous":false},{"name":"RoleGranted","type":"event","inputs":[{"name":"role","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"account","type":"address","indexed":true,"internalType":"address"},{"name":"sender","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"name":"RoleRevoked","type":"event","inputs":[{"name":"role","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"account","type":"address","indexed":true,"internalType":"address"},{"name":"sender","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"name":"SetRedemption","type":"event","inputs":[{"name":"redemptionContract","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"name":"USDOKycGranted","type":"event","inputs":[{"name":"addresses","type":"address[]","indexed":false,"internalType":"address[]"}],"anonymous":false},{"name":"USDOKycRevoked","type":"event","inputs":[{"name":"addresses","type":"address[]","indexed":false,"internalType":"address[]"}],"anonymous":false},{"name":"UnpausedMint","type":"event","inputs":[{"name":"account","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"name":"UnpausedRedeem","type":"event","inputs":[{"name":"account","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"name":"UpdateAPY","type":"event","inputs":[{"name":"apy","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"increment","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"name":"UpdateCusdo","type":"event","inputs":[{"name":"cusdo","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"name":"UpdateFeeTo","type":"event","inputs":[{"name":"feeTo","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"name":"UpdateFirstDeposit","type":"event","inputs":[{"name":"account","type":"address","indexed":true,"internalType":"address"},{"name":"flag","type":"bool","indexed":false,"internalType":"bool"}],"anonymous":false},{"name":"UpdateInstantRedeemFee","type":"event","inputs":[{"name":"fee","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"name":"UpdateMintFeeRate","type":"event","inputs":[{"name":"fee","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"name":"UpdateRedeemFeeRate","type":"event","inputs":[{"name":"fee","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"name":"UpdateTimeBuffer","type":"event","inputs":[{"name":"timeBuffer","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"name":"UpdateTreasury","type":"event","inputs":[{"name":"treasury","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"name":"Upgraded","type":"event","inputs":[{"name":"implementation","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"name":"DEFAULT_ADMIN_ROLE","type":"function","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"name":"MAINTAINER_ROLE","type":"function","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"name":"MULTIPLIER_ROLE","type":"function","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"name":"OPERATOR_ROLE","type":"function","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"name":"PAUSE_ROLE","type":"function","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"name":"RESERVE1","type":"function","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"name":"UPGRADE_ROLE","type":"function","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"name":"WHITELIST_ROLE","type":"function","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"name":"_RESERVE2","type":"function","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"name":"_apy","type":"function","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"name":"_assetRegistry","type":"function","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract IAssetRegistry"}],"stateMutability":"view"},{"name":"_cusdo","type":"function","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract ICUSDO"}],"stateMutability":"view"},{"name":"_feeTo","type":"function","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"name":"_firstDeposit","type":"function","inputs":[{"name":"","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"name":"_firstDepositAmount","type":"function","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"name":"_increment","type":"function","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"name":"_instantRedeemFeeRate","type":"function","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"name":"_kycList","type":"function","inputs":[{"name":"","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"name":"_lastUpdateTS","type":"function","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"name":"_mintDuration","type":"function","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"name":"_mintFeeRate","type":"function","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"name":"_mintLimit","type":"function","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"name":"_mintMinimum","type":"function","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"name":"_mintResetTime","type":"function","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"name":"_mintedAmount","type":"function","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"name":"_redeemDuration","type":"function","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"name":"_redeemFeeRate","type":"function","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"name":"_redeemLimit","type":"function","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"name":"_redeemMinimum","type":"function","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"name":"_redeemResetTime","type":"function","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"name":"_redeemedAmount","type":"function","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"name":"_redemptionContract","type":"function","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract IRedemption"}],"stateMutability":"view"},{"name":"_timeBuffer","type":"function","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"name":"_treasury","type":"function","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"name":"_usdc","type":"function","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"name":"_usdo","type":"function","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract IUSDO"}],"stateMutability":"view"},{"name":"addBonusMultiplier","type":"function","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"name":"cancel","type":"function","inputs":[{"name":"_len","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"name":"convertFromUnderlying","type":"function","inputs":[{"name":"token","type":"address","internalType":"address"},{"name":"amt","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"usdoAmt","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"name":"convertToUnderlying","type":"function","inputs":[{"name":"token","type":"address","internalType":"address"},{"name":"usdoAmt","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"amt","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"name":"getBonusMultiplier","type":"function","inputs":[],"outputs":[{"name":"curr","type":"uint256","internalType":"uint256"},{"name":"next","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"name":"getRedemptionQueueInfo","type":"function","inputs":[{"name":"_index","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"sender","type":"address","internalType":"address"},{"name":"receiver","type":"address","internalType":"address"},{"name":"usdoAmt","type":"uint256","internalType":"uint256"},{"name":"id","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"name":"getRedemptionQueueLength","type":"function","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"name":"getRedemptionUserInfo","type":"function","inputs":[{"name":"_user","type":"address","internalType":"address"}],"outputs":[{"name":"usdoAmt","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"name":"getRoleAdmin","type":"function","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"name":"getTokenBalance","type":"function","inputs":[{"name":"token","type":"address","internalType":"address"}],"outputs":[{"name":"assetAmt","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"name":"grantKycInBulk","type":"function","inputs":[{"name":"_addresses","type":"address[]","internalType":"address[]"}],"outputs":[],"stateMutability":"nonpayable"},{"name":"grantRole","type":"function","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"name":"hasRole","type":"function","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"name":"initialize","type":"function","inputs":[{"name":"usdo","type":"address","internalType":"address"},{"name":"cusdo","type":"address","internalType":"address"},{"name":"usdc","type":"address","internalType":"address"},{"name":"treasury","type":"address","internalType":"address"},{"name":"feeTo","type":"address","internalType":"address"},{"name":"maintainer","type":"address","internalType":"address"},{"name":"operator","type":"address","internalType":"address"},{"name":"admin","type":"address","internalType":"address"},{"name":"assetRegistry","type":"address","internalType":"address"},{"name":"cfg","type":"tuple","components":[{"name":"mintMinimum","type":"uint256","internalType":"uint256"},{"name":"mintLimit","type":"uint256","internalType":"uint256"},{"name":"mintDuration","type":"uint256","internalType":"uint256"},{"name":"redeemMinimum","type":"uint256","internalType":"uint256"},{"name":"redeemLimit","type":"uint256","internalType":"uint256"},{"name":"redeemDuration","type":"uint256","internalType":"uint256"},{"name":"firstDepositAmount","type":"uint256","internalType":"uint256"}],"internalType":"struct USDOMintRedeemLimiterCfg"}],"outputs":[],"stateMutability":"nonpayable"},{"name":"instantMint","type":"function","inputs":[{"name":"underlying","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"amt","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"name":"instantMintAndWrap","type":"function","inputs":[{"name":"underlying","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"amt","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"name":"instantRedeemSelf","type":"function","inputs":[{"name":"to","type":"address","internalType":"address"},{"name":"amt","type":"uint256","internalType":"uint256"},{"name":"minUsdcOut","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"name":"offRamp","type":"function","inputs":[{"name":"amt","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"name":"pauseMint","type":"function","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"name":"pauseRedeem","type":"function","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"name":"pausedMint","type":"function","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"name":"pausedRedeem","type":"function","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"name":"previewIssuance","type":"function","inputs":[{"name":"usdoAmt","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"usdoAmtCurr","type":"uint256","internalType":"uint256"},{"name":"usdoAmtNext","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"name":"previewMint","type":"function","inputs":[{"name":"underlying","type":"address","internalType":"address"},{"name":"amt","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"netAmt","type":"uint256","internalType":"uint256"},{"name":"fee","type":"uint256","internalType":"uint256"},{"name":"usdoAmtCurr","type":"uint256","internalType":"uint256"},{"name":"usdoAmtNext","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"name":"previewRedeem","type":"function","inputs":[{"name":"amt","type":"uint256","internalType":"uint256"},{"name":"isInstant","type":"bool","internalType":"bool"}],"outputs":[{"name":"feeAmt","type":"uint256","internalType":"uint256"},{"name":"usdcAmt","type":"uint256","internalType":"uint256"},{"name":"extraFee","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"name":"processRedemptionQueue","type":"function","inputs":[{"name":"_len","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"name":"proxiableUUID","type":"function","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"name":"redeem","type":"function","inputs":[{"name":"amt","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"name":"redeemRequest","type":"function","inputs":[{"name":"to","type":"address","internalType":"address"},{"name":"amt","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"name":"renounceRole","type":"function","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"name":"revokeKycInBulk","type":"function","inputs":[{"name":"_addresses","type":"address[]","internalType":"address[]"}],"outputs":[],"stateMutability":"nonpayable"},{"name":"revokeRole","type":"function","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"name":"setAssetRegistry","type":"function","inputs":[{"name":"newRegistry","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"name":"setFirstDepositAmount","type":"function","inputs":[{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"name":"setMintDuration","type":"function","inputs":[{"name":"mintDuration","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"name":"setMintLimit","type":"function","inputs":[{"name":"mintLimit","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"name":"setMintMinimum","type":"function","inputs":[{"name":"mintMinimum","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"name":"setRedeemDuration","type":"function","inputs":[{"name":"redeemDuration","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"name":"setRedeemLimit","type":"function","inputs":[{"name":"redeemLimit","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"name":"setRedeemMinimum","type":"function","inputs":[{"name":"redeemMinimum","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"name":"setRedemption","type":"function","inputs":[{"name":"redemptionContract","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"name":"supportsInterface","type":"function","inputs":[{"name":"interfaceId","type":"bytes4","internalType":"bytes4"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"name":"txsFee","type":"function","inputs":[{"name":"amt","type":"uint256","internalType":"uint256"},{"name":"txType","type":"uint8","internalType":"enum TxType"}],"outputs":[{"name":"fee","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"name":"unpauseMint","type":"function","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"name":"unpauseRedeem","type":"function","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"name":"updateAPY","type":"function","inputs":[{"name":"newAPY","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"name":"updateCusdo","type":"function","inputs":[{"name":"cusdo","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"name":"updateFeeTo","type":"function","inputs":[{"name":"feeTo","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"name":"updateFirstDeposit","type":"function","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"flag","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"name":"updateInstantRedeemFee","type":"function","inputs":[{"name":"fee","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"name":"updateMintFee","type":"function","inputs":[{"name":"fee","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"name":"updateRedeemFee","type":"function","inputs":[{"name":"fee","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"name":"updateTimeBuffer","type":"function","inputs":[{"name":"timeBuffer","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"name":"updateTreasury","type":"function","inputs":[{"name":"treasury","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"name":"upgradeTo","type":"function","inputs":[{"name":"newImplementation","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"name":"upgradeToAndCall","type":"function","inputs":[{"name":"newImplementation","type":"address","internalType":"address"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"payable"}],"metadata":{"compiler":{"version":"0.8.18+commit.87f61d96"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"Empty","type":"error"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint256","name":"minimum","type":"uint256"}],"name":"FirstDepositLessThanRequired","type":"error"},{"inputs":[{"internalType":"uint256","name":"received","type":"uint256"},{"internalType":"uint256","name":"minimum","type":"uint256"}],"name":"InsufficientOutput","type":"error"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint256","name":"minimum","type":"uint256"}],"name":"MintLessThanMinimum","type":"error"},{"inputs":[],"name":"MintLimitExceeded","type":"error"},{"inputs":[],"name":"OutOfBounds","type":"error"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint256","name":"minimum","type":"uint256"}],"name":"RedeemLessThanMinimum","type":"error"},{"inputs":[],"name":"RedeemLimitExceeded","type":"error"},{"inputs":[],"name":"TotalSupplyCapExceeded","type":"error"},{"inputs":[{"internalType":"uint256","name":"required","type":"uint256"},{"internalType":"uint256","name":"available","type":"uint256"}],"name":"USDOExpressInsufficientLiquidity","type":"error"},{"inputs":[{"internalType":"uint256","name":"input","type":"uint256"}],"name":"USDOExpressInvalidInput","type":"error"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"}],"name":"USDOExpressNotInKycList","type":"error"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint256","name":"received","type":"uint256"}],"name":"USDOExpressReceiveUSDCFailed","type":"error"},{"inputs":[{"internalType":"address","name":"token","type":"address"}],"name":"USDOExpressTokenNotSupported","type":"error"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"USDOExpressTooEarly","type":"error"},{"inputs":[],"name":"USDOExpressZeroAddress","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"usdoAmt","type":"uint256"},{"indexed":false,"internalType":"bytes32","name":"id","type":"bytes32"}],"name":"AddToRedemptionQueue","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"previousAdmin","type":"address"},{"indexed":false,"internalType":"address","name":"newAdmin","type":"address"}],"name":"AdminChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"newRegistry","type":"address"}],"name":"AssetRegistryUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"beacon","type":"address"}],"name":"BeaconUpgraded","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"len","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"totalUsdo","type":"uint256"}],"name":"Cancel","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"FirstDepositAmount","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint8","name":"version","type":"uint8"}],"name":"Initialized","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"underlying","type":"address"},{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"reqAmt","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"receiveAmt","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"fee","type":"uint256"}],"name":"InstantMint","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"underlying","type":"address"},{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"reqAmt","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"usdoAmt","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"cusdoAmt","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"fee","type":"uint256"}],"name":"InstantMintAndWrap","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"reqAmt","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"receiveAmt","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"fee","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"payout","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"usycFee","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"minUsdcOut","type":"uint256"}],"name":"InstantRedeem","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":false,"internalType":"uint256","name":"reqAmt","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"receiveAmt","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"fee","type":"uint256"}],"name":"ManualRedeem","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"newDuration","type":"uint256"}],"name":"MintDurationUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"newLimit","type":"uint256"}],"name":"MintLimitUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"newMinimum","type":"uint256"}],"name":"MintMinimumUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"OffRamp","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"}],"name":"PausedMint","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"}],"name":"PausedRedeem","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"usdoAmt","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"usdcAmt","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"fee","type":"uint256"},{"indexed":false,"internalType":"bytes32","name":"id","type":"bytes32"}],"name":"ProcessRedeem","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"usdoAmt","type":"uint256"},{"indexed":false,"internalType":"bytes32","name":"id","type":"bytes32"}],"name":"ProcessRedemptionCancel","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"totalRedeemAssets","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"totalBurnUsdo","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"totalFees","type":"uint256"}],"name":"ProcessRedemptionQueue","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"newMinimum","type":"uint256"}],"name":"RdeemMinimumUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"newDuration","type":"uint256"}],"name":"RedeemDurationUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"newLimit","type":"uint256"}],"name":"RedeemLimitUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"role","type":"bytes32"},{"indexed":true,"internalType":"bytes32","name":"previousAdminRole","type":"bytes32"},{"indexed":true,"internalType":"bytes32","name":"newAdminRole","type":"bytes32"}],"name":"RoleAdminChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"role","type":"bytes32"},{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":true,"internalType":"address","name":"sender","type":"address"}],"name":"RoleGranted","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"role","type":"bytes32"},{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":true,"internalType":"address","name":"sender","type":"address"}],"name":"RoleRevoked","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"redemptionContract","type":"address"}],"name":"SetRedemption","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address[]","name":"addresses","type":"address[]"}],"name":"USDOKycGranted","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address[]","name":"addresses","type":"address[]"}],"name":"USDOKycRevoked","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"}],"name":"UnpausedMint","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"}],"name":"UnpausedRedeem","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"apy","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"increment","type":"uint256"}],"name":"UpdateAPY","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"cusdo","type":"address"}],"name":"UpdateCusdo","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"feeTo","type":"address"}],"name":"UpdateFeeTo","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":false,"internalType":"bool","name":"flag","type":"bool"}],"name":"UpdateFirstDeposit","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"fee","type":"uint256"}],"name":"UpdateInstantRedeemFee","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"fee","type":"uint256"}],"name":"UpdateMintFeeRate","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"fee","type":"uint256"}],"name":"UpdateRedeemFeeRate","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"timeBuffer","type":"uint256"}],"name":"UpdateTimeBuffer","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"treasury","type":"address"}],"name":"UpdateTreasury","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"implementation","type":"address"}],"name":"Upgraded","type":"event"},{"inputs":[],"name":"DEFAULT_ADMIN_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"MAINTAINER_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"MULTIPLIER_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"OPERATOR_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"PAUSE_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"RESERVE1","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"UPGRADE_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"WHITELIST_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_RESERVE2","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_apy","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_assetRegistry","outputs":[{"internalType":"contract IAssetRegistry","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_cusdo","outputs":[{"internalType":"contract ICUSDO","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_feeTo","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_firstDeposit","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_firstDepositAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_increment","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_instantRedeemFeeRate","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_kycList","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_lastUpdateTS","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_mintDuration","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_mintFeeRate","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_mintLimit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_mintMinimum","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_mintResetTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_mintedAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_redeemDuration","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_redeemFeeRate","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_redeemLimit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_redeemMinimum","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_redeemResetTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_redeemedAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_redemptionContract","outputs":[{"internalType":"contract IRedemption","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_timeBuffer","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_treasury","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_usdc","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_usdo","outputs":[{"internalType":"contract IUSDO","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"addBonusMultiplier","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_len","type":"uint256"}],"name":"cancel","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"uint256","name":"amt","type":"uint256"}],"name":"convertFromUnderlying","outputs":[{"internalType":"uint256","name":"usdoAmt","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"uint256","name":"usdoAmt","type":"uint256"}],"name":"convertToUnderlying","outputs":[{"internalType":"uint256","name":"amt","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getBonusMultiplier","outputs":[{"internalType":"uint256","name":"curr","type":"uint256"},{"internalType":"uint256","name":"next","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_index","type":"uint256"}],"name":"getRedemptionQueueInfo","outputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"receiver","type":"address"},{"internalType":"uint256","name":"usdoAmt","type":"uint256"},{"internalType":"bytes32","name":"id","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getRedemptionQueueLength","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_user","type":"address"}],"name":"getRedemptionUserInfo","outputs":[{"internalType":"uint256","name":"usdoAmt","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"}],"name":"getRoleAdmin","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"}],"name":"getTokenBalance","outputs":[{"internalType":"uint256","name":"assetAmt","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"_addresses","type":"address[]"}],"name":"grantKycInBulk","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"grantRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"hasRole","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"usdo","type":"address"},{"internalType":"address","name":"cusdo","type":"address"},{"internalType":"address","name":"usdc","type":"address"},{"internalType":"address","name":"treasury","type":"address"},{"internalType":"address","name":"feeTo","type":"address"},{"internalType":"address","name":"maintainer","type":"address"},{"internalType":"address","name":"operator","type":"address"},{"internalType":"address","name":"admin","type":"address"},{"internalType":"address","name":"assetRegistry","type":"address"},{"components":[{"internalType":"uint256","name":"mintMinimum","type":"uint256"},{"internalType":"uint256","name":"mintLimit","type":"uint256"},{"internalType":"uint256","name":"mintDuration","type":"uint256"},{"internalType":"uint256","name":"redeemMinimum","type":"uint256"},{"internalType":"uint256","name":"redeemLimit","type":"uint256"},{"internalType":"uint256","name":"redeemDuration","type":"uint256"},{"internalType":"uint256","name":"firstDepositAmount","type":"uint256"}],"internalType":"struct USDOMintRedeemLimiterCfg","name":"cfg","type":"tuple"}],"name":"initialize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"underlying","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amt","type":"uint256"}],"name":"instantMint","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"underlying","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amt","type":"uint256"}],"name":"instantMintAndWrap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amt","type":"uint256"},{"internalType":"uint256","name":"minUsdcOut","type":"uint256"}],"name":"instantRedeemSelf","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amt","type":"uint256"}],"name":"offRamp","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"pauseMint","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"pauseRedeem","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"pausedMint","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pausedRedeem","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"usdoAmt","type":"uint256"}],"name":"previewIssuance","outputs":[{"internalType":"uint256","name":"usdoAmtCurr","type":"uint256"},{"internalType":"uint256","name":"usdoAmtNext","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"underlying","type":"address"},{"internalType":"uint256","name":"amt","type":"uint256"}],"name":"previewMint","outputs":[{"internalType":"uint256","name":"netAmt","type":"uint256"},{"internalType":"uint256","name":"fee","type":"uint256"},{"internalType":"uint256","name":"usdoAmtCurr","type":"uint256"},{"internalType":"uint256","name":"usdoAmtNext","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amt","type":"uint256"},{"internalType":"bool","name":"isInstant","type":"bool"}],"name":"previewRedeem","outputs":[{"internalType":"uint256","name":"feeAmt","type":"uint256"},{"internalType":"uint256","name":"usdcAmt","type":"uint256"},{"internalType":"uint256","name":"extraFee","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_len","type":"uint256"}],"name":"processRedemptionQueue","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"proxiableUUID","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amt","type":"uint256"}],"name":"redeem","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amt","type":"uint256"}],"name":"redeemRequest","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"renounceRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"_addresses","type":"address[]"}],"name":"revokeKycInBulk","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"revokeRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newRegistry","type":"address"}],"name":"setAssetRegistry","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"setFirstDepositAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"mintDuration","type":"uint256"}],"name":"setMintDuration","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"mintLimit","type":"uint256"}],"name":"setMintLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"mintMinimum","type":"uint256"}],"name":"setMintMinimum","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"redeemDuration","type":"uint256"}],"name":"setRedeemDuration","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"redeemLimit","type":"uint256"}],"name":"setRedeemLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"redeemMinimum","type":"uint256"}],"name":"setRedeemMinimum","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"redemptionContract","type":"address"}],"name":"setRedemption","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amt","type":"uint256"},{"internalType":"enum TxType","name":"txType","type":"uint8"}],"name":"txsFee","outputs":[{"internalType":"uint256","name":"fee","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"unpauseMint","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"unpauseRedeem","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newAPY","type":"uint256"}],"name":"updateAPY","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"cusdo","type":"address"}],"name":"updateCusdo","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"feeTo","type":"address"}],"name":"updateFeeTo","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"flag","type":"bool"}],"name":"updateFirstDeposit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"fee","type":"uint256"}],"name":"updateInstantRedeemFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"fee","type":"uint256"}],"name":"updateMintFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"fee","type":"uint256"}],"name":"updateRedeemFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"timeBuffer","type":"uint256"}],"name":"updateTimeBuffer","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"treasury","type":"address"}],"name":"updateTreasury","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newImplementation","type":"address"}],"name":"upgradeTo","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newImplementation","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"upgradeToAndCall","outputs":[],"stateMutability":"payable","type":"function"}],"devdoc":{"errors":{"Empty()":[{"details":"An operation (e.g. {front}) couldn't be completed due to the queue being empty."}],"OutOfBounds()":[{"details":"An operation (e.g. {at}) couldn't be completed due to an index being out of bounds."}]},"events":{"AdminChanged(address,address)":{"details":"Emitted when the admin account has changed."},"BeaconUpgraded(address)":{"details":"Emitted when the beacon is changed."},"Initialized(uint8)":{"details":"Triggered when the contract has been initialized or reinitialized."},"RoleAdminChanged(bytes32,bytes32,bytes32)":{"details":"Emitted when `newAdminRole` is set as ``role``'s admin role, replacing `previousAdminRole` `DEFAULT_ADMIN_ROLE` is the starting admin for all roles, despite {RoleAdminChanged} not being emitted signaling this. _Available since v3.1._"},"RoleGranted(bytes32,address,address)":{"details":"Emitted when `account` is granted `role`. `sender` is the account that originated the contract call, an admin role bearer except when using {AccessControl-_setupRole}."},"RoleRevoked(bytes32,address,address)":{"details":"Emitted when `account` is revoked `role`. `sender` is the account that originated the contract call:   - if using `revokeRole`, it is the admin role bearer   - if using `renounceRole`, it is the role bearer (i.e. `account`)"},"Upgraded(address)":{"details":"Emitted when the implementation is upgraded."}},"kind":"dev","methods":{"cancel(uint256)":{"details":"Only operators can call this function.","params":{"_len":"The length of the cancel requests."}},"constructor":{"custom:oz-upgrades-unsafe-allow":"constructor"},"convertFromUnderlying(address,uint256)":{"details":"// USDC (6 decimals) to USDO (18 decimals), to scale to USDCO: amount * (10 ** (usdoDecimals - usdcDecimals));","params":{"amt":"The amount of the token to convert.","token":"The token to provide the value in."},"returns":{"usdoAmt":"The value of the token in USDO."}},"getRedemptionQueueInfo(uint256)":{"params":{"_index":"Index to retrieve data from."},"returns":{"id":"The ID associated with the redemption.","receiver":"The receiver's address.","sender":"The sender's address.","usdoAmt":"The number of USDO."}},"getRedemptionQueueLength()":{"returns":{"_0":"Length of the redemption queue."}},"getRedemptionUserInfo(address)":{"params":{"_user":"Address of the user."},"returns":{"usdoAmt":"Number of USDO associated with the user."}},"getRoleAdmin(bytes32)":{"details":"Returns the admin role that controls `role`. See {grantRole} and {revokeRole}. To change a role's admin, use {_setRoleAdmin}."},"getTokenBalance(address)":{"params":{"token":"The address of the token."},"returns":{"assetAmt":"Amount of onchain usdc."}},"grantKycInBulk(address[])":{"params":{"_addresses":"The address to grant KYC."}},"grantRole(bytes32,address)":{"details":"Grants `role` to `account`. If `account` had not been already granted `role`, emits a {RoleGranted} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleGranted} event."},"hasRole(bytes32,address)":{"details":"Returns `true` if `account` has been granted `role`."},"initialize(address,address,address,address,address,address,address,address,address,(uint256,uint256,uint256,uint256,uint256,uint256,uint256))":{"params":{"usdc":"Address of the USDC contract.","usdo":"Address of the USDO contract."}},"instantMint(address,address,uint256)":{"params":{"amt":"The supplied amount of the underlying token.","to":"The address to mint the USDO to.","underlying":"The address of the token to mint USDO from."}},"instantMintAndWrap(address,address,uint256)":{"params":{"amt":"The supplied amount of the underlying token.","to":"The address to mint the USDO to.","underlying":"The address of the token to mint USDO from."}},"instantRedeemSelf(address,uint256,uint256)":{"details":"Will convert USDO to USDC using the configured redemption contract.","params":{"amt":"The requested amount of USDO to redeem.","minUsdcOut":"Minimum USDC amount to receive (slippage protection).","to":"The address to redeem the USDC to."}},"offRamp(uint256)":{"details":"transfer underlying from vault to treasury, only operator can call this function","params":{"amt":"the amount of the token to transfer"}},"previewIssuance(uint256)":{"params":{"usdoAmt":"The amount of USDO requested for minting."},"returns":{"usdoAmtCurr":"The amount of USDO minted with the current bonus multiplier.","usdoAmtNext":"The amount of USDO minted with the next bonus multiplier."}},"processRedemptionQueue(uint256)":{"details":"Only operators can call this function.","params":{"_len":"The length of the queue to process, 0 means process all."}},"proxiableUUID()":{"details":"Implementation of the ERC1822 {proxiableUUID} function. This returns the storage slot used by the implementation. It is used to validate the implementation's compatibility when performing an upgrade. IMPORTANT: A proxy pointing at a proxiable contract should not be considered proxiable itself, because this risks bricking a proxy that upgrades to it, by delegating to itself until out of gas. Thus it is critical that this function revert if invoked through a proxy. This is guaranteed by the `notDelegated` modifier."},"redeem(uint256)":{"params":{"amt":"The requested amount of USDO to redeem."}},"redeemRequest(address,uint256)":{"details":"The redemption request will be put into a queue and processed later when sufficient USDC is available.","params":{"amt":"The requested amount of USDO to redeem.","to":"The address to redeem the USDC to."}},"renounceRole(bytes32,address)":{"details":"Revokes `role` from the calling account. Roles are often managed via {grantRole} and {revokeRole}: this function's purpose is to provide a mechanism for accounts to lose their privileges if they are compromised (such as when a trusted device is misplaced). If the calling account had been revoked `role`, emits a {RoleRevoked} event. Requirements: - the caller must be `account`. May emit a {RoleRevoked} event."},"revokeKycInBulk(address[])":{"params":{"_addresses":"The address to revoke KYC."}},"revokeRole(bytes32,address)":{"details":"Revokes `role` from `account`. If `account` had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleRevoked} event."},"setAssetRegistry(address)":{"params":{"newRegistry":"The new asset registry address"}},"setFirstDepositAmount(uint256)":{"details":"Amount should be in 18 decimals (USDO decimals) for accurate comparison across different underlying assets","params":{"amount":"The amount of the first deposit in USDO equivalent."}},"setMintMinimum(uint256)":{"details":"Amount should be in 18 decimals (USDO decimals) for accurate comparison across different underlying assets"},"setRedeemMinimum(uint256)":{"details":"with 18 decimals"},"setRedemption(address)":{"params":{"redemptionContract":"Address of the redemption contract."}},"supportsInterface(bytes4)":{"details":"See {IERC165-supportsInterface}."},"updateAPY(uint256)":{"details":"This function can only be called by the owner.","params":{"newAPY":"The new APY value in base points, apy example: 514 = 5.14%"}},"updateCusdo(address)":{"params":{"cusdo":"The address of the cUSDO contract."}},"updateInstantRedeemFee(uint256)":{"details":"This function can only be called by the operator.","params":{"fee":"The new fee percentage in base points."}},"updateMintFee(uint256)":{"details":"This function can only be called by the operator.","params":{"fee":"The new fee percentage in base points."}},"updateRedeemFee(uint256)":{"details":"This function can only be called by the operator.","params":{"fee":"The new fee percentage in base points."}},"updateTimeBuffer(uint256)":{"details":"Can only be called by the contract operator","params":{"timeBuffer":"Time buffer in seconds"}},"upgradeTo(address)":{"custom:oz-upgrades-unsafe-allow-reachable":"delegatecall","details":"Upgrade the implementation of the proxy to `newImplementation`. Calls {_authorizeUpgrade}. Emits an {Upgraded} event."},"upgradeToAndCall(address,bytes)":{"custom:oz-upgrades-unsafe-allow-reachable":"delegatecall","details":"Upgrade the implementation of the proxy to `newImplementation`, and subsequently execute the function call encoded in `data`. Calls {_authorizeUpgrade}. Emits an {Upgraded} event."}},"stateVariables":{"__gap":{"details":"This empty reserved space is put in place to allow future versions to add new variables without shifting down storage in the inheritance chain. See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps"}},"version":1},"userdoc":{"kind":"user","methods":{"addBonusMultiplier()":{"notice":"Will be used to update the bonus multiplier in the USDO contract."},"cancel(uint256)":{"notice":"Cancel the first _len redemption requests in the queue."},"convertFromUnderlying(address,uint256)":{"notice":"Previews the instant redeem amounts."},"getRedemptionQueueInfo(uint256)":{"notice":"Retrieve redemption queue information for a given index."},"getRedemptionQueueLength()":{"notice":"Retrieve the length of the redemption queue."},"getRedemptionUserInfo(address)":{"notice":"Retrieve redemption information for a specific user that is in the queue."},"getTokenBalance(address)":{"notice":"Retrieve the on-chain assets amount."},"grantKycInBulk(address[])":{"notice":"Grant KYC to the address."},"initialize(address,address,address,address,address,address,address,address,address,(uint256,uint256,uint256,uint256,uint256,uint256,uint256))":{"notice":"Initializes the contract."},"instantMint(address,address,uint256)":{"notice":"Allows a whitelisted user to perform an instant mint."},"instantMintAndWrap(address,address,uint256)":{"notice":"Allows a whitelisted user to perform an instant mint."},"instantRedeemSelf(address,uint256,uint256)":{"notice":"Allows a whitelisted user to perform an instant redeem with slippage protection."},"pauseMint()":{"notice":"Pauses minting"},"pauseRedeem()":{"notice":"Pauses redeeming"},"previewIssuance(uint256)":{"notice":"Previews the instant mint amounts."},"processRedemptionQueue(uint256)":{"notice":"Process the redemption queue."},"redeem(uint256)":{"notice":"The redemption request will be processed manually."},"redeemRequest(address,uint256)":{"notice":"Queue a redemption request for manual processing."},"revokeKycInBulk(address[])":{"notice":"Revoke KYC to the address."},"setAssetRegistry(address)":{"notice":"Update the asset registry address"},"setFirstDepositAmount(uint256)":{"notice":"Set the first deposit amount for the account."},"setMintDuration(uint256)":{"notice":"Set the mint limit for a certain duration in seconds, etc 8400s."},"setMintLimit(uint256)":{"notice":"Set the mint limit for a certain duration in seconds."},"setMintMinimum(uint256)":{"notice":"Set the mint minimum in USDO equivalent."},"setRedeemDuration(uint256)":{"notice":"Set the redeem duration for a certain duration in seconds, etc 8400s."},"setRedeemLimit(uint256)":{"notice":"Set the redeem limit for a certain duration in seconds."},"setRedeemMinimum(uint256)":{"notice":"Set the redeem minimum in USDO."},"setRedemption(address)":{"notice":"Set the redemption contract and token addresses."},"unpauseMint()":{"notice":"Unpauses minting"},"unpauseRedeem()":{"notice":"Unpauses redeeming"},"updateAPY(uint256)":{"notice":"Updates the APY."},"updateCusdo(address)":{"notice":"Update the cUSDO contract."},"updateFirstDeposit(address,bool)":{"notice":"Update the mint status of the account."},"updateInstantRedeemFee(uint256)":{"notice":"Updates the fee percentage for instant redeem."},"updateMintFee(uint256)":{"notice":"Updates the fee percentage."},"updateRedeemFee(uint256)":{"notice":"Updates the fee percentage for redeem."},"updateTimeBuffer(uint256)":{"notice":"Set the time buffer for the operator to update the bonus multiplier"}},"version":1}},"settings":{"compilationTarget":{"contracts/extensions/USDOExpressV2.sol":"USDOExpressV2"},"evmVersion":"paris","libraries":{},"metadata":{"bytecodeHash":"ipfs"},"optimizer":{"enabled":true,"runs":200},"remappings":[":@ensdomains/=node_modules/@ensdomains/",":@openzeppelin/contracts-upgradeable/=node_modules/@openzeppelin/contracts-upgradeable/",":@openzeppelin/contracts/=node_modules/@openzeppelin/contracts/",":ds-test/=lib/forge-std/lib/ds-test/src/",":eth-gas-reporter/=node_modules/eth-gas-reporter/",":forge-std/=lib/forge-std/src/",":hardhat/=node_modules/hardhat/"]},"sources":{"contracts/extensions/DoubleQueueModified.sol":{"keccak256":"0x06d847b3d37a5ed5966898ba7add6967c80358d692e1ee3879364eaa8d63570a","license":"MIT","urls":["bzz-raw://e7612dce60772002efe3a16a8d22db02cb4041a2e8ee0531e58c4536792c5569","dweb:/ipfs/Qmf9L2yN8LLCFYgnYEN2MbcheWLiueHuRTZ7VNtNcAngfp"]},"contracts/extensions/USDOExpressPausable.sol":{"keccak256":"0x5a792cfa86ae869242961cb29218ceb95f9af07976ee126be4a3395688230f0f","license":"MIT","urls":["bzz-raw://9cbffb553fa45c8f9a441a03d864a17e3561443b4b0b54ea500e6a4704c88e7d","dweb:/ipfs/QmSnjWZxibdmaW3AVNGedjLcbaz4gDtWSZsM836b93zEr8"]},"contracts/extensions/USDOExpressV2.sol":{"keccak256":"0x5e28fe1145dd7404d404dfac9fbb0166e4c126c90ff54ae6886c39229f8b5d10","license":"MIT","urls":["bzz-raw://8a14f0408e850fb11c305b32f0431f020ae31b5b07532a367745ecf491ba94db","dweb:/ipfs/QmQDJuN6SxAzF1eJe6NvaTtRp3vhCzM54KRENjHhVPtyZu"]},"contracts/extensions/USDOMintRedeemLimiterV2.sol":{"keccak256":"0x9c296c0764e0128d40ed3de25f9c52a122458fbc3902ef801e509493297912ba","license":"MIT","urls":["bzz-raw://ce45f59f55d3cc260732eaacacf262e3cf5c3b561d26fd6e6bc672fe8ea860ac","dweb:/ipfs/QmafzYXL6p8Qs16qBE4cMVQXMvYczAgiH5BRyDtzH6LsHQ"]},"contracts/interfaces/IAssetRegistry.sol":{"keccak256":"0xb2dbde70dbb3bc63b6e1fb4ec9cbc7a00d30abdef4b057bdd2aeccbef59f7861","license":"MIT","urls":["bzz-raw://25449dc425a159ea4039325027993e670001d223928b67a42abcd9274d3a95f0","dweb:/ipfs/QmQYyc6BzZg9T9cox56mPemcKymj849fkwHiRNjBaziaRF"]},"contracts/interfaces/ICUSDO.sol":{"keccak256":"0x062bc658f79cd4de48b63e6c01a0dfba9945b500f29560449e0ad7aced40fd5f","license":"MIT","urls":["bzz-raw://94f6e73d8a4181c2c4b2cabb7ffced85a32b0d5d94991e03ddeaa8a9526da5d5","dweb:/ipfs/QmUPfQMZ8d7kBbgZq6zqzZcTz1StdQZXpvyBLXAm4e7WWb"]},"contracts/interfaces/IRedemption.sol":{"keccak256":"0xb334e94801c2f8990e78b145e5861f1c2a0fe65cc8af5545cc15b04f5d854609","license":"MIT","urls":["bzz-raw://d5deb0d7ea127e040c7f8713aa0ca1ce56bd9fcc81154a96b9160716817fc79b","dweb:/ipfs/QmWt6Y6dtviCaE5oPbsTiJPccN47GDVpQ9jQCrr32Ehinb"]},"contracts/interfaces/IUSDO.sol":{"keccak256":"0xd0c55adea2c48f8e00fd192fc0c60cda78a5248936894ef0205110ca40c78ea2","license":"MIT","urls":["bzz-raw://bdae1aa545a6725cf7de1856f88b99d35fef0e1e14ddbda52eb4ed5d78af3c23","dweb:/ipfs/QmXWe77iA6qc49uTswvFZTrPM6m6LdmPS5R46bzUEDRrfK"]},"node_modules/@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol":{"keccak256":"0xc8710577334e8d0799ae2b2a731b1924a7bddd64319da9787ddd2dc69bdd1ce5","license":"MIT","urls":["bzz-raw://b83b7afa4d2372da3ba5402fb10860a105c35d79812c60dc61007be2afc17618","dweb:/ipfs/QmYX9xPmbNVSKXrepKiUZiG5oL3SdzFp9a4kqspxX1sEUx"]},"node_modules/@openzeppelin/contracts-upgradeable/access/IAccessControlUpgradeable.sol":{"keccak256":"0xb8f5302f12138c5561362e88a78d061573e6298b7a1a5afe84a1e2c8d4d5aeaa","license":"MIT","urls":["bzz-raw://740cf4dc535e3082560cf5a031473029f322690fc8037fe9d5e3a8bef42e757c","dweb:/ipfs/QmTQxFdfxcaueQa23VX34wAPqzruZbkzyeN58tZK2yav2b"]},"node_modules/@openzeppelin/contracts-upgradeable/interfaces/IERC1967Upgradeable.sol":{"keccak256":"0x47d6e06872b12e72c79d1b5eb55842f860b5fb1207b2317c2358d2766b950a7b","license":"MIT","urls":["bzz-raw://ac55bf6f92fc7b90c6d79d346163a0a02bd5c648c7fede08b20e5da96d4ae2a0","dweb:/ipfs/QmQoSrHhka35iKDK5iyNt8cuXXS5ANXVPjLhfsJjktB8V9"]},"node_modules/@openzeppelin/contracts-upgradeable/interfaces/draft-IERC1822Upgradeable.sol":{"keccak256":"0x77c89f893e403efc6929ba842b7ccf6534d4ffe03afe31670b4a528c0ad78c0f","license":"MIT","urls":["bzz-raw://496bd9b3df2455d571018c09f0c6badd29713fdeb907c6aa09d8d28cb603f053","dweb:/ipfs/QmXdJDyYs6WMwMh21dez2BYPxhSUaUYFMDtVNcn2cgFR79"]},"node_modules/@openzeppelin/contracts-upgradeable/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol":{"keccak256":"0x7795808e3899c805254e3ae58074b20f799b466e3f43e057e47bedee5fb771f8","license":"MIT","urls":["bzz-raw://319853a2a682f3f72411507242669ef5e76e0ad3457be53102439709ee8948f0","dweb:/ipfs/QmRtm4Ese9u4jfxXyuWPXLwzenwFotuQjAWV7rXtZTB1E9"]},"node_modules/@openzeppelin/contracts-upgradeable/proxy/beacon/IBeaconUpgradeable.sol":{"keccak256":"0x24b86ac8c005b8c654fbf6ac34a5a4f61580d7273541e83e013e89d66fbf0908","license":"MIT","urls":["bzz-raw://4dbfe1a3b3b3fb64294ce41fd2ad362e7b7012208117864f42c1a67620a6d5c1","dweb:/ipfs/QmVMU5tWt7zBQMmf5cpMX8UMHV86T3kFeTxBTBjFqVWfoJ"]},"node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol":{"keccak256":"0x89be10e757d242e9b18d5a32c9fbe2019f6d63052bbe46397a430a1d60d7f794","license":"MIT","urls":["bzz-raw://f103ee2e4aecd37aac6ceefe670709cdd7613dee25fa2d4d9feaf7fc0aaa155e","dweb:/ipfs/QmRiNZLoJk5k3HPMYGPGjZFd2ke1ZxjhJZkM45Ec9GH9hv"]},"node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol":{"keccak256":"0xefb41f5c1a00249b7a99f0782f8c557865605426a3fb6e5fe9ae334293ae4f33","license":"MIT","urls":["bzz-raw://90def55e5782595aabc13f57780c02d3613e5226f20ce6c1709503a63fdeb58f","dweb:/ipfs/Qmb5vcymmNEZUJMaHmYxnhvGJDEsGMae4YjcHwkA74jy99"]},"node_modules/@openzeppelin/contracts-upgradeable/token/ERC20/IERC20Upgradeable.sol":{"keccak256":"0x0e1f0f5f62f67a881cd1a9597acbc0a5e4071f3c2c10449a183b922ae7272e3f","license":"MIT","urls":["bzz-raw://c25f742ff154998d19a669e2508c3597b363e123ce9144cd0fcf6521229f401f","dweb:/ipfs/QmQXRuFzStEWqeEPbhQU6cAg9PaSowxJVo4PDKyRod7dco"]},"node_modules/@openzeppelin/contracts-upgradeable/token/ERC20/extensions/IERC20PermitUpgradeable.sol":{"keccak256":"0x07e881de3b9f6d2c07909f193f24b96c7fe4ea60013260f3f25aecd8bab3c2f8","license":"MIT","urls":["bzz-raw://1fed09b97ccb0ff9ba9b6a94224f1d489026bf6b4b7279bfe64fb6e8749dee4d","dweb:/ipfs/QmcRAzaSP1UnGr4vrGkfJmB2L9aiTYoXfV1Lg9gqrVRWn8"]},"node_modules/@openzeppelin/contracts-upgradeable/token/ERC20/utils/SafeERC20Upgradeable.sol":{"keccak256":"0x23b997be73d3dd46885262704f0f8cfc7273fdadfe303d37969a9561373972b5","license":"MIT","urls":["bzz-raw://d03ebe5406134f0c4a017dee625ff615031194493bd1e88504e5c8fae55bc166","dweb:/ipfs/QmUZV5bMbgk2PAkV3coouSeSainHN2jhqaQDJaA7hQRyu2"]},"node_modules/@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol":{"keccak256":"0x9c80f545915582e63fe206c6ce27cbe85a86fc10b9cd2a0e8c9488fb7c2ee422","license":"MIT","urls":["bzz-raw://310136ad60820af4177a11a61d77a3686faf5fca4942b600e08fc940db38396b","dweb:/ipfs/QmbCzMNSTL7Zi7M4UCSqBrkHtp4jjxUnGbkneCZKdR1qeq"]},"node_modules/@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol":{"keccak256":"0x75097e35253e7fb282ee4d7f27a80eaacfa759923185bf17302a89cbc059c5ef","license":"MIT","urls":["bzz-raw://8b06267c5f80bad727af3e48b1382333d591dad51376399ef2f6b0ee6d58bf95","dweb:/ipfs/QmdU5La1agcQvghnfMpWZGDPz2TUDTCxUwTLKmuMRXBpAx"]},"node_modules/@openzeppelin/contracts-upgradeable/utils/StorageSlotUpgradeable.sol":{"keccak256":"0x07ac95acad040f1fb1f6120dd0aa5f702db69446e95f82613721879d30de0908","license":"MIT","urls":["bzz-raw://a9df9de7b5da1d1bd3d4b6c073d0174bc4211db60e794a321c8cb5d4eae34685","dweb:/ipfs/QmWe49zj65jayrCe9jZpoWhYUZ1RiwSxyU2s7SBZnMztVy"]},"node_modules/@openzeppelin/contracts-upgradeable/utils/StringsUpgradeable.sol":{"keccak256":"0xb96dc79b65b7c37937919dcdb356a969ce0aa2e8338322bf4dc027a3c9c9a7eb","license":"MIT","urls":["bzz-raw://f8613145881436fc0480fff22da4868d611e2b0c0c3da083334eb4362ce1945a","dweb:/ipfs/QmPqpP3YeRbBdTJRe6Gv2eGsUaANf4J6RwTNRW36iYahfV"]},"node_modules/@openzeppelin/contracts-upgradeable/utils/introspection/ERC165Upgradeable.sol":{"keccak256":"0xd90d7723512df65ae417adaf0801042940f0dabd60039ceeaffe34aa5b238da1","license":"MIT","urls":["bzz-raw://1b13befeb3413749292f9fb229de1c7a509a5ce2c8047d9094fc004ca9d3af89","dweb:/ipfs/QmRzJ2hZSwRtMejHUZAYTPRKgZsnfb112Fno9Jf3EiDfwA"]},"node_modules/@openzeppelin/contracts-upgradeable/utils/introspection/IERC165Upgradeable.sol":{"keccak256":"0xc6cef87559d0aeffdf0a99803de655938a7779ec0a3cd5d4383483ad85565a09","license":"MIT","urls":["bzz-raw://92ad7e572cf44e6b4b37631b44b62f9eb9fb1cf14d9ce51c1504d5dc7ccaf758","dweb:/ipfs/QmcnbqX85tsWnUXPmtuPLE4SczME2sJaTfmqEFkuAJvWhy"]},"node_modules/@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol":{"keccak256":"0x2bc0007987c229ae7624eb29be6a9b84f6a6a5872f76248b15208b131ea41c4e","license":"MIT","urls":["bzz-raw://2b2835c737d073ef8b82a4cc246495a9740f43e7ff2cf130906b2449ff9bfb91","dweb:/ipfs/QmSCWfNoSvvTN57ic7o1RW6NqSxxGAqbBTnLKc7QHe27qB"]},"node_modules/@openzeppelin/contracts-upgradeable/utils/math/SignedMathUpgradeable.sol":{"keccak256":"0x88f6b7bba3ee33eeb741f9a0f5bc98b6e6e352d0fe4905377bb328590f84095a","license":"MIT","urls":["bzz-raw://88ace2d60f265752f18903d839910be4e4e104340b2957678585b812447825d4","dweb:/ipfs/QmXFkNxMc3AAGzhs2wUEZyErWQjsvoTGyYjuU5oZkFki5Z"]},"node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol":{"keccak256":"0x287b55befed2961a7eabd7d7b1b2839cbca8a5b80ef8dcbb25ed3d4c2002c305","license":"MIT","urls":["bzz-raw://bd39944e8fc06be6dbe2dd1d8449b5336e23c6a7ba3e8e9ae5ae0f37f35283f5","dweb:/ipfs/QmPV3FGYjVwvKSgAXKUN3r9T9GwniZz83CxBpM7vyj2G53"]},"node_modules/@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol":{"keccak256":"0x8de418a5503946cabe331f35fe242d3201a73f67f77aaeb7110acb1f30423aca","license":"MIT","urls":["bzz-raw://5a376d3dda2cb70536c0a45c208b29b34ac560c4cb4f513a42079f96ba47d2dd","dweb:/ipfs/QmZQg6gn1sUpM8wHzwNvSnihumUCAhxD119MpXeKp8B9s8"]},"node_modules/@openzeppelin/contracts/utils/Context.sol":{"keccak256":"0xa92e4fa126feb6907daa0513ddd816b2eb91f30a808de54f63c17d0e162c3439","license":"MIT","urls":["bzz-raw://a367861093b74443b137564d3f3c472f70bcf114739e62059c939f25e315706c","dweb:/ipfs/Qmd7JMpcxD9RuQjK3uM3EzJUgSqdN8vzp8eytEiuwxQJ6h"]}},"version":1},"matchId":"9612901","creationMatch":"match","runtimeMatch":"match","verifiedAt":"2025-10-24T11:55:57Z","match":"match","chainId":"1","address":"0xdDEa8966F5F33281333b19f7b071fb5b05118451"}