Subscript
Subscript: Substrate smart contact written in AssemblyScript
- Proposer: synote
- Payment Address: bc1qzv5ljrt0sngjjnn25s4jzsu7qtts5d74cq8tz5
Project Overview 📄​
We are intergrating AssemblyScript into substrate smart contract which is similar to parity's ink. It involve buillding substrate contract runtime api, builtin modules, and development sdk. we name the language and sdk as Subscript
.
Overview​
Subscript is a smart contract language written in AssemblyScript for substrate based chain. We will provide essential substrate api and builtin tools to support contract development.
Similar to parity ink, Subscript
is built on top of AssemblyScript and follow all AssemblyScript syntax. Subscript is more like a development kit with some builtin module and tools. As assemblyscript is easy to interact with TypeScript and JavaScript, Subscript
is much more friendly for dapp developers.
Project Details​
Subscript is designed as standard AssemblyScript with builtin contract api. First of all, Subscript
libray will provide basic contract
pallet runtime api access.
- contract runtime envionment
- contract
memory
management - state storage access, set and get value by key.
event
data generation and storage
The Subscript
library also add support for contract interaction utilties, including:
- contract metadata generator
- basic data structure: dynimic array, map, list,
- user struct storage layout
account
andbalance
interface- contract call abstraction
- builtin utility fuctions
The package will provide contract template and intergation tool with substrate node.
There is no plan for EVM Pallet
support.
Ecosystem Fit​
Some of the function of Subscript
are similar to LimeChain's work of AssemblyScript Runtime, but they are made for different scenario. LimeChain AssemblyScript Runtime focus on building substrate runtime with wasm compiled from AssemblyScript. It involves building all the substrate runtime environment entry with AssemblyScript and other basic library. Subscript
aims to implement all the substrate smart contract low level interface with AssemblyScript. Subscript
also add support for basic contract lib and project template for easy development. We may benefit previous work from LimeChain such as SCALE
codec, runtime entry implemention.
Team 👥​
Team members​
- Symon Ho: Fullstack developer Leading consensus R&D and engineering in multichain system. Prior to that, developer of openstack project, engaged in performance tools and monitoring system for cloud platform.
- Ice Min: 10+ years experience in c/c++ development, real time database products and digital currency transaction platform products expert. Developer of BitCoin and Ethereum wallet.
Team Website​
Team's experience​
We implemented the fruitchain consensus integrated with ethereum, and used pbft to provide finalization in blockchain system. Fruitchain mainnet launched in 2019 and privide 500+ TPS for transaction validation.
We alse engaged in smart contract tools interaged with vyper for contract audit and testing.
Team Code Repos​
Development Roadmap 🔩​
We only provide milestone1 here for contract runtime api implementation. Full milestones are list in the general grant repo