Loading
[ { "inputs": [ { "internalType": "uint256", "name": "maxSupply", "type": "uint256" }, { "internalType": "uint256", "name": "tokenPerMint", "type": "uint256" }, { "internalType": "uint256", "name": "mintDurationBlocks", "type": "uint256" }, { "internalType": "uint256", "name": "difficultyAdjustmentInterval", "type": "uint256" }, { "internalType": "uint256", "name": "_startBlock", "type": "uint256" }, { "components": [ { "internalType": "uint256", "name": "step", "type": "uint256" }, { "internalType": "uint256", "name": "level", "type": "uint256" } ], "internalType": "struct DuckAI.DifficultyAdjustment[]", "name": "_difficultyAdjustments", "type": "tuple[]" }, { "internalType": "address", "name": "_uniswapRouter", "type": "address" } ], "stateMutability": "nonpayable", "type": "constructor" }, { "inputs": [ { "internalType": "address", "name": "spender", "type": "address" }, { "internalType": "uint256", "name": "allowance", "type": "uint256" }, { "internalType": "uint256", "name": "needed", "type": "uint256" } ], "name": "ERC20InsufficientAllowance", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "sender", "type": "address" }, { "internalType": "uint256", "name": "balance", "type": "uint256" }, { "internalType": "uint256", "name": "needed", "type": "uint256" } ], "name": "ERC20InsufficientBalance", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "approver", "type": "address" } ], "name": "ERC20InvalidApprover", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "receiver", "type": "address" } ], "name": "ERC20InvalidReceiver", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "sender", "type": "address" } ], "name": "ERC20InvalidSender", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "spender", "type": "address" } ], "name": "ERC20InvalidSpender", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" } ], "name": "OwnableInvalidOwner", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "OwnableUnauthorizedAccount", "type": "error" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "owner", "type": "address" }, { "indexed": true, "internalType": "address", "name": "spender", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "value", "type": "uint256" } ], "name": "Approval", "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" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "from", "type": "address" }, { "indexed": true, "internalType": "address", "name": "to", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "value", "type": "uint256" } ], "name": "Transfer", "type": "event" }, { "inputs": [], "name": "DIFFICULTY", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "DIFFICULTY_ADJUSTMENT_INTERVAL", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "MAX_MINTS_PER_ADDRESS", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "MAX_SUPPLY", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "MINT_AMOUNT_PER_TX", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "MINT_DURATION_BLOCKS", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "MINT_FEE", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "addLiquidity", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" }, { "internalType": "address", "name": "spender", "type": "address" } ], "name": "allowance", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "spender", "type": "address" }, { "internalType": "uint256", "name": "value", "type": "uint256" } ], "name": "approve", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "balanceOf", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "decimals", "outputs": [ { "internalType": "uint8", "name": "", "type": "uint8" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "name": "difficultyMap", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "lastDifficultyAdjustmentBlock", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "nonce", "type": "uint256" } ], "name": "mint", "outputs": [], "stateMutability": "payable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "mintCount", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "name", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "owner", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "renounceOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "startBlock", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "symbol", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "totalSupply", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "value", "type": "uint256" } ], "name": "transfer", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "from", "type": "address" }, { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "value", "type": "uint256" } ], "name": "transferFrom", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "transferOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "uniswapRouter", "outputs": [ { "internalType": "contract IUniswapV2Router02", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" } ]
6080604052620186a060095534801561001757600080fd5b5060405161186b38038061186b833981016040819052610036916103dd565b33604051806040016040528060068152602001654475636b414960d01b815250604051806040016040528060068152602001654455434b414960d01b81525081600390816100849190610580565b5060046100918282610580565b5050506001600160a01b0381166100c357604051631e4fbdf760e01b8152600060048201526024015b60405180910390fd5b6100cc8161019d565b50600b879055600c86905560078590556008839055600a84905560005b825181101561014a578281815181106101045761010461063e565b602002602001015160200151600d60008584815181106101265761012661063e565b602090810291909101810151518252810191909152604001600020556001016100e9565b506000606461015a89601961066a565b6101649190610687565b905061017030826101ef565b50601080546001600160a01b0319166001600160a01b0392909216919091179055506106bc945050505050565b600680546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6001600160a01b0382166102195760405163ec442f0560e01b8152600060048201526024016100ba565b61022560008383610229565b5050565b6001600160a01b03831661025457806002600082825461024991906106a9565b909155506102c69050565b6001600160a01b038316600090815260208190526040902054818110156102a75760405163391434e360e21b81526001600160a01b038516600482015260248101829052604481018390526064016100ba565b6001600160a01b03841660009081526020819052604090209082900390555b6001600160a01b0382166102e257600280548290039055610301565b6001600160a01b03821660009081526020819052604090208054820190555b816001600160a01b0316836001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161034691815260200190565b60405180910390a3505050565b634e487b7160e01b600052604160045260246000fd5b604080519081016001600160401b038111828210171561038b5761038b610353565b60405290565b604051601f8201601f191681016001600160401b03811182821017156103b9576103b9610353565b604052919050565b80516001600160a01b03811681146103d857600080fd5b919050565b600080600080600080600060e0888a0312156103f857600080fd5b8751602089015160408a015160608b015160808c015160a08d0151949b50929950909750955093506001600160401b0381111561043457600080fd5b8801601f81018a1361044557600080fd5b80516001600160401b0381111561045e5761045e610353565b61046d60208260051b01610391565b8082825260208201915060208360061b85010192508c83111561048f57600080fd5b6020840193505b828410156104d7576040848e0312156104ae57600080fd5b6104b6610369565b84518152602080860151818301529083526040909401939190910190610496565b94506104e99250505060c089016103c1565b905092959891949750929550565b600181811c9082168061050b57607f821691505b60208210810361052b57634e487b7160e01b600052602260045260246000fd5b50919050565b601f82111561057b57806000526020600020601f840160051c810160208510156105585750805b601f840160051c820191505b818110156105785760008155600101610564565b50505b505050565b81516001600160401b0381111561059957610599610353565b6105ad816105a784546104f7565b84610531565b6020601f8211600181146105e157600083156105c95750848201515b600019600385901b1c1916600184901b178455610578565b600084815260208120601f198516915b8281101561061157878501518255602094850194600190920191016105f1565b508482101561062f5786840151600019600387901b60f8161c191681555b50505050600190811b01905550565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b808202811582820484141761068157610681610654565b92915050565b6000826106a457634e487b7160e01b600052601260045260246000fd5b500490565b8082018082111561068157610681610654565b6111a0806106cb6000396000f3fe6080604052600436106101815760003560e01c8063735de9f7116100d1578063b874ff431161008a578063e8078d9411610064578063e8078d9414610452578063ed9ec88814610467578063f2fde38b14610494578063f7d13407146104b457600080fd5b8063b874ff43146103dc578063d7bf81a3146103f1578063dd62ed3e1461040c57600080fd5b8063735de9f7146103285780638da5cb5b146103605780638e295e9f1461037e57806395d89b4114610394578063a0712d68146103a9578063a9059cbb146103bc57600080fd5b8063313ce5671161013e57806348cd4cb11161011857806348cd4cb1146102985780635f111c1e146102ae57806370a08231146102db578063715018a61461031157600080fd5b8063313ce5671461025057806332cb6b0c1461026c5780633fa352f51461028257600080fd5b806306fdde0314610186578063095ea7b3146101b15780630cf09db2146101e15780631087cafd1461020557806318160ddd1461021b57806323b872dd14610230575b600080fd5b34801561019257600080fd5b5061019b6104ca565b6040516101a89190610f35565b60405180910390f35b3480156101bd57600080fd5b506101d16101cc366004610f9f565b61055c565b60405190151581526020016101a8565b3480156101ed57600080fd5b506101f7600e5481565b6040519081526020016101a8565b34801561021157600080fd5b506101f760075481565b34801561022757600080fd5b506002546101f7565b34801561023c57600080fd5b506101d161024b366004610fc9565b610576565b34801561025c57600080fd5b50604051601281526020016101a8565b34801561027857600080fd5b506101f7600b5481565b34801561028e57600080fd5b506101f760095481565b3480156102a457600080fd5b506101f760085481565b3480156102ba57600080fd5b506101f76102c9366004611006565b600d6020526000908152604090205481565b3480156102e757600080fd5b506101f76102f636600461101f565b6001600160a01b031660009081526020819052604090205490565b34801561031d57600080fd5b5061032661059a565b005b34801561033457600080fd5b50601054610348906001600160a01b031681565b6040516001600160a01b0390911681526020016101a8565b34801561036c57600080fd5b506006546001600160a01b0316610348565b34801561038a57600080fd5b506101f7600c5481565b3480156103a057600080fd5b5061019b6105ae565b6103266103b7366004611006565b6105bd565b3480156103c857600080fd5b506101d16103d7366004610f9f565b61084f565b3480156103e857600080fd5b506101f7600a81565b3480156103fd57600080fd5b506101f76602738d24e5200081565b34801561041857600080fd5b506101f7610427366004611041565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b34801561045e57600080fd5b5061032661085d565b34801561047357600080fd5b506101f761048236600461101f565b600f6020526000908152604090205481565b3480156104a057600080fd5b506103266104af36600461101f565b610a0f565b3480156104c057600080fd5b506101f7600a5481565b6060600380546104d990611074565b80601f016020809104026020016040519081016040528092919081815260200182805461050590611074565b80156105525780601f1061052757610100808354040283529160200191610552565b820191906000526020600020905b81548152906001019060200180831161053557829003601f168201915b5050505050905090565b60003361056a818585610a37565b60019150505b92915050565b600033610584858285610a44565b61058f858585610abc565b506001949350505050565b6105a2610b1b565b6105ac6000610b48565b565b6060600480546104d990611074565b6008544310156106145760405162461bcd60e51b815260206004820152601b60248201527f4d696e74696e6720686173206e6f74207374617274656420796574000000000060448201526064015b60405180910390fd5b3332146106585760405162461bcd60e51b815260206004820152601260248201527111195b9e4818dbdb9d1c9858dd081b5a5b9d60721b604482015260640161060b565b600b54600c5460025461066b91906110c4565b11156106ae5760405162461bcd60e51b815260206004820152601260248201527113585e081cdd5c1c1b1e481c995858da195960721b604482015260640161060b565b336000908152600f6020526040902054600a116107185760405162461bcd60e51b815260206004820152602260248201527f4d696e74206c696d6974207265616368656420666f7220746865206164647265604482015261737360f01b606482015260840161060b565b6602738d24e5200034146107665760405162461bcd60e51b8152602060048201526015602482015274496e73756666696369656e74206d696e742066656560581b604482015260640161060b565b60006008544361077691906110d7565b90506007548111156107b957600254600b5560405133903480156108fc02916000818181858888f193505050501580156107b4573d6000803e3d6000fd5b505050565b6107c582600954610b9a565b336000908152600f602052604081208054916107e0836110ea565b91905055506107f133600c54610cc5565b600e5481111561084b57600a5460009061080b8184611103565b6108159190611125565b6000818152600d6020526040902054909150801580159061083857506009548114155b15610848576009819055600e8290555b50505b5050565b60003361056a818585610abc565b600b54600254146108b05760405162461bcd60e51b815260206004820152601760248201527f4d696e74696e67206973207374696c6c20616374697665000000000000000000604482015260640161060b565b30600090815260208190526040902054478161090e5760405162461bcd60e51b815260206004820152601d60248201527f4e6f20746f6b656e7320746f2061646420746f206c6971756964697479000000604482015260640161060b565b6000811161095e5760405162461bcd60e51b815260206004820152601a60248201527f4e6f2045544820746f2061646420746f206c6971756964697479000000000000604482015260640161060b565b6010546109769030906001600160a01b031684610a37565b60105460405163f305d71960e01b8152306004820152602481018490526000604482018190526064820181905260848201524260a48201526001600160a01b039091169063f305d71990839060c40160606040518083038185885af11580156109e3573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610a08919061113c565b5050505050565b610a17610b1b565b610a3473d8da6bf26964af9d7eed9e03e53415d37aa96045610cfb565b50565b6107b48383836001610d36565b6001600160a01b0383811660009081526001602090815260408083209386168352929052205460001981146108485781811015610aad57604051637dc7a0d960e11b81526001600160a01b0384166004820152602481018290526044810183905260640161060b565b61084884848484036000610d36565b6001600160a01b038316610ae657604051634b637e8f60e11b81526000600482015260240161060b565b6001600160a01b038216610b105760405163ec442f0560e01b81526000600482015260240161060b565b6107b4838383610e0b565b6006546001600160a01b031633146105ac5760405163118cdaa760e01b815233600482015260240161060b565b600680546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b60008281526005602052604090205460ff1615610bee5760405162461bcd60e51b8152602060048201526012602482015271139bdb98d948185b1c9958591e481d5cd95960721b604482015260640161060b565b6000828152600560209081526040808320805460ff1916600117905551610c4c91309133918791879101606094851b6bffffffffffffffffffffffff1990811682529390941b90921660148401526028830152604882015260680190565b60408051601f19818403018152919052805160209091012090506000610c7483600019611103565b90508082106108485760405162461bcd60e51b815260206004820152601760248201527f506f5720766572696669636174696f6e206661696c6564000000000000000000604482015260640161060b565b6001600160a01b038216610cef5760405163ec442f0560e01b81526000600482015260240161060b565b61084b60008383610e0b565b610d03610b1b565b6001600160a01b038116610d2d57604051631e4fbdf760e01b81526000600482015260240161060b565b610a3481610b48565b6001600160a01b038416610d605760405163e602df0560e01b81526000600482015260240161060b565b6001600160a01b038316610d8a57604051634a1406b160e11b81526000600482015260240161060b565b6001600160a01b038085166000908152600160209081526040808320938716835292905220829055801561084857826001600160a01b0316846001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92584604051610dfd91815260200190565b60405180910390a350505050565b6001600160a01b038316610e36578060026000828254610e2b91906110c4565b90915550610ea89050565b6001600160a01b03831660009081526020819052604090205481811015610e895760405163391434e360e21b81526001600160a01b0385166004820152602481018290526044810183905260640161060b565b6001600160a01b03841660009081526020819052604090209082900390555b6001600160a01b038216610ec457600280548290039055610ee3565b6001600160a01b03821660009081526020819052604090208054820190555b816001600160a01b0316836001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051610f2891815260200190565b60405180910390a3505050565b602081526000825180602084015260005b81811015610f635760208186018101516040868401015201610f46565b506000604082850101526040601f19601f83011684010191505092915050565b80356001600160a01b0381168114610f9a57600080fd5b919050565b60008060408385031215610fb257600080fd5b610fbb83610f83565b946020939093013593505050565b600080600060608486031215610fde57600080fd5b610fe784610f83565b9250610ff560208501610f83565b929592945050506040919091013590565b60006020828403121561101857600080fd5b5035919050565b60006020828403121561103157600080fd5b61103a82610f83565b9392505050565b6000806040838503121561105457600080fd5b61105d83610f83565b915061106b60208401610f83565b90509250929050565b600181811c9082168061108857607f821691505b6020821081036110a857634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b80820180821115610570576105706110ae565b81810381811115610570576105706110ae565b6000600182016110fc576110fc6110ae565b5060010190565b60008261112057634e487b7160e01b600052601260045260246000fd5b500490565b8082028115828204841417610570576105706110ae565b60008060006060848603121561115157600080fd5b505081516020830151604090930151909492935091905056fea2646970667358221220cec25160fb8829fdcc0ee81590cb1e9dda7b7efa7dabe9542de13c0a42f84b3364736f6c634300081a0033000000000000000000000000000000000000000021ed657c8e0d427f840000000000000000000000000000000000000000000000000069e10de76676d0800000000000000000000000000000000000000000000000000000000000000000384000000000000000000000000000000000000000000000000000000000000012c0000000000000000000000000000000000000000000000000000000000140c14800000000000000000000000000000000000000000000000000000000000000e00000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000012c000000000000000000000000000000000000000000000000000000000000f424000000000000000000000000000000000000000000000000000000000000025800000000000000000000000000000000000000000000000000000000000989680