aboutsummaryrefslogtreecommitdiffstats
path: root/packages/contracts/src/2.0.0/protocol/Exchange/MixinSignatureValidator.sol
diff options
context:
space:
mode:
authorLeonid Logvinov <logvinov.leon@gmail.com>2018-08-09 23:03:41 +0800
committerGitHub <noreply@github.com>2018-08-09 23:03:41 +0800
commit15e15f994a1b18cf2e9be151194c826d53a01601 (patch)
tree57b6db2615875c00cb16b1c94c7be113c2a18618 /packages/contracts/src/2.0.0/protocol/Exchange/MixinSignatureValidator.sol
parentd44ff6a91582ed2b4dc25059d52556c4f9c6e163 (diff)
parent53713188fee57391040c24cc627fdc5ab8982d2e (diff)
downloaddexon-sol-tools-15e15f994a1b18cf2e9be151194c826d53a01601.tar
dexon-sol-tools-15e15f994a1b18cf2e9be151194c826d53a01601.tar.gz
dexon-sol-tools-15e15f994a1b18cf2e9be151194c826d53a01601.tar.bz2
dexon-sol-tools-15e15f994a1b18cf2e9be151194c826d53a01601.tar.lz
dexon-sol-tools-15e15f994a1b18cf2e9be151194c826d53a01601.tar.xz
dexon-sol-tools-15e15f994a1b18cf2e9be151194c826d53a01601.tar.zst
dexon-sol-tools-15e15f994a1b18cf2e9be151194c826d53a01601.zip
Merge branch 'development' into sol-cov-fixes
Diffstat (limited to 'packages/contracts/src/2.0.0/protocol/Exchange/MixinSignatureValidator.sol')
-rw-r--r--packages/contracts/src/2.0.0/protocol/Exchange/MixinSignatureValidator.sol13
1 files changed, 9 insertions, 4 deletions
diff --git a/packages/contracts/src/2.0.0/protocol/Exchange/MixinSignatureValidator.sol b/packages/contracts/src/2.0.0/protocol/Exchange/MixinSignatureValidator.sol
index ac7382715..44de54817 100644
--- a/packages/contracts/src/2.0.0/protocol/Exchange/MixinSignatureValidator.sol
+++ b/packages/contracts/src/2.0.0/protocol/Exchange/MixinSignatureValidator.sol
@@ -96,14 +96,15 @@ contract MixinSignatureValidator is
"LENGTH_GREATER_THAN_0_REQUIRED"
);
- // Ensure signature is supported
+ // Pop last byte off of signature byte array.
uint8 signatureTypeRaw = uint8(signature.popLastByte());
+
+ // Ensure signature is supported
require(
signatureTypeRaw < uint8(SignatureType.NSignatureTypes),
"SIGNATURE_UNSUPPORTED"
);
- // Pop last byte off of signature byte array.
SignatureType signatureType = SignatureType(signatureTypeRaw);
// Variables are not scoped in Solidity.
@@ -141,7 +142,12 @@ contract MixinSignatureValidator is
v = uint8(signature[0]);
r = signature.readBytes32(1);
s = signature.readBytes32(33);
- recovered = ecrecover(hash, v, r, s);
+ recovered = ecrecover(
+ hash,
+ v,
+ r,
+ s
+ );
isValid = signerAddress == recovered;
return isValid;
@@ -197,7 +203,6 @@ contract MixinSignatureValidator is
// | 0x14 + x | 1 | Signature type is always "\x06" |
} else if (signatureType == SignatureType.Validator) {
// Pop last 20 bytes off of signature byte array.
-
address validatorAddress = signature.popLast20Bytes();
// Ensure signer has approved validator.