Cryo Explorer Ethereum Mainnet

Address Contract Partially Verified

Address 0x604e586F17cE106B64185A7a0d2c1Da5bAce711E
Balance 0 ETH
Nonce 1
Code Size 2215 bytes
Indexed Transactions 0
External Etherscan · Sourcify

Contract Bytecode

2215 bytes
0x608060405234801561001057600080fd5b506004361061009e5760003560e01c80635aa6e675116100665780635aa6e6751461013e57806361f13e00146101695780638da5cb5b1461017c578063ab033ea91461018f578063d1b9e853146101a257600080fd5b806313af4035146100a357806321626946146100b857806322bee494146100e557806328071d96146101085780633bbd64bc1461011b575b600080fd5b6100b66100b1366004610689565b6101b5565b005b6100cb6100c63660046106ab565b61024c565b604080519283526020830191909152015b60405180910390f35b6100f86100f33660046106f4565b610323565b60405190151581526020016100dc565b6100b6610116366004610689565b6103e6565b6100f8610129366004610689565b60026020526000908152604090205460ff1681565b600154610151906001600160a01b031681565b6040516001600160a01b0390911681526020016100dc565b6100cb610177366004610689565b61049a565b600054610151906001600160a01b031681565b6100b661019d366004610689565b610568565b6100b66101b03660046107b6565b6105e5565b6000546001600160a01b03163314806101d857506001546001600160a01b031633145b6102175760405162461bcd60e51b815260206004820152600b60248201526a08585d5d1a1bdc9a5e995960aa1b60448201526064015b60405180910390fd5b6001600160a01b03811661022a57600080fd5b600080546001600160a01b0319166001600160a01b0392909216919091179055565b6000805481906001600160a01b031633148061027c57503360009081526002602052604090205460ff1615156001145b8061029157506001546001600160a01b031633145b6102ad5760405162461bcd60e51b815260040161020e906107f2565b604051631bb0ae3560e21b81526001600160a01b038481166004830152851690636ec2b8d49060240160408051808303816000875af11580156102f4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610318919061081e565b909590945092505050565b600080546001600160a01b031633148061035157503360009081526002602052604090205460ff1615156001145b8061036657506001546001600160a01b031633145b6103825760405162461bcd60e51b815260040161020e906107f2565b826001600160a01b03168260405161039a9190610842565b6000604051808303816000865af19150503d80600081146103d7576040519150601f19603f3d011682016040523d82523d6000602084013e6103dc565b606091505b5090949350505050565b6000546001600160a01b031633148061041357503360009081526002602052604090205460ff1615156001145b8061042857506001546001600160a01b031633145b6104445760405162461bcd60e51b815260040161020e906107f2565b806001600160a01b031663440368a36040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561047f57600080fd5b505af1158015610493573d6000803e3d6000fd5b5050505050565b6000805481906001600160a01b03163314806104ca57503360009081526002602052604090205460ff1615156001145b806104df57506001546001600160a01b031633145b6104fb5760405162461bcd60e51b815260040161020e906107f2565b826001600160a01b0316632606a10b6040518163ffffffff1660e01b815260040160408051808303816000875af115801561053a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061055e919061081e565b9094909350915050565b6001546001600160a01b031633146105b05760405162461bcd60e51b815260206004820152600b60248201526a21676f7665726e616e636560a81b604482015260640161020e565b6001600160a01b0381166105c357600080fd5b600180546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b031633148061060857506001546001600160a01b031633145b6106425760405162461bcd60e51b815260206004820152600b60248201526a08585d5d1a1bdc9a5e995960aa1b604482015260640161020e565b6001600160a01b03919091166000908152600260205260409020805460ff1916911515919091179055565b80356001600160a01b038116811461068457600080fd5b919050565b60006020828403121561069b57600080fd5b6106a48261066d565b9392505050565b600080604083850312156106be57600080fd5b6106c78361066d565b91506106d56020840161066d565b90509250929050565b634e487b7160e01b600052604160045260246000fd5b6000806040838503121561070757600080fd5b6107108361066d565b9150602083013567ffffffffffffffff8082111561072d57600080fd5b818501915085601f83011261074157600080fd5b813581811115610753576107536106de565b604051601f8201601f19908116603f0116810190838211818310171561077b5761077b6106de565b8160405282815288602084870101111561079457600080fd5b8260208601602083013760006020848301015280955050505050509250929050565b600080604083850312156107c957600080fd5b6107d28361066d565b9150602083013580151581146107e757600080fd5b809150509250929050565b602080825260129082015271216b656570657220794861615350726f787960701b604082015260600190565b6000806040838503121561083157600080fd5b505080516020909101519092909150565b6000825160005b818110156108635760208186018101518583015201610849565b50600092019182525091905056fea2646970667358221220d52c5291956859bb3c715edf4176bd50a338782648bf88a3a4870e64c08cdda964736f6c63430008120033

