Overview
ETH Balance
0 ETH
Eth Value
$0.00More Info
Private Name Tags
ContractCreator
Latest 5 from a total of 5 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Add Whitelisted ... | 13390586 | 1092 days ago | IN | 0 ETH | 0.09467706 | ||||
Add Whitelisted ... | 13390581 | 1092 days ago | IN | 0 ETH | 0.27940062 | ||||
Add Whitelisted ... | 13390575 | 1092 days ago | IN | 0 ETH | 0.3182642 | ||||
Set Whitelist Ad... | 13390516 | 1092 days ago | IN | 0 ETH | 0.00235359 | ||||
0x60806040 | 13390501 | 1092 days ago | IN | 0 ETH | 0.06993279 |
View more zero value Internal Transactions in Advanced View mode
Advanced mode:
Loading...
Loading
Contract Name:
FinaWhitelist
Compiler Version
v0.7.6+commit.7338295f
Optimization Enabled:
Yes with 200 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity Standard Json-Input format)
// SPDX-License-Identifier: Apache-2.0 // Copyright 2021 Enjinstarter pragma solidity ^0.7.6; import "./interfaces/IFinaWhitelist.sol"; /** * @title Whitelist * @author Enjinstarter */ contract FinaWhitelist is IFinaWhitelist { uint256 public constant BATCH_MAX_NUM = 200; address public governanceAccount; address public whitelistAdmin; mapping(address => uint256) private _whitelisteds; constructor() { governanceAccount = msg.sender; whitelistAdmin = msg.sender; } modifier onlyBy(address account) { require(msg.sender == account, "FinaWhitelist: sender unauthorized"); _; } function addWhitelisted(address account, uint256 amount) external override onlyBy(whitelistAdmin) { _addWhitelisted(account, amount); } function removeWhitelisted(address account) external override onlyBy(whitelistAdmin) { _removeWhitelisted(account); } function addWhitelistedBatch( address[] memory accounts, uint256[] memory amounts ) external override onlyBy(whitelistAdmin) { require(accounts.length > 0, "FinaWhitelist: empty"); require(accounts.length <= BATCH_MAX_NUM, "FinaWhitelist: exceed max"); require( amounts.length == accounts.length, "FinaWhitelist: different length" ); for (uint256 i = 0; i < accounts.length; i++) { _addWhitelisted(accounts[i], amounts[i]); } } function removeWhitelistedBatch(address[] memory accounts) external override onlyBy(whitelistAdmin) { require(accounts.length > 0, "FinaWhitelist: empty"); require(accounts.length <= BATCH_MAX_NUM, "FinaWhitelist: exceed max"); for (uint256 i = 0; i < accounts.length; i++) { _removeWhitelisted(accounts[i]); } } function setGovernanceAccount(address account) external override onlyBy(governanceAccount) { require(account != address(0), "FinaWhitelist: zero account"); governanceAccount = account; } function setWhitelistAdmin(address account) external override onlyBy(governanceAccount) { require(account != address(0), "FinaWhitelist: zero account"); whitelistAdmin = account; } function isWhitelisted(address account) external view override returns (bool isWhitelisted_) { require(account != address(0), "FinaWhitelist: zero account"); isWhitelisted_ = _whitelisteds[account] > 0; } function whitelistedAmountFor(address account) external view override returns (uint256 whitelistedAmount) { require(account != address(0), "FinaWhitelist: zero account"); whitelistedAmount = _whitelisteds[account]; } function _addWhitelisted(address account, uint256 amount) internal { require(account != address(0), "FinaWhitelist: zero account"); require(amount > 0, "FinaWhitelist: zero amount"); require( _whitelisteds[account] == 0, "FinaWhitelist: already whitelisted" ); _whitelisteds[account] = amount; emit WhitelistedAdded(account, amount); } function _removeWhitelisted(address account) internal { require(account != address(0), "FinaWhitelist: zero account"); require(_whitelisteds[account] > 0, "FinaWhitelist: not whitelisted"); _whitelisteds[account] = 0; emit WhitelistedRemoved(account); } }
// SPDX-License-Identifier: Apache-2.0 // Copyright 2021 Enjinstarter pragma solidity ^0.7.6; /** * @title IFinaWhitelist * @author Enjinstarter */ interface IFinaWhitelist { function addWhitelisted(address account, uint256 amount) external; function removeWhitelisted(address account) external; function addWhitelistedBatch( address[] memory accounts, uint256[] memory amounts ) external; function removeWhitelistedBatch(address[] memory accounts) external; function setGovernanceAccount(address account) external; function setWhitelistAdmin(address account) external; function isWhitelisted(address account) external view returns (bool isWhitelisted_); function whitelistedAmountFor(address account) external view returns (uint256 whitelistedAmount); event WhitelistedAdded(address indexed account, uint256 amount); event WhitelistedRemoved(address indexed account); }
{ "optimizer": { "enabled": true, "runs": 200 }, "outputSelection": { "*": { "*": [ "evm.bytecode", "evm.deployedBytecode", "devdoc", "userdoc", "metadata", "abi" ] } }, "libraries": {} }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"WhitelistedAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"account","type":"address"}],"name":"WhitelistedRemoved","type":"event"},{"inputs":[],"name":"BATCH_MAX_NUM","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"addWhitelisted","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"},{"internalType":"uint256[]","name":"amounts","type":"uint256[]"}],"name":"addWhitelistedBatch","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"governanceAccount","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isWhitelisted","outputs":[{"internalType":"bool","name":"isWhitelisted_","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"removeWhitelisted","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"}],"name":"removeWhitelistedBatch","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"setGovernanceAccount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"setWhitelistAdmin","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"whitelistAdmin","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"whitelistedAmountFor","outputs":[{"internalType":"uint256","name":"whitelistedAmount","type":"uint256"}],"stateMutability":"view","type":"function"}]
Contract Creation Code
608060405234801561001057600080fd5b5060008054336001600160a01b03199182168117835560018054909216179055610c4990819061004090396000f3fe608060405234801561001057600080fd5b50600436106100a95760003560e01c806370827a4d1161007157806370827a4d146101df5780637134267d146103065780638902ff861461033e578063a8d49e641461036a578063ac6ddd5d14610390578063f5b65fea14610398576100a9565b806326fc5d4b146100ae57806327144c0514610153578063291d9549146101775780633af32abf1461019d5780634adbe551146101d7575b600080fd5b610151600480360360208110156100c457600080fd5b8101906020810181356401000000008111156100df57600080fd5b8201836020820111156100f157600080fd5b8035906020019184602083028401116401000000008311171561011357600080fd5b9190808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152509295506103be945050505050565b005b61015b6104dd565b604080516001600160a01b039092168252519081900360200190f35b6101516004803603602081101561018d57600080fd5b50356001600160a01b03166104ec565b6101c3600480360360208110156101b357600080fd5b50356001600160a01b0316610543565b604080519115158252519081900360200190f35b61015b6105ac565b610151600480360360408110156101f557600080fd5b81019060208101813564010000000081111561021057600080fd5b82018360208201111561022257600080fd5b8035906020019184602083028401116401000000008311171561024457600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929594936020810193503591505064010000000081111561029457600080fd5b8201836020820111156102a657600080fd5b803590602001918460208302840111640100000000831117156102c857600080fd5b9190808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152509295506105bb945050505050565b61032c6004803603602081101561031c57600080fd5b50356001600160a01b0316610745565b60408051918252519081900360200190f35b6101516004803603604081101561035457600080fd5b506001600160a01b0381351690602001356107ac565b6101516004803603602081101561038057600080fd5b50356001600160a01b0316610800565b61032c6108b6565b610151600480360360208110156103ae57600080fd5b50356001600160a01b03166108bb565b6001546001600160a01b03163381146104085760405162461bcd60e51b8152600401808060200182810382526022815260200180610bb06022913960400191505060405180910390fd5b6000825111610455576040805162461bcd60e51b815260206004820152601460248201527346696e6157686974656c6973743a20656d70747960601b604482015290519081900360640190fd5b60c8825111156104a8576040805162461bcd60e51b815260206004820152601960248201527808cd2dcc2aed0d2e8cad8d2e6e87440caf0c6cacac840dac2f603b1b604482015290519081900360640190fd5b60005b82518110156104d8576104d08382815181106104c357fe5b6020026020010151610971565b6001016104ab565b505050565b6000546001600160a01b031681565b6001546001600160a01b03163381146105365760405162461bcd60e51b8152600401808060200182810382526022815260200180610bb06022913960400191505060405180910390fd5b61053f82610971565b5050565b60006001600160a01b03821661058e576040805162461bcd60e51b815260206004820152601b6024820152600080516020610bd2833981519152604482015290519081900360640190fd5b506001600160a01b0316600090815260026020526040902054151590565b6001546001600160a01b031681565b6001546001600160a01b03163381146106055760405162461bcd60e51b8152600401808060200182810382526022815260200180610bb06022913960400191505060405180910390fd5b6000835111610652576040805162461bcd60e51b815260206004820152601460248201527346696e6157686974656c6973743a20656d70747960601b604482015290519081900360640190fd5b60c8835111156106a5576040805162461bcd60e51b815260206004820152601960248201527808cd2dcc2aed0d2e8cad8d2e6e87440caf0c6cacac840dac2f603b1b604482015290519081900360640190fd5b82518251146106fb576040805162461bcd60e51b815260206004820152601f60248201527f46696e6157686974656c6973743a20646966666572656e74206c656e67746800604482015290519081900360640190fd5b60005b835181101561073f5761073784828151811061071657fe5b602002602001015184838151811061072a57fe5b6020026020010151610a68565b6001016106fe565b50505050565b60006001600160a01b038216610790576040805162461bcd60e51b815260206004820152601b6024820152600080516020610bd2833981519152604482015290519081900360640190fd5b506001600160a01b031660009081526002602052604090205490565b6001546001600160a01b03163381146107f65760405162461bcd60e51b8152600401808060200182810382526022815260200180610bb06022913960400191505060405180910390fd5b6104d88383610a68565b6000546001600160a01b031633811461084a5760405162461bcd60e51b8152600401808060200182810382526022815260200180610bb06022913960400191505060405180910390fd5b6001600160a01b038216610893576040805162461bcd60e51b815260206004820152601b6024820152600080516020610bd2833981519152604482015290519081900360640190fd5b50600180546001600160a01b0319166001600160a01b0392909216919091179055565b60c881565b6000546001600160a01b03163381146109055760405162461bcd60e51b8152600401808060200182810382526022815260200180610bb06022913960400191505060405180910390fd5b6001600160a01b03821661094e576040805162461bcd60e51b815260206004820152601b6024820152600080516020610bd2833981519152604482015290519081900360640190fd5b50600080546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b0381166109ba576040805162461bcd60e51b815260206004820152601b6024820152600080516020610bd2833981519152604482015290519081900360640190fd5b6001600160a01b038116600090815260026020526040902054610a24576040805162461bcd60e51b815260206004820152601e60248201527f46696e6157686974656c6973743a206e6f742077686974656c69737465640000604482015290519081900360640190fd5b6001600160a01b038116600081815260026020526040808220829055517f270d9b30cf5b0793bbfd54c9d5b94aeb49462b8148399000265144a8722da6b69190a250565b6001600160a01b038216610ab1576040805162461bcd60e51b815260206004820152601b6024820152600080516020610bd2833981519152604482015290519081900360640190fd5b60008111610b06576040805162461bcd60e51b815260206004820152601a60248201527f46696e6157686974656c6973743a207a65726f20616d6f756e74000000000000604482015290519081900360640190fd5b6001600160a01b03821660009081526002602052604090205415610b5b5760405162461bcd60e51b8152600401808060200182810382526022815260200180610bf26022913960400191505060405180910390fd5b6001600160a01b038216600081815260026020908152604091829020849055815184815291517fcb9ce803cb004a01f0682efa32d66c42ec72e8daa764006c95e1b551b9465a219281900390910190a2505056fe46696e6157686974656c6973743a2073656e64657220756e617574686f72697a656446696e6157686974656c6973743a207a65726f206163636f756e74000000000046696e6157686974656c6973743a20616c72656164792077686974656c6973746564a26469706673582212204040c101e86a765b35f2f1ddf6a55a681c1fedf09f5058170786b9114f8a33d564736f6c63430007060033
Deployed Bytecode
0x608060405234801561001057600080fd5b50600436106100a95760003560e01c806370827a4d1161007157806370827a4d146101df5780637134267d146103065780638902ff861461033e578063a8d49e641461036a578063ac6ddd5d14610390578063f5b65fea14610398576100a9565b806326fc5d4b146100ae57806327144c0514610153578063291d9549146101775780633af32abf1461019d5780634adbe551146101d7575b600080fd5b610151600480360360208110156100c457600080fd5b8101906020810181356401000000008111156100df57600080fd5b8201836020820111156100f157600080fd5b8035906020019184602083028401116401000000008311171561011357600080fd5b9190808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152509295506103be945050505050565b005b61015b6104dd565b604080516001600160a01b039092168252519081900360200190f35b6101516004803603602081101561018d57600080fd5b50356001600160a01b03166104ec565b6101c3600480360360208110156101b357600080fd5b50356001600160a01b0316610543565b604080519115158252519081900360200190f35b61015b6105ac565b610151600480360360408110156101f557600080fd5b81019060208101813564010000000081111561021057600080fd5b82018360208201111561022257600080fd5b8035906020019184602083028401116401000000008311171561024457600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929594936020810193503591505064010000000081111561029457600080fd5b8201836020820111156102a657600080fd5b803590602001918460208302840111640100000000831117156102c857600080fd5b9190808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152509295506105bb945050505050565b61032c6004803603602081101561031c57600080fd5b50356001600160a01b0316610745565b60408051918252519081900360200190f35b6101516004803603604081101561035457600080fd5b506001600160a01b0381351690602001356107ac565b6101516004803603602081101561038057600080fd5b50356001600160a01b0316610800565b61032c6108b6565b610151600480360360208110156103ae57600080fd5b50356001600160a01b03166108bb565b6001546001600160a01b03163381146104085760405162461bcd60e51b8152600401808060200182810382526022815260200180610bb06022913960400191505060405180910390fd5b6000825111610455576040805162461bcd60e51b815260206004820152601460248201527346696e6157686974656c6973743a20656d70747960601b604482015290519081900360640190fd5b60c8825111156104a8576040805162461bcd60e51b815260206004820152601960248201527808cd2dcc2aed0d2e8cad8d2e6e87440caf0c6cacac840dac2f603b1b604482015290519081900360640190fd5b60005b82518110156104d8576104d08382815181106104c357fe5b6020026020010151610971565b6001016104ab565b505050565b6000546001600160a01b031681565b6001546001600160a01b03163381146105365760405162461bcd60e51b8152600401808060200182810382526022815260200180610bb06022913960400191505060405180910390fd5b61053f82610971565b5050565b60006001600160a01b03821661058e576040805162461bcd60e51b815260206004820152601b6024820152600080516020610bd2833981519152604482015290519081900360640190fd5b506001600160a01b0316600090815260026020526040902054151590565b6001546001600160a01b031681565b6001546001600160a01b03163381146106055760405162461bcd60e51b8152600401808060200182810382526022815260200180610bb06022913960400191505060405180910390fd5b6000835111610652576040805162461bcd60e51b815260206004820152601460248201527346696e6157686974656c6973743a20656d70747960601b604482015290519081900360640190fd5b60c8835111156106a5576040805162461bcd60e51b815260206004820152601960248201527808cd2dcc2aed0d2e8cad8d2e6e87440caf0c6cacac840dac2f603b1b604482015290519081900360640190fd5b82518251146106fb576040805162461bcd60e51b815260206004820152601f60248201527f46696e6157686974656c6973743a20646966666572656e74206c656e67746800604482015290519081900360640190fd5b60005b835181101561073f5761073784828151811061071657fe5b602002602001015184838151811061072a57fe5b6020026020010151610a68565b6001016106fe565b50505050565b60006001600160a01b038216610790576040805162461bcd60e51b815260206004820152601b6024820152600080516020610bd2833981519152604482015290519081900360640190fd5b506001600160a01b031660009081526002602052604090205490565b6001546001600160a01b03163381146107f65760405162461bcd60e51b8152600401808060200182810382526022815260200180610bb06022913960400191505060405180910390fd5b6104d88383610a68565b6000546001600160a01b031633811461084a5760405162461bcd60e51b8152600401808060200182810382526022815260200180610bb06022913960400191505060405180910390fd5b6001600160a01b038216610893576040805162461bcd60e51b815260206004820152601b6024820152600080516020610bd2833981519152604482015290519081900360640190fd5b50600180546001600160a01b0319166001600160a01b0392909216919091179055565b60c881565b6000546001600160a01b03163381146109055760405162461bcd60e51b8152600401808060200182810382526022815260200180610bb06022913960400191505060405180910390fd5b6001600160a01b03821661094e576040805162461bcd60e51b815260206004820152601b6024820152600080516020610bd2833981519152604482015290519081900360640190fd5b50600080546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b0381166109ba576040805162461bcd60e51b815260206004820152601b6024820152600080516020610bd2833981519152604482015290519081900360640190fd5b6001600160a01b038116600090815260026020526040902054610a24576040805162461bcd60e51b815260206004820152601e60248201527f46696e6157686974656c6973743a206e6f742077686974656c69737465640000604482015290519081900360640190fd5b6001600160a01b038116600081815260026020526040808220829055517f270d9b30cf5b0793bbfd54c9d5b94aeb49462b8148399000265144a8722da6b69190a250565b6001600160a01b038216610ab1576040805162461bcd60e51b815260206004820152601b6024820152600080516020610bd2833981519152604482015290519081900360640190fd5b60008111610b06576040805162461bcd60e51b815260206004820152601a60248201527f46696e6157686974656c6973743a207a65726f20616d6f756e74000000000000604482015290519081900360640190fd5b6001600160a01b03821660009081526002602052604090205415610b5b5760405162461bcd60e51b8152600401808060200182810382526022815260200180610bf26022913960400191505060405180910390fd5b6001600160a01b038216600081815260026020908152604091829020849055815184815291517fcb9ce803cb004a01f0682efa32d66c42ec72e8daa764006c95e1b551b9465a219281900390910190a2505056fe46696e6157686974656c6973743a2073656e64657220756e617574686f72697a656446696e6157686974656c6973743a207a65726f206163636f756e74000000000046696e6157686974656c6973743a20616c72656164792077686974656c6973746564a26469706673582212204040c101e86a765b35f2f1ddf6a55a681c1fedf09f5058170786b9114f8a33d564736f6c63430007060033
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 27 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|
Loading...
Loading
[ 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.