S Price: $0.048362 (-5.31%)
Gas: 55 Gwei

Contract

0xf8Fc6d1289734Fdffe8B58d8D394b33fe8CC545F

Overview

S Balance

Sonic LogoSonic LogoSonic Logo133,306,588.385 S

S Value

$6,446,935.90 (@ $0.05/S)

Token Holdings

More Info

Private Name Tags

Multichain Info

No addresses found
Transaction Hash
Block
From
To
Exec Transaction621638442026-02-06 12:49:369 days ago1770382176IN
Sonic: Opera Sonic Migration Bridge Operator
0 S0.0046633455
Exec Transaction605160862026-01-16 14:18:1030 days ago1768573090IN
Sonic: Opera Sonic Migration Bridge Operator
0 S0.004216550
Transfer604492722026-01-15 15:05:2531 days ago1768489525IN
Sonic: Opera Sonic Migration Bridge Operator
5,829,219 S0.0015782255
Transfer604489382026-01-15 14:59:3231 days ago1768489172IN
Sonic: Opera Sonic Migration Bridge Operator
1.42 S0.0015782255
Exec Transaction604461972026-01-15 14:20:2331 days ago1768486823IN
Sonic: Opera Sonic Migration Bridge Operator
0 S0.003902250
Exec Transaction596995612026-01-06 0:44:3540 days ago1767660275IN
Sonic: Opera Sonic Migration Bridge Operator
0 S0.00466455
Exec Transaction592336832025-12-30 10:38:5947 days ago1767091139IN
Sonic: Opera Sonic Migration Bridge Operator
0 S0.004036550
Exec Transaction562727612025-11-24 7:10:4983 days ago1763968249IN
Sonic: Opera Sonic Migration Bridge Operator
0 S0.0044052550
Exec Transaction562727112025-11-24 7:10:0783 days ago1763968207IN
Sonic: Opera Sonic Migration Bridge Operator
0 S0.0035275550
Exec Transaction544423592025-11-08 21:05:2198 days ago1762635921IN
Sonic: Opera Sonic Migration Bridge Operator
0 S0.0046647155
Exec Transaction543181632025-11-08 6:45:0399 days ago1762584303IN
Sonic: Opera Sonic Migration Bridge Operator
0 S0.004248850
Exec Transaction522607862025-10-28 16:58:22110 days ago1761670702IN
Sonic: Opera Sonic Migration Bridge Operator
0 S0.00466455
Exec Transaction522605552025-10-28 16:56:31110 days ago1761670591IN
Sonic: Opera Sonic Migration Bridge Operator
0 S0.0049093555
Exec Transaction514186232025-10-21 14:46:11117 days ago1761057971IN
Sonic: Opera Sonic Migration Bridge Operator
0 S0.0051295755
Exec Transaction500107742025-10-10 14:01:51128 days ago1760104911IN
Sonic: Opera Sonic Migration Bridge Operator
0 S0.0048706955
Exec Transaction488368662025-09-30 10:06:39138 days ago1759226799IN
Sonic: Opera Sonic Migration Bridge Operator
0 S0.0049100755
Exec Transaction475254182025-09-20 15:31:47148 days ago1758382307IN
Sonic: Opera Sonic Migration Bridge Operator
0 S0.0041575951.49999999
Exec Transaction473712992025-09-19 8:30:20149 days ago1758270620IN
Sonic: Opera Sonic Migration Bridge Operator
0 S0.0045969451.5
Exec Transaction468244172025-09-14 15:12:27154 days ago1757862747IN
Sonic: Opera Sonic Migration Bridge Operator
0 S0.0046647155
Exec Transaction458401052025-09-05 11:42:20163 days ago1757072540IN
Sonic: Opera Sonic Migration Bridge Operator
0 S0.004367251.5
Exec Transaction458399142025-09-05 11:40:08163 days ago1757072408IN
Sonic: Opera Sonic Migration Bridge Operator
0 S0.0043659151.5
Exec Transaction458398602025-09-05 11:39:29163 days ago1757072369IN
Sonic: Opera Sonic Migration Bridge Operator
0 S0.0052992271.5
Exec Transaction458184282025-09-05 7:36:54163 days ago1757057814IN
Sonic: Opera Sonic Migration Bridge Operator
0 S0.0059322469.80100005
Exec Transaction457328232025-09-04 14:04:14164 days ago1756994654IN
Sonic: Opera Sonic Migration Bridge Operator
0 S0.0043053851.04674453
Exec Transaction457308442025-09-04 13:44:20164 days ago1756993460IN
Sonic: Opera Sonic Migration Bridge Operator
0 S0.004036550
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Block From To
621638442026-02-06 12:49:369 days ago1770382176
Sonic: Opera Sonic Migration Bridge Operator
5,000,000 S
605160862026-01-16 14:18:1030 days ago1768573090
Sonic: Opera Sonic Migration Bridge Operator
88,665,569.04 S
604461972026-01-15 14:20:2331 days ago1768486823
Sonic: Opera Sonic Migration Bridge Operator
5,829,196 S
596995612026-01-06 0:44:3540 days ago1767660275
Sonic: Opera Sonic Migration Bridge Operator
5,000,000 S
592336832025-12-30 10:38:5947 days ago1767091139
Sonic: Opera Sonic Migration Bridge Operator
5,000,000 S
562727612025-11-24 7:10:4983 days ago1763968249
Sonic: Opera Sonic Migration Bridge Operator
6,000,000 S
544423592025-11-08 21:05:2198 days ago1762635921
Sonic: Opera Sonic Migration Bridge Operator
7,500,000 S
543181632025-11-08 6:45:0399 days ago1762584303
Sonic: Opera Sonic Migration Bridge Operator
10,000,000 S
522607862025-10-28 16:58:22110 days ago1761670702
Sonic: Opera Sonic Migration Bridge Operator
5,000,000 S
522605552025-10-28 16:56:31110 days ago1761670591
Sonic: Opera Sonic Migration Bridge Operator
10,000,000 S
514186232025-10-21 14:46:11117 days ago1761057971
Sonic: Opera Sonic Migration Bridge Operator
5,000,000 S
500107742025-10-10 14:01:51128 days ago1760104911
Sonic: Opera Sonic Migration Bridge Operator
5,000,000 S
488368662025-09-30 10:06:39138 days ago1759226799
Sonic: Opera Sonic Migration Bridge Operator
65,000,000 S
475254182025-09-20 15:31:47148 days ago1758382307
Sonic: Opera Sonic Migration Bridge Operator
5,000,000 S
473712992025-09-19 8:30:20149 days ago1758270620
Sonic: Opera Sonic Migration Bridge Operator
4,000,000 S
468244172025-09-14 15:12:27154 days ago1757862747
Sonic: Opera Sonic Migration Bridge Operator
7,000,000 S
458401052025-09-05 11:42:20163 days ago1757072540
Sonic: Opera Sonic Migration Bridge Operator
12,000,000 S
458399142025-09-05 11:40:08163 days ago1757072408
Sonic: Opera Sonic Migration Bridge Operator
5,000,000 S
458184282025-09-05 7:36:54163 days ago1757057814
Sonic: Opera Sonic Migration Bridge Operator
7,000,000 S
457328232025-09-04 14:04:14164 days ago1756994654
Sonic: Opera Sonic Migration Bridge Operator
126,622,348.845 S
457308442025-09-04 13:44:20164 days ago1756993460
Sonic: Opera Sonic Migration Bridge Operator
7,000,000 S
457248832025-09-04 12:42:05164 days ago1756989725
Sonic: Opera Sonic Migration Bridge Operator
150,000,000 S
456945822025-09-04 6:54:12164 days ago1756968852
Sonic: Opera Sonic Migration Bridge Operator
1 S
449941272025-08-29 9:52:29170 days ago1756461149
Sonic: Opera Sonic Migration Bridge Operator
5,000,000 S
448776312025-08-28 14:00:14171 days ago1756389614
Sonic: Opera Sonic Migration Bridge Operator
5,000,000 S
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 0x94B736a4...28a70e818
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 LGPLv3 license

