Feature Tip: Add private address tag to any address under My Name Tag !
Latest 11 internal transactions
Advanced mode:
| Parent Transaction Hash | Method | Block |
From
|
|
To
|
||
|---|---|---|---|---|---|---|---|
| - | 13525645 | 1613 days ago | 0.19 ETH | ||||
| - | 13525645 | 1613 days ago | 0.01 ETH | ||||
| - | 13511266 | 1615 days ago | 0.19 ETH | ||||
| - | 13511266 | 1615 days ago | 0.01 ETH | ||||
| - | 13507621 | 1616 days ago | 0.38 ETH | ||||
| - | 13507621 | 1616 days ago | 0.02 ETH | ||||
| - | 13507474 | 1616 days ago | 0.19 ETH | ||||
| - | 13507474 | 1616 days ago | 0.01 ETH | ||||
| - | 13507472 | 1616 days ago | 0.19 ETH | ||||
| - | 13507472 | 1616 days ago | 0.01 ETH | ||||
| - | 13506742 | 1616 days ago | Contract Creation | 0 ETH |
Loading...
Loading
Loading...
Loading
Cross-Chain Transactions
Loading...
Loading
Minimal Proxy Contract for 0xee5bcfe8fd3505b66f1884682afc9af5f2279792
Contract Name:
OpenEditionClonable
Compiler Version
v0.6.12+commit.27d51765
Optimization Enabled:
No with 200 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity Standard Json-Input format)
// SPDX-License-Identifier: UNLICENSED
pragma solidity ^0.6.7;
interface IERC1155 {
function safeTransferFrom(address _from, address _to, uint256 _id, uint256 value, bytes calldata _data) external;
function balanceOf(address _owner, uint256 _id) external view returns(uint256);
}
interface IERC20 {
function balanceOf(address _who) external returns (uint256);
}
library Math {
function add(uint a, uint b) internal pure returns (uint c) {require((c = a + b) >= b, "BoringMath: Add Overflow");}
function sub(uint a, uint b) internal pure returns (uint c) {require((c = a - b) <= a, "BoringMath: Underflow");}
function mul(uint a, uint b) internal pure returns (uint c) {require(a == 0 || (c = a * b)/b == a, "BoringMath: Mul Overflow");}
}
contract OpenEditionClonable {
using Math for uint256;
address public controller;
address public hausAddress;
address public stakingSwapContract;
IERC1155 public nft;
uint256 public price;
uint256 public id;
uint256 public start;
uint256 public limitPerOrder;
uint256 public stakingRewardPercentageBasisPoints;
uint256 public buyCount = 0;
uint256 public endTime;
event Buy(address buyer, uint256 amount);
function initialize(
address _hausAddress,
uint256 _startTime,
uint256 _endTime,
address _tokenAddress,
uint256 _tokenId,
uint256 _priceWei,
uint256 _limitPerOrder,
uint256 _stakingRewardPercentageBasisPoints,
address _stakingSwapContract,
address _controllerAddress
) external {
require(hausAddress == address(0), "Already initialized");
require(_hausAddress != address(0));
hausAddress = _hausAddress;
start = _startTime;
endTime = _endTime;
nft = IERC1155(_tokenAddress);
id = _tokenId;
price = _priceWei;
limitPerOrder = _limitPerOrder;
controller = _controllerAddress;
stakingRewardPercentageBasisPoints = _stakingRewardPercentageBasisPoints;
stakingSwapContract = _stakingSwapContract;
}
function buy(uint256 amount) public payable {
require(msg.sender == tx.origin, "no contracts");
require(block.timestamp >= start, "early");
require(isClosed() == false, "Sale has closed");
require(amount <= supply(), "ordered too many");
require(amount <= limitPerOrder, "ordered too many");
require(msg.value == price.mul(amount), "wrong amount");
nft.safeTransferFrom(address(this), msg.sender, id, amount, new bytes(0x0));
uint256 stakingReward = (address(this).balance * stakingRewardPercentageBasisPoints) / 10000;
(bool stakingRewardSuccess, ) = stakingSwapContract.call{value: stakingReward}("");
require(stakingRewardSuccess, "Staking reward transfer failed.");
(bool successMultisig, ) = hausAddress.call{value: address(this).balance}("");
require(successMultisig, "Multisig transfer failed.");
buyCount += amount;
emit Buy(msg.sender, amount);
}
function supply() public view returns(uint256) {
return nft.balanceOf(address(this), id);
}
function setTokenAddress(address _tokenAddress) public onlyController {
nft = IERC1155(_tokenAddress);
}
function setTokenId(uint256 _tokenId) public onlyController {
id = _tokenId;
}
function pull() public onlyController {
nft.safeTransferFrom(address(this), controller, id, nft.balanceOf(address(this), id), new bytes(0x0));
}
function isClosed() public view returns (bool) {
return (block.timestamp >= endTime) || (supply() == 0);
}
modifier onlyController {
require(msg.sender == controller);
_;
}
function onERC1155Received(address, address, uint256, uint256, bytes calldata) external pure returns(bytes4) {
return bytes4(keccak256("onERC1155Received(address,address,uint256,uint256,bytes)"));
}
}{
"optimizer": {
"enabled": false,
"runs": 200
},
"outputSelection": {
"*": {
"*": [
"evm.bytecode",
"evm.deployedBytecode",
"devdoc",
"userdoc",
"metadata",
"abi"
]
}
},
"libraries": {}
}Contract ABI
API[{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"buyer","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Buy","type":"event"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"buy","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"buyCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"controller","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"endTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"hausAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"id","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_hausAddress","type":"address"},{"internalType":"uint256","name":"_startTime","type":"uint256"},{"internalType":"uint256","name":"_endTime","type":"uint256"},{"internalType":"address","name":"_tokenAddress","type":"address"},{"internalType":"uint256","name":"_tokenId","type":"uint256"},{"internalType":"uint256","name":"_priceWei","type":"uint256"},{"internalType":"uint256","name":"_limitPerOrder","type":"uint256"},{"internalType":"uint256","name":"_stakingRewardPercentageBasisPoints","type":"uint256"},{"internalType":"address","name":"_stakingSwapContract","type":"address"},{"internalType":"address","name":"_controllerAddress","type":"address"}],"name":"initialize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"isClosed","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"limitPerOrder","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"nft","outputs":[{"internalType":"contract IERC1155","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"bytes","name":"","type":"bytes"}],"name":"onERC1155Received","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"price","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pull","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_tokenAddress","type":"address"}],"name":"setTokenAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_tokenId","type":"uint256"}],"name":"setTokenId","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"stakingRewardPercentageBasisPoints","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"stakingSwapContract","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"start","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"supply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"}]Loading...
Loading
Loading...
Loading
Net Worth in USD
$0.00
Net Worth in ETH
0
Multichain Portfolio | 33 Chains
| Chain | Token | Portfolio % | Price | Amount | Value |
|---|
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.