32 releases
0.15.3 | Mar 25, 2024 |
---|---|
0.15.1 | Jan 31, 2024 |
0.14.3 | Aug 25, 2023 |
0.14.2 | Jul 4, 2023 |
0.1.1 | Mar 25, 2020 |
#899 in Magic Beans
1,253 downloads per month
Used in 4 crates
240KB
6K
SLoC
ckb-std
This library contains several modules that help you write CKB contract with Rust.
Usage
Modules
syscalls
module: defines CKB syscallshigh_level
module: defines high level APIsdynamic_loading
module: dynamic loading primitivesdebug!
macro: aprintln!
like macro helps debuggingentry!
macro: defines contract entry pointdefault_alloc!
macro: defines global allocator for no-std rust
Memory allocator
Default allocator uses a mixed allocation strategy:
- Fixed block heap, only allocate fixed size(64B) memory block
- Dynamic memory heap, allocate any size memory block
User can invoke macro with arguments to customize the heap size. The default heap size arguments are:
(fixed heap size 4KB, dynamic heap size 516KB, dynamic heap min memory block 64B)
Use the macro with arguments to change it:
default_alloc!(4 * 1024, 516 * 1024, 64)
Beware, use difference heap size or memory block size may affect the verification result of the contract, some runtime errors such as out of memory may occur; you should always test the contract after customizing.
Examples
Check examples
and tests to learn how to use.
See also ckb-tool which helps you write tests.
Dependencies
~1.4–2.4MB
~55K SLoC