Source Code
Latest 25 from a total of 4,173 transactions
| Transaction Hash |
|
Block
|
From
|
To
|
|||||
|---|---|---|---|---|---|---|---|---|---|
| Claim | 377044952 | 145 days ago | IN | 0 ETH | 0.00000054 | ||||
| Claim | 106463157 | 946 days ago | IN | 0 ETH | 0.00007822 | ||||
| Claim | 105877446 | 948 days ago | IN | 0 ETH | 0.00007454 | ||||
| Claim | 105778513 | 948 days ago | IN | 0 ETH | 0.00003701 | ||||
| Claim | 105382037 | 949 days ago | IN | 0 ETH | 0.00003288 | ||||
| Claim | 104957695 | 951 days ago | IN | 0 ETH | 0.00003166 | ||||
| Claim | 103918853 | 954 days ago | IN | 0 ETH | 0.00005978 | ||||
| Claim | 103860199 | 954 days ago | IN | 0 ETH | 0.00004425 | ||||
| Claim | 103852424 | 954 days ago | IN | 0 ETH | 0.00004813 | ||||
| Claim | 103848442 | 954 days ago | IN | 0 ETH | 0.00004635 | ||||
| Claim | 103807535 | 954 days ago | IN | 0 ETH | 0.00005373 | ||||
| Claim | 103804272 | 954 days ago | IN | 0 ETH | 0.00005894 | ||||
| Claim | 103797020 | 954 days ago | IN | 0 ETH | 0.00006057 | ||||
| Claim | 103777081 | 954 days ago | IN | 0 ETH | 0.00004817 | ||||
| Claim | 103752372 | 954 days ago | IN | 0 ETH | 0.00005211 | ||||
| Claim | 103736881 | 954 days ago | IN | 0 ETH | 0.00004152 | ||||
| Claim | 103734879 | 954 days ago | IN | 0 ETH | 0.00003975 | ||||
| Claim | 103696233 | 954 days ago | IN | 0 ETH | 0.00003744 | ||||
| Claim | 103687514 | 954 days ago | IN | 0 ETH | 0.00005521 | ||||
| Claim | 103685681 | 954 days ago | IN | 0 ETH | 0.00005164 | ||||
| Claim | 103672064 | 954 days ago | IN | 0 ETH | 0.00004328 | ||||
| Claim | 103658626 | 955 days ago | IN | 0 ETH | 0.00004922 | ||||
| Claim | 103610196 | 955 days ago | IN | 0 ETH | 0.00004852 | ||||
| Claim | 103601230 | 955 days ago | IN | 0 ETH | 0.00005542 | ||||
| Claim | 103581161 | 955 days ago | IN | 0 ETH | 0.00004173 |
Latest 25 internal transactions (View All)
| Parent Transaction Hash | Block | From | To | |||
|---|---|---|---|---|---|---|
| 72074687 | 1047 days ago | 0 ETH | ||||
| 72072284 | 1047 days ago | 0 ETH | ||||
| 72069508 | 1047 days ago | 0 ETH | ||||
| 72026275 | 1047 days ago | 0 ETH | ||||
| 72008310 | 1048 days ago | 0 ETH | ||||
| 72000186 | 1048 days ago | 0 ETH | ||||
| 71990723 | 1048 days ago | 0 ETH | ||||
| 71941606 | 1048 days ago | 0 ETH | ||||
| 71941606 | 1048 days ago | 0 ETH | ||||
| 71932466 | 1048 days ago | 0 ETH | ||||
| 71920016 | 1048 days ago | 0 ETH | ||||
| 71920016 | 1048 days ago | 0 ETH | ||||
| 71899784 | 1048 days ago | 0 ETH | ||||
| 71899784 | 1048 days ago | 0 ETH | ||||
| 71885931 | 1048 days ago | 0 ETH | ||||
| 71882619 | 1048 days ago | 0 ETH | ||||
| 71873659 | 1048 days ago | 0 ETH | ||||
| 71866912 | 1048 days ago | 0 ETH | ||||
| 71851333 | 1048 days ago | 0 ETH | ||||
| 71842244 | 1048 days ago | 0 ETH | ||||
| 71825395 | 1048 days ago | 0 ETH | ||||
| 71823045 | 1048 days ago | 0 ETH | ||||
| 71812107 | 1048 days ago | 0 ETH | ||||
| 71801480 | 1048 days ago | 0 ETH | ||||
| 71786987 | 1048 days ago | 0 ETH |
Cross-Chain Transactions
Loading...
Loading
Contract Name:
MultiDistributor
Compiler Version
v0.7.5+commit.eb77ed08
Optimization Enabled:
Yes with 200 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity Standard Json-Input format)
// SPDX-License-Identifier: ISC
pragma solidity 0.7.5;
pragma abicoder v2;
import { IERC20 } from "@openzeppelin/contracts/token/ERC20/IERC20.sol";
import { Ownable } from "@openzeppelin/contracts/access/Ownable.sol";
contract MultiDistributor is Ownable {
struct UserAmounts {
address user;
uint256 amount;
}
struct UserTokenAmounts {
address user;
IERC20 token;
uint256 amount;
}
mapping(address => mapping(IERC20 => uint256)) public claimableBalances;
mapping(address => mapping(IERC20 => uint256)) public totalClaimed;
constructor() Ownable() {}
function addToClaims(
UserAmounts[] memory claimsToAdd,
IERC20 tokenAddress,
uint256 epochTimestamp,
string memory tag
) external onlyOwner {
for (uint256 i = 0; i < claimsToAdd.length; i++) {
UserAmounts memory claimToAdd = claimsToAdd[i];
claimableBalances[claimToAdd.user][tokenAddress] += claimToAdd.amount;
require(claimableBalances[claimToAdd.user][tokenAddress] >= claimToAdd.amount, "Addition overflow for balance");
emit ClaimAdded(tokenAddress, claimToAdd.user, claimToAdd.amount, epochTimestamp, tag);
}
}
function removeClaims(address[] memory addresses, IERC20[] memory tokens) external onlyOwner {
for (uint256 i = 0; i < addresses.length; i++) {
for (uint256 j = 0; j < tokens.length; j++) {
uint256 balanceToClaim = claimableBalances[addresses[i]][tokens[j]];
claimableBalances[addresses[i]][tokens[j]] = 0;
emit ClaimRemoved(tokens[j], addresses[i], balanceToClaim);
}
}
}
function claim(IERC20[] memory tokens) external {
for (uint256 j = 0; j < tokens.length; j++) {
uint256 balanceToClaim = claimableBalances[msg.sender][tokens[j]];
if (balanceToClaim == 0) {
continue;
}
claimableBalances[msg.sender][tokens[j]] = 0;
totalClaimed[msg.sender][tokens[j]] += balanceToClaim;
tokens[j].transfer(msg.sender, balanceToClaim);
emit Claimed(tokens[j], msg.sender, balanceToClaim);
}
}
function getClaimableForAddresses(
address[] memory addresses,
IERC20[] memory tokens
) external view returns (UserTokenAmounts[] memory claimed, UserTokenAmounts[] memory claimable) {
claimable = new UserTokenAmounts[](addresses.length * tokens.length);
claimed = new UserTokenAmounts[](addresses.length * tokens.length);
for (uint256 i = 0; i < addresses.length; i++) {
for (uint256 j = 0; j < tokens.length; j++) {
claimed[i * tokens.length + j] = UserTokenAmounts({
user: addresses[i],
token: tokens[j],
amount: totalClaimed[addresses[i]][tokens[j]]
});
claimable[i * tokens.length + j] = UserTokenAmounts({
user: addresses[i],
token: tokens[j],
amount: claimableBalances[addresses[i]][tokens[j]]
});
}
}
}
//////
// Events
event Claimed(IERC20 indexed rewardToken, address indexed claimer, uint256 amount);
event ClaimAdded(
IERC20 indexed rewardToken,
address indexed claimer,
uint256 amount,
uint256 indexed epochTimestamp,
string tag
);
event ClaimRemoved(IERC20 indexed rewardToken, address indexed claimer, uint256 amount);
}// SPDX-License-Identifier: MIT
pragma solidity ^0.7.0;
import "../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.
*
* By default, the owner account will be the one that deploys the contract. This
* can later be changed with {transferOwnership}.
*
* This module is used through inheritance. It will make available the modifier
* `onlyOwner`, which can be applied to your functions to restrict their use to
* the owner.
*/
abstract contract Ownable is Context {
address private _owner;
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);
/**
* @dev Initializes the contract setting the deployer as the initial owner.
*/
constructor () {
address msgSender = _msgSender();
_owner = msgSender;
emit OwnershipTransferred(address(0), msgSender);
}
/**
* @dev Returns the address of the current owner.
*/
function owner() public view virtual returns (address) {
return _owner;
}
/**
* @dev Throws if called by any account other than the owner.
*/
modifier onlyOwner() {
require(owner() == _msgSender(), "Ownable: caller is not the owner");
_;
}
/**
* @dev Leaves the contract without owner. It will not be possible to call
* `onlyOwner` functions anymore. Can only be called by the current owner.
*
* NOTE: Renouncing ownership will leave the contract without an owner,
* thereby removing any functionality that is only available to the owner.
*/
function renounceOwnership() public virtual onlyOwner {
emit OwnershipTransferred(_owner, address(0));
_owner = address(0);
}
/**
* @dev Transfers ownership of the contract to a new account (`newOwner`).
* Can only be called by the current owner.
*/
function transferOwnership(address newOwner) public virtual onlyOwner {
require(newOwner != address(0), "Ownable: new owner is the zero address");
emit OwnershipTransferred(_owner, newOwner);
_owner = newOwner;
}
}// SPDX-License-Identifier: MIT
pragma solidity ^0.7.0;
/**
* @dev Interface of the ERC20 standard as defined in the EIP.
*/
interface IERC20 {
/**
* @dev Returns the amount of tokens in existence.
*/
function totalSupply() external view returns (uint256);
/**
* @dev Returns the amount of tokens owned by `account`.
*/
function balanceOf(address account) external view returns (uint256);
/**
* @dev Moves `amount` tokens from the caller's account to `recipient`.
*
* Returns a boolean value indicating whether the operation succeeded.
*
* Emits a {Transfer} event.
*/
function transfer(address recipient, uint256 amount) 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 `amount` 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 amount) external returns (bool);
/**
* @dev Moves `amount` tokens from `sender` to `recipient` using the
* allowance mechanism. `amount` is then deducted from the caller's
* allowance.
*
* Returns a boolean value indicating whether the operation succeeded.
*
* Emits a {Transfer} event.
*/
function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);
/**
* @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);
}// SPDX-License-Identifier: MIT
pragma solidity >=0.6.0 <0.8.0;
/*
* @dev Provides information about the current execution context, including the
* sender of the transaction and its data. While these are generally available
* via msg.sender and msg.data, they should not be accessed in such a direct
* manner, since when dealing with GSN 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 payable) {
return msg.sender;
}
function _msgData() internal view virtual returns (bytes memory) {
this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691
return msg.data;
}
}{
"optimizer": {
"enabled": true,
"runs": 200
},
"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"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"contract IERC20","name":"rewardToken","type":"address"},{"indexed":true,"internalType":"address","name":"claimer","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"},{"indexed":true,"internalType":"uint256","name":"epochTimestamp","type":"uint256"},{"indexed":false,"internalType":"string","name":"tag","type":"string"}],"name":"ClaimAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"contract IERC20","name":"rewardToken","type":"address"},{"indexed":true,"internalType":"address","name":"claimer","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"ClaimRemoved","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"contract IERC20","name":"rewardToken","type":"address"},{"indexed":true,"internalType":"address","name":"claimer","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Claimed","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"},{"inputs":[{"components":[{"internalType":"address","name":"user","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"internalType":"struct MultiDistributor.UserAmounts[]","name":"claimsToAdd","type":"tuple[]"},{"internalType":"contract IERC20","name":"tokenAddress","type":"address"},{"internalType":"uint256","name":"epochTimestamp","type":"uint256"},{"internalType":"string","name":"tag","type":"string"}],"name":"addToClaims","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"contract IERC20[]","name":"tokens","type":"address[]"}],"name":"claim","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"contract IERC20","name":"","type":"address"}],"name":"claimableBalances","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"addresses","type":"address[]"},{"internalType":"contract IERC20[]","name":"tokens","type":"address[]"}],"name":"getClaimableForAddresses","outputs":[{"components":[{"internalType":"address","name":"user","type":"address"},{"internalType":"contract IERC20","name":"token","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"internalType":"struct MultiDistributor.UserTokenAmounts[]","name":"claimed","type":"tuple[]"},{"components":[{"internalType":"address","name":"user","type":"address"},{"internalType":"contract IERC20","name":"token","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"internalType":"struct MultiDistributor.UserTokenAmounts[]","name":"claimable","type":"tuple[]"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"addresses","type":"address[]"},{"internalType":"contract IERC20[]","name":"tokens","type":"address[]"}],"name":"removeClaims","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"contract IERC20","name":"","type":"address"}],"name":"totalClaimed","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"}]Contract Creation Code
608060405234801561001057600080fd5b50600061001b61006a565b600080546001600160a01b0319166001600160a01b0383169081178255604051929350917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a35061006e565b3390565b61113a8061007d6000396000f3fe608060405234801561001057600080fd5b50600436106100935760003560e01c80638da5cb5b116100665780638da5cb5b146100f15780639e28988d14610106578063cfc891e414610127578063d83893601461013a578063f2fde38b1461014d57610093565b8063318d9e5d14610098578063594065d0146100ad578063715018a6146100d657806376c13cbd146100de575b600080fd5b6100ab6100a6366004610da8565b610160565b005b6100c06100bb366004610cad565b610379565b6040516100cd9190611000565b60405180910390f35b6100ab610396565b6100c06100ec366004610cad565b610442565b6100f961045f565b6040516100cd9190610f6e565b610119610114366004610ce5565b61046e565b6040516100cd929190610f9b565b6100ab610135366004610ce5565b61070c565b6100ab610148366004610de3565b6108f5565b6100ab61015b366004610c8a565b610a5f565b60005b8151811015610375573360009081526001602052604081208351829085908590811061018b57fe5b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002054905080600014156101c5575061036d565b336000908152600160205260408120845182908690869081106101e457fe5b60200260200101516001600160a01b03166001600160a01b03168152602001908152602001600020819055508060026000336001600160a01b03166001600160a01b03168152602001908152602001600020600085858151811061024457fe5b60200260200101516001600160a01b03166001600160a01b031681526020019081526020016000206000828254019250508190555082828151811061028557fe5b60200260200101516001600160a01b031663a9059cbb33836040518363ffffffff1660e01b81526004016102ba929190610f82565b602060405180830381600087803b1580156102d457600080fd5b505af11580156102e8573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061030c9190610ef2565b50336001600160a01b031683838151811061032357fe5b60200260200101516001600160a01b03167ff7a40077ff7a04c7e61f6f26fb13774259ddf1b6bce9ecf26a8276cdd3992683836040516103639190611000565b60405180910390a3505b600101610163565b5050565b600260209081526000928352604080842090915290825290205481565b61039e610b61565b6001600160a01b03166103af61045f565b6001600160a01b0316146103f8576040805162461bcd60e51b815260206004820181905260248201526000805160206110e5833981519152604482015290519081900360640190fd5b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b600160209081526000928352604080842090915290825290205481565b6000546001600160a01b031690565b606080825184510267ffffffffffffffff8111801561048c57600080fd5b506040519080825280602002602001820160405280156104c657816020015b6104b3610b65565b8152602001906001900390816104ab5790505b509050825184510267ffffffffffffffff811180156104e457600080fd5b5060405190808252806020026020018201604052801561051e57816020015b61050b610b65565b8152602001906001900390816105035790505b50915060005b84518110156107045760005b84518110156106fb57604051806060016040528087848151811061055057fe5b60200260200101516001600160a01b0316815260200186838151811061057257fe5b60200260200101516001600160a01b031681526020016002600089868151811061059857fe5b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002060008885815181106105ce57fe5b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002054815250848287518502018151811061060b57fe5b6020026020010181905250604051806060016040528087848151811061062d57fe5b60200260200101516001600160a01b0316815260200186838151811061064f57fe5b60200260200101516001600160a01b031681526020016001600089868151811061067557fe5b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002060008885815181106106ab57fe5b60200260200101516001600160a01b03166001600160a01b031681526020019081526020016000205481525083828751850201815181106106e857fe5b6020908102919091010152600101610530565b50600101610524565b509250929050565b610714610b61565b6001600160a01b031661072561045f565b6001600160a01b03161461076e576040805162461bcd60e51b815260206004820181905260248201526000805160206110e5833981519152604482015290519081900360640190fd5b60005b82518110156108f05760005b82518110156108e75760006001600086858151811061079857fe5b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002060008584815181106107ce57fe5b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002054905060006001600087868151811061080b57fe5b60200260200101516001600160a01b03166001600160a01b03168152602001908152602001600020600086858151811061084157fe5b60200260200101516001600160a01b03166001600160a01b031681526020019081526020016000208190555084838151811061087957fe5b60200260200101516001600160a01b031684838151811061089657fe5b60200260200101516001600160a01b03167f0c8df48908c0ea535bfd853f98d669ef50f73e8f493551f4aa8904490f7eee0f836040516108d69190611000565b60405180910390a35060010161077d565b50600101610771565b505050565b6108fd610b61565b6001600160a01b031661090e61045f565b6001600160a01b031614610957576040805162461bcd60e51b815260206004820181905260248201526000805160206110e5833981519152604482015290519081900360640190fd5b60005b8451811015610a585761096b610b85565b85828151811061097757fe5b602090810291909101810151808201805182516001600160a01b039081166000908152600180875260408083208d85168085529089528184208054909601909555945186519093168252865283812092815291909452205490925010156109f95760405162461bcd60e51b81526004016109f090610fc9565b60405180910390fd5b8381600001516001600160a01b0316866001600160a01b03167fb0ac82d7f78225d6523543322fb77614ac19b3081b0675e3df9ba0566145be2e846020015187604051610a47929190611009565b60405180910390a45060010161095a565b5050505050565b610a67610b61565b6001600160a01b0316610a7861045f565b6001600160a01b031614610ac1576040805162461bcd60e51b815260206004820181905260248201526000805160206110e5833981519152604482015290519081900360640190fd5b6001600160a01b038116610b065760405162461bcd60e51b81526004018080602001828103825260268152602001806110bf6026913960400191505060405180910390fd5b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b3390565b604080516060810182526000808252602082018190529181019190915290565b604080518082019091526000808252602082015290565b600082601f830112610bac578081fd5b8135610bbf610bba82611088565b611064565b818152915060208083019084810181840286018201871015610be057600080fd5b60005b84811015610c08578135610bf6816110a6565b84529282019290820190600101610be3565b505050505092915050565b8035610c1e816110a6565b919050565b600082601f830112610c33578081fd5b813567ffffffffffffffff811115610c4757fe5b610c5a601f8201601f1916602001611064565b9150808252836020828501011115610c7157600080fd5b8060208401602084013760009082016020015292915050565b600060208284031215610c9b578081fd5b8135610ca6816110a6565b9392505050565b60008060408385031215610cbf578081fd5b8235610cca816110a6565b91506020830135610cda816110a6565b809150509250929050565b60008060408385031215610cf7578182fd5b823567ffffffffffffffff80821115610d0e578384fd5b818501915085601f830112610d21578384fd5b8135610d2f610bba82611088565b80828252602080830192508086018a828387028901011115610d4f578889fd5b8896505b84871015610d7a578035610d66816110a6565b845260019690960195928101928101610d53565b509096508701359350505080821115610d91578283fd5b50610d9e85828601610b9c565b9150509250929050565b600060208284031215610db9578081fd5b813567ffffffffffffffff811115610dcf578182fd5b610ddb84828501610b9c565b949350505050565b60008060008060808587031215610df8578182fd5b843567ffffffffffffffff80821115610e0f578384fd5b818701915087601f830112610e22578384fd5b8135610e30610bba82611088565b808282526020808301925080860160408d838288028a01011115610e5257898afd5b8997505b85881015610eac5780828f031215610e6c57898afd5b80518181018181108982111715610e7f57fe5b82528235610e8c816110a6565b815282840135848201528552600197909701969382019390810190610e56565b839b50610eba838e01610c13565b9a508c01359850505060608a0135945050505080821115610ed9578283fd5b50610ee687828801610c23565b91505092959194509250565b600060208284031215610f03578081fd5b81518015158114610ca6578182fd5b6000815180845260208085019450808401835b83811015610f6357815180516001600160a01b0390811689528482015116848901526040908101519088015260609096019590820190600101610f25565b509495945050505050565b6001600160a01b0391909116815260200190565b6001600160a01b03929092168252602082015260400190565b600060408252610fae6040830185610f12565b8281036020840152610fc08185610f12565b95945050505050565b6020808252601d908201527f4164646974696f6e206f766572666c6f7720666f722062616c616e6365000000604082015260600190565b90815260200190565b600083825260206040818401528351806040850152825b8181101561103c57858101830151858201606001528201611020565b8181111561104d5783606083870101525b50601f01601f191692909201606001949350505050565b60405181810167ffffffffffffffff8111828210171561108057fe5b604052919050565b600067ffffffffffffffff82111561109c57fe5b5060209081020190565b6001600160a01b03811681146110bb57600080fd5b5056fe4f776e61626c653a206e6577206f776e657220697320746865207a65726f20616464726573734f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572a2646970667358221220b27d94cf765f5a3bd252a6059b1fe86188b155654074bc8cdc5d66812997526564736f6c63430007050033
Deployed Bytecode
0x608060405234801561001057600080fd5b50600436106100935760003560e01c80638da5cb5b116100665780638da5cb5b146100f15780639e28988d14610106578063cfc891e414610127578063d83893601461013a578063f2fde38b1461014d57610093565b8063318d9e5d14610098578063594065d0146100ad578063715018a6146100d657806376c13cbd146100de575b600080fd5b6100ab6100a6366004610da8565b610160565b005b6100c06100bb366004610cad565b610379565b6040516100cd9190611000565b60405180910390f35b6100ab610396565b6100c06100ec366004610cad565b610442565b6100f961045f565b6040516100cd9190610f6e565b610119610114366004610ce5565b61046e565b6040516100cd929190610f9b565b6100ab610135366004610ce5565b61070c565b6100ab610148366004610de3565b6108f5565b6100ab61015b366004610c8a565b610a5f565b60005b8151811015610375573360009081526001602052604081208351829085908590811061018b57fe5b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002054905080600014156101c5575061036d565b336000908152600160205260408120845182908690869081106101e457fe5b60200260200101516001600160a01b03166001600160a01b03168152602001908152602001600020819055508060026000336001600160a01b03166001600160a01b03168152602001908152602001600020600085858151811061024457fe5b60200260200101516001600160a01b03166001600160a01b031681526020019081526020016000206000828254019250508190555082828151811061028557fe5b60200260200101516001600160a01b031663a9059cbb33836040518363ffffffff1660e01b81526004016102ba929190610f82565b602060405180830381600087803b1580156102d457600080fd5b505af11580156102e8573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061030c9190610ef2565b50336001600160a01b031683838151811061032357fe5b60200260200101516001600160a01b03167ff7a40077ff7a04c7e61f6f26fb13774259ddf1b6bce9ecf26a8276cdd3992683836040516103639190611000565b60405180910390a3505b600101610163565b5050565b600260209081526000928352604080842090915290825290205481565b61039e610b61565b6001600160a01b03166103af61045f565b6001600160a01b0316146103f8576040805162461bcd60e51b815260206004820181905260248201526000805160206110e5833981519152604482015290519081900360640190fd5b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b600160209081526000928352604080842090915290825290205481565b6000546001600160a01b031690565b606080825184510267ffffffffffffffff8111801561048c57600080fd5b506040519080825280602002602001820160405280156104c657816020015b6104b3610b65565b8152602001906001900390816104ab5790505b509050825184510267ffffffffffffffff811180156104e457600080fd5b5060405190808252806020026020018201604052801561051e57816020015b61050b610b65565b8152602001906001900390816105035790505b50915060005b84518110156107045760005b84518110156106fb57604051806060016040528087848151811061055057fe5b60200260200101516001600160a01b0316815260200186838151811061057257fe5b60200260200101516001600160a01b031681526020016002600089868151811061059857fe5b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002060008885815181106105ce57fe5b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002054815250848287518502018151811061060b57fe5b6020026020010181905250604051806060016040528087848151811061062d57fe5b60200260200101516001600160a01b0316815260200186838151811061064f57fe5b60200260200101516001600160a01b031681526020016001600089868151811061067557fe5b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002060008885815181106106ab57fe5b60200260200101516001600160a01b03166001600160a01b031681526020019081526020016000205481525083828751850201815181106106e857fe5b6020908102919091010152600101610530565b50600101610524565b509250929050565b610714610b61565b6001600160a01b031661072561045f565b6001600160a01b03161461076e576040805162461bcd60e51b815260206004820181905260248201526000805160206110e5833981519152604482015290519081900360640190fd5b60005b82518110156108f05760005b82518110156108e75760006001600086858151811061079857fe5b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002060008584815181106107ce57fe5b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002054905060006001600087868151811061080b57fe5b60200260200101516001600160a01b03166001600160a01b03168152602001908152602001600020600086858151811061084157fe5b60200260200101516001600160a01b03166001600160a01b031681526020019081526020016000208190555084838151811061087957fe5b60200260200101516001600160a01b031684838151811061089657fe5b60200260200101516001600160a01b03167f0c8df48908c0ea535bfd853f98d669ef50f73e8f493551f4aa8904490f7eee0f836040516108d69190611000565b60405180910390a35060010161077d565b50600101610771565b505050565b6108fd610b61565b6001600160a01b031661090e61045f565b6001600160a01b031614610957576040805162461bcd60e51b815260206004820181905260248201526000805160206110e5833981519152604482015290519081900360640190fd5b60005b8451811015610a585761096b610b85565b85828151811061097757fe5b602090810291909101810151808201805182516001600160a01b039081166000908152600180875260408083208d85168085529089528184208054909601909555945186519093168252865283812092815291909452205490925010156109f95760405162461bcd60e51b81526004016109f090610fc9565b60405180910390fd5b8381600001516001600160a01b0316866001600160a01b03167fb0ac82d7f78225d6523543322fb77614ac19b3081b0675e3df9ba0566145be2e846020015187604051610a47929190611009565b60405180910390a45060010161095a565b5050505050565b610a67610b61565b6001600160a01b0316610a7861045f565b6001600160a01b031614610ac1576040805162461bcd60e51b815260206004820181905260248201526000805160206110e5833981519152604482015290519081900360640190fd5b6001600160a01b038116610b065760405162461bcd60e51b81526004018080602001828103825260268152602001806110bf6026913960400191505060405180910390fd5b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b3390565b604080516060810182526000808252602082018190529181019190915290565b604080518082019091526000808252602082015290565b600082601f830112610bac578081fd5b8135610bbf610bba82611088565b611064565b818152915060208083019084810181840286018201871015610be057600080fd5b60005b84811015610c08578135610bf6816110a6565b84529282019290820190600101610be3565b505050505092915050565b8035610c1e816110a6565b919050565b600082601f830112610c33578081fd5b813567ffffffffffffffff811115610c4757fe5b610c5a601f8201601f1916602001611064565b9150808252836020828501011115610c7157600080fd5b8060208401602084013760009082016020015292915050565b600060208284031215610c9b578081fd5b8135610ca6816110a6565b9392505050565b60008060408385031215610cbf578081fd5b8235610cca816110a6565b91506020830135610cda816110a6565b809150509250929050565b60008060408385031215610cf7578182fd5b823567ffffffffffffffff80821115610d0e578384fd5b818501915085601f830112610d21578384fd5b8135610d2f610bba82611088565b80828252602080830192508086018a828387028901011115610d4f578889fd5b8896505b84871015610d7a578035610d66816110a6565b845260019690960195928101928101610d53565b509096508701359350505080821115610d91578283fd5b50610d9e85828601610b9c565b9150509250929050565b600060208284031215610db9578081fd5b813567ffffffffffffffff811115610dcf578182fd5b610ddb84828501610b9c565b949350505050565b60008060008060808587031215610df8578182fd5b843567ffffffffffffffff80821115610e0f578384fd5b818701915087601f830112610e22578384fd5b8135610e30610bba82611088565b808282526020808301925080860160408d838288028a01011115610e5257898afd5b8997505b85881015610eac5780828f031215610e6c57898afd5b80518181018181108982111715610e7f57fe5b82528235610e8c816110a6565b815282840135848201528552600197909701969382019390810190610e56565b839b50610eba838e01610c13565b9a508c01359850505060608a0135945050505080821115610ed9578283fd5b50610ee687828801610c23565b91505092959194509250565b600060208284031215610f03578081fd5b81518015158114610ca6578182fd5b6000815180845260208085019450808401835b83811015610f6357815180516001600160a01b0390811689528482015116848901526040908101519088015260609096019590820190600101610f25565b509495945050505050565b6001600160a01b0391909116815260200190565b6001600160a01b03929092168252602082015260400190565b600060408252610fae6040830185610f12565b8281036020840152610fc08185610f12565b95945050505050565b6020808252601d908201527f4164646974696f6e206f766572666c6f7720666f722062616c616e6365000000604082015260600190565b90815260200190565b600083825260206040818401528351806040850152825b8181101561103c57858101830151858201606001528201611020565b8181111561104d5783606083870101525b50601f01601f191692909201606001949350505050565b60405181810167ffffffffffffffff8111828210171561108057fe5b604052919050565b600067ffffffffffffffff82111561109c57fe5b5060209081020190565b6001600160a01b03811681146110bb57600080fd5b5056fe4f776e61626c653a206e6577206f776e657220697320746865207a65726f20616464726573734f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572a2646970667358221220b27d94cf765f5a3bd252a6059b1fe86188b155654074bc8cdc5d66812997526564736f6c63430007050033
Loading...
Loading
Loading...
Loading
Loading...
Loading
Net Worth in USD
$0.00
Net Worth in ETH
0
Multichain Portfolio | 35 Chains
| Chain | Token | Portfolio % | Price | Amount | Value |
|---|
Loading...
Loading
Loading...
Loading
Loading...
Loading
[ Download: CSV Export ]
[ Download: CSV Export ]
A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.