ETH Price: $2,390.22 (-8.96%)

Contract

0x597E642d146c1d1Eb1935fF4Fa7efc66084eA21a

Overview

ETH Balance

0 ETH

ETH Value

$0.00

More Info

Private Name Tags

Multichain Info

No addresses found
Transaction Hash
Block
From
To

There are no matching entries

Please try again later

Parent Transaction Hash Block From To
View All Internal Transactions

Cross-Chain Transactions
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
SiloDeleveragerV4

Compiler Version
v0.8.31+commit.fd3a2265

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.20;

// Aave V3 Flashloan interface
interface IPool {
    function flashLoanSimple(
        address receiverAddress,
        address asset,
        uint256 amount,
        bytes calldata params,
        uint16 referralCode
    ) external;
}

interface IFlashLoanSimpleReceiver {
    function executeOperation(
        address asset,
        uint256 amount,
        uint256 premium,
        address initiator,
        bytes calldata params
    ) external returns (bool);
}

// Silo V2 interface (ERC4626 based)
interface ISiloV2 {
    enum CollateralType { Protected, Collateral }
    
    function maxRepayShares(address borrower) external view returns (uint256);
    function previewRepayShares(uint256 shares) external view returns (uint256 assets);
    function repayShares(uint256 shares, address borrower) external returns (uint256 assets);
    function redeem(uint256 shares, address receiver, address owner, CollateralType collateralType) external returns (uint256 assets);
    function previewRedeem(uint256 shares, CollateralType collateralType) external view returns (uint256 assets);
    function maxRedeem(address owner, CollateralType collateralType) external view returns (uint256 maxShares);
}

interface IERC20 {
    function approve(address spender, uint256 amount) external returns (bool);
    function transfer(address to, uint256 amount) external returns (bool);
    function balanceOf(address account) external view returns (uint256);
}

/**
 * @title SiloDeleveragerV4
 * @notice Unwind a looped Silo V2 position using Aave V3 flashloan
 * @dev Flow: Flashloan USDC → Repay Silo → Withdraw Protected PT → Swap PT→USDC via Pendle → Repay flashloan
 */
