From ef6329d1b7cb901ceeb234a87ba1a9c0c5578a11 Mon Sep 17 00:00:00 2001 From: Henrik Hautakoski Date: Wed, 3 Jul 2024 18:01:31 +0200 Subject: [PATCH] internal/server/ship_processor.go: updateAbiFromAction() should not hex decode abi as it is in binary format only when encoding the action to json it is in hex, but from ship = always binary --- internal/server/ship_processor.go | 16 +++++----------- 1 file changed, 5 insertions(+), 11 deletions(-) diff --git a/internal/server/ship_processor.go b/internal/server/ship_processor.go index bc086cf..38ef73f 100644 --- a/internal/server/ship_processor.go +++ b/internal/server/ship_processor.go @@ -2,7 +2,6 @@ package server import ( "bytes" - "encoding/hex" "github.com/eosswedenorg/thalos/api/message" "github.com/eosswedenorg/thalos/internal/abi" @@ -78,24 +77,19 @@ func (processor *ShipProcessor) initHandler(abi *chain.Abi) { func (processor *ShipProcessor) updateAbiFromAction(act *chain.Action) error { set_abi := struct { Account chain.Name - Abi string + Abi chain.Bytes }{} if err := act.DecodeInto(&set_abi); err != nil { return err } - binary_abi, err := hex.DecodeString(set_abi.Abi) - if err != nil { + abi := chain.Abi{} + decoder := chain.NewDecoder(bytes.NewReader(set_abi.Abi)) + if err := decoder.Decode(&abi); err != nil { return err } - - contract_abi := chain.Abi{} - err = chain.NewDecoder(bytes.NewReader(binary_abi)).Decode(&contract_abi) - if err != nil { - return err - } - return processor.abi.SetAbi(set_abi.Account, &contract_abi) + return processor.abi.SetAbi(set_abi.Account, &abi) } // Get the current block.