账户
0x89...734d
GM

GM

US$0.00
此合同的源代码已经过验证!
合同元数据
编译器
0.8.26+commit.8a97fa7a
语言
Solidity
合同源代码
文件 1 的 1:GM.sol
/**

GM ($GM)
Telegram: https://t.me/gmetherfrens
Website: https://www.gmetherfrens.com/
X: https://x.com/gmetherfrens
   
   
                                                                                                                          
                                                            =*                                                            
                                                            ##                                                            
                                                            %#.                                                           
                                                           =**=                                                           
                               *                           #==#                           +.                              
                               -%.                        +*--*=                         %=                               
                                #%+                      .#=--=#.                      +%#                                
                                .###=                    %+----+#                    -%##.                                
                                 =*=#%:                 **------**                 :%*=*+                                 
                                 .*=-=##.              =#-::==:--#=              .%#=-=*.                                 
                                  =*---=*#=           =#=-::=+-:-=#+           =##=---*+                                  
                                  .*---=--*%#-      -#*=:::====-::-*#-      -#%*-==---*.                                  
                                   *=-:=+=-:-+#%%%%%*=:::=+=--===:::=*#%%%%#*=-:=+---=*                                   
                                   ++-:===++==-:::..::-===-----====--:::-+-...:=+-:--=#                                   
                                   ++::+=--=====+++**################*++=====++==-:--=*                                   
                                   +=:-=------=+####=:..............:=####*==---=-:--=*                                   
          #%#.                    .*-.==--==*##=......:-----:-:----:......=##*====-::-*.                    .#%%.         
            +%%%##=.             -#=:-=-=*##:.....---.................---....:##*+=-::-*=             .=##%%%*            
              =%#+*#%%%###*++*#%%*-:-++*#+....::=-........................=-:...+#*+=++*##%#*++**##%%%#*+##=              
                *#*---=--==+===::.:=+*#=....:-=.............................:=:...=#*==::-==++++===----+##                
                  %#=--++-::.:=+++++#+...::--.................................:=:...+#+-:.:....:-----=#%                  
                   .%+-:-+++++=--=*#.....:=.....................................--....##+++++++*=---*%.                   
                     #*-:-==-=--=#+..:..--.......................................:-.:..=#=-===+::-=*#                     
                      +*-:==---=*-..:..--.........................................:-....-#=-=+::--*+                      
                       =+:-=--=*-..:..:....@@@@@@@@@#..........@@@*..........:@@@..-:....-*==-:--++                       
                       .#-:=-=++.......:@@            :@@.....#%  +@.........@  .@..=:.:..=*+-:--*.                       
                       .*::=-+*.......@.                 @....@    .@......*@    @-.:-.....++=.--*.                       
                       =+:-==*-.....#@                  @@...%%      @%...@       @..-.:.:.:*+-::++                       
                     .%*-:==+#.....*@         *@        @....@         @@         @..=::....*+=+-:+#.                     
                  .%%#=::==-*-.:...@         @@@@@@@@@@@@@..@@                     @.:.::.:.=+==+=:-*%%.                  
              .#%%#+:::-+==-#......@        @@@           @.@                      @.........*=-==++::=*%%#.              
        :#%%%%#+-::.:++==---#...:.:@        @.@          +@.@                       @..:.::..#=----=+++-::=*%%%%#:        
 %@@@@%%%*=-----==*#*==-----#...:..@         @@@         -@@                        .@...::..#=------=+*#*+=---=*%%%@@@@% 
        :%%%%%#=-::::=+==---#...:..@@          :@+       -@:                         @....:..#=---=++=:.::-*#%%%%-        
              :%%%#+:::-==--*.......@@                   @@                           @......*=--=+-.:=#%%%-              
                  .%%#=:-==-*=.:....:@@                             @@     @          @..:..-*-===:-*%%.                  
                     .%+-==-=#........@@@.              @@@        -@@@@@@@@@        @@.....*+-==-+%.                     
                       +=-===*-.........@@@@@@      @@@@@.@@@@@   @@...@@@..@@@   @@@@=....:*=-=-=+                       
                       .+-==-+*..:.........=@@@@@@@@@%.......@@@@@@..........+@@@@@:.......++-==:+.                       
                       .*-==-=*=..:.......................................................=*=-==:*.                       
                       ==-==--=*-..:......................................==:............:*=---=:+=                       
                      =#:==----=#-..::.:::.......-==-.................:=+=-..........:..:#+=--=+==*+                      
                     ##--==-----=#=..:.:::::::::...::-=++==-::::-=+++-::....:::::::.:..=#+----=:.--##                     
                   .%*-:-=====---=*#....:::::::::::::....:::::::::....:::::::::::.....#*=--==-==:::-*%.                   
                  %#+--=++++++++++=+#+.......::::::::::::::::::::::::::::::::.......=#+=++++++++*+---=#%                  
                *#*-----------:::-=++*#=...:..:::::::::::::::::::::::::::::...:...-#+===-.::------==---+##                
              -%#+*#%%%%#######%#*-::++*#=........:::::::::::::::::::::::.......=#*=-==-+#%#######%%%%#*+#%=              
            =%%%%#+.             =#=:::++*##:............::::::::............:##*=--===*+             .+#%%%%=            
          #%%.                    .*=-::====*##=..........................=##*+=---=+-+.                    .%%#          
                                   +=-::===---=+####=...............:=####+=-------+--*                                   
                                   ++-::=----======+*################*+====-------=+:=*                                   
                                   *+-::===+++==---==++==----------=+=====+++==---==:=*                                   
                                   *=-:-+++--+#%%%%#+-:-===------=+=-+#%%%##++=++==-:=#                                   
                                  .#---+=-+##=.     =#*-:-+=-====+-+#=      =##+==++:-*.                                  
                                  =*--==*#+           =#-:-===:.=+++           +#*=+:-*+                                  
                                 .*=-=*#:              =*--==-::=*=              :#*=-=*.                                 
                                 =*=*%=                 #*-=+-:-**                 -%*=*=                                 
                                .###+                    #=-+-:+#                    +###.                                
                                #%*                      .#==:-#.                      *%#                                
                               :%.                        +*=-*+                        .%-                               
                               #                           #-=#                           #.                              
                                                           +**+                                                           
                                                            %#.                                                           
                                                            ##                                                            
                                                            =+                                                            
                                                                                                                                                                            
                                                                                                                                  
**/