Verified Source Code Partial Match

Compiler: v0.8.18+commit.87f61d96 EVM: paris Optimization: Yes (200 runs)
yHaaSRelayer.sol 76 lines
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.18;

contract yHaaSRelayer {
    address public owner;
    address public governance;

    mapping(address => bool) public keepers;

    constructor() {
        owner = msg.sender;
        governance = msg.sender;
    }

    function harvestStrategy(address _strategyAddress) public onlyKeepers returns (uint256 profit, uint256 loss) {
        (profit, loss) = StrategyAPI(_strategyAddress).report();
    }

    function tendStrategy(address _strategyAddress) public onlyKeepers {
        StrategyAPI(_strategyAddress).tend();
    }

    function processReport(address _vaultAddress, address _strategyAddress) public onlyKeepers returns (uint256 gain, uint256 loss) {
        (gain, loss) = VaultAPI(_vaultAddress).process_report(_strategyAddress);
    }

    function forwardCall(address debtAllocatorAddress, bytes memory data) public onlyKeepers returns (bool success) {
        (success, ) = debtAllocatorAddress.call(data);
    }

    function setKeeper(address _address, bool _allowed) external virtual onlyAuthorized {
        keepers[_address] = _allowed;
    }

    /**
    @notice Changes the `owner` address.
    @param _owner The new address to assign as `owner`.
    */
    function setOwner(address _owner) external onlyAuthorized {
        require(_owner != address(0));
        owner = _owner;
    }

    /**
    @notice Changes the `governance` address.
    @param _governance The new address to assign as `governance`.
    */
    function setGovernance(address _governance) external onlyGovernance {
        require(_governance != address(0));
        governance = _governance;
    }

    modifier onlyKeepers() {
        require(msg.sender == owner || keepers[msg.sender] == true || msg.sender == governance, "!keeper yHaaSProxy");
        _;
    }

    modifier onlyAuthorized() {
        require(msg.sender == owner || msg.sender == governance, "!authorized");
        _;
    }

    modifier onlyGovernance() {
        require(msg.sender == governance, "!governance");
        _;
    }
} 

interface StrategyAPI {
    function tend() external;
    function report() external returns (uint256 _profit, uint256 _loss);
}

interface VaultAPI {
    function process_report(address) external returns (uint256 _gain, uint256 _loss);
}

Read Contract

governance 0x5aa6e675 → address
keepers 0x3bbd64bc → bool
owner 0x8da5cb5b → address

Write Contract 7 functions

These functions modify contract state and require a wallet transaction to execute.

forwardCall 0x22bee494
address debtAllocatorAddress
bytes data
returns: bool
harvestStrategy 0x61f13e00
address _strategyAddress
returns: uint256, uint256
processReport 0x21626946
address _vaultAddress
address _strategyAddress
returns: uint256, uint256
setGovernance 0xab033ea9
address _governance
setKeeper 0xd1b9e853
address _address
bool _allowed
setOwner 0x13af4035
address _owner
tendStrategy 0x28071d96
address _strategyAddress

Recent Transactions

No transactions found for this address