1. Home
  2. /
  3. Solana-rust
  4. /
  5. Rust + Solana Increment & Reset

Rust + Solana Increment & Reset - Solana-rust Typing CST Test

Loading…

Rust + Solana Increment & Reset — Solana-rust Code

Solana program in Rust to increment and reset a counter stored in account data.

use borsh::{BorshDeserialize, BorshSerialize};
use solana_program::{account_info::AccountInfo, entrypoint, entrypoint::ProgramResult, msg, pubkey::Pubkey};

#[derive(BorshSerialize, BorshDeserialize, Debug)]
pub struct Counter {
	pub value: u64
}

entrypoint!(process_instruction);
fn process_instruction(_program_id: &Pubkey, _accounts: &[AccountInfo], instruction_data: &[u8]) -> ProgramResult {
	let mut counter = Counter { value: 0 }
	match instruction_data[0] {
		0 => counter.value += 1
		1 => counter.value = 0
		_ => msg!("Unknown instruction")
	}
	msg!("Counter value: {}", counter.value)
	Ok(())
}

Solana-rust Language Guide

Solana Rust is the primary language used to write smart contracts (called programs) on the Solana blockchain. It leverages Rust’s safety and performance features to build high-throughput, low-latency decentralized applications.

Primary Use Cases

  • ▸Building high-performance DeFi protocols
  • ▸NFT minting, marketplaces, and auctions
  • ▸On-chain gaming logic
  • ▸Cross-program interactions on Solana
  • ▸Real-time data feeds and oracles

Notable Features

  • ▸Memory safety via Rust’s ownership model
  • ▸High-performance programs for parallel execution
  • ▸Low-latency transactions
  • ▸Strong type system prevents many bugs
  • ▸BPF compilation for Solana runtime

Origin & Creator

Rust-based smart contracts on Solana were promoted by Solana Labs around 2017-2018, adopting Rust for its safety, concurrency, and performance benefits.

Industrial Note

Solana Rust programs are preferred in projects requiring high TPS (transactions per second), low fees, and efficient on-chain computation like decentralized exchanges, NFT marketplaces, and real-time gaming.

More Solana-rust Typing Exercises

Rust + Solana Minimal Counter ContractRust + Solana Greeting ContractRust + Solana Token Balance ReaderRust + Solana Boolean ToggleRust + Solana Simple Key-Value StoreRust + Solana Increment EventRust + Solana Fixed Supply TokenRust + Solana Greeting With ParameterRust + Solana Conditional Counter

Practice Other Languages

CReactPythonC++RustTypeScriptKotlinPHPJavaC#RubyMqlCqlN1qlCypher