false
true
0

Contract Address Details

0xB7364100c782da8e974d8F0D649F79fE74891Bf8

Contract Name
hopDongMintMathThongQua..r_MaHoa
Creator
0x0eda9e–bfbd60 at 0x97553f–302b88
Balance
0 PLS ( )
Tokens
Fetching tokens...
Transactions
Fetching transactions...
Transfers
Fetching transfers...
Gas Used
Fetching gas used...
Last Balance Update
25858664
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:
hopDongMintMathThongQuaBlatter_MaHoa




Optimization enabled
false
Compiler version
v0.8.31+commit.fd3a2265




EVM Version
osaka




Verified at
2026-02-06T16:35:39.399097Z

Constructor Arguments

000000000000000000000000e2fa2bc8f984ee73b65dc8af3072637c613f4eca

Arg [0] (address) : 0xe2fa2bc8f984ee73b65dc8af3072637c613f4eca

              

math - affection - Ma Hoa/hopDongMintMathThongQuaBlatter_MaHoa.sol

// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;

// Khai báo interface của hợp đồng Blatter để gọi hàm Avail và mint token Math
interface hopDongBlatter {
    function Avail(uint64 Tau) external;
}

// Khai báo interface của hợp đồng tạo key mã hóa để gọi hàm layKeyMaHoa và layKeyXacMinh
interface hopDongTaoKeyMaHoaNgauNhien {
    function yeuCauLayKey(uint8 port) external returns (string memory);
}

contract hopDongMintMathThongQuaBlatter_MaHoa {
    // Khai báo biến
    address public owner;
    address private diaChiHopDongBlatter =
        0xCe1d47CE3A91E054C111d9cC3B4bae50843200da;
    address private diaChiHopDongTaoKeyMaHoaNgauNhien;
    mapping(address => bool) private owners;

    // Khởi tạo hợp đồng với Owner, địa chỉ hợp đồng Blatter và địa chỉ hợp đồng tạo key mã hóa
    constructor(address _diaChiHopDongTaoKeyMaHoaNgauNhien) {
        owners[msg.sender] = true;
        diaChiHopDongTaoKeyMaHoaNgauNhien = _diaChiHopDongTaoKeyMaHoaNgauNhien;
    }

    // Hàm kiểm tra owner
    modifier onlyOwner() {
        require(owners[msg.sender], "Only owner can call this function");
        _;
    }

    // Hàm thêm owner mới
    function themOwner(address _owner) public onlyOwner {
        owners[_owner] = true;
    }

    // Hàm xóa owner
    function xoaOwner(address _owner) public onlyOwner {
        owners[_owner] = false;
    }

    // Hàm kiểm tra owner
    function kiemTraQuyenOwner(
        address _owner
    ) public view onlyOwner returns (bool) {
        return owners[_owner];
    }

    // Hàm mint token Math với hợp đồng Blatter
    function mintMathThongQuaBlatter(uint256 soLanMint) private {
        soLanMint = soLanMint / 3;
        for (uint64 i = 0; i < soLanMint; i++) {
            hopDongBlatter(diaChiHopDongBlatter).Avail(i);
        }
    }

    // Hàm nhận dữ liệu đã được mã hóa gửi từ client
    function nhanDuLieuMaHoaTuClient(
        bytes memory duLieuMaHoaTuClient,
        uint8 port
    ) public onlyOwner {
        string memory keyMaHoa = layKeyMaHoa(port);

        bytes memory duLieuDaGiaiMa = giaiMaDuLieuMaHoa(
            duLieuMaHoaTuClient,
            keyMaHoa
        );

        uint256 soLanMint = abi.decode(duLieuDaGiaiMa, (uint256));

        require(soLanMint > 0, "so lan mint phai lon hon 0");

        mintMathThongQuaBlatter(soLanMint);
    }

    // Hàm lấy key mã hóa từ hợp đồng tạo key mã hóa
    // Hàm này cũng yêu cầu key mã hóa phải có độ dài 128 ký tự hợp lệ
    function layKeyMaHoa(uint8 port) private returns (string memory) {
        string memory keyMaHoa = hopDongTaoKeyMaHoaNgauNhien(
            diaChiHopDongTaoKeyMaHoaNgauNhien
        ).yeuCauLayKey(port);

        return keyMaHoa;
    }

    // Hàm giải mã dữ liệu mã hóa với key mã hóa
    // Hàm này sử dụng phép XOR để giải mã dữ liệu mã hóa
    function giaiMaDuLieuMaHoa(
        bytes memory duLieuMaHoa,
        string memory keyMaHoa
    ) private pure returns (bytes memory) {
        bytes memory keyMaHoaBytes = bytes(keyMaHoa);
        bytes memory duLieuDaGiaiMa = new bytes(duLieuMaHoa.length);

        for (uint256 i = 0; i < duLieuMaHoa.length; i++) {
            duLieuDaGiaiMa[i] =
                duLieuMaHoa[i] ^
                keyMaHoaBytes[i % keyMaHoaBytes.length];
        }

        return duLieuDaGiaiMa;
    }
}
        