Contract Source Code (Solidity)

/**
 *Submitted for verification at SonicScan.org on 2024-12-20
*/

// 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())
        }
    }
}

Contract Security Audit

Contract ABI

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

0x608060405234801561001057600080fd5b506040516101e63803806101e68339818101604052602081101561003357600080fd5b8101908080519060200190929190505050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156100ca576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260228152602001806101c46022913960400191505060405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505060ab806101196000396000f3fe608060405273ffffffffffffffffffffffffffffffffffffffff600054167fa619486e0000000000000000000000000000000000000000000000000000000060003514156050578060005260206000f35b3660008037600080366000845af43d6000803e60008114156070573d6000fd5b3d6000f3fea2646970667358221220d1429297349653a4918076d650332de1a1068c5f3e07c5c82360c277770b955264736f6c63430007060033496e76616c69642073696e676c65746f6e20616464726573732070726f76696465640000000000000000000000003e5c63644e683549055b9be8653de26e0b4cd36e

Deployed Bytecode

0x608060405273ffffffffffffffffffffffffffffffffffffffff600054167fa619486e0000000000000000000000000000000000000000000000000000000060003514156050578060005260206000f35b3660008037600080366000845af43d6000803e60008114156070573d6000fd5b3d6000f3fea2646970667358221220d1429297349653a4918076d650332de1a1068c5f3e07c5c82360c277770b955264736f6c63430007060033

