mirror of
https://github.com/kremalicious/metamask-extension.git
synced 2024-11-30 16:18:07 +01:00
9bd8c5f723
Calls to `personal_sign` are now: - When hex encoded, preserved as hex encoded, but displayed as utf-8 text. - When not hex encoded, decoded as utf-8 text as hex for signing. - The messages proposed for signing are displayed as UTF-8 text. - When the message cannot be rendered as UTF-8 text, it is displayed as hexadecimal. Fixes #1173
44 lines
942 B
JavaScript
44 lines
942 B
JavaScript
const Component = require('react').Component
|
|
const h = require('react-hyperscript')
|
|
const inherits = require('util').inherits
|
|
const ethUtil = require('ethereumjs-util')
|
|
|
|
module.exports = BinaryRenderer
|
|
|
|
inherits(BinaryRenderer, Component)
|
|
function BinaryRenderer () {
|
|
Component.call(this)
|
|
}
|
|
|
|
BinaryRenderer.prototype.render = function () {
|
|
const props = this.props
|
|
const { value } = props
|
|
const text = this.hexToText(value)
|
|
|
|
return (
|
|
h('textarea.font-small', {
|
|
readOnly: true,
|
|
style: {
|
|
width: '315px',
|
|
maxHeight: '210px',
|
|
resize: 'none',
|
|
border: 'none',
|
|
background: 'white',
|
|
padding: '3px',
|
|
},
|
|
defaultValue: text,
|
|
})
|
|
)
|
|
}
|
|
|
|
BinaryRenderer.prototype.hexToText = function (hex) {
|
|
try {
|
|
const stripped = ethUtil.stripHexPrefix(hex)
|
|
const buff = Buffer.from(stripped, 'hex')
|
|
return buff.toString('utf8')
|
|
} catch (e) {
|
|
return hex
|
|
}
|
|
}
|
|
|