ETH Price: $2,948.85 (+0.27%)

Contract

0x598AAefd5EE47A6Fe2E6d3c6fD0148eD7F683b2A

Overview

ETH Balance

0 ETH

ETH Value

$0.00

More Info

Private Name Tags

Multichain Info

No addresses found
Transaction Hash
Block
From
To
Unbind2350347882024-07-23 0:02:59550 days ago1721692979IN
0x598AAefd...D7F683b2A
0 ETH0.000000610.01
Unbind988014122023-06-07 18:47:17962 days ago1686163637IN
0x598AAefd...D7F683b2A
0 ETH0.000049270.1

Latest 1 internal transaction

Parent Transaction Hash Block From To
229118312022-09-05 6:52:451237 days ago1662360765
0x598AAefd...D7F683b2A
0 ETH

Cross-Chain Transactions
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
ERC20Bound

Compiler Version
v0.8.4+commit.c7e474f2

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Arbiscan.io on 2022-08-31
*/

// SPDX-License-Identifier: MIT

interface IERC20Bound {
  function unbind(address _addresses) external;

  function isUnbound(address _addr) external view returns (bool);
}

interface IManager {
  function isAdmin(address _addr) external view returns (bool);

  function isManager(address _addr, uint256 _type) external view returns (bool);

  function addManager(address _addr, uint256 _type) external;

  function removeManager(address _addr, uint256 _type) external;

  function addAdmin(address _addr) external;

  function removeAdmin(address _addr) external;
}

abstract contract ManagerModifier {
  //=======================================
  // Immutables
  //=======================================
  IManager public immutable MANAGER;

  //=======================================
  // Constructor
  //=======================================
  constructor(address _manager) {
    MANAGER = IManager(_manager);
  }

  //=======================================
  // Modifiers
  //=======================================
  modifier onlyAdmin() {
    require(MANAGER.isAdmin(msg.sender), "Manager: Not an Admin");
    _;
  }

  modifier onlyManager() {
    require(MANAGER.isManager(msg.sender, 0), "Manager: Not manager");
    _;
  }

  modifier onlyMinter() {
    require(MANAGER.isManager(msg.sender, 1), "Manager: Not minter");
    _;
  }

  modifier onlyTokenMinter() {
    require(MANAGER.isManager(msg.sender, 2), "Manager: Not token minter");
    _;
  }

  modifier onlyBinder() {
    require(MANAGER.isManager(msg.sender, 3), "Manager: Not binder");
    _;
  }
}

pragma solidity ^0.8.4;

contract ERC20Bound is IERC20Bound, ManagerModifier {
  //=======================================
  // Mappings
  //=======================================
  mapping(address => bool) public unbound;

  //=======================================
  // Events
  //=======================================
  event Unbounded(address addr);
  event Bounded(address addr);

  //=======================================
  // Constructor
  //=======================================
  constructor(address _manager) ManagerModifier(_manager) {}

  //=======================================
  // External
  //=======================================
  function isUnbound(address _addr) external view override returns (bool) {
    return unbound[_addr] == true;
  }

  function unbind(address _address) external override onlyBinder {
    unbound[_address] = true;

    emit Unbounded(_address);
  }
}

Contract Security Audit

Contract ABI

API
[{"inputs":[{"internalType":"address","name":"_manager","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"addr","type":"address"}],"name":"Bounded","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"addr","type":"address"}],"name":"Unbounded","type":"event"},{"inputs":[],"name":"MANAGER","outputs":[{"internalType":"contract IManager","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_addr","type":"address"}],"name":"isUnbound","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"}],"name":"unbind","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"unbound","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"}]

60a060405234801561001057600080fd5b5060405161036438038061036483398101604081905261002f91610044565b60601b6001600160601b031916608052610072565b600060208284031215610055578081fd5b81516001600160a01b038116811461006b578182fd5b9392505050565b60805160601c6102ce610096600039600081816056015261012a01526102ce6000f3fe608060405234801561001057600080fd5b506004361061004c5760003560e01c80631b2df85014610051578063bc3b9f6514610095578063cf5e7bd3146100d6578063db0c214c146100eb575b600080fd5b6100787f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020015b60405180910390f35b6100c66100a336600461024a565b6001600160a01b031660009081526020819052604090205460ff16151560011490565b604051901515815260200161008c565b6100e96100e436600461024a565b61010e565b005b6100c66100f936600461024a565b60006020819052908152604090205460ff1681565b6040516365e6a4df60e11b8152336004820152600360248201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063cbcd49be9060440160206040518083038186803b15801561017457600080fd5b505afa158015610188573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101ac9190610278565b6101f25760405162461bcd60e51b815260206004820152601360248201527226b0b730b3b2b91d102737ba103134b73232b960691b604482015260640160405180910390fd5b6001600160a01b03811660008181526020818152604091829020805460ff1916600117905590519182527f480ea7bde3a8f561f2de278fdcdeb3afe2242665451ad70d93087acb4aba8490910160405180910390a150565b60006020828403121561025b578081fd5b81356001600160a01b0381168114610271578182fd5b9392505050565b600060208284031215610289578081fd5b81518015158114610271578182fdfea2646970667358221220020b614f77941677a3c8984d066e6296f6e80702e6a2ea2265472f44d35dc26a64736f6c634300080400330000000000000000000000004e572433a3bfa336b6396d13afc9f69b58252861

