Skip to content

Commit c26b027

Browse files
[ETCM-912] Add newly created address to accessedaddresses
1 parent 34c08ed commit c26b027

File tree

2 files changed

+9
-0
lines changed

2 files changed

+9
-0
lines changed

src/main/scala/io/iohk/ethereum/vm/OpCode.scala

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -885,6 +885,7 @@ abstract class CreateOp(code: Int, delta: Int) extends OpCode(code, delta, 1, _.
885885
.withWorld(world2)
886886
.withStack(resultStack)
887887
.withReturnData(returnData)
888+
.addAccessedAddress(newAddress)
888889
.step()
889890

890891
case None =>
@@ -902,6 +903,7 @@ abstract class CreateOp(code: Int, delta: Int) extends OpCode(code, delta, 1, _.
902903
.withMemory(memory1)
903904
.withInternalTxs(internalTx +: result.internalTxs)
904905
.withReturnData(ByteString.empty)
906+
.addAccessedAddress(newAddress)
905907
.step()
906908
}
907909
}

src/test/scala/io/iohk/ethereum/vm/CreateOpcodeSpec.scala

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -248,6 +248,13 @@ class CreateOpcodeSpec extends AnyWordSpec with Matchers with ScalaCheckProperty
248248
"leave return buffer empty" in {
249249
result.stateOut.returnData shouldEqual ByteString.empty
250250
}
251+
252+
"add the new contract to accessed_addresses" in {
253+
result.world.getGuaranteedAccount(newAccountAddress())
254+
val addr = newAccountAddress()
255+
256+
result.stateOut.accessedAddresses should contain (addr)
257+
}
251258
}
252259

253260
"initialization code fails" should {

0 commit comments

Comments
 (0)