File tree Expand file tree Collapse file tree 2 files changed +20
-12
lines changed Expand file tree Collapse file tree 2 files changed +20
-12
lines changed Original file line number Diff line number Diff line change @@ -49,13 +49,16 @@ const TAGS = [
4949 'KeyAgg coefficient' ,
5050] ;
5151/** 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 ;
5853function 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+ }
5962 return sha256 ( Buffer . concat ( [ TAGGED_HASH_PREFIXES [ prefix ] , data ] ) ) ;
6063}
6164exports . taggedHash = taggedHash ;
Original file line number Diff line number Diff line change @@ -42,13 +42,18 @@ const TAGS = [
4242] as const ;
4343export type TaggedHashPrefix = typeof TAGS [ number ] ;
4444/** 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 ;
5148
5249export 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+ }
5358 return sha256 ( Buffer . concat ( [ TAGGED_HASH_PREFIXES [ prefix ] , data ] ) ) ;
5459}
You can’t perform that action at this time.
0 commit comments