FRAX Price: $0.86 (+7.18%)

Contract

0xEeB5A37aa5E5aF9b8cB9021f1d8D8eD12086fC32

Overview

FRAX Balance | FXTL Balance

0 FRAX | 23 FXTL

FRAX Value

$0.00

Token Holdings

More Info

Private Name Tags

Multichain Info

No addresses found
Age:90D
Reset Filter

Transaction Hash
Block
From
To

There are no matching entries

1 Token Transfer found.

Advanced mode:
Parent Transaction Hash Block From To
View All Internal Transactions

Cross-Chain Transactions
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
ReactorHelper

Compiler Version
v0.8.28+commit.7893614a

Optimization Enabled:
Yes with 10000 runs

Other Settings:
paris EvmVersion
// SPDX-License-Identifier: BUSL-1.1
pragma solidity 0.8.28;

import {IReactorHelper, ReactorWebRequest, ReactorParameter} from "./interfaces/IReactorHelper.sol";

contract ReactorHelper is IReactorHelper
{
    function decodePayloadAndStringParameters(bytes memory _payload) public pure returns (bytes memory, string[] memory, string[] memory)
    {
        return abi.decode(_payload, (bytes, string[], string[]));
    }
    
    function decodePayloadAndReactorParameters(bytes memory _payload) public pure returns (bytes memory, ReactorParameter[] memory)
    {
        (bytes memory payload, string[] memory parameterNames, string[] memory parameterValues) = decodePayloadAndStringParameters(_payload);
        require(parameterNames.length == parameterValues.length, "Parameter name and value lengths must match");
        
        ReactorParameter[] memory parameters = new ReactorParameter[](parameterNames.length);
        for (uint256 i = 0; i < parameterNames.length; i++ ) {
            require(bytes(parameterNames[i]).length > 0, "Empty parameter name");
            require(bytes(parameterValues[i]).length > 0, "Empty parameter value");
            
            parameters[i] = ReactorParameter({name: parameterNames[i], value: parameterValues[i]});
        }
        
        return (payload, parameters);
    }
    
    function decodeWebRequestAndStringParameters(bytes memory _payload) public pure returns (string memory, string memory, string memory, string[] memory, string[] memory)
    {
        (bytes memory payload, string[] memory parameterNames, string[] memory parameterValues) = decodePayloadAndStringParameters(_payload);
        (string memory method, string memory url, string memory body) = abi.decode(payload, (string, string, string));
        return (method, url, body, parameterNames, parameterValues);
    }
    
    function decodeWebRequestAndReactorParameters(bytes memory _payload) public pure returns (string memory, string memory, string memory, ReactorParameter[] memory)
    {
        (bytes memory payload, ReactorParameter[] memory parameters) = decodePayloadAndReactorParameters(_payload);
        (string memory method, string memory url, string memory body) = abi.decode(payload, (string, string, string));
        return (method, url, body, parameters);
    }
    
    function decodeWebRequestData(bytes memory _payload) public pure returns (string memory,string memory, string memory)
    {
        return abi.decode(_payload, (string, string, string));
    }
    
    function decodeGenerateRandomNumbersResponseData(bytes memory _payload) public pure returns (uint256[] memory)
    {
        return abi.decode(_payload, (uint256[]));
    }
    
    function decodeGenerateRandomNumbersRequestData(bytes memory _payload) public pure returns (uint256)
    {
        return abi.decode(_payload, (uint256));
    }
    
    function decodeWebResponseData(bytes memory _payload) public pure returns (uint256, string memory, string[] memory, string[] memory)
    {
        return abi.decode(_payload, (uint256, string, string[], string[]));
    }
    
    function encodePayloadAndStringParameters(bytes memory _payload, string[] memory _parameterNames, string[] memory _parameterValues) public pure returns(bytes memory)
    {
        require(_parameterNames.length == _parameterValues.length, "Parameter name and value lengths must match");

        for (uint256 i = 0; i < _parameterNames.length; i++ ) {
            require(bytes(_parameterNames[i]).length > 0, "Empty parameter name");
            require(bytes(_parameterValues[i]).length > 0, "Empty parameter value");
        }

        return abi.encode(_payload, _parameterNames, _parameterValues);
    }
    
    function encodePayloadAndReactorParameters(bytes memory _payload, ReactorParameter[] memory _parameters) public pure returns(bytes memory)
    {
        string[] memory parameterNames = new string[](_parameters.length);
        string[] memory parameterValues = new string[](_parameters.length);
        for (uint256 i = 0; i < parameterNames.length; i++ ) {
            parameterNames[i] = _parameters[i].name;
            parameterValues[i] = _parameters[i].value;
        }

        return encodePayloadAndStringParameters(_payload, parameterNames, parameterValues);
    }
    
    function encodeWebRequestAndStringParameters(string calldata _method, string calldata _url, string calldata _body, string[] memory _headerNames, string[] memory _headerValues, string[] memory _parameterNames, string[] memory _parameterValues) public pure returns(bytes memory)
    {
        require(_headerNames.length == _headerValues.length, "Header name and value lengths must match");
        require(_parameterNames.length == _parameterValues.length, "Parameter name and value lengths must match");
        
        uint256 parameterListLength = _headerNames.length + _parameterNames.length;
        string[] memory parameterNames = new string[](parameterListLength);
        string[] memory parameterValues = new string[](parameterListLength);
        
        for (uint256 i = 0; i < _headerNames.length; i++ ) {
            parameterNames[i] = string.concat("header.", _headerNames[i]);
            parameterValues[i] = _headerValues[i];
        }
        
        for (uint256 j = 0; j < _parameterNames.length; j++ ) {
            parameterNames[j + _headerNames.length] = _parameterNames[j];
            parameterValues[j + _headerNames.length] = _parameterValues[j];
        }
        
        return encodePayloadAndStringParameters(encodeWebRequestData(_method, _url, _body), parameterNames, parameterValues);
    }
    
    function encodeWebRequestAndReactorParameters(string calldata _method, string calldata _url, string calldata _body, ReactorParameter[] memory _headers, ReactorParameter[] memory _parameters) public pure returns(bytes memory)
    {
        string[] memory headerNames = new string[](_headers.length);
        string[] memory headerValues = new string[](_headers.length);
        for (uint256 i = 0; i < _headers.length; i++ ) {
            headerNames[i] = _headers[i].name;
            headerValues[i] = _headers[i].value;
        }
        
        string[] memory parameterNames = new string[](_parameters.length);
        string[] memory parameterValues = new string[](_parameters.length);
        for (uint256 j = 0; j < parameterNames.length; j++ ) {
            parameterNames[j] = _parameters[j].name;
            parameterValues[j] = _parameters[j].value;
        }
        
        return encodeWebRequestAndStringParameters(_method, _url, _body, headerNames, headerValues, parameterNames, parameterValues);
    }
    
    function encodeWebRequestFromReactorWebRequest(ReactorWebRequest calldata _request, ReactorParameter[] calldata _parameters) public pure returns(bytes memory)
    {
        return encodeWebRequestAndReactorParameters(_request.method, _request.url, _request.body, _request.headers, _parameters);
    }
    
    function encodeWebRequestData(string calldata _method, string calldata _url, string calldata _body) public pure returns(bytes memory)
    {
        require(bytes(_method).length > 0, "Empty method");
        require(bytes(_url).length > 0, "Empty url");
        
        return abi.encode(_method, _url, _body);
    }
    
    function encodeGenerateRandomNumbersRequestAndStringParameters(uint256 _number_of_randoms_to_create, string[] memory _parameterNames, string[] memory _parameterValues) public pure returns(bytes memory)
    {
        require(_parameterNames.length == _parameterValues.length, "Parameter name and value lengths must match");
        
        return encodePayloadAndStringParameters(encodeGenerateRandomNumbersRequestData(_number_of_randoms_to_create), _parameterNames, _parameterValues);
    }
    
    function encodeGenerateRandomNumbersRequestAndReactorParameters(uint256 _number_of_randoms_to_create, ReactorParameter[] memory _parameters) public pure returns(bytes memory)
    {
        string[] memory parameterNames = new string[](_parameters.length);
        string[] memory parameterValues = new string[](_parameters.length);
        for (uint256 i = 0; i < parameterNames.length; i++ ) {
            parameterNames[i] = _parameters[i].name;
            parameterValues[i] = _parameters[i].value;
        }
        
        return encodeGenerateRandomNumbersRequestAndStringParameters(_number_of_randoms_to_create, parameterNames, parameterValues);
    }
    
    function encodeGenerateRandomNumbersRequestData(uint256 _number_of_randoms_to_create) public pure returns(bytes memory)
    {
        require(_number_of_randoms_to_create > 0, "Number of randoms to create must be greater than zero");
        
        return abi.encode(_number_of_randoms_to_create);
    }
    
    receive() external payable {}
    fallback() external payable {}
}

