From fa64fde897cc0376026b819fafc7d139ef654a91 Mon Sep 17 00:00:00 2001 From: ssd04 Date: Tue, 3 Jun 2025 11:32:59 +0300 Subject: [PATCH 1/3] update smart contract hooks to export milliseconds --- process/smartContract/hooks/blockChainHook.go | 19 +++- .../hooks/blockChainHook_test.go | 104 +++++++++++++++++- 2 files changed, 116 insertions(+), 7 deletions(-) diff --git a/process/smartContract/hooks/blockChainHook.go b/process/smartContract/hooks/blockChainHook.go index 934097ad4b8..3870806ea01 100644 --- a/process/smartContract/hooks/blockChainHook.go +++ b/process/smartContract/hooks/blockChainHook.go @@ -394,6 +394,14 @@ func (bh *BlockChainHookImpl) LastTimeStamp() uint64 { return 0 } +// LastTimeStampMs returns the timeStamp in milliseconds from the last committed block +func (bh *BlockChainHookImpl) LastTimeStampMs() uint64 { + if !check.IfNil(bh.blockChain.GetCurrentBlockHeader()) { + return common.ConvertTimeStampSecToMs(bh.blockChain.GetCurrentBlockHeader().GetTimeStamp()) + } + return 0 +} + // LastRandomSeed returns the random seed from the last committed block func (bh *BlockChainHookImpl) LastRandomSeed() []byte { if !check.IfNil(bh.blockChain.GetCurrentBlockHeader()) { @@ -423,7 +431,8 @@ func (bh *BlockChainHookImpl) EpochStartBlockTimeStamp() uint64 { bh.mutEpochStartHdr.RLock() defer bh.mutEpochStartHdr.RUnlock() - return bh.epochStartHdr.GetTimeStamp() + timestampMs := common.ConvertTimeStampSecToMs(bh.epochStartHdr.GetTimeStamp()) + return timestampMs } // EpochStartBlockNonce returns the nonce of the first block of the current epoch @@ -476,6 +485,14 @@ func (bh *BlockChainHookImpl) CurrentTimeStamp() uint64 { return bh.currentHdr.GetTimeStamp() } +// CurrentTimeStampMs return the timestamp in milliseconds from the current block +func (bh *BlockChainHookImpl) CurrentTimeStampMs() uint64 { + bh.mutCurrentHdr.RLock() + defer bh.mutCurrentHdr.RUnlock() + + return common.ConvertTimeStampSecToMs(bh.currentHdr.GetTimeStamp()) +} + // CurrentRandomSeed returns the random seed from the current header func (bh *BlockChainHookImpl) CurrentRandomSeed() []byte { bh.mutCurrentHdr.RLock() diff --git a/process/smartContract/hooks/blockChainHook_test.go b/process/smartContract/hooks/blockChainHook_test.go index 01142134c16..c53957441ad 100644 --- a/process/smartContract/hooks/blockChainHook_test.go +++ b/process/smartContract/hooks/blockChainHook_test.go @@ -7,6 +7,7 @@ import ( "math" "math/big" "strings" + "sync" "testing" "time" @@ -1076,7 +1077,9 @@ func TestBlockChainHookImpl_GettersFromCurrentHeader(t *testing.T) { assert.Equal(t, epochStartNonce, bh.EpochStartBlockNonce()) assert.Equal(t, epochStartRound, bh.EpochStartBlockRound()) - assert.Equal(t, epochStartTimestamp, bh.EpochStartBlockTimeStamp()) + + expEpochStartTimestamp := common.ConvertTimeStampSecToMs(epochStartTimestamp) + assert.Equal(t, expEpochStartTimestamp, bh.EpochStartBlockTimeStamp()) err = bh.SetCurrentHeader(nil) require.Equal(t, hooks.ErrNilCurrentHeader, err) @@ -1116,7 +1119,9 @@ func TestBlockChainHookImpl_UpdateEpochStartHeaderFromCurrentHeader(t *testing.T assert.Equal(t, epochStartNonce, bh.EpochStartBlockNonce()) assert.Equal(t, epochStartRound, bh.EpochStartBlockRound()) - assert.Equal(t, epochStartTimestamp, bh.EpochStartBlockTimeStamp()) + + expEpochStartTimestamp := common.ConvertTimeStampSecToMs(epochStartTimestamp) + assert.Equal(t, expEpochStartTimestamp, bh.EpochStartBlockTimeStamp()) }) t.Run("epoch start header should remain set even if a new non-epoch-start block is set", func(t *testing.T) { @@ -1165,7 +1170,9 @@ func TestBlockChainHookImpl_UpdateEpochStartHeaderFromCurrentHeader(t *testing.T assert.Equal(t, epochStartNonce, bh.EpochStartBlockNonce()) assert.Equal(t, epochStartRound, bh.EpochStartBlockRound()) - assert.Equal(t, epochStartTimestamp, bh.EpochStartBlockTimeStamp()) + + expEpochStartTimestamp := common.ConvertTimeStampSecToMs(epochStartTimestamp) + assert.Equal(t, expEpochStartTimestamp, bh.EpochStartBlockTimeStamp()) }) t.Run("if current header epoch is 0, expect the genesis epoch start block to be set", func(t *testing.T) { @@ -1252,7 +1259,9 @@ func TestBlockChainHookImpl_UpdateEpochStartHeaderFromCurrentHeader(t *testing.T assert.Equal(t, epochStartNonce, bh.EpochStartBlockNonce()) assert.Equal(t, epochStartRound, bh.EpochStartBlockRound()) - assert.Equal(t, epochStartTimestamp, bh.EpochStartBlockTimeStamp()) + + expEpochStartTimestamp := common.ConvertTimeStampSecToMs(epochStartTimestamp) + assert.Equal(t, expEpochStartTimestamp, bh.EpochStartBlockTimeStamp()) }) t.Run("get epoch start header from storage if not found in last commited", func(t *testing.T) { @@ -1316,7 +1325,9 @@ func TestBlockChainHookImpl_UpdateEpochStartHeaderFromCurrentHeader(t *testing.T assert.Equal(t, epochStartNonce, bh.EpochStartBlockNonce()) assert.Equal(t, epochStartRound, bh.EpochStartBlockRound()) - assert.Equal(t, epochStartTimestamp, bh.EpochStartBlockTimeStamp()) + + expEpochStartTimestamp := common.ConvertTimeStampSecToMs(epochStartTimestamp) + assert.Equal(t, expEpochStartTimestamp, bh.EpochStartBlockTimeStamp()) }) } @@ -1329,6 +1340,7 @@ func TestBlockChainHookImpl_GettersFromEpochStartHeader(t *testing.T) { epochStartNonce := uint64(30) epochStartRound := uint64(3) epochStartTimestamp := uint64(1000) + expEpochStartTimestamp := common.ConvertTimeStampSecToMs(epochStartTimestamp) epochStartHdr := &block.Header{ Nonce: epochStartNonce, @@ -1347,7 +1359,7 @@ func TestBlockChainHookImpl_GettersFromEpochStartHeader(t *testing.T) { assert.Equal(t, epochStartNonce, bh.EpochStartBlockNonce()) assert.Equal(t, epochStartRound, bh.EpochStartBlockRound()) - assert.Equal(t, epochStartTimestamp, bh.EpochStartBlockTimeStamp()) + assert.Equal(t, expEpochStartTimestamp, bh.EpochStartBlockTimeStamp()) } func TestBlockChainHookImpl_GettersFromRoundHandler(t *testing.T) { @@ -2658,3 +2670,83 @@ func TestBlockChainHookImpl_IsLimitedTransfer(t *testing.T) { assert.True(t, bh.IsLimitedTransfer([]byte("token ID"))) assert.True(t, isLimitedTransferCalled) } + +func TestBlockChainHookImpl_CurrentTimeStampMs(t *testing.T) { + t.Parallel() + + timestamp := uint64(1234) + + hdr := &block.Header{ + TimeStamp: timestamp, + } + + args := createMockBlockChainHookArgs() + bh, _ := hooks.NewBlockChainHookImpl(args) + + err := bh.SetCurrentHeader(hdr) + require.Nil(t, err) + + assert.Equal(t, timestamp, bh.CurrentTimeStamp()) + + expTimestampMs := common.ConvertTimeStampSecToMs(timestamp) + assert.Equal(t, expTimestampMs, bh.CurrentTimeStampMs()) +} + +func TestBlockChainHookImpl_LastTimeStampMs(t *testing.T) { + t.Parallel() + + timestamp := uint64(1234) + + hdr := &block.Header{ + TimeStamp: timestamp, + } + + args := createMockBlockChainHookArgs() + args.BlockChain = &testscommon.ChainHandlerStub{ + GetCurrentBlockHeaderCalled: func() data.HeaderHandler { + return hdr + }, + } + + bh, _ := hooks.NewBlockChainHookImpl(args) + + lastTimeStampMs := bh.LastTimeStampMs() + + expLastTimeStamp := common.ConvertTimeStampSecToMs(timestamp) + require.Equal(t, expLastTimeStamp, lastTimeStampMs) +} + +func TestBlockChainHookImpl_ConcurrencyTimeOperations(t *testing.T) { + t.Parallel() + + args := createMockBlockChainHookArgs() + + bh, _ := hooks.NewBlockChainHookImpl(args) + + numOperations := 500 + wg := sync.WaitGroup{} + wg.Add(numOperations) + for i := 0; i < numOperations; i++ { + go func(idx int) { + switch idx { + case 0: + _ = bh.LastTimeStamp() + case 1: + _ = bh.LastTimeStampMs() + case 2: + _ = bh.CurrentTimeStamp() + case 3: + _ = bh.CurrentTimeStampMs() + case 4: + _ = bh.RoundTime() + case 5: + _ = bh.EpochStartBlockTimeStamp() + } + + wg.Done() + }(i % 6) + } + + wg.Wait() + +} From 595bf92df6ffb17004d16a67056045223b0471df Mon Sep 17 00:00:00 2001 From: Laurentiu Ciobanu Date: Wed, 4 Jun 2025 11:34:09 +0000 Subject: [PATCH 2/3] add blockchain hooks for timestamps in millis --- go.mod | 6 +-- go.sum | 46 +++++++++---------- process/interface.go | 4 +- process/smartContract/hooks/blockChainHook.go | 4 +- .../hooks/blockChainHook_test.go | 16 +++---- testscommon/blockChainHookStub.go | 30 ++++++++++-- 6 files changed, 64 insertions(+), 42 deletions(-) diff --git a/go.mod b/go.mod index 6c984e71e2c..71e26112fab 100644 --- a/go.mod +++ b/go.mod @@ -21,10 +21,10 @@ require ( github.com/multiversx/mx-chain-crypto-go v1.2.13-0.20250520075055-8ab2a164945d github.com/multiversx/mx-chain-es-indexer-go v1.8.2-0.20250520083544-09915e4d9bae github.com/multiversx/mx-chain-logger-go v1.0.16-0.20250520074859-b2faf3c90273 - github.com/multiversx/mx-chain-scenario-go v1.5.1-0.20250520075713-734e46b4c66d + github.com/multiversx/mx-chain-scenario-go v1.5.1-0.20250604103542-36f3bd94d7d6 github.com/multiversx/mx-chain-storage-go v1.0.20-0.20250520075958-65fd4c7bcaae - github.com/multiversx/mx-chain-vm-common-go v1.5.17-0.20250520075408-c94bee9ee163 - github.com/multiversx/mx-chain-vm-go v1.5.41-0.20250520080530-2838146363b4 + github.com/multiversx/mx-chain-vm-common-go v1.5.17-0.20250604100541-1efc3d1b1314 + github.com/multiversx/mx-chain-vm-go v1.5.41-0.20250604113045-eff4276efd40 github.com/multiversx/mx-chain-vm-v1_2-go v1.2.69-0.20250520080927-410c413d962f github.com/multiversx/mx-chain-vm-v1_3-go v1.3.70-0.20250520081414-edf8b75e054d github.com/multiversx/mx-chain-vm-v1_4-go v1.4.99-0.20250520081749-516b5ae0e49c diff --git a/go.sum b/go.sum index edfdce3b16d..f5b75446767 100644 --- a/go.sum +++ b/go.sum @@ -57,7 +57,6 @@ github.com/bytedance/sonic/loader v0.1.1/go.mod h1:ncP89zfokxS5LZrJxl5z0UJcsk4M4 github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU= github.com/cespare/xxhash/v2 v2.3.0 h1:UL815xU9SqsFlibzuggzjXhog7bL6oX9BbNZnL2UFvs= github.com/cespare/xxhash/v2 v2.3.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= -github.com/chenzhuoyu/base64x v0.0.0-20221115062448-fe3a3abad311/go.mod h1:b583jCggY9gE99b6G5LEC39OIiVsWj+R97kbl5odCEk= github.com/chzyer/logex v1.1.10/go.mod h1:+Ywpsq7O8HXn0nuIou7OrIPyXbp3wmkHB+jjWRnGsAI= github.com/chzyer/readline v0.0.0-20180603132655-2972be24d48e/go.mod h1:nSuG5e5PlCu98SY8svDHJxuZscDgtXS6KTTbou5AhLI= github.com/chzyer/test v0.0.0-20180213035817-a1ea475d72b1/go.mod h1:Q3SI9o4m/ZMnBNeIyt5eFwwo7qiLfzFZmjNmxjkiQlU= @@ -88,6 +87,7 @@ github.com/davidlazar/go-crypto v0.0.0-20200604182044-b73af7476f6c h1:pFUpOrbxDR github.com/davidlazar/go-crypto v0.0.0-20200604182044-b73af7476f6c/go.mod h1:6UhI8N9EjYm1c2odKpFpAYeR8dsBeM7PtzQhRgxRr9U= github.com/decred/dcrd/crypto/blake256 v1.0.0/go.mod h1:sQl2p6Y26YV+ZOcSTP6thNdn47hh8kt6rqSlvmrXFAc= github.com/decred/dcrd/crypto/blake256 v1.0.1 h1:7PltbUIQB7u/FfZ39+DGa/ShuMyJ5ilcvdfma9wOH6Y= +github.com/decred/dcrd/crypto/blake256 v1.0.1/go.mod h1:2OfgNZ5wDpcsFmHmCK5gZTPcCXqlm2ArzUIkw9czNJo= github.com/decred/dcrd/dcrec/secp256k1/v4 v4.0.1/go.mod h1:hyedUtir6IdtD/7lIxGeCxkaw7y45JueMRL4DIyJDKs= github.com/decred/dcrd/dcrec/secp256k1/v4 v4.3.0 h1:rpfIENRNNilwHwZeG5+P150SMrnNEcHYvcCuK6dPZSg= github.com/decred/dcrd/dcrec/secp256k1/v4 v4.3.0/go.mod h1:v57UDF4pDQJcEfFUCRop3lJL149eHGSe9Jvczhzjo/0= @@ -113,6 +113,7 @@ github.com/flynn/noise v1.1.0/go.mod h1:xbMo+0i6+IGbYdJhF31t2eR1BIU0CYc12+BNAKwU github.com/francoispqt/gojay v1.2.13 h1:d2m3sFjloqoIUQU3TsHBgj6qg/BVGlTBeHDUmyJnXKk= github.com/francoispqt/gojay v1.2.13/go.mod h1:ehT5mTG4ua4581f1++1WLG0vPdaA9HaiDsoyrBGkyDY= github.com/frankban/quicktest v1.14.6 h1:7Xjx+VpznH+oBnejlPUj8oUpdxnVs4f8XU8WnHkI4W8= +github.com/frankban/quicktest v1.14.6/go.mod h1:4ptaffx2x8+WTWXmUCuVU6aPUX1/Mz7zb5vbUoiM6w0= github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= github.com/fsnotify/fsnotify v1.4.9/go.mod h1:znqG4EE+3YCdAaPaxE2ZRY/06pZUdp0tY4IgpuI1SZQ= github.com/fsnotify/fsnotify v1.5.4 h1:jRbGcIw6P2Meqdwuo0H1p6JVLbL5DHKAKlYndzMwVZI= @@ -143,6 +144,7 @@ github.com/go-ole/go-ole v1.2.6 h1:/Fpf6oFPoeFik9ty7siob0G6Ke8QvQEuVcuChpwXzpY= github.com/go-ole/go-ole v1.2.6/go.mod h1:pprOEPIfldk/42T2oK7lQ4v4JSDwmV0As9GaiUsvbm0= github.com/go-playground/assert/v2 v2.0.1/go.mod h1:VDjEfimB/XKnb+ZQfWdccd7VUvScMdVu0Titje2rxJ4= github.com/go-playground/assert/v2 v2.2.0 h1:JvknZsQTYeFEAhQwI4qEt9cyV5ONwRHC+lYKSsYSR8s= +github.com/go-playground/assert/v2 v2.2.0/go.mod h1:VDjEfimB/XKnb+ZQfWdccd7VUvScMdVu0Titje2rxJ4= github.com/go-playground/locales v0.14.0/go.mod h1:sawfccIbzZTqEDETgFXqTho0QybSa7l++s0DH+LDiLs= github.com/go-playground/locales v0.14.1 h1:EWaQ/wswjilfKLTECiXz7Rh+3BjFhfDFKv/oXslEjJA= github.com/go-playground/locales v0.14.1/go.mod h1:hxrqLVvrK65+Rwrd5Fc6F2O76J/NuW9t0sjnWqG1slY= @@ -196,6 +198,7 @@ github.com/google/go-cmp v0.5.2/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/ github.com/google/go-cmp v0.5.3/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI= +github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= github.com/google/go-github v17.0.0+incompatible/go.mod h1:zLgOLi98H3fifZn+44m+umXrS52loVEgC2AApnigrVQ= github.com/google/go-querystring v1.0.0/go.mod h1:odCYkC5MyYFN7vkCjXpyrEuKhc/BUO6wN/zVPAxq5ck= github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= @@ -217,6 +220,7 @@ github.com/googleapis/gax-go v2.0.0+incompatible/go.mod h1:SFVmujtThgffbyetf+mdk github.com/googleapis/gax-go/v2 v2.0.3/go.mod h1:LLvjysVCY1JZeum8Z6l8qUty8fiNwE08qbEPm1M08qg= github.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1/go.mod h1:wJfORRmW1u3UXTncJ5qlYoELFm8eSnnEO6hX4iZ3EWY= github.com/gopherjs/gopherjs v0.0.0-20190430165422-3e4dfb77656c h1:7lF+Vz0LqiRidnzC1Oq86fpX1q/iEv2KJdrCtttYjT4= +github.com/gopherjs/gopherjs v0.0.0-20190430165422-3e4dfb77656c/go.mod h1:wJfORRmW1u3UXTncJ5qlYoELFm8eSnnEO6hX4iZ3EWY= github.com/gorilla/mux v1.8.1 h1:TuBL49tXwgrFYWhqrNgrUNEY92u81SPhu7sTdzQEiWY= github.com/gorilla/mux v1.8.1/go.mod h1:AKf9I4AEqPTmMytcMc0KkNouC66V3BtZ4qD5fmWSiMQ= github.com/gorilla/websocket v1.5.3 h1:saDtZ6Pbx/0u+bgYQ3q96pZgCzfhKXGPqt7kZ72aNNg= @@ -241,6 +245,7 @@ github.com/ianlancetaylor/demangle v0.0.0-20200824232613-28f6c0f3b639/go.mod h1: github.com/ipfs/boxo v0.27.4 h1:6nC8lY5GnR6whAbW88hFz6L13wZUj2vr5BRe3iTvYBI= github.com/ipfs/boxo v0.27.4/go.mod h1:qEIRrGNr0bitDedTCzyzBHxzNWqYmyuHgK8LG9Q83EM= github.com/ipfs/go-block-format v0.2.0 h1:ZqrkxBA2ICbDRbK8KJs/u0O3dlp6gmAuuXUJNiW1Ycs= +github.com/ipfs/go-block-format v0.2.0/go.mod h1:+jpL11nFx5A/SPpsoBn6Bzkra/zaArfSmsknbPMYgzM= github.com/ipfs/go-cid v0.5.0 h1:goEKKhaGm0ul11IHA7I6p1GmKz8kEYniqFopaB5Otwg= github.com/ipfs/go-cid v0.5.0/go.mod h1:0L7vmeNXpQpUS9vt+yEARkJ8rOg43DF3iPgn4GIN0mk= github.com/ipfs/go-datastore v0.6.0 h1:JKyz+Gvz1QEZw0LsX1IBn+JFCJQH4SJVFtM4uWU0Myk= @@ -248,12 +253,14 @@ github.com/ipfs/go-datastore v0.6.0/go.mod h1:rt5M3nNbSO/8q1t4LNkLyUwRs8HupMeN/8 github.com/ipfs/go-detect-race v0.0.1 h1:qX/xay2W3E4Q1U7d9lNs1sU9nvguX0a7319XbyQ6cOk= github.com/ipfs/go-detect-race v0.0.1/go.mod h1:8BNT7shDZPo99Q74BpGMK+4D8Mn4j46UU0LZ723meps= github.com/ipfs/go-ipfs-util v0.0.3 h1:2RFdGez6bu2ZlZdI+rWfIdbQb1KudQp3VGwPtdNCmE0= +github.com/ipfs/go-ipfs-util v0.0.3/go.mod h1:LHzG1a0Ig4G+iZ26UUOMjHd+lfM84LZCrn17xAKWBvs= github.com/ipfs/go-log v1.0.5 h1:2dOuUCB1Z7uoczMWgAyDck5JLb72zHzrMnGnCNNbvY8= github.com/ipfs/go-log v1.0.5/go.mod h1:j0b8ZoR+7+R99LD9jZ6+AJsrzkPbSXbZfGakb5JPtIo= github.com/ipfs/go-log/v2 v2.1.3/go.mod h1:/8d0SH3Su5Ooc31QlL1WysJhvyOTDCjcCZ9Axpmri6g= github.com/ipfs/go-log/v2 v2.5.1 h1:1XdUzF7048prq4aBjDQQ4SL5RxftpRGdXhNRwKSAlcY= github.com/ipfs/go-log/v2 v2.5.1/go.mod h1:prSpmC1Gpllc9UYWxDiZDreBYw7zp4Iqp1kOLU9U5UI= github.com/ipfs/go-test v0.0.4 h1:DKT66T6GBB6PsDFLoO56QZPrOmzJkqU1FZH5C9ySkew= +github.com/ipfs/go-test v0.0.4/go.mod h1:qhIM1EluEfElKKM6fnWxGn822/z9knUGM1+I/OAQNKI= github.com/ipld/go-ipld-prime v0.21.0 h1:n4JmcpOlPDIxBcY037SVfpd1G+Sj1nKZah0m6QH9C2E= github.com/ipld/go-ipld-prime v0.21.0/go.mod h1:3RLqy//ERg/y5oShXXdx5YIp50cFGOanyMctpPjsvxQ= github.com/jackpal/go-nat-pmp v1.0.2 h1:KzKSgb7qkJvOUTqYl9/Hg/me3pWgBmERKrTGD7BdWus= @@ -266,7 +273,6 @@ github.com/jbenet/goprocess v0.1.4/go.mod h1:5yspPrukOVuOLORacaBi858NqyClJPQxYZl github.com/jellevandenhooff/dkim v0.0.0-20150330215556-f50fe3d243e1/go.mod h1:E0B/fFc00Y+Rasa88328GlI/XbtyysCtTHZS8h7IrBU= github.com/jessevdk/go-flags v0.0.0-20141203071132-1679536dcc89/go.mod h1:4FA24M0QyGHXBuZZK/XkWh8h0e1EYbRYJSGM75WSRxI= github.com/jessevdk/go-flags v1.4.0/go.mod h1:4FA24M0QyGHXBuZZK/XkWh8h0e1EYbRYJSGM75WSRxI= -github.com/jpillora/backoff v1.0.0/go.mod h1:J/6gKK9jxlEcS3zixgDgUAsiuZ7yrSoa/FX5e0EB2j4= github.com/jrick/logrotate v1.0.0/go.mod h1:LNinyqDIJnpAur+b8yyulnQw/wDuN1+BYKlTRt3OuAQ= github.com/json-iterator/go v1.1.6/go.mod h1:+SdeFBvtyEkXs7REEP0seUULqWtbJapLOCVDaaPEHmU= github.com/json-iterator/go v1.1.12 h1:PV8peI4a0ysnczrg+LtxykD8LfKY9ML6u2jnxaEnrnM= @@ -274,7 +280,6 @@ github.com/json-iterator/go v1.1.12/go.mod h1:e30LSqwooZae/UwlEbR2852Gd8hjQvJoHm github.com/jstemmer/go-junit-report v0.0.0-20190106144839-af01ea7f8024/go.mod h1:6v2b51hI/fHJwM22ozAgKL4VKDeJcHhJFhtBdhmNjmU= github.com/jtolds/gls v4.20.0+incompatible h1:xdiiI2gbIgH/gLH7ADydsJ1uDOEzR8yvV7C0MuV77Wo= github.com/jtolds/gls v4.20.0+incompatible/go.mod h1:QJZ7F/aHp+rZTRtaJ1ow/lLfFfVYBRgL+9YlvaHOwJU= -github.com/julienschmidt/httprouter v1.3.0/go.mod h1:JR6WtHb+2LUe8TCKY3cZOxFyyO8IZAc4RVcycCCAKdM= github.com/keybase/go-ps v0.0.0-20190827175125-91aafc93ba19/go.mod h1:hY+WOq6m2FpbvyrI93sMaypsttvaIL5nhVR92dTMUcQ= github.com/kisielk/errcheck v1.2.0/go.mod h1:/BMXB+zMLi60iA8Vv6Ksmxu/1UDYcXs4uQLJ+jE2L00= github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= @@ -291,12 +296,14 @@ github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORN github.com/kr/pretty v0.2.1/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI= github.com/kr/pretty v0.3.0/go.mod h1:640gp4NfQd8pI5XOwp5fnNeVWj67G7CFk/SaSQn7NBk= github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE= +github.com/kr/pretty v0.3.1/go.mod h1:hoEshYVHaxMs3cyo3Yncou5ZscifuDolrwPKZanG3xk= github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= github.com/kr/pty v1.1.3/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= github.com/kylelemons/godebug v1.1.0 h1:RPNrshWIDI6G2gRW9EHilWtl7Z6Sb1BR0xunSBf0SNc= +github.com/kylelemons/godebug v1.1.0/go.mod h1:9/0rRGxNHcop5bhtWyNeEfOS8JIWk580+fNqagV/RAw= github.com/leodido/go-urn v1.2.1/go.mod h1:zt4jvISO2HfUBqxjfIshjdMTYS56ZS/qv49ictyFfxY= github.com/leodido/go-urn v1.4.0 h1:WT9HwE9SGECu3lg4d/dIA+jxlljEa1/ffXKmRjqdmIQ= github.com/leodido/go-urn v1.4.0/go.mod h1:bvxc+MVxLKB4z00jd1z+Dvzr47oO32F/QSNjSBOlFxI= @@ -321,6 +328,7 @@ github.com/libp2p/go-libp2p-record v0.3.1/go.mod h1:T8itUkLcWQLCYMqtX7Th6r7SexyU github.com/libp2p/go-libp2p-routing-helpers v0.7.4 h1:6LqS1Bzn5CfDJ4tzvP9uwh42IB7TJLNFJA6dEeGBv84= github.com/libp2p/go-libp2p-routing-helpers v0.7.4/go.mod h1:we5WDj9tbolBXOuF1hGOkR+r7Uh1408tQbAKaT5n1LE= github.com/libp2p/go-libp2p-testing v0.12.0 h1:EPvBb4kKMWO29qP4mZGyhVzUyR25dvfUIK5WDu6iPUA= +github.com/libp2p/go-libp2p-testing v0.12.0/go.mod h1:KcGDRXyN7sQCllucn1cOOS+Dmm7ujhfEyXQL5lvkcPg= github.com/libp2p/go-msgio v0.3.0 h1:mf3Z8B1xcFN314sWX+2vOTShIE0Mmn2TXn3YCUQGNj0= github.com/libp2p/go-msgio v0.3.0/go.mod h1:nyRM819GmVaF9LX3l03RMh10QdOroF++NBbxAb0mmDM= github.com/libp2p/go-nat v0.2.0 h1:Tyz+bUFAYqGyJ/ppPPymMGbIgNRH+WqC5QrT5fKrrGk= @@ -393,20 +401,6 @@ github.com/multiversx/concurrent-map v0.1.4 h1:hdnbM8VE4b0KYJaGY5yJS2aNIW9TFFsUY github.com/multiversx/concurrent-map v0.1.4/go.mod h1:8cWFRJDOrWHOTNSqgYCUvwT7c7eFQ4U2vKMOp4A/9+o= github.com/multiversx/mx-chain-communication-go v1.2.1-0.20250520083403-3f2bad6d5476 h1:Dn73bH1AdG+7+3/FFRfOiivOEvwPyzZUBWWxpk8QVxc= github.com/multiversx/mx-chain-communication-go v1.2.1-0.20250520083403-3f2bad6d5476/go.mod h1:99+FW6f7X0Ri5tph+2l2GaDVrdej1do89exkfh7gilE= -github.com/multiversx/mx-chain-core-go v1.3.2-0.20250520074139-18b645ad397a h1:dhCobNEcBdvutX+0UYF/l86oLVO9iUiUeF3sLFa9qhE= -github.com/multiversx/mx-chain-core-go v1.3.2-0.20250520074139-18b645ad397a/go.mod h1:IO+vspNan+gT0WOHnJ95uvWygiziHZvfXpff6KnxV7g= -github.com/multiversx/mx-chain-core-go v1.3.2-0.20250530132055-773440aff733 h1:37dln6oXCCqRcemRWG+RmX4lONIuYvIqDR7+K9vtztw= -github.com/multiversx/mx-chain-core-go v1.3.2-0.20250530132055-773440aff733/go.mod h1:IO+vspNan+gT0WOHnJ95uvWygiziHZvfXpff6KnxV7g= -github.com/multiversx/mx-chain-core-go v1.3.2-0.20250530134938-7081b1d69c9e h1:3fvPe+o4YaoPjmBr4GcyNf0ZHwTWGAyW8g/UYfnUDAs= -github.com/multiversx/mx-chain-core-go v1.3.2-0.20250530134938-7081b1d69c9e/go.mod h1:IO+vspNan+gT0WOHnJ95uvWygiziHZvfXpff6KnxV7g= -github.com/multiversx/mx-chain-core-go v1.3.2-0.20250530135701-7041f5f136c3 h1:JmXS0et0wDI/ifOGt3mx4D536Ydg0fb9b0en4WR1Tj8= -github.com/multiversx/mx-chain-core-go v1.3.2-0.20250530135701-7041f5f136c3/go.mod h1:IO+vspNan+gT0WOHnJ95uvWygiziHZvfXpff6KnxV7g= -github.com/multiversx/mx-chain-core-go v1.3.2-0.20250530140838-6e94e3fb2048 h1:aCmWFwLAbgqsiFNjCCicotOTEyQQNPg4ENZVbSbYu3o= -github.com/multiversx/mx-chain-core-go v1.3.2-0.20250530140838-6e94e3fb2048/go.mod h1:IO+vspNan+gT0WOHnJ95uvWygiziHZvfXpff6KnxV7g= -github.com/multiversx/mx-chain-core-go v1.3.2-0.20250530144624-eafce60ad94b h1:6YvXKdV52LffTsgh92N+R8SA0OCSzjrpevwrQXcA7fo= -github.com/multiversx/mx-chain-core-go v1.3.2-0.20250530144624-eafce60ad94b/go.mod h1:IO+vspNan+gT0WOHnJ95uvWygiziHZvfXpff6KnxV7g= -github.com/multiversx/mx-chain-core-go v1.3.2-0.20250602085906-55f143cddf0a h1:GKCXyMysXrQVSsZ6vm86geEmSzEDo6Q5I/vJXMwIXB4= -github.com/multiversx/mx-chain-core-go v1.3.2-0.20250602085906-55f143cddf0a/go.mod h1:IO+vspNan+gT0WOHnJ95uvWygiziHZvfXpff6KnxV7g= github.com/multiversx/mx-chain-core-go v1.3.2-0.20250602142114-cb1013453d39 h1:a+98PN1XXTCYiJEdg7gpqfTOxGuQqvA8H1yglidV/p0= github.com/multiversx/mx-chain-core-go v1.3.2-0.20250602142114-cb1013453d39/go.mod h1:IO+vspNan+gT0WOHnJ95uvWygiziHZvfXpff6KnxV7g= github.com/multiversx/mx-chain-crypto-go v1.2.13-0.20250520075055-8ab2a164945d h1:NI5uKpkwP5XZu9gtDiWxmbbb07T9hXegPist17WAzY4= @@ -415,14 +409,14 @@ github.com/multiversx/mx-chain-es-indexer-go v1.8.2-0.20250520083544-09915e4d9ba github.com/multiversx/mx-chain-es-indexer-go v1.8.2-0.20250520083544-09915e4d9bae/go.mod h1:rU+8opckju7oVlu+UmD3esSV0jvP8Lu7E1raTRXDyv8= github.com/multiversx/mx-chain-logger-go v1.0.16-0.20250520074859-b2faf3c90273 h1:1I2CgGDAMINxrKI6yzSP/Y6Wow2YUmqegUXcltpGXQA= github.com/multiversx/mx-chain-logger-go v1.0.16-0.20250520074859-b2faf3c90273/go.mod h1:M/uRv1kpmkzxS5HsgofdRcOHzzvagD7nTmFqiPKt89U= -github.com/multiversx/mx-chain-scenario-go v1.5.1-0.20250520075713-734e46b4c66d h1:BEJHmDMqoDzgNWx/jWn191WoSHLCIQmKszyJGEYWlyA= -github.com/multiversx/mx-chain-scenario-go v1.5.1-0.20250520075713-734e46b4c66d/go.mod h1:/bgycTrJGk6n6VlgW+onXRQKiCM3GFM+INENvj/PRgU= +github.com/multiversx/mx-chain-scenario-go v1.5.1-0.20250604103542-36f3bd94d7d6 h1:5opNfo/iaowlghrAebCBQG4VIKooQ26U1rFpctdXyy4= +github.com/multiversx/mx-chain-scenario-go v1.5.1-0.20250604103542-36f3bd94d7d6/go.mod h1:MAnOkKa27CXLwDPLFcYOGpZv8JVGe/CDKHT0TTtXHXM= github.com/multiversx/mx-chain-storage-go v1.0.20-0.20250520075958-65fd4c7bcaae h1:wgiIjyoynLQPs8QkEOXjAU8AoZlLA5w4rWPykLS2BSo= github.com/multiversx/mx-chain-storage-go v1.0.20-0.20250520075958-65fd4c7bcaae/go.mod h1:uiXDLvpznajMubl+OBhODo6jmtwo8kyUF9iujEhOIgI= -github.com/multiversx/mx-chain-vm-common-go v1.5.17-0.20250520075408-c94bee9ee163 h1:I6WEqu3ysY41nRV7mUvdCsKyuBZlHyKngIjW4ncEcLI= -github.com/multiversx/mx-chain-vm-common-go v1.5.17-0.20250520075408-c94bee9ee163/go.mod h1:HlpJgCTYVvHE1nrEJLIsR/AJx0gqzg3m+qdJwf7jOjU= -github.com/multiversx/mx-chain-vm-go v1.5.41-0.20250520080530-2838146363b4 h1:FTgwsqn/PXEooGfO4zjEn+oH014A6agOXjeMDllneL8= -github.com/multiversx/mx-chain-vm-go v1.5.41-0.20250520080530-2838146363b4/go.mod h1:vfFEw1qAmR1mUU8/p2EKu2woKS+o9W8wSqi3muEqRds= +github.com/multiversx/mx-chain-vm-common-go v1.5.17-0.20250604100541-1efc3d1b1314 h1:C2nlGnUyAoP2dBOEXBYwt7KXAv96m5tl3l2H208NVoA= +github.com/multiversx/mx-chain-vm-common-go v1.5.17-0.20250604100541-1efc3d1b1314/go.mod h1:HlpJgCTYVvHE1nrEJLIsR/AJx0gqzg3m+qdJwf7jOjU= +github.com/multiversx/mx-chain-vm-go v1.5.41-0.20250604113045-eff4276efd40 h1:WsmboPY0hySRPlQQPbY1QbG9OFqwH4G96rdwg+se17k= +github.com/multiversx/mx-chain-vm-go v1.5.41-0.20250604113045-eff4276efd40/go.mod h1:K9NYP80fWFD7pSRG+5RQ42P9AGTsbdSF6Y9vLC1M4Z0= github.com/multiversx/mx-chain-vm-v1_2-go v1.2.69-0.20250520080927-410c413d962f h1:Sg1SZWm90IeliVPce3w0CtLjr+a+mcWAFVHW2VGR0nA= github.com/multiversx/mx-chain-vm-v1_2-go v1.2.69-0.20250520080927-410c413d962f/go.mod h1:aeGXPTVkUDsPcHwuSer2VXEnMow7iofEvuDGPd47Cj8= github.com/multiversx/mx-chain-vm-v1_3-go v1.3.70-0.20250520081414-edf8b75e054d h1:DFYWypkQs7BYepsLPz/IIN8cGsEf4+fWM9L0a6mnfKU= @@ -435,7 +429,6 @@ github.com/multiversx/protobuf v1.3.2 h1:RaNkxvGTGbA0lMcnHAN24qE1G1i+Xs5yHA6MDvQ github.com/multiversx/protobuf v1.3.2/go.mod h1:SlYgWuQ5SjCEi6WLHjHCa1yvBfUnHcTbrrZtXPKa29o= github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 h1:C3w9PqII01/Oq1c1nUAm88MOHcQC9l5mIlSMApZMrHA= github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822/go.mod h1:+n7T8mK8HuQTcFwEeznm/DIxMOiR9yIdICNftLE1DvQ= -github.com/mwitkow/go-conntrack v0.0.0-20190716064945-2f068394615f/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U= github.com/neelance/astrewrite v0.0.0-20160511093645-99348263ae86/go.mod h1:kHJEU3ofeGjhHklVoIGuVj85JJwZ6kWPaJwCIxgnFmo= github.com/neelance/sourcemap v0.0.0-20151028013722-8c68805598ab/go.mod h1:Qr6/a/Q4r9LP1IltGz7tA7iOK1WonHEYhu1HRBA7ZiM= github.com/nsf/termbox-go v0.0.0-20190121233118-02980233997d h1:x3S6kxmy49zXVVyhcnrFqxvNVCBPb2KZ9hV2RBdS840= @@ -443,6 +436,7 @@ github.com/nsf/termbox-go v0.0.0-20190121233118-02980233997d/go.mod h1:IuKpRQcYE github.com/nxadm/tail v1.4.4/go.mod h1:kenIhsEOeOJmVchQTgglprH7qJGnHDVpk1VPCcaMI8A= github.com/nxadm/tail v1.4.8/go.mod h1:+ncqLTQzXmGhMZNUePPaPqPvBxHAIsmXswZKocGu+AU= github.com/nxadm/tail v1.4.11 h1:8feyoE3OzPrcshW5/MJ4sGESc5cqmGkGCWlco4l0bqY= +github.com/nxadm/tail v1.4.11/go.mod h1:OTaG3NK980DZzxbRq6lEuzgU+mug70nY11sMd4JXXHc= github.com/onsi/ginkgo v1.6.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= github.com/onsi/ginkgo v1.7.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= github.com/onsi/ginkgo v1.12.1/go.mod h1:zj2OWP4+oCPe1qIXoGWkgMRwljMUYCdkwsT2108oapk= @@ -460,6 +454,7 @@ github.com/onsi/gomega v1.10.1/go.mod h1:iN09h71vgCQne3DLsj+A5owkum+a2tYe+TOCB1y github.com/onsi/gomega v1.17.0/go.mod h1:HnhC7FXeEQY45zxNK3PPoIUhzk/80Xly9PcubAlGdZY= github.com/onsi/gomega v1.19.0/go.mod h1:LY+I3pBVzYsTBU1AnDwOSxaYi9WoWiqgwooUqq9yPro= github.com/onsi/gomega v1.34.2 h1:pNCwDkzrsv7MS9kpaQvVb1aVLahQXyJ/Tv5oAZMI3i8= +github.com/onsi/gomega v1.34.2/go.mod h1:v1xfxRgk0KIsG+QOdm7p8UosrOzPYRo60fd3B/1Dukc= github.com/opencontainers/runtime-spec v1.0.2/go.mod h1:jwyrGlmzljRJv/Fgzds9SsS/C5hL+LL3ko9hs6T5lQ0= github.com/opencontainers/runtime-spec v1.2.0 h1:z97+pHb3uELt/yiAWD691HNHQIF07bE7dzrbT927iTk= github.com/opencontainers/runtime-spec v1.2.0/go.mod h1:jwyrGlmzljRJv/Fgzds9SsS/C5hL+LL3ko9hs6T5lQ0= @@ -548,6 +543,7 @@ github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFR github.com/rogpeppe/go-internal v1.6.1/go.mod h1:xXDCJY+GAPziupqXw64V24skbSoqbTEfhy4qGm1nDQc= github.com/rogpeppe/go-internal v1.8.0/go.mod h1:WmiCO8CzOY8rg0OYDC4/i/2WRWAB6poM+XZ2dLUbcbE= github.com/rogpeppe/go-internal v1.13.1 h1:KvO1DLK/DRN07sQ1LQKScxyZJuNnedQ5/wKSR38lUII= +github.com/rogpeppe/go-internal v1.13.1/go.mod h1:uMEvuHeurkdAXX61udpOXGD/AzZDWNMNyH2VO9fmH0o= github.com/russross/blackfriday v1.5.2/go.mod h1:JO/DiYxRf+HjHt06OyowR9PTA263kcR/rfWxYHBV53g= github.com/russross/blackfriday/v2 v2.0.1/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= github.com/russross/blackfriday/v2 v2.1.0 h1:JIOH55/0cWyOuilr9/qlrm0BSXldqnqwMsf35Ld67mk= @@ -668,6 +664,7 @@ go.uber.org/fx v1.23.0 h1:lIr/gYWQGfTwGcSXWXu4vP5Ws6iqnNEIY+F/aFzCKTg= go.uber.org/fx v1.23.0/go.mod h1:o/D9n+2mLP6v1EG+qsdT1O8wKopYAsqZasju97SDFCU= go.uber.org/goleak v1.1.11-0.20210813005559-691160354723/go.mod h1:cwTWslyiVhfpKIDGSZEM2HlOvcqm+tG4zioyIeLoqMQ= go.uber.org/goleak v1.3.0 h1:2K3zAYmnTNqV73imy9J1T3WC+gmCePx2hEGkimedGto= +go.uber.org/goleak v1.3.0/go.mod h1:CoHD4mav9JJNrW/WLlf7HGZPjdw8EucARQHekz1X6bE= go.uber.org/mock v0.5.0 h1:KAMbZvZPyBPWgD14IrIQ38QCyjwpvVVV6K/bHl1IwQU= go.uber.org/mock v0.5.0/go.mod h1:ge71pBPLYDk7QIi1LupWxdAykm7KIEFchiOqd6z7qMM= go.uber.org/multierr v1.5.0/go.mod h1:FeouvMocqHpRaaGuG9EjoKcStLC43Zu/fmqdUMPcKYU= @@ -832,6 +829,7 @@ golang.org/x/text v0.21.0/go.mod h1:4IBbMaMmOPCJ8SecivzSH54+73PCFmPWxNTLm+vZkEQ= golang.org/x/time v0.0.0-20180412165947-fbb02b2291d2/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.5.0 h1:o7cqy6amK/52YcAKIPlM3a+Fpj35zvRj2TP+e1xFSfk= +golang.org/x/time v0.5.0/go.mod h1:3BpzKBy/shNhVucY/MWOyx10tF3SFh9QdLuxbVysPQM= golang.org/x/tools v0.0.0-20180828015842-6cd1fcedba52/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20181030000716-a0a13e073c7b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= diff --git a/process/interface.go b/process/interface.go index bf8d4040b26..73ae0057cd4 100644 --- a/process/interface.go +++ b/process/interface.go @@ -510,18 +510,20 @@ type BlockChainHookHandler interface { LastNonce() uint64 LastRound() uint64 LastTimeStamp() uint64 + LastTimeStampMs() uint64 LastRandomSeed() []byte LastEpoch() uint32 GetStateRootHash() []byte CurrentNonce() uint64 CurrentRound() uint64 CurrentTimeStamp() uint64 + CurrentTimeStampMs() uint64 CurrentRandomSeed() []byte CurrentEpoch() uint32 RoundTime() uint64 EpochStartBlockNonce() uint64 EpochStartBlockRound() uint64 - EpochStartBlockTimeStamp() uint64 + EpochStartBlockTimeStampMs() uint64 NewAddress(creatorAddress []byte, creatorNonce uint64, vmType []byte) ([]byte, error) ProcessBuiltInFunction(input *vmcommon.ContractCallInput) (*vmcommon.VMOutput, error) SaveNFTMetaDataToSystemAccount(tx data.TransactionHandler) error diff --git a/process/smartContract/hooks/blockChainHook.go b/process/smartContract/hooks/blockChainHook.go index 3870806ea01..7e7d5af6c15 100644 --- a/process/smartContract/hooks/blockChainHook.go +++ b/process/smartContract/hooks/blockChainHook.go @@ -426,8 +426,8 @@ func (bh *BlockChainHookImpl) RoundTime() uint64 { return uint64(roundDuration.Milliseconds()) } -// EpochStartBlockTimeStamp returns the timestamp of the first block of the current epoch -func (bh *BlockChainHookImpl) EpochStartBlockTimeStamp() uint64 { +// EpochStartBlockTimeStampMs returns the timestamp of the first block of the current epoch in milliseconds +func (bh *BlockChainHookImpl) EpochStartBlockTimeStampMs() uint64 { bh.mutEpochStartHdr.RLock() defer bh.mutEpochStartHdr.RUnlock() diff --git a/process/smartContract/hooks/blockChainHook_test.go b/process/smartContract/hooks/blockChainHook_test.go index c53957441ad..76ed626a465 100644 --- a/process/smartContract/hooks/blockChainHook_test.go +++ b/process/smartContract/hooks/blockChainHook_test.go @@ -1079,7 +1079,7 @@ func TestBlockChainHookImpl_GettersFromCurrentHeader(t *testing.T) { assert.Equal(t, epochStartRound, bh.EpochStartBlockRound()) expEpochStartTimestamp := common.ConvertTimeStampSecToMs(epochStartTimestamp) - assert.Equal(t, expEpochStartTimestamp, bh.EpochStartBlockTimeStamp()) + assert.Equal(t, expEpochStartTimestamp, bh.EpochStartBlockTimeStampMs()) err = bh.SetCurrentHeader(nil) require.Equal(t, hooks.ErrNilCurrentHeader, err) @@ -1121,7 +1121,7 @@ func TestBlockChainHookImpl_UpdateEpochStartHeaderFromCurrentHeader(t *testing.T assert.Equal(t, epochStartRound, bh.EpochStartBlockRound()) expEpochStartTimestamp := common.ConvertTimeStampSecToMs(epochStartTimestamp) - assert.Equal(t, expEpochStartTimestamp, bh.EpochStartBlockTimeStamp()) + assert.Equal(t, expEpochStartTimestamp, bh.EpochStartBlockTimeStampMs()) }) t.Run("epoch start header should remain set even if a new non-epoch-start block is set", func(t *testing.T) { @@ -1172,7 +1172,7 @@ func TestBlockChainHookImpl_UpdateEpochStartHeaderFromCurrentHeader(t *testing.T assert.Equal(t, epochStartRound, bh.EpochStartBlockRound()) expEpochStartTimestamp := common.ConvertTimeStampSecToMs(epochStartTimestamp) - assert.Equal(t, expEpochStartTimestamp, bh.EpochStartBlockTimeStamp()) + assert.Equal(t, expEpochStartTimestamp, bh.EpochStartBlockTimeStampMs()) }) t.Run("if current header epoch is 0, expect the genesis epoch start block to be set", func(t *testing.T) { @@ -1207,7 +1207,7 @@ func TestBlockChainHookImpl_UpdateEpochStartHeaderFromCurrentHeader(t *testing.T assert.Equal(t, genesisBlock.GetNonce(), bh.EpochStartBlockNonce()) assert.Equal(t, genesisBlock.GetRound(), bh.EpochStartBlockRound()) - assert.Equal(t, genesisBlock.GetTimeStamp(), bh.EpochStartBlockTimeStamp()) + assert.Equal(t, genesisBlock.GetTimeStamp(), bh.EpochStartBlockTimeStampMs()) }) t.Run("get last commited epoch start block if not set", func(t *testing.T) { @@ -1261,7 +1261,7 @@ func TestBlockChainHookImpl_UpdateEpochStartHeaderFromCurrentHeader(t *testing.T assert.Equal(t, epochStartRound, bh.EpochStartBlockRound()) expEpochStartTimestamp := common.ConvertTimeStampSecToMs(epochStartTimestamp) - assert.Equal(t, expEpochStartTimestamp, bh.EpochStartBlockTimeStamp()) + assert.Equal(t, expEpochStartTimestamp, bh.EpochStartBlockTimeStampMs()) }) t.Run("get epoch start header from storage if not found in last commited", func(t *testing.T) { @@ -1327,7 +1327,7 @@ func TestBlockChainHookImpl_UpdateEpochStartHeaderFromCurrentHeader(t *testing.T assert.Equal(t, epochStartRound, bh.EpochStartBlockRound()) expEpochStartTimestamp := common.ConvertTimeStampSecToMs(epochStartTimestamp) - assert.Equal(t, expEpochStartTimestamp, bh.EpochStartBlockTimeStamp()) + assert.Equal(t, expEpochStartTimestamp, bh.EpochStartBlockTimeStampMs()) }) } @@ -1359,7 +1359,7 @@ func TestBlockChainHookImpl_GettersFromEpochStartHeader(t *testing.T) { assert.Equal(t, epochStartNonce, bh.EpochStartBlockNonce()) assert.Equal(t, epochStartRound, bh.EpochStartBlockRound()) - assert.Equal(t, expEpochStartTimestamp, bh.EpochStartBlockTimeStamp()) + assert.Equal(t, expEpochStartTimestamp, bh.EpochStartBlockTimeStampMs()) } func TestBlockChainHookImpl_GettersFromRoundHandler(t *testing.T) { @@ -2740,7 +2740,7 @@ func TestBlockChainHookImpl_ConcurrencyTimeOperations(t *testing.T) { case 4: _ = bh.RoundTime() case 5: - _ = bh.EpochStartBlockTimeStamp() + _ = bh.EpochStartBlockTimeStampMs() } wg.Done() diff --git a/testscommon/blockChainHookStub.go b/testscommon/blockChainHookStub.go index 8ffb74d2729..3b0f52aea90 100644 --- a/testscommon/blockChainHookStub.go +++ b/testscommon/blockChainHookStub.go @@ -16,18 +16,20 @@ type BlockChainHookStub struct { LastNonceCalled func() uint64 LastRoundCalled func() uint64 LastTimeStampCalled func() uint64 + LastTimeStampMsCalled func() uint64 LastRandomSeedCalled func() []byte LastEpochCalled func() uint32 GetStateRootHashCalled func() []byte CurrentNonceCalled func() uint64 CurrentRoundCalled func() uint64 CurrentTimeStampCalled func() uint64 + CurrentTimeStampMsCalled func() uint64 CurrentRandomSeedCalled func() []byte CurrentEpochCalled func() uint32 RoundTimeCalled func() uint64 EpochStartBlockNonceCalled func() uint64 EpochStartBlockRoundCalled func() uint64 - EpochStartBlockTimeStampCalled func() uint64 + EpochStartBlockTimeStampMsCalled func() uint64 ProcessBuiltInFunctionCalled func(input *vmcommon.ContractCallInput) (*vmcommon.VMOutput, error) GetBuiltinFunctionNamesCalled func() vmcommon.FunctionNames GetBuiltinFunctionsContainerCalled func() vmcommon.BuiltInFunctionContainer @@ -124,6 +126,17 @@ func (stub *BlockChainHookStub) LastTimeStamp() uint64 { return 0 } +// LastTimeStampMs - + +// LastTimeStampMs - +func (stub *BlockChainHookStub) LastTimeStampMs() uint64 { + if stub.LastTimeStampMsCalled != nil { + return stub.LastTimeStampMsCalled() + } + + return 0 +} + // LastRandomSeed - func (stub *BlockChainHookStub) LastRandomSeed() []byte { if stub.LastRandomSeedCalled != nil { @@ -178,6 +191,15 @@ func (stub *BlockChainHookStub) CurrentTimeStamp() uint64 { return 0 } +// CurrentTimeStampMs - +func (stub *BlockChainHookStub) CurrentTimeStampMs() uint64 { + if stub.CurrentTimeStampMsCalled != nil { + return stub.CurrentTimeStampMsCalled() + } + + return 0 +} + // CurrentRandomSeed - func (stub *BlockChainHookStub) CurrentRandomSeed() []byte { if stub.CurrentRandomSeedCalled != nil { @@ -224,9 +246,9 @@ func (stub *BlockChainHookStub) EpochStartBlockRound() uint64 { } // EpochStartBlockTimeStamp - -func (stub *BlockChainHookStub) EpochStartBlockTimeStamp() uint64 { - if stub.EpochStartBlockTimeStampCalled != nil { - return stub.EpochStartBlockTimeStampCalled() +func (stub *BlockChainHookStub) EpochStartBlockTimeStampMs() uint64 { + if stub.EpochStartBlockTimeStampMsCalled != nil { + return stub.EpochStartBlockTimeStampMsCalled() } return 0 From 4890541ca73810c64f4b9866c0a7856e0d14a0fa Mon Sep 17 00:00:00 2001 From: Laurentiu Ciobanu Date: Wed, 4 Jun 2025 15:11:08 +0000 Subject: [PATCH 3/3] update vm version --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index 71e26112fab..9215d05a1be 100644 --- a/go.mod +++ b/go.mod @@ -24,7 +24,7 @@ require ( github.com/multiversx/mx-chain-scenario-go v1.5.1-0.20250604103542-36f3bd94d7d6 github.com/multiversx/mx-chain-storage-go v1.0.20-0.20250520075958-65fd4c7bcaae github.com/multiversx/mx-chain-vm-common-go v1.5.17-0.20250604100541-1efc3d1b1314 - github.com/multiversx/mx-chain-vm-go v1.5.41-0.20250604113045-eff4276efd40 + github.com/multiversx/mx-chain-vm-go v1.5.41-0.20250604150811-9423eaaf469e github.com/multiversx/mx-chain-vm-v1_2-go v1.2.69-0.20250520080927-410c413d962f github.com/multiversx/mx-chain-vm-v1_3-go v1.3.70-0.20250520081414-edf8b75e054d github.com/multiversx/mx-chain-vm-v1_4-go v1.4.99-0.20250520081749-516b5ae0e49c diff --git a/go.sum b/go.sum index f5b75446767..b2f1bfae98a 100644 --- a/go.sum +++ b/go.sum @@ -415,8 +415,8 @@ github.com/multiversx/mx-chain-storage-go v1.0.20-0.20250520075958-65fd4c7bcaae github.com/multiversx/mx-chain-storage-go v1.0.20-0.20250520075958-65fd4c7bcaae/go.mod h1:uiXDLvpznajMubl+OBhODo6jmtwo8kyUF9iujEhOIgI= github.com/multiversx/mx-chain-vm-common-go v1.5.17-0.20250604100541-1efc3d1b1314 h1:C2nlGnUyAoP2dBOEXBYwt7KXAv96m5tl3l2H208NVoA= github.com/multiversx/mx-chain-vm-common-go v1.5.17-0.20250604100541-1efc3d1b1314/go.mod h1:HlpJgCTYVvHE1nrEJLIsR/AJx0gqzg3m+qdJwf7jOjU= -github.com/multiversx/mx-chain-vm-go v1.5.41-0.20250604113045-eff4276efd40 h1:WsmboPY0hySRPlQQPbY1QbG9OFqwH4G96rdwg+se17k= -github.com/multiversx/mx-chain-vm-go v1.5.41-0.20250604113045-eff4276efd40/go.mod h1:K9NYP80fWFD7pSRG+5RQ42P9AGTsbdSF6Y9vLC1M4Z0= +github.com/multiversx/mx-chain-vm-go v1.5.41-0.20250604150811-9423eaaf469e h1:XcD4vaL0FuJuMEk5So18DIzxdL0tD+XvJgGV8s/pUEw= +github.com/multiversx/mx-chain-vm-go v1.5.41-0.20250604150811-9423eaaf469e/go.mod h1:K9NYP80fWFD7pSRG+5RQ42P9AGTsbdSF6Y9vLC1M4Z0= github.com/multiversx/mx-chain-vm-v1_2-go v1.2.69-0.20250520080927-410c413d962f h1:Sg1SZWm90IeliVPce3w0CtLjr+a+mcWAFVHW2VGR0nA= github.com/multiversx/mx-chain-vm-v1_2-go v1.2.69-0.20250520080927-410c413d962f/go.mod h1:aeGXPTVkUDsPcHwuSer2VXEnMow7iofEvuDGPd47Cj8= github.com/multiversx/mx-chain-vm-v1_3-go v1.3.70-0.20250520081414-edf8b75e054d h1:DFYWypkQs7BYepsLPz/IIN8cGsEf4+fWM9L0a6mnfKU=