Cryo Explorer Ethereum Mainnet

Address Contract Partially Verified

Address 0xec6013D62Af8dfB65B8248204Dd1913d2f1F0181
Balance 0 ETH
Nonce 1
Code Size 7017 bytes
Indexed Transactions 0
External Etherscan · Sourcify

Contract Bytecode

7017 bytes
0x6080604052600436106100865760003560e01c8063715018a611610059578063715018a6146101125780638456cb59146101295780638da5cb5b14610140578063d2423b511461016b578063f2fde38b1461018757610086565b80631eb99a671461008b5780633f4ba83a146100a75780635c975abb146100be5780635cfb4a16146100e9575b600080fd5b6100a560048036038101906100a09190610fe0565b6101b0565b005b3480156100b357600080fd5b506100bc6103d4565b005b3480156100ca57600080fd5b506100d36104a1565b6040516100e09190611481565b60405180910390f35b3480156100f557600080fd5b50610110600480360381019061010b919061114e565b6104b7565b005b34801561011e57600080fd5b5061012761050c565b005b34801561013557600080fd5b5061013e610594565b005b34801561014c57600080fd5b50610155610662565b604051610162919061142f565b60405180910390f35b610185600480360381019061018091906110c1565b61068b565b005b34801561019357600080fd5b506101ae60048036038101906101a99190610fb3565b61079b565b005b6101b86104a1565b156101f8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016101ef9061154e565b60405180910390fd5b6000851415610233576040517f95ca037900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141561031a5760008673ffffffffffffffffffffffffffffffffffffffff168660405161028e9061141a565b60006040518083038185875af1925050503d80600081146102cb576040519150601f19603f3d011682016040523d82523d6000602084013e6102d0565b606091505b5050905080610314576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161030b9061158e565b60405180910390fd5b50610348565b6103473387878773ffffffffffffffffffffffffffffffffffffffff16610893909392919063ffffffff16565b5b8373ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167ff58d1b40800221e8f4f8ce5992e1821d5b8a1286ad8da7da8b61a0fea0b8f3d488878787426040516103c49594939291906115ee565b60405180910390a4505050505050565b6103dc6104a1565b61041b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610412906114ee565b60405180910390fd5b61042361091c565b73ffffffffffffffffffffffffffffffffffffffff16610441610662565b73ffffffffffffffffffffffffffffffffffffffff1614610497576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161048e9061156e565b60405180910390fd5b61049f610924565b565b60008060009054906101000a900460ff16905090565b3373ffffffffffffffffffffffffffffffffffffffff16827f52d5b49fd05ad35249b65196644ca51ff593704ec0f94067bcdc65be8bdefbaf83426040516105009291906114be565b60405180910390a35050565b61051461091c565b73ffffffffffffffffffffffffffffffffffffffff16610532610662565b73ffffffffffffffffffffffffffffffffffffffff1614610588576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161057f9061156e565b60405180910390fd5b61059260006109c5565b565b61059c6104a1565b156105dc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105d39061154e565b60405180910390fd5b6105e461091c565b73ffffffffffffffffffffffffffffffffffffffff16610602610662565b73ffffffffffffffffffffffffffffffffffffffff1614610658576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161064f9061156e565b60405180910390fd5b610660610a8a565b565b60008060019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60005b83839050811015610795576000803073ffffffffffffffffffffffffffffffffffffffff168686858181106106c6576106c561187e565b5b90506020028101906106d89190611656565b6040516106e69291906113ea565b600060405180830381855af49150503d8060008114610721576040519150601f19603f3d011682016040523d82523d6000602084013e610726565b606091505b5091509150811580156107365750835b156107805761074481610b2c565b6040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610777919061149c565b60405180910390fd5b5050808061078d90611806565b91505061068e565b50505050565b6107a361091c565b73ffffffffffffffffffffffffffffffffffffffff166107c1610662565b73ffffffffffffffffffffffffffffffffffffffff1614610817576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161080e9061156e565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610887576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161087e9061150e565b60405180910390fd5b610890816109c5565b50565b610916846323b872dd60e01b8585856040516024016108b49392919061144a565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050610b97565b50505050565b600033905090565b61092c6104a1565b61096b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610962906114ee565b60405180910390fd5b60008060006101000a81548160ff0219169083151502179055507f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa6109ae61091c565b6040516109bb919061142f565b60405180910390a1565b60008060019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600060016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b610a926104a1565b15610ad2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ac99061154e565b60405180910390fd5b60016000806101000a81548160ff0219169083151502179055507f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258610b1561091c565b604051610b22919061142f565b60405180910390a1565b6060604482511015610b75576040518060400160405280601d81526020017f5472616e73616374696f6e2072657665727465642073696c656e746c790000008152509050610b92565b60048201915081806020019051810190610b8f91906111aa565b90505b919050565b6000610bf9826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff16610c5e9092919063ffffffff16565b9050600081511115610c595780806020019051810190610c199190611121565b610c58576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c4f906115ce565b60405180910390fd5b5b505050565b6060610c6d8484600085610c76565b90509392505050565b606082471015610cbb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cb29061152e565b60405180910390fd5b610cc485610d8a565b610d03576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cfa906115ae565b60405180910390fd5b6000808673ffffffffffffffffffffffffffffffffffffffff168587604051610d2c9190611403565b60006040518083038185875af1925050503d8060008114610d69576040519150601f19603f3d011682016040523d82523d6000602084013e610d6e565b606091505b5091509150610d7e828286610dad565b92505050949350505050565b6000808273ffffffffffffffffffffffffffffffffffffffff163b119050919050565b60608315610dbd57829050610e0d565b600083511115610dd05782518084602001fd5b816040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e04919061149c565b60405180910390fd5b9392505050565b6000610e27610e22846116de565b6116b9565b905082815260208101848484011115610e4357610e426118fa565b5b610e4e848285611793565b509392505050565b6000610e69610e64846116de565b6116b9565b905082815260208101848484011115610e8557610e846118fa565b5b610e908482856117a2565b509392505050565b600081359050610ea781611ad7565b92915050565b60008083601f840112610ec357610ec26118e1565b5b8235905067ffffffffffffffff811115610ee057610edf6118dc565b5b602083019150836020820283011115610efc57610efb6118f0565b5b9250929050565b600081359050610f1281611aee565b92915050565b600081519050610f2781611aee565b92915050565b600081359050610f3c81611b05565b92915050565b600082601f830112610f5757610f566118e1565b5b8135610f67848260208601610e14565b91505092915050565b600082601f830112610f8557610f846118e1565b5b8151610f95848260208601610e56565b91505092915050565b600081359050610fad81611b1c565b92915050565b600060208284031215610fc957610fc8611904565b5b6000610fd784828501610e98565b91505092915050565b60008060008060008060c08789031215610ffd57610ffc611904565b5b600061100b89828a01610e98565b965050602061101c89828a01610f9e565b955050604061102d89828a01610e98565b945050606087013567ffffffffffffffff81111561104e5761104d6118ff565b5b61105a89828a01610f42565b935050608087013567ffffffffffffffff81111561107b5761107a6118ff565b5b61108789828a01610f42565b92505060a087013567ffffffffffffffff8111156110a8576110a76118ff565b5b6110b489828a01610f42565b9150509295509295509295565b6000806000604084860312156110da576110d9611904565b5b600084013567ffffffffffffffff8111156110f8576110f76118ff565b5b61110486828701610ead565b9350935050602061111786828701610f03565b9150509250925092565b60006020828403121561113757611136611904565b5b600061114584828501610f18565b91505092915050565b6000806040838503121561116557611164611904565b5b600061117385828601610f2d565b925050602083013567ffffffffffffffff811115611194576111936118ff565b5b6111a085828601610f42565b9150509250929050565b6000602082840312156111c0576111bf611904565b5b600082015167ffffffffffffffff8111156111de576111dd6118ff565b5b6111ea84828501610f70565b91505092915050565b6111fc81611741565b82525050565b61120b81611753565b82525050565b600061121d8385611725565b935061122a838584611793565b82840190509392505050565b60006112418261170f565b61124b8185611725565b935061125b8185602086016117a2565b80840191505092915050565b60006112728261171a565b61127c8185611730565b935061128c8185602086016117a2565b61129581611909565b840191505092915050565b60006112ad601483611730565b91506112b88261191a565b602082019050919050565b60006112d0602683611730565b91506112db82611943565b604082019050919050565b60006112f3602683611730565b91506112fe82611992565b604082019050919050565b6000611316601083611730565b9150611321826119e1565b602082019050919050565b6000611339602083611730565b915061134482611a0a565b602082019050919050565b600061135c602083611730565b915061136782611a33565b602082019050919050565b600061137f600083611725565b915061138a82611a5c565b600082019050919050565b60006113a2601d83611730565b91506113ad82611a5f565b602082019050919050565b60006113c5602a83611730565b91506113d082611a88565b604082019050919050565b6113e481611789565b82525050565b60006113f7828486611211565b91508190509392505050565b600061140f8284611236565b915081905092915050565b600061142582611372565b9150819050919050565b600060208201905061144460008301846111f3565b92915050565b600060608201905061145f60008301866111f3565b61146c60208301856111f3565b61147960408301846113db565b949350505050565b60006020820190506114966000830184611202565b92915050565b600060208201905081810360008301526114b68184611267565b905092915050565b600060408201905081810360008301526114d88185611267565b90506114e760208301846113db565b9392505050565b60006020820190508181036000830152611507816112a0565b9050919050565b60006020820190508181036000830152611527816112c3565b9050919050565b60006020820190508181036000830152611547816112e6565b9050919050565b6000602082019050818103600083015261156781611309565b9050919050565b600060208201905081810360008301526115878161132c565b9050919050565b600060208201905081810360008301526115a78161134f565b9050919050565b600060208201905081810360008301526115c781611395565b9050919050565b600060208201905081810360008301526115e7816113b8565b9050919050565b600060a08201905061160360008301886113db565b81810360208301526116158187611267565b905081810360408301526116298186611267565b9050818103606083015261163d8185611267565b905061164c60808301846113db565b9695505050505050565b60008083356001602003843603038112611673576116726118eb565b5b80840192508235915067ffffffffffffffff821115611695576116946118e6565b5b6020830192506001820236038313156116b1576116b06118f5565b5b509250929050565b60006116c36116d4565b90506116cf82826117d5565b919050565b6000604051905090565b600067ffffffffffffffff8211156116f9576116f86118ad565b5b61170282611909565b9050602081019050919050565b600081519050919050565b600081519050919050565b600081905092915050565b600082825260208201905092915050565b600061174c82611769565b9050919050565b60008115159050919050565b6000819050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b82818337600083830152505050565b60005b838110156117c05780820151818401526020810190506117a5565b838111156117cf576000848401525b50505050565b6117de82611909565b810181811067ffffffffffffffff821117156117fd576117fc6118ad565b5b80604052505050565b600061181182611789565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8214156118445761184361184f565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f5061757361626c653a206e6f7420706175736564000000000000000000000000600082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f416464726573733a20696e73756666696369656e742062616c616e636520666f60008201527f722063616c6c0000000000000000000000000000000000000000000000000000602082015250565b7f5061757361626c653a2070617573656400000000000000000000000000000000600082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f4661696c656420746f207472616e73666572206e617469766520746f6b656e73600082015250565b50565b7f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000600082015250565b7f5361666545524332303a204552433230206f7065726174696f6e20646964206e60008201527f6f74207375636365656400000000000000000000000000000000000000000000602082015250565b611ae081611741565b8114611aeb57600080fd5b50565b611af781611753565b8114611b0257600080fd5b50565b611b0e8161175f565b8114611b1957600080fd5b50565b611b2581611789565b8114611b3057600080fd5b5056fea2646970667358221220d3e002006dbb2c062f92b96c403fe5aee8068c0f5bf1aa5417438319a9b6435164736f6c63430008070033