Deployed Bytecode

0x608060405234801561001057600080fd5b506004361061004c5760003560e01c80631b2df85014610051578063bc3b9f6514610095578063cf5e7bd3146100d6578063db0c214c146100eb575b600080fd5b6100787f0000000000000000000000004e572433a3bfa336b6396d13afc9f69b5825286181565b6040516001600160a01b0390911681526020015b60405180910390f35b6100c66100a336600461024a565b6001600160a01b031660009081526020819052604090205460ff16151560011490565b604051901515815260200161008c565b6100e96100e436600461024a565b61010e565b005b6100c66100f936600461024a565b60006020819052908152604090205460ff1681565b6040516365e6a4df60e11b8152336004820152600360248201527f0000000000000000000000004e572433a3bfa336b6396d13afc9f69b582528616001600160a01b03169063cbcd49be9060440160206040518083038186803b15801561017457600080fd5b505afa158015610188573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101ac9190610278565b6101f25760405162461bcd60e51b815260206004820152601360248201527226b0b730b3b2b91d102737ba103134b73232b960691b604482015260640160405180910390fd5b6001600160a01b03811660008181526020818152604091829020805460ff1916600117905590519182527f480ea7bde3a8f561f2de278fdcdeb3afe2242665451ad70d93087acb4aba8490910160405180910390a150565b60006020828403121561025b578081fd5b81356001600160a01b0381168114610271578182fd5b9392505050565b600060208284031215610289578081fd5b81518015158114610271578182fdfea2646970667358221220020b614f77941677a3c8984d066e6296f6e80702e6a2ea2265472f44d35dc26a64736f6c63430008040033

Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)

0000000000000000000000004e572433a3bfa336b6396d13afc9f69b58252861

-----Decoded View---------------
Arg [0] : _manager (address): 0x4E572433A3Bfa336b6396D13AfC9F69b58252861

-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 0000000000000000000000004e572433a3bfa336b6396d13afc9f69b58252861


Deployed Bytecode Sourcemap

1670:912:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;737:33;;;;;;;;-1:-1:-1;;;;;791:32:1;;;773:51;;761:2;746:18;737:33:0;;;;;;;;2326:114;;;;;;:::i;:::-;-1:-1:-1;;;;;2412:14:0;2392:4;2412:14;;;;;;;;;;;;;:22;;:14;:22;;2326:114;;;;1287:14:1;;1280:22;1262:41;;1250:2;1235:18;2326:114:0;1217:92:1;2446:133:0;;;;;;:::i;:::-;;:::i;:::-;;1832:39;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;2446:133;1566:32;;-1:-1:-1;;;1566:32:0;;1584:10;1566:32;;;1017:51:1;1596:1:0;1084:18:1;;;1077:34;1566:7:0;-1:-1:-1;;;;;1566:17:0;;;;990:18:1;;1566:32:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1558:64;;;;-1:-1:-1;;;1558:64:0;;1739:2:1;1558:64:0;;;1721:21:1;1778:2;1758:18;;;1751:30;-1:-1:-1;;;1797:18:1;;;1790:49;1856:18;;1558:64:0;;;;;;;;-1:-1:-1;;;;;2516:17:0;::::1;:7;:17:::0;;;::::1;::::0;;;;;;;;:24;;-1:-1:-1;;2516:24:0::1;2536:4;2516:24;::::0;;2554:19;;773:51:1;;;2554:19:0::1;::::0;746:18:1;2554:19:0::1;;;;;;;2446:133:::0;:::o;14:306:1:-;73:6;126:2;114:9;105:7;101:23;97:32;94:2;;;147:6;139;132:22;94:2;178:23;;-1:-1:-1;;;;;230:31:1;;220:42;;210:2;;281:6;273;266:22;210:2;309:5;84:236;-1:-1:-1;;;84:236:1:o;325:297::-;392:6;445:2;433:9;424:7;420:23;416:32;413:2;;;466:6;458;451:22;413:2;503:9;497:16;556:5;549:13;542:21;535:5;532:32;522:2;;583:6;575;568:22

Swarm Source

ipfs://020b614f77941677a3c8984d066e6296f6e80702e6a2ea2265472f44d35dc26a

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.