1
0
Fork 0
mirror of https://github.com/eosswedenorg/thalos synced 2026-06-16 04:24:56 +02:00

app/ship_processor.go: Adding updateAbiFromAction()

This commit is contained in:
Henrik Hautakoski 2023-05-12 09:20:53 +02:00
parent 637ec74a2a
commit d552a924e9

View file

@ -1,6 +1,7 @@
package app
import (
"encoding/hex"
"encoding/json"
"github.com/eosswedenorg/thalos/api"
@ -79,6 +80,33 @@ func decode(abi *eos.ABI, act *ship.Action, v any) error {
return json.Unmarshal(jsondata, v)
}
func (processor *ShipProcessor) updateAbiFromAction(act *ship.Action) error {
ABI, err := processor.abi.GetAbi(processor.syscontract)
if err != nil {
return err
}
set_abi := struct {
Abi string
Account eos.AccountName
}{}
if err := decode(ABI, act, &set_abi); err != nil {
return err
}
binary_abi, err := hex.DecodeString(set_abi.Abi)
if err != nil {
return err
}
contract_abi := eos.ABI{}
if err = eos.UnmarshalBinary(binary_abi, &contract_abi); err != nil {
return err
}
return processor.abi.SetAbi(set_abi.Account, &contract_abi)
}
func (processor *ShipProcessor) processBlock(block *ship.GetBlocksResultV0) {
if block.ThisBlock.BlockNum%100 == 0 {
log.Infof("Current: %d, Head: %d", block.ThisBlock.BlockNum, block.Head.BlockNum)