BNB Price: $694.44 (-2.18%)
Gas: 1 GWei
 
Transaction Hash
Method
Block
From
To
Allocate Tokens453252992024-12-30 11:10:4010 secs ago1735557040IN
0xe0e8898f...93d388C07
0 BNB0.000029621
Allocate Tokens453252962024-12-30 11:10:3119 secs ago1735557031IN
0xe0e8898f...93d388C07
0 BNB0.000029621
Allocate Tokens453252872024-12-30 11:10:0446 secs ago1735557004IN
0xe0e8898f...93d388C07
0 BNB0.000046721
Allocate Tokens453252762024-12-30 11:09:311 min ago1735556971IN
0xe0e8898f...93d388C07
0 BNB0.000029621
Allocate Tokens453252692024-12-30 11:09:101 min ago1735556950IN
0xe0e8898f...93d388C07
0 BNB0.000029611
Allocate Tokens453252612024-12-30 11:08:462 mins ago1735556926IN
0xe0e8898f...93d388C07
0 BNB0.000029621
Allocate Tokens453252582024-12-30 11:08:372 mins ago1735556917IN
0xe0e8898f...93d388C07
0 BNB0.000046711
Allocate Tokens453252432024-12-30 11:07:522 mins ago1735556872IN
0xe0e8898f...93d388C07
0 BNB0.000029611
Allocate Tokens453252282024-12-30 11:07:073 mins ago1735556827IN
0xe0e8898f...93d388C07
0 BNB0.000029621
Allocate Tokens453252252024-12-30 11:06:583 mins ago1735556818IN
0xe0e8898f...93d388C07
0 BNB0.000029621
Allocate Tokens453252152024-12-30 11:06:284 mins ago1735556788IN
0xe0e8898f...93d388C07
0 BNB0.000029621
Allocate Tokens453252132024-12-30 11:06:224 mins ago1735556782IN
0xe0e8898f...93d388C07
0 BNB0.000029621
Allocate Tokens453251922024-12-30 11:05:195 mins ago1735556719IN
0xe0e8898f...93d388C07
0 BNB0.000029611
Allocate Tokens453251782024-12-30 11:04:376 mins ago1735556677IN
0xe0e8898f...93d388C07
0 BNB0.000029621
Allocate Tokens453251742024-12-30 11:04:256 mins ago1735556665IN
0xe0e8898f...93d388C07
0 BNB0.000029611
Allocate Tokens453251712024-12-30 11:04:166 mins ago1735556656IN
0xe0e8898f...93d388C07
0 BNB0.000029621
Withdraw Tokens453251672024-12-30 11:04:046 mins ago1735556644IN
0xe0e8898f...93d388C07
0 BNB0.000128782.02
Allocate Tokens453251382024-12-30 11:02:378 mins ago1735556557IN
0xe0e8898f...93d388C07
0 BNB0.000029621
Allocate Tokens453251332024-12-30 11:02:228 mins ago1735556542IN
0xe0e8898f...93d388C07
0 BNB0.000029621
Allocate Tokens453251302024-12-30 11:02:138 mins ago1735556533IN
0xe0e8898f...93d388C07
0 BNB0.000029621
Allocate Tokens453251282024-12-30 11:02:078 mins ago1735556527IN
0xe0e8898f...93d388C07
0 BNB0.000029611
Allocate Tokens453251192024-12-30 11:01:409 mins ago1735556500IN
0xe0e8898f...93d388C07
0 BNB0.000029621
Allocate Tokens453251162024-12-30 11:01:319 mins ago1735556491IN
0xe0e8898f...93d388C07
0 BNB0.000029611
Allocate Tokens453251062024-12-30 11:01:019 mins ago1735556461IN
0xe0e8898f...93d388C07
0 BNB0.000029611
Allocate Tokens453251042024-12-30 11:00:559 mins ago1735556455IN
0xe0e8898f...93d388C07
0 BNB0.000029621
View all transactions

Parent Transaction Hash Block From To
View All Internal Transactions
Loading...
Loading

Similar Match Source Code
This contract matches the deployed Bytecode of the Source Code for Contract 0x12e14762...9449480f3
The constructor portion of the code might be different and could alter the actual behaviour of the contract

