More Info
Private Name Tags
ContractCreator
Latest 25 from a total of 4,984 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Burn Print | 21466988 | 36 hrs ago | IN | 0 ETH | 0.00122803 | ||||
Burn Print | 21383932 | 13 days ago | IN | 0 ETH | 0.00075044 | ||||
Burn Print | 21340817 | 19 days ago | IN | 0 ETH | 0.00078166 | ||||
Burn Print | 21333627 | 20 days ago | IN | 0 ETH | 0.00358687 | ||||
Burn Print | 21327849 | 20 days ago | IN | 0 ETH | 0.00073379 | ||||
Burn Print | 21327810 | 20 days ago | IN | 0 ETH | 0.00084716 | ||||
Burn Print | 21327791 | 20 days ago | IN | 0 ETH | 0.00074816 | ||||
Burn Print | 21327750 | 20 days ago | IN | 0 ETH | 0.00077122 | ||||
Burn Print | 21327690 | 20 days ago | IN | 0 ETH | 0.00073234 | ||||
Burn Print | 21327690 | 20 days ago | IN | 0 ETH | 0.00075471 | ||||
Burn Print | 21327682 | 20 days ago | IN | 0 ETH | 0.00074193 | ||||
Burn Print | 21327642 | 20 days ago | IN | 0 ETH | 0.0008044 | ||||
Burn Print | 21287427 | 26 days ago | IN | 0 ETH | 0.00119216 | ||||
Burn Print | 21166910 | 43 days ago | IN | 0 ETH | 0.00472001 | ||||
Burn Print | 21166896 | 43 days ago | IN | 0 ETH | 0.0053205 | ||||
Burn Print | 20711824 | 106 days ago | IN | 0 ETH | 0.00032468 | ||||
Burn Print | 20413385 | 148 days ago | IN | 0 ETH | 0.00046154 | ||||
Burn Print | 20183192 | 180 days ago | IN | 0 ETH | 0.0008008 | ||||
Burn Print | 20170380 | 182 days ago | IN | 0 ETH | 0.00091378 | ||||
Burn Print | 20170370 | 182 days ago | IN | 0 ETH | 0.00089934 | ||||
Burn Print | 20170365 | 182 days ago | IN | 0 ETH | 0.00095251 | ||||
Burn Print | 20123509 | 189 days ago | IN | 0 ETH | 0.00047997 | ||||
Burn Print | 20093271 | 193 days ago | IN | 0 ETH | 0.00050851 | ||||
Burn Print | 19777674 | 237 days ago | IN | 0 ETH | 0.00085543 | ||||
Mint Print | 19777653 | 237 days ago | IN | 0.601 ETH | 0.00114213 |
Latest 25 internal transactions (View All)
Advanced mode:
Parent Transaction Hash | Block |
From
|
To
|
|||
---|---|---|---|---|---|---|
21466988 | 36 hrs ago | 0.5994 ETH | ||||
21466988 | 36 hrs ago | 0.5994 ETH | ||||
21333627 | 20 days ago | 0.6921 ETH | ||||
21333627 | 20 days ago | 0.6921 ETH | ||||
21287427 | 26 days ago | 0.6291 ETH | ||||
21287427 | 26 days ago | 0.6291 ETH | ||||
21166910 | 43 days ago | 0.828 ETH | ||||
21166910 | 43 days ago | 0.828 ETH | ||||
21166896 | 43 days ago | 0.5121 ETH | ||||
21166896 | 43 days ago | 0.5121 ETH | ||||
20711824 | 106 days ago | 0.7245 ETH | ||||
20711824 | 106 days ago | 0.7245 ETH | ||||
20413385 | 148 days ago | 0.5697 ETH | ||||
20413385 | 148 days ago | 0.5697 ETH | ||||
20183192 | 180 days ago | 0.6921 ETH | ||||
20183192 | 180 days ago | 0.6921 ETH | ||||
20170380 | 182 days ago | 0.7245 ETH | ||||
20170380 | 182 days ago | 0.7245 ETH | ||||
20170370 | 182 days ago | 0.5994 ETH | ||||
20170370 | 182 days ago | 0.5994 ETH | ||||
20170365 | 182 days ago | 0.5409 ETH | ||||
20170365 | 182 days ago | 0.5409 ETH | ||||
20123509 | 189 days ago | 0.5994 ETH | ||||
20123509 | 189 days ago | 0.5994 ETH | ||||
20093271 | 193 days ago | 0.7578 ETH |
Loading...
Loading
Contract Name:
PrintingPress
Compiler Version
v0.7.6+commit.7338295f
Optimization Enabled:
Yes with 200 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity Standard Json-Input format)
// SPDX-License-Identifier: MIT pragma solidity >=0.6.0 <0.8.0; import "@openzeppelin/contracts/access/Ownable.sol"; import "@openzeppelin/contracts/math/SafeMath.sol"; import "@openzeppelin/contracts/token/ERC1155/ERC1155Holder.sol"; import '@openzeppelin/contracts/utils/ReentrancyGuard.sol'; import "./IEulerBeats.sol"; import "hardhat/console.sol"; // The printing press for the EulerBeats token contract. This contract is responsible // for minting and burning EulerBeat prints. // To be functional, this must be set as the owner of the original EulerBeats contract, // and the EulerBeats contract should be disabled. After that, this is the only // way to print those fresh beats. contract PrintingPress is Ownable, ERC1155Holder, ReentrancyGuard { using SafeMath for uint256; /***********************************| | Variables and Events | |__________________________________*/ bool public burnEnabled = false; bool public printEnabled = false; // Supply restriction on seeds/original NFTs uint256 constant MAX_SEEDS_SUPPLY = 27; // The 40 bit is flag to distinguish prints - 1 for print uint256 constant PRINTS_FLAG_BIT = 1 << 39; // PrintingPress EulerBeats wrapper specific storage address public EulerBeats; mapping (uint => uint) public seedToPrintId; /** * @dev Function to return the seedIds in an iterable array of uints */ function getSeedIds() public pure returns (uint256[MAX_SEEDS_SUPPLY] memory seedIds){ seedIds = [ uint256(21575894274), uint256(18052613891), uint256(12918588162), uint256(21760049923), uint256(22180136451), uint256(8926004995), uint256(22364095747), uint256(17784178691), uint256(554240256), uint256(17465084160), uint256(13825083651), uint256(12935627264), uint256(8925938433), uint256(4933026051), uint256(8673888000), uint256(13439075074), uint256(13371638787), uint256(17750625027), uint256(21592343040), uint256(4916052483), uint256(4395697411), uint256(13556253699), uint256(470419715), uint256(17800760067), uint256(9193916675), uint256(9395767298), uint256(22314157057) ]; } constructor(address _parent) { EulerBeats = _parent; uint256[MAX_SEEDS_SUPPLY] memory seedIds = getSeedIds(); for (uint256 i = 0; i < MAX_SEEDS_SUPPLY; i++) { // Set the valid original seeds and hard-code their corresponding print tokenId seedToPrintId[seedIds[i]] = getPrintTokenIdFromSeed(seedIds[i]); } } /***********************************| | User Interactions | |__________________________________*/ /** * @dev Function to correct a seedToOwner value if incorrect, before royalty paid * @param seed The NFT id to mint print of * @param _owner The current on-chain owner of the seed */ function ensureEulerBeatsSeedOwner(uint256 seed, address _owner) public { require(seedToPrintId[seed] > 0, "Seed does not exist"); require(IEulerBeats(EulerBeats).balanceOf(_owner, seed) == 1, "Incorrect seed owner"); address registeredOwner = IEulerBeats(EulerBeats).seedToOwner(seed); if (registeredOwner != _owner) { IEulerBeats(EulerBeats).safeTransferFrom(address(this), _owner, seed, 0, hex""); require(IEulerBeats(EulerBeats).seedToOwner(seed) == _owner, "Invalid seed owner"); } } /** * @dev Function to mint prints from an existing seed. Msg.value must be sufficient. * @param seed The NFT id to mint print of * @param _owner The current on-chain owner of the seed */ function mintPrint(uint256 seed, address payable _owner) public payable nonReentrant returns (uint256) { require(printEnabled, "Printing is disabled"); // Record initial balance minus msg.value (difference to be refunded to user post-print) uint preCallBalance = address(this).balance.sub(msg.value); // Test that seed is valid require(seedToPrintId[seed] > 0, "Seed does not exist"); // Verify owner of seed & ensure royalty ownership ensureEulerBeatsSeedOwner(seed, _owner); // Get print tokenId from seed uint256 tokenId = seedToPrintId[seed]; // Enable EB.mintPrint IEulerBeats(EulerBeats).setEnabled(true); // EB.mintPrint(), let EB check price and refund to address(this) IEulerBeats(EulerBeats).mintPrint{value: msg.value}(seed); // Disable EB.mintPrint IEulerBeats(EulerBeats).setEnabled(false); // Transfer print to msg.sender IEulerBeats(EulerBeats).safeTransferFrom(address(this), msg.sender, tokenId, 1, hex""); // Send to user difference between current and preCallBalance if nonzero amt uint refundBalance = address(this).balance.sub(preCallBalance); if (refundBalance > 0) { (bool success, ) = msg.sender.call{value: refundBalance}(""); require(success, "Refund payment failed"); } return tokenId; } /** * @dev Function to burn a print * @param seed The seed for the print to burn. * @param minimumSupply The minimum token supply for burn to succeed, this is a way to set slippage. * Set to 1 to allow burn to go through no matter what the price is. */ function burnPrint(uint256 seed, uint256 minimumSupply) public nonReentrant { require(burnEnabled, "Burning is disabled"); uint startBalance = address(this).balance; // Check that seed is one of hard-coded 27 require(seedToPrintId[seed] > 0, "Seed does not exist"); // Get token id for prints uint256 tokenId = seedToPrintId[seed]; // Transfer 1 EB print @ tokenID from msg.sender to this contract (requires approval) IEulerBeats(EulerBeats).safeTransferFrom(msg.sender, address(this), tokenId, 1, hex""); // Enable EulerBeats IEulerBeats(EulerBeats).setEnabled(true); // Burn print on v1, should receive the funds here IEulerBeats(EulerBeats).burnPrint(seed, minimumSupply); // Disable EulerBeats IEulerBeats(EulerBeats).setEnabled(false); (bool success, ) = msg.sender.call{value: address(this).balance.sub(startBalance)}(""); require(success, "Refund payment failed"); } /***********************************| | Admin | |__________________________________*/ /** * Should never be a balance here, only via selfdestruct * @dev Withdraw earned funds from original Nft sales and print fees. Cannot withdraw the reserve funds. */ function withdraw() public onlyOwner { msg.sender.transfer(address(this).balance); } /** * @dev Function to enable/disable printing * @param _enabled The flag to turn printing on or off */ function setPrintEnabled(bool _enabled) public onlyOwner { printEnabled = _enabled; } /** * @dev Function to enable/disable burning prints * @param _enabled The flag to turn burning on or off */ function setBurnEnabled(bool _enabled) public onlyOwner { burnEnabled = _enabled; } /** * @dev The token id for the prints contains the seed/original NFT id * @param seed The seed/original NFT token id */ function getPrintTokenIdFromSeed(uint256 seed) internal pure returns (uint256) { return seed | PRINTS_FLAG_BIT; } /***********************************| | Admin - Passthrough | |__________________________________*/ // methods that can access onlyOwner methods of EB contract, must be onlyOwner /** * @dev Function to transfer ownership of the EB contract * @param newowner Address to set as the new owner of EB */ function transferOwnershipEB(address newowner) public onlyOwner { IEulerBeats(EulerBeats).transferOwnership(newowner); } /** * @dev Function to enable/disable mintPrint and burnPrint on EB contract * @param enabled Bool value for setting whether EB is enabled */ function setEnabledEB(bool enabled) public onlyOwner { IEulerBeats(EulerBeats).setEnabled(enabled); } /** * @dev Function to withdraw Treum fee balance from EB contract */ function withdrawEB() public onlyOwner { IEulerBeats(EulerBeats).withdraw(); msg.sender.transfer(address(this).balance); } /** * @dev Set the base metadata uri on the EB contract * @param newuri The new base uri */ function setURIEB(string memory newuri) public onlyOwner { IEulerBeats(EulerBeats).setURI(newuri); } /** * @dev Reset script count in EB */ function resetScriptCountEB() public onlyOwner { IEulerBeats(EulerBeats).resetScriptCount(); } /** * @dev Add script string to EB * @param _script String chunk of EB music gen code */ function addScriptEB(string memory _script) public onlyOwner { IEulerBeats(EulerBeats).addScript(_script); } /** * @dev Update script at index * @param _script String chunk of EB music gen code * @param index Index of the script which will be updated */ function updateScriptEB(string memory _script, uint256 index) public onlyOwner { IEulerBeats(EulerBeats).updateScript(_script, index); } /** * @dev Locks ability to check scripts in EB, this is irreversible * @param locked Bool value whether to lock the script updates */ function setLockedEB(bool locked) public onlyOwner { IEulerBeats(EulerBeats).setLocked(locked); } // Need payable fallback to receive ETH from burns, withdraw, etc receive() external payable { // WARNING: this does not prevent selfdestruct ETH transfers require(msg.sender == EulerBeats, "Only EulerBeats allowed to send ETH here"); } }
// SPDX-License-Identifier: MIT pragma solidity >=0.6.0 <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 () internal { address msgSender = _msgSender(); _owner = msgSender; emit OwnershipTransferred(address(0), 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 { emit OwnershipTransferred(_owner, address(0)); _owner = 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"); emit OwnershipTransferred(_owner, newOwner); _owner = newOwner; } }
// SPDX-License-Identifier: MIT pragma solidity >=0.6.0 <0.8.0; /** * @dev Wrappers over Solidity's arithmetic operations with added overflow * checks. * * Arithmetic operations in Solidity wrap on overflow. This can easily result * in bugs, because programmers usually assume that an overflow raises an * error, which is the standard behavior in high level programming languages. * `SafeMath` restores this intuition by reverting the transaction when an * operation overflows. * * Using this library instead of the unchecked operations eliminates an entire * class of bugs, so it's recommended to use it always. */ library SafeMath { /** * @dev Returns the addition of two unsigned integers, with an overflow flag. * * _Available since v3.4._ */ function tryAdd(uint256 a, uint256 b) internal pure returns (bool, uint256) { uint256 c = a + b; if (c < a) return (false, 0); return (true, c); } /** * @dev Returns the substraction of two unsigned integers, with an overflow flag. * * _Available since v3.4._ */ function trySub(uint256 a, uint256 b) internal pure returns (bool, uint256) { if (b > a) return (false, 0); return (true, a - b); } /** * @dev Returns the multiplication of two unsigned integers, with an overflow flag. * * _Available since v3.4._ */ function tryMul(uint256 a, uint256 b) internal pure returns (bool, uint256) { // Gas optimization: this is cheaper than requiring 'a' not being zero, but the // benefit is lost if 'b' is also tested. // See: https://github.com/OpenZeppelin/openzeppelin-contracts/pull/522 if (a == 0) return (true, 0); uint256 c = a * b; if (c / a != b) return (false, 0); return (true, c); } /** * @dev Returns the division of two unsigned integers, with a division by zero flag. * * _Available since v3.4._ */ function tryDiv(uint256 a, uint256 b) internal pure returns (bool, uint256) { if (b == 0) return (false, 0); return (true, a / b); } /** * @dev Returns the remainder of dividing two unsigned integers, with a division by zero flag. * * _Available since v3.4._ */ function tryMod(uint256 a, uint256 b) internal pure returns (bool, uint256) { if (b == 0) return (false, 0); return (true, a % b); } /** * @dev Returns the addition of two unsigned integers, reverting on * overflow. * * Counterpart to Solidity's `+` operator. * * Requirements: * * - Addition cannot overflow. */ function add(uint256 a, uint256 b) internal pure returns (uint256) { uint256 c = a + b; require(c >= a, "SafeMath: addition overflow"); return c; } /** * @dev Returns the subtraction of two unsigned integers, reverting on * overflow (when the result is negative). * * Counterpart to Solidity's `-` operator. * * Requirements: * * - Subtraction cannot overflow. */ function sub(uint256 a, uint256 b) internal pure returns (uint256) { require(b <= a, "SafeMath: subtraction overflow"); return a - b; } /** * @dev Returns the multiplication of two unsigned integers, reverting on * overflow. * * Counterpart to Solidity's `*` operator. * * Requirements: * * - Multiplication cannot overflow. */ function mul(uint256 a, uint256 b) internal pure returns (uint256) { if (a == 0) return 0; uint256 c = a * b; require(c / a == b, "SafeMath: multiplication overflow"); return c; } /** * @dev Returns the integer division of two unsigned integers, reverting on * division by zero. The result is rounded towards zero. * * Counterpart to Solidity's `/` operator. Note: this function uses a * `revert` opcode (which leaves remaining gas untouched) while Solidity * uses an invalid opcode to revert (consuming all remaining gas). * * Requirements: * * - The divisor cannot be zero. */ function div(uint256 a, uint256 b) internal pure returns (uint256) { require(b > 0, "SafeMath: division by zero"); return a / b; } /** * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo), * reverting when dividing by zero. * * Counterpart to Solidity's `%` operator. This function uses a `revert` * opcode (which leaves remaining gas untouched) while Solidity uses an * invalid opcode to revert (consuming all remaining gas). * * Requirements: * * - The divisor cannot be zero. */ function mod(uint256 a, uint256 b) internal pure returns (uint256) { require(b > 0, "SafeMath: modulo by zero"); return a % b; } /** * @dev Returns the subtraction of two unsigned integers, reverting with custom message on * overflow (when the result is negative). * * CAUTION: This function is deprecated because it requires allocating memory for the error * message unnecessarily. For custom revert reasons use {trySub}. * * Counterpart to Solidity's `-` operator. * * Requirements: * * - Subtraction cannot overflow. */ function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b <= a, errorMessage); return a - b; } /** * @dev Returns the integer division of two unsigned integers, reverting with custom message on * division by zero. The result is rounded towards zero. * * CAUTION: This function is deprecated because it requires allocating memory for the error * message unnecessarily. For custom revert reasons use {tryDiv}. * * Counterpart to Solidity's `/` operator. Note: this function uses a * `revert` opcode (which leaves remaining gas untouched) while Solidity * uses an invalid opcode to revert (consuming all remaining gas). * * Requirements: * * - The divisor cannot be zero. */ function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b > 0, errorMessage); return a / b; } /** * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo), * reverting with custom message when dividing by zero. * * CAUTION: This function is deprecated because it requires allocating memory for the error * message unnecessarily. For custom revert reasons use {tryMod}. * * Counterpart to Solidity's `%` operator. This function uses a `revert` * opcode (which leaves remaining gas untouched) while Solidity uses an * invalid opcode to revert (consuming all remaining gas). * * Requirements: * * - The divisor cannot be zero. */ function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b > 0, errorMessage); return a % b; } }
// SPDX-License-Identifier: MIT pragma solidity >=0.6.0 <0.8.0; import "./ERC1155Receiver.sol"; /** * @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 pragma solidity >=0.6.0 <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 () internal { _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 make 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; } }
pragma solidity >=0.6.0 <0.8.0; interface IEulerBeats { function reserve() external view returns (uint); function totalSupply(uint) external view returns (uint); function safeTransferFrom( address from, address to, uint256 id, uint256 amount, bytes memory data) external; function balanceOf(address, uint256) external view returns (uint256); function burnPrint(uint256, uint256) external; function mintPrint(uint256) external payable returns (uint256); function seedToOwner(uint256) external view returns (address); function setEnabled(bool) external; function setLocked(bool) external; function transferOwnership(address) external; function withdraw() external; function setURI(string memory) external; function resetScriptCount() external; function addScript(string memory) external; function updateScript(string memory, uint256) external; }
// SPDX-License-Identifier: MIT pragma solidity >= 0.4.22 <0.9.0; library console { address constant CONSOLE_ADDRESS = address(0x000000000000000000636F6e736F6c652e6c6f67); function _sendLogPayload(bytes memory payload) private view { uint256 payloadLength = payload.length; address consoleAddress = CONSOLE_ADDRESS; assembly { let payloadStart := add(payload, 32) let r := staticcall(gas(), consoleAddress, payloadStart, payloadLength, 0, 0) } } function log() internal view { _sendLogPayload(abi.encodeWithSignature("log()")); } function logInt(int p0) internal view { _sendLogPayload(abi.encodeWithSignature("log(int)", p0)); } function logUint(uint p0) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint)", p0)); } function logString(string memory p0) internal view { _sendLogPayload(abi.encodeWithSignature("log(string)", p0)); } function logBool(bool p0) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool)", p0)); } function logAddress(address p0) internal view { _sendLogPayload(abi.encodeWithSignature("log(address)", p0)); } function logBytes(bytes memory p0) internal view { _sendLogPayload(abi.encodeWithSignature("log(bytes)", p0)); } function logBytes1(bytes1 p0) internal view { _sendLogPayload(abi.encodeWithSignature("log(bytes1)", p0)); } function logBytes2(bytes2 p0) internal view { _sendLogPayload(abi.encodeWithSignature("log(bytes2)", p0)); } function logBytes3(bytes3 p0) internal view { _sendLogPayload(abi.encodeWithSignature("log(bytes3)", p0)); } function logBytes4(bytes4 p0) internal view { _sendLogPayload(abi.encodeWithSignature("log(bytes4)", p0)); } function logBytes5(bytes5 p0) internal view { _sendLogPayload(abi.encodeWithSignature("log(bytes5)", p0)); } function logBytes6(bytes6 p0) internal view { _sendLogPayload(abi.encodeWithSignature("log(bytes6)", p0)); } function logBytes7(bytes7 p0) internal view { _sendLogPayload(abi.encodeWithSignature("log(bytes7)", p0)); } function logBytes8(bytes8 p0) internal view { _sendLogPayload(abi.encodeWithSignature("log(bytes8)", p0)); } function logBytes9(bytes9 p0) internal view { _sendLogPayload(abi.encodeWithSignature("log(bytes9)", p0)); } function logBytes10(bytes10 p0) internal view { _sendLogPayload(abi.encodeWithSignature("log(bytes10)", p0)); } function logBytes11(bytes11 p0) internal view { _sendLogPayload(abi.encodeWithSignature("log(bytes11)", p0)); } function logBytes12(bytes12 p0) internal view { _sendLogPayload(abi.encodeWithSignature("log(bytes12)", p0)); } function logBytes13(bytes13 p0) internal view { _sendLogPayload(abi.encodeWithSignature("log(bytes13)", p0)); } function logBytes14(bytes14 p0) internal view { _sendLogPayload(abi.encodeWithSignature("log(bytes14)", p0)); } function logBytes15(bytes15 p0) internal view { _sendLogPayload(abi.encodeWithSignature("log(bytes15)", p0)); } function logBytes16(bytes16 p0) internal view { _sendLogPayload(abi.encodeWithSignature("log(bytes16)", p0)); } function logBytes17(bytes17 p0) internal view { _sendLogPayload(abi.encodeWithSignature("log(bytes17)", p0)); } function logBytes18(bytes18 p0) internal view { _sendLogPayload(abi.encodeWithSignature("log(bytes18)", p0)); } function logBytes19(bytes19 p0) internal view { _sendLogPayload(abi.encodeWithSignature("log(bytes19)", p0)); } function logBytes20(bytes20 p0) internal view { _sendLogPayload(abi.encodeWithSignature("log(bytes20)", p0)); } function logBytes21(bytes21 p0) internal view { _sendLogPayload(abi.encodeWithSignature("log(bytes21)", p0)); } function logBytes22(bytes22 p0) internal view { _sendLogPayload(abi.encodeWithSignature("log(bytes22)", p0)); } function logBytes23(bytes23 p0) internal view { _sendLogPayload(abi.encodeWithSignature("log(bytes23)", p0)); } function logBytes24(bytes24 p0) internal view { _sendLogPayload(abi.encodeWithSignature("log(bytes24)", p0)); } function logBytes25(bytes25 p0) internal view { _sendLogPayload(abi.encodeWithSignature("log(bytes25)", p0)); } function logBytes26(bytes26 p0) internal view { _sendLogPayload(abi.encodeWithSignature("log(bytes26)", p0)); } function logBytes27(bytes27 p0) internal view { _sendLogPayload(abi.encodeWithSignature("log(bytes27)", p0)); } function logBytes28(bytes28 p0) internal view { _sendLogPayload(abi.encodeWithSignature("log(bytes28)", p0)); } function logBytes29(bytes29 p0) internal view { _sendLogPayload(abi.encodeWithSignature("log(bytes29)", p0)); } function logBytes30(bytes30 p0) internal view { _sendLogPayload(abi.encodeWithSignature("log(bytes30)", p0)); } function logBytes31(bytes31 p0) internal view { _sendLogPayload(abi.encodeWithSignature("log(bytes31)", p0)); } function logBytes32(bytes32 p0) internal view { _sendLogPayload(abi.encodeWithSignature("log(bytes32)", p0)); } function log(uint p0) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint)", p0)); } function log(string memory p0) internal view { _sendLogPayload(abi.encodeWithSignature("log(string)", p0)); } function log(bool p0) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool)", p0)); } function log(address p0) internal view { _sendLogPayload(abi.encodeWithSignature("log(address)", p0)); } function log(uint p0, uint p1) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint,uint)", p0, p1)); } function log(uint p0, string memory p1) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint,string)", p0, p1)); } function log(uint p0, bool p1) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint,bool)", p0, p1)); } function log(uint p0, address p1) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint,address)", p0, p1)); } function log(string memory p0, uint p1) internal view { _sendLogPayload(abi.encodeWithSignature("log(string,uint)", p0, p1)); } function log(string memory p0, string memory p1) internal view { _sendLogPayload(abi.encodeWithSignature("log(string,string)", p0, p1)); } function log(string memory p0, bool p1) internal view { _sendLogPayload(abi.encodeWithSignature("log(string,bool)", p0, p1)); } function log(string memory p0, address p1) internal view { _sendLogPayload(abi.encodeWithSignature("log(string,address)", p0, p1)); } function log(bool p0, uint p1) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool,uint)", p0, p1)); } function log(bool p0, string memory p1) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool,string)", p0, p1)); } function log(bool p0, bool p1) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool,bool)", p0, p1)); } function log(bool p0, address p1) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool,address)", p0, p1)); } function log(address p0, uint p1) internal view { _sendLogPayload(abi.encodeWithSignature("log(address,uint)", p0, p1)); } function log(address p0, string memory p1) internal view { _sendLogPayload(abi.encodeWithSignature("log(address,string)", p0, p1)); } function log(address p0, bool p1) internal view { _sendLogPayload(abi.encodeWithSignature("log(address,bool)", p0, p1)); } function log(address p0, address p1) internal view { _sendLogPayload(abi.encodeWithSignature("log(address,address)", p0, p1)); } function log(uint p0, uint p1, uint p2) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint,uint,uint)", p0, p1, p2)); } function log(uint p0, uint p1, string memory p2) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint,uint,string)", p0, p1, p2)); } function log(uint p0, uint p1, bool p2) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint,uint,bool)", p0, p1, p2)); } function log(uint p0, uint p1, address p2) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint,uint,address)", p0, p1, p2)); } function log(uint p0, string memory p1, uint p2) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint,string,uint)", p0, p1, p2)); } function log(uint p0, string memory p1, string memory p2) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint,string,string)", p0, p1, p2)); } function log(uint p0, string memory p1, bool p2) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint,string,bool)", p0, p1, p2)); } function log(uint p0, string memory p1, address p2) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint,string,address)", p0, p1, p2)); } function log(uint p0, bool p1, uint p2) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint,bool,uint)", p0, p1, p2)); } function log(uint p0, bool p1, string memory p2) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint,bool,string)", p0, p1, p2)); } function log(uint p0, bool p1, bool p2) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint,bool,bool)", p0, p1, p2)); } function log(uint p0, bool p1, address p2) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint,bool,address)", p0, p1, p2)); } function log(uint p0, address p1, uint p2) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint,address,uint)", p0, p1, p2)); } function log(uint p0, address p1, string memory p2) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint,address,string)", p0, p1, p2)); } function log(uint p0, address p1, bool p2) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint,address,bool)", p0, p1, p2)); } function log(uint p0, address p1, address p2) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint,address,address)", p0, p1, p2)); } function log(string memory p0, uint p1, uint p2) internal view { _sendLogPayload(abi.encodeWithSignature("log(string,uint,uint)", p0, p1, p2)); } function log(string memory p0, uint p1, string memory p2) internal view { _sendLogPayload(abi.encodeWithSignature("log(string,uint,string)", p0, p1, p2)); } function log(string memory p0, uint p1, bool p2) internal view { _sendLogPayload(abi.encodeWithSignature("log(string,uint,bool)", p0, p1, p2)); } function log(string memory p0, uint p1, address p2) internal view { _sendLogPayload(abi.encodeWithSignature("log(string,uint,address)", p0, p1, p2)); } function log(string memory p0, string memory p1, uint p2) internal view { _sendLogPayload(abi.encodeWithSignature("log(string,string,uint)", p0, p1, p2)); } function log(string memory p0, string memory p1, string memory p2) internal view { _sendLogPayload(abi.encodeWithSignature("log(string,string,string)", p0, p1, p2)); } function log(string memory p0, string memory p1, bool p2) internal view { _sendLogPayload(abi.encodeWithSignature("log(string,string,bool)", p0, p1, p2)); } function log(string memory p0, string memory p1, address p2) internal view { _sendLogPayload(abi.encodeWithSignature("log(string,string,address)", p0, p1, p2)); } function log(string memory p0, bool p1, uint p2) internal view { _sendLogPayload(abi.encodeWithSignature("log(string,bool,uint)", p0, p1, p2)); } function log(string memory p0, bool p1, string memory p2) internal view { _sendLogPayload(abi.encodeWithSignature("log(string,bool,string)", p0, p1, p2)); } function log(string memory p0, bool p1, bool p2) internal view { _sendLogPayload(abi.encodeWithSignature("log(string,bool,bool)", p0, p1, p2)); } function log(string memory p0, bool p1, address p2) internal view { _sendLogPayload(abi.encodeWithSignature("log(string,bool,address)", p0, p1, p2)); } function log(string memory p0, address p1, uint p2) internal view { _sendLogPayload(abi.encodeWithSignature("log(string,address,uint)", p0, p1, p2)); } function log(string memory p0, address p1, string memory p2) internal view { _sendLogPayload(abi.encodeWithSignature("log(string,address,string)", p0, p1, p2)); } function log(string memory p0, address p1, bool p2) internal view { _sendLogPayload(abi.encodeWithSignature("log(string,address,bool)", p0, p1, p2)); } function log(string memory p0, address p1, address p2) internal view { _sendLogPayload(abi.encodeWithSignature("log(string,address,address)", p0, p1, p2)); } function log(bool p0, uint p1, uint p2) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool,uint,uint)", p0, p1, p2)); } function log(bool p0, uint p1, string memory p2) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool,uint,string)", p0, p1, p2)); } function log(bool p0, uint p1, bool p2) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool,uint,bool)", p0, p1, p2)); } function log(bool p0, uint p1, address p2) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool,uint,address)", p0, p1, p2)); } function log(bool p0, string memory p1, uint p2) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool,string,uint)", p0, p1, p2)); } function log(bool p0, string memory p1, string memory p2) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool,string,string)", p0, p1, p2)); } function log(bool p0, string memory p1, bool p2) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool,string,bool)", p0, p1, p2)); } function log(bool p0, string memory p1, address p2) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool,string,address)", p0, p1, p2)); } function log(bool p0, bool p1, uint p2) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool,bool,uint)", p0, p1, p2)); } function log(bool p0, bool p1, string memory p2) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool,bool,string)", p0, p1, p2)); } function log(bool p0, bool p1, bool p2) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool,bool,bool)", p0, p1, p2)); } function log(bool p0, bool p1, address p2) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool,bool,address)", p0, p1, p2)); } function log(bool p0, address p1, uint p2) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool,address,uint)", p0, p1, p2)); } function log(bool p0, address p1, string memory p2) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool,address,string)", p0, p1, p2)); } function log(bool p0, address p1, bool p2) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool,address,bool)", p0, p1, p2)); } function log(bool p0, address p1, address p2) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool,address,address)", p0, p1, p2)); } function log(address p0, uint p1, uint p2) internal view { _sendLogPayload(abi.encodeWithSignature("log(address,uint,uint)", p0, p1, p2)); } function log(address p0, uint p1, string memory p2) internal view { _sendLogPayload(abi.encodeWithSignature("log(address,uint,string)", p0, p1, p2)); } function log(address p0, uint p1, bool p2) internal view { _sendLogPayload(abi.encodeWithSignature("log(address,uint,bool)", p0, p1, p2)); } function log(address p0, uint p1, address p2) internal view { _sendLogPayload(abi.encodeWithSignature("log(address,uint,address)", p0, p1, p2)); } function log(address p0, string memory p1, uint p2) internal view { _sendLogPayload(abi.encodeWithSignature("log(address,string,uint)", p0, p1, p2)); } function log(address p0, string memory p1, string memory p2) internal view { _sendLogPayload(abi.encodeWithSignature("log(address,string,string)", p0, p1, p2)); } function log(address p0, string memory p1, bool p2) internal view { _sendLogPayload(abi.encodeWithSignature("log(address,string,bool)", p0, p1, p2)); } function log(address p0, string memory p1, address p2) internal view { _sendLogPayload(abi.encodeWithSignature("log(address,string,address)", p0, p1, p2)); } function log(address p0, bool p1, uint p2) internal view { _sendLogPayload(abi.encodeWithSignature("log(address,bool,uint)", p0, p1, p2)); } function log(address p0, bool p1, string memory p2) internal view { _sendLogPayload(abi.encodeWithSignature("log(address,bool,string)", p0, p1, p2)); } function log(address p0, bool p1, bool p2) internal view { _sendLogPayload(abi.encodeWithSignature("log(address,bool,bool)", p0, p1, p2)); } function log(address p0, bool p1, address p2) internal view { _sendLogPayload(abi.encodeWithSignature("log(address,bool,address)", p0, p1, p2)); } function log(address p0, address p1, uint p2) internal view { _sendLogPayload(abi.encodeWithSignature("log(address,address,uint)", p0, p1, p2)); } function log(address p0, address p1, string memory p2) internal view { _sendLogPayload(abi.encodeWithSignature("log(address,address,string)", p0, p1, p2)); } function log(address p0, address p1, bool p2) internal view { _sendLogPayload(abi.encodeWithSignature("log(address,address,bool)", p0, p1, p2)); } function log(address p0, address p1, address p2) internal view { _sendLogPayload(abi.encodeWithSignature("log(address,address,address)", p0, p1, p2)); } function log(uint p0, uint p1, uint p2, uint p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint,uint,uint,uint)", p0, p1, p2, p3)); } function log(uint p0, uint p1, uint p2, string memory p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint,uint,uint,string)", p0, p1, p2, p3)); } function log(uint p0, uint p1, uint p2, bool p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint,uint,uint,bool)", p0, p1, p2, p3)); } function log(uint p0, uint p1, uint p2, address p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint,uint,uint,address)", p0, p1, p2, p3)); } function log(uint p0, uint p1, string memory p2, uint p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint,uint,string,uint)", p0, p1, p2, p3)); } function log(uint p0, uint p1, string memory p2, string memory p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint,uint,string,string)", p0, p1, p2, p3)); } function log(uint p0, uint p1, string memory p2, bool p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint,uint,string,bool)", p0, p1, p2, p3)); } function log(uint p0, uint p1, string memory p2, address p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint,uint,string,address)", p0, p1, p2, p3)); } function log(uint p0, uint p1, bool p2, uint p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint,uint,bool,uint)", p0, p1, p2, p3)); } function log(uint p0, uint p1, bool p2, string memory p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint,uint,bool,string)", p0, p1, p2, p3)); } function log(uint p0, uint p1, bool p2, bool p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint,uint,bool,bool)", p0, p1, p2, p3)); } function log(uint p0, uint p1, bool p2, address p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint,uint,bool,address)", p0, p1, p2, p3)); } function log(uint p0, uint p1, address p2, uint p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint,uint,address,uint)", p0, p1, p2, p3)); } function log(uint p0, uint p1, address p2, string memory p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint,uint,address,string)", p0, p1, p2, p3)); } function log(uint p0, uint p1, address p2, bool p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint,uint,address,bool)", p0, p1, p2, p3)); } function log(uint p0, uint p1, address p2, address p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint,uint,address,address)", p0, p1, p2, p3)); } function log(uint p0, string memory p1, uint p2, uint p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint,string,uint,uint)", p0, p1, p2, p3)); } function log(uint p0, string memory p1, uint p2, string memory p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint,string,uint,string)", p0, p1, p2, p3)); } function log(uint p0, string memory p1, uint p2, bool p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint,string,uint,bool)", p0, p1, p2, p3)); } function log(uint p0, string memory p1, uint p2, address p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint,string,uint,address)", p0, p1, p2, p3)); } function log(uint p0, string memory p1, string memory p2, uint p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint,string,string,uint)", p0, p1, p2, p3)); } function log(uint p0, string memory p1, string memory p2, string memory p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint,string,string,string)", p0, p1, p2, p3)); } function log(uint p0, string memory p1, string memory p2, bool p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint,string,string,bool)", p0, p1, p2, p3)); } function log(uint p0, string memory p1, string memory p2, address p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint,string,string,address)", p0, p1, p2, p3)); } function log(uint p0, string memory p1, bool p2, uint p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint,string,bool,uint)", p0, p1, p2, p3)); } function log(uint p0, string memory p1, bool p2, string memory p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint,string,bool,string)", p0, p1, p2, p3)); } function log(uint p0, string memory p1, bool p2, bool p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint,string,bool,bool)", p0, p1, p2, p3)); } function log(uint p0, string memory p1, bool p2, address p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint,string,bool,address)", p0, p1, p2, p3)); } function log(uint p0, string memory p1, address p2, uint p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint,string,address,uint)", p0, p1, p2, p3)); } function log(uint p0, string memory p1, address p2, string memory p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint,string,address,string)", p0, p1, p2, p3)); } function log(uint p0, string memory p1, address p2, bool p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint,string,address,bool)", p0, p1, p2, p3)); } function log(uint p0, string memory p1, address p2, address p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint,string,address,address)", p0, p1, p2, p3)); } function log(uint p0, bool p1, uint p2, uint p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint,bool,uint,uint)", p0, p1, p2, p3)); } function log(uint p0, bool p1, uint p2, string memory p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint,bool,uint,string)", p0, p1, p2, p3)); } function log(uint p0, bool p1, uint p2, bool p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint,bool,uint,bool)", p0, p1, p2, p3)); } function log(uint p0, bool p1, uint p2, address p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint,bool,uint,address)", p0, p1, p2, p3)); } function log(uint p0, bool p1, string memory p2, uint p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint,bool,string,uint)", p0, p1, p2, p3)); } function log(uint p0, bool p1, string memory p2, string memory p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint,bool,string,string)", p0, p1, p2, p3)); } function log(uint p0, bool p1, string memory p2, bool p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint,bool,string,bool)", p0, p1, p2, p3)); } function log(uint p0, bool p1, string memory p2, address p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint,bool,string,address)", p0, p1, p2, p3)); } function log(uint p0, bool p1, bool p2, uint p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint,bool,bool,uint)", p0, p1, p2, p3)); } function log(uint p0, bool p1, bool p2, string memory p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint,bool,bool,string)", p0, p1, p2, p3)); } function log(uint p0, bool p1, bool p2, bool p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint,bool,bool,bool)", p0, p1, p2, p3)); } function log(uint p0, bool p1, bool p2, address p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint,bool,bool,address)", p0, p1, p2, p3)); } function log(uint p0, bool p1, address p2, uint p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint,bool,address,uint)", p0, p1, p2, p3)); } function log(uint p0, bool p1, address p2, string memory p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint,bool,address,string)", p0, p1, p2, p3)); } function log(uint p0, bool p1, address p2, bool p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint,bool,address,bool)", p0, p1, p2, p3)); } function log(uint p0, bool p1, address p2, address p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint,bool,address,address)", p0, p1, p2, p3)); } function log(uint p0, address p1, uint p2, uint p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint,address,uint,uint)", p0, p1, p2, p3)); } function log(uint p0, address p1, uint p2, string memory p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint,address,uint,string)", p0, p1, p2, p3)); } function log(uint p0, address p1, uint p2, bool p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint,address,uint,bool)", p0, p1, p2, p3)); } function log(uint p0, address p1, uint p2, address p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint,address,uint,address)", p0, p1, p2, p3)); } function log(uint p0, address p1, string memory p2, uint p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint,address,string,uint)", p0, p1, p2, p3)); } function log(uint p0, address p1, string memory p2, string memory p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint,address,string,string)", p0, p1, p2, p3)); } function log(uint p0, address p1, string memory p2, bool p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint,address,string,bool)", p0, p1, p2, p3)); } function log(uint p0, address p1, string memory p2, address p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint,address,string,address)", p0, p1, p2, p3)); } function log(uint p0, address p1, bool p2, uint p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint,address,bool,uint)", p0, p1, p2, p3)); } function log(uint p0, address p1, bool p2, string memory p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint,address,bool,string)", p0, p1, p2, p3)); } function log(uint p0, address p1, bool p2, bool p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint,address,bool,bool)", p0, p1, p2, p3)); } function log(uint p0, address p1, bool p2, address p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint,address,bool,address)", p0, p1, p2, p3)); } function log(uint p0, address p1, address p2, uint p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint,address,address,uint)", p0, p1, p2, p3)); } function log(uint p0, address p1, address p2, string memory p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint,address,address,string)", p0, p1, p2, p3)); } function log(uint p0, address p1, address p2, bool p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint,address,address,bool)", p0, p1, p2, p3)); } function log(uint p0, address p1, address p2, address p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint,address,address,address)", p0, p1, p2, p3)); } function log(string memory p0, uint p1, uint p2, uint p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(string,uint,uint,uint)", p0, p1, p2, p3)); } function log(string memory p0, uint p1, uint p2, string memory p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(string,uint,uint,string)", p0, p1, p2, p3)); } function log(string memory p0, uint p1, uint p2, bool p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(string,uint,uint,bool)", p0, p1, p2, p3)); } function log(string memory p0, uint p1, uint p2, address p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(string,uint,uint,address)", p0, p1, p2, p3)); } function log(string memory p0, uint p1, string memory p2, uint p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(string,uint,string,uint)", p0, p1, p2, p3)); } function log(string memory p0, uint p1, string memory p2, string memory p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(string,uint,string,string)", p0, p1, p2, p3)); } function log(string memory p0, uint p1, string memory p2, bool p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(string,uint,string,bool)", p0, p1, p2, p3)); } function log(string memory p0, uint p1, string memory p2, address p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(string,uint,string,address)", p0, p1, p2, p3)); } function log(string memory p0, uint p1, bool p2, uint p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(string,uint,bool,uint)", p0, p1, p2, p3)); } function log(string memory p0, uint p1, bool p2, string memory p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(string,uint,bool,string)", p0, p1, p2, p3)); } function log(string memory p0, uint p1, bool p2, bool p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(string,uint,bool,bool)", p0, p1, p2, p3)); } function log(string memory p0, uint p1, bool p2, address p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(string,uint,bool,address)", p0, p1, p2, p3)); } function log(string memory p0, uint p1, address p2, uint p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(string,uint,address,uint)", p0, p1, p2, p3)); } function log(string memory p0, uint p1, address p2, string memory p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(string,uint,address,string)", p0, p1, p2, p3)); } function log(string memory p0, uint p1, address p2, bool p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(string,uint,address,bool)", p0, p1, p2, p3)); } function log(string memory p0, uint p1, address p2, address p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(string,uint,address,address)", p0, p1, p2, p3)); } function log(string memory p0, string memory p1, uint p2, uint p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(string,string,uint,uint)", p0, p1, p2, p3)); } function log(string memory p0, string memory p1, uint p2, string memory p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(string,string,uint,string)", p0, p1, p2, p3)); } function log(string memory p0, string memory p1, uint p2, bool p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(string,string,uint,bool)", p0, p1, p2, p3)); } function log(string memory p0, string memory p1, uint p2, address p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(string,string,uint,address)", p0, p1, p2, p3)); } function log(string memory p0, string memory p1, string memory p2, uint p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(string,string,string,uint)", p0, p1, p2, p3)); } function log(string memory p0, string memory p1, string memory p2, string memory p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(string,string,string,string)", p0, p1, p2, p3)); } function log(string memory p0, string memory p1, string memory p2, bool p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(string,string,string,bool)", p0, p1, p2, p3)); } function log(string memory p0, string memory p1, string memory p2, address p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(string,string,string,address)", p0, p1, p2, p3)); } function log(string memory p0, string memory p1, bool p2, uint p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(string,string,bool,uint)", p0, p1, p2, p3)); } function log(string memory p0, string memory p1, bool p2, string memory p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(string,string,bool,string)", p0, p1, p2, p3)); } function log(string memory p0, string memory p1, bool p2, bool p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(string,string,bool,bool)", p0, p1, p2, p3)); } function log(string memory p0, string memory p1, bool p2, address p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(string,string,bool,address)", p0, p1, p2, p3)); } function log(string memory p0, string memory p1, address p2, uint p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(string,string,address,uint)", p0, p1, p2, p3)); } function log(string memory p0, string memory p1, address p2, string memory p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(string,string,address,string)", p0, p1, p2, p3)); } function log(string memory p0, string memory p1, address p2, bool p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(string,string,address,bool)", p0, p1, p2, p3)); } function log(string memory p0, string memory p1, address p2, address p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(string,string,address,address)", p0, p1, p2, p3)); } function log(string memory p0, bool p1, uint p2, uint p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(string,bool,uint,uint)", p0, p1, p2, p3)); } function log(string memory p0, bool p1, uint p2, string memory p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(string,bool,uint,string)", p0, p1, p2, p3)); } function log(string memory p0, bool p1, uint p2, bool p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(string,bool,uint,bool)", p0, p1, p2, p3)); } function log(string memory p0, bool p1, uint p2, address p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(string,bool,uint,address)", p0, p1, p2, p3)); } function log(string memory p0, bool p1, string memory p2, uint p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(string,bool,string,uint)", p0, p1, p2, p3)); } function log(string memory p0, bool p1, string memory p2, string memory p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(string,bool,string,string)", p0, p1, p2, p3)); } function log(string memory p0, bool p1, string memory p2, bool p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(string,bool,string,bool)", p0, p1, p2, p3)); } function log(string memory p0, bool p1, string memory p2, address p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(string,bool,string,address)", p0, p1, p2, p3)); } function log(string memory p0, bool p1, bool p2, uint p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(string,bool,bool,uint)", p0, p1, p2, p3)); } function log(string memory p0, bool p1, bool p2, string memory p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(string,bool,bool,string)", p0, p1, p2, p3)); } function log(string memory p0, bool p1, bool p2, bool p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(string,bool,bool,bool)", p0, p1, p2, p3)); } function log(string memory p0, bool p1, bool p2, address p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(string,bool,bool,address)", p0, p1, p2, p3)); } function log(string memory p0, bool p1, address p2, uint p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(string,bool,address,uint)", p0, p1, p2, p3)); } function log(string memory p0, bool p1, address p2, string memory p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(string,bool,address,string)", p0, p1, p2, p3)); } function log(string memory p0, bool p1, address p2, bool p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(string,bool,address,bool)", p0, p1, p2, p3)); } function log(string memory p0, bool p1, address p2, address p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(string,bool,address,address)", p0, p1, p2, p3)); } function log(string memory p0, address p1, uint p2, uint p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(string,address,uint,uint)", p0, p1, p2, p3)); } function log(string memory p0, address p1, uint p2, string memory p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(string,address,uint,string)", p0, p1, p2, p3)); } function log(string memory p0, address p1, uint p2, bool p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(string,address,uint,bool)", p0, p1, p2, p3)); } function log(string memory p0, address p1, uint p2, address p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(string,address,uint,address)", p0, p1, p2, p3)); } function log(string memory p0, address p1, string memory p2, uint p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(string,address,string,uint)", p0, p1, p2, p3)); } function log(string memory p0, address p1, string memory p2, string memory p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(string,address,string,string)", p0, p1, p2, p3)); } function log(string memory p0, address p1, string memory p2, bool p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(string,address,string,bool)", p0, p1, p2, p3)); } function log(string memory p0, address p1, string memory p2, address p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(string,address,string,address)", p0, p1, p2, p3)); } function log(string memory p0, address p1, bool p2, uint p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(string,address,bool,uint)", p0, p1, p2, p3)); } function log(string memory p0, address p1, bool p2, string memory p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(string,address,bool,string)", p0, p1, p2, p3)); } function log(string memory p0, address p1, bool p2, bool p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(string,address,bool,bool)", p0, p1, p2, p3)); } function log(string memory p0, address p1, bool p2, address p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(string,address,bool,address)", p0, p1, p2, p3)); } function log(string memory p0, address p1, address p2, uint p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(string,address,address,uint)", p0, p1, p2, p3)); } function log(string memory p0, address p1, address p2, string memory p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(string,address,address,string)", p0, p1, p2, p3)); } function log(string memory p0, address p1, address p2, bool p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(string,address,address,bool)", p0, p1, p2, p3)); } function log(string memory p0, address p1, address p2, address p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(string,address,address,address)", p0, p1, p2, p3)); } function log(bool p0, uint p1, uint p2, uint p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool,uint,uint,uint)", p0, p1, p2, p3)); } function log(bool p0, uint p1, uint p2, string memory p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool,uint,uint,string)", p0, p1, p2, p3)); } function log(bool p0, uint p1, uint p2, bool p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool,uint,uint,bool)", p0, p1, p2, p3)); } function log(bool p0, uint p1, uint p2, address p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool,uint,uint,address)", p0, p1, p2, p3)); } function log(bool p0, uint p1, string memory p2, uint p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool,uint,string,uint)", p0, p1, p2, p3)); } function log(bool p0, uint p1, string memory p2, string memory p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool,uint,string,string)", p0, p1, p2, p3)); } function log(bool p0, uint p1, string memory p2, bool p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool,uint,string,bool)", p0, p1, p2, p3)); } function log(bool p0, uint p1, string memory p2, address p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool,uint,string,address)", p0, p1, p2, p3)); } function log(bool p0, uint p1, bool p2, uint p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool,uint,bool,uint)", p0, p1, p2, p3)); } function log(bool p0, uint p1, bool p2, string memory p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool,uint,bool,string)", p0, p1, p2, p3)); } function log(bool p0, uint p1, bool p2, bool p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool,uint,bool,bool)", p0, p1, p2, p3)); } function log(bool p0, uint p1, bool p2, address p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool,uint,bool,address)", p0, p1, p2, p3)); } function log(bool p0, uint p1, address p2, uint p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool,uint,address,uint)", p0, p1, p2, p3)); } function log(bool p0, uint p1, address p2, string memory p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool,uint,address,string)", p0, p1, p2, p3)); } function log(bool p0, uint p1, address p2, bool p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool,uint,address,bool)", p0, p1, p2, p3)); } function log(bool p0, uint p1, address p2, address p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool,uint,address,address)", p0, p1, p2, p3)); } function log(bool p0, string memory p1, uint p2, uint p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool,string,uint,uint)", p0, p1, p2, p3)); } function log(bool p0, string memory p1, uint p2, string memory p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool,string,uint,string)", p0, p1, p2, p3)); } function log(bool p0, string memory p1, uint p2, bool p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool,string,uint,bool)", p0, p1, p2, p3)); } function log(bool p0, string memory p1, uint p2, address p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool,string,uint,address)", p0, p1, p2, p3)); } function log(bool p0, string memory p1, string memory p2, uint p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool,string,string,uint)", p0, p1, p2, p3)); } function log(bool p0, string memory p1, string memory p2, string memory p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool,string,string,string)", p0, p1, p2, p3)); } function log(bool p0, string memory p1, string memory p2, bool p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool,string,string,bool)", p0, p1, p2, p3)); } function log(bool p0, string memory p1, string memory p2, address p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool,string,string,address)", p0, p1, p2, p3)); } function log(bool p0, string memory p1, bool p2, uint p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool,string,bool,uint)", p0, p1, p2, p3)); } function log(bool p0, string memory p1, bool p2, string memory p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool,string,bool,string)", p0, p1, p2, p3)); } function log(bool p0, string memory p1, bool p2, bool p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool,string,bool,bool)", p0, p1, p2, p3)); } function log(bool p0, string memory p1, bool p2, address p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool,string,bool,address)", p0, p1, p2, p3)); } function log(bool p0, string memory p1, address p2, uint p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool,string,address,uint)", p0, p1, p2, p3)); } function log(bool p0, string memory p1, address p2, string memory p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool,string,address,string)", p0, p1, p2, p3)); } function log(bool p0, string memory p1, address p2, bool p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool,string,address,bool)", p0, p1, p2, p3)); } function log(bool p0, string memory p1, address p2, address p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool,string,address,address)", p0, p1, p2, p3)); } function log(bool p0, bool p1, uint p2, uint p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool,bool,uint,uint)", p0, p1, p2, p3)); } function log(bool p0, bool p1, uint p2, string memory p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool,bool,uint,string)", p0, p1, p2, p3)); } function log(bool p0, bool p1, uint p2, bool p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool,bool,uint,bool)", p0, p1, p2, p3)); } function log(bool p0, bool p1, uint p2, address p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool,bool,uint,address)", p0, p1, p2, p3)); } function log(bool p0, bool p1, string memory p2, uint p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool,bool,string,uint)", p0, p1, p2, p3)); } function log(bool p0, bool p1, string memory p2, string memory p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool,bool,string,string)", p0, p1, p2, p3)); } function log(bool p0, bool p1, string memory p2, bool p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool,bool,string,bool)", p0, p1, p2, p3)); } function log(bool p0, bool p1, string memory p2, address p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool,bool,string,address)", p0, p1, p2, p3)); } function log(bool p0, bool p1, bool p2, uint p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool,bool,bool,uint)", p0, p1, p2, p3)); } function log(bool p0, bool p1, bool p2, string memory p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool,bool,bool,string)", p0, p1, p2, p3)); } function log(bool p0, bool p1, bool p2, bool p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool,bool,bool,bool)", p0, p1, p2, p3)); } function log(bool p0, bool p1, bool p2, address p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool,bool,bool,address)", p0, p1, p2, p3)); } function log(bool p0, bool p1, address p2, uint p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool,bool,address,uint)", p0, p1, p2, p3)); } function log(bool p0, bool p1, address p2, string memory p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool,bool,address,string)", p0, p1, p2, p3)); } function log(bool p0, bool p1, address p2, bool p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool,bool,address,bool)", p0, p1, p2, p3)); } function log(bool p0, bool p1, address p2, address p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool,bool,address,address)", p0, p1, p2, p3)); } function log(bool p0, address p1, uint p2, uint p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool,address,uint,uint)", p0, p1, p2, p3)); } function log(bool p0, address p1, uint p2, string memory p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool,address,uint,string)", p0, p1, p2, p3)); } function log(bool p0, address p1, uint p2, bool p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool,address,uint,bool)", p0, p1, p2, p3)); } function log(bool p0, address p1, uint p2, address p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool,address,uint,address)", p0, p1, p2, p3)); } function log(bool p0, address p1, string memory p2, uint p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool,address,string,uint)", p0, p1, p2, p3)); } function log(bool p0, address p1, string memory p2, string memory p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool,address,string,string)", p0, p1, p2, p3)); } function log(bool p0, address p1, string memory p2, bool p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool,address,string,bool)", p0, p1, p2, p3)); } function log(bool p0, address p1, string memory p2, address p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool,address,string,address)", p0, p1, p2, p3)); } function log(bool p0, address p1, bool p2, uint p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool,address,bool,uint)", p0, p1, p2, p3)); } function log(bool p0, address p1, bool p2, string memory p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool,address,bool,string)", p0, p1, p2, p3)); } function log(bool p0, address p1, bool p2, bool p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool,address,bool,bool)", p0, p1, p2, p3)); } function log(bool p0, address p1, bool p2, address p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool,address,bool,address)", p0, p1, p2, p3)); } function log(bool p0, address p1, address p2, uint p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool,address,address,uint)", p0, p1, p2, p3)); } function log(bool p0, address p1, address p2, string memory p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool,address,address,string)", p0, p1, p2, p3)); } function log(bool p0, address p1, address p2, bool p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool,address,address,bool)", p0, p1, p2, p3)); } function log(bool p0, address p1, address p2, address p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool,address,address,address)", p0, p1, p2, p3)); } function log(address p0, uint p1, uint p2, uint p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(address,uint,uint,uint)", p0, p1, p2, p3)); } function log(address p0, uint p1, uint p2, string memory p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(address,uint,uint,string)", p0, p1, p2, p3)); } function log(address p0, uint p1, uint p2, bool p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(address,uint,uint,bool)", p0, p1, p2, p3)); } function log(address p0, uint p1, uint p2, address p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(address,uint,uint,address)", p0, p1, p2, p3)); } function log(address p0, uint p1, string memory p2, uint p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(address,uint,string,uint)", p0, p1, p2, p3)); } function log(address p0, uint p1, string memory p2, string memory p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(address,uint,string,string)", p0, p1, p2, p3)); } function log(address p0, uint p1, string memory p2, bool p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(address,uint,string,bool)", p0, p1, p2, p3)); } function log(address p0, uint p1, string memory p2, address p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(address,uint,string,address)", p0, p1, p2, p3)); } function log(address p0, uint p1, bool p2, uint p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(address,uint,bool,uint)", p0, p1, p2, p3)); } function log(address p0, uint p1, bool p2, string memory p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(address,uint,bool,string)", p0, p1, p2, p3)); } function log(address p0, uint p1, bool p2, bool p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(address,uint,bool,bool)", p0, p1, p2, p3)); } function log(address p0, uint p1, bool p2, address p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(address,uint,bool,address)", p0, p1, p2, p3)); } function log(address p0, uint p1, address p2, uint p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(address,uint,address,uint)", p0, p1, p2, p3)); } function log(address p0, uint p1, address p2, string memory p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(address,uint,address,string)", p0, p1, p2, p3)); } function log(address p0, uint p1, address p2, bool p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(address,uint,address,bool)", p0, p1, p2, p3)); } function log(address p0, uint p1, address p2, address p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(address,uint,address,address)", p0, p1, p2, p3)); } function log(address p0, string memory p1, uint p2, uint p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(address,string,uint,uint)", p0, p1, p2, p3)); } function log(address p0, string memory p1, uint p2, string memory p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(address,string,uint,string)", p0, p1, p2, p3)); } function log(address p0, string memory p1, uint p2, bool p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(address,string,uint,bool)", p0, p1, p2, p3)); } function log(address p0, string memory p1, uint p2, address p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(address,string,uint,address)", p0, p1, p2, p3)); } function log(address p0, string memory p1, string memory p2, uint p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(address,string,string,uint)", p0, p1, p2, p3)); } function log(address p0, string memory p1, string memory p2, string memory p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(address,string,string,string)", p0, p1, p2, p3)); } function log(address p0, string memory p1, string memory p2, bool p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(address,string,string,bool)", p0, p1, p2, p3)); } function log(address p0, string memory p1, string memory p2, address p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(address,string,string,address)", p0, p1, p2, p3)); } function log(address p0, string memory p1, bool p2, uint p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(address,string,bool,uint)", p0, p1, p2, p3)); } function log(address p0, string memory p1, bool p2, string memory p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(address,string,bool,string)", p0, p1, p2, p3)); } function log(address p0, string memory p1, bool p2, bool p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(address,string,bool,bool)", p0, p1, p2, p3)); } function log(address p0, string memory p1, bool p2, address p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(address,string,bool,address)", p0, p1, p2, p3)); } function log(address p0, string memory p1, address p2, uint p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(address,string,address,uint)", p0, p1, p2, p3)); } function log(address p0, string memory p1, address p2, string memory p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(address,string,address,string)", p0, p1, p2, p3)); } function log(address p0, string memory p1, address p2, bool p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(address,string,address,bool)", p0, p1, p2, p3)); } function log(address p0, string memory p1, address p2, address p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(address,string,address,address)", p0, p1, p2, p3)); } function log(address p0, bool p1, uint p2, uint p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(address,bool,uint,uint)", p0, p1, p2, p3)); } function log(address p0, bool p1, uint p2, string memory p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(address,bool,uint,string)", p0, p1, p2, p3)); } function log(address p0, bool p1, uint p2, bool p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(address,bool,uint,bool)", p0, p1, p2, p3)); } function log(address p0, bool p1, uint p2, address p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(address,bool,uint,address)", p0, p1, p2, p3)); } function log(address p0, bool p1, string memory p2, uint p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(address,bool,string,uint)", p0, p1, p2, p3)); } function log(address p0, bool p1, string memory p2, string memory p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(address,bool,string,string)", p0, p1, p2, p3)); } function log(address p0, bool p1, string memory p2, bool p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(address,bool,string,bool)", p0, p1, p2, p3)); } function log(address p0, bool p1, string memory p2, address p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(address,bool,string,address)", p0, p1, p2, p3)); } function log(address p0, bool p1, bool p2, uint p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(address,bool,bool,uint)", p0, p1, p2, p3)); } function log(address p0, bool p1, bool p2, string memory p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(address,bool,bool,string)", p0, p1, p2, p3)); } function log(address p0, bool p1, bool p2, bool p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(address,bool,bool,bool)", p0, p1, p2, p3)); } function log(address p0, bool p1, bool p2, address p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(address,bool,bool,address)", p0, p1, p2, p3)); } function log(address p0, bool p1, address p2, uint p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(address,bool,address,uint)", p0, p1, p2, p3)); } function log(address p0, bool p1, address p2, string memory p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(address,bool,address,string)", p0, p1, p2, p3)); } function log(address p0, bool p1, address p2, bool p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(address,bool,address,bool)", p0, p1, p2, p3)); } function log(address p0, bool p1, address p2, address p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(address,bool,address,address)", p0, p1, p2, p3)); } function log(address p0, address p1, uint p2, uint p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(address,address,uint,uint)", p0, p1, p2, p3)); } function log(address p0, address p1, uint p2, string memory p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(address,address,uint,string)", p0, p1, p2, p3)); } function log(address p0, address p1, uint p2, bool p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(address,address,uint,bool)", p0, p1, p2, p3)); } function log(address p0, address p1, uint p2, address p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(address,address,uint,address)", p0, p1, p2, p3)); } function log(address p0, address p1, string memory p2, uint p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(address,address,string,uint)", p0, p1, p2, p3)); } function log(address p0, address p1, string memory p2, string memory p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(address,address,string,string)", p0, p1, p2, p3)); } function log(address p0, address p1, string memory p2, bool p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(address,address,string,bool)", p0, p1, p2, p3)); } function log(address p0, address p1, string memory p2, address p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(address,address,string,address)", p0, p1, p2, p3)); } function log(address p0, address p1, bool p2, uint p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(address,address,bool,uint)", p0, p1, p2, p3)); } function log(address p0, address p1, bool p2, string memory p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(address,address,bool,string)", p0, p1, p2, p3)); } function log(address p0, address p1, bool p2, bool p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(address,address,bool,bool)", p0, p1, p2, p3)); } function log(address p0, address p1, bool p2, address p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(address,address,bool,address)", p0, p1, p2, p3)); } function log(address p0, address p1, address p2, uint p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(address,address,address,uint)", p0, p1, p2, p3)); } function log(address p0, address p1, address p2, string memory p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(address,address,address,string)", p0, p1, p2, p3)); } function log(address p0, address p1, address p2, bool p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(address,address,address,bool)", p0, p1, p2, p3)); } function log(address p0, address p1, address p2, address p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(address,address,address,address)", p0, p1, p2, p3)); } }
// SPDX-License-Identifier: MIT pragma solidity >=0.6.0 <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 GSN 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 payable) { return msg.sender; } function _msgData() internal view virtual returns (bytes memory) { this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691 return msg.data; } }
// SPDX-License-Identifier: MIT pragma solidity >=0.6.0 <0.8.0; import "./IERC1155Receiver.sol"; import "../../introspection/ERC165.sol"; /** * @dev _Available since v3.1._ */ abstract contract ERC1155Receiver is ERC165, IERC1155Receiver { constructor() internal { _registerInterface( ERC1155Receiver(address(0)).onERC1155Received.selector ^ ERC1155Receiver(address(0)).onERC1155BatchReceived.selector ); } }
// SPDX-License-Identifier: MIT pragma solidity >=0.6.0 <0.8.0; import "../../introspection/IERC165.sol"; /** * _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. 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. 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 pragma solidity >=0.6.0 <0.8.0; import "./IERC165.sol"; /** * @dev Implementation of the {IERC165} interface. * * Contracts may inherit from this and call {_registerInterface} to declare * their support of an interface. */ abstract contract ERC165 is IERC165 { /* * bytes4(keccak256('supportsInterface(bytes4)')) == 0x01ffc9a7 */ bytes4 private constant _INTERFACE_ID_ERC165 = 0x01ffc9a7; /** * @dev Mapping of interface ids to whether or not it's supported. */ mapping(bytes4 => bool) private _supportedInterfaces; constructor () internal { // Derived contracts need only register support for their own interfaces, // we register support for ERC165 itself here _registerInterface(_INTERFACE_ID_ERC165); } /** * @dev See {IERC165-supportsInterface}. * * Time complexity O(1), guaranteed to always use less than 30 000 gas. */ function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) { return _supportedInterfaces[interfaceId]; } /** * @dev Registers the contract as an implementer of the interface defined by * `interfaceId`. Support of the actual ERC165 interface is automatic and * registering its interface id is not required. * * See {IERC165-supportsInterface}. * * Requirements: * * - `interfaceId` cannot be the ERC165 invalid interface (`0xffffffff`). */ function _registerInterface(bytes4 interfaceId) internal virtual { require(interfaceId != 0xffffffff, "ERC165: invalid interface id"); _supportedInterfaces[interfaceId] = true; } }
// SPDX-License-Identifier: MIT pragma solidity >=0.6.0 <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); }
{ "optimizer": { "enabled": true, "runs": 200 }, "outputSelection": { "*": { "*": [ "evm.bytecode", "evm.deployedBytecode", "abi" ] } }, "libraries": {} }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[{"internalType":"address","name":"_parent","type":"address"}],"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"},{"inputs":[],"name":"EulerBeats","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"string","name":"_script","type":"string"}],"name":"addScriptEB","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"burnEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"seed","type":"uint256"},{"internalType":"uint256","name":"minimumSupply","type":"uint256"}],"name":"burnPrint","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"seed","type":"uint256"},{"internalType":"address","name":"_owner","type":"address"}],"name":"ensureEulerBeatsSeedOwner","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getSeedIds","outputs":[{"internalType":"uint256[27]","name":"seedIds","type":"uint256[27]"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"uint256","name":"seed","type":"uint256"},{"internalType":"address payable","name":"_owner","type":"address"}],"name":"mintPrint","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"payable","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":"printEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"resetScriptCountEB","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"seedToPrintId","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"}],"name":"setBurnEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"enabled","type":"bool"}],"name":"setEnabledEB","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"locked","type":"bool"}],"name":"setLockedEB","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"}],"name":"setPrintEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"newuri","type":"string"}],"name":"setURIEB","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":[{"internalType":"address","name":"newowner","type":"address"}],"name":"transferOwnershipEB","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"_script","type":"string"},{"internalType":"uint256","name":"index","type":"uint256"}],"name":"updateScriptEB","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"withdraw","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"withdrawEB","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
60806040526003805461ffff191690553480156200001c57600080fd5b506040516200251838038062002518833981810160405260208110156200004257600080fd5b505160006200005062000158565b600080546001600160a01b0319166001600160a01b0383169081178255604051929350917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350620000ac6301ffc9a760e01b6200015c565b620000be630271189760e51b6200015c565b60016002556003805462010000600160b01b031916620100006001600160a01b038416021790556000620000f1620001e4565b905060005b601b8110156200014f576200011c8282601b81106200011157fe5b602002015162000324565b600460008484601b81106200012d57fe5b60209081029190910151825281019190915260400160002055600101620000f6565b5050506200034d565b3390565b6001600160e01b03198082161415620001bc576040805162461bcd60e51b815260206004820152601c60248201527f4552433136353a20696e76616c696420696e7465726661636520696400000000604482015290519081900360640190fd5b6001600160e01b0319166000908152600160208190526040909120805460ff19169091179055565b620001ee6200032e565b604051806103600160405280640506060502815260200164043405070381526020016403020203028152602001640511000303815260200164052a0a060381526020016402140807038152602001640535010503815260200164042405080381526020016321090900815260200164041100090081526020016403380a090381526020016403030602008152602001640214070301815260200164012608010381526020016402050107008152602001640321080302815260200164031d0304038152602001640422050b0381526020016405070102008152602001640125050203815260200164010601050381526020016403280404038152602001631c0a09038152602001640425020b03815260200164022400090381526020016402300808028152602001640532070401815250905090565b6480000000001790565b604051806103600160405280601b906020820280368337509192915050565b6121bb806200035d6000396000f3fe60806040526004361061016a5760003560e01c8063a2984ecc116100d1578063d04205d71161008a578063f23a6e6111610064578063f23a6e61146107f0578063f2fde38b146108c6578063f9c894a8146108f9578063fe6bc7b214610929576101c0565b8063d04205d7146106e2578063d270c16b14610793578063d2bc015d146107bd576101c0565b8063a2984ecc146103a0578063af1ef0ae146103b5578063b4a56624146103e1578063ba46c19b1461041a578063bc197c8114610446578063bf04dc6014610631576101c0565b80637341716611610123578063734171661461029f5780637b2c835f146102b45780638bf3133e146102e05780638da5cb5b1461030c5780639105d17a1461033d5780639d4b8bd11461038b576101c0565b806301ffc9a7146101c557806336bca9a51461020d5780633ccfd60b1461024b578063425aef19146102605780635dc96d1614610275578063715018a61461028a576101c0565b366101c0576003546201000090046001600160a01b031633146101be5760405162461bcd60e51b815260040180806020018281038252602881526020018061215e6028913960400191505060405180910390fd5b005b600080fd5b3480156101d157600080fd5b506101f9600480360360208110156101e857600080fd5b50356001600160e01b0319166109dc565b604080519115158252519081900360200190f35b6102396004803603604081101561022357600080fd5b50803590602001356001600160a01b03166109fb565b60408051918252519081900360200190f35b34801561025757600080fd5b506101be610dcf565b34801561026c57600080fd5b506101be610e60565b34801561028157600080fd5b506101f9610f2c565b34801561029657600080fd5b506101be610f35565b3480156102ab57600080fd5b506101be610fe1565b3480156102c057600080fd5b506101be600480360360208110156102d757600080fd5b503515156110d8565b3480156102ec57600080fd5b506101be6004803603602081101561030357600080fd5b5035151561114d565b34801561031857600080fd5b50610321611227565b604080516001600160a01b039092168252519081900360200190f35b34801561034957600080fd5b50610352611236565b604051808261036080838360005b83811015610378578181015183820152602001610360565b5050505090500191505060405180910390f35b34801561039757600080fd5b506101f9611374565b3480156103ac57600080fd5b50610321611382565b3480156103c157600080fd5b506101be600480360360208110156103d857600080fd5b50351515611397565b3480156103ed57600080fd5b506101be6004803603604081101561040457600080fd5b50803590602001356001600160a01b0316611413565b34801561042657600080fd5b506101be6004803603602081101561043d57600080fd5b5035151561173c565b34801561045257600080fd5b50610614600480360360a081101561046957600080fd5b6001600160a01b038235811692602081013590911691810190606081016040820135600160201b81111561049c57600080fd5b8201836020820111156104ae57600080fd5b803590602001918460208302840111600160201b831117156104cf57600080fd5b9190808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152509295949360208101935035915050600160201b81111561051e57600080fd5b82018360208201111561053057600080fd5b803590602001918460208302840111600160201b8311171561055157600080fd5b9190808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152509295949360208101935035915050600160201b8111156105a057600080fd5b8201836020820111156105b257600080fd5b803590602001918460018302840111600160201b831117156105d357600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295506117fb945050505050565b604080516001600160e01b03199092168252519081900360200190f35b34801561063d57600080fd5b506101be6004803603602081101561065457600080fd5b810190602081018135600160201b81111561066e57600080fd5b82018360208201111561068057600080fd5b803590602001918460018302840111600160201b831117156106a157600080fd5b91908080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092955061180c945050505050565b3480156106ee57600080fd5b506101be6004803603602081101561070557600080fd5b810190602081018135600160201b81111561071f57600080fd5b82018360208201111561073157600080fd5b803590602001918460018302840111600160201b8311171561075257600080fd5b91908080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092955061191f945050505050565b34801561079f57600080fd5b50610239600480360360208110156107b657600080fd5b50356119e3565b3480156107c957600080fd5b506101be600480360360208110156107e057600080fd5b50356001600160a01b03166119f5565b3480156107fc57600080fd5b50610614600480360360a081101561081357600080fd5b6001600160a01b03823581169260208101359091169160408201359160608101359181019060a081016080820135600160201b81111561085257600080fd5b82018360208201111561086457600080fd5b803590602001918460018302840111600160201b8311171561088557600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550611abb945050505050565b3480156108d257600080fd5b506101be600480360360208110156108e957600080fd5b50356001600160a01b0316611acc565b34801561090557600080fd5b506101be6004803603604081101561091c57600080fd5b5080359060200135611bce565b34801561093557600080fd5b506101be6004803603604081101561094c57600080fd5b810190602081018135600160201b81111561096657600080fd5b82018360208201111561097857600080fd5b803590602001918460018302840111600160201b8311171561099957600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295505091359250611f60915050565b6001600160e01b03191660009081526001602052604090205460ff1690565b6000600280541415610a54576040805162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015290519081900360640190fd5b60028055600354610100900460ff16610aab576040805162461bcd60e51b8152602060048201526014602482015273141c9a5b9d1a5b99c81a5cc8191a5cd8589b195960621b604482015290519081900360640190fd5b6000610ab74734612097565b600085815260046020526040902054909150610b10576040805162461bcd60e51b815260206004820152601360248201527214d9595908191bd95cc81b9bdd08195e1a5cdd606a1b604482015290519081900360640190fd5b610b1a8484611413565b6000848152600460208190526040808320546003548251631946c7b960e11b815260019481019490945291519093620100009092046001600160a01b03169263328d8f7292602480830193919282900301818387803b158015610b7c57600080fd5b505af1158015610b90573d6000803e3d6000fd5b50505050600360029054906101000a90046001600160a01b03166001600160a01b0316635c86f2c834876040518363ffffffff1660e01b8152600401808281526020019150506020604051808303818588803b158015610bef57600080fd5b505af1158015610c03573d6000803e3d6000fd5b50505050506040513d6020811015610c1a57600080fd5b505060035460408051631946c7b960e11b81526000600482018190529151620100009093046001600160a01b03169263328d8f729260248084019391929182900301818387803b158015610c6d57600080fd5b505af1158015610c81573d6000803e3d6000fd5b505060035460408051637921219560e11b8152306004820152336024820152604481018690526001606482015260a06084820152600060a482018190529151620100009093046001600160a01b0316945063f242432a935060c4808201939182900301818387803b158015610cf557600080fd5b505af1158015610d09573d6000803e3d6000fd5b505050506000610d22834761209790919063ffffffff16565b90508015610dc157604051600090339083908381818185875af1925050503d8060008114610d6c576040519150601f19603f3d011682016040523d82523d6000602084013e610d71565b606091505b5050905080610dbf576040805162461bcd60e51b81526020600482015260156024820152741499599d5b99081c185e5b595b9d0819985a5b1959605a1b604482015290519081900360640190fd5b505b506001600255949350505050565b610dd76120f4565b6001600160a01b0316610de8611227565b6001600160a01b031614610e31576040805162461bcd60e51b8152602060048201819052602482015260008051602061213e833981519152604482015290519081900360640190fd5b60405133904780156108fc02916000818181858888f19350505050158015610e5d573d6000803e3d6000fd5b50565b610e686120f4565b6001600160a01b0316610e79611227565b6001600160a01b031614610ec2576040805162461bcd60e51b8152602060048201819052602482015260008051602061213e833981519152604482015290519081900360640190fd5b600360029054906101000a90046001600160a01b03166001600160a01b031663b81f78886040518163ffffffff1660e01b8152600401600060405180830381600087803b158015610f1257600080fd5b505af1158015610f26573d6000803e3d6000fd5b50505050565b60035460ff1681565b610f3d6120f4565b6001600160a01b0316610f4e611227565b6001600160a01b031614610f97576040805162461bcd60e51b8152602060048201819052602482015260008051602061213e833981519152604482015290519081900360640190fd5b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b610fe96120f4565b6001600160a01b0316610ffa611227565b6001600160a01b031614611043576040805162461bcd60e51b8152602060048201819052602482015260008051602061213e833981519152604482015290519081900360640190fd5b600360029054906101000a90046001600160a01b03166001600160a01b0316633ccfd60b6040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561109357600080fd5b505af11580156110a7573d6000803e3d6000fd5b50506040513392504780156108fc029250906000818181858888f19350505050158015610e5d573d6000803e3d6000fd5b6110e06120f4565b6001600160a01b03166110f1611227565b6001600160a01b03161461113a576040805162461bcd60e51b8152602060048201819052602482015260008051602061213e833981519152604482015290519081900360640190fd5b6003805460ff1916911515919091179055565b6111556120f4565b6001600160a01b0316611166611227565b6001600160a01b0316146111af576040805162461bcd60e51b8152602060048201819052602482015260008051602061213e833981519152604482015290519081900360640190fd5b600360029054906101000a90046001600160a01b03166001600160a01b031663211e28b6826040518263ffffffff1660e01b8152600401808215158152602001915050600060405180830381600087803b15801561120c57600080fd5b505af1158015611220573d6000803e3d6000fd5b5050505050565b6000546001600160a01b031690565b61123e6120f8565b604051806103600160405280640506060502815260200164043405070381526020016403020203028152602001640511000303815260200164052a0a060381526020016402140807038152602001640535010503815260200164042405080381526020016321090900815260200164041100090081526020016403380a090381526020016403030602008152602001640214070301815260200164012608010381526020016402050107008152602001640321080302815260200164031d0304038152602001640422050b0381526020016405070102008152602001640125050203815260200164010601050381526020016403280404038152602001631c0a09038152602001640425020b03815260200164022400090381526020016402300808028152602001640532070401815250905090565b600354610100900460ff1681565b6003546201000090046001600160a01b031681565b61139f6120f4565b6001600160a01b03166113b0611227565b6001600160a01b0316146113f9576040805162461bcd60e51b8152602060048201819052602482015260008051602061213e833981519152604482015290519081900360640190fd5b600380549115156101000261ff0019909216919091179055565b600082815260046020526040902054611469576040805162461bcd60e51b815260206004820152601360248201527214d9595908191bd95cc81b9bdd08195e1a5cdd606a1b604482015290519081900360640190fd5b60035460408051627eeac760e11b81526001600160a01b038481166004830152602482018690529151620100009093049091169162fdd58e91604480820192602092909190829003018186803b1580156114c257600080fd5b505afa1580156114d6573d6000803e3d6000fd5b505050506040513d60208110156114ec57600080fd5b5051600114611539576040805162461bcd60e51b815260206004820152601460248201527324b731b7b93932b1ba1039b2b2b21037bbb732b960611b604482015290519081900360640190fd5b6003546040805163425af37360e01b81526004810185905290516000926201000090046001600160a01b03169163425af373916024808301926020929190829003018186803b15801561158b57600080fd5b505afa15801561159f573d6000803e3d6000fd5b505050506040513d60208110156115b557600080fd5b505190506001600160a01b03808216908316146117375760035460408051637921219560e11b81523060048201526001600160a01b0385811660248301526044820187905260006064830181905260a0608484015260a48301819052925162010000909404169263f242432a9260c48084019391929182900301818387803b15801561164057600080fd5b505af1158015611654573d6000803e3d6000fd5b50505050816001600160a01b0316600360029054906101000a90046001600160a01b03166001600160a01b031663425af373856040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b1580156116bb57600080fd5b505afa1580156116cf573d6000803e3d6000fd5b505050506040513d60208110156116e557600080fd5b50516001600160a01b031614611737576040805162461bcd60e51b815260206004820152601260248201527124b73b30b634b21039b2b2b21037bbb732b960711b604482015290519081900360640190fd5b505050565b6117446120f4565b6001600160a01b0316611755611227565b6001600160a01b03161461179e576040805162461bcd60e51b8152602060048201819052602482015260008051602061213e833981519152604482015290519081900360640190fd5b600360029054906101000a90046001600160a01b03166001600160a01b031663328d8f72826040518263ffffffff1660e01b8152600401808215158152602001915050600060405180830381600087803b15801561120c57600080fd5b63bc197c8160e01b95945050505050565b6118146120f4565b6001600160a01b0316611825611227565b6001600160a01b03161461186e576040805162461bcd60e51b8152602060048201819052602482015260008051602061213e833981519152604482015290519081900360640190fd5b6003546040516302fe530560e01b8152602060048201818152845160248401528451620100009094046001600160a01b0316936302fe530593869383926044909201919085019080838360005b838110156118d35781810151838201526020016118bb565b50505050905090810190601f1680156119005780820380516001836020036101000a031916815260200191505b5092505050600060405180830381600087803b15801561120c57600080fd5b6119276120f4565b6001600160a01b0316611938611227565b6001600160a01b031614611981576040805162461bcd60e51b8152602060048201819052602482015260008051602061213e833981519152604482015290519081900360640190fd5b600354604051637c84084760e11b8152602060048201818152845160248401528451620100009094046001600160a01b03169363f908108e938693839260449092019190850190808383600083156118d35781810151838201526020016118bb565b60046020526000908152604090205481565b6119fd6120f4565b6001600160a01b0316611a0e611227565b6001600160a01b031614611a57576040805162461bcd60e51b8152602060048201819052602482015260008051602061213e833981519152604482015290519081900360640190fd5b600360029054906101000a90046001600160a01b03166001600160a01b031663f2fde38b826040518263ffffffff1660e01b815260040180826001600160a01b03168152602001915050600060405180830381600087803b15801561120c57600080fd5b63f23a6e6160e01b95945050505050565b611ad46120f4565b6001600160a01b0316611ae5611227565b6001600160a01b031614611b2e576040805162461bcd60e51b8152602060048201819052602482015260008051602061213e833981519152604482015290519081900360640190fd5b6001600160a01b038116611b735760405162461bcd60e51b81526004018080602001828103825260268152602001806121186026913960400191505060405180910390fd5b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b600280541415611c25576040805162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015290519081900360640190fd5b6002805560035460ff16611c76576040805162461bcd60e51b8152602060048201526013602482015272109d5c9b9a5b99c81a5cc8191a5cd8589b1959606a1b604482015290519081900360640190fd5b6000828152600460205260409020544790611cce576040805162461bcd60e51b815260206004820152601360248201527214d9595908191bd95cc81b9bdd08195e1a5cdd606a1b604482015290519081900360640190fd5b6000838152600460208190526040808320546003548251637921219560e11b81523394810194909452306024850152604484018290526001606485015260a0608485015260a4840185905291519093620100009092046001600160a01b03169263f242432a9260c480830193919282900301818387803b158015611d5157600080fd5b505af1158015611d65573d6000803e3d6000fd5b505060035460408051631946c7b960e11b8152600160048201529051620100009092046001600160a01b0316935063328d8f72925060248082019260009290919082900301818387803b158015611dbb57600080fd5b505af1158015611dcf573d6000803e3d6000fd5b50505050600360029054906101000a90046001600160a01b03166001600160a01b031663f9c894a885856040518363ffffffff1660e01b81526004018083815260200182815260200192505050600060405180830381600087803b158015611e3657600080fd5b505af1158015611e4a573d6000803e3d6000fd5b505060035460408051631946c7b960e11b81526000600482018190529151620100009093046001600160a01b0316945063328d8f7293506024808201939182900301818387803b158015611e9d57600080fd5b505af1158015611eb1573d6000803e3d6000fd5b5060009250339150611ec590504785612097565b604051600081818185875af1925050503d8060008114611f01576040519150601f19603f3d011682016040523d82523d6000602084013e611f06565b606091505b5050905080611f54576040805162461bcd60e51b81526020600482015260156024820152741499599d5b99081c185e5b595b9d0819985a5b1959605a1b604482015290519081900360640190fd5b50506001600255505050565b611f686120f4565b6001600160a01b0316611f79611227565b6001600160a01b031614611fc2576040805162461bcd60e51b8152602060048201819052602482015260008051602061213e833981519152604482015290519081900360640190fd5b600354604080516302802a1960e41b81526024810184905260048101918252845160448201528451620100009093046001600160a01b031692632802a1909286928692829160640190602086019080838360005b8381101561202e578181015183820152602001612016565b50505050905090810190601f16801561205b5780820380516001836020036101000a031916815260200191505b509350505050600060405180830381600087803b15801561207b57600080fd5b505af115801561208f573d6000803e3d6000fd5b505050505050565b6000828211156120ee576040805162461bcd60e51b815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b50900390565b3390565b604051806103600160405280601b90602082028036833750919291505056fe4f776e61626c653a206e6577206f776e657220697320746865207a65726f20616464726573734f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65724f6e6c792045756c6572426561747320616c6c6f77656420746f2073656e64204554482068657265a26469706673582212208ef580e5ff2686fefd231e35ac4d8e230b6eacaada9db1675519013ff0363cbf64736f6c634300070600330000000000000000000000008754f54074400ce745a7ceddc928fb1b7e985ed6
Deployed Bytecode
0x60806040526004361061016a5760003560e01c8063a2984ecc116100d1578063d04205d71161008a578063f23a6e6111610064578063f23a6e61146107f0578063f2fde38b146108c6578063f9c894a8146108f9578063fe6bc7b214610929576101c0565b8063d04205d7146106e2578063d270c16b14610793578063d2bc015d146107bd576101c0565b8063a2984ecc146103a0578063af1ef0ae146103b5578063b4a56624146103e1578063ba46c19b1461041a578063bc197c8114610446578063bf04dc6014610631576101c0565b80637341716611610123578063734171661461029f5780637b2c835f146102b45780638bf3133e146102e05780638da5cb5b1461030c5780639105d17a1461033d5780639d4b8bd11461038b576101c0565b806301ffc9a7146101c557806336bca9a51461020d5780633ccfd60b1461024b578063425aef19146102605780635dc96d1614610275578063715018a61461028a576101c0565b366101c0576003546201000090046001600160a01b031633146101be5760405162461bcd60e51b815260040180806020018281038252602881526020018061215e6028913960400191505060405180910390fd5b005b600080fd5b3480156101d157600080fd5b506101f9600480360360208110156101e857600080fd5b50356001600160e01b0319166109dc565b604080519115158252519081900360200190f35b6102396004803603604081101561022357600080fd5b50803590602001356001600160a01b03166109fb565b60408051918252519081900360200190f35b34801561025757600080fd5b506101be610dcf565b34801561026c57600080fd5b506101be610e60565b34801561028157600080fd5b506101f9610f2c565b34801561029657600080fd5b506101be610f35565b3480156102ab57600080fd5b506101be610fe1565b3480156102c057600080fd5b506101be600480360360208110156102d757600080fd5b503515156110d8565b3480156102ec57600080fd5b506101be6004803603602081101561030357600080fd5b5035151561114d565b34801561031857600080fd5b50610321611227565b604080516001600160a01b039092168252519081900360200190f35b34801561034957600080fd5b50610352611236565b604051808261036080838360005b83811015610378578181015183820152602001610360565b5050505090500191505060405180910390f35b34801561039757600080fd5b506101f9611374565b3480156103ac57600080fd5b50610321611382565b3480156103c157600080fd5b506101be600480360360208110156103d857600080fd5b50351515611397565b3480156103ed57600080fd5b506101be6004803603604081101561040457600080fd5b50803590602001356001600160a01b0316611413565b34801561042657600080fd5b506101be6004803603602081101561043d57600080fd5b5035151561173c565b34801561045257600080fd5b50610614600480360360a081101561046957600080fd5b6001600160a01b038235811692602081013590911691810190606081016040820135600160201b81111561049c57600080fd5b8201836020820111156104ae57600080fd5b803590602001918460208302840111600160201b831117156104cf57600080fd5b9190808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152509295949360208101935035915050600160201b81111561051e57600080fd5b82018360208201111561053057600080fd5b803590602001918460208302840111600160201b8311171561055157600080fd5b9190808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152509295949360208101935035915050600160201b8111156105a057600080fd5b8201836020820111156105b257600080fd5b803590602001918460018302840111600160201b831117156105d357600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295506117fb945050505050565b604080516001600160e01b03199092168252519081900360200190f35b34801561063d57600080fd5b506101be6004803603602081101561065457600080fd5b810190602081018135600160201b81111561066e57600080fd5b82018360208201111561068057600080fd5b803590602001918460018302840111600160201b831117156106a157600080fd5b91908080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092955061180c945050505050565b3480156106ee57600080fd5b506101be6004803603602081101561070557600080fd5b810190602081018135600160201b81111561071f57600080fd5b82018360208201111561073157600080fd5b803590602001918460018302840111600160201b8311171561075257600080fd5b91908080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092955061191f945050505050565b34801561079f57600080fd5b50610239600480360360208110156107b657600080fd5b50356119e3565b3480156107c957600080fd5b506101be600480360360208110156107e057600080fd5b50356001600160a01b03166119f5565b3480156107fc57600080fd5b50610614600480360360a081101561081357600080fd5b6001600160a01b03823581169260208101359091169160408201359160608101359181019060a081016080820135600160201b81111561085257600080fd5b82018360208201111561086457600080fd5b803590602001918460018302840111600160201b8311171561088557600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550611abb945050505050565b3480156108d257600080fd5b506101be600480360360208110156108e957600080fd5b50356001600160a01b0316611acc565b34801561090557600080fd5b506101be6004803603604081101561091c57600080fd5b5080359060200135611bce565b34801561093557600080fd5b506101be6004803603604081101561094c57600080fd5b810190602081018135600160201b81111561096657600080fd5b82018360208201111561097857600080fd5b803590602001918460018302840111600160201b8311171561099957600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295505091359250611f60915050565b6001600160e01b03191660009081526001602052604090205460ff1690565b6000600280541415610a54576040805162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015290519081900360640190fd5b60028055600354610100900460ff16610aab576040805162461bcd60e51b8152602060048201526014602482015273141c9a5b9d1a5b99c81a5cc8191a5cd8589b195960621b604482015290519081900360640190fd5b6000610ab74734612097565b600085815260046020526040902054909150610b10576040805162461bcd60e51b815260206004820152601360248201527214d9595908191bd95cc81b9bdd08195e1a5cdd606a1b604482015290519081900360640190fd5b610b1a8484611413565b6000848152600460208190526040808320546003548251631946c7b960e11b815260019481019490945291519093620100009092046001600160a01b03169263328d8f7292602480830193919282900301818387803b158015610b7c57600080fd5b505af1158015610b90573d6000803e3d6000fd5b50505050600360029054906101000a90046001600160a01b03166001600160a01b0316635c86f2c834876040518363ffffffff1660e01b8152600401808281526020019150506020604051808303818588803b158015610bef57600080fd5b505af1158015610c03573d6000803e3d6000fd5b50505050506040513d6020811015610c1a57600080fd5b505060035460408051631946c7b960e11b81526000600482018190529151620100009093046001600160a01b03169263328d8f729260248084019391929182900301818387803b158015610c6d57600080fd5b505af1158015610c81573d6000803e3d6000fd5b505060035460408051637921219560e11b8152306004820152336024820152604481018690526001606482015260a06084820152600060a482018190529151620100009093046001600160a01b0316945063f242432a935060c4808201939182900301818387803b158015610cf557600080fd5b505af1158015610d09573d6000803e3d6000fd5b505050506000610d22834761209790919063ffffffff16565b90508015610dc157604051600090339083908381818185875af1925050503d8060008114610d6c576040519150601f19603f3d011682016040523d82523d6000602084013e610d71565b606091505b5050905080610dbf576040805162461bcd60e51b81526020600482015260156024820152741499599d5b99081c185e5b595b9d0819985a5b1959605a1b604482015290519081900360640190fd5b505b506001600255949350505050565b610dd76120f4565b6001600160a01b0316610de8611227565b6001600160a01b031614610e31576040805162461bcd60e51b8152602060048201819052602482015260008051602061213e833981519152604482015290519081900360640190fd5b60405133904780156108fc02916000818181858888f19350505050158015610e5d573d6000803e3d6000fd5b50565b610e686120f4565b6001600160a01b0316610e79611227565b6001600160a01b031614610ec2576040805162461bcd60e51b8152602060048201819052602482015260008051602061213e833981519152604482015290519081900360640190fd5b600360029054906101000a90046001600160a01b03166001600160a01b031663b81f78886040518163ffffffff1660e01b8152600401600060405180830381600087803b158015610f1257600080fd5b505af1158015610f26573d6000803e3d6000fd5b50505050565b60035460ff1681565b610f3d6120f4565b6001600160a01b0316610f4e611227565b6001600160a01b031614610f97576040805162461bcd60e51b8152602060048201819052602482015260008051602061213e833981519152604482015290519081900360640190fd5b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b610fe96120f4565b6001600160a01b0316610ffa611227565b6001600160a01b031614611043576040805162461bcd60e51b8152602060048201819052602482015260008051602061213e833981519152604482015290519081900360640190fd5b600360029054906101000a90046001600160a01b03166001600160a01b0316633ccfd60b6040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561109357600080fd5b505af11580156110a7573d6000803e3d6000fd5b50506040513392504780156108fc029250906000818181858888f19350505050158015610e5d573d6000803e3d6000fd5b6110e06120f4565b6001600160a01b03166110f1611227565b6001600160a01b03161461113a576040805162461bcd60e51b8152602060048201819052602482015260008051602061213e833981519152604482015290519081900360640190fd5b6003805460ff1916911515919091179055565b6111556120f4565b6001600160a01b0316611166611227565b6001600160a01b0316146111af576040805162461bcd60e51b8152602060048201819052602482015260008051602061213e833981519152604482015290519081900360640190fd5b600360029054906101000a90046001600160a01b03166001600160a01b031663211e28b6826040518263ffffffff1660e01b8152600401808215158152602001915050600060405180830381600087803b15801561120c57600080fd5b505af1158015611220573d6000803e3d6000fd5b5050505050565b6000546001600160a01b031690565b61123e6120f8565b604051806103600160405280640506060502815260200164043405070381526020016403020203028152602001640511000303815260200164052a0a060381526020016402140807038152602001640535010503815260200164042405080381526020016321090900815260200164041100090081526020016403380a090381526020016403030602008152602001640214070301815260200164012608010381526020016402050107008152602001640321080302815260200164031d0304038152602001640422050b0381526020016405070102008152602001640125050203815260200164010601050381526020016403280404038152602001631c0a09038152602001640425020b03815260200164022400090381526020016402300808028152602001640532070401815250905090565b600354610100900460ff1681565b6003546201000090046001600160a01b031681565b61139f6120f4565b6001600160a01b03166113b0611227565b6001600160a01b0316146113f9576040805162461bcd60e51b8152602060048201819052602482015260008051602061213e833981519152604482015290519081900360640190fd5b600380549115156101000261ff0019909216919091179055565b600082815260046020526040902054611469576040805162461bcd60e51b815260206004820152601360248201527214d9595908191bd95cc81b9bdd08195e1a5cdd606a1b604482015290519081900360640190fd5b60035460408051627eeac760e11b81526001600160a01b038481166004830152602482018690529151620100009093049091169162fdd58e91604480820192602092909190829003018186803b1580156114c257600080fd5b505afa1580156114d6573d6000803e3d6000fd5b505050506040513d60208110156114ec57600080fd5b5051600114611539576040805162461bcd60e51b815260206004820152601460248201527324b731b7b93932b1ba1039b2b2b21037bbb732b960611b604482015290519081900360640190fd5b6003546040805163425af37360e01b81526004810185905290516000926201000090046001600160a01b03169163425af373916024808301926020929190829003018186803b15801561158b57600080fd5b505afa15801561159f573d6000803e3d6000fd5b505050506040513d60208110156115b557600080fd5b505190506001600160a01b03808216908316146117375760035460408051637921219560e11b81523060048201526001600160a01b0385811660248301526044820187905260006064830181905260a0608484015260a48301819052925162010000909404169263f242432a9260c48084019391929182900301818387803b15801561164057600080fd5b505af1158015611654573d6000803e3d6000fd5b50505050816001600160a01b0316600360029054906101000a90046001600160a01b03166001600160a01b031663425af373856040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b1580156116bb57600080fd5b505afa1580156116cf573d6000803e3d6000fd5b505050506040513d60208110156116e557600080fd5b50516001600160a01b031614611737576040805162461bcd60e51b815260206004820152601260248201527124b73b30b634b21039b2b2b21037bbb732b960711b604482015290519081900360640190fd5b505050565b6117446120f4565b6001600160a01b0316611755611227565b6001600160a01b03161461179e576040805162461bcd60e51b8152602060048201819052602482015260008051602061213e833981519152604482015290519081900360640190fd5b600360029054906101000a90046001600160a01b03166001600160a01b031663328d8f72826040518263ffffffff1660e01b8152600401808215158152602001915050600060405180830381600087803b15801561120c57600080fd5b63bc197c8160e01b95945050505050565b6118146120f4565b6001600160a01b0316611825611227565b6001600160a01b03161461186e576040805162461bcd60e51b8152602060048201819052602482015260008051602061213e833981519152604482015290519081900360640190fd5b6003546040516302fe530560e01b8152602060048201818152845160248401528451620100009094046001600160a01b0316936302fe530593869383926044909201919085019080838360005b838110156118d35781810151838201526020016118bb565b50505050905090810190601f1680156119005780820380516001836020036101000a031916815260200191505b5092505050600060405180830381600087803b15801561120c57600080fd5b6119276120f4565b6001600160a01b0316611938611227565b6001600160a01b031614611981576040805162461bcd60e51b8152602060048201819052602482015260008051602061213e833981519152604482015290519081900360640190fd5b600354604051637c84084760e11b8152602060048201818152845160248401528451620100009094046001600160a01b03169363f908108e938693839260449092019190850190808383600083156118d35781810151838201526020016118bb565b60046020526000908152604090205481565b6119fd6120f4565b6001600160a01b0316611a0e611227565b6001600160a01b031614611a57576040805162461bcd60e51b8152602060048201819052602482015260008051602061213e833981519152604482015290519081900360640190fd5b600360029054906101000a90046001600160a01b03166001600160a01b031663f2fde38b826040518263ffffffff1660e01b815260040180826001600160a01b03168152602001915050600060405180830381600087803b15801561120c57600080fd5b63f23a6e6160e01b95945050505050565b611ad46120f4565b6001600160a01b0316611ae5611227565b6001600160a01b031614611b2e576040805162461bcd60e51b8152602060048201819052602482015260008051602061213e833981519152604482015290519081900360640190fd5b6001600160a01b038116611b735760405162461bcd60e51b81526004018080602001828103825260268152602001806121186026913960400191505060405180910390fd5b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b600280541415611c25576040805162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015290519081900360640190fd5b6002805560035460ff16611c76576040805162461bcd60e51b8152602060048201526013602482015272109d5c9b9a5b99c81a5cc8191a5cd8589b1959606a1b604482015290519081900360640190fd5b6000828152600460205260409020544790611cce576040805162461bcd60e51b815260206004820152601360248201527214d9595908191bd95cc81b9bdd08195e1a5cdd606a1b604482015290519081900360640190fd5b6000838152600460208190526040808320546003548251637921219560e11b81523394810194909452306024850152604484018290526001606485015260a0608485015260a4840185905291519093620100009092046001600160a01b03169263f242432a9260c480830193919282900301818387803b158015611d5157600080fd5b505af1158015611d65573d6000803e3d6000fd5b505060035460408051631946c7b960e11b8152600160048201529051620100009092046001600160a01b0316935063328d8f72925060248082019260009290919082900301818387803b158015611dbb57600080fd5b505af1158015611dcf573d6000803e3d6000fd5b50505050600360029054906101000a90046001600160a01b03166001600160a01b031663f9c894a885856040518363ffffffff1660e01b81526004018083815260200182815260200192505050600060405180830381600087803b158015611e3657600080fd5b505af1158015611e4a573d6000803e3d6000fd5b505060035460408051631946c7b960e11b81526000600482018190529151620100009093046001600160a01b0316945063328d8f7293506024808201939182900301818387803b158015611e9d57600080fd5b505af1158015611eb1573d6000803e3d6000fd5b5060009250339150611ec590504785612097565b604051600081818185875af1925050503d8060008114611f01576040519150601f19603f3d011682016040523d82523d6000602084013e611f06565b606091505b5050905080611f54576040805162461bcd60e51b81526020600482015260156024820152741499599d5b99081c185e5b595b9d0819985a5b1959605a1b604482015290519081900360640190fd5b50506001600255505050565b611f686120f4565b6001600160a01b0316611f79611227565b6001600160a01b031614611fc2576040805162461bcd60e51b8152602060048201819052602482015260008051602061213e833981519152604482015290519081900360640190fd5b600354604080516302802a1960e41b81526024810184905260048101918252845160448201528451620100009093046001600160a01b031692632802a1909286928692829160640190602086019080838360005b8381101561202e578181015183820152602001612016565b50505050905090810190601f16801561205b5780820380516001836020036101000a031916815260200191505b509350505050600060405180830381600087803b15801561207b57600080fd5b505af115801561208f573d6000803e3d6000fd5b505050505050565b6000828211156120ee576040805162461bcd60e51b815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b50900390565b3390565b604051806103600160405280601b90602082028036833750919291505056fe4f776e61626c653a206e6577206f776e657220697320746865207a65726f20616464726573734f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65724f6e6c792045756c6572426561747320616c6c6f77656420746f2073656e64204554482068657265a26469706673582212208ef580e5ff2686fefd231e35ac4d8e230b6eacaada9db1675519013ff0363cbf64736f6c63430007060033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
0000000000000000000000008754f54074400ce745a7ceddc928fb1b7e985ed6
-----Decoded View---------------
Arg [0] : _parent (address): 0x8754F54074400CE745a7CEddC928FB1b7E985eD6
-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 0000000000000000000000008754f54074400ce745a7ceddc928fb1b7e985ed6
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 30 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|
Loading...
Loading
[ Download: CSV Export ]
[ 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.