File tree 2 files changed +20
-12
lines changed 2 files changed +20
-12
lines changed Original file line number Diff line number Diff line change @@ -49,13 +49,16 @@ const TAGS = [
49
49
'KeyAgg coefficient' ,
50
50
] ;
51
51
/** An object mapping tags to their tagged hash prefix of [SHA256(tag) | SHA256(tag)] */
52
- const TAGGED_HASH_PREFIXES = Object . fromEntries (
53
- TAGS . map ( tag => {
54
- const tagHash = sha256 ( Buffer . from ( tag ) ) ;
55
- return [ tag , Buffer . concat ( [ tagHash , tagHash ] ) ] ;
56
- } ) ,
57
- ) ;
52
+ let TAGGED_HASH_PREFIXES = undefined ;
58
53
function taggedHash ( prefix , data ) {
54
+ if ( ! TAGGED_HASH_PREFIXES ) {
55
+ TAGGED_HASH_PREFIXES = Object . fromEntries (
56
+ TAGS . map ( tag => {
57
+ const tagHash = sha256 ( Buffer . from ( tag ) ) ;
58
+ return [ tag , Buffer . concat ( [ tagHash , tagHash ] ) ] ;
59
+ } ) ,
60
+ ) ;
61
+ }
59
62
return sha256 ( Buffer . concat ( [ TAGGED_HASH_PREFIXES [ prefix ] , data ] ) ) ;
60
63
}
61
64
exports . taggedHash = taggedHash ;
Original file line number Diff line number Diff line change @@ -42,13 +42,18 @@ const TAGS = [
42
42
] as const ;
43
43
export type TaggedHashPrefix = typeof TAGS [ number ] ;
44
44
/** An object mapping tags to their tagged hash prefix of [SHA256(tag) | SHA256(tag)] */
45
- const TAGGED_HASH_PREFIXES = Object . fromEntries (
46
- TAGS . map ( tag => {
47
- const tagHash = sha256 ( Buffer . from ( tag ) ) ;
48
- return [ tag , Buffer . concat ( [ tagHash , tagHash ] ) ] ;
49
- } ) ,
50
- ) as { [ k in TaggedHashPrefix ] : Buffer } ;
45
+ let TAGGED_HASH_PREFIXES = undefined as
46
+ | { [ k in TaggedHashPrefix ] : Buffer }
47
+ | undefined ;
51
48
52
49
export function taggedHash ( prefix : TaggedHashPrefix , data : Buffer ) : Buffer {
50
+ if ( ! TAGGED_HASH_PREFIXES ) {
51
+ TAGGED_HASH_PREFIXES = Object . fromEntries (
52
+ TAGS . map ( tag => {
53
+ const tagHash = sha256 ( Buffer . from ( tag ) ) ;
54
+ return [ tag , Buffer . concat ( [ tagHash , tagHash ] ) ] ;
55
+ } ) ,
56
+ ) as { [ k in TaggedHashPrefix ] : Buffer } ;
57
+ }
53
58
return sha256 ( Buffer . concat ( [ TAGGED_HASH_PREFIXES [ prefix ] , data ] ) ) ;
54
59
}
You can’t perform that action at this time.
0 commit comments