Skip to content

Instantly share code, notes, and snippets.

@darkerego
Last active January 17, 2023 21:38
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save darkerego/57adf22ac8a49d3af1410c9f3d8f2d1c to your computer and use it in GitHub Desktop.
Save darkerego/57adf22ac8a49d3af1410c9f3d8f2d1c to your computer and use it in GitHub Desktop.
reproduce_err.py
# import into python shell for fast debug/testing
import web3
from web3.middleware import geth_poa_middleware
from lib import abi_lib
from dotenv import load_dotenv
from os import environ
aurora_ws_endpoint = 'wss://ws-nd-569-292-463.p2pify.com/ad55a63e553ce9ec001717f4d816eb0e'
aurora__flash_arbitrage_contract = '0x61a989372fEac262d2b630eD171373ee95517db6'
from_addr='0x6126315AEac95BAA46C8e257509F9D4d63777b61'
priv_key=None
class Api:
def __init__(self, network='aurora'):
load_dotenv('/home/anon/PycharmProjects/secure_w3/.env')
self.network = network
self.w3 = web3.Web3(web3.WebsocketProvider(environ.get(f'{network}_http_endpoint')))
if network == 'polygon':
self.w3.middleware_onion.inject(geth_poa_middleware, layer=0)
flash_arb = environ.get(f'{network}_flash_arbitrage_contract')
if flash_arb:
self.contract_address = self.w3.toChecksumAddress(flash_arb)
self.arbitrager = self.w3.eth.contract(address=self.contract_address, abi=abi_lib.DSP_ARB_ABI)
async def perform_dual_flash_trade(self, flashloan_pool, token1, token2, router1, router2, raw_qty):
zero_address = '0x0000000000000000000000000000000000000000'
raw_txn = {
"from": from_addr,
"gas": 1000000,
'gasPrice': self.w3.toWei(.1, 'gwei'),
"to": aurora__flash_arbitrage_contract,
"value": "0x0",
"data": self.arbitrager.encodeABI('dodoFlashLoan', args=(flashloan_pool,
raw_qty,
token1,
token1,
token2,
zero_address,
router1,
router2,
zero_address)),
"nonce": self.w3.eth.get_transaction_count(from_addr),
"chainId": self.w3.eth.chain_id
}
signed_tx = self.w3.eth.sign_transaction(raw_txn, priv_key)
self.w3.eth.send_raw_transaction(signed_tx.rawTransaction)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment