Files: d0973468e86d175de7252854a6b36fd67495c3a4 / address.js
771 bytesRaw
1 | const ethUtils = require('ethereumjs-util') |
2 | |
3 | module.exports = class Address { |
4 | constructor (value) { |
5 | // Special case: duplicate |
6 | if (value instanceof Address) { |
7 | this._value = new Buffer(value._value) |
8 | return |
9 | } |
10 | |
11 | if (typeof value !== 'string') { |
12 | throw new Error('Invalid input to address') |
13 | } |
14 | |
15 | if (!ethUtils.isHexPrefixed(value)) { |
16 | throw new Error('Invalid address format') |
17 | } |
18 | |
19 | this._value = new Buffer(ethUtils.stripHexPrefix(value), 'hex') |
20 | |
21 | if (this._value.length !== 20) { |
22 | throw new Error('Invalid address length') |
23 | } |
24 | } |
25 | |
26 | toBuffer () { |
27 | return this._value |
28 | } |
29 | |
30 | toString () { |
31 | return '0x' + this._value.toString('hex') |
32 | } |
33 | |
34 | isZero () { |
35 | return this._value.equals(ethUtils.zeros(20)) |
36 | } |
37 | } |
38 |
Built with git-ssb-web