warp
warp copied to clipboard
Update calldata handling
In Warp 2 to handle calldata we created abstractions.
- solidity dynamic arrays where converted into custom structs with a pointer and length
- solidity static arrays where converted into an n size tuple.
- solidity structs where adapted to calldata version.
(1) is actually incompatible with Warp 3. We no longer require a struct to mimic the same behaviour as a solidity array. We should erase any use of such a struct and replace with logic with Cairo 1 arrays: Array<T>
The handler of this issue should take a look into:
- src/cairoUtil/funcGen/calldata/*
- src/passes/externalArgMothifier/dynamicArrayModifier.ts
- src/passes/references/externalReturnReciever.ts
Probably others places as well, but this are a good start to grasp the issue.