@mean-finance/dca-v2-periphery
Version:
💱 Periphery smart contracts of DCA V2 by mean.finance
1,778 lines (1,777 loc) • 41.4 kB
JSON
{
"_format": "hh-sol-artifact-1",
"contractName": "IDCAHubWithAccessControl",
"sourceName": "contracts/DCAHubSwapper/ThirdPartyDCAHubSwapper.sol",
"abi": [
{
"inputs": [],
"name": "AmountTooBig",
"type": "error"
},
{
"inputs": [],
"name": "HighFee",
"type": "error"
},
{
"inputs": [],
"name": "HighPlatformFeeRatio",
"type": "error"
},
{
"inputs": [],
"name": "IntervalNotAllowed",
"type": "error"
},
{
"inputs": [],
"name": "InvalidAllowedTokensInput",
"type": "error"
},
{
"inputs": [],
"name": "InvalidFee",
"type": "error"
},
{
"inputs": [],
"name": "InvalidPairs",
"type": "error"
},
{
"inputs": [],
"name": "InvalidPosition",
"type": "error"
},
{
"inputs": [],
"name": "InvalidToken",
"type": "error"
},
{
"inputs": [],
"name": "InvalidTokens",
"type": "error"
},
{
"inputs": [],
"name": "LiquidityNotReturned",
"type": "error"
},
{
"inputs": [],
"name": "NoSwapsToExecute",
"type": "error"
},
{
"inputs": [],
"name": "PositionDoesNotMatchToken",
"type": "error"
},
{
"inputs": [],
"name": "UnallowedToken",
"type": "error"
},
{
"inputs": [],
"name": "UnauthorizedCaller",
"type": "error"
},
{
"inputs": [],
"name": "ZeroAddress",
"type": "error"
},
{
"inputs": [],
"name": "ZeroAmount",
"type": "error"
},
{
"inputs": [],
"name": "ZeroSwaps",
"type": "error"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "depositor",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "owner",
"type": "address"
},
{
"indexed": false,
"internalType": "uint256",
"name": "positionId",
"type": "uint256"
},
{
"indexed": false,
"internalType": "address",
"name": "fromToken",
"type": "address"
},
{
"indexed": false,
"internalType": "address",
"name": "toToken",
"type": "address"
},
{
"indexed": false,
"internalType": "uint32",
"name": "swapInterval",
"type": "uint32"
},
{
"indexed": false,
"internalType": "uint120",
"name": "rate",
"type": "uint120"
},
{
"indexed": false,
"internalType": "uint32",
"name": "startingSwap",
"type": "uint32"
},
{
"indexed": false,
"internalType": "uint32",
"name": "lastSwap",
"type": "uint32"
},
{
"components": [
{
"internalType": "address",
"name": "operator",
"type": "address"
},
{
"internalType": "enum IDCAPermissionManager.Permission[]",
"name": "permissions",
"type": "uint8[]"
}
],
"indexed": false,
"internalType": "struct IDCAPermissionManager.PermissionSet[]",
"name": "permissions",
"type": "tuple[]"
}
],
"name": "Deposited",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "uint256",
"name": "positionId",
"type": "uint256"
},
{
"indexed": false,
"internalType": "bytes",
"name": "data",
"type": "bytes"
}
],
"name": "Miscellaneous",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "user",
"type": "address"
},
{
"indexed": false,
"internalType": "uint256",
"name": "positionId",
"type": "uint256"
},
{
"indexed": false,
"internalType": "uint120",
"name": "rate",
"type": "uint120"
},
{
"indexed": false,
"internalType": "uint32",
"name": "startingSwap",
"type": "uint32"
},
{
"indexed": false,
"internalType": "uint32",
"name": "lastSwap",
"type": "uint32"
}
],
"name": "Modified",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "contract ITokenPriceOracle",
"name": "oracle",
"type": "address"
}
],
"name": "OracleSet",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "uint16",
"name": "platformFeeRatio",
"type": "uint16"
}
],
"name": "PlatformFeeRatioSet",
"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": "uint32",
"name": "feeSet",
"type": "uint32"
}
],
"name": "SwapFeeSet",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "uint32[]",
"name": "swapIntervals",
"type": "uint32[]"
}
],
"name": "SwapIntervalsAllowed",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "uint32[]",
"name": "swapIntervals",
"type": "uint32[]"
}
],
"name": "SwapIntervalsForbidden",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "sender",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "rewardRecipient",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "callbackHandler",
"type": "address"
},
{
"components": [
{
"components": [
{
"internalType": "address",
"name": "token",
"type": "address"
},
{
"internalType": "uint256",
"name": "reward",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "toProvide",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "platformFee",
"type": "uint256"
}
],
"internalType": "struct IDCAHubSwapHandler.TokenInSwap[]",
"name": "tokens",
"type": "tuple[]"
},
{
"components": [
{
"internalType": "address",
"name": "tokenA",
"type": "address"
},
{
"internalType": "address",
"name": "tokenB",
"type": "address"
},
{
"internalType": "uint256",
"name": "totalAmountToSwapTokenA",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "totalAmountToSwapTokenB",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "ratioAToB",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "ratioBToA",
"type": "uint256"
},
{
"internalType": "bytes1",
"name": "intervalsInSwap",
"type": "bytes1"
}
],
"internalType": "struct IDCAHubSwapHandler.PairInSwap[]",
"name": "pairs",
"type": "tuple[]"
}
],
"indexed": false,
"internalType": "struct IDCAHubSwapHandler.SwapInfo",
"name": "swapInformation",
"type": "tuple"
},
{
"indexed": false,
"internalType": "uint256[]",
"name": "borrowed",
"type": "uint256[]"
},
{
"indexed": false,
"internalType": "uint32",
"name": "fee",
"type": "uint32"
}
],
"name": "Swapped",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "user",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "recipientUnswapped",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "recipientSwapped",
"type": "address"
},
{
"indexed": false,
"internalType": "uint256",
"name": "positionId",
"type": "uint256"
},
{
"indexed": false,
"internalType": "uint256",
"name": "returnedUnswapped",
"type": "uint256"
},
{
"indexed": false,
"internalType": "uint256",
"name": "returnedSwapped",
"type": "uint256"
}
],
"name": "Terminated",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "address[]",
"name": "tokens",
"type": "address[]"
},
{
"indexed": false,
"internalType": "bool[]",
"name": "allowed",
"type": "bool[]"
}
],
"name": "TokensAllowedUpdated",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "withdrawer",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "recipient",
"type": "address"
},
{
"indexed": false,
"internalType": "uint256",
"name": "positionId",
"type": "uint256"
},
{
"indexed": false,
"internalType": "address",
"name": "token",
"type": "address"
},
{
"indexed": false,
"internalType": "uint256",
"name": "amount",
"type": "uint256"
}
],
"name": "Withdrew",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "sender",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "recipient",
"type": "address"
},
{
"components": [
{
"internalType": "address",
"name": "token",
"type": "address"
},
{
"internalType": "uint256",
"name": "amount",
"type": "uint256"
}
],
"indexed": false,
"internalType": "struct IDCAHub.AmountOfToken[]",
"name": "amounts",
"type": "tuple[]"
}
],
"name": "WithdrewFromPlatform",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "withdrawer",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "recipient",
"type": "address"
},
{
"components": [
{
"internalType": "address",
"name": "token",
"type": "address"
},
{
"internalType": "uint256[]",
"name": "positionIds",
"type": "uint256[]"
}
],
"indexed": false,
"internalType": "struct IDCAHubPositionHandler.PositionSet[]",
"name": "positions",
"type": "tuple[]"
},
{
"indexed": false,
"internalType": "uint256[]",
"name": "withdrew",
"type": "uint256[]"
}
],
"name": "WithdrewMany",
"type": "event"
},
{
"inputs": [],
"name": "MAX_FEE",
"outputs": [
{
"internalType": "uint32",
"name": "maxFee",
"type": "uint32"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "MAX_PLATFORM_FEE_RATIO",
"outputs": [
{
"internalType": "uint16",
"name": "",
"type": "uint16"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "tokenA",
"type": "address"
},
{
"internalType": "address",
"name": "tokenB",
"type": "address"
},
{
"internalType": "bytes1",
"name": "swapIntervalMask",
"type": "bytes1"
},
{
"internalType": "uint32",
"name": "swapNumber",
"type": "uint32"
}
],
"name": "accumRatio",
"outputs": [
{
"internalType": "uint256",
"name": "accumRatioAToB",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "accumRatioBToA",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "tokenA",
"type": "address"
},
{
"internalType": "address",
"name": "tokenB",
"type": "address"
}
],
"name": "activeSwapIntervals",
"outputs": [
{
"internalType": "bytes1",
"name": "",
"type": "bytes1"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint32[]",
"name": "swapIntervals",
"type": "uint32[]"
}
],
"name": "addSwapIntervalsToAllowedList",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "allowedSwapIntervals",
"outputs": [
{
"internalType": "bytes1",
"name": "allowedSwapIntervals",
"type": "bytes1"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "token",
"type": "address"
}
],
"name": "allowedTokens",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "from",
"type": "address"
},
{
"internalType": "address",
"name": "to",
"type": "address"
},
{
"internalType": "uint256",
"name": "amount",
"type": "uint256"
},
{
"internalType": "uint32",
"name": "amountOfSwaps",
"type": "uint32"
},
{
"internalType": "uint32",
"name": "swapInterval",
"type": "uint32"
},
{
"internalType": "address",
"name": "owner",
"type": "address"
},
{
"components": [
{
"internalType": "address",
"name": "operator",
"type": "address"
},
{
"internalType": "enum IDCAPermissionManager.Permission[]",
"name": "permissions",
"type": "uint8[]"
}
],
"internalType": "struct IDCAPermissionManager.PermissionSet[]",
"name": "permissions",
"type": "tuple[]"
}
],
"name": "deposit",
"outputs": [
{
"internalType": "uint256",
"name": "positionId",
"type": "uint256"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "from",
"type": "address"
},
{
"internalType": "address",
"name": "to",
"type": "address"
},
{
"internalType": "uint256",
"name": "amount",
"type": "uint256"
},
{
"internalType": "uint32",
"name": "amountOfSwaps",
"type": "uint32"
},
{
"internalType": "uint32",
"name": "swapInterval",
"type": "uint32"
},
{
"internalType": "address",
"name": "owner",
"type": "address"
},
{
"components": [
{
"internalType": "address",
"name": "operator",
"type": "address"
},
{
"internalType": "enum IDCAPermissionManager.Permission[]",
"name": "permissions",
"type": "uint8[]"
}
],
"internalType": "struct IDCAPermissionManager.PermissionSet[]",
"name": "permissions",
"type": "tuple[]"
},
{
"internalType": "bytes",
"name": "miscellaneous",
"type": "bytes"
}
],
"name": "deposit",
"outputs": [
{
"internalType": "uint256",
"name": "positionId",
"type": "uint256"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address[]",
"name": "tokens",
"type": "address[]"
},
{
"components": [
{
"internalType": "uint8",
"name": "indexTokenA",
"type": "uint8"
},
{
"internalType": "uint8",
"name": "indexTokenB",
"type": "uint8"
}
],
"internalType": "struct IDCAHubSwapHandler.PairIndexes[]",
"name": "pairs",
"type": "tuple[]"
},
{
"internalType": "bool",
"name": "calculatePrivilegedAvailability",
"type": "bool"
},
{
"internalType": "bytes",
"name": "oracleData",
"type": "bytes"
}
],
"name": "getNextSwapInfo",
"outputs": [
{
"components": [
{
"components": [
{
"internalType": "address",
"name": "token",
"type": "address"
},
{
"internalType": "uint256",
"name": "reward",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "toProvide",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "platformFee",
"type": "uint256"
}
],
"internalType": "struct IDCAHubSwapHandler.TokenInSwap[]",
"name": "tokens",
"type": "tuple[]"
},
{
"components": [
{
"internalType": "address",
"name": "tokenA",
"type": "address"
},
{
"internalType": "address",
"name": "tokenB",
"type": "address"
},
{
"internalType": "uint256",
"name": "totalAmountToSwapTokenA",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "totalAmountToSwapTokenB",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "ratioAToB",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "ratioBToA",
"type": "uint256"
},
{
"internalType": "bytes1",
"name": "intervalsInSwap",
"type": "bytes1"
}
],
"internalType": "struct IDCAHubSwapHandler.PairInSwap[]",
"name": "pairs",
"type": "tuple[]"
}
],
"internalType": "struct IDCAHubSwapHandler.SwapInfo",
"name": "swapInformation",
"type": "tuple"
}
],
"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": "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": "uint256",
"name": "positionId",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "amount",
"type": "uint256"
},
{
"internalType": "uint32",
"name": "newSwaps",
"type": "uint32"
}
],
"name": "increasePosition",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "oracle",
"outputs": [
{
"internalType": "contract ITokenPriceOracle",
"name": "oracle",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "pause",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "paused",
"outputs": [
{
"internalType": "bool",
"name": "isPaused",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "permissionManager",
"outputs": [
{
"internalType": "contract IDCAPermissionManager",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "token",
"type": "address"
}
],
"name": "platformBalance",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "platformFeeRatio",
"outputs": [
{
"internalType": "uint16",
"name": "",
"type": "uint16"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "positionId",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "amount",
"type": "uint256"
},
{
"internalType": "uint32",
"name": "newSwaps",
"type": "uint32"
},
{
"internalType": "address",
"name": "recipient",
"type": "address"
}
],
"name": "reducePosition",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint32[]",
"name": "swapIntervals",
"type": "uint32[]"
}
],
"name": "removeSwapIntervalsFromAllowedList",
"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": "bytes32",
"name": "role",
"type": "bytes32"
},
{
"internalType": "address",
"name": "account",
"type": "address"
}
],
"name": "revokeRole",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "contract ITokenPriceOracle",
"name": "oracle",
"type": "address"
}
],
"name": "setOracle",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint16",
"name": "platformFeeRatio",
"type": "uint16"
}
],
"name": "setPlatformFeeRatio",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint32",
"name": "fee",
"type": "uint32"
}
],
"name": "setSwapFee",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address[]",
"name": "tokens",
"type": "address[]"
},
{
"components": [
{
"internalType": "uint8",
"name": "indexTokenA",
"type": "uint8"
},
{
"internalType": "uint8",
"name": "indexTokenB",
"type": "uint8"
}
],
"internalType": "struct IDCAHubSwapHandler.PairIndexes[]",
"name": "pairsToSwap",
"type": "tuple[]"
},
{
"internalType": "address",
"name": "rewardRecipient",
"type": "address"
},
{
"internalType": "address",
"name": "callbackHandler",
"type": "address"
},
{
"internalType": "uint256[]",
"name": "borrow",
"type": "uint256[]"
},
{
"internalType": "bytes",
"name": "callbackData",
"type": "bytes"
},
{
"internalType": "bytes",
"name": "oracleData",
"type": "bytes"
}
],
"name": "swap",
"outputs": [
{
"components": [
{
"components": [
{
"internalType": "address",
"name": "token",
"type": "address"
},
{
"internalType": "uint256",
"name": "reward",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "toProvide",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "platformFee",
"type": "uint256"
}
],
"internalType": "struct IDCAHubSwapHandler.TokenInSwap[]",
"name": "tokens",
"type": "tuple[]"
},
{
"components": [
{
"internalType": "address",
"name": "tokenA",
"type": "address"
},
{
"internalType": "address",
"name": "tokenB",
"type": "address"
},
{
"internalType": "uint256",
"name": "totalAmountToSwapTokenA",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "totalAmountToSwapTokenB",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "ratioAToB",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "ratioBToA",
"type": "uint256"
},
{
"internalType": "bytes1",
"name": "intervalsInSwap",
"type": "bytes1"
}
],
"internalType": "struct IDCAHubSwapHandler.PairInSwap[]",
"name": "pairs",
"type": "tuple[]"
}
],
"internalType": "struct IDCAHubSwapHandler.SwapInfo",
"name": "",
"type": "tuple"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "tokenA",
"type": "address"
},
{
"internalType": "address",
"name": "tokenB",
"type": "address"
},
{
"internalType": "bytes1",
"name": "swapIntervalMask",
"type": "bytes1"
},
{
"internalType": "uint32",
"name": "swapNumber",
"type": "uint32"
}
],
"name": "swapAmountDelta",
"outputs": [
{
"internalType": "uint128",
"name": "swapDeltaAToB",
"type": "uint128"
},
{
"internalType": "uint128",
"name": "swapDeltaBToA",
"type": "uint128"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "tokenA",
"type": "address"
},
{
"internalType": "address",
"name": "tokenB",
"type": "address"
},
{
"internalType": "bytes1",
"name": "swapIntervalMask",
"type": "bytes1"
}
],
"name": "swapData",
"outputs": [
{
"internalType": "uint32",
"name": "performedSwaps",
"type": "uint32"
},
{
"internalType": "uint224",
"name": "nextAmountToSwapAToB",
"type": "uint224"
},
{
"internalType": "uint32",
"name": "lastSwappedAt",
"type": "uint32"
},
{
"internalType": "uint224",
"name": "nextAmountToSwapBToA",
"type": "uint224"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "swapFee",
"outputs": [
{
"internalType": "uint32",
"name": "swapFee",
"type": "uint32"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "positionId",
"type": "uint256"
},
{
"internalType": "address",
"name": "recipientUnswapped",
"type": "address"
},
{
"internalType": "address",
"name": "recipientSwapped",
"type": "address"
}
],
"name": "terminate",
"outputs": [
{
"internalType": "uint256",
"name": "unswapped",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "swapped",
"type": "uint256"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "token",
"type": "address"
}
],
"name": "tokenMagnitude",
"outputs": [
{
"internalType": "uint120",
"name": "",
"type": "uint120"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "totalCreatedPositions",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "unpause",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "positionId",
"type": "uint256"
}
],
"name": "userPosition",
"outputs": [
{
"components": [
{
"internalType": "contract IERC20Metadata",
"name": "from",
"type": "address"
},
{
"internalType": "contract IERC20Metadata",
"name": "to",
"type": "address"
},
{
"internalType": "uint32",
"name": "swapInterval",
"type": "uint32"
},
{
"internalType": "uint32",
"name": "swapsExecuted",
"type": "uint32"
},
{
"internalType": "uint256",
"name": "swapped",
"type": "uint256"
},
{
"internalType": "uint32",
"name": "swapsLeft",
"type": "uint32"
},
{
"internalType": "uint256",
"name": "remaining",
"type": "uint256"
},
{
"internalType": "uint120",
"name": "rate",
"type": "uint120"
}
],
"internalType": "struct IDCAHubPositionHandler.UserPosition",
"name": "position",
"type": "tuple"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"components": [
{
"internalType": "address",
"name": "token",
"type": "address"
},
{
"internalType": "uint256",
"name": "amount",
"type": "uint256"
}
],
"internalType": "struct IDCAHub.AmountOfToken[]",
"name": "amounts",
"type": "tuple[]"
},
{
"internalType": "address",
"name": "recipient",
"type": "address"
}
],
"name": "withdrawFromPlatformBalance",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "positionId",
"type": "uint256"
},
{
"internalType": "address",
"name": "recipient",
"type": "address"
}
],
"name": "withdrawSwapped",
"outputs": [
{
"internalType": "uint256",
"name": "swapped",
"type": "uint256"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"components": [
{
"internalType": "address",
"name": "token",
"type": "address"
},
{
"internalType": "uint256[]",
"name": "positionIds",
"type": "uint256[]"
}
],
"internalType": "struct IDCAHubPositionHandler.PositionSet[]",
"name": "positions",
"type": "tuple[]"
},
{
"internalType": "address",
"name": "recipient",
"type": "address"
}
],
"name": "withdrawSwappedMany",
"outputs": [
{
"internalType": "uint256[]",
"name": "withdrawn",
"type": "uint256[]"
}
],
"stateMutability": "nonpayable",
"type": "function"
}
],
"bytecode": "0x",
"deployedBytecode": "0x",
"linkReferences": {},
"deployedLinkReferences": {}
}