81 txs
331 calls
constructor
constructor(address _owner, address _router)
functions
DEADADDRESS
viewfunction DEADADDRESS() view returns (address)
ethToTwap
viewfunction ethToTwap() view returns (uint256)
lastPunkSalePrice
viewfunction lastPunkSalePrice() view returns (uint256)
lastTwapBlock
viewfunction lastTwapBlock() view returns (uint256)
minimumPunkPrice
viewfunction minimumPunkPrice() view returns (uint256)
owner
viewfunction owner() view returns (address result)
ownershipHandoverExpiresAt
viewfunction ownershipHandoverExpiresAt(address pendingOwner) view returns (uint256 result)
priceMultiplier
viewfunction priceMultiplier() view returns (uint256)
reward
viewfunction reward() view returns (uint256)
twapDelayInBlocks
viewfunction twapDelayInBlocks() view returns (uint256)
twapIncrement
viewfunction twapIncrement() view returns (uint256)
addFees
payablefunction addFees() payable
buyPunkAndRelist
nonpayablefunction buyPunkAndRelist(uint256 punkId) returns (uint256)
cancelOwnershipHandover
payablefunction cancelOwnershipHandover() payable
completeOwnershipHandover
payablefunction completeOwnershipHandover(address pendingOwner) payable
processPunkSale
nonpayablefunction processPunkSale() returns (uint256)
processTokenTwap
nonpayablefunction processTokenTwap()
renounceOwnership
payablefunction renounceOwnership() payable
requestOwnershipHandover
payablefunction requestOwnershipHandover() payable
setPriceMultiplier
nonpayablefunction setPriceMultiplier(uint256 _newMultiplier)
setReward
nonpayablefunction setReward(uint256 _newReward)
setTwapDelayInBlocks
nonpayablefunction setTwapDelayInBlocks(uint256 _newDelay)
setTwapIncrement
nonpayablefunction setTwapIncrement(uint256 _newIncrement)
transferEther
payablefunction transferEther(address _to, uint256 _amount) payable
transferOwnership
payablefunction transferOwnership(address newOwner) payable
transferPunkStrategyOwnership
nonpayablefunction transferPunkStrategyOwnership(address newOwner)
transferToken
payablefunction transferToken(address _token, address _to, uint256 _amount) payable
updateFeeBips
nonpayablefunction updateFeeBips(uint128 _feeBips)
updateFeeSplit
nonpayablefunction updateFeeSplit(address _feeSplit)
updateManualFees
nonpayablefunction updateManualFees(bool _manuallyProcessFees)
events
OwnershipHandoverCanceled
event OwnershipHandoverCanceled(address indexed pendingOwner)
OwnershipHandoverRequested
event OwnershipHandoverRequested(address indexed pendingOwner)
OwnershipTransferred
event OwnershipTransferred(address indexed oldOwner, address indexed newOwner)
ProtocolFeesFromSales
event ProtocolFeesFromSales(uint256 ethFees)
errors
AlreadyInitialized
error AlreadyInitialized()
InsufficientContractBalance
error InsufficientContractBalance()
InvalidMultiplier
error InvalidMultiplier()
NewOwnerIsZeroAddress
error NewOwnerIsZeroAddress()
NoETHToTwap
error NoETHToTwap()
NoHandoverRequest
error NoHandoverRequest()
NoPunksBoughtYet
error NoPunksBoughtYet()
NoSaleToProcess
error NoSaleToProcess()
NotEnoughEth
error NotEnoughEth()
PunkNotForSale
error PunkNotForSale()
PunkNotOwned
error PunkNotOwned()
PunkPriceTooLow
error PunkPriceTooLow()
Reentrancy
error Reentrancy()
TwapDelayNotMet
error TwapDelayNotMet()
Unauthorized
error Unauthorized()
creation bytecode
0x60c060405234801561000f575f5ffd5b5060405161216b38038061216b83398181016040528101906100319190610221565b6104b06002819055506611c37937e080005f81905550670de0b6b3a764000060048190555060016005819055508073ffffffffffffffffffffffffffffffffffffffff1660a08173ffffffffffffffffffffffffffffffffffffffff16815250506100a1826100a860201b60201c565b505061025f565b6100b661018460201b60201c565b1561012e577fffffffffffffffffffffffffffffffffffffffffffffffffffffffff748739278054156100f057630dc149f05f526004601cfd5b8160601b60601c9150811560ff1b82178155815f7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f5fa350610181565b8060601b60601c9050807fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392755805f7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f5fa35b50565b5f90565b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6101b58261018c565b9050919050565b6101c5816101ab565b81146101cf575f5ffd5b50565b5f815190506101e0816101bc565b92915050565b5f6101f08261018c565b9050919050565b610200816101e6565b811461020a575f5ffd5b50565b5f8151905061021b816101f7565b92915050565b5f5f6040838503121561023757610236610188565b5b5f610244858286016101d2565b92505060206102558582860161020d565b9150509250929050565b60805160a051611eee61027d5f395f61149f01525f5050611eee5ff3fe6080604052600436106101d0575f3560e01c806371e59959116100f6578063d50cb88b11610094578063f04e283e11610063578063f04e283e1461057f578063f2fde38b1461059b578063f5537ede146105b7578063fee81cf4146105d3576101d7565b8063d50cb88b146104d7578063dd73f59114610501578063e6c693131461052b578063ec07882114610555576101d7565b80638da5cb5b116100d05780638da5cb5b1461041f578063bdc9614c14610449578063c2fa867b14610471578063d18c9a9d1461049b576101d7565b806371e59959146103a35780637eddd851146103cd5780637fc1776c146103f5576101d7565b8063256929621161016e578063438f60131161013d578063438f60131461033f57806354d1f13d146103675780635f9226e614610371578063715018a614610399576101d7565b806325692962146102bd57806328eed141146102c7578063293be456146102ef5780633a21d2ca14610317576101d7565b80631db52755116101aa5780631db527551461022b5780632081c4ea14610241578063228cb7331461026957806323b2f39214610293576101d7565b806305b1137b146101db5780631803e284146101f757806319d6150d14610221576101d7565b366101d757005b5f5ffd5b6101f560048036038101906101f091906116af565b61060f565b005b348015610202575f5ffd5b5061020b610625565b60405161021891906116fc565b60405180910390f35b61022961062b565b005b348015610236575f5ffd5b5061023f6106a6565b005b34801561024c575f5ffd5b5061026760048036038101906102629190611715565b610803565b005b348015610274575f5ffd5b5061027d61085d565b60405161028a919061174f565b60405180910390f35b34801561029e575f5ffd5b506102a7610862565b6040516102b4919061174f565b60405180910390f35b6102c5610868565b005b3480156102d2575f5ffd5b506102ed60048036038101906102e891906117a3565b6108b9565b005b3480156102fa575f5ffd5b5061031560048036038101906103109190611715565b61093e565b005b348015610322575f5ffd5b5061033d60048036038101906103389190611715565b61094f565b005b34801561034a575f5ffd5b5061036560048036038101906103609190611813565b610961565b005b61036f6109e6565b005b34801561037c575f5ffd5b5061039760048036038101906103929190611715565b610a1f565b005b6103a1610a31565b005b3480156103ae575f5ffd5b506103b7610a44565b6040516103c4919061174f565b60405180910390f35b3480156103d8575f5ffd5b506103f360048036038101906103ee919061183e565b610a50565b005b348015610400575f5ffd5b50610409610ad5565b604051610416919061174f565b60405180910390f35b34801561042a575f5ffd5b50610433610adb565b60405161044091906116fc565b60405180910390f35b348015610454575f5ffd5b5061046f600480360381019061046a919061189e565b610b03565b005b34801561047c575f5ffd5b50610485610b88565b604051610492919061174f565b60405180910390f35b3480156104a6575f5ffd5b506104c160048036038101906104bc9190611715565b610b8e565b6040516104ce919061174f565b60405180910390f35b3480156104e2575f5ffd5b506104eb61104c565b6040516104f8919061174f565b60405180910390f35b34801561050c575f5ffd5b50610515611052565b604051610522919061174f565b60405180910390f35b348015610536575f5ffd5b5061053f61126e565b60405161054c919061174f565b60405180910390f35b348015610560575f5ffd5b50610569611274565b604051610576919061174f565b60405180910390f35b6105996004803603810190610594919061183e565b61127a565b005b6105b560048036038101906105b0919061183e565b6112b8565b005b6105d160048036038101906105cc91906118c9565b6112e1565b005b3480156105de575f5ffd5b506105f960048036038101906105f4919061183e565b61136c565b604051610606919061174f565b60405180910390f35b610617611385565b61062182826113bc565b5050565b61dead81565b610633611385565b73c50673edb3a7b94e8cad8a7d4e0cd68864e33edf73ffffffffffffffffffffffffffffffffffffffff166319d6150d346040518263ffffffff1660e01b81526004015f604051808303818588803b15801561068d575f5ffd5b505af115801561069f573d5f5f3e3d5ffd5b5050505050565b3068929eee149b4bd2126854036106c45763ab143c065f526004601cfd5b3068929eee149b4bd21268555f6003540361070b576040517f1863d7fb00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60055460065461071b9190611946565b431015610754576040517f53f77c5b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f6004549050600454600354101561076c5760035490505b5f5481116107a6576040517ff14a42b700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f54816107b39190611979565b90505f54816107c29190611946565b60035f8282546107d29190611979565b92505081905550436006819055506107e981611400565b6107f4335f546113bc565b503868929eee149b4bd2126855565b61080b611385565b61044c81108061081c575061271081115b15610853576040517f6f12f3dc00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8060028190555050565b5f5481565b60035481565b5f61087161154a565b67ffffffffffffffff164201905063389a75e1600c52335f52806020600c2055337fdbf36a107da19e49527a7176a1babf963b4b0ff8cde35ee35d6cd8f1f9ac7e1d5f5fa250565b6108c1611385565b73faaad5b731f52cdc9746f2414c823eca9b06e84473ffffffffffffffffffffffffffffffffffffffff166328eed141826040518263ffffffff1660e01b815260040161090e9190611a07565b5f604051808303815f87803b158015610925575f5ffd5b505af1158015610937573d5f5f3e3d5ffd5b5050505050565b610946611385565b805f8190555050565b610957611385565b8060058190555050565b610969611385565b73faaad5b731f52cdc9746f2414c823eca9b06e84473ffffffffffffffffffffffffffffffffffffffff1663438f6013826040518263ffffffff1660e01b81526004016109b69190611a2f565b5f604051808303815f87803b1580156109cd575f5ffd5b505af11580156109df573d5f5f3e3d5ffd5b5050505050565b63389a75e1600c52335f525f6020600c2055337ffa7b8eab7da67f412cc9575ed43464468f9bfbae89d1675917346ca6d8fe3c925f5fa2565b610a27611385565b8060048190555050565b610a39611385565b610a425f611554565b565b675fc1b9713632000081565b610a58611385565b73c50673edb3a7b94e8cad8a7d4e0cd68864e33edf73ffffffffffffffffffffffffffffffffffffffff1663f2fde38b826040518263ffffffff1660e01b8152600401610aa591906116fc565b5f604051808303815f87803b158015610abc575f5ffd5b505af1158015610ace573d5f5f3e3d5ffd5b5050505050565b60015481565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392754905090565b610b0b611385565b73faaad5b731f52cdc9746f2414c823eca9b06e84473ffffffffffffffffffffffffffffffffffffffff1663bdc9614c826040518263ffffffff1660e01b8152600401610b589190611a57565b5f604051808303815f87803b158015610b6f575f5ffd5b505af1158015610b81573d5f5f3e3d5ffd5b5050505050565b60055481565b5f3068929eee149b4bd212685403610bad5763ab143c065f526004601cfd5b3068929eee149b4bd21268555f5f5f73b47e3cd837ddf8e4c57f05d70ab865de6e193bbb73ffffffffffffffffffffffffffffffffffffffff1663088f11f3866040518263ffffffff1660e01b8152600401610c09919061174f565b60a060405180830381865afa158015610c24573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c489190611aac565b945094505050925082610c87576040517f97d9bbc100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610cec576040517f97d9bbc100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b675fc1b971363200008211610d2d576040517f2b5b168f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f5f5483610d3b9190611946565b90508073c50673edb3a7b94e8cad8a7d4e0cd68864e33edf73ffffffffffffffffffffffffffffffffffffffff16311015610da2576040517f786e0a9900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73c50673edb3a7b94e8cad8a7d4e0cd68864e33edf73ffffffffffffffffffffffffffffffffffffffff166305b1137b30836040518363ffffffff1660e01b8152600401610df1929190611b23565b5f604051808303815f87803b158015610e08575f5ffd5b505af1158015610e1a573d5f5f3e3d5ffd5b5050505073b47e3cd837ddf8e4c57f05d70ab865de6e193bbb73ffffffffffffffffffffffffffffffffffffffff16638264fe9884886040518363ffffffff1660e01b8152600401610e6c919061174f565b5f604051808303818588803b158015610e83575f5ffd5b505af1158015610e95573d5f5f3e3d5ffd5b50505050503073ffffffffffffffffffffffffffffffffffffffff1673b47e3cd837ddf8e4c57f05d70ab865de6e193bbb73ffffffffffffffffffffffffffffffffffffffff166358178168886040518263ffffffff1660e01b8152600401610efe919061174f565b602060405180830381865afa158015610f19573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610f3d9190611b4a565b73ffffffffffffffffffffffffffffffffffffffff1614610f8a576040517f6646c58b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73b47e3cd837ddf8e4c57f05d70ab865de6e193bbb73ffffffffffffffffffffffffffffffffffffffff1663c44193c3876103e860025487610fcc9190611b75565b610fd69190611be3565b6040518363ffffffff1660e01b8152600401610ff3929190611c13565b5f604051808303815f87803b15801561100a575f5ffd5b505af115801561101c573d5f5f3e3d5ffd5b5050505061102b335f546113bc565b826001819055506001549450505050503868929eee149b4bd2126855919050565b60025481565b5f3068929eee149b4bd2126854036110715763ab143c065f526004601cfd5b3068929eee149b4bd21268555f600154036110b8576040517fdfabd9b700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f73b47e3cd837ddf8e4c57f05d70ab865de6e193bbb73ffffffffffffffffffffffffffffffffffffffff1663f3f43703306040518263ffffffff1660e01b815260040161110691906116fc565b602060405180830381865afa158015611121573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906111459190611c3a565b90505f548111611181576040517ff14a42b700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73b47e3cd837ddf8e4c57f05d70ab865de6e193bbb73ffffffffffffffffffffffffffffffffffffffff16633ccfd60b6040518163ffffffff1660e01b81526004015f604051808303815f87803b1580156111da575f5ffd5b505af11580156111ec573d5f5f3e3d5ffd5b505050505f5f54826111fe9190611979565b90508060035f8282546112119190611946565b92505081905550611223335f546113bc565b7f56de8869f8941ec56d335c1f8e252a0de53e4fbf5e55a275aaf5b1e68316874782604051611252919061174f565b60405180910390a181925050503868929eee149b4bd212685590565b60065481565b60045481565b611282611385565b63389a75e1600c52805f526020600c2080544211156112a857636f5e88185f526004601cfd5b5f8155506112b581611554565b50565b6112c0611385565b8060601b6112d557637448fbae5f526004601cfd5b6112de81611554565b50565b6112e9611385565b73faaad5b731f52cdc9746f2414c823eca9b06e84473ffffffffffffffffffffffffffffffffffffffff1663f5537ede8484846040518463ffffffff1660e01b815260040161133a93929190611c65565b5f604051808303815f87803b158015611351575f5ffd5b505af1158015611363573d5f5f3e3d5ffd5b50505050505050565b5f63389a75e1600c52815f526020600c20549050919050565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff748739275433146113ba576382b429005f526004601cfd5b565b804710156113d15763b12d13eb5f526004601cfd5b5f385f388486620186a0f16113fc57815f526073600b5360ff6020536016600b82f06113fb573838fd5b5b5050565b5f6040518060a001604052805f73ffffffffffffffffffffffffffffffffffffffff16815260200173c50673edb3a7b94e8cad8a7d4e0cd68864e33edf73ffffffffffffffffffffffffffffffffffffffff1681526020015f62ffffff168152602001603c60020b815260200173faaad5b731f52cdc9746f2414c823eca9b06e84473ffffffffffffffffffffffffffffffffffffffff1681525090507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663b1a0d57183845f60018661dead426040518863ffffffff1660e01b815260040161150496959493929190611de4565b60206040518083038185885af1158015611520573d5f5f3e3d5ffd5b50505050506040513d601f19601f820116820180604052508101906115459190611e8d565b505050565b5f6202a300905090565b61155c61161a565b156115c1577fffffffffffffffffffffffffffffffffffffffffffffffffffffffff748739278160601b60601c91508181547f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f5fa3811560ff1b8217815550611617565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff748739278160601b60601c91508181547f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f5fa3818155505b50565b5f90565b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61164b82611622565b9050919050565b61165b81611641565b8114611665575f5ffd5b50565b5f8135905061167681611652565b92915050565b5f819050919050565b61168e8161167c565b8114611698575f5ffd5b50565b5f813590506116a981611685565b92915050565b5f5f604083850312156116c5576116c461161e565b5b5f6116d285828601611668565b92505060206116e38582860161169b565b9150509250929050565b6116f681611641565b82525050565b5f60208201905061170f5f8301846116ed565b92915050565b5f6020828403121561172a5761172961161e565b5b5f6117378482850161169b565b91505092915050565b6117498161167c565b82525050565b5f6020820190506117625f830184611740565b92915050565b5f61177282611641565b9050919050565b61178281611768565b811461178c575f5ffd5b50565b5f8135905061179d81611779565b92915050565b5f602082840312156117b8576117b761161e565b5b5f6117c58482850161178f565b91505092915050565b5f6fffffffffffffffffffffffffffffffff82169050919050565b6117f2816117ce565b81146117fc575f5ffd5b50565b5f8135905061180d816117e9565b92915050565b5f602082840312156118285761182761161e565b5b5f611835848285016117ff565b91505092915050565b5f602082840312156118535761185261161e565b5b5f61186084828501611668565b91505092915050565b5f8115159050919050565b61187d81611869565b8114611887575f5ffd5b50565b5f8135905061189881611874565b92915050565b5f602082840312156118b3576118b261161e565b5b5f6118c08482850161188a565b91505092915050565b5f5f5f606084860312156118e0576118df61161e565b5b5f6118ed86828701611668565b93505060206118fe86828701611668565b925050604061190f8682870161169b565b9150509250925092565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6119508261167c565b915061195b8361167c565b925082820190508082111561197357611972611919565b5b92915050565b5f6119838261167c565b915061198e8361167c565b92508282039050818111156119a6576119a5611919565b5b92915050565b5f819050919050565b5f6119cf6119ca6119c584611622565b6119ac565b611622565b9050919050565b5f6119e0826119b5565b9050919050565b5f6119f1826119d6565b9050919050565b611a01816119e7565b82525050565b5f602082019050611a1a5f8301846119f8565b92915050565b611a29816117ce565b82525050565b5f602082019050611a425f830184611a20565b92915050565b611a5181611869565b82525050565b5f602082019050611a6a5f830184611a48565b92915050565b5f81519050611a7e81611874565b92915050565b5f81519050611a9281611685565b92915050565b5f81519050611aa681611652565b92915050565b5f5f5f5f5f60a08688031215611ac557611ac461161e565b5b5f611ad288828901611a70565b9550506020611ae388828901611a84565b9450506040611af488828901611a98565b9350506060611b0588828901611a84565b9250506080611b1688828901611a98565b9150509295509295909350565b5f604082019050611b365f8301856116ed565b611b436020830184611740565b9392505050565b5f60208284031215611b5f57611b5e61161e565b5b5f611b6c84828501611a98565b91505092915050565b5f611b7f8261167c565b9150611b8a8361167c565b9250828202611b988161167c565b91508282048414831517611baf57611bae611919565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f611bed8261167c565b9150611bf88361167c565b925082611c0857611c07611bb6565b5b828204905092915050565b5f604082019050611c265f830185611740565b611c336020830184611740565b9392505050565b5f60208284031215611c4f57611c4e61161e565b5b5f611c5c84828501611a84565b91505092915050565b5f606082019050611c785f8301866116ed565b611c8560208301856116ed565b611c926040830184611740565b949350505050565b5f819050919050565b5f611cbd611cb8611cb384611c9a565b6119ac565b61167c565b9050919050565b611ccd81611ca3565b82525050565b5f611cdd826119d6565b9050919050565b611ced81611cd3565b82525050565b5f62ffffff82169050919050565b611d0a81611cf3565b82525050565b5f8160020b9050919050565b611d2581611d10565b82525050565b5f611d35826119d6565b9050919050565b611d4581611d2b565b82525050565b60a082015f820151611d5f5f850182611ce4565b506020820151611d726020850182611ce4565b506040820151611d856040850182611d01565b506060820151611d986060850182611d1c565b506080820151611dab6080850182611d3c565b50505050565b5f82825260208201905092915050565b50565b5f611dcf5f83611db1565b9150611dda82611dc1565b5f82019050919050565b5f61016082019050611df85f830189611740565b611e056020830188611cc4565b611e126040830187611a48565b611e1f6060830186611d4b565b818103610100830152611e3181611dc4565b9050611e416101208301856116ed565b611e4f610140830184611740565b979650505050505050565b5f819050919050565b611e6c81611e5a565b8114611e76575f5ffd5b50565b5f81519050611e8781611e63565b92915050565b5f60208284031215611ea257611ea161161e565b5b5f611eaf84828501611e79565b9150509291505056fea2646970667358221220844f9a0f3cc55e2d0d2f34154ded756133d9a998f23116758bf4233b50d5fea364736f6c634300081e0033000000000000000000000000019817ad02a31b990433542097be29d97613e8cb00000000000000000000000000000000000044a361ae3cac094c9d1b14eece97