Contract 0x5b70D3D52726d7aA02aEc79Ca1bE84c2e027f1a0

 
 
Txn Hash
Method
Block
From
To
Value
0xdc929ad84cccbaf00e6600181db30f7ac70fffa09dbec80dd716fe2588f3b7af0x60806040150541872022-07-01 3:30:22157 days 17 hrs agoCHROMA3: Deployer IN  Create: EuclidFormula0 Ether0.06218792 22.09277139
[ Download CSV Export 
Parent Txn Hash Block From To Value
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
EuclidFormula

Compiler Version
v0.8.15+commit.e14f2714

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion
File 1 of 4 : EuclidFormula.sol
// SPDX-License-Identifier: MIT
//
//  ********  **     **    ******   **        **  *******  
// /**/////  /**    /**   **////** /**       /** /**////** 
// /**       /**    /**  **    //  /**       /** /**    /**
// /*******  /**    /** /**        /**       /** /**    /**
// /**////   /**    /** /**        /**       /** /**    /**
// /**       /**    /** //**    ** /**       /** /**    ** 
// /******** //*******   //******  /******** /** /*******  
// ////////   ///////     //////   ////////  //  ///////   
//
// by collect-code 2022
// https://collect-code.com/
//
pragma solidity ^0.8.2;
import "@openzeppelin/contracts/utils/Strings.sol";
import "./IEuclidRandomizer.sol";
import "./IEuclidFormula.sol";

contract EuclidFormula is IEuclidFormula {
	using Strings for uint32;

	IEuclidRandomizer randomizer;

	constructor(address randomizer_) {
		randomizer = IEuclidRandomizer(randomizer_);
	}

	function generateFormula(uint128 hash, uint256 tokenId) public view override returns (string memory) {
		IEuclidRandomizer.RandomizerState memory rnd = randomizer.initialize(hash);
		uint8[6] memory supplyData = supplyDataFromTokenId(tokenId);
		bytes memory formula;
		// palette
		rnd = randomizer.getInt(rnd, supplyData[0]);
		uint32 pa = rnd.value;
		formula = abi.encodePacked(formula, 'pa', pa.toString());
		// shape count
		rnd = randomizer.getIntRange(rnd, supplyData[2], supplyData[3]+1);
		uint32 shapeCount = rnd.value;
		// attribute draw
		uint32 drawCount = 9 + 3 * shapeCount;
		uint32[] memory indices = new uint32[](drawCount);
		uint32[] memory draw = new uint32[](supplyData[5]);
		for (uint32 i = 0; i < indices.length ; i++) indices[i] = i;
		for (uint32 i = 0; i < draw.length ; i++) {
			rnd = randomizer.getIntRange(rnd, i, uint32(indices.length));
			draw[i] = indices[rnd.value];
			indices[rnd.value] = i;
		}
		uint8 drawing;
		bytes1 propValue;
		// prop: bg
		(rnd, propValue) = drawProp(rnd, drawing++, draw, bytes(pa==0?'01234568A':pa==1?'0123678A':pa==2?'02459':pa==3?'499999':pa==4?'02345A':pa==5?'01345A':pa==6?'0123457A':pa==7?'012367A':pa==8?'045':'012345678A'));
		formula = abi.encodePacked(formula, '.bg', propValue);
		// prop: ma
		(rnd, propValue) = drawProp(rnd, drawing++, draw, bytes(pa==3?'0000112':'00001123'));
		formula = abi.encodePacked(formula, '.ma', propValue);
		// prop: tr
		(rnd, propValue) = drawProp(rnd, drawing++, draw, bytes(pa==1?'022233':pa==3?'01122233':'011222334566'));
		formula = abi.encodePacked(formula, '.tr', propValue);
		(rnd, propValue) = drawProp(rnd, drawing++, draw, bytes(pa==0?'01111':pa==3?'01111':pa==6?'02223':pa==7?'02223':'011113'));
		formula = abi.encodePacked(formula, propValue);
		(rnd, propValue) = drawProp(rnd, drawing++, draw, bytes(pa==3?'00':'0000003333334'));
		formula = abi.encodePacked(formula, propValue);
		(rnd, propValue) = drawProp(rnd, drawing++, draw, bytes(pa==3?'00':'0000001111'));
		formula = abi.encodePacked(formula, propValue);
		(rnd, propValue) = drawProp(rnd, drawing++, draw, '0000000123');
		formula = abi.encodePacked(formula, propValue);
		// prop: fx
		(rnd, propValue) = drawProp(rnd, drawing++, draw, bytes(pa==3?'0111111244445555':pa==6?'0111111244445555':pa==8?'5155544':'01111112344445555'));
		formula = abi.encodePacked(formula, '.fx', propValue);
		(rnd, propValue) = drawProp(rnd, drawing++, draw, bytes(pa==1?'02':pa==2?'02':pa==3?'02':pa==6?'013':'012'));
		formula = abi.encodePacked(formula, propValue);
		// prop: rn
		(rnd, propValue) = randomizeProp(rnd, 0, '0123456789ABCDEF');
		formula = abi.encodePacked(formula, '.rn', propValue);
		(rnd, propValue) = randomizeProp(rnd, 0, '0123456789ABCDEF');
		formula = abi.encodePacked(formula, propValue);
		// randomize shapes
		for (uint32 i = 0; i < shapeCount ; i++) {
			// shape type
			bytes1 baseShape;
			if (i == 0) {
				baseShape = bytes('CTQP')[tokenId % supplyData[1]];
			} else {
				rnd = randomizer.getInt(rnd, supplyData[1]);
				baseShape = bytes('CTQP')[rnd.value];
			}
			rnd = randomizer.getInt(rnd, supplyData[4]);
			bytes1 shapeVariant = bytes(baseShape=='T'?'04261537':baseShape=='Q'?'00112200':baseShape=='P'?'56678865':'00000000')[rnd.value];
			formula = abi.encodePacked(formula, '.sh', baseShape, shapeVariant);
			if (i > 0) {
				// prop: fr
				(rnd, propValue) = randomizeProp(rnd, 0, 'FFCCMMMMMMMIIAAA');
				formula = abi.encodePacked(formula, 'fr', propValue);
				(rnd, propValue) = randomizeProp(rnd, 0, '0123456789ABCDEF');
				formula = abi.encodePacked(formula, propValue);
				(rnd, propValue) = randomizeProp(rnd, 0, '0123456789ABCDEF');
				formula = abi.encodePacked(formula, propValue);
				(rnd, propValue) = randomizeProp(rnd, 0, '0123456789ABCDEF');
				formula = abi.encodePacked(formula, propValue);
			}
			// prop: in
			(rnd, propValue) = randomizeProp(rnd, 0, 'SDDT');
			formula = abi.encodePacked(formula, 'in', propValue);
			(rnd, propValue) = randomizeProp(rnd, 0, '0123456789ABCDEF');
			formula = abi.encodePacked(formula, propValue);
			(rnd, propValue) = randomizeProp(rnd, 0, '0123456789ABCDEF');
			formula = abi.encodePacked(formula, propValue);
			// prop: st
			(rnd, propValue) = drawProp(rnd, drawing++, draw, '012');
			formula = abi.encodePacked(formula, 'st', propValue);
			(rnd, propValue) = drawProp(rnd, drawing++, draw, '0123');
			formula = abi.encodePacked(formula, propValue);
			(rnd, propValue) = drawProp(rnd, drawing++, draw, '011223');
			formula = abi.encodePacked(formula, propValue);
			// prop: rn
			(rnd, propValue) = randomizeProp(rnd, 0, '0123456789ABCDEF');
			formula = abi.encodePacked(formula, 'rn', propValue);
			(rnd, propValue) = randomizeProp(rnd, 0, '0123456789ABCDEF');
			formula = abi.encodePacked(formula, propValue);
		}
		// done!
		return string(formula);
	}
	
	function supplyDataFromTokenId(uint256 tokenId) public pure returns (uint8[6] memory) {
		if (tokenId > 714) return [9, 4, 2, 5, 8, 12];
		if (tokenId > 273) return [7, 4, 1, 4, 8, 11];
		if (tokenId > 104) return [5, 4, 1, 3, 8, 10];
		if (tokenId > 40) return [4, 4, 1, 2, 4, 9];
		if (tokenId > 15) return [3, 4, 1, 2, 2, 8];
		if (tokenId > 6) return [2, 3, 1, 1, 1, 7];
		if (tokenId > 2) return [1, 3, 1, 1, 1, 6];
		return [1, 3, 1, 1, 1, 5];
	}
	
	function drawProp(IEuclidRandomizer.RandomizerState memory rnd, uint8 drawing, uint32[] memory draw, bytes memory values) internal view returns(IEuclidRandomizer.RandomizerState memory, bytes1) {
		uint8 i = 0;
		for (; i < draw.length; i++) if (drawing == draw[i]) break;
		if (i == draw.length) return (rnd, values[0]);
		return randomizeProp(rnd, 1, values);
	}
	
	function randomizeProp(IEuclidRandomizer.RandomizerState memory rnd, uint32 startIndex, bytes memory values) internal view returns(IEuclidRandomizer.RandomizerState memory, bytes1) {
		rnd = randomizer.getIntRange(rnd, startIndex, uint32(values.length));
		return (rnd, values[rnd.value]);
	}
}

File 2 of 4 : IEuclidRandomizer.sol
// SPDX-License-Identifier: MIT
//
//  ********  **     **    ******   **        **  *******  
// /**/////  /**    /**   **////** /**       /** /**////** 
// /**       /**    /**  **    //  /**       /** /**    /**
// /*******  /**    /** /**        /**       /** /**    /**
// /**////   /**    /** /**        /**       /** /**    /**
// /**       /**    /** //**    ** /**       /** /**    ** 
// /******** //*******   //******  /******** /** /*******  
// ////////   ///////     //////   ////////  //  ///////   
//
// by collect-code 2022
// https://collect-code.com/
//
pragma solidity ^0.8.2;

interface IEuclidRandomizer {

	struct RandomizerState {
		uint32[4] state;
		uint32 value;
	}

	function makeSeed(address contractAddress, address senderAddress, uint blockNumber, uint256 tokenNumber) external view returns (uint128) ;
	function initialize(uint128 seed) external pure returns (RandomizerState memory);
	function initialize(bytes16 seed) external pure returns (RandomizerState memory);
	function getNextValue(RandomizerState memory self) external pure returns (RandomizerState memory);
	function getInt(RandomizerState memory self, uint32 maxExclusive) external pure returns (RandomizerState memory);
	function getIntRange(RandomizerState memory self, uint32 minInclusive, uint32 maxExclusive) external pure returns (RandomizerState memory);
}

File 3 of 4 : IEuclidFormula.sol
// SPDX-License-Identifier: MIT
//
//  ********  **     **    ******   **        **  *******  
// /**/////  /**    /**   **////** /**       /** /**////** 
// /**       /**    /**  **    //  /**       /** /**    /**
// /*******  /**    /** /**        /**       /** /**    /**
// /**////   /**    /** /**        /**       /** /**    /**
// /**       /**    /** //**    ** /**       /** /**    ** 
// /******** //*******   //******  /******** /** /*******  
// ////////   ///////     //////   ////////  //  ///////   
//
// by collect-code 2022
// https://collect-code.com/
//
pragma solidity ^0.8.2;
import "@openzeppelin/contracts/utils/Strings.sol";
import "./IEuclidRandomizer.sol";

interface IEuclidFormula {
	function generateFormula(uint128 hash, uint256 tokenId) external view returns (string memory);
}

File 4 of 4 : Strings.sol
// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts v4.4.1 (utils/Strings.sol)

pragma solidity ^0.8.0;

/**
 * @dev String operations.
 */
library Strings {
    bytes16 private constant _HEX_SYMBOLS = "0123456789abcdef";

    /**
     * @dev Converts a `uint256` to its ASCII `string` decimal representation.
     */
    function toString(uint256 value) internal pure returns (string memory) {
        // Inspired by OraclizeAPI's implementation - MIT licence
        // https://github.com/oraclize/ethereum-api/blob/b42146b063c7d6ee1358846c198246239e9360e8/oraclizeAPI_0.4.25.sol

        if (value == 0) {
            return "0";
        }
        uint256 temp = value;
        uint256 digits;
        while (temp != 0) {
            digits++;
            temp /= 10;
        }
        bytes memory buffer = new bytes(digits);
        while (value != 0) {
            digits -= 1;
            buffer[digits] = bytes1(uint8(48 + uint256(value % 10)));
            value /= 10;
        }
        return string(buffer);
    }

    /**
     * @dev Converts a `uint256` to its ASCII `string` hexadecimal representation.
     */
    function toHexString(uint256 value) internal pure returns (string memory) {
        if (value == 0) {
            return "0x00";
        }
        uint256 temp = value;
        uint256 length = 0;
        while (temp != 0) {
            length++;
            temp >>= 8;
        }
        return toHexString(value, length);
    }

    /**
     * @dev Converts a `uint256` to its ASCII `string` hexadecimal representation with fixed length.
     */
    function toHexString(uint256 value, uint256 length) internal pure returns (string memory) {
        bytes memory buffer = new bytes(2 * length + 2);
        buffer[0] = "0";
        buffer[1] = "x";
        for (uint256 i = 2 * length + 1; i > 1; --i) {
            buffer[i] = _HEX_SYMBOLS[value & 0xf];
            value >>= 4;
        }
        require(value == 0, "Strings: hex length insufficient");
        return string(buffer);
    }
}

Settings
{
  "remappings": [],
  "optimizer": {
    "enabled": false,
    "runs": 200
  },
  "evmVersion": "london",
  "libraries": {},
  "outputSelection": {
    "*": {
      "*": [
        "evm.bytecode",
        "evm.deployedBytecode",
        "devdoc",
        "userdoc",
        "metadata",
        "abi"
      ]
    }
  }
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address","name":"randomizer_","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"uint128","name":"hash","type":"uint128"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"generateFormula","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"supplyDataFromTokenId","outputs":[{"internalType":"uint8[6]","name":"","type":"uint8[6]"}],"stateMutability":"pure","type":"function"}]

60806040523480156200001157600080fd5b5060405162003305380380620033058339818101604052810190620000379190620000e8565b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550506200011a565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620000b08262000083565b9050919050565b620000c281620000a3565b8114620000ce57600080fd5b50565b600081519050620000e281620000b7565b92915050565b6000602082840312156200010157620001006200007e565b5b60006200011184828501620000d1565b91505092915050565b6131db806200012a6000396000f3fe608060405234801561001057600080fd5b50600436106100365760003560e01c80639e36c5851461003b578063a654ca611461006b575b600080fd5b61005560048036038101906100509190612292565b61009b565b604051610062919061236b565b60405180910390f35b6100856004803603810190610080919061238d565b611c03565b6040516100929190612472565b60405180910390f35b606060008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166356db9ef1856040518263ffffffff1660e01b81526004016100f9919061249c565b60a060405180830381865afa158015610116573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061013a919061267e565b9050600061014784611c03565b9050606060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663591e5735848460006006811061019c5761019b6126ab565b5b60200201516040518363ffffffff1660e01b81526004016101be9291906127ef565b60a060405180830381865afa1580156101db573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101ff919061267e565b92506000836020015190508161021a8263ffffffff16611ead565b60405160200161022b9291906128e7565b604051602081830303815290604052915060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663290f1050858560026006811061028d5761028c6126ab565b5b60200201516001876003600681106102a8576102a76126ab565b5b60200201516102b79190612945565b6040518463ffffffff1660e01b81526004016102d59392919061297c565b60a060405180830381865afa1580156102f2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610316919061267e565b9350600084602001519050600081600361033091906129b3565b600961033c91906129f1565b905060008163ffffffff1667ffffffffffffffff8111156103605761035f6124bc565b5b60405190808252806020026020018201604052801561038e5781602001602082028036833780820191505090505b5090506000866005600681106103a7576103a66126ab565b5b602002015160ff1667ffffffffffffffff8111156103c8576103c76124bc565b5b6040519080825280602002602001820160405280156103f65781602001602082028036833780820191505090505b50905060005b82518163ffffffff1610156104525780838263ffffffff1681518110610425576104246126ab565b5b602002602001019063ffffffff16908163ffffffff1681525050808061044a90612a2b565b9150506103fc565b5060005b81518163ffffffff1610156105a95760008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663290f10508a8386516040518463ffffffff1660e01b81526004016104c393929190612a66565b60a060405180830381865afa1580156104e0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610504919061267e565b985082896020015163ffffffff1681518110610523576105226126ab565b5b6020026020010151828263ffffffff1681518110610544576105436126ab565b5b602002602001019063ffffffff16908163ffffffff168152505080838a6020015163ffffffff168151811061057c5761057b6126ab565b5b602002602001019063ffffffff16908163ffffffff168152505080806105a190612a2b565b915050610456565b506000806108948a83806105bc90612a9d565b94508560008b63ffffffff16146108585760018b63ffffffff161461081c5760028b63ffffffff16146107e05760038b63ffffffff16146107a45760048b63ffffffff16146107685760058b63ffffffff161461072c5760068b63ffffffff16146106f05760078b63ffffffff16146106b45760088b63ffffffff1614610678576040518060400160405280600a81526020017f30313233343536373841000000000000000000000000000000000000000000008152506106af565b6040518060400160405280600381526020017f30343500000000000000000000000000000000000000000000000000000000008152505b6106eb565b6040518060400160405280600781526020017f30313233363741000000000000000000000000000000000000000000000000008152505b610727565b6040518060400160405280600881526020017f30313233343537410000000000000000000000000000000000000000000000008152505b610763565b6040518060400160405280600681526020017f30313334354100000000000000000000000000000000000000000000000000008152505b61079f565b6040518060400160405280600681526020017f30323334354100000000000000000000000000000000000000000000000000008152505b6107db565b6040518060400160405280600681526020017f34393939393900000000000000000000000000000000000000000000000000008152505b610817565b6040518060400160405280600581526020017f30323435390000000000000000000000000000000000000000000000000000008152505b610853565b6040518060400160405280600881526020017f30313233363738410000000000000000000000000000000000000000000000008152505b61088f565b6040518060400160405280600981526020017f30313233343536384100000000000000000000000000000000000000000000008152505b61200d565b809250819b50505087816040516020016108af929190612b5f565b60405160208183030381529060405297506109578a83806108cf90612a9d565b94508560038b63ffffffff161461091b576040518060400160405280600881526020017f3030303031313233000000000000000000000000000000000000000000000000815250610952565b6040518060400160405280600781526020017f30303030313132000000000000000000000000000000000000000000000000008152505b61200d565b809250819b5050508781604051602001610972929190612bde565b6040516020818303038152906040529750610a648a838061099290612a9d565b94508560018b63ffffffff1614610a285760038b63ffffffff16146109ec576040518060400160405280600c81526020017f3031313232323333343536360000000000000000000000000000000000000000815250610a23565b6040518060400160405280600881526020017f30313132323233330000000000000000000000000000000000000000000000008152505b610a5f565b6040518060400160405280600681526020017f30323232333300000000000000000000000000000000000000000000000000008152505b61200d565b809250819b5050508781604051602001610a7f929190612c5d565b6040516020818303038152906040529750610c058a8380610a9f90612a9d565b94508560008b63ffffffff1614610bc95760038b63ffffffff1614610b8d5760068b63ffffffff1614610b515760078b63ffffffff1614610b15576040518060400160405280600681526020017f3031313131330000000000000000000000000000000000000000000000000000815250610b4c565b6040518060400160405280600581526020017f30323232330000000000000000000000000000000000000000000000000000008152505b610b88565b6040518060400160405280600581526020017f30323232330000000000000000000000000000000000000000000000000000008152505b610bc4565b6040518060400160405280600581526020017f30313131310000000000000000000000000000000000000000000000000000008152505b610c00565b6040518060400160405280600581526020017f30313131310000000000000000000000000000000000000000000000000000008152505b61200d565b809250819b5050508781604051602001610c20929190612c90565b6040516020818303038152906040529750610cc88a8380610c4090612a9d565b94508560038b63ffffffff1614610c8c576040518060400160405280600d81526020017f3030303030303333333333333400000000000000000000000000000000000000815250610cc3565b6040518060400160405280600281526020017f30300000000000000000000000000000000000000000000000000000000000008152505b61200d565b809250819b5050508781604051602001610ce3929190612c90565b6040516020818303038152906040529750610d8b8a8380610d0390612a9d565b94508560038b63ffffffff1614610d4f576040518060400160405280600a81526020017f3030303030303131313100000000000000000000000000000000000000000000815250610d86565b6040518060400160405280600281526020017f30300000000000000000000000000000000000000000000000000000000000008152505b61200d565b809250819b5050508781604051602001610da6929190612c90565b6040516020818303038152906040529750610e048a8380610dc690612a9d565b9450856040518060400160405280600a81526020017f303030303030303132330000000000000000000000000000000000000000000081525061200d565b809250819b5050508781604051602001610e1f929190612c90565b6040516020818303038152906040529750610f5b8a8380610e3f90612a9d565b94508560038b63ffffffff1614610f1f5760068b63ffffffff1614610ee35760088b63ffffffff1614610ea7576040518060400160405280601181526020017f3031313131313132333434343435353535000000000000000000000000000000815250610ede565b6040518060400160405280600781526020017f35313535353434000000000000000000000000000000000000000000000000008152505b610f1a565b6040518060400160405280601081526020017f30313131313131323434343435353535000000000000000000000000000000008152505b610f56565b6040518060400160405280601081526020017f30313131313131323434343435353535000000000000000000000000000000008152505b61200d565b809250819b5050508781604051602001610f76929190612d04565b60405160208183030381529060405297506110fc8a8380610f9690612a9d565b94508560018b63ffffffff16146110c05760028b63ffffffff16146110845760038b63ffffffff16146110485760068b63ffffffff161461100c576040518060400160405280600381526020017f3031320000000000000000000000000000000000000000000000000000000000815250611043565b6040518060400160405280600381526020017f30313300000000000000000000000000000000000000000000000000000000008152505b61107f565b6040518060400160405280600281526020017f30320000000000000000000000000000000000000000000000000000000000008152505b6110bb565b6040518060400160405280600281526020017f30320000000000000000000000000000000000000000000000000000000000008152505b6110f7565b6040518060400160405280600281526020017f30320000000000000000000000000000000000000000000000000000000000008152505b61200d565b809250819b5050508781604051602001611117929190612c90565b60405160208183030381529060405297506111698a60006040518060400160405280601081526020017f30313233343536373839414243444546000000000000000000000000000000008152506120ba565b809250819b5050508781604051602001611184929190612d83565b60405160208183030381529060405297506111d68a60006040518060400160405280601081526020017f30313233343536373839414243444546000000000000000000000000000000008152506120ba565b809250819b50505087816040516020016111f1929190612c90565b604051602081830303815290604052975060005b8663ffffffff168163ffffffff161015611bef576000808263ffffffff16036112a8576040518060400160405280600481526020017f43545150000000000000000000000000000000000000000000000000000000008152508b600160068110611272576112716126ab565b5b602002015160ff168f6112859190612de5565b81518110611296576112956126ab565b5b602001015160f81c60f81b90506113be565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663591e57358d8d6001600681106112f9576112f86126ab565b5b60200201516040518363ffffffff1660e01b815260040161131b9291906127ef565b60a060405180830381865afa158015611338573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061135c919061267e565b9b506040518060400160405280600481526020017f43545150000000000000000000000000000000000000000000000000000000008152508c6020015163ffffffff16815181106113b0576113af6126ab565b5b602001015160f81c60f81b90505b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663591e57358d8d60046006811061140f5761140e6126ab565b5b60200201516040518363ffffffff1660e01b81526004016114319291906127ef565b60a060405180830381865afa15801561144e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611472919061267e565b9b5060007f5400000000000000000000000000000000000000000000000000000000000000827effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614611604577f5100000000000000000000000000000000000000000000000000000000000000827effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916146115c8577f5000000000000000000000000000000000000000000000000000000000000000827effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161461158c576040518060400160405280600881526020017f30303030303030300000000000000000000000000000000000000000000000008152506115c3565b6040518060400160405280600881526020017f35363637383836350000000000000000000000000000000000000000000000008152505b6115ff565b6040518060400160405280600881526020017f30303131323230300000000000000000000000000000000000000000000000008152505b61163b565b6040518060400160405280600881526020017f30343236313533370000000000000000000000000000000000000000000000008152505b8d6020015163ffffffff1681518110611657576116566126ab565b5b602001015160f81c60f81b90508a828260405160200161167993929190612e62565b6040516020818303038152906040529a5060008363ffffffff16111561184e576116da8d60006040518060400160405280601081526020017f464643434d4d4d4d4d4d4d4949414141000000000000000000000000000000008152506120ba565b809550819e5050508a846040516020016116f5929190612ef2565b6040516020818303038152906040529a506117478d60006040518060400160405280601081526020017f30313233343536373839414243444546000000000000000000000000000000008152506120ba565b809550819e5050508a84604051602001611762929190612c90565b6040516020818303038152906040529a506117b48d60006040518060400160405280601081526020017f30313233343536373839414243444546000000000000000000000000000000008152506120ba565b809550819e5050508a846040516020016117cf929190612c90565b6040516020818303038152906040529a506118218d60006040518060400160405280601081526020017f30313233343536373839414243444546000000000000000000000000000000008152506120ba565b809550819e5050508a8460405160200161183c929190612c90565b6040516020818303038152906040529a505b61188f8d60006040518060400160405280600481526020017f53444454000000000000000000000000000000000000000000000000000000008152506120ba565b809550819e5050508a846040516020016118aa929190612f71565b6040516020818303038152906040529a506118fc8d60006040518060400160405280601081526020017f30313233343536373839414243444546000000000000000000000000000000008152506120ba565b809550819e5050508a84604051602001611917929190612c90565b6040516020818303038152906040529a506119698d60006040518060400160405280601081526020017f30313233343536373839414243444546000000000000000000000000000000008152506120ba565b809550819e5050508a84604051602001611984929190612c90565b6040516020818303038152906040529a506119e28d86806119a490612a9d565b9750886040518060400160405280600381526020017f303132000000000000000000000000000000000000000000000000000000000081525061200d565b809550819e5050508a846040516020016119fd929190612ff0565b6040516020818303038152906040529a50611a5b8d8680611a1d90612a9d565b9750886040518060400160405280600481526020017f303132330000000000000000000000000000000000000000000000000000000081525061200d565b809550819e5050508a84604051602001611a76929190612c90565b6040516020818303038152906040529a50611ad48d8680611a9690612a9d565b9750886040518060400160405280600681526020017f303131323233000000000000000000000000000000000000000000000000000081525061200d565b809550819e5050508a84604051602001611aef929190612c90565b6040516020818303038152906040529a50611b418d60006040518060400160405280601081526020017f30313233343536373839414243444546000000000000000000000000000000008152506120ba565b809550819e5050508a84604051602001611b5c92919061306f565b6040516020818303038152906040529a50611bae8d60006040518060400160405280601081526020017f30313233343536373839414243444546000000000000000000000000000000008152506120ba565b809550819e5050508a84604051602001611bc9929190612c90565b6040516020818303038152906040529a5050508080611be790612a2b565b915050611205565b50879a505050505050505050505092915050565b611c0b61219b565b6102ca821115611c61576040518060c00160405280600960ff168152602001600460ff168152602001600260ff168152602001600560ff168152602001600860ff168152602001600c60ff168152509050611ea8565b610111821115611cb7576040518060c00160405280600760ff168152602001600460ff168152602001600160ff168152602001600460ff168152602001600860ff168152602001600b60ff168152509050611ea8565b6068821115611d0c576040518060c00160405280600560ff168152602001600460ff168152602001600160ff168152602001600360ff168152602001600860ff168152602001600a60ff168152509050611ea8565b6028821115611d61576040518060c00160405280600460ff168152602001600460ff168152602001600160ff168152602001600260ff168152602001600460ff168152602001600960ff168152509050611ea8565b600f821115611db6576040518060c00160405280600360ff168152602001600460ff168152602001600160ff168152602001600260ff168152602001600260ff168152602001600860ff168152509050611ea8565b6006821115611e0b576040518060c00160405280600260ff168152602001600360ff168152602001600160ff168152602001600160ff168152602001600160ff168152602001600760ff168152509050611ea8565b6002821115611e60576040518060c00160405280600160ff168152602001600360ff168152602001600160ff168152602001600160ff168152602001600160ff168152602001600660ff168152509050611ea8565b6040518060c00160405280600160ff168152602001600360ff168152602001600160ff168152602001600160ff168152602001600160ff168152602001600560ff1681525090505b919050565b606060008203611ef4576040518060400160405280600181526020017f30000000000000000000000000000000000000000000000000000000000000008152509050612008565b600082905060005b60008214611f26578080611f0f906130a2565b915050600a82611f1f91906130ea565b9150611efc565b60008167ffffffffffffffff811115611f4257611f416124bc565b5b6040519080825280601f01601f191660200182016040528015611f745781602001600182028036833780820191505090505b5090505b6000851461200157600182611f8d919061311b565b9150600a85611f9c9190612de5565b6030611fa8919061314f565b60f81b818381518110611fbe57611fbd6126ab565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600a85611ffa91906130ea565b9450611f78565b8093505050505b919050565b6120156121bd565b600080600090505b84518160ff16101561206a57848160ff168151811061203f5761203e6126ab565b5b602002602001015163ffffffff168660ff16031561206a57808061206290612a9d565b91505061201d565b84518160ff160361209f57868460008151811061208a576120896126ab565b5b602001015160f81c60f81b92509250506120b1565b6120ab876001866120ba565b92509250505b94509492505050565b6120c26121bd565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663290f1050868686516040518463ffffffff1660e01b815260040161212393929190612a66565b60a060405180830381865afa158015612140573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612164919061267e565b94508483866020015163ffffffff1681518110612184576121836126ab565b5b602001015160f81c60f81b91509150935093915050565b6040518060c00160405280600690602082028036833780820191505090505090565b60405180604001604052806121d06121e3565b8152602001600063ffffffff1681525090565b6040518060800160405280600490602082028036833780820191505090505090565b6000604051905090565b600080fd5b60006fffffffffffffffffffffffffffffffff82169050919050565b61223981612214565b811461224457600080fd5b50565b60008135905061225681612230565b92915050565b6000819050919050565b61226f8161225c565b811461227a57600080fd5b50565b60008135905061228c81612266565b92915050565b600080604083850312156122a9576122a861220f565b5b60006122b785828601612247565b92505060206122c88582860161227d565b9150509250929050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561230c5780820151818401526020810190506122f1565b8381111561231b576000848401525b50505050565b6000601f19601f8301169050919050565b600061233d826122d2565b61234781856122dd565b93506123578185602086016122ee565b61236081612321565b840191505092915050565b600060208201905081810360008301526123858184612332565b905092915050565b6000602082840312156123a3576123a261220f565b5b60006123b18482850161227d565b91505092915050565b600060069050919050565b600081905092915050565b6000819050919050565b600060ff82169050919050565b6123f0816123da565b82525050565b600061240283836123e7565b60208301905092915050565b6000602082019050919050565b612424816123ba565b61242e81846123c5565b9250612439826123d0565b8060005b8381101561246a57815161245187826123f6565b965061245c8361240e565b92505060018101905061243d565b505050505050565b600060c082019050612487600083018461241b565b92915050565b61249681612214565b82525050565b60006020820190506124b1600083018461248d565b92915050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6124f482612321565b810181811067ffffffffffffffff82111715612513576125126124bc565b5b80604052505050565b6000612526612205565b905061253282826124eb565b919050565b600080fd5b600067ffffffffffffffff821115612557576125566124bc565b5b602082029050919050565b600080fd5b600063ffffffff82169050919050565b61258081612567565b811461258b57600080fd5b50565b60008151905061259d81612577565b92915050565b60006125b66125b18461253c565b61251c565b905080602084028301858111156125d0576125cf612562565b5b835b818110156125f957806125e5888261258e565b8452602084019350506020810190506125d2565b5050509392505050565b600082601f83011261261857612617612537565b5b60046126258482856125a3565b91505092915050565b600060a08284031215612644576126436124b7565b5b61264e604061251c565b9050600061265e84828501612603565b60008301525060806126728482850161258e565b60208301525092915050565b600060a082840312156126945761269361220f565b5b60006126a28482850161262e565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600060049050919050565b600081905092915050565b6000819050919050565b61270381612567565b82525050565b600061271583836126fa565b60208301905092915050565b6000602082019050919050565b612737816126da565b61274181846126e5565b925061274c826126f0565b8060005b8381101561277d5781516127648782612709565b965061276f83612721565b925050600181019050612750565b505050505050565b60a08201600082015161279b600085018261272e565b5060208201516127ae60808501826126fa565b50505050565b6000819050919050565b60006127d96127d46127cf846123da565b6127b4565b612567565b9050919050565b6127e9816127be565b82525050565b600060c0820190506128046000830185612785565b61281160a08301846127e0565b9392505050565b600081519050919050565b600081905092915050565b600061283982612818565b6128438185612823565b93506128538185602086016122ee565b80840191505092915050565b600081905092915050565b7f7061000000000000000000000000000000000000000000000000000000000000600082015250565b60006128a060028361285f565b91506128ab8261286a565b600282019050919050565b60006128c1826122d2565b6128cb818561285f565b93506128db8185602086016122ee565b80840191505092915050565b60006128f3828561282e565b91506128fe82612893565b915061290a82846128b6565b91508190509392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000612950826123da565b915061295b836123da565b92508260ff0382111561297157612970612916565b5b828201905092915050565b600060e0820190506129916000830186612785565b61299e60a08301856127e0565b6129ab60c08301846127e0565b949350505050565b60006129be82612567565b91506129c983612567565b92508163ffffffff04831182151516156129e6576129e5612916565b5b828202905092915050565b60006129fc82612567565b9150612a0783612567565b92508263ffffffff03821115612a2057612a1f612916565b5b828201905092915050565b6000612a3682612567565b915063ffffffff8203612a4c57612a4b612916565b5b600182019050919050565b612a6081612567565b82525050565b600060e082019050612a7b6000830186612785565b612a8860a0830185612a57565b612a9560c0830184612a57565b949350505050565b6000612aa8826123da565b915060ff8203612abb57612aba612916565b5b600182019050919050565b7f2e62670000000000000000000000000000000000000000000000000000000000600082015250565b6000612afc60038361285f565b9150612b0782612ac6565b600382019050919050565b60007fff0000000000000000000000000000000000000000000000000000000000000082169050919050565b6000819050919050565b612b59612b5482612b12565b612b3e565b82525050565b6000612b6b828561282e565b9150612b7682612aef565b9150612b828284612b48565b6001820191508190509392505050565b7f2e6d610000000000000000000000000000000000000000000000000000000000600082015250565b6000612bc860038361285f565b9150612bd382612b92565b600382019050919050565b6000612bea828561282e565b9150612bf582612bbb565b9150612c018284612b48565b6001820191508190509392505050565b7f2e74720000000000000000000000000000000000000000000000000000000000600082015250565b6000612c4760038361285f565b9150612c5282612c11565b600382019050919050565b6000612c69828561282e565b9150612c7482612c3a565b9150612c808284612b48565b6001820191508190509392505050565b6000612c9c828561282e565b9150612ca88284612b48565b6001820191508190509392505050565b7f2e66780000000000000000000000000000000000000000000000000000000000600082015250565b6000612cee60038361285f565b9150612cf982612cb8565b600382019050919050565b6000612d10828561282e565b9150612d1b82612ce1565b9150612d278284612b48565b6001820191508190509392505050565b7f2e726e0000000000000000000000000000000000000000000000000000000000600082015250565b6000612d6d60038361285f565b9150612d7882612d37565b600382019050919050565b6000612d8f828561282e565b9150612d9a82612d60565b9150612da68284612b48565b6001820191508190509392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000612df08261225c565b9150612dfb8361225c565b925082612e0b57612e0a612db6565b5b828206905092915050565b7f2e73680000000000000000000000000000000000000000000000000000000000600082015250565b6000612e4c60038361285f565b9150612e5782612e16565b600382019050919050565b6000612e6e828661282e565b9150612e7982612e3f565b9150612e858285612b48565b600182019150612e958284612b48565b600182019150819050949350505050565b7f6672000000000000000000000000000000000000000000000000000000000000600082015250565b6000612edc60028361285f565b9150612ee782612ea6565b600282019050919050565b6000612efe828561282e565b9150612f0982612ecf565b9150612f158284612b48565b6001820191508190509392505050565b7f696e000000000000000000000000000000000000000000000000000000000000600082015250565b6000612f5b60028361285f565b9150612f6682612f25565b600282019050919050565b6000612f7d828561282e565b9150612f8882612f4e565b9150612f948284612b48565b6001820191508190509392505050565b7f7374000000000000000000000000000000000000000000000000000000000000600082015250565b6000612fda60028361285f565b9150612fe582612fa4565b600282019050919050565b6000612ffc828561282e565b915061300782612fcd565b91506130138284612b48565b6001820191508190509392505050565b7f726e000000000000000000000000000000000000000000000000000000000000600082015250565b600061305960028361285f565b915061306482613023565b600282019050919050565b600061307b828561282e565b91506130868261304c565b91506130928284612b48565b6001820191508190509392505050565b60006130ad8261225c565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036130df576130de612916565b5b600182019050919050565b60006130f58261225c565b91506131008361225c565b9250826131105761310f612db6565b5b828204905092915050565b60006131268261225c565b91506131318361225c565b92508282101561314457613143612916565b5b828203905092915050565b600061315a8261225c565b91506131658361225c565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561319a57613199612916565b5b82820190509291505056fea26469706673582212202ec59da7f6783df4aea58da16bb29c72d92f15ad5e1834a98f80a6ccfee6d3cc64736f6c634300080f0033000000000000000000000000c0e28d054a6b412bb520a5447d450ed70c0a3694

Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)

000000000000000000000000c0e28d054a6b412bb520a5447d450ed70c0a3694

-----Decoded View---------------
Arg [0] : randomizer_ (address): 0xC0E28D054A6b412bb520a5447d450Ed70c0A3694

-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 000000000000000000000000c0e28d054a6b412bb520a5447d450ed70c0a3694


Block Transaction Difficulty Gas Used Reward
Block Uncle Number Difficulty Gas Used Reward
Loading
Loading
Make sure to use the "Vote Down" button for any spammy posts, and the "Vote Up" for interesting conversations.

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.