@@ -187,21 +187,39 @@ proc mergeStackTable(): StackTable {.compileTime.} =
187187 result = londonStackTable ()
188188 result [PrevRandao ] = sp (0 , 1 )
189189
190- proc cancunStackTable (): StackTable {.compileTime .} =
190+ proc shanghaiStackTable (): StackTable {.compileTime .} =
191191 result = mergeStackTable ()
192+ # new opcodes EIP-3855
193+ result [Push0 ] = sp (0 , 1 )
194+
195+ proc cancunStackTable (): StackTable {.compileTime .} =
196+ result = shanghaiStackTable ()
197+ # new opcodes EIP-4844
198+ result [BlobHash ] = sp (1 , 1 )
199+
200+ # new opcodes EIP-1153
201+ result [TLoad ] = sp (1 , 1 )
202+ result [TStore ] = sp (2 , 0 )
203+
204+ # new opcodes EIP-5656
205+ result [Mcopy ] = sp (3 , 0 )
206+
192207 # new opcodes EIP-4200
193208 result [Rjump ] = sp (0 , 0 )
194209 result [RJumpI ] = sp (1 , 0 )
195210 result [RJumpV ] = sp (1 , 0 )
211+
196212 # new opcodes EIP-4750
197213 result [CallF ] = sp (0 , 0 )
198214 result [RetF ] = sp (0 , 0 )
199- # new opcodes EIP-3855
200- result [Push0 ] = sp (0 , 1 )
215+
216+ # new opcodes EIP-7516
217+ result [BlobBaseFee ] = sp (1 , 1 )
201218
202219 # disable opcodes EIP-3670
203220 result [CallCode ] = StackDesc ()
204221 result [SelfDestruct ] = StackDesc ()
222+
205223 # disable opcodes EIP-5450
206224 result [Jump ] = StackDesc ()
207225 result [JumpI ] = StackDesc ()
@@ -220,6 +238,6 @@ const
220238 istanbulStackTable (),
221239 londonStackTable (),
222240 mergeStackTable (),
223- mergeStackTable (),
241+ shanghaiStackTable (),
224242 cancunStackTable (),
225243 ]
0 commit comments