# Polkadot Fellowship membership proposal My name is Alexander (Sasha) Gryaznov ([@agryaznov](https://github.com/agryaznov)), I’ve been working on Substrate's [**pallet_contracts**](https://paritytech.github.io/polkadot-sdk/master/pallet_contracts/index.html) and related stuff since February 2022 at Parity. As a largest user-facing pallet in [*FRAME*](https://paritytech.github.io/polkadot-sdk/master/frame/index.html), it depends and relies on many things in Substrate and beyond. I was improving those things here and there: + from [*frame_support*](https://paritytech.github.io/polkadot-sdk/master/frame_support/index.html) utilities for dealing with [crypto primitives](https://paritytech.github.io/polkadot-sdk/master/frame_support/crypto/ecdsa/index.html), to re-writing the [major macro](https://paritytech.github.io/polkadot-sdk/master/pallet_contracts_proc_macro/attr.define_env.html) defining sanboxed secure code execution environment; + from adding new wasm [instrumentation facilities](https://docs.rs/wasm-instrument/0.4.0/wasm_instrument/gas_metering/mutable_global/index.html), to porting pallet to 2D weights, finding severe benchmarking-cli [bugs](https://github.com/paritytech/substrate/pull/13766) along the way; + from introducing new primitives for working with storage, to enriching pallet’s [public interface](https://paritytech.github.io/polkadot-sdk/master/pallet_contracts/api_doc/trait.Current.html) 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. ## Pull Requests You can find my commits to **polkadot-sdk** [here](https://github.com/paritytech/polkadot-sdk/commits?author=agryaznov), and to **ink!** [here](https://github.com/paritytech/ink/commits?author=agryaznov). 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](https://github.com/paritytech/substrate/pull/11087), - [Implement transparent hashing for contract storage](https://github.com/paritytech/substrate/pull/11501), - [define_env! re-write as a proc macro](https://github.com/paritytech/substrate/pull/11888), - [[wasm-instrument] Add new gas metering method: mutable global + local gas function #34](https://github.com/paritytech/wasm-instrument/pull/34), - [Add per local weight for function call #12806](https://github.com/paritytech/substrate/pull/12806), - [make debug_message execution outcome invariant to node debug logging setting #13197](https://github.com/paritytech/substrate/pull/13197), - [Forbid calling back to contracts after switching to runtime #13443](https://github.com/paritytech/substrate/pull/13443), - [Port host functions to Weight V2 and storage deposit limit #13565](https://github.com/paritytech/substrate/pull/13565), - [contracts: switch to wasmi gas metering #14084](https://github.com/paritytech/substrate/pull/14084), You can read more on the context of this change in [this blogpost](https://agryaznov.com/posts/wasm-gas-metering/); - [contracts: switch from parity-wasm-based to wasmi-based module validation #14449](https://github.com/paritytech/substrate/pull/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)_. ## Network Involvement Aside from coding contributions, I’m running a couple of validators (you can find their addresses [here](https://agryaznov.com/about/#my-validators)) for more than a year so far, with no slashes, no chill. Recently I started making fun with launching [**Yerba**](https://polkadot.js.org/apps/?rpc=wss%3A%2F%2Frpc.dev.yerba.network#/explorer) experimental smart-contracts parachain, which is a network for *YOLO-testing* cutting-edge **pallet_contracts** & **ink!** features. ### Blog Time to time I publish articles concerning Polkadot-related tech to [**my blog**](https://agryaznov.com/). _(The first such post [was made](https://agryaznov.com/posts/2019-05-06-sub-0-highlights/) in *May 2019*)_. --- With that being said, I would like to apply for Rank 2. My Polkadot address is: `14DDofWN1JuYK6BTVrCwgqy2AvNr3izFA1BSr9RAdJQPXBbC`. Email: hi@agryaznov.com. Cheers!