@@ -2,7 +2,7 @@ use crate::{
2
2
error,
3
3
starknet:: { ArrayAbi , U256 } ,
4
4
types:: TypeBuilder ,
5
- values:: JitValue ,
5
+ values:: Value ,
6
6
} ;
7
7
use bumpalo:: Bump ;
8
8
use cairo_lang_sierra:: {
@@ -28,7 +28,7 @@ pub trait AbiArgument {
28
28
/// A wrapper that implements `AbiArgument` for `JitValue`s. It contains all the required stuff to
29
29
/// serialize all possible `JitValue`s.
30
30
pub struct JitValueWithInfoWrapper < ' a > {
31
- pub value : & ' a JitValue ,
31
+ pub value : & ' a Value ,
32
32
pub type_id : & ' a ConcreteTypeId ,
33
33
pub info : & ' a CoreTypeConcrete ,
34
34
@@ -39,7 +39,7 @@ pub struct JitValueWithInfoWrapper<'a> {
39
39
impl < ' a > JitValueWithInfoWrapper < ' a > {
40
40
fn map < ' b > (
41
41
& ' b self ,
42
- value : & ' b JitValue ,
42
+ value : & ' b Value ,
43
43
type_id : & ' b ConcreteTypeId ,
44
44
) -> Result < JitValueWithInfoWrapper < ' b > , error:: Error >
45
45
where
@@ -71,7 +71,7 @@ impl<'a> AbiArgument for JitValueWithInfoWrapper<'a> {
71
71
heap_ptr. to_bytes ( buffer) ?;
72
72
}
73
73
( value, CoreTypeConcrete :: Nullable ( info) ) => {
74
- if matches ! ( value, JitValue :: Null ) {
74
+ if matches ! ( value, Value :: Null ) {
75
75
null :: < ( ) > ( ) . to_bytes ( buffer) ?;
76
76
} else {
77
77
let ptr = value. to_jit ( self . arena , self . registry , self . type_id ) ?;
@@ -90,7 +90,7 @@ impl<'a> AbiArgument for JitValueWithInfoWrapper<'a> {
90
90
self . map ( value, & info. ty ) ?. to_bytes ( buffer) ?
91
91
}
92
92
93
- ( JitValue :: Array ( _) , CoreTypeConcrete :: Array ( _) ) => {
93
+ ( Value :: Array ( _) , CoreTypeConcrete :: Array ( _) ) => {
94
94
// TODO: Assert that `info.ty` matches all the values' types.
95
95
96
96
let abi_ptr = self . value . to_jit ( self . arena , self . registry , self . type_id ) ?;
@@ -101,19 +101,19 @@ impl<'a> AbiArgument for JitValueWithInfoWrapper<'a> {
101
101
abi. until . to_bytes ( buffer) ?;
102
102
abi. capacity . to_bytes ( buffer) ?;
103
103
}
104
- ( JitValue :: BoundedInt { .. } , CoreTypeConcrete :: BoundedInt ( _) ) => todo ! ( ) ,
105
- ( JitValue :: Bytes31 ( value) , CoreTypeConcrete :: Bytes31 ( _) ) => value. to_bytes ( buffer) ?,
106
- ( JitValue :: EcPoint ( x, y) , CoreTypeConcrete :: EcPoint ( _) ) => {
104
+ ( Value :: BoundedInt { .. } , CoreTypeConcrete :: BoundedInt ( _) ) => todo ! ( ) ,
105
+ ( Value :: Bytes31 ( value) , CoreTypeConcrete :: Bytes31 ( _) ) => value. to_bytes ( buffer) ?,
106
+ ( Value :: EcPoint ( x, y) , CoreTypeConcrete :: EcPoint ( _) ) => {
107
107
x. to_bytes ( buffer) ?;
108
108
y. to_bytes ( buffer) ?;
109
109
}
110
- ( JitValue :: EcState ( x, y, x0, y0) , CoreTypeConcrete :: EcState ( _) ) => {
110
+ ( Value :: EcState ( x, y, x0, y0) , CoreTypeConcrete :: EcState ( _) ) => {
111
111
x. to_bytes ( buffer) ?;
112
112
y. to_bytes ( buffer) ?;
113
113
x0. to_bytes ( buffer) ?;
114
114
y0. to_bytes ( buffer) ?;
115
115
}
116
- ( JitValue :: Enum { tag, value, .. } , CoreTypeConcrete :: Enum ( info) ) => {
116
+ ( Value :: Enum { tag, value, .. } , CoreTypeConcrete :: Enum ( info) ) => {
117
117
if self . info . is_memory_allocated ( self . registry ) ? {
118
118
let abi_ptr = self . value . to_jit ( self . arena , self . registry , self . type_id ) ?;
119
119
@@ -129,7 +129,7 @@ impl<'a> AbiArgument for JitValueWithInfoWrapper<'a> {
129
129
}
130
130
}
131
131
(
132
- JitValue :: Felt252 ( value) ,
132
+ Value :: Felt252 ( value) ,
133
133
CoreTypeConcrete :: Felt252 ( _)
134
134
| CoreTypeConcrete :: StarkNet (
135
135
StarkNetTypeConcrete :: ClassHash ( _)
@@ -138,7 +138,7 @@ impl<'a> AbiArgument for JitValueWithInfoWrapper<'a> {
138
138
| StarkNetTypeConcrete :: StorageBaseAddress ( _) ,
139
139
) ,
140
140
) => value. to_bytes ( buffer) ?,
141
- ( JitValue :: Felt252Dict { .. } , CoreTypeConcrete :: Felt252Dict ( _) ) => {
141
+ ( Value :: Felt252Dict { .. } , CoreTypeConcrete :: Felt252Dict ( _) ) => {
142
142
#[ cfg( not( feature = "with-runtime" ) ) ]
143
143
unimplemented ! ( "enable the `with-runtime` feature to use felt252 dicts" ) ;
144
144
@@ -150,13 +150,13 @@ impl<'a> AbiArgument for JitValueWithInfoWrapper<'a> {
150
150
. to_bytes ( buffer) ?
151
151
}
152
152
(
153
- JitValue :: Secp256K1Point { x, y } ,
153
+ Value :: Secp256K1Point { x, y } ,
154
154
CoreTypeConcrete :: StarkNet ( StarkNetTypeConcrete :: Secp256Point (
155
155
Secp256PointTypeConcrete :: K1 ( _) ,
156
156
) ) ,
157
157
)
158
158
| (
159
- JitValue :: Secp256R1Point { x, y } ,
159
+ Value :: Secp256R1Point { x, y } ,
160
160
CoreTypeConcrete :: StarkNet ( StarkNetTypeConcrete :: Secp256Point (
161
161
Secp256PointTypeConcrete :: R1 ( _) ,
162
162
) ) ,
@@ -167,23 +167,23 @@ impl<'a> AbiArgument for JitValueWithInfoWrapper<'a> {
167
167
x. to_bytes ( buffer) ?;
168
168
y. to_bytes ( buffer) ?;
169
169
}
170
- ( JitValue :: Sint128 ( value) , CoreTypeConcrete :: Sint128 ( _) ) => value. to_bytes ( buffer) ?,
171
- ( JitValue :: Sint16 ( value) , CoreTypeConcrete :: Sint16 ( _) ) => value. to_bytes ( buffer) ?,
172
- ( JitValue :: Sint32 ( value) , CoreTypeConcrete :: Sint32 ( _) ) => value. to_bytes ( buffer) ?,
173
- ( JitValue :: Sint64 ( value) , CoreTypeConcrete :: Sint64 ( _) ) => value. to_bytes ( buffer) ?,
174
- ( JitValue :: Sint8 ( value) , CoreTypeConcrete :: Sint8 ( _) ) => value. to_bytes ( buffer) ?,
175
- ( JitValue :: Struct { fields, .. } , CoreTypeConcrete :: Struct ( info) ) => {
170
+ ( Value :: Sint128 ( value) , CoreTypeConcrete :: Sint128 ( _) ) => value. to_bytes ( buffer) ?,
171
+ ( Value :: Sint16 ( value) , CoreTypeConcrete :: Sint16 ( _) ) => value. to_bytes ( buffer) ?,
172
+ ( Value :: Sint32 ( value) , CoreTypeConcrete :: Sint32 ( _) ) => value. to_bytes ( buffer) ?,
173
+ ( Value :: Sint64 ( value) , CoreTypeConcrete :: Sint64 ( _) ) => value. to_bytes ( buffer) ?,
174
+ ( Value :: Sint8 ( value) , CoreTypeConcrete :: Sint8 ( _) ) => value. to_bytes ( buffer) ?,
175
+ ( Value :: Struct { fields, .. } , CoreTypeConcrete :: Struct ( info) ) => {
176
176
fields
177
177
. iter ( )
178
178
. zip ( & info. members )
179
179
. map ( |( value, type_id) | self . map ( value, type_id) )
180
180
. try_for_each ( |wrapper| wrapper?. to_bytes ( buffer) ) ?;
181
181
}
182
- ( JitValue :: Uint128 ( value) , CoreTypeConcrete :: Uint128 ( _) ) => value. to_bytes ( buffer) ?,
183
- ( JitValue :: Uint16 ( value) , CoreTypeConcrete :: Uint16 ( _) ) => value. to_bytes ( buffer) ?,
184
- ( JitValue :: Uint32 ( value) , CoreTypeConcrete :: Uint32 ( _) ) => value. to_bytes ( buffer) ?,
185
- ( JitValue :: Uint64 ( value) , CoreTypeConcrete :: Uint64 ( _) ) => value. to_bytes ( buffer) ?,
186
- ( JitValue :: Uint8 ( value) , CoreTypeConcrete :: Uint8 ( _) ) => value. to_bytes ( buffer) ?,
182
+ ( Value :: Uint128 ( value) , CoreTypeConcrete :: Uint128 ( _) ) => value. to_bytes ( buffer) ?,
183
+ ( Value :: Uint16 ( value) , CoreTypeConcrete :: Uint16 ( _) ) => value. to_bytes ( buffer) ?,
184
+ ( Value :: Uint32 ( value) , CoreTypeConcrete :: Uint32 ( _) ) => value. to_bytes ( buffer) ?,
185
+ ( Value :: Uint64 ( value) , CoreTypeConcrete :: Uint64 ( _) ) => value. to_bytes ( buffer) ?,
186
+ ( Value :: Uint8 ( value) , CoreTypeConcrete :: Uint8 ( _) ) => value. to_bytes ( buffer) ?,
187
187
_ => todo ! (
188
188
"abi argument unimplemented for ({:?}, {:?})" ,
189
189
self . value,
0 commit comments