@@ -187,21 +187,36 @@ 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 )
201215
202216 # disable opcodes EIP-3670
203217 result [CallCode ] = StackDesc ()
204218 result [SelfDestruct ] = StackDesc ()
219+
205220 # disable opcodes EIP-5450
206221 result [Jump ] = StackDesc ()
207222 result [JumpI ] = StackDesc ()
@@ -220,6 +235,6 @@ const
220235 istanbulStackTable (),
221236 londonStackTable (),
222237 mergeStackTable (),
223- mergeStackTable (),
238+ shanghaiStackTable (),
224239 cancunStackTable (),
225240 ]
0 commit comments