diff --git a/ethereum/core/src/main/java/tech/pegasys/pantheon/ethereum/core/Address.java b/ethereum/core/src/main/java/tech/pegasys/pantheon/ethereum/core/Address.java index 7f4cbe161d..877c19f534 100644 --- a/ethereum/core/src/main/java/tech/pegasys/pantheon/ethereum/core/Address.java +++ b/ethereum/core/src/main/java/tech/pegasys/pantheon/ethereum/core/Address.java @@ -132,15 +132,13 @@ public static Address contractAddress(final Address senderAddress, final long no /** * Address of the created private contract. * - *

This implement equation (86) in Section 7 of the Yellow Paper (rev. a91c29c). - * * @param senderAddress the address of the transaction sender. * @param nonce the nonce of this transaction. - * @param privacyGroup hash of participants list ordered from Enclave response. + * @param privacyGroupId hash of participants list ordered from Enclave response. * @return The generated address of the created private contract. */ public static Address privateContractAddress( - final Address senderAddress, final long nonce, final int privacyGroup) { + final Address senderAddress, final long nonce, final BytesValue privacyGroupId) { return Address.extract( Hash.hash( RLP.encode( @@ -148,7 +146,7 @@ public static Address privateContractAddress( out.startList(); out.writeBytesValue(senderAddress); out.writeLongScalar(nonce); - out.writeIntScalar(privacyGroup); + out.writeBytesValue(privacyGroupId); out.endList(); }))); } diff --git a/ethereum/core/src/main/java/tech/pegasys/pantheon/ethereum/privacy/PrivateTransactionProcessor.java b/ethereum/core/src/main/java/tech/pegasys/pantheon/ethereum/privacy/PrivateTransactionProcessor.java index 4a2b4cc7d5..5dffaf3e3a 100644 --- a/ethereum/core/src/main/java/tech/pegasys/pantheon/ethereum/privacy/PrivateTransactionProcessor.java +++ b/ethereum/core/src/main/java/tech/pegasys/pantheon/ethereum/privacy/PrivateTransactionProcessor.java @@ -167,7 +167,7 @@ public Result processTransaction( final Deque messageFrameStack = new ArrayDeque<>(); if (transaction.isContractCreation()) { final Address privateContractAddress = - Address.privateContractAddress(senderAddress, sender.getNonce() - 1L, 0); + Address.privateContractAddress(senderAddress, sender.getNonce() - 1L, BytesValue.EMPTY); initialFrame = MessageFrame.builder()