More Info
Private Name Tags
ContractCreator
Latest 25 from a total of 2,417 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Withdraw ERC1555 | 16629630 | 785 days ago | IN | 0 ETH | 0.00550475 | ||||
Withdraw ERC1555 | 16617927 | 787 days ago | IN | 0 ETH | 0.00110161 | ||||
Withdraw ERC1555 | 16611214 | 788 days ago | IN | 0 ETH | 0.00111884 | ||||
Withdraw ERC1555 | 16610185 | 788 days ago | IN | 0 ETH | 0.00145265 | ||||
Withdraw ERC1555 | 16607961 | 788 days ago | IN | 0 ETH | 0.00108439 | ||||
Withdraw ERC1555 | 16607869 | 788 days ago | IN | 0 ETH | 0.00133045 | ||||
Withdraw ERC1555 | 16605147 | 789 days ago | IN | 0 ETH | 0.0010351 | ||||
Withdraw ERC1555 | 16604925 | 789 days ago | IN | 0 ETH | 0.00111679 | ||||
Withdraw ERC1555 | 16603080 | 789 days ago | IN | 0 ETH | 0.00117592 | ||||
Deposit ERC1155 | 16602063 | 789 days ago | IN | 0 ETH | 0.00142111 | ||||
Withdraw ERC1555 | 16602051 | 789 days ago | IN | 0 ETH | 0.00125727 | ||||
Withdraw ERC1555 | 16601575 | 789 days ago | IN | 0 ETH | 0.00147526 | ||||
Deposit ERC1155 | 16601553 | 789 days ago | IN | 0 ETH | 0.0019853 | ||||
Withdraw ERC1555 | 16601537 | 789 days ago | IN | 0 ETH | 0.00214935 | ||||
Withdraw ERC1555 | 16601535 | 789 days ago | IN | 0 ETH | 0.00217634 | ||||
Withdraw ERC1555 | 16601532 | 789 days ago | IN | 0 ETH | 0.00231776 | ||||
Withdraw ERC1555 | 16601530 | 789 days ago | IN | 0 ETH | 0.00209907 | ||||
Deposit ERC1155 | 16601528 | 789 days ago | IN | 0 ETH | 0.00247656 | ||||
Withdraw ERC1555 | 16601524 | 789 days ago | IN | 0 ETH | 0.00233711 | ||||
Withdraw ERC1555 | 16601521 | 789 days ago | IN | 0 ETH | 0.00229313 | ||||
Withdraw ERC1555 | 16601517 | 789 days ago | IN | 0 ETH | 0.00259959 | ||||
Withdraw ERC1555 | 16601514 | 789 days ago | IN | 0 ETH | 0.00249374 | ||||
Withdraw ERC1555 | 16601512 | 789 days ago | IN | 0 ETH | 0.00298892 | ||||
Withdraw ERC1555 | 16601512 | 789 days ago | IN | 0 ETH | 0.00298892 | ||||
Withdraw ERC1555 | 16601507 | 789 days ago | IN | 0 ETH | 0.00348999 |
View more zero value Internal Transactions in Advanced View mode
Advanced mode:
Loading...
Loading
Contract Name:
Champs_Staking
Compiler Version
v0.8.7+commit.e28d00a7
Optimization Enabled:
No with 200 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity Standard Json-Input format)
// SPDX-License-Identifier: MIT pragma solidity ^0.8; import "@openzeppelin/contracts/access/Ownable.sol"; import "@openzeppelin/contracts/security/Pausable.sol"; import "@openzeppelin/contracts/utils/structs/EnumerableSet.sol"; import "@openzeppelin/contracts/token/ERC1155/IERC1155Receiver.sol"; import "@openzeppelin/contracts/token/ERC1155/utils/ERC1155Holder.sol"; import "@openzeppelin/contracts/security/ReentrancyGuard.sol"; contract Champs_Staking is Ownable, Pausable, ERC1155Holder, ReentrancyGuard { using EnumerableSet for EnumerableSet.UintSet; address public erc1155Address = 0x38a6fd7148c4900338e903258B5E289Dfa995E2E; mapping(address=>uint256) public amountDeposited; constructor() { } function pause() public onlyOwner { _pause(); } function unpause() external onlyOwner { _unpause(); } function depositERC1155(uint256 id,uint256 amount) external whenNotPaused nonReentrant { IERC1155(erc1155Address).safeTransferFrom(msg.sender,address(this),id,amount,''); amountDeposited[msg.sender]+=amount; } function withdrawERC1555(uint256 id, uint256 amount) external whenNotPaused nonReentrant { require(amountDeposited[msg.sender]>=amount,"You Don't Have This Amount Staking"); amountDeposited[msg.sender]-=amount; IERC1155(erc1155Address).safeTransferFrom(address(this),msg.sender,id,amount,''); } function setERC1155Address(address newERC1155Address) external whenNotPaused onlyOwner nonReentrant { erc1155Address = newERC1155Address; } function checkAuth(address _address) public view returns(bool){ if(amountDeposited[_address] >0){ return true; } return false; } function checkAuth2() public view returns(bool){ if(amountDeposited[msg.sender] >0){ return true; } return false; } } interface IERC1155 { function balanceOf(address account, uint256 id) external view returns (uint256); function safeTransferFrom( address from, address to, uint256 id, uint256 amount, bytes calldata data ) external; function setApprovalForAll(address operator, bool approved) external; }
// SPDX-License-Identifier: MIT // OpenZeppelin Contracts v4.4.1 (security/ReentrancyGuard.sol) pragma solidity ^0.8.0; /** * @dev Contract module that helps prevent reentrant calls to a function. * * Inheriting from `ReentrancyGuard` will make the {nonReentrant} modifier * available, which can be applied to functions to make sure there are no nested * (reentrant) calls to them. * * Note that because there is a single `nonReentrant` guard, functions marked as * `nonReentrant` may not call one another. This can be worked around by making * those functions `private`, and then adding `external` `nonReentrant` entry * points to them. * * TIP: If you would like to learn more about reentrancy and alternative ways * to protect against it, check out our blog post * https://blog.openzeppelin.com/reentrancy-after-istanbul/[Reentrancy After Istanbul]. */ abstract contract ReentrancyGuard { // Booleans are more expensive than uint256 or any type that takes up a full // word because each write operation emits an extra SLOAD to first read the // slot's contents, replace the bits taken up by the boolean, and then write // back. This is the compiler's defense against contract upgrades and // pointer aliasing, and it cannot be disabled. // The values being non-zero value makes deployment a bit more expensive, // but in exchange the refund on every call to nonReentrant will be lower in // amount. Since refunds are capped to a percentage of the total // transaction's gas, it is best to keep them low in cases like this one, to // increase the likelihood of the full refund coming into effect. uint256 private constant _NOT_ENTERED = 1; uint256 private constant _ENTERED = 2; uint256 private _status; constructor() { _status = _NOT_ENTERED; } /** * @dev Prevents a contract from calling itself, directly or indirectly. * Calling a `nonReentrant` function from another `nonReentrant` * function is not supported. It is possible to prevent this from happening * by making the `nonReentrant` function external, and making it call a * `private` function that does the actual work. */ modifier nonReentrant() { // On the first call to nonReentrant, _notEntered will be true require(_status != _ENTERED, "ReentrancyGuard: reentrant call"); // Any calls to nonReentrant after this point will fail _status = _ENTERED; _; // By storing the original value once again, a refund is triggered (see // https://eips.ethereum.org/EIPS/eip-2200) _status = _NOT_ENTERED; } }
// SPDX-License-Identifier: MIT // OpenZeppelin Contracts (last updated v4.5.0) (token/ERC1155/utils/ERC1155Holder.sol) pragma solidity ^0.8.0; import "./ERC1155Receiver.sol"; /** * Simple implementation of `ERC1155Receiver` that will allow a contract to hold ERC1155 tokens. * * IMPORTANT: When inheriting this contract, you must include a way to use the received tokens, otherwise they will be * stuck. * * @dev _Available since v3.1._ */ contract ERC1155Holder is ERC1155Receiver { function onERC1155Received( address, address, uint256, uint256, bytes memory ) public virtual override returns (bytes4) { return this.onERC1155Received.selector; } function onERC1155BatchReceived( address, address, uint256[] memory, uint256[] memory, bytes memory ) public virtual override returns (bytes4) { return this.onERC1155BatchReceived.selector; } }
// SPDX-License-Identifier: MIT // OpenZeppelin Contracts (last updated v4.5.0) (token/ERC1155/IERC1155Receiver.sol) pragma solidity ^0.8.0; import "../../utils/introspection/IERC165.sol"; /** * @dev _Available since v3.1._ */ interface IERC1155Receiver is IERC165 { /** * @dev Handles the receipt of a single ERC1155 token type. This function is * called at the end of a `safeTransferFrom` after the balance has been updated. * * NOTE: To accept the transfer, this must return * `bytes4(keccak256("onERC1155Received(address,address,uint256,uint256,bytes)"))` * (i.e. 0xf23a6e61, or its own function selector). * * @param operator The address which initiated the transfer (i.e. msg.sender) * @param from The address which previously owned the token * @param id The ID of the token being transferred * @param value The amount of tokens being transferred * @param data Additional data with no specified format * @return `bytes4(keccak256("onERC1155Received(address,address,uint256,uint256,bytes)"))` if transfer is allowed */ function onERC1155Received( address operator, address from, uint256 id, uint256 value, bytes calldata data ) external returns (bytes4); /** * @dev Handles the receipt of a multiple ERC1155 token types. This function * is called at the end of a `safeBatchTransferFrom` after the balances have * been updated. * * NOTE: To accept the transfer(s), this must return * `bytes4(keccak256("onERC1155BatchReceived(address,address,uint256[],uint256[],bytes)"))` * (i.e. 0xbc197c81, or its own function selector). * * @param operator The address which initiated the batch transfer (i.e. msg.sender) * @param from The address which previously owned the token * @param ids An array containing ids of each token being transferred (order and length must match values array) * @param values An array containing amounts of each token being transferred (order and length must match ids array) * @param data Additional data with no specified format * @return `bytes4(keccak256("onERC1155BatchReceived(address,address,uint256[],uint256[],bytes)"))` if transfer is allowed */ function onERC1155BatchReceived( address operator, address from, uint256[] calldata ids, uint256[] calldata values, bytes calldata data ) external returns (bytes4); }
// SPDX-License-Identifier: MIT // OpenZeppelin Contracts (last updated v4.6.0) (utils/structs/EnumerableSet.sol) pragma solidity ^0.8.0; /** * @dev Library for managing * https://en.wikipedia.org/wiki/Set_(abstract_data_type)[sets] of primitive * types. * * Sets have the following properties: * * - Elements are added, removed, and checked for existence in constant time * (O(1)). * - Elements are enumerated in O(n). No guarantees are made on the ordering. * * ``` * contract Example { * // Add the library methods * using EnumerableSet for EnumerableSet.AddressSet; * * // Declare a set state variable * EnumerableSet.AddressSet private mySet; * } * ``` * * As of v3.3.0, sets of type `bytes32` (`Bytes32Set`), `address` (`AddressSet`) * and `uint256` (`UintSet`) are supported. */ library EnumerableSet { // To implement this library for multiple types with as little code // repetition as possible, we write it in terms of a generic Set type with // bytes32 values. // The Set implementation uses private functions, and user-facing // implementations (such as AddressSet) are just wrappers around the // underlying Set. // This means that we can only create new EnumerableSets for types that fit // in bytes32. struct Set { // Storage of set values bytes32[] _values; // Position of the value in the `values` array, plus 1 because index 0 // means a value is not in the set. mapping(bytes32 => uint256) _indexes; } /** * @dev Add a value to a set. O(1). * * Returns true if the value was added to the set, that is if it was not * already present. */ function _add(Set storage set, bytes32 value) private returns (bool) { if (!_contains(set, value)) { set._values.push(value); // The value is stored at length-1, but we add 1 to all indexes // and use 0 as a sentinel value set._indexes[value] = set._values.length; return true; } else { return false; } } /** * @dev Removes a value from a set. O(1). * * Returns true if the value was removed from the set, that is if it was * present. */ function _remove(Set storage set, bytes32 value) private returns (bool) { // We read and store the value's index to prevent multiple reads from the same storage slot uint256 valueIndex = set._indexes[value]; if (valueIndex != 0) { // Equivalent to contains(set, value) // To delete an element from the _values array in O(1), we swap the element to delete with the last one in // the array, and then remove the last element (sometimes called as 'swap and pop'). // This modifies the order of the array, as noted in {at}. uint256 toDeleteIndex = valueIndex - 1; uint256 lastIndex = set._values.length - 1; if (lastIndex != toDeleteIndex) { bytes32 lastValue = set._values[lastIndex]; // Move the last value to the index where the value to delete is set._values[toDeleteIndex] = lastValue; // Update the index for the moved value set._indexes[lastValue] = valueIndex; // Replace lastValue's index to valueIndex } // Delete the slot where the moved value was stored set._values.pop(); // Delete the index for the deleted slot delete set._indexes[value]; return true; } else { return false; } } /** * @dev Returns true if the value is in the set. O(1). */ function _contains(Set storage set, bytes32 value) private view returns (bool) { return set._indexes[value] != 0; } /** * @dev Returns the number of values on the set. O(1). */ function _length(Set storage set) private view returns (uint256) { return set._values.length; } /** * @dev Returns the value stored at position `index` in the set. O(1). * * Note that there are no guarantees on the ordering of values inside the * array, and it may change when more values are added or removed. * * Requirements: * * - `index` must be strictly less than {length}. */ function _at(Set storage set, uint256 index) private view returns (bytes32) { return set._values[index]; } /** * @dev Return the entire set in an array * * WARNING: This operation will copy the entire storage to memory, which can be quite expensive. This is designed * to mostly be used by view accessors that are queried without any gas fees. Developers should keep in mind that * this function has an unbounded cost, and using it as part of a state-changing function may render the function * uncallable if the set grows to a point where copying to memory consumes too much gas to fit in a block. */ function _values(Set storage set) private view returns (bytes32[] memory) { return set._values; } // Bytes32Set struct Bytes32Set { Set _inner; } /** * @dev Add a value to a set. O(1). * * Returns true if the value was added to the set, that is if it was not * already present. */ function add(Bytes32Set storage set, bytes32 value) internal returns (bool) { return _add(set._inner, value); } /** * @dev Removes a value from a set. O(1). * * Returns true if the value was removed from the set, that is if it was * present. */ function remove(Bytes32Set storage set, bytes32 value) internal returns (bool) { return _remove(set._inner, value); } /** * @dev Returns true if the value is in the set. O(1). */ function contains(Bytes32Set storage set, bytes32 value) internal view returns (bool) { return _contains(set._inner, value); } /** * @dev Returns the number of values in the set. O(1). */ function length(Bytes32Set storage set) internal view returns (uint256) { return _length(set._inner); } /** * @dev Returns the value stored at position `index` in the set. O(1). * * Note that there are no guarantees on the ordering of values inside the * array, and it may change when more values are added or removed. * * Requirements: * * - `index` must be strictly less than {length}. */ function at(Bytes32Set storage set, uint256 index) internal view returns (bytes32) { return _at(set._inner, index); } /** * @dev Return the entire set in an array * * WARNING: This operation will copy the entire storage to memory, which can be quite expensive. This is designed * to mostly be used by view accessors that are queried without any gas fees. Developers should keep in mind that * this function has an unbounded cost, and using it as part of a state-changing function may render the function * uncallable if the set grows to a point where copying to memory consumes too much gas to fit in a block. */ function values(Bytes32Set storage set) internal view returns (bytes32[] memory) { return _values(set._inner); } // AddressSet struct AddressSet { Set _inner; } /** * @dev Add a value to a set. O(1). * * Returns true if the value was added to the set, that is if it was not * already present. */ function add(AddressSet storage set, address value) internal returns (bool) { return _add(set._inner, bytes32(uint256(uint160(value)))); } /** * @dev Removes a value from a set. O(1). * * Returns true if the value was removed from the set, that is if it was * present. */ function remove(AddressSet storage set, address value) internal returns (bool) { return _remove(set._inner, bytes32(uint256(uint160(value)))); } /** * @dev Returns true if the value is in the set. O(1). */ function contains(AddressSet storage set, address value) internal view returns (bool) { return _contains(set._inner, bytes32(uint256(uint160(value)))); } /** * @dev Returns the number of values in the set. O(1). */ function length(AddressSet storage set) internal view returns (uint256) { return _length(set._inner); } /** * @dev Returns the value stored at position `index` in the set. O(1). * * Note that there are no guarantees on the ordering of values inside the * array, and it may change when more values are added or removed. * * Requirements: * * - `index` must be strictly less than {length}. */ function at(AddressSet storage set, uint256 index) internal view returns (address) { return address(uint160(uint256(_at(set._inner, index)))); } /** * @dev Return the entire set in an array * * WARNING: This operation will copy the entire storage to memory, which can be quite expensive. This is designed * to mostly be used by view accessors that are queried without any gas fees. Developers should keep in mind that * this function has an unbounded cost, and using it as part of a state-changing function may render the function * uncallable if the set grows to a point where copying to memory consumes too much gas to fit in a block. */ function values(AddressSet storage set) internal view returns (address[] memory) { bytes32[] memory store = _values(set._inner); address[] memory result; assembly { result := store } return result; } // UintSet struct UintSet { Set _inner; } /** * @dev Add a value to a set. O(1). * * Returns true if the value was added to the set, that is if it was not * already present. */ function add(UintSet storage set, uint256 value) internal returns (bool) { return _add(set._inner, bytes32(value)); } /** * @dev Removes a value from a set. O(1). * * Returns true if the value was removed from the set, that is if it was * present. */ function remove(UintSet storage set, uint256 value) internal returns (bool) { return _remove(set._inner, bytes32(value)); } /** * @dev Returns true if the value is in the set. O(1). */ function contains(UintSet storage set, uint256 value) internal view returns (bool) { return _contains(set._inner, bytes32(value)); } /** * @dev Returns the number of values on the set. O(1). */ function length(UintSet storage set) internal view returns (uint256) { return _length(set._inner); } /** * @dev Returns the value stored at position `index` in the set. O(1). * * Note that there are no guarantees on the ordering of values inside the * array, and it may change when more values are added or removed. * * Requirements: * * - `index` must be strictly less than {length}. */ function at(UintSet storage set, uint256 index) internal view returns (uint256) { return uint256(_at(set._inner, index)); } /** * @dev Return the entire set in an array * * WARNING: This operation will copy the entire storage to memory, which can be quite expensive. This is designed * to mostly be used by view accessors that are queried without any gas fees. Developers should keep in mind that * this function has an unbounded cost, and using it as part of a state-changing function may render the function * uncallable if the set grows to a point where copying to memory consumes too much gas to fit in a block. */ function values(UintSet storage set) internal view returns (uint256[] memory) { bytes32[] memory store = _values(set._inner); uint256[] memory result; assembly { result := store } return result; } }
// SPDX-License-Identifier: MIT // OpenZeppelin Contracts v4.4.1 (security/Pausable.sol) pragma solidity ^0.8.0; import "../utils/Context.sol"; /** * @dev Contract module which allows children to implement an emergency stop * mechanism that can be triggered by an authorized account. * * This module is used through inheritance. It will make available the * modifiers `whenNotPaused` and `whenPaused`, which can be applied to * the functions of your contract. Note that they will not be pausable by * simply including this module, only once the modifiers are put in place. */ abstract contract Pausable is Context { /** * @dev Emitted when the pause is triggered by `account`. */ event Paused(address account); /** * @dev Emitted when the pause is lifted by `account`. */ event Unpaused(address account); bool private _paused; /** * @dev Initializes the contract in unpaused state. */ constructor() { _paused = false; } /** * @dev Returns true if the contract is paused, and false otherwise. */ function paused() public view virtual returns (bool) { return _paused; } /** * @dev Modifier to make a function callable only when the contract is not paused. * * Requirements: * * - The contract must not be paused. */ modifier whenNotPaused() { require(!paused(), "Pausable: paused"); _; } /** * @dev Modifier to make a function callable only when the contract is paused. * * Requirements: * * - The contract must be paused. */ modifier whenPaused() { require(paused(), "Pausable: not paused"); _; } /** * @dev Triggers stopped state. * * Requirements: * * - The contract must not be paused. */ function _pause() internal virtual whenNotPaused { _paused = true; emit Paused(_msgSender()); } /** * @dev Returns to normal state. * * Requirements: * * - The contract must be paused. */ function _unpause() internal virtual whenPaused { _paused = false; emit Unpaused(_msgSender()); } }
// SPDX-License-Identifier: MIT // OpenZeppelin Contracts v4.4.1 (access/Ownable.sol) pragma solidity ^0.8.0; import "../utils/Context.sol"; /** * @dev Contract module which provides a basic access control mechanism, where * there is an account (an owner) that can be granted exclusive access to * specific functions. * * By default, the owner account will be the one that deploys the contract. This * can later be changed with {transferOwnership}. * * This module is used through inheritance. It will make available the modifier * `onlyOwner`, which can be applied to your functions to restrict their use to * the owner. */ abstract contract Ownable is Context { address private _owner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); /** * @dev Initializes the contract setting the deployer as the initial owner. */ constructor() { _transferOwnership(_msgSender()); } /** * @dev Returns the address of the current owner. */ function owner() public view virtual returns (address) { return _owner; } /** * @dev Throws if called by any account other than the owner. */ modifier onlyOwner() { require(owner() == _msgSender(), "Ownable: caller is not the owner"); _; } /** * @dev Leaves the contract without owner. It will not be possible to call * `onlyOwner` functions anymore. Can only be called by the current owner. * * NOTE: Renouncing ownership will leave the contract without an owner, * thereby removing any functionality that is only available to the owner. */ function renounceOwnership() public virtual onlyOwner { _transferOwnership(address(0)); } /** * @dev Transfers ownership of the contract to a new account (`newOwner`). * Can only be called by the current owner. */ function transferOwnership(address newOwner) public virtual onlyOwner { require(newOwner != address(0), "Ownable: new owner is the zero address"); _transferOwnership(newOwner); } /** * @dev Transfers ownership of the contract to a new account (`newOwner`). * Internal function without access restriction. */ function _transferOwnership(address newOwner) internal virtual { address oldOwner = _owner; _owner = newOwner; emit OwnershipTransferred(oldOwner, newOwner); } }
// SPDX-License-Identifier: MIT // OpenZeppelin Contracts v4.4.1 (token/ERC1155/utils/ERC1155Receiver.sol) pragma solidity ^0.8.0; import "../IERC1155Receiver.sol"; import "../../../utils/introspection/ERC165.sol"; /** * @dev _Available since v3.1._ */ abstract contract ERC1155Receiver is ERC165, IERC1155Receiver { /** * @dev See {IERC165-supportsInterface}. */ function supportsInterface(bytes4 interfaceId) public view virtual override(ERC165, IERC165) returns (bool) { return interfaceId == type(IERC1155Receiver).interfaceId || super.supportsInterface(interfaceId); } }
// SPDX-License-Identifier: MIT // OpenZeppelin Contracts v4.4.1 (utils/introspection/IERC165.sol) pragma solidity ^0.8.0; /** * @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 v4.4.1 (utils/Context.sol) pragma solidity ^0.8.0; /** * @dev Provides information about the current execution context, including the * sender of the transaction and its data. While these are generally available * via msg.sender and msg.data, they should not be accessed in such a direct * manner, since when dealing with meta-transactions the account sending and * paying for execution may not be the actual sender (as far as an application * is concerned). * * This contract is only required for intermediate, library-like contracts. */ abstract contract Context { function _msgSender() internal view virtual returns (address) { return msg.sender; } function _msgData() internal view virtual returns (bytes calldata) { return msg.data; } }
// SPDX-License-Identifier: MIT // OpenZeppelin Contracts v4.4.1 (utils/introspection/ERC165.sol) pragma solidity ^0.8.0; import "./IERC165.sol"; /** * @dev Implementation of the {IERC165} interface. * * Contracts that want to implement ERC165 should inherit from this contract and override {supportsInterface} to check * for the additional interface id that will be supported. For example: * * ```solidity * function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) { * return interfaceId == type(MyInterface).interfaceId || super.supportsInterface(interfaceId); * } * ``` * * Alternatively, {ERC165Storage} provides an easier to use but more expensive implementation. */ abstract contract ERC165 is IERC165 { /** * @dev See {IERC165-supportsInterface}. */ function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) { return interfaceId == type(IERC165).interfaceId; } }
{ "optimizer": { "enabled": false, "runs": 200 }, "outputSelection": { "*": { "*": [ "evm.bytecode", "evm.deployedBytecode", "devdoc", "userdoc", "metadata", "abi" ] } } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"}],"name":"Paused","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"}],"name":"Unpaused","type":"event"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"amountDeposited","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"}],"name":"checkAuth","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"checkAuth2","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"depositERC1155","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"erc1155Address","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"},{"internalType":"uint256[]","name":"","type":"uint256[]"},{"internalType":"uint256[]","name":"","type":"uint256[]"},{"internalType":"bytes","name":"","type":"bytes"}],"name":"onERC1155BatchReceived","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"bytes","name":"","type":"bytes"}],"name":"onERC1155Received","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pause","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"paused","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newERC1155Address","type":"address"}],"name":"setERC1155Address","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"unpause","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"withdrawERC1555","outputs":[],"stateMutability":"nonpayable","type":"function"}]
Contract Creation Code
60806040527338a6fd7148c4900338e903258b5e289dfa995e2e600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555034801561006557600080fd5b506100826100776100a860201b60201c565b6100b060201b60201c565b60008060146101000a81548160ff02191690831515021790555060018081905550610174565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6118f7806101836000396000f3fe608060405234801561001057600080fd5b50600436106101005760003560e01c8063715018a611610097578063d836fc6f11610066578063d836fc6f14610263578063f23a6e611461027f578063f2fde38b146102af578063f4f0e1ae146102cb57610100565b8063715018a6146102015780638456cb591461020b5780638da5cb5b14610215578063bc197c811461023357610100565b80632935b2a8116100d35780632935b2a81461018d5780633f4ba83a146101a95780634b165090146101b35780635c975abb146101e357610100565b806301ffc9a71461010557806305142002146101355780630529bd2d146101535780632200e6a31461016f575b600080fd5b61011f600480360381019061011a91906111ab565b6102fb565b60405161012c91906113bc565b60405180910390f35b61013d610375565b60405161014a9190611349565b60405180910390f35b61016d600480360381019061016891906111d8565b61039b565b005b6101776105a7565b60405161018491906113bc565b60405180910390f35b6101a760048036038101906101a291906111d8565b610601565b005b6101b161078b565b005b6101cd60048036038101906101c89190611018565b610811565b6040516101da91906113bc565b60405180910390f35b6101eb61086d565b6040516101f891906113bc565b60405180910390f35b610209610883565b005b61021361090b565b005b61021d610991565b60405161022a9190611349565b60405180910390f35b61024d60048036038101906102489190611045565b6109ba565b60405161025a91906113d7565b60405180910390f35b61027d60048036038101906102789190611018565b6109cf565b005b61029960048036038101906102949190611114565b610b2c565b6040516102a691906113d7565b60405180910390f35b6102c960048036038101906102c49190611018565b610b41565b005b6102e560048036038101906102e09190611018565b610c39565b6040516102f291906114b2565b60405180910390f35b60007f4e2312e0000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061036e575061036d82610c51565b5b9050919050565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6103a361086d565b156103e3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103da90611432565b60405180910390fd5b60026001541415610429576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161042090611472565b60405180910390fd5b600260018190555080600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410156104b3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104aa90611492565b60405180910390fd5b80600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461050291906115c7565b92505081905550600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f242432a303385856040518563ffffffff1660e01b815260040161056a9493929190611364565b600060405180830381600087803b15801561058457600080fd5b505af1158015610598573d6000803e3d6000fd5b50505050600180819055505050565b600080600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205411156105f957600190506105fe565b600090505b90565b61060961086d565b15610649576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161064090611432565b60405180910390fd5b6002600154141561068f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161068690611472565b60405180910390fd5b6002600181905550600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f242432a333085856040518563ffffffff1660e01b81526004016106f89493929190611364565b600060405180830381600087803b15801561071257600080fd5b505af1158015610726573d6000803e3d6000fd5b5050505080600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546107799190611571565b92505081905550600180819055505050565b610793610cbb565b73ffffffffffffffffffffffffffffffffffffffff166107b1610991565b73ffffffffffffffffffffffffffffffffffffffff1614610807576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107fe90611452565b60405180910390fd5b61080f610cc3565b565b600080600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205411156108635760019050610868565b600090505b919050565b60008060149054906101000a900460ff16905090565b61088b610cbb565b73ffffffffffffffffffffffffffffffffffffffff166108a9610991565b73ffffffffffffffffffffffffffffffffffffffff16146108ff576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108f690611452565b60405180910390fd5b6109096000610d64565b565b610913610cbb565b73ffffffffffffffffffffffffffffffffffffffff16610931610991565b73ffffffffffffffffffffffffffffffffffffffff1614610987576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161097e90611452565b60405180910390fd5b61098f610e28565b565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600063bc197c8160e01b905095945050505050565b6109d761086d565b15610a17576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a0e90611432565b60405180910390fd5b610a1f610cbb565b73ffffffffffffffffffffffffffffffffffffffff16610a3d610991565b73ffffffffffffffffffffffffffffffffffffffff1614610a93576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a8a90611452565b60405180910390fd5b60026001541415610ad9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ad090611472565b60405180910390fd5b600260018190555080600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001808190555050565b600063f23a6e6160e01b905095945050505050565b610b49610cbb565b73ffffffffffffffffffffffffffffffffffffffff16610b67610991565b73ffffffffffffffffffffffffffffffffffffffff1614610bbd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bb490611452565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610c2d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c2490611412565b60405180910390fd5b610c3681610d64565b50565b60036020528060005260406000206000915090505481565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b600033905090565b610ccb61086d565b610d0a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d01906113f2565b60405180910390fd5b60008060146101000a81548160ff0219169083151502179055507f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa610d4d610cbb565b604051610d5a9190611349565b60405180910390a1565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b610e3061086d565b15610e70576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e6790611432565b60405180910390fd5b6001600060146101000a81548160ff0219169083151502179055507f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258610eb4610cbb565b604051610ec19190611349565b60405180910390a1565b6000610ede610ed9846114f2565b6114cd565b90508083825260208201905082856020860282011115610f0157610f00611712565b5b60005b85811015610f315781610f178882611003565b845260208401935060208301925050600181019050610f04565b5050509392505050565b6000610f4e610f498461151e565b6114cd565b905082815260208101848484011115610f6a57610f69611717565b5b610f7584828561166f565b509392505050565b600081359050610f8c8161187c565b92915050565b600082601f830112610fa757610fa661170d565b5b8135610fb7848260208601610ecb565b91505092915050565b600081359050610fcf81611893565b92915050565b600082601f830112610fea57610fe961170d565b5b8135610ffa848260208601610f3b565b91505092915050565b600081359050611012816118aa565b92915050565b60006020828403121561102e5761102d611721565b5b600061103c84828501610f7d565b91505092915050565b600080600080600060a0868803121561106157611060611721565b5b600061106f88828901610f7d565b955050602061108088828901610f7d565b945050604086013567ffffffffffffffff8111156110a1576110a061171c565b5b6110ad88828901610f92565b935050606086013567ffffffffffffffff8111156110ce576110cd61171c565b5b6110da88828901610f92565b925050608086013567ffffffffffffffff8111156110fb576110fa61171c565b5b61110788828901610fd5565b9150509295509295909350565b600080600080600060a086880312156111305761112f611721565b5b600061113e88828901610f7d565b955050602061114f88828901610f7d565b945050604061116088828901611003565b935050606061117188828901611003565b925050608086013567ffffffffffffffff8111156111925761119161171c565b5b61119e88828901610fd5565b9150509295509295909350565b6000602082840312156111c1576111c0611721565b5b60006111cf84828501610fc0565b91505092915050565b600080604083850312156111ef576111ee611721565b5b60006111fd85828601611003565b925050602061120e85828601611003565b9150509250929050565b611221816115fb565b82525050565b6112308161160d565b82525050565b61123f81611619565b82525050565b6000611252601483611560565b915061125d82611737565b602082019050919050565b6000611275602683611560565b915061128082611760565b604082019050919050565b6000611298601083611560565b91506112a3826117af565b602082019050919050565b60006112bb602083611560565b91506112c6826117d8565b602082019050919050565b60006112de60008361154f565b91506112e982611801565b600082019050919050565b6000611301601f83611560565b915061130c82611804565b602082019050919050565b6000611324602283611560565b915061132f8261182d565b604082019050919050565b61134381611665565b82525050565b600060208201905061135e6000830184611218565b92915050565b600060a0820190506113796000830187611218565b6113866020830186611218565b611393604083018561133a565b6113a0606083018461133a565b81810360808301526113b1816112d1565b905095945050505050565b60006020820190506113d16000830184611227565b92915050565b60006020820190506113ec6000830184611236565b92915050565b6000602082019050818103600083015261140b81611245565b9050919050565b6000602082019050818103600083015261142b81611268565b9050919050565b6000602082019050818103600083015261144b8161128b565b9050919050565b6000602082019050818103600083015261146b816112ae565b9050919050565b6000602082019050818103600083015261148b816112f4565b9050919050565b600060208201905081810360008301526114ab81611317565b9050919050565b60006020820190506114c7600083018461133a565b92915050565b60006114d76114e8565b90506114e3828261167e565b919050565b6000604051905090565b600067ffffffffffffffff82111561150d5761150c6116de565b5b602082029050602081019050919050565b600067ffffffffffffffff821115611539576115386116de565b5b61154282611726565b9050602081019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b600061157c82611665565b915061158783611665565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156115bc576115bb6116af565b5b828201905092915050565b60006115d282611665565b91506115dd83611665565b9250828210156115f0576115ef6116af565b5b828203905092915050565b600061160682611645565b9050919050565b60008115159050919050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b82818337600083830152505050565b61168782611726565b810181811067ffffffffffffffff821117156116a6576116a56116de565b5b80604052505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f5061757361626c653a206e6f7420706175736564000000000000000000000000600082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f5061757361626c653a2070617573656400000000000000000000000000000000600082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b50565b7f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00600082015250565b7f596f7520446f6e27742048617665205468697320416d6f756e74205374616b6960008201527f6e67000000000000000000000000000000000000000000000000000000000000602082015250565b611885816115fb565b811461189057600080fd5b50565b61189c81611619565b81146118a757600080fd5b50565b6118b381611665565b81146118be57600080fd5b5056fea26469706673582212205d46e2b983d9c87b9395e16791f185a73664042e7c80d4faf389b091606b147664736f6c63430008070033
Deployed Bytecode
0x608060405234801561001057600080fd5b50600436106101005760003560e01c8063715018a611610097578063d836fc6f11610066578063d836fc6f14610263578063f23a6e611461027f578063f2fde38b146102af578063f4f0e1ae146102cb57610100565b8063715018a6146102015780638456cb591461020b5780638da5cb5b14610215578063bc197c811461023357610100565b80632935b2a8116100d35780632935b2a81461018d5780633f4ba83a146101a95780634b165090146101b35780635c975abb146101e357610100565b806301ffc9a71461010557806305142002146101355780630529bd2d146101535780632200e6a31461016f575b600080fd5b61011f600480360381019061011a91906111ab565b6102fb565b60405161012c91906113bc565b60405180910390f35b61013d610375565b60405161014a9190611349565b60405180910390f35b61016d600480360381019061016891906111d8565b61039b565b005b6101776105a7565b60405161018491906113bc565b60405180910390f35b6101a760048036038101906101a291906111d8565b610601565b005b6101b161078b565b005b6101cd60048036038101906101c89190611018565b610811565b6040516101da91906113bc565b60405180910390f35b6101eb61086d565b6040516101f891906113bc565b60405180910390f35b610209610883565b005b61021361090b565b005b61021d610991565b60405161022a9190611349565b60405180910390f35b61024d60048036038101906102489190611045565b6109ba565b60405161025a91906113d7565b60405180910390f35b61027d60048036038101906102789190611018565b6109cf565b005b61029960048036038101906102949190611114565b610b2c565b6040516102a691906113d7565b60405180910390f35b6102c960048036038101906102c49190611018565b610b41565b005b6102e560048036038101906102e09190611018565b610c39565b6040516102f291906114b2565b60405180910390f35b60007f4e2312e0000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061036e575061036d82610c51565b5b9050919050565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6103a361086d565b156103e3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103da90611432565b60405180910390fd5b60026001541415610429576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161042090611472565b60405180910390fd5b600260018190555080600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410156104b3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104aa90611492565b60405180910390fd5b80600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461050291906115c7565b92505081905550600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f242432a303385856040518563ffffffff1660e01b815260040161056a9493929190611364565b600060405180830381600087803b15801561058457600080fd5b505af1158015610598573d6000803e3d6000fd5b50505050600180819055505050565b600080600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205411156105f957600190506105fe565b600090505b90565b61060961086d565b15610649576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161064090611432565b60405180910390fd5b6002600154141561068f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161068690611472565b60405180910390fd5b6002600181905550600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f242432a333085856040518563ffffffff1660e01b81526004016106f89493929190611364565b600060405180830381600087803b15801561071257600080fd5b505af1158015610726573d6000803e3d6000fd5b5050505080600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546107799190611571565b92505081905550600180819055505050565b610793610cbb565b73ffffffffffffffffffffffffffffffffffffffff166107b1610991565b73ffffffffffffffffffffffffffffffffffffffff1614610807576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107fe90611452565b60405180910390fd5b61080f610cc3565b565b600080600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205411156108635760019050610868565b600090505b919050565b60008060149054906101000a900460ff16905090565b61088b610cbb565b73ffffffffffffffffffffffffffffffffffffffff166108a9610991565b73ffffffffffffffffffffffffffffffffffffffff16146108ff576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108f690611452565b60405180910390fd5b6109096000610d64565b565b610913610cbb565b73ffffffffffffffffffffffffffffffffffffffff16610931610991565b73ffffffffffffffffffffffffffffffffffffffff1614610987576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161097e90611452565b60405180910390fd5b61098f610e28565b565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600063bc197c8160e01b905095945050505050565b6109d761086d565b15610a17576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a0e90611432565b60405180910390fd5b610a1f610cbb565b73ffffffffffffffffffffffffffffffffffffffff16610a3d610991565b73ffffffffffffffffffffffffffffffffffffffff1614610a93576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a8a90611452565b60405180910390fd5b60026001541415610ad9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ad090611472565b60405180910390fd5b600260018190555080600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001808190555050565b600063f23a6e6160e01b905095945050505050565b610b49610cbb565b73ffffffffffffffffffffffffffffffffffffffff16610b67610991565b73ffffffffffffffffffffffffffffffffffffffff1614610bbd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bb490611452565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610c2d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c2490611412565b60405180910390fd5b610c3681610d64565b50565b60036020528060005260406000206000915090505481565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b600033905090565b610ccb61086d565b610d0a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d01906113f2565b60405180910390fd5b60008060146101000a81548160ff0219169083151502179055507f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa610d4d610cbb565b604051610d5a9190611349565b60405180910390a1565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b610e3061086d565b15610e70576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e6790611432565b60405180910390fd5b6001600060146101000a81548160ff0219169083151502179055507f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258610eb4610cbb565b604051610ec19190611349565b60405180910390a1565b6000610ede610ed9846114f2565b6114cd565b90508083825260208201905082856020860282011115610f0157610f00611712565b5b60005b85811015610f315781610f178882611003565b845260208401935060208301925050600181019050610f04565b5050509392505050565b6000610f4e610f498461151e565b6114cd565b905082815260208101848484011115610f6a57610f69611717565b5b610f7584828561166f565b509392505050565b600081359050610f8c8161187c565b92915050565b600082601f830112610fa757610fa661170d565b5b8135610fb7848260208601610ecb565b91505092915050565b600081359050610fcf81611893565b92915050565b600082601f830112610fea57610fe961170d565b5b8135610ffa848260208601610f3b565b91505092915050565b600081359050611012816118aa565b92915050565b60006020828403121561102e5761102d611721565b5b600061103c84828501610f7d565b91505092915050565b600080600080600060a0868803121561106157611060611721565b5b600061106f88828901610f7d565b955050602061108088828901610f7d565b945050604086013567ffffffffffffffff8111156110a1576110a061171c565b5b6110ad88828901610f92565b935050606086013567ffffffffffffffff8111156110ce576110cd61171c565b5b6110da88828901610f92565b925050608086013567ffffffffffffffff8111156110fb576110fa61171c565b5b61110788828901610fd5565b9150509295509295909350565b600080600080600060a086880312156111305761112f611721565b5b600061113e88828901610f7d565b955050602061114f88828901610f7d565b945050604061116088828901611003565b935050606061117188828901611003565b925050608086013567ffffffffffffffff8111156111925761119161171c565b5b61119e88828901610fd5565b9150509295509295909350565b6000602082840312156111c1576111c0611721565b5b60006111cf84828501610fc0565b91505092915050565b600080604083850312156111ef576111ee611721565b5b60006111fd85828601611003565b925050602061120e85828601611003565b9150509250929050565b611221816115fb565b82525050565b6112308161160d565b82525050565b61123f81611619565b82525050565b6000611252601483611560565b915061125d82611737565b602082019050919050565b6000611275602683611560565b915061128082611760565b604082019050919050565b6000611298601083611560565b91506112a3826117af565b602082019050919050565b60006112bb602083611560565b91506112c6826117d8565b602082019050919050565b60006112de60008361154f565b91506112e982611801565b600082019050919050565b6000611301601f83611560565b915061130c82611804565b602082019050919050565b6000611324602283611560565b915061132f8261182d565b604082019050919050565b61134381611665565b82525050565b600060208201905061135e6000830184611218565b92915050565b600060a0820190506113796000830187611218565b6113866020830186611218565b611393604083018561133a565b6113a0606083018461133a565b81810360808301526113b1816112d1565b905095945050505050565b60006020820190506113d16000830184611227565b92915050565b60006020820190506113ec6000830184611236565b92915050565b6000602082019050818103600083015261140b81611245565b9050919050565b6000602082019050818103600083015261142b81611268565b9050919050565b6000602082019050818103600083015261144b8161128b565b9050919050565b6000602082019050818103600083015261146b816112ae565b9050919050565b6000602082019050818103600083015261148b816112f4565b9050919050565b600060208201905081810360008301526114ab81611317565b9050919050565b60006020820190506114c7600083018461133a565b92915050565b60006114d76114e8565b90506114e3828261167e565b919050565b6000604051905090565b600067ffffffffffffffff82111561150d5761150c6116de565b5b602082029050602081019050919050565b600067ffffffffffffffff821115611539576115386116de565b5b61154282611726565b9050602081019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b600061157c82611665565b915061158783611665565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156115bc576115bb6116af565b5b828201905092915050565b60006115d282611665565b91506115dd83611665565b9250828210156115f0576115ef6116af565b5b828203905092915050565b600061160682611645565b9050919050565b60008115159050919050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b82818337600083830152505050565b61168782611726565b810181811067ffffffffffffffff821117156116a6576116a56116de565b5b80604052505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f5061757361626c653a206e6f7420706175736564000000000000000000000000600082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f5061757361626c653a2070617573656400000000000000000000000000000000600082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b50565b7f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00600082015250565b7f596f7520446f6e27742048617665205468697320416d6f756e74205374616b6960008201527f6e67000000000000000000000000000000000000000000000000000000000000602082015250565b611885816115fb565b811461189057600080fd5b50565b61189c81611619565b81146118a757600080fd5b50565b6118b381611665565b81146118be57600080fd5b5056fea26469706673582212205d46e2b983d9c87b9395e16791f185a73664042e7c80d4faf389b091606b147664736f6c63430008070033
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 34 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|
Loading...
Loading
Loading...
Loading
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.