-
Notifications
You must be signed in to change notification settings - Fork 419
Stylus v0.10 #2867
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Draft
anegg0
wants to merge
33
commits into
master
Choose a base branch
from
stylus-v0.1
base: master
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Draft
Stylus v0.10 #2867
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Add lint:markdown:fix to the format script to automatically fix markdown linting issues when running yarn format. This ensures markdown files are both formatted (prettier) and linted (markdownlint) in one command. The new format workflow: 1. Format docs with prettier 2. Format app files with prettier 3. Auto-fix markdown linting issues 4. Verify all files pass prettier check
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
Add detailed documentation for all Stylus SDK primitive types including: - Boolean (bool) with usage examples and Solidity mappings - Unsigned integers (u8-u128, U256, Uint<BITS, LIMBS>) - Signed integers (i8-i128, I256, Signed<BITS, LIMBS>) - Address type with constants and validation examples - String type with literal and formatting examples - Bytes types (dynamic Bytes and fixed FixedBytes<N>) - Hex literal usage examples - Complete type mapping tables for all primitives - Best practices for each primitive type - Type conversion examples Each section includes: - Practical code examples - Solidity type mappings - Storage size information - ABI signature details - Common usage patterns
Add detailed documentation for all Stylus SDK compound types including: - Tuples with destructuring and pattern matching examples - Structs using sol! macro with AbiType derivation - Nested structs for complex data structures - Fixed-size arrays with iteration and operations - Vectors (dynamic arrays) with filter, map, and fold operations - Bytes types (dynamic Bytes and fixed FixedBytes<N>) - Complete type mapping tables for all compound types - Best practices for each compound type - Type conversion helpers and iterator patterns - Common patterns (batch operations, pagination) Each section includes: - Practical code examples from SDK examples - Solidity type mappings - ABI signature details - Memory and gas efficiency considerations - Complete working examples with nested structures - Iterator and functional programming patterns
Add detailed documentation for all Stylus SDK storage types including: - Storage overview and EVM State Trie interoperability - Storage primitives (StorageBool, StorageUint, StorageAddress, FixedBytes) - Integer update operations (wrapping and checked) - Storage collections (StorageVec, StorageArray, StorageMap) - StorageString and StorageBytes for dynamic data - Storage structs with nested structures - Complete type mapping tables - Storage patterns (initialization, counter, access control, registry) - Best practices for storage operations - Storage slots and layout explanation - Complete working token example Each section includes: - Practical code examples from SDK examples - Method signatures and usage patterns - Solidity equivalents and mappings - Gas optimization guidance - Common design patterns - Best practices for efficient storage use
Add comprehensive documentation for Stylus contracts covering: - Contract basics and minimal contract structure - Storage definition with sol_storage! and #[storage] - #[entrypoint] macro and TopLevelStorage trait - #[public] macro for exposing methods - State mutability inference (view, write, pure) - Constructor with #[constructor] attribute - Method attributes: #[payable], #[receive], #[fallback], #[selector] - Trait-based contract composition with #[implements] - Accessing VM context via self.vm() - Events definition and emission with sol! macro - External contract calls with sol_interface! - Call configurations (view, mutating, payable, gas) - Low-level calls (call, static_call, RawCall) - Error handling with SolidityError - Complete ERC-20 example demonstrating all features - Best practices for state mutability, validation, errors, events, access control, gas optimization, CEI pattern, and type-safe interfaces All code examples are based on actual SDK implementation from stylus-sdk-rs repository.
Add comprehensive documentation for global variables and functions accessible via self.vm() in Stylus contracts: - Message context: msg_sender(), msg_value(), msg_reentrant() - Transaction context: tx_origin(), tx_gas_price(), tx_ink_price() - Block context: block_number(), block_timestamp(), block_basefee(), block_coinbase(), block_gas_limit() - Chain context: chain_id() - Account information: contract_address(), balance(), code(), code_size(), code_hash() - Gas and metering: evm_gas_left(), evm_ink_left(), ink_to_gas(), gas_to_ink() - Cryptographic functions: crypto::keccak(), native_keccak256() - Event logging: log(), raw_log() - Storage operations: storage_load_bytes32(), flush_cache() - Memory management: pay_for_memory_grow() Each section includes: - Method signatures - Solidity equivalents - Practical code examples - Important notes and caveats - Arbitrum-specific behavior details Complete example contract demonstrating usage of all major VM methods, plus a summary table of all available methods. All code examples based on actual SDK implementation from stylus-sdk-rs repository.
Add comprehensive documentation for minimal entrypoint contracts covering: - ArbResult type and its usage in contract methods - user_entrypoint function structure and generated code - Router trait implementation and routing logic - TopLevelStorage trait and safety requirements - Step-by-step guide to building contracts without macros - Function selector computation and implementation - Complete working minimal contract example - Comparison with high-level macro approach - Advanced use cases and debugging tips Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
Add comprehensive documentation for Stylus contract activation covering: - Two-step deployment and activation process - WASM compilation and processing pipeline - Deployment bytecode structure and EVM initcode - Activation fee calculation and configuration - ArbWasm precompile interface and functions - cargo-stylus CLI commands and workflows - Constructor support and arguments - Contract lifecycle and expiration management - Code reuse optimization via codehash - Multi-contract deployment patterns - Programmatic deployment examples - Troubleshooting common activation errors - Best practices for production deployment Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
WIP PR:
The proposed temporary structure is the following: