More Info
Private Name Tags
ContractCreator
Multichain Info
No addresses found
Latest 25 from a total of 434 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Create Vesting | 21162067 | 135 days ago | IN | 0 ETH | 0.00659706 | ||||
Create Vesting | 21162022 | 135 days ago | IN | 0 ETH | 0.00587831 | ||||
Create Vesting | 20815105 | 183 days ago | IN | 0 ETH | 0.00622905 | ||||
Create Vesting | 20795359 | 186 days ago | IN | 0 ETH | 0.00930698 | ||||
Create Vesting | 20546147 | 221 days ago | IN | 0 ETH | 0.00036627 | ||||
Create Vesting | 20370371 | 245 days ago | IN | 0 ETH | 0.0025937 | ||||
Create Vesting | 20266899 | 260 days ago | IN | 0 ETH | 0.00090027 | ||||
Create Vesting | 19869496 | 315 days ago | IN | 0 ETH | 0.00288965 | ||||
Create Vesting | 19815085 | 323 days ago | IN | 0 ETH | 0.00114406 | ||||
Create Vesting | 19814822 | 323 days ago | IN | 0 ETH | 0.00143087 | ||||
Create Vesting | 19814713 | 323 days ago | IN | 0 ETH | 0.00144688 | ||||
Create Vesting | 19727031 | 335 days ago | IN | 0 ETH | 0.00359599 | ||||
Create Vesting | 19665797 | 344 days ago | IN | 0 ETH | 0.00432459 | ||||
Create Vesting | 19519788 | 364 days ago | IN | 0 ETH | 0.02520746 | ||||
Create Vesting | 19466411 | 372 days ago | IN | 0 ETH | 0.00679923 | ||||
Create Vesting | 19416927 | 379 days ago | IN | 0 ETH | 0.01404869 | ||||
Create Vesting | 19416826 | 379 days ago | IN | 0 ETH | 0.01456159 | ||||
Create Vesting | 19416802 | 379 days ago | IN | 0 ETH | 0.02021803 | ||||
Create Vesting | 19416735 | 379 days ago | IN | 0 ETH | 0.0172963 | ||||
Create Vesting | 19319819 | 392 days ago | IN | 0 ETH | 0.02260929 | ||||
Create Vesting | 19265873 | 400 days ago | IN | 0 ETH | 0.00967589 | ||||
Create Vesting | 19220900 | 406 days ago | IN | 0 ETH | 0.01139287 | ||||
Create Vesting | 19220834 | 406 days ago | IN | 0 ETH | 0.01592168 | ||||
Create Vesting | 19217206 | 407 days ago | IN | 0 ETH | 0.00701191 | ||||
Create Vesting | 19217171 | 407 days ago | IN | 0 ETH | 0.0069623 |
Latest 25 internal transactions (View All)
Advanced mode:
Parent Transaction Hash | Method | Block |
From
|
To
|
|||
---|---|---|---|---|---|---|---|
0x3d602d80 | 21294992 | 116 days ago | Contract Creation | 0 ETH | |||
0x3d602d80 | 21294992 | 116 days ago | Contract Creation | 0 ETH | |||
0x3d602d80 | 21294992 | 116 days ago | Contract Creation | 0 ETH | |||
0x3d602d80 | 21294992 | 116 days ago | Contract Creation | 0 ETH | |||
0x3d602d80 | 21294992 | 116 days ago | Contract Creation | 0 ETH | |||
0x3d602d80 | 21294992 | 116 days ago | Contract Creation | 0 ETH | |||
0x3d602d80 | 21294992 | 116 days ago | Contract Creation | 0 ETH | |||
0x3d602d80 | 21294992 | 116 days ago | Contract Creation | 0 ETH | |||
0x3d602d80 | 21294992 | 116 days ago | Contract Creation | 0 ETH | |||
0x3d602d80 | 21294992 | 116 days ago | Contract Creation | 0 ETH | |||
0x3d602d80 | 21294992 | 116 days ago | Contract Creation | 0 ETH | |||
0x3d602d80 | 21294992 | 116 days ago | Contract Creation | 0 ETH | |||
0x3d602d80 | 21294992 | 116 days ago | Contract Creation | 0 ETH | |||
0x3d602d80 | 21294992 | 116 days ago | Contract Creation | 0 ETH | |||
0x3d602d80 | 21294992 | 116 days ago | Contract Creation | 0 ETH | |||
0x3d602d80 | 21294992 | 116 days ago | Contract Creation | 0 ETH | |||
0x3d602d80 | 21294992 | 116 days ago | Contract Creation | 0 ETH | |||
0x3d602d80 | 21294992 | 116 days ago | Contract Creation | 0 ETH | |||
0x3d602d80 | 21294992 | 116 days ago | Contract Creation | 0 ETH | |||
0x3d602d80 | 21294992 | 116 days ago | Contract Creation | 0 ETH | |||
0x3d602d80 | 21294992 | 116 days ago | Contract Creation | 0 ETH | |||
0x3d602d80 | 21294992 | 116 days ago | Contract Creation | 0 ETH | |||
0x3d602d80 | 21294992 | 116 days ago | Contract Creation | 0 ETH | |||
0x3d602d80 | 21162067 | 135 days ago | Contract Creation | 0 ETH | |||
0x3d602d80 | 21162022 | 135 days ago | Contract Creation | 0 ETH |
Loading...
Loading
This contract may be a proxy contract. Click on More Options and select Is this a proxy? to confirm and enable the "Read as Proxy" & "Write as Proxy" tabs.
Contract Name:
MinimalProxyFactory
Compiler Version
v0.6.12+commit.27d51765
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2020-09-01 */ // SPDX-License-Identifier: MIT pragma solidity ^0.6.2; /** * @dev Collection of functions related to the address type */ library Address { /** * @dev Returns true if `account` is a contract. * * [IMPORTANT] * ==== * It is unsafe to assume that an address for which this function returns * false is an externally-owned account (EOA) and not a contract. * * Among others, `isContract` will return false for the following * types of addresses: * * - an externally-owned account * - a contract in construction * - an address where a contract will be created * - an address where a contract lived, but was destroyed * ==== */ function isContract(address account) internal view returns (bool) { // According to EIP-1052, 0x0 is the value returned for not-yet created accounts // and 0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 is returned // for accounts without code, i.e. `keccak256('')` bytes32 codehash; bytes32 accountHash = 0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470; // solhint-disable-next-line no-inline-assembly assembly { codehash := extcodehash(account) } return (codehash != accountHash && codehash != 0x0); } /** * @dev Replacement for Solidity's `transfer`: sends `amount` wei to * `recipient`, forwarding all available gas and reverting on errors. * * https://eips.ethereum.org/EIPS/eip-1884[EIP1884] increases the gas cost * of certain opcodes, possibly making contracts go over the 2300 gas limit * imposed by `transfer`, making them unable to receive funds via * `transfer`. {sendValue} removes this limitation. * * https://diligence.consensys.net/posts/2019/09/stop-using-soliditys-transfer-now/[Learn more]. * * IMPORTANT: because control is transferred to `recipient`, care must be * taken to not create reentrancy vulnerabilities. Consider using * {ReentrancyGuard} or the * https://solidity.readthedocs.io/en/v0.5.11/security-considerations.html#use-the-checks-effects-interactions-pattern[checks-effects-interactions pattern]. */ function sendValue(address payable recipient, uint256 amount) internal { require(address(this).balance >= amount, "Address: insufficient balance"); // solhint-disable-next-line avoid-low-level-calls, avoid-call-value (bool success, ) = recipient.call{ value: amount }(""); require(success, "Address: unable to send value, recipient may have reverted"); } /** * @dev Performs a Solidity function call using a low level `call`. A * plain`call` is an unsafe replacement for a function call: use this * function instead. * * If `target` reverts with a revert reason, it is bubbled up by this * function (like regular Solidity function calls). * * Returns the raw returned data. To convert to the expected return value, * use https://solidity.readthedocs.io/en/latest/units-and-global-variables.html?highlight=abi.decode#abi-encoding-and-decoding-functions[`abi.decode`]. * * Requirements: * * - `target` must be a contract. * - calling `target` with `data` must not revert. * * _Available since v3.1._ */ function functionCall(address target, bytes memory data) internal returns (bytes memory) { return functionCall(target, data, "Address: low-level call failed"); } /** * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], but with * `errorMessage` as a fallback revert reason when `target` reverts. * * _Available since v3.1._ */ function functionCall(address target, bytes memory data, string memory errorMessage) internal returns (bytes memory) { return _functionCallWithValue(target, data, 0, errorMessage); } /** * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], * but also transferring `value` wei to `target`. * * Requirements: * * - the calling contract must have an ETH balance of at least `value`. * - the called Solidity function must be `payable`. * * _Available since v3.1._ */ function functionCallWithValue(address target, bytes memory data, uint256 value) internal returns (bytes memory) { return functionCallWithValue(target, data, value, "Address: low-level call with value failed"); } /** * @dev Same as {xref-Address-functionCallWithValue-address-bytes-uint256-}[`functionCallWithValue`], but * with `errorMessage` as a fallback revert reason when `target` reverts. * * _Available since v3.1._ */ function functionCallWithValue(address target, bytes memory data, uint256 value, string memory errorMessage) internal returns (bytes memory) { require(address(this).balance >= value, "Address: insufficient balance for call"); return _functionCallWithValue(target, data, value, errorMessage); } function _functionCallWithValue(address target, bytes memory data, uint256 weiValue, string memory errorMessage) private returns (bytes memory) { require(isContract(target), "Address: call to non-contract"); // solhint-disable-next-line avoid-low-level-calls (bool success, bytes memory returndata) = target.call{ value: weiValue }(data); if (success) { return returndata; } else { // Look for revert reason and bubble it up if present if (returndata.length > 0) { // The easiest way to bubble the revert reason is using memory via assembly // solhint-disable-next-line no-inline-assembly assembly { let returndata_size := mload(returndata) revert(add(32, returndata), returndata_size) } } else { revert(errorMessage); } } } } contract MinimalProxyFactory { using Address for address; event VestingCreated(address indexed _address, bytes32 _salt); constructor() public { } function createVesting(address _implementation, bytes32 _salt, bytes memory _data) public virtual returns (address addr) { bytes32 salt = keccak256(abi.encodePacked(_salt, msg.sender)); // solium-disable-next-line security/no-inline-assembly bytes memory slotcode = abi.encodePacked( hex"3d602d80600a3d3981f3363d3d373d3d3d363d73", _implementation, hex"5af43d82803e903d91602b57fd5bf3" ); assembly { addr := create2(0, add(slotcode, 0x20), mload(slotcode), salt) } require(addr != address(0), "MinimalProxyFactory#createVesting: CREATION_FAILED"); emit VestingCreated(addr, _salt); if (_data.length > 0) { (bool success,) = addr.call(_data); require(success, "MinimalProxyFactory#createVesting: CALL_FAILED"); } } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_address","type":"address"},{"indexed":false,"internalType":"bytes32","name":"_salt","type":"bytes32"}],"name":"VestingCreated","type":"event"},{"inputs":[{"internalType":"address","name":"_implementation","type":"address"},{"internalType":"bytes32","name":"_salt","type":"bytes32"},{"internalType":"bytes","name":"_data","type":"bytes"}],"name":"createVesting","outputs":[{"internalType":"address","name":"addr","type":"address"}],"stateMutability":"nonpayable","type":"function"}]
Contract Creation Code
608060405234801561001057600080fd5b506103b1806100206000396000f3fe608060405234801561001057600080fd5b506004361061002b5760003560e01c80638374d84b14610030575b600080fd5b6100eb6004803603606081101561004657600080fd5b6001600160a01b038235169160208101359181019060608101604082013564010000000081111561007657600080fd5b82018360208201111561008857600080fd5b803590602001918460018302840111640100000000831117156100aa57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610107945050505050565b604080516001600160a01b039092168252519081900360200190f35b60408051602080820185905233606090811b8385015283518084036034018152605484018552805190830120733d602d80600a3d3981f3363d3d373d3d3d363d7360601b60748501529087901b6bffffffffffffffffffffffff191660888401526e5af43d82803e903d91602b57fd5bf360881b609c8401528351808403608b01815260ab90930190935281516000939291839190830185f592506001600160a01b0383166101e75760405162461bcd60e51b815260040180806020018281038252603281526020018061031c6032913960400191505060405180910390fd5b6040805186815290516001600160a01b038516917feaa996f76fa9fcacd351918a2a275ae6d45845f79256ffbe8c0a87ca608e9970919081900360200190a2835115610312576000836001600160a01b0316856040518082805190602001908083835b602083106102695780518252601f19909201916020918201910161024a565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d80600081146102cb576040519150601f19603f3d011682016040523d82523d6000602084013e6102d0565b606091505b50509050806103105760405162461bcd60e51b815260040180806020018281038252602e81526020018061034e602e913960400191505060405180910390fd5b505b5050939250505056fe4d696e696d616c50726f7879466163746f72792363726561746556657374696e673a204352454154494f4e5f4641494c45444d696e696d616c50726f7879466163746f72792363726561746556657374696e673a2043414c4c5f4641494c4544a26469706673582212204c3a3f1aabf25c74af9990c8d098ccc893836dab18774a23045021b96882199464736f6c634300060c0033
Deployed Bytecode
0x608060405234801561001057600080fd5b506004361061002b5760003560e01c80638374d84b14610030575b600080fd5b6100eb6004803603606081101561004657600080fd5b6001600160a01b038235169160208101359181019060608101604082013564010000000081111561007657600080fd5b82018360208201111561008857600080fd5b803590602001918460018302840111640100000000831117156100aa57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610107945050505050565b604080516001600160a01b039092168252519081900360200190f35b60408051602080820185905233606090811b8385015283518084036034018152605484018552805190830120733d602d80600a3d3981f3363d3d373d3d3d363d7360601b60748501529087901b6bffffffffffffffffffffffff191660888401526e5af43d82803e903d91602b57fd5bf360881b609c8401528351808403608b01815260ab90930190935281516000939291839190830185f592506001600160a01b0383166101e75760405162461bcd60e51b815260040180806020018281038252603281526020018061031c6032913960400191505060405180910390fd5b6040805186815290516001600160a01b038516917feaa996f76fa9fcacd351918a2a275ae6d45845f79256ffbe8c0a87ca608e9970919081900360200190a2835115610312576000836001600160a01b0316856040518082805190602001908083835b602083106102695780518252601f19909201916020918201910161024a565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d80600081146102cb576040519150601f19603f3d011682016040523d82523d6000602084013e6102d0565b606091505b50509050806103105760405162461bcd60e51b815260040180806020018281038252602e81526020018061034e602e913960400191505060405180910390fd5b505b5050939250505056fe4d696e696d616c50726f7879466163746f72792363726561746556657374696e673a204352454154494f4e5f4641494c45444d696e696d616c50726f7879466163746f72792363726561746556657374696e673a2043414c4c5f4641494c4544a26469706673582212204c3a3f1aabf25c74af9990c8d098ccc893836dab18774a23045021b96882199464736f6c634300060c0033
Deployed Bytecode Sourcemap
6225:1072:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6402:892;;;;;;;;;;;;;;;;-1:-1:-1;;;;;6402:892:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;6402:892:0;;-1:-1:-1;6402:892:0;;-1:-1:-1;;;;;6402:892:0:i;:::-;;;;-1:-1:-1;;;;;6402:892:0;;;;;;;;;;;;;;;6559:35;;;;;;;;;;6583:10;6559:35;;;;;;;;;;;;;;;;;;;;;;6549:46;;;;;;-1:-1:-1;;;6697:167:0;;;;;;;;-1:-1:-1;;6697:167:0;;;;;-1:-1:-1;;;6697:167:0;;;;;;;;;;;;;;;;;;;;6941:15;;-1:-1:-1;;6549:46:0;6697:167;6549:46;;6941:15;6920:19;;-1:-1:-1;6909:54:0;6901:62;-1:-1:-1;;;;;;6992:18:0;;6984:81;;;;-1:-1:-1;;;6984:81:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7083:27;;;;;;;;-1:-1:-1;;;;;7083:27:0;;;;;;;;;;;;;7127:12;;:16;7123:164;;7161:12;7178:4;-1:-1:-1;;;;;7178:9:0;7188:5;7178:16;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;7178:16:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7160:34;;;7217:7;7209:66;;;;-1:-1:-1;;;7209:66:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7123:164;;6402:892;;;;;;;:::o
Swarm Source
ipfs://4c3a3f1aabf25c74af9990c8d098ccc893836dab18774a23045021b968821994
Loading...
Loading
Loading...
Loading
Loading...
Loading
Loading...
Loading
Loading...
Loading
[ Download: CSV Export ]
[ 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.