Hi there! This is the third post of the "Deep Dive into Soroban-CLI" series where we'll explore the soroban-cli in depth. Soroban-CLI is a command-line tool for interacting with soroban smart contracts on the Stellar network. Soroban-CLI provides a set of subcommands that can be used to perform various tasks related to smart contract development and deployment on the Stellar network.
In this post i will explaining soroban serve
and soroban events
subcommands.
soroban serve
Subcommand
The soroban serve
subcommand is used to launches a local development server for soroban web app.It's useful for a few reasons:
- Rapid testing - You can quickly test changes to your app's intents, dialogs, etc. by refreshing the browser
- Local work - No need to deploy your app to a staging/production server every time you make a change
- Live reload - The server will automatically reload when you make changes to your app's code, so you see updates immediately
Usage:
soroban serve
It will use port 8000, makes sure no service running on port 8000.
soroban events
Subcommand
The soroban events
subcommand is used to watches for events on a blockchain from a deployed soroban smart contract. It allows you to:
- See your soroban smart contract events on the blockchain.
- Get details about each event like the event name, parameters, and contract hash, ledger.
This is useful for:
- Monitoring your smart contracts activity and usage
- Checking for errors or issues with your smart contracts
- Debugging by watching for specific events
Usage:
soroban events --rpc-url <RPC_URL> --start-ledger <START_LEDGER> --cursor <CURSOR>
Usage Example :
Before we can use the soroban events
command to check events on the network i will demonstrating soroban events contract example from soroban-example github repo. Build that contract using this command :
cargo build --target wasm32-unknown-unknown --release
Then deploy that contract to Futurenet using this command :
$ soroban contract deploy --wasm /workspace/soroban-quest/soroban-examples/target/wasm32-unknown-unknown/release/soroban_events_contract.wasm --rpc-url https://rpc-futurenet.stellar.org:443
success
success
dc1d42101e4daa1f70bc7d79610c59e1e5df17b45aeec3a94904b352bcb39083
Invoke the deployed contract using this command :
$ soroban contract invoke \
> --rpc-url https://rpc-futurenet.stellar.org:443/ \
> --id dc1d42101e4daa1f70bc7d79610c59e1e5df17b45aeec3a94904b352bcb39083 \
> --fn increment
success
1
Last we will see events created by that contract using this command :
$ soroban events --rpc-url https://rpc-futurenet.stellar.org:443/ --start-ger 518086
Event 0002225291275538432-0000000000 [CONTRACT]:
Ledger: 518116 (closed at 2023-03-20T08:11:12Z)
Contract: 0xdc1d42101e4daa1f70bc7d79610c59e1e5df17b45aeec3a94904b352bcb39083
Topics:
Symbol(StringM(COUNTER))
Symbol(StringM(increment))
Value: U32(1)
Latest Ledger: 518127
We should see events from our events contract showing ledger time the contract increment
function invoked, contract hash, parameters used, type and value of COUNTER
, and Latest ledger of the rpc network used.
Conclusion
The soroban serve
subcommand is used to launches a local development server for soroban web app. The soroban events
subcommand is used to watches for events on a blockchain from a deployed soroban smart contract. I will explain the other main subcommands in the next post of this series. Happy Sorobaning!
Top comments (0)