Contract

0x469788fE6E9E9681C6ebF3bF78e7Fd26Fc015446

Overview

S Balance

Sonic LogoSonic LogoSonic Logo0 S

S Value

-

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Set Delegate32502682025-01-10 12:44:049 mins ago1736513044IN
0x469788fE...6Fc015446
0 S0.000257555.5
Set Delegate32501652025-01-10 12:43:1610 mins ago1736512996IN
0x469788fE...6Fc015446
0 S0.000257555.5
Set Delegate32446512025-01-10 11:55:3858 mins ago1736510138IN
0x469788fE...6Fc015446
0 S0.000280966
Clear Delegate32426522025-01-10 11:40:081 hr ago1736509208IN
0x469788fE...6Fc015446
0 S0.00015486
Set Delegate32426252025-01-10 11:39:521 hr ago1736509192IN
0x469788fE...6Fc015446
0 S0.000270385.51
Set Delegate32368192025-01-10 10:48:482 hrs ago1736506128IN
0x469788fE...6Fc015446
0 S0.000270385.51
Set Delegate32310302025-01-10 10:01:162 hrs ago1736503276IN
0x469788fE...6Fc015446
0 S0.000270385.51
Set Delegate32238952025-01-10 8:46:304 hrs ago1736498790IN
0x469788fE...6Fc015446
0 S0.000270385.51
Set Delegate32233572025-01-10 8:40:214 hrs ago1736498421IN
0x469788fE...6Fc015446
0 S0.000294426
Set Delegate32222152025-01-10 8:29:184 hrs ago1736497758IN
0x469788fE...6Fc015446
0 S0.000257555.5
Set Delegate32063932025-01-10 5:27:407 hrs ago1736486860IN
0x469788fE...6Fc015446
0 S0.000257555.5
Set Delegate32056522025-01-10 5:16:027 hrs ago1736486162IN
0x469788fE...6Fc015446
0 S0.000270385.51
Set Delegate31996312025-01-10 3:47:119 hrs ago1736480831IN
0x469788fE...6Fc015446
0 S0.000270385.51
Set Delegate31992072025-01-10 3:38:559 hrs ago1736480335IN
0x469788fE...6Fc015446
0 S0.000270385.51
Set Delegate31982482025-01-10 3:19:119 hrs ago1736479151IN
0x469788fE...6Fc015446
0 S0.000269895.5
Set Delegate31854262025-01-10 0:23:3812 hrs ago1736468618IN
0x469788fE...6Fc015446
0 S0.000257555.5
Set Delegate31848452025-01-10 0:15:3812 hrs ago1736468138IN
0x469788fE...6Fc015446
0 S0.000270385.51
Set Delegate31768112025-01-09 22:35:5314 hrs ago1736462153IN
0x469788fE...6Fc015446
0 S0.000257555.5
Set Delegate31698552025-01-09 21:33:4915 hrs ago1736458429IN
0x469788fE...6Fc015446
0 S0.000257555.5
Set Delegate31687542025-01-09 21:23:4815 hrs ago1736457828IN
0x469788fE...6Fc015446
0 S0.000257555.5
Set Delegate31626832025-01-09 20:27:1116 hrs ago1736454431IN
0x469788fE...6Fc015446
0 S0.000257555.5
Set Delegate31596422025-01-09 19:59:4416 hrs ago1736452784IN
0x469788fE...6Fc015446
0 S0.000257555.5
Set Delegate31509282025-01-09 18:43:1318 hrs ago1736448193IN
0x469788fE...6Fc015446
0 S0.000270875.52
Set Delegate31500282025-01-09 18:33:3818 hrs ago1736447618IN
0x469788fE...6Fc015446
0 S0.000288045.87
Set Delegate31491402025-01-09 18:25:1218 hrs ago1736447112IN
0x469788fE...6Fc015446
0 S0.000257555.5
View all transactions

Latest 1 internal transaction

Parent Transaction Hash Block From To
23565032025-01-03 13:04:336 days ago1735909473  Contract Creation0 S
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
DelegateRegistry

Compiler Version
v0.7.2+commit.51b20bc0

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, GNU GPLv3 license
/**
 *Submitted for verification at SonicScan.org on 2025-01-03
*/

