Address Contract Partially Verified
Address
0xD3A7e03bE16577d861fE14E0FE457760EB8482A4
Balance
0 ETH
Nonce
1
Code Size
6698 bytes
Creator
0x63ec82b6...2bD4 at tx 0x927a78b0...6f0975
Indexed Transactions
0
Contract Bytecode
6698 bytes
0x608060405260043610610212575f3560e01c8063a457c2d71161011e578063d5cb5021116100a8578063f2fde38b1161006d578063f2fde38b146105d4578063f695587f146105f3578063f887ea4014610607578063f8b45b051461063a578063fa02c2841461064f575f80fd5b8063d5cb502114610534578063dd62ed3e1461054b578063e2e5d3001461058f578063e40650dd146105a4578063e62c1283146105bb575f80fd5b8063af8deddb116100ee578063af8deddb146104c5578063be2840a7146104e3578063be697dcf146104f7578063ca3d15981461050c578063cf46f24c1461051f575f80fd5b8063a457c2d71461043f578063a893a5741461045e578063a8aa1b3114610473578063a9059cbb146104a6575f80fd5b80633fc8cef31161019f578063751039fc1161016f578063751039fc146103c7578063865192f7146103db5780638da5cb5b146103f057806395d89b41146104125780639b5ceb6d14610426575f80fd5b80633fc8cef3146103305780634a62bb651461037b57806370a0823114610394578063715018a6146103b3575f80fd5b806318160ddd116101e557806318160ddd146102a857806323b872dd146102bc5780632da9e270146102db578063313ce567146102f05780633950935114610311575f80fd5b806306fdde0314610216578063095ea7b3146102405780630b36b8db1461026f578063116a1cce14610292575b5f80fd5b348015610221575f80fd5b5061022a610664565b60405161023791906116d5565b60405180910390f35b34801561024b575f80fd5b5061025f61025a36600461173b565b6106f3565b6040519015158152602001610237565b34801561027a575f80fd5b5061028460035481565b604051908152602001610237565b34801561029d575f80fd5b506102a661075f565b005b3480156102b3575f80fd5b50600f54610284565b3480156102c7575f80fd5b5061025f6102d6366004611763565b6109bd565b3480156102e6575f80fd5b5061028460055481565b3480156102fb575f80fd5b5060025460405160ff9091168152602001610237565b34801561031c575f80fd5b5061025f61032b36600461173b565b610acf565b34801561033b575f80fd5b506103637f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc281565b6040516001600160a01b039091168152602001610237565b348015610386575f80fd5b50600e5461025f9060ff1681565b34801561039f575f80fd5b506102846103ae36600461179c565b610b53565b3480156103be575f80fd5b506102a6610b79565b3480156103d2575f80fd5b506102a6610bf6565b3480156103e6575f80fd5b5061028460045481565b3480156103fb575f80fd5b5060025461010090046001600160a01b0316610363565b34801561041d575f80fd5b5061022a610ca4565b348015610431575f80fd5b5060075461025f9060ff1681565b34801561044a575f80fd5b5061025f61045936600461173b565b610cb3565b348015610469575f80fd5b50610284600a5481565b34801561047e575f80fd5b506103637f000000000000000000000000a44a9dfa68f84edd39adf0bb360c06b92cb9664c81565b3480156104b1575f80fd5b5061025f6104c036600461173b565b610d96565b3480156104d0575f80fd5b50600e5461025f90610100900460ff1681565b3480156104ee575f80fd5b50610284610dc0565b348015610502575f80fd5b50610284600d5481565b6102a661051a36600461179c565b610de3565b34801561052a575f80fd5b5061028460085481565b34801561053f575f80fd5b5060065442101561025f565b348015610556575f80fd5b506102846105653660046117bc565b6001600160a01b039182165f90815260126020908152604080832093909416825291909152205490565b34801561059a575f80fd5b5061028460065481565b3480156105af575f80fd5b50600d5442101561025f565b3480156105c6575f80fd5b50600b5461025f9060ff1681565b3480156105df575f80fd5b506102a66105ee36600461179c565b611172565b3480156105fe575f80fd5b506102a66111ad565b348015610612575f80fd5b506103637f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d81565b348015610645575f80fd5b5061028460095481565b34801561065a575f80fd5b50610284600c5481565b60605f8054610672906117ed565b80601f016020809104026020016040519081016040528092919081815260200182805461069e906117ed565b80156106e95780601f106106c0576101008083540402835291602001916106e9565b820191905f5260205f20905b8154815290600101906020018083116106cc57829003601f168201915b5050505050905090565b335f8181526012602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259061074d9086815260200190565b60405180910390a35060015b92915050565b600d544210156107b65760405162461bcd60e51b815260206004820181905260248201527f4d757374207761697420666f7220636f6f6c646f776e20746f2066696e69736860448201526064015b60405180910390fd5b600c546107c39042611839565b600d555f6107f07f000000000000000000000000a44a9dfa68f84edd39adf0bb360c06b92cb9664c610b53565b90505f612710600a5483610804919061184c565b61080e9190611877565b9050801561091c575f60105482610825919061184c565b6001600160a01b037f000000000000000000000000a44a9dfa68f84edd39adf0bb360c06b92cb9664c165f9081526011602052604081208054929350839290919061087190849061188a565b909155505061dead5f90815260116020527f97847ee99463795296047093514439c3127772df3715e628aa85601cf854171680548392906108b3908490611839565b909155505060405182815261dead906001600160a01b037f000000000000000000000000a44a9dfa68f84edd39adf0bb360c06b92cb9664c16907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a3505b5f7f000000000000000000000000a44a9dfa68f84edd39adf0bb360c06b92cb9664c9050806001600160a01b031663fff6cae96040518163ffffffff1660e01b81526004015f604051808303815f87803b158015610978575f80fd5b505af115801561098a573d5f803e3d5ffd5b50506040518492507f27d470324b65c06eaf506ba38b3306343db45b2b10bd97713555850da7915b7f91505f90a2505050565b5f826001600160a01b0381166109d1575f80fd5b6001600160a01b0385165f9081526012602090815260408083203384529091529020545f1914610ab8576001600160a01b0385165f908152601260209081526040808320338452909152902054831115610a665760405162461bcd60e51b8152602060048201526016602482015275496e73756666696369656e7420416c6c6f77616e636560501b60448201526064016107ad565b6001600160a01b0385165f908152601260209081526040808320338452909152902054610a9490849061188a565b6001600160a01b0386165f9081526012602090815260408083203384529091529020555b610ac38585856111f5565b50600195945050505050565b335f9081526012602090815260408083206001600160a01b0386168452909152812054610afd908390611839565b335f8181526012602090815260408083206001600160a01b038916808552908352928190208590555193845290927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910161074d565b6010546001600160a01b0382165f90815260116020526040812054909161075991611877565b60025461010090046001600160a01b03163314610ba85760405162461bcd60e51b81526004016107ad9061189d565b6002546040516101009091046001600160a01b0316907ff8df31144d9c2f0f6b59d69b8b98abd5459d07f2742c4df920b25aae33c64820905f90a260028054610100600160a81b0319169055565b60025461010090046001600160a01b03163314610c255760405162461bcd60e51b81526004016107ad9061189d565b600e5460ff16610c705760405162461bcd60e51b8152602060048201526016602482015275131a5b5a5d1cc8185b1c9958591e481c995b5bdd995960521b60448201526064016107ad565b600e805460ff191690556040517fa4ffae85e880608d5d4365c2b682786545d136145537788e7e0940dff9f0b98c905f90a1565b606060018054610672906117ed565b335f9081526012602090815260408083206001600160a01b0386168452909152812054808310610d0557335f9081526012602090815260408083206001600160a01b0388168452909152812055610d33565b610d0f838261188a565b335f9081526012602090815260408083206001600160a01b03891684529091529020555b335f8181526012602090815260408083206001600160a01b038916808552908352928190205490519081529192917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a35060019392505050565b5f826001600160a01b038116610daa575f80fd5b610db53385856111f5565b506001949350505050565b5f600454600354600f54610dd4919061184c565b610dde9190611877565b905090565b600e54610100900460ff1615610e2e5760405162461bcd60e51b815260206004820152601060248201526f131408185b1c9958591e48185919195960821b60448201526064016107ad565b5f47118015610e4457505f610e4230610b53565b115b610e4c575f80fd5b7f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc26001600160a01b031663d0e30db0476040518263ffffffff1660e01b81526004015f604051808303818588803b158015610ea5575f80fd5b505af1158015610eb7573d5f803e3d5ffd5b5050305f90815260116020526040808220547f000000000000000000000000a44a9dfa68f84edd39adf0bb360c06b92cb9664c6001600160a01b0316835290822080549195509350909150610f0d908490611839565b9091555050305f818152601160205260408082208290556010547f000000000000000000000000a44a9dfa68f84edd39adf0bb360c06b92cb9664c6001600160a01b031680845291909220549092917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91610f889190611877565b60405190815260200160405180910390a36040516370a0823160e01b81523060048201527f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc26001600160a01b03169063a9059cbb907f000000000000000000000000a44a9dfa68f84edd39adf0bb360c06b92cb9664c9083906370a0823190602401602060405180830381865afa158015611025573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061104991906118c0565b6040516001600160e01b031960e085901b1681526001600160a01b03909216600483015260248201526044016020604051808303815f875af1158015611091573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906110b591906118d7565b506040516335313c2160e11b81526001600160a01b0382811660048301527f000000000000000000000000a44a9dfa68f84edd39adf0bb360c06b92cb9664c1690636a627842906024016020604051808303815f875af115801561111b573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061113f91906118c0565b50600e805461ff00191661010017905560055461115c9042611839565b600655600c5461116c9042611839565b600d5550565b60025461010090046001600160a01b031633146111a15760405162461bcd60e51b81526004016107ad9061189d565b6111aa8161148c565b50565b6006544210156111ed5760405162461bcd60e51b815260206004820152600b60248201526a4e6f7420696e2074696d6560a81b60448201526064016107ad565b6111aa611504565b600e545f9060ff1615611350577f000000000000000000000000a44a9dfa68f84edd39adf0bb360c06b92cb9664c6001600160a01b0316846001600160a01b0316148061127357507f000000000000000000000000a44a9dfa68f84edd39adf0bb360c06b92cb9664c6001600160a01b0316836001600160a01b0316145b156112bc576008548211156112bc5760405162461bcd60e51b815260206004820152600f60248201526e13585e08151e08115e18d959591959608a1b60448201526064016107ad565b7f000000000000000000000000a44a9dfa68f84edd39adf0bb360c06b92cb9664c6001600160a01b0316836001600160a01b031614611350576009548261130285610b53565b61130c9190611839565b11156113505760405162461bcd60e51b815260206004820152601360248201527213585e0815d85b1b195d08115e18d959591959606a1b60448201526064016107ad565b7f000000000000000000000000a44a9dfa68f84edd39adf0bb360c06b92cb9664c6001600160a01b0316836001600160a01b0316036113bd5760075460ff16801561139d57506006544210155b156113ac576113aa611504565b505b600d5442106113bd576113bd6107b6565b5f601054836113cc919061184c565b6001600160a01b0386165f908152601160205260409020549091506113f290829061188a565b6001600160a01b038087165f908152601160205260408082209390935590861681522054611421908290611839565b6001600160a01b038086165f81815260116020526040902092909255601054908716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906114709085611877565b60405190815260200160405180910390a3506001949350505050565b6001600160a01b03811661149e575f80fd5b6002546040516001600160a01b0380841692610100900416907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a3600280546001600160a01b0390921661010002610100600160a81b0319909216919091179055565b5f804290505f600454600354600f5461151d919061184c565b6115279190611877565b905060055460065f82825461153c9190611839565b90915550505f81900361158f57817fa7cc87185b5b9d879e171a77928ac608030ae3cac66d04c3b5658589ccf686c6600f5460405161157d91815260200190565b60405180910390a2600f549250505090565b80600f5461159d919061188a565b600f556115ac6012600a6119d6565b6115b790600861184c565b600f5410156115e5576115cc6012600a6119d6565b6115d790600861184c565b600f556007805460ff191690555b600f546115f46012600a6119d6565b611601906287a23861184c565b61160c905f196119e1565b611617905f1961188a565b6116219190611877565b60105561162c611660565b817fa7cc87185b5b9d879e171a77928ac608030ae3cac66d04c3b5658589ccf686c6600f5460405161157d91815260200190565b5f7f000000000000000000000000a44a9dfa68f84edd39adf0bb360c06b92cb9664c9050806001600160a01b031663fff6cae96040518163ffffffff1660e01b81526004015f604051808303815f87803b1580156116bc575f80fd5b505af11580156116ce573d5f803e3d5ffd5b5050505050565b5f6020808352835180828501525f5b81811015611700578581018301518582016040015282016116e4565b505f604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b0381168114611736575f80fd5b919050565b5f806040838503121561174c575f80fd5b61175583611720565b946020939093013593505050565b5f805f60608486031215611775575f80fd5b61177e84611720565b925061178c60208501611720565b9150604084013590509250925092565b5f602082840312156117ac575f80fd5b6117b582611720565b9392505050565b5f80604083850312156117cd575f80fd5b6117d683611720565b91506117e460208401611720565b90509250929050565b600181811c9082168061180157607f821691505b60208210810361181f57634e487b7160e01b5f52602260045260245ffd5b50919050565b634e487b7160e01b5f52601160045260245ffd5b8082018082111561075957610759611825565b808202811582820484141761075957610759611825565b634e487b7160e01b5f52601260045260245ffd5b5f8261188557611885611863565b500490565b8181038181111561075957610759611825565b6020808252600990820152682737ba1037bbb732b960b91b604082015260600190565b5f602082840312156118d0575f80fd5b5051919050565b5f602082840312156118e7575f80fd5b815180151581146117b5575f80fd5b600181815b8085111561193057815f190482111561191657611916611825565b8085161561192357918102915b93841c93908002906118fb565b509250929050565b5f8261194657506001610759565b8161195257505f610759565b816001811461196857600281146119725761198e565b6001915050610759565b60ff84111561198357611983611825565b50506001821b610759565b5060208310610133831016604e8410600b84101617156119b1575081810a610759565b6119bb83836118f6565b805f19048211156119ce576119ce611825565b029392505050565b5f6117b58383611938565b5f826119ef576119ef611863565b50069056fea26469706673582212202bf7e50400930d11ea7f868c170825fc553a5004258eb9e7870b6deee2b6ef4b64736f6c63430008140033
Verified Source Code Partial Match
Compiler: v0.8.20+commit.a1b79de6
EVM: shanghai
Optimization: Yes (200 runs)
Chaos.sol 381 lines
// https://twitter.com/CHAOS_ERC
// SPDX-License-Identifier: MIT
pragma solidity 0.8.20;
interface IERC20 {
function totalSupply() external view returns (uint256);
function balanceOf(address who) external view returns (uint256);
function allowance(address owner, address spender) external view returns (uint256);
function transfer(address to, uint256 value) external returns (bool);
function approve(address spender, uint256 value) external returns (bool);
function transferFrom(address from, address to, uint256 value) external returns (bool);
event Transfer(address indexed from, address indexed to, uint256 value);
event Approval(address indexed owner, address indexed spender, uint256 value);
}
interface InterfaceLP {
function sync() external;
function mint(address to) external returns (uint liquidity);
}
abstract contract ERC20Detailed is IERC20 {
string private _name;
string private _symbol;
uint8 private _decimals;
constructor(
string memory _tokenName,
string memory _tokenSymbol,
uint8 _tokenDecimals
) {
_name = _tokenName;
_symbol = _tokenSymbol;
_decimals = _tokenDecimals;
}
function name() public view returns (string memory) {
return _name;
}
function symbol() public view returns (string memory) {
return _symbol;
}
function decimals() public view returns (uint8) {
return _decimals;
}
}
interface IDEXRouter {
function factory() external pure returns (address);
function WETH() external pure returns (address);
}
interface IDEXFactory {
function createPair(address tokenA, address tokenB)
external
returns (address pair);
}
contract Ownable {
address private _owner;
event OwnershipRenounced(address indexed previousOwner);
event OwnershipTransferred(
address indexed previousOwner,
address indexed newOwner
);
constructor() {
_owner = msg.sender;
}
function owner() public view returns (address) {
return _owner;
}
modifier onlyOwner() {
require(msg.sender == _owner, "Not owner");
_;
}
function renounceOwnership() public onlyOwner {
emit OwnershipRenounced(_owner);
_owner = address(0);
}
function transferOwnership(address newOwner) public onlyOwner {
_transferOwnership(newOwner);
}
function _transferOwnership(address newOwner) internal {
require(newOwner != address(0));
emit OwnershipTransferred(_owner, newOwner);
_owner = newOwner;
}
}
interface IWETH {
function deposit() external payable;
}
contract Chaos is ERC20Detailed, Ownable {
uint256 public rateNumerator = 1914882956;
uint256 public rateDenominator = 100000000000;
uint256 public riftFrequency = 3 hours;
uint256 public nextRift;
bool public autoRift = true;
uint256 public maxTxnAmount;
uint256 public maxWallet;
uint256 public percentForSingularity = 50;
bool public singularityEnabled = true;
uint256 public singularityFrequency = 3 hours;
uint256 public nextSingularity;
uint256 private constant DECIMALS = 18;
uint256 private constant INITIAL_TOKENS_SUPPLY = 8_888_888 * 10**DECIMALS;
uint256 private constant TOTAL_PARTS = type(uint256).max - (type(uint256).max % INITIAL_TOKENS_SUPPLY);
uint256 private constant MIN_SUPPLY = 8 * 10**DECIMALS;
event Rift(uint256 indexed time, uint256 totalSupply);
event RemovedLimits();
event Singularity(uint256 indexed amount);
IWETH public immutable weth;
IDEXRouter public immutable router;
address public immutable pair;
bool public limitsInEffect = true;
bool public lpAdded = false;
uint256 private _totalSupply;
uint256 private _partsPerToken;
mapping(address => uint256) private _partBalances;
mapping(address => mapping(address => uint256)) private _allowedTokens;
modifier validRecipient(address to) {
require(to != address(0x0));
_;
}
constructor() ERC20Detailed(block.chainid==1 ? "Harbinger" : "HTEST", block.chainid==1 ? "CHAOS" : "HTEST", 18) {
address dexAddress;
if(block.chainid == 1){
dexAddress = 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D;
} else if(block.chainid == 5){
dexAddress = 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D;
} else if (block.chainid == 97){
dexAddress = 0xD99D1c33F9fC3444f8101754aBC46c52416550D1;
} else {
revert("Chain not configured");
}
router = IDEXRouter(dexAddress);
_totalSupply = INITIAL_TOKENS_SUPPLY;
_partBalances[address(this)] = TOTAL_PARTS;
_partsPerToken = TOTAL_PARTS/(_totalSupply);
maxTxnAmount = _totalSupply * 1 / 100;
maxWallet = _totalSupply * 1 / 100;
weth = IWETH(router.WETH());
pair = IDEXFactory(router.factory()).createPair(address(this), router.WETH());
emit Transfer(address(0x0), address(this), balanceOf(address(this)));
}
function totalSupply() external view override returns (uint256) {
return _totalSupply;
}
function allowance(address owner_, address spender) external view override returns (uint256){
return _allowedTokens[owner_][spender];
}
function balanceOf(address who) public view override returns (uint256) {
return _partBalances[who]/(_partsPerToken);
}
function shouldRift() public view returns (bool) {
return nextRift <= block.timestamp;
}
function shouldSingularity() public view returns (bool) {
return nextSingularity <= block.timestamp;
}
function lpSync() internal {
InterfaceLP _pair = InterfaceLP(pair);
_pair.sync();
}
function transfer(address to, uint256 value) external override validRecipient(to) returns (bool){
_transferFrom(msg.sender, to, value);
return true;
}
function removeLimits() external onlyOwner {
require(limitsInEffect, "Limits already removed");
limitsInEffect = false;
emit RemovedLimits();
}
function _transferFrom(address sender, address recipient, uint256 amount) internal returns (bool) {
if(limitsInEffect){
if (sender == pair || recipient == pair){
require(amount <= maxTxnAmount, "Max Tx Exceeded");
}
if (recipient != pair){
require(balanceOf(recipient) + amount <= maxWallet, "Max Wallet Exceeded");
}
}
if(recipient == pair){
if(autoRift && shouldRift()){
rift();
}
if (shouldSingularity()) {
autoSingularity();
}
}
uint256 partAmount = amount*(_partsPerToken);
_partBalances[sender] = _partBalances[sender]-(partAmount);
_partBalances[recipient] = _partBalances[recipient]+(partAmount);
emit Transfer(sender, recipient, partAmount/(_partsPerToken));
return true;
}
function transferFrom(address from, address to, uint256 value) external override validRecipient(to) returns (bool) {
if (_allowedTokens[from][msg.sender] != type(uint256).max) {
require(_allowedTokens[from][msg.sender] >= value,"Insufficient Allowance");
_allowedTokens[from][msg.sender] = _allowedTokens[from][msg.sender]-(value);
}
_transferFrom(from, to, value);
return true;
}
function decreaseAllowance(address spender, uint256 subtractedValue) external returns (bool){
uint256 oldValue = _allowedTokens[msg.sender][spender];
if (subtractedValue >= oldValue) {
_allowedTokens[msg.sender][spender] = 0;
} else {
_allowedTokens[msg.sender][spender] = oldValue-(
subtractedValue
);
}
emit Approval(
msg.sender,
spender,
_allowedTokens[msg.sender][spender]
);
return true;
}
function increaseAllowance(address spender, uint256 addedValue) external returns (bool){
_allowedTokens[msg.sender][spender] = _allowedTokens[msg.sender][
spender
]+(addedValue);
emit Approval(
msg.sender,
spender,
_allowedTokens[msg.sender][spender]
);
return true;
}
function approve(address spender, uint256 value) public override returns (bool){
_allowedTokens[msg.sender][spender] = value;
emit Approval(msg.sender, spender, value);
return true;
}
function getSupplyDeltaOnNextRift() external view returns (uint256){
return (_totalSupply*rateNumerator)/rateDenominator;
}
function rift() private returns (uint256) {
uint256 time = block.timestamp;
uint256 supplyDelta = (_totalSupply*rateNumerator)/rateDenominator;
nextRift += riftFrequency;
if (supplyDelta == 0) {
emit Rift(time, _totalSupply);
return _totalSupply;
}
_totalSupply = _totalSupply-supplyDelta;
if (_totalSupply < MIN_SUPPLY) {
_totalSupply = MIN_SUPPLY;
autoRift = false;
}
_partsPerToken = TOTAL_PARTS/(_totalSupply);
lpSync();
emit Rift(time, _totalSupply);
return _totalSupply;
}
function manualRift() external {
require(shouldRift(), "Not in time");
rift();
}
function autoSingularity() internal {
nextSingularity = block.timestamp + singularityFrequency;
uint256 liquidityPairBalance = balanceOf(pair);
uint256 amountToBurn = liquidityPairBalance * percentForSingularity / 10000;
if (amountToBurn > 0) {
uint256 partAmountToBurn = amountToBurn*(_partsPerToken);
_partBalances[pair] -= partAmountToBurn;
_partBalances[address(0xdead)] += partAmountToBurn;
emit Transfer(pair, address(0xdead), amountToBurn);
}
InterfaceLP _pair = InterfaceLP(pair);
_pair.sync();
emit Singularity(amountToBurn);
}
function manualSingularity() external {
require(shouldSingularity(), "Must wait for cooldown to finish");
nextSingularity = block.timestamp + singularityFrequency;
uint256 liquidityPairBalance = balanceOf(pair);
uint256 amountToBurn = liquidityPairBalance * percentForSingularity / 10000;
if (amountToBurn > 0) {
uint256 partAmountToBurn = amountToBurn*(_partsPerToken);
_partBalances[pair] -= partAmountToBurn;
_partBalances[address(0xdead)] += partAmountToBurn;
emit Transfer(pair, address(0xdead), amountToBurn);
}
InterfaceLP _pair = InterfaceLP(pair);
_pair.sync();
emit Singularity(amountToBurn);
}
function initiate(address _to) external payable {
require(!lpAdded, "LP already added");
require(address(this).balance > 0 && balanceOf(address(this)) > 0);
weth.deposit{value: address(this).balance}();
_partBalances[pair] += _partBalances[address(this)];
_partBalances[address(this)] = 0;
emit Transfer(address(this), pair, _partBalances[pair]/(_partsPerToken));
IERC20(address(weth)).transfer(address(pair), IERC20(address(weth)).balanceOf(address(this)));
InterfaceLP(pair).mint(_to);
lpAdded = true;
nextRift = block.timestamp + riftFrequency;
nextSingularity = block.timestamp + singularityFrequency;
}
}
Read Contract
allowance 0xdd62ed3e → uint256
autoRift 0x9b5ceb6d → bool
balanceOf 0x70a08231 → uint256
decimals 0x313ce567 → uint8
getSupplyDeltaOnNextRift 0xbe2840a7 → uint256
limitsInEffect 0x4a62bb65 → bool
lpAdded 0xaf8deddb → bool
maxTxnAmount 0xcf46f24c → uint256
maxWallet 0xf8b45b05 → uint256
name 0x06fdde03 → string
nextRift 0xe2e5d300 → uint256
nextSingularity 0xbe697dcf → uint256
owner 0x8da5cb5b → address
pair 0xa8aa1b31 → address
percentForSingularity 0xa893a574 → uint256
rateDenominator 0x865192f7 → uint256
rateNumerator 0x0b36b8db → uint256
riftFrequency 0x2da9e270 → uint256
router 0xf887ea40 → address
shouldRift 0xd5cb5021 → bool
shouldSingularity 0xe40650dd → bool
singularityEnabled 0xe62c1283 → bool
singularityFrequency 0xfa02c284 → uint256
symbol 0x95d89b41 → string
totalSupply 0x18160ddd → uint256
weth 0x3fc8cef3 → address
Write Contract 11 functions
These functions modify contract state and require a wallet transaction to execute.
approve 0x095ea7b3
address spender
uint256 value
returns: bool
decreaseAllowance 0xa457c2d7
address spender
uint256 subtractedValue
returns: bool
increaseAllowance 0x39509351
address spender
uint256 addedValue
returns: bool
initiate 0xca3d1598
address _to
manualRift 0xf695587f
No parameters
manualSingularity 0x116a1cce
No parameters
removeLimits 0x751039fc
No parameters
renounceOwnership 0x715018a6
No parameters
transfer 0xa9059cbb
address to
uint256 value
returns: bool
transferFrom 0x23b872dd
address from
address to
uint256 value
returns: bool
transferOwnership 0xf2fde38b
address newOwner
Recent Transactions
No transactions found for this address