Операции с Кошельком
Этот раздел предоставляет полное руководство по управлению кошельками с использованием библиотеки tonutils
. Он охватывает ключевые операции, такие как:
- Создание и деплой кошельков
- Импорт кошельков из мнемоники или приватного ключа
- Отправка транзакций (TON, NFT, Jetton)
- Пакетные переводы
- Обмен Jetton (через STON.fi и DeDust.io)
Поддерживаемые кошельки
Библиотека поддерживает несколько версий и типов кошельков:
- Стандартные кошельки:
WalletV2R1
,WalletV2R2
,WalletV3R1
,WalletV3R2
,WalletV4R1
,WalletV4R2
,WalletV5R1
- Highload-кошельки (для сервисов и бирж):
HighloadWalletV2
,HighloadWalletV3
- Preprocessed кошельки (для экономичных пакетных операций):
PreprocessedWalletV2
,PreprocessedWalletV2R1
Рекомендации
- Для обычного использования рекомендуется использовать версии кошельков v3r2 до v5r1, предпочтительно v5r1 для полной функциональности.
- Для сервисов и интеграции с биржами используйте HighloadWalletV3.
- Для массовых переводов с оптимизацией газа используйте типы PreprocessedWallet.
Создание кошелька
Для создания нового кошелька используйте метод .create()
соответствующего класса. Он генерирует объект кошелька с публичным ключом, приватным ключом и мнемонической фразой.
from tonutils.client import ToncenterV3Client
from tonutils.wallet import (
# Uncomment the following lines to use different wallet versions:
# WalletV2R1,
# WalletV2R2,
# WalletV3R1,
# WalletV3R2,
# WalletV4R1,
WalletV4R2,
# WalletV5R1,
# HighloadWalletV2,
# HighloadWalletV3,
# PreprocessedWalletV2,
# PreprocessedWalletV2R1,
)
# Set to True for test network, False for main network
IS_TESTNET = True
def main() -> None:
client = ToncenterV3Client(is_testnet=IS_TESTNET, rps=1, max_retries=1)
wallet, public_key, private_key, mnemonic = WalletV4R2.create(client)
# Uncomment and use the following lines to create different wallet versions:
# wallet, public_key, private_key, mnemonic = WalletV3R2.create(client)
# wallet, public_key, private_key, mnemonic = WalletV4R1.create(client)
# wallet, public_key, private_key, mnemonic = WalletV4R2.create(client)
# wallet, public_key, private_key, mnemonic = WalletV5R1.create(client)
# wallet, public_key, private_key, mnemonic = HighloadWalletV2.create(client)
# wallet, public_key, private_key, mnemonic = HighloadWalletV3.create(client)
# wallet, public_key, private_key, mnemonic = PreprocessedWalletV2.create(client)
# wallet, public_key, private_key, mnemonic = PreprocessedWalletV2R1.create(client)
print("Wallet has been successfully created!")
print(f"Address: {wallet.address.to_str()}")
print(f"Mnemonic: {mnemonic}")
if __name__ == "__main__":
main()
Импорт кошелька
Кошелёк можно импортировать из мнемонической фразы или напрямую из приватного ключа.
Из мнемоники
from tonutils.client import ToncenterV3Client
from tonutils.wallet import WalletV4R2
# Mnemonic phrase
MNEMONIC = "word1 word2 word3 ..."
def main() -> None:
client = ToncenterV3Client()
wallet, public_key, private_key, mnemonic = WalletV4R2.from_mnemonic(client, MNEMONIC)
print(f"Wallet address: {wallet.address.to_str()}")
if __name__ == "__main__":
main()
Из приватного ключа
from tonutils.client import ToncenterV3Client
from tonutils.wallet import WalletV4R2
# Private key (32 or 64 bytes)
PRIVATE_KEY: bytes = b"your_private_key_bytes"
def main() -> None:
client = ToncenterV3Client()
wallet = WalletV4R2.from_private_key(client, PRIVATE_KEY)
print(f"Wallet address: {wallet.address.to_str()}")
if __name__ == "__main__":
main()
Деплой кошелька
Для деплоя кошелька восстановите его из мнемоники и вызовите метод .deploy()
. Это опубликует контракт кошелька в сети.
from tonutils.client import ToncenterV3Client
from tonutils.wallet import (
# Uncomment the following lines to use different wallet versions:
# WalletV2R1,
# WalletV2R2,
# WalletV3R1,
# WalletV3R2,
# WalletV4R1,
WalletV4R2,
# WalletV5R1,
# HighloadWalletV2,
# HighloadWalletV3,
# PreprocessedWalletV2,
# PreprocessedWalletV2R1,
)
# Set to True for test network, False for main network
IS_TESTNET = True
# Mnemonic phrase
MNEMONIC = "word1 word2 word3 ..."
async def main() -> None:
client = ToncenterV3Client(is_testnet=IS_TESTNET, rps=1, max_retries=1)
wallet, public_key, private_key, mnemonic = WalletV4R2.from_mnemonic(client, MNEMONIC)
# Uncomment and use the following lines to create different wallet versions from mnemonic:
# wallet, public_key, private_key, mnemonic = WalletV2R1.from_mnemonic(client, MNEMONIC)
# wallet, public_key, private_key, mnemonic = WalletV2R2.from_mnemonic(client, MNEMONIC)
# wallet, public_key, private_key, mnemonic = WalletV3R2.from_mnemonic(client, MNEMONIC)
# wallet, public_key, private_key, mnemonic = WalletV4R1.from_mnemonic(client, MNEMONIC)
# wallet, public_key, private_key, mnemonic = WalletV4R2.from_mnemonic(client, MNEMONIC)
# wallet, public_key, private_key, mnemonic = WalletV5R1.from_mnemonic(client, MNEMONIC)
# wallet, public_key, private_key, mnemonic = HighloadWalletV2.from_mnemonic(client, MNEMONIC)
# wallet, public_key, private_key, mnemonic = HighloadWalletV3.from_mnemonic(client, MNEMONIC)
# wallet, public_key, private_key, mnemonic = PreprocessedWalletV2.from_mnemonic(client, MNEMONIC)
# wallet, public_key, private_key, mnemonic = PreprocessedWalletV2R1.from_mnemonic(client, MNEMONIC)
tx_hash = await wallet.deploy()
print(f"Wallet deployed successfully!")
print(f"Wallet address: {wallet.address.to_str()}")
print(f"Transaction hash: {tx_hash}")
if __name__ == "__main__":
import asyncio
asyncio.run(main())
Переводы
Отправка TON
from tonutils.client import ToncenterV3Client
from tonutils.wallet import WalletV4R2
# Set to True for test network, False for main network
IS_TESTNET = True
# Mnemonic phrase
MNEMONIC = "word1 word2 word3 ..."
# The address of the recipient
DESTINATION_ADDRESS = "UQ..."
# Optional comment to include in the forward payload
COMMENT = "Hello from tonutils!"
# Amount to transfer in TON
AMOUNT = 0.01
async def main() -> None:
client = ToncenterV3Client(is_testnet=IS_TESTNET, rps=1, max_retries=1)
wallet, public_key, private_key, mnemonic = WalletV4R2.from_mnemonic(client, MNEMONIC)
tx_hash = await wallet.transfer(
destination=DESTINATION_ADDRESS,
amount=AMOUNT,
body=COMMENT,
)
print(f"Successfully transferred {AMOUNT} TON!")
print(f"Transaction hash: {tx_hash}")
if __name__ == "__main__":
import asyncio
asyncio.run(main())
Отправка NFT
from tonutils.client import ToncenterV3Client
from tonutils.wallet import WalletV4R2
from tonutils.wallet.messages import TransferNFTMessage
# Set to True for test network, False for main network
IS_TESTNET = True
# Mnemonic phrase
MNEMONIC = "word1 word2 word3 ..."
# Address of the NFT to be transferred and the new owner address
NFT_ADDRESS = "EQ..."
NEW_OWNER_ADDRESS = "UQ..."
# Optional comment to include in the forward payload
COMMENT = "Hello from tonutils!"
async def main() -> None:
client = ToncenterV3Client(is_testnet=IS_TESTNET, rps=1, max_retries=1)
wallet, public_key, private_key, mnemonic = WalletV4R2.from_mnemonic(client, MNEMONIC)
tx_hash = await wallet.transfer_message(
message=TransferNFTMessage(
destination=NEW_OWNER_ADDRESS,
nft_address=NFT_ADDRESS,
forward_payload=COMMENT,
),
)
print("Successfully transferred!")
print(f"Transaction hash: {tx_hash}")
if __name__ == "__main__":
import asyncio
asyncio.run(main())
Отправка Jetton
from tonutils.client import ToncenterV3Client
from tonutils.wallet import WalletV4R2
from tonutils.wallet.messages import TransferJettonMessage
# Set to True for the test network, False for the main network
IS_TESTNET = True
# Mnemonic phrase
MNEMONIC = "word1 word2 word3 ..."
# The address of the Jetton Master contract
JETTON_MASTER_ADDRESS = "EQ..."
# Number of decimal places for the Jetton
JETTON_DECIMALS = 9
# Amount of Jettons to transfer (in base units, considering decimals)
JETTON_AMOUNT = 0.01
# The address of the recipient
DESTINATION_ADDRESS = "UQ..."
# Comment to include in the transfer payload
COMMENT = "Hello from tonutils!"
async def main() -> None:
client = ToncenterV3Client(is_testnet=IS_TESTNET, rps=1, max_retries=1)
wallet, public_key, private_key, mnemonic = WalletV4R2.from_mnemonic(client, MNEMONIC)
tx_hash = await wallet.transfer_message(
message=TransferJettonMessage(
destination=DESTINATION_ADDRESS,
jetton_master_address=JETTON_MASTER_ADDRESS,
jetton_amount=JETTON_AMOUNT,
jetton_decimals=JETTON_DECIMALS,
forward_payload=COMMENT,
),
)
print(f"Successfully transferred {JETTON_AMOUNT} jettons!")
print(f"Transaction hash: {tx_hash}")
if __name__ == "__main__":
import asyncio
asyncio.run(main())
Пакетные переводы
Пакетная отправка TON
from tonutils.client import ToncenterV3Client
from tonutils.wallet import WalletV4R2
from tonutils.wallet.messages import TransferMessage
# Set to True for test network, False for main network
IS_TESTNET = True
# Mnemonic phrase
MNEMONIC = "word1 word2 word3 ..."
async def main() -> None:
client = ToncenterV3Client(is_testnet=IS_TESTNET, rps=1, max_retries=1)
wallet, public_key, private_key, mnemonic = WalletV4R2.from_mnemonic(client, MNEMONIC)
tx_hash = await wallet.batch_transfer_messages(
messages=[
TransferMessage(
destination="UQ...",
amount=0.01,
body="Hello from tonutils!",
),
TransferMessage(
destination="UQ...",
amount=0.01,
body="Hello from tonutils!",
),
TransferMessage(
destination="UQ...",
amount=0.01,
body="Hello from tonutils!",
),
TransferMessage(
destination="UQ...",
amount=0.01,
body="Hello from tonutils!",
),
]
)
print("Successfully transferred!")
print(f"Transaction hash: {tx_hash}")
if __name__ == "__main__":
import asyncio
asyncio.run(main())
Пакетная отправка NFT
from tonutils.client import ToncenterV3Client
from tonutils.wallet import WalletV4R2
from tonutils.wallet.messages import TransferNFTMessage
# Set to True for test network, False for main network
IS_TESTNET = True
# Mnemonic phrase
MNEMONIC = "word1 word2 word3 ..."
async def main() -> None:
client = ToncenterV3Client(is_testnet=IS_TESTNET, rps=1, max_retries=1)
wallet, public_key, private_key, mnemonic = WalletV4R2.from_mnemonic(client, MNEMONIC)
tx_hash = await wallet.batch_transfer_messages(
messages=[
TransferNFTMessage(
destination="UQ...",
nft_address="EQ..",
forward_payload="Hello from tonutils!",
),
TransferNFTMessage(
destination="UQ...",
nft_address="EQ..",
forward_payload="Hello from tonutils!",
),
TransferNFTMessage(
destination="UQ...",
nft_address="EQ..",
forward_payload="Hello from tonutils!",
),
TransferNFTMessage(
destination="UQ...",
nft_address="EQ..",
forward_payload="Hello from tonutils!",
)
]
)
print("Successfully transferred!")
print(f"Transaction hash: {tx_hash}")
if __name__ == "__main__":
import asyncio
asyncio.run(main())
Пакетная отправка Jetton
from tonutils.client import ToncenterV3Client
from tonutils.wallet import WalletV4R2
from tonutils.wallet.messages import TransferJettonMessage
# Set to True for test network, False for main network
IS_TESTNET = True
# Mnemonic phrase
MNEMONIC = "word1 word2 word3 ..."
async def main() -> None:
client = ToncenterV3Client(is_testnet=IS_TESTNET, rps=1, max_retries=1)
wallet, public_key, private_key, mnemonic = WalletV4R2.from_mnemonic(client, MNEMONIC)
tx_hash = await wallet.batch_transfer_messages(
messages=[
TransferJettonMessage(
destination="UQ...",
jetton_master_address="EQ...",
jetton_amount=0.01,
jetton_decimals=9,
forward_payload="Hello from tonutils!",
),
TransferJettonMessage(
destination="UQ...",
jetton_master_address="EQ...",
jetton_amount=0.01,
jetton_decimals=9,
forward_payload="Hello from tonutils!",
),
TransferJettonMessage(
destination="UQ...",
jetton_master_address="EQ...",
jetton_amount=0.01,
jetton_decimals=9,
forward_payload="Hello from tonutils!",
),
TransferJettonMessage(
destination="UQ...",
jetton_master_address="EQ...",
jetton_amount=0.01,
jetton_decimals=9,
forward_payload="Hello from tonutils!",
),
]
)
print("Successfully transferred!")
print(f"Transaction hash: {tx_hash}")
if __name__ == "__main__":
import asyncio
asyncio.run(main())
Обмен Jetton
Через STON.fi
Обмен TON → Jetton
Note
Перед использованием обязательно ознакомьтесь с официальной документацией STON.fi. Используйте с осторожностью и всегда тестируйте сначала в тестовой сети. Автор не несёт никакой ответственности за возможные потери средств. Нашли ошибку или есть предложения — создайте pull request.
from tonutils.client import ToncenterV3Client
from tonutils.wallet import WalletV4R2
from tonutils.wallet.messages import StonfiSwapTONToJettonMessage
# Set to True for the test network, False for the main network
IS_TESTNET = False
# Mnemonic phrase
MNEMONIC = "word1 word2 word3 ..."
# Address of the Jetton Master for swapping (TON > USD₮)
TO_JETTON_MASTER_ADDRESS = "EQCxE6mUtQJKFnGfaROTKOt1lZbDiiX1kCixRv7Nw2Id_sDs" # noqa
# Number of decimal places for the Jetton
JETTON_DECIMALS = 9
# Amount of TON to swap (in TON)
SWAP_TON_AMOUNT = 1
async def main() -> None:
client = ToncenterV3Client(is_testnet=IS_TESTNET, rps=1, max_retries=1)
wallet, _, _, _ = WalletV4R2.from_mnemonic(client, MNEMONIC)
tx_hash = await wallet.transfer_message(
message=StonfiSwapTONToJettonMessage(
jetton_master_address=TO_JETTON_MASTER_ADDRESS,
ton_amount=SWAP_TON_AMOUNT,
jetton_decimals=JETTON_DECIMALS,
),
)
print("Successfully swapped TON to Jetton!")
print(f"Transaction hash: {tx_hash}")
if __name__ == "__main__":
import asyncio
asyncio.run(main())
Обмен Jetton → TON
Note
Перед использованием обязательно ознакомьтесь с официальной документацией STON.fi. Используйте с осторожностью и всегда тестируйте сначала в тестовой сети. Автор не несёт никакой ответственности за возможные потери средств. Нашли ошибку или есть предложения — создайте pull request.
from tonutils.client import ToncenterV3Client
from tonutils.wallet import WalletV4R2
from tonutils.wallet.messages import StonfiSwapJettonToTONMessage
# Set to True for the test network, False for the main network
IS_TESTNET = False
# Mnemonic phrase
MNEMONIC = "word1 word2 word3 ..."
# Address of the Jetton Master for swapping (TON > USD₮)
TO_JETTON_MASTER_ADDRESS = "EQCxE6mUtQJKFnGfaROTKOt1lZbDiiX1kCixRv7Nw2Id_sDs" # noqa
# Number of decimal places for the Jetton
JETTON_DECIMALS = 9
# Amount of Jettons to swap (in base units, considering decimals)
JETTON_AMOUNT = 1
async def main() -> None:
client = ToncenterV3Client(is_testnet=IS_TESTNET, rps=1, max_retries=1)
wallet, _, _, _ = WalletV4R2.from_mnemonic(client, MNEMONIC)
tx_hash = await wallet.transfer_message(
message=StonfiSwapJettonToTONMessage(
jetton_master_address=TO_JETTON_MASTER_ADDRESS,
jetton_amount=JETTON_AMOUNT,
jetton_decimals=JETTON_DECIMALS,
),
)
print("Successfully swapped Jetton to TON!")
print(f"Transaction hash: {tx_hash}")
if __name__ == "__main__":
import asyncio
asyncio.run(main())
Обмен Jetton → Jetton
Note
Перед использованием обязательно ознакомьтесь с официальной документацией STON.fi. Используйте с осторожностью и всегда тестируйте сначала в тестовой сети. Автор не несёт никакой ответственности за возможные потери средств. Нашли ошибку или есть предложения — создайте pull request.
from tonutils.client import ToncenterV3Client
from tonutils.wallet import WalletV4R2
from tonutils.wallet.messages import StonfiSwapJettonToJettonMessage
# Set to True for the test network, False for the main network
IS_TESTNET = False
# Mnemonic phrase
MNEMONIC = "word1 word2 word3 ..."
# Addresses of the Jetton Masters for swapping
FROM_JETTON_MASTER_ADDRESS = "EQCxE6mUtQJKFnGfaROTKOt1lZbDiiX1kCixRv7Nw2Id_sDs" # noqa
TO_JETTON_MASTER_ADDRESS = "EQAvlWFDxGF2lXm67y4yzC17wYKD9A0guwPkMs1gOsM__NOT" # noqa
# Number of decimal places for the Jetton
FROM_JETTON_DECIMALS = 6
TO_JETTON_DECIMALS = 9
# Amount of Jettons to swap (in base units, considering decimals)
JETTON_AMOUNT = 1
async def main() -> None:
client = ToncenterV3Client(is_testnet=IS_TESTNET, rps=1, max_retries=1)
wallet, _, _, _ = WalletV4R2.from_mnemonic(client, MNEMONIC)
tx_hash = await wallet.transfer_message(
message=StonfiSwapJettonToJettonMessage(
from_jetton_master_address=FROM_JETTON_MASTER_ADDRESS,
to_jetton_master_address=TO_JETTON_MASTER_ADDRESS,
jetton_amount=JETTON_AMOUNT,
from_jetton_decimals=FROM_JETTON_DECIMALS,
to_jetton_decimals=TO_JETTON_DECIMALS,
),
)
print("Successfully swapped Jetton to Jetton!")
print(f"Transaction hash: {tx_hash}")
if __name__ == "__main__":
import asyncio
asyncio.run(main())
Пакетный обмен TON → Jetton
Note
Перед использованием обязательно ознакомьтесь с официальной документацией STON.fi. Используйте с осторожностью и всегда тестируйте сначала в тестовой сети. Автор не несёт никакой ответственности за возможные потери средств. Нашли ошибку или есть предложения — создайте pull request.
from tonutils.client import ToncenterV3Client
from tonutils.wallet import WalletV4R2
from tonutils.wallet.messages import StonfiSwapTONToJettonMessage
# Set to True for the test network, False for the main network
IS_TESTNET = False
# Mnemonic phrase
MNEMONIC = "word1 word2 word3 ..."
async def main() -> None:
client = ToncenterV3Client(is_testnet=IS_TESTNET, rps=1, max_retries=1)
wallet, _, _, _ = WalletV4R2.from_mnemonic(client, MNEMONIC)
tx_hash = await wallet.batch_transfer_messages(
messages=[
StonfiSwapTONToJettonMessage(
jetton_master_address="EQ...",
ton_amount=0.01,
jetton_decimals=9,
),
StonfiSwapTONToJettonMessage(
jetton_master_address="EQ...",
ton_amount=0.01,
jetton_decimals=9,
),
StonfiSwapTONToJettonMessage(
jetton_master_address="EQ...",
ton_amount=0.01,
jetton_decimals=9,
),
StonfiSwapTONToJettonMessage(
jetton_master_address="EQ...",
ton_amount=0.01,
jetton_decimals=9,
),
],
)
print("Successfully swapped TON to Jetton!")
print(f"Transaction hash: {tx_hash}")
if __name__ == "__main__":
import asyncio
asyncio.run(main())
Пакетный обмен Jetton → TON
Note
Перед использованием обязательно ознакомьтесь с официальной документацией STON.fi. Используйте с осторожностью и всегда тестируйте сначала в тестовой сети. Автор не несёт никакой ответственности за возможные потери средств. Нашли ошибку или есть предложения — создайте pull request.
from tonutils.client import ToncenterV3Client
from tonutils.wallet import WalletV4R2
from tonutils.wallet.messages import StonfiSwapJettonToTONMessage
# Set to True for the test network, False for the main network
IS_TESTNET = False
# Mnemonic phrase
MNEMONIC = "word1 word2 word3 ..."
async def main() -> None:
client = ToncenterV3Client(is_testnet=IS_TESTNET, rps=1, max_retries=1)
wallet, _, _, _ = WalletV4R2.from_mnemonic(client, MNEMONIC)
tx_hash = await wallet.batch_transfer_messages(
messages=[
StonfiSwapJettonToTONMessage(
jetton_master_address="EQ...",
jetton_amount=0.01,
jetton_decimals=9,
),
StonfiSwapJettonToTONMessage(
jetton_master_address="EQ...",
jetton_amount=0.01,
jetton_decimals=9,
),
StonfiSwapJettonToTONMessage(
jetton_master_address="EQ...",
jetton_amount=0.01,
jetton_decimals=9,
),
StonfiSwapJettonToTONMessage(
jetton_master_address="EQ...",
jetton_amount=0.01,
jetton_decimals=9,
),
],
)
print("Successfully swapped TON to Jetton!")
print(f"Transaction hash: {tx_hash}")
if __name__ == "__main__":
import asyncio
asyncio.run(main())
Пакетный обмен Jetton → Jetton
Note
Перед использованием обязательно ознакомьтесь с официальной документацией STON.fi. Используйте с осторожностью и всегда тестируйте сначала в тестовой сети. Автор не несёт никакой ответственности за возможные потери средств. Нашли ошибку или есть предложения — создайте pull request.
from tonutils.client import ToncenterV3Client
from tonutils.wallet import WalletV4R2
from tonutils.wallet.messages import StonfiSwapJettonToJettonMessage
# Set to True for the test network, False for the main network
IS_TESTNET = False
# Mnemonic phrase
MNEMONIC = "word1 word2 word3 ..."
async def main() -> None:
client = ToncenterV3Client()
wallet, _, _, _ = WalletV4R2.from_mnemonic(client, MNEMONIC)
tx_hash = await wallet.batch_transfer_messages(
messages=[
StonfiSwapJettonToJettonMessage(
from_jetton_master_address="EQ...",
to_jetton_master_address="EQ...",
jetton_amount=0.01,
from_jetton_decimals=9,
to_jetton_decimals=9,
),
StonfiSwapJettonToJettonMessage(
from_jetton_master_address="EQ...",
to_jetton_master_address="EQ...",
jetton_amount=0.01,
from_jetton_decimals=9,
to_jetton_decimals=9,
),
StonfiSwapJettonToJettonMessage(
from_jetton_master_address="EQ...",
to_jetton_master_address="EQ...",
jetton_amount=0.01,
from_jetton_decimals=9,
to_jetton_decimals=9,
),
StonfiSwapJettonToJettonMessage(
from_jetton_master_address="EQ...",
to_jetton_master_address="EQ...",
jetton_amount=0.01,
from_jetton_decimals=9,
to_jetton_decimals=9,
),
],
)
print("Successfully swapped TON to Jetton!")
print(f"Transaction hash: {tx_hash}")
if __name__ == "__main__":
import asyncio
asyncio.run(main())
Через DeDust.io
Обмен TON → Jetton
Note
Перед использованием обязательно ознакомьтесь с официальной документацией DeDust.io. Используйте с осторожностью и всегда тестируйте сначала в тестовой сети. Автор не несёт никакой ответственности за возможные потери средств. Нашли ошибку или есть предложения — создайте pull request.
from tonutils.client import ToncenterV3Client
from tonutils.wallet import WalletV4R2
from tonutils.wallet.messages import DedustSwapTONToJettonMessage
# Mnemonic phrase
MNEMONIC = "word1 word2 word3 ..."
# Address of the Jetton Master contract
JETTON_MASTER_ADDRESS = "EQ..."
# Number of decimal places for the Jetton
JETTON_DECIMALS = 9
# Amount of TON to swap (in TON)
SWAP_TON_AMOUNT = 1
async def main() -> None:
client = ToncenterV3Client()
wallet, _, _, _ = WalletV4R2.from_mnemonic(client, MNEMONIC)
tx_hash = await wallet.transfer_message(
message=DedustSwapTONToJettonMessage(
jetton_master_address=JETTON_MASTER_ADDRESS,
ton_amount=SWAP_TON_AMOUNT,
jetton_decimals=JETTON_DECIMALS,
),
)
print("Successfully swapped TON to Jetton!")
print(f"Transaction hash: {tx_hash}")
if __name__ == "__main__":
import asyncio
asyncio.run(main())
Обмен Jetton → TON
Note
Перед использованием обязательно ознакомьтесь с официальной документацией DeDust.io. Используйте с осторожностью и всегда тестируйте сначала в тестовой сети. Автор не несёт никакой ответственности за возможные потери средств. Нашли ошибку или есть предложения — создайте pull request.
from tonutils.client import ToncenterV3Client
from tonutils.wallet import WalletV4R2
from tonutils.wallet.messages import DedustSwapJettonToTONMessage
# Mnemonic phrase
MNEMONIC = "word1 word2 word3 ..."
# Address of the Jetton Master contract
JETTON_MASTER_ADDRESS = "EQ..."
# Number of decimal places for the Jetton
JETTON_DECIMALS = 9
# Amount of Jettons to swap (in base units, considering decimals)
JETTON_AMOUNT = 1
async def main() -> None:
client = ToncenterV3Client()
wallet, _, _, _ = WalletV4R2.from_mnemonic(client, MNEMONIC)
tx_hash = await wallet.transfer_message(
message=DedustSwapJettonToTONMessage(
jetton_master_address=JETTON_MASTER_ADDRESS,
jetton_amount=JETTON_AMOUNT,
jetton_decimals=JETTON_DECIMALS,
),
)
print("Successfully swapped Jetton to TON!")
print(f"Transaction hash: {tx_hash}")
if __name__ == "__main__":
import asyncio
asyncio.run(main())
Обмен Jetton → Jetton
Note
Перед использованием обязательно ознакомьтесь с официальной документацией DeDust.io. Используйте с осторожностью и всегда тестируйте сначала в тестовой сети. Автор не несёт никакой ответственности за возможные потери средств. Нашли ошибку или есть предложения — создайте pull request.
from tonutils.client import ToncenterV3Client
from tonutils.wallet import WalletV4R2
from tonutils.wallet.messages import DedustSwapJettonToJettonMessage
# Mnemonic phrase
MNEMONIC = "word1 word2 word3 ..."
# Addresses of the Jetton Masters for swapping
FROM_JETTON_MASTER_ADDRESS = "EQ..."
TO_JETTON_MASTER_B_ADDRESS = "EQ..."
# Number of decimal places for the Jetton
FROM_JETTON_DECIMALS = 9
TO_JETTON_DECIMALS = 9
# Amount of Jettons to swap (in base units, considering decimals)
JETTON_AMOUNT = 1
async def main() -> None:
client = ToncenterV3Client()
wallet, _, _, _ = WalletV4R2.from_mnemonic(client, MNEMONIC)
tx_hash = await wallet.transfer_message(
message=DedustSwapJettonToJettonMessage(
from_jetton_master_address=FROM_JETTON_MASTER_ADDRESS,
to_jetton_master_address=TO_JETTON_MASTER_B_ADDRESS,
jetton_amount=JETTON_AMOUNT,
from_jetton_decimals=FROM_JETTON_DECIMALS,
to_jetton_decimals=TO_JETTON_DECIMALS,
),
)
print("Successfully swapped Jetton to Jetton!")
print(f"Transaction hash: {tx_hash}")
if __name__ == "__main__":
import asyncio
asyncio.run(main())
Пакетный обмен TON → Jetton
Note
Перед использованием обязательно ознакомьтесь с официальной документацией DeDust.io. Используйте с осторожностью и всегда тестируйте сначала в тестовой сети. Автор не несёт никакой ответственности за возможные потери средств. Нашли ошибку или есть предложения — создайте pull request.
from tonutils.client import ToncenterV3Client
from tonutils.wallet import WalletV4R2
from tonutils.wallet.messages import DedustSwapTONToJettonMessage
# Mnemonic phrase
MNEMONIC = "word1 word2 word3 ..."
async def main() -> None:
client = ToncenterV3Client()
wallet, _, _, _ = WalletV4R2.from_mnemonic(client, MNEMONIC)
tx_hash = await wallet.batch_transfer_messages(
messages=[
DedustSwapTONToJettonMessage(
jetton_master_address="EQ...",
ton_amount=0.01,
jetton_decimals=9,
),
DedustSwapTONToJettonMessage(
jetton_master_address="EQ...",
ton_amount=0.01,
jetton_decimals=9,
),
DedustSwapTONToJettonMessage(
jetton_master_address="EQ...",
ton_amount=0.01,
jetton_decimals=9,
),
DedustSwapTONToJettonMessage(
jetton_master_address="EQ...",
ton_amount=0.01,
jetton_decimals=9,
),
]
)
print("Successfully swapped TON to Jetton!")
print(f"Transaction hash: {tx_hash}")
if __name__ == "__main__":
import asyncio
asyncio.run(main())
Пакетный обмен Jetton → TON
Note
Перед использованием обязательно ознакомьтесь с официальной документацией DeDust.io. Используйте с осторожностью и всегда тестируйте сначала в тестовой сети. Автор не несёт никакой ответственности за возможные потери средств. Нашли ошибку или есть предложения — создайте pull request.
from tonutils.client import ToncenterV3Client
from tonutils.wallet import WalletV4R2
from tonutils.wallet.messages import DedustSwapJettonToTONMessage
# Mnemonic phrase
MNEMONIC = "word1 word2 word3 ..."
async def main() -> None:
client = ToncenterV3Client()
wallet, _, _, _ = WalletV4R2.from_mnemonic(client, MNEMONIC)
tx_hash = await wallet.batch_transfer_messages(
messages=[
DedustSwapJettonToTONMessage(
jetton_master_address="EQ...",
jetton_amount=0.01,
jetton_decimals=9,
),
DedustSwapJettonToTONMessage(
jetton_master_address="EQ...",
jetton_amount=0.01,
jetton_decimals=9,
),
DedustSwapJettonToTONMessage(
jetton_master_address="EQ...",
jetton_amount=0.01,
jetton_decimals=9,
),
DedustSwapJettonToTONMessage(
jetton_master_address="EQ...",
jetton_amount=0.01,
jetton_decimals=9,
),
]
)
print("Successfully swapped TON to Jetton!")
print(f"Transaction hash: {tx_hash}")
if __name__ == "__main__":
import asyncio
asyncio.run(main())
Пакетный обмен Jetton → Jetton
Note
Перед использованием обязательно ознакомьтесь с официальной документацией DeDust.io. Используйте с осторожностью и всегда тестируйте сначала в тестовой сети. Автор не несёт никакой ответственности за возможные потери средств. Нашли ошибку или есть предложения — создайте pull request.
from tonutils.client import ToncenterV3Client
from tonutils.wallet import WalletV4R2
from tonutils.wallet.messages import DedustSwapJettonToJettonMessage
# Mnemonic phrase
MNEMONIC = "word1 word2 word3 ..."
async def main() -> None:
client = ToncenterV3Client()
wallet, _, _, _ = WalletV4R2.from_mnemonic(client, MNEMONIC)
tx_hash = await wallet.batch_transfer_messages(
messages=[
DedustSwapJettonToJettonMessage(
from_jetton_master_address="EQ...",
to_jetton_master_address="EQ...",
jetton_amount=0.01,
from_jetton_decimals=9,
to_jetton_decimals=9,
),
DedustSwapJettonToJettonMessage(
from_jetton_master_address="EQ...",
to_jetton_master_address="EQ...",
jetton_amount=0.01,
from_jetton_decimals=9,
to_jetton_decimals=9,
),
DedustSwapJettonToJettonMessage(
from_jetton_master_address="EQ...",
to_jetton_master_address="EQ...",
jetton_amount=0.01,
from_jetton_decimals=9,
to_jetton_decimals=9,
),
DedustSwapJettonToJettonMessage(
from_jetton_master_address="EQ...",
to_jetton_master_address="EQ...",
jetton_amount=0.01,
from_jetton_decimals=9,
to_jetton_decimals=9,
),
]
)
print("Successfully swapped TON to Jetton!")
print(f"Transaction hash: {tx_hash}")
if __name__ == "__main__":
import asyncio
asyncio.run(main())