frxETH Price: $1,791.46 (+2.46%)

Contract

0x59CFCD384746ec3035299D90782Be065e466800B

Overview

frxETH Balance | FXTL Balance

0 frxETH | 5,724,526,483 FXTL

frxETH Value

$0.00

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Set Operator69721992024-07-12 3:31:49285 days ago1720755109IN
0x59CFCD38...5e466800B
0 frxETH00.00001025
Set Operator37071482024-04-27 13:36:47360 days ago1714225007IN
0x59CFCD38...5e466800B
0 frxETH00.00001025
Set Operator36443092024-04-26 2:42:09362 days ago1714099329IN
0x59CFCD38...5e466800B
0 frxETH00.00001025
Set Operator30014792024-04-11 5:34:29377 days ago1712813669IN
0x59CFCD38...5e466800B
0 frxETH00.00001025
Set Operator18502082024-03-15 13:58:47403 days ago1710511127IN
0x59CFCD38...5e466800B
0 frxETH00.00001025

Parent Transaction Hash Block From To
View All Internal Transactions

Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
FraxtalVoterProxy

Compiler Version
v0.8.10+commit.fc410830

Optimization Enabled:
Yes with 200 runs

Other Settings:
london EvmVersion
File 1 of 2 : FraxtalVoterProxy.sol
// SPDX-License-Identifier: MIT
pragma solidity 0.8.10;

import "../interfaces/IDeposit.sol";

contract FraxtalVoterProxy {

    address public owner;
    address public pendingOwner;
    address public operator;
    
    event SetPendingOwner(address indexed _address);
    event OwnerChanged(address indexed _address);

    constructor(){
        owner = msg.sender;
    }

    function getName() external pure returns (string memory) {
        return "FraxtalVoterProxy";
    }

    //set next owner
    function setPendingOwner(address _po) external {
        require(msg.sender == owner, "!auth");
        pendingOwner = _po;
        emit SetPendingOwner(_po);
    }

    //claim ownership
    function acceptPendingOwner() external {
        require(msg.sender == pendingOwner, "!p_owner");

        owner = pendingOwner;
        pendingOwner = address(0);
        emit OwnerChanged(owner);
    }

    //set operator which has execute functions of this contract
    function setOperator(address _operator) external {
        require(msg.sender == owner, "!auth");
        require(operator == address(0) || IDeposit(operator).isShutdown() == true, "needs shutdown");
        
        //require isshutdown interface
        require(IDeposit(_operator).isShutdown() == false, "no shutdown interface");
        
        operator = _operator;
    }

    //Simplified version that only allows execute from the operator and no helper functions
    //depositor will need to send requests via the booster
    function execute(
        address _to,
        uint256 _value,
        bytes calldata _data
    ) external returns (bool, bytes memory) {
        require(msg.sender == operator,"!auth");

        (bool success, bytes memory result) = _to.call{value:_value}(_data);

        return (success, result);
    }

}

File 2 of 2 : IDeposit.sol
// SPDX-License-Identifier: MIT
pragma solidity 0.8.10;

interface IDeposit {
   function isShutdown() external view returns(bool);
   function balanceOf(address _account) external view returns(uint256);
   function totalSupply() external view returns(uint256);
   function poolInfo(uint256) external view returns(address,address,address,address,address, bool);
   function rewardClaimed(uint256,address,uint256) external;
   function withdrawTo(uint256,uint256,address) external;
   function claimRewards(uint256,address) external returns(bool);
   function rewardArbitrator() external returns(address);
   function setGaugeRedirect(uint256 _pid) external returns(bool);
   function owner() external returns(address);
}

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

Contract Security Audit

Contract ABI

