All Credit to https://github.com/paco0x
This is merely a port of his work to test on FTM - Fantom Network
https://github.com/paco0x/amm-arbitrageur
Make sure to put FantomScan API Key in /bot/config.ts
-
Edit network config in
hardhat.config.ts
-
Copy the secret sample config:
$ cp .secret.ts.sample .secret.ts
-
Edit the private and address field in above config.
-
Then run the script to deploy. By default, it deploys to BSC. If you wanna dpeloy to other network, you may need to change the network settings in
hardhat.config.ts
. You also need to change the WETH or other token address in thedeploy.ts
$ hardhart --network ftm run scripts/deploy.ts
The contract has a function getProfit(address pool1, address pool2)
, which can be used to calculate the maximum profit between two pairs(denominated in base token).
The bot need to call getProfit()
to get the possible profit between token pairs. Once it is profitable, bot calls flashArbitrage(pool1, pool2)
to do the arbitrage. The profit will leaves in the contract address.
Contract owner can call withdraw()
to withdraw the profit.
There already implemented a bot in typescript, to run it:
$ yarn run bot
- SpiritSwap
- SpookySwap
- HyperJump
SushiSwap(Not supported)
$ hardhat test