Compiler Settings

{"remappings":[],"optimizer":{"runs":200,"enabled":false},"metadata":{"bytecodeHash":"ipfs"},"libraries":{},"evmVersion":"osaka","compilationTarget":{"math - affection - Ma Hoa/hopDongMintMathThongQuaBlatter_MaHoa.sol":"hopDongMintMathThongQuaBlatter_MaHoa"}}
              

Contract ABI

[{"type":"constructor","stateMutability":"nonpayable","inputs":[{"type":"address","name":"_diaChiHopDongTaoKeyMaHoaNgauNhien","internalType":"address"}]},{"type":"function","stateMutability":"view","outputs":[{"type":"bool","name":"","internalType":"bool"}],"name":"kiemTraQuyenOwner","inputs":[{"type":"address","name":"_owner","internalType":"address"}]},{"type":"function","stateMutability":"nonpayable","outputs":[],"name":"nhanDuLieuMaHoaTuClient","inputs":[{"type":"bytes","name":"duLieuMaHoaTuClient","internalType":"bytes"},{"type":"uint8","name":"port","internalType":"uint8"}]},{"type":"function","stateMutability":"view","outputs":[{"type":"address","name":"","internalType":"address"}],"name":"owner","inputs":[]},{"type":"function","stateMutability":"nonpayable","outputs":[],"name":"themOwner","inputs":[{"type":"address","name":"_owner","internalType":"address"}]},{"type":"function","stateMutability":"nonpayable","outputs":[],"name":"xoaOwner","inputs":[{"type":"address","name":"_owner","internalType":"address"}]}]
              

Contract Creation Code

