Skip to main content

Overview

ask! is an Embedded Domain Specific Language (EDSL) to write WebAssembly based smart contracts using typescript.

Unlike solidity, ask! is not a standalone languange but more like a assemblyscript "contract format" with customized @message decorator. Those decorators tell ask! compiler how the smart contract is define and further compiles them to WASM bytecode compatible with Substrate.

Assemblyscirpt#

ask! is subset of Assemblyscrip while Assemblyscript is a subset of Typescript syntax. Currently, a large group of developers are using Typescript since Typescript has relatively low learning curve. Therefore, Patract Labs optmisticly believes with the introduction of ask!, we would see a good growth of contract developers in Substrate.

ask! vs ink!#

languangeask!ink!
eDSLTypescriptrust
annotationdecoratormacro
cliask-clicargo contract
abstractioninheritencetrait
data typesAssemblyScript SCALE CodecParity SCALE Codec

Reports#