如何使用钱包版本v5r1发送交易并在Python中实现多发送?

问题描述 投票:0回答:1

我正在开发一个Python应用程序,我需要使用钱包版本v5r1(TON区块链)发送交易。主要要求是实现多发送交易,此钱包版本支持此功能。

我正在使用tonsdk库,但它似乎原生不支持v5r1。这是我需要实现的目标:

  1. 使用 v5r1 钱包格式创建交易消息。发送

  2. 单批处理多个交易(多次发送)。

我可以使用哪些步骤或库来实现此目的?有没有任何例子或替代方法? 此外,我希望获得有关如何正确处理 v5r1 钱包的 SEQNO 的指导。

这是我尝试过的代码示例(基于其他钱包版本):

from tonsdk.contract.wallet import Wallets, WalletVersionEnum
from tonsdk.utils import to_nano

mnemonics = "my seed phrase here".split(" ")
version = WalletVersionEnum.v5r1  # Targeted version

# Key and wallet generation
mnemonics, pub_k, priv_k, wallet = Wallets.from_mnemonics(
    mnemonics=mnemonics,
    version=version,
    workchain=0
)

# Issue: tonsdk does not support WalletVersionEnum.v5r1

我可以使用哪些库或方法来处理 v5r1?如果tonsdk不支持,如何手动发送所需格式的交易?

python blockchain cryptocurrency ton
1个回答
0
投票

我通过利用 tonutils 库解决了发送多笔交易和使用 v5 钱包 (WalletV5R1) 的问题。关键是利用了batch_transfer方法,它支持在一个操作中处理多个交易。

这是我的实现方式:

from tonutils.wallet.data import TransferData
from tonutils.client import ToncenterClient
from tonutils.wallet import WalletV5R1

async def main(recipient_address, amount, payload) -> None:
    # Initialize Toncenter client
    client = ToncenterClient(api_key=settings.API_KEY, is_testnet=False)
    
    # Create a WalletV5R1 instance from mnemonic
    wallet, public_key, private_key, mnemonic = WalletV5R1.from_mnemonic(client, [settings.SENDER_SEED_PHRASE])

    # Prepare a list of transfer data
    data_list = []
    data_list.append(
        TransferData(
            destination=recipient_address,
            amount=amount,
            body=payload,
        )
    )

    # Send a batch of transactions
    tx_hash = await wallet.batch_transfer(
        data_list=data_list
    )

    # Log success
    logger.info("Successfully transferred!")
    logger.info(f"Transaction hash: {tx_hash}")
© www.soinside.com 2019 - 2024. All rights reserved.