0x608060405273ce1d47ce3a91e054c111d9cc3b4bae50843200da60015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550348015610063575f5ffd5b50604051610fb6380380610fb68339818101604052810190610085919061017e565b600160035f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508060025f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550506101a9565b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61014d82610124565b9050919050565b61015d81610143565b8114610167575f5ffd5b50565b5f8151905061017881610154565b92915050565b5f6020828403121561019357610192610120565b5b5f6101a08482850161016a565b91505092915050565b610e00806101b65f395ff3fe608060405234801561000f575f5ffd5b5060043610610055575f3560e01c80634e5d14bf146100595780638da5cb5b1461008957806392918f79146100a7578063a13d6723146100c3578063b62c99a5146100df575b5f5ffd5b610073600480360381019061006e91906107a8565b6100fb565b60405161008091906107ed565b60405180910390f35b6100916101d6565b60405161009e9190610815565b60405180910390f35b6100c160048036038101906100bc91906109a0565b6101fa565b005b6100dd60048036038101906100d891906107a8565b610305565b005b6100f960048036038101906100f491906107a8565b6103e5565b005b5f60035f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16610185576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161017c90610a7a565b60405180910390fd5b60035f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff169050919050565b5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60035f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16610283576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161027a90610a7a565b60405180910390fd5b5f61028d826104c6565b90505f61029a8483610571565b90505f818060200190518101906102b19190610acb565b90505f81116102f5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102ec90610b40565b60405180910390fd5b6102fe81610679565b5050505050565b60035f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1661038e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161038590610a7a565b60405180910390fd5b5f60035f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555050565b60035f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1661046e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161046590610a7a565b60405180910390fd5b600160035f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555050565b60605f60025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663883e4b67846040518263ffffffff1660e01b81526004016105239190610b6d565b5f604051808303815f875af115801561053e573d5f5f3e3d5ffd5b505050506040513d5f823e3d601f19601f820116820180604052508101906105669190610c32565b905080915050919050565b60605f8290505f845167ffffffffffffffff81111561059357610592610846565b5b6040519080825280601f01601f1916602001820160405280156105c55781602001600182028036833780820191505090505b5090505f5f90505b855181101561066d57828351826105e49190610ca6565b815181106105f5576105f4610cd6565b5b602001015160f81c60f81b86828151811061061357610612610cd6565b5b602001015160f81c60f81b1882828151811061063257610631610cd6565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191690815f1a90535080806001019150506105cd565b50809250505092915050565b6003816106869190610d30565b90505f5f90505b818167ffffffffffffffff1610156107395760015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c2bea95f826040518263ffffffff1660e01b81526004016106f99190610d82565b5f604051808303815f87803b158015610710575f5ffd5b505af1158015610722573d5f5f3e3d5ffd5b50505050808061073190610d9b565b91505061068d565b5050565b5f604051905090565b5f5ffd5b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6107778261074e565b9050919050565b6107878161076d565b8114610791575f5ffd5b50565b5f813590506107a28161077e565b92915050565b5f602082840312156107bd576107bc610746565b5b5f6107ca84828501610794565b91505092915050565b5f8115159050919050565b6107e7816107d3565b82525050565b5f6020820190506108005f8301846107de565b92915050565b61080f8161076d565b82525050565b5f6020820190506108285f830184610806565b92915050565b5f5ffd5b5f5ffd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b61087c82610836565b810181811067ffffffffffffffff8211171561089b5761089a610846565b5b80604052505050565b5f6108ad61073d565b90506108b98282610873565b919050565b5f67ffffffffffffffff8211156108d8576108d7610846565b5b6108e182610836565b9050602081019050919050565b828183375f83830152505050565b5f61090e610909846108be565b6108a4565b90508281526020810184848401111561092a57610929610832565b5b6109358482856108ee565b509392505050565b5f82601f8301126109515761095061082e565b5b81356109618482602086016108fc565b91505092915050565b5f60ff82169050919050565b61097f8161096a565b8114610989575f5ffd5b50565b5f8135905061099a81610976565b92915050565b5f5f604083850312156109b6576109b5610746565b5b5f83013567ffffffffffffffff8111156109d3576109d261074a565b5b6109df8582860161093d565b92505060206109f08582860161098c565b9150509250929050565b5f82825260208201905092915050565b7f4f6e6c79206f776e65722063616e2063616c6c20746869732066756e6374696f5f8201527f6e00000000000000000000000000000000000000000000000000000000000000602082015250565b5f610a646021836109fa565b9150610a6f82610a0a565b604082019050919050565b5f6020820190508181035f830152610a9181610a58565b9050919050565b5f819050919050565b610aaa81610a98565b8114610ab4575f5ffd5b50565b5f81519050610ac581610aa1565b92915050565b5f60208284031215610ae057610adf610746565b5b5f610aed84828501610ab7565b91505092915050565b7f736f206c616e206d696e742070686169206c6f6e20686f6e20300000000000005f82015250565b5f610b2a601a836109fa565b9150610b3582610af6565b602082019050919050565b5f6020820190508181035f830152610b5781610b1e565b9050919050565b610b678161096a565b82525050565b5f602082019050610b805f830184610b5e565b92915050565b5f67ffffffffffffffff821115610ba057610b9f610846565b5b610ba982610836565b9050602081019050919050565b8281835e5f83830152505050565b5f610bd6610bd184610b86565b6108a4565b905082815260208101848484011115610bf257610bf1610832565b5b610bfd848285610bb6565b509392505050565b5f82601f830112610c1957610c1861082e565b5b8151610c29848260208601610bc4565b91505092915050565b5f60208284031215610c4757610c46610746565b5b5f82015167ffffffffffffffff811115610c6457610c6361074a565b5b610c7084828501610c05565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f610cb082610a98565b9150610cbb83610a98565b925082610ccb57610cca610c79565b5b828206905092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f610d3a82610a98565b9150610d4583610a98565b925082610d5557610d54610c79565b5b828204905092915050565b5f67ffffffffffffffff82169050919050565b610d7c81610d60565b82525050565b5f602082019050610d955f830184610d73565b92915050565b5f610da582610d60565b915067ffffffffffffffff8203610dbf57610dbe610d03565b5b60018201905091905056fea264697066735822122047ba42cfcd780ec0fdd27c9d0c84d55ba957e1bffc58a95a7d3f9470a609305064736f6c634300081f0033000000000000000000000000e2fa2bc8f984ee73b65dc8af3072637c613f4eca

Deployed ByteCode

