Slang is a modular Solidity compiler tooling library that provides a declarative Query API for pattern matching in Solidity Abstract Syntax Trees (ASTs). This document covers all the expressions and patterns that can be used with the Slang Query API.
Note: All node types and examples in this documentation have been verified against the Slang v1.2.0 version to ensure accuracy.
Aelin is a permissionless multi-chain protocol for capital raises and OTC deals. Through Aelin, protocols can use their communities to access funding. We are community-driven and welcome all contributions. Our goal is to provide a constructive, respectful, and enjoyable environment for collaboration. If you'd like to help out, join the Aelin devDAO on our #TBD Discord channel.
In order to maintain a simple and straightforward process for contributing to the Aelin UI, this document serves to establish standards and guidelines for the structure of the codebase and the interaction between various components. By adhering to these guidelines, devDAO contributors can ensure consistency and coherence throughout the project, facilitating collaboration and making it easier to maintain and scale the UI.
| cannot estimate gas; transaction may fail or may require manual gas limit [ See: https://links.ethers.org/v5-errors-UNPREDICTABLE_GAS_LIMIT ] (error={"code":-32000,"message":"execution reverted"}, method="estimateGas", transaction={"from":"0xa834e550B45B4a469a05B846fb637bfcB12e3Df8","maxPriorityFeePerGas":{"type":"BigNumber","hex":"0x59682f00"},"maxFeePerGas":{"type":"BigNumber","hex":"0x0a67c31e2b"},"to":"0x3319cC75c43D7757Cb114b18500DE6cfaC800F65","data":"0x066e327000000000000000000000000000000000000000000000000000000000000001400000000000000000000000000000000000000000000000022b1c8c1227a000000000000000000000000000000000000000000000000000001bc16d674ec80000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000007080000000000000000000000000000000000000000000000000000000000000708000000000000000000000000000000000000000000000000000000000000070800000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000 |
| const deepFlatten = function(arr) { | |
| const flatten = function(arr) { | |
| return [].concat(...arr) | |
| } | |
| return flatten( // return shalowly flattened array | |
| arr.map(x=> // with each x in array | |
| Array.isArray(x) // is x an array? | |
| ? deepFlatten(x) // if yes, return deeply flattened x | |
| : x // if no, return just x | |
| ) |