aboutsummaryrefslogtreecommitdiffstats
path: root/packages/contracts/src/2.0.0/protocol/Exchange/MixinTransactions.sol
diff options
context:
space:
mode:
authorAmir Bandeali <abandeali1@gmail.com>2018-08-08 07:27:02 +0800
committerAmir Bandeali <abandeali1@gmail.com>2018-08-09 02:15:38 +0800
commit149c07dfd2ef2e2102d66ebbdaf1268a1938f4af (patch)
tree22b847c74e8cf74ca627db10eaff1d1e7dcc4302 /packages/contracts/src/2.0.0/protocol/Exchange/MixinTransactions.sol
parent3d6cf503645386734bb552e09df2c6709e2ed45c (diff)
downloaddexon-0x-contracts-149c07dfd2ef2e2102d66ebbdaf1268a1938f4af.tar.gz
dexon-0x-contracts-149c07dfd2ef2e2102d66ebbdaf1268a1938f4af.tar.zst
dexon-0x-contracts-149c07dfd2ef2e2102d66ebbdaf1268a1938f4af.zip
Use asm for hashEIP712Message, increment free memory pointer after asm hashing functions
Diffstat (limited to 'packages/contracts/src/2.0.0/protocol/Exchange/MixinTransactions.sol')
-rw-r--r--packages/contracts/src/2.0.0/protocol/Exchange/MixinTransactions.sol12
1 files changed, 8 insertions, 4 deletions
diff --git a/packages/contracts/src/2.0.0/protocol/Exchange/MixinTransactions.sol b/packages/contracts/src/2.0.0/protocol/Exchange/MixinTransactions.sol
index 0814638db..b5de1a5de 100644
--- a/packages/contracts/src/2.0.0/protocol/Exchange/MixinTransactions.sol
+++ b/packages/contracts/src/2.0.0/protocol/Exchange/MixinTransactions.sol
@@ -131,11 +131,15 @@ contract MixinTransactions is
// ));
assembly {
+ // Load free memory pointer
let memPtr := mload(64)
- mstore(memPtr, schemaHash)
- mstore(add(memPtr, 32), salt)
- mstore(add(memPtr, 64), and(signerAddress, 0xffffffffffffffffffffffffffffffffffffffff))
- mstore(add(memPtr, 96), dataHash)
+
+ mstore(memPtr, schemaHash) // hash of schema
+ mstore(add(memPtr, 32), salt) // salt
+ mstore(add(memPtr, 64), and(signerAddress, 0xffffffffffffffffffffffffffffffffffffffff)) // signerAddress
+ mstore(add(memPtr, 96), dataHash) // hash of data
+
+ // Compute hash
result := keccak256(memPtr, 128)
}