Contract Name:
AbiQuota

Compiler Version
v0.8.26+commit.8a97fa7a

Optimization Enabled:
No with 200 runs

Other Settings:
paris EvmVersion
File 1 of 1 : AbiQuota.sol
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;

interface IERC20 {
    function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);
    function transfer(address recipient, uint256 amount) external returns (bool);
    function balanceOf(address account) external view returns (uint256);
}

contract AbiQuota {
    address public admin;
    IERC20 public token;
    mapping(address => uint256) public withdrawableAmounts;

    modifier onlyAdmin() {
        require(msg.sender == admin, "Only admin can execute this");
        _;
    }

    constructor(address _tokenAddress) {
        admin = msg.sender;
        token = IERC20(_tokenAddress);
    }


    function depositTokens(uint256 amount) external onlyAdmin {
        require(token.transferFrom(msg.sender, address(this), amount), "Token transfer failed");

    }


    function allocateTokens(address member, uint256 amount) external onlyAdmin {

        withdrawableAmounts[member] = amount;

    }


    function viewWithdrawableAmount() external view returns (uint256) {
        return withdrawableAmounts[msg.sender];
    }


    function viewMemberWithdrawableAmount(address member) external view onlyAdmin returns (uint256) {
        return withdrawableAmounts[member];
    }


    function withdrawTokens(uint256 amount) external {
        require(withdrawableAmounts[msg.sender] >= amount, "Not enough withdrawable amount");
        require(token.transfer(msg.sender, amount), "Token transfer failed");
        withdrawableAmounts[msg.sender] -= amount;
    }


    function changeAdmin(address newAdmin) external onlyAdmin {
        require(newAdmin != address(0), "New admin cannot be zero address");
        admin = newAdmin;
    }


    function updateTokenAddress(address _tokenAddress) external onlyAdmin {
        token = IERC20(_tokenAddress);
    }

    function rescueTokens(address tokenAddress, uint256 amount) external onlyAdmin {
        IERC20(tokenAddress).transfer(admin, amount);
    }
}

Settings
{
  "evmVersion": "paris",
  "optimizer": {
    "enabled": false,
    "runs": 200
  },
  "outputSelection": {
    "*": {
      "*": [
        "evm.bytecode",
        "evm.deployedBytecode",
        "devdoc",
        "userdoc",
        "metadata",
        "abi"
      ]
    }
  },
  "libraries": {}
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address","name":"_tokenAddress","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"admin","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"member","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"allocateTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newAdmin","type":"address"}],"name":"changeAdmin","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"depositTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"tokenAddress","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"rescueTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"token","outputs":[{"internalType":"contract IERC20","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_tokenAddress","type":"address"}],"name":"updateTokenAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"member","type":"address"}],"name":"viewMemberWithdrawableAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"viewWithdrawableAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"withdrawTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"withdrawableAmounts","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"}]

Deployed Bytecode

