Update version numbers.
Add source for Metamask future fix. Consolidate switch statement to one return
This commit is contained in:
@@ -1,6 +1,6 @@
|
||||
[
|
||||
{
|
||||
"version": "pending",
|
||||
"version": "1.0.1-rc.4",
|
||||
"changes": [
|
||||
{
|
||||
"pr": 914,
|
||||
|
||||
@@ -237,7 +237,7 @@ export class ZeroEx {
|
||||
* @param orderHash Hex encoded orderHash to sign.
|
||||
* @param signerAddress The hex encoded Ethereum address you wish to sign it with. This address
|
||||
* must be available via the Provider supplied to 0x.js.
|
||||
* @param signerType the type signer that will perform the `eth_sign` operation. E.g Default, Metamask, Ledger or Trezor.
|
||||
* @param signerType the signer type that will perform the `eth_sign` operation. E.g Default, Metamask, Ledger or Trezor.
|
||||
* Some implementations exhibit different behaviour. Default will assume a spec compliant eth_sign implementation.
|
||||
* This parameter is defaulted to `SignerType.Default`.
|
||||
* @return A hex encoded string of the Elliptic curve signature parameters generated by signing the orderHash and signature type.
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
[
|
||||
{
|
||||
"version": "pending",
|
||||
"version": "1.0.1-rc.4",
|
||||
"changes": [
|
||||
{
|
||||
"pr": 914,
|
||||
|
||||
@@ -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.
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
[
|
||||
{
|
||||
"version": "pending",
|
||||
"version": "1.0.1-rc.4",
|
||||
"changes": [
|
||||
{
|
||||
"pr": 914,
|
||||
|
||||
Reference in New Issue
Block a user