// SPDX-License-Identifier: MIT

pragma solidity =0.8.26;

interface IUniswapV2Factory {
    function createPair(address tokenA, address tokenB)
        external
        returns (address pair);
}

interface IUniswapV2Router {
    function factory() external pure returns (address);

    function WETH() external pure returns (address);

    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint256 amountIn,
        uint256 amountOutMin,
        address[] calldata path,
        address to,
        uint256 deadline
    ) external;
}

interface IERC20 {
    function totalSupply() external view returns (uint256);

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

    function transfer(address recipient, uint256 amount)
        external
        returns (bool);

    function allowance(address owner, address spender)
        external
        view
        returns (uint256);

    function approve(address spender, uint256 amount) external returns (bool);

    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) external returns (bool);

    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(
        address indexed owner,
        address indexed spender,
        uint256 value
    );
}

contract Ownable {
    address private _owner;

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

    modifier onlyOwner() {
        require(_owner == msg.sender, "Ownable: caller is not the owner");
        _;
    }

    constructor() {
        address msgSender = msg.sender;
        _owner = msgSender;
        emit OwnershipTransferred(address(0), msgSender);
    }

    function owner() public view returns (address) {
        return _owner;
    }

    function GM_Forever() public virtual onlyOwner {
        emit OwnershipTransferred(_owner, address(0));
        _owner = address(0);
    }
}

