From 6fe8336a9d9fda6219510fbf50e6e3a201892756 Mon Sep 17 00:00:00 2001 From: muXxer Date: Thu, 25 Apr 2024 13:55:01 +0200 Subject: [PATCH] Add `engine.ExportSnapshot` --- components/restapi/management/snapshots.go | 26 +---- go.mod | 50 ++++----- go.sum | 100 +++++++++--------- pkg/protocol/engine/engine.go | 43 ++++++++ .../tests/api_management_test.go | 2 +- tools/gendoc/go.mod | 50 ++++----- tools/gendoc/go.sum | 100 +++++++++--------- 7 files changed, 198 insertions(+), 173 deletions(-) diff --git a/components/restapi/management/snapshots.go b/components/restapi/management/snapshots.go index 6ec07aafc..91e75e16a 100644 --- a/components/restapi/management/snapshots.go +++ b/components/restapi/management/snapshots.go @@ -1,42 +1,24 @@ package management import ( - "fmt" - "path/filepath" - "strings" - "github.com/labstack/echo/v4" "github.com/iotaledger/hive.go/ierrors" - "github.com/iotaledger/inx-app/pkg/httpserver" "github.com/iotaledger/iota.go/v4/api" ) -func createSnapshots(c echo.Context) (*api.CreateSnapshotResponse, error) { +func createSnapshots(_ echo.Context) (*api.CreateSnapshotResponse, error) { if deps.Protocol.Engines.Main.Get().IsSnapshotting() || deps.Protocol.Engines.Main.Get().Storage.IsPruning() { return nil, ierrors.WithMessage(echo.ErrServiceUnavailable, "node is already creating a snapshot or pruning is running") } - request := &api.CreateSnapshotRequest{} - if err := c.Bind(request); err != nil { - return nil, ierrors.WithMessagef(httpserver.ErrInvalidParameter, "invalid request: %w", err) - } - if request.Slot == 0 { - return nil, ierrors.WithMessage(httpserver.ErrInvalidParameter, "slot needs to be specified") - } - - directory := filepath.Dir(deps.SnapshotFilePath) - fileName := filepath.Base(deps.SnapshotFilePath) - fileExt := filepath.Ext(fileName) - fileNameWithoutExt := strings.TrimSuffix(fileName, fileExt) - filePath := filepath.Join(directory, fmt.Sprintf("%s_%d%s", fileNameWithoutExt, request.Slot, fileExt)) - - if err := deps.Protocol.Engines.Main.Get().WriteSnapshot(filePath, request.Slot); err != nil { + targetSlot, filePath, err := deps.Protocol.Engines.Main.Get().ExportSnapshot(deps.SnapshotFilePath, true, true) + if err != nil { return nil, ierrors.WithMessagef(echo.ErrInternalServerError, "creating snapshot failed: %w", err) } return &api.CreateSnapshotResponse{ - Slot: request.Slot, + Slot: targetSlot, FilePath: filePath, }, nil } diff --git a/go.mod b/go.mod index 0a3585079..f0483172b 100644 --- a/go.mod +++ b/go.mod @@ -11,24 +11,24 @@ 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-20240419094509-31dbb7270ad9 - github.com/iotaledger/hive.go/app v0.0.0-20240419094509-31dbb7270ad9 - github.com/iotaledger/hive.go/constraints v0.0.0-20240419094509-31dbb7270ad9 - github.com/iotaledger/hive.go/core v1.0.0-rc.3.0.20240419094509-31dbb7270ad9 - github.com/iotaledger/hive.go/crypto v0.0.0-20240419094509-31dbb7270ad9 - github.com/iotaledger/hive.go/db v0.0.0-20240419094509-31dbb7270ad9 - github.com/iotaledger/hive.go/ds v0.0.0-20240419094509-31dbb7270ad9 - github.com/iotaledger/hive.go/ierrors v0.0.0-20240419094509-31dbb7270ad9 - github.com/iotaledger/hive.go/kvstore v0.0.0-20240419094509-31dbb7270ad9 - github.com/iotaledger/hive.go/lo v0.0.0-20240419094509-31dbb7270ad9 - github.com/iotaledger/hive.go/log v0.0.0-20240419094509-31dbb7270ad9 - github.com/iotaledger/hive.go/runtime v0.0.0-20240419094509-31dbb7270ad9 - github.com/iotaledger/hive.go/serializer/v2 v2.0.0-rc.1.0.20240419094509-31dbb7270ad9 - github.com/iotaledger/hive.go/sql v0.0.0-20240419094509-31dbb7270ad9 - github.com/iotaledger/hive.go/stringify v0.0.0-20240419094509-31dbb7270ad9 - github.com/iotaledger/inx-app v1.0.0-rc.3.0.20240423111221-4248ffa5d850 - github.com/iotaledger/inx/go v1.0.0-rc.2.0.20240423105148-cc9e62fe4f63 - github.com/iotaledger/iota.go/v4 v4.0.0-20240419095144-054bd7d2ba61 + 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/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-20240425100055-540c74851d65 github.com/labstack/echo/v4 v4.12.0 github.com/labstack/gommon v0.4.2 github.com/libp2p/go-libp2p v0.33.2 @@ -66,7 +66,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.13.15 // indirect + github.com/ethereum/go-ethereum v1.14.0 // 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 @@ -83,7 +83,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-20240416155748-26353dc0451f // indirect + github.com/google/pprof v0.0.0-20240424215950-a892ee059fd6 // 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 @@ -158,7 +158,7 @@ require ( github.com/polydawn/refmt v0.89.0 // indirect github.com/prometheus/client_model v0.6.1 // indirect github.com/prometheus/common v0.53.0 // indirect - github.com/prometheus/procfs v0.13.0 // indirect + github.com/prometheus/procfs v0.14.0 // indirect github.com/quic-go/qpack v0.4.0 // indirect github.com/quic-go/quic-go v0.42.0 // indirect github.com/quic-go/webtransport-go v0.7.0 // indirect @@ -171,10 +171,10 @@ require ( github.com/valyala/fasttemplate v1.2.2 // indirect github.com/whyrusleeping/go-keyspace v0.0.0-20160322163242-5b898ac5add1 // indirect go.opencensus.io v0.24.0 // indirect - go.opentelemetry.io/otel v1.25.0 // indirect - go.opentelemetry.io/otel/metric v1.25.0 // indirect - go.opentelemetry.io/otel/trace v1.25.0 // indirect - go.uber.org/fx v1.21.0 // indirect + go.opentelemetry.io/otel v1.26.0 // indirect + go.opentelemetry.io/otel/metric v1.26.0 // indirect + go.opentelemetry.io/otel/trace v1.26.0 // indirect + go.uber.org/fx v1.21.1 // indirect go.uber.org/mock v0.4.0 // indirect go.uber.org/multierr v1.11.0 // indirect go.uber.org/zap v1.27.0 // indirect diff --git a/go.sum b/go.sum index 1d7f9c78e..0b4a86a70 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.13.15 h1:U7sSGYGo4SPjP6iNIifNoyIAiNjrmQkz6EwQG+/EZWo= -github.com/ethereum/go-ethereum v1.13.15/go.mod h1:TN8ZiHrdJwSe8Cb6x+p0hs5CxhJZPbqB7hHkaUXcmIU= +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/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-20240416155748-26353dc0451f h1:WpZiq8iqvGjJ3m3wzAVKL6+0vz7VkE79iSy9GII00II= -github.com/google/pprof v0.0.0-20240416155748-26353dc0451f/go.mod h1:kf6iHlnVGwgKolg33glAes7Yg/8iWP8ukqeldJSO7jw= +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/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,44 +291,44 @@ 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-20240419094509-31dbb7270ad9 h1:OtQQjWzuetfrljqejMrFmaOGuqQsCHhgSIrWKlNvnM0= -github.com/iotaledger/hive.go/ads v0.0.0-20240419094509-31dbb7270ad9/go.mod h1:paLRdgPPz6EFUP9sl/eR8/BRp2y2i1i0v0a137veyPc= -github.com/iotaledger/hive.go/app v0.0.0-20240419094509-31dbb7270ad9 h1:ioVfqMH2pVInrq5ECyX11CPMaX1GoSmf9OdjXuou0qs= -github.com/iotaledger/hive.go/app v0.0.0-20240419094509-31dbb7270ad9/go.mod h1:aroo/1Q7hSdtjnqNzRoyOxRAhc4n++lzQIIRVUoEmIo= -github.com/iotaledger/hive.go/constraints v0.0.0-20240419094509-31dbb7270ad9 h1:uqfHdZy4zYmoZmvxZkt7SGPTmpM2MbsF7oO0izRdNQo= -github.com/iotaledger/hive.go/constraints v0.0.0-20240419094509-31dbb7270ad9/go.mod h1:JF7jjkL6tSUOXm23SWadBzBrl7eJk1DQRLc/fNoVZ+o= -github.com/iotaledger/hive.go/core v1.0.0-rc.3.0.20240419094509-31dbb7270ad9 h1:tolw9bD7ZpPjFqxndeFeoJvTDvtjPlZV9l+KcJeb1Sk= -github.com/iotaledger/hive.go/core v1.0.0-rc.3.0.20240419094509-31dbb7270ad9/go.mod h1:5WQlObLrbAjXbiwxtXBQgOvYYUKBjr+DAKJvtYjuAb8= -github.com/iotaledger/hive.go/crypto v0.0.0-20240419094509-31dbb7270ad9 h1:v+PRD9IcTJ+gZLjPMuE7p27URiDpjgtqOWaDkkZC0co= -github.com/iotaledger/hive.go/crypto v0.0.0-20240419094509-31dbb7270ad9/go.mod h1:epV21LR3ejz/GxDQEIzvTCMam/gBg6A05QnuVRHwMWM= -github.com/iotaledger/hive.go/db v0.0.0-20240419094509-31dbb7270ad9 h1:pe9NkePYuNp++RGSEH2ces6x3K5mIwRqFGzcI63s20M= -github.com/iotaledger/hive.go/db v0.0.0-20240419094509-31dbb7270ad9/go.mod h1:N6gSPFH6M8zp9NZzRs3n08+8EF73N3+boiPEgheDisk= -github.com/iotaledger/hive.go/ds v0.0.0-20240419094509-31dbb7270ad9 h1:rALtm5sVLfHZHe06kAh/hyyqU7HNDRswpLe9MS7+E0w= -github.com/iotaledger/hive.go/ds v0.0.0-20240419094509-31dbb7270ad9/go.mod h1:F2oK6RYYAeG2dgdndSxc6NwNqGt/TZ3lgx5EEQKNoCY= -github.com/iotaledger/hive.go/ierrors v0.0.0-20240419094509-31dbb7270ad9 h1:AMTSXEjoeOoV+LwPCvttABpMhSgwTWrZ/iq1s+JyKQQ= -github.com/iotaledger/hive.go/ierrors v0.0.0-20240419094509-31dbb7270ad9/go.mod h1:GQY0/35sjgT9Poi1Vrs9kFVvAkuKzGXfVh4j6CBXsAA= -github.com/iotaledger/hive.go/kvstore v0.0.0-20240419094509-31dbb7270ad9 h1:KM1IgASn62njL6zN/htf0Zagbsre12jmdv0FECOykUM= -github.com/iotaledger/hive.go/kvstore v0.0.0-20240419094509-31dbb7270ad9/go.mod h1:/1tAgBTbFRVogKMIIF1zqD+dCplwtXpxob0k6LlsypM= -github.com/iotaledger/hive.go/lo v0.0.0-20240419094509-31dbb7270ad9 h1:u/eppYqakPRU+IYFRVSz2Wht5ghPHIRH7ZLLPusO43o= -github.com/iotaledger/hive.go/lo v0.0.0-20240419094509-31dbb7270ad9/go.mod h1:bSVsU1c4je63jbBS+u/CBRzOuxpjIiALZ6/vquCbw6k= -github.com/iotaledger/hive.go/log v0.0.0-20240419094509-31dbb7270ad9 h1:Q0JF2Kl/R0itZXAEztgVEtWd9XEz3tAbQNw2NUFVBVA= -github.com/iotaledger/hive.go/log v0.0.0-20240419094509-31dbb7270ad9/go.mod h1:8V0edSUFsFsZp3w4InwQtXA9xP+ox4H3IjIfZvStlHI= -github.com/iotaledger/hive.go/runtime v0.0.0-20240419094509-31dbb7270ad9 h1:IlefVRTrMeWb1L7JiCHr4mWTHgJ+cxI1e6HhMHHTRnc= -github.com/iotaledger/hive.go/runtime v0.0.0-20240419094509-31dbb7270ad9/go.mod h1:+lCLTDV7ldfvbqV6WCl0xCajrfbL54ZEmnnsx1mEHLA= -github.com/iotaledger/hive.go/serializer/v2 v2.0.0-rc.1.0.20240419094509-31dbb7270ad9 h1:+cCt2sCQfhcapN/bPjDSv2Ub1uT0S62HH5Q1WTs3e1A= -github.com/iotaledger/hive.go/serializer/v2 v2.0.0-rc.1.0.20240419094509-31dbb7270ad9/go.mod h1:TXhgZZ0wD1ylof5msP+21xypd2utw0F8tEX3kCDR84s= -github.com/iotaledger/hive.go/sql v0.0.0-20240419094509-31dbb7270ad9 h1:vcYko6aVfzCcFFGAsp3o3P6nT8DXYEkG8MTKcX6LkDg= -github.com/iotaledger/hive.go/sql v0.0.0-20240419094509-31dbb7270ad9/go.mod h1:4mRjOeG4Opy+5E8PeMOzXNGZVnunSdubcyK61j+E+Yk= -github.com/iotaledger/hive.go/stringify v0.0.0-20240419094509-31dbb7270ad9 h1:NJE7qTEiG/fAQzn5aF0MucA2yQx3CitVBZVP0sh4WpQ= -github.com/iotaledger/hive.go/stringify v0.0.0-20240419094509-31dbb7270ad9/go.mod h1:O4p7UmsfoeLqtAUwrKbq0lXMxjY/MLQSpZSavvvvGig= -github.com/iotaledger/inx-app v1.0.0-rc.3.0.20240423111221-4248ffa5d850 h1:PBFs3UuwpCdd7jqHozVx2/UMJCQ6fwZeIzkedv1bum4= -github.com/iotaledger/inx-app v1.0.0-rc.3.0.20240423111221-4248ffa5d850/go.mod h1:kk+TNI0FkHRkSHuLXMkAmnbdxZjmizZgVo1vE2fXXJ8= -github.com/iotaledger/inx/go v1.0.0-rc.2.0.20240423105148-cc9e62fe4f63 h1:vt8LvpthPv2iVgIDzHN0N3Gee5+KEmqm/3eeF5G6hyA= -github.com/iotaledger/inx/go v1.0.0-rc.2.0.20240423105148-cc9e62fe4f63/go.mod h1:YYko1kTtJgfETXQqWHgJkHQv6gGYGDxjnwDC6FbXxic= +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/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= +github.com/iotaledger/inx/go v1.0.0-rc.2.0.20240425100432-05e1bf8fc089/go.mod h1:+iSOmdi7LSd1pXMThZsQk4YDbCSlvVomJUqbRhp3+Nk= github.com/iotaledger/iota-crypto-demo v0.0.0-20240419094816-40260bb800f7 h1:R7ogCKTQ2D5SfVoE6n9GQUsKwm4dcxqwnU863JVlVbw= github.com/iotaledger/iota-crypto-demo v0.0.0-20240419094816-40260bb800f7/go.mod h1:ntqq5J5Fu2SijiqPsjjdFkMm96UhGU/K0z3j6ARpHec= -github.com/iotaledger/iota.go/v4 v4.0.0-20240419095144-054bd7d2ba61 h1:vC1YXh2b8WleeAJvqf76PtBDvOXNIaI2Xdn0eLi2YFU= -github.com/iotaledger/iota.go/v4 v4.0.0-20240419095144-054bd7d2ba61/go.mod h1:ui1VcUuBHzN4eO0VR89UKqkiYR443VsznFMJgY2YRUQ= +github.com/iotaledger/iota.go/v4 v4.0.0-20240425100055-540c74851d65 h1:cKn39WbYZrBbGIeK5SZyu1Eukh1IOq8ZdBh7jC2/9Gg= +github.com/iotaledger/iota.go/v4 v4.0.0-20240425100055-540c74851d65/go.mod h1:2/gBFmGlXzZLcpOqTQTl2GqXtoe/aec6Fu9QTooQPZQ= github.com/ipfs/boxo v0.19.0 h1:UbX9FBJQF19ACLqRZOgdEla6jR/sC4H1O+iGE0NToXA= github.com/ipfs/boxo v0.19.0/go.mod h1:V5gJzbIMwKEXrg3IdvAxIdF7UPgU4RsXmNGS8MQ/0D4= github.com/ipfs/go-cid v0.4.1 h1:A/T3qGvxi4kpKWWcPC/PgbvDA2bjVLO7n4UeVwnbs/s= @@ -596,8 +596,8 @@ github.com/prometheus/procfs v0.0.0-20181005140218-185b4288413d/go.mod h1:c3At6R github.com/prometheus/procfs v0.0.2/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= github.com/prometheus/procfs v0.1.3/go.mod h1:lV6e/gmhEcM9IjHGsFOCxxuZ+z1YqCvr4OA4YeYWdaU= github.com/prometheus/procfs v0.6.0/go.mod h1:cz+aTbrPOrUb4q7XlbU9ygM+/jj0fzG6c1xBZuNvfVA= -github.com/prometheus/procfs v0.13.0 h1:GqzLlQyfsPbaEHaQkO7tbDlriv/4o5Hudv6OXHGKX7o= -github.com/prometheus/procfs v0.13.0/go.mod h1:cd4PFCR54QLnGKPaKGA6l+cfuNXtht43ZKY6tow0Y1g= +github.com/prometheus/procfs v0.14.0 h1:Lw4VdGGoKEZilJsayHf0B+9YgLGREba2C6xr+Fdfq6s= +github.com/prometheus/procfs v0.14.0/go.mod h1:XL+Iwz8k8ZabyZfMFHPiilCniixqQarAy5Mu67pHlNQ= github.com/quic-go/qpack v0.4.0 h1:Cr9BXA1sQS2SmDUWjSofMPNKmvF6IiIfDRmgU0w1ZCo= github.com/quic-go/qpack v0.4.0/go.mod h1:UZVnYIfi5GRk+zI9UMaCPsmZ2xKJP7XBUvVyT1Knj9A= github.com/quic-go/quic-go v0.42.0 h1:uSfdap0eveIl8KXnipv9K7nlwZ5IqLlYOpJ58u5utpM= @@ -708,20 +708,20 @@ go.etcd.io/etcd/client/v3 v3.5.4/go.mod h1:ZaRkVgBZC+L+dLCjTcF1hRXpgZXQPOvnA/Ak/ go.opencensus.io v0.18.0/go.mod h1:vKdFvxhtzZ9onBp9VKHK8z/sRpBMnKAsufL7wlDrCOA= go.opencensus.io v0.24.0 h1:y73uSU6J157QMP2kn2r30vwW1A2W2WFwSCGnAVxeaD0= go.opencensus.io v0.24.0/go.mod h1:vNK8G9p7aAivkbmorf4v+7Hgx+Zs0yY+0fOtgBfjQKo= -go.opentelemetry.io/otel v1.25.0 h1:gldB5FfhRl7OJQbUHt/8s0a7cE8fbsPAtdpRaApKy4k= -go.opentelemetry.io/otel v1.25.0/go.mod h1:Wa2ds5NOXEMkCmUou1WA7ZBfLTHWIsp034OVD7AO+Vg= -go.opentelemetry.io/otel/metric v1.25.0 h1:LUKbS7ArpFL/I2jJHdJcqMGxkRdxpPHE0VU/D4NuEwA= -go.opentelemetry.io/otel/metric v1.25.0/go.mod h1:rkDLUSd2lC5lq2dFNrX9LGAbINP5B7WBkC78RXCpH5s= -go.opentelemetry.io/otel/trace v1.25.0 h1:tqukZGLwQYRIFtSQM2u2+yfMVTgGVeqRLPUYx1Dq6RM= -go.opentelemetry.io/otel/trace v1.25.0/go.mod h1:hCCs70XM/ljO+BeQkyFnbK28SBIJ/Emuha+ccrCRT7I= +go.opentelemetry.io/otel v1.26.0 h1:LQwgL5s/1W7YiiRwxf03QGnWLb2HW4pLiAhaA5cZXBs= +go.opentelemetry.io/otel v1.26.0/go.mod h1:UmLkJHUAidDval2EICqBMbnAd0/m2vmpf/dAM+fvFs4= +go.opentelemetry.io/otel/metric v1.26.0 h1:7S39CLuY5Jgg9CrnA9HHiEjGMF/X2VHvoXGgSllRz30= +go.opentelemetry.io/otel/metric v1.26.0/go.mod h1:SY+rHOI4cEawI9a7N1A4nIg/nTQXe1ccCNWYOJUrpX4= +go.opentelemetry.io/otel/trace v1.26.0 h1:1ieeAUb4y0TE26jUFrCIXKpTuVK7uJGN9/Z/2LP5sQA= +go.opentelemetry.io/otel/trace v1.26.0/go.mod h1:4iDxvGDQuUkHve82hJJ8UqrwswHYsZuWCBllGV2U2y0= go.uber.org/atomic v1.6.0/go.mod h1:sABNBOSYdrvTF6hTgEIbc7YasKWGhgEQZyfxyTvoXHQ= go.uber.org/atomic v1.7.0/go.mod h1:fEN4uk6kAWBTFdckzkM89CLk9XfWZrxpCo0nPH17wJc= go.uber.org/atomic v1.11.0 h1:ZvwS0R+56ePWxUNi+Atn9dWONBPp/AUETXlHW0DxSjE= go.uber.org/atomic v1.11.0/go.mod h1:LUxbIzbOniOlMKjJjyPfpl4v+PKK2cNJn91OQbhoJI0= go.uber.org/dig v1.17.1 h1:Tga8Lz8PcYNsWsyHMZ1Vm0OQOUaJNDyvPImgbAu9YSc= go.uber.org/dig v1.17.1/go.mod h1:Us0rSJiThwCv2GteUN0Q7OKvU7n5J4dxZ9JKUXozFdE= -go.uber.org/fx v1.21.0 h1:qqD6k7PyFHONffW5speYx403ywanuASqU4Rqdpc22XY= -go.uber.org/fx v1.21.0/go.mod h1:HT2M7d7RHo+ebKGh9NRcrsrHHfpZ60nW3QRubMRfv48= +go.uber.org/fx v1.21.1 h1:RqBh3cYdzZS0uqwVeEjOX2p73dddLpym315myy/Bpb0= +go.uber.org/fx v1.21.1/go.mod h1:HT2M7d7RHo+ebKGh9NRcrsrHHfpZ60nW3QRubMRfv48= 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= diff --git a/pkg/protocol/engine/engine.go b/pkg/protocol/engine/engine.go index 56b7694dc..716dd5995 100644 --- a/pkg/protocol/engine/engine.go +++ b/pkg/protocol/engine/engine.go @@ -1,9 +1,11 @@ package engine import ( + "fmt" "io" "os" "path/filepath" + "strings" "sync/atomic" "time" @@ -393,6 +395,47 @@ func (e *Engine) WriteSnapshot(filePath string, targetSlot ...iotago.SlotIndex) return nil } +func (e *Engine) ExportSnapshot(filePath string, addSlotToFileName bool, useFinalized bool) (iotago.SlotIndex, string, error) { + // we need to create snapshots always for the last slot of the previous epoch + var targetSlot iotago.SlotIndex + + var latestSlot iotago.SlotIndex + if useFinalized { + latestSlot = e.Storage.Settings().LatestFinalizedSlot() + } else { + latestSlot = e.Storage.Settings().LatestCommitment().Slot() + } + + latestSlotEpoch := e.CommittedAPI().TimeProvider().EpochFromSlot(latestSlot) + currentEpoch := e.CommittedAPI().TimeProvider().CurrentEpoch() + if currentEpoch != latestSlotEpoch { + if useFinalized { + return 0, "", ierrors.Errorf("impossible to create a snapshot for the current epoch %d because the last slot of the previous epoch is not finalized yet", currentEpoch) + } + + return 0, "", ierrors.Errorf("impossible to create a snapshot for the current epoch %d because the last slot of the previous epoch is not committed yet", currentEpoch) + } + if latestSlotEpoch == 0 { + return 0, "", ierrors.New("impossible to create a snapshot for the genesis epoch") + } + + targetSlot = e.CommittedAPI().TimeProvider().EpochEnd(latestSlotEpoch - 1) + + if addSlotToFileName { + directory := filepath.Dir(filePath) + fileName := filepath.Base(filePath) + fileExt := filepath.Ext(fileName) + fileNameWithoutExt := strings.TrimSuffix(fileName, fileExt) + filePath = filepath.Join(directory, fmt.Sprintf("%s_%d%s", fileNameWithoutExt, targetSlot, fileExt)) + } + + if err := e.WriteSnapshot(filePath, targetSlot); err != nil { + return 0, "", err + } + + return targetSlot, filePath, nil +} + func (e *Engine) ImportSettings(reader io.ReadSeeker) (err error) { if err = e.Storage.Settings().Import(reader); err != nil { return ierrors.Wrap(err, "failed to import settings") diff --git a/tools/docker-network/tests/api_management_test.go b/tools/docker-network/tests/api_management_test.go index 251cd7754..64c4fbb41 100644 --- a/tools/docker-network/tests/api_management_test.go +++ b/tools/docker-network/tests/api_management_test.go @@ -323,7 +323,7 @@ func Test_ManagementAPI_Snapshots(t *testing.T) { awaitNextEpoch() // create snapshot - snapshotResponse, err := managementClient.CreateSnapshot(getContextWithTimeout(5*time.Second), 1) + snapshotResponse, err := managementClient.CreateSnapshot(getContextWithTimeout(5 * time.Second)) require.NoError(t, err) require.NotNil(t, snapshotResponse) }, diff --git a/tools/gendoc/go.mod b/tools/gendoc/go.mod index 225d817d5..2cb447865 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-20240419094509-31dbb7270ad9 + github.com/iotaledger/hive.go/app v0.0.0-20240425095808-113b21573349 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.13.15 // indirect + github.com/ethereum/go-ethereum v1.14.0 // 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-20240416155748-26353dc0451f // indirect + github.com/google/pprof v0.0.0-20240424215950-a892ee059fd6 // 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,24 +57,24 @@ 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-20240419094509-31dbb7270ad9 // indirect - github.com/iotaledger/hive.go/constraints v0.0.0-20240419094509-31dbb7270ad9 // indirect - github.com/iotaledger/hive.go/core v1.0.0-rc.3.0.20240419094509-31dbb7270ad9 // indirect - github.com/iotaledger/hive.go/crypto v0.0.0-20240419094509-31dbb7270ad9 // indirect - github.com/iotaledger/hive.go/db v0.0.0-20240419094509-31dbb7270ad9 // indirect - github.com/iotaledger/hive.go/ds v0.0.0-20240419094509-31dbb7270ad9 // indirect - github.com/iotaledger/hive.go/ierrors v0.0.0-20240419094509-31dbb7270ad9 // indirect - github.com/iotaledger/hive.go/kvstore v0.0.0-20240419094509-31dbb7270ad9 // indirect - github.com/iotaledger/hive.go/lo v0.0.0-20240419094509-31dbb7270ad9 // indirect - github.com/iotaledger/hive.go/log v0.0.0-20240419094509-31dbb7270ad9 // indirect - github.com/iotaledger/hive.go/runtime v0.0.0-20240419094509-31dbb7270ad9 // indirect - github.com/iotaledger/hive.go/serializer/v2 v2.0.0-rc.1.0.20240419094509-31dbb7270ad9 // indirect - github.com/iotaledger/hive.go/sql v0.0.0-20240419094509-31dbb7270ad9 // indirect - github.com/iotaledger/hive.go/stringify v0.0.0-20240419094509-31dbb7270ad9 // indirect - github.com/iotaledger/inx-app v1.0.0-rc.3.0.20240423111221-4248ffa5d850 // indirect - github.com/iotaledger/inx/go v1.0.0-rc.2.0.20240423105148-cc9e62fe4f63 // 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/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 - github.com/iotaledger/iota.go/v4 v4.0.0-20240419095144-054bd7d2ba61 // indirect + github.com/iotaledger/iota.go/v4 v4.0.0-20240425100055-540c74851d65 // indirect github.com/ipfs/boxo v0.19.0 // indirect github.com/ipfs/go-cid v0.4.1 // indirect github.com/ipfs/go-datastore v0.6.0 // indirect @@ -147,7 +147,7 @@ require ( github.com/prometheus/client_golang v1.19.0 // indirect github.com/prometheus/client_model v0.6.1 // indirect github.com/prometheus/common v0.53.0 // indirect - github.com/prometheus/procfs v0.13.0 // indirect + github.com/prometheus/procfs v0.14.0 // indirect github.com/quic-go/qpack v0.4.0 // indirect github.com/quic-go/quic-go v0.42.0 // indirect github.com/quic-go/webtransport-go v0.7.0 // indirect @@ -163,12 +163,12 @@ require ( github.com/whyrusleeping/multiaddr-filter v0.0.0-20160516205228-e903e4adabd7 // indirect github.com/zyedidia/generic v1.2.1 // indirect go.opencensus.io v0.24.0 // indirect - go.opentelemetry.io/otel v1.25.0 // indirect - go.opentelemetry.io/otel/metric v1.25.0 // indirect - go.opentelemetry.io/otel/trace v1.25.0 // indirect + go.opentelemetry.io/otel v1.26.0 // indirect + go.opentelemetry.io/otel/metric v1.26.0 // indirect + go.opentelemetry.io/otel/trace v1.26.0 // indirect go.uber.org/atomic v1.11.0 // indirect go.uber.org/dig v1.17.1 // indirect - go.uber.org/fx v1.21.0 // indirect + go.uber.org/fx v1.21.1 // indirect go.uber.org/mock v0.4.0 // indirect go.uber.org/multierr v1.11.0 // indirect go.uber.org/zap v1.27.0 // indirect diff --git a/tools/gendoc/go.sum b/tools/gendoc/go.sum index 546132ede..966ed7410 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.13.15 h1:U7sSGYGo4SPjP6iNIifNoyIAiNjrmQkz6EwQG+/EZWo= -github.com/ethereum/go-ethereum v1.13.15/go.mod h1:TN8ZiHrdJwSe8Cb6x+p0hs5CxhJZPbqB7hHkaUXcmIU= +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/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-20240416155748-26353dc0451f h1:WpZiq8iqvGjJ3m3wzAVKL6+0vz7VkE79iSy9GII00II= -github.com/google/pprof v0.0.0-20240416155748-26353dc0451f/go.mod h1:kf6iHlnVGwgKolg33glAes7Yg/8iWP8ukqeldJSO7jw= +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/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,46 +293,46 @@ 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-20240419094509-31dbb7270ad9 h1:OtQQjWzuetfrljqejMrFmaOGuqQsCHhgSIrWKlNvnM0= -github.com/iotaledger/hive.go/ads v0.0.0-20240419094509-31dbb7270ad9/go.mod h1:paLRdgPPz6EFUP9sl/eR8/BRp2y2i1i0v0a137veyPc= -github.com/iotaledger/hive.go/app v0.0.0-20240419094509-31dbb7270ad9 h1:ioVfqMH2pVInrq5ECyX11CPMaX1GoSmf9OdjXuou0qs= -github.com/iotaledger/hive.go/app v0.0.0-20240419094509-31dbb7270ad9/go.mod h1:aroo/1Q7hSdtjnqNzRoyOxRAhc4n++lzQIIRVUoEmIo= +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/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-20240419094509-31dbb7270ad9 h1:uqfHdZy4zYmoZmvxZkt7SGPTmpM2MbsF7oO0izRdNQo= -github.com/iotaledger/hive.go/constraints v0.0.0-20240419094509-31dbb7270ad9/go.mod h1:JF7jjkL6tSUOXm23SWadBzBrl7eJk1DQRLc/fNoVZ+o= -github.com/iotaledger/hive.go/core v1.0.0-rc.3.0.20240419094509-31dbb7270ad9 h1:tolw9bD7ZpPjFqxndeFeoJvTDvtjPlZV9l+KcJeb1Sk= -github.com/iotaledger/hive.go/core v1.0.0-rc.3.0.20240419094509-31dbb7270ad9/go.mod h1:5WQlObLrbAjXbiwxtXBQgOvYYUKBjr+DAKJvtYjuAb8= -github.com/iotaledger/hive.go/crypto v0.0.0-20240419094509-31dbb7270ad9 h1:v+PRD9IcTJ+gZLjPMuE7p27URiDpjgtqOWaDkkZC0co= -github.com/iotaledger/hive.go/crypto v0.0.0-20240419094509-31dbb7270ad9/go.mod h1:epV21LR3ejz/GxDQEIzvTCMam/gBg6A05QnuVRHwMWM= -github.com/iotaledger/hive.go/db v0.0.0-20240419094509-31dbb7270ad9 h1:pe9NkePYuNp++RGSEH2ces6x3K5mIwRqFGzcI63s20M= -github.com/iotaledger/hive.go/db v0.0.0-20240419094509-31dbb7270ad9/go.mod h1:N6gSPFH6M8zp9NZzRs3n08+8EF73N3+boiPEgheDisk= -github.com/iotaledger/hive.go/ds v0.0.0-20240419094509-31dbb7270ad9 h1:rALtm5sVLfHZHe06kAh/hyyqU7HNDRswpLe9MS7+E0w= -github.com/iotaledger/hive.go/ds v0.0.0-20240419094509-31dbb7270ad9/go.mod h1:F2oK6RYYAeG2dgdndSxc6NwNqGt/TZ3lgx5EEQKNoCY= -github.com/iotaledger/hive.go/ierrors v0.0.0-20240419094509-31dbb7270ad9 h1:AMTSXEjoeOoV+LwPCvttABpMhSgwTWrZ/iq1s+JyKQQ= -github.com/iotaledger/hive.go/ierrors v0.0.0-20240419094509-31dbb7270ad9/go.mod h1:GQY0/35sjgT9Poi1Vrs9kFVvAkuKzGXfVh4j6CBXsAA= -github.com/iotaledger/hive.go/kvstore v0.0.0-20240419094509-31dbb7270ad9 h1:KM1IgASn62njL6zN/htf0Zagbsre12jmdv0FECOykUM= -github.com/iotaledger/hive.go/kvstore v0.0.0-20240419094509-31dbb7270ad9/go.mod h1:/1tAgBTbFRVogKMIIF1zqD+dCplwtXpxob0k6LlsypM= -github.com/iotaledger/hive.go/lo v0.0.0-20240419094509-31dbb7270ad9 h1:u/eppYqakPRU+IYFRVSz2Wht5ghPHIRH7ZLLPusO43o= -github.com/iotaledger/hive.go/lo v0.0.0-20240419094509-31dbb7270ad9/go.mod h1:bSVsU1c4je63jbBS+u/CBRzOuxpjIiALZ6/vquCbw6k= -github.com/iotaledger/hive.go/log v0.0.0-20240419094509-31dbb7270ad9 h1:Q0JF2Kl/R0itZXAEztgVEtWd9XEz3tAbQNw2NUFVBVA= -github.com/iotaledger/hive.go/log v0.0.0-20240419094509-31dbb7270ad9/go.mod h1:8V0edSUFsFsZp3w4InwQtXA9xP+ox4H3IjIfZvStlHI= -github.com/iotaledger/hive.go/runtime v0.0.0-20240419094509-31dbb7270ad9 h1:IlefVRTrMeWb1L7JiCHr4mWTHgJ+cxI1e6HhMHHTRnc= -github.com/iotaledger/hive.go/runtime v0.0.0-20240419094509-31dbb7270ad9/go.mod h1:+lCLTDV7ldfvbqV6WCl0xCajrfbL54ZEmnnsx1mEHLA= -github.com/iotaledger/hive.go/serializer/v2 v2.0.0-rc.1.0.20240419094509-31dbb7270ad9 h1:+cCt2sCQfhcapN/bPjDSv2Ub1uT0S62HH5Q1WTs3e1A= -github.com/iotaledger/hive.go/serializer/v2 v2.0.0-rc.1.0.20240419094509-31dbb7270ad9/go.mod h1:TXhgZZ0wD1ylof5msP+21xypd2utw0F8tEX3kCDR84s= -github.com/iotaledger/hive.go/sql v0.0.0-20240419094509-31dbb7270ad9 h1:vcYko6aVfzCcFFGAsp3o3P6nT8DXYEkG8MTKcX6LkDg= -github.com/iotaledger/hive.go/sql v0.0.0-20240419094509-31dbb7270ad9/go.mod h1:4mRjOeG4Opy+5E8PeMOzXNGZVnunSdubcyK61j+E+Yk= -github.com/iotaledger/hive.go/stringify v0.0.0-20240419094509-31dbb7270ad9 h1:NJE7qTEiG/fAQzn5aF0MucA2yQx3CitVBZVP0sh4WpQ= -github.com/iotaledger/hive.go/stringify v0.0.0-20240419094509-31dbb7270ad9/go.mod h1:O4p7UmsfoeLqtAUwrKbq0lXMxjY/MLQSpZSavvvvGig= -github.com/iotaledger/inx-app v1.0.0-rc.3.0.20240423111221-4248ffa5d850 h1:PBFs3UuwpCdd7jqHozVx2/UMJCQ6fwZeIzkedv1bum4= -github.com/iotaledger/inx-app v1.0.0-rc.3.0.20240423111221-4248ffa5d850/go.mod h1:kk+TNI0FkHRkSHuLXMkAmnbdxZjmizZgVo1vE2fXXJ8= -github.com/iotaledger/inx/go v1.0.0-rc.2.0.20240423105148-cc9e62fe4f63 h1:vt8LvpthPv2iVgIDzHN0N3Gee5+KEmqm/3eeF5G6hyA= -github.com/iotaledger/inx/go v1.0.0-rc.2.0.20240423105148-cc9e62fe4f63/go.mod h1:YYko1kTtJgfETXQqWHgJkHQv6gGYGDxjnwDC6FbXxic= +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/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= +github.com/iotaledger/inx/go v1.0.0-rc.2.0.20240425100432-05e1bf8fc089/go.mod h1:+iSOmdi7LSd1pXMThZsQk4YDbCSlvVomJUqbRhp3+Nk= github.com/iotaledger/iota-crypto-demo v0.0.0-20240419094816-40260bb800f7 h1:R7ogCKTQ2D5SfVoE6n9GQUsKwm4dcxqwnU863JVlVbw= github.com/iotaledger/iota-crypto-demo v0.0.0-20240419094816-40260bb800f7/go.mod h1:ntqq5J5Fu2SijiqPsjjdFkMm96UhGU/K0z3j6ARpHec= -github.com/iotaledger/iota.go/v4 v4.0.0-20240419095144-054bd7d2ba61 h1:vC1YXh2b8WleeAJvqf76PtBDvOXNIaI2Xdn0eLi2YFU= -github.com/iotaledger/iota.go/v4 v4.0.0-20240419095144-054bd7d2ba61/go.mod h1:ui1VcUuBHzN4eO0VR89UKqkiYR443VsznFMJgY2YRUQ= +github.com/iotaledger/iota.go/v4 v4.0.0-20240425100055-540c74851d65 h1:cKn39WbYZrBbGIeK5SZyu1Eukh1IOq8ZdBh7jC2/9Gg= +github.com/iotaledger/iota.go/v4 v4.0.0-20240425100055-540c74851d65/go.mod h1:2/gBFmGlXzZLcpOqTQTl2GqXtoe/aec6Fu9QTooQPZQ= github.com/ipfs/boxo v0.19.0 h1:UbX9FBJQF19ACLqRZOgdEla6jR/sC4H1O+iGE0NToXA= github.com/ipfs/boxo v0.19.0/go.mod h1:V5gJzbIMwKEXrg3IdvAxIdF7UPgU4RsXmNGS8MQ/0D4= github.com/ipfs/go-cid v0.4.1 h1:A/T3qGvxi4kpKWWcPC/PgbvDA2bjVLO7n4UeVwnbs/s= @@ -600,8 +600,8 @@ github.com/prometheus/procfs v0.0.0-20181005140218-185b4288413d/go.mod h1:c3At6R github.com/prometheus/procfs v0.0.2/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= github.com/prometheus/procfs v0.1.3/go.mod h1:lV6e/gmhEcM9IjHGsFOCxxuZ+z1YqCvr4OA4YeYWdaU= github.com/prometheus/procfs v0.6.0/go.mod h1:cz+aTbrPOrUb4q7XlbU9ygM+/jj0fzG6c1xBZuNvfVA= -github.com/prometheus/procfs v0.13.0 h1:GqzLlQyfsPbaEHaQkO7tbDlriv/4o5Hudv6OXHGKX7o= -github.com/prometheus/procfs v0.13.0/go.mod h1:cd4PFCR54QLnGKPaKGA6l+cfuNXtht43ZKY6tow0Y1g= +github.com/prometheus/procfs v0.14.0 h1:Lw4VdGGoKEZilJsayHf0B+9YgLGREba2C6xr+Fdfq6s= +github.com/prometheus/procfs v0.14.0/go.mod h1:XL+Iwz8k8ZabyZfMFHPiilCniixqQarAy5Mu67pHlNQ= github.com/quic-go/qpack v0.4.0 h1:Cr9BXA1sQS2SmDUWjSofMPNKmvF6IiIfDRmgU0w1ZCo= github.com/quic-go/qpack v0.4.0/go.mod h1:UZVnYIfi5GRk+zI9UMaCPsmZ2xKJP7XBUvVyT1Knj9A= github.com/quic-go/quic-go v0.42.0 h1:uSfdap0eveIl8KXnipv9K7nlwZ5IqLlYOpJ58u5utpM= @@ -710,20 +710,20 @@ go.etcd.io/etcd/client/v3 v3.5.4/go.mod h1:ZaRkVgBZC+L+dLCjTcF1hRXpgZXQPOvnA/Ak/ go.opencensus.io v0.18.0/go.mod h1:vKdFvxhtzZ9onBp9VKHK8z/sRpBMnKAsufL7wlDrCOA= go.opencensus.io v0.24.0 h1:y73uSU6J157QMP2kn2r30vwW1A2W2WFwSCGnAVxeaD0= go.opencensus.io v0.24.0/go.mod h1:vNK8G9p7aAivkbmorf4v+7Hgx+Zs0yY+0fOtgBfjQKo= -go.opentelemetry.io/otel v1.25.0 h1:gldB5FfhRl7OJQbUHt/8s0a7cE8fbsPAtdpRaApKy4k= -go.opentelemetry.io/otel v1.25.0/go.mod h1:Wa2ds5NOXEMkCmUou1WA7ZBfLTHWIsp034OVD7AO+Vg= -go.opentelemetry.io/otel/metric v1.25.0 h1:LUKbS7ArpFL/I2jJHdJcqMGxkRdxpPHE0VU/D4NuEwA= -go.opentelemetry.io/otel/metric v1.25.0/go.mod h1:rkDLUSd2lC5lq2dFNrX9LGAbINP5B7WBkC78RXCpH5s= -go.opentelemetry.io/otel/trace v1.25.0 h1:tqukZGLwQYRIFtSQM2u2+yfMVTgGVeqRLPUYx1Dq6RM= -go.opentelemetry.io/otel/trace v1.25.0/go.mod h1:hCCs70XM/ljO+BeQkyFnbK28SBIJ/Emuha+ccrCRT7I= +go.opentelemetry.io/otel v1.26.0 h1:LQwgL5s/1W7YiiRwxf03QGnWLb2HW4pLiAhaA5cZXBs= +go.opentelemetry.io/otel v1.26.0/go.mod h1:UmLkJHUAidDval2EICqBMbnAd0/m2vmpf/dAM+fvFs4= +go.opentelemetry.io/otel/metric v1.26.0 h1:7S39CLuY5Jgg9CrnA9HHiEjGMF/X2VHvoXGgSllRz30= +go.opentelemetry.io/otel/metric v1.26.0/go.mod h1:SY+rHOI4cEawI9a7N1A4nIg/nTQXe1ccCNWYOJUrpX4= +go.opentelemetry.io/otel/trace v1.26.0 h1:1ieeAUb4y0TE26jUFrCIXKpTuVK7uJGN9/Z/2LP5sQA= +go.opentelemetry.io/otel/trace v1.26.0/go.mod h1:4iDxvGDQuUkHve82hJJ8UqrwswHYsZuWCBllGV2U2y0= go.uber.org/atomic v1.6.0/go.mod h1:sABNBOSYdrvTF6hTgEIbc7YasKWGhgEQZyfxyTvoXHQ= go.uber.org/atomic v1.7.0/go.mod h1:fEN4uk6kAWBTFdckzkM89CLk9XfWZrxpCo0nPH17wJc= go.uber.org/atomic v1.11.0 h1:ZvwS0R+56ePWxUNi+Atn9dWONBPp/AUETXlHW0DxSjE= go.uber.org/atomic v1.11.0/go.mod h1:LUxbIzbOniOlMKjJjyPfpl4v+PKK2cNJn91OQbhoJI0= go.uber.org/dig v1.17.1 h1:Tga8Lz8PcYNsWsyHMZ1Vm0OQOUaJNDyvPImgbAu9YSc= go.uber.org/dig v1.17.1/go.mod h1:Us0rSJiThwCv2GteUN0Q7OKvU7n5J4dxZ9JKUXozFdE= -go.uber.org/fx v1.21.0 h1:qqD6k7PyFHONffW5speYx403ywanuASqU4Rqdpc22XY= -go.uber.org/fx v1.21.0/go.mod h1:HT2M7d7RHo+ebKGh9NRcrsrHHfpZ60nW3QRubMRfv48= +go.uber.org/fx v1.21.1 h1:RqBh3cYdzZS0uqwVeEjOX2p73dddLpym315myy/Bpb0= +go.uber.org/fx v1.21.1/go.mod h1:HT2M7d7RHo+ebKGh9NRcrsrHHfpZ60nW3QRubMRfv48= 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=