ETH Price: $3,444.05 (-1.08%)
Gas: 3 Gwei

Contract

0xA627B6407398ADfeA322Bc5B858A05585E35D1de
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
0xd9b8bd7df7b9944186f0434399a025b66b47a356015730a758f33c11706c8a43 Starkcet Faucet(pending)2024-07-21 0:06:343 days ago1721520394IN
0xA627B640...85E35D1de
0 ETH(Pending)(Pending)
0xb0ac76102f0c32191a1b25a4e08e6e2fc4408fb4dc91896da90de1d52af51795 Starkcet Faucet(pending)2024-07-21 0:06:343 days ago1721520394IN
0xA627B640...85E35D1de
0 ETH(Pending)(Pending)
0x2e49744055aab98c73261dcbb1b7164c211644cf68d12a34341d34a9e3b9bc09 Starkcet Faucet(pending)2024-07-21 0:06:343 days ago1721520394IN
0xA627B640...85E35D1de
0 ETH(Pending)(Pending)
Starkcet Faucet192274302024-02-14 16:36:23160 days ago1707928583IN
0xA627B640...85E35D1de
0 ETH0.0010340834.5167758
Starkcet Faucet191201762024-01-30 15:19:23175 days ago1706627963IN
0xA627B640...85E35D1de
0 ETH0.0011571338.62397769
Starkcet Faucet190123502024-01-15 12:42:11190 days ago1705322531IN
0xA627B640...85E35D1de
0 ETH0.0004384914.63665427
Starkcet Faucet182115032023-09-25 8:06:47302 days ago1695629207IN
0xA627B640...85E35D1de
0 ETH0.000277369.25823218
Starkcet Faucet182029672023-09-24 3:24:59303 days ago1695525899IN
0xA627B640...85E35D1de
0 ETH0.000205896.87264424
Starkcet Faucet182029352023-09-24 3:18:35303 days ago1695525515IN
0xA627B640...85E35D1de
0 ETH0.000212547.09458293
Starkcet Faucet180795652023-09-06 19:44:59321 days ago1694029499IN
0xA627B640...85E35D1de
0 ETH0.0006430121.46305701
Starkcet Faucet180340772023-08-31 10:51:47327 days ago1693479107IN
0xA627B640...85E35D1de
0 ETH0.0004194214
Starkcet Faucet180056542023-08-27 11:18:23331 days ago1693135103IN
0xA627B640...85E35D1de
0 ETH0.0003595512.00168575
Starkcet Faucet179907222023-08-25 9:09:47333 days ago1692954587IN
0xA627B640...85E35D1de
0 ETH0.0004722815.76444099
Starkcet Faucet179562552023-08-20 13:28:23338 days ago1692538103IN
0xA627B640...85E35D1de
0 ETH0.0003911413.05584618
Starkcet Faucet179503362023-08-19 17:34:11339 days ago1692466451IN
0xA627B640...85E35D1de
0 ETH0.0004580715.29009501
Starkcet Faucet179417162023-08-18 12:37:23340 days ago1692362243IN
0xA627B640...85E35D1de
0 ETH0.000680322.71713335
Starkcet Faucet179244272023-08-16 2:30:59342 days ago1692153059IN
0xA627B640...85E35D1de
0 ETH0.0006546221.85070866
Starkcet Faucet179197512023-08-15 10:49:11343 days ago1692096551IN
0xA627B640...85E35D1de
0 ETH0.0004925516.44090611
Starkcet Faucet179013542023-08-12 21:06:35346 days ago1691874395IN
0xA627B640...85E35D1de
0 ETH0.0004224914.10818672
Starkcet Faucet179012882023-08-12 20:53:23346 days ago1691873603IN
0xA627B640...85E35D1de
0 ETH0.0003761712.56135147
Starkcet Faucet179012802023-08-12 20:51:47346 days ago1691873507IN
0xA627B640...85E35D1de
0 ETH0.0003554411.86926274
Starkcet Faucet179012772023-08-12 20:51:11346 days ago1691873471IN
0xA627B640...85E35D1de
0 ETH0.0003643612.1668476
Starkcet Faucet179012522023-08-12 20:46:11346 days ago1691873171IN
0xA627B640...85E35D1de
0 ETH0.0004055913.54369093
Starkcet Faucet179012032023-08-12 20:36:11346 days ago1691872571IN
0xA627B640...85E35D1de
0 ETH0.0006897723.02380903
Starkcet Faucet178652152023-08-07 19:43:59351 days ago1691437439IN
0xA627B640...85E35D1de
0 ETH0.0006835722.81712534
View all transactions

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