/**
 *Submitted for verification at blastscan.io on 2024-10-16
*/

/**
 *Submitted for verification at basescan.org on 2024-08-02
*/

/**
 *Submitted for verification at optimistic.etherscan.io on 2022-08-14
*/

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

contract DelegateRegistry {
    
    // The first key is the delegator and the second key a id. 
    // The value is the address of the delegate 
    mapping (address => mapping (bytes32 => address)) public delegation;
    
    // Using these events it is possible to process the events to build up reverse lookups.
    // The indeces allow it to be very partial about how to build this lookup (e.g. only for a specific delegate).
    event SetDelegate(address indexed delegator, bytes32 indexed id, address indexed delegate);
    event ClearDelegate(address indexed delegator, bytes32 indexed id, address indexed delegate);
    
    /// @dev Sets a delegate for the msg.sender and a specific id.
    ///      The combination of msg.sender and the id can be seen as a unique key.
    /// @param id Id for which the delegate should be set
    /// @param delegate Address of the delegate
    function setDelegate(bytes32 id, address delegate) public {
        require (delegate != msg.sender, "Can't delegate to self");
        require (delegate != address(0), "Can't delegate to 0x0");
        address currentDelegate = delegation[msg.sender][id];
        require (delegate != currentDelegate, "Already delegated to this address");
        
        // Update delegation mapping
        delegation[msg.sender][id] = delegate;
        
        if (currentDelegate != address(0)) {
            emit ClearDelegate(msg.sender, id, currentDelegate);
        }

        emit SetDelegate(msg.sender, id, delegate);
    }
    
    /// @dev Clears a delegate for the msg.sender and a specific id.
    ///      The combination of msg.sender and the id can be seen as a unique key.
    /// @param id Id for which the delegate should be set
    function clearDelegate(bytes32 id) public {
        address currentDelegate = delegation[msg.sender][id];
        require (currentDelegate != address(0), "No delegate set");
        
        // update delegation mapping
        delegation[msg.sender][id] = address(0);
        
        emit ClearDelegate(msg.sender, id, currentDelegate);
    }
}

Contract Security Audit

Contract ABI

[{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"delegator","type":"address"},{"indexed":true,"internalType":"bytes32","name":"id","type":"bytes32"},{"indexed":true,"internalType":"address","name":"delegate","type":"address"}],"name":"ClearDelegate","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"delegator","type":"address"},{"indexed":true,"internalType":"bytes32","name":"id","type":"bytes32"},{"indexed":true,"internalType":"address","name":"delegate","type":"address"}],"name":"SetDelegate","type":"event"},{"inputs":[{"internalType":"bytes32","name":"id","type":"bytes32"}],"name":"clearDelegate","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"bytes32","name":"","type":"bytes32"}],"name":"delegation","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"id","type":"bytes32"},{"internalType":"address","name":"delegate","type":"address"}],"name":"setDelegate","outputs":[],"stateMutability":"nonpayable","type":"function"}]

608060405234801561001057600080fd5b50610794806100206000396000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c806374c6c45414610046578063bd86e508146100be578063f0bedbe21461010c575b600080fd5b6100926004803603604081101561005c57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061013a565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b61010a600480360360408110156100d457600080fd5b8101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061017c565b005b6101386004803603602081101561012257600080fd5b8101908080359060200190929190505050610538565b005b60006020528160005260406000206020528060005260406000206000915091509054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b3373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561021e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260168152602001807f43616e27742064656c656761746520746f2073656c660000000000000000000081525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156102c1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f43616e27742064656c656761746520746f20307830000000000000000000000081525060200191505060405180910390fd5b60008060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156103ba576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602181526020018061073e6021913960400191505060405180910390fd5b816000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600085815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16146104d8578073ffffffffffffffffffffffffffffffffffffffff16833373ffffffffffffffffffffffffffffffffffffffff167f9c4f00c4291262731946e308dc2979a56bd22cce8f95906b975065e96cd5a06460405160405180910390a45b8173ffffffffffffffffffffffffffffffffffffffff16833373ffffffffffffffffffffffffffffffffffffffff167fa9a7fd460f56bddb880a465a9c3e9730389c70bc53108148f16d55a87a6c468e60405160405180910390a4505050565b60008060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561064f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600f8152602001807f4e6f2064656c656761746520736574000000000000000000000000000000000081525060200191505060405180910390fd5b60008060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600084815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16823373ffffffffffffffffffffffffffffffffffffffff167f9c4f00c4291262731946e308dc2979a56bd22cce8f95906b975065e96cd5a06460405160405180910390a4505056fe416c72656164792064656c65676174656420746f20746869732061646472657373a2646970667358221220b6cd5a8d04426e1189563fbec7dfec4ba70090dc70fe05097a137991fe1b396964736f6c63430007020033