API
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_address","type":"address"}],"name":"OwnerChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_address","type":"address"}],"name":"SetPendingOwner","type":"event"},{"inputs":[],"name":"acceptPendingOwner","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_value","type":"uint256"},{"internalType":"bytes","name":"_data","type":"bytes"}],"name":"execute","outputs":[{"internalType":"bool","name":"","type":"bool"},{"internalType":"bytes","name":"","type":"bytes"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getName","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"operator","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pendingOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_operator","type":"address"}],"name":"setOperator","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_po","type":"address"}],"name":"setPendingOwner","outputs":[],"stateMutability":"nonpayable","type":"function"}]

608060405234801561001057600080fd5b50600080546001600160a01b031916331790556106a9806100326000396000f3fe608060405234801561001057600080fd5b50600436106100885760003560e01c8063b3ab15fb1161005b578063b3ab15fb14610111578063b61d27f614610124578063c42069ec14610145578063e30c39781461015857600080fd5b806317d7de7c1461008d578063570ca735146100c95780638da5cb5b146100f457806399f4a38914610107575b600080fd5b60408051808201825260118152704672617874616c566f74657250726f787960781b602082015290516100c09190610527565b60405180910390f35b6002546100dc906001600160a01b031681565b6040516001600160a01b0390911681526020016100c0565b6000546100dc906001600160a01b031681565b61010f61016b565b005b61010f61011f36600461055d565b610206565b610137610132366004610578565b6103c6565b6040516100c09291906105ff565b61010f61015336600461055d565b610466565b6001546100dc906001600160a01b031681565b6001546001600160a01b031633146101b55760405162461bcd60e51b815260206004820152600860248201526710b82fb7bbb732b960c11b60448201526064015b60405180910390fd5b60018054600080546001600160a01b0383166001600160a01b031991821681178355921690925560405190917fa2ea9883a321a3e97b8266c2b078bfeec6d50c711ed71f874a90d500ae2eaf3691a2565b6000546001600160a01b031633146102305760405162461bcd60e51b81526004016101ac90610622565b6002546001600160a01b031615806102c05750600260009054906101000a90046001600160a01b03166001600160a01b031663bf86d6906040518163ffffffff1660e01b8152600401602060405180830381865afa158015610296573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102ba9190610641565b15156001145b6102fd5760405162461bcd60e51b815260206004820152600e60248201526d3732b2b2399039b43aba3237bbb760911b60448201526064016101ac565b806001600160a01b031663bf86d6906040518163ffffffff1660e01b8152600401602060405180830381865afa15801561033b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061035f9190610641565b156103a45760405162461bcd60e51b81526020600482015260156024820152746e6f2073687574646f776e20696e7465726661636560581b60448201526064016101ac565b600280546001600160a01b0319166001600160a01b0392909216919091179055565b6002546000906060906001600160a01b031633146103f65760405162461bcd60e51b81526004016101ac90610622565b600080876001600160a01b0316878787604051610414929190610663565b60006040518083038185875af1925050503d8060008114610451576040519150601f19603f3d011682016040523d82523d6000602084013e610456565b606091505b5090999098509650505050505050565b6000546001600160a01b031633146104905760405162461bcd60e51b81526004016101ac90610622565b600180546001600160a01b0319166001600160a01b0383169081179091556040517f5f4861af37461865f168c6e320428b3141f409a1763bd61b6359d38ad38ae74c90600090a250565b6000815180845260005b81811015610500576020818501810151868301820152016104e4565b81811115610512576000602083870101525b50601f01601f19169290920160200192915050565b60208152600061053a60208301846104da565b9392505050565b80356001600160a01b038116811461055857600080fd5b919050565b60006020828403121561056f57600080fd5b61053a82610541565b6000806000806060858703121561058e57600080fd5b61059785610541565b935060208501359250604085013567ffffffffffffffff808211156105bb57600080fd5b818701915087601f8301126105cf57600080fd5b8135818111156105de57600080fd5b8860208285010111156105f057600080fd5b95989497505060200194505050565b821515815260406020820152600061061a60408301846104da565b949350505050565b602080825260059082015264042c2eae8d60db1b604082015260600190565b60006020828403121561065357600080fd5b8151801515811461053a57600080fd5b818382376000910190815291905056fea2646970667358221220c93d854cac19cb058492967d45b91d155af80fb0c9e5373624169b761cd5b77c64736f6c634300080a0033

