Selamlar,
Bir işlem için oluşturdum. Alım satım yapmaz sadece fırsat varmı diye kontrol eder.
Her 1 saniyede 1 kontrol yapar.
Apeswap > Pancakeswap
Pancakeswap > Apeswap
sonuçlarını gösterir.

Örnek olarak shiba bsc contract adresi var siz değiştirebilirsiniz.

Meraklısı olur diye buradan paylaşıyorum
Çalıştırmadan önce
npm install web3
const { Web3 } = require('web3');

// Binance Smart Chain RPC URL'si
const bscRpcUrl = "https://bsc-dataseed.binance.org/";
const web3 = new Web3(bscRpcUrl);

// Router adresleri ve ABIl'leri
const pancakeRouterAddress = "0x10ED43C718714eb63d5aA57B78B54704E256024E";
const apeRouterAddress = "0xC0788A3aD43d79aa53B09c2EaCc313A787d1d607";

const routerAbi = [
    {
        "inputs": [
            { "internalType": "uint256", "name": "amountIn", "type": "uint256" },
            { "internalType": "address[]", "name": "path", "type": "address[]" }
        ],
        "name": "getAmountsOut",
        "outputs": [
            { "internalType": "uint256[]", "name": "", "type": "uint256[]" }
        ],
        "stateMutability": "view",
        "type": "function"
    }
];

// Router sözleşmeleri
const pancakeRouter = new web3.eth.Contract(routerAbi, pancakeRouterAddress);
const apeRouter = new web3.eth.Contract(routerAbi, apeRouterAddress);

// Token adresleri
const WBNB = web3.utils.toChecksumAddress("0xbb4CDB9CBd36B01bD1cBaEBF2De08d9173BC095c");
const TOKEN = web3.utils.toChecksumAddress("0x2859e4544c4bb03966803b044a93563bd2d0dd4d"); // Örnek token adresi

async function calculateTokenAmounts() {
    const amountIn = BigInt(web3.utils.toWei("0.0001", "ether")); // 1 WBNB
    const pathToToken = [WBNB, TOKEN];
    const pathToWBNB = [TOKEN, WBNB];

    try {

        const pancakeAmounts = await pancakeRouter.methods.getAmountsOut(amountIn.toString(), pathToToken).call();
        const pancakeTokenAmount = BigInt(pancakeAmounts[1]); // TOKEN miktarı
        const pancakeTokenAmountEther = web3.utils.fromWei(pancakeAmounts[1], 'ether'); // Ether biriminde
        const apeAmounts = await apeRouter.methods.getAmountsOut(amountIn.toString(), pathToToken).call();
        const apeTokenAmount = BigInt(apeAmounts[1]); // TOKEN miktarı
        const apeTokenAmountEther = web3.utils.fromWei(apeAmounts[1], 'ether'); // Ether biriminde
        const pancakeSellAmounts = await pancakeRouter.methods.getAmountsOut(apeTokenAmount.toString(), pathToWBNB).call();
        const pancakeSellWBNB = web3.utils.fromWei(pancakeSellAmounts[1], 'ether'); // Ether biriminde
        const apeSellAmounts = await apeRouter.methods.getAmountsOut(pancakeTokenAmount.toString(), pathToWBNB).call();
        const apeSellWBNB = web3.utils.fromWei(apeSellAmounts[1], 'ether'); // Ether biriminde
        console.log(`ApeSwap > PancakeSwap: ${pancakeSellWBNB}`);
        console.log(`PancakeSwap > ApeSwap: ${apeSellWBNB}`);
        console.log(`-----------`);
    } catch (error) {
        console.error("Bir hata oluştu:", error.message);
    }
}

setInterval(calculateTokenAmounts, 1000);