ETH Price: $2,007.31 (-3.81%)
 

Overview

ETH Balance

1,258.708662995045443475 ETH

ETH Value

$2,526,612.25 (@ $2,007.31/ETH)

Token Holdings

More Info

Private Name Tags

Multichain Info

No addresses found
Transaction Hash
Block
From
To
0xf09f8f9b420738612026-02-12 22:57:492 days ago1770937069IN
0x9c3631dD...1C15a9A05
0.0000001 ETH0.000000080.00301916
Exec Transaction411539062026-01-22 15:52:3924 days ago1769097159IN
0x9c3631dD...1C15a9A05
0 ETH0.00000090.00860428
Transfer391819972025-12-08 0:22:2169 days ago1765153341IN
0x9c3631dD...1C15a9A05
0.001 ETH0.000000030.00123106
Exec Transaction374802552025-10-29 14:57:37109 days ago1761749857IN
0x9c3631dD...1C15a9A05
0 ETH0.000002260.01248828
Exec Transaction369659762025-10-17 17:14:59120 days ago1760721299IN
0x9c3631dD...1C15a9A05
0 ETH0.000001150.00633383
Exec Transaction369652442025-10-17 16:50:35120 days ago1760719835IN
0x9c3631dD...1C15a9A05
0 ETH0.000000960.0056995
Transfer269547032025-02-27 23:25:53352 days ago1740698753IN
0x9c3631dD...1C15a9A05
0 ETH0.000000080.00295999
Transfer269546722025-02-27 23:24:51352 days ago1740698691IN
0x9c3631dD...1C15a9A05
0 ETH0.000000080.00286576
Enable Module264350892025-02-15 22:45:25364 days ago1739659525IN
0x9c3631dD...1C15a9A05
0 ETH0.000000080.0031627
Transfer264349372025-02-15 22:40:21364 days ago1739659221IN
0x9c3631dD...1C15a9A05
0 ETH0.000000080.00317686
Transfer264348492025-02-15 22:37:25364 days ago1739659045IN
0x9c3631dD...1C15a9A05
0 ETH0.000000090.00321589
Transfer264310712025-02-15 20:31:29364 days ago1739651489IN
0x9c3631dD...1C15a9A05
0 ETH0.00000010.00361946
Transfer264309822025-02-15 20:28:31364 days ago1739651311IN
0x9c3631dD...1C15a9A05
0 ETH0.00000010.00369407
Transfer264309262025-02-15 20:26:39364 days ago1739651199IN
0x9c3631dD...1C15a9A05
0 ETH0.00000010.00372484
Transfer264308912025-02-15 20:25:29364 days ago1739651129IN
0x9c3631dD...1C15a9A05
0 ETH0.00000010.00374685
Transfer264307922025-02-15 20:22:11364 days ago1739650931IN
0x9c3631dD...1C15a9A05
0 ETH0.00000010.00371223
Change Threshold261738212025-02-09 21:36:29370 days ago1739136989IN
0x9c3631dD...1C15a9A05
0 ETH0.00000010.00396044
Add Owner With T...261737512025-02-09 21:34:09370 days ago1739136849IN
0x9c3631dD...1C15a9A05
0 ETH0.00000010.00369864
Change Owner235884432024-12-12 1:17:13430 days ago1733966233IN
0x9c3631dD...1C15a9A05
0 ETH0.000000510.01484991
Change Owner235882912024-12-12 1:12:09430 days ago1733965929IN
0x9c3631dD...1C15a9A05
0 ETH0.000000540.0157801
Swap Owner230617412024-11-29 20:40:29442 days ago1732912829IN
0x9c3631dD...1C15a9A05
0 ETH0.000001640.05826506
Add Owner With T...228109432024-11-24 1:20:33448 days ago1732411233IN
0x9c3631dD...1C15a9A05
0 ETH0.000000210.00672692
Add Owner With T...228109132024-11-24 1:19:33448 days ago1732411173IN
0x9c3631dD...1C15a9A05
0 ETH0.000000220.00706878
Swap Owner228108462024-11-24 1:17:19448 days ago1732411039IN
0x9c3631dD...1C15a9A05
0 ETH0.000000210.00664939
Add Owner With T...224649472024-11-16 1:07:21456 days ago1731719241IN
0x9c3631dD...1C15a9A05
0 ETH0.000001080.03598539
View all transactions

Latest 25 internal transactions (View All)

Parent Transaction Hash Block From To
421621292026-02-15 0:00:0515 hrs ago1771113605
0x9c3631dD...1C15a9A05
44.7967041 ETH
419808182026-02-10 19:16:234 days ago1770750983
0x9c3631dD...1C15a9A05
31.63569178 ETH
418597292026-02-08 0:00:057 days ago1770508805
0x9c3631dD...1C15a9A05
290.13173583 ETH
416470392026-02-03 1:50:2512 days ago1770083425
0x9c3631dD...1C15a9A05
81.95189701 ETH
415573352026-02-01 0:00:1714 days ago1769904017
0x9c3631dD...1C15a9A05
162.58919241 ETH
413044072026-01-26 3:29:2120 days ago1769398161
0x9c3631dD...1C15a9A05
12.46553263 ETH
412549372026-01-25 0:00:2121 days ago1769299221
0x9c3631dD...1C15a9A05
14.9762094 ETH
411238712026-01-21 23:11:2924 days ago1769037089
0x9c3631dD...1C15a9A05
29.11654797 ETH
409525292026-01-18 0:00:0528 days ago1768694405
0x9c3631dD...1C15a9A05
25.33432058 ETH
407733882026-01-13 20:28:4332 days ago1768336123
0x9c3631dD...1C15a9A05
12.28906512 ETH
406501372026-01-11 0:00:2135 days ago1768089621
0x9c3631dD...1C15a9A05
38.16889015 ETH
403477292026-01-04 0:00:0542 days ago1767484805
0x9c3631dD...1C15a9A05
27.87799416 ETH
400453352025-12-28 0:00:1749 days ago1766880017
0x9c3631dD...1C15a9A05
15.47758892 ETH
398193202025-12-22 18:26:2754 days ago1766427987
0x9c3631dD...1C15a9A05
6.92118194 ETH
397429292025-12-21 0:00:0556 days ago1766275205
0x9c3631dD...1C15a9A05
37.56268388 ETH
394765182025-12-14 19:59:4362 days ago1765742383
0x9c3631dD...1C15a9A05
3.8486066 ETH
394020522025-12-13 2:37:3164 days ago1765593451
0x9c3631dD...1C15a9A05
25.45716839 ETH
391813572025-12-08 0:01:0169 days ago1765152061
0x9c3631dD...1C15a9A05
5.165238 ETH
391340312025-12-06 21:43:2970 days ago1765057409
0x9c3631dD...1C15a9A05
31.57757434 ETH
388357292025-11-30 0:00:0577 days ago1764460805
0x9c3631dD...1C15a9A05
28.56190403 ETH
385333292025-11-23 0:00:0584 days ago1763856005
0x9c3631dD...1C15a9A05
85.90441922 ETH
383560552025-11-18 21:30:5788 days ago1763501457
0x9c3631dD...1C15a9A05
32.6560299 ETH
381974022025-11-15 5:22:3192 days ago1763184151
0x9c3631dD...1C15a9A05
61.46584996 ETH
379285332025-11-09 0:00:1398 days ago1762646413
0x9c3631dD...1C15a9A05
83.10091756 ETH
376261292025-11-02 0:00:05105 days ago1762041605
0x9c3631dD...1C15a9A05
69.67471194 ETH
View All Internal Transactions

