@@ -366,18 +366,18 @@ export class ContractEvaluator extends Logger {
366366 const reader : BinaryReader = new BinaryReader ( data ) ;
367367 const pointer : bigint = reader . readU256 ( ) ;
368368
369- let wasCold : boolean = false ;
369+ let wasWarm : boolean = true ;
370370 let pointerResponse : MemorySlotData < bigint > | undefined = evaluation . getStorage ( pointer ) ;
371371 if ( pointerResponse === undefined ) {
372372 pointerResponse = ( await this . getStorageState ( evaluation , pointer , false ) ) || 0n ;
373373
374374 evaluation . addToStorage ( pointer , pointerResponse ) ;
375- wasCold = true ;
375+ wasWarm = false ;
376376 }
377377
378378 const response : BinaryWriter = new BinaryWriter ( ) ;
379379 response . writeU256 ( pointerResponse ) ;
380- response . writeBoolean ( wasCold ) ;
380+ response . writeBoolean ( wasWarm ) ;
381381
382382 return response . getBuffer ( ) ;
383383 }
@@ -388,9 +388,12 @@ export class ContractEvaluator extends Logger {
388388 const pointer : bigint = reader . readU256 ( ) ;
389389 const value : bigint = reader . readU256 ( ) ;
390390
391+ const pointerResponse : MemorySlotData < bigint > | undefined = evaluation . getStorage ( pointer ) ;
392+ const wasWarm = pointerResponse !== undefined ;
393+
391394 evaluation . setStorage ( pointer , value ) ;
392395
393- return new Uint8Array ( [ 1 ] ) ;
396+ return new Uint8Array ( [ wasWarm ? 1 : 0 ] ) ;
394397 }
395398
396399 /** Call a contract */
0 commit comments