{
    "abi": [{ "type": "constructor", "inputs": [], "stateMutability": "nonpayable" }, { "type": "function", "name": "BASIS_POINTS_DIVISOR", "inputs": [], "outputs": [{ "name": "", "type": "uint256", "internalType": "uint256" }], "stateMutability": "view" }, { "type": "function", "name": "MANTISSA_ONE", "inputs": [], "outputs": [{ "name": "", "type": "uint256", "internalType": "uint256" }], "stateMutability": "view" }, { "type": "function", "name": "ONE_DOLLAR", "inputs": [], "outputs": [{ "name": "", "type": "uint256", "internalType": "uint256" }], "stateMutability": "view" }, { "type": "function", "name": "SATOSHI_CORE", "inputs": [], "outputs": [{ "name": "", "type": "address", "internalType": "contract ISatoshiCore" }], "stateMutability": "view" }, { "type": "function", "name": "TARGET_DIGITS", "inputs": [], "outputs": [{ "name": "", "type": "uint256", "internalType": "uint256" }], "stateMutability": "view" }, { "type": "function", "name": "assetConfigs", "inputs": [{ "name": "", "type": "address", "internalType": "address" }], "outputs": [{ "name": "oracle", "type": "address", "internalType": "contract IPriceFeedAggregator" }, { "name": "feeIn", "type": "uint256", "internalType": "uint256" }, { "name": "feeOut", "type": "uint256", "internalType": "uint256" }, { "name": "debtTokenMintCap", "type": "uint256", "internalType": "uint256" }, { "name": "dailyDebtTokenMintCap", "type": "uint256", "internalType": "uint256" }, { "name": "debtTokenMinted", "type": "uint256", "internalType": "uint256" }, { "name": "isUsingOracle", "type": "bool", "internalType": "bool" }, { "name": "swapWaitingPeriod", "type": "uint256", "internalType": "uint256" }, { "name": "maxPrice", "type": "uint256", "internalType": "uint256" }, { "name": "minPrice", "type": "uint256", "internalType": "uint256" }], "stateMutability": "view" }, { "type": "function", "name": "convertAssetToDebtTokenAmount", "inputs": [{ "name": "asset", "type": "address", "internalType": "address" }, { "name": "amount", "type": "uint256", "internalType": "uint256" }], "outputs": [{ "name": "", "type": "uint256", "internalType": "uint256" }], "stateMutability": "view" }, { "type": "function", "name": "convertDebtTokenToAssetAmount", "inputs": [{ "name": "asset", "type": "address", "internalType": "address" }, { "name": "amount", "type": "uint256", "internalType": "uint256" }], "outputs": [{ "name": "", "type": "uint256", "internalType": "uint256" }], "stateMutability": "view" }, { "type": "function", "name": "dailyDebtTokenMintCap", "inputs": [{ "name": "asset", "type": "address", "internalType": "address" }], "outputs": [{ "name": "", "type": "uint256", "internalType": "uint256" }], "stateMutability": "view" }, { "type": "function", "name": "dailyMintCount", "inputs": [{ "name": "", "type": "address", "internalType": "address" }], "outputs": [{ "name": "", "type": "uint256", "internalType": "uint256" }], "stateMutability": "view" }, { "type": "function", "name": "day", "inputs": [], "outputs": [{ "name": "", "type": "uint256", "internalType": "uint256" }], "stateMutability": "view" }, { "type": "function", "name": "debtToken", "inputs": [], "outputs": [{ "name": "", "type": "address", "internalType": "contract IDebtToken" }], "stateMutability": "view" }, { "type": "function", "name": "debtTokenDailyMintCapRemain", "inputs": [{ "name": "asset", "type": "address", "internalType": "address" }], "outputs": [{ "name": "", "type": "uint256", "internalType": "uint256" }], "stateMutability": "view" }, { "type": "function", "name": "debtTokenMintCap", "inputs": [{ "name": "asset", "type": "address", "internalType": "address" }], "outputs": [{ "name": "", "type": "uint256", "internalType": "uint256" }], "stateMutability": "view" }, { "type": "function", "name": "debtTokenMinted", "inputs": [{ "name": "asset", "type": "address", "internalType": "address" }], "outputs": [{ "name": "", "type": "uint256", "internalType": "uint256" }], "stateMutability": "view" }, { "type": "function", "name": "feeIn", "inputs": [{ "name": "asset", "type": "address", "internalType": "address" }], "outputs": [{ "name": "", "type": "uint256", "internalType": "uint256" }], "stateMutability": "view" }, { "type": "function", "name": "feeOut", "inputs": [{ "name": "asset", "type": "address", "internalType": "address" }], "outputs": [{ "name": "", "type": "uint256", "internalType": "uint256" }], "stateMutability": "view" }, { "type": "function", "name": "guardian", "inputs": [], "outputs": [{ "name": "", "type": "address", "internalType": "address" }], "stateMutability": "view" }, { "type": "function", "name": "initialize", "inputs": [{ "name": "satoshiCore_", "type": "address", "internalType": "contract ISatoshiCore" }, { "name": "debtTokenAddress_", "type": "address", "internalType": "address" }, { "name": "rewardManagerAddr_", "type": "address", "internalType": "address" }], "outputs": [], "stateMutability": "nonpayable" }, { "type": "function", "name": "isAssetSupported", "inputs": [{ "name": "", "type": "address", "internalType": "address" }], "outputs": [{ "name": "", "type": "bool", "internalType": "bool" }], "stateMutability": "view" }, { "type": "function", "name": "isPaused", "inputs": [], "outputs": [{ "name": "", "type": "bool", "internalType": "bool" }], "stateMutability": "view" }, { "type": "function", "name": "isPrivileged", "inputs": [{ "name": "", "type": "address", "internalType": "address" }], "outputs": [{ "name": "", "type": "bool", "internalType": "bool" }], "stateMutability": "view" }, { "type": "function", "name": "isUsingOracle", "inputs": [{ "name": "asset", "type": "address", "internalType": "address" }], "outputs": [{ "name": "", "type": "bool", "internalType": "bool" }], "stateMutability": "view" }, { "type": "function", "name": "oracle", "inputs": [{ "name": "asset", "type": "address", "internalType": "address" }], "outputs": [{ "name": "", "type": "address", "internalType": "contract IPriceFeedAggregator" }], "stateMutability": "view" }, { "type": "function", "name": "owner", "inputs": [], "outputs": [{ "name": "", "type": "address", "internalType": "address" }], "stateMutability": "view" }, { "type": "function", "name": "pause", "inputs": [], "outputs": [], "stateMutability": "nonpayable" }, { "type": "function", "name": "pendingWithdrawal", "inputs": [{ "name": "asset", "type": "address", "internalType": "address" }, { "name": "account", "type": "address", "internalType": "address" }], "outputs": [{ "name": "", "type": "uint256", "internalType": "uint256" }, { "name": "", "type": "uint32", "internalType": "uint32" }], "stateMutability": "view" }, { "type": "function", "name": "pendingWithdrawals", "inputs": [{ "name": "assets", "type": "address[]", "internalType": "address[]" }, { "name": "account", "type": "address", "internalType": "address" }], "outputs": [{ "name": "", "type": "uint256[]", "internalType": "uint256[]" }, { "name": "", "type": "uint32[]", "internalType": "uint32[]" }], "stateMutability": "view" }, { "type": "function", "name": "previewSwapIn", "inputs": [{ "name": "asset", "type": "address", "internalType": "address" }, { "name": "assetAmount", "type": "uint256", "internalType": "uint256" }], "outputs": [{ "name": "", "type": "uint256", "internalType": "uint256" }, { "name": "", "type": "uint256", "internalType": "uint256" }], "stateMutability": "nonpayable" }, { "type": "function", "name": "previewSwapOut", "inputs": [{ "name": "asset", "type": "address", "internalType": "address" }, { "name": "amount", "type": "uint256", "internalType": "uint256" }], "outputs": [{ "name": "", "type": "uint256", "internalType": "uint256" }, { "name": "", "type": "uint256", "internalType": "uint256" }], "stateMutability": "nonpayable" }, { "type": "function", "name": "proxiableUUID", "inputs": [], "outputs": [{ "name": "", "type": "bytes32", "internalType": "bytes32" }], "stateMutability": "view" }, { "type": "function", "name": "resume", "inputs": [], "outputs": [], "stateMutability": "nonpayable" }, { "type": "function", "name": "rewardManagerAddr", "inputs": [], "outputs": [{ "name": "", "type": "address", "internalType": "address" }], "stateMutability": "view" }, { "type": "function", "name": "scheduleSwapOut", "inputs": [{ "name": "asset", "type": "address", "internalType": "address" }, { "name": "amount", "type": "uint256", "internalType": "uint256" }], "outputs": [{ "name": "", "type": "uint256", "internalType": "uint256" }], "stateMutability": "nonpayable" }, { "type": "function", "name": "scheduledWithdrawalAmount", "inputs": [{ "name": "", "type": "address", "internalType": "address" }, { "name": "", "type": "address", "internalType": "address" }], "outputs": [{ "name": "", "type": "uint256", "internalType": "uint256" }], "stateMutability": "view" }, { "type": "function", "name": "setAssetConfig", "inputs": [{ "name": "asset", "type": "address", "internalType": "address" }, { "name": "feeIn_", "type": "uint256", "internalType": "uint256" }, { "name": "feeOut_", "type": "uint256", "internalType": "uint256" }, { "name": "debtTokenMintCap_", "type": "uint256", "internalType": "uint256" }, { "name": "dailyDebtTokenMintCap_", "type": "uint256", "internalType": "uint256" }, { "name": "oracle_", "type": "address", "internalType": "address" }, { "name": "isUsingOracle_", "type": "bool", "internalType": "bool" }, { "name": "swapWaitingPeriod_", "type": "uint256", "internalType": "uint256" }, { "name": "maxPrice_", "type": "uint256", "internalType": "uint256" }, { "name": "minPrice_", "type": "uint256", "internalType": "uint256" }], "outputs": [], "stateMutability": "nonpayable" }, { "type": "function", "name": "setPrivileged", "inputs": [{ "name": "account", "type": "address", "internalType": "address" }, { "name": "isPrivileged_", "type": "bool", "internalType": "bool" }], "outputs": [], "stateMutability": "nonpayable" }, { "type": "function", "name": "setRewardManager", "inputs": [{ "name": "rewardManager_", "type": "address", "internalType": "address" }], "outputs": [], "stateMutability": "nonpayable" }, { "type": "function", "name": "sunsetAsset", "inputs": [{ "name": "asset", "type": "address", "internalType": "address" }], "outputs": [], "stateMutability": "nonpayable" }, { "type": "function", "name": "swapIn", "inputs": [{ "name": "asset", "type": "address", "internalType": "address" }, { "name": "receiver", "type": "address", "internalType": "address" }, { "name": "assetAmount", "type": "uint256", "internalType": "uint256" }], "outputs": [{ "name": "", "type": "uint256", "internalType": "uint256" }], "stateMutability": "nonpayable" }, { "type": "function", "name": "swapInPrivileged", "inputs": [{ "name": "asset", "type": "address", "internalType": "address" }, { "name": "receiver", "type": "address", "internalType": "address" }, { "name": "assetAmount", "type": "uint256", "internalType": "uint256" }], "outputs": [{ "name": "", "type": "uint256", "internalType": "uint256" }], "stateMutability": "nonpayable" }, { "type": "function", "name": "swapOutPrivileged", "inputs": [{ "name": "asset", "type": "address", "internalType": "address" }, { "name": "receiver", "type": "address", "internalType": "address" }, { "name": "amount", "type": "uint256", "internalType": "uint256" }], "outputs": [{ "name": "", "type": "uint256", "internalType": "uint256" }], "stateMutability": "nonpayable" }, { "type": "function", "name": "swapWaitingPeriod", "inputs": [{ "name": "asset", "type": "address", "internalType": "address" }], "outputs": [{ "name": "", "type": "uint256", "internalType": "uint256" }], "stateMutability": "view" }, { "type": "function", "name": "transerTokenToPrivilegedVault", "inputs": [{ "name": "token", "type": "address", "internalType": "address" }, { "name": "vault", "type": "address", "internalType": "address" }, { "name": "amount", "type": "uint256", "internalType": "uint256" }], "outputs": [], "stateMutability": "nonpayable" }, { "type": "function", "name": "upgradeTo", "inputs": [{ "name": "newImplementation", "type": "address", "internalType": "address" }], "outputs": [], "stateMutability": "nonpayable" }, { "type": "function", "name": "upgradeToAndCall", "inputs": [{ "name": "newImplementation", "type": "address", "internalType": "address" }, { "name": "data", "type": "bytes", "internalType": "bytes" }], "outputs": [], "stateMutability": "payable" }, { "type": "function", "name": "withdraw", "inputs": [{ "name": "asset", "type": "address", "internalType": "address" }], "outputs": [], "stateMutability": "nonpayable" }, { "type": "function", "name": "withdrawalTime", "inputs": [{ "name": "", "type": "address", "internalType": "address" }, { "name": "", "type": "address", "internalType": "address" }], "outputs": [{ "name": "", "type": "uint32", "internalType": "uint32" }], "stateMutability": "view" }, { "type": "event", "name": "AdminChanged", "inputs": [{ "name": "previousAdmin", "type": "address", "indexed": false, "internalType": "address" }, { "name": "newAdmin", "type": "address", "indexed": false, "internalType": "address" }], "anonymous": false }, { "type": "event", "name": "AssetConfigSetting", "inputs": [{ "name": "asset", "type": "address", "indexed": false, "internalType": "address" }, { "name": "feeIn", "type": "uint256", "indexed": false, "internalType": "uint256" }, { "name": "feeOut", "type": "uint256", "indexed": false, "internalType": "uint256" }, { "name": "debtTokenMintCap", "type": "uint256", "indexed": false, "internalType": "uint256" }, { "name": "dailyMintCap", "type": "uint256", "indexed": false, "internalType": "uint256" }, { "name": "oracle", "type": "address", "indexed": false, "internalType": "address" }, { "name": "isUsingOracle", "type": "bool", "indexed": false, "internalType": "bool" }, { "name": "swapWaitingPeriod", "type": "uint256", "indexed": false, "internalType": "uint256" }, { "name": "maxPrice", "type": "uint256", "indexed": false, "internalType": "uint256" }, { "name": "minPrice", "type": "uint256", "indexed": false, "internalType": "uint256" }], "anonymous": false }, { "type": "event", "name": "AssetForDebtTokenSwapped", "inputs": [{ "name": "caller", "type": "address", "indexed": false, "internalType": "address" }, { "name": "receiver", "type": "address", "indexed": false, "internalType": "address" }, { "name": "asset", "type": "address", "indexed": false, "internalType": "address" }, { "name": "stableIn", "type": "uint256", "indexed": false, "internalType": "uint256" }, { "name": "tokenOut", "type": "uint256", "indexed": false, "internalType": "uint256" }, { "name": "fee", "type": "uint256", "indexed": false, "internalType": "uint256" }], "anonymous": false }, { "type": "event", "name": "AssetSunset", "inputs": [{ "name": "asset", "type": "address", "indexed": false, "internalType": "address" }], "anonymous": false }, { "type": "event", "name": "BeaconUpgraded", "inputs": [{ "name": "beacon", "type": "address", "indexed": true, "internalType": "address" }], "anonymous": false }, { "type": "event", "name": "DebtTokenForAssetSwapped", "inputs": [{ "name": "caller", "type": "address", "indexed": false, "internalType": "address" }, { "name": "receiver", "type": "address", "indexed": false, "internalType": "address" }, { "name": "asset", "type": "address", "indexed": false, "internalType": "address" }, { "name": "debtTokenBurnt", "type": "uint256", "indexed": false, "internalType": "uint256" }, { "name": "stableOut", "type": "uint256", "indexed": false, "internalType": "uint256" }, { "name": "fee", "type": "uint256", "indexed": false, "internalType": "uint256" }], "anonymous": false }, { "type": "event", "name": "Initialized", "inputs": [{ "name": "version", "type": "uint8", "indexed": false, "internalType": "uint8" }], "anonymous": false }, { "type": "event", "name": "NYMPaused", "inputs": [{ "name": "admin", "type": "address", "indexed": true, "internalType": "address" }], "anonymous": false }, { "type": "event", "name": "NYMResumed", "inputs": [{ "name": "admin", "type": "address", "indexed": true, "internalType": "address" }], "anonymous": false }, { "type": "event", "name": "PrivilegedSet", "inputs": [{ "name": "privileged", "type": "address", "indexed": false, "internalType": "address" }, { "name": "isPrivileged", "type": "bool", "indexed": false, "internalType": "bool" }], "anonymous": false }, { "type": "event", "name": "RewardManagerChanged", "inputs": [{ "name": "oldTreasury", "type": "address", "indexed": true, "internalType": "address" }, { "name": "newTreasury", "type": "address", "indexed": true, "internalType": "address" }], "anonymous": false }, { "type": "event", "name": "TokenTransferred", "inputs": [{ "name": "token", "type": "address", "indexed": true, "internalType": "address" }, { "name": "to", "type": "address", "indexed": true, "internalType": "address" }, { "name": "amount", "type": "uint256", "indexed": false, "internalType": "uint256" }], "anonymous": false }, { "type": "event", "name": "Upgraded", "inputs": [{ "name": "implementation", "type": "address", "indexed": true, "internalType": "address" }], "anonymous": false }, { "type": "event", "name": "Withdraw", "inputs": [{ "name": "asset", "type": "address", "indexed": false, "internalType": "address" }, { "name": "user", "type": "address", "indexed": false, "internalType": "address" }, { "name": "amount", "type": "uint256", "indexed": false, "internalType": "uint256" }], "anonymous": false }, { "type": "event", "name": "WithdrawalScheduled", "inputs": [{ "name": "asset", "type": "address", "indexed": false, "internalType": "address" }, { "name": "user", "type": "address", "indexed": false, "internalType": "address" }, { "name": "amount", "type": "uint256", "indexed": false, "internalType": "uint256" }, { "name": "fee", "type": "uint256", "indexed": false, "internalType": "uint256" }, { "name": "time", "type": "uint32", "indexed": false, "internalType": "uint32" }], "anonymous": false }, { "type": "error", "name": "AlreadyPaused", "inputs": [] }, { "type": "error", "name": "AmountTooSmall", "inputs": [{ "name": "feeAmount", "type": "uint256", "internalType": "uint256" }] }, { "type": "error", "name": "AssetNotSupported", "inputs": [{ "name": "asset", "type": "address", "internalType": "address" }] }, { "type": "error", "name": "DebtTokenDailyMintCapReached", "inputs": [{ "name": "dailyMinted", "type": "uint256", "internalType": "uint256" }, { "name": "amountToMint", "type": "uint256", "internalType": "uint256" }, { "name": "dailyDebtTokenMintCap", "type": "uint256", "internalType": "uint256" }] }, { "type": "error", "name": "DebtTokenMintCapReached", "inputs": [{ "name": "debtTokenMinted", "type": "uint256", "internalType": "uint256" }, { "name": "amountToMint", "type": "uint256", "internalType": "uint256" }, { "name": "debtTokenMintCap", "type": "uint256", "internalType": "uint256" }] }, { "type": "error", "name": "DebtTokenMintedUnderflow", "inputs": [{ "name": "debtTokenMinted", "type": "uint256", "internalType": "uint256" }, { "name": "stableTknAmount", "type": "uint256", "internalType": "uint256" }] }, { "type": "error", "name": "DebtTokenNotEnough", "inputs": [{ "name": "debtTokenAmount", "type": "uint256", "internalType": "uint256" }, { "name": "transferAmount", "type": "uint256", "internalType": "uint256" }] }, { "type": "error", "name": "InvalidFee", "inputs": [{ "name": "feeIn", "type": "uint256", "internalType": "uint256" }, { "name": "feeOut", "type": "uint256", "internalType": "uint256" }] }, { "type": "error", "name": "InvalidPrice", "inputs": [{ "name": "price", "type": "uint256", "internalType": "uint256" }] }, { "type": "error", "name": "InvalidSatoshiCore", "inputs": [] }, { "type": "error", "name": "NotEnoughDebtToken", "inputs": [{ "name": "debtBalance", "type": "uint256", "internalType": "uint256" }, { "name": "stableTknAmount", "type": "uint256", "internalType": "uint256" }] }, { "type": "error", "name": "NotPaused", "inputs": [] }, { "type": "error", "name": "NotPrivileged", "inputs": [{ "name": "addr", "type": "address", "internalType": "address" }] }, { "type": "error", "name": "Paused", "inputs": [] }, { "type": "error", "name": "WithdrawalAlreadyScheduled", "inputs": [{ "name": "withdrawalTime", "type": "uint32", "internalType": "uint32" }] }, { "type": "error", "name": "WithdrawalNotAvailable", "inputs": [{ "name": "withdrawalTime", "type": "uint32", "internalType": "uint32" }] }, { "type": "error", "name": "ZeroAddress", "inputs": [] }, { "type": "error", "name": "ZeroAmount", "inputs": [] }]
}
