Overview
ETH Balance
0 ETH
Eth Value
$0.00More Info
Private Name Tags
ContractCreator
Latest 11 from a total of 11 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
Value | ||||
---|---|---|---|---|---|---|---|---|---|
Start Raffle | 18495177 | 242 days ago | IN | 0 ETH | 0.00132358 | ||||
Start Raffle | 18494997 | 242 days ago | IN | 0 ETH | 0.0016878 | ||||
Update Payout Am... | 18494987 | 242 days ago | IN | 0 ETH | 0.00081554 | ||||
Restart Raffle | 18494985 | 242 days ago | IN | 0 ETH | 0.00041086 | ||||
Start Raffle | 18494746 | 242 days ago | IN | 0 ETH | 0.0016986 | ||||
Restart Raffle | 18482018 | 243 days ago | IN | 0 ETH | 0.00045797 | ||||
Restart Raffle | 18482014 | 243 days ago | IN | 0 ETH | 0.00045373 | ||||
Start Raffle | 18481701 | 243 days ago | IN | 0 ETH | 0.00248745 | ||||
Start Raffle | 18481490 | 243 days ago | IN | 0 ETH | 0.00317944 | ||||
Start Raffle | 18478886 | 244 days ago | IN | 0 ETH | 0.00334025 | ||||
0x6102e060 | 18478877 | 244 days ago | IN | Create: NounsRaffle | 0 ETH | 0.04961338 |
Latest 21 internal transactions
Advanced mode:
Parent Transaction Hash | Block | From | To | Value | ||
---|---|---|---|---|---|---|
18495420 | 242 days ago | 1 ETH | ||||
18495420 | 242 days ago | 1 ETH | ||||
18495420 | 242 days ago | 1 ETH | ||||
18495420 | 242 days ago | 1 ETH | ||||
18495420 | 242 days ago | 1 ETH | ||||
18495420 | 242 days ago | 1 ETH | ||||
18495420 | 242 days ago | 1 ETH | ||||
18495420 | 242 days ago | 1 ETH | ||||
18495420 | 242 days ago | 1 ETH | ||||
18495420 | 242 days ago | 1 ETH | ||||
18495105 | 242 days ago | 1 ETH | ||||
18495105 | 242 days ago | 1 ETH | ||||
18495105 | 242 days ago | 1 ETH | ||||
18495105 | 242 days ago | 1 ETH | ||||
18495105 | 242 days ago | 1 ETH | ||||
18495105 | 242 days ago | 1 ETH | ||||
18495105 | 242 days ago | 1 ETH | ||||
18495105 | 242 days ago | 1 ETH | ||||
18495105 | 242 days ago | 1 ETH | ||||
18495105 | 242 days ago | 1 ETH | ||||
18494193 | 242 days ago | 20 ETH |
Loading...
Loading
Contract Name:
NounsRaffle
Compiler Version
v0.8.16+commit.07a7930e
Optimization Enabled:
Yes with 200 runs
Other Settings:
london EvmVersion
Contract Source Code (Solidity Standard Json-Input format)
// SPDX-License-Identifier: MIT pragma solidity ^0.8.16; interface ILightClient { function head() external view returns (uint256); function headers(uint256 slot) external view returns (bytes32); } interface ISuccinctGateway { function requestCallback( bytes32 _functionId, bytes memory _input, bytes memory _context, bytes4 _callbackSelector, uint32 _callbackGasLimit ) external payable returns (bytes32); function requestCall( bytes32 _functionId, bytes memory _input, address _address, bytes memory _data, uint32 _gasLimit ) external payable; function verifiedCall( bytes32 _functionId, bytes memory _input ) external view returns (bytes memory); function isCallback() external view returns (bool); } contract NounsRaffle { /// @notice Number of blocks iterated over per proof. uint64 public constant NB_BLOCKS_PER_PROOF = 262144; /// @notice Callback gas limit. uint32 public constant CALLBACK_GAS_LIMIT = 2000000; /// @notice The address of the gateway. address public gateway; /// @notice The function id of the oracle. bytes32 public functionId; /// @notice Payout amount for prize. uint256 public payoutAmount; /// @notice The light client. ILightClient public lightClient; /// @notice The owner of the contract. address payable public owner; /// @notice The prover. address public prover; /// @notice Whether the n'th raffle is completed. mapping(uint64 => bool) public raffleCompleted; /// @notice The reentrancy status of the contract. bool internal locked; /// @notice The raffle bounds. uint64[19] public raffleBounds = [ 6123599, 6339599, 6562799, 6778799, 7001999, 7225199, 7441199, 7664399, 7880399, 8103599, 8326799, 8535599, 8758799, 8974799, 9197999, 9413999, 9637199, 9860399, 10076399 ]; event RaffleRequest(uint64 indexed raffleIdx); event RaffleWinnerSkipped( uint64 indexed raffleIdx, uint256 indexed i, bytes32 indexed withdrawalAddress ); event RaffleWinner( uint64 indexed raffleIdx, uint256 indexed i, bytes32 indexed withdrawalAddress ); event RaffleFulfilled(uint64 indexed raffleIdx); constructor( address _gateway, bytes32 _functionId, address _lightClient, address _owner, address _prover, uint256 _payoutAmount ) { gateway = _gateway; functionId = _functionId; lightClient = ILightClient(_lightClient); owner = payable(_owner); prover = _prover; payoutAmount = _payoutAmount; } modifier onlyOwner() { require(msg.sender == owner, "Not the contract owner"); _; } modifier onlyProver() { require(msg.sender == prover, "Not the contract prover"); _; } modifier noReentrant() { require(!locked, "No re-entrancy"); locked = true; _; locked = false; } function readBytes32Array( bytes memory input ) public pure returns (bytes32[10] memory) { require(input.length == 320, "Input must be 320 bytes in length"); bytes32[10] memory output; assembly { mstore(add(output, 0), mload(add(input, 32))) mstore(add(output, 32), mload(add(input, 64))) mstore(add(output, 64), mload(add(input, 96))) mstore(add(output, 96), mload(add(input, 128))) mstore(add(output, 128), mload(add(input, 160))) mstore(add(output, 160), mload(add(input, 192))) mstore(add(output, 192), mload(add(input, 224))) mstore(add(output, 224), mload(add(input, 256))) mstore(add(output, 256), mload(add(input, 288))) mstore(add(output, 288), mload(add(input, 320))) } return output; } function startRaffle( uint64 raffleIdx, uint64 targetSlot ) external onlyProver { // Check that the raffle is not completed. require( !raffleCompleted[raffleIdx], "NounsRaffle: raffle already completed" ); // Grab the start and end slots for the raffle. uint64 startSlot = raffleBounds[raffleIdx]; uint64 endSlot = raffleBounds[raffleIdx + 1]; require( targetSlot - startSlot < NB_BLOCKS_PER_PROOF, "NounsRaffle: target slot out of range" ); // In the future, we will grab the latest head from the light client using the code below. uint256 head = lightClient.head(); bytes32 blockRoot = lightClient.headers(head); require(blockRoot != bytes32(0), "NounsRaffle: block root is zero"); require(head >= endSlot, "NounsRaffle: head is before end slot"); // Compute pseudorandomness. We use the block hash of the previous block as the seed. This // is sufficient for our purposes, since we can assume the requester is not adversarial. // // Gamma is a random element of the cubic extension defined over the Goldilocks field. bytes32 seed = keccak256(abi.encode(blockhash(block.number - 1))); uint64 gammaA = uint64(uint256(seed)) % 18446744069414584321; seed = keccak256(abi.encode(seed)); uint64 gammaB = uint64(uint256(seed)) % 18446744069414584321; seed = keccak256(abi.encode(seed)); uint64 gammaC = uint64(uint256(seed)) % 18446744069414584321; seed = keccak256(abi.encode(seed)); uint32 shuffleSeed = uint32(uint256(seed)); // Request for the proof and callback. ISuccinctGateway(gateway).requestCallback( functionId, abi.encodePacked( startSlot, endSlot, targetSlot, blockRoot, gammaA, gammaB, gammaC, shuffleSeed ), abi.encode(raffleIdx), this.endRaffle.selector, CALLBACK_GAS_LIMIT ); emit RaffleRequest(raffleIdx); } function endRaffle( bytes memory output, bytes memory context ) public noReentrant { // Check that the callback is coming from the gateway. require( tx.origin == prover, "NounsRaffle: proof not from approved prover" ); require( msg.sender == gateway && ISuccinctGateway(gateway).isCallback() ); // Decode the context and check that the raffle is not yet completed. uint64 raffleIdx = abi.decode(context, (uint64)); require(!raffleCompleted[raffleIdx]); raffleCompleted[raffleIdx] = true; // The withdrawal address of the winners. bytes32[10] memory winners = readBytes32Array(output); // Distribute funds. require( winners.length * payoutAmount <= address(this).balance, "NounsRaffle: not enough funds" ); for (uint256 i = 0; i < winners.length; i++) { bytes20 withdrawalAddressBytes = bytes20(winners[i] << 96); address withdrawalAddress = address( uint160(withdrawalAddressBytes) ); if (winners[i] != bytes32(0)) { (bool success, ) = withdrawalAddress.call{value: payoutAmount}( "" ); if (!success) { emit RaffleWinnerSkipped(raffleIdx, i, winners[i]); } else { emit RaffleWinner(raffleIdx, i, winners[i]); } } } emit RaffleFulfilled(raffleIdx); } /// @notice Restore funds to the owner in case of issue. function emergency() external onlyOwner { address safe = 0x3200A7c6467F66734B1DE7aC2dAA4365cFDBcCf8; (bool success, ) = safe.call{value: address(this).balance}(""); require(success, "NounsRaffle: emergency failed"); } function upgradeGateway(address _gateway) external onlyOwner { gateway = _gateway; } function upgradeFunctionId(bytes32 _functionId) external onlyOwner { functionId = _functionId; } function upgradeLightClient(address _lightClient) external onlyOwner { lightClient = ILightClient(_lightClient); } function restartRaffle(uint64 raffleIdx) external onlyOwner { raffleCompleted[raffleIdx] = false; } function updatePayoutAmount(uint256 _payoutAmount) external onlyOwner { payoutAmount = _payoutAmount; } fallback() external payable {} receive() external payable {} }
{ "remappings": [ "ds-test/=lib/forge-std/lib/ds-test/src/", "forge-std/=lib/forge-std/src/" ], "optimizer": { "enabled": true, "runs": 200 }, "metadata": { "useLiteralContent": false, "bytecodeHash": "ipfs" }, "outputSelection": { "*": { "*": [ "evm.bytecode", "evm.deployedBytecode", "devdoc", "userdoc", "metadata", "abi" ] } }, "evmVersion": "london", "libraries": {} }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[{"internalType":"address","name":"_gateway","type":"address"},{"internalType":"bytes32","name":"_functionId","type":"bytes32"},{"internalType":"address","name":"_lightClient","type":"address"},{"internalType":"address","name":"_owner","type":"address"},{"internalType":"address","name":"_prover","type":"address"},{"internalType":"uint256","name":"_payoutAmount","type":"uint256"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint64","name":"raffleIdx","type":"uint64"}],"name":"RaffleFulfilled","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint64","name":"raffleIdx","type":"uint64"}],"name":"RaffleRequest","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint64","name":"raffleIdx","type":"uint64"},{"indexed":true,"internalType":"uint256","name":"i","type":"uint256"},{"indexed":true,"internalType":"bytes32","name":"withdrawalAddress","type":"bytes32"}],"name":"RaffleWinner","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint64","name":"raffleIdx","type":"uint64"},{"indexed":true,"internalType":"uint256","name":"i","type":"uint256"},{"indexed":true,"internalType":"bytes32","name":"withdrawalAddress","type":"bytes32"}],"name":"RaffleWinnerSkipped","type":"event"},{"stateMutability":"payable","type":"fallback"},{"inputs":[],"name":"CALLBACK_GAS_LIMIT","outputs":[{"internalType":"uint32","name":"","type":"uint32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"NB_BLOCKS_PER_PROOF","outputs":[{"internalType":"uint64","name":"","type":"uint64"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"emergency","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes","name":"output","type":"bytes"},{"internalType":"bytes","name":"context","type":"bytes"}],"name":"endRaffle","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"functionId","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"gateway","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lightClient","outputs":[{"internalType":"contract ILightClient","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"payoutAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"prover","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"raffleBounds","outputs":[{"internalType":"uint64","name":"","type":"uint64"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint64","name":"","type":"uint64"}],"name":"raffleCompleted","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes","name":"input","type":"bytes"}],"name":"readBytes32Array","outputs":[{"internalType":"bytes32[10]","name":"","type":"bytes32[10]"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"uint64","name":"raffleIdx","type":"uint64"}],"name":"restartRaffle","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint64","name":"raffleIdx","type":"uint64"},{"internalType":"uint64","name":"targetSlot","type":"uint64"}],"name":"startRaffle","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_payoutAmount","type":"uint256"}],"name":"updatePayoutAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"_functionId","type":"bytes32"}],"name":"upgradeFunctionId","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_gateway","type":"address"}],"name":"upgradeGateway","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_lightClient","type":"address"}],"name":"upgradeLightClient","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
6102e0604052625d704f60809081526260bc0f60a052626423ef60c05262676faf60e052626ad78f61010052626e3f6f6101205262718b2f610140526274f30f6101605262783ecf61018052627ba6af6101a052627f0e8f6101c05262823e2f6101e0526285a60f610200526288f1cf61022052628c59af61024052628fa56f6102605262930d4f610280526296752f6102a0526299c0ef6102c052620000ab90600890601362000139565b50348015620000b957600080fd5b50604051620017b3380380620017b3833981016040819052620000dc9162000215565b600080546001600160a01b03199081166001600160a01b0398891617909155600195909555600380548616948716949094179093556004805485169286169290921790915560058054909316931692909217905560025562000284565b600583019183908215620001cf5791602002820160005b838211156200019857835183826101000a8154816001600160401b03021916908362ffffff160217905550926020019260080160208160070104928301926001030262000150565b8015620001cd5782816101000a8154906001600160401b03021916905560080160208160070104928301926001030262000198565b505b50620001dd929150620001e1565b5090565b5b80821115620001dd5760008155600101620001e2565b80516001600160a01b03811681146200021057600080fd5b919050565b60008060008060008060c087890312156200022f57600080fd5b6200023a87620001f8565b9550602087015194506200025160408801620001f8565b93506200026160608801620001f8565b92506200027160808801620001f8565b915060a087015190509295509295509295565b61151f80620002946000396000f3fe60806040526004361061010c5760003560e01c80638aad41cf1161009a578063cc306e0c11610061578063cc306e0c14610333578063e53e34e014610353578063eaa4f44014610373578063f08ce46114610393578063f84e198f146103b357005b80638aad41cf1461029e5780638c42ca2d146102be5780638da5cb5b146102de578063b5700e68146102fe578063caa6fea41461031e57005b80632e7c9561116100de5780632e7c9561146101ee57806332a8f30f1461020e57806333d608f11461022e5780636b46c8c31461025a578063830b36e61461027e57005b8063116191b614610115578063145277fc146101525780631f85aebf146101815780632425f130146101c157005b3661011357005b005b34801561012157600080fd5b50600054610135906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b34801561015e57600080fd5b506101696204000081565b6040516001600160401b039091168152602001610149565b34801561018d57600080fd5b506101b161019c3660046110bc565b60066020526000908152604090205460ff1681565b6040519015158152602001610149565b3480156101cd57600080fd5b506101e16101dc366004611182565b6103c9565b60405161014991906111be565b3480156101fa57600080fd5b506101696102093660046111f0565b6104ac565b34801561021a57600080fd5b50600554610135906001600160a01b031681565b34801561023a57600080fd5b50610245621e848081565b60405163ffffffff9091168152602001610149565b34801561026657600080fd5b5061027060025481565b604051908152602001610149565b34801561028a57600080fd5b50610113610299366004611209565b6104df565b3480156102aa57600080fd5b506101136102b93660046111f0565b61052b565b3480156102ca57600080fd5b506101136102d9366004611232565b61055a565b3480156102ea57600080fd5b50600454610135906001600160a01b031681565b34801561030a57600080fd5b50600354610135906001600160a01b031681565b34801561032a57600080fd5b5061011361091d565b34801561033f57600080fd5b5061011361034e3660046110bc565b6109f9565b34801561035f57600080fd5b5061011361036e366004611209565b610a44565b34801561037f57600080fd5b5061011361038e366004611295565b610a90565b34801561039f57600080fd5b506101136103ae3660046111f0565b611056565b3480156103bf57600080fd5b5061027060015481565b6103d1611085565b8151610140146104325760405162461bcd60e51b815260206004820152602160248201527f496e707574206d7573742062652033323020627974657320696e206c656e67746044820152600d60fb1b60648201526084015b60405180910390fd5b61043a611085565b6020830151600082015260408301516020820152606083015160408201526080830151606082015260a0830151608082015260c083015160a082015260e083015160c082015261010083015160e082015261012083015161010082015261014083015161012082015280915050919050565b600881601381106104bc57600080fd5b60049182820401919006600802915054906101000a90046001600160401b031681565b6004546001600160a01b031633146105095760405162461bcd60e51b8152600401610429906112ce565b600080546001600160a01b0319166001600160a01b0392909216919091179055565b6004546001600160a01b031633146105555760405162461bcd60e51b8152600401610429906112ce565b600155565b60075460ff161561059e5760405162461bcd60e51b815260206004820152600e60248201526d4e6f2072652d656e7472616e637960901b6044820152606401610429565b6007805460ff19166001179055600554326001600160a01b039091161461061b5760405162461bcd60e51b815260206004820152602b60248201527f4e6f756e73526166666c653a2070726f6f66206e6f742066726f6d206170707260448201526a37bb32b210383937bb32b960a91b6064820152608401610429565b6000546001600160a01b0316331480156106a5575060008054906101000a90046001600160a01b03166001600160a01b03166305d7c1cf6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610681573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106a591906112fe565b6106ae57600080fd5b6000818060200190518101906106c49190611320565b6001600160401b03811660009081526006602052604090205490915060ff16156106ed57600080fd5b6001600160401b0381166000908152600660205260408120805460ff19166001179055610719846103c9565b905047600254600a61072b9190611353565b11156107795760405162461bcd60e51b815260206004820152601d60248201527f4e6f756e73526166666c653a206e6f7420656e6f7567682066756e64730000006044820152606401610429565b60005b600a8110156108d857600060608383600a811061079b5761079b611372565b6020020151901b9050606081901c60008484600a81106107bd576107bd611372565b6020020151146108c3576002546040516000916001600160a01b038416918381818185875af1925050503d8060008114610813576040519150601f19603f3d011682016040523d82523d6000602084013e610818565b606091505b5050905080610873578484600a811061083357610833611372565b602002015160405185906001600160401b038916907f3a3364733f1283309edd1beef04b0d82fb34233120e98448fbb9fc7878dec06a90600090a46108c1565b8484600a811061088557610885611372565b602002015160405185906001600160401b038916907f1a28e6f5b8d2466c011b6a09dc3a83aac8a0952fc0745fbfc77c1a14d05ac9bc90600090a45b505b505080806108d090611388565b91505061077c565b506040516001600160401b038316907fcdcf7954fbfcffe13e61feac07f6d43bdbf6e05fb0420d2c7e24fbda5b564f2c90600090a250506007805460ff191690555050565b6004546001600160a01b031633146109475760405162461bcd60e51b8152600401610429906112ce565b604051733200a7c6467f66734b1de7ac2daa4365cfdbccf890600090829047908381818185875af1925050503d806000811461099f576040519150601f19603f3d011682016040523d82523d6000602084013e6109a4565b606091505b50509050806109f55760405162461bcd60e51b815260206004820152601d60248201527f4e6f756e73526166666c653a20656d657267656e6379206661696c65640000006044820152606401610429565b5050565b6004546001600160a01b03163314610a235760405162461bcd60e51b8152600401610429906112ce565b6001600160401b03166000908152600660205260409020805460ff19169055565b6004546001600160a01b03163314610a6e5760405162461bcd60e51b8152600401610429906112ce565b600380546001600160a01b0319166001600160a01b0392909216919091179055565b6005546001600160a01b03163314610aea5760405162461bcd60e51b815260206004820152601760248201527f4e6f742074686520636f6e74726163742070726f7665720000000000000000006044820152606401610429565b6001600160401b03821660009081526006602052604090205460ff1615610b615760405162461bcd60e51b815260206004820152602560248201527f4e6f756e73526166666c653a20726166666c6520616c726561647920636f6d706044820152641b195d195960da1b6064820152608401610429565b60006008836001600160401b031660138110610b7f57610b7f611372565b60048104909101546001600160401b036008600390931683026101000a909104169150600090610bb08560016113a1565b6001600160401b031660138110610bc957610bc9611372565b60048104919091015460039091166008026101000a90046001600160401b0316905062040000610bf983856113c8565b6001600160401b031610610c5d5760405162461bcd60e51b815260206004820152602560248201527f4e6f756e73526166666c653a2074617267657420736c6f74206f7574206f662060448201526472616e676560d81b6064820152608401610429565b60035460408051638f7dcfa360e01b815290516000926001600160a01b031691638f7dcfa39160048083019260209291908290030181865afa158015610ca7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ccb91906113e8565b6003546040516356f90d7960e01b8152600481018390529192506000916001600160a01b03909116906356f90d7990602401602060405180830381865afa158015610d1a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d3e91906113e8565b905080610d8d5760405162461bcd60e51b815260206004820152601f60248201527f4e6f756e73526166666c653a20626c6f636b20726f6f74206973207a65726f006044820152606401610429565b826001600160401b0316821015610df25760405162461bcd60e51b8152602060048201526024808201527f4e6f756e73526166666c653a2068656164206973206265666f726520656e64206044820152631cdb1bdd60e21b6064820152608401610429565b6000610dff600143611401565b60408051914060208301520160408051601f19818403018152919052805160209091012090506000610e3967ffffffff000000018361141a565b905081604051602001610e4e91815260200190565b60408051601f19818403018152919052805160209091012091506000610e7c67ffffffff000000018461141a565b905082604051602001610e9191815260200190565b60408051601f19818403018152919052805160209091012092506000610ebf67ffffffff000000018561141a565b905083604051602001610ed491815260200190565b60408051808303601f19018152828252805160209182012060005460015460c08e811b6001600160c01b0319908116958801959095528d811b851660288801528f811b85166030880152603887018c905289811b8516605888015288811b8516606088015287901b909316606886015260e082901b6001600160e01b031916607086015283516054818703018152607486019094526001600160401b038f16609486015290975087936001600160a01b039091169263b3f04fdf929160b40160408051601f19818403018152908290526001600160e01b031960e086901b168252610fd1939291638c42ca2d60e01b90621e848090600401611494565b6020604051808303816000875af1158015610ff0573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061101491906113e8565b506040516001600160401b038c16907f97feb252390fb9a5d59ba221ed4a2679e98770b8c172b5bebcb699d88fdd3b5a90600090a25050505050505050505050565b6004546001600160a01b031633146110805760405162461bcd60e51b8152600401610429906112ce565b600255565b604051806101400160405280600a906020820280368337509192915050565b6001600160401b03811681146110b957600080fd5b50565b6000602082840312156110ce57600080fd5b81356110d9816110a4565b9392505050565b634e487b7160e01b600052604160045260246000fd5b600082601f83011261110757600080fd5b81356001600160401b0380821115611121576111216110e0565b604051601f8301601f19908116603f01168101908282118183101715611149576111496110e0565b8160405283815286602085880101111561116257600080fd5b836020870160208301376000602085830101528094505050505092915050565b60006020828403121561119457600080fd5b81356001600160401b038111156111aa57600080fd5b6111b6848285016110f6565b949350505050565b6101408101818360005b600a8110156111e75781518352602092830192909101906001016111c8565b50505092915050565b60006020828403121561120257600080fd5b5035919050565b60006020828403121561121b57600080fd5b81356001600160a01b03811681146110d957600080fd5b6000806040838503121561124557600080fd5b82356001600160401b038082111561125c57600080fd5b611268868387016110f6565b9350602085013591508082111561127e57600080fd5b5061128b858286016110f6565b9150509250929050565b600080604083850312156112a857600080fd5b82356112b3816110a4565b915060208301356112c3816110a4565b809150509250929050565b6020808252601690820152752737ba103a34329031b7b73a3930b1ba1037bbb732b960511b604082015260600190565b60006020828403121561131057600080fd5b815180151581146110d957600080fd5b60006020828403121561133257600080fd5b81516110d9816110a4565b634e487b7160e01b600052601160045260246000fd5b600081600019048311821515161561136d5761136d61133d565b500290565b634e487b7160e01b600052603260045260246000fd5b60006001820161139a5761139a61133d565b5060010190565b6001600160401b038181168382160190808211156113c1576113c161133d565b5092915050565b6001600160401b038281168282160390808211156113c1576113c161133d565b6000602082840312156113fa57600080fd5b5051919050565b818103818111156114145761141461133d565b92915050565b60006001600160401b038084168061144257634e487b7160e01b600052601260045260246000fd5b92169190910692915050565b6000815180845260005b8181101561147457602081850181015186830182015201611458565b506000602082860101526020601f19601f83011685010191505092915050565b85815260a0602082015260006114ad60a083018761144e565b82810360408401526114bf818761144e565b6001600160e01b0319959095166060840152505063ffffffff91909116608090910152939250505056fea26469706673582212203ec9e057fd342306d4dd107bbe786d14198ee3dcbf3028ddffdd321d37000ebd64736f6c634300081000330000000000000000000000006e4f1e9ea315ebfd69d18c2db974eef6105fb80364699cf367ef7ad72dad20aea6bb68a7624e8aef7e8e3c96e675020a398275f000000000000000000000000053fd3133bef76dda3ca18fb24769ebe59e28bb24000000000000000000000000c5d0ff59ff452668080b1f0385bd90b86195efdd000000000000000000000000ded0000e32f8f40414d3ab3a830f735a3553e18e0000000000000000000000000000000000000000000000000000000000000000
Deployed Bytecode
0x60806040526004361061010c5760003560e01c80638aad41cf1161009a578063cc306e0c11610061578063cc306e0c14610333578063e53e34e014610353578063eaa4f44014610373578063f08ce46114610393578063f84e198f146103b357005b80638aad41cf1461029e5780638c42ca2d146102be5780638da5cb5b146102de578063b5700e68146102fe578063caa6fea41461031e57005b80632e7c9561116100de5780632e7c9561146101ee57806332a8f30f1461020e57806333d608f11461022e5780636b46c8c31461025a578063830b36e61461027e57005b8063116191b614610115578063145277fc146101525780631f85aebf146101815780632425f130146101c157005b3661011357005b005b34801561012157600080fd5b50600054610135906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b34801561015e57600080fd5b506101696204000081565b6040516001600160401b039091168152602001610149565b34801561018d57600080fd5b506101b161019c3660046110bc565b60066020526000908152604090205460ff1681565b6040519015158152602001610149565b3480156101cd57600080fd5b506101e16101dc366004611182565b6103c9565b60405161014991906111be565b3480156101fa57600080fd5b506101696102093660046111f0565b6104ac565b34801561021a57600080fd5b50600554610135906001600160a01b031681565b34801561023a57600080fd5b50610245621e848081565b60405163ffffffff9091168152602001610149565b34801561026657600080fd5b5061027060025481565b604051908152602001610149565b34801561028a57600080fd5b50610113610299366004611209565b6104df565b3480156102aa57600080fd5b506101136102b93660046111f0565b61052b565b3480156102ca57600080fd5b506101136102d9366004611232565b61055a565b3480156102ea57600080fd5b50600454610135906001600160a01b031681565b34801561030a57600080fd5b50600354610135906001600160a01b031681565b34801561032a57600080fd5b5061011361091d565b34801561033f57600080fd5b5061011361034e3660046110bc565b6109f9565b34801561035f57600080fd5b5061011361036e366004611209565b610a44565b34801561037f57600080fd5b5061011361038e366004611295565b610a90565b34801561039f57600080fd5b506101136103ae3660046111f0565b611056565b3480156103bf57600080fd5b5061027060015481565b6103d1611085565b8151610140146104325760405162461bcd60e51b815260206004820152602160248201527f496e707574206d7573742062652033323020627974657320696e206c656e67746044820152600d60fb1b60648201526084015b60405180910390fd5b61043a611085565b6020830151600082015260408301516020820152606083015160408201526080830151606082015260a0830151608082015260c083015160a082015260e083015160c082015261010083015160e082015261012083015161010082015261014083015161012082015280915050919050565b600881601381106104bc57600080fd5b60049182820401919006600802915054906101000a90046001600160401b031681565b6004546001600160a01b031633146105095760405162461bcd60e51b8152600401610429906112ce565b600080546001600160a01b0319166001600160a01b0392909216919091179055565b6004546001600160a01b031633146105555760405162461bcd60e51b8152600401610429906112ce565b600155565b60075460ff161561059e5760405162461bcd60e51b815260206004820152600e60248201526d4e6f2072652d656e7472616e637960901b6044820152606401610429565b6007805460ff19166001179055600554326001600160a01b039091161461061b5760405162461bcd60e51b815260206004820152602b60248201527f4e6f756e73526166666c653a2070726f6f66206e6f742066726f6d206170707260448201526a37bb32b210383937bb32b960a91b6064820152608401610429565b6000546001600160a01b0316331480156106a5575060008054906101000a90046001600160a01b03166001600160a01b03166305d7c1cf6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610681573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106a591906112fe565b6106ae57600080fd5b6000818060200190518101906106c49190611320565b6001600160401b03811660009081526006602052604090205490915060ff16156106ed57600080fd5b6001600160401b0381166000908152600660205260408120805460ff19166001179055610719846103c9565b905047600254600a61072b9190611353565b11156107795760405162461bcd60e51b815260206004820152601d60248201527f4e6f756e73526166666c653a206e6f7420656e6f7567682066756e64730000006044820152606401610429565b60005b600a8110156108d857600060608383600a811061079b5761079b611372565b6020020151901b9050606081901c60008484600a81106107bd576107bd611372565b6020020151146108c3576002546040516000916001600160a01b038416918381818185875af1925050503d8060008114610813576040519150601f19603f3d011682016040523d82523d6000602084013e610818565b606091505b5050905080610873578484600a811061083357610833611372565b602002015160405185906001600160401b038916907f3a3364733f1283309edd1beef04b0d82fb34233120e98448fbb9fc7878dec06a90600090a46108c1565b8484600a811061088557610885611372565b602002015160405185906001600160401b038916907f1a28e6f5b8d2466c011b6a09dc3a83aac8a0952fc0745fbfc77c1a14d05ac9bc90600090a45b505b505080806108d090611388565b91505061077c565b506040516001600160401b038316907fcdcf7954fbfcffe13e61feac07f6d43bdbf6e05fb0420d2c7e24fbda5b564f2c90600090a250506007805460ff191690555050565b6004546001600160a01b031633146109475760405162461bcd60e51b8152600401610429906112ce565b604051733200a7c6467f66734b1de7ac2daa4365cfdbccf890600090829047908381818185875af1925050503d806000811461099f576040519150601f19603f3d011682016040523d82523d6000602084013e6109a4565b606091505b50509050806109f55760405162461bcd60e51b815260206004820152601d60248201527f4e6f756e73526166666c653a20656d657267656e6379206661696c65640000006044820152606401610429565b5050565b6004546001600160a01b03163314610a235760405162461bcd60e51b8152600401610429906112ce565b6001600160401b03166000908152600660205260409020805460ff19169055565b6004546001600160a01b03163314610a6e5760405162461bcd60e51b8152600401610429906112ce565b600380546001600160a01b0319166001600160a01b0392909216919091179055565b6005546001600160a01b03163314610aea5760405162461bcd60e51b815260206004820152601760248201527f4e6f742074686520636f6e74726163742070726f7665720000000000000000006044820152606401610429565b6001600160401b03821660009081526006602052604090205460ff1615610b615760405162461bcd60e51b815260206004820152602560248201527f4e6f756e73526166666c653a20726166666c6520616c726561647920636f6d706044820152641b195d195960da1b6064820152608401610429565b60006008836001600160401b031660138110610b7f57610b7f611372565b60048104909101546001600160401b036008600390931683026101000a909104169150600090610bb08560016113a1565b6001600160401b031660138110610bc957610bc9611372565b60048104919091015460039091166008026101000a90046001600160401b0316905062040000610bf983856113c8565b6001600160401b031610610c5d5760405162461bcd60e51b815260206004820152602560248201527f4e6f756e73526166666c653a2074617267657420736c6f74206f7574206f662060448201526472616e676560d81b6064820152608401610429565b60035460408051638f7dcfa360e01b815290516000926001600160a01b031691638f7dcfa39160048083019260209291908290030181865afa158015610ca7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ccb91906113e8565b6003546040516356f90d7960e01b8152600481018390529192506000916001600160a01b03909116906356f90d7990602401602060405180830381865afa158015610d1a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d3e91906113e8565b905080610d8d5760405162461bcd60e51b815260206004820152601f60248201527f4e6f756e73526166666c653a20626c6f636b20726f6f74206973207a65726f006044820152606401610429565b826001600160401b0316821015610df25760405162461bcd60e51b8152602060048201526024808201527f4e6f756e73526166666c653a2068656164206973206265666f726520656e64206044820152631cdb1bdd60e21b6064820152608401610429565b6000610dff600143611401565b60408051914060208301520160408051601f19818403018152919052805160209091012090506000610e3967ffffffff000000018361141a565b905081604051602001610e4e91815260200190565b60408051601f19818403018152919052805160209091012091506000610e7c67ffffffff000000018461141a565b905082604051602001610e9191815260200190565b60408051601f19818403018152919052805160209091012092506000610ebf67ffffffff000000018561141a565b905083604051602001610ed491815260200190565b60408051808303601f19018152828252805160209182012060005460015460c08e811b6001600160c01b0319908116958801959095528d811b851660288801528f811b85166030880152603887018c905289811b8516605888015288811b8516606088015287901b909316606886015260e082901b6001600160e01b031916607086015283516054818703018152607486019094526001600160401b038f16609486015290975087936001600160a01b039091169263b3f04fdf929160b40160408051601f19818403018152908290526001600160e01b031960e086901b168252610fd1939291638c42ca2d60e01b90621e848090600401611494565b6020604051808303816000875af1158015610ff0573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061101491906113e8565b506040516001600160401b038c16907f97feb252390fb9a5d59ba221ed4a2679e98770b8c172b5bebcb699d88fdd3b5a90600090a25050505050505050505050565b6004546001600160a01b031633146110805760405162461bcd60e51b8152600401610429906112ce565b600255565b604051806101400160405280600a906020820280368337509192915050565b6001600160401b03811681146110b957600080fd5b50565b6000602082840312156110ce57600080fd5b81356110d9816110a4565b9392505050565b634e487b7160e01b600052604160045260246000fd5b600082601f83011261110757600080fd5b81356001600160401b0380821115611121576111216110e0565b604051601f8301601f19908116603f01168101908282118183101715611149576111496110e0565b8160405283815286602085880101111561116257600080fd5b836020870160208301376000602085830101528094505050505092915050565b60006020828403121561119457600080fd5b81356001600160401b038111156111aa57600080fd5b6111b6848285016110f6565b949350505050565b6101408101818360005b600a8110156111e75781518352602092830192909101906001016111c8565b50505092915050565b60006020828403121561120257600080fd5b5035919050565b60006020828403121561121b57600080fd5b81356001600160a01b03811681146110d957600080fd5b6000806040838503121561124557600080fd5b82356001600160401b038082111561125c57600080fd5b611268868387016110f6565b9350602085013591508082111561127e57600080fd5b5061128b858286016110f6565b9150509250929050565b600080604083850312156112a857600080fd5b82356112b3816110a4565b915060208301356112c3816110a4565b809150509250929050565b6020808252601690820152752737ba103a34329031b7b73a3930b1ba1037bbb732b960511b604082015260600190565b60006020828403121561131057600080fd5b815180151581146110d957600080fd5b60006020828403121561133257600080fd5b81516110d9816110a4565b634e487b7160e01b600052601160045260246000fd5b600081600019048311821515161561136d5761136d61133d565b500290565b634e487b7160e01b600052603260045260246000fd5b60006001820161139a5761139a61133d565b5060010190565b6001600160401b038181168382160190808211156113c1576113c161133d565b5092915050565b6001600160401b038281168282160390808211156113c1576113c161133d565b6000602082840312156113fa57600080fd5b5051919050565b818103818111156114145761141461133d565b92915050565b60006001600160401b038084168061144257634e487b7160e01b600052601260045260246000fd5b92169190910692915050565b6000815180845260005b8181101561147457602081850181015186830182015201611458565b506000602082860101526020601f19601f83011685010191505092915050565b85815260a0602082015260006114ad60a083018761144e565b82810360408401526114bf818761144e565b6001600160e01b0319959095166060840152505063ffffffff91909116608090910152939250505056fea26469706673582212203ec9e057fd342306d4dd107bbe786d14198ee3dcbf3028ddffdd321d37000ebd64736f6c63430008100033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
0000000000000000000000006e4f1e9ea315ebfd69d18c2db974eef6105fb80364699cf367ef7ad72dad20aea6bb68a7624e8aef7e8e3c96e675020a398275f000000000000000000000000053fd3133bef76dda3ca18fb24769ebe59e28bb24000000000000000000000000c5d0ff59ff452668080b1f0385bd90b86195efdd000000000000000000000000ded0000e32f8f40414d3ab3a830f735a3553e18e0000000000000000000000000000000000000000000000000000000000000000
-----Decoded View---------------
Arg [0] : _gateway (address): 0x6e4f1e9eA315EBFd69d18C2DB974EEf6105FB803
Arg [1] : _functionId (bytes32): 0x64699cf367ef7ad72dad20aea6bb68a7624e8aef7e8e3c96e675020a398275f0
Arg [2] : _lightClient (address): 0x53Fd3133bEf76DdA3ca18FB24769ebe59E28BB24
Arg [3] : _owner (address): 0xC5D0fF59Ff452668080b1F0385Bd90b86195EfDd
Arg [4] : _prover (address): 0xDEd0000E32f8F40414d3ab3a830f735a3553E18e
Arg [5] : _payoutAmount (uint256): 0
-----Encoded View---------------
6 Constructor Arguments found :
Arg [0] : 0000000000000000000000006e4f1e9ea315ebfd69d18c2db974eef6105fb803
Arg [1] : 64699cf367ef7ad72dad20aea6bb68a7624e8aef7e8e3c96e675020a398275f0
Arg [2] : 00000000000000000000000053fd3133bef76dda3ca18fb24769ebe59e28bb24
Arg [3] : 000000000000000000000000c5d0ff59ff452668080b1f0385bd90b86195efdd
Arg [4] : 000000000000000000000000ded0000e32f8f40414d3ab3a830f735a3553e18e
Arg [5] : 0000000000000000000000000000000000000000000000000000000000000000
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 26 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.