ETH Price: $2,464.47 (-6.56%)

Transaction Decoder

Block:
19759168 at Apr-29-2024 06:25:35 AM +UTC
Transaction Fee:
0.00125627598982374 ETH $3.10
Gas Used:
146,885 Gas / 8.552786124 Gwei

Emitted Events:

215 BRC20.Transfer( from=[Sender] 0xde38a377ac05d9f146fdeb6a8edbf87f953aae34, to=[Receiver] 0xf70af817b07118cbf7accc38767899598e045408, value=5857607501179236574 )
216 0xca4098fcecc3bf7ad04691e1186f714a72e70e6d.0x274ed44bc09f9ff15c7aab597c835942a05dbf38024e688e775b3dd5c30772d9( 0x274ed44bc09f9ff15c7aab597c835942a05dbf38024e688e775b3dd5c30772d9, 0000000100000c2500000000000000000000000000000000000000000000064d, 000000000000000000000000000000000000000000000000000241fec8d01500 )
217 0x10e82b34e757cf4fdefc0e9fc8cca4e5b9749bce.0x838807fe70997cb429689dd35bc6ccb21720aa7d7daac8736b398060104fb0fa( 0x838807fe70997cb429689dd35bc6ccb21720aa7d7daac8736b398060104fb0fa, 0000000000000000000000000000000000000000000000000000000000000020, 0000000100000c2500000000000000000000000000000000000000000000064d, 966c63d14939ec9ace2dc744f5ea970e1cc6f20f12afefdcdff58ed5d321637e, 000000000000000000000000104959e3ce9135e60e0300daafaea6b262f0e51a, 00000000000000000000000000000000000000000000000000000000000000c0, 00000000000000000000000017f5b02b99ff5f74add7babe57dc08295b4f3de5, 00000000000000000000000000000000000000000000000000000000000000e0, 0000000000000000000000000000000000000000000000000000000000000000, 00000000000000000000000000000000000000000000000000000000000000c0, 000000000000000000000000000000000000000000000000514a66fcc573b0de, 00000000000000000000000066e8994d6cac7e90a28cfc7ceae7da32121c25f6, 0000000000000000000000000000000000000000000000000000000000000060, 0000000000000000000000000000000000000000000000000000000000000040, 000000000000000000000000de38a377ac05d9f146fdeb6a8edbf87f953aae34, 000000000000000000000000000000000000000000000000514a66fcc573b0de )
218 0xf70af817b07118cbf7accc38767899598e045408.0x799e69b309353cce2426b9f6a5c9e5aaae30669a28e9aa4b90c21503fe82bbf4( 0x799e69b309353cce2426b9f6a5c9e5aaae30669a28e9aa4b90c21503fe82bbf4, 0x000000000000000000000000de38a377ac05d9f146fdeb6a8edbf87f953aae34, 0000000100000c2500000000000000000000000000000000000000000000064d, 000000000000000000000000000000000000000000000000514a66fcc573b0de )

Account State Difference:

  Address   Before After State Difference Code
0x10E82B34...5b9749bcE 0.732143569084796184 Eth0.732906184084796184 Eth0.000762615
0x15e6E0D4...35b85ED12
2.847582199421380754 Eth2.847585959746269819 Eth0.000003760324889065
0xDe38a377...f953aaE34
0.011809441526257176 Eth
Nonce: 127
0.009790550536433436 Eth
Nonce: 128
0.00201889098982374

Execution Trace

