UNPKG

634 BJavaScriptView Raw
1const { format } = require('../util');
2const BaseCoder = require('./BaseCoder');
3const { padBuffer } = require('./util');
4
5class AddressCoder extends BaseCoder {
6 static from({ type, name }) {
7 if (type !== 'address') {
8 return undefined;
9 }
10 return new this({ type, name });
11 }
12
13 /**
14 * @param address {string}
15 * @return {Buffer}
16 */
17 encode(address) {
18 return padBuffer(format.address(address));
19 }
20
21 /**
22 * @param stream {HexStream}
23 * @return {string}
24 */
25 decode(stream) {
26 return format.address(`0x${stream.read(40)}`);
27 }
28}
29
30module.exports = AddressCoder;