// SPDX-License-Identifier: BUSL-1.1
pragma solidity 0.8.28;

struct ReactorParameter {
    string name;
    string value;
}

struct ReactorWebRequest {
    string method;
    string url;
    string body;
    ReactorParameter[] headers;
}

interface IReactorHelper {
    function decodeGenerateRandomNumbersRequestData(bytes memory _payload) external returns (uint256);
    function decodeGenerateRandomNumbersResponseData(bytes memory _payload) external returns (uint256[] memory);
    function decodePayloadAndReactorParameters(bytes memory _payload) external pure returns (bytes memory, ReactorParameter[] memory);
    function decodePayloadAndStringParameters(bytes memory _payload) external pure returns (bytes memory, string[] memory, string[] memory);
    function decodeWebRequestAndReactorParameters(bytes memory _payload) external pure returns (string memory, string memory, string memory, ReactorParameter[] memory);
    function decodeWebRequestAndStringParameters(bytes memory _payload) external pure returns (string memory, string memory, string memory, string[] memory, string[] memory);
    function decodeWebRequestData(bytes memory _payload) external pure returns (string memory,string memory, string memory);
    function decodeWebResponseData(bytes memory _payload) external pure returns (uint256, string memory, string[] memory, string[] memory);
    function encodeGenerateRandomNumbersRequestAndStringParameters(uint256 _number_of_randoms_to_create, string[] memory _parameterNames, string[] memory _parameterValues) external returns(bytes memory);
    function encodeGenerateRandomNumbersRequestData(uint256 _number_of_randoms_to_create) external returns(bytes memory);
    function encodePayloadAndReactorParameters(bytes memory _payload, ReactorParameter[] memory _parameters) external pure returns(bytes memory);
    function encodePayloadAndStringParameters(bytes memory _payload, string[] memory _parameterNames, string[] memory _parameterValues) external pure returns(bytes memory);
    function encodeWebRequestAndReactorParameters(string calldata _method, string calldata _url, string calldata _body, ReactorParameter[] memory _headers, ReactorParameter[] memory _parameters) external pure returns(bytes memory);
    function encodeWebRequestAndStringParameters(string calldata _method, string calldata _url, string calldata _body, string[] memory _headerNames, string[] memory _headerValues, string[] memory _parameterNames, string[] memory _parameterValues) external pure returns(bytes memory);
    function encodeWebRequestData(string calldata _method, string calldata _url, string calldata _body) external pure returns(bytes memory);
    function encodeWebRequestFromReactorWebRequest(ReactorWebRequest calldata _request, ReactorParameter[] calldata _parameters) external pure returns(bytes memory);
}