ETH 0.000762615 0xf70af817b07118cbf7accc38767899598e045408.e43772fb( )
  • BRC20.transferFrom( from=0xDe38a377ac05d9f146fDEB6a8eDBF87f953aaE34, to=0xF70Af817B07118CBF7ACCC38767899598e045408, amount=5857607501179236574 ) => ( True )
  • 0x10e82b34e757cf4fdefc0e9fc8cca4e5b9749bce.1028f292( )
    • 0x104959e3ce9135e60e0300daafaea6b262f0e51a.STATICCALL( )
    • 0xca4098fcecc3bf7ad04691e1186f714a72e70e6d.3065c409( )
    • 0x925efd4495d5afee2d9606fa8c3d86c0587c026d.2c5c3d2d( )
    • ETH 0.000762615 0x104959e3ce9135e60e0300daafaea6b262f0e51a.eb867877( )
      • 0xd2b4a366e63a3c10d067cac46cc011960326802e.b01b4bb8( )
      • 0xca4098fcecc3bf7ad04691e1186f714a72e70e6d.3065c409( )
      • ETH 0.000762615 0x10e82b34e757cf4fdefc0e9fc8cca4e5b9749bce.4071642d( )
        • 0xfc1475e9e16c88adc3309335e00de841c176994c.a3845197( )
        • 0x925efd4495d5afee2d9606fa8c3d86c0587c026d.2c5c3d2d( )
        • 0x104959e3ce9135e60e0300daafaea6b262f0e51a.STATICCALL( )
        • 0xca4098fcecc3bf7ad04691e1186f714a72e70e6d.d75bb4e0( )
          // SPDX-License-Identifier: MIT
          pragma solidity ^0.8.0;
          import "./interfaces/IBRC20Factory.sol";
          contract BRC20 {
              string public name;
              string public symbol;
              uint8 public immutable decimals;
              address public immutable factory;
              uint256  public totalSupply;
              mapping (address => uint256) public balanceOf;
              mapping (address => mapping(address => uint256)) public allowance;
              mapping (address => uint256) public nonces;
              bytes32 public DOMAIN_SEPARATOR;
              bytes32 public constant PERMIT_TYPEHASH = keccak256("Permit(address owner,address spender,uint256 value,uint256 nonce,uint256 deadline)");
              bytes32 public constant DOMAIN_TYPEHASH = keccak256("EIP712Domain(string name,string version,uint256 chainId,address verifyingContract)");
              event Approval(address indexed owner, address indexed spender, uint256 value);
              event Transfer(address indexed from, address indexed to, uint256 value);
              constructor() {
                  (name, symbol, decimals) = IBRC20Factory(msg.sender).parameters();
                  factory = msg.sender;
                  uint256 chainId;
                  assembly {
                      chainId := chainid()
                  }
                  DOMAIN_SEPARATOR = keccak256(abi.encode(DOMAIN_TYPEHASH, keccak256(bytes(name)), keccak256(bytes('1')), chainId, address(this)));
              }
              function mint(address to, uint256 amount) external {
                  require(msg.sender == factory, "unauthorized");
                  _mint(to, amount);
              }
              function burn(uint256 amount) external {
                  require(msg.sender == factory, "unauthorized");
                  _burn(msg.sender, amount);
              }
              function approve(address spender, uint256 amount) external returns (bool) {
                  allowance[msg.sender][spender] = amount;
                  emit Approval(msg.sender, spender, amount);
                  return true;
              }
              function transfer(address to, uint256 amount) external returns (bool) {
                  balanceOf[msg.sender] -= amount;
                  unchecked {
                      balanceOf[to] += amount;
                  }
                  emit Transfer(msg.sender, to, amount);
                  return true;
              }
              function transferFrom(address from, address to, uint256 amount) external returns (bool) {
                  uint256 allowed = allowance[from][msg.sender];
                  if (allowed != type(uint256).max) allowance[from][msg.sender] = allowed - amount;
                  balanceOf[from] -= amount;
                  unchecked {
                      balanceOf[to] += amount;
                  }
                  emit Transfer(from, to, amount);
                  return true;
              }
              function permit(address owner, address spender, uint256 value, uint256 deadline, uint8 v, bytes32 r, bytes32 s) external {
                  require(deadline >= block.timestamp, 'EXPIRED');
                  unchecked {
                      bytes32 digest = keccak256(
                          abi.encodePacked(
                              '\\x19\\x01',
                              DOMAIN_SEPARATOR,
                              keccak256(abi.encode(PERMIT_TYPEHASH, owner, spender, value, nonces[owner]++, deadline))
                          )
                      );
                      address recoveredAddress = ecrecover(digest, v, r, s);
                      require(recoveredAddress != address(0) && recoveredAddress == owner, 'INVALID_SIGNATURE');
                      allowance[recoveredAddress][spender] = value;
                  }
                  emit Approval(owner, spender, value);
              }
              function _mint(address to, uint256 amount) internal {
                  totalSupply += amount;
                  unchecked {
                      balanceOf[to] += amount;
                  }
                  emit Transfer(address(0), to, amount);
              }
              function _burn(address from, uint256 amount) internal {
                  balanceOf[from] -= amount;
                  unchecked {
                      totalSupply -= amount;
                  }
                  emit Transfer(from, address(0), amount);
              }
          }// SPDX-License-Identifier: MIT
          pragma solidity ^0.8.0;
          interface IBRC20Factory {
              function parameters() external view returns (string memory name, string memory symbol, uint8 decimals);
          }