Feature Tip: Add private address tag to any address under My Name Tag !
Source Code
Overview
ETH Balance
0 ETH
Eth Value
$0.00More Info
Private Name Tags
ContractCreator
TokenTracker
Latest 1 from a total of 1 transactions
| Transaction Hash |
Method
|
Block
|
From
|
|
To
|
||||
|---|---|---|---|---|---|---|---|---|---|
| Approve | 21755149 | 380 days ago | IN | 0 ETH | 0.00009413 |
Loading...
Loading
Loading...
Loading
Cross-Chain Transactions
Loading...
Loading
Contract Name:
AspyrReflect
Compiler Version
v0.8.19+commit.7dd6d404
Optimization Enabled:
Yes with 200 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity Standard Json-Input format)
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.19;
import "@openzeppelin/contracts/security/ReentrancyGuard.sol";
/**
* @title ASPYR Reflect Token
* @notice
* - Total supply = 50M (no future minting)
* - 4% reflection on each transfer (proportionally redistributed to all holders)
* - Two-of-two "multisig-like" for major actions (burning)
* - Supply-based 5-phase ICO
* - Trustless 50/50 ETH split
*
* This code is for DEMONSTRATION ONLY and NOT AUDITED.
*/
contract AspyrReflect is ReentrancyGuard {
// -------------------------------------------------------
// Basic Info
// -------------------------------------------------------
string private constant _NAME = "ASPYR Network";
string private constant _SYMBOL = "ASPYR";
uint8 private constant _DECIMALS = 18;
// -------------------------------------------------------
// Reflection Mechanics
// -------------------------------------------------------
uint256 private constant MAX = type(uint256).max;
uint256 private constant _tTotal = 50_000_000 * 10**_DECIMALS; // 50 million
uint256 private _rTotal = (MAX - (MAX % _tTotal)); // reflection total
// 4% reflection fee on each transfer
uint256 public constant REFLECTION_FEE = 4; // in percent
// Mapping of addresses' reflected balances
mapping(address => uint256) private _rOwned;
mapping(address => mapping(address => uint256)) private _allowances;
// -------------------------------------------------------
// Two-of-two Governance
// -------------------------------------------------------
address public owner1;
address public owner2;
bool public isBurnProposed;
address public burnProposer;
address public proposedBurnFrom;
uint256 public proposedBurnAmount;
modifier onlyOwners() {
require(msg.sender == owner1 || msg.sender == owner2, "Not an authorized owner");
_;
}
// -------------------------------------------------------
// ICO Supply-Based Phases
// (21M total if fully sold)
// -------------------------------------------------------
uint256[5] public phaseSupply = [
5_000_000 * 10**_DECIMALS,
4_000_000 * 10**_DECIMALS,
3_000_000 * 10**_DECIMALS,
4_000_000 * 10**_DECIMALS,
5_000_000 * 10**_DECIMALS
];
uint256[5] public phaseRate = [1000, 900, 800, 700, 600]; // tokens per ETH
uint256 public currentPhase; // 0..4
// -------------------------------------------------------
// Constructor
// -------------------------------------------------------
constructor(address _owner1, address _owner2) {
require(_owner1 != address(0), "Invalid owner1");
require(_owner2 != address(0), "Invalid owner2");
owner1 = _owner1;
owner2 = _owner2;
// Initially, all tokens belong to the contract
_rOwned[address(this)] = _rTotal;
}
// -------------------------------------------------------
// ERC20-Like Public Functions
// -------------------------------------------------------
function name() public pure returns (string memory) {
return _NAME;
}
function symbol() public pure returns (string memory) {
return _SYMBOL;
}
function decimals() public pure returns (uint8) {
return _DECIMALS;
}
function totalSupply() public pure returns (uint256) {
return _tTotal;
}
function balanceOf(address account) public view returns (uint256) {
return tokenFromReflection(_rOwned[account]);
}
function allowance(address owner, address spender) public view returns (uint256) {
return _allowances[owner][spender];
}
function approve(address spender, uint256 amount) public returns (bool) {
_approve(msg.sender, spender, amount);
return true;
}
function transfer(address recipient, uint256 amount) public returns (bool) {
_transfer(msg.sender, recipient, amount);
return true;
}
function transferFrom(address from, address recipient, uint256 amount) public returns (bool) {
_transfer(from, recipient, amount);
uint256 currentAllowance = _allowances[from][msg.sender];
require(currentAllowance >= amount, "transfer amount exceeds allowance");
unchecked {
_approve(from, msg.sender, currentAllowance - amount);
}
return true;
}
// -------------------------------------------------------
// Reflection Internal Functions
// -------------------------------------------------------
function reflectionFromToken(uint256 tAmount) public view returns (uint256) {
require(tAmount <= _tTotal, "Amount > total supply");
uint256 currentRate = _getReflectionRate();
return tAmount * currentRate;
}
function tokenFromReflection(uint256 rAmount) public view returns (uint256) {
require(rAmount <= _rTotal, "rAmount > _rTotal");
uint256 currentRate = _getReflectionRate();
return rAmount / currentRate;
}
function _getReflectionRate() private view returns (uint256) {
return _rTotal / _tTotal;
}
function _transfer(address sender, address recipient, uint256 tAmount) private {
require(sender != address(0), "transfer from zero address");
require(recipient != address(0), "transfer to zero address");
require(tAmount > 0, "transfer amount > 0");
uint256 currentRate = _getReflectionRate();
uint256 rAmount = tAmount * currentRate;
uint256 tFee = (tAmount * REFLECTION_FEE) / 100;
uint256 tTransferAmount = tAmount - tFee;
uint256 rFee = tFee * currentRate;
uint256 rTransferAmount = rAmount - rFee;
_rOwned[sender] -= rAmount;
_rOwned[recipient] += rTransferAmount;
_rTotal -= rFee;
emit Transfer(sender, recipient, tTransferAmount);
}
function _approve(address owner, address spender, uint256 amount) private {
require(owner != address(0), "approve from zero address");
require(spender != address(0), "approve to zero address");
_allowances[owner][spender] = amount;
emit Approval(owner, spender, amount);
}
// -------------------------------------------------------
// Two-of-two Burn Logic
// -------------------------------------------------------
function proposeBurn(address from, uint256 tAmount) external onlyOwners {
require(!isBurnProposed, "Burn proposal active");
require(from != address(0), "Cannot burn from zero address");
require(tAmount > 0, "Burn > 0");
require(balanceOf(from) >= tAmount, "Insufficient balance to burn");
burnProposer = msg.sender;
proposedBurnFrom = from;
proposedBurnAmount = tAmount;
isBurnProposed = true;
}
function confirmBurn() external onlyOwners {
require(isBurnProposed, "No burn proposal");
require(msg.sender != burnProposer, "Same owner cannot confirm burn");
uint256 currentRate = _getReflectionRate();
uint256 rAmount = proposedBurnAmount * currentRate;
_rOwned[proposedBurnFrom] -= rAmount;
_rTotal -= rAmount;
isBurnProposed = false;
burnProposer = address(0);
proposedBurnFrom = address(0);
proposedBurnAmount = 0;
emit Transfer(proposedBurnFrom, address(0), 0);
}
// -------------------------------------------------------
// Supply-Based 5-Phase ICO
// -------------------------------------------------------
function buyTokens() external payable nonReentrant {
require(currentPhase < 5, "All ICO phases ended");
require(msg.value > 0, "No ETH sent");
uint256 leftoverEth = msg.value;
uint256 tokensPurchasedTotal = 0;
while (leftoverEth > 0 && currentPhase < 5) {
uint256 rate = phaseRate[currentPhase];
uint256 possibleTokens = leftoverEth * rate;
uint256 phaseLeft = phaseSupply[currentPhase];
if (possibleTokens <= phaseLeft) {
phaseSupply[currentPhase] -= possibleTokens;
tokensPurchasedTotal += possibleTokens;
leftoverEth = 0;
} else {
tokensPurchasedTotal += phaseLeft;
leftoverEth -= (phaseLeft / rate);
phaseSupply[currentPhase] = 0;
currentPhase++;
}
}
require(tokensPurchasedTotal > 0, "No tokens purchased");
_tokenTransferFromContract(msg.sender, tokensPurchasedTotal);
if (leftoverEth > 0 && currentPhase == 5) {
payable(msg.sender).transfer(leftoverEth);
}
}
function _tokenTransferFromContract(address recipient, uint256 tAmount) private {
uint256 currentRate = _getReflectionRate();
uint256 rAmount = tAmount * currentRate;
require(_rOwned[address(this)] >= rAmount, "Contract has insufficient tokens");
_rOwned[address(this)] -= rAmount;
_rOwned[recipient] += rAmount;
emit Transfer(address(this), recipient, tAmount);
}
// -------------------------------------------------------
// Trustless 50/50 ETH Split
// -------------------------------------------------------
function withdrawAndSplitETH() external onlyOwners nonReentrant {
uint256 bal = address(this).balance;
require(bal > 0, "No ETH to split");
uint256 half = bal / 2;
payable(owner1).transfer(half);
payable(owner2).transfer(address(this).balance);
}
// -------------------------------------------------------
// Receive / Fallback
// -------------------------------------------------------
receive() external payable {
// accept ETH
}
fallback() external payable {
revert("fallback not supported");
}
// -------------------------------------------------------
// ERC20 Events
// -------------------------------------------------------
event Transfer(address indexed from, address indexed to, uint256 value);
event Approval(address indexed owner, address indexed spender, uint256 value);
}// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts (last updated v4.9.0) (security/ReentrancyGuard.sol)
pragma solidity ^0.8.0;
/**
* @dev Contract module that helps prevent reentrant calls to a function.
*
* Inheriting from `ReentrancyGuard` will make the {nonReentrant} modifier
* available, which can be applied to functions to make sure there are no nested
* (reentrant) calls to them.
*
* Note that because there is a single `nonReentrant` guard, functions marked as
* `nonReentrant` may not call one another. This can be worked around by making
* those functions `private`, and then adding `external` `nonReentrant` entry
* points to them.
*
* TIP: If you would like to learn more about reentrancy and alternative ways
* to protect against it, check out our blog post
* https://blog.openzeppelin.com/reentrancy-after-istanbul/[Reentrancy After Istanbul].
*/
abstract contract ReentrancyGuard {
// Booleans are more expensive than uint256 or any type that takes up a full
// word because each write operation emits an extra SLOAD to first read the
// slot's contents, replace the bits taken up by the boolean, and then write
// back. This is the compiler's defense against contract upgrades and
// pointer aliasing, and it cannot be disabled.
// The values being non-zero value makes deployment a bit more expensive,
// but in exchange the refund on every call to nonReentrant will be lower in
// amount. Since refunds are capped to a percentage of the total
// transaction's gas, it is best to keep them low in cases like this one, to
// increase the likelihood of the full refund coming into effect.
uint256 private constant _NOT_ENTERED = 1;
uint256 private constant _ENTERED = 2;
uint256 private _status;
constructor() {
_status = _NOT_ENTERED;
}
/**
* @dev Prevents a contract from calling itself, directly or indirectly.
* Calling a `nonReentrant` function from another `nonReentrant`
* function is not supported. It is possible to prevent this from happening
* by making the `nonReentrant` function external, and making it call a
* `private` function that does the actual work.
*/
modifier nonReentrant() {
_nonReentrantBefore();
_;
_nonReentrantAfter();
}
function _nonReentrantBefore() private {
// On the first call to nonReentrant, _status will be _NOT_ENTERED
require(_status != _ENTERED, "ReentrancyGuard: reentrant call");
// Any calls to nonReentrant after this point will fail
_status = _ENTERED;
}
function _nonReentrantAfter() private {
// By storing the original value once again, a refund is triggered (see
// https://eips.ethereum.org/EIPS/eip-2200)
_status = _NOT_ENTERED;
}
/**
* @dev Returns true if the reentrancy guard is currently set to "entered", which indicates there is a
* `nonReentrant` function in the call stack.
*/
function _reentrancyGuardEntered() internal view returns (bool) {
return _status == _ENTERED;
}
}{
"optimizer": {
"enabled": true,
"runs": 200
},
"outputSelection": {
"*": {
"*": [
"evm.bytecode",
"evm.deployedBytecode",
"devdoc",
"userdoc",
"metadata",
"abi"
]
}
},
"remappings": []
}Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"inputs":[{"internalType":"address","name":"_owner1","type":"address"},{"internalType":"address","name":"_owner2","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"stateMutability":"payable","type":"fallback"},{"inputs":[],"name":"REFLECTION_FEE","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"burnProposer","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyTokens","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"confirmBurn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"currentPhase","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"isBurnProposed","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner1","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner2","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"phaseRate","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"phaseSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"uint256","name":"tAmount","type":"uint256"}],"name":"proposeBurn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"proposedBurnAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"proposedBurnFrom","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tAmount","type":"uint256"}],"name":"reflectionFromToken","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"uint256","name":"rAmount","type":"uint256"}],"name":"tokenFromReflection","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"withdrawAndSplitETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]Contract Creation Code
6080604052620000126012600a620003fe565b62000022906302faf08062000416565b620000309060001962000430565b6200003e9060001962000453565b6001556040518060a001604052806012600a6200005c9190620003fe565b6200006b90624c4b4062000416565b81526020016200007e6012600a620003fe565b6200008d90623d090062000416565b8152602001620000a06012600a620003fe565b620000af90622dc6c062000416565b8152602001620000c26012600a620003fe565b620000d190623d090062000416565b8152602001620000e46012600a620003fe565b620000f390624c4b4062000416565b90526200010590600990600562000258565b506040805160a0810182526103e881526103846020820152610320918101919091526102bc606082015261025860808201526200014790600e9060056200029b565b503480156200015557600080fd5b5060405162001aa438038062001aa4833981016040819052620001789162000486565b60016000556001600160a01b038216620001ca5760405162461bcd60e51b815260206004820152600e60248201526d496e76616c6964206f776e65723160901b60448201526064015b60405180910390fd5b6001600160a01b038116620002135760405162461bcd60e51b815260206004820152600e60248201526d24b73b30b634b21037bbb732b91960911b6044820152606401620001c1565b600480546001600160a01b039384166001600160a01b0319918216179091556005805492909316911617905560015430600090815260026020526040902055620004be565b826005810192821562000289579160200282015b82811115620002895782518255916020019190600101906200026c565b5062000297929150620002d2565b5090565b826005810192821562000289579160200282015b8281111562000289578251829061ffff16905591602001919060010190620002af565b5b80821115620002975760008155600101620002d3565b634e487b7160e01b600052601160045260246000fd5b600181815b8085111562000340578160001904821115620003245762000324620002e9565b808516156200033257918102915b93841c939080029062000304565b509250929050565b6000826200035957506001620003f8565b816200036857506000620003f8565b81600181146200038157600281146200038c57620003ac565b6001915050620003f8565b60ff841115620003a057620003a0620002e9565b50506001821b620003f8565b5060208310610133831016604e8410600b8410161715620003d1575081810a620003f8565b620003dd8383620002ff565b8060001904821115620003f457620003f4620002e9565b0290505b92915050565b60006200040f60ff84168362000348565b9392505050565b8082028115828204841417620003f857620003f8620002e9565b6000826200044e57634e487b7160e01b600052601260045260246000fd5b500690565b81810381811115620003f857620003f8620002e9565b80516001600160a01b03811681146200048157600080fd5b919050565b600080604083850312156200049a57600080fd5b620004a58362000469565b9150620004b56020840162000469565b90509250929050565b6115d680620004ce6000396000f3fe60806040526004361061016a5760003560e01c806352709725116100d1578063a9059cbb1161008a578063d0febe4c11610064578063d0febe4c1461047e578063dd62ed3e14610486578063e0c6a23f146104cc578063e5eb0ab5146104ec57610171565b8063a9059cbb14610429578063af09940d14610449578063bfda08231461046957610171565b8063527097251461036557806370a082311461038557806373688914146103a557806378f053da146103c557806395d89b41146103e55780639dddcbc91461041357610171565b8063245ff1ae11610123578063245ff1ae146102a45780632d838119146102c5578063313ce567146102e55780633657ee0a146103015780633b4f7c5a1461031857806348040ac91461035057610171565b8063055ad42e146101b757806306fdde03146101e0578063095ea7b31461021f5780631392c0861461024f57806318160ddd1461026f57806323b872dd1461028457610171565b3661017157005b60405162461bcd60e51b815260206004820152601660248201527519985b1b189858dac81b9bdd081cdd5c1c1bdc9d195960521b60448201526064015b60405180910390fd5b3480156101c357600080fd5b506101cd60135481565b6040519081526020015b60405180910390f35b3480156101ec57600080fd5b5060408051808201909152600d81526c4153505952204e6574776f726b60981b60208201525b6040516101d7919061129b565b34801561022b57600080fd5b5061023f61023a366004611305565b61050c565b60405190151581526020016101d7565b34801561025b57600080fd5b506101cd61026a36600461132f565b610523565b34801561027b57600080fd5b506101cd6105a3565b34801561029057600080fd5b5061023f61029f366004611348565b6105c4565b3480156102b057600080fd5b5060055461023f90600160a01b900460ff1681565b3480156102d157600080fd5b506101cd6102e036600461132f565b610667565b3480156102f157600080fd5b50604051601281526020016101d7565b34801561030d57600080fd5b506103166106c5565b005b34801561032457600080fd5b50600654610338906001600160a01b031681565b6040516001600160a01b0390911681526020016101d7565b34801561035c57600080fd5b506101cd600481565b34801561037157600080fd5b50600554610338906001600160a01b031681565b34801561039157600080fd5b506101cd6103a0366004611384565b61087c565b3480156103b157600080fd5b50600454610338906001600160a01b031681565b3480156103d157600080fd5b506101cd6103e036600461132f565b61089e565b3480156103f157600080fd5b5060408051808201909152600581526420a9a82ca960d91b6020820152610212565b34801561041f57600080fd5b506101cd60085481565b34801561043557600080fd5b5061023f610444366004611305565b6108b5565b34801561045557600080fd5b506101cd61046436600461132f565b6108c2565b34801561047557600080fd5b506103166108d2565b6103166109ea565b34801561049257600080fd5b506101cd6104a136600461139f565b6001600160a01b03918216600090815260036020908152604080832093909416825291909152205490565b3480156104d857600080fd5b506103166104e7366004611305565b610c19565b3480156104f857600080fd5b50600754610338906001600160a01b031681565b6000610519338484610dda565b5060015b92915050565b60006105316012600a6114cc565b61053f906302faf0806114db565b8211156105865760405162461bcd60e51b8152602060048201526015602482015274416d6f756e74203e20746f74616c20737570706c7960581b60448201526064016101ae565b6000610590610ee7565b905061059c81846114db565b9392505050565b60006105b16012600a6114cc565b6105bf906302faf0806114db565b905090565b60006105d1848484610f10565b6001600160a01b03841660009081526003602090815260408083203384529091529020548281101561064f5760405162461bcd60e51b815260206004820152602160248201527f7472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636044820152606560f81b60648201526084016101ae565b61065c8533858403610dda565b506001949350505050565b60006001548211156106af5760405162461bcd60e51b81526020600482015260116024820152701c905b5bdd5b9d080f8817dc951bdd185b607a1b60448201526064016101ae565b60006106b9610ee7565b905061059c81846114f2565b6004546001600160a01b03163314806106e857506005546001600160a01b031633145b6107045760405162461bcd60e51b81526004016101ae90611514565b600554600160a01b900460ff166107505760405162461bcd60e51b815260206004820152601060248201526f139bc8189d5c9b881c1c9bdc1bdcd85b60821b60448201526064016101ae565b6006546001600160a01b031633036107aa5760405162461bcd60e51b815260206004820152601e60248201527f53616d65206f776e65722063616e6e6f7420636f6e6669726d206275726e000060448201526064016101ae565b60006107b4610ee7565b90506000816008546107c691906114db565b6007546001600160a01b03166000908152600260205260408120805492935083929091906107f590849061154b565b92505081905550806001600082825461080e919061154b565b90915550506005805460ff60a01b19169055600680546001600160a01b03199081169091556007805490911690556000600881905560405181815281907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b6001600160a01b03811660009081526002602052604081205461051d90610667565b600e81600581106108ae57600080fd5b0154905081565b6000610519338484610f10565b600981600581106108ae57600080fd5b6004546001600160a01b03163314806108f557506005546001600160a01b031633145b6109115760405162461bcd60e51b81526004016101ae90611514565b610919611131565b47806109595760405162461bcd60e51b815260206004820152600f60248201526e139bc8115512081d1bc81cdc1b1a5d608a1b60448201526064016101ae565b60006109666002836114f2565b6004546040519192506001600160a01b03169082156108fc029083906000818181858888f193505050501580156109a1573d6000803e3d6000fd5b506005546040516001600160a01b03909116904780156108fc02916000818181858888f193505050501580156109db573d6000803e3d6000fd5b5050506109e86001600055565b565b6109f2611131565b600560135410610a3b5760405162461bcd60e51b8152602060048201526014602482015273105b1b081250d3c81c1a185cd95cc8195b99195960621b60448201526064016101ae565b60003411610a795760405162461bcd60e51b815260206004820152600b60248201526a139bc8115512081cd95b9d60aa1b60448201526064016101ae565b3460005b600082118015610a8f57506005601354105b15610b79576000600e60135460058110610aab57610aab61155e565b015490506000610abb82856114db565b90506000600960135460058110610ad457610ad461155e565b01549050808211610b205781600960135460058110610af557610af561155e565b016000828254610b05919061154b565b90915550610b1590508285611574565b935060009450610b71565b610b2a8185611574565b9350610b3683826114f2565b610b40908661154b565b94506000600960135460058110610b5957610b5961155e565b015560138054906000610b6b83611587565b91905055505b505050610a7d565b60008111610bbf5760405162461bcd60e51b8152602060048201526013602482015272139bc81d1bdad95b9cc81c1d5c98da185cd959606a1b60448201526064016101ae565b610bc9338261118a565b600082118015610bdb57506013546005145b15610c0d57604051339083156108fc029084906000818181858888f193505050501580156109db573d6000803e3d6000fd5b50506109e86001600055565b6004546001600160a01b0316331480610c3c57506005546001600160a01b031633145b610c585760405162461bcd60e51b81526004016101ae90611514565b600554600160a01b900460ff1615610ca95760405162461bcd60e51b81526020600482015260146024820152734275726e2070726f706f73616c2061637469766560601b60448201526064016101ae565b6001600160a01b038216610cff5760405162461bcd60e51b815260206004820152601d60248201527f43616e6e6f74206275726e2066726f6d207a65726f206164647265737300000060448201526064016101ae565b60008111610d3a5760405162461bcd60e51b815260206004820152600860248201526704275726e203e20360c41b60448201526064016101ae565b80610d448361087c565b1015610d925760405162461bcd60e51b815260206004820152601c60248201527f496e73756666696369656e742062616c616e636520746f206275726e0000000060448201526064016101ae565b600680546001600160a01b03199081163317909155600780546001600160a01b039490941693909116929092179091556008556005805460ff60a01b1916600160a01b179055565b6001600160a01b038316610e305760405162461bcd60e51b815260206004820152601960248201527f617070726f76652066726f6d207a65726f20616464726573730000000000000060448201526064016101ae565b6001600160a01b038216610e865760405162461bcd60e51b815260206004820152601760248201527f617070726f766520746f207a65726f206164647265737300000000000000000060448201526064016101ae565b6001600160a01b0383811660008181526003602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6000610ef56012600a6114cc565b610f03906302faf0806114db565b6001546105bf91906114f2565b6001600160a01b038316610f665760405162461bcd60e51b815260206004820152601a60248201527f7472616e736665722066726f6d207a65726f206164647265737300000000000060448201526064016101ae565b6001600160a01b038216610fbc5760405162461bcd60e51b815260206004820152601860248201527f7472616e7366657220746f207a65726f2061646472657373000000000000000060448201526064016101ae565b600081116110025760405162461bcd60e51b815260206004820152601360248201527207472616e7366657220616d6f756e74203e203606c1b60448201526064016101ae565b600061100c610ee7565b9050600061101a82846114db565b90506000606461102b6004866114db565b61103591906114f2565b90506000611043828661154b565b9050600061105185846114db565b9050600061105f828661154b565b6001600160a01b038a1660009081526002602052604081208054929350879290919061108c90849061154b565b90915550506001600160a01b038816600090815260026020526040812080548392906110b9908490611574565b9250508190555081600160008282546110d2919061154b565b92505081905550876001600160a01b0316896001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8560405161111e91815260200190565b60405180910390a3505050505050505050565b6002600054036111835760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0060448201526064016101ae565b6002600055565b6000611194610ee7565b905060006111a282846114db565b306000908152600260205260409020549091508111156112045760405162461bcd60e51b815260206004820181905260248201527f436f6e74726163742068617320696e73756666696369656e7420746f6b656e7360448201526064016101ae565b306000908152600260205260408120805483929061122390849061154b565b90915550506001600160a01b03841660009081526002602052604081208054839290611250908490611574565b90915550506040518381526001600160a01b0385169030907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a350505050565b600060208083528351808285015260005b818110156112c8578581018301518582016040015282016112ac565b506000604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b038116811461130057600080fd5b919050565b6000806040838503121561131857600080fd5b611321836112e9565b946020939093013593505050565b60006020828403121561134157600080fd5b5035919050565b60008060006060848603121561135d57600080fd5b611366846112e9565b9250611374602085016112e9565b9150604084013590509250925092565b60006020828403121561139657600080fd5b61059c826112e9565b600080604083850312156113b257600080fd5b6113bb836112e9565b91506113c9602084016112e9565b90509250929050565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115611423578160001904821115611409576114096113d2565b8085161561141657918102915b93841c93908002906113ed565b509250929050565b60008261143a5750600161051d565b816114475750600061051d565b816001811461145d576002811461146757611483565b600191505061051d565b60ff841115611478576114786113d2565b50506001821b61051d565b5060208310610133831016604e8410600b84101617156114a6575081810a61051d565b6114b083836113e8565b80600019048211156114c4576114c46113d2565b029392505050565b600061059c60ff84168361142b565b808202811582820484141761051d5761051d6113d2565b60008261150f57634e487b7160e01b600052601260045260246000fd5b500490565b60208082526017908201527f4e6f7420616e20617574686f72697a6564206f776e6572000000000000000000604082015260600190565b8181038181111561051d5761051d6113d2565b634e487b7160e01b600052603260045260246000fd5b8082018082111561051d5761051d6113d2565b600060018201611599576115996113d2565b506001019056fea26469706673582212205c29ce8828e221758293c068e89a98e286a3b92051a36263058387662b3c65a964736f6c634300081300330000000000000000000000001cf926b88514b447feebb244f14aa2b5cf528a2e000000000000000000000000dfdab98ef21417861e7402a53f07c589b99e027c
Deployed Bytecode
0x60806040526004361061016a5760003560e01c806352709725116100d1578063a9059cbb1161008a578063d0febe4c11610064578063d0febe4c1461047e578063dd62ed3e14610486578063e0c6a23f146104cc578063e5eb0ab5146104ec57610171565b8063a9059cbb14610429578063af09940d14610449578063bfda08231461046957610171565b8063527097251461036557806370a082311461038557806373688914146103a557806378f053da146103c557806395d89b41146103e55780639dddcbc91461041357610171565b8063245ff1ae11610123578063245ff1ae146102a45780632d838119146102c5578063313ce567146102e55780633657ee0a146103015780633b4f7c5a1461031857806348040ac91461035057610171565b8063055ad42e146101b757806306fdde03146101e0578063095ea7b31461021f5780631392c0861461024f57806318160ddd1461026f57806323b872dd1461028457610171565b3661017157005b60405162461bcd60e51b815260206004820152601660248201527519985b1b189858dac81b9bdd081cdd5c1c1bdc9d195960521b60448201526064015b60405180910390fd5b3480156101c357600080fd5b506101cd60135481565b6040519081526020015b60405180910390f35b3480156101ec57600080fd5b5060408051808201909152600d81526c4153505952204e6574776f726b60981b60208201525b6040516101d7919061129b565b34801561022b57600080fd5b5061023f61023a366004611305565b61050c565b60405190151581526020016101d7565b34801561025b57600080fd5b506101cd61026a36600461132f565b610523565b34801561027b57600080fd5b506101cd6105a3565b34801561029057600080fd5b5061023f61029f366004611348565b6105c4565b3480156102b057600080fd5b5060055461023f90600160a01b900460ff1681565b3480156102d157600080fd5b506101cd6102e036600461132f565b610667565b3480156102f157600080fd5b50604051601281526020016101d7565b34801561030d57600080fd5b506103166106c5565b005b34801561032457600080fd5b50600654610338906001600160a01b031681565b6040516001600160a01b0390911681526020016101d7565b34801561035c57600080fd5b506101cd600481565b34801561037157600080fd5b50600554610338906001600160a01b031681565b34801561039157600080fd5b506101cd6103a0366004611384565b61087c565b3480156103b157600080fd5b50600454610338906001600160a01b031681565b3480156103d157600080fd5b506101cd6103e036600461132f565b61089e565b3480156103f157600080fd5b5060408051808201909152600581526420a9a82ca960d91b6020820152610212565b34801561041f57600080fd5b506101cd60085481565b34801561043557600080fd5b5061023f610444366004611305565b6108b5565b34801561045557600080fd5b506101cd61046436600461132f565b6108c2565b34801561047557600080fd5b506103166108d2565b6103166109ea565b34801561049257600080fd5b506101cd6104a136600461139f565b6001600160a01b03918216600090815260036020908152604080832093909416825291909152205490565b3480156104d857600080fd5b506103166104e7366004611305565b610c19565b3480156104f857600080fd5b50600754610338906001600160a01b031681565b6000610519338484610dda565b5060015b92915050565b60006105316012600a6114cc565b61053f906302faf0806114db565b8211156105865760405162461bcd60e51b8152602060048201526015602482015274416d6f756e74203e20746f74616c20737570706c7960581b60448201526064016101ae565b6000610590610ee7565b905061059c81846114db565b9392505050565b60006105b16012600a6114cc565b6105bf906302faf0806114db565b905090565b60006105d1848484610f10565b6001600160a01b03841660009081526003602090815260408083203384529091529020548281101561064f5760405162461bcd60e51b815260206004820152602160248201527f7472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636044820152606560f81b60648201526084016101ae565b61065c8533858403610dda565b506001949350505050565b60006001548211156106af5760405162461bcd60e51b81526020600482015260116024820152701c905b5bdd5b9d080f8817dc951bdd185b607a1b60448201526064016101ae565b60006106b9610ee7565b905061059c81846114f2565b6004546001600160a01b03163314806106e857506005546001600160a01b031633145b6107045760405162461bcd60e51b81526004016101ae90611514565b600554600160a01b900460ff166107505760405162461bcd60e51b815260206004820152601060248201526f139bc8189d5c9b881c1c9bdc1bdcd85b60821b60448201526064016101ae565b6006546001600160a01b031633036107aa5760405162461bcd60e51b815260206004820152601e60248201527f53616d65206f776e65722063616e6e6f7420636f6e6669726d206275726e000060448201526064016101ae565b60006107b4610ee7565b90506000816008546107c691906114db565b6007546001600160a01b03166000908152600260205260408120805492935083929091906107f590849061154b565b92505081905550806001600082825461080e919061154b565b90915550506005805460ff60a01b19169055600680546001600160a01b03199081169091556007805490911690556000600881905560405181815281907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b6001600160a01b03811660009081526002602052604081205461051d90610667565b600e81600581106108ae57600080fd5b0154905081565b6000610519338484610f10565b600981600581106108ae57600080fd5b6004546001600160a01b03163314806108f557506005546001600160a01b031633145b6109115760405162461bcd60e51b81526004016101ae90611514565b610919611131565b47806109595760405162461bcd60e51b815260206004820152600f60248201526e139bc8115512081d1bc81cdc1b1a5d608a1b60448201526064016101ae565b60006109666002836114f2565b6004546040519192506001600160a01b03169082156108fc029083906000818181858888f193505050501580156109a1573d6000803e3d6000fd5b506005546040516001600160a01b03909116904780156108fc02916000818181858888f193505050501580156109db573d6000803e3d6000fd5b5050506109e86001600055565b565b6109f2611131565b600560135410610a3b5760405162461bcd60e51b8152602060048201526014602482015273105b1b081250d3c81c1a185cd95cc8195b99195960621b60448201526064016101ae565b60003411610a795760405162461bcd60e51b815260206004820152600b60248201526a139bc8115512081cd95b9d60aa1b60448201526064016101ae565b3460005b600082118015610a8f57506005601354105b15610b79576000600e60135460058110610aab57610aab61155e565b015490506000610abb82856114db565b90506000600960135460058110610ad457610ad461155e565b01549050808211610b205781600960135460058110610af557610af561155e565b016000828254610b05919061154b565b90915550610b1590508285611574565b935060009450610b71565b610b2a8185611574565b9350610b3683826114f2565b610b40908661154b565b94506000600960135460058110610b5957610b5961155e565b015560138054906000610b6b83611587565b91905055505b505050610a7d565b60008111610bbf5760405162461bcd60e51b8152602060048201526013602482015272139bc81d1bdad95b9cc81c1d5c98da185cd959606a1b60448201526064016101ae565b610bc9338261118a565b600082118015610bdb57506013546005145b15610c0d57604051339083156108fc029084906000818181858888f193505050501580156109db573d6000803e3d6000fd5b50506109e86001600055565b6004546001600160a01b0316331480610c3c57506005546001600160a01b031633145b610c585760405162461bcd60e51b81526004016101ae90611514565b600554600160a01b900460ff1615610ca95760405162461bcd60e51b81526020600482015260146024820152734275726e2070726f706f73616c2061637469766560601b60448201526064016101ae565b6001600160a01b038216610cff5760405162461bcd60e51b815260206004820152601d60248201527f43616e6e6f74206275726e2066726f6d207a65726f206164647265737300000060448201526064016101ae565b60008111610d3a5760405162461bcd60e51b815260206004820152600860248201526704275726e203e20360c41b60448201526064016101ae565b80610d448361087c565b1015610d925760405162461bcd60e51b815260206004820152601c60248201527f496e73756666696369656e742062616c616e636520746f206275726e0000000060448201526064016101ae565b600680546001600160a01b03199081163317909155600780546001600160a01b039490941693909116929092179091556008556005805460ff60a01b1916600160a01b179055565b6001600160a01b038316610e305760405162461bcd60e51b815260206004820152601960248201527f617070726f76652066726f6d207a65726f20616464726573730000000000000060448201526064016101ae565b6001600160a01b038216610e865760405162461bcd60e51b815260206004820152601760248201527f617070726f766520746f207a65726f206164647265737300000000000000000060448201526064016101ae565b6001600160a01b0383811660008181526003602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6000610ef56012600a6114cc565b610f03906302faf0806114db565b6001546105bf91906114f2565b6001600160a01b038316610f665760405162461bcd60e51b815260206004820152601a60248201527f7472616e736665722066726f6d207a65726f206164647265737300000000000060448201526064016101ae565b6001600160a01b038216610fbc5760405162461bcd60e51b815260206004820152601860248201527f7472616e7366657220746f207a65726f2061646472657373000000000000000060448201526064016101ae565b600081116110025760405162461bcd60e51b815260206004820152601360248201527207472616e7366657220616d6f756e74203e203606c1b60448201526064016101ae565b600061100c610ee7565b9050600061101a82846114db565b90506000606461102b6004866114db565b61103591906114f2565b90506000611043828661154b565b9050600061105185846114db565b9050600061105f828661154b565b6001600160a01b038a1660009081526002602052604081208054929350879290919061108c90849061154b565b90915550506001600160a01b038816600090815260026020526040812080548392906110b9908490611574565b9250508190555081600160008282546110d2919061154b565b92505081905550876001600160a01b0316896001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8560405161111e91815260200190565b60405180910390a3505050505050505050565b6002600054036111835760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0060448201526064016101ae565b6002600055565b6000611194610ee7565b905060006111a282846114db565b306000908152600260205260409020549091508111156112045760405162461bcd60e51b815260206004820181905260248201527f436f6e74726163742068617320696e73756666696369656e7420746f6b656e7360448201526064016101ae565b306000908152600260205260408120805483929061122390849061154b565b90915550506001600160a01b03841660009081526002602052604081208054839290611250908490611574565b90915550506040518381526001600160a01b0385169030907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a350505050565b600060208083528351808285015260005b818110156112c8578581018301518582016040015282016112ac565b506000604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b038116811461130057600080fd5b919050565b6000806040838503121561131857600080fd5b611321836112e9565b946020939093013593505050565b60006020828403121561134157600080fd5b5035919050565b60008060006060848603121561135d57600080fd5b611366846112e9565b9250611374602085016112e9565b9150604084013590509250925092565b60006020828403121561139657600080fd5b61059c826112e9565b600080604083850312156113b257600080fd5b6113bb836112e9565b91506113c9602084016112e9565b90509250929050565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115611423578160001904821115611409576114096113d2565b8085161561141657918102915b93841c93908002906113ed565b509250929050565b60008261143a5750600161051d565b816114475750600061051d565b816001811461145d576002811461146757611483565b600191505061051d565b60ff841115611478576114786113d2565b50506001821b61051d565b5060208310610133831016604e8410600b84101617156114a6575081810a61051d565b6114b083836113e8565b80600019048211156114c4576114c46113d2565b029392505050565b600061059c60ff84168361142b565b808202811582820484141761051d5761051d6113d2565b60008261150f57634e487b7160e01b600052601260045260246000fd5b500490565b60208082526017908201527f4e6f7420616e20617574686f72697a6564206f776e6572000000000000000000604082015260600190565b8181038181111561051d5761051d6113d2565b634e487b7160e01b600052603260045260246000fd5b8082018082111561051d5761051d6113d2565b600060018201611599576115996113d2565b506001019056fea26469706673582212205c29ce8828e221758293c068e89a98e286a3b92051a36263058387662b3c65a964736f6c63430008130033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
0000000000000000000000001cf926b88514b447feebb244f14aa2b5cf528a2e000000000000000000000000dfdab98ef21417861e7402a53f07c589b99e027c
-----Decoded View---------------
Arg [0] : _owner1 (address): 0x1Cf926b88514B447fEEBb244F14aa2b5CF528a2E
Arg [1] : _owner2 (address): 0xdFdAB98ef21417861e7402a53F07c589B99e027c
-----Encoded View---------------
2 Constructor Arguments found :
Arg [0] : 0000000000000000000000001cf926b88514b447feebb244f14aa2b5cf528a2e
Arg [1] : 000000000000000000000000dfdab98ef21417861e7402a53f07c589b99e027c
Loading...
Loading
Loading...
Loading
Net Worth in USD
$0.00
Net Worth in ETH
0
Multichain Portfolio | 34 Chains
| Chain | Token | Portfolio % | Price | Amount | Value |
|---|
Loading...
Loading
Loading...
Loading
Loading...
Loading
[ 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.