diff options
author | Leonid Logvinov <logvinov.leon@gmail.com> | 2018-08-09 23:03:41 +0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-08-09 23:03:41 +0800 |
commit | 15e15f994a1b18cf2e9be151194c826d53a01601 (patch) | |
tree | 57b6db2615875c00cb16b1c94c7be113c2a18618 /packages/contracts/src/2.0.0/protocol/Exchange/MixinSignatureValidator.sol | |
parent | d44ff6a91582ed2b4dc25059d52556c4f9c6e163 (diff) | |
parent | 53713188fee57391040c24cc627fdc5ab8982d2e (diff) | |
download | dexon-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.sol | 13 |
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. |