0x608060405234801561001057600080fd5b50600436106100a95760003560e01c8063d27852b811610071578063d27852b81461013a578063da018bda14610158578063dd49756e14610188578063f27b2d0c146101a4578063f851a440146101d4578063fc0c546a146101f2576100a9565b8063315a095d146100ae57806357376198146100ca5780636691461a146100e657806386ce0285146101025780638f2839701461011e575b600080fd5b6100c860048036038101906100c39190610b11565b610210565b005b6100e460048036038101906100df9190610b9c565b6103ca565b005b61010060048036038101906100fb9190610bdc565b6104fb565b005b61011c60048036038101906101179190610b9c565b6105cd565b005b61013860048036038101906101339190610bdc565b6106a3565b005b6101426107e3565b60405161014f9190610c18565b60405180910390f35b610172600480360381019061016d9190610bdc565b61082a565b60405161017f9190610c18565b60405180910390f35b6101a2600480360381019061019d9190610b11565b610842565b005b6101be60048036038101906101b99190610bdc565b6109b4565b6040516101cb9190610c18565b60405180910390f35b6101dc610a8c565b6040516101e99190610c42565b60405180910390f35b6101fa610ab0565b6040516102079190610cbc565b60405180910390f35b80600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015610292576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161028990610d34565b60405180910390fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33836040518363ffffffff1660e01b81526004016102ef929190610d54565b6020604051808303816000875af115801561030e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103329190610db5565b610371576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161036890610e2e565b60405180910390fd5b80600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546103c09190610e7d565b9250508190555050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610458576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161044f90610efd565b60405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836040518363ffffffff1660e01b81526004016104b3929190610d54565b6020604051808303816000875af11580156104d2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104f69190610db5565b505050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610589576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161058090610efd565b60405180910390fd5b80600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461065b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161065290610efd565b60405180910390fd5b80600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610731576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161072890610efd565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036107a0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161079790610f69565b60405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905090565b60026020528060005260406000206000915090505481565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146108d0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108c790610efd565b60405180910390fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b872dd3330846040518463ffffffff1660e01b815260040161092f93929190610f89565b6020604051808303816000875af115801561094e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109729190610db5565b6109b1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109a890610e2e565b60405180910390fd5b50565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610a45576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a3c90610efd565b60405180910390fd5b600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600080fd5b6000819050919050565b610aee81610adb565b8114610af957600080fd5b50565b600081359050610b0b81610ae5565b92915050565b600060208284031215610b2757610b26610ad6565b5b6000610b3584828501610afc565b91505092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000610b6982610b3e565b9050919050565b610b7981610b5e565b8114610b8457600080fd5b50565b600081359050610b9681610b70565b92915050565b60008060408385031215610bb357610bb2610ad6565b5b6000610bc185828601610b87565b9250506020610bd285828601610afc565b9150509250929050565b600060208284031215610bf257610bf1610ad6565b5b6000610c0084828501610b87565b91505092915050565b610c1281610adb565b82525050565b6000602082019050610c2d6000830184610c09565b92915050565b610c3c81610b5e565b82525050565b6000602082019050610c576000830184610c33565b92915050565b6000819050919050565b6000610c82610c7d610c7884610b3e565b610c5d565b610b3e565b9050919050565b6000610c9482610c67565b9050919050565b6000610ca682610c89565b9050919050565b610cb681610c9b565b82525050565b6000602082019050610cd16000830184610cad565b92915050565b600082825260208201905092915050565b7f4e6f7420656e6f75676820776974686472617761626c6520616d6f756e740000600082015250565b6000610d1e601e83610cd7565b9150610d2982610ce8565b602082019050919050565b60006020820190508181036000830152610d4d81610d11565b9050919050565b6000604082019050610d696000830185610c33565b610d766020830184610c09565b9392505050565b60008115159050919050565b610d9281610d7d565b8114610d9d57600080fd5b50565b600081519050610daf81610d89565b92915050565b600060208284031215610dcb57610dca610ad6565b5b6000610dd984828501610da0565b91505092915050565b7f546f6b656e207472616e73666572206661696c65640000000000000000000000600082015250565b6000610e18601583610cd7565b9150610e2382610de2565b602082019050919050565b60006020820190508181036000830152610e4781610e0b565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000610e8882610adb565b9150610e9383610adb565b9250828203905081811115610eab57610eaa610e4e565b5b92915050565b7f4f6e6c792061646d696e2063616e206578656375746520746869730000000000600082015250565b6000610ee7601b83610cd7565b9150610ef282610eb1565b602082019050919050565b60006020820190508181036000830152610f1681610eda565b9050919050565b7f4e65772061646d696e2063616e6e6f74206265207a65726f2061646472657373600082015250565b6000610f53602083610cd7565b9150610f5e82610f1d565b602082019050919050565b60006020820190508181036000830152610f8281610f46565b9050919050565b6000606082019050610f9e6000830186610c33565b610fab6020830185610c33565b610fb86040830184610c09565b94935050505056fea2646970667358221220a37115ba84f4009d9e6192ba981ffbf8aed7e27d99a3e9b8dbfa0cd292beec7d64736f6c634300081a0033

Block Transaction Gas Used Reward
view all blocks produced
Age Block Fee Address BC Fee Address Voting Power Jailed Incoming
View All Validatorset

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
[ 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.