ETH Price: $3,611.21 (+5.36%)

Transaction Decoder

Block:
20050631 at Jun-09-2024 12:16:11 AM +UTC
Transaction Fee:
0.000269522025148937 ETH $0.97
Gas Used:
53,119 Gas / 5.073928823 Gwei

Emitted Events:

230 AccessManager.AccessGranted( wallet=[Sender] 0x8d07b3895ba2af23d64d805a4d8c33b5a8046978, geoVersion=0 )

Account State Difference:

  Address   Before After State Difference Code
(Titan Builder)
7.259871387211244652 Eth7.259876699111244652 Eth0.0000053119
0x8D07b389...5A8046978
0.001385509168844907 Eth
Nonce: 7
0.00111598714369597 Eth
Nonce: 8
0.000269522025148937
0x8Ea56882...EbC280Aba

Execution Trace

AccessManager.grantAccess( signature=0x0E05906C6B575FC268AB9BF45A13FD56444DE5FEBAAB3357927FDA6C4770C6E82DB1D0A1FF56D15B874B1724B7DC56C1B1EAA499B10D4D5FE77B232ACDEBBCC61B )
  • Null: 0x000...001.4127e3bd( )
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    // SPDX-License-Identifier: BUSL 1.1
    pragma solidity =0.8.22;
    import "./interfaces/IAccessManager.sol";
    import "./dao/interfaces/IDAO.sol";
    import "./SigningTools.sol";
    // A simple AccessManager in which user IP is mapped offchain to a geolocation and then whitelisted user status is stored in the contract.
    // If geographic regions are later excluded, users are required to reverify (allowing avoiding storing countries for specific wallets and potentially
        violating user privacy).
    // The AccessManager restricts users from adding liquidity, and staking - but always allows existing assets to be removed (in case a user's region is
        restricted after depositing assets).
    //
    // This contract can be replaced by the DAO with other mechanics such as completely open access, decentralized ID services, KYC by region, or
        whatever else deemed the best option by the DAO.
    //
    // Making proposals and voting is not access restricted - just in case AccessManager.sol is ever updated with a flaw in it that universally blocks
        access (which would effectively cripple the DAO if proposals and voting were then mistakingly restricted).
    //
    // Updateable using DAO.proposeSetAccessManager( "accessManager" )
    contract AccessManager is IAccessManager
    \t{
    \tevent AccessGranted(address indexed wallet, uint256 geoVersion);
    \tIDAO immutable public dao;
    \t// Determines granted access for [geoVersion][wallet]
    mapping(uint256 => mapping(address => bool)) private _walletsWithAccess;
    \t// The current geoVersion for the AccessManager - which is incremented when new countries are excluded by the DAO.
    uint256 public geoVersion;
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX