diff options
author | Fabio Berger <me@fabioberger.com> | 2018-01-30 21:19:58 +0800 |
---|---|---|
committer | Fabio Berger <me@fabioberger.com> | 2018-01-30 21:19:58 +0800 |
commit | 8d30058a6dade197efbfa24380a479d7b72a882a (patch) | |
tree | f5041e33887a42035c934530b0394b8d9c80af42 /packages/website | |
parent | 69151c06e42fd588506db3aa62b95df5b4399607 (diff) | |
download | dexon-sol-tools-8d30058a6dade197efbfa24380a479d7b72a882a.tar dexon-sol-tools-8d30058a6dade197efbfa24380a479d7b72a882a.tar.gz dexon-sol-tools-8d30058a6dade197efbfa24380a479d7b72a882a.tar.bz2 dexon-sol-tools-8d30058a6dade197efbfa24380a479d7b72a882a.tar.lz dexon-sol-tools-8d30058a6dade197efbfa24380a479d7b72a882a.tar.xz dexon-sol-tools-8d30058a6dade197efbfa24380a479d7b72a882a.tar.zst dexon-sol-tools-8d30058a6dade197efbfa24380a479d7b72a882a.zip |
Pass in whether we want the personal message prefix appended and never append it for Ledger. This fixes signing when Ledger is used and the backing node is not Parity
Diffstat (limited to 'packages/website')
-rw-r--r-- | packages/website/ts/blockchain.ts | 15 | ||||
-rw-r--r-- | packages/website/ts/utils/utils.ts | 6 |
2 files changed, 20 insertions, 1 deletions
diff --git a/packages/website/ts/blockchain.ts b/packages/website/ts/blockchain.ts index d310464ed..d7c23205d 100644 --- a/packages/website/ts/blockchain.ts +++ b/packages/website/ts/blockchain.ts @@ -421,8 +421,21 @@ export class Blockchain { if (_.isUndefined(makerAddress)) { throw new Error('Tried to send a sign request but user has no associated addresses'); } + this._showFlashMessageIfLedger(); - const ecSignature = await this._zeroEx.signOrderHashAsync(orderHash, makerAddress); + const nodeVersion = await this._web3Wrapper.getNodeVersionAsync(); + const isParityNode = utils.isParityNode(nodeVersion); + const isTestRpc = utils.isTestRpc(nodeVersion); + const isLedgerSigner = !_.isUndefined(this._ledgerSubprovider); + let shouldAddPersonalMessagePrefix = true; + if ((isParityNode && !isLedgerSigner) || isTestRpc || isLedgerSigner) { + shouldAddPersonalMessagePrefix = false; + } + const ecSignature = await this._zeroEx.signOrderHashAsync( + orderHash, + makerAddress, + shouldAddPersonalMessagePrefix, + ); const signatureData = _.extend({}, ecSignature, { hash: orderHash, }); diff --git a/packages/website/ts/utils/utils.ts b/packages/website/ts/utils/utils.ts index 23db8c0a7..003ecd30a 100644 --- a/packages/website/ts/utils/utils.ts +++ b/packages/website/ts/utils/utils.ts @@ -276,4 +276,10 @@ export const utils = { exchangeContractErrorToHumanReadableError[error] || ZeroExErrorToHumanReadableError[error]; return humanReadableErrorMsg; }, + isParityNode(nodeVersion: string): boolean { + return _.includes(nodeVersion, 'Parity'); + }, + isTestRpc(nodeVersion: string): boolean { + return _.includes(nodeVersion, 'TestRPC'); + }, }; |