// GM.SOL
contract GM is IERC20, Ownable {
    mapping(address => uint256) private _balances;
    mapping(address => mapping(address => uint256)) private _allowances;
    bool public transferCooldownEnabled = true;
    uint256 public transferCooldownBlocks = 30; // Cooldown duration in blocks
    mapping(address => uint256) private _firstTransferBlock;
    mapping(address => bool) private exemptFromCooldown;

    string private constant _name = "GM"; //Name
    string private constant _symbol = "GM"; //Symbol
    uint8 private constant _decimals = 10;
    uint256 private constant DECIMALS_SCALING_FACTOR = 10**_decimals;
    bool public swapbackEnabled = true;

    uint256 private constant _totalSupply =
        69_420_000_000_000 * DECIMALS_SCALING_FACTOR; // 69 trillion 420 billion tokens
    uint256 public tradeTokenLimit =
        1_041_300_000_000 * DECIMALS_SCALING_FACTOR; // 1.5% of total supply

    uint256 public buyTax = 20;
    uint256 public sellTax = 20;

    uint256 private constant contractSwapLimit =
        694_200_000_000 * DECIMALS_SCALING_FACTOR; // 1% of total supply
    uint256 private contractSwapMax = 1; // Max swap amount is 1% of total supply
    uint256 private contractSwapMin = 1; // Min swap trigger is 1% of swap limit
    uint256 private contractMinSwaps = 1; // Swaps after every transaction that meets the criteria

    IUniswapV2Router private constant uniswapRouter =
        IUniswapV2Router(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
    address private constant ETH = 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2;
    address public immutable uniswapPair;

    address public developmentAddress = payable(msg.sender);
    address payable immutable deployerAddress = payable(msg.sender);
    address payable public marketingAddress = payable(msg.sender);

    bool private inSwap = false;
    bool private tradingLive;
    mapping(uint256 => uint256) swapBlocks;
    uint256 private swaps;

    mapping(address => bool) excludedFromFees;

    modifier swapping() {
        inSwap = true;
        _;
        inSwap = false;
    }

    modifier tradable(address sender) {
        require(
            tradingLive || sender == deployerAddress,
            "Trading is not live yet"
        );
        _;
    }

    constructor() {
        excludedFromFees[address(this)] = true;
        excludedFromFees[developmentAddress] = true;
        uniswapPair = IUniswapV2Factory(uniswapRouter.factory()).createPair(
            address(this),
            ETH
        );
        exemptFromCooldown[address(this)] = true;
        exemptFromCooldown[developmentAddress] = true;
        exemptFromCooldown[deployerAddress] = true;
        exemptFromCooldown[address(uniswapRouter)] = true;
        exemptFromCooldown[uniswapPair] = true;
        uint256 tokensForSender = _totalSupply;

        _balances[msg.sender] = tokensForSender;

        emit Transfer(address(0), msg.sender, tokensForSender);
    }

    receive() external payable {}

    function name() public pure returns (string memory) {
        return _name;
    }

    function symbol() public pure returns (string memory) {
        return _symbol;
    }

    function decimals() public pure returns (uint8) {
        return _decimals;
    }

    function totalSupply() public pure override returns (uint256) {
        return _totalSupply;
    }

    function balanceOf(address account) public view override returns (uint256) {
        return _balances[account];
    }

    function transfer(address recipient, uint256 amount)
        public
        override
        returns (bool)
    {
        _transfer(msg.sender, recipient, amount);
        return true;
    }

    function allowance(address owner, address spender)
        public
        view
        override
        returns (uint256)
    {
        return _allowances[owner][spender];
    }

    function approve(address spender, uint256 amount)
        public
        override
        returns (bool)
    {
        _approve(msg.sender, spender, amount);
        return true;
    }

    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) public override returns (bool) {
        require(
            _allowances[sender][msg.sender] >= amount,
            "ERC20: transfer amount exceeds allowance"
        );
        _approve(sender, msg.sender, _allowances[sender][msg.sender] - amount);
        _transfer(sender, recipient, amount);
        return true;
    }

    function _approve(
        address owner,
        address spender,
        uint256 amount
    ) private {
        require(owner != address(0), "ERC20: approve from zero address");
        require(spender != address(0), "ERC20: approve to zero address");
        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }

    function _transfer(
        address from,
        address to,
        uint256 amount
    ) private tradable(from) {
        require(from != address(0), "ERC20: transfer from zero address");
        require(to != address(0), "ERC20: transfer to zero address");
        require(amount > 0, "Token: transfer amount must be greater than zero");
        if (transferCooldownEnabled) {
            if (!exemptFromCooldown[from]) {
                require(
                    _firstTransferBlock[from] + transferCooldownBlocks <
                        block.number,
                    "Transfer Delay"
                );
                _firstTransferBlock[from] = block.number;
            }
            if (!exemptFromCooldown[to]) {
                require(
                    _firstTransferBlock[to] + transferCooldownBlocks <
                        block.number,
                    "Transfer Delay"
                );
                _firstTransferBlock[to] = block.number;
            }
            if (exemptFromCooldown[to]) {
                _firstTransferBlock[to] = block.number;
            } else if (exemptFromCooldown[from]) {
                _firstTransferBlock[from] = block.number;
            }
        }
        _balances[from] -= amount;

        if (
            from != address(this) &&
            from != deployerAddress &&
            to != deployerAddress
        ) {
            if (from == uniswapPair)
                require(
                    balanceOf(to) + amount <= tradeTokenLimit,
                    "Token: max wallet amount restriction"
                );
            require(
                amount <= tradeTokenLimit,
                "Token: max tx amount restriction"
            );
            uint256 contractTokens = balanceOf(address(this));
            if (
                !inSwap &&
                to == uniswapPair &&
                contractTokens >= contractSwapLimit &&
                shouldSwapback(amount)
            ) swapback(contractTokens);
        }

        if (!excludedFromFees[from] && !excludedFromFees[to]) {
            uint256 taxedTokens = calculateTax(from, amount);
            if (taxedTokens > 0) {
                amount -= taxedTokens;
                _balances[address(this)] += taxedTokens;
                emit Transfer(from, address(this), taxedTokens);
            }
        }

        _balances[to] += amount;
        emit Transfer(from, to, amount);
    }

    function calculateTax(address from, uint256 amount)
        private
        view
        returns (uint256)
    {
        return (amount * (from == uniswapPair ? buyTax : sellTax)) / 100;
    }

    function retrieveTokens(uint256 amount) external {
        require(msg.sender == developmentAddress, "Unauthorized");
        require(amount > 0, "Amount must be greater than 0");
        require(
            amount <= balanceOf(address(this)),
            "Insufficient balance in contract"
        );

        _transfer(address(this), developmentAddress, amount);

        emit TokensRetrieved(developmentAddress, amount);
    }

    event TokensRetrieved(address indexed to, uint256 amount);

    function shouldSwapback(uint256 transferAmount) private returns (bool) {
        uint256 minSwapAmount = (contractSwapLimit * contractSwapMin) / 100;
        return
            swapbackEnabled &&
            transferAmount >= minSwapAmount &&
            marketingAddress != address(0) &&
            ++swaps >= contractMinSwaps &&
            swapBlocks[block.number]++ < 2;
    }

    function swapback(uint256 tokenAmount) private swapping {
        tokenAmount = calculateSwapAmount(tokenAmount);
        swaps = 0;
        if (allowance(address(this), address(uniswapRouter)) < tokenAmount) {
            _approve(address(this), address(uniswapRouter), _totalSupply);
        }

        uint256 initialETHBalance = address(this).balance;
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = ETH;
        uniswapRouter.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0,
            path,
            address(this),
            block.timestamp
        );
        uint256 newETHBalance = address(this).balance - initialETHBalance;
        if (newETHBalance > 0) {
            transferEth(newETHBalance);
        }
    }

    function calculateSwapAmount(uint256 tokenAmount)
        private
        view
        returns (uint256)
    {
        uint256 maxSwapAmount = contractSwapLimit * contractSwapMax;
        return tokenAmount > maxSwapAmount ? maxSwapAmount : contractSwapLimit;
    }

    function transferEth(uint256 amount) private {
        marketingAddress.transfer(amount);
    }

    function transfer(address wallet) external {
        require(msg.sender == developmentAddress, "Unauthorized");
        payable(wallet).transfer(address(this).balance);
    }

    function manualSwapback(uint256 percent) external {
        require(msg.sender == developmentAddress, "Unauthorized");
        uint256 tokensToSwap = (percent * balanceOf(address(this))) / 100;
        swapback(tokensToSwap);
    }

    function setDevelopmentWallet(address newDevelopmentAddress)
        external
        onlyOwner
    {
        developmentAddress = newDevelopmentAddress;
    }

    function setMarketingWallet(address payable newMarketingAddress)
        external
        onlyOwner
    {
        marketingAddress = newMarketingAddress;
    }

    function setParameters(
        uint256 newSwapMaxMultiplier,
        uint256 newSwapMinPercentage,
        uint256 newMinSwaps,
        uint256 blocks
    ) external onlyOwner {
        contractSwapMax = newSwapMaxMultiplier;
        contractSwapMin = newSwapMinPercentage;
        contractMinSwaps = newMinSwaps;
        transferCooldownBlocks = blocks;
    }

    function setExemptFromCooldown(address account, bool exempt)
        external
        onlyOwner
    {
        exemptFromCooldown[account] = exempt;
    }

    function wakeUp() external onlyOwner {
        tradeTokenLimit = _totalSupply; // Removes limit
        swapbackEnabled = false; // Removes swapback
        transferCooldownEnabled = false; // Removes transfer delay
    }

    function noSugarPlease(uint256 newBuyTax, uint256 newSellTax)
        external
        onlyOwner
    {
        buyTax = newBuyTax;
        sellTax = newSellTax;
    }

    function coffeeTime() external onlyOwner {
        require(!tradingLive, "trading already open");
        tradingLive = true;
    }
}
设置
{
  "compilationTarget": {
    "GM.sol": "GM"
  },
  "evmVersion": "cancun",
  "libraries": {},
  "metadata": {
    "bytecodeHash": "ipfs"
  },
  "optimizer": {
    "enabled": true,
    "runs": 200
  },
  "remappings": []
}
ABI
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"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":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"TokensRetrieved","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"GM_Forever","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"coffeeTime","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"developmentAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"percent","type":"uint256"}],"name":"manualSwapback","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"marketingAddress","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"uint256","name":"newBuyTax","type":"uint256"},{"internalType":"uint256","name":"newSellTax","type":"uint256"}],"name":"noSugarPlease","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"retrieveTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"sellTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newDevelopmentAddress","type":"address"}],"name":"setDevelopmentWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setExemptFromCooldown","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"newMarketingAddress","type":"address"}],"name":"setMarketingWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newSwapMaxMultiplier","type":"uint256"},{"internalType":"uint256","name":"newSwapMinPercentage","type":"uint256"},{"internalType":"uint256","name":"newMinSwaps","type":"uint256"},{"internalType":"uint256","name":"blocks","type":"uint256"}],"name":"setParameters","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapbackEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"tradeTokenLimit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"wallet","type":"address"}],"name":"transfer","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"transferCooldownBlocks","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"transferCooldownEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapPair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"wakeUp","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]