From 94740155e599d6314eb8c41d7b30c0e261e13602 Mon Sep 17 00:00:00 2001 From: Greg Hysen Date: Mon, 25 Jun 2018 11:01:05 -0700 Subject: Comments for ASM hashing --- .../current/protocol/Exchange/MixinTransactions.sol | 7 +++++++ .../current/protocol/Exchange/libs/LibOrder.sol | 20 ++++++++++++++++++++ 2 files changed, 27 insertions(+) (limited to 'packages') diff --git a/packages/contracts/src/contracts/current/protocol/Exchange/MixinTransactions.sol b/packages/contracts/src/contracts/current/protocol/Exchange/MixinTransactions.sol index 20a4a12df..112e70673 100644 --- a/packages/contracts/src/contracts/current/protocol/Exchange/MixinTransactions.sol +++ b/packages/contracts/src/contracts/current/protocol/Exchange/MixinTransactions.sol @@ -62,6 +62,13 @@ contract MixinTransactions is { bytes32 schemaHash = EIP712_ZEROEX_TRANSACTION_SCHEMA_HASH; bytes32 dataHash = keccak256(data); + // Assembly for more efficiently computing: + // keccak256(abi.encode( + // EIP712_ZEROEX_TRANSACTION_SCHEMA_HASH, + // salt, + // signerAddress, + // keccak256(data) + // )); assembly { let memPtr := mload(64) mstore(memPtr, schemaHash) diff --git a/packages/contracts/src/contracts/current/protocol/Exchange/libs/LibOrder.sol b/packages/contracts/src/contracts/current/protocol/Exchange/libs/LibOrder.sol index f3f1e9277..d1e5da580 100644 --- a/packages/contracts/src/contracts/current/protocol/Exchange/libs/LibOrder.sol +++ b/packages/contracts/src/contracts/current/protocol/Exchange/libs/LibOrder.sol @@ -98,6 +98,26 @@ contract LibOrder is bytes32 schemaHash = EIP712_ORDER_SCHEMA_HASH; bytes32 makerAssetDataHash = keccak256(order.makerAssetData); bytes32 takerAssetDataHash = keccak256(order.takerAssetData); + // Assembly for more efficiently computing: + // keccak256(abi.encodePacked( + // DOMAIN_SEPARATOR_SCHEMA_HASH, + // keccak256(abi.encodePacked(address(this))), + // ORDER_SCHEMA_HASH, + // keccak256(abi.encodePacked( + // order.makerAddress, + // order.takerAddress, + // order.feeRecipientAddress, + // order.senderAddress, + // order.makerAssetAmount, + // order.takerAssetAmount, + // order.makerFee, + // order.takerFee, + // order.expirationTimeSeconds, + // order.salt, + // keccak256(abi.encodePacked(order.makerAssetData)), + // keccak256(abi.encodePacked(order.takerAssetData)) + // )) + // )); assembly { // Backup let temp1 := mload(sub(order, 32)) -- cgit v1.2.3