aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGreg Hysen <greg.hysen@gmail.com>2018-06-26 02:01:05 +0800
committerGreg Hysen <greg.hysen@gmail.com>2018-06-26 02:02:31 +0800
commit94740155e599d6314eb8c41d7b30c0e261e13602 (patch)
tree4660811871d1b51b7d29ec032fdc0c5266aa153e
parentf8bde5ab9b8e5d4ec8b9532dfbf18d1202dbfb29 (diff)
downloaddexon-sol-tools-94740155e599d6314eb8c41d7b30c0e261e13602.tar.gz
dexon-sol-tools-94740155e599d6314eb8c41d7b30c0e261e13602.tar.zst
dexon-sol-tools-94740155e599d6314eb8c41d7b30c0e261e13602.zip
Comments for ASM hashing
-rw-r--r--packages/contracts/src/contracts/current/protocol/Exchange/MixinTransactions.sol7
-rw-r--r--packages/contracts/src/contracts/current/protocol/Exchange/libs/LibOrder.sol20
2 files changed, 27 insertions, 0 deletions
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))