1 | const JSBI = require('jsbi');
|
2 | const lodash = require('lodash');
|
3 | const { assert, format } = require('../util');
|
4 | const BaseCoder = require('./BaseCoder');
|
5 | const { padBuffer, decodeUInt256 } = require('./util');
|
6 |
|
7 | class BoolCoder extends BaseCoder {
|
8 | static from({ type, name }) {
|
9 | if (type !== 'bool') {
|
10 | return undefined;
|
11 | }
|
12 | return new this({ type, name });
|
13 | }
|
14 |
|
15 | |
16 |
|
17 |
|
18 |
|
19 | encode(value) {
|
20 | assert(lodash.isBoolean(value), {
|
21 | message: 'unexpected type',
|
22 | expect: 'boolean',
|
23 | got: value,
|
24 | coder: this,
|
25 | });
|
26 |
|
27 | return padBuffer(format.hex(value));
|
28 | }
|
29 |
|
30 | |
31 |
|
32 |
|
33 |
|
34 | decode(stream) {
|
35 | return JSBI.notEqual(decodeUInt256(stream), JSBI.BigInt(0));
|
36 | }
|
37 | }
|
38 |
|
39 | module.exports = BoolCoder;
|