diff --git a/HIP/hip-26.md b/HIP/hip-26.md
index b237b59de..4ab04556c 100644
--- a/HIP/hip-26.md
+++ b/HIP/hip-26.md
@@ -1,13 +1,12 @@
- hip: 26
- title: Migrate Smart Contract Service EVM to Hyperledger Besu EVM
-- author: Daniel Ivanov (daniel@limechain.tech), Danno Ferrin (
- danno.ferrin@hedera.com)
+- author: Daniel Ivanov (daniel@limechain.tech), Danno Ferrin (danno.ferrin@hedera.com)
- type: Standards
- category: Services
- status: Draft
- created: 16 September 2021
- discussions-to: https://github.com/hashgraph/hedera-improvement-proposal/discussions/140
-- updated: 17 September 2021
+- updated: 11 October 2021
- requires:
- replaces:
- superseded-by:
@@ -136,10 +135,10 @@ enumerated, including the primary new contract.
If a contract was being created and the new contract called `SELFDESTRUCT` in
the initcode we would not mark the `MerkleAccount` `isDeleted` field as true. If
the `SELFDESTRUCT` was called as part of a function call we would mark it as
-true.
+true.
-Now regardless of whether the call to `SELFDESTRUCT` occurred in initcode
-or in a function call the `isDeleted` field is set to true.
+Now regardless of whether the call to `SELFDESTRUCT` occurred in initcode or in
+a function call the `isDeleted` field is set to true.
#### Errors moving from PreCheck errors to Transaction Errors
@@ -216,38 +215,41 @@ from `SELFDESTRUCT` have been completely removed.
#### Table of Gas Cost Changes
-| Operation | Current Hedera | London Cost | HIP-26 Cost |
-| ----------------------------------------------------------------------------------- | ------------------------------------- | --------------------------- | ------------------------ |
-| Code deposit | Floating Hedera Storage Cost per byte | 200 * bytes | Max of Hedera and London |
-| BALANCE
(cold account) | 20 | 2600 | 2600 |
-| BALANCE
(warm account) | 20 | 100 | 100 |
-| EXP | 10 + 10/byte | 10 + 50/byte | 10 + 50/byte |
-| EXTCODECOPY
(cold account) | 20 + Mem | 2600 + Mem | 2600 + Mem |
-| EXTCODECOPY
(warm account) | 20 + Mem | 100 + Mem | 100 + Mem |
-| EXTCODEHASH
(cold account) | 400 | 2600 | 2600 |
-| EXTCODEHASH
(warm account) | 400 | 100 | 100 |
-| EXTCODESIZE
(cold account) | 20 | 2600 | 2600 |
-| EXTCODESIZE
(warm account) | 20 | 100 | 100 |
-| LOG0, LOG1, LOG2,
LOG3, LOG4 | Floating Hedera Ram Cost per byte | 375 + 375*topics + data Mem | Max of London or Hedera |
-| SLOAD
(cold slot) | 50 | 2100 | 2100 |
-| SLOAD
(warm slot) | 50 | 100 | 100 |
-| SSTORE
(new slot) | Floating Hedera Storage Cost per byte | 22,100 | Max of Hedera and London |
-| SSTORE
(existing slot,
cold acccess) | 5,000 | 2,900 | 2,900 |
-| SSTORE
(existing slot,
warm access) | 5,000 | 100 | 100 |
-| SSTORE
refund | All new slot charges | Only transient storage | Only transient storage |
-| CALL, CALLCODE,
DELEGATECALL,
STATICCALL
(cold recipient) | 40 | 2,600 | 2,600 |
-| CALL, CALLCODE,
DELEGATECALL,
STATICCALL
(warm recipient) | 40 | 100 | 100 |
-| CALL, CALLCODE,
DELEGATECALL,
STATICCALL
Hbar/Eth Transfer Surcharge | 9,000 | 9,000 | 9,000 |
-| CALL, CALLCODE,
DELEGATECALL,
STATICCALL
New Account Surcharge | revert | 25,000 | revert |
-| SELFDESTRUCT
(cold beneficiary) | 0 | 2600 | 2600 |
-| SELFDESTRUCT
(warm beneficiary) | 0 | 0 | 0 |
+| Operation | Current Hedera | London Cost | HIP-26 Cost |
+| --------------------------------------------------- | ----------------------------------------: | -------------------------------: | -------------------------------: |
+| Code deposit | Floating Hedera
Storage Cost per byte | 200 * bytes | Max of London
or Hedera |
+| BALANCE
(cold account) | 20 | 2600 | 2600 |
+| BALANCE
(warm account) | 20 | 100 | 100 |
+| EXP | 10 + 10/byte | 10 + 50/byte | 10 + 50/byte |
+| EXTCODECOPY
(cold account) | 20 + Mem | 2600 + Mem | 2600 + Mem |
+| EXTCODECOPY
(warm account) | 20 + Mem | 100 + Mem | 100 + Mem |
+| EXTCODEHASH
(cold account) | 400 | 2600 | 2600 |
+| EXTCODEHASH
(warm account) | 400 | 100 | 100 |
+| EXTCODESIZE
(cold account) | 20 | 2600 | 2600 |
+| EXTCODESIZE
(warm account) | 20 | 100 | 100 |
+| LOG0, LOG1, LOG2,
LOG3, LOG4 | Floating Hedera
Ram Cost per byte | 375 + 375*topics
+ data Mem | Max of London
or Hedera |
+| SLOAD
(cold slot) | 50 | 2100 | 2100 |
+| SLOAD
(warm slot) | 50 | 100 | 100 |
+| SSTORE
(new slot) | Floating Hedera
Storage Cost per byte | 22,100 | Max of London
or Hedera |
+| SSTORE
(existing slot,
cold access) | 5,000 | 2,900 | 2,900 |
+| SSTORE
(existing slot,
warm access) | 5,000 | 100 | 100 |
+| SSTORE
refund | All new
slot charges | Only transient
storage slots | Only transient
storage slots |
+| CALL et al.
(cold recipient) | 40 | 2,600 | 2,600 |
+| CALL et al.
(warm recipient) | 40 | 100 | 100 |
+| CALL et al.
Hbar/Eth Transfer Surcharge | 9,000 | 9,000 | 9,000 |
+| CALL et al.
New Account Surcharge | revert | 25,000 | revert |
+| SELFDESTRUCT
(cold beneficiary) | 0 | 2600 | 2600 |
+| SELFDESTRUCT
(warm beneficiary) | 0 | 0 | 0 |
-The terms 'warm' and 'cold' in the above table correspond with wether the
+The terms 'warm' and 'cold' in the above table correspond with whether the
account or storage slot has been read or written to within the current smart
contract transaction, even if within a child call frame.
+'CALL et al.' includes with limitation CALL, CALLCODE, DELEGATECALL, and
+STATICCALL
+
## Security Implications
Between Besu and EthereumJ there is no material difference in the security
@@ -261,7 +263,8 @@ attack surfaces. The same specifications and Hedera integrations will exist.
## Reference Implementation
-To be done
+Hedera Services
+PR [#2208](https://github.com/hashgraph/hedera-services/pull/2208)
## Rejected Ideas
@@ -290,7 +293,7 @@ Service on the EVM provides the least amount of backwards compatibility issues.
### Eliminating Smart Contract Service Support
Eliminating the EVM as a whole would foreclose future growth of the Hedera
-Platform in the "on-chain" smart contracts arena.
+Platform in the "on-chain" smart contract arena.
## Open Issues