Darwin-Coin / darwin-token-contracts

Darwin Protocol Smart Contracts
https://darwinprotocol.io
0 stars 0 forks source link

White Lists #16

Closed SomeTimesIInvent closed 1 year ago

SomeTimesIInvent commented 1 year ago

The following wallets are whitelisted:

These are additional whitelists we will want to do if they aren't already included:

Wallet 1 (0x0bF1C4139A6168988Fe0d1384296e6df44B27aFd) - whitelisted from everything + can trade tokens before launch Wallet 2 (0xBE013CeAB3611Dc71A4f150577375f8Cb8d9f6c3) - whitelisted from everything

Charity (0xf74Fb0505f868961f8da7e423d5c8A1CC5c2C162) - whitelisted from everything except will not receive reflections Giveaways (0x33149c1CB70262E29bF7adde4aA79F41a2fd0c39) - whitelisted from everything except will not receive reflections Bounties (0xD8F251F13eaf05C7D080F917560eB884FEd4227b) - whitelisted from everything except will not receive reflections Community Fund - whitelisted from everything except will not receive reflections

Reflections (if we use a wallet for this) - whitelisted from everything except will be TAXED at 100% once reflections are received

Kieran (0xe4e672ED86b8f6782e889F125e977bcF54018232) - can trade tokens before launch DarwinDrop - can trade tokens before launch

thesios commented 1 year ago

@SonOfMosiah can add a new script for this?

thanks

SomeTimesIInvent commented 1 year ago

Here is the full list of addresses and what they should be applied to:

Tradeability (can trade during pre sale when all others cannot): Pre-Sale Contract / Deployer / Wallet 1 / Kieran / DarwinDrop

200 Million Holding Limit: Pair Address / DEXs / CEXs / Deployer / Wallet 1 / Wallet 2 / Charity / Giveaways / Bounties / Community Fund / DarwinDrop

10 Million Trade Limit: Pair Address / DEXs / CEXs / Deployer / Wallet 1 / Wallet 2 / Charity / Giveaways / Bounties / Community Fund / DarwinDrop

Note: the following wallets cannot receive reflections: Pair Address / Deployer / Pre-Sale Contract / DarwinDrop / Charity / Giveaways / Bounties / Community Fund / Burn Address / DEXs / CEXs

The actual addresses we have can be found here (in the Wallet tab)

https://docs.google.com/spreadsheets/d/1OdxLKiEXGH9Uk8PaV8hx-D3nxNSfLl5fRQrYVTIdjkI/edit#gid=937439443

thesios commented 1 year ago

Daniel , can u take care of this real quick.

this will be 1 file witch contains all the wallet and will be included by the script that takes action.

I was thinking maybe we want to change the setter function to accept an array, since most of this maintanence will be done my the DAO over the long run.

AGRTECH commented 1 year ago

@thesios Is this what you were looking to change in the setter function? function initialize( address uniswapV2RouterAddress, address _devWallet, address _darwinCommunity, address[] memory whiteListedAddresses ) external initializer { __Context_init_unchained(); __Ownable_init_unchained(); __darwin_init_unchained(uniswapV2RouterAddress, _devWallet, _darwinCommunity, whiteListedAddresses); __UUPSUpgradeable_init(); }

`function __darwin_init_unchained( address uniswapV2RouterAddress, address _devWallet, address _darwinCommunity, address[] memory whiteListedAddresses ) private onlyInitializing { _tTotal = 10 * 10 * 9 10 ** decimals(); // 10B // TODO: check this _rTotal = (_MAX - (_MAX % _tTotal));

    maxTokenHoldingSize = (_tTotal / 100) * 2; // 2% of the supply
    maxTokenSellSize = _tTotal / 100 / 10; // .1% of the supply

    communityTokensPercentage = 5 * _PERCENTAGE_MULTIPLIER; // 5%

    maxTokenSaleLimitDuration = 5 hours;

    // transfer tokens to owner
    _rOwned[_devWallet] = (_rTotal / _PERCENTAGE_100) * DEV_WALLET_PECENTAGE;
    _rOwned[_msgSender()] = _rTotal - _rOwned[_devWallet];

    uniswapV2Router = IUniswapV2Router02(uniswapV2RouterAddress);

    reflectionWallet = _getPseudoRandomWallet(block.timestamp / 2);

    // Create a uniswap pair for this new token
    uniswapV2Pair = IUniswapV2Pair(
        IUniswapV2Factory(uniswapV2Router.factory()).createPair(address(this), uniswapV2Router.WETH())
    );

    // add exchange wallets
    registerPair(uniswapV2RouterAddress, address(uniswapV2Pair));

    // exclude wallets from sell limit
    _isExcludedFromSellLimit[_msgSender()] = true;
    _isExcludedFromSellLimit[_devWallet] = true;
    _isExcludedFromSellLimit[_darwinCommunity] = true;
    for (uint256 i = 0; i < whiteListedAddresses.length; i++) {
        _isExcludedFromSellLimit[whiteListedAddresses[i]] = true;
    }

    // exclude wallets from holding limit
    _isExcludedFromHoldingLimit[_msgSender()] = true;
    _isExcludedFromHoldingLimit[_devWallet] = true;
    _isExcludedFromHoldingLimit[_darwinCommunity] = true;
    for (uint256 i = 0; i < whiteListedAddresses.length; i++) {
        _isExcludedFromHoldingLimit[whiteListedAddresses[i]] = true;
    }

    darwinCommunity = IDarwinCommunity(_darwinCommunity);

    emit Transfer(address(0), _msgSender(), (_tTotal * DEV_WALLET_PECENTAGE) / _PERCENTAGE_100);
    emit Transfer(address(0), _devWallet, _tTotal - (_tTotal * DEV_WALLET_PECENTAGE) / _PERCENTAGE_100);
}`

And then maybe add an onlyowner modified function that can add to the list of white listed addresses?

thesios commented 1 year ago

That is A solution

But we can use a jscript and run it thru hardhat to set all the addresses

thesios commented 1 year ago

so we will have to call the setter function for each wallet.

thesios commented 1 year ago

What do u think?

AGRTECH commented 1 year ago

So still create the setter function or just run the init function with the script with all the addresses?

AGRTECH commented 1 year ago

Im more of a truffle guy so i’d have much more trouble making a script with hardhat rather than just using a setter, but i do realize its probably better

thesios commented 1 year ago

call me , 4072225300

thesios commented 1 year ago

async function main() { const { ethers } = require("hardhat");

const [deployer] = await ethers.getSigners(); console.log("Deployer address", deployer.address);

const contractAddress = "0x2Ece44b8066bCDD0ac5190bF8508D71A216Cf2Fd";
const myContract = await ethers.getContractAt("secs", contractAddress);

const mintToken = await myContract.airdrop("0x513764CD6DAcFD7d8dec3f6a3b5Aaa1747374abF",5000000000000);

console.log("Trx hash:", mintToken);

}

main() .then(() => process.exit(0)) .catch((error) => { console.error(error); process.exit(1); });

AGRTECH commented 1 year ago

@thesios // We require the Hardhat Runtime Environment explicitly here. This is optional // but useful for running the script in a standalone fashion throughnode Githubissues.

  • Githubissues is a development platform for aggregating issues.