xermicus
xermicus
Input files can be compiled in parallel. * Implement this for `solang compile` * Occurances of `parallel solang compile` in our CI jobs are no longer needed
`cargo contract` offers some handy tools for uploading, instantiating and calling a contract after successful compilation. For development and testing purposes, this CLI interface is way more efficient and convenient...
Found it. https://github.com/paritytech/cargo-contract/blob/ce9afac78eb76aa1c78998e08861764619f5e8ff/crates/transcode/src/lib.rs#LL293C9-L293C50 This file strips one `Compact` where solang generated event doesn't have. If we manually prepend one into the Event.data field, the decoding will success. _Originally posted by...
Right now we can not display file notes if the error originates in a builtin. Example: ```solidity import "substrate"; contract Foo { function chain_extension() public pure {} } ``` Results...
**Describe the bug** The following snip causes an infinite recursion in emit: ```solidity struct S { int256 f1; S[] f2; } // FIXME (stack overrun in emit): function foo(S memory...
I started [fuzzing solang](https://github.com/xermicus/fuzzy-sol). The first thing was to just download some collection of contracts and feed them into solang without any modifications (after deduplication yields ~80'000 contracts), which led...
As per our docs: > An ink! message with a `&self` receiver may only read state whereas an ink! message with a `&mut self` receiver may mutate the contract's storage....
As per the [docs](https://use.ink/ink-vs-solidity#errors-and-returning), returning an `Err` from a message will _always_ revert the contract execution. Now that makes me wondering as to why `ink!` contracts always return a `MessageResult`,...
As documented [here](https://docs.soliditylang.org/en/v0.8.19/contracts.html#libraries). There are a number of things to consider, notably: - "if library functions are called, their code is executed in the context of the calling contract" -...
Currently, we only provide a `Mapping`. However, storing things in a Vector (Array) on contract storage is also as thing our users need. Using the rust `Vec` from the prelude...