@mantleio/contracts
Version:
[Mantle] L1 and L2 smart contracts for Mantle
526 lines (525 loc) • 12.9 kB
JSON
{
"_format": "hh-sol-artifact-1",
"contractName": "IInvestmentManager",
"sourceName": "contracts/libraries/eigenda/interfaces/IInvestmentManager.sol",
"abi": [
{
"inputs": [],
"name": "beaconChainETHStrategy",
"outputs": [
{
"internalType": "contract IInvestmentStrategy",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"components": [
{
"internalType": "contract IInvestmentStrategy[]",
"name": "strategies",
"type": "address[]"
},
{
"internalType": "contract IERC20[]",
"name": "tokens",
"type": "address[]"
},
{
"internalType": "uint256[]",
"name": "shares",
"type": "uint256[]"
},
{
"internalType": "address",
"name": "depositor",
"type": "address"
},
{
"components": [
{
"internalType": "address",
"name": "withdrawer",
"type": "address"
},
{
"internalType": "uint96",
"name": "nonce",
"type": "uint96"
}
],
"internalType": "struct IInvestmentManager.WithdrawerAndNonce",
"name": "withdrawerAndNonce",
"type": "tuple"
},
{
"internalType": "uint32",
"name": "withdrawalStartBlock",
"type": "uint32"
},
{
"internalType": "address",
"name": "delegatedAddress",
"type": "address"
}
],
"internalType": "struct IInvestmentManager.QueuedWithdrawal",
"name": "queuedWithdrawal",
"type": "tuple"
}
],
"name": "calculateWithdrawalRoot",
"outputs": [
{
"internalType": "bytes32",
"name": "",
"type": "bytes32"
}
],
"stateMutability": "pure",
"type": "function"
},
{
"inputs": [
{
"components": [
{
"internalType": "contract IInvestmentStrategy[]",
"name": "strategies",
"type": "address[]"
},
{
"internalType": "contract IERC20[]",
"name": "tokens",
"type": "address[]"
},
{
"internalType": "uint256[]",
"name": "shares",
"type": "uint256[]"
},
{
"internalType": "address",
"name": "depositor",
"type": "address"
},
{
"components": [
{
"internalType": "address",
"name": "withdrawer",
"type": "address"
},
{
"internalType": "uint96",
"name": "nonce",
"type": "uint96"
}
],
"internalType": "struct IInvestmentManager.WithdrawerAndNonce",
"name": "withdrawerAndNonce",
"type": "tuple"
},
{
"internalType": "uint32",
"name": "withdrawalStartBlock",
"type": "uint32"
},
{
"internalType": "address",
"name": "delegatedAddress",
"type": "address"
}
],
"internalType": "struct IInvestmentManager.QueuedWithdrawal",
"name": "queuedWithdrawal",
"type": "tuple"
},
{
"internalType": "uint256",
"name": "middlewareTimesIndex",
"type": "uint256"
},
{
"internalType": "bool",
"name": "receiveAsTokens",
"type": "bool"
}
],
"name": "completeQueuedWithdrawal",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "delegation",
"outputs": [
{
"internalType": "contract IEigenLayrDelegation",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "staker",
"type": "address"
},
{
"internalType": "uint256",
"name": "amount",
"type": "uint256"
}
],
"name": "depositBeaconChainETH",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "contract IInvestmentStrategy",
"name": "strategy",
"type": "address"
},
{
"internalType": "contract IERC20",
"name": "token",
"type": "address"
},
{
"internalType": "uint256",
"name": "amount",
"type": "uint256"
}
],
"name": "depositIntoStrategy",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "contract IInvestmentStrategy",
"name": "strategy",
"type": "address"
},
{
"internalType": "contract IERC20",
"name": "token",
"type": "address"
},
{
"internalType": "uint256",
"name": "amount",
"type": "uint256"
},
{
"internalType": "address",
"name": "staker",
"type": "address"
},
{
"internalType": "uint256",
"name": "expiry",
"type": "uint256"
},
{
"internalType": "bytes32",
"name": "r",
"type": "bytes32"
},
{
"internalType": "bytes32",
"name": "vs",
"type": "bytes32"
}
],
"name": "depositIntoStrategyOnBehalfOf",
"outputs": [
{
"internalType": "uint256",
"name": "shares",
"type": "uint256"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "depositor",
"type": "address"
}
],
"name": "getDeposits",
"outputs": [
{
"internalType": "contract IInvestmentStrategy[]",
"name": "",
"type": "address[]"
},
{
"internalType": "uint256[]",
"name": "",
"type": "uint256[]"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "user",
"type": "address"
},
{
"internalType": "contract IInvestmentStrategy",
"name": "strategy",
"type": "address"
}
],
"name": "investorStratShares",
"outputs": [
{
"internalType": "uint256",
"name": "shares",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "staker",
"type": "address"
}
],
"name": "investorStratsLength",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256[]",
"name": "strategyIndexes",
"type": "uint256[]"
},
{
"internalType": "contract IInvestmentStrategy[]",
"name": "strategies",
"type": "address[]"
},
{
"internalType": "contract IERC20[]",
"name": "tokens",
"type": "address[]"
},
{
"internalType": "uint256[]",
"name": "shareAmounts",
"type": "uint256[]"
},
{
"internalType": "address",
"name": "withdrawer",
"type": "address"
},
{
"internalType": "bool",
"name": "undelegateIfPossible",
"type": "bool"
}
],
"name": "queueWithdrawal",
"outputs": [
{
"internalType": "bytes32",
"name": "",
"type": "bytes32"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "overcommittedPodOwner",
"type": "address"
},
{
"internalType": "uint256",
"name": "beaconChainETHStrategyIndex",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "amount",
"type": "uint256"
}
],
"name": "recordOvercommittedBeaconChainETH",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "recipient",
"type": "address"
},
{
"components": [
{
"internalType": "contract IInvestmentStrategy[]",
"name": "strategies",
"type": "address[]"
},
{
"internalType": "contract IERC20[]",
"name": "tokens",
"type": "address[]"
},
{
"internalType": "uint256[]",
"name": "shares",
"type": "uint256[]"
},
{
"internalType": "address",
"name": "depositor",
"type": "address"
},
{
"components": [
{
"internalType": "address",
"name": "withdrawer",
"type": "address"
},
{
"internalType": "uint96",
"name": "nonce",
"type": "uint96"
}
],
"internalType": "struct IInvestmentManager.WithdrawerAndNonce",
"name": "withdrawerAndNonce",
"type": "tuple"
},
{
"internalType": "uint32",
"name": "withdrawalStartBlock",
"type": "uint32"
},
{
"internalType": "address",
"name": "delegatedAddress",
"type": "address"
}
],
"internalType": "struct IInvestmentManager.QueuedWithdrawal",
"name": "queuedWithdrawal",
"type": "tuple"
}
],
"name": "slashQueuedWithdrawal",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "slashedAddress",
"type": "address"
},
{
"internalType": "address",
"name": "recipient",
"type": "address"
},
{
"internalType": "contract IInvestmentStrategy[]",
"name": "strategies",
"type": "address[]"
},
{
"internalType": "contract IERC20[]",
"name": "tokens",
"type": "address[]"
},
{
"internalType": "uint256[]",
"name": "strategyIndexes",
"type": "uint256[]"
},
{
"internalType": "uint256[]",
"name": "shareAmounts",
"type": "uint256[]"
}
],
"name": "slashShares",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "slasher",
"outputs": [
{
"internalType": "contract ISlasher",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
}
],
"bytecode": "0x",
"deployedBytecode": "0x",
"linkReferences": {},
"deployedLinkReferences": {}
}