Skip to main content

DXSP (DeX SwaP), A defi swap helper package. Easy peasy Swap.

Project description

dxsp

DXSP (DeX SwaP), A defi swap helper package. Easy peasy Swap.

Pypi Version

Install

pip install dxsp

2 swap execution mode are supported:

  • Single SWAP via 1inch API v5 and Uniswap version 2 router DEX type
  • Limit SWAP via 1inch API v3

.Env

Mandatory

  • None

Optional

  • TOKENLIST: URL of a standard token list following tokenlist.org format
  • TESTTOKENLIST: URL of a standard testnet token list following tokenlist.org format

Example

example

import os
from dotenv import load_dotenv
import asyncio
from web3 import Web3
import many_abis as ma

#YOUR VARIABLES
load_dotenv()
#chain ID being used refer to https://chainlist.org/
chain_id = os.getenv("CHAIN_ID", 10)

#your wallet details
wallet_address = os.getenv("WALLET_ADDRESS", "0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE")
private_key = os.getenv("PRIVATE_KEY", "0x111111111117dc0aa78b770fa6a738034120c302")

#1 for 1inch and 2 for Uniswap V2
protocol = os.getenv("PROTOCOL", "1")

#DATA from MANY_ABIS FOR RPC and EXCHANGE
chain = ma.get_chain_by_id(chain_id=int(chain_id))
network_provider_url = os.getenv("NETWORK_PROVIDER_URL", chain['rpc'][0])
dex_exchange = os.getenv("DEX_EXCHANGE", chain['dex'][0])

#Block explorer API from ETHERSCAN TYPE EXPLORER
block_explorer_api = os.getenv("BLOCK_EXPLORER_API", "1X23Q4ACZ5T3KXG67WIAH7X8C510F1972TM")

#DEX CONNECTIVITY
w3 = Web3(Web3.HTTPProvider(network_provider_url))


+from dxsp import DexSwap

async def main():
	#SWAP HELPER
+	dex = DexSwap(w3,chain_id,wallet_address,private_key,protocol,dex_exchange,block_explorer_api)
	#DEMO SWAP
+	demo_tx = await dex.get_swap(10,'USDC','wBTC')
	print("demo_tx ", demo_tx)

	#QUOTE
	quote = await dex.get_quote('wBTC')
	print("quote ", quote)

	#NORMAL SWAP
	transaction_amount_out = 10
	asset_out_symbol = "USDT"
	asset_in_symbol = "ETH"
	#SWAP EXECUTION
	transaction = await dex.get_swap(transaction_amount_out,asset_out_symbol,asset_in_symbol)
	print("transaction ", transaction)
	
	#get Contract Address
	bitcoinaddress = await dex.search_contract('wBTC')
	print("bitcoinaddress ", bitcoinaddress)
	#bitcoinaddress  0x68f180fcCe6836688e9084f035309E29Bf0A2095
	# check : https://optimistic.etherscan.io/token/0x68f180fcce6836688e9084f035309e29bf0a2095?a=0x5bb949b4938aaf1b2e97f4871a8968a4abea7c98

	#getABI
	# bitcoinABI = await dex.get_abi(bitcoinaddress)
	# print("bitcoinABI ", bitcoinABI)


if __name__ == "__main__":
    asyncio.run(main())

Real case

TalkyTrader, submit trading order to CEX & DEX with messaging platform (Telegram, Matrix and Discord)

Roadmap

V1

- Single SWAP via 1inch API v5 and Uniswap version 2 router
- Limit SWAP via 1inch API v3

V2

- Uniswap V3 Support
- Ox or other API based swap or orderbook platfrom

Project details


Release history Release notifications | RSS feed

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

dxsp-0.0.32.tar.gz (6.6 kB view details)

Uploaded Source

Built Distribution

dxsp-0.0.32-py3-none-any.whl (7.0 kB view details)

Uploaded Python 3

File details

Details for the file dxsp-0.0.32.tar.gz.

File metadata

  • Download URL: dxsp-0.0.32.tar.gz
  • Upload date:
  • Size: 6.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.11.3

File hashes

Hashes for dxsp-0.0.32.tar.gz
Algorithm Hash digest
SHA256 3b8ec4d0081f09b156180181c94613de65c679b0c0ade8a614c40695d683eb6d
MD5 a94e44748976d738188e5f1fe4616f0b
BLAKE2b-256 c99e0c39af4a5279a2f3bf87bd52b3eb3fb1b619511a8a80b7dd953bcc99be9e

See more details on using hashes here.

File details

Details for the file dxsp-0.0.32-py3-none-any.whl.

File metadata

  • Download URL: dxsp-0.0.32-py3-none-any.whl
  • Upload date:
  • Size: 7.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.11.3

File hashes

Hashes for dxsp-0.0.32-py3-none-any.whl
Algorithm Hash digest
SHA256 2da2937b6e34c6b7f35dab5933f246d55d869d9703dfdbcd62f43a650fc6ff0f
MD5 0de95eaa6f55b1a1cea5a3b814cb17b1
BLAKE2b-256 f7d16a0384489900d71264eb35790502d92d21ea5ae75a3bfed44bd7a07b8fa2

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page