aboutsummaryrefslogtreecommitdiffstats
path: root/packages/order-utils/src
diff options
context:
space:
mode:
authorJacob Evans <jacob@dekz.net>2018-08-14 06:32:16 +0800
committerJacob Evans <jacob@dekz.net>2018-08-14 07:18:13 +0800
commita3517574936aa6a4911003dbff06302926b04cb4 (patch)
tree86e4c20aee5ddf4e3641d6b13e1379d1b7c26930 /packages/order-utils/src
parentca4905c3436931684d113ec66882836a4d0b265b (diff)
downloaddexon-0x-contracts-a3517574936aa6a4911003dbff06302926b04cb4.tar.gz
dexon-0x-contracts-a3517574936aa6a4911003dbff06302926b04cb4.tar.zst
dexon-0x-contracts-a3517574936aa6a4911003dbff06302926b04cb4.zip
Update version numbers.
Add source for Metamask future fix. Consolidate switch statement to one return
Diffstat (limited to 'packages/order-utils/src')
-rw-r--r--packages/order-utils/src/signature_utils.ts14
1 files changed, 8 insertions, 6 deletions
diff --git a/packages/order-utils/src/signature_utils.ts b/packages/order-utils/src/signature_utils.ts
index 5a58edf38..870aef2ed 100644
--- a/packages/order-utils/src/signature_utils.ts
+++ b/packages/order-utils/src/signature_utils.ts
@@ -216,6 +216,7 @@ export async function ecSignOrderHashAsync(
let msgHashHex = orderHash;
const prefixedMsgHashHex = addSignedMessagePrefix(orderHash, signerType);
// Metamask incorrectly implements eth_sign and does not prefix the message as per the spec
+ // Source: https://github.com/MetaMask/metamask-extension/commit/a9d36860bec424dcee8db043d3e7da6a5ff5672e
if (signerType === SignerType.Metamask) {
msgHashHex = prefixedMsgHashHex;
}
@@ -260,22 +261,23 @@ export function convertECSignatureToSignatureHex(ecSignature: ECSignature, signe
ethUtil.toBuffer(ecSignature.s),
]);
const signatureHex = `0x${signatureBuffer.toString('hex')}`;
+ let signatureType;
switch (signerType) {
case SignerType.Metamask:
case SignerType.Ledger:
case SignerType.Default: {
- const signatureType = SignatureType.EthSign;
- const signatureWithType = convertToSignatureWithType(signatureHex, signatureType);
- return signatureWithType;
+ signatureType = SignatureType.EthSign;
+ break;
}
case SignerType.Trezor: {
- const signatureType = SignatureType.Trezor;
- const signatureWithType = convertToSignatureWithType(signatureHex, signatureType);
- return signatureWithType;
+ signatureType = SignatureType.Trezor;
+ break;
}
default:
throw new Error(`Unrecognized SignerType: ${signerType}`);
}
+ const signatureWithType = convertToSignatureWithType(signatureHex, signatureType);
+ return signatureWithType;
}
/**
* Combines the signature proof and the Signature Type.