contract SiloDeleveragerV4 is IFlashLoanSimpleReceiver {
    
    // ============ ARBITRUM ADDRESSES ============
    
    // Aave V3 Pool on Arbitrum
    address public constant AAVE_POOL = 0x794a61358D6845594F94dc1DB02A252b5b4814aD;
    
    address public constant USDC = 0xaf88d065e77c8cC2239327C5EDb3A432268e5831;
    
    // Correct PT address from Pendle market
    address public constant PT_SUSDAI = 0x1BF1311FCF914A69Dd5805C9B06b72F80539cB3f;
    
    // Silo V2 contracts for PT-sUSDai market
    address public constant SILO_PT_SUSDAI = 0x0449d2b62CA64411A3bf0364787F599071660e92;
    address public constant SILO_USDC = 0x84ED0f5586BA014a1e7300cd8bf5eB905D9f1b26;
    
    // Protected collateral share token (nbPT-sUSDai)
    address public constant PROTECTED_SHARE_TOKEN = 0xa09aaf9Ab1E6008554E158F7F1B843F6d7f7110d;
    
    // Pendle Router V4
    address public constant PENDLE_ROUTER = 0x888888888889758F76e7103c6CbF23ABbF58F946;
    
    address public immutable owner;
    
    // ============ ERRORS ============
    
    error NotOwner();
    error NotAavePool();
    error NotInitiator();
    error SwapFailed();
    error NotEnoughOutput();
    
    // ============ EVENTS ============
    
    event Deleveraged(uint256 debtRepaid, uint256 collateralWithdrawn, uint256 usdcReceived);
    
    // ============ CONSTRUCTOR ============
    
    constructor() {
        owner = msg.sender;
    }
    
    // ============ MODIFIERS ============
    
    modifier onlyOwner() {
        if (msg.sender != owner) revert NotOwner();
        _;
    }
    
    // ============ MAIN FUNCTION ============
    
    /**
     * @notice Unwind the entire Silo position
     * @param flashloanAmount Amount of USDC to flashloan (should cover debt + buffer)
     * @param swapCalldata Calldata for Pendle Router swap (PT-sUSDai → USDC)
     * @param minUsdcOutput Minimum USDC to receive from swap (slippage protection)
     */
    function deleverage(
        uint256 flashloanAmount,
        bytes calldata swapCalldata,
        uint256 minUsdcOutput
    ) external onlyOwner {
        bytes memory params = abi.encode(swapCalldata, minUsdcOutput);
        
        IPool(AAVE_POOL).flashLoanSimple(
            address(this),
            USDC,
            flashloanAmount,
            params,
            0 // referral code
        );
    }
    
    /**
     * @notice Aave V3 flashloan callback
     */
    function executeOperation(
        address asset,
        uint256 amount,
        uint256 premium,
        address initiator,
        bytes calldata params
    ) external override returns (bool) {
        if (msg.sender != AAVE_POOL) revert NotAavePool();
        if (initiator != address(this)) revert NotInitiator();
        
        (bytes memory swapCalldata, uint256 minUsdcOutput) = abi.decode(params, (bytes, uint256));
        
        uint256 totalRepay = amount + premium; // Aave fee is ~0.05%
        
        // Step 1: Get debt shares to repay
        uint256 debtShares = ISiloV2(SILO_USDC).maxRepayShares(owner);
        uint256 debtAssets = ISiloV2(SILO_USDC).previewRepayShares(debtShares);
        
        // Step 2: Approve USDC to Silo debt contract
        IERC20(USDC).approve(SILO_USDC, debtAssets);
        
        // Step 3: Repay all debt on Silo
        ISiloV2(SILO_USDC).repayShares(debtShares, owner);
        
        // Step 4: Get PROTECTED collateral shares and withdraw all PT-sUSDai
        uint256 protectedShares = IERC20(PROTECTED_SHARE_TOKEN).balanceOf(owner);
        uint256 ptWithdrawn = ISiloV2(SILO_PT_SUSDAI).redeem(
            protectedShares, 
            address(this), 
            owner, 
            ISiloV2.CollateralType.Protected
        );
        
        // Step 5: Swap PT-sUSDai → USDC via Pendle
        IERC20(PT_SUSDAI).approve(PENDLE_ROUTER, ptWithdrawn);
        
        (bool success,) = PENDLE_ROUTER.call(swapCalldata);
        if (!success) revert SwapFailed();
        
        // Step 6: Check we have enough USDC
        uint256 usdcBalance = IERC20(USDC).balanceOf(address(this));
        if (usdcBalance < minUsdcOutput) revert NotEnoughOutput();
        
        // Step 7: Approve Aave to pull repayment
        IERC20(USDC).approve(AAVE_POOL, totalRepay);
        
        // Step 8: Send remaining USDC to owner (after Aave pulls repayment)
        uint256 remaining = usdcBalance - totalRepay;
        if (remaining > 0) {
            IERC20(USDC).transfer(owner, remaining);
        }
        
        // Send any remaining PT
        uint256 remainingPT = IERC20(PT_SUSDAI).balanceOf(address(this));
        if (remainingPT > 0) {
            IERC20(PT_SUSDAI).transfer(owner, remainingPT);
        }
        
        emit Deleveraged(debtAssets, ptWithdrawn, remaining);
        
        return true; // Tell Aave the operation was successful
    }
    
    // ============ VIEW FUNCTIONS ============
    
    function getDebtShares() external view returns (uint256) {
        return ISiloV2(SILO_USDC).maxRepayShares(owner);
    }
    
    function getDebtAssets() external view returns (uint256) {
        uint256 shares = ISiloV2(SILO_USDC).maxRepayShares(owner);
        return ISiloV2(SILO_USDC).previewRepayShares(shares);
    }
    
    function getCollateralShares() external view returns (uint256) {
        return IERC20(PROTECTED_SHARE_TOKEN).balanceOf(owner);
    }
    
    function getCollateralAssets() external view returns (uint256) {
        return ISiloV2(SILO_PT_SUSDAI).maxRedeem(owner, ISiloV2.CollateralType.Protected);
    }
    
    // ============ EMERGENCY ============
    
    function rescue(address token) external onlyOwner {
        uint256 balance = IERC20(token).balanceOf(address(this));
        if (balance > 0) {
            IERC20(token).transfer(owner, balance);
        }
    }
}

Settings
{
  "optimizer": {
    "enabled": false,
    "runs": 200
  },
  "outputSelection": {
    "*": {
      "*": [
        "evm.bytecode",
        "evm.deployedBytecode",
        "devdoc",
        "userdoc",
        "metadata",
        "abi"
      ]
    }
  },
  "remappings": []
}

Contract Security Audit

Contract ABI

API
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"NotAavePool","type":"error"},{"inputs":[],"name":"NotEnoughOutput","type":"error"},{"inputs":[],"name":"NotInitiator","type":"error"},{"inputs":[],"name":"NotOwner","type":"error"},{"inputs":[],"name":"SwapFailed","type":"error"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"debtRepaid","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"collateralWithdrawn","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"usdcReceived","type":"uint256"}],"name":"Deleveraged","type":"event"},{"inputs":[],"name":"AAVE_POOL","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"PENDLE_ROUTER","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"PROTECTED_SHARE_TOKEN","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"PT_SUSDAI","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"SILO_PT_SUSDAI","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"SILO_USDC","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"USDC","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"flashloanAmount","type":"uint256"},{"internalType":"bytes","name":"swapCalldata","type":"bytes"},{"internalType":"uint256","name":"minUsdcOutput","type":"uint256"}],"name":"deleverage","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"asset","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint256","name":"premium","type":"uint256"},{"internalType":"address","name":"initiator","type":"address"},{"internalType":"bytes","name":"params","type":"bytes"}],"name":"executeOperation","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getCollateralAssets","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getCollateralShares","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getDebtAssets","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getDebtShares","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"}],"name":"rescue","outputs":[],"stateMutability":"nonpayable","type":"function"}]

