Polygon Sponsored slots available. Book your slot here!
More Info
Private Name Tags
ContractCreator
Sponsored
Latest 25 from a total of 67 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Create | 17084551 | 1170 days ago | IN | 0 POL | 0.00016791 | ||||
Create | 17084547 | 1170 days ago | IN | 0 POL | 0.0000936 | ||||
Create | 17084543 | 1170 days ago | IN | 0 POL | 0.00016791 | ||||
Create | 17084540 | 1170 days ago | IN | 0 POL | 0.0000936 | ||||
Create | 17084519 | 1170 days ago | IN | 0 POL | 0.00016791 | ||||
Create | 17084503 | 1170 days ago | IN | 0 POL | 0.0000936 | ||||
Create | 17084468 | 1170 days ago | IN | 0 POL | 0.00016791 | ||||
Create | 17084461 | 1170 days ago | IN | 0 POL | 0.0000936 | ||||
Create | 17084374 | 1170 days ago | IN | 0 POL | 0.00016791 | ||||
Create | 17084370 | 1170 days ago | IN | 0 POL | 0.0000936 | ||||
Create | 17084345 | 1170 days ago | IN | 0 POL | 0.00033251 | ||||
Create | 17084342 | 1170 days ago | IN | 0 POL | 0.00018536 | ||||
Create | 17084268 | 1170 days ago | IN | 0 POL | 0.00016791 | ||||
Create | 17084265 | 1170 days ago | IN | 0 POL | 0.0000936 | ||||
Create | 17084164 | 1170 days ago | IN | 0 POL | 0.00018629 | ||||
Create | 17084164 | 1170 days ago | IN | 0 POL | 0.00028824 | ||||
Create | 17084164 | 1170 days ago | IN | 0 POL | 0.00028824 | ||||
Create | 17084163 | 1170 days ago | IN | 0 POL | 0.0000936 | ||||
Create | 17083857 | 1170 days ago | IN | 0 POL | 0.0000936 | ||||
Create | 16863594 | 1176 days ago | IN | 0 POL | 0.00016625 | ||||
Create | 15876539 | 1202 days ago | IN | 0 POL | 0.00149622 | ||||
Create | 15874009 | 1202 days ago | IN | 0 POL | 0.00188778 | ||||
Create | 15874009 | 1202 days ago | IN | 0 POL | 0.00172153 | ||||
Create | 15756761 | 1205 days ago | IN | 0 POL | 0.00016624 | ||||
Create | 14764715 | 1230 days ago | IN | 0 POL | 0.00023968 |
Latest 25 internal transactions (View All)
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:
GenericProxyFactory
Compiler Version
v0.6.12+commit.27d51765
Optimization Enabled:
Yes with 200 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity Standard Json-Input format)
// SPDX-License-Identifier: MIT pragma solidity >=0.6.0 <0.8.0; import "@openzeppelin/contracts-upgradeable/proxy/ClonesUpgradeable.sol"; /// @title PoolTogether Generic Minimal ProxyFactory /// @notice EIP-1167 Minimal proxy factory pattern for creating proxy contracts contract GenericProxyFactory{ ///@notice Event fired when minimal proxy has been created event ProxyCreated(address indexed created, address indexed implementation); /// @notice Create a proxy contract for given instance /// @param _instance Contract implementation which the created contract will point at /// @param _data Data which is to be called after the proxy contract is created function create(address _instance, bytes calldata _data) public returns (address instanceCreated, bytes memory result) { instanceCreated = ClonesUpgradeable.clone(_instance); emit ProxyCreated(instanceCreated, _instance); if(_data.length > 0) { return callContract(instanceCreated, _data); } return (instanceCreated, ""); } /// @notice Create a proxy contract with a deterministic address using create2 /// @param _instance Contract implementation which the created contract will point at /// @param _salt Salt which is used as the create2 salt /// @param _data Data which is to be called after the proxy contract is created function create2(address _instance, bytes32 _salt, bytes calldata _data) public returns (address instanceCreated, bytes memory result) { instanceCreated = ClonesUpgradeable.cloneDeterministic(_instance, _salt); emit ProxyCreated(instanceCreated, _instance); if(_data.length > 0) { return callContract(instanceCreated, _data); } return (instanceCreated, ""); } /// @notice Calculates what the proxy address would be when deterministically created /// @param _master Contract implementation which the created contract will point at /// @param _salt Salt which would be used as the create2 salt /// @return Deterministic address for given master code and salt using create2 function predictDeterministicAddress(address _master, bytes32 _salt) public view returns (address) { return ClonesUpgradeable.predictDeterministicAddress(_master, _salt, address(this)); } /// @notice Calls the instance contract with the specified data /// @dev Will revert if call unsuccessful /// @param target Call target contract /// @param _data Data for contract call /// @return Tuple of the address called contract and the return data from the call function callContract(address target, bytes memory _data) internal returns (address, bytes memory) { (bool success, bytes memory returnData) = target.call(_data); require(success, string(returnData)); return (target, returnData); } }
// SPDX-License-Identifier: MIT pragma solidity >=0.6.0 <0.8.0; /** * @dev https://eips.ethereum.org/EIPS/eip-1167[EIP 1167] is a standard for * deploying minimal proxy contracts, also known as "clones". * * > To simply and cheaply clone contract functionality in an immutable way, this standard specifies * > a minimal bytecode implementation that delegates all calls to a known, fixed address. * * The library includes functions to deploy a proxy using either `create` (traditional deployment) or `create2` * (salted deterministic deployment). It also includes functions to predict the addresses of clones deployed using the * deterministic method. * * _Available since v3.4._ */ library ClonesUpgradeable { /** * @dev Deploys and returns the address of a clone that mimics the behaviour of `master`. * * This function uses the create opcode, which should never revert. */ function clone(address master) internal returns (address instance) { // solhint-disable-next-line no-inline-assembly assembly { let ptr := mload(0x40) mstore(ptr, 0x3d602d80600a3d3981f3363d3d373d3d3d363d73000000000000000000000000) mstore(add(ptr, 0x14), shl(0x60, master)) mstore(add(ptr, 0x28), 0x5af43d82803e903d91602b57fd5bf30000000000000000000000000000000000) instance := create(0, ptr, 0x37) } require(instance != address(0), "ERC1167: create failed"); } /** * @dev Deploys and returns the address of a clone that mimics the behaviour of `master`. * * This function uses the create2 opcode and a `salt` to deterministically deploy * the clone. Using the same `master` and `salt` multiple time will revert, since * the clones cannot be deployed twice at the same address. */ function cloneDeterministic(address master, bytes32 salt) internal returns (address instance) { // solhint-disable-next-line no-inline-assembly assembly { let ptr := mload(0x40) mstore(ptr, 0x3d602d80600a3d3981f3363d3d373d3d3d363d73000000000000000000000000) mstore(add(ptr, 0x14), shl(0x60, master)) mstore(add(ptr, 0x28), 0x5af43d82803e903d91602b57fd5bf30000000000000000000000000000000000) instance := create2(0, ptr, 0x37, salt) } require(instance != address(0), "ERC1167: create2 failed"); } /** * @dev Computes the address of a clone deployed using {Clones-cloneDeterministic}. */ function predictDeterministicAddress(address master, bytes32 salt, address deployer) internal pure returns (address predicted) { // solhint-disable-next-line no-inline-assembly assembly { let ptr := mload(0x40) mstore(ptr, 0x3d602d80600a3d3981f3363d3d373d3d3d363d73000000000000000000000000) mstore(add(ptr, 0x14), shl(0x60, master)) mstore(add(ptr, 0x28), 0x5af43d82803e903d91602b57fd5bf3ff00000000000000000000000000000000) mstore(add(ptr, 0x38), shl(0x60, deployer)) mstore(add(ptr, 0x4c), salt) mstore(add(ptr, 0x6c), keccak256(ptr, 0x37)) predicted := keccak256(add(ptr, 0x37), 0x55) } } /** * @dev Computes the address of a clone deployed using {Clones-cloneDeterministic}. */ function predictDeterministicAddress(address master, bytes32 salt) internal view returns (address predicted) { return predictDeterministicAddress(master, salt, address(this)); } }
{ "optimizer": { "enabled": true, "runs": 200 }, "evmVersion": "istanbul", "outputSelection": { "*": { "*": [ "evm.bytecode", "evm.deployedBytecode", "abi" ] } }, "metadata": { "useLiteralContent": true }, "libraries": {} }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"created","type":"address"},{"indexed":true,"internalType":"address","name":"implementation","type":"address"}],"name":"ProxyCreated","type":"event"},{"inputs":[{"internalType":"address","name":"_instance","type":"address"},{"internalType":"bytes","name":"_data","type":"bytes"}],"name":"create","outputs":[{"internalType":"address","name":"instanceCreated","type":"address"},{"internalType":"bytes","name":"result","type":"bytes"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_instance","type":"address"},{"internalType":"bytes32","name":"_salt","type":"bytes32"},{"internalType":"bytes","name":"_data","type":"bytes"}],"name":"create2","outputs":[{"internalType":"address","name":"instanceCreated","type":"address"},{"internalType":"bytes","name":"result","type":"bytes"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_master","type":"address"},{"internalType":"bytes32","name":"_salt","type":"bytes32"}],"name":"predictDeterministicAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"}]
Contract Creation Code
608060405234801561001057600080fd5b506106bf806100206000396000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c8063360d0fad1461004657806368dd803e1461008e578063a3f697ba1461019b575b600080fd5b6100726004803603604081101561005c57600080fd5b506001600160a01b03813516906020013561021b565b604080516001600160a01b039092168252519081900360200190f35b610113600480360360608110156100a457600080fd5b6001600160a01b03823516916020810135918101906060810160408201356401000000008111156100d457600080fd5b8201836020820111156100e657600080fd5b8035906020019184600183028401116401000000008311171561010857600080fd5b509092509050610231565b60405180836001600160a01b0316815260200180602001828103825283818151815260200191508051906020019080838360005b8381101561015f578181015183820152602001610147565b50505050905090810190601f16801561018c5780820380516001836020036101000a031916815260200191505b50935050505060405180910390f35b610113600480360360408110156101b157600080fd5b6001600160a01b0382351691908101906040810160208201356401000000008111156101dc57600080fd5b8201836020820111156101ee57600080fd5b8035906020019184600183028401116401000000008311171561021057600080fd5b5090925090506102ea565b60006102288383306103a1565b90505b92915050565b6000606061023f86866103ff565b9150856001600160a01b0316826001600160a01b03167f9678a1e87ca9f1a37dc659a97b39d812d98cd236947e1b53b3d0d6fd346acb6e60405160405180910390a382156102d0576102c78285858080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506104a492505050565b915091506102e1565b506040805160208101909152600081525b94509492505050565b600060606102f7856105e7565b9150846001600160a01b0316826001600160a01b03167f9678a1e87ca9f1a37dc659a97b39d812d98cd236947e1b53b3d0d6fd346acb6e60405160405180910390a382156103885761037f8285858080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506104a492505050565b91509150610399565b506040805160208101909152600081525b935093915050565b604051733d602d80600a3d3981f3363d3d373d3d3d363d7360601b8152606093841b60148201526f5af43d82803e903d91602b57fd5bf3ff60801b6028820152921b6038830152604c8201526037808220606c830152605591012090565b6000604051733d602d80600a3d3981f3363d3d373d3d3d363d7360601b81528360601b60148201526e5af43d82803e903d91602b57fd5bf360881b6028820152826037826000f59150506001600160a01b03811661022b576040805162461bcd60e51b815260206004820152601760248201527f455243313136373a2063726561746532206661696c6564000000000000000000604482015290519081900360640190fd5b6000606060006060856001600160a01b0316856040518082805190602001908083835b602083106104e65780518252601f1990920191602091820191016104c7565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d8060008114610548576040519150601f19603f3d011682016040523d82523d6000602084013e61054d565b606091505b50915091508181906105dd5760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b838110156105a257818101518382015260200161058a565b50505050905090810190601f1680156105cf5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5094959350505050565b6000604051733d602d80600a3d3981f3363d3d373d3d3d363d7360601b81528260601b60148201526e5af43d82803e903d91602b57fd5bf360881b60288201526037816000f09150506001600160a01b038116610684576040805162461bcd60e51b8152602060048201526016602482015275115490cc4c4d8dce8818dc99585d194819985a5b195960521b604482015290519081900360640190fd5b91905056fea264697066735822122010d800d479fbdfe36c61e1e1131e93d6543ed04d5b7ef62f0c41e29b2f0741f664736f6c634300060c0033
Deployed Bytecode
0x608060405234801561001057600080fd5b50600436106100415760003560e01c8063360d0fad1461004657806368dd803e1461008e578063a3f697ba1461019b575b600080fd5b6100726004803603604081101561005c57600080fd5b506001600160a01b03813516906020013561021b565b604080516001600160a01b039092168252519081900360200190f35b610113600480360360608110156100a457600080fd5b6001600160a01b03823516916020810135918101906060810160408201356401000000008111156100d457600080fd5b8201836020820111156100e657600080fd5b8035906020019184600183028401116401000000008311171561010857600080fd5b509092509050610231565b60405180836001600160a01b0316815260200180602001828103825283818151815260200191508051906020019080838360005b8381101561015f578181015183820152602001610147565b50505050905090810190601f16801561018c5780820380516001836020036101000a031916815260200191505b50935050505060405180910390f35b610113600480360360408110156101b157600080fd5b6001600160a01b0382351691908101906040810160208201356401000000008111156101dc57600080fd5b8201836020820111156101ee57600080fd5b8035906020019184600183028401116401000000008311171561021057600080fd5b5090925090506102ea565b60006102288383306103a1565b90505b92915050565b6000606061023f86866103ff565b9150856001600160a01b0316826001600160a01b03167f9678a1e87ca9f1a37dc659a97b39d812d98cd236947e1b53b3d0d6fd346acb6e60405160405180910390a382156102d0576102c78285858080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506104a492505050565b915091506102e1565b506040805160208101909152600081525b94509492505050565b600060606102f7856105e7565b9150846001600160a01b0316826001600160a01b03167f9678a1e87ca9f1a37dc659a97b39d812d98cd236947e1b53b3d0d6fd346acb6e60405160405180910390a382156103885761037f8285858080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506104a492505050565b91509150610399565b506040805160208101909152600081525b935093915050565b604051733d602d80600a3d3981f3363d3d373d3d3d363d7360601b8152606093841b60148201526f5af43d82803e903d91602b57fd5bf3ff60801b6028820152921b6038830152604c8201526037808220606c830152605591012090565b6000604051733d602d80600a3d3981f3363d3d373d3d3d363d7360601b81528360601b60148201526e5af43d82803e903d91602b57fd5bf360881b6028820152826037826000f59150506001600160a01b03811661022b576040805162461bcd60e51b815260206004820152601760248201527f455243313136373a2063726561746532206661696c6564000000000000000000604482015290519081900360640190fd5b6000606060006060856001600160a01b0316856040518082805190602001908083835b602083106104e65780518252601f1990920191602091820191016104c7565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d8060008114610548576040519150601f19603f3d011682016040523d82523d6000602084013e61054d565b606091505b50915091508181906105dd5760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b838110156105a257818101518382015260200161058a565b50505050905090810190601f1680156105cf5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5094959350505050565b6000604051733d602d80600a3d3981f3363d3d373d3d3d363d7360601b81528260601b60148201526e5af43d82803e903d91602b57fd5bf360881b60288201526037816000f09150506001600160a01b038116610684576040805162461bcd60e51b8152602060048201526016602482015275115490cc4c4d8dce8818dc99585d194819985a5b195960521b604482015290519081900360640190fd5b91905056fea264697066735822122010d800d479fbdfe36c61e1e1131e93d6543ed04d5b7ef62f0c41e29b2f0741f664736f6c634300060c0033
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.