Warning! Contract bytecode has been changed and doesn't match the verified one. Therefore, interaction with this smart contract may be risky.
- Contract name:
- MockSBINFTERC20
- Optimization enabled
- true
- Compiler version
- v0.8.19+commit.7dd6d404
- Optimization runs
- 200
- EVM Version
- default
- Verified at
- 2024-11-14T17:30:38.556121Z
contracts/_mock/MockSBINFTERC20.sol
//SPDX-License-Identifier: Unlicensepragma solidity ^0.8.0;import {ERC20} from "@openzeppelin/contracts/token/ERC20/ERC20.sol";contract MockSBINFTERC20 is ERC20 {constructor() ERC20("MockSBINFTERC20", "MSBINFT") {}function mint(address[] calldata mintToList) public {for (uint256 idx = 0; idx < mintToList.length; idx++) {_mint(mintToList[idx], 10000);}}}
@openzeppelin/contracts/token/ERC20/ERC20.sol
// SPDX-License-Identifier: MIT// OpenZeppelin Contracts (last updated v4.7.0) (token/ERC20/ERC20.sol)pragma solidity ^0.8.0;import "./IERC20.sol";import "./extensions/IERC20Metadata.sol";import "../../utils/Context.sol";/*** @dev Implementation of the {IERC20} interface.** This implementation is agnostic to the way tokens are created. This means* that a supply mechanism has to be added in a derived contract using {_mint}.* For a generic mechanism see {ERC20PresetMinterPauser}.** TIP: For a detailed writeup see our guide* https://forum.zeppelin.solutions/t/how-to-implement-erc20-supply-mechanisms/226[How* to implement supply mechanisms].** We have followed general OpenZeppelin Contracts guidelines: functions revert* instead returning `false` on failure. This behavior is nonetheless* conventional and does not conflict with the expectations of ERC20* applications.** Additionally, an {Approval} event is emitted on calls to {transferFrom}.* This allows applications to reconstruct the allowance for all accounts just* by listening to said events. Other implementations of the EIP may not emit* these events, as it isn't required by the specification.** Finally, the non-standard {decreaseAllowance} and {increaseAllowance}* functions have been added to mitigate the well-known issues around setting* allowances. See {IERC20-approve}.*/contract ERC20 is Context, IERC20, IERC20Metadata {mapping(address => uint256) private _balances;mapping(address => mapping(address => uint256)) private _allowances;uint256 private _totalSupply;
@openzeppelin/contracts/token/ERC20/IERC20.sol
// SPDX-License-Identifier: MIT// OpenZeppelin Contracts (last updated v4.6.0) (token/ERC20/IERC20.sol)pragma solidity ^0.8.0;/*** @dev Interface of the ERC20 standard as defined in the EIP.*/interface IERC20 {/*** @dev Emitted when `value` tokens are moved from one account (`from`) to* another (`to`).** Note that `value` may be zero.*/event Transfer(address indexed from, address indexed to, uint256 value);/*** @dev Emitted when the allowance of a `spender` for an `owner` is set by* a call to {approve}. `value` is the new allowance.*/event Approval(address indexed owner, address indexed spender, uint256 value);/*** @dev Returns the amount of tokens in existence.*/function totalSupply() external view returns (uint256);/*** @dev Returns the amount of tokens owned by `account`.*/function balanceOf(address account) external view returns (uint256);/*** @dev Moves `amount` tokens from the caller's account to `to`.** Returns a boolean value indicating whether the operation succeeded.** Emits a {Transfer} event.*/function transfer(address to, uint256 amount) external returns (bool);
@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol
// SPDX-License-Identifier: MIT// OpenZeppelin Contracts v4.4.1 (token/ERC20/extensions/IERC20Metadata.sol)pragma solidity ^0.8.0;import "../IERC20.sol";/*** @dev Interface for the optional metadata functions from the ERC20 standard.** _Available since v4.1._*/interface IERC20Metadata is IERC20 {/*** @dev Returns the name of the token.*/function name() external view returns (string memory);/*** @dev Returns the symbol of the token.*/function symbol() external view returns (string memory);/*** @dev Returns the decimals places of the token.*/function decimals() external view returns (uint8);}
@openzeppelin/contracts/utils/Context.sol
// SPDX-License-Identifier: MIT// OpenZeppelin Contracts v4.4.1 (utils/Context.sol)pragma solidity ^0.8.0;/*** @dev Provides information about the current execution context, including the* sender of the transaction and its data. While these are generally available* via msg.sender and msg.data, they should not be accessed in such a direct* manner, since when dealing with meta-transactions the account sending and* paying for execution may not be the actual sender (as far as an application* is concerned).** This contract is only required for intermediate, library-like contracts.*/abstract contract Context {function _msgSender() internal view virtual returns (address) {return msg.sender;}function _msgData() internal view virtual returns (bytes calldata) {return msg.data;}}
Compiler Settings
{"outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata","storageLayout"],"":["ast"]}},"optimizer":{"runs":200,"enabled":true},"libraries":{}}
Contract ABI
[{"type":"constructor","stateMutability":"nonpayable","inputs":[]},{"type":"event","name":"Approval","inputs":[{"type":"address","name":"owner","internalType":"address","indexed":true},{"type":"address","name":"spender","internalType":"address","indexed":true},{"type":"uint256","name":"value","internalType":"uint256","indexed":false}],"anonymous":false},{"type":"event","name":"Transfer","inputs":[{"type":"address","name":"from","internalType":"address","indexed":true},{"type":"address","name":"to","internalType":"address","indexed":true},{"type":"uint256","name":"value","internalType":"uint256","indexed":false}],"anonymous":false},{"type":"function","stateMutability":"view","outputs":[{"type":"uint256","name":"","internalType":"uint256"}],"name":"allowance","inputs":[{"type":"address","name":"owner","internalType":"address"},{"type":"address","name":"spender","internalType":"address"}]},{"type":"function","stateMutability":"nonpayable","outputs":[{"type":"bool","name":"","internalType":"bool"}],"name":"approve","inputs":[{"type":"address","name":"spender","internalType":"address"},{"type":"uint256","name":"amount","internalType":"uint256"}]},{"type":"function","stateMutability":"view","outputs":[{"type":"uint256","name":"","internalType":"uint256"}],"name":"balanceOf","inputs":[{"type":"address","name":"account","internalType":"address"}]},{"type":"function","stateMutability":"view","outputs":[{"type":"uint8","name":"","internalType":"uint8"}],"name":"decimals","inputs":[]},{"type":"function","stateMutability":"nonpayable","outputs":[{"type":"bool","name":"","internalType":"bool"}],"name":"decreaseAllowance","inputs":[{"type":"address","name":"spender","internalType":"address"},{"type":"uint256","name":"subtractedValue","internalType":"uint256"}]},{"type":"function","stateMutability":"nonpayable","outputs":[{"type":"bool","name":"","internalType":"bool"}],"name":"increaseAllowance","inputs":[{"type":"address","name":"spender","internalType":"address"},{"type":"uint256","name":"addedValue","internalType":"uint256"}]},{"type":"function","stateMutability":"nonpayable","outputs":[],"name":"mint","inputs":[{"type":"address[]","name":"mintToList","internalType":"address[]"}]},{"type":"function","stateMutability":"view","outputs":[{"type":"string","name":"","internalType":"string"}],"name":"name","inputs":[]},{"type":"function","stateMutability":"view","outputs":[{"type":"string","name":"","internalType":"string"}],"name":"symbol","inputs":[]},{"type":"function","stateMutability":"view","outputs":[{"type":"uint256","name":"","internalType":"uint256"}],"name":"totalSupply","inputs":[]},{"type":"function","stateMutability":"nonpayable","outputs":[{"type":"bool","name":"","internalType":"bool"}],"name":"transfer","inputs":[{"type":"address","name":"to","internalType":"address"},{"type":"uint256","name":"amount","internalType":"uint256"}]},{"type":"function","stateMutability":"nonpayable","outputs":[{"type":"bool","name":"","internalType":"bool"}],"name":"transferFrom","inputs":[{"type":"address","name":"from","internalType":"address"},{"type":"address","name":"to","internalType":"address"},{"type":"uint256","name":"amount","internalType":"uint256"}]}]
Contract Creation Code
0x60806040523480156200001157600080fd5b506040518060400160405280600f81526020016e04d6f636b5342494e4654455243323608c1b815250604051806040016040528060078152602001661354d09253919560ca1b81525081600390816200006b919062000128565b5060046200007a828262000128565b505050620001f4565b634e487b7160e01b600052604160045260246000fd5b600181811c90821680620000ae57607f821691505b602082108103620000cf57634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200012357600081815260208120601f850160051c81016020861015620000fe5750805b601f850160051c820191505b818110156200011f578281556001016200010a565b5050505b505050565b81516001600160401b0381111562000144576200014462000083565b6200015c8162000155845462000099565b84620000d5565b602080601f8311600181146200019457600084156200017b5750858301515b600019600386901b1c1916600185901b1785556200011f565b600085815260208120601f198616915b82811015620001c557888601518255948401946001909101908401620001a4565b5085821015620001e45787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b610a7b80620002046000396000f3fe608060405234801561001057600080fd5b50600436106100b45760003560e01c806370a082311161007157806370a082311461014157806395d89b411461016a578063a457c2d714610172578063a9059cbb14610185578063bd075b8414610198578063dd62ed3e146101ad57600080fd5b806306fdde03146100b9578063095ea7b3146100d757806318160ddd146100fa57806323b872dd1461010c578063313ce5671461011f578063395093511461012e575b600080fd5b6100c16101c0565b6040516100ce9190610819565b60405180910390f35b6100ea6100e5366004610883565b610252565b60405190151581526020016100ce565b6002545b6040519081526020016100ce565b6100ea61011a3660046108ad565b61026c565b604051601281526020016100ce565b6100ea61013c366004610883565b610290565b6100fe61014f3660046108e9565b6001600160a01b031660009081526020819052604090205490565b6100c16102b2565b6100ea610180366004610883565b6102c1565b6100ea610193366004610883565b610341565b6101ab6101a636600461090b565b61034f565b005b6100fe6101bb366004610980565b6103a3565b6060600380546101cf906109b3565b80601f01602080910402602001604051908101604052809291908181526020018280546101fb906109b3565b80156102485780601f1061021d57610100808354040283529160200191610248565b820191906000526020600020905b81548152906001019060200180831161022b57829003601f168201915b5050505050905090565b6000336102608185856103ce565b60019150505b92915050565b60003361027a8582856104f2565b61028585858561056c565b506001949350505050565b6000336102608185856102a383836103a3565b6102ad9190610a03565b6103ce565b6060600480546101cf906109b3565b600033816102cf82866103a3565b9050838110156103345760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084015b60405180910390fd5b61028582868684036103ce565b60003361026081858561056c565b60005b8181101561039e5761038c83838381811061036f5761036f610a16565b905060200201602081019061038491906108e9565b61271061073a565b8061039681610a2c565b915050610352565b505050565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b6001600160a01b0383166104305760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161032b565b6001600160a01b0382166104915760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161032b565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b60006104fe84846103a3565b9050600019811461056657818110156105595760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000604482015260640161032b565b61056684848484036103ce565b50505050565b6001600160a01b0383166105d05760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840161032b565b6001600160a01b0382166106325760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840161032b565b6001600160a01b038316600090815260208190526040902054818110156106aa5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b606482015260840161032b565b6001600160a01b038085166000908152602081905260408082208585039055918516815290812080548492906106e1908490610a03565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161072d91815260200190565b60405180910390a3610566565b6001600160a01b0382166107905760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015260640161032b565b80600260008282546107a29190610a03565b90915550506001600160a01b038216600090815260208190526040812080548392906107cf908490610a03565b90915550506040518181526001600160a01b038316906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b600060208083528351808285015260005b818110156108465785810183015185820160400152820161082a565b506000604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b038116811461087e57600080fd5b919050565b6000806040838503121561089657600080fd5b61089f83610867565b946020939093013593505050565b6000806000606084860312156108c257600080fd5b6108cb84610867565b92506108d960208501610867565b9150604084013590509250925092565b6000602082840312156108fb57600080fd5b61090482610867565b9392505050565b6000806020838503121561091e57600080fd5b823567ffffffffffffffff8082111561093657600080fd5b818501915085601f83011261094a57600080fd5b81358181111561095957600080fd5b8660208260051b850101111561096e57600080fd5b60209290920196919550909350505050565b6000806040838503121561099357600080fd5b61099c83610867565b91506109aa60208401610867565b90509250929050565b600181811c908216806109c757607f821691505b6020821081036109e757634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b80820180821115610266576102666109ed565b634e487b7160e01b600052603260045260246000fd5b600060018201610a3e57610a3e6109ed565b506001019056fea26469706673582212201b929854b991ccff01256b605561e7f55daed1a0d2f236cf6c925052f7939ccf64736f6c63430008130033
Deployed ByteCode
0x608060405234801561001057600080fd5b50600436106100b45760003560e01c806370a082311161007157806370a082311461014157806395d89b411461016a578063a457c2d714610172578063a9059cbb14610185578063bd075b8414610198578063dd62ed3e146101ad57600080fd5b806306fdde03146100b9578063095ea7b3146100d757806318160ddd146100fa57806323b872dd1461010c578063313ce5671461011f578063395093511461012e575b600080fd5b6100c16101c0565b6040516100ce9190610819565b60405180910390f35b6100ea6100e5366004610883565b610252565b60405190151581526020016100ce565b6002545b6040519081526020016100ce565b6100ea61011a3660046108ad565b61026c565b604051601281526020016100ce565b6100ea61013c366004610883565b610290565b6100fe61014f3660046108e9565b6001600160a01b031660009081526020819052604090205490565b6100c16102b2565b6100ea610180366004610883565b6102c1565b6100ea610193366004610883565b610341565b6101ab6101a636600461090b565b61034f565b005b6100fe6101bb366004610980565b6103a3565b6060600380546101cf906109b3565b80601f01602080910402602001604051908101604052809291908181526020018280546101fb906109b3565b80156102485780601f1061021d57610100808354040283529160200191610248565b820191906000526020600020905b81548152906001019060200180831161022b57829003601f168201915b5050505050905090565b6000336102608185856103ce565b60019150505b92915050565b60003361027a8582856104f2565b61028585858561056c565b506001949350505050565b6000336102608185856102a383836103a3565b6102ad9190610a03565b6103ce565b6060600480546101cf906109b3565b600033816102cf82866103a3565b9050838110156103345760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084015b60405180910390fd5b61028582868684036103ce565b60003361026081858561056c565b60005b8181101561039e5761038c83838381811061036f5761036f610a16565b905060200201602081019061038491906108e9565b61271061073a565b8061039681610a2c565b915050610352565b505050565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b6001600160a01b0383166104305760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161032b565b6001600160a01b0382166104915760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161032b565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b60006104fe84846103a3565b9050600019811461056657818110156105595760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000604482015260640161032b565b61056684848484036103ce565b50505050565b6001600160a01b0383166105d05760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840161032b565b6001600160a01b0382166106325760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840161032b565b6001600160a01b038316600090815260208190526040902054818110156106aa5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b606482015260840161032b565b6001600160a01b038085166000908152602081905260408082208585039055918516815290812080548492906106e1908490610a03565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161072d91815260200190565b60405180910390a3610566565b6001600160a01b0382166107905760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015260640161032b565b80600260008282546107a29190610a03565b90915550506001600160a01b038216600090815260208190526040812080548392906107cf908490610a03565b90915550506040518181526001600160a01b038316906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b600060208083528351808285015260005b818110156108465785810183015185820160400152820161082a565b506000604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b038116811461087e57600080fd5b919050565b6000806040838503121561089657600080fd5b61089f83610867565b946020939093013593505050565b6000806000606084860312156108c257600080fd5b6108cb84610867565b92506108d960208501610867565b9150604084013590509250925092565b6000602082840312156108fb57600080fd5b61090482610867565b9392505050565b6000806020838503121561091e57600080fd5b823567ffffffffffffffff8082111561093657600080fd5b818501915085601f83011261094a57600080fd5b81358181111561095957600080fd5b8660208260051b850101111561096e57600080fd5b60209290920196919550909350505050565b6000806040838503121561099357600080fd5b61099c83610867565b91506109aa60208401610867565b90509250929050565b600181811c908216806109c757607f821691505b6020821081036109e757634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b80820180821115610266576102666109ed565b634e487b7160e01b600052603260045260246000fd5b600060018201610a3e57610a3e6109ed565b506001019056fea26469706673582212201b929854b991ccff01256b605561e7f55daed1a0d2f236cf6c925052f7939ccf64736f6c63430008130033