From 437fbde6adfa5811c0b3dc42916d69b765899b3d Mon Sep 17 00:00:00 2001 From: 5chdn <5chdn@users.noreply.github.com> Date: Mon, 16 Apr 2018 00:14:34 +0200 Subject: [PATCH] Split specification alternatives via bytecode vs. codehash --- EIPS/eip-999.md | 29 ++++++++++++++++++++++++----- 1 file changed, 24 insertions(+), 5 deletions(-) diff --git a/EIPS/eip-999.md b/EIPS/eip-999.md index f6fb7217d0721c..424770fd820374 100644 --- a/EIPS/eip-999.md +++ b/EIPS/eip-999.md @@ -37,9 +37,6 @@ EVM semantics and tries to achieve the goal of unfreezing the funds by a single state transition as specified in the next section. ## Specification - -### High-level Overview - The self-destructed contract code at [`0x863DF6BFa4469f3ead0bE8f9F2AAE51c91A907b4`](https://etherscan.io/address/0x863df6bfa4469f3ead0be8f9f2aae51c91a907b4#code) shall be replaced with a patched version of the @@ -72,9 +69,11 @@ Remove the `selfdestruct()` * [parity-contracts/0x863df6bfa4#3](https://github.com/parity-contracts/0x863df6bfa4/pull/3): Initialize the library owner to `0x0` +The following sections propose two equivalent specifications, 999a and 999b, +which technically achieve the same results. To implement this proposal only one +of them has to be applied. -### Direct State Transition - +### Direct State Transition via Bytecode (999a) At `CNSTNTNPL_FORK_BLKNUM`, directly recreate the account `0x863DF6BFa4469f3ead0bE8f9F2AAE51c91A907b4` with the following parameters: @@ -97,6 +96,26 @@ At `CNSTNTNPL_FORK_BLKNUM`, directly recreate the account The balance of the account shall be left unchanged. +### Alternate Specification via Codehash (999b) +At `CNSTNTNPL_FORK_BLKNUM`, directly recreate the account +`0x863DF6BFa4469f3ead0bE8f9F2AAE51c91A907b4` with the following parameters: + +* Nonce: `0x1` +* Storage: + * `0x0000000000000000000000000000000000000000000000000000000000000000`: +`0x0000000000000000000000000000000000000000000000000000000000000001` + * `0x0000000000000000000000000000000000000000000000000000000000000001`: +`0x0000000000000000000000000000000000000000000000000000000000000001` + * `0x0000000000000000000000000000000000000000000000000000000000000004`: +`0x00000000000000000000000000000000000000000000000000000000000044e1` + * `0xa5baec7d73105a3c7298203bb205bbc41b63fa384ae73a6016b890a7ca29ae2d`: +`0x0000000000000000000000000000000000000000000000000000000000000001` + +In addition, the codehash at that address shall be replaced by the codehash at +address `0x21C9E434c669c4d73f55215A6F2130A185E127AC`. The codehash is +`0x6209d55547da7b035d54ef8d73275e863d3072b91da6ace1614fa6381f4e2c09`. The +balance of the account shall be left unchanged. + ## Rationale The design decision to restore the `WalletLibrary` contract code in a single state transition was made after lengthy discussions of