Skip to content
Permalink
master
Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Go to file
 
 
Cannot retrieve contributors at this time
const fs = require("fs");
var Web3 = require('web3');
//bee ABI copy and pasted from etherscan
var ABI = fs.readFileSync('./beeTokenAbi.json', 'utf8')
// use your infura token please
var web3 = new Web3(new Web3.providers.HttpProvider("https://mainnet.infura.io/YOURINFURALINK"))
//creates contract instance at address
let beeContract = new web3.eth.Contract(JSON.parse(ABI),"0x4D8fc1453a0F359e99c9675954e656D80d996FbF")
var ABI = fs.readFileSync('./beeABI.json')
let beeTokenOfferingContract = new web3.eth.Contract(JSON.parse(ABI), "0x62caf75a67252f7be236a7335fed1410c7434b7f")
var ICOTokenHolders = {}
var tokenHoldersList;
console.log("starting ICO TOKEN HOLDER SEARCH");
// get past events from token offering contract -> event = TokenPurchase
beeTokenOfferingContract.getPastEvents('TokenPurchase',
{fromBlock:5007452, toBlock:5019086}).then(function(events) {
// store number of past events
var eventsCount = events.length;
// for loop through each event and put purchaser address in dictionary along with 0 value
for (var i = 0; i < eventsCount; i++) {
var purchaser = events[i].returnValues[0];
ICOTokenHolders[purchaser] = 0;
}
console.log("finished FINDING ICO TOKEN HOLDERS")
//return ICOTokenHolders;
return ICOTokenHolders;
}).then(function(ICOTokenHolders) {
console.log("starting TOKEN TRANSFERS SEARCH");
// Get an array of token holder addresses for event filter and print
tokenHoldersList = Object.keys(ICOTokenHolders);
//get past events from BeeToken Contract -> event = Transfer
beeContract.getPastEvents('Transfer', {fromBlock:5019086}).then(function (events) {
// store number of past events
var eventsCount = events.length;
/* for loop through each event and
* if seller is in tokenHoldersList -> subtract value in dictionary
* if buyer is in tokenHoldersList -> add value in dictionary
*/
for (var i = 0; i < eventsCount; i++) {
var seller = events[i].returnValues[0];
var buyer = events[i].returnValues[1]
var tokenAmount = Number(events[i].returnValues[2])/1000000000000000000;
var currTokens;
if(seller in ICOTokenHolders) {
currTokens = ICOTokenHolders[seller];
ICOTokenHolders[seller] = currTokens - tokenAmount;
}
if(buyer in ICOTokenHolders) {
currTokens = ICOTokenHolders[buyer];
ICOTokenHolders[buyer] = currTokens + tokenAmount;
}
}
console.log("finished FINDING TOKEN TRANSFERS")
return ICOTokenHolders;
}).then(function(ICOTokenHolders) {
console.log("Printing TOKEN HOLDERS WHO BOUGHT MORE TOKENS POST ICO")
for(key in ICOTokenHolders) {
if(ICOTokenHolders[key] >0.001) {
console.log("TokenHolder " + key + " bought " + ICOTokenHolders[key] + " BeeTokens after the ICO");
}
}
});
});