Deploying and Invoking Soroban Smart Contract using Soroban Python SDK
In my previous post, I showed you how to set up the Soroban Python SDK on Windows. In this post, we'll use the SDK to deploy and invoke Soroban smart contracts on the Futurenet network.
Preparation
Before we begin, make sure you've downloaded the following files from my GitHub repository:
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
You can download these files here, or you can use any other contract file, but in this case, I'm using Soroban Hello World Smart Contract from here. Additionally, make sure you've created a Futurenet account at Stellar Laboratory and funded it.
Deploying a Contract
To deploy a contract, open the soroban_deploy_contract.py file and adjust the following parameters:
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
: the Secret Key of the Account that we're gonna use to deploy the Smart Contract. Replace the value with your account secret key.
rpc_server_url
: the URL of the RPC server you'll use to interact with the Soroban Futurenet network.
network_passphrase
: the passphrase you'll use to select the network. This can be changed depending on the network you're interacting with; in this case, we'll use Futurenet.
contract_file_path
: the path to the smart contract file you want to deploy. Replace the value with your contract file path, or use thesoroban_hello_world_contract.wasm
file included in the GitHub repository.
Save the soroban_deploy_contract.py
file with your changes and then run the script in a command prompt using this command :
python soroban_deploy_contract.py
Once the script has finished running, you'll receive a contract ID. Be sure to save this for later.
contract id: 74a28bbf401e0ed625921dc08b565b2179dba548c905594ed4de2565a3b02e78
Invoking a Contract
To invoke a contract, open the soroban_invoke_contract_function.py
file and adjust the following parameters:
secret = "SDMVWEWUZVYDACEM3G2X2XT4W4BP3OSZHX3KXVOQTJMDIUQQLKAIWK7Z"
rpc_server_url = "https://horizon-futurenet.stellar.cash:443/soroban/rpc"
contract_id = "940985b099a50abf77b8e3a245471d1912f5c1d8502da07128619aa778d90c1f"
network_passphrase = Network.FUTURENET_NETWORK_PASSPHRASE
secret
: the secret key of the account you'll use to invoke the smart contract. Replace the value with your account secret key.
contract_id
: the contract ID of the contract you want to invoke. Replace the value with the contract ID you received from deploying the contract before
tx = (
TransactionBuilder(source, network_passphrase)
.set_timeout(300)
.append_invoke_contract_function_op(
contract_id=contract_id,
function_name="hello",
parameters=[Symbol("World")],
source=kp.public_key,
)
.build()
)
function_name
: the name of the function you want to invoke.
parameters
: any arguments needed by the function.
Save the soroban_invoke_contract_function.py
file with your changes and then run the script in a command prompt using this command :
python soroban_invoke_contract_function.py
Once the script has finished running, you'll receive a response with the result :
transaction result: ['Hello', 'World']
Closing
In this blog post, we have gone over the steps to Deploy and Invoke Soroban Smart Contract using Soroban Python SDK. You can deploy or invoke other smart contracts by modifying the scripts.
Subscribe to my newsletter
Read articles from Chandra Pratama Ramadhan directly inside your inbox. Subscribe to the newsletter, and don't miss out.
Written by