Source Code
Overview
ETH Balance
0.050390390390390388 ETH
Eth Value
$104.60 (@ $2,075.73/ETH)Latest 12 from a total of 12 transactions
| Transaction Hash |
Method
|
Block
|
From
|
|
To
|
||||
|---|---|---|---|---|---|---|---|---|---|
| Bet On Quarters | 20805225 | 538 days ago | IN | 0.00599599 ETH | 0.00151499 | ||||
| Bet On Quarters | 20805137 | 538 days ago | IN | 0.005 ETH | 0.00112201 | ||||
| Bet On Quarters | 20805128 | 538 days ago | IN | 0.005 ETH | 0.00139243 | ||||
| Bet On Quarters | 20805029 | 538 days ago | IN | 0.005 ETH | 0.00126267 | ||||
| Bet On Quarters | 20804985 | 538 days ago | IN | 0.005 ETH | 0.00101431 | ||||
| Bet On Quarters | 20804884 | 538 days ago | IN | 0.005 ETH | 0.00104343 | ||||
| Bet On Quarters | 20804869 | 538 days ago | IN | 0.00599599 ETH | 0.00068054 | ||||
| Bet On Quarters | 20804802 | 538 days ago | IN | 0.005 ETH | 0.00130273 | ||||
| Bet On Quarters | 20804175 | 538 days ago | IN | 0.00599599 ETH | 0.00046478 | ||||
| Bet On Quarters | 20804154 | 538 days ago | IN | 0.005 ETH | 0.00064803 | ||||
| Bet On Quarters | 20804149 | 538 days ago | IN | 0.005 ETH | 0.00064701 | ||||
| Bet On Quarters | 20798015 | 539 days ago | IN | 0.005 ETH | 0.00117085 |
Latest 12 internal transactions
Advanced mode:
| Parent Transaction Hash | Method | Block |
From
|
|
To
|
||
|---|---|---|---|---|---|---|---|
| Transfer | 20805225 | 538 days ago | 0.00119919 ETH | ||||
| Transfer | 20805137 | 538 days ago | 0.001 ETH | ||||
| Transfer | 20805128 | 538 days ago | 0.001 ETH | ||||
| Transfer | 20805029 | 538 days ago | 0.001 ETH | ||||
| Transfer | 20804985 | 538 days ago | 0.001 ETH | ||||
| Transfer | 20804884 | 538 days ago | 0.001 ETH | ||||
| Transfer | 20804869 | 538 days ago | 0.00119919 ETH | ||||
| Transfer | 20804802 | 538 days ago | 0.001 ETH | ||||
| Transfer | 20804175 | 538 days ago | 0.00119919 ETH | ||||
| Transfer | 20804154 | 538 days ago | 0.001 ETH | ||||
| Transfer | 20804149 | 538 days ago | 0.001 ETH | ||||
| Transfer | 20798015 | 539 days ago | 0.001 ETH |
Loading...
Loading
Loading...
Loading
Cross-Chain Transactions
Loading...
Loading
Contract Name:
TetherDeathPredictionMarket
Compiler Version
v0.8.24+commit.e11b9ed9
Optimization Enabled:
Yes with 200 runs
Other Settings:
paris EvmVersion
Contract Source Code (Solidity Standard Json-Input format)
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.20;
// Import OpenZeppelin's Ownable contract
import "@openzeppelin/contracts/access/Ownable.sol";
// Import IERC20 interface
import "@openzeppelin/contracts/token/ERC20/IERC20.sol";
// Uniswap V3 Pool interface
interface IUniswapV3Pool {
function slot0()
external
view
returns (
uint160 sqrtPriceX96,
int24 tick,
uint16 observationIndex,
uint16 observationCardinality,
uint16 observationCardinalityNext,
uint8 feeProtocol,
bool unlocked
);
function token0() external view returns (address);
function token1() external view returns (address);
}
// Uniswap V2 Pair interface
interface IUniswapV2Pair {
function getReserves()
external
view
returns (
uint112 reserve0,
uint112 reserve1,
uint32 blockTimestampLast
);
function token0() external view returns (address);
function token1() external view returns (address);
}
contract TetherDeathPredictionMarket is Ownable {
IUniswapV3Pool public uniswapV3Pool = IUniswapV3Pool(0x3416cF6C708Da44DB2624D63ea0AAef7113527C6);
IUniswapV2Pair public uniswapV2Pair = IUniswapV2Pair(0x3041CbD36888bECc7bbCBc0045E3B1f144466f5f);
constructor() Ownable(msg.sender) {}
uint256 public constant BASE_COST = 0.005 ether; // 10 USDC with 6 decimals
uint256 public constant FIRST_THRESHOLD = 1000; // At 1,000 bets
uint256 public constant SECOND_THRESHOLD = 10000; // At 10,000 bets
uint256 public constant FEE_PERCENT = 20; // 20%
uint256 public constant TOTAL_QUARTERS = 8; // Q4 2024 to Q3 2027
uint256 public constant TETHER_IS_LEGIT = 0; // Special ID for "Tether is Legit"
uint256 public constant Q4_2024_START = 1727740800; // October 1, 2024
uint256 public constant QUARTER_DURATION = 91 days;
address public constant USDT_TOKEN_ADDRESS = 0xdAC17F958D2ee523a2206206994597C13D831ec7;
address public constant USDC_TOKEN_ADDRESS = 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48;
uint256 public tetherDeathTimestamp;
uint256 public winningQuarter;
bool public tetherIsDead;
// Mapping from quarter ID to total bets
mapping(uint256 => uint256) public totalBetsPerQuarter;
mapping(uint256 => uint256) public totalBetsPerQuarterValue;
// Mapping from quarter ID to user address to number of bets
mapping(uint256 => mapping(address => uint256)) public betsPerQuarterPerUser;
// Mapping to check if a user has withdrawn their winnings
mapping(address => bool) public hasWithdrawn;
event BetPlaced(address indexed user, uint256 quarter, uint256 numBets);
event TetherDeclaredDead(uint256 timestamp, uint256 quarter);
event TetherDeclaredLegit(uint256 timestamp);
event WinningsWithdrawn(address indexed user, uint256 amount);
receive() external payable {}
// Function to place bets on quarters with bonding curve pricing
function betOnQuarters(uint256[] calldata quarterIds, uint256[] calldata numBetsArray) external payable {
require(!tetherIsDead, "Betting is closed, Tether has died");
require(quarterIds.length > 0 && quarterIds.length <= TOTAL_QUARTERS, "Invalid number of quarters");
require(quarterIds.length == numBetsArray.length, "quarterIds and numBets length mismatch");
uint256 totalCost = 0;
for (uint256 i = 0; i < quarterIds.length; i++) {
uint256 quarterId = quarterIds[i];
uint256 numBets = numBetsArray[i];
require(quarterId <= TOTAL_QUARTERS || quarterId == TETHER_IS_LEGIT, "Invalid quarter ID");
require(numBets > 0, "Number of bets must be greater than zero");
// Calculate cost for this quarter and number of bets
uint256 betCost = getTotalBetCost(quarterId, numBets);
totalCost += betCost;
// Update bets per user
betsPerQuarterPerUser[quarterId][msg.sender] += numBets;
// Update total bets per quarter
totalBetsPerQuarter[quarterId] += numBets;
// Update total bets value per quarter (excluding fee)
uint256 netBetAmount = (betCost * (100 - FEE_PERCENT)) / 100;
totalBetsPerQuarterValue[quarterId] += netBetAmount;
emit BetPlaced(msg.sender, quarterId, numBets);
}
// Ensure the user sent the correct amount of ETH
require(msg.value >= totalCost, "Incorrect ETH amount sent");
// Calculate fee
uint256 totalFee = (totalCost * FEE_PERCENT) / 100;
// Transfer fee to owner
(bool success, ) = payable(owner()).call{value: totalFee}("");
require(success, "Fee transfer to owner failed");
// The remaining ETH stays in the contract automatically
}
// Function to calculate the total cost for a number of bets on a quarter
function getTotalBetCost(uint256 quarterId, uint256 numBets) public view returns (uint256) {
uint256 totalCost = 0;
uint256 n = totalBetsPerQuarter[quarterId]; // Existing bets on the quarter
for (uint256 i = 1; i <= numBets; i++) {
uint256 costPerBet = getCostPerBet(n + i);
totalCost += costPerBet;
}
return totalCost;
}
// Function to get the cost per bet based on the number of existing bets
function getCostPerBet(uint256 n) public pure returns (uint256) {
if (n <= FIRST_THRESHOLD) {
// Linear increase from 0.01 ETH to 1 ETH over the first 1,000 bets
uint256 costPerBet = BASE_COST + ((n - 1) * (1 ether - BASE_COST)) / (FIRST_THRESHOLD - 1);
return costPerBet;
} else if (n <= SECOND_THRESHOLD) {
// Linear increase from 1 ETH to 10 ETH over the next 9,000 bets
uint256 costPerBet = 1 ether + ((n - FIRST_THRESHOLD) * (10 ether - 1 ether)) / (SECOND_THRESHOLD - FIRST_THRESHOLD);
return costPerBet;
} else {
// Exponential increase, doubling each bet after 10,000 bets
uint256 exponent = n - SECOND_THRESHOLD;
uint256 costPerBet = 10 ether * (2 ** exponent);
return costPerBet;
}
}
// Function to check the price for a number of bets on a quarter
function checkBetPrice(uint256 quarterId, uint256 numBets) external view returns (uint256 totalCost, uint256[] memory costPerBetArray) {
uint256 n = totalBetsPerQuarter[quarterId]; // Existing bets on the quarter
totalCost = 0;
costPerBetArray = new uint256[](numBets);
for (uint256 i = 1; i <= numBets; i++) {
uint256 costPerBet = getCostPerBet(n + i);
costPerBetArray[i - 1] = costPerBet;
totalCost += costPerBet;
}
return (totalCost, costPerBetArray);
}
// Function to declare Tether dead
function declareTetherDead() public {
require(!tetherIsDead, "Tether is already declared dead");
require(block.timestamp <= getQuarterEndTimestamp(TOTAL_QUARTERS), "Cannot declare Tether dead after betting period");
uint256 priceV3 = getUSDTPriceInUSDC_V3();
uint256 priceV2 = getUSDTPriceInUSDC_V2();
require(priceV3 <= 100000 && priceV2 <= 100000, "Tether is not dead yet"); // 0.1 USDC per USDT
tetherIsDead = true;
tetherDeathTimestamp = block.timestamp;
winningQuarter = getQuarterId(tetherDeathTimestamp);
emit TetherDeclaredDead(tetherDeathTimestamp, winningQuarter);
}
// Function to declare Tether legit after betting period ends
function declareTetherLegit() public {
require(!tetherIsDead, "Tether is already declared dead");
require(block.timestamp > getQuarterEndTimestamp(TOTAL_QUARTERS), "Betting period is not over yet");
tetherIsDead = true;
tetherDeathTimestamp = block.timestamp;
winningQuarter = TETHER_IS_LEGIT;
emit TetherDeclaredLegit(tetherDeathTimestamp);
}
// Function to withdraw winnings
function withdrawWinnings() public {
require(tetherIsDead, "Tether is not dead yet");
require(!hasWithdrawn[msg.sender], "Winnings already withdrawn");
uint256 userBets = betsPerQuarterPerUser[winningQuarter][msg.sender];
require(userBets > 0, "You did not bet on the winning quarter");
uint256 totalBets = totalBetsPerQuarter[winningQuarter];
uint256 contractBalance = address(this).balance;
uint256 winnings = (contractBalance * userBets) / totalBets;
// Mark as withdrawn
hasWithdrawn[msg.sender] = true;
(bool success, ) = msg.sender.call{value: winnings}("");
require(success, "ETH transfer failed");
emit WinningsWithdrawn(msg.sender, winnings);
}
// Function to get the USDT price in USDC from Uniswap V3
function getUSDTPriceInUSDC_V3() public view returns (uint256 price) {
(uint160 sqrtPriceX96, , , , , , ) = uniswapV3Pool.slot0();
address token0 = uniswapV3Pool.token0();
address token1 = uniswapV3Pool.token1();
address usdcAddress = USDC_TOKEN_ADDRESS;
address usdtAddress = USDT_TOKEN_ADDRESS;
uint256 decimalFactor = 1e6; // USDC and USDT have 6 decimals
if (token0 == usdcAddress && token1 == usdtAddress) {
// Price of USDT in USDC
uint256 numerator = uint256(sqrtPriceX96) * uint256(sqrtPriceX96) * decimalFactor;
uint256 denominator = 1 << 192;
price = numerator / denominator;
} else if (token0 == usdtAddress && token1 == usdcAddress) {
// Price of USDT in USDC
uint256 numerator = uint256(1 << 192) * decimalFactor;
uint256 denominator = uint256(sqrtPriceX96) * uint256(sqrtPriceX96);
price = numerator / denominator;
} else {
revert("Invalid V3 pool tokens");
}
}
// Function to get the USDT price in USDC from Uniswap V2
function getUSDTPriceInUSDC_V2() public view returns (uint256 price) {
(uint112 reserve0, uint112 reserve1, ) = uniswapV2Pair.getReserves();
address token0 = uniswapV2Pair.token0();
address token1 = uniswapV2Pair.token1();
address usdcAddress = USDC_TOKEN_ADDRESS;
address usdtAddress = USDT_TOKEN_ADDRESS;
uint256 decimalFactor = 1e6; // USDC and USDT have 6 decimals
if (token0 == usdcAddress && token1 == usdtAddress) {
// Price of USDT in USDC: reserveUSDC / reserveUSDT
price = (uint256(reserve0) * decimalFactor) / uint256(reserve1);
} else if (token0 == usdtAddress && token1 == usdcAddress) {
// Price of USDT in USDC: reserveUSDC / reserveUSDT
price = (uint256(reserve1) * decimalFactor) / uint256(reserve0);
} else {
revert("Invalid V2 pool tokens");
}
}
// Function to get the quarter ID based on a timestamp
function getQuarterId(uint256 timestamp) public pure returns (uint256) {
if (timestamp < Q4_2024_START) {
revert("Timestamp is before betting period starts");
}
uint256 timeSinceStart = timestamp - Q4_2024_START;
uint256 quarterId = (timeSinceStart / QUARTER_DURATION) + 1;
if (quarterId > TOTAL_QUARTERS) {
// After the last quarter, it's "Tether is Legit"
return TETHER_IS_LEGIT;
}
return quarterId;
}
// Function to get the end timestamp of a quarter
function getQuarterEndTimestamp(uint256 quarterId) public pure returns (uint256) {
require(quarterId >= 1 && quarterId <= TOTAL_QUARTERS, "Invalid quarter ID");
return Q4_2024_START + (quarterId * QUARTER_DURATION) - 1;
}
// Function to change the owner address
function changeOwner(address newOwner) external onlyOwner {
transferOwnership(newOwner);
}
// Function to get the total net USDC bet on a specific quarter (excluding fees)
function getTotalETHBetOnQuarter(uint256 quarterId) public view returns (uint256) {
return totalBetsPerQuarterValue[quarterId];
}
// Function to get the number of bets a user has on a specific quarter
function getUserBetsOnQuarter(address user, uint256 quarterId) external view returns (uint256) {
return betsPerQuarterPerUser[quarterId][user];
}
function getQuarterInfo(uint256 quarterId, address user) external view returns (uint256, uint256, uint256) {
return (totalBetsPerQuarter[quarterId], totalBetsPerQuarterValue[quarterId], betsPerQuarterPerUser[quarterId][user]);
}
function getContractBalance() external view returns (uint256) {
return address(this).balance;
}
function getTetherTrustScore() external view returns (uint256) {
uint256 allETH = address(this).balance;
uint256 USDTTrust = getTotalETHBetOnQuarter(0);
uint256 USDCTrustScore = USDTTrust / allETH;
return USDCTrustScore;
}
}// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts (last updated v5.0.0) (access/Ownable.sol)
pragma solidity ^0.8.20;
import {Context} from "../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.
*
* The initial owner is set to the address provided by the deployer. 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;
/**
* @dev The caller account is not authorized to perform an operation.
*/
error OwnableUnauthorizedAccount(address account);
/**
* @dev The owner is not a valid owner account. (eg. `address(0)`)
*/
error OwnableInvalidOwner(address owner);
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);
/**
* @dev Initializes the contract setting the address provided by the deployer as the initial owner.
*/
constructor(address initialOwner) {
if (initialOwner == address(0)) {
revert OwnableInvalidOwner(address(0));
}
_transferOwnership(initialOwner);
}
/**
* @dev Throws if called by any account other than the owner.
*/
modifier onlyOwner() {
_checkOwner();
_;
}
/**
* @dev Returns the address of the current owner.
*/
function owner() public view virtual returns (address) {
return _owner;
}
/**
* @dev Throws if the sender is not the owner.
*/
function _checkOwner() internal view virtual {
if (owner() != _msgSender()) {
revert OwnableUnauthorizedAccount(_msgSender());
}
}
/**
* @dev Leaves the contract without owner. It will not be possible to call
* `onlyOwner` functions. Can only be called by the current owner.
*
* NOTE: Renouncing ownership will leave the contract without an owner,
* thereby disabling 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 {
if (newOwner == address(0)) {
revert OwnableInvalidOwner(address(0));
}
_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);
}
}// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts (last updated v5.0.0) (token/ERC20/IERC20.sol)
pragma solidity ^0.8.20;
/**
* @dev Interface of the ERC20 standard as defined in the EIP.
*/
interface IERC20 {
/**
* @dev Emitted when `value` tokens are moved from one account (`from`) to
* another (`to`).
*
* Note that `value` may be zero.
*/
event Transfer(address indexed from, address indexed to, uint256 value);
/**
* @dev Emitted when the allowance of a `spender` for an `owner` is set by
* a call to {approve}. `value` is the new allowance.
*/
event Approval(address indexed owner, address indexed spender, uint256 value);
/**
* @dev Returns the value of tokens in existence.
*/
function totalSupply() external view returns (uint256);
/**
* @dev Returns the value of tokens owned by `account`.
*/
function balanceOf(address account) external view returns (uint256);
/**
* @dev Moves a `value` amount of tokens from the caller's account to `to`.
*
* Returns a boolean value indicating whether the operation succeeded.
*
* Emits a {Transfer} event.
*/
function transfer(address to, uint256 value) external returns (bool);
/**
* @dev Returns the remaining number of tokens that `spender` will be
* allowed to spend on behalf of `owner` through {transferFrom}. This is
* zero by default.
*
* This value changes when {approve} or {transferFrom} are called.
*/
function allowance(address owner, address spender) external view returns (uint256);
/**
* @dev Sets a `value` amount of tokens as the allowance of `spender` over the
* caller's tokens.
*
* Returns a boolean value indicating whether the operation succeeded.
*
* IMPORTANT: Beware that changing an allowance with this method brings the risk
* that someone may use both the old and the new allowance by unfortunate
* transaction ordering. One possible solution to mitigate this race
* condition is to first reduce the spender's allowance to 0 and set the
* desired value afterwards:
* https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729
*
* Emits an {Approval} event.
*/
function approve(address spender, uint256 value) external returns (bool);
/**
* @dev Moves a `value` amount of tokens from `from` to `to` using the
* allowance mechanism. `value` is then deducted from the caller's
* allowance.
*
* Returns a boolean value indicating whether the operation succeeded.
*
* Emits a {Transfer} event.
*/
function transferFrom(address from, address to, uint256 value) external returns (bool);
}// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts (last updated v5.0.1) (utils/Context.sol)
pragma solidity ^0.8.20;
/**
* @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;
}
function _contextSuffixLength() internal view virtual returns (uint256) {
return 0;
}
}{
"optimizer": {
"enabled": true,
"runs": 200
},
"evmVersion": "paris",
"outputSelection": {
"*": {
"*": [
"evm.bytecode",
"evm.deployedBytecode",
"devdoc",
"userdoc",
"metadata",
"abi"
]
}
},
"libraries": {}
}Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"OwnableInvalidOwner","type":"error"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"OwnableUnauthorizedAccount","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":false,"internalType":"uint256","name":"quarter","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"numBets","type":"uint256"}],"name":"BetPlaced","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"timestamp","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"quarter","type":"uint256"}],"name":"TetherDeclaredDead","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"timestamp","type":"uint256"}],"name":"TetherDeclaredLegit","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"WinningsWithdrawn","type":"event"},{"inputs":[],"name":"BASE_COST","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"FEE_PERCENT","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"FIRST_THRESHOLD","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"Q4_2024_START","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"QUARTER_DURATION","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"SECOND_THRESHOLD","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"TETHER_IS_LEGIT","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"TOTAL_QUARTERS","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"USDC_TOKEN_ADDRESS","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"USDT_TOKEN_ADDRESS","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256[]","name":"quarterIds","type":"uint256[]"},{"internalType":"uint256[]","name":"numBetsArray","type":"uint256[]"}],"name":"betOnQuarters","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"address","name":"","type":"address"}],"name":"betsPerQuarterPerUser","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"changeOwner","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"quarterId","type":"uint256"},{"internalType":"uint256","name":"numBets","type":"uint256"}],"name":"checkBetPrice","outputs":[{"internalType":"uint256","name":"totalCost","type":"uint256"},{"internalType":"uint256[]","name":"costPerBetArray","type":"uint256[]"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"declareTetherDead","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"declareTetherLegit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getContractBalance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"n","type":"uint256"}],"name":"getCostPerBet","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"uint256","name":"quarterId","type":"uint256"}],"name":"getQuarterEndTimestamp","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"uint256","name":"timestamp","type":"uint256"}],"name":"getQuarterId","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"uint256","name":"quarterId","type":"uint256"},{"internalType":"address","name":"user","type":"address"}],"name":"getQuarterInfo","outputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getTetherTrustScore","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"quarterId","type":"uint256"},{"internalType":"uint256","name":"numBets","type":"uint256"}],"name":"getTotalBetCost","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"quarterId","type":"uint256"}],"name":"getTotalETHBetOnQuarter","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getUSDTPriceInUSDC_V2","outputs":[{"internalType":"uint256","name":"price","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getUSDTPriceInUSDC_V3","outputs":[{"internalType":"uint256","name":"price","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"},{"internalType":"uint256","name":"quarterId","type":"uint256"}],"name":"getUserBetsOnQuarter","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"hasWithdrawn","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"tetherDeathTimestamp","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tetherIsDead","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"totalBetsPerQuarter","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"totalBetsPerQuarterValue","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"contract IUniswapV2Pair","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV3Pool","outputs":[{"internalType":"contract IUniswapV3Pool","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"winningQuarter","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"withdrawWinnings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]Contract Creation Code
6080604052600180546001600160a01b0319908116733416cf6c708da44db2624d63ea0aaef7113527c61790915560028054909116733041cbd36888becc7bbcbc0045e3b1f144466f5f17905534801561005857600080fd5b50338061007f57604051631e4fbdf760e01b81526000600482015260240160405180910390fd5b6100888161008e565b506100de565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b611f21806100ed6000396000f3fe6080604052600436106102335760003560e01c80638fb5f35d1161012e578063d8deaa7a116100ab578063efd321261161006f578063efd32126146106e7578063f2fde38b14610707578063f4ed244c14610727578063f55ebd2a1461073c578063f7110b5a1461075c57600080fd5b8063d8deaa7a14610645578063e56bfa8f14610665578063e5f8a0481461067b578063eaf98d23146106bd578063eb3c7f53146106d257600080fd5b8063b3d673d8116100f2578063b3d673d81461056a578063b8b5e5c314610592578063bf38cd1514610602578063c8b3da0214610618578063cc42e83a1461063057600080fd5b80638fb5f35d146104d857806399fbde35146105055780639f929c201461051a578063a00d95261461052f578063a6f9dae11461054a57600080fd5b806356336efe116101bc578063736be62811610180578063736be6281461043e578063755f8ffd1461045e5780637cbe3705146104785780637f5c8cdc146104a55780638da5cb5b146104ba57600080fd5b806356336efe146103935780635e2c19db146103a957806369b1ed7d146103e95780636f9fb98a14610416578063715018a61461042957600080fd5b806335b195cd1161020357806335b195cd146102e95780633bebb4911461030957806349bd5a5e1461031e5780634b1e0a52146103565780634d286a3d1461036b57600080fd5b80622259801461023f578063117a5989146102765780631ef4f543146102bc57806322caf11f146102d257600080fd5b3661023a57005b600080fd5b34801561024b57600080fd5b5061025f61025a366004611a3d565b610771565b60405161026d929190611a5f565b60405180910390f35b34801561028257600080fd5b506102ae610291366004611ac4565b600860209081526000928352604080842090915290825290205481565b60405190815260200161026d565b3480156102c857600080fd5b506102ae61271081565b3480156102de57600080fd5b506102ae6277f88081565b3480156102f557600080fd5b506102ae610304366004611af4565b610835565b61031c610317366004611b52565b6108ea565b005b34801561032a57600080fd5b5060025461033e906001600160a01b031681565b6040516001600160a01b03909116815260200161026d565b34801561036257600080fd5b506102ae610d27565b34801561037757600080fd5b5061033e73dac17f958d2ee523a2206206994597c13d831ec781565b34801561039f57600080fd5b506102ae60045481565b3480156103b557600080fd5b506103d96103c4366004611bbe565b60096020526000908152604090205460ff1681565b604051901515815260200161026d565b3480156103f557600080fd5b506102ae610404366004611af4565b60076020526000908152604090205481565b34801561042257600080fd5b50476102ae565b34801561043557600080fd5b5061031c610fe9565b34801561044a57600080fd5b506102ae610459366004611af4565b610ffd565b34801561046a57600080fd5b506005546103d99060ff1681565b34801561048457600080fd5b506102ae610493366004611af4565b60009081526007602052604090205490565b3480156104b157600080fd5b5061031c61107f565b3480156104c657600080fd5b506000546001600160a01b031661033e565b3480156104e457600080fd5b506102ae6104f3366004611af4565b60066020526000908152604090205481565b34801561051157600080fd5b506102ae600881565b34801561052657600080fd5b506102ae61121c565b34801561053b57600080fd5b506102ae6611c37937e0800081565b34801561055657600080fd5b5061031c610565366004611bbe565b6114c0565b34801561057657600080fd5b5061033e73a0b86991c6218b36c1d19d4a2e9eb0ce3606eb4881565b34801561059e57600080fd5b506105e76105ad366004611ac4565b6000828152600660209081526040808320546007835281842054600884528285206001600160a01b03871686529093529220549250925092565b6040805193845260208401929092529082015260600161026d565b34801561060e57600080fd5b506102ae60035481565b34801561062457600080fd5b506102ae6366fb3b8081565b34801561063c57600080fd5b5061031c6114d4565b34801561065157600080fd5b506102ae610660366004611a3d565b611704565b34801561067157600080fd5b506102ae6103e881565b34801561068757600080fd5b506102ae610696366004611bdb565b60009081526008602090815260408083206001600160a01b03949094168352929052205490565b3480156106c957600080fd5b506102ae601481565b3480156106de57600080fd5b506102ae61175a565b3480156106f357600080fd5b506102ae610702366004611af4565b61179c565b34801561071357600080fd5b5061031c610722366004611bbe565b611886565b34801561073357600080fd5b506102ae600081565b34801561074857600080fd5b5060015461033e906001600160a01b031681565b34801561076857600080fd5b5061031c6118c1565b6000828152600660205260408120546060908367ffffffffffffffff81111561079c5761079c611c07565b6040519080825280602002602001820160405280156107c5578160200160208202803683370190505b50915060015b84811161082b5760006107e16107028385611c33565b905080846107f0600185611c46565b8151811061080057610800611c59565b60209081029190910101526108158186611c33565b945050808061082390611c6f565b9150506107cb565b50505b9250929050565b60006366fb3b808210156108a25760405162461bcd60e51b815260206004820152602960248201527f54696d657374616d70206973206265666f72652062657474696e6720706572696044820152686f642073746172747360b81b60648201526084015b60405180910390fd5b60006108b26366fb3b8084611c46565b905060006108c36277f88083611c88565b6108ce906001611c33565b905060088111156108e3575060009392505050565b9392505050565b60055460ff16156109485760405162461bcd60e51b815260206004820152602260248201527f42657474696e6720697320636c6f7365642c2054657468657220686173206469604482015261195960f21b6064820152608401610899565b8215801590610958575060088311155b6109a45760405162461bcd60e51b815260206004820152601a60248201527f496e76616c6964206e756d626572206f662071756172746572730000000000006044820152606401610899565b828114610a025760405162461bcd60e51b815260206004820152602660248201527f7175617274657249647320616e64206e756d42657473206c656e677468206d696044820152650e6dac2e8c6d60d31b6064820152608401610899565b6000805b84811015610bfe576000868683818110610a2257610a22611c59565b9050602002013590506000858584818110610a3f57610a3f611c59565b905060200201359050600882111580610a56575081155b610a975760405162461bcd60e51b8152602060048201526012602482015271125b9d985b1a59081c5d585c9d195c88125160721b6044820152606401610899565b60008111610af85760405162461bcd60e51b815260206004820152602860248201527f4e756d626572206f662062657473206d7573742062652067726561746572207460448201526768616e207a65726f60c01b6064820152608401610899565b6000610b048383611704565b9050610b108186611c33565b6000848152600860209081526040808320338452909152812080549297508492909190610b3e908490611c33565b909155505060008381526006602052604081208054849290610b61908490611c33565b90915550600090506064610b76601482611c46565b610b809084611caa565b610b8a9190611c88565b905080600760008681526020019081526020016000206000828254610baf9190611c33565b9091555050604080518581526020810185905233917e1ecf1d0c4d22f324b3ecb9cdf0e5f772bc74ac104e6626f4b3845433d03105910160405180910390a2505060019092019150610a069050565b5080341015610c4f5760405162461bcd60e51b815260206004820152601960248201527f496e636f72726563742045544820616d6f756e742073656e74000000000000006044820152606401610899565b60006064610c5e601484611caa565b610c689190611c88565b90506000610c7e6000546001600160a01b031690565b6001600160a01b03168260405160006040518083038185875af1925050503d8060008114610cc8576040519150601f19603f3d011682016040523d82523d6000602084013e610ccd565b606091505b5050905080610d1e5760405162461bcd60e51b815260206004820152601c60248201527f466565207472616e7366657220746f206f776e6572206661696c6564000000006044820152606401610899565b50505050505050565b600080600160009054906101000a90046001600160a01b03166001600160a01b0316633850c7bd6040518163ffffffff1660e01b815260040160e060405180830381865afa158015610d7d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610da19190611cd3565b50505050505090506000600160009054906101000a90046001600160a01b03166001600160a01b0316630dfe16816040518163ffffffff1660e01b8152600401602060405180830381865afa158015610dfe573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e229190611d77565b90506000600160009054906101000a90046001600160a01b03166001600160a01b031663d21220a76040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e79573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e9d9190611d77565b905073a0b86991c6218b36c1d19d4a2e9eb0ce3606eb4873dac17f958d2ee523a2206206994597c13d831ec7620f42406001600160a01b03851683148015610ef65750816001600160a01b0316846001600160a01b0316145b15610f3557600081610f116001600160a01b03891680611caa565b610f1b9190611caa565b9050600160c01b610f2c8183611c88565b98505050610fe0565b816001600160a01b0316856001600160a01b0316148015610f675750826001600160a01b0316846001600160a01b0316145b15610f9f576000610f7c82600160c01b611caa565b90506000610f936001600160a01b03891680611caa565b9050610f2c8183611c88565b60405162461bcd60e51b8152602060048201526016602482015275496e76616c696420563320706f6f6c20746f6b656e7360501b6044820152606401610899565b50505050505090565b610ff16119c0565b610ffb60006119ed565b565b600060018210158015611011575060088211155b6110525760405162461bcd60e51b8152602060048201526012602482015271125b9d985b1a59081c5d585c9d195c88125160721b6044820152606401610899565b60016110616277f88084611caa565b61106f906366fb3b80611c33565b6110799190611c46565b92915050565b60055460ff16156110d25760405162461bcd60e51b815260206004820152601f60248201527f54657468657220697320616c7265616479206465636c617265642064656164006044820152606401610899565b6110dc6008610ffd565b4211156111435760405162461bcd60e51b815260206004820152602f60248201527f43616e6e6f74206465636c61726520546574686572206465616420616674657260448201526e0818995d1d1a5b99c81c195c9a5bd9608a1b6064820152608401610899565b600061114d610d27565b9050600061115961121c565b9050620186a082111580156111715750620186a08111155b6111b65760405162461bcd60e51b815260206004820152601660248201527515195d1a195c881a5cc81b9bdd0819195859081e595d60521b6044820152606401610899565b6005805460ff191660011790554260038190556111d290610835565b60048190556003546040517f6fc60c8ed1fb5c8732791cfb7835138c8007b5a680c1992ba6fc2e0cf8f118d892611210928252602082015260400190565b60405180910390a15050565b6000806000600260009054906101000a90046001600160a01b03166001600160a01b0316630902f1ac6040518163ffffffff1660e01b8152600401606060405180830381865afa158015611274573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112989190611dab565b50915091506000600260009054906101000a90046001600160a01b03166001600160a01b0316630dfe16816040518163ffffffff1660e01b8152600401602060405180830381865afa1580156112f2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113169190611d77565b90506000600260009054906101000a90046001600160a01b03166001600160a01b031663d21220a76040518163ffffffff1660e01b8152600401602060405180830381865afa15801561136d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113919190611d77565b905073a0b86991c6218b36c1d19d4a2e9eb0ce3606eb4873dac17f958d2ee523a2206206994597c13d831ec7620f42406001600160a01b038516831480156113ea5750816001600160a01b0316846001600160a01b0316145b1561141f57856001600160701b031681886001600160701b031661140e9190611caa565b6114189190611c88565b97506114b6565b816001600160a01b0316856001600160a01b03161480156114515750826001600160a01b0316846001600160a01b0316145b1561147557866001600160701b031681876001600160701b031661140e9190611caa565b60405162461bcd60e51b8152602060048201526016602482015275496e76616c696420563220706f6f6c20746f6b656e7360501b6044820152606401610899565b5050505050505090565b6114c86119c0565b6114d181611886565b50565b60055460ff1661151f5760405162461bcd60e51b815260206004820152601660248201527515195d1a195c881a5cc81b9bdd0819195859081e595d60521b6044820152606401610899565b3360009081526009602052604090205460ff161561157f5760405162461bcd60e51b815260206004820152601a60248201527f57696e6e696e677320616c72656164792077697468647261776e0000000000006044820152606401610899565b6004546000908152600860209081526040808320338452909152902054806115f85760405162461bcd60e51b815260206004820152602660248201527f596f7520646964206e6f7420626574206f6e207468652077696e6e696e6720716044820152653ab0b93a32b960d11b6064820152608401610899565b600454600090815260066020526040812054904790826116188584611caa565b6116229190611c88565b33600081815260096020526040808220805460ff19166001179055519293509183908381818185875af1925050503d806000811461167c576040519150601f19603f3d011682016040523d82523d6000602084013e611681565b606091505b50509050806116c85760405162461bcd60e51b8152602060048201526013602482015272115512081d1c985b9cd9995c8819985a5b1959606a1b6044820152606401610899565b60405182815233907f24215bbaf0832fa4d6ffef16dee3971d8b714921fef3ad63f793d578983c6dc29060200160405180910390a25050505050565b600082815260066020526040812054819060015b84811161175057600061172e6107028385611c33565b905061173a8185611c33565b935050808061174890611c6f565b915050611718565b5090949350505050565b600080805260076020527f6d5257204ebe7d88fd91ae87941cb2dd9d8062b64ae5a2bd2d28ec40b9fbf6df54479060006117948383611c88565b949350505050565b60006103e882116117ff5760006117b660016103e8611c46565b6117cf6611c37937e08000670de0b6b3a7640000611c46565b6117da600186611c46565b6117e49190611caa565b6117ee9190611c88565b6108e3906611c37937e08000611c33565b61271082116118525760006118186103e8612710611c46565b6118246103e885611c46565b61183690677ce66c50e2840000611caa565b6118409190611c88565b6108e390670de0b6b3a7640000611c33565b600061186061271084611c46565b9050600061186f826002611edf565b61179490678ac7230489e80000611caa565b919050565b61188e6119c0565b6001600160a01b0381166118b857604051631e4fbdf760e01b815260006004820152602401610899565b6114d1816119ed565b60055460ff16156119145760405162461bcd60e51b815260206004820152601f60248201527f54657468657220697320616c7265616479206465636c617265642064656164006044820152606401610899565b61191e6008610ffd565b421161196c5760405162461bcd60e51b815260206004820152601e60248201527f42657474696e6720706572696f64206973206e6f74206f7665722079657400006044820152606401610899565b6005805460ff1916600117905542600381905560006004556040517f1ee5e1eb82cd4a8a8d10f1f025ca3792544f4e897f9ccd12a269705e4fa6b5d4916119b69190815260200190565b60405180910390a1565b6000546001600160a01b03163314610ffb5760405163118cdaa760e01b8152336004820152602401610899565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b60008060408385031215611a5057600080fd5b50508035926020909101359150565b60006040820184835260206040602085015281855180845260608601915060208701935060005b81811015611aa257845183529383019391830191600101611a86565b5090979650505050505050565b6001600160a01b03811681146114d157600080fd5b60008060408385031215611ad757600080fd5b823591506020830135611ae981611aaf565b809150509250929050565b600060208284031215611b0657600080fd5b5035919050565b60008083601f840112611b1f57600080fd5b50813567ffffffffffffffff811115611b3757600080fd5b6020830191508360208260051b850101111561082e57600080fd5b60008060008060408587031215611b6857600080fd5b843567ffffffffffffffff80821115611b8057600080fd5b611b8c88838901611b0d565b90965094506020870135915080821115611ba557600080fd5b50611bb287828801611b0d565b95989497509550505050565b600060208284031215611bd057600080fd5b81356108e381611aaf565b60008060408385031215611bee57600080fd5b8235611bf981611aaf565b946020939093013593505050565b634e487b7160e01b600052604160045260246000fd5b634e487b7160e01b600052601160045260246000fd5b8082018082111561107957611079611c1d565b8181038181111561107957611079611c1d565b634e487b7160e01b600052603260045260246000fd5b600060018201611c8157611c81611c1d565b5060010190565b600082611ca557634e487b7160e01b600052601260045260246000fd5b500490565b808202811582820484141761107957611079611c1d565b805161ffff8116811461188157600080fd5b600080600080600080600060e0888a031215611cee57600080fd5b8751611cf981611aaf565b8097505060208801518060020b8114611d1157600080fd5b9550611d1f60408901611cc1565b9450611d2d60608901611cc1565b9350611d3b60808901611cc1565b925060a088015160ff81168114611d5157600080fd5b60c08901519092508015158114611d6757600080fd5b8091505092959891949750929550565b600060208284031215611d8957600080fd5b81516108e381611aaf565b80516001600160701b038116811461188157600080fd5b600080600060608486031215611dc057600080fd5b611dc984611d94565b9250611dd760208501611d94565b9150604084015163ffffffff81168114611df057600080fd5b809150509250925092565b600181815b80851115611e36578160001904821115611e1c57611e1c611c1d565b80851615611e2957918102915b93841c9390800290611e00565b509250929050565b600082611e4d57506001611079565b81611e5a57506000611079565b8160018114611e705760028114611e7a57611e96565b6001915050611079565b60ff841115611e8b57611e8b611c1d565b50506001821b611079565b5060208310610133831016604e8410600b8410161715611eb9575081810a611079565b611ec38383611dfb565b8060001904821115611ed757611ed7611c1d565b029392505050565b60006108e38383611e3e56fea26469706673582212209029f3fc8675ed110e7d2b80f7f19b669284b1502b68b12386335e6627182d0364736f6c63430008180033
Deployed Bytecode
0x6080604052600436106102335760003560e01c80638fb5f35d1161012e578063d8deaa7a116100ab578063efd321261161006f578063efd32126146106e7578063f2fde38b14610707578063f4ed244c14610727578063f55ebd2a1461073c578063f7110b5a1461075c57600080fd5b8063d8deaa7a14610645578063e56bfa8f14610665578063e5f8a0481461067b578063eaf98d23146106bd578063eb3c7f53146106d257600080fd5b8063b3d673d8116100f2578063b3d673d81461056a578063b8b5e5c314610592578063bf38cd1514610602578063c8b3da0214610618578063cc42e83a1461063057600080fd5b80638fb5f35d146104d857806399fbde35146105055780639f929c201461051a578063a00d95261461052f578063a6f9dae11461054a57600080fd5b806356336efe116101bc578063736be62811610180578063736be6281461043e578063755f8ffd1461045e5780637cbe3705146104785780637f5c8cdc146104a55780638da5cb5b146104ba57600080fd5b806356336efe146103935780635e2c19db146103a957806369b1ed7d146103e95780636f9fb98a14610416578063715018a61461042957600080fd5b806335b195cd1161020357806335b195cd146102e95780633bebb4911461030957806349bd5a5e1461031e5780634b1e0a52146103565780634d286a3d1461036b57600080fd5b80622259801461023f578063117a5989146102765780631ef4f543146102bc57806322caf11f146102d257600080fd5b3661023a57005b600080fd5b34801561024b57600080fd5b5061025f61025a366004611a3d565b610771565b60405161026d929190611a5f565b60405180910390f35b34801561028257600080fd5b506102ae610291366004611ac4565b600860209081526000928352604080842090915290825290205481565b60405190815260200161026d565b3480156102c857600080fd5b506102ae61271081565b3480156102de57600080fd5b506102ae6277f88081565b3480156102f557600080fd5b506102ae610304366004611af4565b610835565b61031c610317366004611b52565b6108ea565b005b34801561032a57600080fd5b5060025461033e906001600160a01b031681565b6040516001600160a01b03909116815260200161026d565b34801561036257600080fd5b506102ae610d27565b34801561037757600080fd5b5061033e73dac17f958d2ee523a2206206994597c13d831ec781565b34801561039f57600080fd5b506102ae60045481565b3480156103b557600080fd5b506103d96103c4366004611bbe565b60096020526000908152604090205460ff1681565b604051901515815260200161026d565b3480156103f557600080fd5b506102ae610404366004611af4565b60076020526000908152604090205481565b34801561042257600080fd5b50476102ae565b34801561043557600080fd5b5061031c610fe9565b34801561044a57600080fd5b506102ae610459366004611af4565b610ffd565b34801561046a57600080fd5b506005546103d99060ff1681565b34801561048457600080fd5b506102ae610493366004611af4565b60009081526007602052604090205490565b3480156104b157600080fd5b5061031c61107f565b3480156104c657600080fd5b506000546001600160a01b031661033e565b3480156104e457600080fd5b506102ae6104f3366004611af4565b60066020526000908152604090205481565b34801561051157600080fd5b506102ae600881565b34801561052657600080fd5b506102ae61121c565b34801561053b57600080fd5b506102ae6611c37937e0800081565b34801561055657600080fd5b5061031c610565366004611bbe565b6114c0565b34801561057657600080fd5b5061033e73a0b86991c6218b36c1d19d4a2e9eb0ce3606eb4881565b34801561059e57600080fd5b506105e76105ad366004611ac4565b6000828152600660209081526040808320546007835281842054600884528285206001600160a01b03871686529093529220549250925092565b6040805193845260208401929092529082015260600161026d565b34801561060e57600080fd5b506102ae60035481565b34801561062457600080fd5b506102ae6366fb3b8081565b34801561063c57600080fd5b5061031c6114d4565b34801561065157600080fd5b506102ae610660366004611a3d565b611704565b34801561067157600080fd5b506102ae6103e881565b34801561068757600080fd5b506102ae610696366004611bdb565b60009081526008602090815260408083206001600160a01b03949094168352929052205490565b3480156106c957600080fd5b506102ae601481565b3480156106de57600080fd5b506102ae61175a565b3480156106f357600080fd5b506102ae610702366004611af4565b61179c565b34801561071357600080fd5b5061031c610722366004611bbe565b611886565b34801561073357600080fd5b506102ae600081565b34801561074857600080fd5b5060015461033e906001600160a01b031681565b34801561076857600080fd5b5061031c6118c1565b6000828152600660205260408120546060908367ffffffffffffffff81111561079c5761079c611c07565b6040519080825280602002602001820160405280156107c5578160200160208202803683370190505b50915060015b84811161082b5760006107e16107028385611c33565b905080846107f0600185611c46565b8151811061080057610800611c59565b60209081029190910101526108158186611c33565b945050808061082390611c6f565b9150506107cb565b50505b9250929050565b60006366fb3b808210156108a25760405162461bcd60e51b815260206004820152602960248201527f54696d657374616d70206973206265666f72652062657474696e6720706572696044820152686f642073746172747360b81b60648201526084015b60405180910390fd5b60006108b26366fb3b8084611c46565b905060006108c36277f88083611c88565b6108ce906001611c33565b905060088111156108e3575060009392505050565b9392505050565b60055460ff16156109485760405162461bcd60e51b815260206004820152602260248201527f42657474696e6720697320636c6f7365642c2054657468657220686173206469604482015261195960f21b6064820152608401610899565b8215801590610958575060088311155b6109a45760405162461bcd60e51b815260206004820152601a60248201527f496e76616c6964206e756d626572206f662071756172746572730000000000006044820152606401610899565b828114610a025760405162461bcd60e51b815260206004820152602660248201527f7175617274657249647320616e64206e756d42657473206c656e677468206d696044820152650e6dac2e8c6d60d31b6064820152608401610899565b6000805b84811015610bfe576000868683818110610a2257610a22611c59565b9050602002013590506000858584818110610a3f57610a3f611c59565b905060200201359050600882111580610a56575081155b610a975760405162461bcd60e51b8152602060048201526012602482015271125b9d985b1a59081c5d585c9d195c88125160721b6044820152606401610899565b60008111610af85760405162461bcd60e51b815260206004820152602860248201527f4e756d626572206f662062657473206d7573742062652067726561746572207460448201526768616e207a65726f60c01b6064820152608401610899565b6000610b048383611704565b9050610b108186611c33565b6000848152600860209081526040808320338452909152812080549297508492909190610b3e908490611c33565b909155505060008381526006602052604081208054849290610b61908490611c33565b90915550600090506064610b76601482611c46565b610b809084611caa565b610b8a9190611c88565b905080600760008681526020019081526020016000206000828254610baf9190611c33565b9091555050604080518581526020810185905233917e1ecf1d0c4d22f324b3ecb9cdf0e5f772bc74ac104e6626f4b3845433d03105910160405180910390a2505060019092019150610a069050565b5080341015610c4f5760405162461bcd60e51b815260206004820152601960248201527f496e636f72726563742045544820616d6f756e742073656e74000000000000006044820152606401610899565b60006064610c5e601484611caa565b610c689190611c88565b90506000610c7e6000546001600160a01b031690565b6001600160a01b03168260405160006040518083038185875af1925050503d8060008114610cc8576040519150601f19603f3d011682016040523d82523d6000602084013e610ccd565b606091505b5050905080610d1e5760405162461bcd60e51b815260206004820152601c60248201527f466565207472616e7366657220746f206f776e6572206661696c6564000000006044820152606401610899565b50505050505050565b600080600160009054906101000a90046001600160a01b03166001600160a01b0316633850c7bd6040518163ffffffff1660e01b815260040160e060405180830381865afa158015610d7d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610da19190611cd3565b50505050505090506000600160009054906101000a90046001600160a01b03166001600160a01b0316630dfe16816040518163ffffffff1660e01b8152600401602060405180830381865afa158015610dfe573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e229190611d77565b90506000600160009054906101000a90046001600160a01b03166001600160a01b031663d21220a76040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e79573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e9d9190611d77565b905073a0b86991c6218b36c1d19d4a2e9eb0ce3606eb4873dac17f958d2ee523a2206206994597c13d831ec7620f42406001600160a01b03851683148015610ef65750816001600160a01b0316846001600160a01b0316145b15610f3557600081610f116001600160a01b03891680611caa565b610f1b9190611caa565b9050600160c01b610f2c8183611c88565b98505050610fe0565b816001600160a01b0316856001600160a01b0316148015610f675750826001600160a01b0316846001600160a01b0316145b15610f9f576000610f7c82600160c01b611caa565b90506000610f936001600160a01b03891680611caa565b9050610f2c8183611c88565b60405162461bcd60e51b8152602060048201526016602482015275496e76616c696420563320706f6f6c20746f6b656e7360501b6044820152606401610899565b50505050505090565b610ff16119c0565b610ffb60006119ed565b565b600060018210158015611011575060088211155b6110525760405162461bcd60e51b8152602060048201526012602482015271125b9d985b1a59081c5d585c9d195c88125160721b6044820152606401610899565b60016110616277f88084611caa565b61106f906366fb3b80611c33565b6110799190611c46565b92915050565b60055460ff16156110d25760405162461bcd60e51b815260206004820152601f60248201527f54657468657220697320616c7265616479206465636c617265642064656164006044820152606401610899565b6110dc6008610ffd565b4211156111435760405162461bcd60e51b815260206004820152602f60248201527f43616e6e6f74206465636c61726520546574686572206465616420616674657260448201526e0818995d1d1a5b99c81c195c9a5bd9608a1b6064820152608401610899565b600061114d610d27565b9050600061115961121c565b9050620186a082111580156111715750620186a08111155b6111b65760405162461bcd60e51b815260206004820152601660248201527515195d1a195c881a5cc81b9bdd0819195859081e595d60521b6044820152606401610899565b6005805460ff191660011790554260038190556111d290610835565b60048190556003546040517f6fc60c8ed1fb5c8732791cfb7835138c8007b5a680c1992ba6fc2e0cf8f118d892611210928252602082015260400190565b60405180910390a15050565b6000806000600260009054906101000a90046001600160a01b03166001600160a01b0316630902f1ac6040518163ffffffff1660e01b8152600401606060405180830381865afa158015611274573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112989190611dab565b50915091506000600260009054906101000a90046001600160a01b03166001600160a01b0316630dfe16816040518163ffffffff1660e01b8152600401602060405180830381865afa1580156112f2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113169190611d77565b90506000600260009054906101000a90046001600160a01b03166001600160a01b031663d21220a76040518163ffffffff1660e01b8152600401602060405180830381865afa15801561136d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113919190611d77565b905073a0b86991c6218b36c1d19d4a2e9eb0ce3606eb4873dac17f958d2ee523a2206206994597c13d831ec7620f42406001600160a01b038516831480156113ea5750816001600160a01b0316846001600160a01b0316145b1561141f57856001600160701b031681886001600160701b031661140e9190611caa565b6114189190611c88565b97506114b6565b816001600160a01b0316856001600160a01b03161480156114515750826001600160a01b0316846001600160a01b0316145b1561147557866001600160701b031681876001600160701b031661140e9190611caa565b60405162461bcd60e51b8152602060048201526016602482015275496e76616c696420563220706f6f6c20746f6b656e7360501b6044820152606401610899565b5050505050505090565b6114c86119c0565b6114d181611886565b50565b60055460ff1661151f5760405162461bcd60e51b815260206004820152601660248201527515195d1a195c881a5cc81b9bdd0819195859081e595d60521b6044820152606401610899565b3360009081526009602052604090205460ff161561157f5760405162461bcd60e51b815260206004820152601a60248201527f57696e6e696e677320616c72656164792077697468647261776e0000000000006044820152606401610899565b6004546000908152600860209081526040808320338452909152902054806115f85760405162461bcd60e51b815260206004820152602660248201527f596f7520646964206e6f7420626574206f6e207468652077696e6e696e6720716044820152653ab0b93a32b960d11b6064820152608401610899565b600454600090815260066020526040812054904790826116188584611caa565b6116229190611c88565b33600081815260096020526040808220805460ff19166001179055519293509183908381818185875af1925050503d806000811461167c576040519150601f19603f3d011682016040523d82523d6000602084013e611681565b606091505b50509050806116c85760405162461bcd60e51b8152602060048201526013602482015272115512081d1c985b9cd9995c8819985a5b1959606a1b6044820152606401610899565b60405182815233907f24215bbaf0832fa4d6ffef16dee3971d8b714921fef3ad63f793d578983c6dc29060200160405180910390a25050505050565b600082815260066020526040812054819060015b84811161175057600061172e6107028385611c33565b905061173a8185611c33565b935050808061174890611c6f565b915050611718565b5090949350505050565b600080805260076020527f6d5257204ebe7d88fd91ae87941cb2dd9d8062b64ae5a2bd2d28ec40b9fbf6df54479060006117948383611c88565b949350505050565b60006103e882116117ff5760006117b660016103e8611c46565b6117cf6611c37937e08000670de0b6b3a7640000611c46565b6117da600186611c46565b6117e49190611caa565b6117ee9190611c88565b6108e3906611c37937e08000611c33565b61271082116118525760006118186103e8612710611c46565b6118246103e885611c46565b61183690677ce66c50e2840000611caa565b6118409190611c88565b6108e390670de0b6b3a7640000611c33565b600061186061271084611c46565b9050600061186f826002611edf565b61179490678ac7230489e80000611caa565b919050565b61188e6119c0565b6001600160a01b0381166118b857604051631e4fbdf760e01b815260006004820152602401610899565b6114d1816119ed565b60055460ff16156119145760405162461bcd60e51b815260206004820152601f60248201527f54657468657220697320616c7265616479206465636c617265642064656164006044820152606401610899565b61191e6008610ffd565b421161196c5760405162461bcd60e51b815260206004820152601e60248201527f42657474696e6720706572696f64206973206e6f74206f7665722079657400006044820152606401610899565b6005805460ff1916600117905542600381905560006004556040517f1ee5e1eb82cd4a8a8d10f1f025ca3792544f4e897f9ccd12a269705e4fa6b5d4916119b69190815260200190565b60405180910390a1565b6000546001600160a01b03163314610ffb5760405163118cdaa760e01b8152336004820152602401610899565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b60008060408385031215611a5057600080fd5b50508035926020909101359150565b60006040820184835260206040602085015281855180845260608601915060208701935060005b81811015611aa257845183529383019391830191600101611a86565b5090979650505050505050565b6001600160a01b03811681146114d157600080fd5b60008060408385031215611ad757600080fd5b823591506020830135611ae981611aaf565b809150509250929050565b600060208284031215611b0657600080fd5b5035919050565b60008083601f840112611b1f57600080fd5b50813567ffffffffffffffff811115611b3757600080fd5b6020830191508360208260051b850101111561082e57600080fd5b60008060008060408587031215611b6857600080fd5b843567ffffffffffffffff80821115611b8057600080fd5b611b8c88838901611b0d565b90965094506020870135915080821115611ba557600080fd5b50611bb287828801611b0d565b95989497509550505050565b600060208284031215611bd057600080fd5b81356108e381611aaf565b60008060408385031215611bee57600080fd5b8235611bf981611aaf565b946020939093013593505050565b634e487b7160e01b600052604160045260246000fd5b634e487b7160e01b600052601160045260246000fd5b8082018082111561107957611079611c1d565b8181038181111561107957611079611c1d565b634e487b7160e01b600052603260045260246000fd5b600060018201611c8157611c81611c1d565b5060010190565b600082611ca557634e487b7160e01b600052601260045260246000fd5b500490565b808202811582820484141761107957611079611c1d565b805161ffff8116811461188157600080fd5b600080600080600080600060e0888a031215611cee57600080fd5b8751611cf981611aaf565b8097505060208801518060020b8114611d1157600080fd5b9550611d1f60408901611cc1565b9450611d2d60608901611cc1565b9350611d3b60808901611cc1565b925060a088015160ff81168114611d5157600080fd5b60c08901519092508015158114611d6757600080fd5b8091505092959891949750929550565b600060208284031215611d8957600080fd5b81516108e381611aaf565b80516001600160701b038116811461188157600080fd5b600080600060608486031215611dc057600080fd5b611dc984611d94565b9250611dd760208501611d94565b9150604084015163ffffffff81168114611df057600080fd5b809150509250925092565b600181815b80851115611e36578160001904821115611e1c57611e1c611c1d565b80851615611e2957918102915b93841c9390800290611e00565b509250929050565b600082611e4d57506001611079565b81611e5a57506000611079565b8160018114611e705760028114611e7a57611e96565b6001915050611079565b60ff841115611e8b57611e8b611c1d565b50506001821b611079565b5060208310610133831016604e8410600b8410161715611eb9575081810a611079565b611ec38383611dfb565b8060001904821115611ed757611ed7611c1d565b029392505050565b60006108e38383611e3e56fea26469706673582212209029f3fc8675ed110e7d2b80f7f19b669284b1502b68b12386335e6627182d0364736f6c63430008180033
Loading...
Loading
Loading...
Loading
Net Worth in USD
$104.60
Net Worth in ETH
0.050392
Token Allocations
ETH
100.00%
Multichain Portfolio | 33 Chains
| Chain | Token | Portfolio % | Price | Amount | Value |
|---|---|---|---|---|---|
| ETH | 100.00% | $2,075.81 | 0.0504 | $104.6 |
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.