Contract Source Code Verified (Exact Match)

Contract Name:
Starkcet

Compiler Version
v0.8.13+commit.abaa5c0e

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion
File 1 of 4 : Starkcet.sol
// SPDX-License-Identifier: UNLICENSED
pragma solidity ^0.8.13;

import "openzeppelin/contracts/access/Ownable.sol";
import "openzeppelin/contracts/security/Pausable.sol";

interface IERC20 {
    function transfer(address to, uint256 amount) external returns (bool);

    function balanceOf(address account) external view returns (uint256);
}

contract Starkcet is Ownable, Pausable {
    uint64 public lastIdx;
    event StarkcetTx(
        address indexed _from,
        bytes32 indexed _to,
        uint8 indexed _network,
        uint64 _idx
    );

    function starkcetFaucet(
        bytes32 _StarknetAddress,
        uint8 _network
    ) public whenNotPaused {
        lastIdx += 1;
        emit StarkcetTx(msg.sender, _StarknetAddress, _network, lastIdx);
    }

    function setPause(bool pause) public onlyOwner {
        if (pause) {
            _pause();
        }
        if (!pause) {
            _unpause();
        }
    }

    function withdraw(address _token) public onlyOwner {
        uint256 balance = IERC20(_token).balanceOf(address(this));
        IERC20(_token).transfer(owner(), balance);
    }
}

File 2 of 4 : Ownable.sol
// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts (last updated v4.7.0) (access/Ownable.sol)

pragma solidity ^0.8.0;

import "../utils/Context.sol";

/**
 * @dev Contract module which provides a basic access control mechanism, where
 * there is an account (an owner) that can be granted exclusive access to
 * specific functions.
 *
 * By default, the owner account will be the one that deploys the contract. This
 * can later be changed with {transferOwnership}.
 *
 * This module is used through inheritance. It will make available the modifier
 * `onlyOwner`, which can be applied to your functions to restrict their use to
 * the owner.
 */
abstract contract Ownable is Context {
    address private _owner;

    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);

    /**
     * @dev Initializes the contract setting the deployer as the initial owner.
     */
    constructor() {
        _transferOwnership(_msgSender());
    }

    /**
     * @dev Throws if called by any account other than the owner.
     */
    modifier onlyOwner() {
        _checkOwner();
        _;
    }

    /**
     * @dev Returns the address of the current owner.
     */
    function owner() public view virtual returns (address) {
        return _owner;
    }

    /**
     * @dev Throws if the sender is not the owner.
     */
    function _checkOwner() internal view virtual {
        require(owner() == _msgSender(), "Ownable: caller is not the owner");
    }

    /**
     * @dev Leaves the contract without owner. It will not be possible to call
     * `onlyOwner` functions anymore. Can only be called by the current owner.
     *
     * NOTE: Renouncing ownership will leave the contract without an owner,
     * thereby removing any functionality that is only available to the owner.
     */
    function renounceOwnership() public virtual onlyOwner {
        _transferOwnership(address(0));
    }

    /**
     * @dev Transfers ownership of the contract to a new account (`newOwner`).
     * Can only be called by the current owner.
     */
    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(newOwner != address(0), "Ownable: new owner is the zero address");
        _transferOwnership(newOwner);
    }

    /**
     * @dev Transfers ownership of the contract to a new account (`newOwner`).
     * Internal function without access restriction.
     */
    function _transferOwnership(address newOwner) internal virtual {
        address oldOwner = _owner;
        _owner = newOwner;
        emit OwnershipTransferred(oldOwner, newOwner);
    }
}

File 3 of 4 : Pausable.sol
// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts (last updated v4.7.0) (security/Pausable.sol)

pragma solidity ^0.8.0;

import "../utils/Context.sol";

/**
 * @dev Contract module which allows children to implement an emergency stop
 * mechanism that can be triggered by an authorized account.
 *
 * This module is used through inheritance. It will make available the
 * modifiers `whenNotPaused` and `whenPaused`, which can be applied to
 * the functions of your contract. Note that they will not be pausable by
 * simply including this module, only once the modifiers are put in place.
 */
