git ssb

0+

wanderer🌟 / js-primea-hypervisor



Tree: ef9a2818017021a22cd85f062af777205c35969a

Files: ef9a2818017021a22cd85f062af777205c35969a / address.js

771 bytesRaw
1const ethUtils = require('ethereumjs-util')
2
3module.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