使用Soroban Python SDK部署和调用Soroban智能合约
#python #soroban #sorobanathon #stellar

在我的previous post中,我向您展示了如何在Windows上设置Soroban Python SDK。在这篇文章中,我们将使用SDK在Futurenet网络上部署和调用Soroban Smart合同。

准备

在开始之前,请确保您已经从我的GitHub存储库下载了以下文件:

soroban_deploy_contract.py - Python Script to Deploy Contract on Soroban Futurenet Network
soroban_invoke_contract_function.py - Python Script to Invoke Contract on Soroban Futurenet Network
soroban_hello_world_contract.wasm - Soroban Hello World Smart Contract

Scripts & Contract
您可以下载这些文件here,可以使用任何其他合同文件,但是在这种情况下,我使用的是here的Soroban Hello World智能合约。此外,请确保您已经在Stellar Laboratory创建了一个Futurenet帐户并资助了它。
Create Account

部署合同

要部署合同,打开Soroban_deploy_contract.py文件并调整以下参数:

secret = "S---" #Put your Account Secret Key here
rpc_server_url = "https://horizon-futurenet.stellar.cash:443/soroban/rpc"
network_passphrase = Network.FUTURENET_NETWORK_PASSPHRASE
contract_file_path = "./soroban_hello_world_contract.wasm" 

secret:我们将用来部署智能合约的帐户的秘密密钥。 用您自己的帐户秘密密钥替换值。
rpc_server_url:您将使用RPC服务器的URL与Soroban Futurenet网络进行交互。
network_passphrase:您将使用的密码选择网络。这可以根据您与之交互的网络进行更改;在这种情况下,我们将使用Futurenet。
contract_file_path:您要部署的智能合约文件的路径。用您自己的合同文件路径替换值,或使用GitHub存储库中包含的soroban_hello_world_contract.wasm文件。

使用更改保存Soroban_deploy_contract.py文件,然后使用此命令在命令提示符中运行脚本:

python soroban_deploy_contract.py

Contract Deployed
脚本完成运行后,您将收到合同ID。确保将其保存以备后用。

contract id: 74a28bbf401e0ed625921dc08b565b2179dba548c905594ed4de2565a3b02e78

调用合同

要调用合同,打开soroban_invoke_contract_function.py文件并调整以下参数:

secret = "SDMVWEWUZVYDACEM3G2X2XT4W4BP3OSZHX3KXVOQTJMDIUQQLKAIWK7Z"
rpc_server_url = "https://horizon-futurenet.stellar.cash:443/soroban/rpc"
contract_id = "940985b099a50abf77b8e3a245471d1912f5c1d8502da07128619aa778d90c1f"
network_passphrase = Network.FUTURENET_NETWORK_PASSPHRASE

secret:您将用来调用智能合约的帐户的秘密密钥。 用您自己的帐户秘密密钥替换值。

contract_id:您要调用合同的合同ID。 在部署合同之前收到的合同ID替换值。

tx = (
    TransactionBuilder(source, network_passphrase)
    .set_timeout(300)
    .append_invoke_contract_function_op(
        contract_id=contract_id,
        method="hello",
        parameters=[Symbol("World")],
        source=kp.public_key,
    )
    .build()
)

method:您要调用功能的名称。
parameters:功能所需的任何参数。

使用您的更改保存soroban_invoke_contract_function.py文件,然后使用此命令将脚本运行在命令提示符中:

python soroban_invoke_contract_function.py

Invoke Contract
脚本完成运行后,您将收到结果:

transaction result: ['Hello', 'World']

关闭

在这篇博客文章中,我们介绍了使用Soroban Python SDK部署和调用Soroban Smart Contract的步骤。您可以通过修改脚本来部署或调用其他智能合约。