Deployed Bytecode

0x608060405234801561001057600080fd5b50600436106100885760003560e01c8063b3ab15fb1161005b578063b3ab15fb14610111578063b61d27f614610124578063c42069ec14610145578063e30c39781461015857600080fd5b806317d7de7c1461008d578063570ca735146100c95780638da5cb5b146100f457806399f4a38914610107575b600080fd5b60408051808201825260118152704672617874616c566f74657250726f787960781b602082015290516100c09190610527565b60405180910390f35b6002546100dc906001600160a01b031681565b6040516001600160a01b0390911681526020016100c0565b6000546100dc906001600160a01b031681565b61010f61016b565b005b61010f61011f36600461055d565b610206565b610137610132366004610578565b6103c6565b6040516100c09291906105ff565b61010f61015336600461055d565b610466565b6001546100dc906001600160a01b031681565b6001546001600160a01b031633146101b55760405162461bcd60e51b815260206004820152600860248201526710b82fb7bbb732b960c11b60448201526064015b60405180910390fd5b60018054600080546001600160a01b0383166001600160a01b031991821681178355921690925560405190917fa2ea9883a321a3e97b8266c2b078bfeec6d50c711ed71f874a90d500ae2eaf3691a2565b6000546001600160a01b031633146102305760405162461bcd60e51b81526004016101ac90610622565b6002546001600160a01b031615806102c05750600260009054906101000a90046001600160a01b03166001600160a01b031663bf86d6906040518163ffffffff1660e01b8152600401602060405180830381865afa158015610296573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102ba9190610641565b15156001145b6102fd5760405162461bcd60e51b815260206004820152600e60248201526d3732b2b2399039b43aba3237bbb760911b60448201526064016101ac565b806001600160a01b031663bf86d6906040518163ffffffff1660e01b8152600401602060405180830381865afa15801561033b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061035f9190610641565b156103a45760405162461bcd60e51b81526020600482015260156024820152746e6f2073687574646f776e20696e7465726661636560581b60448201526064016101ac565b600280546001600160a01b0319166001600160a01b0392909216919091179055565b6002546000906060906001600160a01b031633146103f65760405162461bcd60e51b81526004016101ac90610622565b600080876001600160a01b0316878787604051610414929190610663565b60006040518083038185875af1925050503d8060008114610451576040519150601f19603f3d011682016040523d82523d6000602084013e610456565b606091505b5090999098509650505050505050565b6000546001600160a01b031633146104905760405162461bcd60e51b81526004016101ac90610622565b600180546001600160a01b0319166001600160a01b0383169081179091556040517f5f4861af37461865f168c6e320428b3141f409a1763bd61b6359d38ad38ae74c90600090a250565b6000815180845260005b81811015610500576020818501810151868301820152016104e4565b81811115610512576000602083870101525b50601f01601f19169290920160200192915050565b60208152600061053a60208301846104da565b9392505050565b80356001600160a01b038116811461055857600080fd5b919050565b60006020828403121561056f57600080fd5b61053a82610541565b6000806000806060858703121561058e57600080fd5b61059785610541565b935060208501359250604085013567ffffffffffffffff808211156105bb57600080fd5b818701915087601f8301126105cf57600080fd5b8135818111156105de57600080fd5b8860208285010111156105f057600080fd5b95989497505060200194505050565b821515815260406020820152600061061a60408301846104da565b949350505050565b602080825260059082015264042c2eae8d60db1b604082015260600190565b60006020828403121561065357600080fd5b8151801515811461053a57600080fd5b818382376000910190815291905056fea2646970667358221220c93d854cac19cb058492967d45b91d155af80fb0c9e5373624169b761cd5b77c64736f6c634300080a0033

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

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

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
[ Download: CSV Export  ]

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.