Settings
{
  "optimizer": {
    "enabled": true,
    "runs": 10000
  },
  "viaIR": true,
  "evmVersion": "paris",
  "outputSelection": {
    "*": {
      "*": [
        "evm.bytecode",
        "evm.deployedBytecode",
        "devdoc",
        "userdoc",
        "metadata",
        "abi"
      ]
    }
  }
}

Contract Security Audit

Contract ABI

API
[{"stateMutability":"payable","type":"fallback"},{"inputs":[{"internalType":"bytes","name":"_payload","type":"bytes"}],"name":"decodeGenerateRandomNumbersRequestData","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"bytes","name":"_payload","type":"bytes"}],"name":"decodeGenerateRandomNumbersResponseData","outputs":[{"internalType":"uint256[]","name":"","type":"uint256[]"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"bytes","name":"_payload","type":"bytes"}],"name":"decodePayloadAndReactorParameters","outputs":[{"internalType":"bytes","name":"","type":"bytes"},{"components":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"value","type":"string"}],"internalType":"struct ReactorParameter[]","name":"","type":"tuple[]"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"bytes","name":"_payload","type":"bytes"}],"name":"decodePayloadAndStringParameters","outputs":[{"internalType":"bytes","name":"","type":"bytes"},{"internalType":"string[]","name":"","type":"string[]"},{"internalType":"string[]","name":"","type":"string[]"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"bytes","name":"_payload","type":"bytes"}],"name":"decodeWebRequestAndReactorParameters","outputs":[{"internalType":"string","name":"","type":"string"},{"internalType":"string","name":"","type":"string"},{"internalType":"string","name":"","type":"string"},{"components":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"value","type":"string"}],"internalType":"struct ReactorParameter[]","name":"","type":"tuple[]"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"bytes","name":"_payload","type":"bytes"}],"name":"decodeWebRequestAndStringParameters","outputs":[{"internalType":"string","name":"","type":"string"},{"internalType":"string","name":"","type":"string"},{"internalType":"string","name":"","type":"string"},{"internalType":"string[]","name":"","type":"string[]"},{"internalType":"string[]","name":"","type":"string[]"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"bytes","name":"_payload","type":"bytes"}],"name":"decodeWebRequestData","outputs":[{"internalType":"string","name":"","type":"string"},{"internalType":"string","name":"","type":"string"},{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"bytes","name":"_payload","type":"bytes"}],"name":"decodeWebResponseData","outputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"string","name":"","type":"string"},{"internalType":"string[]","name":"","type":"string[]"},{"internalType":"string[]","name":"","type":"string[]"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"uint256","name":"_number_of_randoms_to_create","type":"uint256"},{"components":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"value","type":"string"}],"internalType":"struct ReactorParameter[]","name":"_parameters","type":"tuple[]"}],"name":"encodeGenerateRandomNumbersRequestAndReactorParameters","outputs":[{"internalType":"bytes","name":"","type":"bytes"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"uint256","name":"_number_of_randoms_to_create","type":"uint256"},{"internalType":"string[]","name":"_parameterNames","type":"string[]"},{"internalType":"string[]","name":"_parameterValues","type":"string[]"}],"name":"encodeGenerateRandomNumbersRequestAndStringParameters","outputs":[{"internalType":"bytes","name":"","type":"bytes"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"uint256","name":"_number_of_randoms_to_create","type":"uint256"}],"name":"encodeGenerateRandomNumbersRequestData","outputs":[{"internalType":"bytes","name":"","type":"bytes"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"bytes","name":"_payload","type":"bytes"},{"components":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"value","type":"string"}],"internalType":"struct ReactorParameter[]","name":"_parameters","type":"tuple[]"}],"name":"encodePayloadAndReactorParameters","outputs":[{"internalType":"bytes","name":"","type":"bytes"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"bytes","name":"_payload","type":"bytes"},{"internalType":"string[]","name":"_parameterNames","type":"string[]"},{"internalType":"string[]","name":"_parameterValues","type":"string[]"}],"name":"encodePayloadAndStringParameters","outputs":[{"internalType":"bytes","name":"","type":"bytes"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"string","name":"_method","type":"string"},{"internalType":"string","name":"_url","type":"string"},{"internalType":"string","name":"_body","type":"string"},{"components":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"value","type":"string"}],"internalType":"struct ReactorParameter[]","name":"_headers","type":"tuple[]"},{"components":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"value","type":"string"}],"internalType":"struct ReactorParameter[]","name":"_parameters","type":"tuple[]"}],"name":"encodeWebRequestAndReactorParameters","outputs":[{"internalType":"bytes","name":"","type":"bytes"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"string","name":"_method","type":"string"},{"internalType":"string","name":"_url","type":"string"},{"internalType":"string","name":"_body","type":"string"},{"internalType":"string[]","name":"_headerNames","type":"string[]"},{"internalType":"string[]","name":"_headerValues","type":"string[]"},{"internalType":"string[]","name":"_parameterNames","type":"string[]"},{"internalType":"string[]","name":"_parameterValues","type":"string[]"}],"name":"encodeWebRequestAndStringParameters","outputs":[{"internalType":"bytes","name":"","type":"bytes"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"string","name":"_method","type":"string"},{"internalType":"string","name":"_url","type":"string"},{"internalType":"string","name":"_body","type":"string"}],"name":"encodeWebRequestData","outputs":[{"internalType":"bytes","name":"","type":"bytes"}],"stateMutability":"pure","type":"function"},{"inputs":[{"components":[{"internalType":"string","name":"method","type":"string"},{"internalType":"string","name":"url","type":"string"},{"internalType":"string","name":"body","type":"string"},{"components":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"value","type":"string"}],"internalType":"struct ReactorParameter[]","name":"headers","type":"tuple[]"}],"internalType":"struct ReactorWebRequest","name":"_request","type":"tuple"},{"components":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"value","type":"string"}],"internalType":"struct ReactorParameter[]","name":"_parameters","type":"tuple[]"}],"name":"encodeWebRequestFromReactorWebRequest","outputs":[{"internalType":"bytes","name":"","type":"bytes"}],"stateMutability":"pure","type":"function"},{"stateMutability":"payable","type":"receive"}]

