Overview
ETH Balance
0 ETH
Eth Value
$0.00Token Holdings
More Info
Private Name Tags
ContractCreator
Latest 25 from a total of 43 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Start Raffle | 18936444 | 371 days ago | IN | 0 ETH | 0.00811264 | ||||
Start Raffle | 18936428 | 371 days ago | IN | 0 ETH | 0.00863764 | ||||
Start Raffle | 18936293 | 371 days ago | IN | 0 ETH | 0.00812693 | ||||
Start Raffle | 18936285 | 371 days ago | IN | 0 ETH | 0.00694048 | ||||
Start Raffle | 18936276 | 371 days ago | IN | 0 ETH | 0.00691327 | ||||
Start Raffle | 18936267 | 371 days ago | IN | 0 ETH | 0.00763297 | ||||
Start Raffle | 18936257 | 371 days ago | IN | 0 ETH | 0.00768568 | ||||
Start Raffle | 18329266 | 456 days ago | IN | 0 ETH | 0.00294206 | ||||
Start Raffle | 18329247 | 456 days ago | IN | 0 ETH | 0.00283272 | ||||
Start Raffle | 18329237 | 456 days ago | IN | 0 ETH | 0.00305712 | ||||
Start Raffle | 18329217 | 456 days ago | IN | 0 ETH | 0.00300754 | ||||
Start Raffle | 18329203 | 456 days ago | IN | 0 ETH | 0.00289751 | ||||
Start Raffle | 18329180 | 456 days ago | IN | 0 ETH | 0.00290885 | ||||
Start Raffle | 17829365 | 526 days ago | IN | 0 ETH | 0.01328651 | ||||
Start Raffle | 17829304 | 526 days ago | IN | 0 ETH | 0.01520488 | ||||
Start Raffle | 17829295 | 526 days ago | IN | 0 ETH | 0.01353723 | ||||
Start Raffle | 17530966 | 568 days ago | IN | 0 ETH | 0.0065959 | ||||
Start Raffle | 17530959 | 568 days ago | IN | 0 ETH | 0.00732602 | ||||
Start Raffle | 17530951 | 568 days ago | IN | 0 ETH | 0.00690191 | ||||
Start Raffle | 17530943 | 568 days ago | IN | 0 ETH | 0.00649049 | ||||
Start Raffle | 17530934 | 568 days ago | IN | 0 ETH | 0.00801217 | ||||
Start Raffle | 17530927 | 568 days ago | IN | 0 ETH | 0.00721713 | ||||
Start Raffle | 17530919 | 568 days ago | IN | 0 ETH | 0.00628329 | ||||
Start Raffle | 17530910 | 568 days ago | IN | 0 ETH | 0.00702519 | ||||
Accept Ownership | 17299127 | 600 days ago | IN | 0 ETH | 0.00082267 |
View more zero value Internal Transactions in Advanced View mode
Advanced mode:
Loading...
Loading
Contract Name:
JRNYRaffle
Compiler Version
v0.8.19+commit.7dd6d404
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.8.2 <0.9.0; import "@chainlink/contracts/src/v0.8/ConfirmedOwner.sol"; import "@chainlink/contracts/src/v0.8/VRFV2WrapperConsumerBase.sol"; contract JRNYRaffle is VRFV2WrapperConsumerBase, ConfirmedOwner { event RequestSent(uint256 requestId, uint32 numWords); event RequestFulfilled( uint256 requestId, uint256[] randomWords, uint256 payment ); struct RequestStatus { uint256 paid; bool fulfilled; uint256[] randomWords; } mapping(uint256 => RequestStatus) public s_requests; struct Raffle { uint256 requestId; uint32 entries; } mapping(string => Raffle) public s_raffles; uint256[] public requestIds; uint256 public lastRequestId; uint32 public callbackGasLimit = 100000; uint16 public requestConfirmations = 3; uint32 numWords = 1; // sepolia // address linkAddress = 0x779877A7B0D9E8603169DdbD7836e478b4624789; // address wrapperAddress = 0xab18414CD93297B0d12ac29E63Ca20f515b3DB46; // mainnet address linkAddress = 0x514910771AF9Ca656af840dff83E8264EcF986CA; address wrapperAddress = 0x5A861794B927983406fCE1D062e00b9368d97Df6; constructor() ConfirmedOwner(msg.sender) VRFV2WrapperConsumerBase(linkAddress, wrapperAddress) {} function startRaffle( string calldata _raffleName, uint32 _raffleEntries ) external onlyOwner returns (Raffle memory raffle) { require(s_raffles[_raffleName].requestId == 0, "raffle already exists, name must be unique"); uint256 requestId = requestRandomWords(); raffle = Raffle({ requestId: requestId, entries: _raffleEntries }); s_raffles[_raffleName] = raffle; return raffle; } function checkWinner( string calldata _raffleName ) external view returns (uint256 winner) { Raffle memory _raffle = s_raffles[_raffleName]; require(_raffle.requestId > 0, "raffle not found"); RequestStatus memory _request = s_requests[_raffle.requestId]; require(_request.paid > 0, "chainlink request not found"); require(_request.fulfilled == true, "chainlink request is still not confirmed"); winner = _request.randomWords[0] % _raffle.entries; return winner; } function setCallbackGasLimit( uint32 _callbackGasLimit ) external onlyOwner { callbackGasLimit = _callbackGasLimit; } function setRequestConfirmations( uint16 _requestConfirmations ) external onlyOwner { requestConfirmations = _requestConfirmations; } function requestRandomWords() internal returns (uint256 requestId) { requestId = requestRandomness( callbackGasLimit, requestConfirmations, numWords ); s_requests[requestId] = RequestStatus({ paid: VRF_V2_WRAPPER.calculateRequestPrice(callbackGasLimit), randomWords: new uint256[](0), fulfilled: false }); requestIds.push(requestId); lastRequestId = requestId; emit RequestSent(requestId, numWords); return requestId; } function fulfillRandomWords( uint256 _requestId, uint256[] memory _randomWords ) internal override { require(s_requests[_requestId].paid > 0, "request not found"); s_requests[_requestId].fulfilled = true; s_requests[_requestId].randomWords = _randomWords; emit RequestFulfilled( _requestId, _randomWords, s_requests[_requestId].paid ); } function getRequestStatus( uint256 _requestId ) external view returns (uint256 paid, bool fulfilled, uint256[] memory randomWords) { require(s_requests[_requestId].paid > 0, "request not found"); RequestStatus memory request = s_requests[_requestId]; return (request.paid, request.fulfilled, request.randomWords); } /** * Allow withdraw of Link tokens from the contract */ function withdrawLink() public onlyOwner { LinkTokenInterface link = LinkTokenInterface(linkAddress); require( link.transfer(msg.sender, link.balanceOf(address(this))), "Unable to transfer" ); } }
// SPDX-License-Identifier: MIT pragma solidity ^0.8.0; import "./interfaces/LinkTokenInterface.sol"; import "./interfaces/VRFV2WrapperInterface.sol"; /** ******************************************************************************* * @notice Interface for contracts using VRF randomness through the VRF V2 wrapper * ******************************************************************************** * @dev PURPOSE * * @dev Create VRF V2 requests without the need for subscription management. Rather than creating * @dev and funding a VRF V2 subscription, a user can use this wrapper to create one off requests, * @dev paying up front rather than at fulfillment. * * @dev Since the price is determined using the gas price of the request transaction rather than * @dev the fulfillment transaction, the wrapper charges an additional premium on callback gas * @dev usage, in addition to some extra overhead costs associated with the VRFV2Wrapper contract. * ***************************************************************************** * @dev USAGE * * @dev Calling contracts must inherit from VRFV2WrapperConsumerBase. The consumer must be funded * @dev with enough LINK to make the request, otherwise requests will revert. To request randomness, * @dev call the 'requestRandomness' function with the desired VRF parameters. This function handles * @dev paying for the request based on the current pricing. * * @dev Consumers must implement the fullfillRandomWords function, which will be called during * @dev fulfillment with the randomness result. */ abstract contract VRFV2WrapperConsumerBase { LinkTokenInterface internal immutable LINK; VRFV2WrapperInterface internal immutable VRF_V2_WRAPPER; /** * @param _link is the address of LinkToken * @param _vrfV2Wrapper is the address of the VRFV2Wrapper contract */ constructor(address _link, address _vrfV2Wrapper) { LINK = LinkTokenInterface(_link); VRF_V2_WRAPPER = VRFV2WrapperInterface(_vrfV2Wrapper); } /** * @dev Requests randomness from the VRF V2 wrapper. * * @param _callbackGasLimit is the gas limit that should be used when calling the consumer's * fulfillRandomWords function. * @param _requestConfirmations is the number of confirmations to wait before fulfilling the * request. A higher number of confirmations increases security by reducing the likelihood * that a chain re-org changes a published randomness outcome. * @param _numWords is the number of random words to request. * * @return requestId is the VRF V2 request ID of the newly created randomness request. */ function requestRandomness( uint32 _callbackGasLimit, uint16 _requestConfirmations, uint32 _numWords ) internal returns (uint256 requestId) { LINK.transferAndCall( address(VRF_V2_WRAPPER), VRF_V2_WRAPPER.calculateRequestPrice(_callbackGasLimit), abi.encode(_callbackGasLimit, _requestConfirmations, _numWords) ); return VRF_V2_WRAPPER.lastRequestId(); } /** * @notice fulfillRandomWords handles the VRF V2 wrapper response. The consuming contract must * @notice implement it. * * @param _requestId is the VRF V2 request ID. * @param _randomWords is the randomness result. */ function fulfillRandomWords(uint256 _requestId, uint256[] memory _randomWords) internal virtual; function rawFulfillRandomWords(uint256 _requestId, uint256[] memory _randomWords) external { require(msg.sender == address(VRF_V2_WRAPPER), "only VRF V2 wrapper can fulfill"); fulfillRandomWords(_requestId, _randomWords); } }
// SPDX-License-Identifier: MIT pragma solidity ^0.8.0; import "./ConfirmedOwnerWithProposal.sol"; /** * @title The ConfirmedOwner contract * @notice A contract with helpers for basic contract ownership. */ contract ConfirmedOwner is ConfirmedOwnerWithProposal { constructor(address newOwner) ConfirmedOwnerWithProposal(newOwner, address(0)) {} }
// SPDX-License-Identifier: MIT pragma solidity ^0.8.0; interface VRFV2WrapperInterface { /** * @return the request ID of the most recent VRF V2 request made by this wrapper. This should only * be relied option within the same transaction that the request was made. */ function lastRequestId() external view returns (uint256); /** * @notice Calculates the price of a VRF request with the given callbackGasLimit at the current * @notice block. * * @dev This function relies on the transaction gas price which is not automatically set during * @dev simulation. To estimate the price at a specific gas price, use the estimatePrice function. * * @param _callbackGasLimit is the gas limit used to estimate the price. */ function calculateRequestPrice(uint32 _callbackGasLimit) external view returns (uint256); /** * @notice Estimates the price of a VRF request with a specific gas limit and gas price. * * @dev This is a convenience function that can be called in simulation to better understand * @dev pricing. * * @param _callbackGasLimit is the gas limit used to estimate the price. * @param _requestGasPriceWei is the gas price in wei used for the estimation. */ function estimateRequestPrice(uint32 _callbackGasLimit, uint256 _requestGasPriceWei) external view returns (uint256); }
// SPDX-License-Identifier: MIT pragma solidity ^0.8.0; interface LinkTokenInterface { function allowance(address owner, address spender) external view returns (uint256 remaining); function approve(address spender, uint256 value) external returns (bool success); function balanceOf(address owner) external view returns (uint256 balance); function decimals() external view returns (uint8 decimalPlaces); function decreaseApproval(address spender, uint256 addedValue) external returns (bool success); function increaseApproval(address spender, uint256 subtractedValue) external; function name() external view returns (string memory tokenName); function symbol() external view returns (string memory tokenSymbol); function totalSupply() external view returns (uint256 totalTokensIssued); function transfer(address to, uint256 value) external returns (bool success); function transferAndCall( address to, uint256 value, bytes calldata data ) external returns (bool success); function transferFrom( address from, address to, uint256 value ) external returns (bool success); }
// SPDX-License-Identifier: MIT pragma solidity ^0.8.0; import "./interfaces/OwnableInterface.sol"; /** * @title The ConfirmedOwner contract * @notice A contract with helpers for basic contract ownership. */ contract ConfirmedOwnerWithProposal is OwnableInterface { address private s_owner; address private s_pendingOwner; event OwnershipTransferRequested(address indexed from, address indexed to); event OwnershipTransferred(address indexed from, address indexed to); constructor(address newOwner, address pendingOwner) { require(newOwner != address(0), "Cannot set owner to zero"); s_owner = newOwner; if (pendingOwner != address(0)) { _transferOwnership(pendingOwner); } } /** * @notice Allows an owner to begin transferring ownership to a new address, * pending. */ function transferOwnership(address to) public override onlyOwner { _transferOwnership(to); } /** * @notice Allows an ownership transfer to be completed by the recipient. */ function acceptOwnership() external override { require(msg.sender == s_pendingOwner, "Must be proposed owner"); address oldOwner = s_owner; s_owner = msg.sender; s_pendingOwner = address(0); emit OwnershipTransferred(oldOwner, msg.sender); } /** * @notice Get the current owner */ function owner() public view override returns (address) { return s_owner; } /** * @notice validate, transfer ownership, and emit relevant events */ function _transferOwnership(address to) private { require(to != msg.sender, "Cannot transfer to self"); s_pendingOwner = to; emit OwnershipTransferRequested(s_owner, to); } /** * @notice validate access */ function _validateOwnership() internal view { require(msg.sender == s_owner, "Only callable by owner"); } /** * @notice Reverts if called by anyone other than the contract owner. */ modifier onlyOwner() { _validateOwnership(); _; } }
// SPDX-License-Identifier: MIT pragma solidity ^0.8.0; interface OwnableInterface { function owner() external returns (address); function transferOwnership(address recipient) external; function acceptOwnership() external; }
{ "optimizer": { "enabled": true, "runs": 200 }, "outputSelection": { "*": { "*": [ "evm.bytecode", "evm.deployedBytecode", "devdoc", "userdoc", "metadata", "abi" ] } } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"}],"name":"OwnershipTransferRequested","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"requestId","type":"uint256"},{"indexed":false,"internalType":"uint256[]","name":"randomWords","type":"uint256[]"},{"indexed":false,"internalType":"uint256","name":"payment","type":"uint256"}],"name":"RequestFulfilled","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"requestId","type":"uint256"},{"indexed":false,"internalType":"uint32","name":"numWords","type":"uint32"}],"name":"RequestSent","type":"event"},{"inputs":[],"name":"acceptOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"callbackGasLimit","outputs":[{"internalType":"uint32","name":"","type":"uint32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"string","name":"_raffleName","type":"string"}],"name":"checkWinner","outputs":[{"internalType":"uint256","name":"winner","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_requestId","type":"uint256"}],"name":"getRequestStatus","outputs":[{"internalType":"uint256","name":"paid","type":"uint256"},{"internalType":"bool","name":"fulfilled","type":"bool"},{"internalType":"uint256[]","name":"randomWords","type":"uint256[]"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lastRequestId","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_requestId","type":"uint256"},{"internalType":"uint256[]","name":"_randomWords","type":"uint256[]"}],"name":"rawFulfillRandomWords","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"requestConfirmations","outputs":[{"internalType":"uint16","name":"","type":"uint16"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"requestIds","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"string","name":"","type":"string"}],"name":"s_raffles","outputs":[{"internalType":"uint256","name":"requestId","type":"uint256"},{"internalType":"uint32","name":"entries","type":"uint32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"s_requests","outputs":[{"internalType":"uint256","name":"paid","type":"uint256"},{"internalType":"bool","name":"fulfilled","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint32","name":"_callbackGasLimit","type":"uint32"}],"name":"setCallbackGasLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"_requestConfirmations","type":"uint16"}],"name":"setRequestConfirmations","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"_raffleName","type":"string"},{"internalType":"uint32","name":"_raffleEntries","type":"uint32"}],"name":"startRaffle","outputs":[{"components":[{"internalType":"uint256","name":"requestId","type":"uint256"},{"internalType":"uint32","name":"entries","type":"uint32"}],"internalType":"struct JRNYRaffle.Raffle","name":"raffle","type":"tuple"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"withdrawLink","outputs":[],"stateMutability":"nonpayable","type":"function"}]
Contract Creation Code
60c0604052600680547d514910771af9ca656af840dff83e8264ecf986ca000000010003000186a06001600160f01b0319909116179055600780546001600160a01b031916735a861794b927983406fce1d062e00b9368d97df617905534801561006857600080fd5b506006546007546001600160a01b036a010000000000000000000090920482166080521660a05233806000816100e55760405162461bcd60e51b815260206004820152601860248201527f43616e6e6f7420736574206f776e657220746f207a65726f000000000000000060448201526064015b60405180910390fd5b600080546001600160a01b0319166001600160a01b0384811691909117909155811615610115576101158161011d565b5050506101c6565b336001600160a01b038216036101755760405162461bcd60e51b815260206004820152601760248201527f43616e6e6f74207472616e7366657220746f2073656c6600000000000000000060448201526064016100dc565b600180546001600160a01b0319166001600160a01b0383811691821790925560008054604051929316917fed8889f560326eb138920d842192f0eb3dd22b4f139c87a2c57538e05bae12789190a350565b60805160a05161145d6102006000396000818161041a01528181610a9501528181610dbb0152610ec401526000610d91015261145d6000f3fe608060405234801561001057600080fd5b50600436106101005760003560e01c80638dc654a211610097578063d8a4676f11610066578063d8a4676f14610265578063da5987db14610287578063f2fde38b146102d9578063fc2a88c3146102ec57600080fd5b80638dc654a2146101e2578063a168fa89146101ea578063a4eb718c14610229578063b0fb162f1461023c57600080fd5b806379ba5097116100d357806379ba5097146101995780638796ba8c146101a15780638824f5a7146101b45780638da5cb5b146101c757600080fd5b80631f5d76a7146101055780631fe543e31461013e57806324f74697146101535780632c9790f114610178575b600080fd5b61011861011336600461100e565b6102f5565b604080518251815260209283015163ffffffff1692810192909252015b60405180910390f35b61015161014c3660046110a9565b61040f565b005b6006546101639063ffffffff1681565b60405163ffffffff9091168152602001610135565b61018b61018636600461115b565b610495565b604051908152602001610135565b610151610691565b61018b6101af36600461119d565b61073b565b6101516101c23660046111b6565b61075c565b6000546040516001600160a01b039091168152602001610135565b610151610788565b6102146101f836600461119d565b6002602052600090815260409020805460019091015460ff1682565b60408051928352901515602083015201610135565b6101516102373660046111e1565b6108c1565b60065461025290640100000000900461ffff1681565b60405161ffff9091168152602001610135565b61027861027336600461119d565b6108e5565b60405161013593929190611237565b6102bf610295366004611258565b80516020818301810180516003825292820191909301209152805460019091015463ffffffff1682565b6040805192835263ffffffff909116602083015201610135565b6101516102e73660046112ed565b6109d1565b61018b60055481565b60408051808201909152600080825260208201526103116109e2565b60038484604051610323929190611316565b90815260405190819003602001902054156103985760405162461bcd60e51b815260206004820152602a60248201527f726166666c6520616c7265616479206578697374732c206e616d65206d75737460448201526920626520756e6971756560b01b60648201526084015b60405180910390fd5b60006103a2610a37565b905060405180604001604052808281526020018463ffffffff16815250915081600386866040516103d4929190611316565b90815260405160209181900382019020825181559101516001909101805463ffffffff191663ffffffff909216919091179055509392505050565b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146104875760405162461bcd60e51b815260206004820152601f60248201527f6f6e6c792056524620563220777261707065722063616e2066756c66696c6c00604482015260640161038f565b6104918282610bef565b5050565b600080600384846040516104aa929190611316565b908152604080519182900360209081018320838301909252815480845260019092015463ffffffff16908301529091506105195760405162461bcd60e51b815260206004820152601060248201526f1c9859999b19481b9bdd08199bdd5b9960821b604482015260640161038f565b80516000908152600260208181526040808420815160608101835281548152600182015460ff161515818501529381018054835181860281018601855281815292949386019383018282801561058e57602002820191906000526020600020905b81548152602001906001019080831161057a575b505050505081525050905060008160000151116105ed5760405162461bcd60e51b815260206004820152601b60248201527f636861696e6c696e6b2072657175657374206e6f7420666f756e640000000000604482015260640161038f565b602081015115156001146106545760405162461bcd60e51b815260206004820152602860248201527f636861696e6c696e6b2072657175657374206973207374696c6c206e6f7420636044820152671bdb999a5c9b595960c21b606482015260840161038f565b816020015163ffffffff16816040015160008151811061067657610676611326565b6020026020010151610688919061133c565b95945050505050565b6001546001600160a01b031633146106e45760405162461bcd60e51b815260206004820152601660248201527526bab9ba10313290383937b837b9b2b21037bbb732b960511b604482015260640161038f565b60008054336001600160a01b0319808316821784556001805490911690556040516001600160a01b0390921692909183917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a350565b6004818154811061074b57600080fd5b600091825260209091200154905081565b6107646109e2565b6006805461ffff9092166401000000000265ffff0000000019909216919091179055565b6107906109e2565b6006546040516370a0823160e01b8152306004820152600160501b9091046001600160a01b031690819063a9059cbb90339083906370a0823190602401602060405180830381865afa1580156107ea573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061080e919061135e565b6040516001600160e01b031960e085901b1681526001600160a01b03909216600483015260248201526044016020604051808303816000875af1158015610859573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061087d9190611377565b6108be5760405162461bcd60e51b81526020600482015260126024820152712ab730b13632903a37903a3930b739b332b960711b604482015260640161038f565b50565b6108c96109e2565b6006805463ffffffff191663ffffffff92909216919091179055565b60008181526002602052604081205481906060906109395760405162461bcd60e51b81526020600482015260116024820152701c995c5d595cdd081b9bdd08199bdd5b99607a1b604482015260640161038f565b6000848152600260208181526040808420815160608101835281548152600182015460ff16151581850152938101805483518186028101860185528181529294938601938301828280156109ac57602002820191906000526020600020905b815481526020019060010190808311610998575b5050509190925250508151602083015160409093015190989297509550909350505050565b6109d96109e2565b6108be81610cc2565b6000546001600160a01b03163314610a355760405162461bcd60e51b815260206004820152601660248201527527b7363c9031b0b63630b1363290313c9037bbb732b960511b604482015260640161038f565b565b600654600090610a689063ffffffff8082169161ffff64010000000082041691660100000000000090910416610d6b565b6040805160608101918290526006546310c1b4d560e21b90925263ffffffff9091166064820152909150807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316634306d35460848301602060405180830381865afa158015610ae3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b07919061135e565b81526000602080830182905260408051838152808301825293810193909352848252600280825291839020845181558482015160018201805460ff1916911515919091179055928401518051610b64938501929190910190610f4c565b5050600480546001810182556000919091527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b0182905550600581905560065460408051838152660100000000000090920463ffffffff1660208301527fcc58b13ad3eab50626c6a6300b1d139cd6ebb1688a7cced9461c2f7e762665ee910160405180910390a190565b600082815260026020526040902054610c3e5760405162461bcd60e51b81526020600482015260116024820152701c995c5d595cdd081b9bdd08199bdd5b99607a1b604482015260640161038f565b60008281526002602081815260409092206001818101805460ff191690911790558351610c7393919092019190840190610f4c565b50600082815260026020526040908190205490517f147eb1ff0c82f87f2b03e2c43f5a36488ff63ec6b730195fde4605f612f8db5191610cb69185918591611399565b60405180910390a15050565b336001600160a01b03821603610d1a5760405162461bcd60e51b815260206004820152601760248201527f43616e6e6f74207472616e7366657220746f2073656c66000000000000000000604482015260640161038f565b600180546001600160a01b0319166001600160a01b0383811691821790925560008054604051929316917fed8889f560326eb138920d842192f0eb3dd22b4f139c87a2c57538e05bae12789190a350565b6040516310c1b4d560e21b815263ffffffff841660048201526000906001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000811691634000aea0917f00000000000000000000000000000000000000000000000000000000000000009190821690634306d35490602401602060405180830381865afa158015610e05573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e29919061135e565b6040805163ffffffff808b16602083015261ffff8a169282019290925290871660608201526080016040516020818303038152906040526040518463ffffffff1660e01b8152600401610e7e939291906113c2565b6020604051808303816000875af1158015610e9d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ec19190611377565b507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663fc2a88c36040518163ffffffff1660e01b8152600401602060405180830381865afa158015610f20573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f44919061135e565b949350505050565b828054828255906000526020600020908101928215610f87579160200282015b82811115610f87578251825591602001919060010190610f6c565b50610f93929150610f97565b5090565b5b80821115610f935760008155600101610f98565b60008083601f840112610fbe57600080fd5b50813567ffffffffffffffff811115610fd657600080fd5b602083019150836020828501011115610fee57600080fd5b9250929050565b803563ffffffff8116811461100957600080fd5b919050565b60008060006040848603121561102357600080fd5b833567ffffffffffffffff81111561103a57600080fd5b61104686828701610fac565b9094509250611059905060208501610ff5565b90509250925092565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff811182821017156110a1576110a1611062565b604052919050565b600080604083850312156110bc57600080fd5b8235915060208084013567ffffffffffffffff808211156110dc57600080fd5b818601915086601f8301126110f057600080fd5b81358181111561110257611102611062565b8060051b9150611113848301611078565b818152918301840191848101908984111561112d57600080fd5b938501935b8385101561114b57843582529385019390850190611132565b8096505050505050509250929050565b6000806020838503121561116e57600080fd5b823567ffffffffffffffff81111561118557600080fd5b61119185828601610fac565b90969095509350505050565b6000602082840312156111af57600080fd5b5035919050565b6000602082840312156111c857600080fd5b813561ffff811681146111da57600080fd5b9392505050565b6000602082840312156111f357600080fd5b6111da82610ff5565b600081518084526020808501945080840160005b8381101561122c57815187529582019590820190600101611210565b509495945050505050565b838152821515602082015260606040820152600061068860608301846111fc565b6000602080838503121561126b57600080fd5b823567ffffffffffffffff8082111561128357600080fd5b818501915085601f83011261129757600080fd5b8135818111156112a9576112a9611062565b6112bb601f8201601f19168501611078565b915080825286848285010111156112d157600080fd5b8084840185840137600090820190930192909252509392505050565b6000602082840312156112ff57600080fd5b81356001600160a01b03811681146111da57600080fd5b8183823760009101908152919050565b634e487b7160e01b600052603260045260246000fd5b60008261135957634e487b7160e01b600052601260045260246000fd5b500690565b60006020828403121561137057600080fd5b5051919050565b60006020828403121561138957600080fd5b815180151581146111da57600080fd5b8381526060602082015260006113b260608301856111fc565b9050826040830152949350505050565b60018060a01b038416815260006020848184015260606040840152835180606085015260005b81811015611404578581018301518582016080015282016113e8565b506000608082860101526080601f19601f8301168501019250505094935050505056fea2646970667358221220276f59b98db41eb09eec36d59ee071aaa2b64e45eaabcc973637b74a6d26ad3064736f6c63430008130033
Deployed Bytecode
0x608060405234801561001057600080fd5b50600436106101005760003560e01c80638dc654a211610097578063d8a4676f11610066578063d8a4676f14610265578063da5987db14610287578063f2fde38b146102d9578063fc2a88c3146102ec57600080fd5b80638dc654a2146101e2578063a168fa89146101ea578063a4eb718c14610229578063b0fb162f1461023c57600080fd5b806379ba5097116100d357806379ba5097146101995780638796ba8c146101a15780638824f5a7146101b45780638da5cb5b146101c757600080fd5b80631f5d76a7146101055780631fe543e31461013e57806324f74697146101535780632c9790f114610178575b600080fd5b61011861011336600461100e565b6102f5565b604080518251815260209283015163ffffffff1692810192909252015b60405180910390f35b61015161014c3660046110a9565b61040f565b005b6006546101639063ffffffff1681565b60405163ffffffff9091168152602001610135565b61018b61018636600461115b565b610495565b604051908152602001610135565b610151610691565b61018b6101af36600461119d565b61073b565b6101516101c23660046111b6565b61075c565b6000546040516001600160a01b039091168152602001610135565b610151610788565b6102146101f836600461119d565b6002602052600090815260409020805460019091015460ff1682565b60408051928352901515602083015201610135565b6101516102373660046111e1565b6108c1565b60065461025290640100000000900461ffff1681565b60405161ffff9091168152602001610135565b61027861027336600461119d565b6108e5565b60405161013593929190611237565b6102bf610295366004611258565b80516020818301810180516003825292820191909301209152805460019091015463ffffffff1682565b6040805192835263ffffffff909116602083015201610135565b6101516102e73660046112ed565b6109d1565b61018b60055481565b60408051808201909152600080825260208201526103116109e2565b60038484604051610323929190611316565b90815260405190819003602001902054156103985760405162461bcd60e51b815260206004820152602a60248201527f726166666c6520616c7265616479206578697374732c206e616d65206d75737460448201526920626520756e6971756560b01b60648201526084015b60405180910390fd5b60006103a2610a37565b905060405180604001604052808281526020018463ffffffff16815250915081600386866040516103d4929190611316565b90815260405160209181900382019020825181559101516001909101805463ffffffff191663ffffffff909216919091179055509392505050565b336001600160a01b037f0000000000000000000000005a861794b927983406fce1d062e00b9368d97df616146104875760405162461bcd60e51b815260206004820152601f60248201527f6f6e6c792056524620563220777261707065722063616e2066756c66696c6c00604482015260640161038f565b6104918282610bef565b5050565b600080600384846040516104aa929190611316565b908152604080519182900360209081018320838301909252815480845260019092015463ffffffff16908301529091506105195760405162461bcd60e51b815260206004820152601060248201526f1c9859999b19481b9bdd08199bdd5b9960821b604482015260640161038f565b80516000908152600260208181526040808420815160608101835281548152600182015460ff161515818501529381018054835181860281018601855281815292949386019383018282801561058e57602002820191906000526020600020905b81548152602001906001019080831161057a575b505050505081525050905060008160000151116105ed5760405162461bcd60e51b815260206004820152601b60248201527f636861696e6c696e6b2072657175657374206e6f7420666f756e640000000000604482015260640161038f565b602081015115156001146106545760405162461bcd60e51b815260206004820152602860248201527f636861696e6c696e6b2072657175657374206973207374696c6c206e6f7420636044820152671bdb999a5c9b595960c21b606482015260840161038f565b816020015163ffffffff16816040015160008151811061067657610676611326565b6020026020010151610688919061133c565b95945050505050565b6001546001600160a01b031633146106e45760405162461bcd60e51b815260206004820152601660248201527526bab9ba10313290383937b837b9b2b21037bbb732b960511b604482015260640161038f565b60008054336001600160a01b0319808316821784556001805490911690556040516001600160a01b0390921692909183917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a350565b6004818154811061074b57600080fd5b600091825260209091200154905081565b6107646109e2565b6006805461ffff9092166401000000000265ffff0000000019909216919091179055565b6107906109e2565b6006546040516370a0823160e01b8152306004820152600160501b9091046001600160a01b031690819063a9059cbb90339083906370a0823190602401602060405180830381865afa1580156107ea573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061080e919061135e565b6040516001600160e01b031960e085901b1681526001600160a01b03909216600483015260248201526044016020604051808303816000875af1158015610859573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061087d9190611377565b6108be5760405162461bcd60e51b81526020600482015260126024820152712ab730b13632903a37903a3930b739b332b960711b604482015260640161038f565b50565b6108c96109e2565b6006805463ffffffff191663ffffffff92909216919091179055565b60008181526002602052604081205481906060906109395760405162461bcd60e51b81526020600482015260116024820152701c995c5d595cdd081b9bdd08199bdd5b99607a1b604482015260640161038f565b6000848152600260208181526040808420815160608101835281548152600182015460ff16151581850152938101805483518186028101860185528181529294938601938301828280156109ac57602002820191906000526020600020905b815481526020019060010190808311610998575b5050509190925250508151602083015160409093015190989297509550909350505050565b6109d96109e2565b6108be81610cc2565b6000546001600160a01b03163314610a355760405162461bcd60e51b815260206004820152601660248201527527b7363c9031b0b63630b1363290313c9037bbb732b960511b604482015260640161038f565b565b600654600090610a689063ffffffff8082169161ffff64010000000082041691660100000000000090910416610d6b565b6040805160608101918290526006546310c1b4d560e21b90925263ffffffff9091166064820152909150807f0000000000000000000000005a861794b927983406fce1d062e00b9368d97df66001600160a01b0316634306d35460848301602060405180830381865afa158015610ae3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b07919061135e565b81526000602080830182905260408051838152808301825293810193909352848252600280825291839020845181558482015160018201805460ff1916911515919091179055928401518051610b64938501929190910190610f4c565b5050600480546001810182556000919091527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b0182905550600581905560065460408051838152660100000000000090920463ffffffff1660208301527fcc58b13ad3eab50626c6a6300b1d139cd6ebb1688a7cced9461c2f7e762665ee910160405180910390a190565b600082815260026020526040902054610c3e5760405162461bcd60e51b81526020600482015260116024820152701c995c5d595cdd081b9bdd08199bdd5b99607a1b604482015260640161038f565b60008281526002602081815260409092206001818101805460ff191690911790558351610c7393919092019190840190610f4c565b50600082815260026020526040908190205490517f147eb1ff0c82f87f2b03e2c43f5a36488ff63ec6b730195fde4605f612f8db5191610cb69185918591611399565b60405180910390a15050565b336001600160a01b03821603610d1a5760405162461bcd60e51b815260206004820152601760248201527f43616e6e6f74207472616e7366657220746f2073656c66000000000000000000604482015260640161038f565b600180546001600160a01b0319166001600160a01b0383811691821790925560008054604051929316917fed8889f560326eb138920d842192f0eb3dd22b4f139c87a2c57538e05bae12789190a350565b6040516310c1b4d560e21b815263ffffffff841660048201526000906001600160a01b037f000000000000000000000000514910771af9ca656af840dff83e8264ecf986ca811691634000aea0917f0000000000000000000000005a861794b927983406fce1d062e00b9368d97df69190821690634306d35490602401602060405180830381865afa158015610e05573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e29919061135e565b6040805163ffffffff808b16602083015261ffff8a169282019290925290871660608201526080016040516020818303038152906040526040518463ffffffff1660e01b8152600401610e7e939291906113c2565b6020604051808303816000875af1158015610e9d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ec19190611377565b507f0000000000000000000000005a861794b927983406fce1d062e00b9368d97df66001600160a01b031663fc2a88c36040518163ffffffff1660e01b8152600401602060405180830381865afa158015610f20573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f44919061135e565b949350505050565b828054828255906000526020600020908101928215610f87579160200282015b82811115610f87578251825591602001919060010190610f6c565b50610f93929150610f97565b5090565b5b80821115610f935760008155600101610f98565b60008083601f840112610fbe57600080fd5b50813567ffffffffffffffff811115610fd657600080fd5b602083019150836020828501011115610fee57600080fd5b9250929050565b803563ffffffff8116811461100957600080fd5b919050565b60008060006040848603121561102357600080fd5b833567ffffffffffffffff81111561103a57600080fd5b61104686828701610fac565b9094509250611059905060208501610ff5565b90509250925092565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff811182821017156110a1576110a1611062565b604052919050565b600080604083850312156110bc57600080fd5b8235915060208084013567ffffffffffffffff808211156110dc57600080fd5b818601915086601f8301126110f057600080fd5b81358181111561110257611102611062565b8060051b9150611113848301611078565b818152918301840191848101908984111561112d57600080fd5b938501935b8385101561114b57843582529385019390850190611132565b8096505050505050509250929050565b6000806020838503121561116e57600080fd5b823567ffffffffffffffff81111561118557600080fd5b61119185828601610fac565b90969095509350505050565b6000602082840312156111af57600080fd5b5035919050565b6000602082840312156111c857600080fd5b813561ffff811681146111da57600080fd5b9392505050565b6000602082840312156111f357600080fd5b6111da82610ff5565b600081518084526020808501945080840160005b8381101561122c57815187529582019590820190600101611210565b509495945050505050565b838152821515602082015260606040820152600061068860608301846111fc565b6000602080838503121561126b57600080fd5b823567ffffffffffffffff8082111561128357600080fd5b818501915085601f83011261129757600080fd5b8135818111156112a9576112a9611062565b6112bb601f8201601f19168501611078565b915080825286848285010111156112d157600080fd5b8084840185840137600090820190930192909252509392505050565b6000602082840312156112ff57600080fd5b81356001600160a01b03811681146111da57600080fd5b8183823760009101908152919050565b634e487b7160e01b600052603260045260246000fd5b60008261135957634e487b7160e01b600052601260045260246000fd5b500690565b60006020828403121561137057600080fd5b5051919050565b60006020828403121561138957600080fd5b815180151581146111da57600080fd5b8381526060602082015260006113b260608301856111fc565b9050826040830152949350505050565b60018060a01b038416815260006020848184015260606040840152835180606085015260005b81811015611404578581018301518582016080015282016113e8565b506000608082860101526080601f19601f8301168501019250505094935050505056fea2646970667358221220276f59b98db41eb09eec36d59ee071aaa2b64e45eaabcc973637b74a6d26ad3064736f6c63430008130033
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 30 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|---|---|---|---|---|
ETH | 100.00% | $19.77 | 24.9076 | $492.42 |
Loading...
Loading
[ Download: CSV Export ]
A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.