Feature Tip: Add private address tag to any address under My Name Tag !
Overview
ETH Balance
0 ETH
Eth Value
$0.00More Info
Private Name Tags
ContractCreator
Latest 5 from a total of 5 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
Value | ||||
---|---|---|---|---|---|---|---|---|---|
Teleburn Multipl... | 18666971 | 218 days ago | IN | 0 ETH | 0.01657492 | ||||
Teleburn Multipl... | 18666364 | 218 days ago | IN | 0 ETH | 0.01085065 | ||||
Update Teleburn ... | 18666179 | 218 days ago | IN | 0 ETH | 0.00093951 | ||||
Transfer Ownersh... | 18652768 | 220 days ago | IN | 0 ETH | 0.00066051 | ||||
0x60a06040 | 18636817 | 222 days ago | IN | Create: GenesisTeleburn | 0 ETH | 0.03736984 |
View more zero value Internal Transactions in Advanced View mode
Advanced mode:
Loading...
Loading
Contract Name:
GenesisTeleburn
Compiler Version
v0.8.21+commit.d9974bed
Optimization Enabled:
Yes with 9999999 runs
Other Settings:
paris EvmVersion
Contract Source Code (Solidity Standard Json-Input format)
// SPDX-License-Identifier: MIT pragma solidity 0.8.21; import {BTCTeleburn} from "./BTCTeleburn.sol"; import {SignatureChecker} from "@openzeppelin/contracts/utils/cryptography/SignatureChecker.sol"; contract GenesisTeleburn is BTCTeleburn { constructor(address nft, address teleburnSigner_) BTCTeleburn(nft, teleburnSigner_) {} function _isValidRequest( uint256 tokenId, address burnAddress, string calldata btcAddress, string calldata inscriptionId, uint256 sat, bytes calldata signature ) internal view override returns (bool) { bytes32 message = keccak256(abi.encodePacked(nft, tokenId, burnAddress, btcAddress, inscriptionId, sat)); bytes memory prefixedMessage = abi.encodePacked("\x19Ethereum Signed Message:\n32", message); return SignatureChecker.isValidSignatureNow(teleburnSigner, keccak256(prefixedMessage), signature); } }
// SPDX-License-Identifier: MIT pragma solidity 0.8.21; import {IERC721} from "@openzeppelin/contracts/token/ERC721/IERC721.sol"; import {Ownable} from "@openzeppelin/contracts/access/Ownable.sol"; abstract contract BTCTeleburn is Ownable { IERC721 public immutable nft; address public teleburnSigner; uint256 public teleburnedCount = 0; mapping(uint256 tokenId => string) public getBtcAddress; mapping(uint256 tokenId => string) public getInscriptionId; mapping(uint256 tokenId => uint256) public getSat; mapping(uint256 tokenId => address) public getTeleburnAddress; event Teleburn( uint256 indexed tokenId, address sender, address teleburnAddress, string btcAddress, string inscriptionId, uint256 sat ); error InvalidRequest(); constructor(address nft_, address teleburnSigner_) Ownable(msg.sender) { nft = IERC721(nft_); teleburnSigner = teleburnSigner_; } function provenance(uint256 tokenId) external view returns (string memory, string memory, uint256, address) { return (getBtcAddress[tokenId], getInscriptionId[tokenId], getSat[tokenId], getTeleburnAddress[tokenId]); } function teleburnedTokens(uint256 startTokenId, uint256 endTokenId) external view returns (uint256[] memory) { uint256 count = teleburnedCount; if (count == 0) return new uint256[](0); uint256[] memory tokens = new uint256[](count); uint256 index; for (uint256 i = startTokenId; i <= endTokenId; ++i) { if (getTeleburnAddress[i] != address(0)) { tokens[index] = i; ++index; } } return tokens; } function teleburnMultipleTokens( uint256[] calldata tokenIds, address[] calldata teleburnAddresses, string[] calldata btcAddresses, string[] calldata inscriptionIds, uint256[] calldata sats, bytes[] calldata data ) external { uint256 count = tokenIds.length; for (uint256 i; i < count; ++i) { teleburnToken(tokenIds[i], teleburnAddresses[i], btcAddresses[i], inscriptionIds[i], sats[i], data[i]); } } function teleburnToken( uint256 tokenId, address teleburnAddress, string calldata btcAddress, string calldata inscriptionId, uint256 sat, bytes calldata data ) public { if (!_isValidRequest(tokenId, teleburnAddress, btcAddress, inscriptionId, sat, data)) { revert InvalidRequest(); } _teleburn(tokenId, teleburnAddress, btcAddress, inscriptionId, sat); } function updateTeleburnSigner(address newTeleburnSigner) external onlyOwner { teleburnSigner = newTeleburnSigner; } function _teleburn( uint256 tokenId, address teleburnAddress, string calldata btcAddress, string calldata inscriptionId, uint256 sat ) private { getBtcAddress[tokenId] = btcAddress; getInscriptionId[tokenId] = inscriptionId; getSat[tokenId] = sat; getTeleburnAddress[tokenId] = teleburnAddress; ++teleburnedCount; nft.safeTransferFrom(msg.sender, teleburnAddress, tokenId); emit Teleburn(tokenId, msg.sender, teleburnAddress, btcAddress, inscriptionId, sat); } /// @dev args: tokenId, teleburnAddress, btcAddress, inscriptionId, sat, data function _isValidRequest(uint256, address, string calldata, string calldata, uint256, bytes calldata) internal view virtual returns (bool) { return true; } }
// SPDX-License-Identifier: MIT // OpenZeppelin Contracts (last updated v5.0.0) (utils/cryptography/SignatureChecker.sol) pragma solidity ^0.8.20; import {ECDSA} from "./ECDSA.sol"; import {IERC1271} from "../../interfaces/IERC1271.sol"; /** * @dev Signature verification helper that can be used instead of `ECDSA.recover` to seamlessly support both ECDSA * signatures from externally owned accounts (EOAs) as well as ERC1271 signatures from smart contract wallets like * Argent and Safe Wallet (previously Gnosis Safe). */ library SignatureChecker { /** * @dev Checks if a signature is valid for a given signer and data hash. If the signer is a smart contract, the * signature is validated against that smart contract using ERC1271, otherwise it's validated using `ECDSA.recover`. * * NOTE: Unlike ECDSA signatures, contract signatures are revocable, and the outcome of this function can thus * change through time. It could return true at block N and false at block N+1 (or the opposite). */ function isValidSignatureNow(address signer, bytes32 hash, bytes memory signature) internal view returns (bool) { (address recovered, ECDSA.RecoverError error, ) = ECDSA.tryRecover(hash, signature); return (error == ECDSA.RecoverError.NoError && recovered == signer) || isValidERC1271SignatureNow(signer, hash, signature); } /** * @dev Checks if a signature is valid for a given signer and data hash. The signature is validated * against the signer smart contract using ERC1271. * * NOTE: Unlike ECDSA signatures, contract signatures are revocable, and the outcome of this function can thus * change through time. It could return true at block N and false at block N+1 (or the opposite). */ function isValidERC1271SignatureNow( address signer, bytes32 hash, bytes memory signature ) internal view returns (bool) { (bool success, bytes memory result) = signer.staticcall( abi.encodeCall(IERC1271.isValidSignature, (hash, signature)) ); return (success && result.length >= 32 && abi.decode(result, (bytes32)) == bytes32(IERC1271.isValidSignature.selector)); } }
// SPDX-License-Identifier: MIT // OpenZeppelin Contracts (last updated v5.0.0) (token/ERC721/IERC721.sol) pragma solidity ^0.8.20; import {IERC165} from "../../utils/introspection/IERC165.sol"; /** * @dev Required interface of an ERC721 compliant contract. */ interface IERC721 is IERC165 { /** * @dev Emitted when `tokenId` token is transferred from `from` to `to`. */ event Transfer(address indexed from, address indexed to, uint256 indexed tokenId); /** * @dev Emitted when `owner` enables `approved` to manage the `tokenId` token. */ event Approval(address indexed owner, address indexed approved, uint256 indexed tokenId); /** * @dev Emitted when `owner` enables or disables (`approved`) `operator` to manage all of its assets. */ event ApprovalForAll(address indexed owner, address indexed operator, bool approved); /** * @dev Returns the number of tokens in ``owner``'s account. */ function balanceOf(address owner) external view returns (uint256 balance); /** * @dev Returns the owner of the `tokenId` token. * * Requirements: * * - `tokenId` must exist. */ function ownerOf(uint256 tokenId) external view returns (address owner); /** * @dev Safely transfers `tokenId` token from `from` to `to`. * * Requirements: * * - `from` cannot be the zero address. * - `to` cannot be the zero address. * - `tokenId` token must exist and be owned by `from`. * - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. * - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon * a safe transfer. * * Emits a {Transfer} event. */ function safeTransferFrom(address from, address to, uint256 tokenId, bytes calldata data) external; /** * @dev Safely transfers `tokenId` token from `from` to `to`, checking first that contract recipients * are aware of the ERC721 protocol to prevent tokens from being forever locked. * * Requirements: * * - `from` cannot be the zero address. * - `to` cannot be the zero address. * - `tokenId` token must exist and be owned by `from`. * - If the caller is not `from`, it must have been allowed to move this token by either {approve} or * {setApprovalForAll}. * - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon * a safe transfer. * * Emits a {Transfer} event. */ function safeTransferFrom(address from, address to, uint256 tokenId) external; /** * @dev Transfers `tokenId` token from `from` to `to`. * * WARNING: Note that the caller is responsible to confirm that the recipient is capable of receiving ERC721 * or else they may be permanently lost. Usage of {safeTransferFrom} prevents loss, though the caller must * understand this adds an external call which potentially creates a reentrancy vulnerability. * * Requirements: * * - `from` cannot be the zero address. * - `to` cannot be the zero address. * - `tokenId` token must be owned by `from`. * - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. * * Emits a {Transfer} event. */ function transferFrom(address from, address to, uint256 tokenId) external; /** * @dev Gives permission to `to` to transfer `tokenId` token to another account. * The approval is cleared when the token is transferred. * * Only a single account can be approved at a time, so approving the zero address clears previous approvals. * * Requirements: * * - The caller must own the token or be an approved operator. * - `tokenId` must exist. * * Emits an {Approval} event. */ function approve(address to, uint256 tokenId) external; /** * @dev Approve or remove `operator` as an operator for the caller. * Operators can call {transferFrom} or {safeTransferFrom} for any token owned by the caller. * * Requirements: * * - The `operator` cannot be the address zero. * * Emits an {ApprovalForAll} event. */ function setApprovalForAll(address operator, bool approved) external; /** * @dev Returns the account approved for `tokenId` token. * * Requirements: * * - `tokenId` must exist. */ function getApproved(uint256 tokenId) external view returns (address operator); /** * @dev Returns if the `operator` is allowed to manage all of the assets of `owner`. * * See {setApprovalForAll} */ function isApprovedForAll(address owner, address operator) external view returns (bool); }
// SPDX-License-Identifier: MIT // OpenZeppelin Contracts (last updated v5.0.0) (access/Ownable.sol) pragma solidity ^0.8.20; import {Context} from "../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. * * The initial owner is set to the address provided by the deployer. 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; /** * @dev The caller account is not authorized to perform an operation. */ error OwnableUnauthorizedAccount(address account); /** * @dev The owner is not a valid owner account. (eg. `address(0)`) */ error OwnableInvalidOwner(address owner); event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); /** * @dev Initializes the contract setting the address provided by the deployer as the initial owner. */ constructor(address initialOwner) { if (initialOwner == address(0)) { revert OwnableInvalidOwner(address(0)); } _transferOwnership(initialOwner); } /** * @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 { if (owner() != _msgSender()) { revert OwnableUnauthorizedAccount(_msgSender()); } } /** * @dev Leaves the contract without owner. It will not be possible to call * `onlyOwner` functions. Can only be called by the current owner. * * NOTE: Renouncing ownership will leave the contract without an owner, * thereby disabling 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 { if (newOwner == address(0)) { revert OwnableInvalidOwner(address(0)); } _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); } }
// SPDX-License-Identifier: MIT // OpenZeppelin Contracts (last updated v5.0.0) (utils/cryptography/ECDSA.sol) pragma solidity ^0.8.20; /** * @dev Elliptic Curve Digital Signature Algorithm (ECDSA) operations. * * These functions can be used to verify that a message was signed by the holder * of the private keys of a given address. */ library ECDSA { enum RecoverError { NoError, InvalidSignature, InvalidSignatureLength, InvalidSignatureS } /** * @dev The signature derives the `address(0)`. */ error ECDSAInvalidSignature(); /** * @dev The signature has an invalid length. */ error ECDSAInvalidSignatureLength(uint256 length); /** * @dev The signature has an S value that is in the upper half order. */ error ECDSAInvalidSignatureS(bytes32 s); /** * @dev Returns the address that signed a hashed message (`hash`) with `signature` or an error. This will not * return address(0) without also returning an error description. Errors are documented using an enum (error type) * and a bytes32 providing additional information about the error. * * If no error is returned, then the address can be used for verification purposes. * * The `ecrecover` EVM precompile allows for malleable (non-unique) signatures: * this function rejects them by requiring the `s` value to be in the lower * half order, and the `v` value to be either 27 or 28. * * IMPORTANT: `hash` _must_ be the result of a hash operation for the * verification to be secure: it is possible to craft signatures that * recover to arbitrary addresses for non-hashed data. A safe way to ensure * this is by receiving a hash of the original message (which may otherwise * be too long), and then calling {MessageHashUtils-toEthSignedMessageHash} on it. * * Documentation for signature generation: * - with https://web3js.readthedocs.io/en/v1.3.4/web3-eth-accounts.html#sign[Web3.js] * - with https://docs.ethers.io/v5/api/signer/#Signer-signMessage[ethers] */ function tryRecover(bytes32 hash, bytes memory signature) internal pure returns (address, RecoverError, bytes32) { if (signature.length == 65) { bytes32 r; bytes32 s; uint8 v; // ecrecover takes the signature parameters, and the only way to get them // currently is to use assembly. /// @solidity memory-safe-assembly assembly { r := mload(add(signature, 0x20)) s := mload(add(signature, 0x40)) v := byte(0, mload(add(signature, 0x60))) } return tryRecover(hash, v, r, s); } else { return (address(0), RecoverError.InvalidSignatureLength, bytes32(signature.length)); } } /** * @dev Returns the address that signed a hashed message (`hash`) with * `signature`. This address can then be used for verification purposes. * * The `ecrecover` EVM precompile allows for malleable (non-unique) signatures: * this function rejects them by requiring the `s` value to be in the lower * half order, and the `v` value to be either 27 or 28. * * IMPORTANT: `hash` _must_ be the result of a hash operation for the * verification to be secure: it is possible to craft signatures that * recover to arbitrary addresses for non-hashed data. A safe way to ensure * this is by receiving a hash of the original message (which may otherwise * be too long), and then calling {MessageHashUtils-toEthSignedMessageHash} on it. */ function recover(bytes32 hash, bytes memory signature) internal pure returns (address) { (address recovered, RecoverError error, bytes32 errorArg) = tryRecover(hash, signature); _throwError(error, errorArg); return recovered; } /** * @dev Overload of {ECDSA-tryRecover} that receives the `r` and `vs` short-signature fields separately. * * See https://eips.ethereum.org/EIPS/eip-2098[EIP-2098 short signatures] */ function tryRecover(bytes32 hash, bytes32 r, bytes32 vs) internal pure returns (address, RecoverError, bytes32) { unchecked { bytes32 s = vs & bytes32(0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff); // We do not check for an overflow here since the shift operation results in 0 or 1. uint8 v = uint8((uint256(vs) >> 255) + 27); return tryRecover(hash, v, r, s); } } /** * @dev Overload of {ECDSA-recover} that receives the `r and `vs` short-signature fields separately. */ function recover(bytes32 hash, bytes32 r, bytes32 vs) internal pure returns (address) { (address recovered, RecoverError error, bytes32 errorArg) = tryRecover(hash, r, vs); _throwError(error, errorArg); return recovered; } /** * @dev Overload of {ECDSA-tryRecover} that receives the `v`, * `r` and `s` signature fields separately. */ function tryRecover( bytes32 hash, uint8 v, bytes32 r, bytes32 s ) internal pure returns (address, RecoverError, bytes32) { // EIP-2 still allows signature malleability for ecrecover(). Remove this possibility and make the signature // unique. Appendix F in the Ethereum Yellow paper (https://ethereum.github.io/yellowpaper/paper.pdf), defines // the valid range for s in (301): 0 < s < secp256k1n ÷ 2 + 1, and for v in (302): v ∈ {27, 28}. Most // signatures from current libraries generate a unique signature with an s-value in the lower half order. // // If your library generates malleable signatures, such as s-values in the upper range, calculate a new s-value // with 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEBAAEDCE6AF48A03BBFD25E8CD0364141 - s1 and flip v from 27 to 28 or // vice versa. If your library also generates signatures with 0/1 for v instead 27/28, add 27 to v to accept // these malleable signatures as well. if (uint256(s) > 0x7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5D576E7357A4501DDFE92F46681B20A0) { return (address(0), RecoverError.InvalidSignatureS, s); } // If the signature is valid (and not malleable), return the signer address address signer = ecrecover(hash, v, r, s); if (signer == address(0)) { return (address(0), RecoverError.InvalidSignature, bytes32(0)); } return (signer, RecoverError.NoError, bytes32(0)); } /** * @dev Overload of {ECDSA-recover} that receives the `v`, * `r` and `s` signature fields separately. */ function recover(bytes32 hash, uint8 v, bytes32 r, bytes32 s) internal pure returns (address) { (address recovered, RecoverError error, bytes32 errorArg) = tryRecover(hash, v, r, s); _throwError(error, errorArg); return recovered; } /** * @dev Optionally reverts with the corresponding custom error according to the `error` argument provided. */ function _throwError(RecoverError error, bytes32 errorArg) private pure { if (error == RecoverError.NoError) { return; // no error: do nothing } else if (error == RecoverError.InvalidSignature) { revert ECDSAInvalidSignature(); } else if (error == RecoverError.InvalidSignatureLength) { revert ECDSAInvalidSignatureLength(uint256(errorArg)); } else if (error == RecoverError.InvalidSignatureS) { revert ECDSAInvalidSignatureS(errorArg); } } }
// SPDX-License-Identifier: MIT // OpenZeppelin Contracts (last updated v5.0.0) (interfaces/IERC1271.sol) pragma solidity ^0.8.20; /** * @dev Interface of the ERC1271 standard signature validation method for * contracts as defined in https://eips.ethereum.org/EIPS/eip-1271[ERC-1271]. */ interface IERC1271 { /** * @dev Should return whether the signature provided is valid for the provided data * @param hash Hash of the data to be signed * @param signature Signature byte array associated with _data */ function isValidSignature(bytes32 hash, bytes memory signature) external view returns (bytes4 magicValue); }
// SPDX-License-Identifier: MIT // OpenZeppelin Contracts (last updated v5.0.0) (utils/introspection/IERC165.sol) pragma solidity ^0.8.20; /** * @dev Interface of the ERC165 standard, as defined in the * https://eips.ethereum.org/EIPS/eip-165[EIP]. * * Implementers can declare support of contract interfaces, which can then be * queried by others ({ERC165Checker}). * * For an implementation, see {ERC165}. */ interface IERC165 { /** * @dev Returns true if this contract implements the interface defined by * `interfaceId`. See the corresponding * https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section] * to learn more about how these ids are created. * * This function call must use less than 30 000 gas. */ function supportsInterface(bytes4 interfaceId) external view returns (bool); }
// SPDX-License-Identifier: MIT // OpenZeppelin Contracts (last updated v5.0.0) (utils/Context.sol) pragma solidity ^0.8.20; /** * @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; } }
{ "remappings": [ "@openzeppelin/=lib/openzeppelin-contracts/", "@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/", "ds-test/=lib/forge-std/lib/ds-test/src/", "erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/", "forge-std/=lib/forge-std/src/", "openzeppelin-contracts/=lib/openzeppelin-contracts/" ], "optimizer": { "enabled": true, "runs": 9999999 }, "metadata": { "useLiteralContent": false, "bytecodeHash": "ipfs", "appendCBOR": true }, "outputSelection": { "*": { "*": [ "evm.bytecode", "evm.deployedBytecode", "devdoc", "userdoc", "metadata", "abi" ] } }, "evmVersion": "paris", "libraries": {} }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[{"internalType":"address","name":"nft","type":"address"},{"internalType":"address","name":"teleburnSigner_","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"InvalidRequest","type":"error"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"OwnableInvalidOwner","type":"error"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"OwnableUnauthorizedAccount","type":"error"},{"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":"uint256","name":"tokenId","type":"uint256"},{"indexed":false,"internalType":"address","name":"sender","type":"address"},{"indexed":false,"internalType":"address","name":"teleburnAddress","type":"address"},{"indexed":false,"internalType":"string","name":"btcAddress","type":"string"},{"indexed":false,"internalType":"string","name":"inscriptionId","type":"string"},{"indexed":false,"internalType":"uint256","name":"sat","type":"uint256"}],"name":"Teleburn","type":"event"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"getBtcAddress","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"getInscriptionId","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"getSat","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"getTeleburnAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"nft","outputs":[{"internalType":"contract IERC721","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"provenance","outputs":[{"internalType":"string","name":"","type":"string"},{"internalType":"string","name":"","type":"string"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256[]","name":"tokenIds","type":"uint256[]"},{"internalType":"address[]","name":"teleburnAddresses","type":"address[]"},{"internalType":"string[]","name":"btcAddresses","type":"string[]"},{"internalType":"string[]","name":"inscriptionIds","type":"string[]"},{"internalType":"uint256[]","name":"sats","type":"uint256[]"},{"internalType":"bytes[]","name":"data","type":"bytes[]"}],"name":"teleburnMultipleTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"teleburnSigner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"address","name":"teleburnAddress","type":"address"},{"internalType":"string","name":"btcAddress","type":"string"},{"internalType":"string","name":"inscriptionId","type":"string"},{"internalType":"uint256","name":"sat","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"teleburnToken","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"teleburnedCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"startTokenId","type":"uint256"},{"internalType":"uint256","name":"endTokenId","type":"uint256"}],"name":"teleburnedTokens","outputs":[{"internalType":"uint256[]","name":"","type":"uint256[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newTeleburnSigner","type":"address"}],"name":"updateTeleburnSigner","outputs":[],"stateMutability":"nonpayable","type":"function"}]
Contract Creation Code
60a060405260006002553480156200001657600080fd5b50604051620018f0380380620018f0833981016040819052620000399162000107565b818133806200006257604051631e4fbdf760e01b81526000600482015260240160405180910390fd5b6200006d816200009a565b506001600160a01b03918216608052600180546001600160a01b03191691909216179055506200013f9050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b80516001600160a01b03811681146200010257600080fd5b919050565b600080604083850312156200011b57600080fd5b6200012683620000ea565b91506200013660208401620000ea565b90509250929050565b60805161178762000169600039600081816101bd015281816108c50152610aec01526117876000f3fe608060405234801561001057600080fd5b50600436106100f55760003560e01c806365771c6111610097578063aedc796511610066578063aedc79651461026d578063b936752a14610280578063cf517f6414610293578063f2fde38b146102b357600080fd5b806365771c6114610214578063715018a6146102345780637890693e1461023c5780638da5cb5b1461024f57600080fd5b806340ee5b76116100d357806340ee5b761461015d57806347ccca02146101b8578063517e809e146101df5780635ac6db50146101f457600080fd5b80631951f293146100fa5780632d47c3da146101235780633840b44f1461013a575b600080fd5b61010d610108366004610ea5565b6102c6565b60405161011a9190610f2c565b60405180910390f35b61012c60025481565b60405190815260200161011a565b61014d610148366004610ea5565b610360565b60405161011a9493929190610f46565b61019361016b366004610ea5565b60066020526000908152604090205473ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200161011a565b6101937f000000000000000000000000000000000000000000000000000000000000000081565b6101f26101ed366004610fc2565b6104d6565b005b61012c610202366004610ea5565b60056020526000908152604090205481565b6001546101939073ffffffffffffffffffffffffffffffffffffffff1681565b6101f2610525565b6101f261024a366004611026565b610539565b60005473ffffffffffffffffffffffffffffffffffffffff16610193565b6101f261027b36600461112b565b61059a565b61010d61028e366004610ea5565b61068e565b6102a66102a136600461126e565b6106a7565b60405161011a9190611290565b6101f26102c1366004610fc2565b61078f565b600460205260009081526040902080546102df906112d4565b80601f016020809104026020016040519081016040528092919081815260200182805461030b906112d4565b80156103585780601f1061032d57610100808354040283529160200191610358565b820191906000526020600020905b81548152906001019060200180831161033b57829003601f168201915b505050505081565b6000818152600360209081526040808320600483528184206005845282852054600690945291842054815460609586959094859493909273ffffffffffffffffffffffffffffffffffffffff9091169084906103bb906112d4565b80601f01602080910402602001604051908101604052809291908181526020018280546103e7906112d4565b80156104345780601f1061040957610100808354040283529160200191610434565b820191906000526020600020905b81548152906001019060200180831161041757829003601f168201915b50505050509350828054610447906112d4565b80601f0160208091040260200160405190810160405280929190818152602001828054610473906112d4565b80156104c05780601f10610495576101008083540402835291602001916104c0565b820191906000526020600020905b8154815290600101906020018083116104a357829003601f168201915b5050505050925093509350935093509193509193565b6104de6107f8565b600180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b61052d6107f8565b610537600061084b565b565b61054a8989898989898989896108c0565b610580576040517f41abc80100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61058f898989898989896109f9565b505050505050505050565b8a60005b8181101561067e5761066e8e8e838181106105bb576105bb611327565b905060200201358d8d848181106105d4576105d4611327565b90506020020160208101906105e99190610fc2565b8c8c858181106105fb576105fb611327565b905060200281019061060d9190611356565b8c8c8781811061061f5761061f611327565b90506020028101906106319190611356565b8c8c8981811061064357610643611327565b905060200201358b8b8a81811061065c5761065c611327565b905060200281019061024a9190611356565b610677816113bb565b905061059e565b5050505050505050505050505050565b600360205260009081526040902080546102df906112d4565b60025460609060008190036106cc575050604080516000815260208101909152610789565b60008167ffffffffffffffff8111156106e7576106e761141a565b604051908082528060200260200182016040528015610710578160200160208202803683370190505b5090506000855b8581116107825760008181526006602052604090205473ffffffffffffffffffffffffffffffffffffffff1615610772578083838151811061075b5761075b611327565b602090810291909101015261076f826113bb565b91505b61077b816113bb565b9050610717565b5090925050505b92915050565b6107976107f8565b73ffffffffffffffffffffffffffffffffffffffff81166107ec576040517f1e4fbdf7000000000000000000000000000000000000000000000000000000008152600060048201526024015b60405180910390fd5b6107f58161084b565b50565b60005473ffffffffffffffffffffffffffffffffffffffff163314610537576040517f118cdaa70000000000000000000000000000000000000000000000000000000081523360048201526024016107e3565b6000805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000807f00000000000000000000000000000000000000000000000000000000000000008b8b8b8b8b8b8b604051602001610902989796959493929190611449565b60405160208183030381529060405280519060200120905060008160405160200161095991907f19457468657265756d205369676e6564204d6573736167653a0a3332000000008152601c810191909152603c0190565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181528282526001548151602080840191909120601f8a018290048202860182019094528885529194506109e99373ffffffffffffffffffffffffffffffffffffffff90911692918990899081908401838280828437600092019190915250610b9592505050565b9c9b505050505050505050505050565b6000878152600360205260409020610a12858783611506565b506000878152600460205260409020610a2c838583611506565b5060008781526005602090815260408083208490556006909152812080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff891617905560028054909190610a96906113bb565b909155506040517f42842e0e00000000000000000000000000000000000000000000000000000000815233600482015273ffffffffffffffffffffffffffffffffffffffff8781166024830152604482018990527f000000000000000000000000000000000000000000000000000000000000000016906342842e0e90606401600060405180830381600087803b158015610b3057600080fd5b505af1158015610b44573d6000803e3d6000fd5b50505050867f8e1008309d9f0b6ae2e033d05bfb3fc38037c2001043acbf6ab10af38bb1ca0c33888888888888604051610b84979695949392919061166a565b60405180910390a250505050505050565b6000806000610ba48585610c11565b5090925090506000816003811115610bbe57610bbe6116cc565b148015610bf657508573ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b80610c075750610c07868686610c5e565b9695505050505050565b60008060008351604103610c4b5760208401516040850151606086015160001a610c3d88828585610dab565b955095509550505050610c57565b50508151600091506002905b9250925092565b60008060008573ffffffffffffffffffffffffffffffffffffffff168585604051602401610c8d9291906116fb565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f1626ba7e0000000000000000000000000000000000000000000000000000000017905251610d0e919061171c565b600060405180830381855afa9150503d8060008114610d49576040519150601f19603f3d011682016040523d82523d6000602084013e610d4e565b606091505b5091509150818015610d6257506020815110155b8015610c07575080517f1626ba7e0000000000000000000000000000000000000000000000000000000090610da09083016020908101908401611738565b149695505050505050565b600080807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0841115610de65750600091506003905082610e9b565b604080516000808252602082018084528a905260ff891692820192909252606081018790526080810186905260019060a0016020604051602081039080840390855afa158015610e3a573d6000803e3d6000fd5b50506040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0015191505073ffffffffffffffffffffffffffffffffffffffff8116610e9157506000925060019150829050610e9b565b9250600091508190505b9450945094915050565b600060208284031215610eb757600080fd5b5035919050565b60005b83811015610ed9578181015183820152602001610ec1565b50506000910152565b60008151808452610efa816020860160208601610ebe565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b602081526000610f3f6020830184610ee2565b9392505050565b608081526000610f596080830187610ee2565b8281036020840152610f6b8187610ee2565b91505083604083015273ffffffffffffffffffffffffffffffffffffffff8316606083015295945050505050565b803573ffffffffffffffffffffffffffffffffffffffff81168114610fbd57600080fd5b919050565b600060208284031215610fd457600080fd5b610f3f82610f99565b60008083601f840112610fef57600080fd5b50813567ffffffffffffffff81111561100757600080fd5b60208301915083602082850101111561101f57600080fd5b9250929050565b600080600080600080600080600060c08a8c03121561104457600080fd5b8935985061105460208b01610f99565b975060408a013567ffffffffffffffff8082111561107157600080fd5b61107d8d838e01610fdd565b909950975060608c013591508082111561109657600080fd5b6110a28d838e01610fdd565b909750955060808c0135945060a08c01359150808211156110c257600080fd5b506110cf8c828d01610fdd565b915080935050809150509295985092959850929598565b60008083601f8401126110f857600080fd5b50813567ffffffffffffffff81111561111057600080fd5b6020830191508360208260051b850101111561101f57600080fd5b60008060008060008060008060008060008060c08d8f03121561114d57600080fd5b67ffffffffffffffff8d35111561116357600080fd5b6111708e8e358f016110e6565b909c509a5067ffffffffffffffff60208e0135111561118e57600080fd5b61119e8e60208f01358f016110e6565b909a50985067ffffffffffffffff60408e013511156111bc57600080fd5b6111cc8e60408f01358f016110e6565b909850965067ffffffffffffffff60608e013511156111ea57600080fd5b6111fa8e60608f01358f016110e6565b909650945067ffffffffffffffff60808e0135111561121857600080fd5b6112288e60808f01358f016110e6565b909450925067ffffffffffffffff60a08e0135111561124657600080fd5b6112568e60a08f01358f016110e6565b81935080925050509295989b509295989b509295989b565b6000806040838503121561128157600080fd5b50508035926020909101359150565b6020808252825182820181905260009190848201906040850190845b818110156112c8578351835292840192918401916001016112ac565b50909695505050505050565b600181811c908216806112e857607f821691505b602082108103611321577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60008083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe184360301811261138b57600080fd5b83018035915067ffffffffffffffff8211156113a657600080fd5b60200191503681900382131561101f57600080fd5b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203611413577f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b5060010190565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60007fffffffffffffffffffffffffffffffffffffffff000000000000000000000000808b60601b168352896014840152808960601b166034840152508587604884013785820160488101600081528587823750604894019384019290925250506068019695505050505050565b601f82111561150157600081815260208120601f850160051c810160208610156114de5750805b601f850160051c820191505b818110156114fd578281556001016114ea565b5050505b505050565b67ffffffffffffffff83111561151e5761151e61141a565b6115328361152c83546112d4565b836114b7565b6000601f841160018114611584576000851561154e5750838201355b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600387901b1c1916600186901b17835561161a565b6000838152602090207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0861690835b828110156115d357868501358255602094850194600190920191016115b3565b508682101561160e577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60f88860031b161c19848701351681555b505060018560011b0183555b5050505050565b8183528181602085013750600060208284010152600060207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116840101905092915050565b600073ffffffffffffffffffffffffffffffffffffffff808a16835280891660208401525060a060408301526116a460a083018789611621565b82810360608401526116b7818688611621565b91505082608083015298975050505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b8281526040602082015260006117146040830184610ee2565b949350505050565b6000825161172e818460208701610ebe565b9190910192915050565b60006020828403121561174a57600080fd5b505191905056fea26469706673582212203a3e553192555acad91938355b26417d62bab351ab59e6c8bb4ed25803eb2d7a64736f6c63430008150033000000000000000000000000960b7a6bcd451c9968473f7bbfd9be826efd549a00000000000000000000000086711bab59ee089e78c5a55d75b8bd7ab29d137b
Deployed Bytecode
0x608060405234801561001057600080fd5b50600436106100f55760003560e01c806365771c6111610097578063aedc796511610066578063aedc79651461026d578063b936752a14610280578063cf517f6414610293578063f2fde38b146102b357600080fd5b806365771c6114610214578063715018a6146102345780637890693e1461023c5780638da5cb5b1461024f57600080fd5b806340ee5b76116100d357806340ee5b761461015d57806347ccca02146101b8578063517e809e146101df5780635ac6db50146101f457600080fd5b80631951f293146100fa5780632d47c3da146101235780633840b44f1461013a575b600080fd5b61010d610108366004610ea5565b6102c6565b60405161011a9190610f2c565b60405180910390f35b61012c60025481565b60405190815260200161011a565b61014d610148366004610ea5565b610360565b60405161011a9493929190610f46565b61019361016b366004610ea5565b60066020526000908152604090205473ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200161011a565b6101937f000000000000000000000000960b7a6bcd451c9968473f7bbfd9be826efd549a81565b6101f26101ed366004610fc2565b6104d6565b005b61012c610202366004610ea5565b60056020526000908152604090205481565b6001546101939073ffffffffffffffffffffffffffffffffffffffff1681565b6101f2610525565b6101f261024a366004611026565b610539565b60005473ffffffffffffffffffffffffffffffffffffffff16610193565b6101f261027b36600461112b565b61059a565b61010d61028e366004610ea5565b61068e565b6102a66102a136600461126e565b6106a7565b60405161011a9190611290565b6101f26102c1366004610fc2565b61078f565b600460205260009081526040902080546102df906112d4565b80601f016020809104026020016040519081016040528092919081815260200182805461030b906112d4565b80156103585780601f1061032d57610100808354040283529160200191610358565b820191906000526020600020905b81548152906001019060200180831161033b57829003601f168201915b505050505081565b6000818152600360209081526040808320600483528184206005845282852054600690945291842054815460609586959094859493909273ffffffffffffffffffffffffffffffffffffffff9091169084906103bb906112d4565b80601f01602080910402602001604051908101604052809291908181526020018280546103e7906112d4565b80156104345780601f1061040957610100808354040283529160200191610434565b820191906000526020600020905b81548152906001019060200180831161041757829003601f168201915b50505050509350828054610447906112d4565b80601f0160208091040260200160405190810160405280929190818152602001828054610473906112d4565b80156104c05780601f10610495576101008083540402835291602001916104c0565b820191906000526020600020905b8154815290600101906020018083116104a357829003601f168201915b5050505050925093509350935093509193509193565b6104de6107f8565b600180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b61052d6107f8565b610537600061084b565b565b61054a8989898989898989896108c0565b610580576040517f41abc80100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61058f898989898989896109f9565b505050505050505050565b8a60005b8181101561067e5761066e8e8e838181106105bb576105bb611327565b905060200201358d8d848181106105d4576105d4611327565b90506020020160208101906105e99190610fc2565b8c8c858181106105fb576105fb611327565b905060200281019061060d9190611356565b8c8c8781811061061f5761061f611327565b90506020028101906106319190611356565b8c8c8981811061064357610643611327565b905060200201358b8b8a81811061065c5761065c611327565b905060200281019061024a9190611356565b610677816113bb565b905061059e565b5050505050505050505050505050565b600360205260009081526040902080546102df906112d4565b60025460609060008190036106cc575050604080516000815260208101909152610789565b60008167ffffffffffffffff8111156106e7576106e761141a565b604051908082528060200260200182016040528015610710578160200160208202803683370190505b5090506000855b8581116107825760008181526006602052604090205473ffffffffffffffffffffffffffffffffffffffff1615610772578083838151811061075b5761075b611327565b602090810291909101015261076f826113bb565b91505b61077b816113bb565b9050610717565b5090925050505b92915050565b6107976107f8565b73ffffffffffffffffffffffffffffffffffffffff81166107ec576040517f1e4fbdf7000000000000000000000000000000000000000000000000000000008152600060048201526024015b60405180910390fd5b6107f58161084b565b50565b60005473ffffffffffffffffffffffffffffffffffffffff163314610537576040517f118cdaa70000000000000000000000000000000000000000000000000000000081523360048201526024016107e3565b6000805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000807f000000000000000000000000960b7a6bcd451c9968473f7bbfd9be826efd549a8b8b8b8b8b8b8b604051602001610902989796959493929190611449565b60405160208183030381529060405280519060200120905060008160405160200161095991907f19457468657265756d205369676e6564204d6573736167653a0a3332000000008152601c810191909152603c0190565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181528282526001548151602080840191909120601f8a018290048202860182019094528885529194506109e99373ffffffffffffffffffffffffffffffffffffffff90911692918990899081908401838280828437600092019190915250610b9592505050565b9c9b505050505050505050505050565b6000878152600360205260409020610a12858783611506565b506000878152600460205260409020610a2c838583611506565b5060008781526005602090815260408083208490556006909152812080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff891617905560028054909190610a96906113bb565b909155506040517f42842e0e00000000000000000000000000000000000000000000000000000000815233600482015273ffffffffffffffffffffffffffffffffffffffff8781166024830152604482018990527f000000000000000000000000960b7a6bcd451c9968473f7bbfd9be826efd549a16906342842e0e90606401600060405180830381600087803b158015610b3057600080fd5b505af1158015610b44573d6000803e3d6000fd5b50505050867f8e1008309d9f0b6ae2e033d05bfb3fc38037c2001043acbf6ab10af38bb1ca0c33888888888888604051610b84979695949392919061166a565b60405180910390a250505050505050565b6000806000610ba48585610c11565b5090925090506000816003811115610bbe57610bbe6116cc565b148015610bf657508573ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b80610c075750610c07868686610c5e565b9695505050505050565b60008060008351604103610c4b5760208401516040850151606086015160001a610c3d88828585610dab565b955095509550505050610c57565b50508151600091506002905b9250925092565b60008060008573ffffffffffffffffffffffffffffffffffffffff168585604051602401610c8d9291906116fb565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f1626ba7e0000000000000000000000000000000000000000000000000000000017905251610d0e919061171c565b600060405180830381855afa9150503d8060008114610d49576040519150601f19603f3d011682016040523d82523d6000602084013e610d4e565b606091505b5091509150818015610d6257506020815110155b8015610c07575080517f1626ba7e0000000000000000000000000000000000000000000000000000000090610da09083016020908101908401611738565b149695505050505050565b600080807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0841115610de65750600091506003905082610e9b565b604080516000808252602082018084528a905260ff891692820192909252606081018790526080810186905260019060a0016020604051602081039080840390855afa158015610e3a573d6000803e3d6000fd5b50506040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0015191505073ffffffffffffffffffffffffffffffffffffffff8116610e9157506000925060019150829050610e9b565b9250600091508190505b9450945094915050565b600060208284031215610eb757600080fd5b5035919050565b60005b83811015610ed9578181015183820152602001610ec1565b50506000910152565b60008151808452610efa816020860160208601610ebe565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b602081526000610f3f6020830184610ee2565b9392505050565b608081526000610f596080830187610ee2565b8281036020840152610f6b8187610ee2565b91505083604083015273ffffffffffffffffffffffffffffffffffffffff8316606083015295945050505050565b803573ffffffffffffffffffffffffffffffffffffffff81168114610fbd57600080fd5b919050565b600060208284031215610fd457600080fd5b610f3f82610f99565b60008083601f840112610fef57600080fd5b50813567ffffffffffffffff81111561100757600080fd5b60208301915083602082850101111561101f57600080fd5b9250929050565b600080600080600080600080600060c08a8c03121561104457600080fd5b8935985061105460208b01610f99565b975060408a013567ffffffffffffffff8082111561107157600080fd5b61107d8d838e01610fdd565b909950975060608c013591508082111561109657600080fd5b6110a28d838e01610fdd565b909750955060808c0135945060a08c01359150808211156110c257600080fd5b506110cf8c828d01610fdd565b915080935050809150509295985092959850929598565b60008083601f8401126110f857600080fd5b50813567ffffffffffffffff81111561111057600080fd5b6020830191508360208260051b850101111561101f57600080fd5b60008060008060008060008060008060008060c08d8f03121561114d57600080fd5b67ffffffffffffffff8d35111561116357600080fd5b6111708e8e358f016110e6565b909c509a5067ffffffffffffffff60208e0135111561118e57600080fd5b61119e8e60208f01358f016110e6565b909a50985067ffffffffffffffff60408e013511156111bc57600080fd5b6111cc8e60408f01358f016110e6565b909850965067ffffffffffffffff60608e013511156111ea57600080fd5b6111fa8e60608f01358f016110e6565b909650945067ffffffffffffffff60808e0135111561121857600080fd5b6112288e60808f01358f016110e6565b909450925067ffffffffffffffff60a08e0135111561124657600080fd5b6112568e60a08f01358f016110e6565b81935080925050509295989b509295989b509295989b565b6000806040838503121561128157600080fd5b50508035926020909101359150565b6020808252825182820181905260009190848201906040850190845b818110156112c8578351835292840192918401916001016112ac565b50909695505050505050565b600181811c908216806112e857607f821691505b602082108103611321577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60008083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe184360301811261138b57600080fd5b83018035915067ffffffffffffffff8211156113a657600080fd5b60200191503681900382131561101f57600080fd5b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203611413577f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b5060010190565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60007fffffffffffffffffffffffffffffffffffffffff000000000000000000000000808b60601b168352896014840152808960601b166034840152508587604884013785820160488101600081528587823750604894019384019290925250506068019695505050505050565b601f82111561150157600081815260208120601f850160051c810160208610156114de5750805b601f850160051c820191505b818110156114fd578281556001016114ea565b5050505b505050565b67ffffffffffffffff83111561151e5761151e61141a565b6115328361152c83546112d4565b836114b7565b6000601f841160018114611584576000851561154e5750838201355b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600387901b1c1916600186901b17835561161a565b6000838152602090207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0861690835b828110156115d357868501358255602094850194600190920191016115b3565b508682101561160e577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60f88860031b161c19848701351681555b505060018560011b0183555b5050505050565b8183528181602085013750600060208284010152600060207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116840101905092915050565b600073ffffffffffffffffffffffffffffffffffffffff808a16835280891660208401525060a060408301526116a460a083018789611621565b82810360608401526116b7818688611621565b91505082608083015298975050505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b8281526040602082015260006117146040830184610ee2565b949350505050565b6000825161172e818460208701610ebe565b9190910192915050565b60006020828403121561174a57600080fd5b505191905056fea26469706673582212203a3e553192555acad91938355b26417d62bab351ab59e6c8bb4ed25803eb2d7a64736f6c63430008150033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
000000000000000000000000960b7a6bcd451c9968473f7bbfd9be826efd549a00000000000000000000000086711bab59ee089e78c5a55d75b8bd7ab29d137b
-----Decoded View---------------
Arg [0] : nft (address): 0x960b7a6BCD451c9968473f7bbFd9Be826EFd549A
Arg [1] : teleburnSigner_ (address): 0x86711bab59EE089E78c5a55D75b8bD7aB29D137B
-----Encoded View---------------
2 Constructor Arguments found :
Arg [0] : 000000000000000000000000960b7a6bcd451c9968473f7bbfd9be826efd549a
Arg [1] : 00000000000000000000000086711bab59ee089e78c5a55d75b8bd7ab29d137b
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 26 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|
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.