# Deso Rust SDK A Rust SDK for interacting with the Deso blockchain. This library allows you to create posts, NFTs, and messages on the Deso network. ## Overview The Deso Rust SDK provides a set of utilities to interact with the Deso blockchain, enabling developers to easily perform various blockchain operations, such as creating posts, NFTs, and messages. ## Features - **Create Posts:** Publish new posts on the Deso blockchain. - **Create Comments:** Publish new comments on a post ## Create a New Post To create a new post on the Deso blockchain, follow these steps: 1. **Build the Deso account**: Use the `DesoAccountBuilder` to create your account. ```rust let deso_account = DesoAccountBuilder::new() .public_key(deso_account) .seed_hex_key(deso_private_key) .build() .unwrap(); ``` 2. **Create extra data for the post**: Prepare any additional data you want to include in the post. ```rust let mut extra_data_map: HashMap = HashMap::new(); extra_data_map.insert(String::from("nft_type"), String::from("AUTHOR")); ``` 3. **Build the post data**: Use the `SubmitPostDataBuilder` to create the post data. ```rust let post_data = SubmitPostDataBuilder::new() .body(String::from("Testing the new deso rust library by @Spatium!")) .public_key(deso_account.public_key.clone()) .extra_data(extra_data_map) .build() .unwrap(); ``` 4. **Create the post**: Call the `create_post` function with the prepared data. ```rust let post_transaction_json = deso_sdk::create_post(&deso_account, &post_data).await.unwrap(); println!("Post created with hash: {:?}", post_transaction_json.post_entry_response.post_hash_hex); ``` ## Create a Comment on a Post To create a comment on an existing post, follow these steps: 1. **Build the Deso account**: Use the `DesoAccountBuilder` to create your account. ```rust let deso_account = DesoAccountBuilder::new() .public_key(deso_account) .seed_hex_key(deso_private_key) .build() .unwrap(); ``` 2. **Prepare the post hash hex**: Obtain the hash of the post you want to comment on. ```rust let post_hash_hex = "existing_post_hash_hex".to_string(); ``` 3. **Build the comment data**: Use the `SubmitPostDataBuilder` to create the comment data. ```rust let comment_post_data = SubmitPostDataBuilder::new() .body(String::from("cool comment bro")) .public_key(deso_account.public_key.clone()) .parent_post_hash_hex(post_hash_hex) .build() .unwrap(); ``` 4. **Create the comment**: Call the `create_post` function with the prepared data. ```rust let comment_transaction_json = deso_sdk::create_post(&deso_account, &comment_post_data).await.unwrap(); println!("Comment created with hash: {:?}", comment_transaction_json.post_entry_response.post_hash_hex); ``` ## To-Do List - [x] Create Post - [ ] Create NFT - [ ] Create Message ## Contributing Contributions are welcome! Please open an issue or submit a pull request. ## License This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.