Address Contract Verified
Address
0xde1E6A7ED0ad3F61D531a8a78E83CcDdbd6E0c49
ENS Name
votium.eth
Balance
0 ETH
Nonce
1
Code Size
3486 bytes
Creator
0x420FADED...4b6f at tx 0x6ba74999...8fba39
Indexed Transactions
0 (1 on-chain, 1.3% indexed)
Contract Bytecode
3486 bytes
0x608060405234801561001057600080fd5b506004361061007d5760003560e01c8063796a80761161005b578063796a8076146100da5780638da5cb5b146100f6578063b61d27f614610114578063f2fde38b146101455761007d565b80631626ba7e146100825780635ec2c7bf146100b2578063715018a6146100d0575b600080fd5b61009c600480360381019061009791906108b4565b610161565b6040516100a99190610ac6565b60405180910390f35b6100ba61023f565b6040516100c79190610ae1565b60405180910390f35b6100d8610265565b005b6100f460048036038101906100ef91906107e6565b61039f565b005b6100fe61045f565b60405161010b9190610a49565b60405180910390f35b61012e60048036038101906101299190610813565b610488565b60405161013c929190610a64565b60405180910390f35b61015f600480360381019061015a91906107e6565b61058b565b005b600060011515600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16635d3a89998686866040518463ffffffff1660e01b81526004016101c693929190610a94565b60206040518083038186803b1580156101de57600080fd5b505afa1580156101f2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102169190610887565b1515141561022d57631626ba7e60e01b9050610238565b63ffffffff60e01b90505b9392505050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b61026d610734565b73ffffffffffffffffffffffffffffffffffffffff1661028b61045f565b73ffffffffffffffffffffffffffffffffffffffff16146102e1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102d890610b1c565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6103a7610734565b73ffffffffffffffffffffffffffffffffffffffff166103c561045f565b73ffffffffffffffffffffffffffffffffffffffff161461041b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161041290610b1c565b60405180910390fd5b80600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60006060610494610734565b73ffffffffffffffffffffffffffffffffffffffff166104b261045f565b73ffffffffffffffffffffffffffffffffffffffff1614610508576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104ff90610b1c565b60405180910390fd5b6000808773ffffffffffffffffffffffffffffffffffffffff16878787604051610533929190610a30565b60006040518083038185875af1925050503d8060008114610570576040519150601f19603f3d011682016040523d82523d6000602084013e610575565b606091505b5091509150818193509350505094509492505050565b610593610734565b73ffffffffffffffffffffffffffffffffffffffff166105b161045f565b73ffffffffffffffffffffffffffffffffffffffff1614610607576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105fe90610b1c565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610677576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161066e90610afc565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600033905090565b60008135905061074b81610d0c565b92915050565b60008151905061076081610d23565b92915050565b60008135905061077581610d3a565b92915050565b60008083601f84011261079157610790610c6f565b5b8235905067ffffffffffffffff8111156107ae576107ad610c6a565b5b6020830191508360018202830111156107ca576107c9610c74565b5b9250929050565b6000813590506107e081610d51565b92915050565b6000602082840312156107fc576107fb610c7e565b5b600061080a8482850161073c565b91505092915050565b6000806000806060858703121561082d5761082c610c7e565b5b600061083b8782880161073c565b945050602061084c878288016107d1565b935050604085013567ffffffffffffffff81111561086d5761086c610c79565b5b6108798782880161077b565b925092505092959194509250565b60006020828403121561089d5761089c610c7e565b5b60006108ab84828501610751565b91505092915050565b6000806000604084860312156108cd576108cc610c7e565b5b60006108db86828701610766565b935050602084013567ffffffffffffffff8111156108fc576108fb610c79565b5b6109088682870161077b565b92509250509250925092565b61091d81610b74565b82525050565b61092c81610b86565b82525050565b61093b81610b92565b82525050565b61094a81610b9c565b82525050565b600061095c8385610b47565b9350610969838584610c28565b61097283610c83565b840190509392505050565b60006109898385610b58565b9350610996838584610c28565b82840190509392505050565b60006109ad82610b3c565b6109b78185610b47565b93506109c7818560208601610c37565b6109d081610c83565b840191505092915050565b6109e481610bf2565b82525050565b60006109f7602683610b63565b9150610a0282610c94565b604082019050919050565b6000610a1a602083610b63565b9150610a2582610ce3565b602082019050919050565b6000610a3d82848661097d565b91508190509392505050565b6000602082019050610a5e6000830184610914565b92915050565b6000604082019050610a796000830185610923565b8181036020830152610a8b81846109a2565b90509392505050565b6000604082019050610aa96000830186610932565b8181036020830152610abc818486610950565b9050949350505050565b6000602082019050610adb6000830184610941565b92915050565b6000602082019050610af660008301846109db565b92915050565b60006020820190508181036000830152610b15816109ea565b9050919050565b60006020820190508181036000830152610b3581610a0d565b9050919050565b600081519050919050565b600082825260208201905092915050565b600081905092915050565b600082825260208201905092915050565b6000610b7f82610bc8565b9050919050565b60008115159050919050565b6000819050919050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b6000610bfd82610c04565b9050919050565b6000610c0f82610c16565b9050919050565b6000610c2182610bc8565b9050919050565b82818337600083830152505050565b60005b83811015610c55578082015181840152602081019050610c3a565b83811115610c64576000848401525b50505050565b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b610d1581610b74565b8114610d2057600080fd5b50565b610d2c81610b86565b8114610d3757600080fd5b50565b610d4381610b92565b8114610d4e57600080fd5b50565b610d5a81610be8565b8114610d6557600080fd5b5056fea26469706673582212202272d091fad570d7ade6f2766568e17b105a011b5fadea9a914187ccce654fc064736f6c63430008070033
Verified Source Code Full Match
Compiler: v0.8.7+commit.e28d00a7
EVM: london
Optimization: No
Context.sol 24 lines
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;
/*
* @dev Provides information about the current execution context, including the
* sender of the transaction and its data. While these are generally available
* via msg.sender and msg.data, they should not be accessed in such a direct
* manner, since when dealing with meta-transactions the account sending and
* paying for execution may not be the actual sender (as far as an application
* is concerned).
*
* This contract is only required for intermediate, library-like contracts.
*/
abstract contract Context {
function _msgSender() internal view virtual returns (address) {
return msg.sender;
}
function _msgData() internal view virtual returns (bytes calldata) {
this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691
return msg.data;
}
}
VoteProxy.sol 32 lines
// SPDX-License-Identifier: UNLICENSED
// (c) Votium
pragma solidity ^0.8.7;
import "./access/Ownable.sol";
interface Iauction {
function isWinningSignature(bytes32 _hash, bytes memory _signature) external view returns (bool);
}
contract VoteProxy is Ownable {
Iauction public auctioneer;
function updateAuctioneer(address _auctioneer) public onlyOwner {
auctioneer = Iauction(_auctioneer);
}
function isValidSignature(bytes32 _hash, bytes calldata _signature) external view returns (bytes4) {
// Validate signatures
if (auctioneer.isWinningSignature(_hash, _signature) == true) {
return 0x1626ba7e;
} else {
return 0xffffffff;
}
}
function execute(address _to, uint256 _value, bytes calldata _data) external onlyOwner returns (bool, bytes memory) {
(bool success, bytes memory result) = _to.call{value:_value}(_data);
return (success, result);
}
}
Ownable.sol 60 lines
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;
import "../utils/Context.sol";
/**
* @dev Contract module which provides a basic access control mechanism, where
* there is an account (an owner) that can be granted exclusive access to
* specific functions.
*
* By default, the owner account will be the one that deploys the contract. This
* can later be changed with {transferOwnership}.
*
* This module is used through inheritance. It will make available the modifier
* `onlyOwner`, which can be applied to your functions to restrict their use to
* the owner.
*/
abstract contract Ownable is Context {
address private _owner = 0xe39b8617D571CEe5e75e1EC6B2bb40DdC8CF6Fa3;
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);
/**
* @dev Returns the address of the current owner.
*/
function owner() public view virtual returns (address) {
return _owner;
}
/**
* @dev Throws if called by any account other than the owner.
*/
modifier onlyOwner() {
require(owner() == _msgSender(), "Ownable: caller is not the owner");
_;
}
/**
* @dev Leaves the contract without owner. It will not be possible to call
* `onlyOwner` functions anymore. Can only be called by the current owner.
*
* NOTE: Renouncing ownership will leave the contract without an owner,
* thereby removing any functionality that is only available to the owner.
*/
function renounceOwnership() public virtual onlyOwner {
emit OwnershipTransferred(_owner, address(0));
_owner = address(0);
}
/**
* @dev Transfers ownership of the contract to a new account (`newOwner`).
* Can only be called by the current owner.
*/
function transferOwnership(address newOwner) public virtual onlyOwner {
require(newOwner != address(0), "Ownable: new owner is the zero address");
emit OwnershipTransferred(_owner, newOwner);
_owner = newOwner;
}
}
Read Contract
auctioneer 0x5ec2c7bf → address
isValidSignature 0x1626ba7e → bytes4
owner 0x8da5cb5b → address
Write Contract 4 functions
These functions modify contract state and require a wallet transaction to execute.
execute 0xb61d27f6
address _to
uint256 _value
bytes _data
returns: bool, bytes
renounceOwnership 0x715018a6
No parameters
transferOwnership 0xf2fde38b
address newOwner
updateAuctioneer 0x796a8076
address _auctioneer
Recent Transactions
This address has 1 on-chain transactions, but only 1.3% of the chain is indexed. Transactions will appear as indexing progresses. View on Etherscan →