Open tabaktoni opened 6 months ago
@tabaktoni Can I work on this one after completing #1018 ? :)
Yes ofc, maybe the task will need to be expanded to multiple sub tasks we will need to check how to implement all Cairo int types in the manner of CairoInt. But the initial step (Test current behavior ) can be immediately tackled.
Yes ofc, maybe the task will need to be expanded to multiple sub tasks we will need to check how to implement all Cairo int types in the manner of CairoInt. But the initial step (Test current behavior ) can be immediately tackled.
Got it! I'll start looking into the tests first! Then see how to break this down into subtasks :)
Task will be offered again on the ODHack event https://onlydust.notion.site/ODHack-Common-Guidelines-b9c6b6a4ac4146d087185568aca38a3f
@ivpavici I'm still working on the other issue. So please don't unassign there š I had left a doubt regarding testing earlier. And I'd like to complete it during this week
ok when you are done there we can assign you here if no one else wants to pick it up
Hey! I am from Argentina. I am at the mu. I want to contribute and make this my first issue. Regards!
@lucilapastore good luck!
Could I work on this? @ivpavici
good luck!
Hey @ivpavici , sorry for the delay! I just have a doubt
Doing the serialization manually:
2^{251} + 172^{192} + 1 - 5
I'll receive:
3618502788666131113263695016908177884250476444008934042335404944711319814140 result that will be returned as a felt252
So the idea is to create a unit test that will expect(result).ToBe(361850278866613111......) for i8, i16, i32, i64 and i128?
Implementation needs to be the similar to CairoUint256
In addition to this you need to define and store:
LImits: For each signed variant can store numbers from: $ā(2^{nā1})$ to $2^{nā1}ā1$ inclusive, where n is the number of bits that variant uses. Example: So an i8 can store numbers from $ā(2^7)$ to $2^7ā1$, which equals -128 to 127
felt252 representation in field math notation (one you mentioning)
JSC Representation in ''standard'' math example you provided will return -5
The class will contain all these properties + existing ones as in the uint256 example. Class needs to encode for request -5 to 3618502788... , and decode on response to -5 This needs to be a public class method. From an end-user perspective, it would be used as a normal number -X ... +X, and lib will based on ABI compile it to field math representation.
So to finally answer the question, yes for unit testing you need to test all Class methods as you described, but in e2e test you will expect -5.
Understood, I'll update you soon!
Is your feature request related to a problem? Please describe. https://docs.starknet.io/documentation/architecture_and_concepts/Smart_Contracts/serialization_of_Cairo_types/#data_types_of_252_bits_or_less
Describe the solution you'd like Test current behavior and support required field el calc i8, i16, i32, i64, and i128
Negativ value should be 2^{251} + 172^{192} + 1 + (negative value) ex -5 should serialise to 2^{251} + 172^{192} + 1 - 5