Skip to content

DeDust SDK for Python (old tonsdk version).

License

Notifications You must be signed in to change notification settings

itanarchy/dedust-tonsdk

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

79 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

DeDust SDK for Python

Analogue of DeDust SDK for Python.

Description

You can swap tokens, deposit liquidity and many more.

Getting Started

Dependencies

  • httpx
  • tonsdk

Installing

pip install dedust

Using

Example of buying $SCALE using SDK.

from dedust import Asset, Factory, PoolType, SwapParams, VaultNative
from dedust.api import Provider
import asyncio
import time
from tonsdk.utils import Address, bytes_to_b64str
from tonsdk.contract.wallet import Wallets, WalletVersionEnum

mnemonics = ["your", "mnemonics", "here"]

mnemonics, pub_k, priv_k, wallet = Wallets.from_mnemonics(mnemonics=mnemonics, version=WalletVersionEnum.v4r2,
                                                          workchain=0)
async def main():
    provider = Provider()

    SCALE_ADDRESS = Address("EQBlqsm144Dq6SjbPI4jjZvA1hqTIP3CvHovbIfW_t-SCALE")

    TON = Asset.native()
    SCALE = Asset.jetton(SCALE_ADDRESS)


    pool = await Factory.get_pool(pool_type=PoolType.VOLATILE,
                                  assets=[TON, SCALE],
                                  provider=provider)
                                  
    swap_params = SwapParams(deadline=int(time.time() + 60 * 5),
                             recipient_address=wallet.address)
    swap_amount = float(input("Enter swap TON amount: ")) * 1e9


    swap = VaultNative.create_swap_payload(amount=swap_amount,
                                           pool_address=pool.address,
                                           swap_params=swap_params)

    swap_amount = int(swap_amount + (0.25 * 1e9)) # 0.25 = gas_value

    seqno = await provider.runGetMethod(address=wallet.address, method="seqno")
    query = wallet.create_transfer_message(to_addr=Address("EQDa4VOnTYlLvDJ0gZjNYm5PXfSmmtL6Vs6A_CZEtXCNICq_"),
                                           amount=swap_amount,
                                           seqno=seqno[0]["value"],
                                           payload=swap)

    boc = bytes_to_b64str(query["message"].to_boc(False))
    await provider.sendBoc(boc)

    # or:
    # print(f"https://app.tonkeeper.com/transfer/EQDa4VOnTYlLvDJ0gZjNYm5PXfSmmtL6Vs6A_CZEtXCNICq_?amount={swap_amount}&bin={bytes_to_b64str(swap.to_boc(False))}")

asyncio.run(main())

Authors

@shibdev @VladPavly

Version History

  • 1.0.5
    • Changes
  • 1.0.4
    • Bug fix
  • 1.0.3
    • Fixes
  • 1.0.2
    • Fixes and changes
  • 1.0.1
    • Small fix
  • 1.0.0
    • Remake to DeDust SDK analogue
  • 0.0.5
    • License change
  • 0.0.4
    • Dependecies fix
  • 0.0.3
    • Examples fix
  • 0.0.2
    • LP token address getting
  • 0.0.1
    • Initial Beta

License

This project is licensed under the MIT License - see the LICENSE.md file for details

Donate

If you like the library, I will be glad to accept donations.

  • TON: EQCgphx8rTI0PukwmgpVqiPgqguTujhQscg2h7jgc4U0t347

Acknowledgments

About

DeDust SDK for Python (old tonsdk version).

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 100.0%