Verified Source Code Partial Match

Compiler: v0.8.7+commit.e28d00a7 EVM: london Optimization: No
BullaInstantPayment.sol 332 lines
////// SPDX-License-Identifier: BUSL-1.1

pragma solidity ^0.8.0;

abstract contract Context {
    function _msgSender() internal view virtual returns (address) {
        return msg.sender;
    }

    function _msgData() internal view virtual returns (bytes calldata) {
        return msg.data;
    }
}

library Address {
    function isContract(address account) internal view returns (bool) {
        return account.code.length > 0;
    }

    function sendValue(address payable recipient, uint256 amount) internal {
        require(address(this).balance >= amount, 'Address: insufficient balance');

        (bool success, ) = recipient.call{ value: amount }('');
        require(success, 'Address: unable to send value, recipient may have reverted');
    }

    function functionCall(address target, bytes memory data) internal returns (bytes memory) {
        return functionCall(target, data, 'Address: low-level call failed');
    }

    function functionCall(
        address target,
        bytes memory data,
        string memory errorMessage
    ) internal returns (bytes memory) {
        return functionCallWithValue(target, data, 0, errorMessage);
    }

    function functionCallWithValue(
        address target,
        bytes memory data,
        uint256 value
    ) internal returns (bytes memory) {
        return functionCallWithValue(target, data, value, 'Address: low-level call with value failed');
    }

    function functionCallWithValue(
        address target,
        bytes memory data,
        uint256 value,
        string memory errorMessage
    ) internal returns (bytes memory) {
        require(address(this).balance >= value, 'Address: insufficient balance for call');
        require(isContract(target), 'Address: call to non-contract');

        (bool success, bytes memory returndata) = target.call{ value: value }(data);
        return verifyCallResult(success, returndata, errorMessage);
    }

    function functionStaticCall(address target, bytes memory data) internal view returns (bytes memory) {
        return functionStaticCall(target, data, 'Address: low-level static call failed');
    }

    function functionStaticCall(
        address target,
        bytes memory data,
        string memory errorMessage
    ) internal view returns (bytes memory) {
        require(isContract(target), 'Address: static call to non-contract');

        (bool success, bytes memory returndata) = target.staticcall(data);
        return verifyCallResult(success, returndata, errorMessage);
    }

    function functionDelegateCall(address target, bytes memory data) internal returns (bytes memory) {
        return functionDelegateCall(target, data, 'Address: low-level delegate call failed');
    }

    function functionDelegateCall(
        address target,
        bytes memory data,
        string memory errorMessage
    ) internal returns (bytes memory) {
        require(isContract(target), 'Address: delegate call to non-contract');

        (bool success, bytes memory returndata) = target.delegatecall(data);
        return verifyCallResult(success, returndata, errorMessage);
    }

    function verifyCallResult(
        bool success,
        bytes memory returndata,
        string memory errorMessage
    ) internal pure returns (bytes memory) {
        if (success) {
            return returndata;
        } else {
            if (returndata.length > 0) {
                assembly {
                    let returndata_size := mload(returndata)
                    revert(add(32, returndata), returndata_size)
                }
            } else {
                revert(errorMessage);
            }
        }
    }
}