Cross-Chain Transactions
Loading...
Loading

Similar Match Source Code
This contract matches the deployed Bytecode of the Source Code for Contract 0x99B5E1B4...8fc28013A
The constructor portion of the code might be different and could alter the actual behaviour of the contract

Contract Name:
GnosisSafeProxy

Compiler Version
v0.7.6+commit.7338295f

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, GNU GPLv3 license

Contract Source Code (Solidity)

/**
 *Submitted for verification at basescan.org on 2023-07-11
*/

/**
 *Submitted for verification at Etherscan.io on 2021-07-09
*/

// SPDX-License-Identifier: LGPL-3.0-only
pragma solidity >=0.7.0 <0.9.0;

/// @title IProxy - Helper interface to access masterCopy of the Proxy on-chain
/// @author Richard Meissner - <[email protected]>
interface IProxy {
    function masterCopy() external view returns (address);
}

/// @title GnosisSafeProxy - Generic proxy contract allows to execute all transactions applying the code of a master contract.
/// @author Stefan George - <[email protected]>
/// @author Richard Meissner - <[email protected]>
contract GnosisSafeProxy {
    // singleton always needs to be first declared variable, to ensure that it is at the same location in the contracts to which calls are delegated.
    // To reduce deployment costs this variable is internal and needs to be retrieved via `getStorageAt`
    address internal singleton;

    /// @dev Constructor function sets address of singleton contract.
    /// @param _singleton Singleton address.
    constructor(address _singleton) {
        require(_singleton != address(0), "Invalid singleton address provided");
        singleton = _singleton;
    }

    /// @dev Fallback function forwards all transactions and returns all received return data.
    fallback() external payable {
        // solhint-disable-next-line no-inline-assembly
        assembly {
            let _singleton := and(sload(0), 0xffffffffffffffffffffffffffffffffffffffff)
            // 0xa619486e == keccak("masterCopy()"). The value is right padded to 32-bytes with 0s
            if eq(calldataload(0), 0xa619486e00000000000000000000000000000000000000000000000000000000) {
                mstore(0, _singleton)
                return(0, 0x20)
            }
            calldatacopy(0, 0, calldatasize())
            let success := delegatecall(gas(), _singleton, 0, calldatasize(), 0, 0)
            returndatacopy(0, 0, returndatasize())
            if eq(success, 0) {
                revert(0, returndatasize())
            }
            return(0, returndatasize())
        }
    }
}

/// @title Proxy Factory - Allows to create new proxy contact and execute a message call to the new proxy within one transaction.
/// @author Stefan George - <[email protected]>
contract GnosisSafeProxyFactory {
    event ProxyCreation(GnosisSafeProxy proxy, address singleton);

    /// @dev Allows to create new proxy contact and execute a message call to the new proxy within one transaction.
    /// @param singleton Address of singleton contract.
    /// @param data Payload for message call sent to new proxy contract.
    function createProxy(address singleton, bytes memory data) public returns (GnosisSafeProxy proxy) {
        proxy = new GnosisSafeProxy(singleton);
        if (data.length > 0)
            // solhint-disable-next-line no-inline-assembly
            assembly {
                if eq(call(gas(), proxy, 0, add(data, 0x20), mload(data), 0, 0), 0) {
                    revert(0, 0)
                }
            }
        emit ProxyCreation(proxy, singleton);
    }

    /// @dev Allows to retrieve the runtime code of a deployed Proxy. This can be used to check that the expected Proxy was deployed.
    function proxyRuntimeCode() public pure returns (bytes memory) {
        return type(GnosisSafeProxy).runtimeCode;
    }

    /// @dev Allows to retrieve the creation code used for the Proxy deployment. With this it is easily possible to calculate predicted address.
    function proxyCreationCode() public pure returns (bytes memory) {
        return type(GnosisSafeProxy).creationCode;
    }

    /// @dev Allows to create new proxy contact using CREATE2 but it doesn't run the initializer.
    ///      This method is only meant as an utility to be called from other methods
    /// @param _singleton Address of singleton contract.
    /// @param initializer Payload for message call sent to new proxy contract.
    /// @param saltNonce Nonce that will be used to generate the salt to calculate the address of the new proxy contract.
    function deployProxyWithNonce(
        address _singleton,
        bytes memory initializer,
        uint256 saltNonce
    ) internal returns (GnosisSafeProxy proxy) {
        // If the initializer changes the proxy address should change too. Hashing the initializer data is cheaper than just concatinating it
        bytes32 salt = keccak256(abi.encodePacked(keccak256(initializer), saltNonce));
        bytes memory deploymentData = abi.encodePacked(type(GnosisSafeProxy).creationCode, uint256(uint160(_singleton)));
        // solhint-disable-next-line no-inline-assembly
        assembly {
            proxy := create2(0x0, add(0x20, deploymentData), mload(deploymentData), salt)
        }
        require(address(proxy) != address(0), "Create2 call failed");
    }

    /// @dev Allows to create new proxy contact and execute a message call to the new proxy within one transaction.
    /// @param _singleton Address of singleton contract.
    /// @param initializer Payload for message call sent to new proxy contract.
    /// @param saltNonce Nonce that will be used to generate the salt to calculate the address of the new proxy contract.
    function createProxyWithNonce(
        address _singleton,
        bytes memory initializer,
        uint256 saltNonce
    ) public returns (GnosisSafeProxy proxy) {
        proxy = deployProxyWithNonce(_singleton, initializer, saltNonce);
        if (initializer.length > 0)
            // solhint-disable-next-line no-inline-assembly
            assembly {
                if eq(call(gas(), proxy, 0, add(initializer, 0x20), mload(initializer), 0, 0), 0) {
                    revert(0, 0)
                }
            }
        emit ProxyCreation(proxy, _singleton);
    }

    /// @dev Allows to create new proxy contact, execute a message call to the new proxy and call a specified callback within one transaction
    /// @param _singleton Address of singleton contract.
    /// @param initializer Payload for message call sent to new proxy contract.
    /// @param saltNonce Nonce that will be used to generate the salt to calculate the address of the new proxy contract.
    /// @param callback Callback that will be invoced after the new proxy contract has been successfully deployed and initialized.
    function createProxyWithCallback(
        address _singleton,
        bytes memory initializer,
        uint256 saltNonce,
        IProxyCreationCallback callback
    ) public returns (GnosisSafeProxy proxy) {
        uint256 saltNonceWithCallback = uint256(keccak256(abi.encodePacked(saltNonce, callback)));
        proxy = createProxyWithNonce(_singleton, initializer, saltNonceWithCallback);
        if (address(callback) != address(0)) callback.proxyCreated(proxy, _singleton, initializer, saltNonce);
    }

    /// @dev Allows to get the address for a new proxy contact created via `createProxyWithNonce`
    ///      This method is only meant for address calculation purpose when you use an initializer that would revert,
    ///      therefore the response is returned with a revert. When calling this method set `from` to the address of the proxy factory.
    /// @param _singleton Address of singleton contract.
    /// @param initializer Payload for message call sent to new proxy contract.
    /// @param saltNonce Nonce that will be used to generate the salt to calculate the address of the new proxy contract.
    function calculateCreateProxyWithNonceAddress(
        address _singleton,
        bytes calldata initializer,
        uint256 saltNonce
    ) external returns (GnosisSafeProxy proxy) {
        proxy = deployProxyWithNonce(_singleton, initializer, saltNonce);
        revert(string(abi.encodePacked(proxy)));
    }
}

