Overview
ETH Balance
0 ETH
Eth Value
$0.00More Info
Private Name Tags
ContractCreator
Latest 20 from a total of 20 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Withdraw Noun | 16324102 | 614 days ago | IN | 0 ETH | 0.00360442 | ||||
Create Bid | 16324056 | 614 days ago | IN | 0 ETH | 0.00167126 | ||||
Create Bid | 16324020 | 614 days ago | IN | 0 ETH | 0.00176607 | ||||
Withdraw Noun | 16302471 | 617 days ago | IN | 0 ETH | 0.00421866 | ||||
Create Bid | 16302412 | 617 days ago | IN | 0 ETH | 0.0024075 | ||||
Withdraw Noun | 16208637 | 630 days ago | IN | 0 ETH | 0.00773797 | ||||
Create Bid | 16208601 | 630 days ago | IN | 0 ETH | 0.002762 | ||||
Create Bid | 16186885 | 633 days ago | IN | 0 ETH | 0.00176616 | ||||
Withdraw Noun | 16136592 | 640 days ago | IN | 0 ETH | 0.00334995 | ||||
Create Bid | 16136563 | 640 days ago | IN | 0 ETH | 0.00171403 | ||||
Withdraw Noun | 16129499 | 641 days ago | IN | 0 ETH | 0.00543454 | ||||
Create Bid | 16129466 | 641 days ago | IN | 0 ETH | 0.00166164 | ||||
Create Bid | 16122275 | 642 days ago | IN | 0 ETH | 0.00138241 | ||||
Create Bid | 16122255 | 642 days ago | IN | 0 ETH | 0.00146061 | ||||
Create Bid | 16122236 | 642 days ago | IN | 0 ETH | 0.00156976 | ||||
Withdraw Noun | 16095353 | 646 days ago | IN | 0 ETH | 0.00317778 | ||||
Create Bid | 16093523 | 646 days ago | IN | 0 ETH | 0.00149531 | ||||
Transfer Ownersh... | 16085182 | 647 days ago | IN | 0 ETH | 0.00044058 | ||||
Exec Transaction | 16085182 | 647 days ago | IN | 0 ETH | 0.00206994 | ||||
0x60c06040 | 16085182 | 647 days ago | IN | 0 ETH | 0.01982953 |
Latest 25 internal transactions (View All)
Advanced mode:
Parent Transaction Hash | Block | From | To | |||
---|---|---|---|---|---|---|
16371268 | 607 days ago | 0.91436934 ETH | ||||
16324102 | 614 days ago | 0.00439156 ETH | ||||
16324102 | 614 days ago | 0.308856 ETH | ||||
16324056 | 614 days ago | 0.00167073 ETH | ||||
16324056 | 614 days ago | 30.8856 ETH | ||||
16324040 | 614 days ago | 29.682 ETH | ||||
16324020 | 614 days ago | 0.00176558 ETH | ||||
16324020 | 614 days ago | 29.682 ETH | ||||
16317478 | 615 days ago | 30 ETH | ||||
16302471 | 617 days ago | 0.00513994 ETH | ||||
16302471 | 617 days ago | 0.2958 ETH | ||||
16302412 | 617 days ago | 0.00240683 ETH | ||||
16302412 | 617 days ago | 29.58 ETH | ||||
16292499 | 618 days ago | 32 ETH | ||||
16219134 | 629 days ago | 30.5379154 ETH | ||||
16208637 | 630 days ago | 0.00942779 ETH | ||||
16208637 | 630 days ago | 0.2958 ETH | ||||
16208601 | 630 days ago | 0.00276123 ETH | ||||
16208601 | 630 days ago | 29.58 ETH | ||||
16186890 | 633 days ago | 27.6828 ETH | ||||
16186885 | 633 days ago | 0.00176567 ETH | ||||
16186885 | 633 days ago | 27.6828 ETH | ||||
16136592 | 640 days ago | 0.00408152 ETH | ||||
16136592 | 640 days ago | 0.226644 ETH | ||||
16136563 | 640 days ago | 0.00171355 ETH |
Loading...
Loading
Contract Name:
Autobidder
Compiler Version
v0.8.15+commit.e14f2714
Optimization Enabled:
Yes with 20000 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity Standard Json-Input format)
// SPDX-License-Identifier: UNLICENSED pragma solidity ^0.8.13; import {Ownable} from "@openzeppelin/contracts/access/Ownable.sol"; import {IERC721} from "@openzeppelin/contracts/token/ERC721/IERC721.sol"; import {IERC20} from "@openzeppelin/contracts/token/ERC20/IERC20.sol"; import {INounsToken} from "./interfaces/INounsToken.sol"; import {INounsAuctionHouse} from "./interfaces/INounsAuctionHouse.sol"; // Contact: https://twitter.com/w1nt3r_eth/ contract Autobidder is Ownable { struct Config { uint96 maxBid; uint96 maxGasPrice; uint48 maxSecondsBeforeEndTime; uint16 feePointsPer10k; address receiver; } error PermissionDenied(); error NoBiddingAgainstOurselves(); error BidTooLarge(uint256 bid, uint256 maxBid); error GasTooHigh(uint256 gasPrice, uint256 maxGasPrice); error TooEarly(); error WithdrawingNounsRequiresFee(); error InvalidReceiver(); event ConfigChanged(Config config); INounsToken internal immutable nouns; INounsAuctionHouse internal immutable auction; address public relay; Config public config; mapping(uint256 => uint256) public fees; constructor(INounsToken _nouns, INounsAuctionHouse _auction, address _owner, address _relay, Config memory _config) payable { nouns = _nouns; auction = _auction; relay = _relay; config = _config; if (_config.receiver == address(0)) { revert InvalidReceiver(); } if (msg.sender != _owner) { _transferOwnership(_owner); } } modifier refundsGas() { uint256 refund; unchecked { refund = gasleft() + 25_562; } _; assembly { refund := mul(sub(refund, gas()), gasprice()) } payable(tx.origin).transfer(refund); } modifier onlyOwnerOrRelay() { if (msg.sender != relay && msg.sender != owner()) { revert PermissionDenied(); } _; } function configure(Config calldata _config) external onlyOwner { if (_config.receiver == address(0)) { revert InvalidReceiver(); } config = _config; emit ConfigChanged(_config); } function createBid(uint256 _nounId) external refundsGas onlyOwnerOrRelay { (, uint256 amount,, uint256 endTime, address bidder,) = auction.auction(); Config memory cfg = config; uint256 value; if (amount == 0) { value = auction.reservePrice(); } else { value = amount + ((amount * auction.minBidIncrementPercentage()) / 100); } if (bidder == address(this) || bidder == owner() || bidder == cfg.receiver) { revert NoBiddingAgainstOurselves(); } if (value > cfg.maxBid) { revert BidTooLarge(value, cfg.maxBid); } if (tx.gasprice > cfg.maxGasPrice) { revert GasTooHigh(tx.gasprice, cfg.maxGasPrice); } if (block.timestamp + cfg.maxSecondsBeforeEndTime < endTime) { revert TooEarly(); } auction.createBid{value: value}(_nounId); // Reserve service fee fees[_nounId] = (value * cfg.feePointsPer10k) / 10_000; } function withdrawNoun(uint256 _nounId) external payable refundsGas onlyOwnerOrRelay { address receiver = config.receiver; address to = config.receiver != address(0) ? receiver : owner(); nouns.safeTransferFrom(address(this), to, _nounId); payable(relay).transfer(fees[_nounId]); fees[_nounId] = 0; } function execTransaction(address target, bytes calldata data, uint256 value) external payable onlyOwner { if (target == address(nouns)) { revert WithdrawingNounsRequiresFee(); } (bool success, bytes memory reason) = target.call{value: value}(data); require(success, string(reason)); } receive() external payable {} }
// SPDX-License-Identifier: MIT // OpenZeppelin Contracts (last updated v4.7.0) (access/Ownable.sol) pragma solidity ^0.8.0; import "../utils/Context.sol"; /** * @dev Contract module which provides a basic access control mechanism, where * there is an account (an owner) that can be granted exclusive access to * specific functions. * * By default, the owner account will be the one that deploys the contract. This * can later be changed with {transferOwnership}. * * This module is used through inheritance. It will make available the modifier * `onlyOwner`, which can be applied to your functions to restrict their use to * the owner. */ abstract contract Ownable is Context { address private _owner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); /** * @dev Initializes the contract setting the deployer as the initial owner. */ constructor() { _transferOwnership(_msgSender()); } /** * @dev Throws if called by any account other than the owner. */ modifier onlyOwner() { _checkOwner(); _; } /** * @dev Returns the address of the current owner. */ function owner() public view virtual returns (address) { return _owner; } /** * @dev Throws if the sender is not the owner. */ function _checkOwner() internal view virtual { require(owner() == _msgSender(), "Ownable: caller is not the owner"); } /** * @dev Leaves the contract without owner. It will not be possible to call * `onlyOwner` functions anymore. Can only be called by the current owner. * * NOTE: Renouncing ownership will leave the contract without an owner, * thereby removing any functionality that is only available to the owner. */ function renounceOwnership() public virtual onlyOwner { _transferOwnership(address(0)); } /** * @dev Transfers ownership of the contract to a new account (`newOwner`). * Can only be called by the current owner. */ function transferOwnership(address newOwner) public virtual onlyOwner { require(newOwner != address(0), "Ownable: new owner is the zero address"); _transferOwnership(newOwner); } /** * @dev Transfers ownership of the contract to a new account (`newOwner`). * Internal function without access restriction. */ function _transferOwnership(address newOwner) internal virtual { address oldOwner = _owner; _owner = newOwner; emit OwnershipTransferred(oldOwner, newOwner); } }
// SPDX-License-Identifier: MIT // OpenZeppelin Contracts (last updated v4.7.0) (token/ERC721/IERC721.sol) pragma solidity ^0.8.0; import "../../utils/introspection/IERC165.sol"; /** * @dev Required interface of an ERC721 compliant contract. */ interface IERC721 is IERC165 { /** * @dev Emitted when `tokenId` token is transferred from `from` to `to`. */ event Transfer(address indexed from, address indexed to, uint256 indexed tokenId); /** * @dev Emitted when `owner` enables `approved` to manage the `tokenId` token. */ event Approval(address indexed owner, address indexed approved, uint256 indexed tokenId); /** * @dev Emitted when `owner` enables or disables (`approved`) `operator` to manage all of its assets. */ event ApprovalForAll(address indexed owner, address indexed operator, bool approved); /** * @dev Returns the number of tokens in ``owner``'s account. */ function balanceOf(address owner) external view returns (uint256 balance); /** * @dev Returns the owner of the `tokenId` token. * * Requirements: * * - `tokenId` must exist. */ function ownerOf(uint256 tokenId) external view returns (address owner); /** * @dev Safely transfers `tokenId` token from `from` to `to`. * * Requirements: * * - `from` cannot be the zero address. * - `to` cannot be the zero address. * - `tokenId` token must exist and be owned by `from`. * - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. * - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. * * Emits a {Transfer} event. */ function safeTransferFrom( address from, address to, uint256 tokenId, bytes calldata data ) external; /** * @dev Safely transfers `tokenId` token from `from` to `to`, checking first that contract recipients * are aware of the ERC721 protocol to prevent tokens from being forever locked. * * Requirements: * * - `from` cannot be the zero address. * - `to` cannot be the zero address. * - `tokenId` token must exist and be owned by `from`. * - If the caller is not `from`, it must have been allowed to move this token by either {approve} or {setApprovalForAll}. * - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. * * Emits a {Transfer} event. */ function safeTransferFrom( address from, address to, uint256 tokenId ) external; /** * @dev Transfers `tokenId` token from `from` to `to`. * * WARNING: Note that the caller is responsible to confirm that the recipient is capable of receiving ERC721 * or else they may be permanently lost. Usage of {safeTransferFrom} prevents loss, though the caller must * understand this adds an external call which potentially creates a reentrancy vulnerability. * * Requirements: * * - `from` cannot be the zero address. * - `to` cannot be the zero address. * - `tokenId` token must be owned by `from`. * - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. * * Emits a {Transfer} event. */ function transferFrom( address from, address to, uint256 tokenId ) external; /** * @dev Gives permission to `to` to transfer `tokenId` token to another account. * The approval is cleared when the token is transferred. * * Only a single account can be approved at a time, so approving the zero address clears previous approvals. * * Requirements: * * - The caller must own the token or be an approved operator. * - `tokenId` must exist. * * Emits an {Approval} event. */ function approve(address to, uint256 tokenId) external; /** * @dev Approve or remove `operator` as an operator for the caller. * Operators can call {transferFrom} or {safeTransferFrom} for any token owned by the caller. * * Requirements: * * - The `operator` cannot be the caller. * * Emits an {ApprovalForAll} event. */ function setApprovalForAll(address operator, bool _approved) external; /** * @dev Returns the account approved for `tokenId` token. * * Requirements: * * - `tokenId` must exist. */ function getApproved(uint256 tokenId) external view returns (address operator); /** * @dev Returns if the `operator` is allowed to manage all of the assets of `owner`. * * See {setApprovalForAll} */ function isApprovedForAll(address owner, address operator) external view returns (bool); }
// SPDX-License-Identifier: MIT // OpenZeppelin Contracts (last updated v4.6.0) (token/ERC20/IERC20.sol) pragma solidity ^0.8.0; /** * @dev Interface of the ERC20 standard as defined in the EIP. */ interface IERC20 { /** * @dev Emitted when `value` tokens are moved from one account (`from`) to * another (`to`). * * Note that `value` may be zero. */ event Transfer(address indexed from, address indexed to, uint256 value); /** * @dev Emitted when the allowance of a `spender` for an `owner` is set by * a call to {approve}. `value` is the new allowance. */ event Approval(address indexed owner, address indexed spender, uint256 value); /** * @dev Returns the amount of tokens in existence. */ function totalSupply() external view returns (uint256); /** * @dev Returns the amount of tokens owned by `account`. */ function balanceOf(address account) external view returns (uint256); /** * @dev Moves `amount` tokens from the caller's account to `to`. * * Returns a boolean value indicating whether the operation succeeded. * * Emits a {Transfer} event. */ function transfer(address to, uint256 amount) external returns (bool); /** * @dev Returns the remaining number of tokens that `spender` will be * allowed to spend on behalf of `owner` through {transferFrom}. This is * zero by default. * * This value changes when {approve} or {transferFrom} are called. */ function allowance(address owner, address spender) external view returns (uint256); /** * @dev Sets `amount` as the allowance of `spender` over the caller's tokens. * * Returns a boolean value indicating whether the operation succeeded. * * IMPORTANT: Beware that changing an allowance with this method brings the risk * that someone may use both the old and the new allowance by unfortunate * transaction ordering. One possible solution to mitigate this race * condition is to first reduce the spender's allowance to 0 and set the * desired value afterwards: * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 * * Emits an {Approval} event. */ function approve(address spender, uint256 amount) external returns (bool); /** * @dev Moves `amount` tokens from `from` to `to` using the * allowance mechanism. `amount` is then deducted from the caller's * allowance. * * Returns a boolean value indicating whether the operation succeeded. * * Emits a {Transfer} event. */ function transferFrom( address from, address to, uint256 amount ) external returns (bool); }
// SPDX-License-Identifier: GPL-3.0 /// @title Interface for NounsToken /** * * ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░ * * ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░ * * ░░░░░░█████████░░█████████░░░ * * ░░░░░░██░░░████░░██░░░████░░░ * * ░░██████░░░████████░░░████░░░ * * ░░██░░██░░░████░░██░░░████░░░ * * ░░██░░██░░░████░░██░░░████░░░ * * ░░░░░░█████████░░█████████░░░ * * ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░ * * ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░ * * */ pragma solidity ^0.8.6; import {IERC721} from "@openzeppelin/contracts/token/ERC721/IERC721.sol"; import {INounsDescriptor} from "./INounsDescriptor.sol"; import {INounsSeeder} from "./INounsSeeder.sol"; interface INounsToken is IERC721 { event NounCreated(uint256 indexed tokenId, INounsSeeder.Seed seed); event NounBurned(uint256 indexed tokenId); event LilNoundersDAOUpdated(address lilnoundersDAO); event NounsDAOUpdated(address nounsDAO); event MinterUpdated(address minter); event MinterLocked(); event DescriptorUpdated(INounsDescriptor descriptor); event DescriptorLocked(); event SeederUpdated(INounsSeeder seeder); event SeederLocked(); function mint() external returns (uint256); function burn(uint256 tokenId) external; function dataURI(uint256 tokenId) external returns (string memory); function setLilNoundersDAO(address lilnoundersDAO) external; function setNounsDAO(address nounsDAO) external; function setMinter(address minter) external; function lockMinter() external; function setDescriptor(INounsDescriptor descriptor) external; function lockDescriptor() external; function setSeeder(INounsSeeder seeder) external; function lockSeeder() external; }
// SPDX-License-Identifier: GPL-3.0 /// @title Interface for Noun Auction Houses /** * * ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░ * * ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░ * * ░░░░░░█████████░░█████████░░░ * * ░░░░░░██░░░████░░██░░░████░░░ * * ░░██████░░░████████░░░████░░░ * * ░░██░░██░░░████░░██░░░████░░░ * * ░░██░░██░░░████░░██░░░████░░░ * * ░░░░░░█████████░░█████████░░░ * * ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░ * * ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░ * * */ pragma solidity ^0.8.6; interface INounsAuctionHouse { struct Auction { // ID for the Noun (ERC721 token ID) uint256 nounId; // The current highest bid amount uint256 amount; // The time that the auction started uint256 startTime; // The time that the auction is scheduled to end uint256 endTime; // The address of the current highest bid address payable bidder; // Whether or not the auction has been settled bool settled; } event AuctionCreated(uint256 indexed nounId, uint256 startTime, uint256 endTime); event AuctionBid(uint256 indexed nounId, address sender, uint256 value, bool extended); event AuctionExtended(uint256 indexed nounId, uint256 endTime); event AuctionSettled(uint256 indexed nounId, address winner, uint256 amount); event AuctionTimeBufferUpdated(uint256 timeBuffer); event AuctionReservePriceUpdated(uint256 reservePrice); event AuctionMinBidIncrementPercentageUpdated(uint256 minBidIncrementPercentage); function auction() external view returns ( uint256 nounId, uint256 amount, uint256 startTime, uint256 endTime, address payable bidder, bool settled ); function reservePrice() external view returns (uint256); function minBidIncrementPercentage() external view returns (uint8); function settleAuction() external; function settleCurrentAndCreateNewAuction() external; function createBid(uint256 nounId) external payable; function pause() external; function unpause() external; function setTimeBuffer(uint256 timeBuffer) external; function setReservePrice(uint256 reservePrice) external; function setMinBidIncrementPercentage(uint8 minBidIncrementPercentage) external; }
// SPDX-License-Identifier: MIT // OpenZeppelin Contracts v4.4.1 (utils/Context.sol) pragma solidity ^0.8.0; /** * @dev Provides information about the current execution context, including the * sender of the transaction and its data. While these are generally available * via msg.sender and msg.data, they should not be accessed in such a direct * manner, since when dealing with meta-transactions the account sending and * paying for execution may not be the actual sender (as far as an application * is concerned). * * This contract is only required for intermediate, library-like contracts. */ abstract contract Context { function _msgSender() internal view virtual returns (address) { return msg.sender; } function _msgData() internal view virtual returns (bytes calldata) { return msg.data; } }
// SPDX-License-Identifier: MIT // OpenZeppelin Contracts v4.4.1 (utils/introspection/IERC165.sol) pragma solidity ^0.8.0; /** * @dev Interface of the ERC165 standard, as defined in the * https://eips.ethereum.org/EIPS/eip-165[EIP]. * * Implementers can declare support of contract interfaces, which can then be * queried by others ({ERC165Checker}). * * For an implementation, see {ERC165}. */ interface IERC165 { /** * @dev Returns true if this contract implements the interface defined by * `interfaceId`. See the corresponding * https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section] * to learn more about how these ids are created. * * This function call must use less than 30 000 gas. */ function supportsInterface(bytes4 interfaceId) external view returns (bool); }
// SPDX-License-Identifier: GPL-3.0 /// @title Interface for NounsDescriptor /** * * ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░ * * ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░ * * ░░░░░░█████████░░█████████░░░ * * ░░░░░░██░░░████░░██░░░████░░░ * * ░░██████░░░████████░░░████░░░ * * ░░██░░██░░░████░░██░░░████░░░ * * ░░██░░██░░░████░░██░░░████░░░ * * ░░░░░░█████████░░█████████░░░ * * ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░ * * ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░ * * */ pragma solidity ^0.8.6; import {INounsSeeder} from "./INounsSeeder.sol"; interface INounsDescriptor { event PartsLocked(); event DataURIToggled(bool enabled); event BaseURIUpdated(string baseURI); function arePartsLocked() external returns (bool); function isDataURIEnabled() external returns (bool); function baseURI() external returns (string memory); function palettes(uint8 paletteIndex, uint256 colorIndex) external view returns (string memory); function backgrounds(uint256 index) external view returns (string memory); function bodies(uint256 index) external view returns (bytes memory); function accessories(uint256 index) external view returns (bytes memory); function heads(uint256 index) external view returns (bytes memory); function glasses(uint256 index) external view returns (bytes memory); function backgroundCount() external view returns (uint256); function bodyCount() external view returns (uint256); function accessoryCount() external view returns (uint256); function headCount() external view returns (uint256); function glassesCount() external view returns (uint256); function addManyColorsToPalette(uint8 paletteIndex, string[] calldata newColors) external; function addManyBackgrounds(string[] calldata backgrounds) external; function addManyBodies(bytes[] calldata bodies) external; function addManyAccessories(bytes[] calldata accessories) external; function addManyHeads(bytes[] calldata heads) external; function addManyGlasses(bytes[] calldata glasses) external; function addColorToPalette(uint8 paletteIndex, string calldata color) external; function addBackground(string calldata background) external; function addBody(bytes calldata body) external; function addAccessory(bytes calldata accessory) external; function addHead(bytes calldata head) external; function addGlasses(bytes calldata glasses) external; function lockParts() external; function toggleDataURIEnabled() external; function setBaseURI(string calldata baseURI) external; function tokenURI(uint256 tokenId, INounsSeeder.Seed memory seed) external view returns (string memory); function dataURI(uint256 tokenId, INounsSeeder.Seed memory seed) external view returns (string memory); function genericDataURI(string calldata name, string calldata description, INounsSeeder.Seed memory seed) external view returns (string memory); function generateSVGImage(INounsSeeder.Seed memory seed) external view returns (string memory); }
// SPDX-License-Identifier: GPL-3.0 /// @title Interface for NounsSeeder /** * * ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░ * * ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░ * * ░░░░░░█████████░░█████████░░░ * * ░░░░░░██░░░████░░██░░░████░░░ * * ░░██████░░░████████░░░████░░░ * * ░░██░░██░░░████░░██░░░████░░░ * * ░░██░░██░░░████░░██░░░████░░░ * * ░░░░░░█████████░░█████████░░░ * * ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░ * * ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░ * * */ pragma solidity ^0.8.6; import {INounsDescriptor} from "./INounsDescriptor.sol"; interface INounsSeeder { struct Seed { uint48 background; uint48 body; uint48 accessory; uint48 head; uint48 glasses; } function generateSeed(uint256 nounId, INounsDescriptor descriptor) external view returns (Seed memory); }
{ "remappings": [ "@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/", "@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/", "ds-test/=lib/forge-std/lib/ds-test/src/", "forge-std/=lib/forge-std/src/" ], "optimizer": { "enabled": true, "runs": 20000 }, "metadata": { "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":"contract INounsToken","name":"_nouns","type":"address"},{"internalType":"contract INounsAuctionHouse","name":"_auction","type":"address"},{"internalType":"address","name":"_owner","type":"address"},{"internalType":"address","name":"_relay","type":"address"},{"components":[{"internalType":"uint96","name":"maxBid","type":"uint96"},{"internalType":"uint96","name":"maxGasPrice","type":"uint96"},{"internalType":"uint48","name":"maxSecondsBeforeEndTime","type":"uint48"},{"internalType":"uint16","name":"feePointsPer10k","type":"uint16"},{"internalType":"address","name":"receiver","type":"address"}],"internalType":"struct Autobidder.Config","name":"_config","type":"tuple"}],"stateMutability":"payable","type":"constructor"},{"inputs":[{"internalType":"uint256","name":"bid","type":"uint256"},{"internalType":"uint256","name":"maxBid","type":"uint256"}],"name":"BidTooLarge","type":"error"},{"inputs":[{"internalType":"uint256","name":"gasPrice","type":"uint256"},{"internalType":"uint256","name":"maxGasPrice","type":"uint256"}],"name":"GasTooHigh","type":"error"},{"inputs":[],"name":"InvalidReceiver","type":"error"},{"inputs":[],"name":"NoBiddingAgainstOurselves","type":"error"},{"inputs":[],"name":"PermissionDenied","type":"error"},{"inputs":[],"name":"TooEarly","type":"error"},{"inputs":[],"name":"WithdrawingNounsRequiresFee","type":"error"},{"anonymous":false,"inputs":[{"components":[{"internalType":"uint96","name":"maxBid","type":"uint96"},{"internalType":"uint96","name":"maxGasPrice","type":"uint96"},{"internalType":"uint48","name":"maxSecondsBeforeEndTime","type":"uint48"},{"internalType":"uint16","name":"feePointsPer10k","type":"uint16"},{"internalType":"address","name":"receiver","type":"address"}],"indexed":false,"internalType":"struct Autobidder.Config","name":"config","type":"tuple"}],"name":"ConfigChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"inputs":[],"name":"config","outputs":[{"internalType":"uint96","name":"maxBid","type":"uint96"},{"internalType":"uint96","name":"maxGasPrice","type":"uint96"},{"internalType":"uint48","name":"maxSecondsBeforeEndTime","type":"uint48"},{"internalType":"uint16","name":"feePointsPer10k","type":"uint16"},{"internalType":"address","name":"receiver","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"components":[{"internalType":"uint96","name":"maxBid","type":"uint96"},{"internalType":"uint96","name":"maxGasPrice","type":"uint96"},{"internalType":"uint48","name":"maxSecondsBeforeEndTime","type":"uint48"},{"internalType":"uint16","name":"feePointsPer10k","type":"uint16"},{"internalType":"address","name":"receiver","type":"address"}],"internalType":"struct Autobidder.Config","name":"_config","type":"tuple"}],"name":"configure","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_nounId","type":"uint256"}],"name":"createBid","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"target","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"execTransaction","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"fees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"relay","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_nounId","type":"uint256"}],"name":"withdrawNoun","outputs":[],"stateMutability":"payable","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
60c0604052604051620017df380380620017df8339810160408190526200002691620001f6565b620000313362000139565b6001600160a01b03808616608090815285821660a052600180548584166001600160a01b03199182161790915583516002805460208701516040880151606089015161ffff16600160f01b026001600160f01b0365ffffffffffff909216600160c01b02919091166001600160c01b036001600160601b039384166c01000000000000000000000000026001600160c01b03199095169390961692909217929092179390931692909217919091179055908301516003805491909316911681179091556200011257604051631e4ec46b60e01b815260040160405180910390fd5b336001600160a01b038416146200012e576200012e8362000139565b50505050506200030c565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b03811681146200019f57600080fd5b50565b8051620001af8162000189565b919050565b80516001600160601b0381168114620001af57600080fd5b805165ffffffffffff81168114620001af57600080fd5b805161ffff81168114620001af57600080fd5b60008060008060008587036101208112156200021157600080fd5b86516200021e8162000189565b6020880151909650620002318162000189565b6040880151909550620002448162000189565b6060880151909450620002578162000189565b925060a0607f19820112156200026c57600080fd5b5060405160a081016001600160401b03811182821017156200029e57634e487b7160e01b600052604160045260246000fd5b604052620002af60808801620001b4565b8152620002bf60a08801620001b4565b6020820152620002d260c08801620001cc565b6040820152620002e560e08801620001e3565b6060820152620002f96101008801620001a2565b6080820152809150509295509295909350565b60805160a0516114916200034e60003960008181610666015281816107b60152818161084e0152610afe0152600081816104e00152610bf801526114916000f3fe6080604052600436106100b55760003560e01c806379502c5511610069578063b59589d11161004e578063b59589d1146102b7578063bf8ebca7146102e4578063f2fde38b146102f757600080fd5b806379502c551461016b5780638da5cb5b1461026b57600080fd5b806354e425621161009a57806354e4256214610123578063659dd2b414610136578063715018a61461015657600080fd5b80630920d769146100c15780634acc79ed146100e357600080fd5b366100bc57005b600080fd5b3480156100cd57600080fd5b506100e16100dc366004610edd565b610317565b005b3480156100ef57600080fd5b506101106100fe366004610ef5565b60046020526000908152604090205481565b6040519081526020015b60405180910390f35b6100e1610131366004610ef5565b6103c8565b34801561014257600080fd5b506100e1610151366004610ef5565b6105dc565b34801561016257600080fd5b506100e1610bda565b34801561017757600080fd5b5060025460035461020d916bffffffffffffffffffffffff808216926c010000000000000000000000008304909116917801000000000000000000000000000000000000000000000000810465ffffffffffff16917e0100000000000000000000000000000000000000000000000000000000000090910461ffff169073ffffffffffffffffffffffffffffffffffffffff1685565b604080516bffffffffffffffffffffffff968716815295909416602086015265ffffffffffff9092169284019290925261ffff909116606083015273ffffffffffffffffffffffffffffffffffffffff16608082015260a00161011a565b34801561027757600080fd5b5060005473ffffffffffffffffffffffffffffffffffffffff165b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200161011a565b3480156102c357600080fd5b506001546102929073ffffffffffffffffffffffffffffffffffffffff1681565b6100e16102f2366004610f30565b610bee565b34801561030357600080fd5b506100e1610312366004610fbb565b610d30565b61031f610de7565b600061033160a0830160808401610fbb565b73ffffffffffffffffffffffffffffffffffffffff160361037e576040517f1e4ec46b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80600261038b8282611030565b9050507fb50d35cade81917f02b3d72ace2bdcdf2f33d4cd3753ef4f6418dc2a0bc32d81816040516103bd91906111e0565b60405180910390a150565b60005a6001546163da91909101915073ffffffffffffffffffffffffffffffffffffffff163314801590610414575060005473ffffffffffffffffffffffffffffffffffffffff163314155b1561044b576040517f1e09210400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60035473ffffffffffffffffffffffffffffffffffffffff166000816104895760005473ffffffffffffffffffffffffffffffffffffffff1661048b565b815b6040517f42842e0e00000000000000000000000000000000000000000000000000000000815230600482015273ffffffffffffffffffffffffffffffffffffffff8083166024830152604482018790529192507f0000000000000000000000000000000000000000000000000000000000000000909116906342842e0e90606401600060405180830381600087803b15801561052657600080fd5b505af115801561053a573d6000803e3d6000fd5b505060015460008781526004602052604080822054905173ffffffffffffffffffffffffffffffffffffffff909316945080156108fc0293509190818181858888f19350505050158015610592573d6000803e3d6000fd5b5050506000828152600460205260408120553a5a60405192030290329082156108fc029083906000818181858888f193505050501580156105d7573d6000803e3d6000fd5b505050565b60005a6001546163da91909101915073ffffffffffffffffffffffffffffffffffffffff163314801590610628575060005473ffffffffffffffffffffffffffffffffffffffff163314155b1561065f576040517f1e09210400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008060007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16637d9f6db56040518163ffffffff1660e01b815260040160c060405180830381865afa1580156106cf573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106f39190611279565b506040805160a0810182526002546bffffffffffffffffffffffff80821683526c0100000000000000000000000082041660208301527801000000000000000000000000000000000000000000000000810465ffffffffffff16928201929092527e0100000000000000000000000000000000000000000000000000000000000090910461ffff16606082015260035473ffffffffffffffffffffffffffffffffffffffff16608082015293975090955093509091506000905084810361084a577f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663db2e1eed6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561081f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061084391906112dd565b90506108ff565b60647f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663b296024d6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156108b7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108db91906112f6565b6108e89060ff1687611348565b6108f29190611385565b6108fc90866113c0565b90505b73ffffffffffffffffffffffffffffffffffffffff831630148061093d575060005473ffffffffffffffffffffffffffffffffffffffff8481169116145b806109775750816080015173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b156109ae576040517f96b415d000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b81516bffffffffffffffffffffffff16811115610a165781516040517f139aa600000000000000000000000000000000000000000000000000000000008152600481018390526bffffffffffffffffffffffff90911660248201526044015b60405180910390fd5b81602001516bffffffffffffffffffffffff163a1115610a7e5760208201516040517f8799c6530000000000000000000000000000000000000000000000000000000081523a60048201526bffffffffffffffffffffffff9091166024820152604401610a0d565b83826040015165ffffffffffff1642610a9791906113c0565b1015610acf576040517f085de62500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040517f659dd2b4000000000000000000000000000000000000000000000000000000008152600481018890527f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff169063659dd2b49083906024016000604051808303818588803b158015610b5857600080fd5b505af1158015610b6c573d6000803e3d6000fd5b5050505050612710826060015161ffff1682610b889190611348565b610b929190611385565b600088815260046020526040902055503a93505050505a60405192030290329082156108fc029083906000818181858888f193505050501580156105d7573d6000803e3d6000fd5b610be2610de7565b610bec6000610e68565b565b610bf6610de7565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603610c7b576040517ffe92f44b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000808573ffffffffffffffffffffffffffffffffffffffff16838686604051610ca69291906113d8565b60006040518083038185875af1925050503d8060008114610ce3576040519150601f19603f3d011682016040523d82523d6000602084013e610ce8565b606091505b5091509150818190610d27576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a0d91906113e8565b50505050505050565b610d38610de7565b73ffffffffffffffffffffffffffffffffffffffff8116610ddb576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f64647265737300000000000000000000000000000000000000000000000000006064820152608401610a0d565b610de481610e68565b50565b60005473ffffffffffffffffffffffffffffffffffffffff163314610bec576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610a0d565b6000805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b600060a08284031215610eef57600080fd5b50919050565b600060208284031215610f0757600080fd5b5035919050565b73ffffffffffffffffffffffffffffffffffffffff81168114610de457600080fd5b60008060008060608587031215610f4657600080fd5b8435610f5181610f0e565b9350602085013567ffffffffffffffff80821115610f6e57600080fd5b818701915087601f830112610f8257600080fd5b813581811115610f9157600080fd5b886020828501011115610fa357600080fd5b95986020929092019750949560400135945092505050565b600060208284031215610fcd57600080fd5b8135610fd881610f0e565b9392505050565b6bffffffffffffffffffffffff81168114610de457600080fd5b65ffffffffffff81168114610de457600080fd5b61ffff81168114610de457600080fd5b6000813561102a81610f0e565b92915050565b813561103b81610fdf565b6bffffffffffffffffffffffff811690508154817fffffffffffffffffffffffffffffffffffffffff0000000000000000000000008216178355602084013561108381610fdf565b77ffffffffffffffffffffffff0000000000000000000000008160601b16905080837fffffffffffffffff00000000000000000000000000000000000000000000000084161717845560408501356110da81610ff9565b7dffffffffffff0000000000000000000000000000000000000000000000008160c01b16847fffff000000000000000000000000000000000000000000000000000000000000851617831717855550505050606082013561113a8161100d565b81547dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1660f082901b7fffff00000000000000000000000000000000000000000000000000000000000016178255506111dc6111966080840161101d565b6001830173ffffffffffffffffffffffffffffffffffffffff82167fffffffffffffffffffffffff00000000000000000000000000000000000000008254161781555050565b5050565b60a0810182356111ef81610fdf565b6bffffffffffffffffffffffff908116835260208401359061121082610fdf565b166020830152604083013561122481610ff9565b65ffffffffffff166040830152606083013561123f8161100d565b61ffff166060830152608083013561125681610f0e565b73ffffffffffffffffffffffffffffffffffffffff811660808401525092915050565b60008060008060008060c0878903121561129257600080fd5b8651955060208701519450604087015193506060870151925060808701516112b981610f0e565b60a088015190925080151581146112cf57600080fd5b809150509295509295509295565b6000602082840312156112ef57600080fd5b5051919050565b60006020828403121561130857600080fd5b815160ff81168114610fd857600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561138057611380611319565b500290565b6000826113bb577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b500490565b600082198211156113d3576113d3611319565b500190565b8183823760009101908152919050565b600060208083528351808285015260005b81811015611415578581018301518582016040015282016113f9565b81811115611427576000604083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01692909201604001939250505056fea2646970667358221220cd6c3985bf5ed3218b662625b1b9eeabce87d5d5d993c41c6ddc6d9877bf9dd964736f6c634300080f00330000000000000000000000009c8ff314c9bc7f6e59a9d9225fb22946427edc03000000000000000000000000830bd73e4184cef73443c15111a1df14e495c7060000000000000000000000001ca3ee0f41b8a2e3704e23e1aed5a12633ff008e00000000000000000000000076417c5980973864ebea844c18f676e2dbbb0c00000000000000000000000000000000000000000000000001e5b8fa8fe2ac0000000000000000000000000000000000000000000000000000000000174876e80000000000000000000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000000000000000064000000000000000000000000d5f279ff9eb21c6d40c8f345a66f2751c4eea1fb
Deployed Bytecode
0x6080604052600436106100b55760003560e01c806379502c5511610069578063b59589d11161004e578063b59589d1146102b7578063bf8ebca7146102e4578063f2fde38b146102f757600080fd5b806379502c551461016b5780638da5cb5b1461026b57600080fd5b806354e425621161009a57806354e4256214610123578063659dd2b414610136578063715018a61461015657600080fd5b80630920d769146100c15780634acc79ed146100e357600080fd5b366100bc57005b600080fd5b3480156100cd57600080fd5b506100e16100dc366004610edd565b610317565b005b3480156100ef57600080fd5b506101106100fe366004610ef5565b60046020526000908152604090205481565b6040519081526020015b60405180910390f35b6100e1610131366004610ef5565b6103c8565b34801561014257600080fd5b506100e1610151366004610ef5565b6105dc565b34801561016257600080fd5b506100e1610bda565b34801561017757600080fd5b5060025460035461020d916bffffffffffffffffffffffff808216926c010000000000000000000000008304909116917801000000000000000000000000000000000000000000000000810465ffffffffffff16917e0100000000000000000000000000000000000000000000000000000000000090910461ffff169073ffffffffffffffffffffffffffffffffffffffff1685565b604080516bffffffffffffffffffffffff968716815295909416602086015265ffffffffffff9092169284019290925261ffff909116606083015273ffffffffffffffffffffffffffffffffffffffff16608082015260a00161011a565b34801561027757600080fd5b5060005473ffffffffffffffffffffffffffffffffffffffff165b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200161011a565b3480156102c357600080fd5b506001546102929073ffffffffffffffffffffffffffffffffffffffff1681565b6100e16102f2366004610f30565b610bee565b34801561030357600080fd5b506100e1610312366004610fbb565b610d30565b61031f610de7565b600061033160a0830160808401610fbb565b73ffffffffffffffffffffffffffffffffffffffff160361037e576040517f1e4ec46b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80600261038b8282611030565b9050507fb50d35cade81917f02b3d72ace2bdcdf2f33d4cd3753ef4f6418dc2a0bc32d81816040516103bd91906111e0565b60405180910390a150565b60005a6001546163da91909101915073ffffffffffffffffffffffffffffffffffffffff163314801590610414575060005473ffffffffffffffffffffffffffffffffffffffff163314155b1561044b576040517f1e09210400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60035473ffffffffffffffffffffffffffffffffffffffff166000816104895760005473ffffffffffffffffffffffffffffffffffffffff1661048b565b815b6040517f42842e0e00000000000000000000000000000000000000000000000000000000815230600482015273ffffffffffffffffffffffffffffffffffffffff8083166024830152604482018790529192507f0000000000000000000000009c8ff314c9bc7f6e59a9d9225fb22946427edc03909116906342842e0e90606401600060405180830381600087803b15801561052657600080fd5b505af115801561053a573d6000803e3d6000fd5b505060015460008781526004602052604080822054905173ffffffffffffffffffffffffffffffffffffffff909316945080156108fc0293509190818181858888f19350505050158015610592573d6000803e3d6000fd5b5050506000828152600460205260408120553a5a60405192030290329082156108fc029083906000818181858888f193505050501580156105d7573d6000803e3d6000fd5b505050565b60005a6001546163da91909101915073ffffffffffffffffffffffffffffffffffffffff163314801590610628575060005473ffffffffffffffffffffffffffffffffffffffff163314155b1561065f576040517f1e09210400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008060007f000000000000000000000000830bd73e4184cef73443c15111a1df14e495c70673ffffffffffffffffffffffffffffffffffffffff16637d9f6db56040518163ffffffff1660e01b815260040160c060405180830381865afa1580156106cf573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106f39190611279565b506040805160a0810182526002546bffffffffffffffffffffffff80821683526c0100000000000000000000000082041660208301527801000000000000000000000000000000000000000000000000810465ffffffffffff16928201929092527e0100000000000000000000000000000000000000000000000000000000000090910461ffff16606082015260035473ffffffffffffffffffffffffffffffffffffffff16608082015293975090955093509091506000905084810361084a577f000000000000000000000000830bd73e4184cef73443c15111a1df14e495c70673ffffffffffffffffffffffffffffffffffffffff1663db2e1eed6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561081f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061084391906112dd565b90506108ff565b60647f000000000000000000000000830bd73e4184cef73443c15111a1df14e495c70673ffffffffffffffffffffffffffffffffffffffff1663b296024d6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156108b7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108db91906112f6565b6108e89060ff1687611348565b6108f29190611385565b6108fc90866113c0565b90505b73ffffffffffffffffffffffffffffffffffffffff831630148061093d575060005473ffffffffffffffffffffffffffffffffffffffff8481169116145b806109775750816080015173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b156109ae576040517f96b415d000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b81516bffffffffffffffffffffffff16811115610a165781516040517f139aa600000000000000000000000000000000000000000000000000000000008152600481018390526bffffffffffffffffffffffff90911660248201526044015b60405180910390fd5b81602001516bffffffffffffffffffffffff163a1115610a7e5760208201516040517f8799c6530000000000000000000000000000000000000000000000000000000081523a60048201526bffffffffffffffffffffffff9091166024820152604401610a0d565b83826040015165ffffffffffff1642610a9791906113c0565b1015610acf576040517f085de62500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040517f659dd2b4000000000000000000000000000000000000000000000000000000008152600481018890527f000000000000000000000000830bd73e4184cef73443c15111a1df14e495c70673ffffffffffffffffffffffffffffffffffffffff169063659dd2b49083906024016000604051808303818588803b158015610b5857600080fd5b505af1158015610b6c573d6000803e3d6000fd5b5050505050612710826060015161ffff1682610b889190611348565b610b929190611385565b600088815260046020526040902055503a93505050505a60405192030290329082156108fc029083906000818181858888f193505050501580156105d7573d6000803e3d6000fd5b610be2610de7565b610bec6000610e68565b565b610bf6610de7565b7f0000000000000000000000009c8ff314c9bc7f6e59a9d9225fb22946427edc0373ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603610c7b576040517ffe92f44b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000808573ffffffffffffffffffffffffffffffffffffffff16838686604051610ca69291906113d8565b60006040518083038185875af1925050503d8060008114610ce3576040519150601f19603f3d011682016040523d82523d6000602084013e610ce8565b606091505b5091509150818190610d27576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a0d91906113e8565b50505050505050565b610d38610de7565b73ffffffffffffffffffffffffffffffffffffffff8116610ddb576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f64647265737300000000000000000000000000000000000000000000000000006064820152608401610a0d565b610de481610e68565b50565b60005473ffffffffffffffffffffffffffffffffffffffff163314610bec576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610a0d565b6000805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b600060a08284031215610eef57600080fd5b50919050565b600060208284031215610f0757600080fd5b5035919050565b73ffffffffffffffffffffffffffffffffffffffff81168114610de457600080fd5b60008060008060608587031215610f4657600080fd5b8435610f5181610f0e565b9350602085013567ffffffffffffffff80821115610f6e57600080fd5b818701915087601f830112610f8257600080fd5b813581811115610f9157600080fd5b886020828501011115610fa357600080fd5b95986020929092019750949560400135945092505050565b600060208284031215610fcd57600080fd5b8135610fd881610f0e565b9392505050565b6bffffffffffffffffffffffff81168114610de457600080fd5b65ffffffffffff81168114610de457600080fd5b61ffff81168114610de457600080fd5b6000813561102a81610f0e565b92915050565b813561103b81610fdf565b6bffffffffffffffffffffffff811690508154817fffffffffffffffffffffffffffffffffffffffff0000000000000000000000008216178355602084013561108381610fdf565b77ffffffffffffffffffffffff0000000000000000000000008160601b16905080837fffffffffffffffff00000000000000000000000000000000000000000000000084161717845560408501356110da81610ff9565b7dffffffffffff0000000000000000000000000000000000000000000000008160c01b16847fffff000000000000000000000000000000000000000000000000000000000000851617831717855550505050606082013561113a8161100d565b81547dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1660f082901b7fffff00000000000000000000000000000000000000000000000000000000000016178255506111dc6111966080840161101d565b6001830173ffffffffffffffffffffffffffffffffffffffff82167fffffffffffffffffffffffff00000000000000000000000000000000000000008254161781555050565b5050565b60a0810182356111ef81610fdf565b6bffffffffffffffffffffffff908116835260208401359061121082610fdf565b166020830152604083013561122481610ff9565b65ffffffffffff166040830152606083013561123f8161100d565b61ffff166060830152608083013561125681610f0e565b73ffffffffffffffffffffffffffffffffffffffff811660808401525092915050565b60008060008060008060c0878903121561129257600080fd5b8651955060208701519450604087015193506060870151925060808701516112b981610f0e565b60a088015190925080151581146112cf57600080fd5b809150509295509295509295565b6000602082840312156112ef57600080fd5b5051919050565b60006020828403121561130857600080fd5b815160ff81168114610fd857600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561138057611380611319565b500290565b6000826113bb577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b500490565b600082198211156113d3576113d3611319565b500190565b8183823760009101908152919050565b600060208083528351808285015260005b81811015611415578581018301518582016040015282016113f9565b81811115611427576000604083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01692909201604001939250505056fea2646970667358221220cd6c3985bf5ed3218b662625b1b9eeabce87d5d5d993c41c6ddc6d9877bf9dd964736f6c634300080f0033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
0000000000000000000000009c8ff314c9bc7f6e59a9d9225fb22946427edc03000000000000000000000000830bd73e4184cef73443c15111a1df14e495c7060000000000000000000000001ca3ee0f41b8a2e3704e23e1aed5a12633ff008e00000000000000000000000076417c5980973864ebea844c18f676e2dbbb0c00000000000000000000000000000000000000000000000001e5b8fa8fe2ac0000000000000000000000000000000000000000000000000000000000174876e80000000000000000000000000000000000000000000000000000000000000000780000000000000000000000000000000000000000000000000000000000000064000000000000000000000000d5f279ff9eb21c6d40c8f345a66f2751c4eea1fb
-----Decoded View---------------
Arg [0] : _nouns (address): 0x9C8fF314C9Bc7F6e59A9d9225Fb22946427eDC03
Arg [1] : _auction (address): 0x830BD73E4184ceF73443C15111a1DF14e495C706
Arg [2] : _owner (address): 0x1ca3EE0F41B8a2e3704E23E1aED5a12633Ff008e
Arg [3] : _relay (address): 0x76417C5980973864EBea844C18f676e2DBbB0C00
Arg [4] : _config (tuple): System.Collections.Generic.List`1[Nethereum.ABI.FunctionEncoding.ParameterOutput]
-----Encoded View---------------
9 Constructor Arguments found :
Arg [0] : 0000000000000000000000009c8ff314c9bc7f6e59a9d9225fb22946427edc03
Arg [1] : 000000000000000000000000830bd73e4184cef73443c15111a1df14e495c706
Arg [2] : 0000000000000000000000001ca3ee0f41b8a2e3704e23e1aed5a12633ff008e
Arg [3] : 00000000000000000000000076417c5980973864ebea844c18f676e2dbbb0c00
Arg [4] : 000000000000000000000000000000000000000000000001e5b8fa8fe2ac0000
Arg [5] : 000000000000000000000000000000000000000000000000000000174876e800
Arg [6] : 0000000000000000000000000000000000000000000000000000000000000078
Arg [7] : 0000000000000000000000000000000000000000000000000000000000000064
Arg [8] : 000000000000000000000000d5f279ff9eb21c6d40c8f345a66f2751c4eea1fb
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.