abstract contract Pausable is Context {
    /**
     * @dev Emitted when the pause is triggered by `account`.
     */
    event Paused(address account);

    /**
     * @dev Emitted when the pause is lifted by `account`.
     */
    event Unpaused(address account);

    bool private _paused;

    /**
     * @dev Initializes the contract in unpaused state.
     */
    constructor() {
        _paused = false;
    }

    /**
     * @dev Modifier to make a function callable only when the contract is not paused.
     *
     * Requirements:
     *
     * - The contract must not be paused.
     */
    modifier whenNotPaused() {
        _requireNotPaused();
        _;
    }

    /**
     * @dev Modifier to make a function callable only when the contract is paused.
     *
     * Requirements:
     *
     * - The contract must be paused.
     */
    modifier whenPaused() {
        _requirePaused();
        _;
    }

    /**
     * @dev Returns true if the contract is paused, and false otherwise.
     */
    function paused() public view virtual returns (bool) {
        return _paused;
    }

    /**
     * @dev Throws if the contract is paused.
     */
    function _requireNotPaused() internal view virtual {
        require(!paused(), "Pausable: paused");
    }

    /**
     * @dev Throws if the contract is not paused.
     */
    function _requirePaused() internal view virtual {
        require(paused(), "Pausable: not paused");
    }

    /**
     * @dev Triggers stopped state.
     *
     * Requirements:
     *
     * - The contract must not be paused.
     */
    function _pause() internal virtual whenNotPaused {
        _paused = true;
        emit Paused(_msgSender());
    }

    /**
     * @dev Returns to normal state.
     *
     * Requirements:
     *
     * - The contract must be paused.
     */
    function _unpause() internal virtual whenPaused {
        _paused = false;
        emit Unpaused(_msgSender());
    }
}

File 4 of 4 : 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;
    }
}

Settings
{
  "remappings": [
    "ds-test/=lib/forge-std/lib/ds-test/src/",
    "forge-std/=lib/forge-std/src/",
    "openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/",
    "openzeppelin/=lib/openzeppelin-contracts/"
  ],
  "optimizer": {
    "enabled": true,
    "runs": 200
  },
  "metadata": {
    "bytecodeHash": "ipfs"
  },
  "outputSelection": {
    "*": {
      "*": [
        "evm.bytecode",
        "evm.deployedBytecode",
        "devdoc",
        "userdoc",
        "metadata",
        "abi"
      ]
    }
  },
  "evmVersion": "london",
  "libraries": {}
}

Contract Security Audit

Contract ABI

[{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"}],"name":"Paused","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_from","type":"address"},{"indexed":true,"internalType":"bytes32","name":"_to","type":"bytes32"},{"indexed":true,"internalType":"uint8","name":"_network","type":"uint8"},{"indexed":false,"internalType":"uint64","name":"_idx","type":"uint64"}],"name":"StarkcetTx","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"}],"name":"Unpaused","type":"event"},{"inputs":[],"name":"lastIdx","outputs":[{"internalType":"uint64","name":"","type":"uint64"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"paused","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"pause","type":"bool"}],"name":"setPause","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"_StarknetAddress","type":"bytes32"},{"internalType":"uint8","name":"_network","type":"uint8"}],"name":"starkcetFaucet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_token","type":"address"}],"name":"withdraw","outputs":[],"stateMutability":"nonpayable","type":"function"}]

608060405234801561001057600080fd5b5061001a3361002c565b6000805460ff60a01b1916905561007c565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6106cc8061008b6000396000f3fe608060405234801561001057600080fd5b50600436106100885760003560e01c8063bedb86fb1161005b578063bedb86fb146100e7578063d4351902146100fa578063d486645c1461010d578063f2fde38b1461014157600080fd5b806351cff8d91461008d5780635c975abb146100a2578063715018a6146100c45780638da5cb5b146100cc575b600080fd5b6100a061009b366004610595565b610154565b005b600054600160a01b900460ff1660405190151581526020015b60405180910390f35b6100a0610260565b6000546040516001600160a01b0390911681526020016100bb565b6100a06100f53660046105d3565b610274565b6100a06101083660046105f0565b61029a565b60005461012890600160a81b900467ffffffffffffffff1681565b60405167ffffffffffffffff90911681526020016100bb565b6100a061014f366004610595565b610337565b61015c6103b2565b6040516370a0823160e01b81523060048201526000906001600160a01b038316906370a0823190602401602060405180830381865afa1580156101a3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101c79190610626565b9050816001600160a01b031663a9059cbb6101ea6000546001600160a01b031690565b6040516001600160e01b031960e084901b1681526001600160a01b039091166004820152602481018490526044016020604051808303816000875af1158015610237573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061025b919061063f565b505050565b6102686103b2565b610272600061040c565b565b61027c6103b2565b801561028a5761028a61045c565b80610297576102976104bc565b50565b6102a26104f8565b6001600060158282829054906101000a900467ffffffffffffffff166102c8919061065c565b82546101009290920a67ffffffffffffffff818102199093169183160217909155600054604051600160a81b909104909116815260ff83169150839033907f16cc70f92a793253ec73ece6c27dddaa30c1ef93beb693afcdf360845376be819060200160405180910390a45050565b61033f6103b2565b6001600160a01b0381166103a95760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b6102978161040c565b6000546001600160a01b031633146102725760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016103a0565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6104646104f8565b6000805460ff60a01b1916600160a01b1790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a25861049f3390565b6040516001600160a01b03909116815260200160405180910390a1565b6104c4610545565b6000805460ff60a01b191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa3361049f565b600054600160a01b900460ff16156102725760405162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b60448201526064016103a0565b600054600160a01b900460ff166102725760405162461bcd60e51b815260206004820152601460248201527314185d5cd8589b194e881b9bdd081c185d5cd95960621b60448201526064016103a0565b6000602082840312156105a757600080fd5b81356001600160a01b03811681146105be57600080fd5b9392505050565b801515811461029757600080fd5b6000602082840312156105e557600080fd5b81356105be816105c5565b6000806040838503121561060357600080fd5b82359150602083013560ff8116811461061b57600080fd5b809150509250929050565b60006020828403121561063857600080fd5b5051919050565b60006020828403121561065157600080fd5b81516105be816105c5565b600067ffffffffffffffff80831681851680830382111561068d57634e487b7160e01b600052601160045260246000fd5b0194935050505056fea2646970667358221220ad3b0896c97cf6840ce8d6691574a836f83b7410c16e9c9cb11c114350da5bd764736f6c634300080d0033

