[![MIT License][license-shield]][license-url]
[![Twitter][twitter-shield]][twitter-url]
# hello-soroban-kit

[](https://crates.io/crates/soroban-kit)
`hello-soroban-kit` is a Soroban smart contract demo showcasing the use of all features in `soroban-kit` including `state-machine`, `commitment-scheme`, `circuit-breaker`, `oracle` and `storage`.
`soroban-kit` is designed for compactness, focusing on slim constructs. It is built on Rust's dependency-free `core` library and the `soroban-sdk`. All modules are feature-gated, offering you the flexibility to compile only the components essential for your project.
Take a look at [Litemint Smart Contracts](https://github.com/litemint/litemint-soroban-contracts) to see an integration of the library in real-world smart contracts.
## Commands
1. Building the Contract:
```sh
soroban contract build
```
2. Running Tests:
```sh
cargo test -- --nocapture
```
3. Deploying to Testnet:
```sh
soroban contract deploy --wasm target/wasm32-unknown-unknown/release/hello_soroban_kit.wasm --rpc-url https://soroban-testnet.stellar.org:443 --network-passphrase "Test SDF Network ; September 2015" --source ACCOUNT
```
```sh
output > CONTRACT_ID
```
4. Invoking the contract:
Just say hello with storage type-safety!
```sh
soroban contract invoke --id CONTRACT_ID --source ACCOUNT --rpc-url https://soroban-testnet.stellar.org:443 --network-passphrase "Test SDF Network ; September 2015" -- hello --newcomer TESTER
```
```sh
output > ["Hello","TESTER"]
```
Play rock paper scissors!
```sh
soroban contract invoke --id CONTRACT_ID --source ACCOUNT --rpc-url https://soroban-testnet.stellar.org:443 --network-passphrase "Test SDF Network ; September 2015" -- rock_paper_scissors
```
```sh
output > "Success"
```
Flip the switch on a circuit!
```sh
soroban contract invoke --id CONTRACT_ID --source ACCOUNT --rpc-url https://soroban-testnet.stellar.org:443 --network-passphrase "Test SDF Network ; September 2015" -- circuit_breaker
```
```sh
output > "Success"
```
5. Check out [lib.rs](src/lib.rs) and [test.rs](src/test.rs) for detailed integration examples.
## Contributing
Contributions are welcome! If you have a suggestion that would make this better, please fork the repo and create a pull request.
## License
`soroban-kit` is licensed under the MIT License. See [LICENSE](LICENSE) for more details.
## Contact
For inquiries or collaborations:
Fred Kyung-jin Rezeau - [@FredericRezeau](https://twitter.com/fredericrezeau)
[license-shield]: https://img.shields.io/github/license/FredericRezeau/soroban-kit.svg?style=for-the-badge
[license-url]: https://github.com/FredericRezeau/soroban-kit/blob/master/LICENSE
[twitter-shield]: https://img.shields.io/badge/-Twitter-black.svg?style=for-the-badge&logo=twitter&colorB=555
[twitter-url]: https://twitter.com/fredericrezeau