608080604052346015576119e4908161001b8239f35b600080fdfe60806040526004361015610010575b005b60003560e01c806319ebd82f14610b205780632261ccc914610a22578063270fc5bc146109c35780633298ea16146108f25780633c0c80f3146108ac5780634132c8d31461088d57806346a93d731461082757806352f6e1bf146107095780636318c692146106bd578063635b6e3a146105b75780637366c130146104c45780639bad9cfb146103ff578063a956ffc014610365578063b7bdf97b146102e5578063cbfffacf14610237578063eaf799f7146101b35763f00bb3b80361000e57346101ae5760406003193601126101ae5760243567ffffffffffffffff81116101ae57610101903690600401610e04565b61010b81516112ab565b61011582516112ab565b60005b8251811015610171578061012e600192866110a3565b515161013a82866110a3565b5261014581856110a3565b50602061015282876110a3565b51015161015f82856110a3565b5261016a81846110a3565b5001610118565b6101aa61019683856101868151835114611018565b610191600435611407565b611811565b604051918291602083526020830190610c91565b0390f35b600080fd5b346101ae5760606003193601126101ae5760043567ffffffffffffffff81116101ae576101e4903690600401610f31565b60243567ffffffffffffffff81116101ae57610204903690600401610f31565b9190926044359267ffffffffffffffff84116101ae576101aa9461022f610196953690600401610f31565b949093611898565b346101ae5760206003193601126101ae5760043567ffffffffffffffff81116101ae576102bb6101aa6102c96102d761029661028261027d6102ad973690600401610c29565b611373565b949160208082959395518301019101610fb0565b919790604051998a9960a08b5260a08b0190610c91565b9089820360208b0152610c91565b908782036040890152610c91565b908582036060870152610e22565b908382036080850152610e22565b346101ae5760606003193601126101ae5760043567ffffffffffffffff81116101ae57610316903690600401610c29565b60243567ffffffffffffffff81116101ae57610336903690600401610eb2565b906044359067ffffffffffffffff82116101ae576101aa9261035f610196933690600401610eb2565b91611811565b346101ae5760206003193601126101ae5760043567ffffffffffffffff81116101ae576103e36101aa6103be6103f16103ad6103a86103d5963690600401610c29565b6111b0565b929060208082518301019101610fb0565b919590604051978897608089526080890190610c91565b908782036020890152610c91565b908582036040870152610c91565b908382036060850152610cb6565b346101ae5760a06003193601126101ae5760043567ffffffffffffffff81116101ae57610430903690600401610f31565b9060243567ffffffffffffffff81116101ae57610451903690600401610f31565b60449291923567ffffffffffffffff81116101ae57610474903690600401610f31565b9060643567ffffffffffffffff81116101ae57610495903690600401610e04565b926084359567ffffffffffffffff87116101ae576101aa976104be610196983690600401610e04565b9661172c565b346101ae5760206003193601126101ae5760043567ffffffffffffffff81116101ae576104f5903690600401610c29565b80518101608082602083019203126101ae57602082015190604083015167ffffffffffffffff81116101ae5781602061053092860101610f96565b92606081015167ffffffffffffffff81116101ae57826020610554928401016112f4565b90608081015167ffffffffffffffff81116101ae576101aa93602061057e926105a99401016112f4565b9161059b6040519687968752608060208801526080870190610c91565b908582036040870152610e22565b908382036060850152610e22565b346101ae5760e06003193601126101ae5760043567ffffffffffffffff81116101ae576105e8903690600401610f31565b9060243567ffffffffffffffff81116101ae57610609903690600401610f31565b60449291923567ffffffffffffffff81116101ae5761062c903690600401610f31565b60643567ffffffffffffffff81116101ae5761064c903690600401610eb2565b9060843567ffffffffffffffff81116101ae5761066d903690600401610eb2565b9260a43567ffffffffffffffff81116101ae5761068e903690600401610eb2565b9460c4359767ffffffffffffffff89116101ae576101aa996106b76101969a3690600401610eb2565b98611536565b346101ae5760206003193601126101ae5760043567ffffffffffffffff81116101ae576106ee903690600401610c29565b6020818051810103126101ae57602080910151604051908152f35b346101ae5760406003193601126101ae5760043567ffffffffffffffff81116101ae5780600401908036039160806003198401126101ae576024359267ffffffffffffffff84116101ae57366023850112156101ae5783600401359067ffffffffffffffff82116101ae573660248360051b870101116101ae576107ae9361079184806114a9565b9590946107a160248401826114a9565b92909160448501906114a9565b9490937fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdd606482013592018212156101ae57019660048801359767ffffffffffffffff89116101ae576024018860051b360381136101ae576101aa9961081c6104be926101969b3691610d47565b976024369201610d47565b346101ae5760606003193601126101ae5760243567ffffffffffffffff81116101ae57610858903690600401610eb2565b60443567ffffffffffffffff81116101ae576101aa9161087f610196923690600401610eb2565b906101868151835114611018565b346101ae5760206003193601126101ae576101aa610196600435611407565b346101ae5760206003193601126101ae5760043567ffffffffffffffff81116101ae576108e361027d6101aa923690600401610c29565b60409391935193849384610e7b565b346101ae5760406003193601126101ae5760043567ffffffffffffffff81116101ae57610923903690600401610c29565b60243567ffffffffffffffff81116101ae57610943903690600401610e04565b9061094e82516112ab565b61095883516112ab565b9060005b81518110156109b55780610972600192876110a3565b515161097e82856110a3565b5261098981846110a3565b50602061099682886110a3565b5101516109a382866110a3565b526109ae81856110a3565b500161095c565b6101aa610196848487611811565b346101ae5760206003193601126101ae5760043567ffffffffffffffff81116101ae576101aa6109fd6103a8610a14933690600401610c29565b604092919251938493604085526040850190610c91565b908382036020850152610cb6565b346101ae5760206003193601126101ae5760043567ffffffffffffffff81116101ae57610a53903690600401610c29565b80518101906020818184019303126101ae5760208101519067ffffffffffffffff82116101ae57019080603f830112156101ae57602082015190610a9682610d2f565b92610aa46040519485610bea565b8284526020840190602080839560051b830101019283116101ae57604001905b828210610b105783856040519182916020830190602084525180915260408301919060005b818110610af7575050500390f35b8251845285945060209384019390920191600101610ae9565b8151815260209182019101610ac4565b346101ae5760206003193601126101ae5760043567ffffffffffffffff81116101ae57610b916101aa610b6c610b5d610b83943690600401610c29565b60208082518301019101610fb0565b919390604051958695606087526060870190610c91565b908582036020870152610c91565b908382036040850152610c91565b6040810190811067ffffffffffffffff821117610bbb57604052565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b90601f601f19910116810190811067ffffffffffffffff821117610bbb57604052565b67ffffffffffffffff8111610bbb57601f01601f191660200190565b81601f820112156101ae57602081359101610c4382610c0d565b92610c516040519485610bea565b828452828201116101ae5781600092602092838601378301015290565b60005b838110610c815750506000910152565b8181015183820152602001610c71565b90601f19601f602093610caf81518092818752878088019101610c6e565b0116010190565b9080602083519182815201916020808360051b8301019401926000915b838310610ce257505050505090565b9091929394602080610d2083601f19866001960301875289519083610d108351604084526040840190610c91565b9201519084818403910152610c91565b97019301930191939290610cd3565b67ffffffffffffffff8111610bbb5760051b60200190565b92919092610d5484610d2f565b93610d626040519586610bea565b602085828152019060051b8201918383116101ae5780915b838310610d88575050505050565b823567ffffffffffffffff81116101ae5782016040818703126101ae5760405191610db283610b9f565b813567ffffffffffffffff81116101ae5787610dcf918401610c29565b835260208201359267ffffffffffffffff84116101ae57610df588602095869501610c29565b83820152815201920191610d7a565b9080601f830112156101ae57816020610e1f93359101610d47565b90565b9080602083519182815201916020808360051b8301019401926000915b838310610e4e57505050505090565b9091929394602080610e6c83601f1986600196030187528951610c91565b97019301930191939290610e3f565b91610ea490610e96610e1f9593606086526060860190610c91565b908482036020860152610e22565b916040818403910152610e22565b9080601f830112156101ae578135610ec981610d2f565b92610ed76040519485610bea565b81845260208085019260051b820101918383116101ae5760208201905b838210610f0357505050505090565b813567ffffffffffffffff81116101ae57602091610f2687848094880101610c29565b815201910190610ef4565b9181601f840112156101ae5782359167ffffffffffffffff83116101ae57602083818601950101116101ae57565b90929192610f6c81610c0d565b91610f7a6040519384610bea565b8294828452828201116101ae576020610f94930190610c6e565b565b9080601f830112156101ae578151610e1f92602001610f5f565b916060838303126101ae57825167ffffffffffffffff81116101ae5782610fd8918501610f96565b92602081015167ffffffffffffffff81116101ae5783610ff9918301610f96565b92604082015167ffffffffffffffff81116101ae57610e1f9201610f96565b1561101f57565b60846040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f506172616d65746572206e616d6520616e642076616c7565206c656e6774687360448201527f206d757374206d617463680000000000000000000000000000000000000000006064820152fd5b80518210156110b75760209160051b010190565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b156110ed57565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f456d70747920706172616d65746572206e616d650000000000000000000000006044820152fd5b1561115257565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f456d70747920706172616d657465722076616c756500000000000000000000006044820152fd5b6111b990611373565b906111c78151835114611018565b805193601f196111ef6111d987610d2f565b966111e76040519889610bea565b808852610d2f565b0160005b81811061128657505060005b825181101561127d5780611221611218600193866110a3565b515115156110e6565b61123761122e82876110a3565b5151151561114b565b61124181856110a3565b5161124c82876110a3565b516040519161125a83610b9f565b8252602082015261126b82896110a3565b5261127681886110a3565b50016111ff565b50929150509190565b60209060405161129581610b9f565b6060815260608382015282828a010152016111f3565b906112b582610d2f565b6112c26040519182610bea565b828152601f196112d28294610d2f565b019060005b8281106112e357505050565b8060606020809385010152016112d7565b9080601f830112156101ae57815161130b81610d2f565b926113196040519485610bea565b81845260208085019260051b820101918383116101ae5760208201905b83821061134557505050505090565b815167ffffffffffffffff81116101ae5760209161136887848094880101610f96565b815201910190611336565b8051810191606082602085019403126101ae57602082015167ffffffffffffffff81116101ae57820183603f820112156101ae578381604060206113ba9401519101610f5f565b91604081015167ffffffffffffffff81116101ae578460206113de928401016112f4565b9360608201519167ffffffffffffffff83116101ae5761140192016020016112f4565b91929190565b80156114255760405190602082015260208152610e1f604082610bea565b60846040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603560248201527f4e756d626572206f662072616e646f6d7320746f20637265617465206d75737460448201527f2062652067726561746572207468616e207a65726f00000000000000000000006064820152fd5b9035907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1813603018212156101ae570180359067ffffffffffffffff82116101ae576020019181360383136101ae57565b9190820180921161150757565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b949098939991979295998a518851036116a8576115568451865114611018565b6115638b518551906114fa565b96611576611570896112ab565b986112ab565b9960005b8d805182101561161f5790611618818e61160d8f8f906116078580936115a28260019c6110a3565b516115f7602760405180937f6865616465722e0000000000000000000000000000000000000000000000000060208301526115e68151809260208686019101610c6e565b81010301601f198101835282610bea565b61160183836110a3565b526110a3565b506110a3565b5161160183836110a3565b500161157a565b505091939598509193959960005b875181101561169057806116898c8f61168261167b8f8f978f9161160760019a61165a84611672966110a3565b51906116678951866114fa565b9161160183836110a3565b519251866114fa565b80936110a3565b528d6110a3565b500161162d565b509193955091939950610191959650610e1f98611898565b60846040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602860248201527f486561646572206e616d6520616e642076616c7565206c656e67746873206d7560448201527f7374206d617463680000000000000000000000000000000000000000000000006064820152fd5b9296939791909161173d87516112ab565b9561174888516112ab565b9960005b8951811015611795578061178e818e60206117818f968f976116078260019a61177582856110a3565b515161160183836110a3565b51015161160183836110a3565b500161174c565b5091959994989092969397506117ab8a516112ab565b966117b68b516112ab565b9860005b89518110156117fe57808b6117ec8f9360206117e38f876116078580936117758260019d6110a3565b510151926110a3565b526117f7818d6110a3565b50016117ba565b50909192939495969a50610e1f99611536565b9190926118218451835114611018565b60005b8451811015611850578061183d611218600193886110a3565b61184a61122e82866110a3565b01611824565b509291611869610e1f9260405194859360208501610e7b565b03601f198101835282610bea565b601f8260209493601f19938186528686013760008582860101520116010190565b949390929383156119505784156118f2576118e061186993610e1f966118ce604051998a98606060208b015260808a0191611877565b91601f19888403016040890152611877565b91601f19858403016060860152611877565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600960248201527f456d7074792075726c00000000000000000000000000000000000000000000006044820152fd5b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f456d707479206d6574686f6400000000000000000000000000000000000000006044820152fdfea26469706673582212200c79e9762be43effe52fc317490a17a973f3f6490a311536b962ab1a5c34c96364736f6c634300081c0033

