Latest 19 from a total of 19 transactions
| Transaction Hash |
|
Block
|
From
|
To
|
|||||
|---|---|---|---|---|---|---|---|---|---|
| Accept Ownership | 27009066 | 30 days ago | IN | 0 ETH | 0.00000107 | ||||
| Transfer Ownersh... | 27009060 | 30 days ago | IN | 0 ETH | 0.00000179 | ||||
| Distribute Fees | 19342598 | 242 days ago | IN | 0 ETH | 0.00007998 | ||||
| Distribute Fees | 18100485 | 281 days ago | IN | 0 ETH | 0.00026672 | ||||
| Distribute Fees | 12489366 | 424 days ago | IN | 0 ETH | 0.00065319 | ||||
| Distribute Fees | 11423039 | 449 days ago | IN | 0 ETH | 0.00041732 | ||||
| Distribute Fees | 6038625 | 575 days ago | IN | 0 ETH | 0.00005275 | ||||
| Distribute Fees | 5103768 | 599 days ago | IN | 0 ETH | 0.00005587 | ||||
| Set Fee Registry | 4961946 | 604 days ago | IN | 0 ETH | 0.00000254 | ||||
| Distribute Fees | 4786307 | 610 days ago | IN | 0 ETH | 0.00004567 | ||||
| Set Fee Registry | 4580983 | 617 days ago | IN | 0 ETH | 0.0000021 | ||||
| Distribute Fees | 3513614 | 654 days ago | IN | 0 ETH | 0.00003216 | ||||
| Distribute Fees | 2601901 | 693 days ago | IN | 0 ETH | 0.00057421 | ||||
| Set Fee Registry | 2218084 | 711 days ago | IN | 0 ETH | 0.0000602 | ||||
| Distribute Fees | 1624747 | 742 days ago | IN | 0 ETH | 0.0007862 | ||||
| Distribute Fees | 1303817 | 764 days ago | IN | 0 ETH | 0.00156159 | ||||
| Distribute Fees | 916884 | 794 days ago | IN | 0 ETH | 0.00035012 | ||||
| Distribute Fees | 901628 | 796 days ago | IN | 0 ETH | 0.00023241 | ||||
| Distribute Fees | 655188 | 828 days ago | IN | 0 ETH | 0.00015422 |
Latest 25 internal transactions (View All)
Advanced mode:
| Parent Transaction Hash | Block | From | To | |||
|---|---|---|---|---|---|---|
| 28216100 | 2 hrs ago | 0 ETH | ||||
| 28216100 | 2 hrs ago | 0 ETH | ||||
| 28213960 | 3 hrs ago | 0 ETH | ||||
| 28213960 | 3 hrs ago | 0 ETH | ||||
| 28213959 | 3 hrs ago | 0 ETH | ||||
| 28213959 | 3 hrs ago | 0 ETH | ||||
| 28213956 | 3 hrs ago | 0 ETH | ||||
| 28213956 | 3 hrs ago | 0 ETH | ||||
| 28213037 | 3 hrs ago | 0 ETH | ||||
| 28213037 | 3 hrs ago | 0 ETH | ||||
| 28212261 | 4 hrs ago | 0 ETH | ||||
| 28212261 | 4 hrs ago | 0 ETH | ||||
| 28212103 | 4 hrs ago | 0 ETH | ||||
| 28212103 | 4 hrs ago | 0 ETH | ||||
| 28210478 | 5 hrs ago | 0 ETH | ||||
| 28210478 | 5 hrs ago | 0 ETH | ||||
| 28209454 | 6 hrs ago | 0 ETH | ||||
| 28209454 | 6 hrs ago | 0 ETH | ||||
| 28206877 | 7 hrs ago | 0 ETH | ||||
| 28206877 | 7 hrs ago | 0 ETH | ||||
| 28202243 | 10 hrs ago | 0 ETH | ||||
| 28202243 | 10 hrs ago | 0 ETH | ||||
| 28201941 | 10 hrs ago | 0 ETH | ||||
| 28201941 | 10 hrs ago | 0 ETH | ||||
| 28198003 | 12 hrs ago | 0 ETH |
Loading...
Loading
Contract Name:
SyncSwapFeeRecipient
Compiler Version
v0.8.15+commit.e14f2714
Optimization Enabled:
Yes with 200 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity Standard Json-Input format)
// SPDX-License-Identifier: AGPL-3.0-or-later
pragma solidity ^0.8.0;
import "../interfaces/token/IERC20.sol";
import "../interfaces/master/IFeeRegistry.sol";
import "../interfaces/master/IFeeRecipient.sol";
import "../libraries/Ownable2Step.sol";
import "../libraries/TransferHelper.sol";
error InvalidFeeSender();
contract SyncSwapFeeRecipient is IFeeRecipient, Ownable2Step {
uint public epochDuration = 1 days;
/// @dev The registry for fee senders.
address public feeRegistry;
/// @dev The epoch fees of each token.
mapping(uint => mapping(address => uint)) public fees; // epoch => token => amount
/// @dev The fees tokens in each epoch.
mapping(uint => address[]) public feeTokens;
/// @dev Whether the address is a fee distributor.
mapping(address => bool) public isFeeDistributor;
/// @dev The fee distributors.
address[] public feeDistributors; // for inspection only
struct FeeTokenData {
// The start time of a fee token from a sender.
uint startTime;
// The accumulated fee amount since start time.
uint amount;
}
/// @dev The fee token data of a sender.
mapping(address => mapping(address => FeeTokenData)) public feeTokenData; // sender => token => time
event NotifyFees(address indexed sender, uint16 indexed feeType, address indexed token, uint amount, uint feeRate);
event AddFeeDistributor(address indexed distributor);
event RemoveFeeDistributor(address indexed distributor);
event SetFeeRegistry(address indexed feeRegistry);
event SetEpochDuration(uint epochDuration);
constructor(address _feeRegistry) {
feeRegistry = _feeRegistry;
}
function feeTokensLength(uint epoch) external view returns (uint) {
return feeTokens[epoch].length;
}
function feeDistributorsLength() external view returns (uint) {
return feeDistributors.length;
}
function getEpochStart(uint ts) public view returns (uint) {
return ts - (ts % epochDuration);
}
/// @dev Notifies the fee recipient after sent fees.
function notifyFees(
uint16 feeType,
address token,
uint amount,
uint feeRate,
bytes calldata /*data*/
) external override {
if (!IFeeRegistry(feeRegistry).isFeeSender(msg.sender)) {
revert InvalidFeeSender();
}
uint epoch = getEpochStart(block.timestamp);
uint epochTokenFees = fees[epoch][token];
// Unchecked to avoid potential overflow, since fees are only for inspection.
unchecked {
if (epochTokenFees == 0) {
// Pushes new tokens to array.
feeTokens[epoch].push(token);
// Updates epoch fees for the token.
fees[epoch][token] = amount;
// Updates fee token data for sender.
feeTokenData[msg.sender][token] = FeeTokenData({
startTime: block.timestamp,
amount: amount
});
} else {
// Updates epoch fees for the token.
fees[epoch][token] = (epochTokenFees + amount);
// Updates fee token data for sender.
feeTokenData[msg.sender][token].amount += amount;
}
}
emit NotifyFees(msg.sender, feeType, token, amount, feeRate);
}
/// @dev Distributes fees to the recipient.
function distributeFees(address to, address[] calldata tokens, uint[] calldata amounts) external {
require(isFeeDistributor[msg.sender] || msg.sender == owner(), "No perms");
require(tokens.length == amounts.length, "Wrong length");
uint n = tokens.length;
address token; uint amount;
for (uint i; i < n; ) {
token = tokens[i];
amount = amounts[i];
if (token == address(0)) { // ETH
if (amount == 0) {
amount = address(this).balance;
}
TransferHelper.safeTransferETH(to, amount);
} else {
if (amount == 0) {
amount = IERC20(token).balanceOf(address(this));
}
TransferHelper.safeTransfer(token, to, amount);
}
unchecked {
++i;
}
}
}
/// @dev Adds a new fee distributor.
function addFeeDistributor(address distributor) external onlyOwner {
require(distributor != address(0), "Invalid address");
require(!isFeeDistributor[distributor], "Already set");
isFeeDistributor[distributor] = true;
feeDistributors.push(distributor);
emit AddFeeDistributor(distributor);
}
/// @dev Removes a new fee distributor.
function removeFeeDistributor(address distributor, bool updateArray) external onlyOwner {
require(isFeeDistributor[distributor], "Not set");
delete isFeeDistributor[distributor];
if (updateArray) {
uint n = feeDistributors.length;
for (uint i; i < n; ) {
if (feeDistributors[i] == distributor) {
feeDistributors[i] = feeDistributors[n - 1];
feeDistributors[n - 1] = distributor;
feeDistributors.pop();
break;
}
unchecked {
++i;
}
}
}
emit RemoveFeeDistributor(distributor);
}
/// @dev Sets a new fee registry.
function setFeeRegistry(address _feeRegistry) external onlyOwner {
require(_feeRegistry != address(0), "Invalid address");
feeRegistry = _feeRegistry;
emit SetFeeRegistry(_feeRegistry);
}
function setEpochDuration(uint _epochDuration) external onlyOwner {
require(_epochDuration != 0, "Invalid duration");
epochDuration = _epochDuration;
emit SetEpochDuration(_epochDuration);
}
function withdrawERC20(address token, address to, uint amount) external onlyOwner {
if (amount == 0) {
amount = IERC20(token).balanceOf(address(this));
}
TransferHelper.safeTransfer(token, to, amount);
}
function withdrawETH(address to, uint amount) external onlyOwner {
if (amount == 0) {
amount = address(this).balance;
}
TransferHelper.safeTransferETH(to, amount);
}
}// SPDX-License-Identifier: AGPL-3.0-or-later
pragma solidity >=0.5.0;
interface IFeeRecipient {
/// @dev Notifies the fee recipient after sent fees.
function notifyFees(
uint16 feeType,
address token,
uint amount,
uint feeRate,
bytes calldata data
) external;
}// SPDX-License-Identifier: AGPL-3.0-or-later
pragma solidity >=0.5.0;
interface IFeeRegistry {
function isFeeSender(address sender) external view returns (bool);
}// SPDX-License-Identifier: AGPL-3.0-or-later
pragma solidity >=0.5.0;
import "./IERC20Base.sol";
interface IERC20 is IERC20Base {
function name() external view returns (string memory);
function symbol() external view returns (string memory);
function decimals() external view returns (uint8);
}// SPDX-License-Identifier: AGPL-3.0-or-later
pragma solidity >=0.5.0;
interface IERC20Base {
function totalSupply() external view returns (uint);
function balanceOf(address owner) external view returns (uint);
function allowance(address owner, address spender) external view returns (uint);
function approve(address spender, uint amount) external returns (bool);
function transfer(address to, uint amount) external returns (bool);
function transferFrom(address from, address to, uint amount) external returns (bool);
event Approval(address indexed owner, address indexed spender, uint amount);
event Transfer(address indexed from, address indexed to, uint amount);
}// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts (last updated v4.7.0) (access/Ownable.sol)
pragma solidity ^0.8.0;
/**
* @dev Contract module which provides a basic access control mechanism, where
* there is an account (an owner) that can be granted exclusive access to
* specific functions.
*
* By default, the owner account will be the one that deploys the contract. This
* can later be changed with {transferOwnership}.
*
* This module is used through inheritance. It will make available the modifier
* `onlyOwner`, which can be applied to your functions to restrict their use to
* the owner.
*/
abstract contract Ownable {
address private _owner;
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);
/**
* @dev Initializes the contract setting the deployer as the initial owner.
*/
constructor() {
_transferOwnership(msg.sender);
}
/**
* @dev Throws if called by any account other than the owner.
*/
modifier onlyOwner() {
_checkOwner();
_;
}
/**
* @dev Returns the address of the current owner.
*/
function owner() public view virtual returns (address) {
return _owner;
}
/**
* @dev Throws if the sender is not the owner.
*/
function _checkOwner() internal view virtual {
require(owner() == msg.sender, "Ownable: caller is not the owner");
}
/**
* @dev Leaves the contract without owner. It will not be possible to call
* `onlyOwner` functions. Can only be called by the current owner.
*
* NOTE: Renouncing ownership will leave the contract without an owner,
* thereby disabling any functionality that is only available to the owner.
*/
function renounceOwnership() public virtual onlyOwner {
_transferOwnership(address(0));
}
/**
* @dev Transfers ownership of the contract to a new account (`newOwner`).
* Can only be called by the current owner.
*/
function transferOwnership(address newOwner) public virtual onlyOwner {
require(newOwner != address(0), "Ownable: new owner is the zero address");
_transferOwnership(newOwner);
}
/**
* @dev Transfers ownership of the contract to a new account (`newOwner`).
* Internal function without access restriction.
*/
function _transferOwnership(address newOwner) internal virtual {
address oldOwner = _owner;
_owner = newOwner;
emit OwnershipTransferred(oldOwner, newOwner);
}
}// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts (last updated v4.8.0) (access/Ownable2Step.sol)
pragma solidity ^0.8.0;
import "./Ownable.sol";
/**
* @dev Contract module which provides 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} and {acceptOwnership}.
*
* This module is used through inheritance. It will make available all functions
* from parent (Ownable).
*/
abstract contract Ownable2Step is Ownable {
address private _pendingOwner;
event OwnershipTransferStarted(address indexed previousOwner, address indexed newOwner);
/**
* @dev Returns the address of the pending owner.
*/
function pendingOwner() public view virtual returns (address) {
return _pendingOwner;
}
/**
* @dev Starts the ownership transfer of the contract to a new account. Replaces the pending transfer if there is one.
* Can only be called by the current owner.
*/
function transferOwnership(address newOwner) public virtual override onlyOwner {
_pendingOwner = newOwner;
emit OwnershipTransferStarted(owner(), newOwner);
}
/**
* @dev Transfers ownership of the contract to a new account (`newOwner`) and deletes any pending owner.
* Internal function without access restriction.
*/
function _transferOwnership(address newOwner) internal virtual override {
delete _pendingOwner;
super._transferOwnership(newOwner);
}
/**
* @dev The new owner accepts the ownership transfer.
*/
function acceptOwnership() public virtual {
require(pendingOwner() == msg.sender, "Ownable2Step: caller is not the new owner");
_transferOwnership(msg.sender);
}
}// SPDX-License-Identifier: AGPL-3.0-or-later
pragma solidity ^0.8.0;
/// @dev The ETH transfer has failed.
error ETHTransferFailed();
/// @dev The ERC20 `transferFrom` has failed.
error TransferFromFailed();
/// @dev The ERC20 `transfer` has failed.
error TransferFailed();
/// @dev The ERC20 `approve` has failed.
error ApproveFailed();
/// @dev Helper methods for interacting with ERC20 tokens and sending ETH that do not consistently return true / false.
library TransferHelper {
function safeApprove(
address token,
address to,
uint value
) internal {
// bytes4(keccak256(bytes("approve(address,uint256)")));
// solhint-disable-next-line avoid-low-level-calls
(bool success, bytes memory data) = token.call(abi.encodeWithSelector(0x095ea7b3, to, value));
if (!success || (data.length != 0 && !abi.decode(data, (bool)))) {
revert ApproveFailed();
}
}
function safeTransfer(
address token,
address to,
uint value
) internal {
// bytes4(keccak256(bytes("transfer(address,uint256)")));
// solhint-disable-next-line avoid-low-level-calls
(bool success, bytes memory data) = token.call(abi.encodeWithSelector(0xa9059cbb, to, value));
if (!success || (data.length != 0 && !abi.decode(data, (bool)))) {
revert TransferFailed();
}
}
function safeTransferFrom(
address token,
address from,
address to,
uint value
) internal {
// bytes4(keccak256(bytes("transferFrom(address,address,uint256)")));
// solhint-disable-next-line avoid-low-level-calls
(bool success, bytes memory data) = token.call(abi.encodeWithSelector(0x23b872dd, from, to, value));
if (!success || (data.length != 0 && !abi.decode(data, (bool)))) {
revert TransferFromFailed();
}
}
function safeTransferETH(address to, uint value) internal {
// solhint-disable-next-line avoid-low-level-calls
(bool success, ) = to.call{value: value}("");
if (!success) {
revert ETHTransferFailed();
}
}
}{
"optimizer": {
"enabled": true,
"runs": 200,
"details": {
"yul": false
}
},
"outputSelection": {
"*": {
"*": [
"evm.bytecode",
"evm.deployedBytecode",
"devdoc",
"userdoc",
"metadata",
"abi"
]
}
},
"metadata": {
"useLiteralContent": true
},
"libraries": {}
}Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"inputs":[{"internalType":"address","name":"_feeRegistry","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"ETHTransferFailed","type":"error"},{"inputs":[],"name":"InvalidFeeSender","type":"error"},{"inputs":[],"name":"TransferFailed","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"distributor","type":"address"}],"name":"AddFeeDistributor","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"sender","type":"address"},{"indexed":true,"internalType":"uint16","name":"feeType","type":"uint16"},{"indexed":true,"internalType":"address","name":"token","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"feeRate","type":"uint256"}],"name":"NotifyFees","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferStarted","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"distributor","type":"address"}],"name":"RemoveFeeDistributor","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"epochDuration","type":"uint256"}],"name":"SetEpochDuration","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"feeRegistry","type":"address"}],"name":"SetFeeRegistry","type":"event"},{"inputs":[],"name":"acceptOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"distributor","type":"address"}],"name":"addFeeDistributor","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"address[]","name":"tokens","type":"address[]"},{"internalType":"uint256[]","name":"amounts","type":"uint256[]"}],"name":"distributeFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"epochDuration","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"feeDistributors","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"feeDistributorsLength","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"feeRegistry","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"}],"name":"feeTokenData","outputs":[{"internalType":"uint256","name":"startTime","type":"uint256"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"}],"name":"feeTokens","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"epoch","type":"uint256"}],"name":"feeTokensLength","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"address","name":"","type":"address"}],"name":"fees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"ts","type":"uint256"}],"name":"getEpochStart","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isFeeDistributor","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint16","name":"feeType","type":"uint16"},{"internalType":"address","name":"token","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint256","name":"feeRate","type":"uint256"},{"internalType":"bytes","name":"","type":"bytes"}],"name":"notifyFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pendingOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"distributor","type":"address"},{"internalType":"bool","name":"updateArray","type":"bool"}],"name":"removeFeeDistributor","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_epochDuration","type":"uint256"}],"name":"setEpochDuration","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_feeRegistry","type":"address"}],"name":"setFeeRegistry","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"withdrawERC20","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"withdrawETH","outputs":[],"stateMutability":"nonpayable","type":"function"}]Contract Creation Code
6080604052620151806002553480156200001857600080fd5b506040516200174a3803806200174a8339810160408190526200003b916200011d565b62000046336200006c565b600380546001600160a01b0319166001600160a01b03929092169190911790556200014a565b600180546001600160a01b0319169055620000938162000096602090811b62000c8717901c565b50565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b60006001600160a01b0382165b92915050565b6200010481620000e6565b81146200009357600080fd5b8051620000f381620000f9565b600060208284031215620001345762000134600080fd5b600062000142848462000110565b949350505050565b6115f0806200015a6000396000f3fe608060405234801561001057600080fd5b506004361061014d5760003560e01c806379ba5097116100c3578063acdad7d01161007c578063acdad7d0146102ef578063b3a408b814610302578063b7c6d43714610315578063dfcfa80514610328578063e30c397814610348578063f2fde38b1461035957600080fd5b806379ba50971461025d5780637b364e6c14610265578063843e8218146102a55780638da5cb5b146102b85780639dc0f2e8146102c9578063a6db0aa4146102dc57600080fd5b80634ff0876a116101155780634ff0876a146101e15780635286ad60146101ea5780635397401b146101f2578063641c9eaa146102225780637118c6d714610235578063715018a61461025557600080fd5b80630175e23b1461015257806330024dfe1461017b57806333c373771461019057806344004cc1146101bb5780634782f779146101ce575b600080fd5b610165610160366004610eb4565b61036c565b6040516101729190610ee5565b60405180910390f35b61018e610189366004610eb4565b61038c565b005b61016561019e366004610f18565b600460209081526000928352604080842090915290825290205481565b61018e6101c9366004610f55565b6103fd565b61018e6101dc366004610fa5565b61048d565b61016560025481565b600754610165565b610215610200366004610fd8565b60066020526000908152604090205460ff1681565b6040516101729190611001565b61018e610230366004611061565b6104ae565b6102486102433660046110f1565b610624565b604051610172919061111c565b61018e61065c565b61018e610670565b61029761027336600461112a565b60086020908152600092835260408084209091529082529020805460019091015482565b60405161017292919061114c565b61018e6102b33660046111ce565b6106b2565b6000546001600160a01b0316610248565b61018e6102d7366004611277565b61089d565b61018e6102ea366004610fd8565b610a81565b61018e6102fd366004610fd8565b610b74565b600354610248906001600160a01b031681565b610248610323366004610eb4565b610bec565b610165610336366004610eb4565b60009081526005602052604090205490565b6001546001600160a01b0316610248565b61018e610367366004610fd8565b610c16565b60006002548261037c91906112c0565b61038690836112ea565b92915050565b610394610cd7565b806000036103bd5760405162461bcd60e51b81526004016103b49061132b565b60405180910390fd5b60028190556040517f5bce98672bb5217cce91d9b398e088c3e74809346b9c3348f45cf509038504fc906103f2908390610ee5565b60405180910390a150565b610405610cd7565b8060000361047d576040516370a0823160e01b81526001600160a01b038416906370a082319061043990309060040161111c565b602060405180830381865afa158015610456573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061047a9190611346565b90505b610488838383610d10565b505050565b610495610cd7565b806000036104a05750475b6104aa8282610e03565b5050565b3360009081526006602052604090205460ff16806104d657506000546001600160a01b031633145b6104f25760405162461bcd60e51b81526004016103b490611386565b8281146105115760405162461bcd60e51b81526004016103b4906113b9565b82600080805b8381101561061957878782818110610531576105316113c9565b90506020020160208101906105469190610fd8565b925085858281811061055a5761055a6113c9565b60200291909101359250506001600160a01b03831661058e578160000361057f574791505b6105898983610e03565b610611565b81600003610606576040516370a0823160e01b81526001600160a01b038416906370a08231906105c290309060040161111c565b602060405180830381865afa1580156105df573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106039190611346565b91505b610611838a84610d10565b600101610517565b505050505050505050565b6005602052816000526040600020818154811061064057600080fd5b6000918252602090912001546001600160a01b03169150829050565b610664610cd7565b61066e6000610e80565b565b336106836001546001600160a01b031690565b6001600160a01b0316146106a95760405162461bcd60e51b81526004016103b4906113df565b61066e33610e80565b60035460405163fe47d6e160e01b81526001600160a01b039091169063fe47d6e1906106e290339060040161111c565b602060405180830381865afa1580156106ff573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107239190611437565b61074057604051635ae3252d60e11b815260040160405180910390fd5b600061074b4261036c565b60008181526004602090815260408083206001600160a01b038b1684529091528120549192508190036107fc5760008281526005602090815260408083208054600180820183559185528385200180546001600160a01b0319166001600160a01b038d169081179091558685526004845282852081865284528285208b9055825180840184524281528085018c81523387526008865284872092875291909452919093209151825551910155610841565b60008281526004602090815260408083206001600160a01b038b16808552908352818420858b0190553384526008835281842090845290915290206001018054870190555b866001600160a01b03168861ffff16336001600160a01b03167fd9cc3fd2bd703eb089f05b4dc0c28c75957d1775a1a2f72bff0e235a4dd710a6898960405161088b92919061114c565b60405180910390a45050505050505050565b6108a5610cd7565b6001600160a01b03821660009081526006602052604090205460ff166108dd5760405162461bcd60e51b81526004016103b490611476565b6001600160a01b0382166000908152600660205260409020805460ff191690558015610a495760075460005b81811015610a4657836001600160a01b03166007828154811061092e5761092e6113c9565b6000918252602090912001546001600160a01b031603610a3e5760076109556001846112ea565b81548110610965576109656113c9565b600091825260209091200154600780546001600160a01b039092169183908110610991576109916113c9565b600091825260209091200180546001600160a01b0319166001600160a01b03929092169190911790558360076109c86001856112ea565b815481106109d8576109d86113c9565b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b031602179055506007805480610a1757610a17611486565b600082815260209020810160001990810180546001600160a01b0319169055019055610a46565b600101610909565b50505b6040516001600160a01b038316907f26b772cce7966f2cbf620e2f87b81c664ac00ac028b0d245e1138823526a779990600090a25050565b610a89610cd7565b6001600160a01b038116610aaf5760405162461bcd60e51b81526004016103b4906114c2565b6001600160a01b03811660009081526006602052604090205460ff1615610ae85760405162461bcd60e51b81526004016103b4906114f4565b6001600160a01b038116600081815260066020526040808220805460ff1916600190811790915560078054918201815583527fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c6880180546001600160a01b03191684179055517f9bb88b21f52273267cddc0cbdd9f83415b89e652b819d3cfe37ad9ed833bc2499190a250565b610b7c610cd7565b6001600160a01b038116610ba25760405162461bcd60e51b81526004016103b4906114c2565b600380546001600160a01b0319166001600160a01b0383169081179091556040517f38cb9250f3682ece75ce5c2f1477a9f818ace4522e65517be27af55c2862197f90600090a250565b60078181548110610bfc57600080fd5b6000918252602090912001546001600160a01b0316905081565b610c1e610cd7565b600180546001600160a01b0383166001600160a01b03199091168117909155610c4f6000546001600160a01b031690565b6001600160a01b03167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a350565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b33610cea6000546001600160a01b031690565b6001600160a01b03161461066e5760405162461bcd60e51b81526004016103b490611536565b600080846001600160a01b031663a9059cbb8585604051602401610d35929190611546565b6040516020818303038152906040529060e01b6020820180516001600160e01b038381831617835250505050604051610d6e91906115a6565b6000604051808303816000865af19150503d8060008114610dab576040519150601f19603f3d011682016040523d82523d6000602084013e610db0565b606091505b5091509150811580610dde5750805115801590610dde575080806020019051810190610ddc9190611437565b155b15610dfc576040516312171d8360e31b815260040160405180910390fd5b5050505050565b6000826001600160a01b031682604051610e1c906115b2565b60006040518083038185875af1925050503d8060008114610e59576040519150601f19603f3d011682016040523d82523d6000602084013e610e5e565b606091505b50509050806104885760405163b12d13eb60e01b815260040160405180910390fd5b600180546001600160a01b0319169055610e9981610c87565b50565b805b8114610e9957600080fd5b803561038681610e9c565b600060208284031215610ec957610ec9600080fd5b6000610ed58484610ea9565b949350505050565b805b82525050565b602081016103868284610edd565b60006001600160a01b038216610386565b610e9e81610ef3565b803561038681610f04565b60008060408385031215610f2e57610f2e600080fd5b6000610f3a8585610ea9565b9250506020610f4b85828601610f0d565b9150509250929050565b600080600060608486031215610f6d57610f6d600080fd5b6000610f798686610f0d565b9350506020610f8a86828701610f0d565b9250506040610f9b86828701610ea9565b9150509250925092565b60008060408385031215610fbb57610fbb600080fd5b6000610fc78585610f0d565b9250506020610f4b85828601610ea9565b600060208284031215610fed57610fed600080fd5b6000610ed58484610f0d565b801515610edf565b602081016103868284610ff9565b60008083601f84011261102457611024600080fd5b50813567ffffffffffffffff81111561103f5761103f600080fd5b60208301915083602082028301111561105a5761105a600080fd5b9250929050565b60008060008060006060868803121561107c5761107c600080fd5b60006110888888610f0d565b955050602086013567ffffffffffffffff8111156110a8576110a8600080fd5b6110b48882890161100f565b9450945050604086013567ffffffffffffffff8111156110d6576110d6600080fd5b6110e28882890161100f565b92509250509295509295909350565b6000806040838503121561110757611107600080fd5b6000610fc78585610ea9565b610edf81610ef3565b602081016103868284611113565b6000806040838503121561114057611140600080fd5b6000610f3a8585610f0d565b6040810161115a8285610edd565b6111676020830184610edd565b9392505050565b61ffff8116610e9e565b80356103868161116e565b60008083601f84011261119857611198600080fd5b50813567ffffffffffffffff8111156111b3576111b3600080fd5b60208301915083600182028301111561105a5761105a600080fd5b60008060008060008060a087890312156111ea576111ea600080fd5b60006111f68989611178565b965050602061120789828a01610f0d565b955050604061121889828a01610ea9565b945050606061122989828a01610ea9565b935050608087013567ffffffffffffffff81111561124957611249600080fd5b61125589828a01611183565b92509250509295509295509295565b801515610e9e565b803561038681611264565b6000806040838503121561128d5761128d600080fd5b60006112998585610f0d565b9250506020610f4b8582860161126c565b634e487b7160e01b600052601260045260246000fd5b6000826112cf576112cf6112aa565b500690565b634e487b7160e01b600052601160045260246000fd5b6000828210156112fc576112fc6112d4565b500390565b601081526000602082016f24b73b30b634b210323ab930ba34b7b760811b815291505b5060200190565b6020808252810161038681611301565b805161038681610e9c565b60006020828403121561135b5761135b600080fd5b6000610ed5848461133b565b60088152600060208201674e6f207065726d7360c01b81529150611324565b6020808252810161038681611367565b600c81526000602082016b0aee4dedcce40d8cadccee8d60a31b81529150611324565b6020808252810161038681611396565b634e487b7160e01b600052603260045260246000fd5b6020808252810161038681602981527f4f776e61626c6532537465703a2063616c6c6572206973206e6f7420746865206020820152683732bb9037bbb732b960b91b604082015260600190565b805161038681611264565b60006020828403121561144c5761144c600080fd5b6000610ed5848461142c565b6007815260006020820166139bdd081cd95d60ca1b81529150611324565b6020808252810161038681611458565b634e487b7160e01b600052603160045260246000fd5b600f81526000602082016e496e76616c6964206164647265737360881b81529150611324565b602080825281016103868161149c565b600b81526000602082016a105b1c9958591e481cd95d60aa1b81529150611324565b60208082528101610386816114d2565b60208082527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657291019081526000611324565b6020808252810161038681611504565b6040810161115a8285611113565b60005b8381101561156f578181015183820152602001611557565b8381111561157e576000848401525b50505050565b600061158e825190565b61159c818560208601611554565b9290920192915050565b60006111678284611584565b60008161038656fea264697066735822122094e8d7a68debfa7973dee226fba77cbf702e6ce566b2a03e5af9863c1870618a64736f6c634300080f00330000000000000000000000008cdf4ec0d5ee197b00467a720660c44480b3ec60
Deployed Bytecode
0x608060405234801561001057600080fd5b506004361061014d5760003560e01c806379ba5097116100c3578063acdad7d01161007c578063acdad7d0146102ef578063b3a408b814610302578063b7c6d43714610315578063dfcfa80514610328578063e30c397814610348578063f2fde38b1461035957600080fd5b806379ba50971461025d5780637b364e6c14610265578063843e8218146102a55780638da5cb5b146102b85780639dc0f2e8146102c9578063a6db0aa4146102dc57600080fd5b80634ff0876a116101155780634ff0876a146101e15780635286ad60146101ea5780635397401b146101f2578063641c9eaa146102225780637118c6d714610235578063715018a61461025557600080fd5b80630175e23b1461015257806330024dfe1461017b57806333c373771461019057806344004cc1146101bb5780634782f779146101ce575b600080fd5b610165610160366004610eb4565b61036c565b6040516101729190610ee5565b60405180910390f35b61018e610189366004610eb4565b61038c565b005b61016561019e366004610f18565b600460209081526000928352604080842090915290825290205481565b61018e6101c9366004610f55565b6103fd565b61018e6101dc366004610fa5565b61048d565b61016560025481565b600754610165565b610215610200366004610fd8565b60066020526000908152604090205460ff1681565b6040516101729190611001565b61018e610230366004611061565b6104ae565b6102486102433660046110f1565b610624565b604051610172919061111c565b61018e61065c565b61018e610670565b61029761027336600461112a565b60086020908152600092835260408084209091529082529020805460019091015482565b60405161017292919061114c565b61018e6102b33660046111ce565b6106b2565b6000546001600160a01b0316610248565b61018e6102d7366004611277565b61089d565b61018e6102ea366004610fd8565b610a81565b61018e6102fd366004610fd8565b610b74565b600354610248906001600160a01b031681565b610248610323366004610eb4565b610bec565b610165610336366004610eb4565b60009081526005602052604090205490565b6001546001600160a01b0316610248565b61018e610367366004610fd8565b610c16565b60006002548261037c91906112c0565b61038690836112ea565b92915050565b610394610cd7565b806000036103bd5760405162461bcd60e51b81526004016103b49061132b565b60405180910390fd5b60028190556040517f5bce98672bb5217cce91d9b398e088c3e74809346b9c3348f45cf509038504fc906103f2908390610ee5565b60405180910390a150565b610405610cd7565b8060000361047d576040516370a0823160e01b81526001600160a01b038416906370a082319061043990309060040161111c565b602060405180830381865afa158015610456573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061047a9190611346565b90505b610488838383610d10565b505050565b610495610cd7565b806000036104a05750475b6104aa8282610e03565b5050565b3360009081526006602052604090205460ff16806104d657506000546001600160a01b031633145b6104f25760405162461bcd60e51b81526004016103b490611386565b8281146105115760405162461bcd60e51b81526004016103b4906113b9565b82600080805b8381101561061957878782818110610531576105316113c9565b90506020020160208101906105469190610fd8565b925085858281811061055a5761055a6113c9565b60200291909101359250506001600160a01b03831661058e578160000361057f574791505b6105898983610e03565b610611565b81600003610606576040516370a0823160e01b81526001600160a01b038416906370a08231906105c290309060040161111c565b602060405180830381865afa1580156105df573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106039190611346565b91505b610611838a84610d10565b600101610517565b505050505050505050565b6005602052816000526040600020818154811061064057600080fd5b6000918252602090912001546001600160a01b03169150829050565b610664610cd7565b61066e6000610e80565b565b336106836001546001600160a01b031690565b6001600160a01b0316146106a95760405162461bcd60e51b81526004016103b4906113df565b61066e33610e80565b60035460405163fe47d6e160e01b81526001600160a01b039091169063fe47d6e1906106e290339060040161111c565b602060405180830381865afa1580156106ff573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107239190611437565b61074057604051635ae3252d60e11b815260040160405180910390fd5b600061074b4261036c565b60008181526004602090815260408083206001600160a01b038b1684529091528120549192508190036107fc5760008281526005602090815260408083208054600180820183559185528385200180546001600160a01b0319166001600160a01b038d169081179091558685526004845282852081865284528285208b9055825180840184524281528085018c81523387526008865284872092875291909452919093209151825551910155610841565b60008281526004602090815260408083206001600160a01b038b16808552908352818420858b0190553384526008835281842090845290915290206001018054870190555b866001600160a01b03168861ffff16336001600160a01b03167fd9cc3fd2bd703eb089f05b4dc0c28c75957d1775a1a2f72bff0e235a4dd710a6898960405161088b92919061114c565b60405180910390a45050505050505050565b6108a5610cd7565b6001600160a01b03821660009081526006602052604090205460ff166108dd5760405162461bcd60e51b81526004016103b490611476565b6001600160a01b0382166000908152600660205260409020805460ff191690558015610a495760075460005b81811015610a4657836001600160a01b03166007828154811061092e5761092e6113c9565b6000918252602090912001546001600160a01b031603610a3e5760076109556001846112ea565b81548110610965576109656113c9565b600091825260209091200154600780546001600160a01b039092169183908110610991576109916113c9565b600091825260209091200180546001600160a01b0319166001600160a01b03929092169190911790558360076109c86001856112ea565b815481106109d8576109d86113c9565b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b031602179055506007805480610a1757610a17611486565b600082815260209020810160001990810180546001600160a01b0319169055019055610a46565b600101610909565b50505b6040516001600160a01b038316907f26b772cce7966f2cbf620e2f87b81c664ac00ac028b0d245e1138823526a779990600090a25050565b610a89610cd7565b6001600160a01b038116610aaf5760405162461bcd60e51b81526004016103b4906114c2565b6001600160a01b03811660009081526006602052604090205460ff1615610ae85760405162461bcd60e51b81526004016103b4906114f4565b6001600160a01b038116600081815260066020526040808220805460ff1916600190811790915560078054918201815583527fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c6880180546001600160a01b03191684179055517f9bb88b21f52273267cddc0cbdd9f83415b89e652b819d3cfe37ad9ed833bc2499190a250565b610b7c610cd7565b6001600160a01b038116610ba25760405162461bcd60e51b81526004016103b4906114c2565b600380546001600160a01b0319166001600160a01b0383169081179091556040517f38cb9250f3682ece75ce5c2f1477a9f818ace4522e65517be27af55c2862197f90600090a250565b60078181548110610bfc57600080fd5b6000918252602090912001546001600160a01b0316905081565b610c1e610cd7565b600180546001600160a01b0383166001600160a01b03199091168117909155610c4f6000546001600160a01b031690565b6001600160a01b03167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a350565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b33610cea6000546001600160a01b031690565b6001600160a01b03161461066e5760405162461bcd60e51b81526004016103b490611536565b600080846001600160a01b031663a9059cbb8585604051602401610d35929190611546565b6040516020818303038152906040529060e01b6020820180516001600160e01b038381831617835250505050604051610d6e91906115a6565b6000604051808303816000865af19150503d8060008114610dab576040519150601f19603f3d011682016040523d82523d6000602084013e610db0565b606091505b5091509150811580610dde5750805115801590610dde575080806020019051810190610ddc9190611437565b155b15610dfc576040516312171d8360e31b815260040160405180910390fd5b5050505050565b6000826001600160a01b031682604051610e1c906115b2565b60006040518083038185875af1925050503d8060008114610e59576040519150601f19603f3d011682016040523d82523d6000602084013e610e5e565b606091505b50509050806104885760405163b12d13eb60e01b815260040160405180910390fd5b600180546001600160a01b0319169055610e9981610c87565b50565b805b8114610e9957600080fd5b803561038681610e9c565b600060208284031215610ec957610ec9600080fd5b6000610ed58484610ea9565b949350505050565b805b82525050565b602081016103868284610edd565b60006001600160a01b038216610386565b610e9e81610ef3565b803561038681610f04565b60008060408385031215610f2e57610f2e600080fd5b6000610f3a8585610ea9565b9250506020610f4b85828601610f0d565b9150509250929050565b600080600060608486031215610f6d57610f6d600080fd5b6000610f798686610f0d565b9350506020610f8a86828701610f0d565b9250506040610f9b86828701610ea9565b9150509250925092565b60008060408385031215610fbb57610fbb600080fd5b6000610fc78585610f0d565b9250506020610f4b85828601610ea9565b600060208284031215610fed57610fed600080fd5b6000610ed58484610f0d565b801515610edf565b602081016103868284610ff9565b60008083601f84011261102457611024600080fd5b50813567ffffffffffffffff81111561103f5761103f600080fd5b60208301915083602082028301111561105a5761105a600080fd5b9250929050565b60008060008060006060868803121561107c5761107c600080fd5b60006110888888610f0d565b955050602086013567ffffffffffffffff8111156110a8576110a8600080fd5b6110b48882890161100f565b9450945050604086013567ffffffffffffffff8111156110d6576110d6600080fd5b6110e28882890161100f565b92509250509295509295909350565b6000806040838503121561110757611107600080fd5b6000610fc78585610ea9565b610edf81610ef3565b602081016103868284611113565b6000806040838503121561114057611140600080fd5b6000610f3a8585610f0d565b6040810161115a8285610edd565b6111676020830184610edd565b9392505050565b61ffff8116610e9e565b80356103868161116e565b60008083601f84011261119857611198600080fd5b50813567ffffffffffffffff8111156111b3576111b3600080fd5b60208301915083600182028301111561105a5761105a600080fd5b60008060008060008060a087890312156111ea576111ea600080fd5b60006111f68989611178565b965050602061120789828a01610f0d565b955050604061121889828a01610ea9565b945050606061122989828a01610ea9565b935050608087013567ffffffffffffffff81111561124957611249600080fd5b61125589828a01611183565b92509250509295509295509295565b801515610e9e565b803561038681611264565b6000806040838503121561128d5761128d600080fd5b60006112998585610f0d565b9250506020610f4b8582860161126c565b634e487b7160e01b600052601260045260246000fd5b6000826112cf576112cf6112aa565b500690565b634e487b7160e01b600052601160045260246000fd5b6000828210156112fc576112fc6112d4565b500390565b601081526000602082016f24b73b30b634b210323ab930ba34b7b760811b815291505b5060200190565b6020808252810161038681611301565b805161038681610e9c565b60006020828403121561135b5761135b600080fd5b6000610ed5848461133b565b60088152600060208201674e6f207065726d7360c01b81529150611324565b6020808252810161038681611367565b600c81526000602082016b0aee4dedcce40d8cadccee8d60a31b81529150611324565b6020808252810161038681611396565b634e487b7160e01b600052603260045260246000fd5b6020808252810161038681602981527f4f776e61626c6532537465703a2063616c6c6572206973206e6f7420746865206020820152683732bb9037bbb732b960b91b604082015260600190565b805161038681611264565b60006020828403121561144c5761144c600080fd5b6000610ed5848461142c565b6007815260006020820166139bdd081cd95d60ca1b81529150611324565b6020808252810161038681611458565b634e487b7160e01b600052603160045260246000fd5b600f81526000602082016e496e76616c6964206164647265737360881b81529150611324565b602080825281016103868161149c565b600b81526000602082016a105b1c9958591e481cd95d60aa1b81529150611324565b60208082528101610386816114d2565b60208082527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657291019081526000611324565b6020808252810161038681611504565b6040810161115a8285611113565b60005b8381101561156f578181015183820152602001611557565b8381111561157e576000848401525b50505050565b600061158e825190565b61159c818560208601611554565b9290920192915050565b60006111678284611584565b60008161038656fea264697066735822122094e8d7a68debfa7973dee226fba77cbf702e6ce566b2a03e5af9863c1870618a64736f6c634300080f0033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
0000000000000000000000008cdf4ec0d5ee197b00467a720660c44480b3ec60
-----Decoded View---------------
Arg [0] : _feeRegistry (address): 0x8cDf4Ec0D5ee197B00467A720660C44480B3Ec60
-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 0000000000000000000000008cdf4ec0d5ee197b00467a720660c44480b3ec60
Loading...
Loading
Loading...
Loading
Loading...
Loading
Net Worth in USD
$75.24
Net Worth in ETH
Token Allocations
USDC
71.47%
USDT
22.25%
WBTC
5.46%
Others
0.83%
Multichain Portfolio | 35 Chains
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.