solang
solang copied to clipboard
Solidity Compiler for Solana and Polkadot
The `Instr::AssertFailure` is utilized throughout codegen to stop execution when something invalid happens. We do not display any useful message for the developer about why the code stopped working. The...
Helps with compile times by removing dependency on lalrpop and build script when using `solang-parser` from crates.io. Downside is this is 2MB in tree, but this shouldn't be that big...
My IDE points 320 places with repeated code. I am selecting the glaring ones and opening issues. Here are 12 of them (more to come in other issues). 1. https://github.com/hyperledger/solang/blob/77d78369fafc2948f7ce26abcfff86edc18de144/src/sema/expression/assign.rs#L126-L137...
Found a case where Solang (latest commit on `main`) generates invalid code, failing an LLVM assertion. [Code is from here](https://github.com/adlerjohn/inflate-sol/blob/master/contracts/InflateLib.sol) but I extracted a minimal reproducer below which is enough...
While working on the tornado integration test, I came across this Solidity implementation. It was so slow that it wasn't even usable: It broke the merkle tree implementation for heights...
Allow the following: contract A { // Take raw calldata as argument and return return data fallback(bytes calldata input) external payable (bytes memory) {} } Allow a function to be...
**Describe the bug** We are unable to correctly finalize the call to the Orca whirlpool program fork after we have obtained the whirlpool interface via the `solang idl whirlpool.json` command....
The following code is a simplified/minimized version of [OpenZeppelin's ERC721 contract](https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/token/ERC721/ERC721.sol): ```solidity // SPDX-License-Identifier: MIT // OpenZeppelin Contracts (last updated v4.9.0) (token/ERC721/ERC721.sol) pragma solidity ^0.8.19; interface IERC165 { function supportsInterface(bytes4...
- [x] https://github.com/hyperledger/solang/pull/1254 - [x] It should be possible to pass AccountMetas to constructors. This entails refactoring `Instr::Constructor` for Solana and maybe unify it with `Instr::ExternalCall`. #1271 - [x] `@payer`...