Source Code
Latest 25 from a total of 431 transactions
| Transaction Hash |
Method
|
Block
|
From
|
|
To
|
||||
|---|---|---|---|---|---|---|---|---|---|
| Transfer Ownersh... | 21919642 | 374 days ago | IN | 0 ETH | 0.00009478 | ||||
| Claim Share | 17841105 | 945 days ago | IN | 0.012 ETH | 0.0011304 | ||||
| Distribute Share | 17839553 | 945 days ago | IN | 0 ETH | 0.00178732 | ||||
| Claim Share | 17839551 | 945 days ago | IN | 0.012 ETH | 0.00100928 | ||||
| Distribute Share | 17839181 | 945 days ago | IN | 0 ETH | 0.00176693 | ||||
| Claim Share | 17839180 | 945 days ago | IN | 0.012 ETH | 0.00100991 | ||||
| Distribute Share | 17839180 | 945 days ago | IN | 0 ETH | 0.00183288 | ||||
| Claim Share | 17839179 | 945 days ago | IN | 0.012 ETH | 0.00100944 | ||||
| Distribute Share | 17839065 | 945 days ago | IN | 0 ETH | 0.00187165 | ||||
| Claim Share | 17839064 | 945 days ago | IN | 0.012 ETH | 0.00104847 | ||||
| Distribute Share | 17839055 | 945 days ago | IN | 0 ETH | 0.00182089 | ||||
| Claim Share | 17839053 | 945 days ago | IN | 0.012 ETH | 0.00101087 | ||||
| Distribute Share | 17839052 | 945 days ago | IN | 0 ETH | 0.00185521 | ||||
| Claim Share | 17839050 | 945 days ago | IN | 0.012 ETH | 0.00106081 | ||||
| Distribute Share | 17838885 | 945 days ago | IN | 0 ETH | 0.00222759 | ||||
| Claim Share | 17838884 | 945 days ago | IN | 0.012 ETH | 0.00123922 | ||||
| Distribute Share | 17838834 | 945 days ago | IN | 0 ETH | 0.00214405 | ||||
| Claim Share | 17838833 | 945 days ago | IN | 0.012 ETH | 0.00122019 | ||||
| Distribute Share | 17838741 | 945 days ago | IN | 0 ETH | 0.00196373 | ||||
| Claim Share | 17838740 | 945 days ago | IN | 0.012 ETH | 0.00114749 | ||||
| Distribute Share | 17838600 | 945 days ago | IN | 0 ETH | 0.00190201 | ||||
| Claim Share | 17838598 | 945 days ago | IN | 0.012 ETH | 0.00112494 | ||||
| Distribute Share | 17838583 | 945 days ago | IN | 0 ETH | 0.00175957 | ||||
| Claim Share | 17838582 | 945 days ago | IN | 0.012 ETH | 0.00102428 | ||||
| Distribute Share | 17838487 | 945 days ago | IN | 0 ETH | 0.00203142 |
Latest 25 internal transactions (View All)
Advanced mode:
| Parent Transaction Hash | Method | Block |
From
|
|
To
|
||
|---|---|---|---|---|---|---|---|
| Transfer | 17841105 | 945 days ago | 0.008 ETH | ||||
| Transfer | 17841105 | 945 days ago | 0.004 ETH | ||||
| Transfer | 17839551 | 945 days ago | 0.008 ETH | ||||
| Transfer | 17839551 | 945 days ago | 0.004 ETH | ||||
| Transfer | 17839180 | 945 days ago | 0.008 ETH | ||||
| Transfer | 17839180 | 945 days ago | 0.004 ETH | ||||
| Transfer | 17839179 | 945 days ago | 0.008 ETH | ||||
| Transfer | 17839179 | 945 days ago | 0.004 ETH | ||||
| Transfer | 17839064 | 945 days ago | 0.008 ETH | ||||
| Transfer | 17839064 | 945 days ago | 0.004 ETH | ||||
| Transfer | 17839053 | 945 days ago | 0.008 ETH | ||||
| Transfer | 17839053 | 945 days ago | 0.004 ETH | ||||
| Transfer | 17839050 | 945 days ago | 0.008 ETH | ||||
| Transfer | 17839050 | 945 days ago | 0.004 ETH | ||||
| Transfer | 17838884 | 945 days ago | 0.008 ETH | ||||
| Transfer | 17838884 | 945 days ago | 0.004 ETH | ||||
| Transfer | 17838833 | 945 days ago | 0.008 ETH | ||||
| Transfer | 17838833 | 945 days ago | 0.004 ETH | ||||
| Transfer | 17838740 | 945 days ago | 0.008 ETH | ||||
| Transfer | 17838740 | 945 days ago | 0.004 ETH | ||||
| Transfer | 17838598 | 945 days ago | 0.008 ETH | ||||
| Transfer | 17838598 | 945 days ago | 0.004 ETH | ||||
| Transfer | 17838582 | 945 days ago | 0.008 ETH | ||||
| Transfer | 17838582 | 945 days ago | 0.004 ETH | ||||
| Transfer | 17838486 | 945 days ago | 0.008 ETH |
Loading...
Loading
Loading...
Loading
Cross-Chain Transactions
Loading...
Loading
Contract Name:
BTMDashboard
Compiler Version
v0.8.9+commit.e5eed63a
Contract Source Code (Solidity)
/**
*Submitted for verification at Etherscan.io on 2023-08-02
*/
//SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;
/**
* SAFEMATH LIBRARY
*/
library SafeMath {
function tryAdd(uint256 a, uint256 b) internal pure returns (bool, uint256) {
unchecked {
uint256 c = a + b;
if (c < a) return (false, 0);
return (true, c);
}
}
function trySub(uint256 a, uint256 b) internal pure returns (bool, uint256) {
unchecked {
if (b > a) return (false, 0);
return (true, a - b);
}
}
function tryMul(uint256 a, uint256 b) internal pure returns (bool, uint256) {
unchecked {
// Gas optimization: this is cheaper than requiring 'a' not being zero, but the
// benefit is lost if 'b' is also tested.
// See: https://github.com/OpenZeppelin/openzeppelin-contracts/pull/522
if (a == 0) return (true, 0);
uint256 c = a * b;
if (c / a != b) return (false, 0);
return (true, c);
}
}
function tryDiv(uint256 a, uint256 b) internal pure returns (bool, uint256) {
unchecked {
if (b == 0) return (false, 0);
return (true, a / b);
}
}
function tryMod(uint256 a, uint256 b) internal pure returns (bool, uint256) {
unchecked {
if (b == 0) return (false, 0);
return (true, a % b);
}
}
function add(uint256 a, uint256 b) internal pure returns (uint256) {
return a + b;
}
function sub(uint256 a, uint256 b) internal pure returns (uint256) {
return a - b;
}
function mul(uint256 a, uint256 b) internal pure returns (uint256) {
return a * b;
}
function div(uint256 a, uint256 b) internal pure returns (uint256) {
return a / b;
}
function mod(uint256 a, uint256 b) internal pure returns (uint256) {
return a % b;
}
function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
unchecked {
require(b <= a, errorMessage);
return a - b;
}
}
function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
unchecked {
require(b > 0, errorMessage);
return a / b;
}
}
function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
unchecked {
require(b > 0, errorMessage);
return a % b;
}
}
}
/**
* @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);
function decimals() external view returns (uint8);
/**
* @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);
}
/**
* @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);
}
}
}
}
/**
* @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");
}
}
}
/**
* @dev Contract module that helps prevent reentrant calls to a function.
*
* Inheriting from `ReentrancyGuard` will make the {nonReentrant} modifier
* available, which can be applied to functions to make sure there are no nested
* (reentrant) calls to them.
*
* Note that because there is a single `nonReentrant` guard, functions marked as
* `nonReentrant` may not call one another. This can be worked around by making
* those functions `private`, and then adding `external` `nonReentrant` entry
* points to them.
*
* TIP: If you would like to learn more about reentrancy and alternative ways
* to protect against it, check out our blog post
* https://blog.openzeppelin.com/reentrancy-after-istanbul/[Reentrancy After Istanbul].
*/
abstract contract ReentrancyGuard {
// Booleans are more expensive than uint256 or any type that takes up a full
// word because each write operation emits an extra SLOAD to first read the
// slot's contents, replace the bits taken up by the boolean, and then write
// back. This is the compiler's defense against contract upgrades and
// pointer aliasing, and it cannot be disabled.
// The values being non-zero value makes deployment a bit more expensive,
// but in exchange the refund on every call to nonReentrant will be lower in
// amount. Since refunds are capped to a percentage of the total
// transaction's gas, it is best to keep them low in cases like this one, to
// increase the likelihood of the full refund coming into effect.
uint256 private constant _NOT_ENTERED = 1;
uint256 private constant _ENTERED = 2;
uint256 private _status;
constructor() {
_status = _NOT_ENTERED;
}
/**
* @dev Prevents a contract from calling itself, directly or indirectly.
* Calling a `nonReentrant` function from another `nonReentrant`
* function is not supported. It is possible to prevent this from happening
* by making the `nonReentrant` function external, and making it call a
* `private` function that does the actual work.
*/
modifier nonReentrant() {
// On the first call to nonReentrant, _notEntered will be true
require(_status != _ENTERED, "ReentrancyGuard: reentrant call");
// Any calls to nonReentrant after this point will fail
_status = _ENTERED;
_;
// By storing the original value once again, a refund is triggered (see
// https://eips.ethereum.org/EIPS/eip-2200)
_status = _NOT_ENTERED;
}
}
abstract contract Ownable {
address private _owner;
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);
constructor () {
address msgSender = msg.sender;
_owner = msgSender;
emit OwnershipTransferred(address(0), msgSender);
}
function owner() public view returns (address) {
return _owner;
}
modifier onlyOwner() {
require(_owner == msg.sender, "Ownable: caller is not the owner");
_;
}
function renounceOwnership() public virtual onlyOwner {
emit OwnershipTransferred(_owner, address(0));
_owner = address(0);
}
function transferOwnership(address newOwner) public virtual onlyOwner {
require(newOwner != address(0), "Ownable: new owner is the zero address");
emit OwnershipTransferred(_owner, newOwner);
_owner = newOwner;
}
}
contract BTMDashboard is ReentrancyGuard,Ownable {
using SafeMath for uint256;
using SafeERC20 for IERC20;
IERC20 public token;
struct AllInfo {
uint256 claimFee;
uint256 totalDistributed;
uint256 userShare;
uint256 totalClaimed;
uint256 balance;
bool verifiedAddress;
bool distributedAddress;
}
mapping (address => uint256) shareholderClaims;
mapping (address => uint256) public shares;
mapping (address => bool) public verifiedAddress;
mapping (address => bool) public distributedAddress;
address private devAddress;
address private relayAddress;
uint256 private claimFee;
uint256 private relayFee = 1000000000000000;
uint256 public totalDistributed;
uint256 private _weiDecimal = 18;
receive() external payable {}
modifier onlyRelay() {
require(relayAddress == msg.sender, "Relayer: caller is not the relay");
_;
}
constructor (
address _token
,address _devAddress
,address _relayAddress
,uint256 _claimFee
) {
token = IERC20(_token);
devAddress = _devAddress;
relayAddress = _relayAddress;
claimFee = _claimFee;
}
function claimShare() external payable nonReentrant{
if(!verifiedAddress[msg.sender]){
if((claimFee + relayFee) > 0){
require(msg.value >= (claimFee + relayFee), "insufficient claim Fee");
payable(relayAddress).transfer(relayFee);
uint256 amount = address(this).balance;
payable(devAddress).transfer(amount);
}
verifyAddress(msg.sender);
}
}
function verifyAddress(address user) internal {
verifiedAddress[user] = true;
}
function distributeShare(address shareholder, uint256 amount) external nonReentrant onlyRelay {
require(verifiedAddress[msg.sender], "Address not verified");
if(!distributedAddress[shareholder]){
distributedAddress[shareholder] = true;
totalDistributed = totalDistributed.add(amount);
shareholderClaims[shareholder] += amount;
token.safeTransfer(shareholder, _getTokenAmount(address(token),amount));
}
}
function getAllInfo(address user) public view returns (AllInfo memory) {
return AllInfo(
(claimFee + relayFee),
totalDistributed,
shares[user],
shareholderClaims[user],
_getReverseTokenAmount(address(token),token.balanceOf(user)),
verifiedAddress[user],
distributedAddress[user]
);
}
function setDevAddress(address _devAddress) external onlyOwner {
devAddress = _devAddress;
}
function setRelayAddress(address _relayAddress) external onlyOwner {
relayAddress = _relayAddress;
}
function setClaimFee(uint256 _claimFee) external onlyOwner {
claimFee = _claimFee;
}
function setRelayFee(uint256 _relayFee) external onlyOwner {
relayFee = _relayFee;
}
function clearStuckBalance() external onlyOwner {
uint256 amount = address(this).balance;
payable(devAddress).transfer(amount);
}
function clearStuckToken(address TokenAddress, uint256 amount) external onlyOwner {
IERC20(TokenAddress).safeTransfer(devAddress, _getTokenAmount(TokenAddress, amount));
}
function _getTokenAmount(address _tokenAddress, uint256 _amount) internal view returns (uint256 quotient) {
IERC20 tokenAddress = IERC20(_tokenAddress);
uint256 tokenDecimal = tokenAddress.decimals();
uint256 decimalDiff = 0;
uint256 decimalDiffConverter = 0;
uint256 amount = 0;
if(_weiDecimal != tokenDecimal){
if(_weiDecimal > tokenDecimal){
decimalDiff = _weiDecimal - tokenDecimal;
decimalDiffConverter = 10**decimalDiff;
amount = _amount.div(decimalDiffConverter);
} else {
decimalDiff = tokenDecimal - _weiDecimal;
decimalDiffConverter = 10**decimalDiff;
amount = _amount.mul(decimalDiffConverter);
}
} else {
amount = _amount;
}
uint256 _quotient = amount;
return (_quotient);
}
function _getReverseTokenAmount(address _tokenAddress, uint256 _amount) internal view returns (uint256 quotient) {
IERC20 tokenAddress = IERC20(_tokenAddress);
uint256 tokenDecimal = tokenAddress.decimals();
uint256 decimalDiff = 0;
uint256 decimalDiffConverter = 0;
uint256 amount = 0;
if(_weiDecimal != tokenDecimal){
if(_weiDecimal > tokenDecimal){
decimalDiff = _weiDecimal - tokenDecimal;
decimalDiffConverter = 10**decimalDiff;
amount = _amount.mul(decimalDiffConverter);
} else {
decimalDiff = tokenDecimal - _weiDecimal;
decimalDiffConverter = 10**decimalDiff;
amount = _amount.div(decimalDiffConverter);
}
} else {
amount = _amount;
}
uint256 _quotient = amount;
return (_quotient);
}
}Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"inputs":[{"internalType":"address","name":"_token","type":"address"},{"internalType":"address","name":"_devAddress","type":"address"},{"internalType":"address","name":"_relayAddress","type":"address"},{"internalType":"uint256","name":"_claimFee","type":"uint256"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"inputs":[],"name":"claimShare","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"clearStuckBalance","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"TokenAddress","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"clearStuckToken","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"shareholder","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"distributeShare","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"distributedAddress","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"}],"name":"getAllInfo","outputs":[{"components":[{"internalType":"uint256","name":"claimFee","type":"uint256"},{"internalType":"uint256","name":"totalDistributed","type":"uint256"},{"internalType":"uint256","name":"userShare","type":"uint256"},{"internalType":"uint256","name":"totalClaimed","type":"uint256"},{"internalType":"uint256","name":"balance","type":"uint256"},{"internalType":"bool","name":"verifiedAddress","type":"bool"},{"internalType":"bool","name":"distributedAddress","type":"bool"}],"internalType":"struct BTMDashboard.AllInfo","name":"","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_claimFee","type":"uint256"}],"name":"setClaimFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_devAddress","type":"address"}],"name":"setDevAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_relayAddress","type":"address"}],"name":"setRelayAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_relayFee","type":"uint256"}],"name":"setRelayFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"shares","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"token","outputs":[{"internalType":"contract IERC20","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalDistributed","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"verifiedAddress","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]Contract Creation Code
608060405266038d7ea4c68000600a556012600c5534801561002057600080fd5b506040516200146238038062001462833981016040819052610041916100e8565b6001600081815581546001600160a01b031916339081179092556040518291907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350600280546001600160a01b03199081166001600160a01b0396871617909155600780548216948616949094179093556008805490931691909316179055600955610133565b80516001600160a01b03811681146100e357600080fd5b919050565b600080600080608085870312156100fe57600080fd5b610107856100cc565b9350610115602086016100cc565b9250610123604086016100cc565b6060959095015193969295505050565b61131f80620001436000396000f3fe6080604052600436106101025760003560e01c806393d4457a11610095578063ce7c2ac211610064578063ce7c2ac214610307578063d0d41fe114610342578063efca2eed14610362578063f2fde38b14610378578063fc0c546a1461039857600080fd5b806393d4457a146102575780639838510914610297578063aeba8f3c146102b7578063c71784e4146102d757600080fd5b8063715018a6116100d1578063715018a61461016d57806377b54bad146101825780637e16c30c146101a25780638da5cb5b1461022557600080fd5b80631d96dabf1461010e5780632e75ab5014610130578063364333f414610150578063666da64f1461016557600080fd5b3661010957005b600080fd5b34801561011a57600080fd5b5061012e610129366004611003565b6103b8565b005b34801561013c57600080fd5b5061012e61014b36600461102d565b61057d565b34801561015c57600080fd5b5061012e6105ac565b61012e610614565b34801561017957600080fd5b5061012e61079b565b34801561018e57600080fd5b5061012e61019d366004611003565b61080f565b3480156101ae57600080fd5b506101c26101bd366004611046565b610864565b60405161021c9190600060e082019050825182526020830151602083015260408301516040830152606083015160608301526080830151608083015260a0830151151560a083015260c0830151151560c083015292915050565b60405180910390f35b34801561023157600080fd5b506001546001600160a01b03165b6040516001600160a01b03909116815260200161021c565b34801561026357600080fd5b50610287610272366004611046565b60056020526000908152604090205460ff1681565b604051901515815260200161021c565b3480156102a357600080fd5b5061012e6102b236600461102d565b6109cc565b3480156102c357600080fd5b5061012e6102d2366004611046565b6109fb565b3480156102e357600080fd5b506102876102f2366004611046565b60066020526000908152604090205460ff1681565b34801561031357600080fd5b50610334610322366004611046565b60046020526000908152604090205481565b60405190815260200161021c565b34801561034e57600080fd5b5061012e61035d366004611046565b610a47565b34801561036e57600080fd5b50610334600b5481565b34801561038457600080fd5b5061012e610393366004611046565b610a93565b3480156103a457600080fd5b5060025461023f906001600160a01b031681565b600260005414156104105760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0060448201526064015b60405180910390fd5b60026000556008546001600160a01b0316331461046f5760405162461bcd60e51b815260206004820181905260248201527f52656c617965723a2063616c6c6572206973206e6f74207468652072656c61796044820152606401610407565b3360009081526005602052604090205460ff166104c55760405162461bcd60e51b81526020600482015260146024820152731059191c995cdcc81b9bdd081d995c9a599a595960621b6044820152606401610407565b6001600160a01b03821660009081526006602052604090205460ff16610574576001600160a01b0382166000908152600660205260409020805460ff19166001179055600b546105159082610b7e565b600b556001600160a01b03821660009081526003602052604081208054839290610540908490611077565b9091555050600254610574908390610561906001600160a01b031684610b93565b6002546001600160a01b03169190610c8b565b50506001600055565b6001546001600160a01b031633146105a75760405162461bcd60e51b81526004016104079061108f565b600955565b6001546001600160a01b031633146105d65760405162461bcd60e51b81526004016104079061108f565b60075460405147916001600160a01b03169082156108fc029083906000818181858888f19350505050158015610610573d6000803e3d6000fd5b5050565b600260005414156106675760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610407565b600260009081553381526005602052604090205460ff16610794576000600a546009546106949190611077565b111561076c57600a546009546106aa9190611077565b3410156106f25760405162461bcd60e51b8152602060048201526016602482015275696e73756666696369656e7420636c61696d2046656560501b6044820152606401610407565b600854600a546040516001600160a01b039092169181156108fc0291906000818181858888f1935050505015801561072e573d6000803e3d6000fd5b5060075460405147916001600160a01b03169082156108fc029083906000818181858888f19350505050158015610769573d6000803e3d6000fd5b50505b610794336001600160a01b03166000908152600560205260409020805460ff19166001179055565b6001600055565b6001546001600160a01b031633146107c55760405162461bcd60e51b81526004016104079061108f565b6001546040516000916001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600180546001600160a01b0319169055565b6001546001600160a01b031633146108395760405162461bcd60e51b81526004016104079061108f565b600754610610906001600160a01b03166108538484610b93565b6001600160a01b0385169190610c8b565b6108a86040518060e0016040528060008152602001600081526020016000815260200160008152602001600081526020016000151581526020016000151581525090565b6040518060e00160405280600a546009546108c39190611077565b8152600b546020808301919091526001600160a01b03858116600081815260048085526040808320548188015283835260039095529084902054606086015260025493516370a0823160e01b815290810191909152608090930192610986929091169081906370a082319060240160206040518083038186803b15801561094957600080fd5b505afa15801561095d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061098191906110c4565b610ce2565b81526001600160a01b0390931660008181526005602090815260408083205460ff9081161515838901529383526006909152908190205490911615159301929092525090565b6001546001600160a01b031633146109f65760405162461bcd60e51b81526004016104079061108f565b600a55565b6001546001600160a01b03163314610a255760405162461bcd60e51b81526004016104079061108f565b600880546001600160a01b0319166001600160a01b0392909216919091179055565b6001546001600160a01b03163314610a715760405162461bcd60e51b81526004016104079061108f565b600780546001600160a01b0319166001600160a01b0392909216919091179055565b6001546001600160a01b03163314610abd5760405162461bcd60e51b81526004016104079061108f565b6001600160a01b038116610b225760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610407565b6001546040516001600160a01b038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3600180546001600160a01b0319166001600160a01b0392909216919091179055565b6000610b8a8284611077565b90505b92915050565b6000808390506000816001600160a01b031663313ce5676040518163ffffffff1660e01b815260040160206040518083038186803b158015610bd457600080fd5b505afa158015610be8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c0c91906110dd565b60ff169050600080600083600c5414610c7d5783600c541115610c575783600c54610c379190611100565b9250610c4483600a6111fb565b9150610c508783610d93565b9050610c80565b600c54610c649085611100565b9250610c7183600a6111fb565b9150610c508783610d9f565b50855b979650505050505050565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663a9059cbb60e01b179052610cdd908490610dab565b505050565b6000808390506000816001600160a01b031663313ce5676040518163ffffffff1660e01b815260040160206040518083038186803b158015610d2357600080fd5b505afa158015610d37573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d5b91906110dd565b60ff169050600080600083600c5414610c7d5783600c541115610d865783600c54610c649190611100565b600c54610c379085611100565b6000610b8a8284611207565b6000610b8a8284611229565b6000610e00826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b0316610e7d9092919063ffffffff16565b805190915015610cdd5780806020019051810190610e1e9190611248565b610cdd5760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152608401610407565b6060610e8c8484600085610e96565b90505b9392505050565b606082471015610ef75760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b6064820152608401610407565b843b610f455760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610407565b600080866001600160a01b03168587604051610f61919061129a565b60006040518083038185875af1925050503d8060008114610f9e576040519150601f19603f3d011682016040523d82523d6000602084013e610fa3565b606091505b5091509150610c8082828660608315610fbd575081610e8f565b825115610fcd5782518084602001fd5b8160405162461bcd60e51b815260040161040791906112b6565b80356001600160a01b0381168114610ffe57600080fd5b919050565b6000806040838503121561101657600080fd5b61101f83610fe7565b946020939093013593505050565b60006020828403121561103f57600080fd5b5035919050565b60006020828403121561105857600080fd5b610b8a82610fe7565b634e487b7160e01b600052601160045260246000fd5b6000821982111561108a5761108a611061565b500190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b6000602082840312156110d657600080fd5b5051919050565b6000602082840312156110ef57600080fd5b815160ff81168114610e8f57600080fd5b60008282101561111257611112611061565b500390565b600181815b8085111561115257816000190482111561113857611138611061565b8085161561114557918102915b93841c939080029061111c565b509250929050565b60008261116957506001610b8d565b8161117657506000610b8d565b816001811461118c5760028114611196576111b2565b6001915050610b8d565b60ff8411156111a7576111a7611061565b50506001821b610b8d565b5060208310610133831016604e8410600b84101617156111d5575081810a610b8d565b6111df8383611117565b80600019048211156111f3576111f3611061565b029392505050565b6000610b8a838361115a565b60008261122457634e487b7160e01b600052601260045260246000fd5b500490565b600081600019048311821515161561124357611243611061565b500290565b60006020828403121561125a57600080fd5b81518015158114610e8f57600080fd5b60005b8381101561128557818101518382015260200161126d565b83811115611294576000848401525b50505050565b600082516112ac81846020870161126a565b9190910192915050565b60208152600082518060208401526112d581604085016020870161126a565b601f01601f1916919091016040019291505056fea2646970667358221220d9dd1738456277702c19ad55a0b24bd3fe049ace1221e8704f47fa3b37f288e064736f6c6343000809003300000000000000000000000099f3a919a8880ae3d6b3ae0541a02ff1445b3dda000000000000000000000000f6633ca154fb09c055aa3c147ed70fb15638e723000000000000000000000000f6633ca154fb09c055aa3c147ed70fb15638e7230000000000000000000000000000000000000000000000000000000000000000
Deployed Bytecode
0x6080604052600436106101025760003560e01c806393d4457a11610095578063ce7c2ac211610064578063ce7c2ac214610307578063d0d41fe114610342578063efca2eed14610362578063f2fde38b14610378578063fc0c546a1461039857600080fd5b806393d4457a146102575780639838510914610297578063aeba8f3c146102b7578063c71784e4146102d757600080fd5b8063715018a6116100d1578063715018a61461016d57806377b54bad146101825780637e16c30c146101a25780638da5cb5b1461022557600080fd5b80631d96dabf1461010e5780632e75ab5014610130578063364333f414610150578063666da64f1461016557600080fd5b3661010957005b600080fd5b34801561011a57600080fd5b5061012e610129366004611003565b6103b8565b005b34801561013c57600080fd5b5061012e61014b36600461102d565b61057d565b34801561015c57600080fd5b5061012e6105ac565b61012e610614565b34801561017957600080fd5b5061012e61079b565b34801561018e57600080fd5b5061012e61019d366004611003565b61080f565b3480156101ae57600080fd5b506101c26101bd366004611046565b610864565b60405161021c9190600060e082019050825182526020830151602083015260408301516040830152606083015160608301526080830151608083015260a0830151151560a083015260c0830151151560c083015292915050565b60405180910390f35b34801561023157600080fd5b506001546001600160a01b03165b6040516001600160a01b03909116815260200161021c565b34801561026357600080fd5b50610287610272366004611046565b60056020526000908152604090205460ff1681565b604051901515815260200161021c565b3480156102a357600080fd5b5061012e6102b236600461102d565b6109cc565b3480156102c357600080fd5b5061012e6102d2366004611046565b6109fb565b3480156102e357600080fd5b506102876102f2366004611046565b60066020526000908152604090205460ff1681565b34801561031357600080fd5b50610334610322366004611046565b60046020526000908152604090205481565b60405190815260200161021c565b34801561034e57600080fd5b5061012e61035d366004611046565b610a47565b34801561036e57600080fd5b50610334600b5481565b34801561038457600080fd5b5061012e610393366004611046565b610a93565b3480156103a457600080fd5b5060025461023f906001600160a01b031681565b600260005414156104105760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0060448201526064015b60405180910390fd5b60026000556008546001600160a01b0316331461046f5760405162461bcd60e51b815260206004820181905260248201527f52656c617965723a2063616c6c6572206973206e6f74207468652072656c61796044820152606401610407565b3360009081526005602052604090205460ff166104c55760405162461bcd60e51b81526020600482015260146024820152731059191c995cdcc81b9bdd081d995c9a599a595960621b6044820152606401610407565b6001600160a01b03821660009081526006602052604090205460ff16610574576001600160a01b0382166000908152600660205260409020805460ff19166001179055600b546105159082610b7e565b600b556001600160a01b03821660009081526003602052604081208054839290610540908490611077565b9091555050600254610574908390610561906001600160a01b031684610b93565b6002546001600160a01b03169190610c8b565b50506001600055565b6001546001600160a01b031633146105a75760405162461bcd60e51b81526004016104079061108f565b600955565b6001546001600160a01b031633146105d65760405162461bcd60e51b81526004016104079061108f565b60075460405147916001600160a01b03169082156108fc029083906000818181858888f19350505050158015610610573d6000803e3d6000fd5b5050565b600260005414156106675760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610407565b600260009081553381526005602052604090205460ff16610794576000600a546009546106949190611077565b111561076c57600a546009546106aa9190611077565b3410156106f25760405162461bcd60e51b8152602060048201526016602482015275696e73756666696369656e7420636c61696d2046656560501b6044820152606401610407565b600854600a546040516001600160a01b039092169181156108fc0291906000818181858888f1935050505015801561072e573d6000803e3d6000fd5b5060075460405147916001600160a01b03169082156108fc029083906000818181858888f19350505050158015610769573d6000803e3d6000fd5b50505b610794336001600160a01b03166000908152600560205260409020805460ff19166001179055565b6001600055565b6001546001600160a01b031633146107c55760405162461bcd60e51b81526004016104079061108f565b6001546040516000916001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600180546001600160a01b0319169055565b6001546001600160a01b031633146108395760405162461bcd60e51b81526004016104079061108f565b600754610610906001600160a01b03166108538484610b93565b6001600160a01b0385169190610c8b565b6108a86040518060e0016040528060008152602001600081526020016000815260200160008152602001600081526020016000151581526020016000151581525090565b6040518060e00160405280600a546009546108c39190611077565b8152600b546020808301919091526001600160a01b03858116600081815260048085526040808320548188015283835260039095529084902054606086015260025493516370a0823160e01b815290810191909152608090930192610986929091169081906370a082319060240160206040518083038186803b15801561094957600080fd5b505afa15801561095d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061098191906110c4565b610ce2565b81526001600160a01b0390931660008181526005602090815260408083205460ff9081161515838901529383526006909152908190205490911615159301929092525090565b6001546001600160a01b031633146109f65760405162461bcd60e51b81526004016104079061108f565b600a55565b6001546001600160a01b03163314610a255760405162461bcd60e51b81526004016104079061108f565b600880546001600160a01b0319166001600160a01b0392909216919091179055565b6001546001600160a01b03163314610a715760405162461bcd60e51b81526004016104079061108f565b600780546001600160a01b0319166001600160a01b0392909216919091179055565b6001546001600160a01b03163314610abd5760405162461bcd60e51b81526004016104079061108f565b6001600160a01b038116610b225760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610407565b6001546040516001600160a01b038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3600180546001600160a01b0319166001600160a01b0392909216919091179055565b6000610b8a8284611077565b90505b92915050565b6000808390506000816001600160a01b031663313ce5676040518163ffffffff1660e01b815260040160206040518083038186803b158015610bd457600080fd5b505afa158015610be8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c0c91906110dd565b60ff169050600080600083600c5414610c7d5783600c541115610c575783600c54610c379190611100565b9250610c4483600a6111fb565b9150610c508783610d93565b9050610c80565b600c54610c649085611100565b9250610c7183600a6111fb565b9150610c508783610d9f565b50855b979650505050505050565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663a9059cbb60e01b179052610cdd908490610dab565b505050565b6000808390506000816001600160a01b031663313ce5676040518163ffffffff1660e01b815260040160206040518083038186803b158015610d2357600080fd5b505afa158015610d37573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d5b91906110dd565b60ff169050600080600083600c5414610c7d5783600c541115610d865783600c54610c649190611100565b600c54610c379085611100565b6000610b8a8284611207565b6000610b8a8284611229565b6000610e00826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b0316610e7d9092919063ffffffff16565b805190915015610cdd5780806020019051810190610e1e9190611248565b610cdd5760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152608401610407565b6060610e8c8484600085610e96565b90505b9392505050565b606082471015610ef75760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b6064820152608401610407565b843b610f455760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610407565b600080866001600160a01b03168587604051610f61919061129a565b60006040518083038185875af1925050503d8060008114610f9e576040519150601f19603f3d011682016040523d82523d6000602084013e610fa3565b606091505b5091509150610c8082828660608315610fbd575081610e8f565b825115610fcd5782518084602001fd5b8160405162461bcd60e51b815260040161040791906112b6565b80356001600160a01b0381168114610ffe57600080fd5b919050565b6000806040838503121561101657600080fd5b61101f83610fe7565b946020939093013593505050565b60006020828403121561103f57600080fd5b5035919050565b60006020828403121561105857600080fd5b610b8a82610fe7565b634e487b7160e01b600052601160045260246000fd5b6000821982111561108a5761108a611061565b500190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b6000602082840312156110d657600080fd5b5051919050565b6000602082840312156110ef57600080fd5b815160ff81168114610e8f57600080fd5b60008282101561111257611112611061565b500390565b600181815b8085111561115257816000190482111561113857611138611061565b8085161561114557918102915b93841c939080029061111c565b509250929050565b60008261116957506001610b8d565b8161117657506000610b8d565b816001811461118c5760028114611196576111b2565b6001915050610b8d565b60ff8411156111a7576111a7611061565b50506001821b610b8d565b5060208310610133831016604e8410600b84101617156111d5575081810a610b8d565b6111df8383611117565b80600019048211156111f3576111f3611061565b029392505050565b6000610b8a838361115a565b60008261122457634e487b7160e01b600052601260045260246000fd5b500490565b600081600019048311821515161561124357611243611061565b500290565b60006020828403121561125a57600080fd5b81518015158114610e8f57600080fd5b60005b8381101561128557818101518382015260200161126d565b83811115611294576000848401525b50505050565b600082516112ac81846020870161126a565b9190910192915050565b60208152600082518060208401526112d581604085016020870161126a565b601f01601f1916919091016040019291505056fea2646970667358221220d9dd1738456277702c19ad55a0b24bd3fe049ace1221e8704f47fa3b37f288e064736f6c63430008090033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
00000000000000000000000099f3a919a8880ae3d6b3ae0541a02ff1445b3dda000000000000000000000000f6633ca154fb09c055aa3c147ed70fb15638e723000000000000000000000000f6633ca154fb09c055aa3c147ed70fb15638e7230000000000000000000000000000000000000000000000000000000000000000
-----Decoded View---------------
Arg [0] : _token (address): 0x99f3A919a8880aE3D6B3ae0541a02ff1445B3dDa
Arg [1] : _devAddress (address): 0xF6633Ca154fB09C055Aa3c147ed70Fb15638e723
Arg [2] : _relayAddress (address): 0xF6633Ca154fB09C055Aa3c147ed70Fb15638e723
Arg [3] : _claimFee (uint256): 0
-----Encoded View---------------
4 Constructor Arguments found :
Arg [0] : 00000000000000000000000099f3a919a8880ae3d6b3ae0541a02ff1445b3dda
Arg [1] : 000000000000000000000000f6633ca154fb09c055aa3c147ed70fb15638e723
Arg [2] : 000000000000000000000000f6633ca154fb09c055aa3c147ed70fb15638e723
Arg [3] : 0000000000000000000000000000000000000000000000000000000000000000
Deployed Bytecode Sourcemap
20808:4925:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22540:440;;;;;;;;;;-1:-1:-1;22540:440:0;;;;;:::i;:::-;;:::i;:::-;;23596:98;;;;;;;;;;-1:-1:-1;23596:98:0;;;;;:::i;:::-;;:::i;23804:152::-;;;;;;;;;;;;;:::i;22046:395::-;;;:::i;20401:148::-;;;;;;;;;;;;;:::i;23962:185::-;;;;;;;;;;-1:-1:-1;23962:185:0;;;;;:::i;:::-;;:::i;22988:370::-;;;;;;;;;;-1:-1:-1;22988:370:0;;;;;:::i;:::-;;:::i;:::-;;;;;;969:4:1;1011:3;1000:9;996:19;988:27;;1048:6;1042:13;1031:9;1024:32;1112:4;1104:6;1100:17;1094:24;1087:4;1076:9;1072:20;1065:54;1175:4;1167:6;1163:17;1157:24;1150:4;1139:9;1135:20;1128:54;1238:4;1230:6;1226:17;1220:24;1213:4;1202:9;1198:20;1191:54;1301:4;1293:6;1289:17;1283:24;1276:4;1265:9;1261:20;1254:54;1378:4;1370:6;1366:17;1360:24;1353:32;1346:40;1339:4;1328:9;1324:20;1317:70;1457:4;1449:6;1445:17;1439:24;1432:32;1425:40;1418:4;1407:9;1403:20;1396:70;827:645;;;;;22988:370:0;;;;;;;;20189:79;;;;;;;;;;-1:-1:-1;20254:6:0;;-1:-1:-1;;;;;20254:6:0;20189:79;;;-1:-1:-1;;;;;1641:32:1;;;1623:51;;1611:2;1596:18;20189:79:0;1477:203:1;21304:48:0;;;;;;;;;;-1:-1:-1;21304:48:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;1850:14:1;;1843:22;1825:41;;1813:2;1798:18;21304:48:0;1685:187:1;23700:98:0;;;;;;;;;;-1:-1:-1;23700:98:0;;;;;:::i;:::-;;:::i;23476:114::-;;;;;;;;;;-1:-1:-1;23476:114:0;;;;;:::i;:::-;;:::i;21359:51::-;;;;;;;;;;-1:-1:-1;21359:51:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;21255:42;;;;;;;;;;-1:-1:-1;21255:42:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;;2023:25:1;;;2011:2;1996:18;21255:42:0;1877:177:1;23364:106:0;;;;;;;;;;-1:-1:-1;23364:106:0;;;;;:::i;:::-;;:::i;21569:31::-;;;;;;;;;;;;;;;;20557:244;;;;;;;;;;-1:-1:-1;20557:244:0;;;;;:::i;:::-;;:::i;20926:19::-;;;;;;;;;;-1:-1:-1;20926:19:0;;;;-1:-1:-1;;;;;20926:19:0;;;22540:440;18926:1;19524:7;;:19;;19516:63;;;;-1:-1:-1;;;19516:63:0;;2483:2:1;19516:63:0;;;2465:21:1;2522:2;2502:18;;;2495:30;2561:33;2541:18;;;2534:61;2612:18;;19516:63:0;;;;;;;;;18926:1;19657:7;:18;21721:12:::1;::::0;-1:-1:-1;;;;;21721:12:0::1;21737:10;21721:26;21713:71;;;::::0;-1:-1:-1;;;21713:71:0;;2843:2:1;21713:71:0::1;::::0;::::1;2825:21:1::0;;;2862:18;;;2855:30;2921:34;2901:18;;;2894:62;2973:18;;21713:71:0::1;2641:356:1::0;21713:71:0::1;22669:10:::2;22653:27;::::0;;;:15:::2;:27;::::0;;;;;::::2;;22645:60;;;::::0;-1:-1:-1;;;22645:60:0;;3204:2:1;22645:60:0::2;::::0;::::2;3186:21:1::0;3243:2;3223:18;;;3216:30;-1:-1:-1;;;3262:18:1;;;3255:50;3322:18;;22645:60:0::2;3002:344:1::0;22645:60:0::2;-1:-1:-1::0;;;;;22714:31:0;::::2;;::::0;;;:18:::2;:31;::::0;;;;;::::2;;22710:263;;-1:-1:-1::0;;;;;22753:31:0;::::2;;::::0;;;:18:::2;:31;::::0;;;;:38;;-1:-1:-1;;22753:38:0::2;22787:4;22753:38;::::0;;22816:16:::2;::::0;:28:::2;::::0;22837:6;22816:20:::2;:28::i;:::-;22797:16;:47:::0;-1:-1:-1;;;;;22850:30:0;::::2;;::::0;;;:17:::2;:30;::::0;;;;:40;;22884:6;;22850:30;:40:::2;::::0;22884:6;;22850:40:::2;:::i;:::-;::::0;;;-1:-1:-1;;22952:5:0::2;::::0;22896:71:::2;::::0;22915:11;;22928:38:::2;::::0;-1:-1:-1;;;;;22952:5:0::2;22959:6:::0;22928:15:::2;:38::i;:::-;22896:5;::::0;-1:-1:-1;;;;;22896:5:0::2;::::0;:71;:18:::2;:71::i;:::-;-1:-1:-1::0;;18882:1:0;19836:7;:22;22540:440::o;23596:98::-;20316:6;;-1:-1:-1;;;;;20316:6:0;20326:10;20316:20;20308:65;;;;-1:-1:-1;;;20308:65:0;;;;;;;:::i;:::-;23666:8:::1;:20:::0;23596:98::o;23804:152::-;20316:6;;-1:-1:-1;;;;;20316:6:0;20326:10;20316:20;20308:65;;;;-1:-1:-1;;;20308:65:0;;;;;;;:::i;:::-;23920:10:::1;::::0;23912:36:::1;::::0;23880:21:::1;::::0;-1:-1:-1;;;;;23920:10:0::1;::::0;23912:36;::::1;;;::::0;23880:21;;23863:14:::1;23912:36:::0;23863:14;23912:36;23880:21;23920:10;23912:36;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;23852:104;23804:152::o:0;22046:395::-;18926:1;19524:7;;:19;;19516:63;;;;-1:-1:-1;;;19516:63:0;;2483:2:1;19516:63:0;;;2465:21:1;2522:2;2502:18;;;2495:30;2561:33;2541:18;;;2534:61;2612:18;;19516:63:0;2281:355:1;19516:63:0;18926:1;19657:7;:18;;;22122:10:::1;22106:27:::0;;:15:::1;:27;::::0;;;;;::::1;;22102:332;;22167:1;22155:8;;22144;;:19;;;;:::i;:::-;22143:25;22140:253;;;22209:8;;22198;;:19;;;;:::i;:::-;22184:9;:34;;22176:69;;;::::0;-1:-1:-1;;;22176:69:0;;4179:2:1;22176:69:0::1;::::0;::::1;4161:21:1::0;4218:2;4198:18;;;4191:30;-1:-1:-1;;;4237:18:1;;;4230:52;4299:18;;22176:69:0::1;3977:346:1::0;22176:69:0::1;22260:12;::::0;22283:8:::1;::::0;22252:40:::1;::::0;-1:-1:-1;;;;;22260:12:0;;::::1;::::0;22252:40;::::1;;;::::0;22283:8;22260:12:::1;22252:40:::0;22260:12;22252:40;22283:8;22260:12;22252:40;::::1;;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;22358:10:0::1;::::0;22350:36:::1;::::0;22322:21:::1;::::0;-1:-1:-1;;;;;22358:10:0::1;::::0;22350:36;::::1;;;::::0;22322:21;;22305:14:::1;22350:36:::0;22305:14;22350:36;22322:21;22358:10;22350:36;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;22169:224;22140:253;22403:25;22417:10;-1:-1:-1::0;;;;;22498:21:0;;;;;:15;:21;;;;;:28;;-1:-1:-1;;22498:28:0;22522:4;22498:28;;;22447:84;22403:25:::1;18882:1:::0;19836:7;:22;22046:395::o;20401:148::-;20316:6;;-1:-1:-1;;;;;20316:6:0;20326:10;20316:20;20308:65;;;;-1:-1:-1;;;20308:65:0;;;;;;;:::i;:::-;20492:6:::1;::::0;20471:40:::1;::::0;20508:1:::1;::::0;-1:-1:-1;;;;;20492:6:0::1;::::0;20471:40:::1;::::0;20508:1;;20471:40:::1;20522:6;:19:::0;;-1:-1:-1;;;;;;20522:19:0::1;::::0;;20401:148::o;23962:185::-;20316:6;;-1:-1:-1;;;;;20316:6:0;20326:10;20316:20;20308:65;;;;-1:-1:-1;;;20308:65:0;;;;;;;:::i;:::-;24089:10:::1;::::0;24055:84:::1;::::0;-1:-1:-1;;;;;24089:10:0::1;24101:37;24117:12:::0;24131:6;24101:15:::1;:37::i;:::-;-1:-1:-1::0;;;;;24055:33:0;::::1;::::0;:84;:33:::1;:84::i;22988:370::-:0;23043:14;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23043:14:0;23077:273;;;;;;;;23111:8;;23100;;:19;;;;:::i;:::-;23077:273;;23135:16;;23077:273;;;;;;;;-1:-1:-1;;;;;23166:12:0;;;-1:-1:-1;23166:12:0;;;:6;:12;;;23077:273;23166:12;;;;23077:273;;;;23193:23;;;:17;:23;;;;;;;;23077:273;;;;23253:5;;23260:21;;-1:-1:-1;;;23260:21:0;;;;;1623:51:1;;;;23077:273:0;;;;;23222:60;;23253:5;;;;;;23260:15;;1596:18:1;;23260:21:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;23222:22;:60::i;:::-;23077:273;;-1:-1:-1;;;;;23288:21:0;;;;;;;:15;23077:273;23288:21;;;;;;;;;;;;23077:273;;;;;;23315:24;;;:18;:24;;;;;;;;;;;23077:273;;;;;;;;-1:-1:-1;23070:280:0;22988:370::o;23700:98::-;20316:6;;-1:-1:-1;;;;;20316:6:0;20326:10;20316:20;20308:65;;;;-1:-1:-1;;;20308:65:0;;;;;;;:::i;:::-;23770:8:::1;:20:::0;23700:98::o;23476:114::-;20316:6;;-1:-1:-1;;;;;20316:6:0;20326:10;20316:20;20308:65;;;;-1:-1:-1;;;20308:65:0;;;;;;;:::i;:::-;23554:12:::1;:28:::0;;-1:-1:-1;;;;;;23554:28:0::1;-1:-1:-1::0;;;;;23554:28:0;;;::::1;::::0;;;::::1;::::0;;23476:114::o;23364:106::-;20316:6;;-1:-1:-1;;;;;20316:6:0;20326:10;20316:20;20308:65;;;;-1:-1:-1;;;20308:65:0;;;;;;;:::i;:::-;23438:10:::1;:24:::0;;-1:-1:-1;;;;;;23438:24:0::1;-1:-1:-1::0;;;;;23438:24:0;;;::::1;::::0;;;::::1;::::0;;23364:106::o;20557:244::-;20316:6;;-1:-1:-1;;;;;20316:6:0;20326:10;20316:20;20308:65;;;;-1:-1:-1;;;20308:65:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;20646:22:0;::::1;20638:73;;;::::0;-1:-1:-1;;;20638:73:0;;4719:2:1;20638:73:0::1;::::0;::::1;4701:21:1::0;4758:2;4738:18;;;4731:30;4797:34;4777:18;;;4770:62;-1:-1:-1;;;4848:18:1;;;4841:36;4894:19;;20638:73:0::1;4517:402:1::0;20638:73:0::1;20748:6;::::0;20727:38:::1;::::0;-1:-1:-1;;;;;20727:38:0;;::::1;::::0;20748:6:::1;::::0;20727:38:::1;::::0;20748:6:::1;::::0;20727:38:::1;20776:6;:17:::0;;-1:-1:-1;;;;;;20776:17:0::1;-1:-1:-1::0;;;;;20776:17:0;;;::::1;::::0;;;::::1;::::0;;20557:244::o;1469:98::-;1527:7;1554:5;1558:1;1554;:5;:::i;:::-;1547:12;;1469:98;;;;;:::o;24153:782::-;24241:16;24264:19;24293:13;24264:43;;24312:20;24335:12;-1:-1:-1;;;;;24335:21:0;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;24312:46;;;;24363:19;24391:28;24428:14;24474:12;24459:11;;:27;24456:410;;24510:12;24496:11;;:26;24493:332;;;24558:12;24544:11;;:26;;;;:::i;:::-;24530:40;-1:-1:-1;24600:15:0;24530:40;24600:2;:15;:::i;:::-;24577:38;-1:-1:-1;24631:33:0;:7;24577:38;24631:11;:33::i;:::-;24622:42;;24456:410;;24493:332;24713:11;;24698:26;;:12;:26;:::i;:::-;24684:40;-1:-1:-1;24754:15:0;24684:40;24754:2;:15;:::i;:::-;24731:38;-1:-1:-1;24785:33:0;:7;24731:38;24785:11;:33::i;24456:410::-;-1:-1:-1;24853:7:0;24456:410;24894:6;24153:782;-1:-1:-1;;;;;;;24153:782:0:o;13979:211::-;14123:58;;;-1:-1:-1;;;;;6898:32:1;;14123:58:0;;;6880:51:1;6947:18;;;;6940:34;;;14123:58:0;;;;;;;;;;6853:18:1;;;;14123:58:0;;;;;;;;-1:-1:-1;;;;;14123:58:0;-1:-1:-1;;;14123:58:0;;;14096:86;;14116:5;;14096:19;:86::i;:::-;13979:211;;;:::o;24941:789::-;25036:16;25059:19;25088:13;25059:43;;25107:20;25130:12;-1:-1:-1;;;;;25130:21:0;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;25107:46;;;;25158:19;25186:28;25223:14;25269:12;25254:11;;:27;25251:410;;25305:12;25291:11;;:26;25288:332;;;25353:12;25339:11;;:26;;;;:::i;25288:332::-;25508:11;;25493:26;;:12;:26;:::i;1787:98::-;1845:7;1872:5;1876:1;1872;:5;:::i;1681:98::-;1739:7;1766:5;1770:1;1766;:5;:::i;16552:716::-;16976:23;17002:69;17030:4;17002:69;;;;;;;;;;;;;;;;;17010:5;-1:-1:-1;;;;;17002:27:0;;;:69;;;;;:::i;:::-;17086:17;;16976:95;;-1:-1:-1;17086:21:0;17082:179;;17183:10;17172:30;;;;;;;;;;;;:::i;:::-;17164:85;;;;-1:-1:-1;;;17164:85:0;;7864:2:1;17164:85:0;;;7846:21:1;7903:2;7883:18;;;7876:30;7942:34;7922:18;;;7915:62;-1:-1:-1;;;7993:18:1;;;7986:40;8043:19;;17164:85:0;7662:406:1;8928:229:0;9065:12;9097:52;9119:6;9127:4;9133:1;9136:12;9097:21;:52::i;:::-;9090:59;;8928:229;;;;;;:::o;10048:510::-;10218:12;10276:5;10251:21;:30;;10243:81;;;;-1:-1:-1;;;10243:81:0;;8275:2:1;10243:81:0;;;8257:21:1;8314:2;8294:18;;;8287:30;8353:34;8333:18;;;8326:62;-1:-1:-1;;;8404:18:1;;;8397:36;8450:19;;10243:81:0;8073:402:1;10243:81:0;6445:20;;10335:60;;;;-1:-1:-1;;;10335:60:0;;8682:2:1;10335:60:0;;;8664:21:1;8721:2;8701:18;;;8694:30;8760:31;8740:18;;;8733:59;8809:18;;10335:60:0;8480:353:1;10335:60:0;10409:12;10423:23;10450:6;-1:-1:-1;;;;;10450:11:0;10469:5;10476:4;10450:31;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10408:73;;;;10499:51;10516:7;10525:10;10537:12;12884;12913:7;12909:530;;;-1:-1:-1;12944:10:0;12937:17;;12909:530;13058:17;;:21;13054:374;;13256:10;13250:17;13317:15;13304:10;13300:2;13296:19;13289:44;13054:374;13399:12;13392:20;;-1:-1:-1;;;13392:20:0;;;;;;;;:::i;14:173:1:-;82:20;;-1:-1:-1;;;;;131:31:1;;121:42;;111:70;;177:1;174;167:12;111:70;14:173;;;:::o;192:254::-;260:6;268;321:2;309:9;300:7;296:23;292:32;289:52;;;337:1;334;327:12;289:52;360:29;379:9;360:29;:::i;:::-;350:39;436:2;421:18;;;;408:32;;-1:-1:-1;;;192:254:1:o;451:180::-;510:6;563:2;551:9;542:7;538:23;534:32;531:52;;;579:1;576;569:12;531:52;-1:-1:-1;602:23:1;;451:180;-1:-1:-1;451:180:1:o;636:186::-;695:6;748:2;736:9;727:7;723:23;719:32;716:52;;;764:1;761;754:12;716:52;787:29;806:9;787:29;:::i;3351:127::-;3412:10;3407:3;3403:20;3400:1;3393:31;3443:4;3440:1;3433:15;3467:4;3464:1;3457:15;3483:128;3523:3;3554:1;3550:6;3547:1;3544:13;3541:39;;;3560:18;;:::i;:::-;-1:-1:-1;3596:9:1;;3483:128::o;3616:356::-;3818:2;3800:21;;;3837:18;;;3830:30;3896:34;3891:2;3876:18;;3869:62;3963:2;3948:18;;3616:356::o;4328:184::-;4398:6;4451:2;4439:9;4430:7;4426:23;4422:32;4419:52;;;4467:1;4464;4457:12;4419:52;-1:-1:-1;4490:16:1;;4328:184;-1:-1:-1;4328:184:1:o;4924:273::-;4992:6;5045:2;5033:9;5024:7;5020:23;5016:32;5013:52;;;5061:1;5058;5051:12;5013:52;5093:9;5087:16;5143:4;5136:5;5132:16;5125:5;5122:27;5112:55;;5163:1;5160;5153:12;5202:125;5242:4;5270:1;5267;5264:8;5261:34;;;5275:18;;:::i;:::-;-1:-1:-1;5312:9:1;;5202:125::o;5332:422::-;5421:1;5464:5;5421:1;5478:270;5499:7;5489:8;5486:21;5478:270;;;5558:4;5554:1;5550:6;5546:17;5540:4;5537:27;5534:53;;;5567:18;;:::i;:::-;5617:7;5607:8;5603:22;5600:55;;;5637:16;;;;5600:55;5716:22;;;;5676:15;;;;5478:270;;;5482:3;5332:422;;;;;:::o;5759:806::-;5808:5;5838:8;5828:80;;-1:-1:-1;5879:1:1;5893:5;;5828:80;5927:4;5917:76;;-1:-1:-1;5964:1:1;5978:5;;5917:76;6009:4;6027:1;6022:59;;;;6095:1;6090:130;;;;6002:218;;6022:59;6052:1;6043:10;;6066:5;;;6090:130;6127:3;6117:8;6114:17;6111:43;;;6134:18;;:::i;:::-;-1:-1:-1;;6190:1:1;6176:16;;6205:5;;6002:218;;6304:2;6294:8;6291:16;6285:3;6279:4;6276:13;6272:36;6266:2;6256:8;6253:16;6248:2;6242:4;6239:12;6235:35;6232:77;6229:159;;;-1:-1:-1;6341:19:1;;;6373:5;;6229:159;6420:34;6445:8;6439:4;6420:34;:::i;:::-;6490:6;6486:1;6482:6;6478:19;6469:7;6466:32;6463:58;;;6501:18;;:::i;:::-;6539:20;;5759:806;-1:-1:-1;;;5759:806:1:o;6570:131::-;6630:5;6659:36;6686:8;6680:4;6659:36;:::i;6985:217::-;7025:1;7051;7041:132;;7095:10;7090:3;7086:20;7083:1;7076:31;7130:4;7127:1;7120:15;7158:4;7155:1;7148:15;7041:132;-1:-1:-1;7187:9:1;;6985:217::o;7207:168::-;7247:7;7313:1;7309;7305:6;7301:14;7298:1;7295:21;7290:1;7283:9;7276:17;7272:45;7269:71;;;7320:18;;:::i;:::-;-1:-1:-1;7360:9:1;;7207:168::o;7380:277::-;7447:6;7500:2;7488:9;7479:7;7475:23;7471:32;7468:52;;;7516:1;7513;7506:12;7468:52;7548:9;7542:16;7601:5;7594:13;7587:21;7580:5;7577:32;7567:60;;7623:1;7620;7613:12;8838:258;8910:1;8920:113;8934:6;8931:1;8928:13;8920:113;;;9010:11;;;9004:18;8991:11;;;8984:39;8956:2;8949:10;8920:113;;;9051:6;9048:1;9045:13;9042:48;;;9086:1;9077:6;9072:3;9068:16;9061:27;9042:48;;8838:258;;;:::o;9101:274::-;9230:3;9268:6;9262:13;9284:53;9330:6;9325:3;9318:4;9310:6;9306:17;9284:53;:::i;:::-;9353:16;;;;;9101:274;-1:-1:-1;;9101:274:1:o;9380:383::-;9529:2;9518:9;9511:21;9492:4;9561:6;9555:13;9604:6;9599:2;9588:9;9584:18;9577:34;9620:66;9679:6;9674:2;9663:9;9659:18;9654:2;9646:6;9642:15;9620:66;:::i;:::-;9747:2;9726:15;-1:-1:-1;;9722:29:1;9707:45;;;;9754:2;9703:54;;9380:383;-1:-1:-1;;9380:383:1:o
Swarm Source
ipfs://d9dd1738456277702c19ad55a0b24bd3fe049ace1221e8704f47fa3b37f288e0
Loading...
Loading
Loading...
Loading
Net Worth in USD
$0.00
Net Worth in ETH
0
Multichain Portfolio | 33 Chains
| Chain | Token | Portfolio % | Price | Amount | Value |
|---|
Loading...
Loading
Loading...
Loading
Loading...
Loading
[ Download: CSV Export ]
[ Download: CSV Export ]
A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.