0x608060405234801561000f575f5ffd5b5060043610610055575f3560e01c80634e5d14bf146100595780638da5cb5b1461008957806392918f79146100a7578063a13d6723146100c3578063b62c99a5146100df575b5f5ffd5b610073600480360381019061006e91906107a8565b6100fb565b60405161008091906107ed565b60405180910390f35b6100916101d6565b60405161009e9190610815565b60405180910390f35b6100c160048036038101906100bc91906109a0565b6101fa565b005b6100dd60048036038101906100d891906107a8565b610305565b005b6100f960048036038101906100f491906107a8565b6103e5565b005b5f60035f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16610185576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161017c90610a7a565b60405180910390fd5b60035f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff169050919050565b5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60035f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16610283576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161027a90610a7a565b60405180910390fd5b5f61028d826104c6565b90505f61029a8483610571565b90505f818060200190518101906102b19190610acb565b90505f81116102f5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102ec90610b40565b60405180910390fd5b6102fe81610679565b5050505050565b60035f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1661038e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161038590610a7a565b60405180910390fd5b5f60035f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555050565b60035f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1661046e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161046590610a7a565b60405180910390fd5b600160035f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555050565b60605f60025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663883e4b67846040518263ffffffff1660e01b81526004016105239190610b6d565b5f604051808303815f875af115801561053e573d5f5f3e3d5ffd5b505050506040513d5f823e3d601f19601f820116820180604052508101906105669190610c32565b905080915050919050565b60605f8290505f845167ffffffffffffffff81111561059357610592610846565b5b6040519080825280601f01601f1916602001820160405280156105c55781602001600182028036833780820191505090505b5090505f5f90505b855181101561066d57828351826105e49190610ca6565b815181106105f5576105f4610cd6565b5b602001015160f81c60f81b86828151811061061357610612610cd6565b5b602001015160f81c60f81b1882828151811061063257610631610cd6565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191690815f1a90535080806001019150506105cd565b50809250505092915050565b6003816106869190610d30565b90505f5f90505b818167ffffffffffffffff1610156107395760015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c2bea95f826040518263ffffffff1660e01b81526004016106f99190610d82565b5f604051808303815f87803b158015610710575f5ffd5b505af1158015610722573d5f5f3e3d5ffd5b50505050808061073190610d9b565b91505061068d565b5050565b5f604051905090565b5f5ffd5b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6107778261074e565b9050919050565b6107878161076d565b8114610791575f5ffd5b50565b5f813590506107a28161077e565b92915050565b5f602082840312156107bd576107bc610746565b5b5f6107ca84828501610794565b91505092915050565b5f8115159050919050565b6107e7816107d3565b82525050565b5f6020820190506108005f8301846107de565b92915050565b61080f8161076d565b82525050565b5f6020820190506108285f830184610806565b92915050565b5f5ffd5b5f5ffd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b61087c82610836565b810181811067ffffffffffffffff8211171561089b5761089a610846565b5b80604052505050565b5f6108ad61073d565b90506108b98282610873565b919050565b5f67ffffffffffffffff8211156108d8576108d7610846565b5b6108e182610836565b9050602081019050919050565b828183375f83830152505050565b5f61090e610909846108be565b6108a4565b90508281526020810184848401111561092a57610929610832565b5b6109358482856108ee565b509392505050565b5f82601f8301126109515761095061082e565b5b81356109618482602086016108fc565b91505092915050565b5f60ff82169050919050565b61097f8161096a565b8114610989575f5ffd5b50565b5f8135905061099a81610976565b92915050565b5f5f604083850312156109b6576109b5610746565b5b5f83013567ffffffffffffffff8111156109d3576109d261074a565b5b6109df8582860161093d565b92505060206109f08582860161098c565b9150509250929050565b5f82825260208201905092915050565b7f4f6e6c79206f776e65722063616e2063616c6c20746869732066756e6374696f5f8201527f6e00000000000000000000000000000000000000000000000000000000000000602082015250565b5f610a646021836109fa565b9150610a6f82610a0a565b604082019050919050565b5f6020820190508181035f830152610a9181610a58565b9050919050565b5f819050919050565b610aaa81610a98565b8114610ab4575f5ffd5b50565b5f81519050610ac581610aa1565b92915050565b5f60208284031215610ae057610adf610746565b5b5f610aed84828501610ab7565b91505092915050565b7f736f206c616e206d696e742070686169206c6f6e20686f6e20300000000000005f82015250565b5f610b2a601a836109fa565b9150610b3582610af6565b602082019050919050565b5f6020820190508181035f830152610b5781610b1e565b9050919050565b610b678161096a565b82525050565b5f602082019050610b805f830184610b5e565b92915050565b5f67ffffffffffffffff821115610ba057610b9f610846565b5b610ba982610836565b9050602081019050919050565b8281835e5f83830152505050565b5f610bd6610bd184610b86565b6108a4565b905082815260208101848484011115610bf257610bf1610832565b5b610bfd848285610bb6565b509392505050565b5f82601f830112610c1957610c1861082e565b5b8151610c29848260208601610bc4565b91505092915050565b5f60208284031215610c4757610c46610746565b5b5f82015167ffffffffffffffff811115610c6457610c6361074a565b5b610c7084828501610c05565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f610cb082610a98565b9150610cbb83610a98565b925082610ccb57610cca610c79565b5b828206905092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f610d3a82610a98565b9150610d4583610a98565b925082610d5557610d54610c79565b5b828204905092915050565b5f67ffffffffffffffff82169050919050565b610d7c81610d60565b82525050565b5f602082019050610d955f830184610d73565b92915050565b5f610da582610d60565b915067ffffffffffffffff8203610dbf57610dbe610d03565b5b60018201905091905056fea264697066735822122047ba42cfcd780ec0fdd27c9d0c84d55ba957e1bffc58a95a7d3f9470a609305064736f6c634300081f0033