test-contracts-sovryn
Version:
Smart contracts for the Sovryn protocol and external integrations.
1,831 lines • 121 kB
JSON
{
"_format": "hh-sol-artifact-1",
"contractName": "LoanClosingsBase",
"sourceName": "contracts/modules/LoanClosingsBase.sol",
"abi": [
{
"inputs": [],
"payable": false,
"stateMutability": "nonpayable",
"type": "constructor"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "user",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "lender",
"type": "address"
},
{
"indexed": true,
"internalType": "bytes32",
"name": "loanId",
"type": "bytes32"
},
{
"indexed": false,
"internalType": "address",
"name": "closer",
"type": "address"
},
{
"indexed": false,
"internalType": "address",
"name": "loanToken",
"type": "address"
},
{
"indexed": false,
"internalType": "address",
"name": "collateralToken",
"type": "address"
},
{
"indexed": false,
"internalType": "uint256",
"name": "repayAmount",
"type": "uint256"
},
{
"indexed": false,
"internalType": "uint256",
"name": "collateralWithdrawAmount",
"type": "uint256"
},
{
"indexed": false,
"internalType": "uint256",
"name": "collateralToLoanRate",
"type": "uint256"
},
{
"indexed": false,
"internalType": "uint256",
"name": "currentMargin",
"type": "uint256"
}
],
"name": "CloseWithDeposit",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "user",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "lender",
"type": "address"
},
{
"indexed": true,
"internalType": "bytes32",
"name": "loanId",
"type": "bytes32"
},
{
"indexed": false,
"internalType": "address",
"name": "collateralToken",
"type": "address"
},
{
"indexed": false,
"internalType": "address",
"name": "loanToken",
"type": "address"
},
{
"indexed": false,
"internalType": "address",
"name": "closer",
"type": "address"
},
{
"indexed": false,
"internalType": "uint256",
"name": "positionCloseSize",
"type": "uint256"
},
{
"indexed": false,
"internalType": "uint256",
"name": "loanCloseAmount",
"type": "uint256"
},
{
"indexed": false,
"internalType": "uint256",
"name": "exitPrice",
"type": "uint256"
},
{
"indexed": false,
"internalType": "uint256",
"name": "currentLeverage",
"type": "uint256"
}
],
"name": "CloseWithSwap",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "receiver",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "token",
"type": "address"
},
{
"indexed": true,
"internalType": "bytes32",
"name": "loanId",
"type": "bytes32"
},
{
"indexed": false,
"internalType": "uint256",
"name": "feeRebatePercent",
"type": "uint256"
},
{
"indexed": false,
"internalType": "uint256",
"name": "amount",
"type": "uint256"
},
{
"indexed": false,
"internalType": "uint256",
"name": "basisPoint",
"type": "uint256"
}
],
"name": "EarnReward",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "receiver",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "token",
"type": "address"
},
{
"indexed": true,
"internalType": "bytes32",
"name": "loanId",
"type": "bytes32"
},
{
"indexed": false,
"internalType": "uint256",
"name": "feeRebatePercent",
"type": "uint256"
},
{
"indexed": false,
"internalType": "uint256",
"name": "amount",
"type": "uint256"
},
{
"indexed": false,
"internalType": "uint256",
"name": "basisPoint",
"type": "uint256"
}
],
"name": "EarnRewardFail",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "user",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "sourceToken",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "destToken",
"type": "address"
},
{
"indexed": false,
"internalType": "uint256",
"name": "sourceAmount",
"type": "uint256"
},
{
"indexed": false,
"internalType": "uint256",
"name": "destAmount",
"type": "uint256"
}
],
"name": "ExternalSwap",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "user",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "liquidator",
"type": "address"
},
{
"indexed": true,
"internalType": "bytes32",
"name": "loanId",
"type": "bytes32"
},
{
"indexed": false,
"internalType": "address",
"name": "lender",
"type": "address"
},
{
"indexed": false,
"internalType": "address",
"name": "loanToken",
"type": "address"
},
{
"indexed": false,
"internalType": "address",
"name": "collateralToken",
"type": "address"
},
{
"indexed": false,
"internalType": "uint256",
"name": "repayAmount",
"type": "uint256"
},
{
"indexed": false,
"internalType": "uint256",
"name": "collateralWithdrawAmount",
"type": "uint256"
},
{
"indexed": false,
"internalType": "uint256",
"name": "collateralToLoanRate",
"type": "uint256"
},
{
"indexed": false,
"internalType": "uint256",
"name": "currentMargin",
"type": "uint256"
}
],
"name": "Liquidate",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "bytes32",
"name": "loanId",
"type": "bytes32"
},
{
"indexed": true,
"internalType": "address",
"name": "sourceToken",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "destToken",
"type": "address"
},
{
"indexed": false,
"internalType": "address",
"name": "borrower",
"type": "address"
},
{
"indexed": false,
"internalType": "uint256",
"name": "sourceAmount",
"type": "uint256"
},
{
"indexed": false,
"internalType": "uint256",
"name": "destAmount",
"type": "uint256"
}
],
"name": "LoanSwap",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "previousOwner",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "newOwner",
"type": "address"
}
],
"name": "OwnershipTransferred",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "payer",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "token",
"type": "address"
},
{
"indexed": true,
"internalType": "bytes32",
"name": "loanId",
"type": "bytes32"
},
{
"indexed": false,
"internalType": "uint256",
"name": "amount",
"type": "uint256"
}
],
"name": "PayBorrowingFee",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "interestToken",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "lender",
"type": "address"
},
{
"indexed": false,
"internalType": "uint256",
"name": "effectiveInterest",
"type": "uint256"
}
],
"name": "PayInterestTransfer",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "payer",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "token",
"type": "address"
},
{
"indexed": false,
"internalType": "uint256",
"name": "amount",
"type": "uint256"
}
],
"name": "PayLendingFee",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "payer",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "token",
"type": "address"
},
{
"indexed": true,
"internalType": "bytes32",
"name": "loanId",
"type": "bytes32"
},
{
"indexed": false,
"internalType": "uint256",
"name": "amount",
"type": "uint256"
}
],
"name": "PayTradingFee",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "prevModuleContractAddress",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "newModuleContractAddress",
"type": "address"
},
{
"indexed": true,
"internalType": "bytes32",
"name": "module",
"type": "bytes32"
}
],
"name": "ProtocolModuleContractReplaced",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "asset",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "from",
"type": "address"
},
{
"indexed": false,
"internalType": "uint256",
"name": "amount",
"type": "uint256"
}
],
"name": "VaultDeposit",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "asset",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "to",
"type": "address"
},
{
"indexed": false,
"internalType": "uint256",
"name": "amount",
"type": "uint256"
}
],
"name": "VaultWithdraw",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "bool",
"name": "shouldRefund",
"type": "bool"
},
{
"indexed": false,
"internalType": "uint256",
"name": "amount",
"type": "uint256"
},
{
"indexed": false,
"internalType": "uint256",
"name": "amountInRbtc",
"type": "uint256"
},
{
"indexed": false,
"internalType": "uint256",
"name": "threshold",
"type": "uint256"
}
],
"name": "swapExcess",
"type": "event"
},
{
"payable": false,
"stateMutability": "nonpayable",
"type": "fallback"
},
{
"constant": true,
"inputs": [],
"name": "admin",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "affiliateFeePercent",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"name": "affiliateRewardsHeld",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "affiliateTradingTokenFeePercent",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [
{
"internalType": "address",
"name": "",
"type": "address"
},
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"name": "affiliatesReferrerBalances",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"name": "affiliatesUserReferrer",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"name": "borrowerNonce",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [
{
"internalType": "address",
"name": "",
"type": "address"
},
{
"internalType": "bytes32",
"name": "",
"type": "bytes32"
}
],
"name": "borrowerOrders",
"outputs": [
{
"internalType": "uint256",
"name": "lockedAmount",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "interestRate",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "minLoanTerm",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "maxLoanTerm",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "createdTimestamp",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "expirationTimestamp",
"type": "uint256"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "borrowingFeePercent",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"name": "borrowingFeeTokensHeld",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"name": "borrowingFeeTokensPaid",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [
{
"internalType": "bytes32",
"name": "",
"type": "bytes32"
},
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"name": "delegatedManagers",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "feeRebatePercent",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "feesController",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": false,
"inputs": [
{
"internalType": "address",
"name": "target",
"type": "address"
}
],
"name": "initialize",
"outputs": [],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "isOwner",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [
{
"internalType": "address",
"name": "",
"type": "address"
},
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"name": "lenderInterest",
"outputs": [
{
"internalType": "uint256",
"name": "principalTotal",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "owedPerDay",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "owedTotal",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "paidTotal",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "updatedTimestamp",
"type": "uint256"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [
{
"internalType": "address",
"name": "",
"type": "address"
},
{
"internalType": "bytes32",
"name": "",
"type": "bytes32"
}
],
"name": "lenderOrders",
"outputs": [
{
"internalType": "uint256",
"name": "lockedAmount",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "interestRate",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "minLoanTerm",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "maxLoanTerm",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "createdTimestamp",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "expirationTimestamp",
"type": "uint256"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "lendingFeePercent",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"name": "lendingFeeTokensHeld",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"name": "lendingFeeTokensPaid",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": false,
"inputs": [
{
"internalType": "bytes32",
"name": "loanId",
"type": "bytes32"
},
{
"internalType": "address",
"name": "receiver",
"type": "address"
},
{
"internalType": "uint256",
"name": "closeAmount",
"type": "uint256"
}
],
"name": "liquidate",
"outputs": [
{
"internalType": "uint256",
"name": "loanCloseAmount",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "seizedAmount",
"type": "uint256"
},
{
"internalType": "address",
"name": "seizedToken",
"type": "address"
}
],
"payable": true,
"stateMutability": "payable",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "liquidationIncentivePercent",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [
{
"internalType": "bytes32",
"name": "",
"type": "bytes32"
}
],
"name": "loanInterest",
"outputs": [
{
"internalType": "uint256",
"name": "owedPerDay",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "depositTotal",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "updatedTimestamp",
"type": "uint256"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [
{
"internalType": "bytes32",
"name": "",
"type": "bytes32"
}
],
"name": "loanParams",
"outputs": [
{
"internalType": "bytes32",
"name": "id",
"type": "bytes32"
},
{
"internalType": "bool",
"name": "active",
"type": "bool"
},
{
"internalType": "address",
"name": "owner",
"type": "address"
},
{
"internalType": "address",
"name": "loanToken",
"type": "address"
},
{
"internalType": "address",
"name": "collateralToken",
"type": "address"
},
{
"internalType": "uint256",
"name": "minInitialMargin",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "maintenanceMargin",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "maxLoanTerm",
"type": "uint256"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"name": "loanPoolToUnderlying",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [
{
"internalType": "bytes32",
"name": "",
"type": "bytes32"
}
],
"name": "loans",
"outputs": [
{
"internalType": "bytes32",
"name": "id",
"type": "bytes32"
},
{
"internalType": "bytes32",
"name": "loanParamsId",
"type": "bytes32"
},
{
"internalType": "bytes32",
"name": "pendingTradesId",
"type": "bytes32"
},
{
"internalType": "bool",
"name": "active",
"type": "bool"
},
{
"internalType": "uint256",
"name": "principal",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "collateral",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "startTimestamp",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "endTimestamp",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "startMargin",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "startRate",
"type": "uint256"
},
{
"internalType": "address",
"name": "borrower",
"type": "address"
},
{
"internalType": "address",
"name": "lender",
"type": "address"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "lockedSOVAddress",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [
{
"internalType": "bytes4",
"name": "",
"type": "bytes4"
}
],
"name": "logicTargets",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "maxDisagreement",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "maxSwapSize",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "minReferralsToPayout",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "owner",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "pause",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "paySwapExcessToBorrowerThreshold",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "priceFeeds",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "protocolAddress",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "protocolTokenAddress",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "protocolTokenHeld",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "protocolTokenPaid",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": false,
"inputs": [
{
"internalType": "bytes32",
"name": "loanId",
"type": "bytes32"
},
{
"internalType": "bytes",
"name": "",
"type": "bytes"
}
],
"name": "rollover",
"outputs": [],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "rolloverBaseReward",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "rolloverFlexFeePercent",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "sourceBuffer",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "sovTokenAddress",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "sovrynSwapContractRegistryAddress",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [
{
"internalType": "address",
"name": "",
"type": "address"
},
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"name": "specialRebates",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"name": "supportedTokens",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "swapsImpl",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "tradingFeePercent",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"name": "tradingFeeTokensHeld",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"name": "tradingFeeTokensPaid",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": false,
"inputs": [
{
"internalType": "address",
"name": "newOwner",
"type": "address"
}
],
"name": "transferOwnership",
"outputs": [],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
},
{
"constant": true,
"inputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"name": "underlyingToLoanPool",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"name": "userNotFirstTradeFlag",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "wrbtcToken",
"outputs": [
{
"internalType": "contract IWrbtcERC20",
"name": "",
"type": "address"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
}
],
"bytecode": "0x60806040526001600055678ac7230489e80000601555670214e8348c4f000060185567013fbe85edc90000601b55674563918244f40000602055674563918244f40000602155674563918244f400006027556127106028556802b5e3af16b1880000602955650f478e084000602b5567016345785d8a0000602c556802b5e3af16b1880000602f5560036035556801158e460913d00000603955348015620000a657600080fd5b506000620000bc6001600160e01b036200011016565b600180546001600160a01b0319166001600160a01b038316908117909155604051919250906000907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a35062000114565b3390565b614ead80620001246000396000f3fe60806040526004361061036b5760003560e01c806392d894f8116101c6578063cf0eda84116100f7578063ee54a4ec11610095578063f589a3e71161006f578063f589a3e7146109a5578063f6ddc8b3146109ba578063f706b1f2146109cf578063f851a440146109e45761036b565b8063ee54a4ec1461095b578063f0e085f514610970578063f2fde38b146109855761036b565b8063d485045e116100d1578063d485045e146108ef578063e4f3e7391461090f578063e8f6276414610931578063edab119f146109465761036b565b8063cf0eda84146108a5578063d288208c146108c5578063d473c2da146108da5761036b565b8063b9cffa3e11610164578063c4a908151161013e578063c4a90815146107f7578063c4d66de81461082f578063cb6eacd114610851578063cd5d808d146108855761036b565b8063b9cffa3e146107ad578063ba4861e9146107c2578063bdee453c146107d75761036b565b8063ae0a8530116101a0578063ae0a853014610736578063afe840091461074b578063b30643d91461076d578063b7e152411461078d5761036b565b806392d894f8146106ec578063959083d31461070c578063acc04348146107215761036b565b80634f28cac2116102a0578063742e67981161023e5780638456cb59116102185780638456cb591461068d5780638da5cb5b146106a25780638dc48ba5146106b75780638f32d59b146106d75761036b565b8063742e67981461064e57806378d849ed146106635780637a8faeb8146106785761036b565b806362fff3f61161027a57806362fff3f6146105c857806368c4ac26146105f95780636e663730146106195780637420ca3e146106395761036b565b80634f28cac21461056f578063569fc1fb14610584578063574442cc146105b35761036b565b80632f4707641161030d5780633fca506e116102e75780633fca506e146104fa5780634115a2b61461051a5780634203e3951461053a5780634699f8461461055a5761036b565b80632f470764146104a55780633432423c146104ba5780633452d2d4146104da5761036b565b80631b7bde74116103495780631b7bde7414610416578063218b39c61461044357806324cc5749146104635780632a324027146104905761036b565b8063065d810f146103995780630676c1b7146103d457806317548b79146103f6575b34801561037757600080fd5b5060405162461bcd60e51b815260040161039090614c53565b60405180910390fd5b3480156103a557600080fd5b506103b96103b4366004613eea565b6109f9565b6040516103cb96959493929190614d62565b60405180910390f35b3480156103e057600080fd5b506103e9610a39565b6040516103cb91906147c5565b34801561040257600080fd5b506103e9610411366004614018565b610a48565b34801561042257600080fd5b50610436610431366004613eb0565b610a63565b6040516103cb9190614d03565b34801561044f57600080fd5b506103e961045e366004613e92565b610a80565b34801561046f57600080fd5b5061048361047e366004613e92565b610a9b565b6040516103cb9190614991565b34801561049c57600080fd5b50610436610ab0565b3480156104b157600080fd5b50610436610ab6565b3480156104c657600080fd5b506103b96104d5366004613eea565b610abc565b3480156104e657600080fd5b506104366104f5366004613e92565b610afc565b34801561050657600080fd5b50610436610515366004613e92565b610b0e565b34801561052657600080fd5b50610483610535366004613f56565b610b20565b34801561054657600080fd5b50610436610555366004613e92565b610b40565b34801561056657600080fd5b50610436610b52565b34801561057b57600080fd5b50610436610b58565b34801561059057600080fd5b506105a461059f366004613f38565b610b5e565b6040516103cb93929190614d39565b3480156105bf57600080fd5b50610436610b7f565b3480156105d457600080fd5b506105e86105e3366004613eb0565b610b85565b6040516103cb959493929190614d47565b34801561060557600080fd5b50610483610614366004613e92565b610bbf565b34801561062557600080fd5b506103e9610634366004613e92565b610bd4565b34801561064557600080fd5b506103e9610bef565b34801561065a57600080fd5b50610436610bfe565b34801561066f57600080fd5b506103e9610c04565b34801561068457600080fd5b50610436610c13565b34801561069957600080fd5b50610483610c19565b3480156106ae57600080fd5b506103e9610c22565b3480156106c357600080fd5b506103e96106d2366004613e92565b610c31565b3480156106e357600080fd5b50610483610c4c565b3480156106f857600080fd5b50610436610707366004613e92565b610c72565b34801561071857600080fd5b50610436610c84565b34801561072d57600080fd5b50610436610c8a565b34801561074257600080fd5b50610436610c90565b34801561075757600080fd5b50610760610c96565b6040516103cb9190614ae4565b34801561077957600080fd5b50610436610788366004613e92565b610ca5565b34801561079957600080fd5b506104366107a8366004613e92565b610cb7565b3480156107b957600080fd5b506103e9610cc9565b3480156107ce57600080fd5b506103e9610cd8565b3480156107e357600080fd5b506104366107f2366004613e92565b610ce7565b34801561080357600080fd5b50610817610812366004613f38565b610cf9565b6040516103cb9c9b9a99989796959493929190614a31565b34801561083b57600080fd5b5061084f61084a366004613e92565b610d6b565b005b34801561085d57600080fd5b5061087161086c366004613f38565b610e40565b6040516103cb9897969594939291906149ba565b34801561089157600080fd5b506104366108a0366004613eb0565b610e92565b3480156108b157600080fd5b5061084f6108c0366004613fc2565b610eaf565b3480156108d157600080fd5b506103e9610f3b565b3480156108e657600080fd5b50610436610f4a565b3480156108fb57600080fd5b5061043661090a366004613e92565b610f50565b61092261091d366004613f75565b610f62565b6040516103cb93929190614d11565b34801561093d57600080fd5b506103e9610fd0565b34801561095257600080fd5b50610436610fdf565b34801561096757600080fd5b50610436610fe5565b34801561097c57600080fd5b50610436610fef565b34801561099157600080fd5b5061084f6109a0366004613e92565b610ff5565b3480156109b157600080fd5b50610436611025565b3480156109c657600080fd5b5061043661102b565b3480156109db57600080fd5b506103e9611031565b3480156109f057600080fd5b506103e9611040565b6009602090815260009283526040808420909152908252902080546001820154600283015460038401546004850154600590950154939492939192909186565b6031546001600160a01b031681565b6005602052600090815260409020546001600160a01b031681565b603b60209081526000928352604080842090915290825290205481565b6023602052600090815260409020546001600160a01b031681565b60326020526000908152604090205460ff1681565b60185481565b601f5481565b6008602090815260009283526040808420909152908252902080546001820154600283015460038401546004850154600590950154939492939192909186565b601a6020526000908152604090205481565b602a6020526000908152604090205481565b600a60209081526000928352604080842090915290825290205460ff1681565b60166020526000908152604090205481565b60155481565b60295481565b600c6020526000908152604090208054600182015460029092015490919083565b602b5481565b600b602090815260009283526040808420909152908252902080546001820154600283015460038401546004909401549293919290919085565b60266020526000908152604090205460ff1681565b6033602052600090815260409020546001600160a01b031681565b6003546001600160a01b031681565b60355481565b6002546001600160a01b031681565b601e5481565b603d5460ff1681565b6001546001600160a01b031690565b6022602052600090815260409020546001600160a01b031681565b6001546000906001600160a01b0316610c6361104f565b6001600160a01b031614905090565b60176020526000908152604090205481565b602c5481565b602f5481565b60205481565b602d546001600160a01b031681565b601d6020526000908152604090205481565b601c6020526000908152604090205481565b6037546001600160a01b031681565b6004546001600160a01b031681565b60366020526000908152604090205481565b600660208190526000918252604090912080546001820154600283015460038401546004850154600586015496860154600787015460088801546009890154600a8a0154600b909a0154989a9799969860ff909616979496949593949293919290916001600160a01b0391821691168c565b610d73610c4c565b610d8f5760405162461bcd60e51b815260040161039090614c23565b63e4f3e73960e01b600081905260056020527fe1cb396722e7eabe79fbbfe4b479997758c9eb9965437583a97ce608d5a86600546001600160a01b031690610dd79083611053565b610de86333c3b6a160e21b83611053565b6f4c6f616e436c6f73696e67734261736560801b826001600160a01b0316826001600160a01b03167f1420e3a2094d671bc2eb897941fa3d94ffa37f0cb6d530651946250a2151cb7f60405160405180910390a45050565b6007602052600090815260409020805460018201546002830154600384015460048501546005860154600690960154949560ff8516956101009095046001600160a01b03908116959481169493169288565b603c60209081526000928352604080842090915290825290205481565b600160005414610ed15760405162461bcd60e51b815260040161039090614c93565b6002600055603d5460ff1615610ef95760405162461bcd60e51b815260040161039090614b03565b333214610f185760405162461bcd60e51b815260040161039090614bd3565b610f3183604051806020016040528060008152506110cf565b5050600160005550565b6038546001600160a01b031681565b60275481565b60196020526000908152604090205481565b6000806000600160005414610f895760405162461bcd60e51b815260040161039090614c93565b6002600055603d5460ff1615610fb15760405162461bcd60e51b815260040161039090614b03565b610fbc868686611a2a565b600160005591989097509095509350505050565b6014546001600160a01b031681565b601b5481565b6509184e72a00081565b60285481565b610ffd610c4c565b6110195760405162461bcd60e51b815260040161039090614c23565b61102281612042565b50565b60395481565b60215481565b602e546001600160a01b031681565b6030546001600160a01b031681565b3390565b6001600160e01b03198216600090815260056020526040902080546001600160a01b0319166001600160a01b038316908117909155156110ae576110a8600d6001600160e01b0319841663ffffffff6120c416565b506110cb565b6110c9600d6001600160e01b0319841663ffffffff61210e16565b505b5050565b6000828152600660209081526040808320600181015484526007909252909120600382015460ff166111135760405162461bcd60e51b815260040161039090614c83565b80546111315760405162461bcd60e51b815260040161039090614c43565b600782015461114890610e1063ffffffff6121cf16565b42116111665760405162461bcd60e51b815260040161039090614bc3565b600b8201546001600160a01b03908116600090815260226020526040902054166111a25760405162461bcd60e51b815260040161039090614b83565b600b82015460028201546111c2916001600160a01b039081169116612218565b81546000818152600c60209081526040808320600b808801546001600160a01b039081168652908452828520600288015482168087529452919093206003860154600a8801549495919461121e94879490928116911642612302565b600080856007015442111561127157600786015461124390429063ffffffff6121cf16565b845490925061125990839063ffffffff61235d16565b905061126e816201518063ffffffff61239716565b90505b6006850154156113d05760006113336907baab4146b63dd0000061132789600b0160009054906101000a90046001600160a01b03166001600160a01b0316638325a1c06040518163ffffffff1660e01b815260040160206040518083038186803b1580156112de57600080fd5b505afa1580156112f2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506113169190810190614036565b60048b01549063ffffffff61235d16565b9063ffffffff61239716565b600185015490915061134b9