From 4469110deb2b843c3793a8baeca547a6d8519c50 Mon Sep 17 00:00:00 2001 From: Simon Ordish Date: Fri, 29 Oct 2021 10:25:38 +0100 Subject: [PATCH] Optimise ToASM() func using string builder (#76) --- bscript/script.go | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/bscript/script.go b/bscript/script.go index 2bf079be..bb1c1898 100644 --- a/bscript/script.go +++ b/bscript/script.go @@ -200,20 +200,22 @@ func (s *Script) ToASM() (string, error) { parts, err := DecodeParts(*s) // if err != nil, we will append [error] to the ASM script below (as done in the node). - var asmScript string + var asmScript strings.Builder + for _, p := range parts { + asmScript.WriteString(" ") if len(p) == 1 { - asmScript = asmScript + " " + opCodeValues[p[0]] + asmScript.WriteString(opCodeValues[p[0]]) } else { - asmScript = asmScript + " " + hex.EncodeToString(p) + asmScript.WriteString(hex.EncodeToString(p)) } } if err != nil { - asmScript += " [error]" + asmScript.WriteString(" [error]") } - return strings.TrimSpace(asmScript), nil + return strings.TrimSpace(asmScript.String()), nil } // IsP2PKH returns true if this is a pay to pubkey hash output script.