teddyjfpender
- 64 skills
- 0 followers
- 6 hours ago last updated
- ▌ Cairo Enums · teddyjfpender bundleExplain Cairo enums, defining variants with data, constructing values, and using Option; use when a request involves enum design, variant syntax, or pattern-matching enum values in Cairo.
- ▌ Cairo Match · teddyjfpender bundleExplain Cairo match expressions, pattern matching on enums, exhaustiveness, and wildcard arms; use when a request involves matching Option/Result or enum values in Cairo.
- ▌ Cairo Panic · teddyjfpender bundleExplain Cairo unrecoverable errors, `panic`, `panic!`, `panic_with_felt252`, `nopanic`, and `panic_with`; use when a request involves panics or panic annotations in Cairo.
- ▌ Cairo Arrays · teddyjfpender bundleExplain Cairo Array usage, ArrayTrait methods, array! macro, Span, and array read/write constraints; use when a request involves creating, updating, reading, or passing arrays in Cairo.
- ▌ Cairo Hashes · teddyjfpender bundleExplain Cairo hashing with Poseidon and Pedersen, Hash/HashState traits, and hashing structs/arrays; use when a request involves computing hashes or deriving Hash in Cairo.
- ▌ Cairo Macros · teddyjfpender bundleExplain Cairo declarative macros, macro hygiene, and macro vs function tradeoffs; use when a request involves writing or understanding `macro` definitions in Cairo.
- ▌ Cairo Quirks · teddyjfpender bundleDocument Cairo language quirks, gotchas, and idiomatic workarounds; use when encountering unexpected compilation errors or behaviors in Cairo that differ from Rust.
- ▌ Cairo Traits · teddyjfpender bundleExplain Cairo traits, impl syntax, default methods, trait bounds, and visibility; use when a request involves defining traits, implementing traits, or resolving trait method availability errors in Cairo.
- ▌ Cairo Oracles · teddyjfpender bundleExplain Cairo oracles for offloading computation in executables, oracle::invoke, and constraints for soundness; use when a request involves experimental oracles or external computation in Cairo.
- ▌
- ▌ Cairo Structs · teddyjfpender bundleExplain how to define and instantiate Cairo structs, field access, mutability, field init shorthand, and update syntax; use when a request involves struct definitions or field-related compile errors in Cairo.
- ▌ Cairo Testing · teddyjfpender bundleExplain how to write and run Cairo tests, including `#[test]`, assert macros, `#[should_panic]`, `#[ignore]`, and `#[available_gas]`; use when a request involves writing or running unit tests in Cairo.
- ▌
- ▌ Cairo Closures · teddyjfpender bundleExplain Cairo closures, syntax, capture rules, type inference, and Fn traits; use when a request involves anonymous functions or passing behavior as a parameter in Cairo.
- ▌ Cairo Comments · teddyjfpender bundleExplain Cairo comment styles and documentation comments (`//`, `///`, `//!`); use when a request involves commenting code, documenting functions/modules, or generating Cairo API docs.
- ▌ Cairo Inlining · teddyjfpender bundleExplain Cairo inlining attributes and performance tradeoffs; use when a request involves
- ▌ Cairo Printing · teddyjfpender bundleExplain Cairo printing and formatting with print!/println!/format!, Display/Debug traits, and Formatter helpers; use when a request involves output formatting or printing custom types in Cairo.
- ▌ Cairo Functions · teddyjfpender bundleExplain Cairo function syntax, parameters, return values, statements vs expressions, and `const fn`; use when a request involves defining or calling functions, return types, or function-related compiler errors in Cairo.
- ▌ Cairo Ownership · teddyjfpender bundleExplain Cairo ownership, moves, Copy/Drop/Destruct traits, and scope-based destruction; use when a request involves use-after-move errors, copying values, or ownership semantics in Cairo.
- ▌ Cairo Components · teddyjfpender bundleExplain Starknet components, embedding into contracts, and component interfaces; use when a request involves reusable contract logic or component-based design in Cairo.
- ▌ Cairo Data Types · teddyjfpender bundleExplain Cairo scalar and compound data types, literals, conversions, and string forms; use when a request asks about Cairo types (felt252, integers, bool, strings, tuples, arrays, unit), type annotations, or conversion errors.
- ▌ Cairo Use Keyword · teddyjfpender bundleExplain Cairo `use` imports, aliases, re-exports, and grouped imports; use when a request involves bringing paths into scope or shortening module paths in Cairo.
- ▌ Cairo Control Flow · teddyjfpender bundleExplain Cairo control flow with `if`, `else`, `loop`, `while`, `for`, `break`, and `continue`; use when a request involves conditionals, loops, or loop return values in Cairo.
- ▌ Cairo Dictionaries · teddyjfpender bundleExplain Cairo Felt252Dict usage, insert/get/entry patterns, and dictionary squashing; use when a request involves key-value storage, dictionary performance, or borrow/ownership rules for dictionaries in Cairo.
- ▌ Cairo Module Paths · teddyjfpender bundleExplain Cairo paths for referring to items in the module tree, including absolute vs relative paths and `super`/`crate`; use when a request involves resolving module path errors in Cairo.
- ▌ Cairo Storage Vecs · teddyjfpender bundleExplain Starknet storage vectors with VecTrait and MutableVecTrait, element addressing, and operations; use when a request involves Vec-based storage in Cairo contracts.
- ▌ Cairo Library Calls · teddyjfpender bundleExplain Starknet library calls that execute code from another class using class hash; use when a request involves library dispatchers, class hashes, or library_call_syscall.
- ▌ Cairo Method Syntax · teddyjfpender bundleExplain Cairo method syntax, traits/impl blocks, `self` parameter forms, and associated functions; use when a request involves defining or calling methods on structs in Cairo.
- ▌ Cairo Modules Scope · teddyjfpender bundleExplain Cairo modules, `mod` declarations, privacy, and scope control; use when a request involves organizing code into modules or resolving visibility errors in Cairo.
- ▌ Cairo Numeric Types · teddyjfpender bundleGuide implementing custom numeric types in Cairo with invariant enforcement, overflow safety, and standard trait implementations; use when implementing fixed-point, signed integers, or other numeric primitives.
- ▌ Cairo Deref Coercion · teddyjfpender bundleExplain Cairo deref coercion with Deref/DerefMut traits and Target associated type; use when a request involves wrapper types, field access through wrappers, or deref behavior in Cairo.
- ▌ Cairo Smart Pointers · teddyjfpender bundleExplain Cairo smart pointers, especially Box types, boxed memory segments, and recursive types; use when a request involves boxing values, avoiding copies, or defining recursive types in Cairo.
- ▌ Cairo Starknet Types · teddyjfpender bundleExplain Starknet-specific types like ContractAddress, StorageAddress, ClassHash, EthAddress, BlockInfo, and TxInfo; use when a request involves these core Starknet types in Cairo.
- ▌ Cairo Upgradeability · teddyjfpender bundleExplain Starknet upgradeability via class hash replacement and proxy patterns; use when a request involves upgrading contract logic or replace_class_syscall.
- ▌ Cairo Contract Events · teddyjfpender bundleExplain Starknet contract events, event enums, and emitting events; use when a request involves defining or emitting events in Cairo.
- ▌ Cairo Generics Traits · teddyjfpender bundleExplain Cairo generics and traits at a high level, including monomorphization and code size impact; use when a request asks why generics/traits reduce duplication, how trait bounds relate to generics, or why contract size increases with generics.
- ▌ Cairo L1 L2 Messaging · teddyjfpender bundleExplain Starknet L1 and L2 messaging, l1_handler functions, and message syscalls; use when a request involves cross layer messaging in Cairo.
- ▌ Cairo Packages Crates · teddyjfpender bundleExplain Cairo packages and crates, Scarb project layout, and crate roots; use when a request involves creating projects or understanding package/crate structure in Cairo.
- ▌ Cairo Structs Example · teddyjfpender bundleExplain the Cairo example program that refactors rectangle area calculations into a struct, including `Into`/`TryInto` conversions; use when a request references the Chapter 5.2 struct example or asks for struct-based refactors.
- ▌ Cairo Associated Items · teddyjfpender bundleExplain Cairo associated items (functions, types, constants, implementations) in traits and impls; use when a request involves associated types, constants, or clarifying trait item placement in Cairo.
- ▌ Cairo Contract Classes · teddyjfpender bundleExplain Starknet contract classes vs instances, class hash, contract deployment, and upgrade patterns; use when a request involves declaring/deploying contracts or understanding class hashes in Cairo.
- ▌ Cairo Contract Storage · teddyjfpender bundleExplain Starknet contract storage layout, the storage struct, Store trait, and read/write access; use when a request involves storage variables or storage layout in Cairo.
- ▌ Cairo If Let While Let · teddyjfpender bundleExplain Cairo `if let` and `while let` concise control flow; use when a request involves matching a single pattern or looping over Option-like values in Cairo.
- ▌ Cairo Storage Mappings · teddyjfpender bundleExplain Starknet storage mappings with Map, hashing of keys, and read/write patterns; use when a request involves mapping-like storage in Cairo.
- ▌ Cairo Component Testing · teddyjfpender bundleExplain how to test Starknet components by embedding them into mock contracts and dispatching calls; use when a request involves unit tests for component logic in Cairo.
- ▌ Cairo Procedural Macros · teddyjfpender bundleExplain Cairo procedural macros implemented in Rust (inline/attribute/derive), project setup, and TokenStream/ProcMacroResult; use when a request involves writing or using procedural macros in Cairo.
- ▌ Cairo Test Organization · teddyjfpender bundleExplain Cairo test organization for unit vs integration tests, tests directory layout, and shared helpers; use when a request involves structuring tests across files or crates in Cairo.
- ▌ Cairo Contract Class Abi · teddyjfpender bundleExplain the Starknet contract class ABI, entry points, selectors, and dispatcher usage; use when a request involves ABI JSON, entry point metadata, or how calldata is encoded for contracts.
- ▌ Cairo Contract Functions · teddyjfpender bundleExplain Starknet contract entry points (external, view, constructor, l1 handler) and ABI configuration; use when a request involves defining or exposing contract functions in Cairo.
- ▌ Cairo Generic Data Types · teddyjfpender bundleExplain Cairo generic data types and syntax for generic functions, structs, enums, methods, and impls; use when a request involves type parameters or generic signatures in Cairo.
- ▌ Cairo Recoverable Errors · teddyjfpender bundleExplain Cairo recoverable errors using `Result`, `ResultTrait`, and the `?` operator; use when a request involves returning, matching, or unwrapping `Result` values in Cairo.
- ▌ Cairo Type Serialization · teddyjfpender bundleExplain Starknet ABI serialization of Cairo types, including arrays, structs, enums, and integers; use when a request involves calldata encoding or Serde behavior.
- ▌ Cairo Arithmetic Circuits · teddyjfpender bundleExplain Cairo arithmetic circuits using core::circuit, gates, CircuitElement, and evaluation; use when a request involves building or evaluating arithmetic circuits in Cairo.
- ▌ Cairo Operator Overloading · teddyjfpender bundleExplain Cairo operator overloading using core::ops traits like Add; use when a request involves redefining operators for custom types in Cairo.
- ▌ Cairo References Snapshots · teddyjfpender bundleExplain Cairo references, snapshots (`@`), `ref` parameters, and desnap (`*`); use when a request involves borrowing, avoiding moves, or mutating data through references in Cairo.
- ▌ Cairo Storage Optimization · teddyjfpender bundleExplain Starknet storage cost optimization, packing values, and bitwise operations; use when a request involves reducing storage slots or implementing packed storage in Cairo.
- ▌ Cairo Variables Mutability · teddyjfpender bundleExplain Cairo variable bindings, immutability, `mut`, constants, and shadowing; use when a request involves variable declaration, reassignment errors, changing types via shadowing, or defining constants in Cairo.
- ▌ Cairo Components Under Hood · teddyjfpender bundleExplain how components are expanded under the hood, including HasComponent and ComponentState; use when a request involves debugging or understanding generated component code in Cairo.
- ▌ Cairo Contract Interactions · teddyjfpender bundleExplain how to call another Starknet contract using dispatcher patterns and interfaces; use when a request involves cross-contract calls, dispatchers, or contract_call_syscall.
- ▌ Cairo Component Dependencies · teddyjfpender bundleExplain component dependency patterns, trait bounds, and dependency access helpers; use when a request involves components that rely on other components in Cairo.
- ▌ Cairo Custom Data Structures · teddyjfpender bundleExplain how to build custom data structures in Cairo using structs, traits, and dictionaries; use when a request involves implementing mutable collections (like a vector) or handling Destruct/Drop with Felt252Dict.
- ▌ Cairo Smart Contract Testing · teddyjfpender bundleExplain how to test Starknet contracts with Foundry tools, deploy and call contracts, and use cheatcodes; use when a request involves contract test setup or testing patterns.
- ▌ Cairo Snforge Troubleshooting · teddyjfpender bundleDiagnose and fix common snforge test errors including Sierra compilation failures, cost computation cycles, and version mismatches; use when tests fail with cryptic errors even though `scarb build` succeeds.
- ▌ Cairo Security Recommendations · teddyjfpender bundleSummarize Starknet smart contract security recommendations and common Cairo pitfalls; use when a request involves best practices, safety checks, or audit guidance.