Source Code
Latest 9 from a total of 9 transactions
| Transaction Hash |
|
Block
|
From
|
To
|
|||||
|---|---|---|---|---|---|---|---|---|---|
| Batch Withdraw I... | 13921309 | 23 days ago | IN | 0 GLMR | 0.00216145 | ||||
| Batch Withdraw L... | 13643257 | 45 days ago | IN | 0 GLMR | 0.00401525 | ||||
| Batch Withdraw I... | 12248286 | 157 days ago | IN | 0 GLMR | 0.00249937 | ||||
| Batch Withdraw I... | 12248285 | 157 days ago | IN | 0 GLMR | 0.00263812 | ||||
| Batch Withdraw I... | 12206517 | 160 days ago | IN | 0 GLMR | 0.00881073 | ||||
| Batch Withdraw L... | 11055440 | 241 days ago | IN | 0 GLMR | 0.0223758 | ||||
| Confirm Ownershi... | 11038911 | 242 days ago | IN | 0 GLMR | 0.00332402 | ||||
| Transfer Ownersh... | 11038910 | 242 days ago | IN | 0 GLMR | 0.0033375 | ||||
| Batch Withdraw I... | 7741830 | 477 days ago | IN | 0 GLMR | 0.038398 |
Latest 25 internal transactions (View All)
| Parent Transaction Hash | Block | From | To | |||
|---|---|---|---|---|---|---|
| 14207491 | 7 hrs ago | 59.88637279 GLMR | ||||
| 14207491 | 7 hrs ago | 60.03646395 GLMR | ||||
| 14204849 | 12 hrs ago | 4,549.4901661 GLMR | ||||
| 14204849 | 12 hrs ago | 4,560.8923971 GLMR | ||||
| 14199815 | 22 hrs ago | 14.65237508 GLMR | ||||
| 14199815 | 22 hrs ago | 14.68909782 GLMR | ||||
| 14198305 | 24 hrs ago | 222.2116785 GLMR | ||||
| 14198305 | 24 hrs ago | 222.7686 GLMR | ||||
| 14196290 | 28 hrs ago | 93.803 GLMR | ||||
| 14196290 | 28 hrs ago | 95 GLMR | ||||
| 14196256 | 28 hrs ago | 1,876.06 GLMR | ||||
| 14196256 | 28 hrs ago | 1,900 GLMR | ||||
| 14193757 | 33 hrs ago | 226.94039103 GLMR | ||||
| 14193757 | 33 hrs ago | 227.50916394 GLMR | ||||
| 14187457 | 45 hrs ago | 49.87778986 GLMR | ||||
| 14187457 | 45 hrs ago | 50.00279686 GLMR | ||||
| 14171572 | 3 days ago | 1,184.88 GLMR | ||||
| 14171572 | 3 days ago | 1,200 GLMR | ||||
| 14168271 | 3 days ago | 69.825 GLMR | ||||
| 14168271 | 3 days ago | 70 GLMR | ||||
| 14159931 | 4 days ago | 419.32322181 GLMR | ||||
| 14159931 | 4 days ago | 420.3741572 GLMR | ||||
| 14157365 | 4 days ago | 146.22947777 GLMR | ||||
| 14157365 | 4 days ago | 146.59596769 GLMR | ||||
| 14146183 | 5 days ago | 14,877.70692164 GLMR |
Cross-Chain Transactions
Loading...
Loading
Contract Name:
FeeCollector
Compiler Version
v0.8.13+commit.abaa5c0e
Optimization Enabled:
Yes with 10000 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity Standard Json-Input format)
// SPDX-License-Identifier: UNLICENSED
pragma solidity 0.8.13;
import { LibAsset } from "../Libraries/LibAsset.sol";
/// @title Fee Collector
/// @author LI.FI (https://li.fi)
/// @notice Provides functionality for collecting integrator fees
contract FeeCollector {
/// State ///
// Integrator -> TokenAddress -> Balance
mapping(address => mapping(address => uint256)) private _balances;
// TokenAddress -> Balance
mapping(address => uint256) private _lifiBalances;
address public owner;
address public pendingOwner;
/// Errors ///
error Unauthorized(address);
error NoNullOwner();
error NewOwnerMustNotBeSelf();
error NoPendingOwnershipTransfer();
error NotPendingOwner();
error TransferFailure();
/// Events ///
event FeesCollected(address indexed _token, address indexed _integrator, uint256 _integratorFee, uint256 _lifiFee);
event FeesWithdrawn(address indexed _token, address indexed _to, uint256 _amount);
event LiFiFeesWithdrawn(address indexed _token, address indexed _to, uint256 _amount);
event OwnershipTransferRequested(address indexed _from, address indexed _to);
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);
/// Constructor ///
constructor(address _owner) {
owner = _owner;
}
/// External Methods ///
/// @notice Collects fees for the integrator
/// @param tokenAddress address of the token to collect fees for
/// @param integratorFee amount of fees to collect going to the integrator
/// @param lifiFee amount of fees to collect going to lifi
/// @param integratorAddress address of the integrator
function collectTokenFees(
address tokenAddress,
uint256 integratorFee,
uint256 lifiFee,
address integratorAddress
) external {
LibAsset.depositAsset(tokenAddress, integratorFee + lifiFee);
_balances[integratorAddress][tokenAddress] += integratorFee;
_lifiBalances[tokenAddress] += lifiFee;
emit FeesCollected(tokenAddress, integratorAddress, integratorFee, lifiFee);
}
/// @notice Collects fees for the integrator in native token
/// @param integratorFee amount of fees to collect going to the integrator
/// @param lifiFee amount of fees to collect going to lifi
/// @param integratorAddress address of the integrator
function collectNativeFees(
uint256 integratorFee,
uint256 lifiFee,
address integratorAddress
) external payable {
_balances[integratorAddress][LibAsset.NULL_ADDRESS] += integratorFee;
_lifiBalances[LibAsset.NULL_ADDRESS] += lifiFee;
uint256 remaining = msg.value - (integratorFee + lifiFee);
// Prevent extra native token from being locked in the contract
if (remaining > 0) {
(bool success, ) = msg.sender.call{ value: remaining }("");
if (!success) {
revert TransferFailure();
}
}
emit FeesCollected(LibAsset.NULL_ADDRESS, integratorAddress, integratorFee, lifiFee);
}
/// @notice Withdraw fees and sends to the integrator
/// @param tokenAddress address of the token to withdraw fees for
function withdrawIntegratorFees(address tokenAddress) external {
uint256 balance = _balances[msg.sender][tokenAddress];
if (balance == 0) {
return;
}
_balances[msg.sender][tokenAddress] = 0;
LibAsset.transferAsset(tokenAddress, payable(msg.sender), balance);
emit FeesWithdrawn(tokenAddress, msg.sender, balance);
}
/// @notice Batch withdraw fees and sends to the integrator
/// @param tokenAddresses addresses of the tokens to withdraw fees for
function batchWithdrawIntegratorFees(address[] memory tokenAddresses) external {
uint256 length = tokenAddresses.length;
uint256 balance;
for (uint256 i = 0; i < length; i++) {
balance = _balances[msg.sender][tokenAddresses[i]];
if (balance == 0) {
continue;
}
_balances[msg.sender][tokenAddresses[i]] = 0;
LibAsset.transferAsset(tokenAddresses[i], payable(msg.sender), balance);
emit FeesWithdrawn(tokenAddresses[i], msg.sender, balance);
}
}
/// @notice Withdraws fees and sends to lifi
/// @param tokenAddress address of the token to withdraw fees for
function withdrawLifiFees(address tokenAddress) external {
_enforceIsContractOwner();
uint256 balance = _lifiBalances[tokenAddress];
if (balance == 0) {
return;
}
_lifiBalances[tokenAddress] = 0;
LibAsset.transferAsset(tokenAddress, payable(owner), balance);
emit LiFiFeesWithdrawn(tokenAddress, msg.sender, balance);
}
/// @notice Batch withdraws fees and sends to lifi
/// @param tokenAddresses addresses of the tokens to withdraw fees for
function batchWithdrawLifiFees(address[] memory tokenAddresses) external {
_enforceIsContractOwner();
uint256 length = tokenAddresses.length;
uint256 balance;
for (uint256 i = 0; i < length; i++) {
balance = _lifiBalances[tokenAddresses[i]];
if (balance == 0) {
continue;
}
_lifiBalances[tokenAddresses[i]] = 0;
LibAsset.transferAsset(tokenAddresses[i], payable(owner), balance);
emit LiFiFeesWithdrawn(tokenAddresses[i], msg.sender, balance);
}
}
/// @notice Returns the balance of the integrator
/// @param integratorAddress address of the integrator
/// @param tokenAddress address of the token to get the balance of
function getTokenBalance(address integratorAddress, address tokenAddress) external view returns (uint256) {
return _balances[integratorAddress][tokenAddress];
}
/// @notice Returns the balance of lifi
/// @param tokenAddress address of the token to get the balance of
function getLifiTokenBalance(address tokenAddress) external view returns (uint256) {
return _lifiBalances[tokenAddress];
}
/// @notice Intitiates transfer of ownership to a new address
/// @param _newOwner the address to transfer ownership to
function transferOwnership(address _newOwner) external {
_enforceIsContractOwner();
if (_newOwner == LibAsset.NULL_ADDRESS) revert NoNullOwner();
if (_newOwner == owner) revert NewOwnerMustNotBeSelf();
pendingOwner = _newOwner;
emit OwnershipTransferRequested(msg.sender, pendingOwner);
}
/// @notice Cancel transfer of ownership
function cancelOnwershipTransfer() external {
_enforceIsContractOwner();
if (pendingOwner == LibAsset.NULL_ADDRESS) revert NoPendingOwnershipTransfer();
pendingOwner = LibAsset.NULL_ADDRESS;
}
/// @notice Confirms transfer of ownership to the calling address (msg.sender)
function confirmOwnershipTransfer() external {
if (msg.sender != pendingOwner) revert NotPendingOwner();
owner = pendingOwner;
pendingOwner = LibAsset.NULL_ADDRESS;
emit OwnershipTransferred(owner, pendingOwner);
}
/// Private Methods ///
/// @notice Ensures that the calling address is the owner of the contract
function _enforceIsContractOwner() private view {
if (msg.sender != owner) {
revert Unauthorized(msg.sender);
}
}
}// SPDX-License-Identifier: UNLICENSED
pragma solidity 0.8.13;
import { NullAddrIsNotAnERC20Token, NullAddrIsNotAValidSpender, NoTransferToNullAddress, InvalidAmount, NativeValueWithERC, NativeAssetTransferFailed } from "../Errors/GenericErrors.sol";
import "@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol";
import "@openzeppelin/contracts/token/ERC20/IERC20.sol";
/// @title LibAsset
/// @author Connext <[email protected]>
/// @notice This library contains helpers for dealing with onchain transfers
/// of assets, including accounting for the native asset `assetId`
/// conventions and any noncompliant ERC20 transfers
library LibAsset {
uint256 private constant MAX_INT = type(uint256).max;
address internal constant NULL_ADDRESS = 0x0000000000000000000000000000000000000000; //address(0)
/// @dev All native assets use the empty address for their asset id
/// by convention
address internal constant NATIVE_ASSETID = NULL_ADDRESS; //address(0)
/// @notice Gets the balance of the inheriting contract for the given asset
/// @param assetId The asset identifier to get the balance of
/// @return Balance held by contracts using this library
function getOwnBalance(address assetId) internal view returns (uint256) {
return assetId == NATIVE_ASSETID ? address(this).balance : IERC20(assetId).balanceOf(address(this));
}
/// @notice Transfers ether from the inheriting contract to a given
/// recipient
/// @param recipient Address to send ether to
/// @param amount Amount to send to given recipient
function transferNativeAsset(address payable recipient, uint256 amount) private {
if (recipient == NULL_ADDRESS) revert NoTransferToNullAddress();
// solhint-disable-next-line avoid-low-level-calls
(bool success, ) = recipient.call{ value: amount }("");
if (!success) revert NativeAssetTransferFailed();
}
/// @notice Gives MAX approval for another address to spend tokens
/// @param assetId Token address to transfer
/// @param spender Address to give spend approval to
/// @param amount Amount to approve for spending
function maxApproveERC20(
IERC20 assetId,
address spender,
uint256 amount
) internal {
if (address(assetId) == NATIVE_ASSETID) return;
if (spender == NULL_ADDRESS) revert NullAddrIsNotAValidSpender();
uint256 allowance = assetId.allowance(address(this), spender);
if (allowance < amount) SafeERC20.safeApprove(IERC20(assetId), spender, MAX_INT);
}
/// @notice Transfers tokens from the inheriting contract to a given
/// recipient
/// @param assetId Token address to transfer
/// @param recipient Address to send token to
/// @param amount Amount to send to given recipient
function transferERC20(
address assetId,
address recipient,
uint256 amount
) private {
if (isNativeAsset(assetId)) revert NullAddrIsNotAnERC20Token();
SafeERC20.safeTransfer(IERC20(assetId), recipient, amount);
}
/// @notice Transfers tokens from a sender to a given recipient
/// @param assetId Token address to transfer
/// @param from Address of sender/owner
/// @param to Address of recipient/spender
/// @param amount Amount to transfer from owner to spender
function transferFromERC20(
address assetId,
address from,
address to,
uint256 amount
) internal {
if (assetId == NATIVE_ASSETID) revert NullAddrIsNotAnERC20Token();
if (to == NULL_ADDRESS) revert NoTransferToNullAddress();
SafeERC20.safeTransferFrom(IERC20(assetId), from, to, amount);
}
/// @notice Deposits an asset into the contract and performs checks to avoid NativeValueWithERC
/// @param tokenId Token to deposit
/// @param amount Amount to deposit
/// @param isNative Wether the token is native or ERC20
function depositAsset(
address tokenId,
uint256 amount,
bool isNative
) internal {
if (amount == 0) revert InvalidAmount();
if (isNative) {
if (msg.value != amount) revert InvalidAmount();
} else {
if (msg.value != 0) revert NativeValueWithERC();
uint256 _fromTokenBalance = LibAsset.getOwnBalance(tokenId);
LibAsset.transferFromERC20(tokenId, msg.sender, address(this), amount);
if (LibAsset.getOwnBalance(tokenId) - _fromTokenBalance != amount) revert InvalidAmount();
}
}
/// @notice Overload for depositAsset(address tokenId, uint256 amount, bool isNative)
/// @param tokenId Token to deposit
/// @param amount Amount to deposit
function depositAsset(address tokenId, uint256 amount) internal {
return depositAsset(tokenId, amount, tokenId == NATIVE_ASSETID);
}
/// @notice Determines whether the given assetId is the native asset
/// @param assetId The asset identifier to evaluate
/// @return Boolean indicating if the asset is the native asset
function isNativeAsset(address assetId) internal pure returns (bool) {
return assetId == NATIVE_ASSETID;
}
/// @notice Wrapper function to transfer a given asset (native or erc20) to
/// some recipient. Should handle all non-compliant return value
/// tokens as well by using the SafeERC20 contract by open zeppelin.
/// @param assetId Asset id for transfer (address(0) for native asset,
/// token address for erc20s)
/// @param recipient Address to send asset to
/// @param amount Amount to send to given recipient
function transferAsset(
address assetId,
address payable recipient,
uint256 amount
) internal {
(assetId == NATIVE_ASSETID)
? transferNativeAsset(recipient, amount)
: transferERC20(assetId, recipient, amount);
}
/// @dev Checks whether the given address is a contract and contains code
function isContract(address _contractAddr) internal view returns (bool) {
uint256 size;
// solhint-disable-next-line no-inline-assembly
assembly {
size := extcodesize(_contractAddr)
}
return size > 0;
}
}// SPDX-License-Identifier: MIT pragma solidity 0.8.13; error InvalidAmount(); error TokenAddressIsZero(); error CannotBridgeToSameNetwork(); error ZeroPostSwapBalance(); error InvalidBridgeConfigLength(); error NoSwapDataProvided(); error NativeValueWithERC(); error ContractCallNotAllowed(); error NullAddrIsNotAValidSpender(); error NullAddrIsNotAnERC20Token(); error NoTransferToNullAddress(); error NativeAssetTransferFailed(); error InvalidContract(); error InvalidConfig();
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;
import "../IERC20.sol";
import "../../../utils/Address.sol";
/**
* @title SafeERC20
* @dev Wrappers around ERC20 operations that throw on failure (when the token
* contract returns false). Tokens that return no value (and instead revert or
* throw on failure) are also supported, non-reverting calls are assumed to be
* successful.
* To use this library you can add a `using SafeERC20 for IERC20;` statement to your contract,
* which allows you to call the safe operations as `token.safeTransfer(...)`, etc.
*/
library SafeERC20 {
using Address for address;
function safeTransfer(
IERC20 token,
address to,
uint256 value
) internal {
_callOptionalReturn(token, abi.encodeWithSelector(token.transfer.selector, to, value));
}
function safeTransferFrom(
IERC20 token,
address from,
address to,
uint256 value
) internal {
_callOptionalReturn(token, abi.encodeWithSelector(token.transferFrom.selector, from, to, value));
}
/**
* @dev Deprecated. This function has issues similar to the ones found in
* {IERC20-approve}, and its usage is discouraged.
*
* Whenever possible, use {safeIncreaseAllowance} and
* {safeDecreaseAllowance} instead.
*/
function safeApprove(
IERC20 token,
address spender,
uint256 value
) internal {
// safeApprove should only be called when setting an initial allowance,
// or when resetting it to zero. To increase and decrease it, use
// 'safeIncreaseAllowance' and 'safeDecreaseAllowance'
require(
(value == 0) || (token.allowance(address(this), spender) == 0),
"SafeERC20: approve from non-zero to non-zero allowance"
);
_callOptionalReturn(token, abi.encodeWithSelector(token.approve.selector, spender, value));
}
function safeIncreaseAllowance(
IERC20 token,
address spender,
uint256 value
) internal {
uint256 newAllowance = token.allowance(address(this), spender) + value;
_callOptionalReturn(token, abi.encodeWithSelector(token.approve.selector, spender, newAllowance));
}
function safeDecreaseAllowance(
IERC20 token,
address spender,
uint256 value
) internal {
unchecked {
uint256 oldAllowance = token.allowance(address(this), spender);
require(oldAllowance >= value, "SafeERC20: decreased allowance below zero");
uint256 newAllowance = oldAllowance - value;
_callOptionalReturn(token, abi.encodeWithSelector(token.approve.selector, spender, newAllowance));
}
}
/**
* @dev Imitates a Solidity high-level call (i.e. a regular function call to a contract), relaxing the requirement
* on the return value: the return value is optional (but if data is returned, it must not be false).
* @param token The token targeted by the call.
* @param data The call data (encoded using abi.encode or one of its variants).
*/
function _callOptionalReturn(IERC20 token, bytes memory data) private {
// We need to perform a low level call here, to bypass Solidity's return data size checking mechanism, since
// we're implementing it ourselves. We use {Address.functionCall} to perform this call, which verifies that
// the target address contains contract code and also asserts for success in the low-level call.
bytes memory returndata = address(token).functionCall(data, "SafeERC20: low-level call failed");
if (returndata.length > 0) {
// Return data is optional
require(abi.decode(returndata, (bool)), "SafeERC20: ERC20 operation did not succeed");
}
}
}// SPDX-License-Identifier: MIT
pragma solidity ^0.8.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.8.0;
/**
* @dev Collection of functions related to the address type
*/
library Address {
/**
* @dev Returns true if `account` is a contract.
*
* [IMPORTANT]
* ====
* It is unsafe to assume that an address for which this function returns
* false is an externally-owned account (EOA) and not a contract.
*
* Among others, `isContract` will return false for the following
* types of addresses:
*
* - an externally-owned account
* - a contract in construction
* - an address where a contract will be created
* - an address where a contract lived, but was destroyed
* ====
*/
function isContract(address account) internal view returns (bool) {
// This method relies on extcodesize, which returns 0 for contracts in
// construction, since the code is only stored at the end of the
// constructor execution.
uint256 size;
assembly {
size := extcodesize(account)
}
return size > 0;
}
/**
* @dev Replacement for Solidity's `transfer`: sends `amount` wei to
* `recipient`, forwarding all available gas and reverting on errors.
*
* https://eips.ethereum.org/EIPS/eip-1884[EIP1884] increases the gas cost
* of certain opcodes, possibly making contracts go over the 2300 gas limit
* imposed by `transfer`, making them unable to receive funds via
* `transfer`. {sendValue} removes this limitation.
*
* https://diligence.consensys.net/posts/2019/09/stop-using-soliditys-transfer-now/[Learn more].
*
* IMPORTANT: because control is transferred to `recipient`, care must be
* taken to not create reentrancy vulnerabilities. Consider using
* {ReentrancyGuard} or the
* https://solidity.readthedocs.io/en/v0.5.11/security-considerations.html#use-the-checks-effects-interactions-pattern[checks-effects-interactions pattern].
*/
function sendValue(address payable recipient, uint256 amount) internal {
require(address(this).balance >= amount, "Address: insufficient balance");
(bool success, ) = recipient.call{value: amount}("");
require(success, "Address: unable to send value, recipient may have reverted");
}
/**
* @dev Performs a Solidity function call using a low level `call`. A
* plain `call` is an unsafe replacement for a function call: use this
* function instead.
*
* If `target` reverts with a revert reason, it is bubbled up by this
* function (like regular Solidity function calls).
*
* Returns the raw returned data. To convert to the expected return value,
* use https://solidity.readthedocs.io/en/latest/units-and-global-variables.html?highlight=abi.decode#abi-encoding-and-decoding-functions[`abi.decode`].
*
* Requirements:
*
* - `target` must be a contract.
* - calling `target` with `data` must not revert.
*
* _Available since v3.1._
*/
function functionCall(address target, bytes memory data) internal returns (bytes memory) {
return functionCall(target, data, "Address: low-level call failed");
}
/**
* @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], but with
* `errorMessage` as a fallback revert reason when `target` reverts.
*
* _Available since v3.1._
*/
function functionCall(
address target,
bytes memory data,
string memory errorMessage
) internal returns (bytes memory) {
return functionCallWithValue(target, data, 0, errorMessage);
}
/**
* @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],
* but also transferring `value` wei to `target`.
*
* Requirements:
*
* - the calling contract must have an ETH balance of at least `value`.
* - the called Solidity function must be `payable`.
*
* _Available since v3.1._
*/
function functionCallWithValue(
address target,
bytes memory data,
uint256 value
) internal returns (bytes memory) {
return functionCallWithValue(target, data, value, "Address: low-level call with value failed");
}
/**
* @dev Same as {xref-Address-functionCallWithValue-address-bytes-uint256-}[`functionCallWithValue`], but
* with `errorMessage` as a fallback revert reason when `target` reverts.
*
* _Available since v3.1._
*/
function functionCallWithValue(
address target,
bytes memory data,
uint256 value,
string memory errorMessage
) internal returns (bytes memory) {
require(address(this).balance >= value, "Address: insufficient balance for call");
require(isContract(target), "Address: call to non-contract");
(bool success, bytes memory returndata) = target.call{value: value}(data);
return verifyCallResult(success, returndata, errorMessage);
}
/**
* @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],
* but performing a static call.
*
* _Available since v3.3._
*/
function functionStaticCall(address target, bytes memory data) internal view returns (bytes memory) {
return functionStaticCall(target, data, "Address: low-level static call failed");
}
/**
* @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],
* but performing a static call.
*
* _Available since v3.3._
*/
function functionStaticCall(
address target,
bytes memory data,
string memory errorMessage
) internal view returns (bytes memory) {
require(isContract(target), "Address: static call to non-contract");
(bool success, bytes memory returndata) = target.staticcall(data);
return verifyCallResult(success, returndata, errorMessage);
}
/**
* @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],
* but performing a delegate call.
*
* _Available since v3.4._
*/
function functionDelegateCall(address target, bytes memory data) internal returns (bytes memory) {
return functionDelegateCall(target, data, "Address: low-level delegate call failed");
}
/**
* @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],
* but performing a delegate call.
*
* _Available since v3.4._
*/
function functionDelegateCall(
address target,
bytes memory data,
string memory errorMessage
) internal returns (bytes memory) {
require(isContract(target), "Address: delegate call to non-contract");
(bool success, bytes memory returndata) = target.delegatecall(data);
return verifyCallResult(success, returndata, errorMessage);
}
/**
* @dev Tool to verifies that a low level call was successful, and revert if it wasn't, either by bubbling the
* revert reason using the provided one.
*
* _Available since v4.3._
*/
function verifyCallResult(
bool success,
bytes memory returndata,
string memory errorMessage
) internal pure returns (bytes memory) {
if (success) {
return returndata;
} else {
// Look for revert reason and bubble it up if present
if (returndata.length > 0) {
// The easiest way to bubble the revert reason is using memory via assembly
assembly {
let returndata_size := mload(returndata)
revert(add(32, returndata), returndata_size)
}
} else {
revert(errorMessage);
}
}
}
}{
"optimizer": {
"enabled": true,
"runs": 10000
},
"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":"_owner","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"InvalidAmount","type":"error"},{"inputs":[],"name":"NativeAssetTransferFailed","type":"error"},{"inputs":[],"name":"NativeValueWithERC","type":"error"},{"inputs":[],"name":"NewOwnerMustNotBeSelf","type":"error"},{"inputs":[],"name":"NoNullOwner","type":"error"},{"inputs":[],"name":"NoPendingOwnershipTransfer","type":"error"},{"inputs":[],"name":"NoTransferToNullAddress","type":"error"},{"inputs":[],"name":"NotPendingOwner","type":"error"},{"inputs":[],"name":"NullAddrIsNotAnERC20Token","type":"error"},{"inputs":[],"name":"TransferFailure","type":"error"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"Unauthorized","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_token","type":"address"},{"indexed":true,"internalType":"address","name":"_integrator","type":"address"},{"indexed":false,"internalType":"uint256","name":"_integratorFee","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"_lifiFee","type":"uint256"}],"name":"FeesCollected","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_token","type":"address"},{"indexed":true,"internalType":"address","name":"_to","type":"address"},{"indexed":false,"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"FeesWithdrawn","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_token","type":"address"},{"indexed":true,"internalType":"address","name":"_to","type":"address"},{"indexed":false,"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"LiFiFeesWithdrawn","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_from","type":"address"},{"indexed":true,"internalType":"address","name":"_to","type":"address"}],"name":"OwnershipTransferRequested","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":[{"internalType":"address[]","name":"tokenAddresses","type":"address[]"}],"name":"batchWithdrawIntegratorFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"tokenAddresses","type":"address[]"}],"name":"batchWithdrawLifiFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"cancelOnwershipTransfer","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"integratorFee","type":"uint256"},{"internalType":"uint256","name":"lifiFee","type":"uint256"},{"internalType":"address","name":"integratorAddress","type":"address"}],"name":"collectNativeFees","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"tokenAddress","type":"address"},{"internalType":"uint256","name":"integratorFee","type":"uint256"},{"internalType":"uint256","name":"lifiFee","type":"uint256"},{"internalType":"address","name":"integratorAddress","type":"address"}],"name":"collectTokenFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"confirmOwnershipTransfer","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"tokenAddress","type":"address"}],"name":"getLifiTokenBalance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"integratorAddress","type":"address"},{"internalType":"address","name":"tokenAddress","type":"address"}],"name":"getTokenBalance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","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":"_newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"tokenAddress","type":"address"}],"name":"withdrawIntegratorFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"tokenAddress","type":"address"}],"name":"withdrawLifiFees","outputs":[],"stateMutability":"nonpayable","type":"function"}]Contract Creation Code
608060405234801561001057600080fd5b5060405161171338038061171383398101604081905261002f91610054565b600280546001600160a01b0319166001600160a01b0392909216919091179055610084565b60006020828403121561006657600080fd5b81516001600160a01b038116811461007d57600080fd5b9392505050565b611680806100936000396000f3fe6080604052600436106100d25760003560e01c8063bd0b380b1161007f578063e30c397811610059578063e30c39781461023b578063e5d647661461025b578063eedd56e11461027b578063f2fde38b1461029b57600080fd5b8063bd0b380b146101c4578063c489744b146101e4578063e0cbc5f21461022857600080fd5b806364bc5be1116100b057806364bc5be1146101575780637200b829146101775780638da5cb5b1461018c57600080fd5b80630f4efb90146100d75780630fe97f70146100ee578063461ad4f514610137575b600080fd5b3480156100e357600080fd5b506100ec6102bb565b005b3480156100fa57600080fd5b506101246101093660046112d6565b6001600160a01b031660009081526001602052604090205490565b6040519081526020015b60405180910390f35b34801561014357600080fd5b506100ec6101523660046112d6565b61032f565b34801561016357600080fd5b506100ec610172366004611320565b6103cb565b34801561018357600080fd5b506100ec610520565b34801561019857600080fd5b506002546101ac906001600160a01b031681565b6040516001600160a01b03909116815260200161012e565b3480156101d057600080fd5b506100ec6101df3660046112d6565b6105d3565b3480156101f057600080fd5b506101246101ff366004611403565b6001600160a01b0391821660009081526020818152604080832093909416825291909152205490565b6100ec610236366004611436565b61066c565b34801561024757600080fd5b506003546101ac906001600160a01b031681565b34801561026757600080fd5b506100ec610276366004611320565b6107d3565b34801561028757600080fd5b506100ec61029636600461146b565b610929565b3480156102a757600080fd5b506100ec6102b63660046112d6565b6109e9565b6102c3610add565b6003546001600160a01b0316610305576040517f75cdea1200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600380547fffffffffffffffffffffffff0000000000000000000000000000000000000000169055565b610337610add565b6001600160a01b0381166000908152600160205260408120549081900361035c575050565b6001600160a01b038083166000908152600160205260408120556002546103869184911683610b2a565b60405181815233906001600160a01b038416907fe0ac2a6b74759312758ae3b784411c8e2f3b8bd81fecff40b906d69030af4bfc906020015b60405180910390a35050565b6103d3610add565b80516000805b8281101561051a57600160008583815181106103f7576103f76114b1565b60200260200101516001600160a01b03166001600160a01b03168152602001908152602001600020549150816000031561050857600060016000868481518110610443576104436114b1565b60200260200101516001600160a01b03166001600160a01b03168152602001908152602001600020819055506104a1848281518110610484576104846114b1565b60209081029190910101516002546001600160a01b031684610b2a565b336001600160a01b03168482815181106104bd576104bd6114b1565b60200260200101516001600160a01b03167fe0ac2a6b74759312758ae3b784411c8e2f3b8bd81fecff40b906d69030af4bfc846040516104ff91815260200190565b60405180910390a35b806105128161150f565b9150506103d9565b50505050565b6003546001600160a01b03163314610564576040517f1853971c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60038054600280546001600160a01b0383167fffffffffffffffffffffffff00000000000000000000000000000000000000009182168117909255909116909155604051600091907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3565b336000908152602081815260408083206001600160a01b038516845290915281205490819003610601575050565b336000818152602081815260408083206001600160a01b038716845290915281205561062f90839083610b2a565b60405181815233906001600160a01b038416907f5e110f8bc8a20b65dcc87f224bdf1cc039346e267118bae2739847f07321ffa8906020016103bf565b6001600160a01b0381166000908152602081815260408083208380529091528120805485929061069d908490611547565b9091555050600080805260016020527fa6eef7e35abe7026729641147f7915573c7e97b47efa546f5f6e3230263bcb4980548492906106dd908490611547565b90915550600090506106ef8385611547565b6106f9903461155f565b9050801561078557604051600090339083908381818185875af1925050503d8060008114610743576040519150601f19603f3d011682016040523d82523d6000602084013e610748565b606091505b5050905080610783576040517ff7e6817a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b505b60408051858152602081018590526001600160a01b038416916000917f28a87b6059180e46de5fb9ab35eb043e8fe00ab45afcc7789e3934ecbbcde3ea91015b60405180910390a350505050565b80516000805b8281101561051a573360009081526020819052604081208551909190869084908110610807576108076114b1565b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002054915081600003156109175733600090815260208190526040812085518290879085908110610860576108606114b1565b60200260200101516001600160a01b03166001600160a01b03168152602001908152602001600020819055506108b08482815181106108a1576108a16114b1565b60200260200101513384610b2a565b336001600160a01b03168482815181106108cc576108cc6114b1565b60200260200101516001600160a01b03167f5e110f8bc8a20b65dcc87f224bdf1cc039346e267118bae2739847f07321ffa88460405161090e91815260200190565b60405180910390a35b806109218161150f565b9150506107d9565b61093c846109378486611547565b610b53565b6001600160a01b0380821660009081526020818152604080832093881683529290529081208054859290610971908490611547565b90915550506001600160a01b0384166000908152600160205260408120805484929061099e908490611547565b909155505060408051848152602081018490526001600160a01b0380841692908716917f28a87b6059180e46de5fb9ab35eb043e8fe00ab45afcc7789e3934ecbbcde3ea91016107c5565b6109f1610add565b6001600160a01b038116610a31576040517f1beca37400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6002546001600160a01b0390811690821603610a79576040517fbf1ea9fb00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600380547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b03831690811790915560405133907fed8889f560326eb138920d842192f0eb3dd22b4f139c87a2c57538e05bae127890600090a350565b6002546001600160a01b03163314610b28576040517f8e4a23d60000000000000000000000000000000000000000000000000000000081523360048201526024015b60405180910390fd5b565b6001600160a01b03831615610b4957610b44838383610b6c565b505050565b610b448282610bb7565b610b6882826001600160a01b03821615610c84565b5050565b6001600160a01b038316610bac576040517fd1bebf0c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610b44838383610d99565b6001600160a01b038216610bf7576040517f21f7434500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000826001600160a01b03168260405160006040518083038185875af1925050503d8060008114610c44576040519150601f19603f3d011682016040523d82523d6000602084013e610c49565b606091505b5050905080610b44576040517f5a04673700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b81600003610cbe576040517f2c5211c600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8015610cfd57813414610b44576040517f2c5211c600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b3415610d34576040517e3f45b500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000610d3f84610e60565b9050610d4d84333086610eff565b8281610d5886610e60565b610d62919061155f565b1461051a576040517f2c5211c600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040516001600160a01b038316602482015260448101829052610b449084907fa9059cbb00000000000000000000000000000000000000000000000000000000906064015b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff0000000000000000000000000000000000000000000000000000000090931692909217909152610f8b565b60006001600160a01b03821615610ef7576040517f70a082310000000000000000000000000000000000000000000000000000000081523060048201526001600160a01b038316906370a0823190602401602060405180830381865afa158015610ece573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ef29190611576565b610ef9565b475b92915050565b6001600160a01b038416610f3f576040517fd1bebf0c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b038216610f7f576040517f21f7434500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61051a8484848461108a565b6000610fe0826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166110db9092919063ffffffff16565b805190915015610b445780806020019051810190610ffe919061158f565b610b44576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e60448201527f6f742073756363656564000000000000000000000000000000000000000000006064820152608401610b1f565b6040516001600160a01b038085166024830152831660448201526064810182905261051a9085907f23b872dd0000000000000000000000000000000000000000000000000000000090608401610dde565b60606110ea84846000856110f4565b90505b9392505050565b606082471015611186576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f60448201527f722063616c6c00000000000000000000000000000000000000000000000000006064820152608401610b1f565b843b6111ee576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610b1f565b600080866001600160a01b0316858760405161120a91906115dd565b60006040518083038185875af1925050503d8060008114611247576040519150601f19603f3d011682016040523d82523d6000602084013e61124c565b606091505b509150915061125c828286611267565b979650505050505050565b606083156112765750816110ed565b8251156112865782518084602001fd5b816040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b1f91906115f9565b80356001600160a01b03811681146112d157600080fd5b919050565b6000602082840312156112e857600080fd5b6110ed826112ba565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000602080838503121561133357600080fd5b823567ffffffffffffffff8082111561134b57600080fd5b818501915085601f83011261135f57600080fd5b813581811115611371576113716112f1565b8060051b6040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0603f830116810181811085821117156113b4576113b46112f1565b6040529182528482019250838101850191888311156113d257600080fd5b938501935b828510156113f7576113e8856112ba565b845293850193928501926113d7565b98975050505050505050565b6000806040838503121561141657600080fd5b61141f836112ba565b915061142d602084016112ba565b90509250929050565b60008060006060848603121561144b57600080fd5b8335925060208401359150611462604085016112ba565b90509250925092565b6000806000806080858703121561148157600080fd5b61148a856112ba565b935060208501359250604085013591506114a6606086016112ba565b905092959194509250565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203611540576115406114e0565b5060010190565b6000821982111561155a5761155a6114e0565b500190565b600082821015611571576115716114e0565b500390565b60006020828403121561158857600080fd5b5051919050565b6000602082840312156115a157600080fd5b815180151581146110ed57600080fd5b60005b838110156115cc5781810151838201526020016115b4565b8381111561051a5750506000910152565b600082516115ef8184602087016115b1565b9190910192915050565b60208152600082518060208401526116188160408501602087016115b1565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016919091016040019291505056fea26469706673582212203a25a29ea11b6d44241cff2cbf12d4eee8188286c36aba21312cc51c3fac07fd64736f6c634300080d0033000000000000000000000000cb1e9fa11edd27098a6b2ff23cb6b79183ccf8ee
Deployed Bytecode
0x6080604052600436106100d25760003560e01c8063bd0b380b1161007f578063e30c397811610059578063e30c39781461023b578063e5d647661461025b578063eedd56e11461027b578063f2fde38b1461029b57600080fd5b8063bd0b380b146101c4578063c489744b146101e4578063e0cbc5f21461022857600080fd5b806364bc5be1116100b057806364bc5be1146101575780637200b829146101775780638da5cb5b1461018c57600080fd5b80630f4efb90146100d75780630fe97f70146100ee578063461ad4f514610137575b600080fd5b3480156100e357600080fd5b506100ec6102bb565b005b3480156100fa57600080fd5b506101246101093660046112d6565b6001600160a01b031660009081526001602052604090205490565b6040519081526020015b60405180910390f35b34801561014357600080fd5b506100ec6101523660046112d6565b61032f565b34801561016357600080fd5b506100ec610172366004611320565b6103cb565b34801561018357600080fd5b506100ec610520565b34801561019857600080fd5b506002546101ac906001600160a01b031681565b6040516001600160a01b03909116815260200161012e565b3480156101d057600080fd5b506100ec6101df3660046112d6565b6105d3565b3480156101f057600080fd5b506101246101ff366004611403565b6001600160a01b0391821660009081526020818152604080832093909416825291909152205490565b6100ec610236366004611436565b61066c565b34801561024757600080fd5b506003546101ac906001600160a01b031681565b34801561026757600080fd5b506100ec610276366004611320565b6107d3565b34801561028757600080fd5b506100ec61029636600461146b565b610929565b3480156102a757600080fd5b506100ec6102b63660046112d6565b6109e9565b6102c3610add565b6003546001600160a01b0316610305576040517f75cdea1200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600380547fffffffffffffffffffffffff0000000000000000000000000000000000000000169055565b610337610add565b6001600160a01b0381166000908152600160205260408120549081900361035c575050565b6001600160a01b038083166000908152600160205260408120556002546103869184911683610b2a565b60405181815233906001600160a01b038416907fe0ac2a6b74759312758ae3b784411c8e2f3b8bd81fecff40b906d69030af4bfc906020015b60405180910390a35050565b6103d3610add565b80516000805b8281101561051a57600160008583815181106103f7576103f76114b1565b60200260200101516001600160a01b03166001600160a01b03168152602001908152602001600020549150816000031561050857600060016000868481518110610443576104436114b1565b60200260200101516001600160a01b03166001600160a01b03168152602001908152602001600020819055506104a1848281518110610484576104846114b1565b60209081029190910101516002546001600160a01b031684610b2a565b336001600160a01b03168482815181106104bd576104bd6114b1565b60200260200101516001600160a01b03167fe0ac2a6b74759312758ae3b784411c8e2f3b8bd81fecff40b906d69030af4bfc846040516104ff91815260200190565b60405180910390a35b806105128161150f565b9150506103d9565b50505050565b6003546001600160a01b03163314610564576040517f1853971c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60038054600280546001600160a01b0383167fffffffffffffffffffffffff00000000000000000000000000000000000000009182168117909255909116909155604051600091907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3565b336000908152602081815260408083206001600160a01b038516845290915281205490819003610601575050565b336000818152602081815260408083206001600160a01b038716845290915281205561062f90839083610b2a565b60405181815233906001600160a01b038416907f5e110f8bc8a20b65dcc87f224bdf1cc039346e267118bae2739847f07321ffa8906020016103bf565b6001600160a01b0381166000908152602081815260408083208380529091528120805485929061069d908490611547565b9091555050600080805260016020527fa6eef7e35abe7026729641147f7915573c7e97b47efa546f5f6e3230263bcb4980548492906106dd908490611547565b90915550600090506106ef8385611547565b6106f9903461155f565b9050801561078557604051600090339083908381818185875af1925050503d8060008114610743576040519150601f19603f3d011682016040523d82523d6000602084013e610748565b606091505b5050905080610783576040517ff7e6817a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b505b60408051858152602081018590526001600160a01b038416916000917f28a87b6059180e46de5fb9ab35eb043e8fe00ab45afcc7789e3934ecbbcde3ea91015b60405180910390a350505050565b80516000805b8281101561051a573360009081526020819052604081208551909190869084908110610807576108076114b1565b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002054915081600003156109175733600090815260208190526040812085518290879085908110610860576108606114b1565b60200260200101516001600160a01b03166001600160a01b03168152602001908152602001600020819055506108b08482815181106108a1576108a16114b1565b60200260200101513384610b2a565b336001600160a01b03168482815181106108cc576108cc6114b1565b60200260200101516001600160a01b03167f5e110f8bc8a20b65dcc87f224bdf1cc039346e267118bae2739847f07321ffa88460405161090e91815260200190565b60405180910390a35b806109218161150f565b9150506107d9565b61093c846109378486611547565b610b53565b6001600160a01b0380821660009081526020818152604080832093881683529290529081208054859290610971908490611547565b90915550506001600160a01b0384166000908152600160205260408120805484929061099e908490611547565b909155505060408051848152602081018490526001600160a01b0380841692908716917f28a87b6059180e46de5fb9ab35eb043e8fe00ab45afcc7789e3934ecbbcde3ea91016107c5565b6109f1610add565b6001600160a01b038116610a31576040517f1beca37400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6002546001600160a01b0390811690821603610a79576040517fbf1ea9fb00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600380547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b03831690811790915560405133907fed8889f560326eb138920d842192f0eb3dd22b4f139c87a2c57538e05bae127890600090a350565b6002546001600160a01b03163314610b28576040517f8e4a23d60000000000000000000000000000000000000000000000000000000081523360048201526024015b60405180910390fd5b565b6001600160a01b03831615610b4957610b44838383610b6c565b505050565b610b448282610bb7565b610b6882826001600160a01b03821615610c84565b5050565b6001600160a01b038316610bac576040517fd1bebf0c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610b44838383610d99565b6001600160a01b038216610bf7576040517f21f7434500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000826001600160a01b03168260405160006040518083038185875af1925050503d8060008114610c44576040519150601f19603f3d011682016040523d82523d6000602084013e610c49565b606091505b5050905080610b44576040517f5a04673700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b81600003610cbe576040517f2c5211c600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8015610cfd57813414610b44576040517f2c5211c600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b3415610d34576040517e3f45b500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000610d3f84610e60565b9050610d4d84333086610eff565b8281610d5886610e60565b610d62919061155f565b1461051a576040517f2c5211c600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040516001600160a01b038316602482015260448101829052610b449084907fa9059cbb00000000000000000000000000000000000000000000000000000000906064015b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff0000000000000000000000000000000000000000000000000000000090931692909217909152610f8b565b60006001600160a01b03821615610ef7576040517f70a082310000000000000000000000000000000000000000000000000000000081523060048201526001600160a01b038316906370a0823190602401602060405180830381865afa158015610ece573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ef29190611576565b610ef9565b475b92915050565b6001600160a01b038416610f3f576040517fd1bebf0c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b038216610f7f576040517f21f7434500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61051a8484848461108a565b6000610fe0826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166110db9092919063ffffffff16565b805190915015610b445780806020019051810190610ffe919061158f565b610b44576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e60448201527f6f742073756363656564000000000000000000000000000000000000000000006064820152608401610b1f565b6040516001600160a01b038085166024830152831660448201526064810182905261051a9085907f23b872dd0000000000000000000000000000000000000000000000000000000090608401610dde565b60606110ea84846000856110f4565b90505b9392505050565b606082471015611186576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f60448201527f722063616c6c00000000000000000000000000000000000000000000000000006064820152608401610b1f565b843b6111ee576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610b1f565b600080866001600160a01b0316858760405161120a91906115dd565b60006040518083038185875af1925050503d8060008114611247576040519150601f19603f3d011682016040523d82523d6000602084013e61124c565b606091505b509150915061125c828286611267565b979650505050505050565b606083156112765750816110ed565b8251156112865782518084602001fd5b816040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b1f91906115f9565b80356001600160a01b03811681146112d157600080fd5b919050565b6000602082840312156112e857600080fd5b6110ed826112ba565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000602080838503121561133357600080fd5b823567ffffffffffffffff8082111561134b57600080fd5b818501915085601f83011261135f57600080fd5b813581811115611371576113716112f1565b8060051b6040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0603f830116810181811085821117156113b4576113b46112f1565b6040529182528482019250838101850191888311156113d257600080fd5b938501935b828510156113f7576113e8856112ba565b845293850193928501926113d7565b98975050505050505050565b6000806040838503121561141657600080fd5b61141f836112ba565b915061142d602084016112ba565b90509250929050565b60008060006060848603121561144b57600080fd5b8335925060208401359150611462604085016112ba565b90509250925092565b6000806000806080858703121561148157600080fd5b61148a856112ba565b935060208501359250604085013591506114a6606086016112ba565b905092959194509250565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203611540576115406114e0565b5060010190565b6000821982111561155a5761155a6114e0565b500190565b600082821015611571576115716114e0565b500390565b60006020828403121561158857600080fd5b5051919050565b6000602082840312156115a157600080fd5b815180151581146110ed57600080fd5b60005b838110156115cc5781810151838201526020016115b4565b8381111561051a5750506000910152565b600082516115ef8184602087016115b1565b9190910192915050565b60208152600082518060208401526116188160408501602087016115b1565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016919091016040019291505056fea26469706673582212203a25a29ea11b6d44241cff2cbf12d4eee8188286c36aba21312cc51c3fac07fd64736f6c634300080d0033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
000000000000000000000000cb1e9fa11edd27098a6b2ff23cb6b79183ccf8ee
-----Decoded View---------------
Arg [0] : _owner (address): 0xCB1e9fA11Edd27098A6B2Ff23cB6b79183ccf8Ee
-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 000000000000000000000000cb1e9fa11edd27098a6b2ff23cb6b79183ccf8ee
Loading...
Loading
Loading...
Loading
Loading...
Loading
Net Worth in USD
$2,190,698.28
Net Worth in GLMR
Token Allocations
UXLINK
91.45%
USDC
3.48%
AVAX
1.64%
Others
3.43%
Multichain Portfolio | 35 Chains
| Chain | Token | Portfolio % | Price | Amount | Value |
|---|---|---|---|---|---|
| ARB | 91.45% | $0.01194 | 167,787,790.2434 | $2,003,401.32 | |
| ARB | 3.09% | $0.999638 | 67,726.4787 | $67,701.96 | |
| ARB | 1.17% | $2,957.72 | 8.665 | $25,628.63 | |
| ARB | 0.52% | $0.998643 | 11,376.6312 | $11,361.19 | |
| ARB | 0.25% | $0.002741 | 2,000,000 | $5,481.05 | |
| ARB | 0.20% | $89,042 | 0.0504 | $4,484.45 | |
| ARB | 0.20% | $2,956.15 | 1.4535 | $4,296.63 | |
| ARB | 0.08% | $0.999285 | 1,754.8007 | $1,753.55 | |
| ARB | 0.04% | $0.999638 | 957.5812 | $957.23 | |
| ARB | 0.04% | $0.176275 | 5,380.7059 | $948.48 | |
| ARB | 0.03% | $35.04 | 16.0958 | $564 | |
| ARB | 0.02% | $12.16 | 39.5479 | $480.9 | |
| ARB | 0.02% | $0.009948 | 46,367.2247 | $461.27 | |
| ARB | 0.02% | $155.88 | 2.1968 | $342.43 | |
| ARB | 0.02% | $4.85 | 69.1529 | $335.39 | |
| ARB | 0.01% | $0.021045 | 15,512.6871 | $326.46 | |
| ARB | 0.01% | $0.001663 | 170,526.6614 | $283.64 | |
| ARB | <0.01% | $0.998668 | 213.7693 | $213.48 | |
| ARB | <0.01% | $0.934304 | 223.1703 | $208.51 | |
| ARB | <0.01% | $7.24 | 17.7326 | $128.38 | |
| ARB | <0.01% | $2.04 | 61.6258 | $125.72 | |
| ARB | <0.01% | $0.067236 | 1,736.8699 | $116.78 | |
| ARB | <0.01% | $0.999091 | 95.8518 | $95.76 | |
| ARB | <0.01% | $3,621.92 | 0.0256 | $92.6 | |
| ARB | <0.01% | $2.03 | 42.3847 | $86.04 | |
| ARB | <0.01% | $89,165 | 0.00096006 | $85.6 | |
| ARB | <0.01% | $2,931.1 | 0.0242 | $70.9 | |
| ARB | <0.01% | $0.036376 | 1,721.0527 | $62.6 | |
| ARB | <0.01% | $3.43 | 16.8807 | $57.9 | |
| ARB | <0.01% | $0.358279 | 156.5181 | $56.08 | |
| ARB | <0.01% | $0.518343 | 92.8978 | $48.15 | |
| ARB | <0.01% | $89,154 | 0.00053679 | $47.86 | |
| ARB | <0.01% | $1.91 | 24.6121 | $47.01 | |
| ARB | <0.01% | $2,955.17 | 0.0159 | $46.94 | |
| ARB | <0.01% | $3,159.88 | 0.0147 | $46.42 | |
| ARB | <0.01% | $115.56 | 0.3974 | $45.92 | |
| ARB | <0.01% | $1.2 | 35.1572 | $42.19 | |
| ARB | <0.01% | $0.092555 | 403.4282 | $37.34 | |
| ARB | <0.01% | $0.001799 | 20,546.2589 | $36.96 | |
| ARB | <0.01% | $89,154 | 0.0003617 | $32.25 | |
| ARB | <0.01% | $1.22 | 26.2988 | $32.08 | |
| ARB | <0.01% | $0.092019 | 348.3219 | $32.05 | |
| ARB | <0.01% | $1.18 | 24.3843 | $28.77 | |
| ARB | <0.01% | $0.000379 | 74,481.653 | $28.2 | |
| ARB | <0.01% | $0.368646 | 75.0234 | $27.66 | |
| ARB | <0.01% | $0.021581 | 1,263.7006 | $27.27 | |
| ARB | <0.01% | $0.014874 | 1,719.1324 | $25.57 | |
| ARB | <0.01% | $0.177205 | 129.4294 | $22.94 | |
| ARB | <0.01% | $0.186508 | 121.1959 | $22.6 | |
| ARB | <0.01% | $0.000005 | 3,923,141.7992 | $19.58 | |
| ARB | <0.01% | $0.000008 | 2,586,556.9057 | $19.5 | |
| ARB | <0.01% | $0.008609 | 2,227.9651 | $19.18 | |
| ARB | <0.01% | $3.63 | 4.8163 | $17.48 | |
| ARB | <0.01% | $0.02144 | 807.7548 | $17.32 | |
| ARB | <0.01% | $89,431 | 0.00018782 | $16.8 | |
| ARB | <0.01% | $1 | 15.6292 | $15.64 | |
| ARB | <0.01% | $0.603613 | 23.0281 | $13.9 | |
| ARB | <0.01% | $0.210749 | 64.9859 | $13.7 | |
| ARB | <0.01% | $0.029981 | 452.5164 | $13.57 | |
| ARB | <0.01% | $5,463.98 | 0.0021111 | $11.53 | |
| ARB | <0.01% | $0.99974 | 11.2106 | $11.21 | |
| ARB | <0.01% | $0.999371 | 11.1541 | $11.15 | |
| ARB | <0.01% | $0.998998 | 11.0969 | $11.09 | |
| ARB | <0.01% | $2,097.26 | 0.00526309 | $11.04 | |
| ARB | <0.01% | $0.000009 | 1,226,685.4971 | $10.93 | |
| ARB | <0.01% | $0.004373 | 2,457.3704 | $10.75 | |
| ARB | <0.01% | $0.997229 | 10.153 | $10.12 | |
| ARB | <0.01% | $0.992534 | 9.0241 | $8.96 | |
| ARB | <0.01% | $0.998428 | 8.9224 | $8.91 | |
| ARB | <0.01% | $0.00004 | 221,151.9511 | $8.79 | |
| ARB | <0.01% | $0.995146 | 7.8228 | $7.78 | |
| ARB | <0.01% | $0.008723 | 882.5916 | $7.7 | |
| ARB | <0.01% | $0.000256 | 29,950.513 | $7.67 | |
| ARB | <0.01% | $5,044.25 | 0.001444 | $7.28 | |
| ARB | <0.01% | $4.48 | 1.3975 | $6.26 | |
| ARB | <0.01% | $0.052707 | 115.8301 | $6.11 | |
| ARB | <0.01% | $0.999438 | 6.0869 | $6.08 | |
| ARB | <0.01% | $0.062921 | 93.1871 | $5.86 | |
| ARB | <0.01% | $88,125 | 0.00006156 | $5.42 | |
| ARB | <0.01% | $0.000893 | 6,022.8569 | $5.38 | |
| ARB | <0.01% | $0.028457 | 188.5657 | $5.37 | |
| ARB | <0.01% | $0.004139 | 1,239.7437 | $5.13 | |
| ARB | <0.01% | $1.27 | 4.0124 | $5.1 | |
| ARB | <0.01% | $3,660.98 | 0.00138101 | $5.06 | |
| ARB | <0.01% | $0.000246 | 18,806.1958 | $4.63 | |
| ARB | <0.01% | $0.179718 | 25.7204 | $4.62 | |
| ARB | <0.01% | $0.019561 | 230.8206 | $4.52 | |
| ARB | <0.01% | $23.94 | 0.1815 | $4.35 | |
| ARB | <0.01% | $0.997928 | 4.3251 | $4.32 | |
| ARB | <0.01% | <$0.000001 | 106,709,035.6533 | $3.95 | |
| ARB | <0.01% | $2.5 | 1.5739 | $3.93 | |
| ARB | <0.01% | $178.97 | 0.0218 | $3.9 | |
| ARB | <0.01% | $0.000919 | 4,121.5618 | $3.79 | |
| ARB | <0.01% | $0.300533 | 12.5645 | $3.78 | |
| ARB | <0.01% | $0.998467 | 3.6676 | $3.66 | |
| ARB | <0.01% | $0.004529 | 739.9576 | $3.35 | |
| ARB | <0.01% | $89,176 | 0.0000364 | $3.25 | |
| ARB | <0.01% | $0.001384 | 2,321.2358 | $3.21 | |
| ARB | <0.01% | $3,418.43 | 0.00091181 | $3.12 | |
| ARB | <0.01% | $1.11 | 2.7733 | $3.08 | |
| ARB | <0.01% | $0.032818 | 86.2744 | $2.83 | |
| ARB | <0.01% | $1.91 | 1.4711 | $2.81 | |
| ARB | <0.01% | $0.048941 | 57.3715 | $2.81 | |
| ARB | <0.01% | $0.002054 | 1,328.861 | $2.73 | |
| ARB | <0.01% | $20.79 | 0.128 | $2.66 | |
| ARB | <0.01% | $0.735191 | 3.3483 | $2.46 | |
| ARB | <0.01% | $0.001952 | 1,233.2899 | $2.41 | |
| ARB | <0.01% | $0.01298 | 183.212 | $2.38 | |
| ARB | <0.01% | $0.999495 | 2.3157 | $2.31 | |
| ARB | <0.01% | $0.026787 | 84.4253 | $2.26 | |
| ARB | <0.01% | $0.0569 | 39.1073 | $2.23 | |
| ARB | <0.01% | $0.234678 | 9.4279 | $2.21 | |
| ARB | <0.01% | $0.200268 | 10.9922 | $2.2 | |
| ARB | <0.01% | $0.002004 | 996.1697 | $2 | |
| ARB | <0.01% | $0.000009 | 203,851.5112 | $1.89 | |
| ARB | <0.01% | $0.122593 | 14.4972 | $1.78 | |
| ARB | <0.01% | $3,387.17 | 0.0005149 | $1.74 | |
| ARB | <0.01% | $1.01 | 1.6506 | $1.67 | |
| ARB | <0.01% | $0.998812 | 1.554 | $1.55 | |
| ARB | <0.01% | $0.002176 | 711.625 | $1.55 | |
| ARB | <0.01% | $0.021263 | 71.9427 | $1.53 | |
| ARB | <0.01% | $0.025149 | 55.8897 | $1.41 | |
| ARB | <0.01% | $0.03239 | 42.9386 | $1.39 | |
| ARB | <0.01% | $0.210646 | 6.3814 | $1.34 | |
| ARB | <0.01% | $0.099974 | 13.3867 | $1.34 | |
| ARB | <0.01% | $0.024825 | 53.0702 | $1.32 | |
| ARB | <0.01% | $3,285.28 | 0.00039442 | $1.3 | |
| ARB | <0.01% | $0.002261 | 521.6988 | $1.18 | |
| ARB | <0.01% | $0.001934 | 585.8238 | $1.13 | |
| ARB | <0.01% | <$0.000001 | 7,168,000 | $1.13 | |
| ARB | <0.01% | $0.000109 | 10,283.8735 | $1.13 | |
| ARB | <0.01% | $0.000803 | 1,329.6512 | $1.07 | |
| ARB | <0.01% | $0.997756 | 1.0541 | $1.05 | |
| ARB | <0.01% | $2.37 | 0.438 | $1.04 | |
| ARB | <0.01% | $0.000042 | 24,756.7266 | $1.03 | |
| ARB | <0.01% | $0.002635 | 381.7015 | $1.01 | |
| ARB | <0.01% | $0.99249 | 1.0075 | $0.9999 | |
| ARB | <0.01% | $0.997395 | 1.0016 | $0.9989 | |
| ARB | <0.01% | $0.212229 | 4.5138 | $0.9579 | |
| ARB | <0.01% | $1.09 | 0.871 | $0.9467 | |
| ARB | <0.01% | <$0.000001 | 25,110,772.5277 | $0.9466 | |
| ARB | <0.01% | $0.004951 | 186.5082 | $0.9234 | |
| ARB | <0.01% | $0.999716 | 0.9198 | $0.9195 | |
| ARB | <0.01% | $1.19 | 0.7653 | $0.9106 | |
| ARB | <0.01% | $155.89 | 0.00571896 | $0.8915 | |
| ARB | <0.01% | $1 | 0.881 | $0.881 | |
| ARB | <0.01% | $0.076621 | 10.786 | $0.8264 | |
| ARB | <0.01% | $0.011404 | 71.6131 | $0.8166 | |
| ARB | <0.01% | $0.000274 | 2,968.7981 | $0.812 | |
| ARB | <0.01% | $3,415.9 | 0.0002304 | $0.787 | |
| ARB | <0.01% | $0.000165 | 4,723.6798 | $0.7771 | |
| ARB | <0.01% | $0.326541 | 2.3603 | $0.7707 | |
| ARB | <0.01% | $0.014463 | 50.6463 | $0.7324 | |
| ARB | <0.01% | $0.73865 | 0.9905 | $0.7316 | |
| ARB | <0.01% | $0.000345 | 2,119.6161 | $0.7303 | |
| ARB | <0.01% | $12.16 | 0.0563 | $0.6841 | |
| ARB | <0.01% | $0.978714 | 0.6714 | $0.6571 | |
| ARB | <0.01% | $0.003634 | 180.496 | $0.656 | |
| ARB | <0.01% | $0.000109 | 6,000 | $0.653 | |
| ARB | <0.01% | $0.0172 | 35.8054 | $0.6158 | |
| ARB | <0.01% | $0.496747 | 1.2215 | $0.6067 | |
| ARB | <0.01% | $0.008346 | 71.5752 | $0.5973 | |
| ARB | <0.01% | $0.000489 | 1,211.0264 | $0.5919 | |
| ARB | <0.01% | $58.62 | 0.01 | $0.5877 | |
| ARB | <0.01% | $0.000256 | 2,250.1202 | $0.5751 | |
| ARB | <0.01% | $3,619.82 | 0.00014953 | $0.5412 | |
| ARB | <0.01% | $1.15 | 0.407 | $0.468 | |
| ARB | <0.01% | $0.115783 | 3.9218 | $0.454 | |
| ARB | <0.01% | $0.068371 | 6.2812 | $0.4294 | |
| ARB | <0.01% | $259.79 | 0.00163134 | $0.4238 | |
| ARB | <0.01% | $0.004143 | 93.9184 | $0.3891 | |
| ARB | <0.01% | $0.000751 | 503.5792 | $0.3782 | |
| ARB | <0.01% | $0.244084 | 1.4928 | $0.3643 | |
| ARB | <0.01% | $1.18 | 0.2925 | $0.3452 | |
| ARB | <0.01% | $2.59 | 0.1315 | $0.3406 | |
| ARB | <0.01% | $0.999411 | 0.3349 | $0.3346 | |
| ARB | <0.01% | $0.043735 | 7.6428 | $0.3342 | |
| ARB | <0.01% | $0.070741 | 4.6833 | $0.3312 | |
| ARB | <0.01% | $0.408799 | 0.7825 | $0.3198 | |
| ARB | <0.01% | $0.058417 | 5.2446 | $0.3063 | |
| ARB | <0.01% | $0.006622 | 43.7124 | $0.2894 | |
| ARB | <0.01% | $0.001415 | 203.1227 | $0.2873 | |
| ARB | <0.01% | $0.059677 | 4.7335 | $0.2824 | |
| ARB | <0.01% | $0.000812 | 338.9985 | $0.2753 | |
| ARB | <0.01% | $1.09 | 0.2535 | $0.275 | |
| ARB | <0.01% | $0.005326 | 50.3858 | $0.2683 | |
| ARB | <0.01% | $0.001029 | 254.9665 | $0.2622 | |
| ARB | <0.01% | $1,782.35 | 0.00013905 | $0.2478 | |
| ARB | <0.01% | $0.001748 | 139.0595 | $0.2431 | |
| ARB | <0.01% | $0.145583 | 1.6659 | $0.2425 | |
| ARB | <0.01% | $0.003825 | 61.6772 | $0.2358 | |
| ARB | <0.01% | $0.173802 | 1.3169 | $0.2288 | |
| ARB | <0.01% | $0.001069 | 211.2457 | $0.2257 | |
| ARB | <0.01% | $0.000281 | 796.9408 | $0.2236 | |
| ARB | <0.01% | $0.99972 | 0.2212 | $0.2211 | |
| ARB | <0.01% | $0.001767 | 124.8952 | $0.2206 | |
| ARB | <0.01% | $0.997445 | 0.2163 | $0.2157 | |
| ARB | <0.01% | $0.000385 | 556.6661 | $0.214 | |
| ARB | <0.01% | $1,667.38 | 0.00012673 | $0.2113 | |
| ARB | <0.01% | $0.000111 | 1,891 | $0.2091 | |
| ARB | <0.01% | $0.005198 | 39.6061 | $0.2058 | |
| ARB | <0.01% | $0.00351 | 58.2027 | $0.2043 | |
| ARB | <0.01% | $0.00231 | 88.2732 | $0.2038 | |
| ARB | <0.01% | $87,995 | 0.00000216 | $0.1899 | |
| ARB | <0.01% | <$0.000001 | 19,307,147.0622 | $0.1892 | |
| ARB | <0.01% | $0.01349 | 13.7775 | $0.1858 | |
| ARB | <0.01% | $0.997101 | 0.1845 | $0.1839 | |
| ARB | <0.01% | $0.00014 | 1,295.6041 | $0.1811 | |
| ARB | <0.01% | <$0.000001 | 47,635,754.2612 | $0.181 | |
| ARB | <0.01% | $1.96 | 0.0898 | $0.176 | |
| ARB | <0.01% | $0.999516 | 0.1743 | $0.1742 | |
| ARB | <0.01% | $0.215236 | 0.8017 | $0.1725 | |
| ARB | <0.01% | $0.000275 | 617.5975 | $0.1698 | |
| ARB | <0.01% | $0.946432 | 0.1772 | $0.1677 | |
| ARB | <0.01% | $0.003425 | 48.6163 | $0.1665 | |
| ARB | <0.01% | $0.008772 | 17.0294 | $0.1493 | |
| ARB | <0.01% | $0.135393 | 1.0897 | $0.1475 | |
| ARB | <0.01% | $3,333.13 | 0.00004255 | $0.1418 | |
| ARB | <0.01% | $0.027403 | 5.0002 | $0.137 | |
| ARB | <0.01% | $2.65 | 0.0506 | $0.1341 | |
| ARB | <0.01% | $89,495 | 0.00000148 | $0.1324 | |
| ARB | <0.01% | $0.005493 | 23.5663 | $0.1294 | |
| ARB | <0.01% | $0.001064 | 121.6221 | $0.1293 | |
| ARB | <0.01% | $0.000722 | 177.8684 | $0.1283 | |
| ARB | <0.01% | $0.000238 | 535.0438 | $0.1274 | |
| ARB | <0.01% | $0.913234 | 0.1394 | $0.1273 | |
| ARB | <0.01% | $28.14 | 0.00450781 | $0.1268 | |
| ARB | <0.01% | $0.001627 | 76.7294 | $0.1248 | |
| ARB | <0.01% | $0.0001 | 1,218.3875 | $0.1221 | |
| ARB | <0.01% | $0.014061 | 7.695 | $0.1081 | |
| ARB | <0.01% | $0.000267 | 402.7561 | $0.1076 | |
| ARB | <0.01% | $0.019227 | 5.5703 | $0.1071 | |
| AVAX | 1.64% | $12.01 | 2,991.5887 | $35,928.29 | |
| AVAX | 0.39% | $0.999924 | 8,501.1338 | $8,500.49 | |
| AVAX | 0.21% | $0.998434 | 4,598.9748 | $4,591.77 | |
| AVAX | 0.15% | $89,079 | 0.0375 | $3,342.01 | |
| AVAX | 0.08% | $2,956.63 | 0.5585 | $1,651.13 | |
| AVAX | 0.05% | $2.02 | 504.15 | $1,016.69 | |
| AVAX | 0.04% | $0.033882 | 27,722.1786 | $939.28 | |
| AVAX | 0.02% | $14.99 | 32.9746 | $494.29 | |
| AVAX | 0.01% | $12.01 | 25.7875 | $309.79 | |
| AVAX | 0.01% | $0.998434 | 262.1025 | $261.69 | |
| AVAX | 0.01% | $89,163 | 0.00280259 | $249.89 | |
| AVAX | <0.01% | $0.999924 | 215.6129 | $215.6 | |
| AVAX | <0.01% | $88,922.52 | 0.00194305 | $172.78 | |
| AVAX | <0.01% | $0.001583 | 88,743.0884 | $140.46 | |
| AVAX | <0.01% | $0.00 | 117.2346 | $0.00 | |
| AVAX | <0.01% | $5,033.47 | 0.023 | $116.02 | |
| AVAX | <0.01% | $0.999543 | 114.3696 | $114.32 | |
| AVAX | <0.01% | $0.999622 | 91.6114 | $91.58 | |
| AVAX | <0.01% | $12.15 | 7.4007 | $89.91 | |
| AVAX | <0.01% | $2,954.11 | 0.0298 | $88.13 | |
| AVAX | <0.01% | $1.18 | 66.7229 | $78.89 | |
| AVAX | <0.01% | $0.056746 | 956.456 | $54.27 | |
| AVAX | <0.01% | $21.52 | 2.5 | $53.8 | |
| AVAX | <0.01% | $0.035671 | 1,361.9571 | $48.58 | |
| AVAX | <0.01% | $0.148254 | 327.149 | $48.5 | |
| AVAX | <0.01% | $0.003035 | 15,198.0393 | $46.13 | |
| AVAX | <0.01% | $5,484.93 | 0.00830481 | $45.55 | |
| AVAX | <0.01% | $7.24 | 5.8047 | $42.03 | |
| AVAX | <0.01% | $155.82 | 0.268 | $41.76 | |
| AVAX | <0.01% | $0.999801 | 29.7945 | $29.79 | |
| AVAX | <0.01% | $88,922.52 | 0.00030856 | $27.44 | |
| AVAX | <0.01% | $89,099 | 0.00027567 | $24.56 | |
| AVAX | <0.01% | $2.36 | 10.3178 | $24.35 | |
| AVAX | <0.01% | $0.000438 | 47,190.8713 | $20.66 | |
| AVAX | <0.01% | $178.27 | 0.1028 | $18.32 | |
| AVAX | <0.01% | $0.00639 | 2,509.8025 | $16.04 | |
| AVAX | <0.01% | <$0.000001 | 105,539,505.4862 | $14.83 | |
| AVAX | <0.01% | $164.15 | 0.0897 | $14.73 | |
| AVAX | <0.01% | $0.008042 | 1,243.4414 | $10 | |
| AVAX | <0.01% | $0.002449 | 1,996.2018 | $4.89 | |
| AVAX | <0.01% | $32.04 | 0.1507 | $4.83 | |
| AVAX | <0.01% | $14.92 | 0.2669 | $3.98 | |
| AVAX | <0.01% | $0.00297 | 1,337.0814 | $3.97 | |
| AVAX | <0.01% | $1.18 | 3.3344 | $3.93 | |
| AVAX | <0.01% | $2.03 | 1.9352 | $3.93 | |
| AVAX | <0.01% | $0.000245 | 15,700.7875 | $3.85 | |
| AVAX | <0.01% | $1.28 | 2.8347 | $3.63 | |
| AVAX | <0.01% | $0.001178 | 2,802.5278 | $3.3 | |
| AVAX | <0.01% | $0.99974 | 2.6952 | $2.69 | |
| AVAX | <0.01% | $0.002008 | 953.6926 | $1.92 | |
| AVAX | <0.01% | $741.73 | 0.00250606 | $1.86 | |
| AVAX | <0.01% | $0.177276 | 10.1184 | $1.79 | |
| AVAX | <0.01% | $0.998428 | 1.7329 | $1.73 | |
| AVAX | <0.01% | $0.992421 | 1.5967 | $1.58 | |
| AVAX | <0.01% | $13.09 | 0.1177 | $1.54 | |
| AVAX | <0.01% | $0.007264 | 199.44 | $1.45 | |
| AVAX | <0.01% | $0.998394 | 1.2366 | $1.23 | |
| AVAX | <0.01% | $0.007994 | 136.8375 | $1.09 | |
| AVAX | <0.01% | $0.000323 | 3,340.9286 | $1.08 | |
| AVAX | <0.01% | $0.000358 | 2,590.8887 | $0.9273 | |
| AVAX | <0.01% | $0.069194 | 12.535 | $0.8673 | |
| AVAX | <0.01% | $0.060674 | 13.597 | $0.8249 | |
| AVAX | <0.01% | $0.999801 | 0.7743 | $0.7741 | |
| AVAX | <0.01% | $4.84 | 0.1587 | $0.7679 | |
| AVAX | <0.01% | $0.002772 | 258.9839 | $0.7178 | |
| AVAX | <0.01% | $0.01641 | 39.8762 | $0.6543 | |
| AVAX | <0.01% | $0.299715 | 2.1367 | $0.6404 | |
| AVAX | <0.01% | $0.020464 | 28.2842 | $0.5787 | |
| AVAX | <0.01% | $0.008016 | 68.3092 | $0.5475 | |
| AVAX | <0.01% | $0.000737 | 718.6428 | $0.5294 | |
| AVAX | <0.01% | $0.463307 | 1.0618 | $0.4919 | |
| AVAX | <0.01% | $0.331573 | 1.4601 | $0.4841 | |
| AVAX | <0.01% | $0.009434 | 50.7365 | $0.4786 | |
| AVAX | <0.01% | $0.000044 | 10,711.0776 | $0.4734 | |
| AVAX | <0.01% | $0.017916 | 25.7397 | $0.4611 | |
| AVAX | <0.01% | $0.057289 | 6.3903 | $0.366 | |
| AVAX | <0.01% | $0.207461 | 1.6832 | $0.3492 | |
| AVAX | <0.01% | $0.019343 | 15.6985 | $0.3036 | |
| AVAX | <0.01% | $0.000127 | 2,351.5181 | $0.2997 | |
| AVAX | <0.01% | $0.181624 | 1.5404 | $0.2797 | |
| AVAX | <0.01% | $0.053146 | 4.7607 | $0.253 | |
| AVAX | <0.01% | $0.039974 | 6.0137 | $0.2403 | |
| AVAX | <0.01% | $0.000645 | 330.1655 | $0.213 | |
| AVAX | <0.01% | $0.001761 | 76.692 | $0.135 | |
| AVAX | <0.01% | $0.021801 | 6.0139 | $0.1311 | |
| AVAX | <0.01% | $0.010065 | 12.9843 | $0.1306 | |
| AVAX | <0.01% | $0.016106 | 7.5454 | $0.1215 | |
| AVAX | <0.01% | $0.00777 | 14.8587 | $0.1154 | |
| MOVR | <0.01% | $2,954.03 | 0.0103 | $30.29 | |
| MOVR | <0.01% | $0.999636 | 16.5643 | $16.56 | |
| MOVR | <0.01% | $2.27 | 2.276 | $5.16 | |
| MOVR | <0.01% | $0.992457 | 0.4212 | $0.418 | |
| MOVR | <0.01% | $0.999374 | 0.2301 | $0.2299 | |
| MOVR | <0.01% | $0.998474 | 0.2205 | $0.2201 | |
| MOVR | <0.01% | $0.99723 | 0.1544 | $0.1539 | |
| MOVR | <0.01% | $0.999821 | 0.1063 | $0.1062 | |
| GLMR | <0.01% | $88,986 | 0.00022352 | $19.89 | |
| GLMR | <0.01% | $0.021464 | 458.6669 | $9.84 | |
| GLMR | <0.01% | $1.9 | 4.3944 | $8.37 | |
| GLMR | <0.01% | $2,956.63 | 0.00192927 | $5.7 | |
| GLMR | <0.01% | $0.999924 | 2.4728 | $2.47 | |
| GLMR | <0.01% | $0.999924 | 1.3228 | $1.32 | |
| GLMR | <0.01% | <$0.000001 | 102,844,577.3471 | $0.9153 | |
| GLMR | <0.01% | $0.997642 | 0.4554 | $0.4543 | |
| GLMR | <0.01% | $0.999605 | 0.4409 | $0.4407 | |
| GLMR | <0.01% | $0.998338 | 0.4251 | $0.4244 | |
| GLMR | <0.01% | $0.999924 | 0.3439 | $0.3438 | |
| GLMR | <0.01% | $0.999924 | 0.2097 | $0.2097 | |
| GLMR | <0.01% | $0.021391 | 9.7214 | $0.2079 | |
| GLMR | <0.01% | $88,986 | 0.00000123 | $0.1094 | |
| GLMR | <0.01% | $2,956.63 | 0.0000368 | $0.1087 | |
| BASE | <0.01% | <$0.000001 | 295,774,647 | $3.82 | |
| BASE | <0.01% | $0.000753 | 3,000 | $2.26 | |
| BASE | <0.01% | $0.001811 | 100 | $0.1811 | |
| SONIC | <0.01% | $0.200172 | 30.2584 | $6.06 | |
| CELO | <0.01% | $0.999701 | 5.3355 | $5.33 | |
| CELO | <0.01% | $0.115443 | 0.3252 | $0.037544 |
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.