Warning! Contract bytecode has been changed and doesn't match the verified one. Therefore, interaction with this smart contract may be risky.
This contract has been verified via Sourcify.
View contract in Sourcify repository
- Contract name:
- SuperTokenGenerator
- Optimization enabled
- true
- Compiler version
- v0.8.4+commit.c7e474f2
- Optimization runs
- 200
- EVM Version
- istanbul
- Verified at
- 2026-03-03T04:39:20.140232Z
tokengenerator.sol
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.4;
abstract contract Context {
function _msgSender() internal view virtual returns (address) {
return msg.sender;
}
function _msgData() internal view virtual returns (bytes calldata) {
this;
return msg.data;
}
}
abstract contract Ownable is Context {
address private _owner;
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);
constructor () {
address msgSender = _msgSender();
_owner = msgSender;
emit OwnershipTransferred(address(0), msgSender);
}
function owner() public view virtual returns (address) {
return _owner;
}
modifier onlyOwner() {
require(owner() == _msgSender(), "Ownable: caller is not the owner");
_;
}
function renounceOwnership() public virtual onlyOwner {
emit OwnershipTransferred(_owner, address(0));
_owner = address(0);
}
function transferOwnership(address newOwner) public virtual onlyOwner {
require(newOwner != address(0), "Ownable: new owner is the zero address");
emit OwnershipTransferred(_owner, newOwner);
_owner = newOwner;
}
}
contract SuperTokenGenerator is Ownable {
mapping (bytes32 => uint256) private _prices;
event Created(string serviceName, address indexed serviceAddress);
function pay(string memory serviceName) public payable {
require(msg.value == _prices[_toBytes32(serviceName)], "Error: Incorrect Price");
emit Created(serviceName, _msgSender());
}
function getPrice(string memory serviceName) public view returns (uint256) {
return _prices[_toBytes32(serviceName)];
}
function setPrice(string memory serviceName, uint256 amount) public onlyOwner {
_prices[_toBytes32(serviceName)] = amount;
}
function withdraw(uint256 amount) public onlyOwner {
payable(owner()).transfer(amount);
}
function _toBytes32(string memory serviceName) private pure returns (bytes32) {
return keccak256(abi.encode(serviceName));
}
}
Compiler Settings
{"remappings":[],"optimizer":{"runs":200,"enabled":true},"metadata":{"bytecodeHash":"ipfs"},"libraries":{},"evmVersion":"istanbul","compilationTarget":{"tokengenerator.sol":"SuperTokenGenerator"}}
Contract ABI
[{"type":"event","name":"Created","inputs":[{"type":"string","name":"serviceName","internalType":"string","indexed":false},{"type":"address","name":"serviceAddress","internalType":"address","indexed":true}],"anonymous":false},{"type":"event","name":"OwnershipTransferred","inputs":[{"type":"address","name":"previousOwner","internalType":"address","indexed":true},{"type":"address","name":"newOwner","internalType":"address","indexed":true}],"anonymous":false},{"type":"function","stateMutability":"view","outputs":[{"type":"uint256","name":"","internalType":"uint256"}],"name":"getPrice","inputs":[{"type":"string","name":"serviceName","internalType":"string"}]},{"type":"function","stateMutability":"view","outputs":[{"type":"address","name":"","internalType":"address"}],"name":"owner","inputs":[]},{"type":"function","stateMutability":"payable","outputs":[],"name":"pay","inputs":[{"type":"string","name":"serviceName","internalType":"string"}]},{"type":"function","stateMutability":"nonpayable","outputs":[],"name":"renounceOwnership","inputs":[]},{"type":"function","stateMutability":"nonpayable","outputs":[],"name":"setPrice","inputs":[{"type":"string","name":"serviceName","internalType":"string"},{"type":"uint256","name":"amount","internalType":"uint256"}]},{"type":"function","stateMutability":"nonpayable","outputs":[],"name":"transferOwnership","inputs":[{"type":"address","name":"newOwner","internalType":"address"}]},{"type":"function","stateMutability":"nonpayable","outputs":[],"name":"withdraw","inputs":[{"type":"uint256","name":"amount","internalType":"uint256"}]}]
Contract Creation Code
0x608060405234801561001057600080fd5b50600080546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350610690806100616000396000f3fe6080604052600436106100705760003560e01c8063524f38891161004e578063524f3889146100ca578063715018a6146100fd5780638da5cb5b14610112578063f2fde38b1461013a57600080fd5b806322e01192146100755780632b66d72e146100975780632e1a7d4d146100aa575b600080fd5b34801561008157600080fd5b50610095610090366004610561565b61015a565b005b6100956100a5366004610526565b6101b0565b3480156100b657600080fd5b506100956100c53660046105a4565b610257565b3480156100d657600080fd5b506100ea6100e5366004610526565b6102be565b6040519081526020015b60405180910390f35b34801561010957600080fd5b506100956102e3565b34801561011e57600080fd5b506000546040516001600160a01b0390911681526020016100f4565b34801561014657600080fd5b506100956101553660046104f8565b610357565b6000546001600160a01b0316331461018d5760405162461bcd60e51b81526004016101849061060f565b60405180910390fd5b806001600061019b85610441565b81526020810191909152604001600020555050565b600160006101bd83610441565b81526020019081526020016000205434146102135760405162461bcd60e51b81526020600482015260166024820152754572726f723a20496e636f727265637420507269636560501b6044820152606401610184565b336001600160a01b03167fdb4e8a6f69daa6b4b9977ed734b510ed9b7ce86536c87435bfd7ef57968d05ee8260405161024c91906105bc565b60405180910390a250565b6000546001600160a01b031633146102815760405162461bcd60e51b81526004016101849061060f565b600080546040516001600160a01b039091169183156108fc02918491818181858888f193505050501580156102ba573d6000803e3d6000fd5b5050565b6000600160006102cd84610441565b8152602001908152602001600020549050919050565b6000546001600160a01b0316331461030d5760405162461bcd60e51b81526004016101849061060f565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b031633146103815760405162461bcd60e51b81526004016101849061060f565b6001600160a01b0381166103e65760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610184565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b60008160405160200161045491906105bc565b604051602081830303815290604052805190602001209050919050565b600082601f830112610481578081fd5b813567ffffffffffffffff8082111561049c5761049c610644565b604051601f8301601f19908116603f011681019082821181831017156104c4576104c4610644565b816040528381528660208588010111156104dc578485fd5b8360208701602083013792830160200193909352509392505050565b600060208284031215610509578081fd5b81356001600160a01b038116811461051f578182fd5b9392505050565b600060208284031215610537578081fd5b813567ffffffffffffffff81111561054d578182fd5b61055984828501610471565b949350505050565b60008060408385031215610573578081fd5b823567ffffffffffffffff811115610589578182fd5b61059585828601610471565b95602094909401359450505050565b6000602082840312156105b5578081fd5b5035919050565b6000602080835283518082850152825b818110156105e8578581018301518582016040015282016105cc565b818111156105f95783604083870101525b50601f01601f1916929092016040019392505050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052604160045260246000fdfea26469706673582212205a1565c2add154bfca142c1a922bcb0175d86378fded07a187075a5ee3e2b7de64736f6c63430008040033
Deployed ByteCode
0x6080604052600436106100705760003560e01c8063524f38891161004e578063524f3889146100ca578063715018a6146100fd5780638da5cb5b14610112578063f2fde38b1461013a57600080fd5b806322e01192146100755780632b66d72e146100975780632e1a7d4d146100aa575b600080fd5b34801561008157600080fd5b50610095610090366004610561565b61015a565b005b6100956100a5366004610526565b6101b0565b3480156100b657600080fd5b506100956100c53660046105a4565b610257565b3480156100d657600080fd5b506100ea6100e5366004610526565b6102be565b6040519081526020015b60405180910390f35b34801561010957600080fd5b506100956102e3565b34801561011e57600080fd5b506000546040516001600160a01b0390911681526020016100f4565b34801561014657600080fd5b506100956101553660046104f8565b610357565b6000546001600160a01b0316331461018d5760405162461bcd60e51b81526004016101849061060f565b60405180910390fd5b806001600061019b85610441565b81526020810191909152604001600020555050565b600160006101bd83610441565b81526020019081526020016000205434146102135760405162461bcd60e51b81526020600482015260166024820152754572726f723a20496e636f727265637420507269636560501b6044820152606401610184565b336001600160a01b03167fdb4e8a6f69daa6b4b9977ed734b510ed9b7ce86536c87435bfd7ef57968d05ee8260405161024c91906105bc565b60405180910390a250565b6000546001600160a01b031633146102815760405162461bcd60e51b81526004016101849061060f565b600080546040516001600160a01b039091169183156108fc02918491818181858888f193505050501580156102ba573d6000803e3d6000fd5b5050565b6000600160006102cd84610441565b8152602001908152602001600020549050919050565b6000546001600160a01b0316331461030d5760405162461bcd60e51b81526004016101849061060f565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b031633146103815760405162461bcd60e51b81526004016101849061060f565b6001600160a01b0381166103e65760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610184565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b60008160405160200161045491906105bc565b604051602081830303815290604052805190602001209050919050565b600082601f830112610481578081fd5b813567ffffffffffffffff8082111561049c5761049c610644565b604051601f8301601f19908116603f011681019082821181831017156104c4576104c4610644565b816040528381528660208588010111156104dc578485fd5b8360208701602083013792830160200193909352509392505050565b600060208284031215610509578081fd5b81356001600160a01b038116811461051f578182fd5b9392505050565b600060208284031215610537578081fd5b813567ffffffffffffffff81111561054d578182fd5b61055984828501610471565b949350505050565b60008060408385031215610573578081fd5b823567ffffffffffffffff811115610589578182fd5b61059585828601610471565b95602094909401359450505050565b6000602082840312156105b5578081fd5b5035919050565b6000602080835283518082850152825b818110156105e8578581018301518582016040015282016105cc565b818111156105f95783604083870101525b50601f01601f1916929092016040019392505050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052604160045260246000fdfea26469706673582212205a1565c2add154bfca142c1a922bcb0175d86378fded07a187075a5ee3e2b7de64736f6c63430008040033