Deployed Bytecode

0x608060405234801561001057600080fd5b50600436106100885760003560e01c8063bedb86fb1161005b578063bedb86fb146100e7578063d4351902146100fa578063d486645c1461010d578063f2fde38b1461014157600080fd5b806351cff8d91461008d5780635c975abb146100a2578063715018a6146100c45780638da5cb5b146100cc575b600080fd5b6100a061009b366004610595565b610154565b005b600054600160a01b900460ff1660405190151581526020015b60405180910390f35b6100a0610260565b6000546040516001600160a01b0390911681526020016100bb565b6100a06100f53660046105d3565b610274565b6100a06101083660046105f0565b61029a565b60005461012890600160a81b900467ffffffffffffffff1681565b60405167ffffffffffffffff90911681526020016100bb565b6100a061014f366004610595565b610337565b61015c6103b2565b6040516370a0823160e01b81523060048201526000906001600160a01b038316906370a0823190602401602060405180830381865afa1580156101a3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101c79190610626565b9050816001600160a01b031663a9059cbb6101ea6000546001600160a01b031690565b6040516001600160e01b031960e084901b1681526001600160a01b039091166004820152602481018490526044016020604051808303816000875af1158015610237573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061025b919061063f565b505050565b6102686103b2565b610272600061040c565b565b61027c6103b2565b801561028a5761028a61045c565b80610297576102976104bc565b50565b6102a26104f8565b6001600060158282829054906101000a900467ffffffffffffffff166102c8919061065c565b82546101009290920a67ffffffffffffffff818102199093169183160217909155600054604051600160a81b909104909116815260ff83169150839033907f16cc70f92a793253ec73ece6c27dddaa30c1ef93beb693afcdf360845376be819060200160405180910390a45050565b61033f6103b2565b6001600160a01b0381166103a95760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b6102978161040c565b6000546001600160a01b031633146102725760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016103a0565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6104646104f8565b6000805460ff60a01b1916600160a01b1790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a25861049f3390565b6040516001600160a01b03909116815260200160405180910390a1565b6104c4610545565b6000805460ff60a01b191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa3361049f565b600054600160a01b900460ff16156102725760405162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b60448201526064016103a0565b600054600160a01b900460ff166102725760405162461bcd60e51b815260206004820152601460248201527314185d5cd8589b194e881b9bdd081c185d5cd95960621b60448201526064016103a0565b6000602082840312156105a757600080fd5b81356001600160a01b03811681146105be57600080fd5b9392505050565b801515811461029757600080fd5b6000602082840312156105e557600080fd5b81356105be816105c5565b6000806040838503121561060357600080fd5b82359150602083013560ff8116811461061b57600080fd5b809150509250929050565b60006020828403121561063857600080fd5b5051919050565b60006020828403121561065157600080fd5b81516105be816105c5565b600067ffffffffffffffff80831681851680830382111561068d57634e487b7160e01b600052601160045260246000fd5b0194935050505056fea2646970667358221220ad3b0896c97cf6840ce8d6691574a836f83b7410c16e9c9cb11c114350da5bd764736f6c634300080d0033

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
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  ]

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.