60a060405234801561000f575f5ffd5b503373ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff1681525050608051611cb76100b75f395f8181610415015281816105f7015281816106a70152818161075801528181610ae601528181610c2e01528181610d6301528181610e8701528181610f0c0152818161106d015281816110da0152818161118e0152818161124001526112f30152611cb75ff3fe608060405234801561000f575f5ffd5b50600436106100f3575f3560e01c8063889d16a511610095578063a1ff9bee11610064578063a1ff9bee1461024f578063a7930f0d1461026d578063eb940a311461028b578063ecd658b4146102a9576100f3565b8063889d16a5146101d957806389a30271146101f55780638da5cb5b1461021357806392c159b614610231576100f3565b80633c97b00d116100d15780633c97b00d1461016357806347e65c7114610181578063759253421461019f578063839006f2146101bd576100f3565b806308a01675146100f75780631b11d0ff146101155780631b8aafe014610145575b5f5ffd5b6100ff6102c7565b60405161010c9190611440565b60405180910390f35b61012f600480360381019061012a9190611528565b6102df565b60405161013c91906115d8565b60405180910390f35b61014d610d01565b60405161015a9190611440565b60405180910390f35b61016b610d19565b6040516101789190611440565b60405180910390f35b610189610d31565b6040516101969190611440565b60405180910390f35b6101a7610d49565b6040516101b49190611440565b60405180910390f35b6101d760048036038101906101d291906115f1565b610d61565b005b6101f360048036038101906101ee919061161c565b610f0a565b005b6101fd611053565b60405161020a9190611440565b60405180910390f35b61021b61106b565b6040516102289190611440565b60405180910390f35b61023961108f565b6040516102469190611440565b60405180910390f35b6102576110a7565b604051610264919061169c565b60405180910390f35b61027561115b565b604051610282919061169c565b60405180910390f35b61029361120d565b6040516102a0919061169c565b60405180910390f35b6102b16112bf565b6040516102be919061169c565b60405180910390f35b73794a61358d6845594f94dc1db02a252b5b4814ad81565b5f73794a61358d6845594f94dc1db02a252b5b4814ad73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610359576040517fb27a27bf00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b3073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16146103be576040517f42b5e35a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f5f84848101906103cf91906117ed565b915091505f87896103e09190611874565b90505f7384ed0f5586ba014a1e7300cd8bf5eb905d9f1b2673ffffffffffffffffffffffffffffffffffffffff166329d6509a7f00000000000000000000000000000000000000000000000000000000000000006040518263ffffffff1660e01b81526004016104509190611440565b602060405180830381865afa15801561046b573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061048f91906118bb565b90505f7384ed0f5586ba014a1e7300cd8bf5eb905d9f1b2673ffffffffffffffffffffffffffffffffffffffff1663e72bec57836040518263ffffffff1660e01b81526004016104df919061169c565b602060405180830381865afa1580156104fa573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061051e91906118bb565b905073af88d065e77c8cc2239327c5edb3a432268e583173ffffffffffffffffffffffffffffffffffffffff1663095ea7b37384ed0f5586ba014a1e7300cd8bf5eb905d9f1b26836040518363ffffffff1660e01b81526004016105839291906118e6565b6020604051808303815f875af115801561059f573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906105c39190611937565b507384ed0f5586ba014a1e7300cd8bf5eb905d9f1b2673ffffffffffffffffffffffffffffffffffffffff1663e36754eb837f00000000000000000000000000000000000000000000000000000000000000006040518363ffffffff1660e01b8152600401610633929190611962565b6020604051808303815f875af115801561064f573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061067391906118bb565b505f73a09aaf9ab1e6008554e158f7f1b843f6d7f7110d73ffffffffffffffffffffffffffffffffffffffff166370a082317f00000000000000000000000000000000000000000000000000000000000000006040518263ffffffff1660e01b81526004016106e29190611440565b602060405180830381865afa1580156106fd573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061072191906118bb565b90505f730449d2b62ca64411a3bf0364787f599071660e9273ffffffffffffffffffffffffffffffffffffffff1663da53766083307f00000000000000000000000000000000000000000000000000000000000000005f6040518563ffffffff1660e01b815260040161079794939291906119fc565b6020604051808303815f875af11580156107b3573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107d791906118bb565b9050731bf1311fcf914a69dd5805c9b06b72f80539cb3f73ffffffffffffffffffffffffffffffffffffffff1663095ea7b373888888888889758f76e7103c6cbf23abbf58f946836040518363ffffffff1660e01b815260040161083c9291906118e6565b6020604051808303815f875af1158015610858573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061087c9190611937565b505f73888888888889758f76e7103c6cbf23abbf58f94673ffffffffffffffffffffffffffffffffffffffff16886040516108b79190611a91565b5f604051808303815f865af19150503d805f81146108f0576040519150601f19603f3d011682016040523d82523d5f602084013e6108f5565b606091505b5050905080610930576040517f81ceff3000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f73af88d065e77c8cc2239327c5edb3a432268e583173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b815260040161097e9190611440565b602060405180830381865afa158015610999573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109bd91906118bb565b9050878110156109f9576040517f5397a1f900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73af88d065e77c8cc2239327c5edb3a432268e583173ffffffffffffffffffffffffffffffffffffffff1663095ea7b373794a61358d6845594f94dc1db02a252b5b4814ad896040518363ffffffff1660e01b8152600401610a5c9291906118e6565b6020604051808303815f875af1158015610a78573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a9c9190611937565b505f8782610aaa9190611aa7565b90505f811115610b655773af88d065e77c8cc2239327c5edb3a432268e583173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb7f0000000000000000000000000000000000000000000000000000000000000000836040518363ffffffff1660e01b8152600401610b239291906118e6565b6020604051808303815f875af1158015610b3f573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b639190611937565b505b5f731bf1311fcf914a69dd5805c9b06b72f80539cb3f73ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610bb39190611440565b602060405180830381865afa158015610bce573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610bf291906118bb565b90505f811115610cad57731bf1311fcf914a69dd5805c9b06b72f80539cb3f73ffffffffffffffffffffffffffffffffffffffff1663a9059cbb7f0000000000000000000000000000000000000000000000000000000000000000836040518363ffffffff1660e01b8152600401610c6b9291906118e6565b6020604051808303815f875af1158015610c87573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610cab9190611937565b505b7fa78ce6b373c19161d376fc3d70572a2f15f4eb5cd26191684b07971715e97419878684604051610ce093929190611ada565b60405180910390a160019b5050505050505050505050509695505050505050565b731bf1311fcf914a69dd5805c9b06b72f80539cb3f81565b73888888888889758f76e7103c6cbf23abbf58f94681565b7384ed0f5586ba014a1e7300cd8bf5eb905d9f1b2681565b73a09aaf9ab1e6008554e158f7f1b843f6d7f7110d81565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610de6576040517f30cd747100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f8173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610e209190611440565b602060405180830381865afa158015610e3b573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e5f91906118bb565b90505f811115610f06578173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb7f0000000000000000000000000000000000000000000000000000000000000000836040518363ffffffff1660e01b8152600401610ec49291906118e6565b6020604051808303815f875af1158015610ee0573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610f049190611937565b505b5050565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610f8f576040517f30cd747100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f838383604051602001610fa593929190611b4b565b604051602081830303815290604052905073794a61358d6845594f94dc1db02a252b5b4814ad73ffffffffffffffffffffffffffffffffffffffff166342b0b77c3073af88d065e77c8cc2239327c5edb3a432268e583188855f6040518663ffffffff1660e01b815260040161101f959493929190611c02565b5f604051808303815f87803b158015611036575f5ffd5b505af1158015611048573d5f5f3e3d5ffd5b505050505050505050565b73af88d065e77c8cc2239327c5edb3a432268e583181565b7f000000000000000000000000000000000000000000000000000000000000000081565b730449d2b62ca64411a3bf0364787f599071660e9281565b5f730449d2b62ca64411a3bf0364787f599071660e9273ffffffffffffffffffffffffffffffffffffffff1663071bf3ff7f00000000000000000000000000000000000000000000000000000000000000005f6040518363ffffffff1660e01b8152600401611117929190611c5a565b602060405180830381865afa158015611132573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061115691906118bb565b905090565b5f73a09aaf9ab1e6008554e158f7f1b843f6d7f7110d73ffffffffffffffffffffffffffffffffffffffff166370a082317f00000000000000000000000000000000000000000000000000000000000000006040518263ffffffff1660e01b81526004016111c99190611440565b602060405180830381865afa1580156111e4573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061120891906118bb565b905090565b5f7384ed0f5586ba014a1e7300cd8bf5eb905d9f1b2673ffffffffffffffffffffffffffffffffffffffff166329d6509a7f00000000000000000000000000000000000000000000000000000000000000006040518263ffffffff1660e01b815260040161127b9190611440565b602060405180830381865afa158015611296573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906112ba91906118bb565b905090565b5f5f7384ed0f5586ba014a1e7300cd8bf5eb905d9f1b2673ffffffffffffffffffffffffffffffffffffffff166329d6509a7f00000000000000000000000000000000000000000000000000000000000000006040518263ffffffff1660e01b815260040161132e9190611440565b602060405180830381865afa158015611349573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061136d91906118bb565b90507384ed0f5586ba014a1e7300cd8bf5eb905d9f1b2673ffffffffffffffffffffffffffffffffffffffff1663e72bec57826040518263ffffffff1660e01b81526004016113bc919061169c565b602060405180830381865afa1580156113d7573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906113fb91906118bb565b91505090565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61142a82611401565b9050919050565b61143a81611420565b82525050565b5f6020820190506114535f830184611431565b92915050565b5f604051905090565b5f5ffd5b5f5ffd5b61147381611420565b811461147d575f5ffd5b50565b5f8135905061148e8161146a565b92915050565b5f819050919050565b6114a681611494565b81146114b0575f5ffd5b50565b5f813590506114c18161149d565b92915050565b5f5ffd5b5f5ffd5b5f5ffd5b5f5f83601f8401126114e8576114e76114c7565b5b8235905067ffffffffffffffff811115611505576115046114cb565b5b602083019150836001820283011115611521576115206114cf565b5b9250929050565b5f5f5f5f5f5f60a0878903121561154257611541611462565b5b5f61154f89828a01611480565b965050602061156089828a016114b3565b955050604061157189828a016114b3565b945050606061158289828a01611480565b935050608087013567ffffffffffffffff8111156115a3576115a2611466565b5b6115af89828a016114d3565b92509250509295509295509295565b5f8115159050919050565b6115d2816115be565b82525050565b5f6020820190506115eb5f8301846115c9565b92915050565b5f6020828403121561160657611605611462565b5b5f61161384828501611480565b91505092915050565b5f5f5f5f6060858703121561163457611633611462565b5b5f611641878288016114b3565b945050602085013567ffffffffffffffff81111561166257611661611466565b5b61166e878288016114d3565b93509350506040611681878288016114b3565b91505092959194509250565b61169681611494565b82525050565b5f6020820190506116af5f83018461168d565b92915050565b5f5ffd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6116ff826116b9565b810181811067ffffffffffffffff8211171561171e5761171d6116c9565b5b80604052505050565b5f611730611459565b905061173c82826116f6565b919050565b5f67ffffffffffffffff82111561175b5761175a6116c9565b5b611764826116b9565b9050602081019050919050565b828183375f83830152505050565b5f61179161178c84611741565b611727565b9050828152602081018484840111156117ad576117ac6116b5565b5b6117b8848285611771565b509392505050565b5f82601f8301126117d4576117d36114c7565b5b81356117e484826020860161177f565b91505092915050565b5f5f6040838503121561180357611802611462565b5b5f83013567ffffffffffffffff8111156118205761181f611466565b5b61182c858286016117c0565b925050602061183d858286016114b3565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f61187e82611494565b915061188983611494565b92508282019050808211156118a1576118a0611847565b5b92915050565b5f815190506118b58161149d565b92915050565b5f602082840312156118d0576118cf611462565b5b5f6118dd848285016118a7565b91505092915050565b5f6040820190506118f95f830185611431565b611906602083018461168d565b9392505050565b611916816115be565b8114611920575f5ffd5b50565b5f815190506119318161190d565b92915050565b5f6020828403121561194c5761194b611462565b5b5f61195984828501611923565b91505092915050565b5f6040820190506119755f83018561168d565b6119826020830184611431565b9392505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd5b600281106119c7576119c6611989565b5b50565b5f8190506119d7826119b6565b919050565b5f6119e6826119ca565b9050919050565b6119f6816119dc565b82525050565b5f608082019050611a0f5f83018761168d565b611a1c6020830186611431565b611a296040830185611431565b611a3660608301846119ed565b95945050505050565b5f81519050919050565b5f81905092915050565b8281835e5f83830152505050565b5f611a6b82611a3f565b611a758185611a49565b9350611a85818560208601611a53565b80840191505092915050565b5f611a9c8284611a61565b915081905092915050565b5f611ab182611494565b9150611abc83611494565b9250828203905081811115611ad457611ad3611847565b5b92915050565b5f606082019050611aed5f83018661168d565b611afa602083018561168d565b611b07604083018461168d565b949350505050565b5f82825260208201905092915050565b5f611b2a8385611b0f565b9350611b37838584611771565b611b40836116b9565b840190509392505050565b5f6040820190508181035f830152611b64818587611b1f565b9050611b73602083018461168d565b949350505050565b5f611b8582611a3f565b611b8f8185611b0f565b9350611b9f818560208601611a53565b611ba8816116b9565b840191505092915050565b5f819050919050565b5f61ffff82169050919050565b5f819050919050565b5f611bec611be7611be284611bb3565b611bc9565b611bbc565b9050919050565b611bfc81611bd2565b82525050565b5f60a082019050611c155f830188611431565b611c226020830187611431565b611c2f604083018661168d565b8181036060830152611c418185611b7b565b9050611c506080830184611bf3565b9695505050505050565b5f604082019050611c6d5f830185611431565b611c7a60208301846119ed565b939250505056fea264697066735822122064e50c1ebeffd40da6553f32cf406a9f35e6a35f55b28b0c755f2dd46496d8ae64736f6c634300081f0033

