still on rust enums, but couldn't wait to touch solana — built an on-chain voting program with anchor anyway
→ structs + impl methods for poll data → PDAs for one wallet, one vote → 3 tests passing on devnet
deployed. 4qVHFhpSY7eZ54AFG8i4XUA9FA9rLTyLCj2ht4Vgp4jx
#Solana#rust
@IlomsTech19 Great choice man!
I'm still a beginner too and have been consistently learning Rust for Solana development and auditing. Right now I'm focusing on ownership, borrowing, structs, enums, traits, and error handling.
Wishing you the best on your Rust and Solana journey!
just wrapped up my first ever competition on @cantinaxyz
revert finance — stableswap hooks
rank #43 / 773
the payout may be small, but it gave me the boost & confidence that i can actually do this
#web3security#auditor
@Lenny_LoopChain no backend at all,your wallet is your identity. Solana verifies the signature and a PDA derived from your wallet + poll makes double voting impossible on-chain
Spent time on enums in Rust today.
They replace multiple structs with a single, expressive type.
Option<T> stood out—
forces you to handle missing values explicitly.
Encodes state transitions more safely at the type level.
#RustLang
Explored Rust structs and method syntax today 🦀
What stood out is how impl blocks bring data and behavior together with explicit ownership (self, &self, &mut self)
No ->, auto ref, and associated functions (::) keep the design clean
Rust emphasizes clarity and safety
#RustLang
Same pattern.
Different behavior.
That’s all it takes to break security assumptions.
Consistency isn’t just clean design—
it’s a security requirement.
#Web3Security#Audit#SecureDesign
Rust won’t let you print a struct by default.
Not because it can’t—
but because it refuses to guess how your data should be represented.
#[derive(Debug)] isn’t just convenience.
It’s explicit control over visibility.
Even debugging is intentional in Rust.
#RustLang
Stepped into Web3 audits 🛡️
Started my journey on Code4rena as BlockSentry
Participated in QA reviews for Chainlink and LayerZero
A valuable learning experience with real-world exposure
#Web3#Security#BuildInPublic
Easy to miss, hard to ignore:
“Dead” code isn’t always harmless.
Unused functions can still expose critical logic—and if enabled later without validation, they become silent attack surfaces.
Security isn’t about what runs today—
it’s about what can run tomorrow.