As a largest user-facing pallet in FRAME, it depends and relies on many things in Substrate and beyond.
I was improving those things widely:
- from frame_support utilities for dealing with crypto primitives, to re-writing the major macro defining sanboxed secure code execution environment;
- from adding new wasm instrumentation facilities, to porting pallet to 2D weights, finding severe benchmarking-cli bugs along the way;
- from introducing new primitives for working with storage, to enriching pallet’s public interface to meet production-running parachains needs.
New features introduced into the pallet require end-to-end implementation through the whole smart contracts stack. Those are basically
FRAME -> pallet_contracts -> ink! -> polkadotjs | cargo-contract kind of changes, which I was pleased to implement across all the layers involved.
Among my pull requests, I’d like to highlight the following ones:
- Add frame_support::crypto::ecdsa::Public.to_eth_address() (k256-based) and use it in pallets,
- Implement transparent hashing for contract storage,
- define_env! re-write as a proc macro,
- [wasm-instrument] Add new gas metering method: mutable global + local gas function #34,
- Add per local weight for function call #12806,
- make debug_message execution outcome invariant to node debug logging setting #13197,
- Forbid calling back to contracts after switching to runtime #13443,
- Port host functions to Weight V2 and storage deposit limit #13565,
- contracts: switch to wasmi gas metering #14084,
You can read more on the context of this change in this blogpost;
- contracts: switch from parity-wasm-based to wasmi-based module validation #14449.
I fixed a good number of vulnerability issues found in the pallet during thorough security audit. (Albeit those ones can’t be explicitly listed here for security reasons).
Aside from coding contributions, I’m running a couple of validators (you can find their addresses here) for more than a year so far, with no slashes, no chill. Recently I started making fun with launching Yerba experimental smart-contracts parachain, which is a network for YOLO-testing cutting-edge pallet_contracts & ink! features.