Deployed Bytecode

0x608060405234801561000f575f5ffd5b50600436106100f3575f3560e01c8063889d16a511610095578063a1ff9bee11610064578063a1ff9bee1461024f578063a7930f0d1461026d578063eb940a311461028b578063ecd658b4146102a9576100f3565b8063889d16a5146101d957806389a30271146101f55780638da5cb5b1461021357806392c159b614610231576100f3565b80633c97b00d116100d15780633c97b00d1461016357806347e65c7114610181578063759253421461019f578063839006f2146101bd576100f3565b806308a01675146100f75780631b11d0ff146101155780631b8aafe014610145575b5f5ffd5b6100ff6102c7565b60405161010c9190611440565b60405180910390f35b61012f600480360381019061012a9190611528565b6102df565b60405161013c91906115d8565b60405180910390f35b61014d610d01565b60405161015a9190611440565b60405180910390f35b61016b610d19565b6040516101789190611440565b60405180910390f35b610189610d31565b6040516101969190611440565b60405180910390f35b6101a7610d49565b6040516101b49190611440565b60405180910390f35b6101d760048036038101906101d291906115f1565b610d61565b005b6101f360048036038101906101ee919061161c565b610f0a565b005b6101fd611053565b60405161020a9190611440565b60405180910390f35b61021b61106b565b6040516102289190611440565b60405180910390f35b61023961108f565b6040516102469190611440565b60405180910390f35b6102576110a7565b604051610264919061169c565b60405180910390f35b61027561115b565b604051610282919061169c565b60405180910390f35b61029361120d565b6040516102a0919061169c565b60405180910390f35b6102b16112bf565b6040516102be919061169c565b60405180910390f35b73794a61358d6845594f94dc1db02a252b5b4814ad81565b5f73794a61358d6845594f94dc1db02a252b5b4814ad73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610359576040517fb27a27bf00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b3073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16146103be576040517f42b5e35a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f5f84848101906103cf91906117ed565b915091505f87896103e09190611874565b90505f7384ed0f5586ba014a1e7300cd8bf5eb905d9f1b2673ffffffffffffffffffffffffffffffffffffffff166329d6509a7f000000000000000000000000c5315628e03ce0d6736867698543fe0d30f871d66040518263ffffffff1660e01b81526004016104509190611440565b602060405180830381865afa15801561046b573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061048f91906118bb565b90505f7384ed0f5586ba014a1e7300cd8bf5eb905d9f1b2673ffffffffffffffffffffffffffffffffffffffff1663e72bec57836040518263ffffffff1660e01b81526004016104df919061169c565b602060405180830381865afa1580156104fa573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061051e91906118bb565b905073af88d065e77c8cc2239327c5edb3a432268e583173ffffffffffffffffffffffffffffffffffffffff1663095ea7b37384ed0f5586ba014a1e7300cd8bf5eb905d9f1b26836040518363ffffffff1660e01b81526004016105839291906118e6565b6020604051808303815f875af115801561059f573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906105c39190611937565b507384ed0f5586ba014a1e7300cd8bf5eb905d9f1b2673ffffffffffffffffffffffffffffffffffffffff1663e36754eb837f000000000000000000000000c5315628e03ce0d6736867698543fe0d30f871d66040518363ffffffff1660e01b8152600401610633929190611962565b6020604051808303815f875af115801561064f573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061067391906118bb565b505f73a09aaf9ab1e6008554e158f7f1b843f6d7f7110d73ffffffffffffffffffffffffffffffffffffffff166370a082317f000000000000000000000000c5315628e03ce0d6736867698543fe0d30f871d66040518263ffffffff1660e01b81526004016106e29190611440565b602060405180830381865afa1580156106fd573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061072191906118bb565b90505f730449d2b62ca64411a3bf0364787f599071660e9273ffffffffffffffffffffffffffffffffffffffff1663da53766083307f000000000000000000000000c5315628e03ce0d6736867698543fe0d30f871d65f6040518563ffffffff1660e01b815260040161079794939291906119fc565b6020604051808303815f875af11580156107b3573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107d791906118bb565b9050731bf1311fcf914a69dd5805c9b06b72f80539cb3f73ffffffffffffffffffffffffffffffffffffffff1663095ea7b373888888888889758f76e7103c6cbf23abbf58f946836040518363ffffffff1660e01b815260040161083c9291906118e6565b6020604051808303815f875af1158015610858573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061087c9190611937565b505f73888888888889758f76e7103c6cbf23abbf58f94673ffffffffffffffffffffffffffffffffffffffff16886040516108b79190611a91565b5f604051808303815f865af19150503d805f81146108f0576040519150601f19603f3d011682016040523d82523d5f602084013e6108f5565b606091505b5050905080610930576040517f81ceff3000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f73af88d065e77c8cc2239327c5edb3a432268e583173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b815260040161097e9190611440565b602060405180830381865afa158015610999573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109bd91906118bb565b9050878110156109f9576040517f5397a1f900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73af88d065e77c8cc2239327c5edb3a432268e583173ffffffffffffffffffffffffffffffffffffffff1663095ea7b373794a61358d6845594f94dc1db02a252b5b4814ad896040518363ffffffff1660e01b8152600401610a5c9291906118e6565b6020604051808303815f875af1158015610a78573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a9c9190611937565b505f8782610aaa9190611aa7565b90505f811115610b655773af88d065e77c8cc2239327c5edb3a432268e583173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb7f000000000000000000000000c5315628e03ce0d6736867698543fe0d30f871d6836040518363ffffffff1660e01b8152600401610b239291906118e6565b6020604051808303815f875af1158015610b3f573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b639190611937565b505b5f731bf1311fcf914a69dd5805c9b06b72f80539cb3f73ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610bb39190611440565b602060405180830381865afa158015610bce573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610bf291906118bb565b90505f811115610cad57731bf1311fcf914a69dd5805c9b06b72f80539cb3f73ffffffffffffffffffffffffffffffffffffffff1663a9059cbb7f000000000000000000000000c5315628e03ce0d6736867698543fe0d30f871d6836040518363ffffffff1660e01b8152600401610c6b9291906118e6565b6020604051808303815f875af1158015610c87573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610cab9190611937565b505b7fa78ce6b373c19161d376fc3d70572a2f15f4eb5cd26191684b07971715e97419878684604051610ce093929190611ada565b60405180910390a160019b5050505050505050505050509695505050505050565b731bf1311fcf914a69dd5805c9b06b72f80539cb3f81565b73888888888889758f76e7103c6cbf23abbf58f94681565b7384ed0f5586ba014a1e7300cd8bf5eb905d9f1b2681565b73a09aaf9ab1e6008554e158f7f1b843f6d7f7110d81565b7f000000000000000000000000c5315628e03ce0d6736867698543fe0d30f871d673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610de6576040517f30cd747100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f8173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610e209190611440565b602060405180830381865afa158015610e3b573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e5f91906118bb565b90505f811115610f06578173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb7f000000000000000000000000c5315628e03ce0d6736867698543fe0d30f871d6836040518363ffffffff1660e01b8152600401610ec49291906118e6565b6020604051808303815f875af1158015610ee0573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610f049190611937565b505b5050565b7f000000000000000000000000c5315628e03ce0d6736867698543fe0d30f871d673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610f8f576040517f30cd747100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f838383604051602001610fa593929190611b4b565b604051602081830303815290604052905073794a61358d6845594f94dc1db02a252b5b4814ad73ffffffffffffffffffffffffffffffffffffffff166342b0b77c3073af88d065e77c8cc2239327c5edb3a432268e583188855f6040518663ffffffff1660e01b815260040161101f959493929190611c02565b5f604051808303815f87803b158015611036575f5ffd5b505af1158015611048573d5f5f3e3d5ffd5b505050505050505050565b73af88d065e77c8cc2239327c5edb3a432268e583181565b7f000000000000000000000000c5315628e03ce0d6736867698543fe0d30f871d681565b730449d2b62ca64411a3bf0364787f599071660e9281565b5f730449d2b62ca64411a3bf0364787f599071660e9273ffffffffffffffffffffffffffffffffffffffff1663071bf3ff7f000000000000000000000000c5315628e03ce0d6736867698543fe0d30f871d65f6040518363ffffffff1660e01b8152600401611117929190611c5a565b602060405180830381865afa158015611132573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061115691906118bb565b905090565b5f73a09aaf9ab1e6008554e158f7f1b843f6d7f7110d73ffffffffffffffffffffffffffffffffffffffff166370a082317f000000000000000000000000c5315628e03ce0d6736867698543fe0d30f871d66040518263ffffffff1660e01b81526004016111c99190611440565b602060405180830381865afa1580156111e4573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061120891906118bb565b905090565b5f7384ed0f5586ba014a1e7300cd8bf5eb905d9f1b2673ffffffffffffffffffffffffffffffffffffffff166329d6509a7f000000000000000000000000c5315628e03ce0d6736867698543fe0d30f871d66040518263ffffffff1660e01b815260040161127b9190611440565b602060405180830381865afa158015611296573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906112ba91906118bb565b905090565b5f5f7384ed0f5586ba014a1e7300cd8bf5eb905d9f1b2673ffffffffffffffffffffffffffffffffffffffff166329d6509a7f000000000000000000000000c5315628e03ce0d6736867698543fe0d30f871d66040518263ffffffff1660e01b815260040161132e9190611440565b602060405180830381865afa158015611349573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061136d91906118bb565b90507384ed0f5586ba014a1e7300cd8bf5eb905d9f1b2673ffffffffffffffffffffffffffffffffffffffff1663e72bec57826040518263ffffffff1660e01b81526004016113bc919061169c565b602060405180830381865afa1580156113d7573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906113fb91906118bb565b91505090565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61142a82611401565b9050919050565b61143a81611420565b82525050565b5f6020820190506114535f830184611431565b92915050565b5f604051905090565b5f5ffd5b5f5ffd5b61147381611420565b811461147d575f5ffd5b50565b5f8135905061148e8161146a565b92915050565b5f819050919050565b6114a681611494565b81146114b0575f5ffd5b50565b5f813590506114c18161149d565b92915050565b5f5ffd5b5f5ffd5b5f5ffd5b5f5f83601f8401126114e8576114e76114c7565b5b8235905067ffffffffffffffff811115611505576115046114cb565b5b602083019150836001820283011115611521576115206114cf565b5b9250929050565b5f5f5f5f5f5f60a0878903121561154257611541611462565b5b5f61154f89828a01611480565b965050602061156089828a016114b3565b955050604061157189828a016114b3565b945050606061158289828a01611480565b935050608087013567ffffffffffffffff8111156115a3576115a2611466565b5b6115af89828a016114d3565b92509250509295509295509295565b5f8115159050919050565b6115d2816115be565b82525050565b5f6020820190506115eb5f8301846115c9565b92915050565b5f6020828403121561160657611605611462565b5b5f61161384828501611480565b91505092915050565b5f5f5f5f6060858703121561163457611633611462565b5b5f611641878288016114b3565b945050602085013567ffffffffffffffff81111561166257611661611466565b5b61166e878288016114d3565b93509350506040611681878288016114b3565b91505092959194509250565b61169681611494565b82525050565b5f6020820190506116af5f83018461168d565b92915050565b5f5ffd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6116ff826116b9565b810181811067ffffffffffffffff8211171561171e5761171d6116c9565b5b80604052505050565b5f611730611459565b905061173c82826116f6565b919050565b5f67ffffffffffffffff82111561175b5761175a6116c9565b5b611764826116b9565b9050602081019050919050565b828183375f83830152505050565b5f61179161178c84611741565b611727565b9050828152602081018484840111156117ad576117ac6116b5565b5b6117b8848285611771565b509392505050565b5f82601f8301126117d4576117d36114c7565b5b81356117e484826020860161177f565b91505092915050565b5f5f6040838503121561180357611802611462565b5b5f83013567ffffffffffffffff8111156118205761181f611466565b5b61182c858286016117c0565b925050602061183d858286016114b3565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f61187e82611494565b915061188983611494565b92508282019050808211156118a1576118a0611847565b5b92915050565b5f815190506118b58161149d565b92915050565b5f602082840312156118d0576118cf611462565b5b5f6118dd848285016118a7565b91505092915050565b5f6040820190506118f95f830185611431565b611906602083018461168d565b9392505050565b611916816115be565b8114611920575f5ffd5b50565b5f815190506119318161190d565b92915050565b5f6020828403121561194c5761194b611462565b5b5f61195984828501611923565b91505092915050565b5f6040820190506119755f83018561168d565b6119826020830184611431565b9392505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd5b600281106119c7576119c6611989565b5b50565b5f8190506119d7826119b6565b919050565b5f6119e6826119ca565b9050919050565b6119f6816119dc565b82525050565b5f608082019050611a0f5f83018761168d565b611a1c6020830186611431565b611a296040830185611431565b611a3660608301846119ed565b95945050505050565b5f81519050919050565b5f81905092915050565b8281835e5f83830152505050565b5f611a6b82611a3f565b611a758185611a49565b9350611a85818560208601611a53565b80840191505092915050565b5f611a9c8284611a61565b915081905092915050565b5f611ab182611494565b9150611abc83611494565b9250828203905081811115611ad457611ad3611847565b5b92915050565b5f606082019050611aed5f83018661168d565b611afa602083018561168d565b611b07604083018461168d565b949350505050565b5f82825260208201905092915050565b5f611b2a8385611b0f565b9350611b37838584611771565b611b40836116b9565b840190509392505050565b5f6040820190508181035f830152611b64818587611b1f565b9050611b73602083018461168d565b949350505050565b5f611b8582611a3f565b611b8f8185611b0f565b9350611b9f818560208601611a53565b611ba8816116b9565b840191505092915050565b5f819050919050565b5f61ffff82169050919050565b5f819050919050565b5f611bec611be7611be284611bb3565b611bc9565b611bbc565b9050919050565b611bfc81611bd2565b82525050565b5f60a082019050611c155f830188611431565b611c226020830187611431565b611c2f604083018661168d565b8181036060830152611c418185611b7b565b9050611c506080830184611bf3565b9695505050505050565b5f604082019050611c6d5f830185611431565b611c7a60208301846119ed565b939250505056fea264697066735822122064e50c1ebeffd40da6553f32cf406a9f35e6a35f55b28b0c755f2dd46496d8ae64736f6c634300081f0033

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
Loading...
Loading
Loading...
Loading

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
Loading...
Loading

A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.