[ { "inputs": [], "stateMutability": "nonpayable", "type": "constructor" }, { "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": "minter", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "amount", "type": "uint256" }, { "indexed": false, "internalType": "bool", "name": "usdc", "type": "bool" }, { "indexed": false, "internalType": "uint256", "name": "estimatedAmount", "type": "uint256" } ], "name": "Mint", "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": [], "name": "Paused", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint256", "name": "phaseIndex", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "minMint", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "maxMint", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "price", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "totalAmount", "type": "uint256" } ], "name": "PhaseAdded", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint256", "name": "phaseIndex", "type": "uint256" } ], "name": "PhaseChanged", "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" }, { "anonymous": false, "inputs": [], "name": "Unpaused", "type": "event" }, { "inputs": [], "name": "TOTAL_SUPPLY", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "USDC", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "USDT", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_minMint", "type": "uint256" }, { "internalType": "uint256", "name": "_maxMint", "type": "uint256" }, { "internalType": "uint256", "name": "_price", "type": "uint256" }, { "internalType": "uint256", "name": "_totalAmount", "type": "uint256" } ], "name": "addPhase", "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": "amount", "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": "currentPhase", "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": "address", "name": "spender", "type": "address" }, { "internalType": "uint256", "name": "subtractedValue", "type": "uint256" } ], "name": "decreaseAllowance", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "getCurrentPhaseDetails", "outputs": [ { "internalType": "uint256", "name": "minMint", "type": "uint256" }, { "internalType": "uint256", "name": "maxMint", "type": "uint256" }, { "internalType": "uint256", "name": "price", "type": "uint256" }, { "internalType": "uint256", "name": "totalAmount", "type": "uint256" }, { "internalType": "uint256", "name": "mintedAmount", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "getPhasesCount", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "getTotalStablecoinsRaised", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "spender", "type": "address" }, { "internalType": "uint256", "name": "addedValue", "type": "uint256" } ], "name": "increaseAllowance", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "stablecoinAmount", "type": "uint256" }, { "internalType": "bool", "name": "_usdc", "type": "bool" } ], "name": "mint", "outputs": [], "stateMutability": "nonpayable", "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": "pause", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "paused", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "name": "phases", "outputs": [ { "internalType": "uint256", "name": "minMint", "type": "uint256" }, { "internalType": "uint256", "name": "maxMint", "type": "uint256" }, { "internalType": "uint256", "name": "price", "type": "uint256" }, { "internalType": "uint256", "name": "totalAmount", "type": "uint256" }, { "internalType": "uint256", "name": "mintedAmount", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_phase", "type": "uint256" } ], "name": "setCurrentPhase", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "symbol", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "totalStablecoinsRaised", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "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": "amount", "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": "amount", "type": "uint256" } ], "name": "transferFrom", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "newOwner", "type": "address" } ], "name": "transferOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "unpause", "outputs": [], "stateMutability": "nonpayable", "type": "function" } ]
60806040523480156200001157600080fd5b50604080518082018252600c81526b436c6f6e652053686172657360a01b602080830191825283518085019094526005845264434c4f4e4560d81b9084015281519192916200006391600391620001a0565b50805162000079906004906020840190620001a0565b5050600580546001600160a01b031916331781556040805160a0810182526107d0815261271060208201908152600c9282019283526a108b2a2c2802909400000060608301908152600060808401818152600680546001810182559252935195027ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f81019590955590517ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d4085015591517ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d4184015590517ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d42830155517ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d43909101555062000283565b828054620001ae9062000246565b90600052602060002090601f016020900481019282620001d257600085556200021d565b82601f10620001ed57805160ff19168380011785556200021d565b828001600101855582156200021d579182015b828111156200021d57825182559160200191906001019062000200565b506200022b9291506200022f565b5090565b5b808211156200022b576000815560010162000230565b600181811c908216806200025b57607f821691505b602082108114156200027d57634e487b7160e01b600052602260045260246000fd5b50919050565b61173480620002936000396000f3fe608060405234801561001057600080fd5b50600436106101c45760003560e01c80637d3e1ee4116100f9578063a55bfdc411610097578063c54e44eb11610071578063c54e44eb146103ab578063dd62ed3e146103c6578063f2fde38b146103d9578063fe669c26146103ec57600080fd5b8063a55bfdc414610388578063a9059cbb14610390578063afc5035e146103a357600080fd5b80638da5cb5b116100d35780638da5cb5b14610347578063902d55a51461035a57806395d89b411461036d578063a457c2d71461037557600080fd5b80637d3e1ee4146102f95780638456cb591461030c57806389a302711461031457600080fd5b806339509351116101665780635c975abb116101405780635c975abb146102a75780635d236cc1146102b457806367f68fac146102bd57806370a08231146102d057600080fd5b806339509351146102825780633f4ba83a1461029557806351e88a281461029f57600080fd5b806318160ddd116101a257806318160ddd1461021d57806323b872dd146102255780632e37eef614610238578063313ce5671461027357600080fd5b8063055ad42e146101c957806306fdde03146101e5578063095ea7b3146101fa575b600080fd5b6101d260075481565b6040519081526020015b60405180910390f35b6101ed6103ff565b6040516101dc9190611421565b61020d610208366004611470565b610491565b60405190151581526020016101dc565b6002546101d2565b61020d61023336600461149a565b6104a9565b61024b6102463660046114d6565b6104cd565b604080519586526020860194909452928401919091526060830152608082015260a0016101dc565b604051601281526020016101dc565b61020d610290366004611470565b61050e565b61029d610530565b005b61024b610598565b60095461020d9060ff1681565b6101d260085481565b61029d6102cb366004611500565b6105ee565b6101d26102de366004611530565b6001600160a01b031660009081526020819052604090205490565b61029d6103073660046114d6565b6108fe565b61029d6109ab565b61032f73a0b86991c6218b36c1d19d4a2e9eb0ce3606eb4881565b6040516001600160a01b0390911681526020016101dc565b60055461032f906001600160a01b031681565b6101d26b033b2e3c9fd0803ce800000081565b6101ed610a0d565b61020d610383366004611470565b610a1c565b6006546101d2565b61020d61039e366004611470565b610a97565b6008546101d2565b61032f73dac17f958d2ee523a2206206994597c13d831ec781565b6101d26103d4366004611552565b610aa5565b61029d6103e7366004611530565b610ad0565b61029d6103fa366004611585565b610bac565b60606003805461040e906115b7565b80601f016020809104026020016040519081016040528092919081815260200182805461043a906115b7565b80156104875780601f1061045c57610100808354040283529160200191610487565b820191906000526020600020905b81548152906001019060200180831161046a57829003601f168201915b5050505050905090565b60003361049f818585610d36565b5060019392505050565b6000336104b7858285610e5a565b6104c2858585610ed4565b506001949350505050565b600681815481106104dd57600080fd5b6000918252602090912060059091020180546001820154600283015460038401546004909401549294509092909185565b60003361049f8185856105218383610aa5565b61052b9190611608565b610d36565b6005546001600160a01b031633146105635760405162461bcd60e51b815260040161055a90611620565b60405180910390fd5b6009805460ff191690556040517fa45f47fdea8a1efdd9029a5691c7f759c32b7c698632b563573e155625d1693390600090a1565b6000806000806000806006600754815481106105b6576105b6611657565b600091825260209091206005909102018054600182015460028301546003840154600490940154929a91995097509195509350915050565b60095460ff16156106365760405162461bcd60e51b815260206004820152601260248201527110dbdb9d1c9858dd081a5cc81c185d5cd95960721b604482015260640161055a565b600060066007548154811061064d5761064d611657565b9060005260206000209060050201905080600001548310156106a75760405162461bcd60e51b8152602060048201526013602482015272105b5bdd5b9d081a5cc81d1bdbc81cdb585b1b606a1b604482015260640161055a565b80600101548311156106f15760405162461bcd60e51b8152602060048201526013602482015272416d6f756e7420697320746f6f206c6172676560681b604482015260640161055a565b6002810154600090610705856103e861166d565b61070f919061168c565b61072190670de0b6b3a764000061166d565b905081600301548183600401546107389190611608565b11156107865760405162461bcd60e51b815260206004820152601a60248201527f416d6f756e742065786365656473207068617365206c696d6974000000000000604482015260640161055a565b6b033b2e3c9fd0803ce80000008161079d60025490565b6107a79190611608565b11156107f55760405162461bcd60e51b815260206004820152601b60248201527f416d6f756e74206578636565647320746f74616c20737570706c790000000000604482015260640161055a565b821561083c576005546108379033906001600160a01b031661081a87620f424061166d565b73a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48929190611078565b610878565b6005546108789033906001600160a01b031661085b87620f424061166d565b73dac17f958d2ee523a2206206994597c13d831ec7929190611078565b61088233826110d2565b808260040160008282546108969190611608565b9250508190555083600860008282546108af9190611608565b909155505060408051828152841515602082015290810185905233907fc998b0acf38c124629df26fce6f8a1f55ca8bfe66aa51e956042dc9a6c4dc7e29060600160405180910390a250505050565b6005546001600160a01b031633146109285760405162461bcd60e51b815260040161055a90611620565b60065481106109705760405162461bcd60e51b8152602060048201526014602482015273141a185cd948191bd95cc81b9bdd08195e1a5cdd60621b604482015260640161055a565b60078190556040518181527fe05e29ee474a78de1664f90a8dd1d7cbaf6d365d9241a13c5af80c8296fcc0169060200160405180910390a150565b6005546001600160a01b031633146109d55760405162461bcd60e51b815260040161055a90611620565b6009805460ff191660011790556040517f9e87fac88ff661f02d44f95383c817fece4bce600a3dab7a54406878b965e75290600090a1565b60606004805461040e906115b7565b60003381610a2a8286610aa5565b905083811015610a8a5760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b606482015260840161055a565b6104c28286868403610d36565b60003361049f818585610ed4565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b6005546001600160a01b03163314610afa5760405162461bcd60e51b815260040161055a90611620565b6001600160a01b038116610b505760405162461bcd60e51b815260206004820152601d60248201527f4e6577206f776e657220697320746865207a65726f2061646472657373000000604482015260640161055a565b6005546040516001600160a01b038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3600580546001600160a01b0319166001600160a01b0392909216919091179055565b6005546001600160a01b03163314610bd65760405162461bcd60e51b815260040161055a90611620565b6040805160a081018252858152602081018581529181018481526060820184815260006080840181815260068054600180820183559382905295517ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f60059097029687015595517ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d4086015592517ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d4185015590517ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d4284015590517ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d439092019190915590547f1cf74bb9fd475279cd2403c2c7b54ce339a53fccdef5ec40c8128c6f03ba0cb391610d04916116ae565b60408051918252602082018790528101859052606081018490526080810183905260a00160405180910390a150505050565b6001600160a01b038316610d985760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161055a565b6001600160a01b038216610df95760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161055a565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6000610e668484610aa5565b90506000198114610ece5781811015610ec15760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000604482015260640161055a565b610ece8484848403610d36565b50505050565b6001600160a01b038316610f385760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840161055a565b6001600160a01b038216610f9a5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840161055a565b6001600160a01b038316600090815260208190526040902054818110156110125760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b606482015260840161055a565b6001600160a01b03848116600081815260208181526040808320878703905593871680835291849020805487019055925185815290927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3610ece565b604080516001600160a01b0385811660248301528416604482015260648082018490528251808303909101815260849091019091526020810180516001600160e01b03166323b872dd60e01b179052610ece908590611196565b6001600160a01b0382166111285760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015260640161055a565b806002600082825461113a9190611608565b90915550506001600160a01b038216600081815260208181526040808320805486019055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050565b505050565b60006111eb826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166112689092919063ffffffff16565b805190915015611191578080602001905181019061120991906116c5565b6111915760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b606482015260840161055a565b6060611277848460008561127f565b949350505050565b6060824710156112e05760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b606482015260840161055a565b600080866001600160a01b031685876040516112fc91906116e2565b60006040518083038185875af1925050503d8060008114611339576040519150601f19603f3d011682016040523d82523d6000602084013e61133e565b606091505b509150915061134f8783838761135a565b979650505050505050565b606083156113c65782516113bf576001600160a01b0385163b6113bf5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015260640161055a565b5081611277565b61127783838151156113db5781518083602001fd5b8060405162461bcd60e51b815260040161055a9190611421565b60005b838110156114105781810151838201526020016113f8565b83811115610ece5750506000910152565b60208152600082518060208401526114408160408501602087016113f5565b601f01601f19169190910160400192915050565b80356001600160a01b038116811461146b57600080fd5b919050565b6000806040838503121561148357600080fd5b61148c83611454565b946020939093013593505050565b6000806000606084860312156114af57600080fd5b6114b884611454565b92506114c660208501611454565b9150604084013590509250925092565b6000602082840312156114e857600080fd5b5035919050565b80151581146114fd57600080fd5b50565b6000806040838503121561151357600080fd5b823591506020830135611525816114ef565b809150509250929050565b60006020828403121561154257600080fd5b61154b82611454565b9392505050565b6000806040838503121561156557600080fd5b61156e83611454565b915061157c60208401611454565b90509250929050565b6000806000806080858703121561159b57600080fd5b5050823594602084013594506040840135936060013592509050565b600181811c908216806115cb57607f821691505b602082108114156115ec57634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b6000821982111561161b5761161b6115f2565b500190565b60208082526017908201527f43616c6c6572206973206e6f7420746865206f776e6572000000000000000000604082015260600190565b634e487b7160e01b600052603260045260246000fd5b6000816000190483118215151615611687576116876115f2565b500290565b6000826116a957634e487b7160e01b600052601260045260246000fd5b500490565b6000828210156116c0576116c06115f2565b500390565b6000602082840312156116d757600080fd5b815161154b816114ef565b600082516116f48184602087016113f5565b919091019291505056fea2646970667358221220d6b01e0bc74f3d0feaf721100435487d91694d16ace9312e03deb22bc57051e064736f6c634300080c0033