Overview
ETH Balance
0 ETH
ETH Value
$0.00 (@ $1,858/ETH)
Token Holdings
More Info
Private Name Tags
—
Token Tracker
Contract Creator
Additional Info
TransactionsInternal TransactionsToken Transfers (ERC-20)NFT TransfersOther TransactionsContract✓EventsAnalyticsAssetsHoldersCardsInfo
Contract Name
Token (FULLTILT)
Compiler
solidity · v0.8.30+commit.73712a01
Optimization
Yes · 200 runs
EVM Version
prague
Source
Mirrored from Robinhood Chain explorer
Contract Source Code
Outline
I IPool
ƒ token0
ƒ token1
I IERC20
ƒ balanceOf
C Token
ƒ approve
ƒ transfer
ƒ transferFrom
ƒ setPool
ƒ setMetadata
ƒ checkMigration
ƒ _transfer
ƒ _privileged
ƒ _checkMigration
Token.sol
// SPDX-License-Identifier: MIT
pragma solidity 0.8.30;
interface IPool {
function token0() external view returns (address);
function token1() external view returns (address);
}
interface IERC20 {
function balanceOf(address account) external view returns (uint256);
}
contract Token {
string public name;
string public symbol;
uint256 public totalSupply;
mapping(address => uint256) public balanceOf;
mapping(address => mapping(address => uint256)) public allowance;
address public pool;
uint256 public launchBlock;
bool public migrated;
string public description;
string public website;
string public telegram;
string public twitter;
string public logoURI;
string public tokenURI;
bool public metadataSet;
address public immutable launchpad;
address public immutable deployer;
uint256 public immutable maxWallet;
uint256 public immutable limitWindow;
uint8 public constant decimals = 18;
uint256 public constant GRADUATION_WETH = 3.7 ether;
struct Metadata {
string description;
string website;
string telegram;
string twitter;
string logoURI;
string tokenURI;
}
event Transfer(address indexed from, address indexed to, uint256 amount);
event Approval(address indexed owner, address indexed spender, uint256 amount);
event MetadataUpdated(string logoURI, string tokenURI);
event Migrated(uint256 reserve);
error OnlyLaunchpad();
error MetadataAlreadySet();
error PoolAlreadySet();
error MaxWalletExceeded();
error TradingNotActive();
constructor(
string memory _name,
string memory _symbol,
uint256 _totalSupply,
address _deployer,
uint256 _maxWallet,
uint256 _limitWindow
) {
launchpad = msg.sender;
name = _name;
symbol = _symbol;
deployer = _deployer;
maxWallet = _maxWallet;
limitWindow = _limitWindow;
totalSupply = _totalSupply;
balanceOf[msg.sender] = _totalSupply;
emit Transfer(address(0), msg.sender, _totalSupply);
}
function approve(address spender, uint256 amount) public returns (bool) {
allowance[msg.sender][spender] = amount;
emit Approval(msg.sender, spender, amount);
return true;
}
function transfer(address to, uint256 amount) public returns (bool) {
_transfer(msg.sender, to, amount);
return true;
}
function transferFrom(address from, address to, uint256 amount) public returns (bool) {
uint256 allowed = allowance[from][msg.sender];
if (allowed != type(uint256).max) {
allowance[from][msg.sender] = allowed - amount;
}
_transfer(from, to, amount);
return true;
}
function setPool(address _pool, uint256 _launchBlock) external {
if (msg.sender != launchpad) revert OnlyLaunchpad();
if (pool != address(0)) revert PoolAlreadySet();
pool = _pool;
launchBlock = _launchBlock;
}
function setMetadata(Metadata calldata data) external {
if (msg.sender != launchpad) revert OnlyLaunchpad();
if (metadataSet) revert MetadataAlreadySet();
metadataSet = true;
description = data.description;
website = data.website;
telegram = data.telegram;
twitter = data.twitter;
logoURI = data.logoURI;
tokenURI = data.tokenURI;
emit MetadataUpdated(data.tokenURI, data.logoURI);
}
function checkMigration() external returns (bool) {
_checkMigration();
return migrated;
}
function _transfer(address from, address to, uint256 amount) internal {
if (block.number < launchBlock && !_privileged(from) && !_privileged(to)) {
revert TradingNotActive();
}
balanceOf[from] -= amount;
unchecked {
balanceOf[to] += amount;
}
if (
block.number < launchBlock + limitWindow &&
!(to == launchpad || to == deployer || to == pool || to == address(0)) &&
balanceOf[to] > maxWallet
) {
revert MaxWalletExceeded();
}
if (!migrated && pool != address(0) && (from == pool || to == pool)) {
_checkMigration();
}
emit Transfer(from, to, amount);
}
function _privileged(address account) internal view returns (bool) {
return account == launchpad || account == deployer;
}
function _checkMigration() internal {
if (migrated || pool == address(0)) return;
(bool ok, bytes memory data) = pool.staticcall(abi.encodeWithSelector(IPool.token0.selector));
if (!ok || data.length < 32) return;
address other = abi.decode(data, (address));
if (other == address(this)) {
(ok, data) = pool.staticcall(abi.encodeWithSelector(IPool.token1.selector));
if (!ok || data.length < 32) return;
other = abi.decode(data, (address));
}
(ok, data) = other.staticcall(abi.encodeWithSelector(IERC20.balanceOf.selector, pool));
if (!ok || data.length < 32) return;
if (abi.decode(data, (uint256)) >= GRADUATION_WETH) {
migrated = true;
emit Migrated(abi.decode(data, (uint256)));
}
}
}Contract ABI
[
{
"type": "constructor",
"inputs": [
{
"name": "_name",
"type": "string",
"internalType": "string"
},
{
"name": "_symbol",
"type": "string",
"internalType": "string"
},
{
"name": "_totalSupply",
"type": "uint256",
"internalType": "uint256"
},
{
"name": "_deployer",
"type": "address",
"internalType": "address"
},
{
"name": "_maxWallet",
"type": "uint256",
"internalType": "uint256"
},
{
"name": "_limitWindow",
"type": "uint256",
"internalType": "uint256"
}
],
"stateMutability": "nonpayable"
},
{
"name": "MaxWalletExceeded",
"type": "error",
"inputs": []
},
{
"name": "MetadataAlreadySet",
"type": "error",
"inputs": []
},
{
"name": "OnlyLaunchpad",
"type": "error",
"inputs": []
},
{
"name": "PoolAlreadySet",
"type": "error",
"inputs": []
},
{
"name": "TradingNotActive",
"type": "error",
"inputs": []
},
{
"name": "Approval",
"type": "event",
"inputs": [
{
"name": "owner",
"type": "address",
"indexed": true,
"internalType": "address"
},
{
"name": "spender",
"type": "address",
"indexed": true,
"internalType": "address"
},
{
"name": "amount",
"type": "uint256",
"indexed": false,
"internalType": "uint256"
}
],
"anonymous": false
},
{
"name": "MetadataUpdated",
"type": "event",
"inputs": [
{
"name": "logoURI",
"type": "string",
"indexed": false,
"internalType": "string"
},
{
"name": "tokenURI",
"type": "string",
"indexed": false,
"internalType": "string"
}
],
"anonymous": false
},
{
"name": "Migrated",
"type": "event",
"inputs": [
{
"name": "reserve",
"type": "uint256",
"indexed": false,
"internalType": "uint256"
}
],
"anonymous": false
},
{
"name": "Transfer",
"type": "event",
"inputs": [
{
"name": "from",
"type": "address",
"indexed": true,
"internalType": "address"
},
{
"name": "to",
"type": "address",
"indexed": true,
"internalType": "address"
},
{
"name": "amount",
"type": "uint256",
"indexed": false,
"internalType": "uint256"
}
],
"anonymous": false
},
{
"name": "GRADUATION_WETH",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "uint256",
"internalType": "uint256"
}
],
"stateMutability": "view"
},
{
"name": "allowance",
"type": "function",
"inputs": [
{
"name": "",
"type": "address",
"internalType": "address"
},
{
"name": "",
"type": "address",
"internalType": "address"
}
],
"outputs": [
{
"name": "",
"type": "uint256",
"internalType": "uint256"
}
],
"stateMutability": "view"
},
{
"name": "approve",
"type": "function",
"inputs": [
{
"name": "spender",
"type": "address",
"internalType": "address"
},
{
"name": "amount",
"type": "uint256",
"internalType": "uint256"
}
],
"outputs": [
{
"name": "",
"type": "bool",
"internalType": "bool"
}
],
"stateMutability": "nonpayable"
},
{
"name": "balanceOf",
"type": "function",
"inputs": [
{
"name": "",
"type": "address",
"internalType": "address"
}
],
"outputs": [
{
"name": "",
"type": "uint256",
"internalType": "uint256"
}
],
"stateMutability": "view"
},
{
"name": "checkMigration",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "bool",
"internalType": "bool"
}
],
"stateMutability": "nonpayable"
},
{
"name": "decimals",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "uint8",
"internalType": "uint8"
}
],
"stateMutability": "view"
},
{
"name": "deployer",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "address",
"internalType": "address"
}
],
"stateMutability": "view"
},
{
"name": "description",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "string",
"internalType": "string"
}
],
"stateMutability": "view"
},
{
"name": "launchBlock",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "uint256",
"internalType": "uint256"
}
],
"stateMutability": "view"
},
{
"name": "launchpad",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "address",
"internalType": "address"
}
],
"stateMutability": "view"
},
{
"name": "limitWindow",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "uint256",
"internalType": "uint256"
}
],
"stateMutability": "view"
},
{
"name": "logoURI",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "string",
"internalType": "string"
}
],
"stateMutability": "view"
},
{
"name": "maxWallet",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "uint256",
"internalType": "uint256"
}
],
"stateMutability": "view"
},
{
"name": "metadataSet",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "bool",
"internalType": "bool"
}
],
"stateMutability": "view"
},
{
"name": "migrated",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "bool",
"internalType": "bool"
}
],
"stateMutability": "view"
},
{
"name": "name",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "string",
"internalType": "string"
}
],
"stateMutability": "view"
},
{
"name": "pool",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "address",
"internalType": "address"
}
],
"stateMutability": "view"
},
{
"name": "setMetadata",
"type": "function",
"inputs": [
{
"name": "data",
"type": "tuple",
"components": [
{
"name": "description",
"type": "string",
"internalType": "string"
},
{
"name": "website",
"type": "string",
"internalType": "string"
},
{
"name": "telegram",
"type": "string",
"internalType": "string"
},
{
"name": "twitter",
"type": "string",
"internalType": "string"
},
{
"name": "logoURI",
"type": "string",
"internalType": "string"
},
{
"name": "tokenURI",
"type": "string",
"internalType": "string"
}
],
"internalType": "struct Token.Metadata"
}
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"name": "setPool",
"type": "function",
"inputs": [
{
"name": "_pool",
"type": "address",
"internalType": "address"
},
{
"name": "_launchBlock",
"type": "uint256",
"internalType": "uint256"
}
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"name": "symbol",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "string",
"internalType": "string"
}
],
"stateMutability": "view"
},
{
"name": "telegram",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "string",
"internalType": "string"
}
],
"stateMutability": "view"
},
{
"name": "tokenURI",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "string",
"internalType": "string"
}
],
"stateMutability": "view"
},
{
"name": "totalSupply",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "uint256",
"internalType": "uint256"
}
],
"stateMutability": "view"
},
{
"name": "transfer",
"type": "function",
"inputs": [
{
"name": "to",
"type": "address",
"internalType": "address"
},
{
"name": "amount",
"type": "uint256",
"internalType": "uint256"
}
],
"outputs": [
{
"name": "",
"type": "bool",
"internalType": "bool"
}
],
"stateMutability": "nonpayable"
},
{
"name": "transferFrom",
"type": "function",
"inputs": [
{
"name": "from",
"type": "address",
"internalType": "address"
},
{
"name": "to",
"type": "address",
"internalType": "address"
},
{
"name": "amount",
"type": "uint256",
"internalType": "uint256"
}
],
"outputs": [
{
"name": "",
"type": "bool",
"internalType": "bool"
}
],
"stateMutability": "nonpayable"
},
{
"name": "twitter",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "string",
"internalType": "string"
}
],
"stateMutability": "view"
},
{
"name": "website",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "string",
"internalType": "string"
}
],
"stateMutability": "view"
}
]Creation code isn’t shown — this contract was deployed by a factory (internal CREATE), so it has no standalone creation transaction.
Deployed Bytecode
0x6080806040526004361015610012575f80fd5b5f3560e01c90816302669b52146113045750806306fdde0314611262578063095ea7b3146111e957806310bb5827146111af57806316f0115b1461118757806318160ddd1461116a57806323b872dd146110e05780632c678c64146110be578063313ce567146110a35780633c130d901461101157806347ecb66514610f7f57806355d8fdce14610f5d5780635c48360f14610ed15780636bb38b2814610e3f57806370a0823114610e075780637284e41614610d7557806395d89b4114610cd05780639b069efa14610ca6578063a1d598d7146103e0578063a9059cbb146103af578063abfaeee01461031d578063b77107c9146102fb578063beb0a41614610234578063d00efb2f14610217578063d5f39488146101d3578063dd62ed3e146101835763f8b45b0514610145575f80fd5b3461017f575f36600319011261017f5760206040517f000000000000000000000000000000000000000000108b2a2c280290940000008152f35b5f80fd5b3461017f57604036600319011261017f5761019c6113c9565b6101a46113df565b6001600160a01b039182165f908152600460209081526040808320949093168252928352819020549051908152f35b3461017f575f36600319011261017f576040517f000000000000000000000000c23237e53f94ad7971650a562f758a05158ead646001600160a01b03168152602090f35b3461017f575f36600319011261017f576020600654604051908152f35b3461017f575f36600319011261017f576040515f60095461025481611345565b80845290600181169081156102d7575060011461028c575b6102888361027c8185038261137d565b6040519182918261139f565b0390f35b60095f9081525f5160206119b65f395f51905f52939250905b8082106102bd5750909150810160200161027c61026c565b9192600181602092548385880101520191019092916102a5565b60ff191660208086019190915291151560051b8401909101915061027c905061026c565b3461017f575f36600319011261017f5760206040516733590a6584f200008152f35b3461017f575f36600319011261017f576040515f600b5461033d81611345565b80845290600181169081156102d75750600114610364576102888361027c8185038261137d565b600b5f9081525f5160206119d65f395f51905f52939250905b8082106103955750909150810160200161027c61026c565b91926001816020925483858801015201910190929161037d565b3461017f57604036600319011261017f576103d56103cb6113c9565b6024359033611469565b602060405160018152f35b3461017f57602036600319011261017f5760043567ffffffffffffffff811161017f578060040160c0600319833603011261017f577f000000000000000000000000c70e510e14710ea535cab7b2414860af63feab796001600160a01b03163303610c9757600e5460ff8116610c885760ff1916600117600e556104648180611416565b67ffffffffffffffff819492941161080a57610481600854611345565b601f8111610c20575b505f601f8211600114610bb257819293945f92610ba7575b50508160011b915f199060031b1c1916176008555b6104c46024820183611416565b67ffffffffffffffff819492941161080a576104e1600954611345565b601f8111610b3f575b505f601f8211600114610ad157819293945f92610ac6575b50508160011b915f199060031b1c1916176009555b6105246044830182611416565b67ffffffffffffffff819492941161080a57610541600a54611345565b601f8111610a5e575b505f601f82116001146109f057819293945f926109e5575b50508160011b915f199060031b1c191617600a555b6105846064820183611416565b67ffffffffffffffff819492941161080a576105a1600b54611345565b601f811161097d575b505f601f821160011461090f57819293945f92610904575b50508160011b915f199060031b1c191617600b555b60848201916105e68383611416565b9067ffffffffffffffff821161080a57610601600c54611345565b601f811161089c575b505f90601f83116001146108295760a49392915f918361081e575b50508160011b915f199060031b1c191617600c555b01916106468383611416565b67ffffffffffffffff819592951161080a57610663600d54611345565b601f81116107a2575b505f601f8211600114610707576106f792826106d2936106ca937f30f5c4b652f95e2a697bda3258896c421eee4f29adce8fe38060f47f7aed91ad995f926106fc575b50508160011b915f199060031b1c191617600d555b85611416565b939094611416565b6106e9604051958695604087526040870191611449565b918483036020860152611449565b0390a1005b0135905089806106af565b601f19821690600d5f525f5160206119765f395f51905f52915f5b81811061078a5750836106ca937f30f5c4b652f95e2a697bda3258896c421eee4f29adce8fe38060f47f7aed91ad996106f797946106d29760019510610771575b505050811b01600d556106c4565b01355f19600384901b60f8161c19169055898080610763565b9192602060018192868c013581550194019201610722565b600d5f52601f820160051c5f5160206119765f395f51905f520190602083106107f5575b601f0160051c5f5160206119765f395f51905f5201905b8181106107ea575061066c565b5f81556001016107dd565b5f5160206119765f395f51905f5291506107c6565b634e487b7160e01b5f52604160045260245ffd5b013590508680610625565b601f19831691600c5f525f5160206119365f395f51905f52925f5b818110610884575091600193918560a49796941061086b575b505050811b01600c5561063a565b01355f19600384901b60f8161c1916905586808061085d565b91936020600181928787013581550195019201610844565b600c5f52601f830160051c5f5160206119365f395f51905f520190602084106108ef575b601f0160051c5f5160206119365f395f51905f5201905b8181106108e4575061060a565b5f81556001016108d7565b5f5160206119365f395f51905f5291506108c0565b0135905084806105c2565b601f19821694600b5f525f5160206119d65f395f51905f52915f5b87811061096557508360019596971061094c575b505050811b01600b556105d7565b01355f19600384901b60f8161c1916905584808061093e565b9092602060018192868601358155019401910161092a565b600b5f52601f820160051c5f5160206119d65f395f51905f520190602083106109d0575b601f0160051c5f5160206119d65f395f51905f5201905b8181106109c557506105aa565b5f81556001016109b8565b5f5160206119d65f395f51905f5291506109a1565b013590508480610562565b601f19821694600a5f525f5160206119565f395f51905f52915f5b878110610a46575083600195969710610a2d575b505050811b01600a55610577565b01355f19600384901b60f8161c19169055848080610a1f565b90926020600181928686013581550194019101610a0b565b600a5f52601f820160051c5f5160206119565f395f51905f52019060208310610ab1575b601f0160051c5f5160206119565f395f51905f5201905b818110610aa6575061054a565b5f8155600101610a99565b5f5160206119565f395f51905f529150610a82565b013590508480610502565b601f1982169460095f525f5160206119b65f395f51905f52915f5b878110610b27575083600195969710610b0e575b505050811b01600955610517565b01355f19600384901b60f8161c19169055848080610b00565b90926020600181928686013581550194019101610aec565b60095f52601f820160051c5f5160206119b65f395f51905f52019060208310610b92575b601f0160051c5f5160206119b65f395f51905f5201905b818110610b8757506104ea565b5f8155600101610b7a565b5f5160206119b65f395f51905f529150610b63565b0135905084806104a2565b601f1982169460085f525f5160206119965f395f51905f52915f5b878110610c08575083600195969710610bef575b505050811b016008556104b7565b01355f19600384901b60f8161c19169055848080610be1565b90926020600181928686013581550194019101610bcd565b60085f52601f820160051c5f5160206119965f395f51905f52019060208310610c73575b601f0160051c5f5160206119965f395f51905f5201905b818110610c68575061048a565b5f8155600101610c5b565b5f5160206119965f395f51905f529150610c44565b631c02c93960e31b5f5260045ffd5b63236deb5b60e01b5f5260045ffd5b3461017f575f36600319011261017f57610cbe6116ef565b602060ff600754166040519015158152f35b3461017f575f36600319011261017f576040515f600154610cf081611345565b80845290600181169081156102d75750600114610d17576102888361027c8185038261137d565b60015f9081527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf6939250905b808210610d5b5750909150810160200161027c61026c565b919260018160209254838588010152019101909291610d43565b3461017f575f36600319011261017f576040515f600854610d9581611345565b80845290600181169081156102d75750600114610dbc576102888361027c8185038261137d565b60085f9081525f5160206119965f395f51905f52939250905b808210610ded5750909150810160200161027c61026c565b919260018160209254838588010152019101909291610dd5565b3461017f57602036600319011261017f576001600160a01b03610e286113c9565b165f526003602052602060405f2054604051908152f35b3461017f575f36600319011261017f576040515f600c54610e5f81611345565b80845290600181169081156102d75750600114610e86576102888361027c8185038261137d565b600c5f9081525f5160206119365f395f51905f52939250905b808210610eb75750909150810160200161027c61026c565b919260018160209254838588010152019101909291610e9f565b3461017f57604036600319011261017f57610eea6113c9565b7f000000000000000000000000c70e510e14710ea535cab7b2414860af63feab796001600160a01b03163303610c9757600554906001600160a01b038216610f4e576001600160a01b03166001600160a01b03199190911617600555602435600655005b632fc00d1f60e11b5f5260045ffd5b3461017f575f36600319011261017f57602060ff600e54166040519015158152f35b3461017f575f36600319011261017f576040515f600a54610f9f81611345565b80845290600181169081156102d75750600114610fc6576102888361027c8185038261137d565b600a5f9081525f5160206119565f395f51905f52939250905b808210610ff75750909150810160200161027c61026c565b919260018160209254838588010152019101909291610fdf565b3461017f575f36600319011261017f576040515f600d5461103181611345565b80845290600181169081156102d75750600114611058576102888361027c8185038261137d565b600d5f9081525f5160206119765f395f51905f52939250905b8082106110895750909150810160200161027c61026c565b919260018160209254838588010152019101909291611071565b3461017f575f36600319011261017f57602060405160128152f35b3461017f575f36600319011261017f57602060ff600754166040519015158152f35b3461017f57606036600319011261017f576103d56110fc6113c9565b6111046113df565b6001600160a01b0382165f818152600460209081526040808320338452909152902054604435939190846001820161113f575b505050611469565b611148916113f5565b5f91825260046020908152604080842033855290915290912055848084611137565b3461017f575f36600319011261017f576020600254604051908152f35b3461017f575f36600319011261017f576005546040516001600160a01b039091168152602090f35b3461017f575f36600319011261017f5760206040517f000000000000000000000000000000000000000000000000000000000000000a8152f35b3461017f57604036600319011261017f576112026113c9565b335f8181526004602090815260408083206001600160a01b03909516808452948252918290206024359081905591519182527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591a3602060405160018152f35b3461017f575f36600319011261017f576040515f5f5461128181611345565b80845290600181169081156102d757506001146112a8576102888361027c8185038261137d565b5f8080527f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563939250905b8082106112ea5750909150810160200161027c61026c565b9192600181602092548385880101520191019092916112d2565b3461017f575f36600319011261017f577f000000000000000000000000c70e510e14710ea535cab7b2414860af63feab796001600160a01b03168152602090f35b90600182811c92168015611373575b602083101461135f57565b634e487b7160e01b5f52602260045260245ffd5b91607f1691611354565b90601f8019910116810190811067ffffffffffffffff82111761080a57604052565b602060409281835280519182918282860152018484015e5f828201840152601f01601f1916010190565b600435906001600160a01b038216820361017f57565b602435906001600160a01b038216820361017f57565b9190820391821161140257565b634e487b7160e01b5f52601160045260245ffd5b903590601e198136030182121561017f570180359067ffffffffffffffff821161017f5760200191813603831361017f57565b908060209392818452848401375f828201840152601f01601f1916010190565b600654431080611681575b80611671575b6116625760018060a01b031690815f52600360205260405f2061149e8482546113f5565b905560018060a01b031691825f52600360205260405f208181540190556006547f000000000000000000000000000000000000000000000000000000000000000a8101809111611402574310806115cc575b80611597575b6115885760207fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9160ff600754161580611574575b8061154c575b61153f575b604051908152a3565b6115476116ef565b611536565b506005546001600160a01b031684811490811561156a575b50611531565b905085145f611564565b506005546001600160a01b0316151561152b565b632ce93b5960e01b5f5260045ffd5b50825f52600360205260405f20547f000000000000000000000000000000000000000000108b2a2c28029094000000106114f6565b507f000000000000000000000000c70e510e14710ea535cab7b2414860af63feab796001600160a01b031683148015611630575b801561161c575b8015611614575b156114f0565b50821561160e565b506005546001600160a01b03168314611607565b507f000000000000000000000000c23237e53f94ad7971650a562f758a05158ead646001600160a01b03168314611600565b632924508760e21b5f5260045ffd5b5061167b826118c9565b1561147a565b5061168b816118c9565b15611474565b3d156116cb573d9067ffffffffffffffff821161080a57604051916116c0601f8201601f19166020018461137d565b82523d5f602084013e565b606090565b9081602091031261017f57516001600160a01b038116810361017f5790565b60075460ff811680156118b6575b6118b35760018060a01b03600554165f806040516020810190630dfe168160e01b82526004815261172f60248261137d565b5190845afa61173c611691565b901580156118a8575b6118985780516001600160a01b0391611766918101602090810191016116d0565b1690308214611831575b5f91829160405160208101916370a0823160e01b835260248201526024815261179a60448261137d565b51915afa906117a7611691565b91158015611826575b61182257602082518184019301019060208383031261017f576733590a6584f20000835110156117df57505050565b60ff19166001176007556020908290031261017f5760207fe4a25c0c2cbe89d6ad8b64c61a7dbdd20d1f781f6023f1ab94ebb7fe0aef6ab89151604051908152a1565b5050565b5060208251106117b0565b90505f80604051602081019063d21220a760e01b82526004815261185660248261137d565b5190845afa611863611691565b9015801561189d575b611898575f91829161188e60018060a01b0391602080825183010191016116d0565b1692509050611770565b505050565b50602081511061186c565b506020815110611745565b50565b506005546001600160a01b0316156116fd565b7f000000000000000000000000c70e510e14710ea535cab7b2414860af63feab796001600160a01b039081169116908114908115611905575090565b7f000000000000000000000000c23237e53f94ad7971650a562f758a05158ead646001600160a01b03161491905056fedf6966c971051c3d54ec59162606531493a51404a002842f56009d7e5cf4a8c7c65a7bb8d6351c1cf70c95a316cc6a92839c986682d98bc35f958f4883f9d2a8d7b6990105719101dabeb77144f2a3385c8033acd3af97e9423a695e81ad1eb5f3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee36e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7af0175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01db9a264697066735822122040b00083818c81161e1b4c0ae0bd4e1e320c8a677d741c1d6b546f7651344ed864736f6c634300081e0033
A contract address hosts a smart contract — a set of code functions that can execute independently of any centralized server. Learn more in our Knowledge Base.