diff --git a/params/version.go b/params/version.go index de5d7fc7fc..573edd4186 100644 --- a/params/version.go +++ b/params/version.go @@ -24,7 +24,7 @@ import ( const ( VersionMajor = 5 // Major version component of the current release VersionMinor = 3 // Minor version component of the current release - VersionPatch = 12 // Patch version component of the current release + VersionPatch = 13 // Patch version component of the current release VersionMeta = "mainnet" // Version metadata to append to the version string ) diff --git a/rollup/circuitcapacitychecker/impl.go b/rollup/circuitcapacitychecker/impl.go index d1f463470b..891068db43 100644 --- a/rollup/circuitcapacitychecker/impl.go +++ b/rollup/circuitcapacitychecker/impl.go @@ -10,6 +10,7 @@ package circuitcapacitychecker import "C" //nolint:typecheck import ( + "bytes" "encoding/json" "fmt" "sync" @@ -29,7 +30,8 @@ func init() { type CircuitCapacityChecker struct { // mutex for each CircuitCapacityChecker itself sync.Mutex - ID uint64 + ID uint64 + jsonBuffer bytes.Buffer } // NewCircuitCapacityChecker creates a new CircuitCapacityChecker @@ -65,13 +67,14 @@ func (ccc *CircuitCapacityChecker) ApplyTransaction(traces *types.BlockTrace) (* return nil, ErrUnknown } - tracesByt, err := json.Marshal(traces) + ccc.jsonBuffer.Reset() + err := json.NewEncoder(&ccc.jsonBuffer).Encode(traces) if err != nil { log.Error("fail to json marshal traces in ApplyTransaction", "id", ccc.ID, "TxHash", traces.Transactions[0].TxHash, "err", err) return nil, ErrUnknown } - tracesStr := C.CString(string(tracesByt)) + tracesStr := C.CString(string(ccc.jsonBuffer.Bytes())) defer func() { C.free(unsafe.Pointer(tracesStr)) }() @@ -111,13 +114,14 @@ func (ccc *CircuitCapacityChecker) ApplyBlock(traces *types.BlockTrace) (*types. ccc.Lock() defer ccc.Unlock() - tracesByt, err := json.Marshal(traces) + ccc.jsonBuffer.Reset() + err := json.NewEncoder(&ccc.jsonBuffer).Encode(traces) if err != nil { log.Error("fail to json marshal traces in ApplyBlock", "id", ccc.ID, "blockNumber", traces.Header.Number, "blockHash", traces.Header.Hash(), "err", err) return nil, ErrUnknown } - tracesStr := C.CString(string(tracesByt)) + tracesStr := C.CString(string(ccc.jsonBuffer.Bytes())) defer func() { C.free(unsafe.Pointer(tracesStr)) }()