Source Code
Overview
ETH Balance
0 ETH
Eth Value
$0.00Latest 5 from a total of 5 transactions
Loading...
Loading
Loading...
Loading
Cross-Chain Transactions
Loading...
Loading
Contract Name:
Redeem
Compiler Version
v0.8.6+commit.11564f7e
Contract Source Code (Solidity)
/**
*Submitted for verification at Etherscan.io on 2022-06-20
*/
// Sources flattened with hardhat v2.8.4 https://hardhat.org
// File @openzeppelin/contracts/utils/Context.sol@v4.5.0
// OpenZeppelin Contracts v4.4.1 (utils/Context.sol)
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) {
return msg.data;
}
}
// File @openzeppelin/contracts/access/Ownable.sol@v4.5.0
// OpenZeppelin Contracts v4.4.1 (access/Ownable.sol)
pragma solidity ^0.8.0;
/**
* @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;
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);
/**
* @dev Initializes the contract setting the deployer as the initial owner.
*/
constructor() {
_transferOwnership(_msgSender());
}
/**
* @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 {
_transferOwnership(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");
_transferOwnership(newOwner);
}
/**
* @dev Transfers ownership of the contract to a new account (`newOwner`).
* Internal function without access restriction.
*/
function _transferOwnership(address newOwner) internal virtual {
address oldOwner = _owner;
_owner = newOwner;
emit OwnershipTransferred(oldOwner, newOwner);
}
}
// File @openzeppelin/contracts/utils/math/SafeMath.sol@v4.5.0
// OpenZeppelin Contracts v4.4.1 (utils/math/SafeMath.sol)
pragma solidity ^0.8.0;
// CAUTION
// This version of SafeMath should only be used with Solidity 0.8 or later,
// because it relies on the compiler's built in overflow checks.
/**
* @dev Wrappers over Solidity's arithmetic operations.
*
* NOTE: `SafeMath` is generally not needed starting with Solidity 0.8, since the compiler
* now has built in overflow checking.
*/
library SafeMath {
/**
* @dev Returns the addition of two unsigned integers, with an overflow flag.
*
* _Available since v3.4._
*/
function tryAdd(uint256 a, uint256 b) internal pure returns (bool, uint256) {
unchecked {
uint256 c = a + b;
if (c < a) return (false, 0);
return (true, c);
}
}
/**
* @dev Returns the substraction of two unsigned integers, with an overflow flag.
*
* _Available since v3.4._
*/
function trySub(uint256 a, uint256 b) internal pure returns (bool, uint256) {
unchecked {
if (b > a) return (false, 0);
return (true, a - b);
}
}
/**
* @dev Returns the multiplication of two unsigned integers, with an overflow flag.
*
* _Available since v3.4._
*/
function tryMul(uint256 a, uint256 b) internal pure returns (bool, uint256) {
unchecked {
// Gas optimization: this is cheaper than requiring 'a' not being zero, but the
// benefit is lost if 'b' is also tested.
// See: https://github.com/OpenZeppelin/openzeppelin-contracts/pull/522
if (a == 0) return (true, 0);
uint256 c = a * b;
if (c / a != b) return (false, 0);
return (true, c);
}
}
/**
* @dev Returns the division of two unsigned integers, with a division by zero flag.
*
* _Available since v3.4._
*/
function tryDiv(uint256 a, uint256 b) internal pure returns (bool, uint256) {
unchecked {
if (b == 0) return (false, 0);
return (true, a / b);
}
}
/**
* @dev Returns the remainder of dividing two unsigned integers, with a division by zero flag.
*
* _Available since v3.4._
*/
function tryMod(uint256 a, uint256 b) internal pure returns (bool, uint256) {
unchecked {
if (b == 0) return (false, 0);
return (true, a % b);
}
}
/**
* @dev Returns the addition of two unsigned integers, reverting on
* overflow.
*
* Counterpart to Solidity's `+` operator.
*
* Requirements:
*
* - Addition cannot overflow.
*/
function add(uint256 a, uint256 b) internal pure returns (uint256) {
return a + b;
}
/**
* @dev Returns the subtraction of two unsigned integers, reverting on
* overflow (when the result is negative).
*
* Counterpart to Solidity's `-` operator.
*
* Requirements:
*
* - Subtraction cannot overflow.
*/
function sub(uint256 a, uint256 b) internal pure returns (uint256) {
return a - b;
}
/**
* @dev Returns the multiplication of two unsigned integers, reverting on
* overflow.
*
* Counterpart to Solidity's `*` operator.
*
* Requirements:
*
* - Multiplication cannot overflow.
*/
function mul(uint256 a, uint256 b) internal pure returns (uint256) {
return a * b;
}
/**
* @dev Returns the integer division of two unsigned integers, reverting on
* division by zero. The result is rounded towards zero.
*
* Counterpart to Solidity's `/` operator.
*
* Requirements:
*
* - The divisor cannot be zero.
*/
function div(uint256 a, uint256 b) internal pure returns (uint256) {
return a / b;
}
/**
* @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),
* reverting when dividing by zero.
*
* Counterpart to Solidity's `%` operator. This function uses a `revert`
* opcode (which leaves remaining gas untouched) while Solidity uses an
* invalid opcode to revert (consuming all remaining gas).
*
* Requirements:
*
* - The divisor cannot be zero.
*/
function mod(uint256 a, uint256 b) internal pure returns (uint256) {
return a % b;
}
/**
* @dev Returns the subtraction of two unsigned integers, reverting with custom message on
* overflow (when the result is negative).
*
* CAUTION: This function is deprecated because it requires allocating memory for the error
* message unnecessarily. For custom revert reasons use {trySub}.
*
* Counterpart to Solidity's `-` operator.
*
* Requirements:
*
* - Subtraction cannot overflow.
*/
function sub(
uint256 a,
uint256 b,
string memory errorMessage
) internal pure returns (uint256) {
unchecked {
require(b <= a, errorMessage);
return a - b;
}
}
/**
* @dev Returns the integer division of two unsigned integers, reverting with custom message on
* division by zero. The result is rounded towards zero.
*
* Counterpart to Solidity's `/` operator. Note: this function uses a
* `revert` opcode (which leaves remaining gas untouched) while Solidity
* uses an invalid opcode to revert (consuming all remaining gas).
*
* Requirements:
*
* - The divisor cannot be zero.
*/
function div(
uint256 a,
uint256 b,
string memory errorMessage
) internal pure returns (uint256) {
unchecked {
require(b > 0, errorMessage);
return a / b;
}
}
/**
* @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),
* reverting with custom message when dividing by zero.
*
* CAUTION: This function is deprecated because it requires allocating memory for the error
* message unnecessarily. For custom revert reasons use {tryMod}.
*
* Counterpart to Solidity's `%` operator. This function uses a `revert`
* opcode (which leaves remaining gas untouched) while Solidity uses an
* invalid opcode to revert (consuming all remaining gas).
*
* Requirements:
*
* - The divisor cannot be zero.
*/
function mod(
uint256 a,
uint256 b,
string memory errorMessage
) internal pure returns (uint256) {
unchecked {
require(b > 0, errorMessage);
return a % b;
}
}
}
// File @openzeppelin/contracts/utils/introspection/IERC165.sol@v4.5.0
// OpenZeppelin Contracts v4.4.1 (utils/introspection/IERC165.sol)
pragma solidity ^0.8.0;
/**
* @dev Interface of the ERC165 standard, as defined in the
* https://eips.ethereum.org/EIPS/eip-165[EIP].
*
* Implementers can declare support of contract interfaces, which can then be
* queried by others ({ERC165Checker}).
*
* For an implementation, see {ERC165}.
*/
interface IERC165 {
/**
* @dev Returns true if this contract implements the interface defined by
* `interfaceId`. See the corresponding
* https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section]
* to learn more about how these ids are created.
*
* This function call must use less than 30 000 gas.
*/
function supportsInterface(bytes4 interfaceId) external view returns (bool);
}
// File @openzeppelin/contracts/token/ERC721/IERC721.sol@v4.5.0
// OpenZeppelin Contracts v4.4.1 (token/ERC721/IERC721.sol)
pragma solidity ^0.8.0;
/**
* @dev Required interface of an ERC721 compliant contract.
*/
interface IERC721 is IERC165 {
/**
* @dev Emitted when `tokenId` token is transferred from `from` to `to`.
*/
event Transfer(address indexed from, address indexed to, uint256 indexed tokenId);
/**
* @dev Emitted when `owner` enables `approved` to manage the `tokenId` token.
*/
event Approval(address indexed owner, address indexed approved, uint256 indexed tokenId);
/**
* @dev Emitted when `owner` enables or disables (`approved`) `operator` to manage all of its assets.
*/
event ApprovalForAll(address indexed owner, address indexed operator, bool approved);
/**
* @dev Returns the number of tokens in ``owner``'s account.
*/
function balanceOf(address owner) external view returns (uint256 balance);
/**
* @dev Returns the owner of the `tokenId` token.
*
* Requirements:
*
* - `tokenId` must exist.
*/
function ownerOf(uint256 tokenId) external view returns (address owner);
/**
* @dev Safely transfers `tokenId` token from `from` to `to`, checking first that contract recipients
* are aware of the ERC721 protocol to prevent tokens from being forever locked.
*
* Requirements:
*
* - `from` cannot be the zero address.
* - `to` cannot be the zero address.
* - `tokenId` token must exist and be owned by `from`.
* - If the caller is not `from`, it must be have been allowed to move this token by either {approve} or {setApprovalForAll}.
* - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer.
*
* Emits a {Transfer} event.
*/
function safeTransferFrom(
address from,
address to,
uint256 tokenId
) external;
/**
* @dev Transfers `tokenId` token from `from` to `to`.
*
* WARNING: Usage of this method is discouraged, use {safeTransferFrom} whenever possible.
*
* Requirements:
*
* - `from` cannot be the zero address.
* - `to` cannot be the zero address.
* - `tokenId` token must be owned by `from`.
* - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}.
*
* Emits a {Transfer} event.
*/
function transferFrom(
address from,
address to,
uint256 tokenId
) external;
/**
* @dev Gives permission to `to` to transfer `tokenId` token to another account.
* The approval is cleared when the token is transferred.
*
* Only a single account can be approved at a time, so approving the zero address clears previous approvals.
*
* Requirements:
*
* - The caller must own the token or be an approved operator.
* - `tokenId` must exist.
*
* Emits an {Approval} event.
*/
function approve(address to, uint256 tokenId) external;
/**
* @dev Returns the account approved for `tokenId` token.
*
* Requirements:
*
* - `tokenId` must exist.
*/
function getApproved(uint256 tokenId) external view returns (address operator);
/**
* @dev Approve or remove `operator` as an operator for the caller.
* Operators can call {transferFrom} or {safeTransferFrom} for any token owned by the caller.
*
* Requirements:
*
* - The `operator` cannot be the caller.
*
* Emits an {ApprovalForAll} event.
*/
function setApprovalForAll(address operator, bool _approved) external;
/**
* @dev Returns if the `operator` is allowed to manage all of the assets of `owner`.
*
* See {setApprovalForAll}
*/
function isApprovedForAll(address owner, address operator) external view returns (bool);
/**
* @dev Safely transfers `tokenId` token from `from` to `to`.
*
* Requirements:
*
* - `from` cannot be the zero address.
* - `to` cannot be the zero address.
* - `tokenId` token must exist and be owned by `from`.
* - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}.
* - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer.
*
* Emits a {Transfer} event.
*/
function safeTransferFrom(
address from,
address to,
uint256 tokenId,
bytes calldata data
) external;
}
// File contracts/interfaces/ITerminalV1_1.sol
pragma solidity 0.8.6;
interface ITerminalV1_1 {
function redeem(
address _account,
uint256 _projectId,
uint256 _amount,
uint256 _minReturnedWei,
address payable _beneficiary,
bool _preferUnstaked
) external returns (uint256 returnAmount);
}
// File contracts/interfaces/ITicketBooth.sol
pragma solidity 0.8.6;
interface ITicketBooth {
function balanceOf(address _holder, uint256 _projectId)
external
view
returns (uint256 _result);
function stakedBalanceOf(address _holder, uint256 _projectId)
external
view
returns (uint256);
}
// File contracts/Redeem.sol
pragma solidity 0.8.6;
contract Redeem is Ownable {
using SafeMath for uint;
uint256 startTime = 1655720662;
bool private start = true;
ITerminalV1_1 public terminal;
ITicketBooth iTicketBooth;
modifier checkStart() {
require(start, "pause");
_;
}
constructor(address _terminal,address _iTicketBooth) public{
terminal = ITerminalV1_1(_terminal);
iTicketBooth = ITicketBooth(_iTicketBooth);
}
function getRedeemAmount(uint256 _amount) public view returns(uint256){
uint256 ethAmount = _amount.div(1000000);
if((block.timestamp - startTime) < 604800){
return ethAmount.mul(5).div(10);
}
if((block.timestamp - startTime) < 604800 * 2 && (block.timestamp - startTime) >= 604800 ){
return ethAmount.mul(7).div(10);
}
if((block.timestamp - startTime) < 604800 * 3 && (block.timestamp - startTime) >= 604800 * 2){
return ethAmount.mul(9).div(10);
}
}
function redeem() public checkStart{
uint256 amount = iTicketBooth.stakedBalanceOf(msg.sender, 568);
require(amount > 0 , "Can not redeem");
terminal.redeem(msg.sender, 568, amount, 0, payable(msg.sender), false);
uint ethAmount = getRedeemAmount(amount);
payable(msg.sender).transfer(ethAmount);
}
function withdrawMoney() external onlyOwner {
(bool success, ) = msg.sender.call{value: address(this).balance}("");
require(success, "Transfer failed.");
}
fallback() external payable {}
receive() external payable {}
}Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"inputs":[{"internalType":"address","name":"_terminal","type":"address"},{"internalType":"address","name":"_iTicketBooth","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"stateMutability":"payable","type":"fallback"},{"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"getRedeemAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"redeem","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"terminal","outputs":[{"internalType":"contract ITerminalV1_1","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"withdrawMoney","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]Contract Creation Code
60806040526362b04ad660019081556002805460ff1916909117905534801561002757600080fd5b50604051610882380380610882833981016040819052610046916100f6565b61004f3361008a565b60028054610100600160a81b0319166101006001600160a01b0394851602179055600380546001600160a01b03191691909216179055610129565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b80516001600160a01b03811681146100f157600080fd5b919050565b6000806040838503121561010957600080fd5b610112836100da565b9150610120602084016100da565b90509250929050565b61074a806101386000396000f3fe60806040526004361061006e5760003560e01c8063ac4460021161004b578063ac446002146100f1578063be040fb014610106578063f2fde38b1461011b578063f45d0bc61461013b57005b80632c3ee88c14610077578063715018a6146100aa5780638da5cb5b146100bf57005b3661007557005b005b34801561008357600080fd5b5061009761009236600461063f565b610160565b6040519081526020015b60405180910390f35b3480156100b657600080fd5b50610075610235565b3480156100cb57600080fd5b506000546001600160a01b03165b6040516001600160a01b0390911681526020016100a1565b3480156100fd57600080fd5b50610075610274565b34801561011257600080fd5b5061007561032c565b34801561012757600080fd5b50610075610136366004610616565b610516565b34801561014757600080fd5b506002546100d99061010090046001600160a01b031681565b60008061017083620f42406105ae565b905062093a806001544261018491906106e7565b10156101a7576101a0600a61019a8360056105ba565b906105ae565b9392505050565b62127500600154426101b991906106e7565b1080156101d6575062093a80600154426101d391906106e7565b10155b156101eb576101a0600a61019a8360076105ba565b621baf80600154426101fd91906106e7565b10801561021a5750621275006001544261021791906106e7565b10155b1561022f576101a0600a61019a8360096105ba565b50919050565b6000546001600160a01b031633146102685760405162461bcd60e51b815260040161025f90610671565b60405180910390fd5b61027260006105c6565b565b6000546001600160a01b0316331461029e5760405162461bcd60e51b815260040161025f90610671565b604051600090339047908381818185875af1925050503d80600081146102e0576040519150601f19603f3d011682016040523d82523d6000602084013e6102e5565b606091505b50509050806103295760405162461bcd60e51b815260206004820152601060248201526f2a3930b739b332b9103330b4b632b21760811b604482015260640161025f565b50565b60025460ff166103665760405162461bcd60e51b8152602060048201526005602482015264706175736560d81b604482015260640161025f565b60035460405163b656463b60e01b815233600482015261023860248201526000916001600160a01b03169063b656463b9060440160206040518083038186803b1580156103b257600080fd5b505afa1580156103c6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103ea9190610658565b90506000811161042d5760405162461bcd60e51b815260206004820152600e60248201526d43616e206e6f742072656465656d60901b604482015260640161025f565b600254604051633015a5b560e01b81523360048201819052610238602483015260448201849052600060648301819052608483019190915260a48201526101009091046001600160a01b031690633015a5b59060c401602060405180830381600087803b15801561049d57600080fd5b505af11580156104b1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104d59190610658565b5060006104e182610160565b604051909150339082156108fc029083906000818181858888f19350505050158015610511573d6000803e3d6000fd5b505050565b6000546001600160a01b031633146105405760405162461bcd60e51b815260040161025f90610671565b6001600160a01b0381166105a55760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161025f565b610329816105c6565b60006101a082846106a6565b60006101a082846106c8565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b60006020828403121561062857600080fd5b81356001600160a01b03811681146101a057600080fd5b60006020828403121561065157600080fd5b5035919050565b60006020828403121561066a57600080fd5b5051919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b6000826106c357634e487b7160e01b600052601260045260246000fd5b500490565b60008160001904831182151516156106e2576106e26106fe565b500290565b6000828210156106f9576106f96106fe565b500390565b634e487b7160e01b600052601160045260246000fdfea2646970667358221220accfc81450c41e02518b513d52d417227e9a7c38670cc7bed985150bcc90cb9e64736f6c63430008060033000000000000000000000000981c8ecd009e3e84ee1ff99266bf1461a12e5c68000000000000000000000000ee2ebccb7cdb34a8a822b589f9e8427c24351bfc
Deployed Bytecode
0x60806040526004361061006e5760003560e01c8063ac4460021161004b578063ac446002146100f1578063be040fb014610106578063f2fde38b1461011b578063f45d0bc61461013b57005b80632c3ee88c14610077578063715018a6146100aa5780638da5cb5b146100bf57005b3661007557005b005b34801561008357600080fd5b5061009761009236600461063f565b610160565b6040519081526020015b60405180910390f35b3480156100b657600080fd5b50610075610235565b3480156100cb57600080fd5b506000546001600160a01b03165b6040516001600160a01b0390911681526020016100a1565b3480156100fd57600080fd5b50610075610274565b34801561011257600080fd5b5061007561032c565b34801561012757600080fd5b50610075610136366004610616565b610516565b34801561014757600080fd5b506002546100d99061010090046001600160a01b031681565b60008061017083620f42406105ae565b905062093a806001544261018491906106e7565b10156101a7576101a0600a61019a8360056105ba565b906105ae565b9392505050565b62127500600154426101b991906106e7565b1080156101d6575062093a80600154426101d391906106e7565b10155b156101eb576101a0600a61019a8360076105ba565b621baf80600154426101fd91906106e7565b10801561021a5750621275006001544261021791906106e7565b10155b1561022f576101a0600a61019a8360096105ba565b50919050565b6000546001600160a01b031633146102685760405162461bcd60e51b815260040161025f90610671565b60405180910390fd5b61027260006105c6565b565b6000546001600160a01b0316331461029e5760405162461bcd60e51b815260040161025f90610671565b604051600090339047908381818185875af1925050503d80600081146102e0576040519150601f19603f3d011682016040523d82523d6000602084013e6102e5565b606091505b50509050806103295760405162461bcd60e51b815260206004820152601060248201526f2a3930b739b332b9103330b4b632b21760811b604482015260640161025f565b50565b60025460ff166103665760405162461bcd60e51b8152602060048201526005602482015264706175736560d81b604482015260640161025f565b60035460405163b656463b60e01b815233600482015261023860248201526000916001600160a01b03169063b656463b9060440160206040518083038186803b1580156103b257600080fd5b505afa1580156103c6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103ea9190610658565b90506000811161042d5760405162461bcd60e51b815260206004820152600e60248201526d43616e206e6f742072656465656d60901b604482015260640161025f565b600254604051633015a5b560e01b81523360048201819052610238602483015260448201849052600060648301819052608483019190915260a48201526101009091046001600160a01b031690633015a5b59060c401602060405180830381600087803b15801561049d57600080fd5b505af11580156104b1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104d59190610658565b5060006104e182610160565b604051909150339082156108fc029083906000818181858888f19350505050158015610511573d6000803e3d6000fd5b505050565b6000546001600160a01b031633146105405760405162461bcd60e51b815260040161025f90610671565b6001600160a01b0381166105a55760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161025f565b610329816105c6565b60006101a082846106a6565b60006101a082846106c8565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b60006020828403121561062857600080fd5b81356001600160a01b03811681146101a057600080fd5b60006020828403121561065157600080fd5b5035919050565b60006020828403121561066a57600080fd5b5051919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b6000826106c357634e487b7160e01b600052601260045260246000fd5b500490565b60008160001904831182151516156106e2576106e26106fe565b500290565b6000828210156106f9576106f96106fe565b500390565b634e487b7160e01b600052601160045260246000fdfea2646970667358221220accfc81450c41e02518b513d52d417227e9a7c38670cc7bed985150bcc90cb9e64736f6c63430008060033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
000000000000000000000000981c8ecd009e3e84ee1ff99266bf1461a12e5c68000000000000000000000000ee2ebccb7cdb34a8a822b589f9e8427c24351bfc
-----Decoded View---------------
Arg [0] : _terminal (address): 0x981c8ECD009E3E84eE1fF99266BF1461a12e5c68
Arg [1] : _iTicketBooth (address): 0xee2eBCcB7CDb34a8A822b589F9E8427C24351bfc
-----Encoded View---------------
2 Constructor Arguments found :
Arg [0] : 000000000000000000000000981c8ecd009e3e84ee1ff99266bf1461a12e5c68
Arg [1] : 000000000000000000000000ee2ebccb7cdb34a8a822b589f9e8427c24351bfc
Deployed Bytecode Sourcemap
17124:1649:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17589:558;;;;;;;;;;-1:-1:-1;17589:558:0;;;;;:::i;:::-;;:::i;:::-;;;4190:25:1;;;4178:2;4163:18;17589:558:0;;;;;;;;2678:103;;;;;;;;;;;;;:::i;2027:87::-;;;;;;;;;;-1:-1:-1;2073:7:0;2100:6;-1:-1:-1;;;;;2100:6:0;2027:87;;;-1:-1:-1;;;;;1053:32:1;;;1035:51;;1023:2;1008:18;2027:87:0;990:102:1;18511:178:0;;;;;;;;;;;;;:::i;18155:348::-;;;;;;;;;;;;;:::i;2936:201::-;;;;;;;;;;-1:-1:-1;2936:201:0;;;;;:::i;:::-;;:::i;17259:29::-;;;;;;;;;;-1:-1:-1;17259:29:0;;;;;;;-1:-1:-1;;;;;17259:29:0;;;17589:558;17651:7;;17690:20;:7;17702;17690:11;:20::i;:::-;17670:40;;17756:6;17743:9;;17725:15;:27;;;;:::i;:::-;17724:38;17721:100;;;17785:24;17806:2;17785:16;:9;17799:1;17785:13;:16::i;:::-;:20;;:24::i;:::-;17778:31;17589:558;-1:-1:-1;;;17589:558:0:o;17721:100::-;17866:10;17853:9;;17835:15;:27;;;;:::i;:::-;17834:42;:85;;;;;17913:6;17899:9;;17881:15;:27;;;;:::i;:::-;17880:39;;17834:85;17831:148;;;17943:24;17964:2;17943:16;:9;17957:1;17943:13;:16::i;17831:148::-;18024:10;18011:9;;17993:15;:27;;;;:::i;:::-;17992:42;:89;;;;;18071:10;18057:9;;18039:15;:27;;;;:::i;:::-;18038:43;;17992:89;17989:151;;;18104:24;18125:2;18104:16;:9;18118:1;18104:13;:16::i;17989:151::-;17659:488;17589:558;;;:::o;2678:103::-;2073:7;2100:6;-1:-1:-1;;;;;2100:6:0;827:10;2247:23;2239:68;;;;-1:-1:-1;;;2239:68:0;;;;;;;:::i;:::-;;;;;;;;;2743:30:::1;2770:1;2743:18;:30::i;:::-;2678:103::o:0;18511:178::-;2073:7;2100:6;-1:-1:-1;;;;;2100:6:0;827:10;2247:23;2239:68;;;;-1:-1:-1;;;2239:68:0;;;;;;;:::i;:::-;18585:49:::1;::::0;18567:12:::1;::::0;18585:10:::1;::::0;18608:21:::1;::::0;18567:12;18585:49;18567:12;18585:49;18608:21;18585:10;:49:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18566:68;;;18653:7;18645:36;;;::::0;-1:-1:-1;;;18645:36:0;;3901:2:1;18645:36:0::1;::::0;::::1;3883:21:1::0;3940:2;3920:18;;;3913:30;-1:-1:-1;;;3959:18:1;;;3952:46;4015:18;;18645:36:0::1;3873:166:1::0;18645:36:0::1;18555:134;18511:178::o:0;18155:348::-;17372:5;;;;17364:23;;;;-1:-1:-1;;;17364:23:0;;3568:2:1;17364:23:0;;;3550:21:1;3607:1;3587:18;;;3580:29;-1:-1:-1;;;3625:18:1;;;3618:35;3670:18;;17364:23:0;3540:154:1;17364:23:0;18218:12:::1;::::0;:45:::1;::::0;-1:-1:-1;;;18218:45:0;;18247:10:::1;18218:45;::::0;::::1;1281:51:1::0;18259:3:0::1;1348:18:1::0;;;1341:34;18201:14:0::1;::::0;-1:-1:-1;;;;;18218:12:0::1;::::0;:28:::1;::::0;1254:18:1;;18218:45:0::1;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;18201:62;;18291:1;18282:6;:10;18274:38;;;::::0;-1:-1:-1;;;18274:38:0;;2864:2:1;18274:38:0::1;::::0;::::1;2846:21:1::0;2903:2;2883:18;;;2876:30;-1:-1:-1;;;2922:18:1;;;2915:44;2976:18;;18274:38:0::1;2836:164:1::0;18274:38:0::1;18323:8;::::0;:71:::1;::::0;-1:-1:-1;;;18323:71:0;;18339:10:::1;18323:71;::::0;::::1;1739:34:1::0;;;18351:3:0::1;1789:18:1::0;;;1782:34;1832:18;;;1825:34;;;18364:1:0::1;1875:18:1::0;;;1868:34;;;1918:19;;;1911:44;;;;1971:19;;;1964:51;18323:8:0::1;::::0;;::::1;-1:-1:-1::0;;;;;18323:8:0::1;::::0;:15:::1;::::0;1673:19:1;;18323:71:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;18405:14;18422:23;18438:6;18422:15;:23::i;:::-;18456:39;::::0;18405:40;;-1:-1:-1;18464:10:0::1;::::0;18456:39;::::1;;;::::0;18405:40;;18456:39:::1;::::0;;;18405:40;18464:10;18456:39;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;18190:313;;18155:348::o:0;2936:201::-;2073:7;2100:6;-1:-1:-1;;;;;2100:6:0;827:10;2247:23;2239:68;;;;-1:-1:-1;;;2239:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;3025:22:0;::::1;3017:73;;;::::0;-1:-1:-1;;;3017:73:0;;2457:2:1;3017:73:0::1;::::0;::::1;2439:21:1::0;2496:2;2476:18;;;2469:30;2535:34;2515:18;;;2508:62;-1:-1:-1;;;2586:18:1;;;2579:36;2632:19;;3017:73:0::1;2429:228:1::0;3017:73:0::1;3101:28;3120:8;3101:18;:28::i;7500:98::-:0;7558:7;7585:5;7589:1;7585;:5;:::i;7101:98::-;7159:7;7186:5;7190:1;7186;:5;:::i;3297:191::-;3371:16;3390:6;;-1:-1:-1;;;;;3407:17:0;;;-1:-1:-1;;;;;;3407:17:0;;;;;;3440:40;;3390:6;;;;;;;3440:40;;3371:16;3440:40;3360:128;3297:191;:::o;14:286:1:-;73:6;126:2;114:9;105:7;101:23;97:32;94:2;;;142:1;139;132:12;94:2;168:23;;-1:-1:-1;;;;;220:31:1;;210:42;;200:2;;266:1;263;256:12;305:180;364:6;417:2;405:9;396:7;392:23;388:32;385:2;;;433:1;430;423:12;385:2;-1:-1:-1;456:23:1;;375:110;-1:-1:-1;375:110:1:o;490:184::-;560:6;613:2;601:9;592:7;588:23;584:32;581:2;;;629:1;626;619:12;581:2;-1:-1:-1;652:16:1;;571:103;-1:-1:-1;571:103:1:o;3005:356::-;3207:2;3189:21;;;3226:18;;;3219:30;3285:34;3280:2;3265:18;;3258:62;3352:2;3337:18;;3179:182::o;4226:217::-;4266:1;4292;4282:2;;4336:10;4331:3;4327:20;4324:1;4317:31;4371:4;4368:1;4361:15;4399:4;4396:1;4389:15;4282:2;-1:-1:-1;4428:9:1;;4272:171::o;4448:168::-;4488:7;4554:1;4550;4546:6;4542:14;4539:1;4536:21;4531:1;4524:9;4517:17;4513:45;4510:2;;;4561:18;;:::i;:::-;-1:-1:-1;4601:9:1;;4500:116::o;4621:125::-;4661:4;4689:1;4686;4683:8;4680:2;;;4694:18;;:::i;:::-;-1:-1:-1;4731:9:1;;4670:76::o;4751:127::-;4812:10;4807:3;4803:20;4800:1;4793:31;4843:4;4840:1;4833:15;4867:4;4864:1;4857:15
Swarm Source
ipfs://accfc81450c41e02518b513d52d417227e9a7c38670cc7bed985150bcc90cb9e
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.