From 07c60a2be02028c7437d68adac247356e9f8d97d Mon Sep 17 00:00:00 2001 From: Bernardo Ramos Date: Sun, 29 Oct 2023 20:39:12 +0000 Subject: [PATCH] increase max events per txn --- contract/vm_callback.go | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/contract/vm_callback.go b/contract/vm_callback.go index 17958f96a..582289af4 100644 --- a/contract/vm_callback.go +++ b/contract/vm_callback.go @@ -56,7 +56,8 @@ var ( ) const ( - maxEventCnt = 50 + maxEventCntV2 = 50 + maxEventCntV4 = 128 maxEventNameSize = 64 maxEventArgSize = 4096 luaCallCountDeduc = 1000 @@ -68,6 +69,14 @@ func init() { zeroBig = types.NewZeroAmount() } +func maxEventCnt(ctx *vmContext) int32 { + if ctx.blockInfo.ForkVersion >= 4 { + return maxEventCntV4 + } else { + return maxEventCntV2 + } +} + func addUpdateSize(ctx *vmContext, updateSize int64) error { if ctx.IsGasSystem() { return nil @@ -1324,8 +1333,8 @@ func luaEvent(L *LState, service C.int, eventName *C.char, args *C.char) *C.char if ctx.isQuery == true || ctx.nestedView > 0 { return C.CString("[Contract.Event] event not permitted in query") } - if ctx.eventCount >= maxEventCnt { - return C.CString(fmt.Sprintf("[Contract.Event] exceeded the maximum number of events(%d)", maxEventCnt)) + if ctx.eventCount >= maxEventCnt(ctx) { + return C.CString(fmt.Sprintf("[Contract.Event] exceeded the maximum number of events(%d)", maxEventCnt(ctx))) } if len(C.GoString(eventName)) > maxEventNameSize { return C.CString(fmt.Sprintf("[Contract.Event] exceeded the maximum length of event name(%d)", maxEventNameSize))