warp
warp copied to clipboard
Warp - Bringing Solidity to Starknet at warp speed. Warp is a Solidity to Cairo Compiler, this allows teams to write/migrate Solidity to Cairo for easy onboarding into the StarkNet ecosystem.
There is an implementation for `CairoBlockFunctionDefinition` nodes in `src/ast/cairoNodes/cairoBlockFunctionDefinition.ts` that is not being used at the moment. Cairo blocks are currently being handled using the documentation of `FunctionDefinition` nodes. Using...
When the name of a Solidity file is a Cairo reserved word, the `Scarb.toml` that is created for the output uses the name of the file as the name of...
This PR is to solve all conflicts from the use of the new InferType class to get node's types. Infer Type and the current way to compute types using e...
Warp memory was introduced due to the lack of mutability in cairo 0. Cairo 1 provides partial mutability. E.g. Arrays are appendable but elements within arrays are immutable. We should...
Cairo 1 supports u8, u16, u32, [...], u256. However it doesn't support u24 for example. We have to add support for all `u(8 * n)` types by implementing them in...
Tests need a major rework, the solution implemented right now is temporary. The changes necessary: - [ ] Use a CLI that provides a machine readable output (e.g. protostar) -...
Currently behavior tests that are not passing are commented on `tests/behaviour/expectations/behaviour.ts` file which also contains the expectations for each test. The suggestion is to create a different file as the...
[`inheritance/constructors/constructors.sol](https://github.com/NethermindEth/warp/blob/develop/tests/behaviour/contracts/inheritance/constructors/constructors.sol) tests result in: ``` Deployed contracts have correct behaviour tests/behaviour/contracts/inheritance/constructors/constructors 1) a 2) b 3) c ✔ d (6312ms) 4 passing (3m) 3 failing 1) Deployed contracts have correct...
Warp compiler (https://github.com/NethermindEth/warp-plugin) should be installed via cargo. The same goes for cairo compiler. `cairo1` directory should be removed
Serialization code should be refactored to use generic functions within https://github.com/NethermindEth/warp/blob/cairo-1.0/warplib/src/warp_memory/accessors.cairo#L95 instead of using conversion functions and then writing to the memory. After refactoring `felt_into_bool` and `bool_into_felt` (https://github.com/NethermindEth/warp/blob/cairo-1.0/warplib/src/conversions/integer_conversions.cairo#LL20C40-L20C40) should be...