From 896ed8ad9232f57a33aa7d735c0931efcbb19c72 Mon Sep 17 00:00:00 2001 From: Piotr Macek <4007944+piotrm50@users.noreply.github.com> Date: Tue, 4 Jun 2024 12:30:10 +0200 Subject: [PATCH 1/4] Trigger AccountCreated event when accounts are visible in the ledger. Hook up AccountDestroyed event. --- pkg/protocol/engine/ledger/ledger/ledger.go | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/pkg/protocol/engine/ledger/ledger/ledger.go b/pkg/protocol/engine/ledger/ledger/ledger.go index e0b177089..917076d74 100644 --- a/pkg/protocol/engine/ledger/ledger/ledger.go +++ b/pkg/protocol/engine/ledger/ledger/ledger.go @@ -174,6 +174,13 @@ func (l *Ledger) CommitSlot(slot iotago.SlotIndex) (stateRoot iotago.Identifier, return iotago.Identifier{}, iotago.Identifier{}, iotago.Identifier{}, nil, nil, nil, ierrors.Wrapf(err, "failed to process outputs consumed and created in slot %d", slot) } + // Trigger AccountDestroyed event before accounts are removed from the ledgers so that components (like Scheduler), + // that listen to that event always can access consistent view of the account. + _ = destroyedAccounts.ForEach(func(accountID iotago.AccountID) error { + l.events.AccountDestroyed.Trigger(accountID) + + return nil + }) l.prepareAccountDiffs(accountDiffs, slot, consumedAccounts, createdAccounts) // Commit the changes @@ -203,6 +210,12 @@ func (l *Ledger) CommitSlot(slot iotago.SlotIndex) (stateRoot iotago.Identifier, return iotago.Identifier{}, iotago.Identifier{}, iotago.Identifier{}, nil, nil, nil, ierrors.Wrapf(err, "failed to apply diff to mana manager for slot %d", slot) } + // Created account event need to be triggered only after the AccountLedger and UTXO ledger are updated, + // so that components (like Scheduler) that listen to the event can access the consistent account state. + for accountID := range createdAccounts { + l.events.AccountCreated.Trigger(accountID) + } + // Mark each transaction as committed so the mempool can evict it stateDiff.ExecutedTransactions().ForEach(func(_ iotago.TransactionID, tx mempool.TransactionMetadata) bool { tx.Commit() @@ -523,7 +536,6 @@ func (l *Ledger) processCreatedAndConsumedAccountOutputs(stateDiff mempool.State accountID := createdAccount.AccountID if accountID.Empty() { accountID = iotago.AccountIDFromOutputID(createdOutput.OutputID()) - l.events.AccountCreated.Trigger(accountID) } createdAccounts[accountID] = createdOutput @@ -542,7 +554,6 @@ func (l *Ledger) processCreatedAndConsumedAccountOutputs(stateDiff mempool.State // if a basic output is sent to an implicit account creation address, we need to create the account if createdOutput.Output().UnlockConditionSet().Address().Address.Type() == iotago.AddressImplicitAccountCreation { accountID := iotago.AccountIDFromOutputID(createdOutput.OutputID()) - l.events.AccountCreated.Trigger(accountID) createdAccounts[accountID] = createdOutput } } From 4eec57bc71269ac96550c85686538dc0f28ba600 Mon Sep 17 00:00:00 2001 From: Piotr Macek <4007944+piotrm50@users.noreply.github.com> Date: Tue, 4 Jun 2024 12:34:40 +0200 Subject: [PATCH 2/4] Panic sooner not to compound the problem. --- .../congestioncontrol/scheduler/drr/scheduler.go | 13 ++++--------- 1 file changed, 4 insertions(+), 9 deletions(-) diff --git a/pkg/protocol/engine/congestioncontrol/scheduler/drr/scheduler.go b/pkg/protocol/engine/congestioncontrol/scheduler/drr/scheduler.go index 6d576ab90..14e754700 100644 --- a/pkg/protocol/engine/congestioncontrol/scheduler/drr/scheduler.go +++ b/pkg/protocol/engine/congestioncontrol/scheduler/drr/scheduler.go @@ -474,8 +474,7 @@ func (s *Scheduler) selectBasicBlockWithoutLocking() { issuerID := queue.IssuerID() if _, err := s.incrementDeficit(issuerID, rounds, slot); err != nil { - s.errorHandler(ierrors.Wrapf(err, "failed to increment deficit for issuerID %s in slot %d", issuerID, slot)) - s.removeIssuer(issuerID, err) + s.LogPanic(ierrors.Wrapf(err, "failed to increment deficit for issuerID %s in slot %d", issuerID, slot).Error()) } return true @@ -493,8 +492,7 @@ func (s *Scheduler) selectBasicBlockWithoutLocking() { issuerID := q.IssuerID() newDeficit, err := s.incrementDeficit(issuerID, 1, slot) if err != nil { - s.errorHandler(ierrors.Wrapf(err, "failed to increment deficit for issuerID %s in slot %d", issuerID, slot)) - s.removeIssuer(issuerID, err) + s.LogPanic(ierrors.Wrapf(err, "failed to increment deficit for issuerID %s in slot %d", issuerID, slot).Error()) return } @@ -559,10 +557,7 @@ func (s *Scheduler) selectIssuer(slot iotago.SlotIndex) (Deficit, *IssuerQueue) // calculate how many rounds we need to skip to accumulate enough deficit. quantum, err := s.quantumFunc(issuerID, slot) if err != nil { - s.errorHandler(ierrors.Wrapf(err, "failed to retrieve quantum for issuerID %s in slot %d during issuer selection", issuerID, slot)) - - // if quantum, can't be retrieved, we need to remove this issuer. - s.removeIssuer(issuerID, err) + s.LogPanic(ierrors.Wrapf(err, "failed to retrieve quantum for issuerID %s in slot %d during issuer selection", issuerID, slot).Error()) break } @@ -658,7 +653,7 @@ func (s *Scheduler) updateDeficit(accountID iotago.AccountID, delta Deficit) (De }) if updateErr != nil { - s.removeIssuer(accountID, updateErr) + s.LogPanic(updateErr.Error()) return 0, updateErr } From d30796c1a835ed5e98543f3340b611607651929c Mon Sep 17 00:00:00 2001 From: Alexander Sporn Date: Tue, 4 Jun 2024 13:05:42 +0200 Subject: [PATCH 3/4] Updated hive.go and dependencies --- go.mod | 46 +++++++++++------------ go.sum | 92 ++++++++++++++++++++++----------------------- tools/gendoc/go.mod | 46 +++++++++++------------ tools/gendoc/go.sum | 92 ++++++++++++++++++++++----------------------- 4 files changed, 138 insertions(+), 138 deletions(-) diff --git a/go.mod b/go.mod index ad679c6a2..0487a482b 100644 --- a/go.mod +++ b/go.mod @@ -12,22 +12,22 @@ require ( github.com/golang-jwt/jwt v3.2.2+incompatible github.com/google/uuid v1.6.0 github.com/grpc-ecosystem/go-grpc-prometheus v1.2.0 - github.com/iotaledger/hive.go/ads v0.0.0-20240425095808-113b21573349 - github.com/iotaledger/hive.go/app v0.0.0-20240425095808-113b21573349 - github.com/iotaledger/hive.go/constraints v0.0.0-20240425095808-113b21573349 - github.com/iotaledger/hive.go/core v1.0.0-rc.3.0.20240425095808-113b21573349 - github.com/iotaledger/hive.go/crypto v0.0.0-20240425095808-113b21573349 - github.com/iotaledger/hive.go/db v0.0.0-20240425095808-113b21573349 - github.com/iotaledger/hive.go/ds v0.0.0-20240425095808-113b21573349 - github.com/iotaledger/hive.go/ierrors v0.0.0-20240425095808-113b21573349 - github.com/iotaledger/hive.go/kvstore v0.0.0-20240425095808-113b21573349 - github.com/iotaledger/hive.go/lo v0.0.0-20240425095808-113b21573349 - github.com/iotaledger/hive.go/log v0.0.0-20240425095808-113b21573349 - github.com/iotaledger/hive.go/runtime v0.0.0-20240425095808-113b21573349 - github.com/iotaledger/hive.go/serializer/v2 v2.0.0-rc.1.0.20240425095808-113b21573349 - github.com/iotaledger/hive.go/sql v0.0.0-20240425095808-113b21573349 - github.com/iotaledger/hive.go/stringify v0.0.0-20240425095808-113b21573349 - github.com/iotaledger/hive.go/web v0.0.0-20240425095808-113b21573349 + github.com/iotaledger/hive.go/ads v0.0.0-20240520064018-c635e5900894 + github.com/iotaledger/hive.go/app v0.0.0-20240520064018-c635e5900894 + github.com/iotaledger/hive.go/constraints v0.0.0-20240520064018-c635e5900894 + github.com/iotaledger/hive.go/core v1.0.0-rc.3.0.20240520064018-c635e5900894 + github.com/iotaledger/hive.go/crypto v0.0.0-20240520064018-c635e5900894 + github.com/iotaledger/hive.go/db v0.0.0-20240520064018-c635e5900894 + github.com/iotaledger/hive.go/ds v0.0.0-20240520064018-c635e5900894 + github.com/iotaledger/hive.go/ierrors v0.0.0-20240520064018-c635e5900894 + github.com/iotaledger/hive.go/kvstore v0.0.0-20240520064018-c635e5900894 + github.com/iotaledger/hive.go/lo v0.0.0-20240520064018-c635e5900894 + github.com/iotaledger/hive.go/log v0.0.0-20240520064018-c635e5900894 + github.com/iotaledger/hive.go/runtime v0.0.0-20240520064018-c635e5900894 + github.com/iotaledger/hive.go/serializer/v2 v2.0.0-rc.1.0.20240520064018-c635e5900894 + github.com/iotaledger/hive.go/sql v0.0.0-20240520064018-c635e5900894 + github.com/iotaledger/hive.go/stringify v0.0.0-20240520064018-c635e5900894 + github.com/iotaledger/hive.go/web v0.0.0-20240520064018-c635e5900894 github.com/iotaledger/inx-app v1.0.0-rc.3.0.20240425100742-5c85b6d16701 github.com/iotaledger/inx/go v1.0.0-rc.2.0.20240425100432-05e1bf8fc089 github.com/iotaledger/iota.go/v4 v4.0.0-20240503105040-c86882e71808 @@ -50,8 +50,8 @@ require ( golang.org/x/crypto v0.23.0 golang.org/x/term v0.20.0 google.golang.org/grpc v1.63.2 - google.golang.org/protobuf v1.33.0 - gorm.io/gorm v1.25.9 + google.golang.org/protobuf v1.34.1 + gorm.io/gorm v1.25.10 ) require ( @@ -68,7 +68,7 @@ require ( github.com/docker/go-units v0.5.0 // indirect github.com/eclipse/paho.mqtt.golang v1.4.3 // indirect github.com/elastic/gosigar v0.14.3 // indirect - github.com/ethereum/go-ethereum v1.14.0 // indirect + github.com/ethereum/go-ethereum v1.14.3 // indirect github.com/fatih/structs v1.1.0 // indirect github.com/felixge/fgprof v0.9.4 // indirect github.com/flynn/noise v1.1.0 // indirect @@ -85,7 +85,7 @@ require ( github.com/google/go-github v17.0.0+incompatible // indirect github.com/google/go-querystring v1.1.0 // indirect github.com/google/gopacket v1.1.19 // indirect - github.com/google/pprof v0.0.0-20240424215950-a892ee059fd6 // indirect + github.com/google/pprof v0.0.0-20240509144519-723abb6459b7 // indirect github.com/gorilla/websocket v1.5.1 // indirect github.com/hashicorp/errwrap v1.1.0 // indirect github.com/hashicorp/go-multierror v1.1.1 // indirect @@ -152,8 +152,8 @@ require ( github.com/opentracing/opentracing-go v1.2.0 // indirect github.com/pasztorpisti/qs v0.0.0-20171216220353-8d6c33ee906c // indirect github.com/pbnjay/memory v0.0.0-20210728143218-7b4eea64cf58 // indirect - github.com/pelletier/go-toml/v2 v2.2.1 // indirect - github.com/petermattis/goid v0.0.0-20240327183114-c42a807a84ba // indirect + github.com/pelletier/go-toml/v2 v2.2.2 // indirect + github.com/petermattis/goid v0.0.0-20240503122002-4b96552b8156 // indirect github.com/pkg/errors v0.9.1 // indirect github.com/pmezard/go-difflib v1.0.0 // indirect github.com/pokt-network/smt v0.10.2 // indirect @@ -183,7 +183,7 @@ require ( golang.org/x/exp v0.0.0-20240416160154-fe59bbe5cc7f // indirect golang.org/x/image v0.15.0 // indirect golang.org/x/mod v0.17.0 // indirect - golang.org/x/net v0.24.0 // indirect + golang.org/x/net v0.25.0 // indirect golang.org/x/sync v0.7.0 // indirect golang.org/x/sys v0.20.0 // indirect golang.org/x/text v0.15.0 // indirect diff --git a/go.sum b/go.sum index 44a10e32b..99b308605 100644 --- a/go.sum +++ b/go.sum @@ -106,8 +106,8 @@ github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.m github.com/envoyproxy/go-control-plane v0.9.4/go.mod h1:6rpuAdCZL397s3pYoYcLgu1mIlRU8Am5FuJP05cCM98= github.com/envoyproxy/go-control-plane v0.9.9-0.20210217033140-668b12f5399d/go.mod h1:cXg6YxExXjJnVBQHBLXeUAgxn2UodCpnH306RInaBQk= github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= -github.com/ethereum/go-ethereum v1.14.0 h1:xRWC5NlB6g1x7vNy4HDBLuqVNbtLrc7v8S6+Uxim1LU= -github.com/ethereum/go-ethereum v1.14.0/go.mod h1:1STrq471D0BQbCX9He0hUj4bHxX2k6mt5nOQJhDNOJ8= +github.com/ethereum/go-ethereum v1.14.3 h1:5zvnAqLtnCZrU9uod1JCvHWJbPMURzYFHfc2eHz4PHA= +github.com/ethereum/go-ethereum v1.14.3/go.mod h1:1STrq471D0BQbCX9He0hUj4bHxX2k6mt5nOQJhDNOJ8= github.com/fatih/color v1.7.0/go.mod h1:Zm6kSWBoL9eyXnKyktHP6abPY2pDugNf5KwzbycvMj4= github.com/fatih/color v1.9.0/go.mod h1:eQcE1qtQxscV5RaZvpXrrb8Drkc3/DdQ+uUYCNjL+zU= github.com/fatih/structs v1.1.0 h1:Q7juDM0QtcnhCpeyLGQKyg4TOIghuNXrkL32pHAUMxo= @@ -218,8 +218,8 @@ github.com/google/gopacket v1.1.19/go.mod h1:iJ8V8n6KS+z2U1A8pUwu8bW5SyEMkXJB8Yo github.com/google/martian v2.1.0+incompatible/go.mod h1:9I4somxYTbIHy5NJKHRl3wXiIaQGbYVAs8BPL6v8lEs= github.com/google/pprof v0.0.0-20181206194817-3ea8567a2e57/go.mod h1:zfwlbNMJ+OItoe0UupaVj+oy1omPYYDuagoSzA8v9mc= github.com/google/pprof v0.0.0-20240227163752-401108e1b7e7/go.mod h1:czg5+yv1E0ZGTi6S6vVK1mke0fV+FaUhNGcd6VRS9Ik= -github.com/google/pprof v0.0.0-20240424215950-a892ee059fd6 h1:k7nVchz72niMH6YLQNvHSdIE7iqsQxK1P41mySCvssg= -github.com/google/pprof v0.0.0-20240424215950-a892ee059fd6/go.mod h1:kf6iHlnVGwgKolg33glAes7Yg/8iWP8ukqeldJSO7jw= +github.com/google/pprof v0.0.0-20240509144519-723abb6459b7 h1:velgFPYr1X9TDwLIfkV7fWqsFlf7TeP11M/7kPd/dVI= +github.com/google/pprof v0.0.0-20240509144519-723abb6459b7/go.mod h1:kf6iHlnVGwgKolg33glAes7Yg/8iWP8ukqeldJSO7jw= github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI= github.com/google/uuid v1.1.2/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0= @@ -291,38 +291,38 @@ github.com/iancoleman/orderedmap v0.3.0/go.mod h1:XuLcCUkdL5owUCQeF2Ue9uuw1EptkJ github.com/ianlancetaylor/demangle v0.0.0-20230524184225-eabc099b10ab/go.mod h1:gx7rwoVhcfuVKG5uya9Hs3Sxj7EIvldVofAWIUtGouw= github.com/iotaledger/grocksdb v1.7.5-0.20230220105546-5162e18885c7 h1:dTrD7X2PTNgli6EbS4tV9qu3QAm/kBU3XaYZV2xdzys= github.com/iotaledger/grocksdb v1.7.5-0.20230220105546-5162e18885c7/go.mod h1:ZRdPu684P0fQ1z8sXz4dj9H5LWHhz4a9oCtvjunkSrw= -github.com/iotaledger/hive.go/ads v0.0.0-20240425095808-113b21573349 h1:0gDfn1vCToiiJDxwhXJLXyRN2NnSC4HPUenv2qO6v48= -github.com/iotaledger/hive.go/ads v0.0.0-20240425095808-113b21573349/go.mod h1:IlkcxTGAt2TmnENnL3NReWieZcbvQfqG0ggzObAI52M= -github.com/iotaledger/hive.go/app v0.0.0-20240425095808-113b21573349 h1:VXDayMKOcPvC5hhp0lK0y8DGOazQrTDGPm+PHY7esQo= -github.com/iotaledger/hive.go/app v0.0.0-20240425095808-113b21573349/go.mod h1:wAeDVp9IvxclNJgPf4xlsO390S0MmqryBEKvXInJAPQ= -github.com/iotaledger/hive.go/constraints v0.0.0-20240425095808-113b21573349 h1:ctL0M6AeCG733kUS8vZxtiW7kQ9JdZn3JFVTDv3pFlg= -github.com/iotaledger/hive.go/constraints v0.0.0-20240425095808-113b21573349/go.mod h1:JF7jjkL6tSUOXm23SWadBzBrl7eJk1DQRLc/fNoVZ+o= -github.com/iotaledger/hive.go/core v1.0.0-rc.3.0.20240425095808-113b21573349 h1:L7VsZZEX/7QVP4uAVCEzMNcM/i7dbxQgTp7/Z794of4= -github.com/iotaledger/hive.go/core v1.0.0-rc.3.0.20240425095808-113b21573349/go.mod h1:2fVWxIhfwXkQBy2x0lpifwoVhkVPAnS4TDFrAq7kmZY= -github.com/iotaledger/hive.go/crypto v0.0.0-20240425095808-113b21573349 h1:mNbTg2Dd/agH9c/Q58nvdsY8LT71yGxw/QWiI1J8acA= -github.com/iotaledger/hive.go/crypto v0.0.0-20240425095808-113b21573349/go.mod h1:DdY/FYkd7eX7ZrNLxSMri47vxA4WaENqjp3AwKC80KE= -github.com/iotaledger/hive.go/db v0.0.0-20240425095808-113b21573349 h1:Zxf9Xp3jWiVp7gBkYjuDDKM+kFaRoPFlXJxm9QPOzwk= -github.com/iotaledger/hive.go/db v0.0.0-20240425095808-113b21573349/go.mod h1:Yi86DqfEJGYMuOoj/wN6FLG/gxVEDq0LsazeB+jeh+M= -github.com/iotaledger/hive.go/ds v0.0.0-20240425095808-113b21573349 h1:QeiJCjud+DWL/9k8TCv22yF/vwUeaMnFlU844MpF6JM= -github.com/iotaledger/hive.go/ds v0.0.0-20240425095808-113b21573349/go.mod h1:f+TAmbZX7f6FmEH2lnJdVL0ZKe8QA+UE/xQLOKbLU6c= -github.com/iotaledger/hive.go/ierrors v0.0.0-20240425095808-113b21573349 h1:rIF3jDJ4ReNY3WA43BTzm4o9KMV9+yjEwK8lg8HM4y8= -github.com/iotaledger/hive.go/ierrors v0.0.0-20240425095808-113b21573349/go.mod h1:GQY0/35sjgT9Poi1Vrs9kFVvAkuKzGXfVh4j6CBXsAA= -github.com/iotaledger/hive.go/kvstore v0.0.0-20240425095808-113b21573349 h1:VMqmYEPouLs7+gnHSIplw7keV1FlaVR7fgIvQ2t/7B4= -github.com/iotaledger/hive.go/kvstore v0.0.0-20240425095808-113b21573349/go.mod h1:a/VHaowlj0AvrGLkqfNCmkC7/QKKSNitEZtNpaKhgsw= -github.com/iotaledger/hive.go/lo v0.0.0-20240425095808-113b21573349 h1:BVX+TIfs8jH8SZelPYdh1y3MSDpZ6aFbb3C3ukqpIks= -github.com/iotaledger/hive.go/lo v0.0.0-20240425095808-113b21573349/go.mod h1:U8HRCdzN4YB2/F/BkGIcNNyFb8iruD1Lf/k6yb37Kd0= -github.com/iotaledger/hive.go/log v0.0.0-20240425095808-113b21573349 h1:4LDISEN/nQ7yTk6QujHjfuL/q/dyvPhIRBQQ3rFmZOI= -github.com/iotaledger/hive.go/log v0.0.0-20240425095808-113b21573349/go.mod h1:DDObxam7BrqykUvRWE+k6i7QgM0fWXgtPPlNRhQX2O8= -github.com/iotaledger/hive.go/runtime v0.0.0-20240425095808-113b21573349 h1:IX7hFOGO1RDADT6avFn1P6FfycyQvJ6tA8cdAoLbdLA= -github.com/iotaledger/hive.go/runtime v0.0.0-20240425095808-113b21573349/go.mod h1:OoUhM/+s8au7NlG2HH13qebDsTK/0D92K6T1Cj8ynKc= -github.com/iotaledger/hive.go/serializer/v2 v2.0.0-rc.1.0.20240425095808-113b21573349 h1:jbBbYFQTQJdUeShSVJn3x/Ufrs+8EnetcFed0tkHrFc= -github.com/iotaledger/hive.go/serializer/v2 v2.0.0-rc.1.0.20240425095808-113b21573349/go.mod h1:l9lwqrn8dvaMx3IJpP1wBqZ1DFJi2eHdLzXi2GHk3gQ= -github.com/iotaledger/hive.go/sql v0.0.0-20240425095808-113b21573349 h1:+bHqh0gCgKzAkbaRVh54IWKIskvLnckrxg/UXxbgkFc= -github.com/iotaledger/hive.go/sql v0.0.0-20240425095808-113b21573349/go.mod h1:nEwIUQIvNMUs2DwM2870Er3foVQTzwPDUtzEKy+evGg= -github.com/iotaledger/hive.go/stringify v0.0.0-20240425095808-113b21573349 h1:9cuEF+WvxB/xBLkQu6H3/pHYE5KAqY98oniUFYezvzc= -github.com/iotaledger/hive.go/stringify v0.0.0-20240425095808-113b21573349/go.mod h1:O4p7UmsfoeLqtAUwrKbq0lXMxjY/MLQSpZSavvvvGig= -github.com/iotaledger/hive.go/web v0.0.0-20240425095808-113b21573349 h1:LrLWPsUcbZjR3kF5NJbuou84l+aCm8dPx4S5pQ/9bJ0= -github.com/iotaledger/hive.go/web v0.0.0-20240425095808-113b21573349/go.mod h1:YhGg68kOBM083FzmxjhQD3n/8AeG/4xr4fgM6qq1q9I= +github.com/iotaledger/hive.go/ads v0.0.0-20240520064018-c635e5900894 h1:AqLwFeOdvXBuc2WUG4yhsudqThIL4QA17HYGlurGtVI= +github.com/iotaledger/hive.go/ads v0.0.0-20240520064018-c635e5900894/go.mod h1:XetsDV0W/wQYylgLD24hUd2tn6gpS55rgxdVjsJvRPo= +github.com/iotaledger/hive.go/app v0.0.0-20240520064018-c635e5900894 h1:KklwHECCtRLNp2BMk4xqXte/DAE847U5ibToXLt16cA= +github.com/iotaledger/hive.go/app v0.0.0-20240520064018-c635e5900894/go.mod h1:poter2gXtqZdyjlhWJR0aJr5VDmkafT2chSr4pXs274= +github.com/iotaledger/hive.go/constraints v0.0.0-20240520064018-c635e5900894 h1:T8Ajx7h46fbyrd+G8aJZdHJkX2S7Rc/fNe5yXtGB1mQ= +github.com/iotaledger/hive.go/constraints v0.0.0-20240520064018-c635e5900894/go.mod h1:JF7jjkL6tSUOXm23SWadBzBrl7eJk1DQRLc/fNoVZ+o= +github.com/iotaledger/hive.go/core v1.0.0-rc.3.0.20240520064018-c635e5900894 h1:58pMONWjx8Pj7tk3d8BdmmUtmvU81Pjekp1L/xYQoi0= +github.com/iotaledger/hive.go/core v1.0.0-rc.3.0.20240520064018-c635e5900894/go.mod h1:dGx+boEwGlmJhjwafEYPgqq+eGzic4fXGjsmaYViDHk= +github.com/iotaledger/hive.go/crypto v0.0.0-20240520064018-c635e5900894 h1:ZmsMyEVYAbrjfz2A2EBwfn1nWZxw9wNrFdjyDrwsIMc= +github.com/iotaledger/hive.go/crypto v0.0.0-20240520064018-c635e5900894/go.mod h1:cyNxLUHCftR3MQvaFZgCHfkD+xmSUayt6d/v6osFSw4= +github.com/iotaledger/hive.go/db v0.0.0-20240520064018-c635e5900894 h1:MxBt/PnWIGG8zZgaNye+LYs7dGkVYCRcOVNCQklMZpY= +github.com/iotaledger/hive.go/db v0.0.0-20240520064018-c635e5900894/go.mod h1:WXaAjWG836wEy6TUCaeJFHt23wUtLa5L71uajwCko+g= +github.com/iotaledger/hive.go/ds v0.0.0-20240520064018-c635e5900894 h1:Tt1/6TXU2rh2tGu65PoOfC4pMttY2fgsUVtqf6iwaEA= +github.com/iotaledger/hive.go/ds v0.0.0-20240520064018-c635e5900894/go.mod h1:ZvFpTvsQ+D3iRIju0XVQyfjydXf5HkqTKca6BoJ+/6A= +github.com/iotaledger/hive.go/ierrors v0.0.0-20240520064018-c635e5900894 h1:nNjP8OLX8nG24shPsAov8SPv1JLl3HDCaVadqZHG3vQ= +github.com/iotaledger/hive.go/ierrors v0.0.0-20240520064018-c635e5900894/go.mod h1:GQY0/35sjgT9Poi1Vrs9kFVvAkuKzGXfVh4j6CBXsAA= +github.com/iotaledger/hive.go/kvstore v0.0.0-20240520064018-c635e5900894 h1:x1xr6MiExifYhjM6N5tF1iuQZCVEpE16sjitqjdKrBY= +github.com/iotaledger/hive.go/kvstore v0.0.0-20240520064018-c635e5900894/go.mod h1:tVA5qNVvtt9qICVVD0BzgJoM1NqlDgYkLlguQrTBS4E= +github.com/iotaledger/hive.go/lo v0.0.0-20240520064018-c635e5900894 h1:b3r0G8WQ1HBQeObTg2j7hbgJjb2oCgSVaIWazFZgVSQ= +github.com/iotaledger/hive.go/lo v0.0.0-20240520064018-c635e5900894/go.mod h1:AJRiMLXVOLKvtuuCKBqe3zBeIB6qbp1vZrU1rPHm1CU= +github.com/iotaledger/hive.go/log v0.0.0-20240520064018-c635e5900894 h1:6j4/khmsRCGMoYXFl3zBfuYpp58XkmamNPU4isVZuQg= +github.com/iotaledger/hive.go/log v0.0.0-20240520064018-c635e5900894/go.mod h1:pItG9OPlgN+oknKuS57pxtzl5+JFSUj60p7NtyLxp8Q= +github.com/iotaledger/hive.go/runtime v0.0.0-20240520064018-c635e5900894 h1:h/POgHreuT8Dv7HqBk3R91uyuI/3QWlxzl5txv3AVwU= +github.com/iotaledger/hive.go/runtime v0.0.0-20240520064018-c635e5900894/go.mod h1:f7UHJ0D7Fx3GgeRpZ9jpoxG8i3EgVbbHwmzNt9fjp8c= +github.com/iotaledger/hive.go/serializer/v2 v2.0.0-rc.1.0.20240520064018-c635e5900894 h1:aqHLdfkonUzatdQ99xyB2ArET7YvC33OEAx0yj8KeZY= +github.com/iotaledger/hive.go/serializer/v2 v2.0.0-rc.1.0.20240520064018-c635e5900894/go.mod h1:swUfdyuJMOjYdaCfhkzshF9Khkk8NAxpT6/AUnZHh2o= +github.com/iotaledger/hive.go/sql v0.0.0-20240520064018-c635e5900894 h1:p7MRUMG7IOx52zfeswqip+KUNcyiO+ACjaux66UHCts= +github.com/iotaledger/hive.go/sql v0.0.0-20240520064018-c635e5900894/go.mod h1:nv/1l2aNJMmgS0XTmRzgR1urivFyIXJqq6wkp4T2pvw= +github.com/iotaledger/hive.go/stringify v0.0.0-20240520064018-c635e5900894 h1:Bt+Hu/EjYmNPBCrl8Wn0JUyDZdiKm37ZDUaCIBceJuA= +github.com/iotaledger/hive.go/stringify v0.0.0-20240520064018-c635e5900894/go.mod h1:O4p7UmsfoeLqtAUwrKbq0lXMxjY/MLQSpZSavvvvGig= +github.com/iotaledger/hive.go/web v0.0.0-20240520064018-c635e5900894 h1:4piXQ7bbQjt2/uANsb8ukv62zb6TPxgy2qQxLoXzA3c= +github.com/iotaledger/hive.go/web v0.0.0-20240520064018-c635e5900894/go.mod h1:xFyjRoi3PjfhOnEq3iSlpDzfeXwIAUsJeCtDCGAC1aM= github.com/iotaledger/inx-app v1.0.0-rc.3.0.20240425100742-5c85b6d16701 h1:YWIaqOp7+DjxG4O6797Uw+K8rPRJN56rbwX6KpWsvEc= github.com/iotaledger/inx-app v1.0.0-rc.3.0.20240425100742-5c85b6d16701/go.mod h1:oqSLTV1hlpdLdi0MWt39c+EFgERdPM34ACAYM+4g3Oc= github.com/iotaledger/inx/go v1.0.0-rc.2.0.20240425100432-05e1bf8fc089 h1:+NRPSbH6tkop8p+MhjCR9nvs8ng3Oo2yju5FXcDEkBY= @@ -556,11 +556,11 @@ github.com/pbnjay/memory v0.0.0-20210728143218-7b4eea64cf58 h1:onHthvaw9LFnH4t2D github.com/pbnjay/memory v0.0.0-20210728143218-7b4eea64cf58/go.mod h1:DXv8WO4yhMYhSNPKjeNKa5WY9YCIEBRbNzFFPJbWO6Y= github.com/pelletier/go-toml v1.7.0 h1:7utD74fnzVc/cpcyy8sjrlFr5vYpypUixARcHIMIGuI= github.com/pelletier/go-toml v1.7.0/go.mod h1:vwGMzjaWMwyfHwgIBhI2YUM4fB6nL6lVAvS1LBMMhTE= -github.com/pelletier/go-toml/v2 v2.2.1 h1:9TA9+T8+8CUCO2+WYnDLCgrYi9+omqKXyjDtosvtEhg= -github.com/pelletier/go-toml/v2 v2.2.1/go.mod h1:1t835xjRzz80PqgE6HHgN2JOsmgYu/h4qDAS4n929Rs= +github.com/pelletier/go-toml/v2 v2.2.2 h1:aYUidT7k73Pcl9nb2gScu7NSrKCSHIDE89b3+6Wq+LM= +github.com/pelletier/go-toml/v2 v2.2.2/go.mod h1:1t835xjRzz80PqgE6HHgN2JOsmgYu/h4qDAS4n929Rs= github.com/petermattis/goid v0.0.0-20180202154549-b0b1615b78e5/go.mod h1:jvVRKCrJTQWu0XVbaOlby/2lO20uSCHEMzzplHXte1o= -github.com/petermattis/goid v0.0.0-20240327183114-c42a807a84ba h1:3jPgmsFGBID1wFfU2AbYocNcN4wqU68UaHSdMjiw/7U= -github.com/petermattis/goid v0.0.0-20240327183114-c42a807a84ba/go.mod h1:pxMtw7cyUw6B2bRH0ZBANSPg+AoSud1I1iyJHI69jH4= +github.com/petermattis/goid v0.0.0-20240503122002-4b96552b8156 h1:UOk0WKXxKXmHSlIkwQNhT5AWlMtkijU5pfj8bCOI9vQ= +github.com/petermattis/goid v0.0.0-20240503122002-4b96552b8156/go.mod h1:pxMtw7cyUw6B2bRH0ZBANSPg+AoSud1I1iyJHI69jH4= github.com/pierrec/lz4 v2.0.5+incompatible/go.mod h1:pdkljMzZIN41W+lC3N2tnIh5sFi+IEE17M5jbnwPHcY= github.com/pkg/errors v0.8.0/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= @@ -796,8 +796,8 @@ golang.org/x/net v0.0.0-20210119194325-5f4716e94777/go.mod h1:m0MpNAwzfU5UDzcl9v golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= golang.org/x/net v0.0.0-20210405180319-a5a99cb37ef4/go.mod h1:p54w0d4576C0XHj96bSt6lcn1PtDYWL6XObtHCRCNQM= golang.org/x/net v0.0.0-20210410081132-afb366fc7cd1/go.mod h1:9tjilg8BloeKEkVJvy7fQ90B1CfIiPueXVOjqfkSzI8= -golang.org/x/net v0.24.0 h1:1PcaxkF854Fu3+lvBIx5SYn9wRlBzzcnHZSiaFFAb0w= -golang.org/x/net v0.24.0/go.mod h1:2Q7sJY5mzlzWjKtYUEXSlBWCdyaioyXzRB2RtU8KVE8= +golang.org/x/net v0.25.0 h1:d/OCCoBEUq33pjydKrGQhw7IlUPI2Oylr+8qLx49kac= +golang.org/x/net v0.25.0/go.mod h1:JkAGAh7GEvH74S6FOH42FLoXpXbE/aqXSrIQjXgsiwM= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/oauth2 v0.0.0-20181017192945-9dcd33a902f4/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/oauth2 v0.0.0-20181203162652-d668ce993890/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= @@ -945,8 +945,8 @@ google.golang.org/protobuf v1.23.1-0.20200526195155-81db48ad09cc/go.mod h1:EGpAD google.golang.org/protobuf v1.25.0/go.mod h1:9JNX74DMeImyA3h4bdi1ymwjUzf21/xIlbajtzgsN7c= google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw= google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= -google.golang.org/protobuf v1.33.0 h1:uNO2rsAINq/JlFpSdYEKIZ0uKD/R9cpdv0T+yoGwGmI= -google.golang.org/protobuf v1.33.0/go.mod h1:c6P6GXX6sHbq/GpV6MGZEdwhWPcYBgnhAHhKbcUYpos= +google.golang.org/protobuf v1.34.1 h1:9ddQBjfCyZPOHPUiPxpYESBLc+T8P3E+Vo4IbKZgFWg= +google.golang.org/protobuf v1.34.1/go.mod h1:c6P6GXX6sHbq/GpV6MGZEdwhWPcYBgnhAHhKbcUYpos= gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw= gopkg.in/asn1-ber.v1 v1.0.0-20181015200546-f715ec2f112d/go.mod h1:cuepJuh7vyXfUyUwEgHQXw849cJrilpS5NeIjOWESAw= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= @@ -976,8 +976,8 @@ gorm.io/driver/postgres v1.5.7 h1:8ptbNJTDbEmhdr62uReG5BGkdQyeasu/FZHxI0IMGnM= gorm.io/driver/postgres v1.5.7/go.mod h1:3e019WlBaYI5o5LIdNV+LyxCMNtLOQETBXL2h4chKpA= gorm.io/driver/sqlite v1.5.5 h1:7MDMtUZhV065SilG62E0MquljeArQZNfJnjd9i9gx3E= gorm.io/driver/sqlite v1.5.5/go.mod h1:6NgQ7sQWAIFsPrJJl1lSNSu2TABh0ZZ/zm5fosATavE= -gorm.io/gorm v1.25.9 h1:wct0gxZIELDk8+ZqF/MVnHLkA1rvYlBWUMv2EdsK1g8= -gorm.io/gorm v1.25.9/go.mod h1:hbnx/Oo0ChWMn1BIhpy1oYozzpM15i4YPuHDmfYtwg8= +gorm.io/gorm v1.25.10 h1:dQpO+33KalOA+aFYGlK+EfxcI5MbO7EP2yYygwh9h+s= +gorm.io/gorm v1.25.10/go.mod h1:hbnx/Oo0ChWMn1BIhpy1oYozzpM15i4YPuHDmfYtwg8= grpc.go4.org v0.0.0-20170609214715-11d0a25b4919/go.mod h1:77eQGdRu53HpSqPFJFmuJdjuHRquDANNeA4x7B8WQ9o= honnef.co/go/tools v0.0.0-20180728063816-88497007e858/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= diff --git a/tools/gendoc/go.mod b/tools/gendoc/go.mod index 04199a2e1..3c64b0c4a 100644 --- a/tools/gendoc/go.mod +++ b/tools/gendoc/go.mod @@ -5,7 +5,7 @@ go 1.22.0 replace github.com/iotaledger/iota-core => ../../ require ( - github.com/iotaledger/hive.go/app v0.0.0-20240425095808-113b21573349 + github.com/iotaledger/hive.go/app v0.0.0-20240520064018-c635e5900894 github.com/iotaledger/hive.go/apputils v0.0.0-20230829152614-7afc7a4d89b3 github.com/iotaledger/iota-core v0.0.0-00010101000000-000000000000 ) @@ -25,7 +25,7 @@ require ( github.com/dustin/go-humanize v1.0.1 // indirect github.com/eclipse/paho.mqtt.golang v1.4.3 // indirect github.com/elastic/gosigar v0.14.3 // indirect - github.com/ethereum/go-ethereum v1.14.0 // indirect + github.com/ethereum/go-ethereum v1.14.3 // indirect github.com/fatih/structs v1.1.0 // indirect github.com/fbiville/markdown-table-formatter v0.3.0 // indirect github.com/felixge/fgprof v0.9.4 // indirect @@ -45,7 +45,7 @@ require ( github.com/google/go-github v17.0.0+incompatible // indirect github.com/google/go-querystring v1.1.0 // indirect github.com/google/gopacket v1.1.19 // indirect - github.com/google/pprof v0.0.0-20240424215950-a892ee059fd6 // indirect + github.com/google/pprof v0.0.0-20240509144519-723abb6459b7 // indirect github.com/google/uuid v1.6.0 // indirect github.com/gorilla/websocket v1.5.1 // indirect github.com/grpc-ecosystem/go-grpc-prometheus v1.2.0 // indirect @@ -57,21 +57,21 @@ require ( github.com/huin/goupnp v1.3.0 // indirect github.com/iancoleman/orderedmap v0.3.0 // indirect github.com/iotaledger/grocksdb v1.7.5-0.20230220105546-5162e18885c7 // indirect - github.com/iotaledger/hive.go/ads v0.0.0-20240425095808-113b21573349 // indirect - github.com/iotaledger/hive.go/constraints v0.0.0-20240425095808-113b21573349 // indirect - github.com/iotaledger/hive.go/core v1.0.0-rc.3.0.20240425095808-113b21573349 // indirect - github.com/iotaledger/hive.go/crypto v0.0.0-20240425095808-113b21573349 // indirect - github.com/iotaledger/hive.go/db v0.0.0-20240425095808-113b21573349 // indirect - github.com/iotaledger/hive.go/ds v0.0.0-20240425095808-113b21573349 // indirect - github.com/iotaledger/hive.go/ierrors v0.0.0-20240425095808-113b21573349 // indirect - github.com/iotaledger/hive.go/kvstore v0.0.0-20240425095808-113b21573349 // indirect - github.com/iotaledger/hive.go/lo v0.0.0-20240425095808-113b21573349 // indirect - github.com/iotaledger/hive.go/log v0.0.0-20240425095808-113b21573349 // indirect - github.com/iotaledger/hive.go/runtime v0.0.0-20240425095808-113b21573349 // indirect - github.com/iotaledger/hive.go/serializer/v2 v2.0.0-rc.1.0.20240425095808-113b21573349 // indirect - github.com/iotaledger/hive.go/sql v0.0.0-20240425095808-113b21573349 // indirect - github.com/iotaledger/hive.go/stringify v0.0.0-20240425095808-113b21573349 // indirect - github.com/iotaledger/hive.go/web v0.0.0-20240425095808-113b21573349 // indirect + github.com/iotaledger/hive.go/ads v0.0.0-20240520064018-c635e5900894 // indirect + github.com/iotaledger/hive.go/constraints v0.0.0-20240520064018-c635e5900894 // indirect + github.com/iotaledger/hive.go/core v1.0.0-rc.3.0.20240520064018-c635e5900894 // indirect + github.com/iotaledger/hive.go/crypto v0.0.0-20240520064018-c635e5900894 // indirect + github.com/iotaledger/hive.go/db v0.0.0-20240520064018-c635e5900894 // indirect + github.com/iotaledger/hive.go/ds v0.0.0-20240520064018-c635e5900894 // indirect + github.com/iotaledger/hive.go/ierrors v0.0.0-20240520064018-c635e5900894 // indirect + github.com/iotaledger/hive.go/kvstore v0.0.0-20240520064018-c635e5900894 // indirect + github.com/iotaledger/hive.go/lo v0.0.0-20240520064018-c635e5900894 // indirect + github.com/iotaledger/hive.go/log v0.0.0-20240520064018-c635e5900894 // indirect + github.com/iotaledger/hive.go/runtime v0.0.0-20240520064018-c635e5900894 // indirect + github.com/iotaledger/hive.go/serializer/v2 v2.0.0-rc.1.0.20240520064018-c635e5900894 // indirect + github.com/iotaledger/hive.go/sql v0.0.0-20240520064018-c635e5900894 // indirect + github.com/iotaledger/hive.go/stringify v0.0.0-20240520064018-c635e5900894 // indirect + github.com/iotaledger/hive.go/web v0.0.0-20240520064018-c635e5900894 // indirect github.com/iotaledger/inx-app v1.0.0-rc.3.0.20240425100742-5c85b6d16701 // indirect github.com/iotaledger/inx/go v1.0.0-rc.2.0.20240425100432-05e1bf8fc089 // indirect github.com/iotaledger/iota-crypto-demo v0.0.0-20240419094816-40260bb800f7 // indirect @@ -140,8 +140,8 @@ require ( github.com/otiai10/copy v1.14.0 // indirect github.com/pasztorpisti/qs v0.0.0-20171216220353-8d6c33ee906c // indirect github.com/pbnjay/memory v0.0.0-20210728143218-7b4eea64cf58 // indirect - github.com/pelletier/go-toml/v2 v2.2.1 // indirect - github.com/petermattis/goid v0.0.0-20240327183114-c42a807a84ba // indirect + github.com/pelletier/go-toml/v2 v2.2.2 // indirect + github.com/petermattis/goid v0.0.0-20240503122002-4b96552b8156 // indirect github.com/pkg/errors v0.9.1 // indirect github.com/pokt-network/smt v0.10.2 // indirect github.com/polydawn/refmt v0.89.0 // indirect @@ -177,7 +177,7 @@ require ( golang.org/x/exp v0.0.0-20240416160154-fe59bbe5cc7f // indirect golang.org/x/image v0.15.0 // indirect golang.org/x/mod v0.17.0 // indirect - golang.org/x/net v0.24.0 // indirect + golang.org/x/net v0.25.0 // indirect golang.org/x/sync v0.7.0 // indirect golang.org/x/sys v0.20.0 // indirect golang.org/x/term v0.20.0 // indirect @@ -187,11 +187,11 @@ require ( gonum.org/v1/gonum v0.15.0 // indirect google.golang.org/genproto/googleapis/rpc v0.0.0-20240415180920-8c6c420018be // indirect google.golang.org/grpc v1.63.2 // indirect - google.golang.org/protobuf v1.33.0 // indirect + google.golang.org/protobuf v1.34.1 // indirect gopkg.in/yaml.v2 v2.4.0 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect gorm.io/driver/postgres v1.5.7 // indirect gorm.io/driver/sqlite v1.5.5 // indirect - gorm.io/gorm v1.25.9 // indirect + gorm.io/gorm v1.25.10 // indirect lukechampine.com/blake3 v1.2.2 // indirect ) diff --git a/tools/gendoc/go.sum b/tools/gendoc/go.sum index ab7ce78c7..bc61cd144 100644 --- a/tools/gendoc/go.sum +++ b/tools/gendoc/go.sum @@ -104,8 +104,8 @@ github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.m github.com/envoyproxy/go-control-plane v0.9.4/go.mod h1:6rpuAdCZL397s3pYoYcLgu1mIlRU8Am5FuJP05cCM98= github.com/envoyproxy/go-control-plane v0.9.9-0.20210217033140-668b12f5399d/go.mod h1:cXg6YxExXjJnVBQHBLXeUAgxn2UodCpnH306RInaBQk= github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= -github.com/ethereum/go-ethereum v1.14.0 h1:xRWC5NlB6g1x7vNy4HDBLuqVNbtLrc7v8S6+Uxim1LU= -github.com/ethereum/go-ethereum v1.14.0/go.mod h1:1STrq471D0BQbCX9He0hUj4bHxX2k6mt5nOQJhDNOJ8= +github.com/ethereum/go-ethereum v1.14.3 h1:5zvnAqLtnCZrU9uod1JCvHWJbPMURzYFHfc2eHz4PHA= +github.com/ethereum/go-ethereum v1.14.3/go.mod h1:1STrq471D0BQbCX9He0hUj4bHxX2k6mt5nOQJhDNOJ8= github.com/fatih/color v1.7.0/go.mod h1:Zm6kSWBoL9eyXnKyktHP6abPY2pDugNf5KwzbycvMj4= github.com/fatih/color v1.9.0/go.mod h1:eQcE1qtQxscV5RaZvpXrrb8Drkc3/DdQ+uUYCNjL+zU= github.com/fatih/structs v1.1.0 h1:Q7juDM0QtcnhCpeyLGQKyg4TOIghuNXrkL32pHAUMxo= @@ -220,8 +220,8 @@ github.com/google/gopacket v1.1.19/go.mod h1:iJ8V8n6KS+z2U1A8pUwu8bW5SyEMkXJB8Yo github.com/google/martian v2.1.0+incompatible/go.mod h1:9I4somxYTbIHy5NJKHRl3wXiIaQGbYVAs8BPL6v8lEs= github.com/google/pprof v0.0.0-20181206194817-3ea8567a2e57/go.mod h1:zfwlbNMJ+OItoe0UupaVj+oy1omPYYDuagoSzA8v9mc= github.com/google/pprof v0.0.0-20240227163752-401108e1b7e7/go.mod h1:czg5+yv1E0ZGTi6S6vVK1mke0fV+FaUhNGcd6VRS9Ik= -github.com/google/pprof v0.0.0-20240424215950-a892ee059fd6 h1:k7nVchz72niMH6YLQNvHSdIE7iqsQxK1P41mySCvssg= -github.com/google/pprof v0.0.0-20240424215950-a892ee059fd6/go.mod h1:kf6iHlnVGwgKolg33glAes7Yg/8iWP8ukqeldJSO7jw= +github.com/google/pprof v0.0.0-20240509144519-723abb6459b7 h1:velgFPYr1X9TDwLIfkV7fWqsFlf7TeP11M/7kPd/dVI= +github.com/google/pprof v0.0.0-20240509144519-723abb6459b7/go.mod h1:kf6iHlnVGwgKolg33glAes7Yg/8iWP8ukqeldJSO7jw= github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI= github.com/google/uuid v1.1.2/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0= @@ -293,40 +293,40 @@ github.com/iancoleman/orderedmap v0.3.0/go.mod h1:XuLcCUkdL5owUCQeF2Ue9uuw1EptkJ github.com/ianlancetaylor/demangle v0.0.0-20230524184225-eabc099b10ab/go.mod h1:gx7rwoVhcfuVKG5uya9Hs3Sxj7EIvldVofAWIUtGouw= github.com/iotaledger/grocksdb v1.7.5-0.20230220105546-5162e18885c7 h1:dTrD7X2PTNgli6EbS4tV9qu3QAm/kBU3XaYZV2xdzys= github.com/iotaledger/grocksdb v1.7.5-0.20230220105546-5162e18885c7/go.mod h1:ZRdPu684P0fQ1z8sXz4dj9H5LWHhz4a9oCtvjunkSrw= -github.com/iotaledger/hive.go/ads v0.0.0-20240425095808-113b21573349 h1:0gDfn1vCToiiJDxwhXJLXyRN2NnSC4HPUenv2qO6v48= -github.com/iotaledger/hive.go/ads v0.0.0-20240425095808-113b21573349/go.mod h1:IlkcxTGAt2TmnENnL3NReWieZcbvQfqG0ggzObAI52M= -github.com/iotaledger/hive.go/app v0.0.0-20240425095808-113b21573349 h1:VXDayMKOcPvC5hhp0lK0y8DGOazQrTDGPm+PHY7esQo= -github.com/iotaledger/hive.go/app v0.0.0-20240425095808-113b21573349/go.mod h1:wAeDVp9IvxclNJgPf4xlsO390S0MmqryBEKvXInJAPQ= +github.com/iotaledger/hive.go/ads v0.0.0-20240520064018-c635e5900894 h1:AqLwFeOdvXBuc2WUG4yhsudqThIL4QA17HYGlurGtVI= +github.com/iotaledger/hive.go/ads v0.0.0-20240520064018-c635e5900894/go.mod h1:XetsDV0W/wQYylgLD24hUd2tn6gpS55rgxdVjsJvRPo= +github.com/iotaledger/hive.go/app v0.0.0-20240520064018-c635e5900894 h1:KklwHECCtRLNp2BMk4xqXte/DAE847U5ibToXLt16cA= +github.com/iotaledger/hive.go/app v0.0.0-20240520064018-c635e5900894/go.mod h1:poter2gXtqZdyjlhWJR0aJr5VDmkafT2chSr4pXs274= github.com/iotaledger/hive.go/apputils v0.0.0-20230829152614-7afc7a4d89b3 h1:4aVJTc0KS77uEw0Tny4r0n1ORwcbAQDECaCclgf/6lE= github.com/iotaledger/hive.go/apputils v0.0.0-20230829152614-7afc7a4d89b3/go.mod h1:TZeAqieDu+xDOZp2e9+S+8pZp1PrfgcwLUnxmd8IgLU= -github.com/iotaledger/hive.go/constraints v0.0.0-20240425095808-113b21573349 h1:ctL0M6AeCG733kUS8vZxtiW7kQ9JdZn3JFVTDv3pFlg= -github.com/iotaledger/hive.go/constraints v0.0.0-20240425095808-113b21573349/go.mod h1:JF7jjkL6tSUOXm23SWadBzBrl7eJk1DQRLc/fNoVZ+o= -github.com/iotaledger/hive.go/core v1.0.0-rc.3.0.20240425095808-113b21573349 h1:L7VsZZEX/7QVP4uAVCEzMNcM/i7dbxQgTp7/Z794of4= -github.com/iotaledger/hive.go/core v1.0.0-rc.3.0.20240425095808-113b21573349/go.mod h1:2fVWxIhfwXkQBy2x0lpifwoVhkVPAnS4TDFrAq7kmZY= -github.com/iotaledger/hive.go/crypto v0.0.0-20240425095808-113b21573349 h1:mNbTg2Dd/agH9c/Q58nvdsY8LT71yGxw/QWiI1J8acA= -github.com/iotaledger/hive.go/crypto v0.0.0-20240425095808-113b21573349/go.mod h1:DdY/FYkd7eX7ZrNLxSMri47vxA4WaENqjp3AwKC80KE= -github.com/iotaledger/hive.go/db v0.0.0-20240425095808-113b21573349 h1:Zxf9Xp3jWiVp7gBkYjuDDKM+kFaRoPFlXJxm9QPOzwk= -github.com/iotaledger/hive.go/db v0.0.0-20240425095808-113b21573349/go.mod h1:Yi86DqfEJGYMuOoj/wN6FLG/gxVEDq0LsazeB+jeh+M= -github.com/iotaledger/hive.go/ds v0.0.0-20240425095808-113b21573349 h1:QeiJCjud+DWL/9k8TCv22yF/vwUeaMnFlU844MpF6JM= -github.com/iotaledger/hive.go/ds v0.0.0-20240425095808-113b21573349/go.mod h1:f+TAmbZX7f6FmEH2lnJdVL0ZKe8QA+UE/xQLOKbLU6c= -github.com/iotaledger/hive.go/ierrors v0.0.0-20240425095808-113b21573349 h1:rIF3jDJ4ReNY3WA43BTzm4o9KMV9+yjEwK8lg8HM4y8= -github.com/iotaledger/hive.go/ierrors v0.0.0-20240425095808-113b21573349/go.mod h1:GQY0/35sjgT9Poi1Vrs9kFVvAkuKzGXfVh4j6CBXsAA= -github.com/iotaledger/hive.go/kvstore v0.0.0-20240425095808-113b21573349 h1:VMqmYEPouLs7+gnHSIplw7keV1FlaVR7fgIvQ2t/7B4= -github.com/iotaledger/hive.go/kvstore v0.0.0-20240425095808-113b21573349/go.mod h1:a/VHaowlj0AvrGLkqfNCmkC7/QKKSNitEZtNpaKhgsw= -github.com/iotaledger/hive.go/lo v0.0.0-20240425095808-113b21573349 h1:BVX+TIfs8jH8SZelPYdh1y3MSDpZ6aFbb3C3ukqpIks= -github.com/iotaledger/hive.go/lo v0.0.0-20240425095808-113b21573349/go.mod h1:U8HRCdzN4YB2/F/BkGIcNNyFb8iruD1Lf/k6yb37Kd0= -github.com/iotaledger/hive.go/log v0.0.0-20240425095808-113b21573349 h1:4LDISEN/nQ7yTk6QujHjfuL/q/dyvPhIRBQQ3rFmZOI= -github.com/iotaledger/hive.go/log v0.0.0-20240425095808-113b21573349/go.mod h1:DDObxam7BrqykUvRWE+k6i7QgM0fWXgtPPlNRhQX2O8= -github.com/iotaledger/hive.go/runtime v0.0.0-20240425095808-113b21573349 h1:IX7hFOGO1RDADT6avFn1P6FfycyQvJ6tA8cdAoLbdLA= -github.com/iotaledger/hive.go/runtime v0.0.0-20240425095808-113b21573349/go.mod h1:OoUhM/+s8au7NlG2HH13qebDsTK/0D92K6T1Cj8ynKc= -github.com/iotaledger/hive.go/serializer/v2 v2.0.0-rc.1.0.20240425095808-113b21573349 h1:jbBbYFQTQJdUeShSVJn3x/Ufrs+8EnetcFed0tkHrFc= -github.com/iotaledger/hive.go/serializer/v2 v2.0.0-rc.1.0.20240425095808-113b21573349/go.mod h1:l9lwqrn8dvaMx3IJpP1wBqZ1DFJi2eHdLzXi2GHk3gQ= -github.com/iotaledger/hive.go/sql v0.0.0-20240425095808-113b21573349 h1:+bHqh0gCgKzAkbaRVh54IWKIskvLnckrxg/UXxbgkFc= -github.com/iotaledger/hive.go/sql v0.0.0-20240425095808-113b21573349/go.mod h1:nEwIUQIvNMUs2DwM2870Er3foVQTzwPDUtzEKy+evGg= -github.com/iotaledger/hive.go/stringify v0.0.0-20240425095808-113b21573349 h1:9cuEF+WvxB/xBLkQu6H3/pHYE5KAqY98oniUFYezvzc= -github.com/iotaledger/hive.go/stringify v0.0.0-20240425095808-113b21573349/go.mod h1:O4p7UmsfoeLqtAUwrKbq0lXMxjY/MLQSpZSavvvvGig= -github.com/iotaledger/hive.go/web v0.0.0-20240425095808-113b21573349 h1:LrLWPsUcbZjR3kF5NJbuou84l+aCm8dPx4S5pQ/9bJ0= -github.com/iotaledger/hive.go/web v0.0.0-20240425095808-113b21573349/go.mod h1:YhGg68kOBM083FzmxjhQD3n/8AeG/4xr4fgM6qq1q9I= +github.com/iotaledger/hive.go/constraints v0.0.0-20240520064018-c635e5900894 h1:T8Ajx7h46fbyrd+G8aJZdHJkX2S7Rc/fNe5yXtGB1mQ= +github.com/iotaledger/hive.go/constraints v0.0.0-20240520064018-c635e5900894/go.mod h1:JF7jjkL6tSUOXm23SWadBzBrl7eJk1DQRLc/fNoVZ+o= +github.com/iotaledger/hive.go/core v1.0.0-rc.3.0.20240520064018-c635e5900894 h1:58pMONWjx8Pj7tk3d8BdmmUtmvU81Pjekp1L/xYQoi0= +github.com/iotaledger/hive.go/core v1.0.0-rc.3.0.20240520064018-c635e5900894/go.mod h1:dGx+boEwGlmJhjwafEYPgqq+eGzic4fXGjsmaYViDHk= +github.com/iotaledger/hive.go/crypto v0.0.0-20240520064018-c635e5900894 h1:ZmsMyEVYAbrjfz2A2EBwfn1nWZxw9wNrFdjyDrwsIMc= +github.com/iotaledger/hive.go/crypto v0.0.0-20240520064018-c635e5900894/go.mod h1:cyNxLUHCftR3MQvaFZgCHfkD+xmSUayt6d/v6osFSw4= +github.com/iotaledger/hive.go/db v0.0.0-20240520064018-c635e5900894 h1:MxBt/PnWIGG8zZgaNye+LYs7dGkVYCRcOVNCQklMZpY= +github.com/iotaledger/hive.go/db v0.0.0-20240520064018-c635e5900894/go.mod h1:WXaAjWG836wEy6TUCaeJFHt23wUtLa5L71uajwCko+g= +github.com/iotaledger/hive.go/ds v0.0.0-20240520064018-c635e5900894 h1:Tt1/6TXU2rh2tGu65PoOfC4pMttY2fgsUVtqf6iwaEA= +github.com/iotaledger/hive.go/ds v0.0.0-20240520064018-c635e5900894/go.mod h1:ZvFpTvsQ+D3iRIju0XVQyfjydXf5HkqTKca6BoJ+/6A= +github.com/iotaledger/hive.go/ierrors v0.0.0-20240520064018-c635e5900894 h1:nNjP8OLX8nG24shPsAov8SPv1JLl3HDCaVadqZHG3vQ= +github.com/iotaledger/hive.go/ierrors v0.0.0-20240520064018-c635e5900894/go.mod h1:GQY0/35sjgT9Poi1Vrs9kFVvAkuKzGXfVh4j6CBXsAA= +github.com/iotaledger/hive.go/kvstore v0.0.0-20240520064018-c635e5900894 h1:x1xr6MiExifYhjM6N5tF1iuQZCVEpE16sjitqjdKrBY= +github.com/iotaledger/hive.go/kvstore v0.0.0-20240520064018-c635e5900894/go.mod h1:tVA5qNVvtt9qICVVD0BzgJoM1NqlDgYkLlguQrTBS4E= +github.com/iotaledger/hive.go/lo v0.0.0-20240520064018-c635e5900894 h1:b3r0G8WQ1HBQeObTg2j7hbgJjb2oCgSVaIWazFZgVSQ= +github.com/iotaledger/hive.go/lo v0.0.0-20240520064018-c635e5900894/go.mod h1:AJRiMLXVOLKvtuuCKBqe3zBeIB6qbp1vZrU1rPHm1CU= +github.com/iotaledger/hive.go/log v0.0.0-20240520064018-c635e5900894 h1:6j4/khmsRCGMoYXFl3zBfuYpp58XkmamNPU4isVZuQg= +github.com/iotaledger/hive.go/log v0.0.0-20240520064018-c635e5900894/go.mod h1:pItG9OPlgN+oknKuS57pxtzl5+JFSUj60p7NtyLxp8Q= +github.com/iotaledger/hive.go/runtime v0.0.0-20240520064018-c635e5900894 h1:h/POgHreuT8Dv7HqBk3R91uyuI/3QWlxzl5txv3AVwU= +github.com/iotaledger/hive.go/runtime v0.0.0-20240520064018-c635e5900894/go.mod h1:f7UHJ0D7Fx3GgeRpZ9jpoxG8i3EgVbbHwmzNt9fjp8c= +github.com/iotaledger/hive.go/serializer/v2 v2.0.0-rc.1.0.20240520064018-c635e5900894 h1:aqHLdfkonUzatdQ99xyB2ArET7YvC33OEAx0yj8KeZY= +github.com/iotaledger/hive.go/serializer/v2 v2.0.0-rc.1.0.20240520064018-c635e5900894/go.mod h1:swUfdyuJMOjYdaCfhkzshF9Khkk8NAxpT6/AUnZHh2o= +github.com/iotaledger/hive.go/sql v0.0.0-20240520064018-c635e5900894 h1:p7MRUMG7IOx52zfeswqip+KUNcyiO+ACjaux66UHCts= +github.com/iotaledger/hive.go/sql v0.0.0-20240520064018-c635e5900894/go.mod h1:nv/1l2aNJMmgS0XTmRzgR1urivFyIXJqq6wkp4T2pvw= +github.com/iotaledger/hive.go/stringify v0.0.0-20240520064018-c635e5900894 h1:Bt+Hu/EjYmNPBCrl8Wn0JUyDZdiKm37ZDUaCIBceJuA= +github.com/iotaledger/hive.go/stringify v0.0.0-20240520064018-c635e5900894/go.mod h1:O4p7UmsfoeLqtAUwrKbq0lXMxjY/MLQSpZSavvvvGig= +github.com/iotaledger/hive.go/web v0.0.0-20240520064018-c635e5900894 h1:4piXQ7bbQjt2/uANsb8ukv62zb6TPxgy2qQxLoXzA3c= +github.com/iotaledger/hive.go/web v0.0.0-20240520064018-c635e5900894/go.mod h1:xFyjRoi3PjfhOnEq3iSlpDzfeXwIAUsJeCtDCGAC1aM= github.com/iotaledger/inx-app v1.0.0-rc.3.0.20240425100742-5c85b6d16701 h1:YWIaqOp7+DjxG4O6797Uw+K8rPRJN56rbwX6KpWsvEc= github.com/iotaledger/inx-app v1.0.0-rc.3.0.20240425100742-5c85b6d16701/go.mod h1:oqSLTV1hlpdLdi0MWt39c+EFgERdPM34ACAYM+4g3Oc= github.com/iotaledger/inx/go v1.0.0-rc.2.0.20240425100432-05e1bf8fc089 h1:+NRPSbH6tkop8p+MhjCR9nvs8ng3Oo2yju5FXcDEkBY= @@ -560,11 +560,11 @@ github.com/pbnjay/memory v0.0.0-20210728143218-7b4eea64cf58 h1:onHthvaw9LFnH4t2D github.com/pbnjay/memory v0.0.0-20210728143218-7b4eea64cf58/go.mod h1:DXv8WO4yhMYhSNPKjeNKa5WY9YCIEBRbNzFFPJbWO6Y= github.com/pelletier/go-toml v1.7.0 h1:7utD74fnzVc/cpcyy8sjrlFr5vYpypUixARcHIMIGuI= github.com/pelletier/go-toml v1.7.0/go.mod h1:vwGMzjaWMwyfHwgIBhI2YUM4fB6nL6lVAvS1LBMMhTE= -github.com/pelletier/go-toml/v2 v2.2.1 h1:9TA9+T8+8CUCO2+WYnDLCgrYi9+omqKXyjDtosvtEhg= -github.com/pelletier/go-toml/v2 v2.2.1/go.mod h1:1t835xjRzz80PqgE6HHgN2JOsmgYu/h4qDAS4n929Rs= +github.com/pelletier/go-toml/v2 v2.2.2 h1:aYUidT7k73Pcl9nb2gScu7NSrKCSHIDE89b3+6Wq+LM= +github.com/pelletier/go-toml/v2 v2.2.2/go.mod h1:1t835xjRzz80PqgE6HHgN2JOsmgYu/h4qDAS4n929Rs= github.com/petermattis/goid v0.0.0-20180202154549-b0b1615b78e5/go.mod h1:jvVRKCrJTQWu0XVbaOlby/2lO20uSCHEMzzplHXte1o= -github.com/petermattis/goid v0.0.0-20240327183114-c42a807a84ba h1:3jPgmsFGBID1wFfU2AbYocNcN4wqU68UaHSdMjiw/7U= -github.com/petermattis/goid v0.0.0-20240327183114-c42a807a84ba/go.mod h1:pxMtw7cyUw6B2bRH0ZBANSPg+AoSud1I1iyJHI69jH4= +github.com/petermattis/goid v0.0.0-20240503122002-4b96552b8156 h1:UOk0WKXxKXmHSlIkwQNhT5AWlMtkijU5pfj8bCOI9vQ= +github.com/petermattis/goid v0.0.0-20240503122002-4b96552b8156/go.mod h1:pxMtw7cyUw6B2bRH0ZBANSPg+AoSud1I1iyJHI69jH4= github.com/pierrec/lz4 v2.0.5+incompatible/go.mod h1:pdkljMzZIN41W+lC3N2tnIh5sFi+IEE17M5jbnwPHcY= github.com/pkg/errors v0.8.0/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= @@ -798,8 +798,8 @@ golang.org/x/net v0.0.0-20210119194325-5f4716e94777/go.mod h1:m0MpNAwzfU5UDzcl9v golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= golang.org/x/net v0.0.0-20210405180319-a5a99cb37ef4/go.mod h1:p54w0d4576C0XHj96bSt6lcn1PtDYWL6XObtHCRCNQM= golang.org/x/net v0.0.0-20210410081132-afb366fc7cd1/go.mod h1:9tjilg8BloeKEkVJvy7fQ90B1CfIiPueXVOjqfkSzI8= -golang.org/x/net v0.24.0 h1:1PcaxkF854Fu3+lvBIx5SYn9wRlBzzcnHZSiaFFAb0w= -golang.org/x/net v0.24.0/go.mod h1:2Q7sJY5mzlzWjKtYUEXSlBWCdyaioyXzRB2RtU8KVE8= +golang.org/x/net v0.25.0 h1:d/OCCoBEUq33pjydKrGQhw7IlUPI2Oylr+8qLx49kac= +golang.org/x/net v0.25.0/go.mod h1:JkAGAh7GEvH74S6FOH42FLoXpXbE/aqXSrIQjXgsiwM= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/oauth2 v0.0.0-20181017192945-9dcd33a902f4/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/oauth2 v0.0.0-20181203162652-d668ce993890/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= @@ -947,8 +947,8 @@ google.golang.org/protobuf v1.23.1-0.20200526195155-81db48ad09cc/go.mod h1:EGpAD google.golang.org/protobuf v1.25.0/go.mod h1:9JNX74DMeImyA3h4bdi1ymwjUzf21/xIlbajtzgsN7c= google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw= google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= -google.golang.org/protobuf v1.33.0 h1:uNO2rsAINq/JlFpSdYEKIZ0uKD/R9cpdv0T+yoGwGmI= -google.golang.org/protobuf v1.33.0/go.mod h1:c6P6GXX6sHbq/GpV6MGZEdwhWPcYBgnhAHhKbcUYpos= +google.golang.org/protobuf v1.34.1 h1:9ddQBjfCyZPOHPUiPxpYESBLc+T8P3E+Vo4IbKZgFWg= +google.golang.org/protobuf v1.34.1/go.mod h1:c6P6GXX6sHbq/GpV6MGZEdwhWPcYBgnhAHhKbcUYpos= gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw= gopkg.in/asn1-ber.v1 v1.0.0-20181015200546-f715ec2f112d/go.mod h1:cuepJuh7vyXfUyUwEgHQXw849cJrilpS5NeIjOWESAw= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= @@ -978,8 +978,8 @@ gorm.io/driver/postgres v1.5.7 h1:8ptbNJTDbEmhdr62uReG5BGkdQyeasu/FZHxI0IMGnM= gorm.io/driver/postgres v1.5.7/go.mod h1:3e019WlBaYI5o5LIdNV+LyxCMNtLOQETBXL2h4chKpA= gorm.io/driver/sqlite v1.5.5 h1:7MDMtUZhV065SilG62E0MquljeArQZNfJnjd9i9gx3E= gorm.io/driver/sqlite v1.5.5/go.mod h1:6NgQ7sQWAIFsPrJJl1lSNSu2TABh0ZZ/zm5fosATavE= -gorm.io/gorm v1.25.9 h1:wct0gxZIELDk8+ZqF/MVnHLkA1rvYlBWUMv2EdsK1g8= -gorm.io/gorm v1.25.9/go.mod h1:hbnx/Oo0ChWMn1BIhpy1oYozzpM15i4YPuHDmfYtwg8= +gorm.io/gorm v1.25.10 h1:dQpO+33KalOA+aFYGlK+EfxcI5MbO7EP2yYygwh9h+s= +gorm.io/gorm v1.25.10/go.mod h1:hbnx/Oo0ChWMn1BIhpy1oYozzpM15i4YPuHDmfYtwg8= grpc.go4.org v0.0.0-20170609214715-11d0a25b4919/go.mod h1:77eQGdRu53HpSqPFJFmuJdjuHRquDANNeA4x7B8WQ9o= honnef.co/go/tools v0.0.0-20180728063816-88497007e858/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= From 40256f0d2923908155cd548a5343e4538dc78b76 Mon Sep 17 00:00:00 2001 From: Alexander Sporn Date: Tue, 4 Jun 2024 14:07:12 +0200 Subject: [PATCH 4/4] Properly track newly created accounts --- pkg/protocol/engine/ledger/ledger/ledger.go | 38 ++++++++++++--------- 1 file changed, 22 insertions(+), 16 deletions(-) diff --git a/pkg/protocol/engine/ledger/ledger/ledger.go b/pkg/protocol/engine/ledger/ledger/ledger.go index 917076d74..4e3a57725 100644 --- a/pkg/protocol/engine/ledger/ledger/ledger.go +++ b/pkg/protocol/engine/ledger/ledger/ledger.go @@ -169,7 +169,7 @@ func (l *Ledger) CommitSlot(slot iotago.SlotIndex) (stateRoot iotago.Identifier, // account changes at UTXO level without needing to worry about multiple spenders of the same account in the same slot, // we only care about the initial account output to be consumed and the final account output to be created. // output side - createdAccounts, consumedAccounts, destroyedAccounts, err := l.processCreatedAndConsumedAccountOutputs(stateDiff, accountDiffs) + createdAccountOutputs, consumedAccountOutputs, createdAccounts, destroyedAccounts, err := l.processCreatedAndConsumedAccountOutputs(stateDiff, accountDiffs) if err != nil { return iotago.Identifier{}, iotago.Identifier{}, iotago.Identifier{}, nil, nil, nil, ierrors.Wrapf(err, "failed to process outputs consumed and created in slot %d", slot) } @@ -181,7 +181,8 @@ func (l *Ledger) CommitSlot(slot iotago.SlotIndex) (stateRoot iotago.Identifier, return nil }) - l.prepareAccountDiffs(accountDiffs, slot, consumedAccounts, createdAccounts) + + l.prepareAccountDiffs(accountDiffs, slot, consumedAccountOutputs, createdAccountOutputs) // Commit the changes // Update the UTXO ledger @@ -206,15 +207,17 @@ func (l *Ledger) CommitSlot(slot iotago.SlotIndex) (stateRoot iotago.Identifier, } // Update the mana manager's cache - if err = l.manaManager.ApplyDiff(slot, destroyedAccounts, createdAccounts, accountDiffs); err != nil { + if err = l.manaManager.ApplyDiff(slot, destroyedAccounts, createdAccountOutputs, accountDiffs); err != nil { return iotago.Identifier{}, iotago.Identifier{}, iotago.Identifier{}, nil, nil, nil, ierrors.Wrapf(err, "failed to apply diff to mana manager for slot %d", slot) } // Created account event need to be triggered only after the AccountLedger and UTXO ledger are updated, // so that components (like Scheduler) that listen to the event can access the consistent account state. - for accountID := range createdAccounts { + _ = createdAccounts.ForEach(func(accountID iotago.AccountID) error { l.events.AccountCreated.Trigger(accountID) - } + + return nil + }) // Mark each transaction as committed so the mempool can evict it stateDiff.ExecutedTransactions().ForEach(func(_ iotago.TransactionID, tx mempool.TransactionMetadata) bool { @@ -509,9 +512,10 @@ func (l *Ledger) prepareAccountDiffs(accountDiffs map[iotago.AccountID]*model.Ac } } -func (l *Ledger) processCreatedAndConsumedAccountOutputs(stateDiff mempool.StateDiff, accountDiffs map[iotago.AccountID]*model.AccountDiff) (createdAccounts map[iotago.AccountID]*utxoledger.Output, consumedAccounts map[iotago.AccountID]*utxoledger.Output, destroyedAccounts ds.Set[iotago.AccountID], err error) { - createdAccounts = make(map[iotago.AccountID]*utxoledger.Output) - consumedAccounts = make(map[iotago.AccountID]*utxoledger.Output) +func (l *Ledger) processCreatedAndConsumedAccountOutputs(stateDiff mempool.StateDiff, accountDiffs map[iotago.AccountID]*model.AccountDiff) (createdAccountOutputs map[iotago.AccountID]*utxoledger.Output, consumedAccountOutputs map[iotago.AccountID]*utxoledger.Output, createdAccounts ds.Set[iotago.AccountID], destroyedAccounts ds.Set[iotago.AccountID], err error) { + createdAccountOutputs = make(map[iotago.AccountID]*utxoledger.Output) + consumedAccountOutputs = make(map[iotago.AccountID]*utxoledger.Output) + createdAccounts = ds.NewSet[iotago.AccountID]() destroyedAccounts = ds.NewSet[iotago.AccountID]() newAccountDelegation := make(map[iotago.ChainID]*iotago.DelegationOutput) @@ -536,9 +540,10 @@ func (l *Ledger) processCreatedAndConsumedAccountOutputs(stateDiff mempool.State accountID := createdAccount.AccountID if accountID.Empty() { accountID = iotago.AccountIDFromOutputID(createdOutput.OutputID()) + createdAccounts.Add(accountID) } - createdAccounts[accountID] = createdOutput + createdAccountOutputs[accountID] = createdOutput case iotago.OutputDelegation: delegationOutput, _ := createdOutput.Output().(*iotago.DelegationOutput) delegationID := delegationOutput.DelegationID @@ -554,7 +559,8 @@ func (l *Ledger) processCreatedAndConsumedAccountOutputs(stateDiff mempool.State // if a basic output is sent to an implicit account creation address, we need to create the account if createdOutput.Output().UnlockConditionSet().Address().Address.Type() == iotago.AddressImplicitAccountCreation { accountID := iotago.AccountIDFromOutputID(createdOutput.OutputID()) - createdAccounts[accountID] = createdOutput + createdAccounts.Add(accountID) + createdAccountOutputs[accountID] = createdOutput } } @@ -562,7 +568,7 @@ func (l *Ledger) processCreatedAndConsumedAccountOutputs(stateDiff mempool.State }) if err != nil { - return nil, nil, nil, ierrors.Wrap(err, "error while processing created states") + return nil, nil, nil, nil, ierrors.Wrap(err, "error while processing created states") } // input side @@ -585,10 +591,10 @@ func (l *Ledger) processCreatedAndConsumedAccountOutputs(stateDiff mempool.State if consumedAccount.FeatureSet().BlockIssuer() == nil && consumedAccount.FeatureSet().Staking() == nil { return true } - consumedAccounts[accountID] = spentOutput + consumedAccountOutputs[accountID] = spentOutput // if we have consumed accounts that are not created in the same slot, we need to track them as destroyed - if _, exists := createdAccounts[accountID]; !exists { + if _, exists := createdAccountOutputs[accountID]; !exists { destroyedAccounts.Add(accountID) } @@ -606,7 +612,7 @@ func (l *Ledger) processCreatedAndConsumedAccountOutputs(stateDiff mempool.State // if a basic output (implicit account) is consumed, get the accountID as hash of the output ID. if spentOutput.Output().UnlockConditionSet().Address().Address.Type() == iotago.AddressImplicitAccountCreation { accountID := iotago.AccountIDFromOutputID(spentOutput.OutputID()) - consumedAccounts[accountID] = spentOutput + consumedAccountOutputs[accountID] = spentOutput } } @@ -620,10 +626,10 @@ func (l *Ledger) processCreatedAndConsumedAccountOutputs(stateDiff mempool.State } if err != nil { - return nil, nil, nil, ierrors.Wrap(err, "error while processing created states") + return nil, nil, nil, nil, ierrors.Wrap(err, "error while processing created states") } - return createdAccounts, consumedAccounts, destroyedAccounts, nil + return createdAccountOutputs, consumedAccountOutputs, createdAccounts, destroyedAccounts, nil } func (l *Ledger) processStateDiffTransactions(stateDiff mempool.StateDiff) (spents utxoledger.Spents, outputs utxoledger.Outputs, accountDiffs map[iotago.AccountID]*model.AccountDiff, err error) {