Deployed Bytecode

0x60806040526004361015610010575b005b60003560e01c806319ebd82f14610b205780632261ccc914610a22578063270fc5bc146109c35780633298ea16146108f25780633c0c80f3146108ac5780634132c8d31461088d57806346a93d731461082757806352f6e1bf146107095780636318c692146106bd578063635b6e3a146105b75780637366c130146104c45780639bad9cfb146103ff578063a956ffc014610365578063b7bdf97b146102e5578063cbfffacf14610237578063eaf799f7146101b35763f00bb3b80361000e57346101ae5760406003193601126101ae5760243567ffffffffffffffff81116101ae57610101903690600401610e04565b61010b81516112ab565b61011582516112ab565b60005b8251811015610171578061012e600192866110a3565b515161013a82866110a3565b5261014581856110a3565b50602061015282876110a3565b51015161015f82856110a3565b5261016a81846110a3565b5001610118565b6101aa61019683856101868151835114611018565b610191600435611407565b611811565b604051918291602083526020830190610c91565b0390f35b600080fd5b346101ae5760606003193601126101ae5760043567ffffffffffffffff81116101ae576101e4903690600401610f31565b60243567ffffffffffffffff81116101ae57610204903690600401610f31565b9190926044359267ffffffffffffffff84116101ae576101aa9461022f610196953690600401610f31565b949093611898565b346101ae5760206003193601126101ae5760043567ffffffffffffffff81116101ae576102bb6101aa6102c96102d761029661028261027d6102ad973690600401610c29565b611373565b949160208082959395518301019101610fb0565b919790604051998a9960a08b5260a08b0190610c91565b9089820360208b0152610c91565b908782036040890152610c91565b908582036060870152610e22565b908382036080850152610e22565b346101ae5760606003193601126101ae5760043567ffffffffffffffff81116101ae57610316903690600401610c29565b60243567ffffffffffffffff81116101ae57610336903690600401610eb2565b906044359067ffffffffffffffff82116101ae576101aa9261035f610196933690600401610eb2565b91611811565b346101ae5760206003193601126101ae5760043567ffffffffffffffff81116101ae576103e36101aa6103be6103f16103ad6103a86103d5963690600401610c29565b6111b0565b929060208082518301019101610fb0565b919590604051978897608089526080890190610c91565b908782036020890152610c91565b908582036040870152610c91565b908382036060850152610cb6565b346101ae5760a06003193601126101ae5760043567ffffffffffffffff81116101ae57610430903690600401610f31565b9060243567ffffffffffffffff81116101ae57610451903690600401610f31565b60449291923567ffffffffffffffff81116101ae57610474903690600401610f31565b9060643567ffffffffffffffff81116101ae57610495903690600401610e04565b926084359567ffffffffffffffff87116101ae576101aa976104be610196983690600401610e04565b9661172c565b346101ae5760206003193601126101ae5760043567ffffffffffffffff81116101ae576104f5903690600401610c29565b80518101608082602083019203126101ae57602082015190604083015167ffffffffffffffff81116101ae5781602061053092860101610f96565b92606081015167ffffffffffffffff81116101ae57826020610554928401016112f4565b90608081015167ffffffffffffffff81116101ae576101aa93602061057e926105a99401016112f4565b9161059b6040519687968752608060208801526080870190610c91565b908582036040870152610e22565b908382036060850152610e22565b346101ae5760e06003193601126101ae5760043567ffffffffffffffff81116101ae576105e8903690600401610f31565b9060243567ffffffffffffffff81116101ae57610609903690600401610f31565b60449291923567ffffffffffffffff81116101ae5761062c903690600401610f31565b60643567ffffffffffffffff81116101ae5761064c903690600401610eb2565b9060843567ffffffffffffffff81116101ae5761066d903690600401610eb2565b9260a43567ffffffffffffffff81116101ae5761068e903690600401610eb2565b9460c4359767ffffffffffffffff89116101ae576101aa996106b76101969a3690600401610eb2565b98611536565b346101ae5760206003193601126101ae5760043567ffffffffffffffff81116101ae576106ee903690600401610c29565b6020818051810103126101ae57602080910151604051908152f35b346101ae5760406003193601126101ae5760043567ffffffffffffffff81116101ae5780600401908036039160806003198401126101ae576024359267ffffffffffffffff84116101ae57366023850112156101ae5783600401359067ffffffffffffffff82116101ae573660248360051b870101116101ae576107ae9361079184806114a9565b9590946107a160248401826114a9565b92909160448501906114a9565b9490937fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdd606482013592018212156101ae57019660048801359767ffffffffffffffff89116101ae576024018860051b360381136101ae576101aa9961081c6104be926101969b3691610d47565b976024369201610d47565b346101ae5760606003193601126101ae5760243567ffffffffffffffff81116101ae57610858903690600401610eb2565b60443567ffffffffffffffff81116101ae576101aa9161087f610196923690600401610eb2565b906101868151835114611018565b346101ae5760206003193601126101ae576101aa610196600435611407565b346101ae5760206003193601126101ae5760043567ffffffffffffffff81116101ae576108e361027d6101aa923690600401610c29565b60409391935193849384610e7b565b346101ae5760406003193601126101ae5760043567ffffffffffffffff81116101ae57610923903690600401610c29565b60243567ffffffffffffffff81116101ae57610943903690600401610e04565b9061094e82516112ab565b61095883516112ab565b9060005b81518110156109b55780610972600192876110a3565b515161097e82856110a3565b5261098981846110a3565b50602061099682886110a3565b5101516109a382866110a3565b526109ae81856110a3565b500161095c565b6101aa610196848487611811565b346101ae5760206003193601126101ae5760043567ffffffffffffffff81116101ae576101aa6109fd6103a8610a14933690600401610c29565b604092919251938493604085526040850190610c91565b908382036020850152610cb6565b346101ae5760206003193601126101ae5760043567ffffffffffffffff81116101ae57610a53903690600401610c29565b80518101906020818184019303126101ae5760208101519067ffffffffffffffff82116101ae57019080603f830112156101ae57602082015190610a9682610d2f565b92610aa46040519485610bea565b8284526020840190602080839560051b830101019283116101ae57604001905b828210610b105783856040519182916020830190602084525180915260408301919060005b818110610af7575050500390f35b8251845285945060209384019390920191600101610ae9565b8151815260209182019101610ac4565b346101ae5760206003193601126101ae5760043567ffffffffffffffff81116101ae57610b916101aa610b6c610b5d610b83943690600401610c29565b60208082518301019101610fb0565b919390604051958695606087526060870190610c91565b908582036020870152610c91565b908382036040850152610c91565b6040810190811067ffffffffffffffff821117610bbb57604052565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b90601f601f19910116810190811067ffffffffffffffff821117610bbb57604052565b67ffffffffffffffff8111610bbb57601f01601f191660200190565b81601f820112156101ae57602081359101610c4382610c0d565b92610c516040519485610bea565b828452828201116101ae5781600092602092838601378301015290565b60005b838110610c815750506000910152565b8181015183820152602001610c71565b90601f19601f602093610caf81518092818752878088019101610c6e565b0116010190565b9080602083519182815201916020808360051b8301019401926000915b838310610ce257505050505090565b9091929394602080610d2083601f19866001960301875289519083610d108351604084526040840190610c91565b9201519084818403910152610c91565b97019301930191939290610cd3565b67ffffffffffffffff8111610bbb5760051b60200190565b92919092610d5484610d2f565b93610d626040519586610bea565b602085828152019060051b8201918383116101ae5780915b838310610d88575050505050565b823567ffffffffffffffff81116101ae5782016040818703126101ae5760405191610db283610b9f565b813567ffffffffffffffff81116101ae5787610dcf918401610c29565b835260208201359267ffffffffffffffff84116101ae57610df588602095869501610c29565b83820152815201920191610d7a565b9080601f830112156101ae57816020610e1f93359101610d47565b90565b9080602083519182815201916020808360051b8301019401926000915b838310610e4e57505050505090565b9091929394602080610e6c83601f1986600196030187528951610c91565b97019301930191939290610e3f565b91610ea490610e96610e1f9593606086526060860190610c91565b908482036020860152610e22565b916040818403910152610e22565b9080601f830112156101ae578135610ec981610d2f565b92610ed76040519485610bea565b81845260208085019260051b820101918383116101ae5760208201905b838210610f0357505050505090565b813567ffffffffffffffff81116101ae57602091610f2687848094880101610c29565b815201910190610ef4565b9181601f840112156101ae5782359167ffffffffffffffff83116101ae57602083818601950101116101ae57565b90929192610f6c81610c0d565b91610f7a6040519384610bea565b8294828452828201116101ae576020610f94930190610c6e565b565b9080601f830112156101ae578151610e1f92602001610f5f565b916060838303126101ae57825167ffffffffffffffff81116101ae5782610fd8918501610f96565b92602081015167ffffffffffffffff81116101ae5783610ff9918301610f96565b92604082015167ffffffffffffffff81116101ae57610e1f9201610f96565b1561101f57565b60846040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f506172616d65746572206e616d6520616e642076616c7565206c656e6774687360448201527f206d757374206d617463680000000000000000000000000000000000000000006064820152fd5b80518210156110b75760209160051b010190565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b156110ed57565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f456d70747920706172616d65746572206e616d650000000000000000000000006044820152fd5b1561115257565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f456d70747920706172616d657465722076616c756500000000000000000000006044820152fd5b6111b990611373565b906111c78151835114611018565b805193601f196111ef6111d987610d2f565b966111e76040519889610bea565b808852610d2f565b0160005b81811061128657505060005b825181101561127d5780611221611218600193866110a3565b515115156110e6565b61123761122e82876110a3565b5151151561114b565b61124181856110a3565b5161124c82876110a3565b516040519161125a83610b9f565b8252602082015261126b82896110a3565b5261127681886110a3565b50016111ff565b50929150509190565b60209060405161129581610b9f565b6060815260608382015282828a010152016111f3565b906112b582610d2f565b6112c26040519182610bea565b828152601f196112d28294610d2f565b019060005b8281106112e357505050565b8060606020809385010152016112d7565b9080601f830112156101ae57815161130b81610d2f565b926113196040519485610bea565b81845260208085019260051b820101918383116101ae5760208201905b83821061134557505050505090565b815167ffffffffffffffff81116101ae5760209161136887848094880101610f96565b815201910190611336565b8051810191606082602085019403126101ae57602082015167ffffffffffffffff81116101ae57820183603f820112156101ae578381604060206113ba9401519101610f5f565b91604081015167ffffffffffffffff81116101ae578460206113de928401016112f4565b9360608201519167ffffffffffffffff83116101ae5761140192016020016112f4565b91929190565b80156114255760405190602082015260208152610e1f604082610bea565b60846040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603560248201527f4e756d626572206f662072616e646f6d7320746f20637265617465206d75737460448201527f2062652067726561746572207468616e207a65726f00000000000000000000006064820152fd5b9035907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1813603018212156101ae570180359067ffffffffffffffff82116101ae576020019181360383136101ae57565b9190820180921161150757565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b949098939991979295998a518851036116a8576115568451865114611018565b6115638b518551906114fa565b96611576611570896112ab565b986112ab565b9960005b8d805182101561161f5790611618818e61160d8f8f906116078580936115a28260019c6110a3565b516115f7602760405180937f6865616465722e0000000000000000000000000000000000000000000000000060208301526115e68151809260208686019101610c6e565b81010301601f198101835282610bea565b61160183836110a3565b526110a3565b506110a3565b5161160183836110a3565b500161157a565b505091939598509193959960005b875181101561169057806116898c8f61168261167b8f8f978f9161160760019a61165a84611672966110a3565b51906116678951866114fa565b9161160183836110a3565b519251866114fa565b80936110a3565b528d6110a3565b500161162d565b509193955091939950610191959650610e1f98611898565b60846040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602860248201527f486561646572206e616d6520616e642076616c7565206c656e67746873206d7560448201527f7374206d617463680000000000000000000000000000000000000000000000006064820152fd5b9296939791909161173d87516112ab565b9561174888516112ab565b9960005b8951811015611795578061178e818e60206117818f968f976116078260019a61177582856110a3565b515161160183836110a3565b51015161160183836110a3565b500161174c565b5091959994989092969397506117ab8a516112ab565b966117b68b516112ab565b9860005b89518110156117fe57808b6117ec8f9360206117e38f876116078580936117758260019d6110a3565b510151926110a3565b526117f7818d6110a3565b50016117ba565b50909192939495969a50610e1f99611536565b9190926118218451835114611018565b60005b8451811015611850578061183d611218600193886110a3565b61184a61122e82866110a3565b01611824565b509291611869610e1f9260405194859360208501610e7b565b03601f198101835282610bea565b601f8260209493601f19938186528686013760008582860101520116010190565b949390929383156119505784156118f2576118e061186993610e1f966118ce604051998a98606060208b015260808a0191611877565b91601f19888403016040890152611877565b91601f19858403016060860152611877565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600960248201527f456d7074792075726c00000000000000000000000000000000000000000000006044820152fd5b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f456d707479206d6574686f6400000000000000000000000000000000000000006044820152fdfea26469706673582212200c79e9762be43effe52fc317490a17a973f3f6490a311536b962ab1a5c34c96364736f6c634300081c0033

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.