interface IProxyCreationCallback {
    function proxyCreated(
        GnosisSafeProxy proxy,
        address _singleton,
        bytes calldata initializer,
        uint256 saltNonce
    ) external;
}

Contract Security Audit

Contract ABI

API
[{"inputs":[{"internalType":"address","name":"_singleton","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"stateMutability":"payable","type":"fallback"}]

0x608060405234801561001057600080fd5b506040516101e63803806101e68339818101604052602081101561003357600080fd5b8101908080519060200190929190505050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156100ca576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260228152602001806101c46022913960400191505060405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505060ab806101196000396000f3fe608060405273ffffffffffffffffffffffffffffffffffffffff600054167fa619486e0000000000000000000000000000000000000000000000000000000060003514156050578060005260206000f35b3660008037600080366000845af43d6000803e60008114156070573d6000fd5b3d6000f3fea2646970667358221220d1429297349653a4918076d650332de1a1068c5f3e07c5c82360c277770b955264736f6c63430007060033496e76616c69642073696e676c65746f6e20616464726573732070726f7669646564000000000000000000000000fb1bffc9d739b8d520daf37df666da4c687191ea

Deployed Bytecode

0x608060405273ffffffffffffffffffffffffffffffffffffffff600054167fa619486e0000000000000000000000000000000000000000000000000000000060003514156050578060005260206000f35b3660008037600080366000845af43d6000803e60008114156070573d6000fd5b3d6000f3fea2646970667358221220d1429297349653a4918076d650332de1a1068c5f3e07c5c82360c277770b955264736f6c63430007060033

Deployed Bytecode Sourcemap

595:1528:0:-:0;;;1447:42;1443:1;1437:8;1433:57;1627:66;1623:1;1610:15;1607:87;1604:2;;;1724:10;1721:1;1714:21;1763:4;1760:1;1753:15;1604:2;1816:14;1813:1;1810;1797:34;1914:1;1911;1895:14;1892:1;1880:10;1873:5;1860:56;1951:16;1948:1;1945;1930:38;1997:1;1988:7;1985:14;1982:2;;;2029:16;2026:1;2019:27;1982:2;2085:16;2082:1;2075:27

Swarm Source

ipfs://d1429297349653a4918076d650332de1a1068c5f3e07c5c82360c277770b9552

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
Loading...
Loading
Loading...
Loading

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
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.

`; } let ensZeroWidthWarningHtml = ""; if ($("#hdnIsEnsContainZeroWidthChars").val() == "true") { ensZeroWidthWarningHtml = `
${zeroWidthWarningMessage} Check the actual text at BaseName.
`; } const ensOnL2NoteHtml = ensOnL2Note != "" ? `
  • ${ensOnL2Note}
  • ` : ""; const contentHtml = `
    Additional Info
    Full Name:
    ${ensNameForkIconSrc}


    Note:
    • Name tag is displayed due to forward and reverse resolution. Find out more.
    • A Domain Name is not necessarily held by a person popularly associated with the name.
    • ${ensOnL2NoteHtml}
    ${ensUnicodeWarningHtml} ${ensZeroWidthWarningHtml}
    `; $('#ensName').popover({ html: true, content: contentHtml, trigger: 'manual', placement: 'right' }); $('#ensName').click(function (event) { $("#udName").popover('hide') $("#ensName").popover('toggle'); event.stopPropagation(); }); $('#ensName').on('shown.bs.popover', async () => { //disable tooltip when hovering over ens name in the main page $("[rel='tooltipEns']").each(function () { $(this).tooltip('hide'); $(this).tooltip('disable'); }); //call ajax here to get result if (!otherENSNamesHtml) { const resolvedAddressesModel = await getEnsResolvedAddress($("#hdnAddress").val(), primaryDomainNameLabel); otherENSNamesHtml = generateEnsPopoverGrid(resolvedAddressesModel.d); if (!otherENSNamesHtml) { otherENSNamesHtml = "There are no other names resolving to this address." } } $(".popOverEnsOwnedAddressTable").html(otherENSNamesHtml); $("#divENSDisplayName").html(ensDisplayName); // append more copy button for ENS let domainName = $("#hdnEnsText").val(); const copyEnsButtonHtml = ` `; $("#spanCopyENSAddress").html(copyEnsButtonHtml); $("[data-bs-toggle='tooltip']").tooltip(); }); $('#ensName').on('hidden.bs.popover', () => { $("[rel='tooltipEns']").each(function () { $(this).tooltip('enable'); }); }); $('#ensName').on('hide.bs.popover', () => { $("[data-bs-toggle='tooltip']").tooltip('hide'); }); $(document).click(function (e) { const popoverElement = document.getElementById('popover-ens-preview'); const popoverTrigger = document.getElementById('ensName'); if (!popoverTrigger.contains(e.target) && (!popoverElement || !popoverElement.contains(e.target))) { $("#ensName").popover('hide'); } }) } async function getEnsResolvedAddress(address, currentEnsText) { try { const requestModel = { "lookupAddress": address, "primaryDomainName": currentEnsText, "provider": ensNameProvider }; const response = await $.ajax({ url: "/name-lookup-search.aspx/GetOtherDomainNameForAddress", type: "POST", contentType: "application/json", dataType: "json", data: JSON.stringify({ requestModel: requestModel }) }) return response; } catch { return ""; } } function generateEnsPopoverGrid(model) { if (!model || model.DomainNames.length == 0) { return ""; } let listOtherENSNames = ""; model.DomainNames.forEach(x => listOtherENSNames += x.Name); let moreOtherENSNames = ""; if (model.Total > 5) { moreOtherENSNames = `More ` } const result = `
    Other names resolving to this address:
    ${listOtherENSNames} ${moreOtherENSNames}
    `; return result; } // ===== UD name tag const displayUDName = ''; const primaryUDName = ''; const showUDPublicNote = 'false'; let otherUDNamesHtml = ""; function initUDNamePopOver() { //required to allow bootstrap popover to support table $.fn.popover.Constructor.Default.allowList.table = []; $.fn.popover.Constructor.Default.allowList.tr = []; $.fn.popover.Constructor.Default.allowList.td = []; $.fn.popover.Constructor.Default.allowList.th = []; $.fn.popover.Constructor.Default.allowList.div = []; $.fn.popover.Constructor.Default.allowList.tbody = []; $.fn.popover.Constructor.Default.allowList.thead = []; //allowList my inline styling for bootstrap $.fn.popover.Constructor.Default.allowList['*'].push('style') let unicodeWarningHtml = ""; if ($("#hdnIsUDContainUnicodeChars").val() == "true") { unicodeWarningHtml = `
    ${unicodeWarningMessage} Check the actual text at Unstoppable Domains.
    `; } let zeroWidthWarningHtml = ""; if ($("#hdnIsUDContainZeroWidthChars").val() == "true") { zeroWidthWarningHtml = `
    ${unicodeWarningMessage} Check the actual text at Unstoppable Domains.
    `; } const contentHtml = `
    Additional Info
    Full Name:
    Unstoppable Domains Name


    Note:
    • Name tag is displayed due to forward and reverse resolution. Find out more
    • A Domain Name is not necessarily held by a person popularly associated with the name.
    ${unicodeWarningHtml} ${zeroWidthWarningHtml}
    `; $('#udName').popover({ html: true, content: contentHtml, trigger: 'manual' }); $('#udName').click(function (event) { $("#ensName").popover('hide'); $("#udName").popover('toggle'); event.stopPropagation(); }); $('#udName').on('shown.bs.popover', async () => { //disable tooltip when hovering over SID name in the main page $("[rel='tooltipUDName']").each(function () { $(this).tooltip('hide'); $(this).tooltip('disable'); }); //call ajax here to get result if (!otherUDNamesHtml) { const resolvedAddressesModel = await getUDNamesResolvedAddress($("#hdnAddress").val(), primaryUDName); //format the ajax to otherUDNamesHtml otherUDNamesHtml = generateUDPopoverGrid(resolvedAddressesModel.d); if (!otherUDNamesHtml) { otherUDNamesHtml = "There are no other names resolving to this address." } } $(".popoverUDNamesOwnedByAddress").html(otherUDNamesHtml); $("#divDisplayUDName").html(displayUDName); if (showUDPublicNote == true) { $("#noteUD").html('The Unstoppable Domains NFT is minted on the Ethereum blockchain. View and verify its details on Etherscan.'); $("#noteUD").show(); } $("[data-bs-toggle='tooltip']").tooltip(); }); $('#udName').on('hidden.bs.popover', () => { $("[rel='tooltipUDName']").each(function () { $(this).tooltip('enable'); }); }); $('#udName').on('hide.bs.popover', () => { $("[data-bs-toggle='tooltip']").tooltip('hide'); }); // Hide Unstoppable Domains Name popover when click outside the popover popup. $(document).click(function () { $("#udName").popover('hide') }); } async function getUDNamesResolvedAddress(address, primaryUDName) { try { const requestModel = { "lookupAddress": address, "primaryDomainName": primaryUDName, "provider": "UD" }; const response = await $.ajax({ url: "/name-lookup-search.aspx/GetOtherDomainNameForAddress", type: "POST", contentType: "application/json", dataType: "json", data: JSON.stringify({ requestModel: requestModel }) }) return response; } catch { return ""; } } function generateUDPopoverGrid(model) { if (!model || model.DomainNames.length == 0) { return ""; } let listOtherUDNames = ""; model.DomainNames.forEach(x => listOtherUDNames += x.Name); let moreOtherUDNames = ""; if (model.Total > 5) { moreOtherUDNames = `More `; } const result = `
    Other names resolving to this address:
    ${listOtherUDNames} ${moreOtherUDNames}
    `; return result; } // ===== end UD name tag const tooltipForTokenHolding = 'More than 107 tokens found, listing and displaying the total balance of the first 100 tokens only. Click on the Coins icon to see the full list and balance.'; var adjustPosition = 0; $(document).ready(function () { switchAmountToValue(document.getElementById("headerAmountValue"), 'Value (USD)', 'Amount', true); switchAmountToValue(document.getElementById("headerIntAmountValue"), 'Value (USD)', 'Amount', true); switchMethodColumn(document.getElementById("headerMethod"), 'Method', 'Action', true); onDocumentReady(); $("[rel='tooltip']").tooltip(); $("[data-bs-toggle-second='tooltip']").tooltip({ trigger: 'hover' }); $("[rel='tooltipEns']").each(function () { $(this).tooltip({ title: $(this).attr("tooltip-title") }); }); if (hash != '') { activaTab(hash); }; onAddressDocReady(); // Note: this is causing "Copied" tooltip not showing when copy button is clicked in V3, and seems like not applicable to v3, comment out first in case there is issue //$('[data-bs-toggle="tooltip"]').click(function () { // $('[data-bs-toggle="tooltip"]').tooltip("hide"); //}); document.getElementById("copyaddressbutton").classList.remove("disabled"); if ($("#txtSearchContract").length) { initialiseKeyupOnDocReady(); } if (!!$('#ensName')[0]) { initEnsNamePopOver(); } if (!!$("#udName")[0]) { initUDNamePopOver(); } handleToggle(); if (window.matchMedia("(max-width: 767px)").matches) { // Mobile adjustPosition = 90; } else { // Others adjustPosition = 50; } if (tooltipForTokenHolding) { const dropdownMenuBalance = document.getElementById("dropdownMenuBalance"); if (dropdownMenuBalance) { const dropdownWrapper = dropdownMenuBalance.closest(".dropdown"); if (dropdownWrapper) { dropdownWrapper.setAttribute("title", tooltipForTokenHolding); new bootstrap.Tooltip(dropdownWrapper); } } } }); function displayAudit() { $('html, body').animate({ scrollTop: $("#auditReportId").offset().top - adjustPosition }); } var cThemeMode = getCookie('displaymode'); function handleToggle() { var className = document.getElementsByClassName('editor'); var classNameCount = className.length; for (var j = 0; j t.innerWidth()) { if (mb + d > tb) { t.css('padding-bottom', ((mb + d) - tb)); } } else { t.css('overflow', 'visible'); } }).on('hidden.bs.dropdown', function () { $(this).css({ 'padding-bottom': '', 'overflow': '' }); }); var btn_ERC20_sort = { count: 0, reminder_count: 2, list: [], default_list: [], ERC20_sort_start: function (count) { if (document.getElementsByClassName('list-custom-divider-ERC20')[0]) { var self = this if (count != undefined) { self.count = count } var before_el = document.getElementsByClassName('list-custom-divider-ERC20')[0] var parent_el = before_el.parentNode var element_selector = parent_el.querySelectorAll(".list-custom-ERC20"); if (self.list.length == 0) { element_selector.forEach(function (e) { self.list.push(e); self.default_list.push(e); }); } $(".list-custom-ERC20").remove() var type = self.count % self.reminder_count self.sortList(type, parent_el, before_el); self.count++ } }, sortList: function (type, parent_el, before_el) { var self = this var sorted_list = [] var icon_el = $(before_el).find('button').find('i') switch (type) { case 1: icon_el.attr("class", "fad fa-sort-up") sorted_list = self.sortUsdAsc() break; default: icon_el.attr("class", "fad fa-sort-down") sorted_list = self.sortUsdDesc() } for (var i = sorted_list.length - 1; i >= 0; i--) { before_el.insertAdjacentElement('afterend', sorted_list[i]) } }, sortUsdAsc: function () { var self = this var sort_list = self.list sort_list.sort(function (a, b) { var target_a_value = self.formatCurrencyToNumber(a.querySelector('.list-usd-value').textContent.trim() || -1); var target_b_value = self.formatCurrencyToNumber(b.querySelector('.list-usd-value').textContent.trim() || -1); if (target_a_value == -1 || target_b_value == -1) { return 1; } if (target_a_value target_b_value) { return 1; } return 0 }); return sort_list }, sortUsdDesc: function () { var self = this var sort_list = self.list sort_list.sort(function (a, b) { var target_a_value = self.formatCurrencyToNumber(a.querySelector('.list-usd-value').textContent.trim() || -1); var target_b_value = self.formatCurrencyToNumber(b.querySelector('.list-usd-value').textContent.trim() || -1); if (target_a_value target_b_value) { return -1; } return 0 }); return sort_list }, formatCurrencyToNumber: function (strCurrency) { if (typeof strCurrency == "number") return strCurrency else return Number(strCurrency.replace(/[^0-9.-]+/g, "")); }, } function hrefTokenHolding() { var location = "/tokenholdings?a=0x9c3631dde5c8316be5b7554b0ccd2631c15a9a05" var queryString = $("input.form-control.form-control-xs.search.mb-3")[0].value if (queryString) { location += "&q=" + queryString } window.location.href = location } $(document).ready(function () { $("#btn_ERC20_sort").on("click", function (event) { event.preventDefault(); setTimeout(function () { btn_ERC20_sort.ERC20_sort_start() }, 10) }) btn_ERC20_sort.ERC20_sort_start() var mainAddress = $("#hdnAddress").val(); // user search for method filters var searchFuncTimeOut; $("#ContentPlaceHolder1_inputMethodName").on("keyup", function ($event) { if (searchFuncTimeOut) { clearTimeout(searchFuncTimeOut) } var searchTerm = $(this).val(); searchFuncTimeOut = setTimeout(function () { searchFunctions( searchTerm); }, 350); }); var isSearchFunctions = false; $("#dropdownMethod").on("click", function (e) { if (isSearchFunctions === false) { searchFunctions(''); isSearchFunctions = true; } }); const litDefaultMethodFilterHtml = ''; function searchFunctions(searchTerm) { if (searchTerm === '' || searchTerm.length > 3) { const curPath = encodeURIComponent(window.location.search); $.ajax({ type: 'Get', url: `/functionSearchHandler.ashx?ca=${mainAddress}&func=${searchTerm ?? ''}&curPath=${curPath}`, success: function (response) { $("#searchFunctionResult").html(''); if (response && response.length > 0) { for (var i = 0; i ${response[i].name} ${response[i].methodId} ` ); } $("[data-bs-toggle='tooltip']").tooltip(); } else { $("#searchFunctionResult").append( `` ); } $("#inputMethodSpinner").hide(); }, error: function (XMLHttpRequest, textStatus, errorThrown) { $("#searchFunctionResult").html(''); $("#inputMethodSpinner").hide(); } }); } else { $("#inputMethodSpinner").hide(); $("#searchFunctionResult").html(litDefaultMethodFilterHtml); } } // Resize window for analytic tab let isBusy = false; $(window).resize(function () { isBusy = true; if (isBusy) { let analyticFrame = document.getElementById('analytics_pageiframe'); if (analyticFrame && analyticFrame.contentWindow != undefined) { let navtab = analyticFrame.contentWindow.document.getElementsByClassName("nav_tabs1"); let hIframe = "0px"; if (navtab != null && navtab != undefined && navtab.length > 0) { let navH = Number(navtab[0].scrollHeight); hIframe = (Number(analyticFrame.contentWindow.document.getElementsByClassName("tab-content")[0].scrollHeight) + navH + 20) + 'px'; } else { hIframe = analyticFrame.contentWindow.document.body.scrollHeight + 'px'; } analyticFrame.style.height = hIframe } } }); // detect tooltip for token holding dropdown if ($(".addresses-tooltip-over").length > 0) { if (!isMobile()) { $(".addresses-tooltip-over").attr("data-bs-trigger", "hover"); let tooltip = bootstrap.Tooltip.getInstance(".addresses-tooltip-over"); if (tooltip !== null) { tooltip.dispose(); tooltip = new bootstrap.Tooltip($(".addresses-tooltip-over")); tooltip._config.trigger = 'hover'; tooltip.update(); } } } // Quick export transaction csv const quickExportCsvData = '[{"Txhash":"0xf09ee0627c07068dae0332465b9ae36e52ef083d205988b5e13d6fbff1ff41e7","Status":"Error in Main Txn : execution reverted","Method":"0xf09f8f9b","Blockno":"42073861","DateTime":"2026-02-12 22:57:49","Sender":"0x675B864Fc90682Ac9D55022Bc22124FD357279D8","SenderLable":null,"Receiver":"0x9c3631dDE5c8316bE5B7554B0CcD2631C15a9A05","ReceiverLable":null,"Amount":"0.0000001 ETH","Value":"$0.00","TxnFee":"0.00000008"},{"Txhash":"0x61cd00ba7d7a1baecb32dcfb9afc59deff872ec126ae1136d96d7c99e46483a2","Status":"Success","Method":"Exec Transaction","Blockno":"41153906","DateTime":"2026-01-22 15:52:39","Sender":"0x8De14E014402C0677B075A69122F94C0425Cc179","SenderLable":"Bundler: 0x8de...179","Receiver":"0x9c3631dDE5c8316bE5B7554B0CcD2631C15a9A05","ReceiverLable":null,"Amount":"0 ETH","Value":"$0.00","TxnFee":"0.0000009"},{"Txhash":"0xb15c92d59aa260e241d406d9f470ed79c17dc893bae1111c9a6b4f0877a95b9a","Status":"Success","Method":"Transfer","Blockno":"39181997","DateTime":"2025-12-08 00:22:21","Sender":"0x1b4C289c4f6e0565f1E432654254485c490679e9","SenderLable":"itsmoist.eth","Receiver":"0x9c3631dDE5c8316bE5B7554B0CcD2631C15a9A05","ReceiverLable":null,"Amount":"0.001 ETH","Value":"$2.01","TxnFee":"0.00000003"},{"Txhash":"0xb3f15f7fbf0e003e60e5938d0c949a2b7083afc8a90472b141622d4f07be5f6f","Status":"Success","Method":"Exec Transaction","Blockno":"37480255","DateTime":"2025-10-29 14:57:37","Sender":"0xB3aA47edBc9A1178B56bB55D1a9E3821845870e8","SenderLable":"Universal Protocol: Deployer 4","Receiver":"0x9c3631dDE5c8316bE5B7554B0CcD2631C15a9A05","ReceiverLable":null,"Amount":"0 ETH","Value":"$0.00","TxnFee":"0.00000226"},{"Txhash":"0x3d9996961d15611557a4c31ec1bbb372c60ec3c8db0037a8eb4dee8958524849","Status":"Success","Method":"Exec Transaction","Blockno":"36965976","DateTime":"2025-10-17 17:14:59","Sender":"0x417B4Adc279743FC49F047C323FC668db9E600D8","SenderLable":null,"Receiver":"0x9c3631dDE5c8316bE5B7554B0CcD2631C15a9A05","ReceiverLable":null,"Amount":"0 ETH","Value":"$0.00","TxnFee":"0.00000115"},{"Txhash":"0x7f6d0ce30c2fec1df3c07cb88b51facf4e2172fc8d5543fefe15b2b43848dc6f","Status":"Success","Method":"Exec Transaction","Blockno":"36965244","DateTime":"2025-10-17 16:50:35","Sender":"0xba9A3c0a22bAebE8c4926227BdE32d6EdC0D5d28","SenderLable":"Gelato: Executor","Receiver":"0x9c3631dDE5c8316bE5B7554B0CcD2631C15a9A05","ReceiverLable":null,"Amount":"0 ETH","Value":"$0.00","TxnFee":"0.00000096"},{"Txhash":"0x53d0083ece1d1c20c61e3156a1fa43d8a996edab98d56b39a515bdf59cd33894","Status":"Success","Method":"Transfer","Blockno":"26954703","DateTime":"2025-02-27 23:25:53","Sender":"0x846513f5990a355734Ff05c22e04e171231c9dc7","SenderLable":null,"Receiver":"0x9c3631dDE5c8316bE5B7554B0CcD2631C15a9A05","ReceiverLable":null,"Amount":"0 ETH","Value":"$0.00","TxnFee":"0.00000008"},{"Txhash":"0x9954af3167aac206e2912aa20c874e3f7c7e76335e8447f1fa62417d95b61fad","Status":"Success","Method":"Transfer","Blockno":"26954672","DateTime":"2025-02-27 23:24:51","Sender":"0x846513f5990a355734Ff05c22e04e171231c9dc7","SenderLable":null,"Receiver":"0x9c3631dDE5c8316bE5B7554B0CcD2631C15a9A05","ReceiverLable":null,"Amount":"0 ETH","Value":"$0.00","TxnFee":"0.00000008"},{"Txhash":"0xf8b5a173d6299b48219de4a8197f25ec6ce68393eb2f9d0e99f4784c735d7f5d","Status":"Error in Main Txn : execution reverted","Method":"Enable Module","Blockno":"26435089","DateTime":"2025-02-15 22:45:25","Sender":"0xc320Cb51881C130C2F25F9196A9677AF73C922d8","SenderLable":null,"Receiver":"0x9c3631dDE5c8316bE5B7554B0CcD2631C15a9A05","ReceiverLable":null,"Amount":"0 ETH","Value":"$0.00","TxnFee":"0.00000008"},{"Txhash":"0x991a615ae2cb6a50c5ea0f5b41c6245a1b9e003e8f3e592140f05b1b4d49d3df","Status":"Success","Method":"Transfer","Blockno":"26434937","DateTime":"2025-02-15 22:40:21","Sender":"0x846513f5990a355734Ff05c22e04e171231c9dc7","SenderLable":null,"Receiver":"0x9c3631dDE5c8316bE5B7554B0CcD2631C15a9A05","ReceiverLable":null,"Amount":"0 ETH","Value":"$0.00","TxnFee":"0.00000008"},{"Txhash":"0x91f60dd4cd0b32cd66320b7208d1c7a66b5a1769aa0551f6d2dd1b52f58f3487","Status":"Success","Method":"Transfer","Blockno":"26434849","DateTime":"2025-02-15 22:37:25","Sender":"0x846513f5990a355734Ff05c22e04e171231c9dc7","SenderLable":null,"Receiver":"0x9c3631dDE5c8316bE5B7554B0CcD2631C15a9A05","ReceiverLable":null,"Amount":"0 ETH","Value":"$0.00","TxnFee":"0.00000009"},{"Txhash":"0x6033baf7ece48a32115cce3c033e5524b90d25cd4f13fae715cefff63211a3fc","Status":"Success","Method":"Transfer","Blockno":"26431071","DateTime":"2025-02-15 20:31:29","Sender":"0xc320Cb51881C130C2F25F9196A9677AF73C922d8","SenderLable":null,"Receiver":"0x9c3631dDE5c8316bE5B7554B0CcD2631C15a9A05","ReceiverLable":null,"Amount":"0 ETH","Value":"$0.00","TxnFee":"0.0000001"},{"Txhash":"0x2333b92f87523ac4be0465a5164a6a8a80604441df772b44d69501bc59520745","Status":"Success","Method":"Transfer","Blockno":"26430982","DateTime":"2025-02-15 20:28:31","Sender":"0xc320Cb51881C130C2F25F9196A9677AF73C922d8","SenderLable":null,"Receiver":"0x9c3631dDE5c8316bE5B7554B0CcD2631C15a9A05","ReceiverLable":null,"Amount":"0 ETH","Value":"$0.00","TxnFee":"0.0000001"},{"Txhash":"0x06c7c4b031f063e64ae0082705442f71fbe006346a67a5148aca4cb788b7e6ba","Status":"Success","Method":"Transfer","Blockno":"26430926","DateTime":"2025-02-15 20:26:39","Sender":"0x846513f5990a355734Ff05c22e04e171231c9dc7","SenderLable":null,"Receiver":"0x9c3631dDE5c8316bE5B7554B0CcD2631C15a9A05","ReceiverLable":null,"Amount":"0 ETH","Value":"$0.00","TxnFee":"0.0000001"},{"Txhash":"0x853a97cb0d268e3436407da07ef0745d2f49f330cfbb465b465bdc9fc87e0845","Status":"Success","Method":"Transfer","Blockno":"26430891","DateTime":"2025-02-15 20:25:29","Sender":"0x846513f5990a355734Ff05c22e04e171231c9dc7","SenderLable":null,"Receiver":"0x9c3631dDE5c8316bE5B7554B0CcD2631C15a9A05","ReceiverLable":null,"Amount":"0 ETH","Value":"$0.00","TxnFee":"0.0000001"},{"Txhash":"0x458acae201ea84062ee05e09d751582b830bb72b41725a8f0b73febad7ced726","Status":"Success","Method":"Transfer","Blockno":"26430792","DateTime":"2025-02-15 20:22:11","Sender":"0x846513f5990a355734Ff05c22e04e171231c9dc7","SenderLable":null,"Receiver":"0x9c3631dDE5c8316bE5B7554B0CcD2631C15a9A05","ReceiverLable":null,"Amount":"0 ETH","Value":"$0.00","TxnFee":"0.0000001"},{"Txhash":"0xf05ee15f779a96b865f9259f005a6a40b666d1fc23ee21e6d662bd86744783e9","Status":"Error in Main Txn : execution reverted","Method":"Change Threshold","Blockno":"26173821","DateTime":"2025-02-09 21:36:29","Sender":"0xc320Cb51881C130C2F25F9196A9677AF73C922d8","SenderLable":null,"Receiver":"0x9c3631dDE5c8316bE5B7554B0CcD2631C15a9A05","ReceiverLable":null,"Amount":"0 ETH","Value":"$0.00","TxnFee":"0.0000001"},{"Txhash":"0xf9e9f9859b8dc56ae7e1a19098e0fbfc3e5f040449240e3755b26eea8375dcb4","Status":"Error in Main Txn : execution reverted","Method":"Add Owner With Threshold","Blockno":"26173751","DateTime":"2025-02-09 21:34:09","Sender":"0x846513f5990a355734Ff05c22e04e171231c9dc7","SenderLable":null,"Receiver":"0x9c3631dDE5c8316bE5B7554B0CcD2631C15a9A05","ReceiverLable":null,"Amount":"0 ETH","Value":"$0.00","TxnFee":"0.0000001"},{"Txhash":"0xc16e52a7658a9c3558896da5839805ada792139b7dbeeee50323ab94b0cbd67d","Status":"Error in Main Txn : execution reverted","Method":"Change Owner","Blockno":"23588443","DateTime":"2024-12-12 01:17:13","Sender":"0xA5f81Eb733Ad4dc244ed53fFd2a708FeDB27DbFD","SenderLable":null,"Receiver":"0x9c3631dDE5c8316bE5B7554B0CcD2631C15a9A05","ReceiverLable":null,"Amount":"0 ETH","Value":"$0.00","TxnFee":"0.00000051"},{"Txhash":"0x6d11e9b3f366fd58a0e2c8b718f6b34c47f6d8c2f0dba665c0bcf8fadae8faa9","Status":"Error in Main Txn : execution reverted","Method":"Change Owner","Blockno":"23588291","DateTime":"2024-12-12 01:12:09","Sender":"0xA5f81Eb733Ad4dc244ed53fFd2a708FeDB27DbFD","SenderLable":null,"Receiver":"0x9c3631dDE5c8316bE5B7554B0CcD2631C15a9A05","ReceiverLable":null,"Amount":"0 ETH","Value":"$0.00","TxnFee":"0.00000054"},{"Txhash":"0x1d50fdcde88b5104c338920a7c08d8bb6bea67719ce57c7d077e16517bff461d","Status":"Error in Main Txn : execution reverted","Method":"Swap Owner","Blockno":"23061741","DateTime":"2024-11-29 20:40:29","Sender":"0x69634470E8aC345611FBe36555d380B5761EB3E4","SenderLable":null,"Receiver":"0x9c3631dDE5c8316bE5B7554B0CcD2631C15a9A05","ReceiverLable":null,"Amount":"0 ETH","Value":"$0.00","TxnFee":"0.00000164"},{"Txhash":"0x120883bba8e77967bb09cc7093fcbc671c27dc0e5c23234273e57f855f59509e","Status":"Error in Main Txn : execution reverted","Method":"Add Owner With Threshold","Blockno":"22810943","DateTime":"2024-11-24 01:20:33","Sender":"0x69634470E8aC345611FBe36555d380B5761EB3E4","SenderLable":null,"Receiver":"0x9c3631dDE5c8316bE5B7554B0CcD2631C15a9A05","ReceiverLable":null,"Amount":"0 ETH","Value":"$0.00","TxnFee":"0.00000021"},{"Txhash":"0x67f69d12582fa61af152ec307a6a8d18912bce912b804795d7c15d88b1eec924","Status":"Error in Main Txn : execution reverted","Method":"Add Owner With Threshold","Blockno":"22810913","DateTime":"2024-11-24 01:19:33","Sender":"0x69634470E8aC345611FBe36555d380B5761EB3E4","SenderLable":null,"Receiver":"0x9c3631dDE5c8316bE5B7554B0CcD2631C15a9A05","ReceiverLable":null,"Amount":"0 ETH","Value":"$0.00","TxnFee":"0.00000022"},{"Txhash":"0xfa8e53c2d611d3bb260a112cc6d4b60a03e59d6f0edc4a0614ca36da91769936","Status":"Error in Main Txn : execution reverted","Method":"Swap Owner","Blockno":"22810846","DateTime":"2024-11-24 01:17:19","Sender":"0x69634470E8aC345611FBe36555d380B5761EB3E4","SenderLable":null,"Receiver":"0x9c3631dDE5c8316bE5B7554B0CcD2631C15a9A05","ReceiverLable":null,"Amount":"0 ETH","Value":"$0.00","TxnFee":"0.00000021"},{"Txhash":"0x5605092fb823d6bae5478e3ba17f5234d679d342e2c5a9ee41cb98c4777d1f25","Status":"Error in Main Txn : execution reverted","Method":"Add Owner With Threshold","Blockno":"22464947","DateTime":"2024-11-16 01:07:21","Sender":"0x69634470E8aC345611FBe36555d380B5761EB3E4","SenderLable":null,"Receiver":"0x9c3631dDE5c8316bE5B7554B0CcD2631C15a9A05","ReceiverLable":null,"Amount":"0 ETH","Value":"$0.00","TxnFee":"0.00000108"}]'; const quickExportCsvTitle = 'Transaction Hash,Status,Method,Blockno,"DateTime (UTC)",From,From_Nametag,To,To_Nametag,Amount,Value (USD),Txn Fee'; let isExportFinish = true; if ($("#btnExportQuickTableToCSV").length > 0 && quickExportCsvData) { $("#btnExportQuickTableToCSV").click(function () { if (isExportFinish == true) { isExportFinish = false; $("#btnExportQuickTableToCSV").append(''); let lstTxsObj = JSON.parse(quickExportCsvData); if (lstTxsObj.length > 0) { let csvRows = []; csvRows.push(quickExportCsvTitle.replace(/"/g, "")); for (let i = 0; i 0 && quickExportInternalTxsData) { $("#ContentPlaceHolder1_btnQuickExportInternalTxs").click(function () { if (isExportFinish == true) { isExportFinish = false; $("#ContentPlaceHolder1_btnQuickExportInternalTxs").append(''); let lstTxsObj = JSON.parse(quickExportInternalTxsData); if (lstTxsObj.length > 0) { let csvRows = []; csvRows.push(quickExportInternalTxsTitle.replace(/"/g, "")); for (let i = 0; i { if (x.startsWith("F")) { file = x.replace("F", ""); } else if (x.startsWith("L")) { line = x.replace("L", ""); } }) var editorId = "editor" + file var editorElem = $("#" + editorId); if (!editorElem.length) { return; } if (!line) { return; } var editor = ace.edit(editorId); editor.resize(true); editor.scrollToLine(line, true, true, function () { }); editor.gotoLine(line); var Range = ace.require('ace/range').Range $(document).scrollTop($("#" + editorId).offset().top - 95); //document.getElementById(editorId).scrollIntoView(); editor.session.addMarker(new Range(line - 1, 0, line - 1, 1), "myMarker", "fullLine"); //window.onbeforeunload = function () { $(document).scrollTop($("#" + editorId).offset().top); }; } setTimeout(function () { editorGoToLine(); }, 500); }); $("body,html").click(function (evt) { let elm = $(evt.target).attr("id"); let isClickedMode = elm === "darkModaBtn" || elm === "darkModaBtnIcon"; if (isClickedMode) { let isClickedSunMode = false; let clrBorder = "#112641"; if (elm === "darkModaBtn") isClickedSunMode = $(evt.target).find("#darkModaBtnIcon").hasClass("fa-moon"); if (elm === "darkModaBtnIcon") isClickedSunMode = $(evt.target).hasClass("fa-moon"); if (isClickedSunMode) { clrBorder = "#fff"; } let iframes = document.getElementById('analytics_pageiframe'); let heatcell = iframes.contentWindow.document.getElementsByClassName("ch-day").length; for (let i = 0; i