Deployed Bytecode

0x608060405234801561001057600080fd5b50600436106100415760003560e01c806374c6c45414610046578063bd86e508146100be578063f0bedbe21461010c575b600080fd5b6100926004803603604081101561005c57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061013a565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b61010a600480360360408110156100d457600080fd5b8101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061017c565b005b6101386004803603602081101561012257600080fd5b8101908080359060200190929190505050610538565b005b60006020528160005260406000206020528060005260406000206000915091509054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b3373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561021e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260168152602001807f43616e27742064656c656761746520746f2073656c660000000000000000000081525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156102c1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f43616e27742064656c656761746520746f20307830000000000000000000000081525060200191505060405180910390fd5b60008060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156103ba576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602181526020018061073e6021913960400191505060405180910390fd5b816000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600085815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16146104d8578073ffffffffffffffffffffffffffffffffffffffff16833373ffffffffffffffffffffffffffffffffffffffff167f9c4f00c4291262731946e308dc2979a56bd22cce8f95906b975065e96cd5a06460405160405180910390a45b8173ffffffffffffffffffffffffffffffffffffffff16833373ffffffffffffffffffffffffffffffffffffffff167fa9a7fd460f56bddb880a465a9c3e9730389c70bc53108148f16d55a87a6c468e60405160405180910390a4505050565b60008060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561064f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600f8152602001807f4e6f2064656c656761746520736574000000000000000000000000000000000081525060200191505060405180910390fd5b60008060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600084815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16823373ffffffffffffffffffffffffffffffffffffffff167f9c4f00c4291262731946e308dc2979a56bd22cce8f95906b975065e96cd5a06460405160405180910390a4505056fe416c72656164792064656c65676174656420746f20746869732061646472657373a2646970667358221220b6cd5a8d04426e1189563fbec7dfec4ba70090dc70fe05097a137991fe1b396964736f6c63430007020033

Deployed Bytecode Sourcemap

302:2120:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;456:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;1207:635;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;2067:352;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;456:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;1207:635::-;1297:10;1285:22;;:8;:22;;;;1276:58;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1374:1;1354:22;;:8;:22;;;;1345:57;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1413:23;1439:10;:22;1450:10;1439:22;;;;;;;;;;;;;;;:26;1462:2;1439:26;;;;;;;;;;;;;;;;;;;;;1413:52;;1497:15;1485:27;;:8;:27;;;;1476:74;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1638:8;1609:10;:22;1620:10;1609:22;;;;;;;;;;;;;;;:26;1632:2;1609:26;;;;;;;;;;;;:37;;;;;;;;;;;;;;;;;;1698:1;1671:29;;:15;:29;;;1667:113;;1752:15;1722:46;;1748:2;1736:10;1722:46;;;;;;;;;;;;1667:113;1825:8;1797:37;;1821:2;1809:10;1797:37;;;;;;;;;;;;1207:635;;;:::o;2067:352::-;2120:23;2146:10;:22;2157:10;2146:22;;;;;;;;;;;;;;;:26;2169:2;2146:26;;;;;;;;;;;;;;;;;;;;;2120:52;;2219:1;2192:29;;:15;:29;;;;2183:58;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2337:1;2300:10;:22;2311:10;2300:22;;;;;;;;;;;;;;;:26;2323:2;2300:26;;;;;;;;;;;;:39;;;;;;;;;;;;;;;;;;2395:15;2365:46;;2391:2;2379:10;2365:46;;;;;;;;;;;;2067:352;;:::o

Swarm Source

ipfs://b6cd5a8d04426e1189563fbec7dfec4ba70090dc70fe05097a137991fe1b3969

Block Transaction Gas Used Reward
view all blocks produced

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

Validator Index Block Amount
View All Withdrawals

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