Deployed Bytecode Sourcemap

524:1528:0:-:0;;;1376:42;1372:1;1366:8;1362:57;1556:66;1552:1;1539:15;1536:87;1533:2;;;1653:10;1650:1;1643:21;1692:4;1689:1;1682:15;1533:2;1745:14;1742:1;1739;1726:34;1843:1;1840;1824:14;1821:1;1809:10;1802:5;1789:56;1880:16;1877:1;1874;1859:38;1926:1;1917:7;1914:14;1911:2;;;1958:16;1955:1;1948:27;1911:2;2014:16;2011:1;2004:27

Swarm Source

ipfs://d1429297349653a4918076d650332de1a1068c5f3e07c5c82360c277770b9552

Block Transaction 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 ENS.
`; } 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; } function removeSpecificDomain(url, domain) { return url.replace(new RegExp(domain + '$'), ''); } // ===== 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 = '4 Token Contracts'; 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=0xf8fc6d1289734fdffe8b58d8d394b33fe8cc545f" 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":"0x0c1106716d0d200cf4839ce90f673cde2c5eac6adbed8d9c8b3f69fde278be6a","Status":"Success","Method":"Exec Transaction","Blockno":"62163844","DateTime":"2026-02-06 12:49:36","Sender":"0x6E9f215876d210E5c8A197DF598db2d8FE09F6C5","SenderLable":null,"Receiver":"0xf8Fc6d1289734Fdffe8B58d8D394b33fe8CC545F","ReceiverLable":"Sonic: Opera Sonic Migration Bridge Operator","Amount":"0 S","Value":"$0.00","TxnFee":"0.00466334"},{"Txhash":"0x72d8a8e2f32d1764770739dc40b2cb238559c726f996c9f08eb7236426ae9f1a","Status":"Success","Method":"Exec Transaction","Blockno":"60516086","DateTime":"2026-01-16 14:18:10","Sender":"0xfa2A05E6b505C3fCe3d8676149Ec6a4fBF1231cB","SenderLable":null,"Receiver":"0xf8Fc6d1289734Fdffe8B58d8D394b33fe8CC545F","ReceiverLable":"Sonic: Opera Sonic Migration Bridge Operator","Amount":"0 S","Value":"$0.00","TxnFee":"0.0042165"},{"Txhash":"0x783cabe33d4bc4b3048be50591bdbee04321be40152b3e73485504787fd67343","Status":"Success","Method":"Transfer","Blockno":"60449272","DateTime":"2026-01-15 15:05:25","Sender":"0x72bfDaa03916e16F3EeE3bFb3e09e563fDdCDd23","SenderLable":null,"Receiver":"0xf8Fc6d1289734Fdffe8B58d8D394b33fe8CC545F","ReceiverLable":"Sonic: Opera Sonic Migration Bridge Operator","Amount":"5,829,219 S","Value":"$281,911.06","TxnFee":"0.00157822"},{"Txhash":"0x59d507b50fb22946f8142ec057cf1c491cffed2d1f8ab0b70eccc41f215d0940","Status":"Success","Method":"Transfer","Blockno":"60448938","DateTime":"2026-01-15 14:59:32","Sender":"0x72bfDaa03916e16F3EeE3bFb3e09e563fDdCDd23","SenderLable":null,"Receiver":"0xf8Fc6d1289734Fdffe8B58d8D394b33fe8CC545F","ReceiverLable":"Sonic: Opera Sonic Migration Bridge Operator","Amount":"1.42 S","Value":"$0.07","TxnFee":"0.00157822"},{"Txhash":"0x0b51817451e785feb1cd9cc4fa73eef17cff354e0be1632d712b64de5b36440c","Status":"Success","Method":"Exec Transaction","Blockno":"60446197","DateTime":"2026-01-15 14:20:23","Sender":"0xfa2A05E6b505C3fCe3d8676149Ec6a4fBF1231cB","SenderLable":null,"Receiver":"0xf8Fc6d1289734Fdffe8B58d8D394b33fe8CC545F","ReceiverLable":"Sonic: Opera Sonic Migration Bridge Operator","Amount":"0 S","Value":"$0.00","TxnFee":"0.0039022"},{"Txhash":"0x32621d21c526808ca1594bdb981a36ae9da0a65f5b24ceeeed82d90e306fdf40","Status":"Success","Method":"Exec Transaction","Blockno":"59699561","DateTime":"2026-01-06 00:44:35","Sender":"0x6E9f215876d210E5c8A197DF598db2d8FE09F6C5","SenderLable":null,"Receiver":"0xf8Fc6d1289734Fdffe8B58d8D394b33fe8CC545F","ReceiverLable":"Sonic: Opera Sonic Migration Bridge Operator","Amount":"0 S","Value":"$0.00","TxnFee":"0.004664"},{"Txhash":"0x6435e2bc358df772553067f589ba508c7aea11ba9817bb5d6eb1876b621ec963","Status":"Success","Method":"Exec Transaction","Blockno":"59233683","DateTime":"2025-12-30 10:38:59","Sender":"0xfa2A05E6b505C3fCe3d8676149Ec6a4fBF1231cB","SenderLable":null,"Receiver":"0xf8Fc6d1289734Fdffe8B58d8D394b33fe8CC545F","ReceiverLable":"Sonic: Opera Sonic Migration Bridge Operator","Amount":"0 S","Value":"$0.00","TxnFee":"0.0040365"},{"Txhash":"0x4191ca43c917f8402771c90002259c042311cabfbdc1d1ff8d0f1c78adea2033","Status":"Success","Method":"Exec Transaction","Blockno":"56272761","DateTime":"2025-11-24 07:10:49","Sender":"0xfa2A05E6b505C3fCe3d8676149Ec6a4fBF1231cB","SenderLable":null,"Receiver":"0xf8Fc6d1289734Fdffe8B58d8D394b33fe8CC545F","ReceiverLable":"Sonic: Opera Sonic Migration Bridge Operator","Amount":"0 S","Value":"$0.00","TxnFee":"0.00440525"},{"Txhash":"0xffd4f914885ea82eaacf9766de234ba9bd1db97b0d42d4a2669a01eb0775995d","Status":"Success","Method":"Exec Transaction","Blockno":"56272711","DateTime":"2025-11-24 07:10:07","Sender":"0xfa2A05E6b505C3fCe3d8676149Ec6a4fBF1231cB","SenderLable":null,"Receiver":"0xf8Fc6d1289734Fdffe8B58d8D394b33fe8CC545F","ReceiverLable":"Sonic: Opera Sonic Migration Bridge Operator","Amount":"0 S","Value":"$0.00","TxnFee":"0.00352755"},{"Txhash":"0x738129c12ef2eba9a1cd495dad3154a5ee7072ee7613c32bf142d193fc1f74fc","Status":"Success","Method":"Exec Transaction","Blockno":"54442359","DateTime":"2025-11-08 21:05:21","Sender":"0x6E9f215876d210E5c8A197DF598db2d8FE09F6C5","SenderLable":null,"Receiver":"0xf8Fc6d1289734Fdffe8B58d8D394b33fe8CC545F","ReceiverLable":"Sonic: Opera Sonic Migration Bridge Operator","Amount":"0 S","Value":"$0.00","TxnFee":"0.00466471"},{"Txhash":"0x54add6efdbf16e413fff0b36107df50727a70493a07ee481326d70607adcc9b4","Status":"Success","Method":"Exec Transaction","Blockno":"54318163","DateTime":"2025-11-08 06:45:03","Sender":"0xfa2A05E6b505C3fCe3d8676149Ec6a4fBF1231cB","SenderLable":null,"Receiver":"0xf8Fc6d1289734Fdffe8B58d8D394b33fe8CC545F","ReceiverLable":"Sonic: Opera Sonic Migration Bridge Operator","Amount":"0 S","Value":"$0.00","TxnFee":"0.0042488"},{"Txhash":"0x7f0deaa0a9cf27ed955b62546bce6ce7a7668c2ed3e15707dfb713fb079d2ffe","Status":"Success","Method":"Exec Transaction","Blockno":"52260786","DateTime":"2025-10-28 16:58:22","Sender":"0x6E9f215876d210E5c8A197DF598db2d8FE09F6C5","SenderLable":null,"Receiver":"0xf8Fc6d1289734Fdffe8B58d8D394b33fe8CC545F","ReceiverLable":"Sonic: Opera Sonic Migration Bridge Operator","Amount":"0 S","Value":"$0.00","TxnFee":"0.004664"},{"Txhash":"0xac0a2307efa200e845a74ce99c8ec0edc9c786cdcc93ba10223d22594c757c7e","Status":"Success","Method":"Exec Transaction","Blockno":"52260555","DateTime":"2025-10-28 16:56:31","Sender":"0x6E9f215876d210E5c8A197DF598db2d8FE09F6C5","SenderLable":null,"Receiver":"0xf8Fc6d1289734Fdffe8B58d8D394b33fe8CC545F","ReceiverLable":"Sonic: Opera Sonic Migration Bridge Operator","Amount":"0 S","Value":"$0.00","TxnFee":"0.00490935"},{"Txhash":"0xb2ec9bd438a851148f2fc3b689b910f579d208c338b54fef8839174bb105de66","Status":"Success","Method":"Exec Transaction","Blockno":"51418623","DateTime":"2025-10-21 14:46:11","Sender":"0xA7bC226C9586DcD93FF1b0B038C04e89b37C8fa7","SenderLable":null,"Receiver":"0xf8Fc6d1289734Fdffe8B58d8D394b33fe8CC545F","ReceiverLable":"Sonic: Opera Sonic Migration Bridge Operator","Amount":"0 S","Value":"$0.00","TxnFee":"0.00512957"},{"Txhash":"0x034af41203139530a6774a093df173553ffd66ad0de99b2aec6be2ac006ad35b","Status":"Success","Method":"Exec Transaction","Blockno":"50010774","DateTime":"2025-10-10 14:01:51","Sender":"0x6E9f215876d210E5c8A197DF598db2d8FE09F6C5","SenderLable":null,"Receiver":"0xf8Fc6d1289734Fdffe8B58d8D394b33fe8CC545F","ReceiverLable":"Sonic: Opera Sonic Migration Bridge Operator","Amount":"0 S","Value":"$0.00","TxnFee":"0.00487069"},{"Txhash":"0x1c37ccfe285407ecd1bbbd90d7ab3bf795e6001859184371bc353bbcdbd7b722","Status":"Success","Method":"Exec Transaction","Blockno":"48836866","DateTime":"2025-09-30 10:06:39","Sender":"0x6E9f215876d210E5c8A197DF598db2d8FE09F6C5","SenderLable":null,"Receiver":"0xf8Fc6d1289734Fdffe8B58d8D394b33fe8CC545F","ReceiverLable":"Sonic: Opera Sonic Migration Bridge Operator","Amount":"0 S","Value":"$0.00","TxnFee":"0.00491007"},{"Txhash":"0xe34aa4d796263afdc51fb2ab690545bf40514eff1fae1b000e94d05ac503833b","Status":"Success","Method":"Exec Transaction","Blockno":"47525418","DateTime":"2025-09-20 15:31:47","Sender":"0xfa2A05E6b505C3fCe3d8676149Ec6a4fBF1231cB","SenderLable":null,"Receiver":"0xf8Fc6d1289734Fdffe8B58d8D394b33fe8CC545F","ReceiverLable":"Sonic: Opera Sonic Migration Bridge Operator","Amount":"0 S","Value":"$0.00","TxnFee":"0.00415759"},{"Txhash":"0xb91cf805ee6feb8ae50d7b01f072b66e1173fdd119d3c45088fbb44cdc55e6e3","Status":"Success","Method":"Exec Transaction","Blockno":"47371299","DateTime":"2025-09-19 08:30:20","Sender":"0x6E9f215876d210E5c8A197DF598db2d8FE09F6C5","SenderLable":null,"Receiver":"0xf8Fc6d1289734Fdffe8B58d8D394b33fe8CC545F","ReceiverLable":"Sonic: Opera Sonic Migration Bridge Operator","Amount":"0 S","Value":"$0.00","TxnFee":"0.00459694"},{"Txhash":"0xb1b34c95e50501cc0f8482cace0111f522f17554b4173a6d9de173b8689cbdee","Status":"Success","Method":"Exec Transaction","Blockno":"46824417","DateTime":"2025-09-14 15:12:27","Sender":"0x6E9f215876d210E5c8A197DF598db2d8FE09F6C5","SenderLable":null,"Receiver":"0xf8Fc6d1289734Fdffe8B58d8D394b33fe8CC545F","ReceiverLable":"Sonic: Opera Sonic Migration Bridge Operator","Amount":"0 S","Value":"$0.00","TxnFee":"0.00466471"},{"Txhash":"0x9ae4986d98c75f46b218f405a0d889f68320ae1334fb9abf811f7f98f5dbc67a","Status":"Success","Method":"Exec Transaction","Blockno":"45840105","DateTime":"2025-09-05 11:42:20","Sender":"0x6E9f215876d210E5c8A197DF598db2d8FE09F6C5","SenderLable":null,"Receiver":"0xf8Fc6d1289734Fdffe8B58d8D394b33fe8CC545F","ReceiverLable":"Sonic: Opera Sonic Migration Bridge Operator","Amount":"0 S","Value":"$0.00","TxnFee":"0.0043672"},{"Txhash":"0x7783995f1ca39f0cb0a88fd3311756cfd865078e8a9a775eaf77d5eb02986776","Status":"Success","Method":"Exec Transaction","Blockno":"45839914","DateTime":"2025-09-05 11:40:08","Sender":"0x6E9f215876d210E5c8A197DF598db2d8FE09F6C5","SenderLable":null,"Receiver":"0xf8Fc6d1289734Fdffe8B58d8D394b33fe8CC545F","ReceiverLable":"Sonic: Opera Sonic Migration Bridge Operator","Amount":"0 S","Value":"$0.00","TxnFee":"0.00436591"},{"Txhash":"0x3306e86594593a3d9d08c7839f7f6aaad5d2650225cc90f226499eca805dc7b6","Status":"Success","Method":"Exec Transaction","Blockno":"45839860","DateTime":"2025-09-05 11:39:29","Sender":"0x6E9f215876d210E5c8A197DF598db2d8FE09F6C5","SenderLable":null,"Receiver":"0xf8Fc6d1289734Fdffe8B58d8D394b33fe8CC545F","ReceiverLable":"Sonic: Opera Sonic Migration Bridge Operator","Amount":"0 S","Value":"$0.00","TxnFee":"0.00529922"},{"Txhash":"0xefb4ffd6162d56b3d312554bf28fc00210bd9a11b8d9698dfd8480b3ec8e18fb","Status":"Success","Method":"Exec Transaction","Blockno":"45818428","DateTime":"2025-09-05 07:36:54","Sender":"0xfa2A05E6b505C3fCe3d8676149Ec6a4fBF1231cB","SenderLable":null,"Receiver":"0xf8Fc6d1289734Fdffe8B58d8D394b33fe8CC545F","ReceiverLable":"Sonic: Opera Sonic Migration Bridge Operator","Amount":"0 S","Value":"$0.00","TxnFee":"0.00593224"},{"Txhash":"0xbf6f4e580d849b1b5f02c654fb72e0882fd6bfb3002d1ea9e501a44c7e743bb9","Status":"Success","Method":"Exec Transaction","Blockno":"45732823","DateTime":"2025-09-04 14:04:14","Sender":"0xfa2A05E6b505C3fCe3d8676149Ec6a4fBF1231cB","SenderLable":null,"Receiver":"0xf8Fc6d1289734Fdffe8B58d8D394b33fe8CC545F","ReceiverLable":"Sonic: Opera Sonic Migration Bridge Operator","Amount":"0 S","Value":"$0.00","TxnFee":"0.00430538"},{"Txhash":"0x1e2f2874074f8659b9be473e048f6e931202279267c39d1a50d59f8c91d484d2","Status":"Success","Method":"Exec Transaction","Blockno":"45730844","DateTime":"2025-09-04 13:44:20","Sender":"0xfa2A05E6b505C3fCe3d8676149Ec6a4fBF1231cB","SenderLable":null,"Receiver":"0xf8Fc6d1289734Fdffe8B58d8D394b33fe8CC545F","ReceiverLable":"Sonic: Opera Sonic Migration Bridge Operator","Amount":"0 S","Value":"$0.00","TxnFee":"0.0040365"}]'; 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