interface IERC20 {
    function balanceOf(address account) external view returns (uint256);

    function transfer(address to, 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 from,
        address to,
        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 BoringBatchable {
    function _getRevertMsg(bytes memory _returnData) internal pure returns (string memory) {
        if (_returnData.length < 68) return 'Transaction reverted silently';

        assembly {
            _returnData := add(_returnData, 0x04)
        }
        return abi.decode(_returnData, (string)); // All that remains is the revert string
    }

    function batch(bytes[] calldata calls, bool revertOnFail) external payable {
        for (uint256 i = 0; i < calls.length; i++) {
            (bool success, bytes memory result) = address(this).delegatecall(calls[i]);
            if (!success && revertOnFail) {
                revert(_getRevertMsg(result));
            }
        }
    }
}

abstract contract Ownable is Context {
    address private _owner;

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

    constructor() {
        _transferOwnership(_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 {
        _transferOwnership(address(0));
    }

    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(newOwner != address(0), 'Ownable: new owner is the zero address');
        _transferOwnership(newOwner);
    }

    function _transferOwnership(address newOwner) internal virtual {
        address oldOwner = _owner;
        _owner = newOwner;
        emit OwnershipTransferred(oldOwner, newOwner);
    }
}

abstract contract Pausable is Context {
    event Paused(address account);

    event Unpaused(address account);

    bool private _paused;

    constructor() {
        _paused = false;
    }

    function paused() public view virtual returns (bool) {
        return _paused;
    }

    modifier whenNotPaused() {
        require(!paused(), 'Pausable: paused');
        _;
    }

    modifier whenPaused() {
        require(paused(), 'Pausable: not paused');
        _;
    }

    function _pause() internal virtual whenNotPaused {
        _paused = true;
        emit Paused(_msgSender());
    }

    function _unpause() internal virtual whenPaused {
        _paused = false;
        emit Unpaused(_msgSender());
    }
}

library SafeERC20 {
    using Address for address;

    function safeTransfer(
        IERC20 token,
        address to,
        uint256 value
    ) internal {
        _callOptionalReturn(token, abi.encodeWithSelector(token.transfer.selector, to, value));
    }

    function safeTransferFrom(
        IERC20 token,
        address from,
        address to,
        uint256 value
    ) internal {
        _callOptionalReturn(token, abi.encodeWithSelector(token.transferFrom.selector, from, to, value));
    }

    function safeApprove(
        IERC20 token,
        address spender,
        uint256 value
    ) internal {
        require((value == 0) || (token.allowance(address(this), spender) == 0), 'SafeERC20: approve from non-zero to non-zero allowance');
        _callOptionalReturn(token, abi.encodeWithSelector(token.approve.selector, spender, value));
    }

    function safeIncreaseAllowance(
        IERC20 token,
        address spender,
        uint256 value
    ) internal {
        uint256 newAllowance = token.allowance(address(this), spender) + value;
        _callOptionalReturn(token, abi.encodeWithSelector(token.approve.selector, spender, newAllowance));
    }

    function safeDecreaseAllowance(
        IERC20 token,
        address spender,
        uint256 value
    ) internal {
        unchecked {
            uint256 oldAllowance = token.allowance(address(this), spender);
            require(oldAllowance >= value, 'SafeERC20: decreased allowance below zero');
            uint256 newAllowance = oldAllowance - value;
            _callOptionalReturn(token, abi.encodeWithSelector(token.approve.selector, spender, newAllowance));
        }
    }

    function _callOptionalReturn(IERC20 token, bytes memory data) private {
        bytes memory returndata = address(token).functionCall(data, 'SafeERC20: low-level call failed');
        if (returndata.length > 0) {
            // Return data is optional
            require(abi.decode(returndata, (bool)), 'SafeERC20: ERC20 operation did not succeed');
        }
    }
}

error ValueMustNoBeZero();
error NotContractOwner(address _sender);

contract BullaInstantPayment is BoringBatchable, Pausable, Ownable {
    using SafeERC20 for IERC20;

    event InstantPaymentTagUpdated(bytes32 indexed txAndLogIndexHash, address indexed updatedBy, string tag, uint256 blocktime);

    event InstantPayment(
        address indexed from,
        address indexed to,
        uint256 amount,
        address indexed tokenAddress,
        string description,
        string tag,
        string ipfsHash,
        uint256 blocktime
    );

    function pause() public whenNotPaused onlyOwner {
        _pause();
    }

    function unpause() public whenPaused onlyOwner {
        _unpause();
    }

    function instantPayment(
        address to,
        uint256 amount,
        address tokenAddress,
        string memory description,
        string memory tag,
        string memory ipfsHash
    ) public payable whenNotPaused {
        if (amount == 0) {
            revert ValueMustNoBeZero();
        }

        if (tokenAddress == address(0)) {
            (bool success, ) = to.call{ value: amount }('');
            require(success, 'Failed to transfer native tokens');
        } else {
            IERC20(tokenAddress).safeTransferFrom(msg.sender, to, amount);
        }

        emit InstantPayment(msg.sender, to, amount, tokenAddress, description, tag, ipfsHash, block.timestamp);
    }

    function updateBullaTag(bytes32 txAndLogIndexHash, string memory newTag) public {
        emit InstantPaymentTagUpdated(txAndLogIndexHash, msg.sender, newTag, block.timestamp);
    }
}

Read Contract

owner 0x8da5cb5b → address
paused 0x5c975abb → bool

Write Contract 7 functions

These functions modify contract state and require a wallet transaction to execute.

batch 0xd2423b51
bytes[] calls
bool revertOnFail
instantPayment 0x1eb99a67
address to
uint256 amount
address tokenAddress
string description
string tag
string ipfsHash
pause 0x8456cb59
No parameters
renounceOwnership 0x715018a6
No parameters
transferOwnership 0xf2fde38b
address newOwner
unpause 0x3f4ba83a
No parameters
updateBullaTag 0x5cfb4a16
bytes32 txAndLogIndexHash
string newTag

Recent Transactions

No transactions found for this address