From 7aa274d3433224164a941c02ceb1519e95689a16 Mon Sep 17 00:00:00 2001 From: HuangYi Date: Mon, 11 Nov 2024 10:27:12 +0800 Subject: [PATCH 01/29] Problem: no command to fix corrupted data in versiondb Closes: #1683 Solution: - add fix command to fix corrupted data in versiondb --- versiondb/client/cmd.go | 1 + versiondb/client/fix.go | 83 +++++++++++++++++++++++++++++++++++++ versiondb/tsrocksdb/opts.go | 13 ++++++ 3 files changed, 97 insertions(+) create mode 100644 versiondb/client/fix.go diff --git a/versiondb/client/cmd.go b/versiondb/client/cmd.go index 48165c4509..4fd97194d4 100644 --- a/versiondb/client/cmd.go +++ b/versiondb/client/cmd.go @@ -28,6 +28,7 @@ func ChangeSetGroupCmd(opts Options) *cobra.Command { ChangeSetToVersionDBCmd(), RestoreAppDBCmd(opts), RestoreVersionDBCmd(), + FixCmd(), ) return cmd } diff --git a/versiondb/client/fix.go b/versiondb/client/fix.go new file mode 100644 index 0000000000..14aad0d1d8 --- /dev/null +++ b/versiondb/client/fix.go @@ -0,0 +1,83 @@ +package client + +import ( + "encoding/binary" + "encoding/hex" + "fmt" + + "github.com/crypto-org-chain/cronos/versiondb/tsrocksdb" + "github.com/linxGnu/grocksdb" + "github.com/spf13/cobra" +) + +const ( + FlagDryRun = "dryrun" + FlagStore = "store" +) + +// DefaultStores is the list of store names in cronos v1.3 +var DefaultStores = []string{ + "acc", "bank", "staking", "mint", "dist", "slashing", "gov", + "params", "upgrade", "evidence", "capability", "consensus", + "feegrant", "crisis", "ibc", "transfer", "feeibc", "icacontroller", + "icahost", "icaauth", "evm", "feemarket", "e2ee", "cronos", +} + +func FixCmd() *cobra.Command { + cmd := &cobra.Command{ + Use: "fix", + Args: cobra.ExactArgs(1), + Short: "Fix versiondb data for a specific issue, see: https://github.com/crypto-org-chain/cronos/issues/1683", + RunE: func(cmd *cobra.Command, args []string) error { + dir := args[0] + dryRun, err := cmd.Flags().GetBool(FlagDryRun) + if err != nil { + return err + } + + storeNames, err := cmd.Flags().GetStringArray(FlagStore) + if err != nil { + return err + } + + var ( + db *grocksdb.DB + cfHandle *grocksdb.ColumnFamilyHandle + ) + if dryRun { + db, cfHandle, err = tsrocksdb.OpenVersionDBForReadOnly(dir, false) + } else { + db, cfHandle, err = tsrocksdb.OpenVersionDB(dir) + } + if err != nil { + return fmt.Errorf("failed to open versiondb: %w", err) + } + + version := int64(0) + for _, storeName := range storeNames { + store := tsrocksdb.NewStoreWithDB(db, cfHandle) + iter, err := store.IteratorAtVersion(storeName, nil, nil, &version) + if err != nil { + return fmt.Errorf("failed to create iterator: %w", err) + } + for ; iter.Valid(); iter.Next() { + if dryRun { + // print the key value pairs + key := iter.Key() + value := iter.Value() + ts := binary.LittleEndian.Uint64(key[len(key)-8:]) + key = key[:len(key)-8] + fmt.Printf("key: %s, ts: %d, value: %s\n", hex.EncodeToString(key), ts, hex.EncodeToString(value)) + } + } + if err := iter.Close(); err != nil { + return fmt.Errorf("failed to close iterator: %w", err) + } + } + return nil + }, + } + cmd.Flags().Bool(FlagDryRun, false, "Dry run mode, do not modify the database") + cmd.Flags().StringArray(FlagStore, DefaultStores, "List of store names to fix") + return cmd +} diff --git a/versiondb/tsrocksdb/opts.go b/versiondb/tsrocksdb/opts.go index 604c203b72..fb6eca3c24 100644 --- a/versiondb/tsrocksdb/opts.go +++ b/versiondb/tsrocksdb/opts.go @@ -64,6 +64,19 @@ func OpenVersionDB(dir string) (*grocksdb.DB, *grocksdb.ColumnFamilyHandle, erro return db, cfHandles[1], nil } +// OpenVersionDBForReadOnly opens versiondb for read-only. +func OpenVersionDBForReadOnly(dir string, errorIfWalFileExists bool) (*grocksdb.DB, *grocksdb.ColumnFamilyHandle, error) { + opts := grocksdb.NewDefaultOptions() + db, cfHandles, err := grocksdb.OpenDbForReadOnlyColumnFamilies( + opts, dir, []string{"default", VersionDBCFName}, + []*grocksdb.Options{opts, NewVersionDBOpts(false)}, errorIfWalFileExists, + ) + if err != nil { + return nil, nil, err + } + return db, cfHandles[1], nil +} + // OpenVersionDBAndTrimHistory opens versiondb similar to `OpenVersionDB`, // but it also trim the versions newer than target one, can be used for rollback. func OpenVersionDBAndTrimHistory(dir string, version int64) (*grocksdb.DB, *grocksdb.ColumnFamilyHandle, error) { From 966ce20db3e990b0c8984db3de28f86b716457c2 Mon Sep 17 00:00:00 2001 From: HuangYi Date: Mon, 11 Nov 2024 13:37:17 +0800 Subject: [PATCH 02/29] rename --- versiondb/client/cmd.go | 2 +- versiondb/client/{fix.go => fixdata.go} | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) rename versiondb/client/{fix.go => fixdata.go} (97%) diff --git a/versiondb/client/cmd.go b/versiondb/client/cmd.go index 4fd97194d4..c2ffd3324c 100644 --- a/versiondb/client/cmd.go +++ b/versiondb/client/cmd.go @@ -28,7 +28,7 @@ func ChangeSetGroupCmd(opts Options) *cobra.Command { ChangeSetToVersionDBCmd(), RestoreAppDBCmd(opts), RestoreVersionDBCmd(), - FixCmd(), + FixDataCmd(), ) return cmd } diff --git a/versiondb/client/fix.go b/versiondb/client/fixdata.go similarity index 97% rename from versiondb/client/fix.go rename to versiondb/client/fixdata.go index 14aad0d1d8..0802d94df3 100644 --- a/versiondb/client/fix.go +++ b/versiondb/client/fixdata.go @@ -23,9 +23,9 @@ var DefaultStores = []string{ "icahost", "icaauth", "evm", "feemarket", "e2ee", "cronos", } -func FixCmd() *cobra.Command { +func FixDataCmd() *cobra.Command { cmd := &cobra.Command{ - Use: "fix", + Use: "fixdata", Args: cobra.ExactArgs(1), Short: "Fix versiondb data for a specific issue, see: https://github.com/crypto-org-chain/cronos/issues/1683", RunE: func(cmd *cobra.Command, args []string) error { From 2c81bca60842df3b1c203782bd638d8f77a4e21f Mon Sep 17 00:00:00 2001 From: HuangYi Date: Mon, 11 Nov 2024 14:51:33 +0800 Subject: [PATCH 03/29] support SkipVersionZero --- app/versiondb.go | 15 +++++-- versiondb/tsrocksdb/iterator.go | 44 +++++++++++++++---- versiondb/tsrocksdb/store.go | 73 ++++++++++++++++++++++++++----- versiondb/tsrocksdb/store_test.go | 73 +++++++++++++++++++++++++++++++ 4 files changed, 181 insertions(+), 24 deletions(-) diff --git a/app/versiondb.go b/app/versiondb.go index ee462482a8..37b9946539 100644 --- a/app/versiondb.go +++ b/app/versiondb.go @@ -24,16 +24,23 @@ func (app *App) setupVersionDB( return nil, err } + // always listen for all keys to simplify configuration + exposedKeys := make([]storetypes.StoreKey, 0, len(keys)) + for _, key := range keys { + exposedKeys = append(exposedKeys, key) + } + versionDB, err := tsrocksdb.NewStore(dataDir) if err != nil { return nil, err } - // always listen for all keys to simplify configuration - exposedKeys := make([]storetypes.StoreKey, 0, len(keys)) - for _, key := range keys { - exposedKeys = append(exposedKeys, key) + if err := versionDB.FixData(exposedKeys); err != nil { + return nil, err } + + versionDB.SetSkipVersionZero(true) + app.CommitMultiStore().AddListeners(exposedKeys) // register in app streaming manager diff --git a/versiondb/tsrocksdb/iterator.go b/versiondb/tsrocksdb/iterator.go index 02065a9980..34dae45313 100644 --- a/versiondb/tsrocksdb/iterator.go +++ b/versiondb/tsrocksdb/iterator.go @@ -2,6 +2,7 @@ package tsrocksdb import ( "bytes" + "encoding/binary" "cosmossdk.io/store/types" "github.com/linxGnu/grocksdb" @@ -12,11 +13,14 @@ type rocksDBIterator struct { prefix, start, end []byte isReverse bool isInvalid bool + + // see: https://github.com/crypto-org-chain/cronos/issues/1683 + skipVersionZero bool } var _ types.Iterator = (*rocksDBIterator)(nil) -func newRocksDBIterator(source *grocksdb.Iterator, prefix, start, end []byte, isReverse bool) *rocksDBIterator { +func newRocksDBIterator(source *grocksdb.Iterator, prefix, start, end []byte, isReverse bool, skipVersionZero bool) *rocksDBIterator { if isReverse { if end == nil { source.SeekToLast() @@ -39,14 +43,18 @@ func newRocksDBIterator(source *grocksdb.Iterator, prefix, start, end []byte, is source.Seek(start) } } - return &rocksDBIterator{ - source: source, - prefix: prefix, - start: start, - end: end, - isReverse: isReverse, - isInvalid: false, + it := &rocksDBIterator{ + source: source, + prefix: prefix, + start: start, + end: end, + isReverse: isReverse, + isInvalid: false, + skipVersionZero: skipVersionZero, } + + it.trySkipNonZeroVersion() + return it } // Domain implements Iterator. @@ -114,6 +122,22 @@ func (itr rocksDBIterator) Next() { } else { itr.source.Next() } + + itr.trySkipNonZeroVersion() +} + +func (itr rocksDBIterator) timestamp() uint64 { + ts := itr.source.Timestamp() + defer ts.Free() + return binary.LittleEndian.Uint64(ts.Data()) +} + +func (itr rocksDBIterator) trySkipNonZeroVersion() { + if itr.skipVersionZero { + for itr.Valid() && itr.timestamp() == 0 { + itr.Next() + } + } } // Error implements Iterator. @@ -137,6 +161,10 @@ func (itr *rocksDBIterator) assertIsValid() { // This function can be applied on *Slice returned from Key() and Value() // of an Iterator, because they are marked as freed. func moveSliceToBytes(s *grocksdb.Slice) []byte { + if s == nil { + return nil + } + defer s.Free() if !s.Exists() { return nil diff --git a/versiondb/tsrocksdb/store.go b/versiondb/tsrocksdb/store.go index 44f82afb2b..f2679a1352 100644 --- a/versiondb/tsrocksdb/store.go +++ b/versiondb/tsrocksdb/store.go @@ -38,6 +38,9 @@ func init() { type Store struct { db *grocksdb.DB cfHandle *grocksdb.ColumnFamilyHandle + + // see: https://github.com/crypto-org-chain/cronos/issues/1683 + skipVersionZero bool } func NewStore(dir string) (Store, error) { @@ -58,6 +61,10 @@ func NewStoreWithDB(db *grocksdb.DB, cfHandle *grocksdb.ColumnFamilyHandle) Stor } } +func (s *Store) SetSkipVersionZero(skip bool) { + s.skipVersionZero = skip +} + func (s Store) SetLatestVersion(version int64) error { var ts [TimestampSize]byte binary.LittleEndian.PutUint64(ts[:], uint64(version)) @@ -86,11 +93,23 @@ func (s Store) PutAtVersion(version int64, changeSet []*types.StoreKVPair) error } func (s Store) GetAtVersionSlice(storeKey string, key []byte, version *int64) (*grocksdb.Slice, error) { - return s.db.GetCF( + value, ts, err := s.db.GetCFWithTS( newTSReadOptions(version), s.cfHandle, prependStoreKey(storeKey, key), ) + if err != nil { + return nil, err + } + + if s.skipVersionZero { + ts := binary.LittleEndian.Uint64(ts.Data()) + if ts == 0 { + return nil, nil + } + } + + return value, err } // GetAtVersion implements VersionStore interface @@ -128,28 +147,24 @@ func (s Store) GetLatestVersion() (int64, error) { // IteratorAtVersion implements VersionStore interface func (s Store) IteratorAtVersion(storeKey string, start, end []byte, version *int64) (types.Iterator, error) { - if (start != nil && len(start) == 0) || (end != nil && len(end) == 0) { - return nil, errKeyEmpty - } - - prefix := storePrefix(storeKey) - start, end = iterateWithPrefix(prefix, start, end) - - itr := s.db.NewIteratorCF(newTSReadOptions(version), s.cfHandle) - return newRocksDBIterator(itr, prefix, start, end, false), nil + return s.iteratorAtVersion(storeKey, start, end, version, false) } // ReverseIteratorAtVersion implements VersionStore interface func (s Store) ReverseIteratorAtVersion(storeKey string, start, end []byte, version *int64) (types.Iterator, error) { + return s.iteratorAtVersion(storeKey, start, end, version, true) +} + +func (s Store) iteratorAtVersion(storeKey string, start, end []byte, version *int64, reverse bool) (types.Iterator, error) { if (start != nil && len(start) == 0) || (end != nil && len(end) == 0) { return nil, errKeyEmpty } prefix := storePrefix(storeKey) - start, end = iterateWithPrefix(storePrefix(storeKey), start, end) + start, end = iterateWithPrefix(prefix, start, end) itr := s.db.NewIteratorCF(newTSReadOptions(version), s.cfHandle) - return newRocksDBIterator(itr, prefix, start, end, true), nil + return newRocksDBIterator(itr, prefix, start, end, reverse, s.skipVersionZero), nil } // FeedChangeSet is used to migrate legacy change sets into versiondb @@ -216,6 +231,40 @@ func (s Store) Flush() error { ) } +// FixData fixes wrong data written in versiondb due to rocksdb upgrade, the operation is idempotent. +// see: https://github.com/crypto-org-chain/cronos/issues/1683 +func (s Store) FixData(stores []types.StoreKey) error { + for _, store := range stores { + if err := s.fixDataStore(store.Name()); err != nil { + return err + } + } + + return nil +} + +// fixDataStore iterate the wrong data at version 0, parse the timestamp from the key and write it again. +func (s Store) fixDataStore(name string) error { + var version int64 + iter, err := s.IteratorAtVersion(name, nil, nil, &version) + if err != nil { + return err + } + defer iter.Close() + + batch := grocksdb.NewWriteBatch() + defer batch.Destroy() + + for ; iter.Valid(); iter.Next() { + key := iter.Key() + ts := key[len(key)-TimestampSize:] + key = key[:len(key)-TimestampSize] + batch.PutCFWithTS(s.cfHandle, key, ts, iter.Value()) + } + + return s.db.Write(defaultSyncWriteOpts, batch) +} + func newTSReadOptions(version *int64) *grocksdb.ReadOptions { var ver uint64 if version == nil { diff --git a/versiondb/tsrocksdb/store_test.go b/versiondb/tsrocksdb/store_test.go index a5328977a6..ad43e903b2 100644 --- a/versiondb/tsrocksdb/store_test.go +++ b/versiondb/tsrocksdb/store_test.go @@ -4,6 +4,8 @@ import ( "encoding/binary" "testing" + "cosmossdk.io/store/types" + dbm "github.com/cosmos/cosmos-db" "github.com/crypto-org-chain/cronos/versiondb" "github.com/linxGnu/grocksdb" "github.com/stretchr/testify/require" @@ -153,3 +155,74 @@ func TestUserTimestampPruning(t *testing.T) { require.Equal(t, []byte{100}, bz.Data()) bz.Free() } + +func TestSkipVersionZero(t *testing.T) { + key1 := []byte("hello1") + key2 := []byte("hello2") + key3 := []byte("hello3") + + store, err := NewStore(t.TempDir()) + require.NoError(t, err) + + err = store.PutAtVersion(0, []*types.StoreKVPair{ + {Key: key2, Value: []byte{2}}, + }) + require.NoError(t, err) + err = store.PutAtVersion(100, []*types.StoreKVPair{ + {Key: key1, Value: []byte{1}}, + }) + require.NoError(t, err) + err = store.PutAtVersion(100, []*types.StoreKVPair{ + {Key: key3, Value: []byte{3}}, + }) + require.NoError(t, err) + + i := int64(999) + bz, err := store.GetAtVersion("", key2, &i) + require.NoError(t, err) + require.Equal(t, []byte{2}, bz) + + it, err := store.IteratorAtVersion("", nil, nil, &i) + require.NoError(t, err) + require.Equal(t, + []kvPair{ + {Key: []byte("hello1"), Value: []byte{1}}, + {Key: []byte("hello2"), Value: []byte{2}}, + {Key: []byte("hello3"), Value: []byte{3}}, + }, + consumeIterator(it), + ) + + store.SetSkipVersionZero(true) + + bz, err = store.GetAtVersion("", key2, &i) + require.NoError(t, err) + require.Empty(t, bz) + bz, err = store.GetAtVersion("", key1, &i) + require.NoError(t, err) + require.Equal(t, []byte{1}, bz) + + it, err = store.IteratorAtVersion("", nil, nil, &i) + require.NoError(t, err) + require.Equal(t, + []kvPair{ + {Key: []byte("hello1"), Value: []byte{1}}, + {Key: []byte("hello3"), Value: []byte{3}}, + }, + consumeIterator(it), + ) +} + +type kvPair struct { + Key []byte + Value []byte +} + +func consumeIterator(it dbm.Iterator) []kvPair { + var result []kvPair + for ; it.Valid(); it.Next() { + result = append(result, kvPair{it.Key(), it.Value()}) + } + it.Close() + return result +} From 971173034d75dd842dbda0b8328c981bb6939da5 Mon Sep 17 00:00:00 2001 From: HuangYi Date: Mon, 11 Nov 2024 16:11:53 +0800 Subject: [PATCH 04/29] support SkipVersionZero --- versiondb/tsrocksdb/store.go | 34 +++++++++++++++++++++----- versiondb/tsrocksdb/store_test.go | 40 +++++++++++++++++++++---------- 2 files changed, 55 insertions(+), 19 deletions(-) diff --git a/versiondb/tsrocksdb/store.go b/versiondb/tsrocksdb/store.go index f2679a1352..c3e874ad41 100644 --- a/versiondb/tsrocksdb/store.go +++ b/versiondb/tsrocksdb/store.go @@ -1,6 +1,7 @@ package tsrocksdb import ( + "bytes" "encoding/binary" "errors" "fmt" @@ -101,10 +102,10 @@ func (s Store) GetAtVersionSlice(storeKey string, key []byte, version *int64) (* if err != nil { return nil, err } + defer ts.Free() - if s.skipVersionZero { - ts := binary.LittleEndian.Uint64(ts.Data()) - if ts == 0 { + if value.Exists() && s.skipVersionZero { + if binary.LittleEndian.Uint64(ts.Data()) == 0 { return nil, nil } } @@ -233,9 +234,10 @@ func (s Store) Flush() error { // FixData fixes wrong data written in versiondb due to rocksdb upgrade, the operation is idempotent. // see: https://github.com/crypto-org-chain/cronos/issues/1683 -func (s Store) FixData(stores []types.StoreKey) error { - for _, store := range stores { - if err := s.fixDataStore(store.Name()); err != nil { +// call this before `SetSkipVersionZero(true)`. +func (s Store) FixData(storeKeys []types.StoreKey) error { + for _, storeKey := range storeKeys { + if err := s.fixDataStore(storeKey.Name()); err != nil { return err } } @@ -257,8 +259,28 @@ func (s Store) fixDataStore(name string) error { for ; iter.Valid(); iter.Next() { key := iter.Key() + if len(key) < TimestampSize { + return fmt.Errorf("invalid key length: %X", key) + } + ts := key[len(key)-TimestampSize:] key = key[:len(key)-TimestampSize] + + readOpts := grocksdb.NewDefaultReadOptions() + readOpts.SetTimestamp(ts) + oldValue, err := s.db.GetCF(readOpts, s.cfHandle, prependStoreKey(name, key)) + if err != nil { + return err + } + + clean := bytes.Equal(oldValue.Data(), iter.Value()) + oldValue.Free() + + if clean { + continue + } + + fmt.Println("[debug] fix key", string(key), "ts", binary.LittleEndian.Uint64(ts)) batch.PutCFWithTS(s.cfHandle, key, ts, iter.Value()) } diff --git a/versiondb/tsrocksdb/store_test.go b/versiondb/tsrocksdb/store_test.go index ad43e903b2..a8897f1b54 100644 --- a/versiondb/tsrocksdb/store_test.go +++ b/versiondb/tsrocksdb/store_test.go @@ -157,60 +157,74 @@ func TestUserTimestampPruning(t *testing.T) { } func TestSkipVersionZero(t *testing.T) { + storeKey := types.NewKVStoreKey("test") + + var wrongTz [8]byte + binary.LittleEndian.PutUint64(wrongTz[:], 100) + key1 := []byte("hello1") key2 := []byte("hello2") + key2Wrong := cloneAppend(key2, wrongTz[:]) key3 := []byte("hello3") store, err := NewStore(t.TempDir()) require.NoError(t, err) err = store.PutAtVersion(0, []*types.StoreKVPair{ - {Key: key2, Value: []byte{2}}, + {StoreKey: storeKey.Name(), Key: key2Wrong, Value: []byte{2}}, }) require.NoError(t, err) err = store.PutAtVersion(100, []*types.StoreKVPair{ - {Key: key1, Value: []byte{1}}, + {StoreKey: storeKey.Name(), Key: key1, Value: []byte{1}}, }) require.NoError(t, err) err = store.PutAtVersion(100, []*types.StoreKVPair{ - {Key: key3, Value: []byte{3}}, + {StoreKey: storeKey.Name(), Key: key3, Value: []byte{3}}, }) require.NoError(t, err) i := int64(999) - bz, err := store.GetAtVersion("", key2, &i) + bz, err := store.GetAtVersion(storeKey.Name(), key2Wrong, &i) require.NoError(t, err) require.Equal(t, []byte{2}, bz) - it, err := store.IteratorAtVersion("", nil, nil, &i) + it, err := store.IteratorAtVersion(storeKey.Name(), nil, nil, &i) require.NoError(t, err) require.Equal(t, []kvPair{ - {Key: []byte("hello1"), Value: []byte{1}}, - {Key: []byte("hello2"), Value: []byte{2}}, - {Key: []byte("hello3"), Value: []byte{3}}, + {Key: key1, Value: []byte{1}}, + {Key: key2Wrong, Value: []byte{2}}, + {Key: key3, Value: []byte{3}}, }, consumeIterator(it), ) store.SetSkipVersionZero(true) - bz, err = store.GetAtVersion("", key2, &i) + bz, err = store.GetAtVersion(storeKey.Name(), key2Wrong, &i) require.NoError(t, err) require.Empty(t, bz) - bz, err = store.GetAtVersion("", key1, &i) + bz, err = store.GetAtVersion(storeKey.Name(), key1, &i) require.NoError(t, err) require.Equal(t, []byte{1}, bz) - it, err = store.IteratorAtVersion("", nil, nil, &i) + it, err = store.IteratorAtVersion(storeKey.Name(), nil, nil, &i) require.NoError(t, err) require.Equal(t, []kvPair{ - {Key: []byte("hello1"), Value: []byte{1}}, - {Key: []byte("hello3"), Value: []byte{3}}, + {Key: key1, Value: []byte{1}}, + {Key: key3, Value: []byte{3}}, }, consumeIterator(it), ) + + store.SetSkipVersionZero(false) + err = store.FixData([]types.StoreKey{storeKey}) + require.NoError(t, err) + + bz, err = store.GetAtVersion(storeKey.Name(), key2, &i) + require.NoError(t, err) + require.Equal(t, []byte{2}, bz) } type kvPair struct { From 9711b7383b87dcce25b2288f28178f5119ba7bf0 Mon Sep 17 00:00:00 2001 From: HuangYi Date: Mon, 11 Nov 2024 16:17:46 +0800 Subject: [PATCH 05/29] cleanup --- CHANGELOG.md | 1 + app/versiondb.go | 1 + versiondb/client/cmd.go | 1 - versiondb/client/fixdata.go | 83 ------------------------------------ versiondb/tsrocksdb/store.go | 4 +- 5 files changed, 4 insertions(+), 86 deletions(-) delete mode 100644 versiondb/client/fixdata.go diff --git a/CHANGELOG.md b/CHANGELOG.md index 7b2a0fa24c..3f9a4f7789 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,7 @@ ### Bug Fixes * [#1679](https://github.com/crypto-org-chain/cronos/pull/1679) Include no trace detail on insufficient balance fix. +* [#1685](https://github.com/crypto-org-chain/cronos/pull/1685) Fix versiondb corrupted data on startup. ### Improvements diff --git a/app/versiondb.go b/app/versiondb.go index 37b9946539..aaa4602020 100644 --- a/app/versiondb.go +++ b/app/versiondb.go @@ -35,6 +35,7 @@ func (app *App) setupVersionDB( return nil, err } + // see: https://github.com/crypto-org-chain/cronos/issues/1683 if err := versionDB.FixData(exposedKeys); err != nil { return nil, err } diff --git a/versiondb/client/cmd.go b/versiondb/client/cmd.go index c2ffd3324c..48165c4509 100644 --- a/versiondb/client/cmd.go +++ b/versiondb/client/cmd.go @@ -28,7 +28,6 @@ func ChangeSetGroupCmd(opts Options) *cobra.Command { ChangeSetToVersionDBCmd(), RestoreAppDBCmd(opts), RestoreVersionDBCmd(), - FixDataCmd(), ) return cmd } diff --git a/versiondb/client/fixdata.go b/versiondb/client/fixdata.go deleted file mode 100644 index 0802d94df3..0000000000 --- a/versiondb/client/fixdata.go +++ /dev/null @@ -1,83 +0,0 @@ -package client - -import ( - "encoding/binary" - "encoding/hex" - "fmt" - - "github.com/crypto-org-chain/cronos/versiondb/tsrocksdb" - "github.com/linxGnu/grocksdb" - "github.com/spf13/cobra" -) - -const ( - FlagDryRun = "dryrun" - FlagStore = "store" -) - -// DefaultStores is the list of store names in cronos v1.3 -var DefaultStores = []string{ - "acc", "bank", "staking", "mint", "dist", "slashing", "gov", - "params", "upgrade", "evidence", "capability", "consensus", - "feegrant", "crisis", "ibc", "transfer", "feeibc", "icacontroller", - "icahost", "icaauth", "evm", "feemarket", "e2ee", "cronos", -} - -func FixDataCmd() *cobra.Command { - cmd := &cobra.Command{ - Use: "fixdata", - Args: cobra.ExactArgs(1), - Short: "Fix versiondb data for a specific issue, see: https://github.com/crypto-org-chain/cronos/issues/1683", - RunE: func(cmd *cobra.Command, args []string) error { - dir := args[0] - dryRun, err := cmd.Flags().GetBool(FlagDryRun) - if err != nil { - return err - } - - storeNames, err := cmd.Flags().GetStringArray(FlagStore) - if err != nil { - return err - } - - var ( - db *grocksdb.DB - cfHandle *grocksdb.ColumnFamilyHandle - ) - if dryRun { - db, cfHandle, err = tsrocksdb.OpenVersionDBForReadOnly(dir, false) - } else { - db, cfHandle, err = tsrocksdb.OpenVersionDB(dir) - } - if err != nil { - return fmt.Errorf("failed to open versiondb: %w", err) - } - - version := int64(0) - for _, storeName := range storeNames { - store := tsrocksdb.NewStoreWithDB(db, cfHandle) - iter, err := store.IteratorAtVersion(storeName, nil, nil, &version) - if err != nil { - return fmt.Errorf("failed to create iterator: %w", err) - } - for ; iter.Valid(); iter.Next() { - if dryRun { - // print the key value pairs - key := iter.Key() - value := iter.Value() - ts := binary.LittleEndian.Uint64(key[len(key)-8:]) - key = key[:len(key)-8] - fmt.Printf("key: %s, ts: %d, value: %s\n", hex.EncodeToString(key), ts, hex.EncodeToString(value)) - } - } - if err := iter.Close(); err != nil { - return fmt.Errorf("failed to close iterator: %w", err) - } - } - return nil - }, - } - cmd.Flags().Bool(FlagDryRun, false, "Dry run mode, do not modify the database") - cmd.Flags().StringArray(FlagStore, DefaultStores, "List of store names to fix") - return cmd -} diff --git a/versiondb/tsrocksdb/store.go b/versiondb/tsrocksdb/store.go index c3e874ad41..3f9fc6787c 100644 --- a/versiondb/tsrocksdb/store.go +++ b/versiondb/tsrocksdb/store.go @@ -257,6 +257,7 @@ func (s Store) fixDataStore(name string) error { batch := grocksdb.NewWriteBatch() defer batch.Destroy() + prefix := storePrefix(name) for ; iter.Valid(); iter.Next() { key := iter.Key() if len(key) < TimestampSize { @@ -280,8 +281,7 @@ func (s Store) fixDataStore(name string) error { continue } - fmt.Println("[debug] fix key", string(key), "ts", binary.LittleEndian.Uint64(ts)) - batch.PutCFWithTS(s.cfHandle, key, ts, iter.Value()) + batch.PutCFWithTS(s.cfHandle, cloneAppend(prefix, key), ts, iter.Value()) } return s.db.Write(defaultSyncWriteOpts, batch) From fe0b46bd1808b4d7b2d02cf40d12c8214c82fabf Mon Sep 17 00:00:00 2001 From: HuangYi Date: Mon, 11 Nov 2024 16:31:04 +0800 Subject: [PATCH 06/29] cleanup --- versiondb/tsrocksdb/store.go | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/versiondb/tsrocksdb/store.go b/versiondb/tsrocksdb/store.go index 3f9fc6787c..1330420623 100644 --- a/versiondb/tsrocksdb/store.go +++ b/versiondb/tsrocksdb/store.go @@ -246,9 +246,9 @@ func (s Store) FixData(storeKeys []types.StoreKey) error { } // fixDataStore iterate the wrong data at version 0, parse the timestamp from the key and write it again. -func (s Store) fixDataStore(name string) error { +func (s Store) fixDataStore(storeName string) error { var version int64 - iter, err := s.IteratorAtVersion(name, nil, nil, &version) + iter, err := s.IteratorAtVersion(storeName, nil, nil, &version) if err != nil { return err } @@ -257,7 +257,7 @@ func (s Store) fixDataStore(name string) error { batch := grocksdb.NewWriteBatch() defer batch.Destroy() - prefix := storePrefix(name) + prefix := storePrefix(storeName) for ; iter.Valid(); iter.Next() { key := iter.Key() if len(key) < TimestampSize { @@ -266,10 +266,11 @@ func (s Store) fixDataStore(name string) error { ts := key[len(key)-TimestampSize:] key = key[:len(key)-TimestampSize] + realKey := cloneAppend(prefix, key) readOpts := grocksdb.NewDefaultReadOptions() readOpts.SetTimestamp(ts) - oldValue, err := s.db.GetCF(readOpts, s.cfHandle, prependStoreKey(name, key)) + oldValue, err := s.db.GetCF(readOpts, s.cfHandle, realKey) if err != nil { return err } @@ -281,7 +282,7 @@ func (s Store) fixDataStore(name string) error { continue } - batch.PutCFWithTS(s.cfHandle, cloneAppend(prefix, key), ts, iter.Value()) + batch.PutCFWithTS(s.cfHandle, realKey, ts, iter.Value()) } return s.db.Write(defaultSyncWriteOpts, batch) From 3d87d5bcf37b7db74ed32c4734a17e47ed51ceb9 Mon Sep 17 00:00:00 2001 From: HuangYi Date: Mon, 11 Nov 2024 16:34:03 +0800 Subject: [PATCH 07/29] cleanup --- versiondb/tsrocksdb/opts.go | 13 ------------- 1 file changed, 13 deletions(-) diff --git a/versiondb/tsrocksdb/opts.go b/versiondb/tsrocksdb/opts.go index fb6eca3c24..604c203b72 100644 --- a/versiondb/tsrocksdb/opts.go +++ b/versiondb/tsrocksdb/opts.go @@ -64,19 +64,6 @@ func OpenVersionDB(dir string) (*grocksdb.DB, *grocksdb.ColumnFamilyHandle, erro return db, cfHandles[1], nil } -// OpenVersionDBForReadOnly opens versiondb for read-only. -func OpenVersionDBForReadOnly(dir string, errorIfWalFileExists bool) (*grocksdb.DB, *grocksdb.ColumnFamilyHandle, error) { - opts := grocksdb.NewDefaultOptions() - db, cfHandles, err := grocksdb.OpenDbForReadOnlyColumnFamilies( - opts, dir, []string{"default", VersionDBCFName}, - []*grocksdb.Options{opts, NewVersionDBOpts(false)}, errorIfWalFileExists, - ) - if err != nil { - return nil, nil, err - } - return db, cfHandles[1], nil -} - // OpenVersionDBAndTrimHistory opens versiondb similar to `OpenVersionDB`, // but it also trim the versions newer than target one, can be used for rollback. func OpenVersionDBAndTrimHistory(dir string, version int64) (*grocksdb.DB, *grocksdb.ColumnFamilyHandle, error) { From f18863ade818d4eb5189fd4be3bd5bf3b809204f Mon Sep 17 00:00:00 2001 From: HuangYi Date: Mon, 11 Nov 2024 16:55:35 +0800 Subject: [PATCH 08/29] destroy --- versiondb/tsrocksdb/store.go | 1 + 1 file changed, 1 insertion(+) diff --git a/versiondb/tsrocksdb/store.go b/versiondb/tsrocksdb/store.go index 1330420623..de15263d9f 100644 --- a/versiondb/tsrocksdb/store.go +++ b/versiondb/tsrocksdb/store.go @@ -274,6 +274,7 @@ func (s Store) fixDataStore(storeName string) error { if err != nil { return err } + readOpts.Destroy() clean := bytes.Equal(oldValue.Data(), iter.Value()) oldValue.Free() From 2025ac8eaa1ea6736826c0bc1bdbff405d10fb2b Mon Sep 17 00:00:00 2001 From: HuangYi Date: Mon, 11 Nov 2024 17:33:48 +0800 Subject: [PATCH 09/29] fix data manually --- app/versiondb.go | 4 ---- versiondb/client/cmd.go | 1 + versiondb/client/fixdata.go | 29 +++++++++++++++++++++++++++++ versiondb/tsrocksdb/store.go | 6 +++--- 4 files changed, 33 insertions(+), 7 deletions(-) create mode 100644 versiondb/client/fixdata.go diff --git a/app/versiondb.go b/app/versiondb.go index aaa4602020..0546220492 100644 --- a/app/versiondb.go +++ b/app/versiondb.go @@ -36,10 +36,6 @@ func (app *App) setupVersionDB( } // see: https://github.com/crypto-org-chain/cronos/issues/1683 - if err := versionDB.FixData(exposedKeys); err != nil { - return nil, err - } - versionDB.SetSkipVersionZero(true) app.CommitMultiStore().AddListeners(exposedKeys) diff --git a/versiondb/client/cmd.go b/versiondb/client/cmd.go index 48165c4509..efc1a00f06 100644 --- a/versiondb/client/cmd.go +++ b/versiondb/client/cmd.go @@ -28,6 +28,7 @@ func ChangeSetGroupCmd(opts Options) *cobra.Command { ChangeSetToVersionDBCmd(), RestoreAppDBCmd(opts), RestoreVersionDBCmd(), + FixDataCmd(opts.DefaultStores), ) return cmd } diff --git a/versiondb/client/fixdata.go b/versiondb/client/fixdata.go new file mode 100644 index 0000000000..c3d6f9c0ff --- /dev/null +++ b/versiondb/client/fixdata.go @@ -0,0 +1,29 @@ +package client + +import ( + "github.com/crypto-org-chain/cronos/versiondb/tsrocksdb" + "github.com/spf13/cobra" +) + +func FixDataCmd(stores []string) *cobra.Command { + cmd := &cobra.Command{ + Use: "fixdata", + Args: cobra.ExactArgs(1), + Short: "Fix wrong data in versiondb, see: https://github.com/crypto-org-chain/cronos/issues/1683", + RunE: func(cmd *cobra.Command, args []string) error { + dir := args[0] + versionDB, err := tsrocksdb.NewStore(dir) + if err != nil { + return err + } + + // see: https://github.com/crypto-org-chain/cronos/issues/1683 + if err := versionDB.FixData(stores); err != nil { + return err + } + + return nil + }, + } + return cmd +} diff --git a/versiondb/tsrocksdb/store.go b/versiondb/tsrocksdb/store.go index de15263d9f..d00b3f86c6 100644 --- a/versiondb/tsrocksdb/store.go +++ b/versiondb/tsrocksdb/store.go @@ -235,9 +235,9 @@ func (s Store) Flush() error { // FixData fixes wrong data written in versiondb due to rocksdb upgrade, the operation is idempotent. // see: https://github.com/crypto-org-chain/cronos/issues/1683 // call this before `SetSkipVersionZero(true)`. -func (s Store) FixData(storeKeys []types.StoreKey) error { - for _, storeKey := range storeKeys { - if err := s.fixDataStore(storeKey.Name()); err != nil { +func (s Store) FixData(storeNames []string) error { + for _, storeName := range storeNames { + if err := s.fixDataStore(storeName); err != nil { return err } } From ccd3257448f03d1306492ca483a152531dbe40ee Mon Sep 17 00:00:00 2001 From: yihuang Date: Mon, 11 Nov 2024 17:35:32 +0800 Subject: [PATCH 10/29] Update CHANGELOG.md Signed-off-by: yihuang --- CHANGELOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 3f9a4f7789..554df0a0d3 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,7 +5,7 @@ ### Bug Fixes * [#1679](https://github.com/crypto-org-chain/cronos/pull/1679) Include no trace detail on insufficient balance fix. -* [#1685](https://github.com/crypto-org-chain/cronos/pull/1685) Fix versiondb corrupted data on startup. +* [#1685](https://github.com/crypto-org-chain/cronos/pull/1685) Add command to fix versiondb corrupted data. ### Improvements From 80059485a0784b357ccb104e0cfbc206ced2c3aa Mon Sep 17 00:00:00 2001 From: yihuang Date: Mon, 11 Nov 2024 17:39:55 +0800 Subject: [PATCH 11/29] Update versiondb/tsrocksdb/store.go Co-authored-by: mmsqe Signed-off-by: yihuang --- versiondb/tsrocksdb/store.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/versiondb/tsrocksdb/store.go b/versiondb/tsrocksdb/store.go index d00b3f86c6..44c8dc18b7 100644 --- a/versiondb/tsrocksdb/store.go +++ b/versiondb/tsrocksdb/store.go @@ -261,7 +261,7 @@ func (s Store) fixDataStore(storeName string) error { for ; iter.Valid(); iter.Next() { key := iter.Key() if len(key) < TimestampSize { - return fmt.Errorf("invalid key length: %X", key) + return fmt.Errorf("invalid key length: %X, store: %s", key, storeName) } ts := key[len(key)-TimestampSize:] From 4e07bb9b94201881db122df44ba6e5f51ce96d1d Mon Sep 17 00:00:00 2001 From: HuangYi Date: Mon, 11 Nov 2024 17:39:34 +0800 Subject: [PATCH 12/29] cli --- versiondb/client/fixdata.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/versiondb/client/fixdata.go b/versiondb/client/fixdata.go index c3d6f9c0ff..4239080794 100644 --- a/versiondb/client/fixdata.go +++ b/versiondb/client/fixdata.go @@ -7,7 +7,7 @@ import ( func FixDataCmd(stores []string) *cobra.Command { cmd := &cobra.Command{ - Use: "fixdata", + Use: "fixdata ", Args: cobra.ExactArgs(1), Short: "Fix wrong data in versiondb, see: https://github.com/crypto-org-chain/cronos/issues/1683", RunE: func(cmd *cobra.Command, args []string) error { From 1fa9d141fc8b4e43b8296c92c6587e59e215dbc7 Mon Sep 17 00:00:00 2001 From: HuangYi Date: Mon, 11 Nov 2024 17:40:57 +0800 Subject: [PATCH 13/29] cleanup --- app/versiondb.go | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/app/versiondb.go b/app/versiondb.go index 0546220492..4ed6aa85c9 100644 --- a/app/versiondb.go +++ b/app/versiondb.go @@ -24,17 +24,17 @@ func (app *App) setupVersionDB( return nil, err } + versionDB, err := tsrocksdb.NewStore(dataDir) + if err != nil { + return nil, err + } + // always listen for all keys to simplify configuration exposedKeys := make([]storetypes.StoreKey, 0, len(keys)) for _, key := range keys { exposedKeys = append(exposedKeys, key) } - versionDB, err := tsrocksdb.NewStore(dataDir) - if err != nil { - return nil, err - } - // see: https://github.com/crypto-org-chain/cronos/issues/1683 versionDB.SetSkipVersionZero(true) From 9dc36abfd9832e9b64e68a3374a450117724fbb6 Mon Sep 17 00:00:00 2001 From: yihuang Date: Mon, 11 Nov 2024 17:41:48 +0800 Subject: [PATCH 14/29] Update versiondb/client/fixdata.go Signed-off-by: yihuang --- versiondb/client/fixdata.go | 1 - 1 file changed, 1 deletion(-) diff --git a/versiondb/client/fixdata.go b/versiondb/client/fixdata.go index 4239080794..92f119fd96 100644 --- a/versiondb/client/fixdata.go +++ b/versiondb/client/fixdata.go @@ -17,7 +17,6 @@ func FixDataCmd(stores []string) *cobra.Command { return err } - // see: https://github.com/crypto-org-chain/cronos/issues/1683 if err := versionDB.FixData(stores); err != nil { return err } From 8d0ba744077feacf41d89934278d936867164bf2 Mon Sep 17 00:00:00 2001 From: HuangYi Date: Mon, 11 Nov 2024 17:43:10 +0800 Subject: [PATCH 15/29] rename --- versiondb/tsrocksdb/iterator.go | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/versiondb/tsrocksdb/iterator.go b/versiondb/tsrocksdb/iterator.go index 34dae45313..74646e7c6a 100644 --- a/versiondb/tsrocksdb/iterator.go +++ b/versiondb/tsrocksdb/iterator.go @@ -53,7 +53,7 @@ func newRocksDBIterator(source *grocksdb.Iterator, prefix, start, end []byte, is skipVersionZero: skipVersionZero, } - it.trySkipNonZeroVersion() + it.trySkipZeroVersion() return it } @@ -123,7 +123,7 @@ func (itr rocksDBIterator) Next() { itr.source.Next() } - itr.trySkipNonZeroVersion() + itr.trySkipZeroVersion() } func (itr rocksDBIterator) timestamp() uint64 { @@ -132,7 +132,7 @@ func (itr rocksDBIterator) timestamp() uint64 { return binary.LittleEndian.Uint64(ts.Data()) } -func (itr rocksDBIterator) trySkipNonZeroVersion() { +func (itr rocksDBIterator) trySkipZeroVersion() { if itr.skipVersionZero { for itr.Valid() && itr.timestamp() == 0 { itr.Next() From 53284486ef79510f529d37be29270824e8ba0113 Mon Sep 17 00:00:00 2001 From: HuangYi Date: Mon, 11 Nov 2024 17:51:09 +0800 Subject: [PATCH 16/29] fix test --- versiondb/tsrocksdb/store_test.go | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/versiondb/tsrocksdb/store_test.go b/versiondb/tsrocksdb/store_test.go index a8897f1b54..c88b0dbc06 100644 --- a/versiondb/tsrocksdb/store_test.go +++ b/versiondb/tsrocksdb/store_test.go @@ -157,7 +157,7 @@ func TestUserTimestampPruning(t *testing.T) { } func TestSkipVersionZero(t *testing.T) { - storeKey := types.NewKVStoreKey("test") + storeKey := "test" var wrongTz [8]byte binary.LittleEndian.PutUint64(wrongTz[:], 100) @@ -171,24 +171,24 @@ func TestSkipVersionZero(t *testing.T) { require.NoError(t, err) err = store.PutAtVersion(0, []*types.StoreKVPair{ - {StoreKey: storeKey.Name(), Key: key2Wrong, Value: []byte{2}}, + {StoreKey: storeKey, Key: key2Wrong, Value: []byte{2}}, }) require.NoError(t, err) err = store.PutAtVersion(100, []*types.StoreKVPair{ - {StoreKey: storeKey.Name(), Key: key1, Value: []byte{1}}, + {StoreKey: storeKey, Key: key1, Value: []byte{1}}, }) require.NoError(t, err) err = store.PutAtVersion(100, []*types.StoreKVPair{ - {StoreKey: storeKey.Name(), Key: key3, Value: []byte{3}}, + {StoreKey: storeKey, Key: key3, Value: []byte{3}}, }) require.NoError(t, err) i := int64(999) - bz, err := store.GetAtVersion(storeKey.Name(), key2Wrong, &i) + bz, err := store.GetAtVersion(storeKey, key2Wrong, &i) require.NoError(t, err) require.Equal(t, []byte{2}, bz) - it, err := store.IteratorAtVersion(storeKey.Name(), nil, nil, &i) + it, err := store.IteratorAtVersion(storeKey, nil, nil, &i) require.NoError(t, err) require.Equal(t, []kvPair{ @@ -201,14 +201,14 @@ func TestSkipVersionZero(t *testing.T) { store.SetSkipVersionZero(true) - bz, err = store.GetAtVersion(storeKey.Name(), key2Wrong, &i) + bz, err = store.GetAtVersion(storeKey, key2Wrong, &i) require.NoError(t, err) require.Empty(t, bz) - bz, err = store.GetAtVersion(storeKey.Name(), key1, &i) + bz, err = store.GetAtVersion(storeKey, key1, &i) require.NoError(t, err) require.Equal(t, []byte{1}, bz) - it, err = store.IteratorAtVersion(storeKey.Name(), nil, nil, &i) + it, err = store.IteratorAtVersion(storeKey, nil, nil, &i) require.NoError(t, err) require.Equal(t, []kvPair{ @@ -219,10 +219,10 @@ func TestSkipVersionZero(t *testing.T) { ) store.SetSkipVersionZero(false) - err = store.FixData([]types.StoreKey{storeKey}) + err = store.FixData([]string{storeKey}) require.NoError(t, err) - bz, err = store.GetAtVersion(storeKey.Name(), key2, &i) + bz, err = store.GetAtVersion(storeKey, key2, &i) require.NoError(t, err) require.Equal(t, []byte{2}, bz) } From 3fe6f96a99e0076c775765bf34fc23df8eff5e17 Mon Sep 17 00:00:00 2001 From: mmsqe Date: Mon, 11 Nov 2024 18:34:34 +0800 Subject: [PATCH 17/29] check nil --- versiondb/tsrocksdb/store.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/versiondb/tsrocksdb/store.go b/versiondb/tsrocksdb/store.go index 44c8dc18b7..5310a1c878 100644 --- a/versiondb/tsrocksdb/store.go +++ b/versiondb/tsrocksdb/store.go @@ -125,7 +125,7 @@ func (s Store) GetAtVersion(storeKey string, key []byte, version *int64) ([]byte // HasAtVersion implements VersionStore interface func (s Store) HasAtVersion(storeKey string, key []byte, version *int64) (bool, error) { slice, err := s.GetAtVersionSlice(storeKey, key, version) - if err != nil { + if err != nil || slice == nil { return false, err } defer slice.Free() From cd306a4242a3fd408a6825c4e6acc888938541c9 Mon Sep 17 00:00:00 2001 From: HuangYi Date: Tue, 12 Nov 2024 09:47:06 +0800 Subject: [PATCH 18/29] don't return nil as empty slice --- versiondb/tsrocksdb/iterator.go | 4 ---- versiondb/tsrocksdb/store.go | 2 +- 2 files changed, 1 insertion(+), 5 deletions(-) diff --git a/versiondb/tsrocksdb/iterator.go b/versiondb/tsrocksdb/iterator.go index 74646e7c6a..1a0efbd748 100644 --- a/versiondb/tsrocksdb/iterator.go +++ b/versiondb/tsrocksdb/iterator.go @@ -161,10 +161,6 @@ func (itr *rocksDBIterator) assertIsValid() { // This function can be applied on *Slice returned from Key() and Value() // of an Iterator, because they are marked as freed. func moveSliceToBytes(s *grocksdb.Slice) []byte { - if s == nil { - return nil - } - defer s.Free() if !s.Exists() { return nil diff --git a/versiondb/tsrocksdb/store.go b/versiondb/tsrocksdb/store.go index 5310a1c878..efee8a4e91 100644 --- a/versiondb/tsrocksdb/store.go +++ b/versiondb/tsrocksdb/store.go @@ -106,7 +106,7 @@ func (s Store) GetAtVersionSlice(storeKey string, key []byte, version *int64) (* if value.Exists() && s.skipVersionZero { if binary.LittleEndian.Uint64(ts.Data()) == 0 { - return nil, nil + return grocksdb.NewSlice(nil, 0), nil } } From 95d74cee954a9eaf3ee3a6c067a0164c2331cdaf Mon Sep 17 00:00:00 2001 From: HuangYi Date: Tue, 12 Nov 2024 09:55:36 +0800 Subject: [PATCH 19/29] add dryrun mode --- versiondb/client/fixdata.go | 24 ++++++++++++++++++++++-- versiondb/tsrocksdb/opts.go | 16 ++++++++++++++++ versiondb/tsrocksdb/store.go | 18 +++++++++++++----- 3 files changed, 51 insertions(+), 7 deletions(-) diff --git a/versiondb/client/fixdata.go b/versiondb/client/fixdata.go index 92f119fd96..93ca19772c 100644 --- a/versiondb/client/fixdata.go +++ b/versiondb/client/fixdata.go @@ -2,9 +2,12 @@ package client import ( "github.com/crypto-org-chain/cronos/versiondb/tsrocksdb" + "github.com/linxGnu/grocksdb" "github.com/spf13/cobra" ) +const FlagDryRun = "dry-run" + func FixDataCmd(stores []string) *cobra.Command { cmd := &cobra.Command{ Use: "fixdata ", @@ -12,17 +15,34 @@ func FixDataCmd(stores []string) *cobra.Command { Short: "Fix wrong data in versiondb, see: https://github.com/crypto-org-chain/cronos/issues/1683", RunE: func(cmd *cobra.Command, args []string) error { dir := args[0] - versionDB, err := tsrocksdb.NewStore(dir) + dryRun, err := cmd.Flags().GetBool(FlagDryRun) + if err != nil { + return err + } + + var ( + db *grocksdb.DB + cfHandle *grocksdb.ColumnFamilyHandle + ) + + if dryRun { + db, cfHandle, err = tsrocksdb.OpenVersionDBForReadOnly(dir, false) + } else { + db, cfHandle, err = tsrocksdb.OpenVersionDB(dir) + } if err != nil { return err } - if err := versionDB.FixData(stores); err != nil { + versionDB := tsrocksdb.NewStoreWithDB(db, cfHandle) + if err := versionDB.FixData(stores, dryRun); err != nil { return err } return nil }, } + + cmd.Flags().Bool(FlagDryRun, false, "Dry run, do not write to the database, open the database in read-only mode.") return cmd } diff --git a/versiondb/tsrocksdb/opts.go b/versiondb/tsrocksdb/opts.go index 604c203b72..96593d79b9 100644 --- a/versiondb/tsrocksdb/opts.go +++ b/versiondb/tsrocksdb/opts.go @@ -64,6 +64,22 @@ func OpenVersionDB(dir string) (*grocksdb.DB, *grocksdb.ColumnFamilyHandle, erro return db, cfHandles[1], nil } +// OpenVersionDBForReadOnly open versiondb in readonly mode +func OpenVersionDBForReadOnly(dir string, errorIfWalFileExists bool) (*grocksdb.DB, *grocksdb.ColumnFamilyHandle, error) { + opts := grocksdb.NewDefaultOptions() + opts.SetCreateIfMissing(true) + opts.SetCreateIfMissingColumnFamilies(true) + db, cfHandles, err := grocksdb.OpenDbForReadOnlyColumnFamilies( + opts, dir, []string{"default", VersionDBCFName}, + []*grocksdb.Options{opts, NewVersionDBOpts(false)}, + errorIfWalFileExists, + ) + if err != nil { + return nil, nil, err + } + return db, cfHandles[1], nil +} + // OpenVersionDBAndTrimHistory opens versiondb similar to `OpenVersionDB`, // but it also trim the versions newer than target one, can be used for rollback. func OpenVersionDBAndTrimHistory(dir string, version int64) (*grocksdb.DB, *grocksdb.ColumnFamilyHandle, error) { diff --git a/versiondb/tsrocksdb/store.go b/versiondb/tsrocksdb/store.go index efee8a4e91..bbce912f3c 100644 --- a/versiondb/tsrocksdb/store.go +++ b/versiondb/tsrocksdb/store.go @@ -235,9 +235,9 @@ func (s Store) Flush() error { // FixData fixes wrong data written in versiondb due to rocksdb upgrade, the operation is idempotent. // see: https://github.com/crypto-org-chain/cronos/issues/1683 // call this before `SetSkipVersionZero(true)`. -func (s Store) FixData(storeNames []string) error { +func (s Store) FixData(storeNames []string, dryRun bool) error { for _, storeName := range storeNames { - if err := s.fixDataStore(storeName); err != nil { + if err := s.fixDataStore(storeName, dryRun); err != nil { return err } } @@ -246,7 +246,7 @@ func (s Store) FixData(storeNames []string) error { } // fixDataStore iterate the wrong data at version 0, parse the timestamp from the key and write it again. -func (s Store) fixDataStore(storeName string) error { +func (s Store) fixDataStore(storeName string, dryRun bool) error { var version int64 iter, err := s.IteratorAtVersion(storeName, nil, nil, &version) if err != nil { @@ -283,10 +283,18 @@ func (s Store) fixDataStore(storeName string) error { continue } - batch.PutCFWithTS(s.cfHandle, realKey, ts, iter.Value()) + if dryRun { + fmt.Printf("fix data: %s, key: %X, ts: %X\n", storeName, key, ts) + } else { + batch.PutCFWithTS(s.cfHandle, realKey, ts, iter.Value()) + } } - return s.db.Write(defaultSyncWriteOpts, batch) + if !dryRun { + return s.db.Write(defaultSyncWriteOpts, batch) + } + + return nil } func newTSReadOptions(version *int64) *grocksdb.ReadOptions { From 4c66b89d63215f62d5cfbf766ffb4fcfb2885e12 Mon Sep 17 00:00:00 2001 From: HuangYi Date: Tue, 12 Nov 2024 09:57:33 +0800 Subject: [PATCH 20/29] cleanup --- versiondb/tsrocksdb/opts.go | 2 -- 1 file changed, 2 deletions(-) diff --git a/versiondb/tsrocksdb/opts.go b/versiondb/tsrocksdb/opts.go index 96593d79b9..8218cd9692 100644 --- a/versiondb/tsrocksdb/opts.go +++ b/versiondb/tsrocksdb/opts.go @@ -67,8 +67,6 @@ func OpenVersionDB(dir string) (*grocksdb.DB, *grocksdb.ColumnFamilyHandle, erro // OpenVersionDBForReadOnly open versiondb in readonly mode func OpenVersionDBForReadOnly(dir string, errorIfWalFileExists bool) (*grocksdb.DB, *grocksdb.ColumnFamilyHandle, error) { opts := grocksdb.NewDefaultOptions() - opts.SetCreateIfMissing(true) - opts.SetCreateIfMissingColumnFamilies(true) db, cfHandles, err := grocksdb.OpenDbForReadOnlyColumnFamilies( opts, dir, []string{"default", VersionDBCFName}, []*grocksdb.Options{opts, NewVersionDBOpts(false)}, From 2eceb452fc3f718e30c87c0c8e1bafc4eda135d5 Mon Sep 17 00:00:00 2001 From: HuangYi Date: Tue, 12 Nov 2024 10:19:21 +0800 Subject: [PATCH 21/29] separete read from iteration --- versiondb/tsrocksdb/store.go | 60 +++++++++++++++++++++++++----------- 1 file changed, 42 insertions(+), 18 deletions(-) diff --git a/versiondb/tsrocksdb/store.go b/versiondb/tsrocksdb/store.go index bbce912f3c..86f1de9c51 100644 --- a/versiondb/tsrocksdb/store.go +++ b/versiondb/tsrocksdb/store.go @@ -247,36 +247,27 @@ func (s Store) FixData(storeNames []string, dryRun bool) error { // fixDataStore iterate the wrong data at version 0, parse the timestamp from the key and write it again. func (s Store) fixDataStore(storeName string, dryRun bool) error { - var version int64 - iter, err := s.IteratorAtVersion(storeName, nil, nil, &version) + pairs, err := s.loadWrongData(storeName) if err != nil { return err } - defer iter.Close() batch := grocksdb.NewWriteBatch() defer batch.Destroy() prefix := storePrefix(storeName) - for ; iter.Valid(); iter.Next() { - key := iter.Key() - if len(key) < TimestampSize { - return fmt.Errorf("invalid key length: %X, store: %s", key, storeName) - } - - ts := key[len(key)-TimestampSize:] - key = key[:len(key)-TimestampSize] - realKey := cloneAppend(prefix, key) + readOpts := grocksdb.NewDefaultReadOptions() + defer readOpts.Destroy() + for _, pair := range pairs { + realKey := cloneAppend(prefix, pair.Key) - readOpts := grocksdb.NewDefaultReadOptions() - readOpts.SetTimestamp(ts) + readOpts.SetTimestamp(pair.Timestamp) oldValue, err := s.db.GetCF(readOpts, s.cfHandle, realKey) if err != nil { return err } - readOpts.Destroy() - clean := bytes.Equal(oldValue.Data(), iter.Value()) + clean := bytes.Equal(oldValue.Data(), pair.Value) oldValue.Free() if clean { @@ -284,9 +275,9 @@ func (s Store) fixDataStore(storeName string, dryRun bool) error { } if dryRun { - fmt.Printf("fix data: %s, key: %X, ts: %X\n", storeName, key, ts) + fmt.Printf("fix data: %s, key: %X, ts: %X\n", storeName, pair.Key, pair.Timestamp) } else { - batch.PutCFWithTS(s.cfHandle, realKey, ts, iter.Value()) + batch.PutCFWithTS(s.cfHandle, realKey, pair.Timestamp, pair.Value) } } @@ -297,6 +288,39 @@ func (s Store) fixDataStore(storeName string, dryRun bool) error { return nil } +type KVPairWithTS struct { + Key []byte + Value []byte + Timestamp []byte +} + +func (s Store) loadWrongData(storeName string) ([]KVPairWithTS, error) { + var version int64 + iter, err := s.IteratorAtVersion(storeName, nil, nil, &version) + if err != nil { + return nil, err + } + defer iter.Close() + + var pairs []KVPairWithTS + for ; iter.Valid(); iter.Next() { + key := iter.Key() + if len(key) < TimestampSize { + return nil, fmt.Errorf("invalid key length: %X, store: %s", key, storeName) + } + + ts := key[len(key)-TimestampSize:] + key = key[:len(key)-TimestampSize] + pairs = append(pairs, KVPairWithTS{ + Key: key, + Value: iter.Value(), + Timestamp: ts, + }) + } + + return pairs, nil +} + func newTSReadOptions(version *int64) *grocksdb.ReadOptions { var ver uint64 if version == nil { From 194772cdfa162e1512c65554285e97da9541489d Mon Sep 17 00:00:00 2001 From: HuangYi Date: Tue, 12 Nov 2024 14:22:32 +0800 Subject: [PATCH 22/29] store name flag --- versiondb/client/fixdata.go | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/versiondb/client/fixdata.go b/versiondb/client/fixdata.go index 93ca19772c..efd95fbff4 100644 --- a/versiondb/client/fixdata.go +++ b/versiondb/client/fixdata.go @@ -6,9 +6,12 @@ import ( "github.com/spf13/cobra" ) -const FlagDryRun = "dry-run" +const ( + FlagDryRun = "dry-run" + FlagStore = "store-name" +) -func FixDataCmd(stores []string) *cobra.Command { +func FixDataCmd(defaultStores []string) *cobra.Command { cmd := &cobra.Command{ Use: "fixdata ", Args: cobra.ExactArgs(1), @@ -19,6 +22,13 @@ func FixDataCmd(stores []string) *cobra.Command { if err != nil { return err } + stores, err := cmd.Flags().GetStringArray(FlagStore) + if err != nil { + return err + } + if len(stores) == 0 { + stores = defaultStores + } var ( db *grocksdb.DB @@ -44,5 +54,6 @@ func FixDataCmd(stores []string) *cobra.Command { } cmd.Flags().Bool(FlagDryRun, false, "Dry run, do not write to the database, open the database in read-only mode.") + cmd.Flags().StringArray(FlagStore, []string{}, "Store names to fix, if not specified, all stores will be fixed.") return cmd } From 6528386265332768b4804bea51ad485868110f50 Mon Sep 17 00:00:00 2001 From: HuangYi Date: Tue, 12 Nov 2024 14:33:38 +0800 Subject: [PATCH 23/29] validate timestamp --- versiondb/tsrocksdb/store.go | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/versiondb/tsrocksdb/store.go b/versiondb/tsrocksdb/store.go index 86f1de9c51..61d562af5e 100644 --- a/versiondb/tsrocksdb/store.go +++ b/versiondb/tsrocksdb/store.go @@ -304,7 +304,12 @@ func (s Store) loadWrongData(storeName string) ([]KVPairWithTS, error) { var pairs []KVPairWithTS for ; iter.Valid(); iter.Next() { + ts := iter.Timestamp() key := iter.Key() + if binary.LittleEndian.Uint64(ts) != 0 { + return nil, fmt.Errorf("invalid timestamp: %X, store: %s, key: %X", ts, storeName, key) + } + if len(key) < TimestampSize { return nil, fmt.Errorf("invalid key length: %X, store: %s", key, storeName) } From 423a12cba2f146f5db0cbb9b118b47ef5607754f Mon Sep 17 00:00:00 2001 From: HuangYi Date: Tue, 12 Nov 2024 14:47:15 +0800 Subject: [PATCH 24/29] skip non-zero version --- versiondb/tsrocksdb/store.go | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/versiondb/tsrocksdb/store.go b/versiondb/tsrocksdb/store.go index 61d562af5e..dc2ead04a8 100644 --- a/versiondb/tsrocksdb/store.go +++ b/versiondb/tsrocksdb/store.go @@ -305,11 +305,12 @@ func (s Store) loadWrongData(storeName string) ([]KVPairWithTS, error) { var pairs []KVPairWithTS for ; iter.Valid(); iter.Next() { ts := iter.Timestamp() - key := iter.Key() if binary.LittleEndian.Uint64(ts) != 0 { - return nil, fmt.Errorf("invalid timestamp: %X, store: %s, key: %X", ts, storeName, key) + // FIXME: https://github.com/crypto-org-chain/cronos/issues/1689 + continue } + key := iter.Key() if len(key) < TimestampSize { return nil, fmt.Errorf("invalid key length: %X, store: %s", key, storeName) } From 1241c3c050b796ec2a36b87eec65b7d592cff831 Mon Sep 17 00:00:00 2001 From: HuangYi Date: Tue, 12 Nov 2024 15:17:15 +0800 Subject: [PATCH 25/29] update gomod2nix --- gomod2nix.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gomod2nix.toml b/gomod2nix.toml index 0296dde7b9..23cbe391b6 100644 --- a/gomod2nix.toml +++ b/gomod2nix.toml @@ -1,5 +1,5 @@ schema = 4 -vendorModulesTxt = "# cloud.google.com/go v0.115.0\n## explicit; go 1.20\ncloud.google.com/go/internal\ncloud.google.com/go/internal/optional\ncloud.google.com/go/internal/trace\ncloud.google.com/go/internal/version\n# cloud.google.com/go/auth v0.6.0\n## explicit; go 1.20\ncloud.google.com/go/auth\ncloud.google.com/go/auth/credentials\ncloud.google.com/go/auth/credentials/internal/externalaccount\ncloud.google.com/go/auth/credentials/internal/externalaccountuser\ncloud.google.com/go/auth/credentials/internal/gdch\ncloud.google.com/go/auth/credentials/internal/impersonate\ncloud.google.com/go/auth/credentials/internal/stsexchange\ncloud.google.com/go/auth/grpctransport\ncloud.google.com/go/auth/httptransport\ncloud.google.com/go/auth/internal\ncloud.google.com/go/auth/internal/credsfile\ncloud.google.com/go/auth/internal/jwt\ncloud.google.com/go/auth/internal/transport\ncloud.google.com/go/auth/internal/transport/cert\n# cloud.google.com/go/auth/oauth2adapt v0.2.2\n## explicit; go 1.19\ncloud.google.com/go/auth/oauth2adapt\n# cloud.google.com/go/compute/metadata v0.5.0\n## explicit; go 1.20\ncloud.google.com/go/compute/metadata\n# cloud.google.com/go/iam v1.1.9\n## explicit; go 1.20\ncloud.google.com/go/iam\ncloud.google.com/go/iam/apiv1/iampb\n# cloud.google.com/go/storage v1.41.0\n## explicit; go 1.19\ncloud.google.com/go/storage\ncloud.google.com/go/storage/internal\ncloud.google.com/go/storage/internal/apiv2\ncloud.google.com/go/storage/internal/apiv2/storagepb\n# cosmossdk.io/api v0.7.6\n## explicit; go 1.20\ncosmossdk.io/api/amino\ncosmossdk.io/api/cosmos/app/runtime/v1alpha1\ncosmossdk.io/api/cosmos/app/v1alpha1\ncosmossdk.io/api/cosmos/auth/module/v1\ncosmossdk.io/api/cosmos/auth/v1beta1\ncosmossdk.io/api/cosmos/authz/module/v1\ncosmossdk.io/api/cosmos/authz/v1beta1\ncosmossdk.io/api/cosmos/autocli/v1\ncosmossdk.io/api/cosmos/bank/module/v1\ncosmossdk.io/api/cosmos/bank/v1beta1\ncosmossdk.io/api/cosmos/base/abci/v1beta1\ncosmossdk.io/api/cosmos/base/query/v1beta1\ncosmossdk.io/api/cosmos/base/reflection/v1beta1\ncosmossdk.io/api/cosmos/base/tendermint/v1beta1\ncosmossdk.io/api/cosmos/base/v1beta1\ncosmossdk.io/api/cosmos/consensus/module/v1\ncosmossdk.io/api/cosmos/consensus/v1\ncosmossdk.io/api/cosmos/crisis/module/v1\ncosmossdk.io/api/cosmos/crisis/v1beta1\ncosmossdk.io/api/cosmos/crypto/ed25519\ncosmossdk.io/api/cosmos/crypto/multisig\ncosmossdk.io/api/cosmos/crypto/multisig/v1beta1\ncosmossdk.io/api/cosmos/crypto/secp256k1\ncosmossdk.io/api/cosmos/crypto/secp256r1\ncosmossdk.io/api/cosmos/distribution/module/v1\ncosmossdk.io/api/cosmos/distribution/v1beta1\ncosmossdk.io/api/cosmos/evidence/module/v1\ncosmossdk.io/api/cosmos/evidence/v1beta1\ncosmossdk.io/api/cosmos/feegrant/module/v1\ncosmossdk.io/api/cosmos/feegrant/v1beta1\ncosmossdk.io/api/cosmos/genutil/module/v1\ncosmossdk.io/api/cosmos/gov/module/v1\ncosmossdk.io/api/cosmos/gov/v1\ncosmossdk.io/api/cosmos/mint/module/v1\ncosmossdk.io/api/cosmos/mint/v1beta1\ncosmossdk.io/api/cosmos/msg/v1\ncosmossdk.io/api/cosmos/params/module/v1\ncosmossdk.io/api/cosmos/params/v1beta1\ncosmossdk.io/api/cosmos/query/v1\ncosmossdk.io/api/cosmos/reflection/v1\ncosmossdk.io/api/cosmos/slashing/module/v1\ncosmossdk.io/api/cosmos/slashing/v1beta1\ncosmossdk.io/api/cosmos/staking/module/v1\ncosmossdk.io/api/cosmos/staking/v1beta1\ncosmossdk.io/api/cosmos/tx/config/v1\ncosmossdk.io/api/cosmos/tx/signing/v1beta1\ncosmossdk.io/api/cosmos/tx/v1beta1\ncosmossdk.io/api/cosmos/upgrade/module/v1\ncosmossdk.io/api/cosmos/upgrade/v1beta1\ncosmossdk.io/api/cosmos/vesting/module/v1\ncosmossdk.io/api/cosmos/vesting/v1beta1\ncosmossdk.io/api/tendermint/abci\ncosmossdk.io/api/tendermint/crypto\ncosmossdk.io/api/tendermint/p2p\ncosmossdk.io/api/tendermint/types\ncosmossdk.io/api/tendermint/version\n# cosmossdk.io/client/v2 v2.0.0-beta.5\n## explicit; go 1.21\ncosmossdk.io/client/v2/autocli\ncosmossdk.io/client/v2/autocli/flag\ncosmossdk.io/client/v2/autocli/flag/maps\ncosmossdk.io/client/v2/autocli/keyring\ncosmossdk.io/client/v2/internal/flags\ncosmossdk.io/client/v2/internal/strcase\ncosmossdk.io/client/v2/internal/util\n# cosmossdk.io/collections v0.4.0\n## explicit; go 1.20\ncosmossdk.io/collections\ncosmossdk.io/collections/codec\ncosmossdk.io/collections/indexes\n# cosmossdk.io/core v0.11.1\n## explicit; go 1.20\ncosmossdk.io/core/address\ncosmossdk.io/core/appmodule\ncosmossdk.io/core/coins\ncosmossdk.io/core/comet\ncosmossdk.io/core/event\ncosmossdk.io/core/genesis\ncosmossdk.io/core/header\ncosmossdk.io/core/store\n# cosmossdk.io/depinject v1.0.0\n## explicit; go 1.20\ncosmossdk.io/depinject\ncosmossdk.io/depinject/appconfig\ncosmossdk.io/depinject/appconfig/v1alpha1\ncosmossdk.io/depinject/internal/appconfig\ncosmossdk.io/depinject/internal/graphviz\ncosmossdk.io/depinject/internal/util\n# cosmossdk.io/errors v1.0.1\n## explicit; go 1.20\ncosmossdk.io/errors\n# cosmossdk.io/log v1.4.1\n## explicit; go 1.20\ncosmossdk.io/log\n# cosmossdk.io/math v1.3.0\n## explicit; go 1.20\ncosmossdk.io/math\ncosmossdk.io/math/unsafe\n# cosmossdk.io/simapp v0.0.0-20230608160436-666c345ad23d\n## explicit; go 1.19\ncosmossdk.io/simapp/params\n# cosmossdk.io/store v1.1.1 => github.com/crypto-org-chain/cosmos-sdk/store v0.0.0-20241018012743-d78d66e74712\n## explicit; go 1.21\ncosmossdk.io/store\ncosmossdk.io/store/cache\ncosmossdk.io/store/cachekv\ncosmossdk.io/store/cachekv/internal\ncosmossdk.io/store/cachemulti\ncosmossdk.io/store/dbadapter\ncosmossdk.io/store/gaskv\ncosmossdk.io/store/iavl\ncosmossdk.io/store/internal\ncosmossdk.io/store/internal/btree\ncosmossdk.io/store/internal/kv\ncosmossdk.io/store/internal/maps\ncosmossdk.io/store/internal/proofs\ncosmossdk.io/store/internal/tree\ncosmossdk.io/store/listenkv\ncosmossdk.io/store/mem\ncosmossdk.io/store/metrics\ncosmossdk.io/store/prefix\ncosmossdk.io/store/pruning\ncosmossdk.io/store/pruning/types\ncosmossdk.io/store/rootmulti\ncosmossdk.io/store/snapshots\ncosmossdk.io/store/snapshots/types\ncosmossdk.io/store/streaming\ncosmossdk.io/store/streaming/abci\ncosmossdk.io/store/tracekv\ncosmossdk.io/store/transient\ncosmossdk.io/store/types\ncosmossdk.io/store/wrapper\n# cosmossdk.io/tools/confix v0.1.2\n## explicit; go 1.21\ncosmossdk.io/tools/confix\ncosmossdk.io/tools/confix/cmd\n# cosmossdk.io/x/evidence v0.1.1\n## explicit; go 1.21\ncosmossdk.io/x/evidence\ncosmossdk.io/x/evidence/client\ncosmossdk.io/x/evidence/client/cli\ncosmossdk.io/x/evidence/exported\ncosmossdk.io/x/evidence/keeper\ncosmossdk.io/x/evidence/simulation\ncosmossdk.io/x/evidence/types\n# cosmossdk.io/x/feegrant v0.1.1\n## explicit; go 1.21\ncosmossdk.io/x/feegrant\ncosmossdk.io/x/feegrant/client/cli\ncosmossdk.io/x/feegrant/keeper\ncosmossdk.io/x/feegrant/migrations/v2\ncosmossdk.io/x/feegrant/module\ncosmossdk.io/x/feegrant/simulation\n# cosmossdk.io/x/tx v0.13.6-0.20241003112805-ff8789a02871 => github.com/crypto-org-chain/cosmos-sdk/x/tx v0.0.0-20241018012743-d78d66e74712\n## explicit; go 1.21\ncosmossdk.io/x/tx/decode\ncosmossdk.io/x/tx/signing\ncosmossdk.io/x/tx/signing/aminojson\ncosmossdk.io/x/tx/signing/aminojson/internal/aminojsonpb\ncosmossdk.io/x/tx/signing/direct\ncosmossdk.io/x/tx/signing/directaux\ncosmossdk.io/x/tx/signing/textual\ncosmossdk.io/x/tx/signing/textual/internal/cbor\ncosmossdk.io/x/tx/signing/textual/internal/textualpb\n# cosmossdk.io/x/upgrade v0.1.4\n## explicit; go 1.21\ncosmossdk.io/x/upgrade\ncosmossdk.io/x/upgrade/client/cli\ncosmossdk.io/x/upgrade/exported\ncosmossdk.io/x/upgrade/internal/conv\ncosmossdk.io/x/upgrade/keeper\ncosmossdk.io/x/upgrade/plan\ncosmossdk.io/x/upgrade/types\n# filippo.io/age v1.1.1\n## explicit; go 1.19\nfilippo.io/age\nfilippo.io/age/internal/bech32\nfilippo.io/age/internal/format\nfilippo.io/age/internal/stream\n# filippo.io/edwards25519 v1.1.0\n## explicit; go 1.20\nfilippo.io/edwards25519\nfilippo.io/edwards25519/field\n# github.com/99designs/go-keychain v0.0.0-20191008050251-8e49817e8af4\n## explicit\ngithub.com/99designs/go-keychain\n# github.com/99designs/keyring v1.2.2 => github.com/cosmos/keyring v1.2.0\n## explicit; go 1.17\ngithub.com/99designs/keyring\n# github.com/DataDog/datadog-go v4.8.3+incompatible\n## explicit\ngithub.com/DataDog/datadog-go/statsd\n# github.com/DataDog/zstd v1.5.5\n## explicit; go 1.14\ngithub.com/DataDog/zstd\n# github.com/Microsoft/go-winio v0.6.1\n## explicit; go 1.17\ngithub.com/Microsoft/go-winio\ngithub.com/Microsoft/go-winio/internal/fs\ngithub.com/Microsoft/go-winio/internal/socket\ngithub.com/Microsoft/go-winio/internal/stringbuffer\ngithub.com/Microsoft/go-winio/pkg/guid\n# github.com/StackExchange/wmi v0.0.0-20180116203802-5d049714c4a6\n## explicit\ngithub.com/StackExchange/wmi\n# github.com/VictoriaMetrics/fastcache v1.6.0\n## explicit; go 1.13\ngithub.com/VictoriaMetrics/fastcache\n# github.com/alitto/pond v1.8.3\n## explicit; go 1.19\ngithub.com/alitto/pond\n# github.com/aws/aws-sdk-go v1.44.224\n## explicit; go 1.11\ngithub.com/aws/aws-sdk-go/aws\ngithub.com/aws/aws-sdk-go/aws/arn\ngithub.com/aws/aws-sdk-go/aws/awserr\ngithub.com/aws/aws-sdk-go/aws/awsutil\ngithub.com/aws/aws-sdk-go/aws/client\ngithub.com/aws/aws-sdk-go/aws/client/metadata\ngithub.com/aws/aws-sdk-go/aws/corehandlers\ngithub.com/aws/aws-sdk-go/aws/credentials\ngithub.com/aws/aws-sdk-go/aws/credentials/ec2rolecreds\ngithub.com/aws/aws-sdk-go/aws/credentials/endpointcreds\ngithub.com/aws/aws-sdk-go/aws/credentials/processcreds\ngithub.com/aws/aws-sdk-go/aws/credentials/ssocreds\ngithub.com/aws/aws-sdk-go/aws/credentials/stscreds\ngithub.com/aws/aws-sdk-go/aws/csm\ngithub.com/aws/aws-sdk-go/aws/defaults\ngithub.com/aws/aws-sdk-go/aws/ec2metadata\ngithub.com/aws/aws-sdk-go/aws/endpoints\ngithub.com/aws/aws-sdk-go/aws/request\ngithub.com/aws/aws-sdk-go/aws/session\ngithub.com/aws/aws-sdk-go/aws/signer/v4\ngithub.com/aws/aws-sdk-go/internal/context\ngithub.com/aws/aws-sdk-go/internal/ini\ngithub.com/aws/aws-sdk-go/internal/s3shared\ngithub.com/aws/aws-sdk-go/internal/s3shared/arn\ngithub.com/aws/aws-sdk-go/internal/s3shared/s3err\ngithub.com/aws/aws-sdk-go/internal/sdkio\ngithub.com/aws/aws-sdk-go/internal/sdkmath\ngithub.com/aws/aws-sdk-go/internal/sdkrand\ngithub.com/aws/aws-sdk-go/internal/sdkuri\ngithub.com/aws/aws-sdk-go/internal/shareddefaults\ngithub.com/aws/aws-sdk-go/internal/strings\ngithub.com/aws/aws-sdk-go/internal/sync/singleflight\ngithub.com/aws/aws-sdk-go/private/checksum\ngithub.com/aws/aws-sdk-go/private/protocol\ngithub.com/aws/aws-sdk-go/private/protocol/eventstream\ngithub.com/aws/aws-sdk-go/private/protocol/eventstream/eventstreamapi\ngithub.com/aws/aws-sdk-go/private/protocol/json/jsonutil\ngithub.com/aws/aws-sdk-go/private/protocol/jsonrpc\ngithub.com/aws/aws-sdk-go/private/protocol/query\ngithub.com/aws/aws-sdk-go/private/protocol/query/queryutil\ngithub.com/aws/aws-sdk-go/private/protocol/rest\ngithub.com/aws/aws-sdk-go/private/protocol/restjson\ngithub.com/aws/aws-sdk-go/private/protocol/restxml\ngithub.com/aws/aws-sdk-go/private/protocol/xml/xmlutil\ngithub.com/aws/aws-sdk-go/service/s3\ngithub.com/aws/aws-sdk-go/service/sso\ngithub.com/aws/aws-sdk-go/service/sso/ssoiface\ngithub.com/aws/aws-sdk-go/service/sts\ngithub.com/aws/aws-sdk-go/service/sts/stsiface\n# github.com/beorn7/perks v1.0.1\n## explicit; go 1.11\ngithub.com/beorn7/perks/quantile\n# github.com/bgentry/go-netrc v0.0.0-20140422174119-9fd32a8b3d3d\n## explicit\ngithub.com/bgentry/go-netrc/netrc\n# github.com/bgentry/speakeasy v0.1.1-0.20220910012023-760eaf8b6816\n## explicit\ngithub.com/bgentry/speakeasy\n# github.com/bits-and-blooms/bitset v1.8.0\n## explicit; go 1.16\ngithub.com/bits-and-blooms/bitset\n# github.com/btcsuite/btcd v0.24.2\n## explicit; go 1.17\ngithub.com/btcsuite/btcd/chaincfg\ngithub.com/btcsuite/btcd/wire\n# github.com/btcsuite/btcd/btcec/v2 v2.3.4\n## explicit; go 1.17\ngithub.com/btcsuite/btcd/btcec/v2\ngithub.com/btcsuite/btcd/btcec/v2/ecdsa\n# github.com/btcsuite/btcd/btcutil v1.1.6\n## explicit; go 1.16\ngithub.com/btcsuite/btcd/btcutil\ngithub.com/btcsuite/btcd/btcutil/base58\ngithub.com/btcsuite/btcd/btcutil/bech32\ngithub.com/btcsuite/btcd/btcutil/hdkeychain\n# github.com/btcsuite/btcd/chaincfg/chainhash v1.1.0\n## explicit; go 1.17\ngithub.com/btcsuite/btcd/chaincfg/chainhash\n# github.com/cenkalti/backoff/v4 v4.2.1\n## explicit; go 1.18\ngithub.com/cenkalti/backoff/v4\n# github.com/cespare/xxhash/v2 v2.3.0\n## explicit; go 1.11\ngithub.com/cespare/xxhash/v2\n# github.com/chzyer/readline v1.5.1\n## explicit; go 1.15\ngithub.com/chzyer/readline\n# github.com/cockroachdb/apd/v2 v2.0.2\n## explicit\ngithub.com/cockroachdb/apd/v2\n# github.com/cockroachdb/errors v1.11.3\n## explicit; go 1.19\ngithub.com/cockroachdb/errors\ngithub.com/cockroachdb/errors/assert\ngithub.com/cockroachdb/errors/barriers\ngithub.com/cockroachdb/errors/contexttags\ngithub.com/cockroachdb/errors/domains\ngithub.com/cockroachdb/errors/errbase\ngithub.com/cockroachdb/errors/errorspb\ngithub.com/cockroachdb/errors/errutil\ngithub.com/cockroachdb/errors/hintdetail\ngithub.com/cockroachdb/errors/issuelink\ngithub.com/cockroachdb/errors/join\ngithub.com/cockroachdb/errors/markers\ngithub.com/cockroachdb/errors/oserror\ngithub.com/cockroachdb/errors/report\ngithub.com/cockroachdb/errors/safedetails\ngithub.com/cockroachdb/errors/secondary\ngithub.com/cockroachdb/errors/stdstrings\ngithub.com/cockroachdb/errors/telemetrykeys\ngithub.com/cockroachdb/errors/withstack\n# github.com/cockroachdb/fifo v0.0.0-20240606204812-0bbfbd93a7ce\n## explicit; go 1.20\ngithub.com/cockroachdb/fifo\n# github.com/cockroachdb/logtags v0.0.0-20230118201751-21c54148d20b\n## explicit; go 1.16\ngithub.com/cockroachdb/logtags\n# github.com/cockroachdb/pebble v1.1.2\n## explicit; go 1.20\ngithub.com/cockroachdb/pebble\ngithub.com/cockroachdb/pebble/bloom\ngithub.com/cockroachdb/pebble/internal/arenaskl\ngithub.com/cockroachdb/pebble/internal/base\ngithub.com/cockroachdb/pebble/internal/batchskl\ngithub.com/cockroachdb/pebble/internal/bytealloc\ngithub.com/cockroachdb/pebble/internal/cache\ngithub.com/cockroachdb/pebble/internal/constants\ngithub.com/cockroachdb/pebble/internal/crc\ngithub.com/cockroachdb/pebble/internal/fastrand\ngithub.com/cockroachdb/pebble/internal/humanize\ngithub.com/cockroachdb/pebble/internal/intern\ngithub.com/cockroachdb/pebble/internal/invalidating\ngithub.com/cockroachdb/pebble/internal/invariants\ngithub.com/cockroachdb/pebble/internal/keyspan\ngithub.com/cockroachdb/pebble/internal/manifest\ngithub.com/cockroachdb/pebble/internal/manual\ngithub.com/cockroachdb/pebble/internal/private\ngithub.com/cockroachdb/pebble/internal/rangedel\ngithub.com/cockroachdb/pebble/internal/rangekey\ngithub.com/cockroachdb/pebble/internal/rawalloc\ngithub.com/cockroachdb/pebble/internal/testkeys\ngithub.com/cockroachdb/pebble/objstorage\ngithub.com/cockroachdb/pebble/objstorage/objstorageprovider\ngithub.com/cockroachdb/pebble/objstorage/objstorageprovider/objiotracing\ngithub.com/cockroachdb/pebble/objstorage/objstorageprovider/remoteobjcat\ngithub.com/cockroachdb/pebble/objstorage/objstorageprovider/sharedcache\ngithub.com/cockroachdb/pebble/objstorage/remote\ngithub.com/cockroachdb/pebble/rangekey\ngithub.com/cockroachdb/pebble/record\ngithub.com/cockroachdb/pebble/sstable\ngithub.com/cockroachdb/pebble/vfs\ngithub.com/cockroachdb/pebble/vfs/atomicfs\n# github.com/cockroachdb/redact v1.1.5\n## explicit; go 1.14\ngithub.com/cockroachdb/redact\ngithub.com/cockroachdb/redact/builder\ngithub.com/cockroachdb/redact/interfaces\ngithub.com/cockroachdb/redact/internal/buffer\ngithub.com/cockroachdb/redact/internal/escape\ngithub.com/cockroachdb/redact/internal/fmtforward\ngithub.com/cockroachdb/redact/internal/markers\ngithub.com/cockroachdb/redact/internal/redact\ngithub.com/cockroachdb/redact/internal/rfmt\ngithub.com/cockroachdb/redact/internal/rfmt/fmtsort\n# github.com/cockroachdb/tokenbucket v0.0.0-20230807174530-cc333fc44b06\n## explicit; go 1.19\ngithub.com/cockroachdb/tokenbucket\n# github.com/coinbase/rosetta-sdk-go/types v1.0.0\n## explicit; go 1.18\ngithub.com/coinbase/rosetta-sdk-go/types\n# github.com/cometbft/cometbft v0.38.15 => github.com/crypto-org-chain/cometbft v0.0.0-20241106091515-ce418f845d9a\n## explicit; go 1.23.1\ngithub.com/cometbft/cometbft/abci/client\ngithub.com/cometbft/cometbft/abci/example/kvstore\ngithub.com/cometbft/cometbft/abci/server\ngithub.com/cometbft/cometbft/abci/types\ngithub.com/cometbft/cometbft/blocksync\ngithub.com/cometbft/cometbft/cmd/cometbft/commands\ngithub.com/cometbft/cometbft/config\ngithub.com/cometbft/cometbft/consensus\ngithub.com/cometbft/cometbft/consensus/types\ngithub.com/cometbft/cometbft/crypto\ngithub.com/cometbft/cometbft/crypto/batch\ngithub.com/cometbft/cometbft/crypto/ed25519\ngithub.com/cometbft/cometbft/crypto/encoding\ngithub.com/cometbft/cometbft/crypto/merkle\ngithub.com/cometbft/cometbft/crypto/secp256k1\ngithub.com/cometbft/cometbft/crypto/sr25519\ngithub.com/cometbft/cometbft/crypto/tmhash\ngithub.com/cometbft/cometbft/evidence\ngithub.com/cometbft/cometbft/inspect\ngithub.com/cometbft/cometbft/inspect/rpc\ngithub.com/cometbft/cometbft/internal/indexer\ngithub.com/cometbft/cometbft/internal/test\ngithub.com/cometbft/cometbft/libs/async\ngithub.com/cometbft/cometbft/libs/autofile\ngithub.com/cometbft/cometbft/libs/bits\ngithub.com/cometbft/cometbft/libs/bytes\ngithub.com/cometbft/cometbft/libs/cli\ngithub.com/cometbft/cometbft/libs/cli/flags\ngithub.com/cometbft/cometbft/libs/clist\ngithub.com/cometbft/cometbft/libs/cmap\ngithub.com/cometbft/cometbft/libs/events\ngithub.com/cometbft/cometbft/libs/fail\ngithub.com/cometbft/cometbft/libs/flowrate\ngithub.com/cometbft/cometbft/libs/json\ngithub.com/cometbft/cometbft/libs/log\ngithub.com/cometbft/cometbft/libs/math\ngithub.com/cometbft/cometbft/libs/net\ngithub.com/cometbft/cometbft/libs/os\ngithub.com/cometbft/cometbft/libs/progressbar\ngithub.com/cometbft/cometbft/libs/protoio\ngithub.com/cometbft/cometbft/libs/pubsub\ngithub.com/cometbft/cometbft/libs/pubsub/query\ngithub.com/cometbft/cometbft/libs/pubsub/query/syntax\ngithub.com/cometbft/cometbft/libs/rand\ngithub.com/cometbft/cometbft/libs/service\ngithub.com/cometbft/cometbft/libs/strings\ngithub.com/cometbft/cometbft/libs/sync\ngithub.com/cometbft/cometbft/libs/tempfile\ngithub.com/cometbft/cometbft/libs/timer\ngithub.com/cometbft/cometbft/light\ngithub.com/cometbft/cometbft/light/provider\ngithub.com/cometbft/cometbft/light/provider/http\ngithub.com/cometbft/cometbft/light/proxy\ngithub.com/cometbft/cometbft/light/rpc\ngithub.com/cometbft/cometbft/light/store\ngithub.com/cometbft/cometbft/light/store/db\ngithub.com/cometbft/cometbft/mempool\ngithub.com/cometbft/cometbft/node\ngithub.com/cometbft/cometbft/p2p\ngithub.com/cometbft/cometbft/p2p/conn\ngithub.com/cometbft/cometbft/p2p/pex\ngithub.com/cometbft/cometbft/privval\ngithub.com/cometbft/cometbft/proto/tendermint/blocksync\ngithub.com/cometbft/cometbft/proto/tendermint/consensus\ngithub.com/cometbft/cometbft/proto/tendermint/crypto\ngithub.com/cometbft/cometbft/proto/tendermint/libs/bits\ngithub.com/cometbft/cometbft/proto/tendermint/mempool\ngithub.com/cometbft/cometbft/proto/tendermint/p2p\ngithub.com/cometbft/cometbft/proto/tendermint/privval\ngithub.com/cometbft/cometbft/proto/tendermint/state\ngithub.com/cometbft/cometbft/proto/tendermint/statesync\ngithub.com/cometbft/cometbft/proto/tendermint/store\ngithub.com/cometbft/cometbft/proto/tendermint/types\ngithub.com/cometbft/cometbft/proto/tendermint/version\ngithub.com/cometbft/cometbft/proxy\ngithub.com/cometbft/cometbft/rpc/client\ngithub.com/cometbft/cometbft/rpc/client/http\ngithub.com/cometbft/cometbft/rpc/client/local\ngithub.com/cometbft/cometbft/rpc/core\ngithub.com/cometbft/cometbft/rpc/core/types\ngithub.com/cometbft/cometbft/rpc/grpc\ngithub.com/cometbft/cometbft/rpc/jsonrpc/client\ngithub.com/cometbft/cometbft/rpc/jsonrpc/server\ngithub.com/cometbft/cometbft/rpc/jsonrpc/types\ngithub.com/cometbft/cometbft/state\ngithub.com/cometbft/cometbft/state/indexer\ngithub.com/cometbft/cometbft/state/indexer/block\ngithub.com/cometbft/cometbft/state/indexer/block/kv\ngithub.com/cometbft/cometbft/state/indexer/block/null\ngithub.com/cometbft/cometbft/state/indexer/sink/psql\ngithub.com/cometbft/cometbft/state/txindex\ngithub.com/cometbft/cometbft/state/txindex/kv\ngithub.com/cometbft/cometbft/state/txindex/null\ngithub.com/cometbft/cometbft/statesync\ngithub.com/cometbft/cometbft/store\ngithub.com/cometbft/cometbft/test/e2e/app\ngithub.com/cometbft/cometbft/types\ngithub.com/cometbft/cometbft/types/time\ngithub.com/cometbft/cometbft/version\n# github.com/cometbft/cometbft-db v0.15.0\n## explicit; go 1.23.1\ngithub.com/cometbft/cometbft-db\n# github.com/cosmos/btcutil v1.0.5\n## explicit; go 1.19\ngithub.com/cosmos/btcutil/bech32\n# github.com/cosmos/cosmos-db v1.0.3-0.20240408151834-e75f6e4b28d8\n## explicit; go 1.19\ngithub.com/cosmos/cosmos-db\n# github.com/cosmos/cosmos-proto v1.0.0-beta.5\n## explicit; go 1.18\ngithub.com/cosmos/cosmos-proto\ngithub.com/cosmos/cosmos-proto/anyutil\ngithub.com/cosmos/cosmos-proto/runtime\n# github.com/cosmos/cosmos-sdk v0.50.9 => github.com/crypto-org-chain/cosmos-sdk v0.50.6-0.20241101065553-a70c19a03a81\n## explicit; go 1.21\ngithub.com/cosmos/cosmos-sdk/baseapp\ngithub.com/cosmos/cosmos-sdk/baseapp/internal/protocompat\ngithub.com/cosmos/cosmos-sdk/baseapp/oe\ngithub.com/cosmos/cosmos-sdk/client\ngithub.com/cosmos/cosmos-sdk/client/config\ngithub.com/cosmos/cosmos-sdk/client/debug\ngithub.com/cosmos/cosmos-sdk/client/docs\ngithub.com/cosmos/cosmos-sdk/client/flags\ngithub.com/cosmos/cosmos-sdk/client/grpc/cmtservice\ngithub.com/cosmos/cosmos-sdk/client/grpc/node\ngithub.com/cosmos/cosmos-sdk/client/grpc/reflection\ngithub.com/cosmos/cosmos-sdk/client/input\ngithub.com/cosmos/cosmos-sdk/client/keys\ngithub.com/cosmos/cosmos-sdk/client/pruning\ngithub.com/cosmos/cosmos-sdk/client/rpc\ngithub.com/cosmos/cosmos-sdk/client/snapshot\ngithub.com/cosmos/cosmos-sdk/client/tx\ngithub.com/cosmos/cosmos-sdk/codec\ngithub.com/cosmos/cosmos-sdk/codec/address\ngithub.com/cosmos/cosmos-sdk/codec/legacy\ngithub.com/cosmos/cosmos-sdk/codec/testutil\ngithub.com/cosmos/cosmos-sdk/codec/types\ngithub.com/cosmos/cosmos-sdk/codec/unknownproto\ngithub.com/cosmos/cosmos-sdk/crypto\ngithub.com/cosmos/cosmos-sdk/crypto/codec\ngithub.com/cosmos/cosmos-sdk/crypto/hd\ngithub.com/cosmos/cosmos-sdk/crypto/keyring\ngithub.com/cosmos/cosmos-sdk/crypto/keys/bcrypt\ngithub.com/cosmos/cosmos-sdk/crypto/keys/ed25519\ngithub.com/cosmos/cosmos-sdk/crypto/keys/internal/ecdsa\ngithub.com/cosmos/cosmos-sdk/crypto/keys/multisig\ngithub.com/cosmos/cosmos-sdk/crypto/keys/secp256k1\ngithub.com/cosmos/cosmos-sdk/crypto/keys/secp256k1/internal/secp256k1\ngithub.com/cosmos/cosmos-sdk/crypto/keys/secp256k1/internal/secp256k1/libsecp256k1/include\ngithub.com/cosmos/cosmos-sdk/crypto/keys/secp256k1/internal/secp256k1/libsecp256k1/src\ngithub.com/cosmos/cosmos-sdk/crypto/keys/secp256k1/internal/secp256k1/libsecp256k1/src/modules/recovery\ngithub.com/cosmos/cosmos-sdk/crypto/keys/secp256r1\ngithub.com/cosmos/cosmos-sdk/crypto/ledger\ngithub.com/cosmos/cosmos-sdk/crypto/types\ngithub.com/cosmos/cosmos-sdk/crypto/types/multisig\ngithub.com/cosmos/cosmos-sdk/crypto/xsalsa20symmetric\ngithub.com/cosmos/cosmos-sdk/internal/conv\ngithub.com/cosmos/cosmos-sdk/runtime\ngithub.com/cosmos/cosmos-sdk/runtime/services\ngithub.com/cosmos/cosmos-sdk/server\ngithub.com/cosmos/cosmos-sdk/server/api\ngithub.com/cosmos/cosmos-sdk/server/cmd\ngithub.com/cosmos/cosmos-sdk/server/config\ngithub.com/cosmos/cosmos-sdk/server/grpc\ngithub.com/cosmos/cosmos-sdk/server/grpc/gogoreflection\ngithub.com/cosmos/cosmos-sdk/server/grpc/reflection/v2alpha1\ngithub.com/cosmos/cosmos-sdk/server/log\ngithub.com/cosmos/cosmos-sdk/server/types\ngithub.com/cosmos/cosmos-sdk/std\ngithub.com/cosmos/cosmos-sdk/telemetry\ngithub.com/cosmos/cosmos-sdk/testutil\ngithub.com/cosmos/cosmos-sdk/testutil/mock\ngithub.com/cosmos/cosmos-sdk/testutil/sims\ngithub.com/cosmos/cosmos-sdk/testutil/testdata\ngithub.com/cosmos/cosmos-sdk/types\ngithub.com/cosmos/cosmos-sdk/types/address\ngithub.com/cosmos/cosmos-sdk/types/bech32\ngithub.com/cosmos/cosmos-sdk/types/bech32/legacybech32\ngithub.com/cosmos/cosmos-sdk/types/errors\ngithub.com/cosmos/cosmos-sdk/types/grpc\ngithub.com/cosmos/cosmos-sdk/types/kv\ngithub.com/cosmos/cosmos-sdk/types/mempool\ngithub.com/cosmos/cosmos-sdk/types/module\ngithub.com/cosmos/cosmos-sdk/types/module/testutil\ngithub.com/cosmos/cosmos-sdk/types/msgservice\ngithub.com/cosmos/cosmos-sdk/types/query\ngithub.com/cosmos/cosmos-sdk/types/registry\ngithub.com/cosmos/cosmos-sdk/types/simulation\ngithub.com/cosmos/cosmos-sdk/types/tx\ngithub.com/cosmos/cosmos-sdk/types/tx/amino\ngithub.com/cosmos/cosmos-sdk/types/tx/signing\ngithub.com/cosmos/cosmos-sdk/version\ngithub.com/cosmos/cosmos-sdk/x/auth\ngithub.com/cosmos/cosmos-sdk/x/auth/ante\ngithub.com/cosmos/cosmos-sdk/x/auth/client\ngithub.com/cosmos/cosmos-sdk/x/auth/client/cli\ngithub.com/cosmos/cosmos-sdk/x/auth/codec\ngithub.com/cosmos/cosmos-sdk/x/auth/exported\ngithub.com/cosmos/cosmos-sdk/x/auth/keeper\ngithub.com/cosmos/cosmos-sdk/x/auth/migrations/legacytx\ngithub.com/cosmos/cosmos-sdk/x/auth/migrations/v1\ngithub.com/cosmos/cosmos-sdk/x/auth/migrations/v2\ngithub.com/cosmos/cosmos-sdk/x/auth/migrations/v3\ngithub.com/cosmos/cosmos-sdk/x/auth/migrations/v4\ngithub.com/cosmos/cosmos-sdk/x/auth/migrations/v5\ngithub.com/cosmos/cosmos-sdk/x/auth/posthandler\ngithub.com/cosmos/cosmos-sdk/x/auth/signing\ngithub.com/cosmos/cosmos-sdk/x/auth/simulation\ngithub.com/cosmos/cosmos-sdk/x/auth/tx\ngithub.com/cosmos/cosmos-sdk/x/auth/tx/config\ngithub.com/cosmos/cosmos-sdk/x/auth/types\ngithub.com/cosmos/cosmos-sdk/x/auth/vesting\ngithub.com/cosmos/cosmos-sdk/x/auth/vesting/client/cli\ngithub.com/cosmos/cosmos-sdk/x/auth/vesting/exported\ngithub.com/cosmos/cosmos-sdk/x/auth/vesting/types\ngithub.com/cosmos/cosmos-sdk/x/authz\ngithub.com/cosmos/cosmos-sdk/x/authz/client/cli\ngithub.com/cosmos/cosmos-sdk/x/authz/keeper\ngithub.com/cosmos/cosmos-sdk/x/authz/migrations/v2\ngithub.com/cosmos/cosmos-sdk/x/authz/module\ngithub.com/cosmos/cosmos-sdk/x/authz/simulation\ngithub.com/cosmos/cosmos-sdk/x/bank\ngithub.com/cosmos/cosmos-sdk/x/bank/client/cli\ngithub.com/cosmos/cosmos-sdk/x/bank/exported\ngithub.com/cosmos/cosmos-sdk/x/bank/keeper\ngithub.com/cosmos/cosmos-sdk/x/bank/migrations/v1\ngithub.com/cosmos/cosmos-sdk/x/bank/migrations/v2\ngithub.com/cosmos/cosmos-sdk/x/bank/migrations/v3\ngithub.com/cosmos/cosmos-sdk/x/bank/migrations/v4\ngithub.com/cosmos/cosmos-sdk/x/bank/simulation\ngithub.com/cosmos/cosmos-sdk/x/bank/types\ngithub.com/cosmos/cosmos-sdk/x/consensus\ngithub.com/cosmos/cosmos-sdk/x/consensus/exported\ngithub.com/cosmos/cosmos-sdk/x/consensus/keeper\ngithub.com/cosmos/cosmos-sdk/x/consensus/types\ngithub.com/cosmos/cosmos-sdk/x/crisis\ngithub.com/cosmos/cosmos-sdk/x/crisis/exported\ngithub.com/cosmos/cosmos-sdk/x/crisis/keeper\ngithub.com/cosmos/cosmos-sdk/x/crisis/migrations/v2\ngithub.com/cosmos/cosmos-sdk/x/crisis/types\ngithub.com/cosmos/cosmos-sdk/x/distribution\ngithub.com/cosmos/cosmos-sdk/x/distribution/client/cli\ngithub.com/cosmos/cosmos-sdk/x/distribution/exported\ngithub.com/cosmos/cosmos-sdk/x/distribution/keeper\ngithub.com/cosmos/cosmos-sdk/x/distribution/migrations/v1\ngithub.com/cosmos/cosmos-sdk/x/distribution/migrations/v2\ngithub.com/cosmos/cosmos-sdk/x/distribution/migrations/v3\ngithub.com/cosmos/cosmos-sdk/x/distribution/simulation\ngithub.com/cosmos/cosmos-sdk/x/distribution/types\ngithub.com/cosmos/cosmos-sdk/x/genutil\ngithub.com/cosmos/cosmos-sdk/x/genutil/client/cli\ngithub.com/cosmos/cosmos-sdk/x/genutil/migrations/v043\ngithub.com/cosmos/cosmos-sdk/x/genutil/migrations/v046\ngithub.com/cosmos/cosmos-sdk/x/genutil/migrations/v047\ngithub.com/cosmos/cosmos-sdk/x/genutil/types\ngithub.com/cosmos/cosmos-sdk/x/gov\ngithub.com/cosmos/cosmos-sdk/x/gov/client\ngithub.com/cosmos/cosmos-sdk/x/gov/client/cli\ngithub.com/cosmos/cosmos-sdk/x/gov/client/utils\ngithub.com/cosmos/cosmos-sdk/x/gov/exported\ngithub.com/cosmos/cosmos-sdk/x/gov/keeper\ngithub.com/cosmos/cosmos-sdk/x/gov/migrations/v1\ngithub.com/cosmos/cosmos-sdk/x/gov/migrations/v2\ngithub.com/cosmos/cosmos-sdk/x/gov/migrations/v3\ngithub.com/cosmos/cosmos-sdk/x/gov/migrations/v4\ngithub.com/cosmos/cosmos-sdk/x/gov/migrations/v5\ngithub.com/cosmos/cosmos-sdk/x/gov/simulation\ngithub.com/cosmos/cosmos-sdk/x/gov/types\ngithub.com/cosmos/cosmos-sdk/x/gov/types/v1\ngithub.com/cosmos/cosmos-sdk/x/gov/types/v1beta1\ngithub.com/cosmos/cosmos-sdk/x/group\ngithub.com/cosmos/cosmos-sdk/x/group/errors\ngithub.com/cosmos/cosmos-sdk/x/group/internal/math\ngithub.com/cosmos/cosmos-sdk/x/group/internal/orm\ngithub.com/cosmos/cosmos-sdk/x/group/migrations/v2\ngithub.com/cosmos/cosmos-sdk/x/mint\ngithub.com/cosmos/cosmos-sdk/x/mint/exported\ngithub.com/cosmos/cosmos-sdk/x/mint/keeper\ngithub.com/cosmos/cosmos-sdk/x/mint/migrations/v2\ngithub.com/cosmos/cosmos-sdk/x/mint/simulation\ngithub.com/cosmos/cosmos-sdk/x/mint/types\ngithub.com/cosmos/cosmos-sdk/x/params\ngithub.com/cosmos/cosmos-sdk/x/params/client\ngithub.com/cosmos/cosmos-sdk/x/params/client/cli\ngithub.com/cosmos/cosmos-sdk/x/params/client/utils\ngithub.com/cosmos/cosmos-sdk/x/params/keeper\ngithub.com/cosmos/cosmos-sdk/x/params/types\ngithub.com/cosmos/cosmos-sdk/x/params/types/proposal\ngithub.com/cosmos/cosmos-sdk/x/simulation\ngithub.com/cosmos/cosmos-sdk/x/simulation/client/cli\ngithub.com/cosmos/cosmos-sdk/x/slashing\ngithub.com/cosmos/cosmos-sdk/x/slashing/exported\ngithub.com/cosmos/cosmos-sdk/x/slashing/keeper\ngithub.com/cosmos/cosmos-sdk/x/slashing/migrations/v1\ngithub.com/cosmos/cosmos-sdk/x/slashing/migrations/v2\ngithub.com/cosmos/cosmos-sdk/x/slashing/migrations/v3\ngithub.com/cosmos/cosmos-sdk/x/slashing/migrations/v4\ngithub.com/cosmos/cosmos-sdk/x/slashing/simulation\ngithub.com/cosmos/cosmos-sdk/x/slashing/types\ngithub.com/cosmos/cosmos-sdk/x/staking\ngithub.com/cosmos/cosmos-sdk/x/staking/client/cli\ngithub.com/cosmos/cosmos-sdk/x/staking/exported\ngithub.com/cosmos/cosmos-sdk/x/staking/keeper\ngithub.com/cosmos/cosmos-sdk/x/staking/migrations/v1\ngithub.com/cosmos/cosmos-sdk/x/staking/migrations/v2\ngithub.com/cosmos/cosmos-sdk/x/staking/migrations/v3\ngithub.com/cosmos/cosmos-sdk/x/staking/migrations/v4\ngithub.com/cosmos/cosmos-sdk/x/staking/migrations/v5\ngithub.com/cosmos/cosmos-sdk/x/staking/simulation\ngithub.com/cosmos/cosmos-sdk/x/staking/types\n# github.com/cosmos/go-bip39 v1.0.0\n## explicit; go 1.15\ngithub.com/cosmos/go-bip39\n# github.com/cosmos/gogogateway v1.2.0\n## explicit; go 1.12\ngithub.com/cosmos/gogogateway\n# github.com/cosmos/gogoproto v1.7.0\n## explicit; go 1.19\ngithub.com/cosmos/gogoproto/gogoproto\ngithub.com/cosmos/gogoproto/grpc\ngithub.com/cosmos/gogoproto/io\ngithub.com/cosmos/gogoproto/jsonpb\ngithub.com/cosmos/gogoproto/proto\ngithub.com/cosmos/gogoproto/protoc-gen-gogo/descriptor\ngithub.com/cosmos/gogoproto/sortkeys\ngithub.com/cosmos/gogoproto/types\ngithub.com/cosmos/gogoproto/types/any\ngithub.com/cosmos/gogoproto/types/any/internal\n# github.com/cosmos/iavl v1.2.1-0.20240731145221-594b181f427e\n## explicit; go 1.20\ngithub.com/cosmos/iavl\ngithub.com/cosmos/iavl/cache\ngithub.com/cosmos/iavl/db\ngithub.com/cosmos/iavl/fastnode\ngithub.com/cosmos/iavl/internal/bytes\ngithub.com/cosmos/iavl/internal/color\ngithub.com/cosmos/iavl/internal/encoding\ngithub.com/cosmos/iavl/keyformat\ngithub.com/cosmos/iavl/proto\n# github.com/cosmos/ibc-go/modules/apps/callbacks v0.0.0-20240913130017-6b2554360c0e\n## explicit; go 1.21\ngithub.com/cosmos/ibc-go/modules/apps/callbacks\ngithub.com/cosmos/ibc-go/modules/apps/callbacks/types\n# github.com/cosmos/ibc-go/modules/capability v1.0.1\n## explicit; go 1.21\ngithub.com/cosmos/ibc-go/modules/capability\ngithub.com/cosmos/ibc-go/modules/capability/keeper\ngithub.com/cosmos/ibc-go/modules/capability/simulation\ngithub.com/cosmos/ibc-go/modules/capability/types\n# github.com/cosmos/ibc-go/v8 v8.5.1\n## explicit; go 1.21\ngithub.com/cosmos/ibc-go/v8/internal/logging\ngithub.com/cosmos/ibc-go/v8/modules/apps/27-interchain-accounts\ngithub.com/cosmos/ibc-go/v8/modules/apps/27-interchain-accounts/client/cli\ngithub.com/cosmos/ibc-go/v8/modules/apps/27-interchain-accounts/controller\ngithub.com/cosmos/ibc-go/v8/modules/apps/27-interchain-accounts/controller/client/cli\ngithub.com/cosmos/ibc-go/v8/modules/apps/27-interchain-accounts/controller/keeper\ngithub.com/cosmos/ibc-go/v8/modules/apps/27-interchain-accounts/controller/types\ngithub.com/cosmos/ibc-go/v8/modules/apps/27-interchain-accounts/genesis/types\ngithub.com/cosmos/ibc-go/v8/modules/apps/27-interchain-accounts/host\ngithub.com/cosmos/ibc-go/v8/modules/apps/27-interchain-accounts/host/client/cli\ngithub.com/cosmos/ibc-go/v8/modules/apps/27-interchain-accounts/host/keeper\ngithub.com/cosmos/ibc-go/v8/modules/apps/27-interchain-accounts/host/types\ngithub.com/cosmos/ibc-go/v8/modules/apps/27-interchain-accounts/simulation\ngithub.com/cosmos/ibc-go/v8/modules/apps/27-interchain-accounts/types\ngithub.com/cosmos/ibc-go/v8/modules/apps/29-fee\ngithub.com/cosmos/ibc-go/v8/modules/apps/29-fee/client/cli\ngithub.com/cosmos/ibc-go/v8/modules/apps/29-fee/keeper\ngithub.com/cosmos/ibc-go/v8/modules/apps/29-fee/types\ngithub.com/cosmos/ibc-go/v8/modules/apps/transfer\ngithub.com/cosmos/ibc-go/v8/modules/apps/transfer/client/cli\ngithub.com/cosmos/ibc-go/v8/modules/apps/transfer/keeper\ngithub.com/cosmos/ibc-go/v8/modules/apps/transfer/simulation\ngithub.com/cosmos/ibc-go/v8/modules/apps/transfer/types\ngithub.com/cosmos/ibc-go/v8/modules/core\ngithub.com/cosmos/ibc-go/v8/modules/core/02-client\ngithub.com/cosmos/ibc-go/v8/modules/core/02-client/client/cli\ngithub.com/cosmos/ibc-go/v8/modules/core/02-client/client/utils\ngithub.com/cosmos/ibc-go/v8/modules/core/02-client/keeper\ngithub.com/cosmos/ibc-go/v8/modules/core/02-client/migrations/v7\ngithub.com/cosmos/ibc-go/v8/modules/core/02-client/simulation\ngithub.com/cosmos/ibc-go/v8/modules/core/02-client/types\ngithub.com/cosmos/ibc-go/v8/modules/core/03-connection\ngithub.com/cosmos/ibc-go/v8/modules/core/03-connection/client/cli\ngithub.com/cosmos/ibc-go/v8/modules/core/03-connection/client/utils\ngithub.com/cosmos/ibc-go/v8/modules/core/03-connection/keeper\ngithub.com/cosmos/ibc-go/v8/modules/core/03-connection/migrations/v7\ngithub.com/cosmos/ibc-go/v8/modules/core/03-connection/simulation\ngithub.com/cosmos/ibc-go/v8/modules/core/03-connection/types\ngithub.com/cosmos/ibc-go/v8/modules/core/04-channel\ngithub.com/cosmos/ibc-go/v8/modules/core/04-channel/client/cli\ngithub.com/cosmos/ibc-go/v8/modules/core/04-channel/client/utils\ngithub.com/cosmos/ibc-go/v8/modules/core/04-channel/keeper\ngithub.com/cosmos/ibc-go/v8/modules/core/04-channel/simulation\ngithub.com/cosmos/ibc-go/v8/modules/core/04-channel/types\ngithub.com/cosmos/ibc-go/v8/modules/core/05-port/keeper\ngithub.com/cosmos/ibc-go/v8/modules/core/05-port/types\ngithub.com/cosmos/ibc-go/v8/modules/core/23-commitment/types\ngithub.com/cosmos/ibc-go/v8/modules/core/24-host\ngithub.com/cosmos/ibc-go/v8/modules/core/ante\ngithub.com/cosmos/ibc-go/v8/modules/core/client\ngithub.com/cosmos/ibc-go/v8/modules/core/client/cli\ngithub.com/cosmos/ibc-go/v8/modules/core/errors\ngithub.com/cosmos/ibc-go/v8/modules/core/exported\ngithub.com/cosmos/ibc-go/v8/modules/core/keeper\ngithub.com/cosmos/ibc-go/v8/modules/core/simulation\ngithub.com/cosmos/ibc-go/v8/modules/core/types\ngithub.com/cosmos/ibc-go/v8/modules/light-clients/06-solomachine\ngithub.com/cosmos/ibc-go/v8/modules/light-clients/07-tendermint\ngithub.com/cosmos/ibc-go/v8/modules/light-clients/09-localhost\n# github.com/cosmos/ics23/go v0.11.0\n## explicit; go 1.21\ngithub.com/cosmos/ics23/go\n# github.com/cosmos/ledger-cosmos-go v0.13.3\n## explicit; go 1.18\ngithub.com/cosmos/ledger-cosmos-go\n# github.com/cosmos/rosetta v0.50.3-1\n## explicit; go 1.21\ngithub.com/cosmos/rosetta\ngithub.com/cosmos/rosetta/cmd\ngithub.com/cosmos/rosetta/lib/errors\ngithub.com/cosmos/rosetta/lib/internal/service\ngithub.com/cosmos/rosetta/lib/server\ngithub.com/cosmos/rosetta/lib/types\n# github.com/cosmos/rosetta-sdk-go v0.10.0\n## explicit; go 1.18\ngithub.com/cosmos/rosetta-sdk-go/asserter\ngithub.com/cosmos/rosetta-sdk-go/errors\ngithub.com/cosmos/rosetta-sdk-go/server\n# github.com/creachadair/atomicfile v0.3.1\n## explicit; go 1.19\ngithub.com/creachadair/atomicfile\n# github.com/creachadair/tomledit v0.0.24\n## explicit; go 1.18\ngithub.com/creachadair/tomledit\ngithub.com/creachadair/tomledit/parser\ngithub.com/creachadair/tomledit/scanner\ngithub.com/creachadair/tomledit/transform\n# github.com/crypto-org-chain/cronos/memiavl v0.0.4 => ./memiavl\n## explicit; go 1.22\ngithub.com/crypto-org-chain/cronos/memiavl\n# github.com/crypto-org-chain/cronos/store v0.0.4 => ./store\n## explicit; go 1.22\ngithub.com/crypto-org-chain/cronos/store\ngithub.com/crypto-org-chain/cronos/store/cachemulti\ngithub.com/crypto-org-chain/cronos/store/config\ngithub.com/crypto-org-chain/cronos/store/memiavlstore\ngithub.com/crypto-org-chain/cronos/store/rootmulti\n# github.com/crypto-org-chain/cronos/versiondb v0.0.0-00010101000000-000000000000 => ./versiondb\n## explicit; go 1.22\ngithub.com/crypto-org-chain/cronos/versiondb\ngithub.com/crypto-org-chain/cronos/versiondb/client\ngithub.com/crypto-org-chain/cronos/versiondb/extsort\ngithub.com/crypto-org-chain/cronos/versiondb/tsrocksdb\n# github.com/crypto-org-chain/go-block-stm v0.0.0-20240919080136-6c49aef68716\n## explicit; go 1.21\ngithub.com/crypto-org-chain/go-block-stm\n# github.com/danieljoos/wincred v1.2.0\n## explicit; go 1.18\ngithub.com/danieljoos/wincred\n# github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc\n## explicit\ngithub.com/davecgh/go-spew/spew\n# github.com/deckarep/golang-set/v2 v2.1.0\n## explicit; go 1.18\ngithub.com/deckarep/golang-set/v2\n# github.com/decred/dcrd/dcrec/secp256k1/v4 v4.3.0\n## explicit; go 1.17\ngithub.com/decred/dcrd/dcrec/secp256k1/v4\ngithub.com/decred/dcrd/dcrec/secp256k1/v4/ecdsa\n# github.com/desertbit/timer v0.0.0-20180107155436-c41aec40b27f\n## explicit\ngithub.com/desertbit/timer\n# github.com/dgraph-io/badger/v4 v4.3.0\n## explicit; go 1.19\ngithub.com/dgraph-io/badger/v4\ngithub.com/dgraph-io/badger/v4/fb\ngithub.com/dgraph-io/badger/v4/options\ngithub.com/dgraph-io/badger/v4/pb\ngithub.com/dgraph-io/badger/v4/skl\ngithub.com/dgraph-io/badger/v4/table\ngithub.com/dgraph-io/badger/v4/trie\ngithub.com/dgraph-io/badger/v4/y\n# github.com/dgraph-io/ristretto v0.1.2-0.20240116140435-c67e07994f91\n## explicit; go 1.19\ngithub.com/dgraph-io/ristretto\ngithub.com/dgraph-io/ristretto/z\ngithub.com/dgraph-io/ristretto/z/simd\n# github.com/dlclark/regexp2 v1.7.0\n## explicit; go 1.13\ngithub.com/dlclark/regexp2\ngithub.com/dlclark/regexp2/syntax\n# github.com/dop251/goja v0.0.0-20230122112309-96b1610dd4f7\n## explicit; go 1.16\ngithub.com/dop251/goja\ngithub.com/dop251/goja/ast\ngithub.com/dop251/goja/file\ngithub.com/dop251/goja/ftoa\ngithub.com/dop251/goja/ftoa/internal/fast\ngithub.com/dop251/goja/parser\ngithub.com/dop251/goja/token\ngithub.com/dop251/goja/unistring\n# github.com/dustin/go-humanize v1.0.1\n## explicit; go 1.16\ngithub.com/dustin/go-humanize\n# github.com/dvsekhvalnov/jose2go v1.6.0\n## explicit; go 1.15\ngithub.com/dvsekhvalnov/jose2go\ngithub.com/dvsekhvalnov/jose2go/aes\ngithub.com/dvsekhvalnov/jose2go/arrays\ngithub.com/dvsekhvalnov/jose2go/base64url\ngithub.com/dvsekhvalnov/jose2go/compact\ngithub.com/dvsekhvalnov/jose2go/kdf\ngithub.com/dvsekhvalnov/jose2go/keys/ecc\ngithub.com/dvsekhvalnov/jose2go/padding\n# github.com/edsrzf/mmap-go v1.1.0\n## explicit; go 1.17\ngithub.com/edsrzf/mmap-go\n# github.com/emicklei/dot v1.6.1\n## explicit; go 1.13\ngithub.com/emicklei/dot\n# github.com/ethereum/go-ethereum v1.10.26 => github.com/crypto-org-chain/go-ethereum v1.10.20-0.20240926023215-d2275b4afb9a\n## explicit; go 1.19\ngithub.com/ethereum/go-ethereum\ngithub.com/ethereum/go-ethereum/accounts\ngithub.com/ethereum/go-ethereum/accounts/abi\ngithub.com/ethereum/go-ethereum/accounts/abi/bind\ngithub.com/ethereum/go-ethereum/accounts/external\ngithub.com/ethereum/go-ethereum/accounts/keystore\ngithub.com/ethereum/go-ethereum/accounts/scwallet\ngithub.com/ethereum/go-ethereum/common\ngithub.com/ethereum/go-ethereum/common/bitutil\ngithub.com/ethereum/go-ethereum/common/hexutil\ngithub.com/ethereum/go-ethereum/common/lru\ngithub.com/ethereum/go-ethereum/common/math\ngithub.com/ethereum/go-ethereum/common/mclock\ngithub.com/ethereum/go-ethereum/common/prque\ngithub.com/ethereum/go-ethereum/consensus\ngithub.com/ethereum/go-ethereum/consensus/ethash\ngithub.com/ethereum/go-ethereum/consensus/misc\ngithub.com/ethereum/go-ethereum/core\ngithub.com/ethereum/go-ethereum/core/bloombits\ngithub.com/ethereum/go-ethereum/core/rawdb\ngithub.com/ethereum/go-ethereum/core/state\ngithub.com/ethereum/go-ethereum/core/state/snapshot\ngithub.com/ethereum/go-ethereum/core/types\ngithub.com/ethereum/go-ethereum/core/vm\ngithub.com/ethereum/go-ethereum/crypto\ngithub.com/ethereum/go-ethereum/crypto/blake2b\ngithub.com/ethereum/go-ethereum/crypto/bls12381\ngithub.com/ethereum/go-ethereum/crypto/bn256\ngithub.com/ethereum/go-ethereum/crypto/bn256/cloudflare\ngithub.com/ethereum/go-ethereum/crypto/bn256/google\ngithub.com/ethereum/go-ethereum/crypto/ecies\ngithub.com/ethereum/go-ethereum/crypto/secp256k1\ngithub.com/ethereum/go-ethereum/crypto/secp256k1/libsecp256k1/include\ngithub.com/ethereum/go-ethereum/crypto/secp256k1/libsecp256k1/src\ngithub.com/ethereum/go-ethereum/crypto/secp256k1/libsecp256k1/src/modules/recovery\ngithub.com/ethereum/go-ethereum/eth/filters\ngithub.com/ethereum/go-ethereum/eth/tracers\ngithub.com/ethereum/go-ethereum/eth/tracers/js\ngithub.com/ethereum/go-ethereum/eth/tracers/js/internal/tracers\ngithub.com/ethereum/go-ethereum/eth/tracers/logger\ngithub.com/ethereum/go-ethereum/eth/tracers/native\ngithub.com/ethereum/go-ethereum/ethclient\ngithub.com/ethereum/go-ethereum/ethdb\ngithub.com/ethereum/go-ethereum/ethdb/leveldb\ngithub.com/ethereum/go-ethereum/ethdb/memorydb\ngithub.com/ethereum/go-ethereum/ethdb/pebble\ngithub.com/ethereum/go-ethereum/event\ngithub.com/ethereum/go-ethereum/internal/ethapi\ngithub.com/ethereum/go-ethereum/internal/syncx\ngithub.com/ethereum/go-ethereum/internal/version\ngithub.com/ethereum/go-ethereum/log\ngithub.com/ethereum/go-ethereum/metrics\ngithub.com/ethereum/go-ethereum/metrics/exp\ngithub.com/ethereum/go-ethereum/metrics/prometheus\ngithub.com/ethereum/go-ethereum/p2p\ngithub.com/ethereum/go-ethereum/p2p/discover\ngithub.com/ethereum/go-ethereum/p2p/discover/v4wire\ngithub.com/ethereum/go-ethereum/p2p/discover/v5wire\ngithub.com/ethereum/go-ethereum/p2p/enode\ngithub.com/ethereum/go-ethereum/p2p/enr\ngithub.com/ethereum/go-ethereum/p2p/nat\ngithub.com/ethereum/go-ethereum/p2p/netutil\ngithub.com/ethereum/go-ethereum/p2p/rlpx\ngithub.com/ethereum/go-ethereum/params\ngithub.com/ethereum/go-ethereum/rlp\ngithub.com/ethereum/go-ethereum/rlp/internal/rlpstruct\ngithub.com/ethereum/go-ethereum/rpc\ngithub.com/ethereum/go-ethereum/signer/core/apitypes\ngithub.com/ethereum/go-ethereum/trie\n# github.com/evmos/ethermint v0.0.0-00010101000000-000000000000 => github.com/crypto-org-chain/ethermint v0.6.1-0.20241108020006-836617d21619\n## explicit; go 1.22.7\ngithub.com/evmos/ethermint/app\ngithub.com/evmos/ethermint/app/ante\ngithub.com/evmos/ethermint/client\ngithub.com/evmos/ethermint/client/docs\ngithub.com/evmos/ethermint/client/keys\ngithub.com/evmos/ethermint/cmd/config\ngithub.com/evmos/ethermint/crypto/codec\ngithub.com/evmos/ethermint/crypto/ethsecp256k1\ngithub.com/evmos/ethermint/crypto/hd\ngithub.com/evmos/ethermint/encoding\ngithub.com/evmos/ethermint/encoding/codec\ngithub.com/evmos/ethermint/ethereum/eip712\ngithub.com/evmos/ethermint/indexer\ngithub.com/evmos/ethermint/rpc\ngithub.com/evmos/ethermint/rpc/backend\ngithub.com/evmos/ethermint/rpc/namespaces/ethereum/debug\ngithub.com/evmos/ethermint/rpc/namespaces/ethereum/eth\ngithub.com/evmos/ethermint/rpc/namespaces/ethereum/eth/filters\ngithub.com/evmos/ethermint/rpc/namespaces/ethereum/miner\ngithub.com/evmos/ethermint/rpc/namespaces/ethereum/net\ngithub.com/evmos/ethermint/rpc/namespaces/ethereum/personal\ngithub.com/evmos/ethermint/rpc/namespaces/ethereum/txpool\ngithub.com/evmos/ethermint/rpc/namespaces/ethereum/web3\ngithub.com/evmos/ethermint/rpc/stream\ngithub.com/evmos/ethermint/rpc/types\ngithub.com/evmos/ethermint/server\ngithub.com/evmos/ethermint/server/config\ngithub.com/evmos/ethermint/server/flags\ngithub.com/evmos/ethermint/tests\ngithub.com/evmos/ethermint/testutil/config\ngithub.com/evmos/ethermint/testutil/network\ngithub.com/evmos/ethermint/types\ngithub.com/evmos/ethermint/version\ngithub.com/evmos/ethermint/x/evm\ngithub.com/evmos/ethermint/x/evm/client/cli\ngithub.com/evmos/ethermint/x/evm/keeper\ngithub.com/evmos/ethermint/x/evm/migrations/v0/types\ngithub.com/evmos/ethermint/x/evm/migrations/v4\ngithub.com/evmos/ethermint/x/evm/migrations/v4/types\ngithub.com/evmos/ethermint/x/evm/migrations/v5\ngithub.com/evmos/ethermint/x/evm/migrations/v6\ngithub.com/evmos/ethermint/x/evm/simulation\ngithub.com/evmos/ethermint/x/evm/statedb\ngithub.com/evmos/ethermint/x/evm/types\ngithub.com/evmos/ethermint/x/feemarket\ngithub.com/evmos/ethermint/x/feemarket/client/cli\ngithub.com/evmos/ethermint/x/feemarket/keeper\ngithub.com/evmos/ethermint/x/feemarket/migrations/v4\ngithub.com/evmos/ethermint/x/feemarket/simulation\ngithub.com/evmos/ethermint/x/feemarket/types\n# github.com/fatih/color v1.16.0\n## explicit; go 1.17\ngithub.com/fatih/color\n# github.com/felixge/httpsnoop v1.0.4\n## explicit; go 1.13\ngithub.com/felixge/httpsnoop\n# github.com/fsnotify/fsnotify v1.7.0\n## explicit; go 1.17\ngithub.com/fsnotify/fsnotify\n# github.com/gballet/go-libpcsclite v0.0.0-20190607065134-2772fd86a8ff\n## explicit\ngithub.com/gballet/go-libpcsclite\n# github.com/getsentry/sentry-go v0.27.0\n## explicit; go 1.18\ngithub.com/getsentry/sentry-go\ngithub.com/getsentry/sentry-go/internal/debug\ngithub.com/getsentry/sentry-go/internal/otel/baggage\ngithub.com/getsentry/sentry-go/internal/otel/baggage/internal/baggage\ngithub.com/getsentry/sentry-go/internal/ratelimit\ngithub.com/getsentry/sentry-go/internal/traceparser\n# github.com/go-kit/kit v0.13.0\n## explicit; go 1.17\ngithub.com/go-kit/kit/metrics\ngithub.com/go-kit/kit/metrics/discard\ngithub.com/go-kit/kit/metrics/internal/lv\ngithub.com/go-kit/kit/metrics/prometheus\n# github.com/go-kit/log v0.2.1\n## explicit; go 1.17\ngithub.com/go-kit/log\ngithub.com/go-kit/log/level\ngithub.com/go-kit/log/term\n# github.com/go-logfmt/logfmt v0.6.0\n## explicit; go 1.17\ngithub.com/go-logfmt/logfmt\n# github.com/go-logr/logr v1.4.1\n## explicit; go 1.18\ngithub.com/go-logr/logr\ngithub.com/go-logr/logr/funcr\n# github.com/go-logr/stdr v1.2.2\n## explicit; go 1.16\ngithub.com/go-logr/stdr\n# github.com/go-ole/go-ole v1.2.6\n## explicit; go 1.12\ngithub.com/go-ole/go-ole\ngithub.com/go-ole/go-ole/oleutil\n# github.com/go-sourcemap/sourcemap v2.1.3+incompatible\n## explicit\ngithub.com/go-sourcemap/sourcemap\ngithub.com/go-sourcemap/sourcemap/internal/base64vlq\n# github.com/go-stack/stack v1.8.1\n## explicit; go 1.17\ngithub.com/go-stack/stack\n# github.com/godbus/dbus v0.0.0-20190726142602-4481cbc300e2\n## explicit; go 1.12\ngithub.com/godbus/dbus\n# github.com/gofrs/flock v0.8.1\n## explicit\ngithub.com/gofrs/flock\n# github.com/gogo/googleapis v1.4.1\n## explicit; go 1.12\ngithub.com/gogo/googleapis/google/api\n# github.com/gogo/protobuf v1.3.2\n## explicit; go 1.15\ngithub.com/gogo/protobuf/gogoproto\ngithub.com/gogo/protobuf/proto\ngithub.com/gogo/protobuf/protoc-gen-gogo/descriptor\ngithub.com/gogo/protobuf/sortkeys\ngithub.com/gogo/protobuf/types\n# github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da\n## explicit\ngithub.com/golang/groupcache/lru\n# github.com/golang/mock v1.6.0\n## explicit; go 1.11\ngithub.com/golang/mock/gomock\n# github.com/golang/protobuf v1.5.4\n## explicit; go 1.17\ngithub.com/golang/protobuf/descriptor\ngithub.com/golang/protobuf/jsonpb\ngithub.com/golang/protobuf/proto\ngithub.com/golang/protobuf/protoc-gen-go/descriptor\ngithub.com/golang/protobuf/ptypes/any\ngithub.com/golang/protobuf/ptypes/duration\ngithub.com/golang/protobuf/ptypes/empty\ngithub.com/golang/protobuf/ptypes/timestamp\ngithub.com/golang/protobuf/ptypes/wrappers\n# github.com/golang/snappy v0.0.5-0.20220116011046-fa5810519dcb\n## explicit\ngithub.com/golang/snappy\n# github.com/google/btree v1.1.3\n## explicit; go 1.18\ngithub.com/google/btree\n# github.com/google/flatbuffers v1.12.1\n## explicit\ngithub.com/google/flatbuffers/go\n# github.com/google/go-cmp v0.6.0\n## explicit; go 1.13\ngithub.com/google/go-cmp/cmp\ngithub.com/google/go-cmp/cmp/cmpopts\ngithub.com/google/go-cmp/cmp/internal/diff\ngithub.com/google/go-cmp/cmp/internal/flags\ngithub.com/google/go-cmp/cmp/internal/function\ngithub.com/google/go-cmp/cmp/internal/value\n# github.com/google/orderedcode v0.0.1\n## explicit\ngithub.com/google/orderedcode\n# github.com/google/s2a-go v0.1.7\n## explicit; go 1.19\ngithub.com/google/s2a-go\ngithub.com/google/s2a-go/fallback\ngithub.com/google/s2a-go/internal/authinfo\ngithub.com/google/s2a-go/internal/handshaker\ngithub.com/google/s2a-go/internal/handshaker/service\ngithub.com/google/s2a-go/internal/proto/common_go_proto\ngithub.com/google/s2a-go/internal/proto/s2a_context_go_proto\ngithub.com/google/s2a-go/internal/proto/s2a_go_proto\ngithub.com/google/s2a-go/internal/proto/v2/common_go_proto\ngithub.com/google/s2a-go/internal/proto/v2/s2a_context_go_proto\ngithub.com/google/s2a-go/internal/proto/v2/s2a_go_proto\ngithub.com/google/s2a-go/internal/record\ngithub.com/google/s2a-go/internal/record/internal/aeadcrypter\ngithub.com/google/s2a-go/internal/record/internal/halfconn\ngithub.com/google/s2a-go/internal/tokenmanager\ngithub.com/google/s2a-go/internal/v2\ngithub.com/google/s2a-go/internal/v2/certverifier\ngithub.com/google/s2a-go/internal/v2/remotesigner\ngithub.com/google/s2a-go/internal/v2/tlsconfigstore\ngithub.com/google/s2a-go/retry\ngithub.com/google/s2a-go/stream\n# github.com/google/uuid v1.6.0\n## explicit\ngithub.com/google/uuid\n# github.com/googleapis/enterprise-certificate-proxy v0.3.2\n## explicit; go 1.19\ngithub.com/googleapis/enterprise-certificate-proxy/client\ngithub.com/googleapis/enterprise-certificate-proxy/client/util\n# github.com/googleapis/gax-go/v2 v2.12.5\n## explicit; go 1.20\ngithub.com/googleapis/gax-go/v2\ngithub.com/googleapis/gax-go/v2/apierror\ngithub.com/googleapis/gax-go/v2/apierror/internal/proto\ngithub.com/googleapis/gax-go/v2/callctx\ngithub.com/googleapis/gax-go/v2/internal\n# github.com/gorilla/handlers v1.5.2\n## explicit; go 1.20\ngithub.com/gorilla/handlers\n# github.com/gorilla/mux v1.8.1\n## explicit; go 1.20\ngithub.com/gorilla/mux\n# github.com/gorilla/websocket v1.5.3\n## explicit; go 1.12\ngithub.com/gorilla/websocket\n# github.com/grpc-ecosystem/go-grpc-middleware v1.4.0\n## explicit; go 1.14\ngithub.com/grpc-ecosystem/go-grpc-middleware\ngithub.com/grpc-ecosystem/go-grpc-middleware/recovery\n# github.com/grpc-ecosystem/grpc-gateway v1.16.0\n## explicit; go 1.14\ngithub.com/grpc-ecosystem/grpc-gateway/internal\ngithub.com/grpc-ecosystem/grpc-gateway/runtime\ngithub.com/grpc-ecosystem/grpc-gateway/utilities\n# github.com/gsterjov/go-libsecret v0.0.0-20161001094733-a6f4afe4910c\n## explicit\ngithub.com/gsterjov/go-libsecret\n# github.com/hashicorp/go-cleanhttp v0.5.2\n## explicit; go 1.13\ngithub.com/hashicorp/go-cleanhttp\n# github.com/hashicorp/go-getter v1.7.5\n## explicit; go 1.13\ngithub.com/hashicorp/go-getter\ngithub.com/hashicorp/go-getter/helper/url\n# github.com/hashicorp/go-hclog v1.5.0\n## explicit; go 1.13\ngithub.com/hashicorp/go-hclog\n# github.com/hashicorp/go-immutable-radix v1.3.1\n## explicit\ngithub.com/hashicorp/go-immutable-radix\n# github.com/hashicorp/go-metrics v0.5.3\n## explicit; go 1.12\ngithub.com/hashicorp/go-metrics\ngithub.com/hashicorp/go-metrics/datadog\ngithub.com/hashicorp/go-metrics/prometheus\n# github.com/hashicorp/go-plugin v1.6.0\n## explicit; go 1.17\ngithub.com/hashicorp/go-plugin\ngithub.com/hashicorp/go-plugin/internal/cmdrunner\ngithub.com/hashicorp/go-plugin/internal/grpcmux\ngithub.com/hashicorp/go-plugin/internal/plugin\ngithub.com/hashicorp/go-plugin/runner\n# github.com/hashicorp/go-safetemp v1.0.0\n## explicit\ngithub.com/hashicorp/go-safetemp\n# github.com/hashicorp/go-version v1.6.0\n## explicit\ngithub.com/hashicorp/go-version\n# github.com/hashicorp/golang-lru v1.0.2\n## explicit; go 1.12\ngithub.com/hashicorp/golang-lru\ngithub.com/hashicorp/golang-lru/simplelru\n# github.com/hashicorp/golang-lru/v2 v2.0.7\n## explicit; go 1.18\ngithub.com/hashicorp/golang-lru/v2\ngithub.com/hashicorp/golang-lru/v2/internal\ngithub.com/hashicorp/golang-lru/v2/simplelru\n# github.com/hashicorp/hcl v1.0.0\n## explicit\ngithub.com/hashicorp/hcl\ngithub.com/hashicorp/hcl/hcl/ast\ngithub.com/hashicorp/hcl/hcl/parser\ngithub.com/hashicorp/hcl/hcl/printer\ngithub.com/hashicorp/hcl/hcl/scanner\ngithub.com/hashicorp/hcl/hcl/strconv\ngithub.com/hashicorp/hcl/hcl/token\ngithub.com/hashicorp/hcl/json/parser\ngithub.com/hashicorp/hcl/json/scanner\ngithub.com/hashicorp/hcl/json/token\n# github.com/hashicorp/yamux v0.1.1\n## explicit; go 1.15\ngithub.com/hashicorp/yamux\n# github.com/hdevalence/ed25519consensus v0.2.0\n## explicit; go 1.19\ngithub.com/hdevalence/ed25519consensus\n# github.com/holiman/bloomfilter/v2 v2.0.3\n## explicit; go 1.15\ngithub.com/holiman/bloomfilter/v2\n# github.com/holiman/uint256 v1.2.2-0.20230321075855-87b91420868c\n## explicit; go 1.18\ngithub.com/holiman/uint256\n# github.com/huandu/skiplist v1.2.0\n## explicit; go 1.12\ngithub.com/huandu/skiplist\n# github.com/huin/goupnp v1.0.3\n## explicit; go 1.14\ngithub.com/huin/goupnp\ngithub.com/huin/goupnp/dcps/internetgateway1\ngithub.com/huin/goupnp/dcps/internetgateway2\ngithub.com/huin/goupnp/httpu\ngithub.com/huin/goupnp/scpd\ngithub.com/huin/goupnp/soap\ngithub.com/huin/goupnp/ssdp\n# github.com/iancoleman/strcase v0.3.0\n## explicit; go 1.16\ngithub.com/iancoleman/strcase\n# github.com/improbable-eng/grpc-web v0.15.0\n## explicit; go 1.16\ngithub.com/improbable-eng/grpc-web/go/grpcweb\n# github.com/inconshreveable/mousetrap v1.1.0\n## explicit; go 1.18\ngithub.com/inconshreveable/mousetrap\n# github.com/jackpal/go-nat-pmp v1.0.2\n## explicit\ngithub.com/jackpal/go-nat-pmp\n# github.com/jmespath/go-jmespath v0.4.0\n## explicit; go 1.14\ngithub.com/jmespath/go-jmespath\n# github.com/jmhodges/levigo v1.0.0\n## explicit\ngithub.com/jmhodges/levigo\n# github.com/klauspost/compress v1.17.9\n## explicit; go 1.20\ngithub.com/klauspost/compress\ngithub.com/klauspost/compress/fse\ngithub.com/klauspost/compress/huff0\ngithub.com/klauspost/compress/internal/cpuinfo\ngithub.com/klauspost/compress/internal/race\ngithub.com/klauspost/compress/internal/snapref\ngithub.com/klauspost/compress/s2\ngithub.com/klauspost/compress/snappy\ngithub.com/klauspost/compress/zstd\ngithub.com/klauspost/compress/zstd/internal/xxhash\n# github.com/kr/pretty v0.3.1\n## explicit; go 1.12\ngithub.com/kr/pretty\n# github.com/kr/text v0.2.0\n## explicit\ngithub.com/kr/text\n# github.com/ledgerwatch/erigon-lib v0.0.0-20230210071639-db0e7ed11263\n## explicit; go 1.18\ngithub.com/ledgerwatch/erigon-lib/mmap\n# github.com/lib/pq v1.10.9\n## explicit; go 1.13\ngithub.com/lib/pq\ngithub.com/lib/pq/oid\ngithub.com/lib/pq/scram\n# github.com/linxGnu/grocksdb v1.9.7\n## explicit; go 1.17\ngithub.com/linxGnu/grocksdb\n# github.com/magiconair/properties v1.8.7\n## explicit; go 1.19\ngithub.com/magiconair/properties\n# github.com/manifoldco/promptui v0.9.0\n## explicit; go 1.12\ngithub.com/manifoldco/promptui\ngithub.com/manifoldco/promptui/list\ngithub.com/manifoldco/promptui/screenbuf\n# github.com/mattn/go-colorable v0.1.13\n## explicit; go 1.15\ngithub.com/mattn/go-colorable\n# github.com/mattn/go-isatty v0.0.20\n## explicit; go 1.15\ngithub.com/mattn/go-isatty\n# github.com/mattn/go-runewidth v0.0.9\n## explicit; go 1.9\ngithub.com/mattn/go-runewidth\n# github.com/minio/highwayhash v1.0.3\n## explicit; go 1.15\ngithub.com/minio/highwayhash\n# github.com/mitchellh/go-homedir v1.1.0\n## explicit\ngithub.com/mitchellh/go-homedir\n# github.com/mitchellh/go-testing-interface v1.14.1\n## explicit; go 1.14\ngithub.com/mitchellh/go-testing-interface\n# github.com/mitchellh/mapstructure v1.5.0\n## explicit; go 1.14\ngithub.com/mitchellh/mapstructure\n# github.com/mtibben/percent v0.2.1\n## explicit; go 1.14\ngithub.com/mtibben/percent\n# github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822\n## explicit\ngithub.com/munnerz/goautoneg\n# github.com/oasisprotocol/curve25519-voi v0.0.0-20230904125328-1f23a7beb09a\n## explicit; go 1.17\ngithub.com/oasisprotocol/curve25519-voi/curve\ngithub.com/oasisprotocol/curve25519-voi/curve/scalar\ngithub.com/oasisprotocol/curve25519-voi/internal/disalloweq\ngithub.com/oasisprotocol/curve25519-voi/internal/field\ngithub.com/oasisprotocol/curve25519-voi/internal/lattice\ngithub.com/oasisprotocol/curve25519-voi/internal/scalar128\ngithub.com/oasisprotocol/curve25519-voi/internal/strobe\ngithub.com/oasisprotocol/curve25519-voi/internal/subtle\ngithub.com/oasisprotocol/curve25519-voi/internal/toolchain\ngithub.com/oasisprotocol/curve25519-voi/internal/zeroreader\ngithub.com/oasisprotocol/curve25519-voi/primitives/ed25519\ngithub.com/oasisprotocol/curve25519-voi/primitives/ed25519/extra/cache\ngithub.com/oasisprotocol/curve25519-voi/primitives/merlin\ngithub.com/oasisprotocol/curve25519-voi/primitives/sr25519\n# github.com/oklog/run v1.1.0\n## explicit; go 1.13\ngithub.com/oklog/run\n# github.com/olekukonko/tablewriter v0.0.5\n## explicit; go 1.12\ngithub.com/olekukonko/tablewriter\n# github.com/pelletier/go-toml/v2 v2.2.2\n## explicit; go 1.16\ngithub.com/pelletier/go-toml/v2\ngithub.com/pelletier/go-toml/v2/internal/characters\ngithub.com/pelletier/go-toml/v2/internal/danger\ngithub.com/pelletier/go-toml/v2/internal/tracker\ngithub.com/pelletier/go-toml/v2/unstable\n# github.com/petermattis/goid v0.0.0-20240813172612-4fcff4a6cae7\n## explicit; go 1.17\ngithub.com/petermattis/goid\n# github.com/pkg/errors v0.9.1\n## explicit\ngithub.com/pkg/errors\n# github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2\n## explicit\ngithub.com/pmezard/go-difflib/difflib\n# github.com/prometheus/client_golang v1.20.5\n## explicit; go 1.20\ngithub.com/prometheus/client_golang/internal/github.com/golang/gddo/httputil\ngithub.com/prometheus/client_golang/internal/github.com/golang/gddo/httputil/header\ngithub.com/prometheus/client_golang/prometheus\ngithub.com/prometheus/client_golang/prometheus/internal\ngithub.com/prometheus/client_golang/prometheus/promhttp\ngithub.com/prometheus/client_golang/prometheus/push\n# github.com/prometheus/client_model v0.6.1\n## explicit; go 1.19\ngithub.com/prometheus/client_model/go\n# github.com/prometheus/common v0.60.1\n## explicit; go 1.21\ngithub.com/prometheus/common/expfmt\ngithub.com/prometheus/common/model\n# github.com/prometheus/procfs v0.15.1\n## explicit; go 1.20\ngithub.com/prometheus/procfs\ngithub.com/prometheus/procfs/internal/fs\ngithub.com/prometheus/procfs/internal/util\n# github.com/rcrowley/go-metrics v0.0.0-20201227073835-cf1acfcdf475\n## explicit\ngithub.com/rcrowley/go-metrics\n# github.com/rogpeppe/go-internal v1.12.0\n## explicit; go 1.20\ngithub.com/rogpeppe/go-internal/fmtsort\n# github.com/rs/cors v1.11.1\n## explicit; go 1.13\ngithub.com/rs/cors\ngithub.com/rs/cors/internal\n# github.com/rs/zerolog v1.33.0\n## explicit; go 1.15\ngithub.com/rs/zerolog\ngithub.com/rs/zerolog/internal/cbor\ngithub.com/rs/zerolog/internal/json\ngithub.com/rs/zerolog/pkgerrors\n# github.com/sagikazarmark/locafero v0.4.0\n## explicit; go 1.20\ngithub.com/sagikazarmark/locafero\n# github.com/sagikazarmark/slog-shim v0.1.0\n## explicit; go 1.20\ngithub.com/sagikazarmark/slog-shim\n# github.com/sasha-s/go-deadlock v0.3.5\n## explicit\ngithub.com/sasha-s/go-deadlock\n# github.com/shirou/gopsutil v3.21.4-0.20210419000835-c7a38de76ee5+incompatible\n## explicit\ngithub.com/shirou/gopsutil/cpu\ngithub.com/shirou/gopsutil/internal/common\n# github.com/sourcegraph/conc v0.3.0\n## explicit; go 1.19\ngithub.com/sourcegraph/conc\ngithub.com/sourcegraph/conc/internal/multierror\ngithub.com/sourcegraph/conc/iter\ngithub.com/sourcegraph/conc/panics\n# github.com/spf13/afero v1.11.0\n## explicit; go 1.19\ngithub.com/spf13/afero\ngithub.com/spf13/afero/internal/common\ngithub.com/spf13/afero/mem\n# github.com/spf13/cast v1.6.0\n## explicit; go 1.19\ngithub.com/spf13/cast\n# github.com/spf13/cobra v1.8.1\n## explicit; go 1.15\ngithub.com/spf13/cobra\n# github.com/spf13/pflag v1.0.5\n## explicit; go 1.12\ngithub.com/spf13/pflag\n# github.com/spf13/viper v1.19.0\n## explicit; go 1.20\ngithub.com/spf13/viper\ngithub.com/spf13/viper/internal/encoding\ngithub.com/spf13/viper/internal/encoding/dotenv\ngithub.com/spf13/viper/internal/encoding/hcl\ngithub.com/spf13/viper/internal/encoding/ini\ngithub.com/spf13/viper/internal/encoding/javaproperties\ngithub.com/spf13/viper/internal/encoding/json\ngithub.com/spf13/viper/internal/encoding/toml\ngithub.com/spf13/viper/internal/encoding/yaml\ngithub.com/spf13/viper/internal/features\n# github.com/status-im/keycard-go v0.2.0\n## explicit; go 1.17\ngithub.com/status-im/keycard-go/derivationpath\n# github.com/stretchr/testify v1.9.0\n## explicit; go 1.17\ngithub.com/stretchr/testify/assert\ngithub.com/stretchr/testify/require\ngithub.com/stretchr/testify/suite\n# github.com/subosito/gotenv v1.6.0\n## explicit; go 1.18\ngithub.com/subosito/gotenv\n# github.com/syndtr/goleveldb v1.0.1-0.20220721030215-126854af5e6d => github.com/syndtr/goleveldb v1.0.1-0.20210819022825-2ae1ddf74ef7\n## explicit; go 1.14\ngithub.com/syndtr/goleveldb/leveldb\ngithub.com/syndtr/goleveldb/leveldb/cache\ngithub.com/syndtr/goleveldb/leveldb/comparer\ngithub.com/syndtr/goleveldb/leveldb/errors\ngithub.com/syndtr/goleveldb/leveldb/filter\ngithub.com/syndtr/goleveldb/leveldb/iterator\ngithub.com/syndtr/goleveldb/leveldb/journal\ngithub.com/syndtr/goleveldb/leveldb/memdb\ngithub.com/syndtr/goleveldb/leveldb/opt\ngithub.com/syndtr/goleveldb/leveldb/storage\ngithub.com/syndtr/goleveldb/leveldb/table\ngithub.com/syndtr/goleveldb/leveldb/util\n# github.com/tendermint/go-amino v0.16.0\n## explicit; go 1.12\ngithub.com/tendermint/go-amino\n# github.com/tidwall/btree v1.7.0 => github.com/crypto-org-chain/btree v0.0.0-20240406140148-2687063b042c\n## explicit; go 1.19\ngithub.com/tidwall/btree\n# github.com/tidwall/gjson v1.14.4\n## explicit; go 1.12\ngithub.com/tidwall/gjson\n# github.com/tidwall/match v1.1.1\n## explicit; go 1.15\ngithub.com/tidwall/match\n# github.com/tidwall/pretty v1.2.0\n## explicit; go 1.16\ngithub.com/tidwall/pretty\n# github.com/tidwall/sjson v1.2.5\n## explicit; go 1.14\ngithub.com/tidwall/sjson\n# github.com/tidwall/tinylru v1.1.0\n## explicit; go 1.14\ngithub.com/tidwall/tinylru\n# github.com/tidwall/wal v1.1.7\n## explicit; go 1.13\ngithub.com/tidwall/wal\n# github.com/tklauser/go-sysconf v0.3.10\n## explicit; go 1.13\ngithub.com/tklauser/go-sysconf\n# github.com/tklauser/numcpus v0.4.0\n## explicit; go 1.11\ngithub.com/tklauser/numcpus\n# github.com/tyler-smith/go-bip39 v1.1.0\n## explicit; go 1.14\ngithub.com/tyler-smith/go-bip39\ngithub.com/tyler-smith/go-bip39/wordlists\n# github.com/ulikunitz/xz v0.5.11\n## explicit; go 1.12\ngithub.com/ulikunitz/xz\ngithub.com/ulikunitz/xz/internal/hash\ngithub.com/ulikunitz/xz/internal/xlog\ngithub.com/ulikunitz/xz/lzma\n# github.com/zbiljic/go-filelock v0.0.0-20170914061330-1dbf7103ab7d\n## explicit\ngithub.com/zbiljic/go-filelock\n# github.com/zondax/hid v0.9.2\n## explicit\ngithub.com/zondax/hid\n# github.com/zondax/ledger-go v0.14.3\n## explicit; go 1.18\ngithub.com/zondax/ledger-go\n# go.etcd.io/bbolt v1.4.0-alpha.0.0.20240404170359-43604f3112c5\n## explicit; go 1.22\ngo.etcd.io/bbolt\ngo.etcd.io/bbolt/errors\ngo.etcd.io/bbolt/internal/common\n# go.opencensus.io v0.24.0\n## explicit; go 1.13\ngo.opencensus.io\ngo.opencensus.io/internal\ngo.opencensus.io/internal/tagencoding\ngo.opencensus.io/metric/metricdata\ngo.opencensus.io/metric/metricproducer\ngo.opencensus.io/plugin/ocgrpc\ngo.opencensus.io/plugin/ochttp\ngo.opencensus.io/plugin/ochttp/propagation/b3\ngo.opencensus.io/resource\ngo.opencensus.io/stats\ngo.opencensus.io/stats/internal\ngo.opencensus.io/stats/view\ngo.opencensus.io/tag\ngo.opencensus.io/trace\ngo.opencensus.io/trace/internal\ngo.opencensus.io/trace/propagation\ngo.opencensus.io/trace/tracestate\n# go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.49.0\n## explicit; go 1.20\ngo.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc\ngo.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc/internal\n# go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.49.0\n## explicit; go 1.20\ngo.opentelemetry.io/contrib/instrumentation/net/http/otelhttp\ngo.opentelemetry.io/contrib/instrumentation/net/http/otelhttp/internal/semconvutil\n# go.opentelemetry.io/otel v1.24.0\n## explicit; go 1.20\ngo.opentelemetry.io/otel\ngo.opentelemetry.io/otel/attribute\ngo.opentelemetry.io/otel/baggage\ngo.opentelemetry.io/otel/codes\ngo.opentelemetry.io/otel/internal\ngo.opentelemetry.io/otel/internal/attribute\ngo.opentelemetry.io/otel/internal/baggage\ngo.opentelemetry.io/otel/internal/global\ngo.opentelemetry.io/otel/propagation\ngo.opentelemetry.io/otel/semconv/v1.17.0\ngo.opentelemetry.io/otel/semconv/v1.20.0\n# go.opentelemetry.io/otel/metric v1.24.0\n## explicit; go 1.20\ngo.opentelemetry.io/otel/metric\ngo.opentelemetry.io/otel/metric/embedded\ngo.opentelemetry.io/otel/metric/noop\n# go.opentelemetry.io/otel/trace v1.24.0\n## explicit; go 1.20\ngo.opentelemetry.io/otel/trace\ngo.opentelemetry.io/otel/trace/embedded\n# go.uber.org/multierr v1.11.0\n## explicit; go 1.19\ngo.uber.org/multierr\n# golang.org/x/crypto v0.28.0\n## explicit; go 1.20\ngolang.org/x/crypto/argon2\ngolang.org/x/crypto/bcrypt\ngolang.org/x/crypto/blake2b\ngolang.org/x/crypto/blake2s\ngolang.org/x/crypto/blowfish\ngolang.org/x/crypto/chacha20\ngolang.org/x/crypto/chacha20poly1305\ngolang.org/x/crypto/cryptobyte\ngolang.org/x/crypto/cryptobyte/asn1\ngolang.org/x/crypto/curve25519\ngolang.org/x/crypto/hkdf\ngolang.org/x/crypto/internal/alias\ngolang.org/x/crypto/internal/poly1305\ngolang.org/x/crypto/nacl/box\ngolang.org/x/crypto/nacl/secretbox\ngolang.org/x/crypto/openpgp/armor\ngolang.org/x/crypto/openpgp/errors\ngolang.org/x/crypto/pbkdf2\ngolang.org/x/crypto/poly1305\ngolang.org/x/crypto/ripemd160\ngolang.org/x/crypto/salsa20/salsa\ngolang.org/x/crypto/scrypt\ngolang.org/x/crypto/sha3\n# golang.org/x/exp v0.0.0-20240613232115-7f521ea00fb8\n## explicit; go 1.20\ngolang.org/x/exp/constraints\ngolang.org/x/exp/maps\ngolang.org/x/exp/rand\ngolang.org/x/exp/slices\ngolang.org/x/exp/slog\ngolang.org/x/exp/slog/internal\ngolang.org/x/exp/slog/internal/buffer\n# golang.org/x/mod v0.18.0\n## explicit; go 1.18\ngolang.org/x/mod/semver\n# golang.org/x/net v0.30.0\n## explicit; go 1.18\ngolang.org/x/net/context\ngolang.org/x/net/http/httpguts\ngolang.org/x/net/http2\ngolang.org/x/net/http2/hpack\ngolang.org/x/net/idna\ngolang.org/x/net/internal/timeseries\ngolang.org/x/net/netutil\ngolang.org/x/net/trace\n# golang.org/x/oauth2 v0.23.0\n## explicit; go 1.18\ngolang.org/x/oauth2\ngolang.org/x/oauth2/authhandler\ngolang.org/x/oauth2/google\ngolang.org/x/oauth2/google/externalaccount\ngolang.org/x/oauth2/google/internal/externalaccountauthorizeduser\ngolang.org/x/oauth2/google/internal/impersonate\ngolang.org/x/oauth2/google/internal/stsexchange\ngolang.org/x/oauth2/internal\ngolang.org/x/oauth2/jws\ngolang.org/x/oauth2/jwt\n# golang.org/x/sync v0.8.0\n## explicit; go 1.18\ngolang.org/x/sync/errgroup\ngolang.org/x/sync/semaphore\n# golang.org/x/sys v0.26.0\n## explicit; go 1.18\ngolang.org/x/sys/cpu\ngolang.org/x/sys/execabs\ngolang.org/x/sys/plan9\ngolang.org/x/sys/unix\ngolang.org/x/sys/windows\ngolang.org/x/sys/windows/registry\n# golang.org/x/term v0.25.0\n## explicit; go 1.18\ngolang.org/x/term\n# golang.org/x/text v0.19.0\n## explicit; go 1.18\ngolang.org/x/text/cases\ngolang.org/x/text/collate\ngolang.org/x/text/encoding\ngolang.org/x/text/encoding/internal\ngolang.org/x/text/encoding/internal/identifier\ngolang.org/x/text/encoding/unicode\ngolang.org/x/text/internal\ngolang.org/x/text/internal/colltab\ngolang.org/x/text/internal/language\ngolang.org/x/text/internal/language/compact\ngolang.org/x/text/internal/tag\ngolang.org/x/text/internal/utf8internal\ngolang.org/x/text/language\ngolang.org/x/text/runes\ngolang.org/x/text/secure/bidirule\ngolang.org/x/text/transform\ngolang.org/x/text/unicode/bidi\ngolang.org/x/text/unicode/norm\ngolang.org/x/text/unicode/rangetable\n# golang.org/x/time v0.5.0\n## explicit; go 1.18\ngolang.org/x/time/rate\n# golang.org/x/tools v0.22.0\n## explicit; go 1.19\ngolang.org/x/tools/cmd/stringer\ngolang.org/x/tools/go/gcexportdata\ngolang.org/x/tools/go/internal/packagesdriver\ngolang.org/x/tools/go/packages\ngolang.org/x/tools/go/types/objectpath\ngolang.org/x/tools/internal/aliases\ngolang.org/x/tools/internal/event\ngolang.org/x/tools/internal/event/core\ngolang.org/x/tools/internal/event/keys\ngolang.org/x/tools/internal/event/label\ngolang.org/x/tools/internal/gcimporter\ngolang.org/x/tools/internal/gocommand\ngolang.org/x/tools/internal/packagesinternal\ngolang.org/x/tools/internal/pkgbits\ngolang.org/x/tools/internal/stdlib\ngolang.org/x/tools/internal/tokeninternal\ngolang.org/x/tools/internal/typesinternal\ngolang.org/x/tools/internal/versions\n# google.golang.org/api v0.186.0\n## explicit; go 1.20\ngoogle.golang.org/api/googleapi\ngoogle.golang.org/api/googleapi/transport\ngoogle.golang.org/api/iamcredentials/v1\ngoogle.golang.org/api/internal\ngoogle.golang.org/api/internal/cert\ngoogle.golang.org/api/internal/gensupport\ngoogle.golang.org/api/internal/impersonate\ngoogle.golang.org/api/internal/third_party/uritemplates\ngoogle.golang.org/api/iterator\ngoogle.golang.org/api/option\ngoogle.golang.org/api/option/internaloption\ngoogle.golang.org/api/storage/v1\ngoogle.golang.org/api/transport\ngoogle.golang.org/api/transport/grpc\ngoogle.golang.org/api/transport/http\ngoogle.golang.org/api/transport/http/internal/propagation\n# google.golang.org/genproto v0.0.0-20240701130421-f6361c86f094\n## explicit; go 1.20\ngoogle.golang.org/genproto/googleapis/type/date\ngoogle.golang.org/genproto/googleapis/type/expr\ngoogle.golang.org/genproto/protobuf/field_mask\n# google.golang.org/genproto/googleapis/api v0.0.0-20240814211410-ddb44dafa142\n## explicit; go 1.21\ngoogle.golang.org/genproto/googleapis/api\ngoogle.golang.org/genproto/googleapis/api/annotations\ngoogle.golang.org/genproto/googleapis/api/httpbody\n# google.golang.org/genproto/googleapis/rpc v0.0.0-20240814211410-ddb44dafa142\n## explicit; go 1.21\ngoogle.golang.org/genproto/googleapis/rpc/code\ngoogle.golang.org/genproto/googleapis/rpc/errdetails\ngoogle.golang.org/genproto/googleapis/rpc/status\n# google.golang.org/grpc v1.67.1\n## explicit; go 1.21\ngoogle.golang.org/grpc\ngoogle.golang.org/grpc/attributes\ngoogle.golang.org/grpc/backoff\ngoogle.golang.org/grpc/balancer\ngoogle.golang.org/grpc/balancer/base\ngoogle.golang.org/grpc/balancer/grpclb\ngoogle.golang.org/grpc/balancer/grpclb/grpc_lb_v1\ngoogle.golang.org/grpc/balancer/grpclb/state\ngoogle.golang.org/grpc/balancer/pickfirst\ngoogle.golang.org/grpc/balancer/roundrobin\ngoogle.golang.org/grpc/binarylog/grpc_binarylog_v1\ngoogle.golang.org/grpc/channelz\ngoogle.golang.org/grpc/codes\ngoogle.golang.org/grpc/connectivity\ngoogle.golang.org/grpc/credentials\ngoogle.golang.org/grpc/credentials/alts\ngoogle.golang.org/grpc/credentials/alts/internal\ngoogle.golang.org/grpc/credentials/alts/internal/authinfo\ngoogle.golang.org/grpc/credentials/alts/internal/conn\ngoogle.golang.org/grpc/credentials/alts/internal/handshaker\ngoogle.golang.org/grpc/credentials/alts/internal/handshaker/service\ngoogle.golang.org/grpc/credentials/alts/internal/proto/grpc_gcp\ngoogle.golang.org/grpc/credentials/google\ngoogle.golang.org/grpc/credentials/insecure\ngoogle.golang.org/grpc/credentials/oauth\ngoogle.golang.org/grpc/encoding\ngoogle.golang.org/grpc/encoding/proto\ngoogle.golang.org/grpc/experimental/stats\ngoogle.golang.org/grpc/grpclog\ngoogle.golang.org/grpc/grpclog/internal\ngoogle.golang.org/grpc/health\ngoogle.golang.org/grpc/health/grpc_health_v1\ngoogle.golang.org/grpc/internal\ngoogle.golang.org/grpc/internal/backoff\ngoogle.golang.org/grpc/internal/balancer/gracefulswitch\ngoogle.golang.org/grpc/internal/balancerload\ngoogle.golang.org/grpc/internal/binarylog\ngoogle.golang.org/grpc/internal/buffer\ngoogle.golang.org/grpc/internal/channelz\ngoogle.golang.org/grpc/internal/credentials\ngoogle.golang.org/grpc/internal/envconfig\ngoogle.golang.org/grpc/internal/googlecloud\ngoogle.golang.org/grpc/internal/grpclog\ngoogle.golang.org/grpc/internal/grpcsync\ngoogle.golang.org/grpc/internal/grpcutil\ngoogle.golang.org/grpc/internal/idle\ngoogle.golang.org/grpc/internal/metadata\ngoogle.golang.org/grpc/internal/pretty\ngoogle.golang.org/grpc/internal/resolver\ngoogle.golang.org/grpc/internal/resolver/dns\ngoogle.golang.org/grpc/internal/resolver/dns/internal\ngoogle.golang.org/grpc/internal/resolver/passthrough\ngoogle.golang.org/grpc/internal/resolver/unix\ngoogle.golang.org/grpc/internal/serviceconfig\ngoogle.golang.org/grpc/internal/stats\ngoogle.golang.org/grpc/internal/status\ngoogle.golang.org/grpc/internal/syscall\ngoogle.golang.org/grpc/internal/transport\ngoogle.golang.org/grpc/internal/transport/networktype\ngoogle.golang.org/grpc/internal/xds\ngoogle.golang.org/grpc/keepalive\ngoogle.golang.org/grpc/mem\ngoogle.golang.org/grpc/metadata\ngoogle.golang.org/grpc/peer\ngoogle.golang.org/grpc/reflection\ngoogle.golang.org/grpc/reflection/grpc_reflection_v1\ngoogle.golang.org/grpc/reflection/grpc_reflection_v1alpha\ngoogle.golang.org/grpc/reflection/internal\ngoogle.golang.org/grpc/resolver\ngoogle.golang.org/grpc/resolver/dns\ngoogle.golang.org/grpc/resolver/manual\ngoogle.golang.org/grpc/serviceconfig\ngoogle.golang.org/grpc/stats\ngoogle.golang.org/grpc/status\ngoogle.golang.org/grpc/tap\n# google.golang.org/protobuf v1.35.1\n## explicit; go 1.21\ngoogle.golang.org/protobuf/encoding/protodelim\ngoogle.golang.org/protobuf/encoding/protojson\ngoogle.golang.org/protobuf/encoding/prototext\ngoogle.golang.org/protobuf/encoding/protowire\ngoogle.golang.org/protobuf/internal/descfmt\ngoogle.golang.org/protobuf/internal/descopts\ngoogle.golang.org/protobuf/internal/detrand\ngoogle.golang.org/protobuf/internal/editiondefaults\ngoogle.golang.org/protobuf/internal/editionssupport\ngoogle.golang.org/protobuf/internal/encoding/defval\ngoogle.golang.org/protobuf/internal/encoding/json\ngoogle.golang.org/protobuf/internal/encoding/messageset\ngoogle.golang.org/protobuf/internal/encoding/tag\ngoogle.golang.org/protobuf/internal/encoding/text\ngoogle.golang.org/protobuf/internal/errors\ngoogle.golang.org/protobuf/internal/filedesc\ngoogle.golang.org/protobuf/internal/filetype\ngoogle.golang.org/protobuf/internal/flags\ngoogle.golang.org/protobuf/internal/genid\ngoogle.golang.org/protobuf/internal/impl\ngoogle.golang.org/protobuf/internal/msgfmt\ngoogle.golang.org/protobuf/internal/order\ngoogle.golang.org/protobuf/internal/pragma\ngoogle.golang.org/protobuf/internal/set\ngoogle.golang.org/protobuf/internal/strs\ngoogle.golang.org/protobuf/internal/version\ngoogle.golang.org/protobuf/proto\ngoogle.golang.org/protobuf/protoadapt\ngoogle.golang.org/protobuf/reflect/protodesc\ngoogle.golang.org/protobuf/reflect/protoreflect\ngoogle.golang.org/protobuf/reflect/protoregistry\ngoogle.golang.org/protobuf/runtime/protoiface\ngoogle.golang.org/protobuf/runtime/protoimpl\ngoogle.golang.org/protobuf/testing/protocmp\ngoogle.golang.org/protobuf/types/descriptorpb\ngoogle.golang.org/protobuf/types/dynamicpb\ngoogle.golang.org/protobuf/types/gofeaturespb\ngoogle.golang.org/protobuf/types/known/anypb\ngoogle.golang.org/protobuf/types/known/durationpb\ngoogle.golang.org/protobuf/types/known/emptypb\ngoogle.golang.org/protobuf/types/known/fieldmaskpb\ngoogle.golang.org/protobuf/types/known/timestamppb\ngoogle.golang.org/protobuf/types/known/wrapperspb\n# gopkg.in/ini.v1 v1.67.0\n## explicit\ngopkg.in/ini.v1\n# gopkg.in/natefinch/npipe.v2 v2.0.0-20160621034901-c1b8fa8bdcce\n## explicit\ngopkg.in/natefinch/npipe.v2\n# gopkg.in/yaml.v2 v2.4.0\n## explicit; go 1.15\ngopkg.in/yaml.v2\n# gopkg.in/yaml.v3 v3.0.1\n## explicit\ngopkg.in/yaml.v3\n# gotest.tools/v3 v3.5.1\n## explicit; go 1.17\ngotest.tools/v3/assert\ngotest.tools/v3/assert/cmp\ngotest.tools/v3/internal/assert\ngotest.tools/v3/internal/difflib\ngotest.tools/v3/internal/format\ngotest.tools/v3/internal/source\n# nhooyr.io/websocket v1.8.10\n## explicit; go 1.19\nnhooyr.io/websocket\nnhooyr.io/websocket/internal/bpool\nnhooyr.io/websocket/internal/errd\nnhooyr.io/websocket/internal/util\nnhooyr.io/websocket/internal/wsjs\nnhooyr.io/websocket/internal/xsync\n# pgregory.net/rapid v1.1.0\n## explicit; go 1.18\npgregory.net/rapid\n# sigs.k8s.io/yaml v1.4.0\n## explicit; go 1.12\nsigs.k8s.io/yaml\nsigs.k8s.io/yaml/goyaml.v2\n# cosmossdk.io/store => github.com/crypto-org-chain/cosmos-sdk/store v0.0.0-20241018012743-d78d66e74712\n# cosmossdk.io/x/tx => github.com/crypto-org-chain/cosmos-sdk/x/tx v0.0.0-20241018012743-d78d66e74712\n# github.com/cosmos/cosmos-sdk => github.com/crypto-org-chain/cosmos-sdk v0.50.6-0.20241101065553-a70c19a03a81\n# github.com/crypto-org-chain/cronos/memiavl => ./memiavl\n# github.com/crypto-org-chain/cronos/store => ./store\n# github.com/crypto-org-chain/cronos/versiondb => ./versiondb\n# github.com/99designs/keyring => github.com/cosmos/keyring v1.2.0\n# github.com/cometbft/cometbft => github.com/crypto-org-chain/cometbft v0.0.0-20241106091515-ce418f845d9a\n# github.com/dgrijalva/jwt-go => github.com/golang-jwt/jwt/v4 v4.4.2\n# github.com/ethereum/go-ethereum => github.com/crypto-org-chain/go-ethereum v1.10.20-0.20240926023215-d2275b4afb9a\n# github.com/evmos/ethermint => github.com/crypto-org-chain/ethermint v0.6.1-0.20241108020006-836617d21619\n# github.com/gin-gonic/gin => github.com/gin-gonic/gin v1.9.0\n# github.com/jhump/protoreflect => github.com/jhump/protoreflect v1.9.0\n# github.com/syndtr/goleveldb => github.com/syndtr/goleveldb v1.0.1-0.20210819022825-2ae1ddf74ef7\n# github.com/tidwall/btree => github.com/crypto-org-chain/btree v0.0.0-20240406140148-2687063b042c\n" +vendorModulesTxt = "# cloud.google.com/go v0.115.0\n## explicit; go 1.20\ncloud.google.com/go/internal\ncloud.google.com/go/internal/optional\ncloud.google.com/go/internal/trace\ncloud.google.com/go/internal/version\n# cloud.google.com/go/auth v0.6.0\n## explicit; go 1.20\ncloud.google.com/go/auth\ncloud.google.com/go/auth/credentials\ncloud.google.com/go/auth/credentials/internal/externalaccount\ncloud.google.com/go/auth/credentials/internal/externalaccountuser\ncloud.google.com/go/auth/credentials/internal/gdch\ncloud.google.com/go/auth/credentials/internal/impersonate\ncloud.google.com/go/auth/credentials/internal/stsexchange\ncloud.google.com/go/auth/grpctransport\ncloud.google.com/go/auth/httptransport\ncloud.google.com/go/auth/internal\ncloud.google.com/go/auth/internal/credsfile\ncloud.google.com/go/auth/internal/jwt\ncloud.google.com/go/auth/internal/transport\ncloud.google.com/go/auth/internal/transport/cert\n# cloud.google.com/go/auth/oauth2adapt v0.2.2\n## explicit; go 1.19\ncloud.google.com/go/auth/oauth2adapt\n# cloud.google.com/go/compute/metadata v0.5.0\n## explicit; go 1.20\ncloud.google.com/go/compute/metadata\n# cloud.google.com/go/iam v1.1.9\n## explicit; go 1.20\ncloud.google.com/go/iam\ncloud.google.com/go/iam/apiv1/iampb\n# cloud.google.com/go/storage v1.41.0\n## explicit; go 1.19\ncloud.google.com/go/storage\ncloud.google.com/go/storage/internal\ncloud.google.com/go/storage/internal/apiv2\ncloud.google.com/go/storage/internal/apiv2/storagepb\n# cosmossdk.io/api v0.7.6\n## explicit; go 1.20\ncosmossdk.io/api/amino\ncosmossdk.io/api/cosmos/app/runtime/v1alpha1\ncosmossdk.io/api/cosmos/app/v1alpha1\ncosmossdk.io/api/cosmos/auth/module/v1\ncosmossdk.io/api/cosmos/auth/v1beta1\ncosmossdk.io/api/cosmos/authz/module/v1\ncosmossdk.io/api/cosmos/authz/v1beta1\ncosmossdk.io/api/cosmos/autocli/v1\ncosmossdk.io/api/cosmos/bank/module/v1\ncosmossdk.io/api/cosmos/bank/v1beta1\ncosmossdk.io/api/cosmos/base/abci/v1beta1\ncosmossdk.io/api/cosmos/base/query/v1beta1\ncosmossdk.io/api/cosmos/base/reflection/v1beta1\ncosmossdk.io/api/cosmos/base/tendermint/v1beta1\ncosmossdk.io/api/cosmos/base/v1beta1\ncosmossdk.io/api/cosmos/consensus/module/v1\ncosmossdk.io/api/cosmos/consensus/v1\ncosmossdk.io/api/cosmos/crisis/module/v1\ncosmossdk.io/api/cosmos/crisis/v1beta1\ncosmossdk.io/api/cosmos/crypto/ed25519\ncosmossdk.io/api/cosmos/crypto/multisig\ncosmossdk.io/api/cosmos/crypto/multisig/v1beta1\ncosmossdk.io/api/cosmos/crypto/secp256k1\ncosmossdk.io/api/cosmos/crypto/secp256r1\ncosmossdk.io/api/cosmos/distribution/module/v1\ncosmossdk.io/api/cosmos/distribution/v1beta1\ncosmossdk.io/api/cosmos/evidence/module/v1\ncosmossdk.io/api/cosmos/evidence/v1beta1\ncosmossdk.io/api/cosmos/feegrant/module/v1\ncosmossdk.io/api/cosmos/feegrant/v1beta1\ncosmossdk.io/api/cosmos/genutil/module/v1\ncosmossdk.io/api/cosmos/gov/module/v1\ncosmossdk.io/api/cosmos/gov/v1\ncosmossdk.io/api/cosmos/mint/module/v1\ncosmossdk.io/api/cosmos/mint/v1beta1\ncosmossdk.io/api/cosmos/msg/v1\ncosmossdk.io/api/cosmos/params/module/v1\ncosmossdk.io/api/cosmos/params/v1beta1\ncosmossdk.io/api/cosmos/query/v1\ncosmossdk.io/api/cosmos/reflection/v1\ncosmossdk.io/api/cosmos/slashing/module/v1\ncosmossdk.io/api/cosmos/slashing/v1beta1\ncosmossdk.io/api/cosmos/staking/module/v1\ncosmossdk.io/api/cosmos/staking/v1beta1\ncosmossdk.io/api/cosmos/tx/config/v1\ncosmossdk.io/api/cosmos/tx/signing/v1beta1\ncosmossdk.io/api/cosmos/tx/v1beta1\ncosmossdk.io/api/cosmos/upgrade/module/v1\ncosmossdk.io/api/cosmos/upgrade/v1beta1\ncosmossdk.io/api/cosmos/vesting/module/v1\ncosmossdk.io/api/cosmos/vesting/v1beta1\ncosmossdk.io/api/tendermint/abci\ncosmossdk.io/api/tendermint/crypto\ncosmossdk.io/api/tendermint/p2p\ncosmossdk.io/api/tendermint/types\ncosmossdk.io/api/tendermint/version\n# cosmossdk.io/client/v2 v2.0.0-beta.5\n## explicit; go 1.21\ncosmossdk.io/client/v2/autocli\ncosmossdk.io/client/v2/autocli/flag\ncosmossdk.io/client/v2/autocli/flag/maps\ncosmossdk.io/client/v2/autocli/keyring\ncosmossdk.io/client/v2/internal/flags\ncosmossdk.io/client/v2/internal/strcase\ncosmossdk.io/client/v2/internal/util\n# cosmossdk.io/collections v0.4.0\n## explicit; go 1.20\ncosmossdk.io/collections\ncosmossdk.io/collections/codec\ncosmossdk.io/collections/indexes\n# cosmossdk.io/core v0.11.1\n## explicit; go 1.20\ncosmossdk.io/core/address\ncosmossdk.io/core/appmodule\ncosmossdk.io/core/coins\ncosmossdk.io/core/comet\ncosmossdk.io/core/event\ncosmossdk.io/core/genesis\ncosmossdk.io/core/header\ncosmossdk.io/core/store\n# cosmossdk.io/depinject v1.0.0\n## explicit; go 1.20\ncosmossdk.io/depinject\ncosmossdk.io/depinject/appconfig\ncosmossdk.io/depinject/appconfig/v1alpha1\ncosmossdk.io/depinject/internal/appconfig\ncosmossdk.io/depinject/internal/graphviz\ncosmossdk.io/depinject/internal/util\n# cosmossdk.io/errors v1.0.1\n## explicit; go 1.20\ncosmossdk.io/errors\n# cosmossdk.io/log v1.4.1\n## explicit; go 1.20\ncosmossdk.io/log\n# cosmossdk.io/math v1.3.0\n## explicit; go 1.20\ncosmossdk.io/math\ncosmossdk.io/math/unsafe\n# cosmossdk.io/simapp v0.0.0-20230608160436-666c345ad23d\n## explicit; go 1.19\ncosmossdk.io/simapp/params\n# cosmossdk.io/store v1.1.1 => github.com/crypto-org-chain/cosmos-sdk/store v0.0.0-20241018012743-d78d66e74712\n## explicit; go 1.21\ncosmossdk.io/store\ncosmossdk.io/store/cache\ncosmossdk.io/store/cachekv\ncosmossdk.io/store/cachekv/internal\ncosmossdk.io/store/cachemulti\ncosmossdk.io/store/dbadapter\ncosmossdk.io/store/gaskv\ncosmossdk.io/store/iavl\ncosmossdk.io/store/internal\ncosmossdk.io/store/internal/btree\ncosmossdk.io/store/internal/kv\ncosmossdk.io/store/internal/maps\ncosmossdk.io/store/internal/proofs\ncosmossdk.io/store/internal/tree\ncosmossdk.io/store/listenkv\ncosmossdk.io/store/mem\ncosmossdk.io/store/metrics\ncosmossdk.io/store/prefix\ncosmossdk.io/store/pruning\ncosmossdk.io/store/pruning/types\ncosmossdk.io/store/rootmulti\ncosmossdk.io/store/snapshots\ncosmossdk.io/store/snapshots/types\ncosmossdk.io/store/streaming\ncosmossdk.io/store/streaming/abci\ncosmossdk.io/store/tracekv\ncosmossdk.io/store/transient\ncosmossdk.io/store/types\ncosmossdk.io/store/wrapper\n# cosmossdk.io/tools/confix v0.1.2\n## explicit; go 1.21\ncosmossdk.io/tools/confix\ncosmossdk.io/tools/confix/cmd\n# cosmossdk.io/x/evidence v0.1.1\n## explicit; go 1.21\ncosmossdk.io/x/evidence\ncosmossdk.io/x/evidence/client\ncosmossdk.io/x/evidence/client/cli\ncosmossdk.io/x/evidence/exported\ncosmossdk.io/x/evidence/keeper\ncosmossdk.io/x/evidence/simulation\ncosmossdk.io/x/evidence/types\n# cosmossdk.io/x/feegrant v0.1.1\n## explicit; go 1.21\ncosmossdk.io/x/feegrant\ncosmossdk.io/x/feegrant/client/cli\ncosmossdk.io/x/feegrant/keeper\ncosmossdk.io/x/feegrant/migrations/v2\ncosmossdk.io/x/feegrant/module\ncosmossdk.io/x/feegrant/simulation\n# cosmossdk.io/x/tx v0.13.6-0.20241003112805-ff8789a02871 => github.com/crypto-org-chain/cosmos-sdk/x/tx v0.0.0-20241018012743-d78d66e74712\n## explicit; go 1.21\ncosmossdk.io/x/tx/decode\ncosmossdk.io/x/tx/signing\ncosmossdk.io/x/tx/signing/aminojson\ncosmossdk.io/x/tx/signing/aminojson/internal/aminojsonpb\ncosmossdk.io/x/tx/signing/direct\ncosmossdk.io/x/tx/signing/directaux\ncosmossdk.io/x/tx/signing/textual\ncosmossdk.io/x/tx/signing/textual/internal/cbor\ncosmossdk.io/x/tx/signing/textual/internal/textualpb\n# cosmossdk.io/x/upgrade v0.1.4\n## explicit; go 1.21\ncosmossdk.io/x/upgrade\ncosmossdk.io/x/upgrade/client/cli\ncosmossdk.io/x/upgrade/exported\ncosmossdk.io/x/upgrade/internal/conv\ncosmossdk.io/x/upgrade/keeper\ncosmossdk.io/x/upgrade/plan\ncosmossdk.io/x/upgrade/types\n# filippo.io/age v1.1.1\n## explicit; go 1.19\nfilippo.io/age\nfilippo.io/age/internal/bech32\nfilippo.io/age/internal/format\nfilippo.io/age/internal/stream\n# filippo.io/edwards25519 v1.1.0\n## explicit; go 1.20\nfilippo.io/edwards25519\nfilippo.io/edwards25519/field\n# github.com/99designs/go-keychain v0.0.0-20191008050251-8e49817e8af4\n## explicit\ngithub.com/99designs/go-keychain\n# github.com/99designs/keyring v1.2.2 => github.com/cosmos/keyring v1.2.0\n## explicit; go 1.17\ngithub.com/99designs/keyring\n# github.com/DataDog/datadog-go v4.8.3+incompatible\n## explicit\ngithub.com/DataDog/datadog-go/statsd\n# github.com/DataDog/zstd v1.5.5\n## explicit; go 1.14\ngithub.com/DataDog/zstd\n# github.com/Microsoft/go-winio v0.6.1\n## explicit; go 1.17\ngithub.com/Microsoft/go-winio\ngithub.com/Microsoft/go-winio/internal/fs\ngithub.com/Microsoft/go-winio/internal/socket\ngithub.com/Microsoft/go-winio/internal/stringbuffer\ngithub.com/Microsoft/go-winio/pkg/guid\n# github.com/StackExchange/wmi v0.0.0-20180116203802-5d049714c4a6\n## explicit\ngithub.com/StackExchange/wmi\n# github.com/VictoriaMetrics/fastcache v1.6.0\n## explicit; go 1.13\ngithub.com/VictoriaMetrics/fastcache\n# github.com/alitto/pond v1.8.3\n## explicit; go 1.19\ngithub.com/alitto/pond\n# github.com/aws/aws-sdk-go v1.44.224\n## explicit; go 1.11\ngithub.com/aws/aws-sdk-go/aws\ngithub.com/aws/aws-sdk-go/aws/arn\ngithub.com/aws/aws-sdk-go/aws/awserr\ngithub.com/aws/aws-sdk-go/aws/awsutil\ngithub.com/aws/aws-sdk-go/aws/client\ngithub.com/aws/aws-sdk-go/aws/client/metadata\ngithub.com/aws/aws-sdk-go/aws/corehandlers\ngithub.com/aws/aws-sdk-go/aws/credentials\ngithub.com/aws/aws-sdk-go/aws/credentials/ec2rolecreds\ngithub.com/aws/aws-sdk-go/aws/credentials/endpointcreds\ngithub.com/aws/aws-sdk-go/aws/credentials/processcreds\ngithub.com/aws/aws-sdk-go/aws/credentials/ssocreds\ngithub.com/aws/aws-sdk-go/aws/credentials/stscreds\ngithub.com/aws/aws-sdk-go/aws/csm\ngithub.com/aws/aws-sdk-go/aws/defaults\ngithub.com/aws/aws-sdk-go/aws/ec2metadata\ngithub.com/aws/aws-sdk-go/aws/endpoints\ngithub.com/aws/aws-sdk-go/aws/request\ngithub.com/aws/aws-sdk-go/aws/session\ngithub.com/aws/aws-sdk-go/aws/signer/v4\ngithub.com/aws/aws-sdk-go/internal/context\ngithub.com/aws/aws-sdk-go/internal/ini\ngithub.com/aws/aws-sdk-go/internal/s3shared\ngithub.com/aws/aws-sdk-go/internal/s3shared/arn\ngithub.com/aws/aws-sdk-go/internal/s3shared/s3err\ngithub.com/aws/aws-sdk-go/internal/sdkio\ngithub.com/aws/aws-sdk-go/internal/sdkmath\ngithub.com/aws/aws-sdk-go/internal/sdkrand\ngithub.com/aws/aws-sdk-go/internal/sdkuri\ngithub.com/aws/aws-sdk-go/internal/shareddefaults\ngithub.com/aws/aws-sdk-go/internal/strings\ngithub.com/aws/aws-sdk-go/internal/sync/singleflight\ngithub.com/aws/aws-sdk-go/private/checksum\ngithub.com/aws/aws-sdk-go/private/protocol\ngithub.com/aws/aws-sdk-go/private/protocol/eventstream\ngithub.com/aws/aws-sdk-go/private/protocol/eventstream/eventstreamapi\ngithub.com/aws/aws-sdk-go/private/protocol/json/jsonutil\ngithub.com/aws/aws-sdk-go/private/protocol/jsonrpc\ngithub.com/aws/aws-sdk-go/private/protocol/query\ngithub.com/aws/aws-sdk-go/private/protocol/query/queryutil\ngithub.com/aws/aws-sdk-go/private/protocol/rest\ngithub.com/aws/aws-sdk-go/private/protocol/restjson\ngithub.com/aws/aws-sdk-go/private/protocol/restxml\ngithub.com/aws/aws-sdk-go/private/protocol/xml/xmlutil\ngithub.com/aws/aws-sdk-go/service/s3\ngithub.com/aws/aws-sdk-go/service/sso\ngithub.com/aws/aws-sdk-go/service/sso/ssoiface\ngithub.com/aws/aws-sdk-go/service/sts\ngithub.com/aws/aws-sdk-go/service/sts/stsiface\n# github.com/beorn7/perks v1.0.1\n## explicit; go 1.11\ngithub.com/beorn7/perks/quantile\n# github.com/bgentry/go-netrc v0.0.0-20140422174119-9fd32a8b3d3d\n## explicit\ngithub.com/bgentry/go-netrc/netrc\n# github.com/bgentry/speakeasy v0.1.1-0.20220910012023-760eaf8b6816\n## explicit\ngithub.com/bgentry/speakeasy\n# github.com/bits-and-blooms/bitset v1.8.0\n## explicit; go 1.16\ngithub.com/bits-and-blooms/bitset\n# github.com/btcsuite/btcd v0.24.2\n## explicit; go 1.17\ngithub.com/btcsuite/btcd/chaincfg\ngithub.com/btcsuite/btcd/wire\n# github.com/btcsuite/btcd/btcec/v2 v2.3.4\n## explicit; go 1.17\ngithub.com/btcsuite/btcd/btcec/v2\ngithub.com/btcsuite/btcd/btcec/v2/ecdsa\n# github.com/btcsuite/btcd/btcutil v1.1.6\n## explicit; go 1.16\ngithub.com/btcsuite/btcd/btcutil\ngithub.com/btcsuite/btcd/btcutil/base58\ngithub.com/btcsuite/btcd/btcutil/bech32\ngithub.com/btcsuite/btcd/btcutil/hdkeychain\n# github.com/btcsuite/btcd/chaincfg/chainhash v1.1.0\n## explicit; go 1.17\ngithub.com/btcsuite/btcd/chaincfg/chainhash\n# github.com/cenkalti/backoff/v4 v4.2.1\n## explicit; go 1.18\ngithub.com/cenkalti/backoff/v4\n# github.com/cespare/xxhash/v2 v2.3.0\n## explicit; go 1.11\ngithub.com/cespare/xxhash/v2\n# github.com/chzyer/readline v1.5.1\n## explicit; go 1.15\ngithub.com/chzyer/readline\n# github.com/cockroachdb/apd/v2 v2.0.2\n## explicit\ngithub.com/cockroachdb/apd/v2\n# github.com/cockroachdb/errors v1.11.3\n## explicit; go 1.19\ngithub.com/cockroachdb/errors\ngithub.com/cockroachdb/errors/assert\ngithub.com/cockroachdb/errors/barriers\ngithub.com/cockroachdb/errors/contexttags\ngithub.com/cockroachdb/errors/domains\ngithub.com/cockroachdb/errors/errbase\ngithub.com/cockroachdb/errors/errorspb\ngithub.com/cockroachdb/errors/errutil\ngithub.com/cockroachdb/errors/hintdetail\ngithub.com/cockroachdb/errors/issuelink\ngithub.com/cockroachdb/errors/join\ngithub.com/cockroachdb/errors/markers\ngithub.com/cockroachdb/errors/oserror\ngithub.com/cockroachdb/errors/report\ngithub.com/cockroachdb/errors/safedetails\ngithub.com/cockroachdb/errors/secondary\ngithub.com/cockroachdb/errors/stdstrings\ngithub.com/cockroachdb/errors/telemetrykeys\ngithub.com/cockroachdb/errors/withstack\n# github.com/cockroachdb/fifo v0.0.0-20240606204812-0bbfbd93a7ce\n## explicit; go 1.20\ngithub.com/cockroachdb/fifo\n# github.com/cockroachdb/logtags v0.0.0-20230118201751-21c54148d20b\n## explicit; go 1.16\ngithub.com/cockroachdb/logtags\n# github.com/cockroachdb/pebble v1.1.2\n## explicit; go 1.20\ngithub.com/cockroachdb/pebble\ngithub.com/cockroachdb/pebble/bloom\ngithub.com/cockroachdb/pebble/internal/arenaskl\ngithub.com/cockroachdb/pebble/internal/base\ngithub.com/cockroachdb/pebble/internal/batchskl\ngithub.com/cockroachdb/pebble/internal/bytealloc\ngithub.com/cockroachdb/pebble/internal/cache\ngithub.com/cockroachdb/pebble/internal/constants\ngithub.com/cockroachdb/pebble/internal/crc\ngithub.com/cockroachdb/pebble/internal/fastrand\ngithub.com/cockroachdb/pebble/internal/humanize\ngithub.com/cockroachdb/pebble/internal/intern\ngithub.com/cockroachdb/pebble/internal/invalidating\ngithub.com/cockroachdb/pebble/internal/invariants\ngithub.com/cockroachdb/pebble/internal/keyspan\ngithub.com/cockroachdb/pebble/internal/manifest\ngithub.com/cockroachdb/pebble/internal/manual\ngithub.com/cockroachdb/pebble/internal/private\ngithub.com/cockroachdb/pebble/internal/rangedel\ngithub.com/cockroachdb/pebble/internal/rangekey\ngithub.com/cockroachdb/pebble/internal/rawalloc\ngithub.com/cockroachdb/pebble/internal/testkeys\ngithub.com/cockroachdb/pebble/objstorage\ngithub.com/cockroachdb/pebble/objstorage/objstorageprovider\ngithub.com/cockroachdb/pebble/objstorage/objstorageprovider/objiotracing\ngithub.com/cockroachdb/pebble/objstorage/objstorageprovider/remoteobjcat\ngithub.com/cockroachdb/pebble/objstorage/objstorageprovider/sharedcache\ngithub.com/cockroachdb/pebble/objstorage/remote\ngithub.com/cockroachdb/pebble/rangekey\ngithub.com/cockroachdb/pebble/record\ngithub.com/cockroachdb/pebble/sstable\ngithub.com/cockroachdb/pebble/vfs\ngithub.com/cockroachdb/pebble/vfs/atomicfs\n# github.com/cockroachdb/redact v1.1.5\n## explicit; go 1.14\ngithub.com/cockroachdb/redact\ngithub.com/cockroachdb/redact/builder\ngithub.com/cockroachdb/redact/interfaces\ngithub.com/cockroachdb/redact/internal/buffer\ngithub.com/cockroachdb/redact/internal/escape\ngithub.com/cockroachdb/redact/internal/fmtforward\ngithub.com/cockroachdb/redact/internal/markers\ngithub.com/cockroachdb/redact/internal/redact\ngithub.com/cockroachdb/redact/internal/rfmt\ngithub.com/cockroachdb/redact/internal/rfmt/fmtsort\n# github.com/cockroachdb/tokenbucket v0.0.0-20230807174530-cc333fc44b06\n## explicit; go 1.19\ngithub.com/cockroachdb/tokenbucket\n# github.com/coinbase/rosetta-sdk-go/types v1.0.0\n## explicit; go 1.18\ngithub.com/coinbase/rosetta-sdk-go/types\n# github.com/cometbft/cometbft v0.38.15 => github.com/crypto-org-chain/cometbft v0.0.0-20241106091515-ce418f845d9a\n## explicit; go 1.23.1\ngithub.com/cometbft/cometbft/abci/client\ngithub.com/cometbft/cometbft/abci/example/kvstore\ngithub.com/cometbft/cometbft/abci/server\ngithub.com/cometbft/cometbft/abci/types\ngithub.com/cometbft/cometbft/blocksync\ngithub.com/cometbft/cometbft/cmd/cometbft/commands\ngithub.com/cometbft/cometbft/config\ngithub.com/cometbft/cometbft/consensus\ngithub.com/cometbft/cometbft/consensus/types\ngithub.com/cometbft/cometbft/crypto\ngithub.com/cometbft/cometbft/crypto/batch\ngithub.com/cometbft/cometbft/crypto/ed25519\ngithub.com/cometbft/cometbft/crypto/encoding\ngithub.com/cometbft/cometbft/crypto/merkle\ngithub.com/cometbft/cometbft/crypto/secp256k1\ngithub.com/cometbft/cometbft/crypto/sr25519\ngithub.com/cometbft/cometbft/crypto/tmhash\ngithub.com/cometbft/cometbft/evidence\ngithub.com/cometbft/cometbft/inspect\ngithub.com/cometbft/cometbft/inspect/rpc\ngithub.com/cometbft/cometbft/internal/indexer\ngithub.com/cometbft/cometbft/internal/test\ngithub.com/cometbft/cometbft/libs/async\ngithub.com/cometbft/cometbft/libs/autofile\ngithub.com/cometbft/cometbft/libs/bits\ngithub.com/cometbft/cometbft/libs/bytes\ngithub.com/cometbft/cometbft/libs/cli\ngithub.com/cometbft/cometbft/libs/cli/flags\ngithub.com/cometbft/cometbft/libs/clist\ngithub.com/cometbft/cometbft/libs/cmap\ngithub.com/cometbft/cometbft/libs/events\ngithub.com/cometbft/cometbft/libs/fail\ngithub.com/cometbft/cometbft/libs/flowrate\ngithub.com/cometbft/cometbft/libs/json\ngithub.com/cometbft/cometbft/libs/log\ngithub.com/cometbft/cometbft/libs/math\ngithub.com/cometbft/cometbft/libs/net\ngithub.com/cometbft/cometbft/libs/os\ngithub.com/cometbft/cometbft/libs/progressbar\ngithub.com/cometbft/cometbft/libs/protoio\ngithub.com/cometbft/cometbft/libs/pubsub\ngithub.com/cometbft/cometbft/libs/pubsub/query\ngithub.com/cometbft/cometbft/libs/pubsub/query/syntax\ngithub.com/cometbft/cometbft/libs/rand\ngithub.com/cometbft/cometbft/libs/service\ngithub.com/cometbft/cometbft/libs/strings\ngithub.com/cometbft/cometbft/libs/sync\ngithub.com/cometbft/cometbft/libs/tempfile\ngithub.com/cometbft/cometbft/libs/timer\ngithub.com/cometbft/cometbft/light\ngithub.com/cometbft/cometbft/light/provider\ngithub.com/cometbft/cometbft/light/provider/http\ngithub.com/cometbft/cometbft/light/proxy\ngithub.com/cometbft/cometbft/light/rpc\ngithub.com/cometbft/cometbft/light/store\ngithub.com/cometbft/cometbft/light/store/db\ngithub.com/cometbft/cometbft/mempool\ngithub.com/cometbft/cometbft/node\ngithub.com/cometbft/cometbft/p2p\ngithub.com/cometbft/cometbft/p2p/conn\ngithub.com/cometbft/cometbft/p2p/pex\ngithub.com/cometbft/cometbft/privval\ngithub.com/cometbft/cometbft/proto/tendermint/blocksync\ngithub.com/cometbft/cometbft/proto/tendermint/consensus\ngithub.com/cometbft/cometbft/proto/tendermint/crypto\ngithub.com/cometbft/cometbft/proto/tendermint/libs/bits\ngithub.com/cometbft/cometbft/proto/tendermint/mempool\ngithub.com/cometbft/cometbft/proto/tendermint/p2p\ngithub.com/cometbft/cometbft/proto/tendermint/privval\ngithub.com/cometbft/cometbft/proto/tendermint/state\ngithub.com/cometbft/cometbft/proto/tendermint/statesync\ngithub.com/cometbft/cometbft/proto/tendermint/store\ngithub.com/cometbft/cometbft/proto/tendermint/types\ngithub.com/cometbft/cometbft/proto/tendermint/version\ngithub.com/cometbft/cometbft/proxy\ngithub.com/cometbft/cometbft/rpc/client\ngithub.com/cometbft/cometbft/rpc/client/http\ngithub.com/cometbft/cometbft/rpc/client/local\ngithub.com/cometbft/cometbft/rpc/core\ngithub.com/cometbft/cometbft/rpc/core/types\ngithub.com/cometbft/cometbft/rpc/grpc\ngithub.com/cometbft/cometbft/rpc/jsonrpc/client\ngithub.com/cometbft/cometbft/rpc/jsonrpc/server\ngithub.com/cometbft/cometbft/rpc/jsonrpc/types\ngithub.com/cometbft/cometbft/state\ngithub.com/cometbft/cometbft/state/indexer\ngithub.com/cometbft/cometbft/state/indexer/block\ngithub.com/cometbft/cometbft/state/indexer/block/kv\ngithub.com/cometbft/cometbft/state/indexer/block/null\ngithub.com/cometbft/cometbft/state/indexer/sink/psql\ngithub.com/cometbft/cometbft/state/txindex\ngithub.com/cometbft/cometbft/state/txindex/kv\ngithub.com/cometbft/cometbft/state/txindex/null\ngithub.com/cometbft/cometbft/statesync\ngithub.com/cometbft/cometbft/store\ngithub.com/cometbft/cometbft/test/e2e/app\ngithub.com/cometbft/cometbft/types\ngithub.com/cometbft/cometbft/types/time\ngithub.com/cometbft/cometbft/version\n# github.com/cometbft/cometbft-db v0.15.0\n## explicit; go 1.23.1\ngithub.com/cometbft/cometbft-db\n# github.com/cosmos/btcutil v1.0.5\n## explicit; go 1.19\ngithub.com/cosmos/btcutil/bech32\n# github.com/cosmos/cosmos-db v1.0.3-0.20240408151834-e75f6e4b28d8\n## explicit; go 1.19\ngithub.com/cosmos/cosmos-db\n# github.com/cosmos/cosmos-proto v1.0.0-beta.5\n## explicit; go 1.18\ngithub.com/cosmos/cosmos-proto\ngithub.com/cosmos/cosmos-proto/anyutil\ngithub.com/cosmos/cosmos-proto/runtime\n# github.com/cosmos/cosmos-sdk v0.50.9 => github.com/crypto-org-chain/cosmos-sdk v0.50.6-0.20241101065553-a70c19a03a81\n## explicit; go 1.21\ngithub.com/cosmos/cosmos-sdk/baseapp\ngithub.com/cosmos/cosmos-sdk/baseapp/internal/protocompat\ngithub.com/cosmos/cosmos-sdk/baseapp/oe\ngithub.com/cosmos/cosmos-sdk/client\ngithub.com/cosmos/cosmos-sdk/client/config\ngithub.com/cosmos/cosmos-sdk/client/debug\ngithub.com/cosmos/cosmos-sdk/client/docs\ngithub.com/cosmos/cosmos-sdk/client/flags\ngithub.com/cosmos/cosmos-sdk/client/grpc/cmtservice\ngithub.com/cosmos/cosmos-sdk/client/grpc/node\ngithub.com/cosmos/cosmos-sdk/client/grpc/reflection\ngithub.com/cosmos/cosmos-sdk/client/input\ngithub.com/cosmos/cosmos-sdk/client/keys\ngithub.com/cosmos/cosmos-sdk/client/pruning\ngithub.com/cosmos/cosmos-sdk/client/rpc\ngithub.com/cosmos/cosmos-sdk/client/snapshot\ngithub.com/cosmos/cosmos-sdk/client/tx\ngithub.com/cosmos/cosmos-sdk/codec\ngithub.com/cosmos/cosmos-sdk/codec/address\ngithub.com/cosmos/cosmos-sdk/codec/legacy\ngithub.com/cosmos/cosmos-sdk/codec/testutil\ngithub.com/cosmos/cosmos-sdk/codec/types\ngithub.com/cosmos/cosmos-sdk/codec/unknownproto\ngithub.com/cosmos/cosmos-sdk/crypto\ngithub.com/cosmos/cosmos-sdk/crypto/codec\ngithub.com/cosmos/cosmos-sdk/crypto/hd\ngithub.com/cosmos/cosmos-sdk/crypto/keyring\ngithub.com/cosmos/cosmos-sdk/crypto/keys/bcrypt\ngithub.com/cosmos/cosmos-sdk/crypto/keys/ed25519\ngithub.com/cosmos/cosmos-sdk/crypto/keys/internal/ecdsa\ngithub.com/cosmos/cosmos-sdk/crypto/keys/multisig\ngithub.com/cosmos/cosmos-sdk/crypto/keys/secp256k1\ngithub.com/cosmos/cosmos-sdk/crypto/keys/secp256k1/internal/secp256k1\ngithub.com/cosmos/cosmos-sdk/crypto/keys/secp256k1/internal/secp256k1/libsecp256k1/include\ngithub.com/cosmos/cosmos-sdk/crypto/keys/secp256k1/internal/secp256k1/libsecp256k1/src\ngithub.com/cosmos/cosmos-sdk/crypto/keys/secp256k1/internal/secp256k1/libsecp256k1/src/modules/recovery\ngithub.com/cosmos/cosmos-sdk/crypto/keys/secp256r1\ngithub.com/cosmos/cosmos-sdk/crypto/ledger\ngithub.com/cosmos/cosmos-sdk/crypto/types\ngithub.com/cosmos/cosmos-sdk/crypto/types/multisig\ngithub.com/cosmos/cosmos-sdk/crypto/xsalsa20symmetric\ngithub.com/cosmos/cosmos-sdk/internal/conv\ngithub.com/cosmos/cosmos-sdk/runtime\ngithub.com/cosmos/cosmos-sdk/runtime/services\ngithub.com/cosmos/cosmos-sdk/server\ngithub.com/cosmos/cosmos-sdk/server/api\ngithub.com/cosmos/cosmos-sdk/server/cmd\ngithub.com/cosmos/cosmos-sdk/server/config\ngithub.com/cosmos/cosmos-sdk/server/grpc\ngithub.com/cosmos/cosmos-sdk/server/grpc/gogoreflection\ngithub.com/cosmos/cosmos-sdk/server/grpc/reflection/v2alpha1\ngithub.com/cosmos/cosmos-sdk/server/log\ngithub.com/cosmos/cosmos-sdk/server/types\ngithub.com/cosmos/cosmos-sdk/std\ngithub.com/cosmos/cosmos-sdk/telemetry\ngithub.com/cosmos/cosmos-sdk/testutil\ngithub.com/cosmos/cosmos-sdk/testutil/mock\ngithub.com/cosmos/cosmos-sdk/testutil/sims\ngithub.com/cosmos/cosmos-sdk/testutil/testdata\ngithub.com/cosmos/cosmos-sdk/types\ngithub.com/cosmos/cosmos-sdk/types/address\ngithub.com/cosmos/cosmos-sdk/types/bech32\ngithub.com/cosmos/cosmos-sdk/types/bech32/legacybech32\ngithub.com/cosmos/cosmos-sdk/types/errors\ngithub.com/cosmos/cosmos-sdk/types/grpc\ngithub.com/cosmos/cosmos-sdk/types/kv\ngithub.com/cosmos/cosmos-sdk/types/mempool\ngithub.com/cosmos/cosmos-sdk/types/module\ngithub.com/cosmos/cosmos-sdk/types/module/testutil\ngithub.com/cosmos/cosmos-sdk/types/msgservice\ngithub.com/cosmos/cosmos-sdk/types/query\ngithub.com/cosmos/cosmos-sdk/types/registry\ngithub.com/cosmos/cosmos-sdk/types/simulation\ngithub.com/cosmos/cosmos-sdk/types/tx\ngithub.com/cosmos/cosmos-sdk/types/tx/amino\ngithub.com/cosmos/cosmos-sdk/types/tx/signing\ngithub.com/cosmos/cosmos-sdk/version\ngithub.com/cosmos/cosmos-sdk/x/auth\ngithub.com/cosmos/cosmos-sdk/x/auth/ante\ngithub.com/cosmos/cosmos-sdk/x/auth/client\ngithub.com/cosmos/cosmos-sdk/x/auth/client/cli\ngithub.com/cosmos/cosmos-sdk/x/auth/codec\ngithub.com/cosmos/cosmos-sdk/x/auth/exported\ngithub.com/cosmos/cosmos-sdk/x/auth/keeper\ngithub.com/cosmos/cosmos-sdk/x/auth/migrations/legacytx\ngithub.com/cosmos/cosmos-sdk/x/auth/migrations/v1\ngithub.com/cosmos/cosmos-sdk/x/auth/migrations/v2\ngithub.com/cosmos/cosmos-sdk/x/auth/migrations/v3\ngithub.com/cosmos/cosmos-sdk/x/auth/migrations/v4\ngithub.com/cosmos/cosmos-sdk/x/auth/migrations/v5\ngithub.com/cosmos/cosmos-sdk/x/auth/posthandler\ngithub.com/cosmos/cosmos-sdk/x/auth/signing\ngithub.com/cosmos/cosmos-sdk/x/auth/simulation\ngithub.com/cosmos/cosmos-sdk/x/auth/tx\ngithub.com/cosmos/cosmos-sdk/x/auth/tx/config\ngithub.com/cosmos/cosmos-sdk/x/auth/types\ngithub.com/cosmos/cosmos-sdk/x/auth/vesting\ngithub.com/cosmos/cosmos-sdk/x/auth/vesting/client/cli\ngithub.com/cosmos/cosmos-sdk/x/auth/vesting/exported\ngithub.com/cosmos/cosmos-sdk/x/auth/vesting/types\ngithub.com/cosmos/cosmos-sdk/x/authz\ngithub.com/cosmos/cosmos-sdk/x/authz/client/cli\ngithub.com/cosmos/cosmos-sdk/x/authz/keeper\ngithub.com/cosmos/cosmos-sdk/x/authz/migrations/v2\ngithub.com/cosmos/cosmos-sdk/x/authz/module\ngithub.com/cosmos/cosmos-sdk/x/authz/simulation\ngithub.com/cosmos/cosmos-sdk/x/bank\ngithub.com/cosmos/cosmos-sdk/x/bank/client/cli\ngithub.com/cosmos/cosmos-sdk/x/bank/exported\ngithub.com/cosmos/cosmos-sdk/x/bank/keeper\ngithub.com/cosmos/cosmos-sdk/x/bank/migrations/v1\ngithub.com/cosmos/cosmos-sdk/x/bank/migrations/v2\ngithub.com/cosmos/cosmos-sdk/x/bank/migrations/v3\ngithub.com/cosmos/cosmos-sdk/x/bank/migrations/v4\ngithub.com/cosmos/cosmos-sdk/x/bank/simulation\ngithub.com/cosmos/cosmos-sdk/x/bank/types\ngithub.com/cosmos/cosmos-sdk/x/consensus\ngithub.com/cosmos/cosmos-sdk/x/consensus/exported\ngithub.com/cosmos/cosmos-sdk/x/consensus/keeper\ngithub.com/cosmos/cosmos-sdk/x/consensus/types\ngithub.com/cosmos/cosmos-sdk/x/crisis\ngithub.com/cosmos/cosmos-sdk/x/crisis/exported\ngithub.com/cosmos/cosmos-sdk/x/crisis/keeper\ngithub.com/cosmos/cosmos-sdk/x/crisis/migrations/v2\ngithub.com/cosmos/cosmos-sdk/x/crisis/types\ngithub.com/cosmos/cosmos-sdk/x/distribution\ngithub.com/cosmos/cosmos-sdk/x/distribution/client/cli\ngithub.com/cosmos/cosmos-sdk/x/distribution/exported\ngithub.com/cosmos/cosmos-sdk/x/distribution/keeper\ngithub.com/cosmos/cosmos-sdk/x/distribution/migrations/v1\ngithub.com/cosmos/cosmos-sdk/x/distribution/migrations/v2\ngithub.com/cosmos/cosmos-sdk/x/distribution/migrations/v3\ngithub.com/cosmos/cosmos-sdk/x/distribution/simulation\ngithub.com/cosmos/cosmos-sdk/x/distribution/types\ngithub.com/cosmos/cosmos-sdk/x/genutil\ngithub.com/cosmos/cosmos-sdk/x/genutil/client/cli\ngithub.com/cosmos/cosmos-sdk/x/genutil/migrations/v043\ngithub.com/cosmos/cosmos-sdk/x/genutil/migrations/v046\ngithub.com/cosmos/cosmos-sdk/x/genutil/migrations/v047\ngithub.com/cosmos/cosmos-sdk/x/genutil/types\ngithub.com/cosmos/cosmos-sdk/x/gov\ngithub.com/cosmos/cosmos-sdk/x/gov/client\ngithub.com/cosmos/cosmos-sdk/x/gov/client/cli\ngithub.com/cosmos/cosmos-sdk/x/gov/client/utils\ngithub.com/cosmos/cosmos-sdk/x/gov/exported\ngithub.com/cosmos/cosmos-sdk/x/gov/keeper\ngithub.com/cosmos/cosmos-sdk/x/gov/migrations/v1\ngithub.com/cosmos/cosmos-sdk/x/gov/migrations/v2\ngithub.com/cosmos/cosmos-sdk/x/gov/migrations/v3\ngithub.com/cosmos/cosmos-sdk/x/gov/migrations/v4\ngithub.com/cosmos/cosmos-sdk/x/gov/migrations/v5\ngithub.com/cosmos/cosmos-sdk/x/gov/simulation\ngithub.com/cosmos/cosmos-sdk/x/gov/types\ngithub.com/cosmos/cosmos-sdk/x/gov/types/v1\ngithub.com/cosmos/cosmos-sdk/x/gov/types/v1beta1\ngithub.com/cosmos/cosmos-sdk/x/group\ngithub.com/cosmos/cosmos-sdk/x/group/errors\ngithub.com/cosmos/cosmos-sdk/x/group/internal/math\ngithub.com/cosmos/cosmos-sdk/x/group/internal/orm\ngithub.com/cosmos/cosmos-sdk/x/group/migrations/v2\ngithub.com/cosmos/cosmos-sdk/x/mint\ngithub.com/cosmos/cosmos-sdk/x/mint/exported\ngithub.com/cosmos/cosmos-sdk/x/mint/keeper\ngithub.com/cosmos/cosmos-sdk/x/mint/migrations/v2\ngithub.com/cosmos/cosmos-sdk/x/mint/simulation\ngithub.com/cosmos/cosmos-sdk/x/mint/types\ngithub.com/cosmos/cosmos-sdk/x/params\ngithub.com/cosmos/cosmos-sdk/x/params/client\ngithub.com/cosmos/cosmos-sdk/x/params/client/cli\ngithub.com/cosmos/cosmos-sdk/x/params/client/utils\ngithub.com/cosmos/cosmos-sdk/x/params/keeper\ngithub.com/cosmos/cosmos-sdk/x/params/types\ngithub.com/cosmos/cosmos-sdk/x/params/types/proposal\ngithub.com/cosmos/cosmos-sdk/x/simulation\ngithub.com/cosmos/cosmos-sdk/x/simulation/client/cli\ngithub.com/cosmos/cosmos-sdk/x/slashing\ngithub.com/cosmos/cosmos-sdk/x/slashing/exported\ngithub.com/cosmos/cosmos-sdk/x/slashing/keeper\ngithub.com/cosmos/cosmos-sdk/x/slashing/migrations/v1\ngithub.com/cosmos/cosmos-sdk/x/slashing/migrations/v2\ngithub.com/cosmos/cosmos-sdk/x/slashing/migrations/v3\ngithub.com/cosmos/cosmos-sdk/x/slashing/migrations/v4\ngithub.com/cosmos/cosmos-sdk/x/slashing/simulation\ngithub.com/cosmos/cosmos-sdk/x/slashing/types\ngithub.com/cosmos/cosmos-sdk/x/staking\ngithub.com/cosmos/cosmos-sdk/x/staking/client/cli\ngithub.com/cosmos/cosmos-sdk/x/staking/exported\ngithub.com/cosmos/cosmos-sdk/x/staking/keeper\ngithub.com/cosmos/cosmos-sdk/x/staking/migrations/v1\ngithub.com/cosmos/cosmos-sdk/x/staking/migrations/v2\ngithub.com/cosmos/cosmos-sdk/x/staking/migrations/v3\ngithub.com/cosmos/cosmos-sdk/x/staking/migrations/v4\ngithub.com/cosmos/cosmos-sdk/x/staking/migrations/v5\ngithub.com/cosmos/cosmos-sdk/x/staking/simulation\ngithub.com/cosmos/cosmos-sdk/x/staking/types\n# github.com/cosmos/go-bip39 v1.0.0\n## explicit; go 1.15\ngithub.com/cosmos/go-bip39\n# github.com/cosmos/gogogateway v1.2.0\n## explicit; go 1.12\ngithub.com/cosmos/gogogateway\n# github.com/cosmos/gogoproto v1.7.0\n## explicit; go 1.19\ngithub.com/cosmos/gogoproto/gogoproto\ngithub.com/cosmos/gogoproto/grpc\ngithub.com/cosmos/gogoproto/io\ngithub.com/cosmos/gogoproto/jsonpb\ngithub.com/cosmos/gogoproto/proto\ngithub.com/cosmos/gogoproto/protoc-gen-gogo/descriptor\ngithub.com/cosmos/gogoproto/sortkeys\ngithub.com/cosmos/gogoproto/types\ngithub.com/cosmos/gogoproto/types/any\ngithub.com/cosmos/gogoproto/types/any/internal\n# github.com/cosmos/iavl v1.2.1-0.20240731145221-594b181f427e\n## explicit; go 1.20\ngithub.com/cosmos/iavl\ngithub.com/cosmos/iavl/cache\ngithub.com/cosmos/iavl/db\ngithub.com/cosmos/iavl/fastnode\ngithub.com/cosmos/iavl/internal/bytes\ngithub.com/cosmos/iavl/internal/color\ngithub.com/cosmos/iavl/internal/encoding\ngithub.com/cosmos/iavl/keyformat\ngithub.com/cosmos/iavl/proto\n# github.com/cosmos/ibc-go/modules/apps/callbacks v0.0.0-20240913130017-6b2554360c0e\n## explicit; go 1.21\ngithub.com/cosmos/ibc-go/modules/apps/callbacks\ngithub.com/cosmos/ibc-go/modules/apps/callbacks/types\n# github.com/cosmos/ibc-go/modules/capability v1.0.1\n## explicit; go 1.21\ngithub.com/cosmos/ibc-go/modules/capability\ngithub.com/cosmos/ibc-go/modules/capability/keeper\ngithub.com/cosmos/ibc-go/modules/capability/simulation\ngithub.com/cosmos/ibc-go/modules/capability/types\n# github.com/cosmos/ibc-go/v8 v8.5.1\n## explicit; go 1.21\ngithub.com/cosmos/ibc-go/v8/internal/logging\ngithub.com/cosmos/ibc-go/v8/modules/apps/27-interchain-accounts\ngithub.com/cosmos/ibc-go/v8/modules/apps/27-interchain-accounts/client/cli\ngithub.com/cosmos/ibc-go/v8/modules/apps/27-interchain-accounts/controller\ngithub.com/cosmos/ibc-go/v8/modules/apps/27-interchain-accounts/controller/client/cli\ngithub.com/cosmos/ibc-go/v8/modules/apps/27-interchain-accounts/controller/keeper\ngithub.com/cosmos/ibc-go/v8/modules/apps/27-interchain-accounts/controller/types\ngithub.com/cosmos/ibc-go/v8/modules/apps/27-interchain-accounts/genesis/types\ngithub.com/cosmos/ibc-go/v8/modules/apps/27-interchain-accounts/host\ngithub.com/cosmos/ibc-go/v8/modules/apps/27-interchain-accounts/host/client/cli\ngithub.com/cosmos/ibc-go/v8/modules/apps/27-interchain-accounts/host/keeper\ngithub.com/cosmos/ibc-go/v8/modules/apps/27-interchain-accounts/host/types\ngithub.com/cosmos/ibc-go/v8/modules/apps/27-interchain-accounts/simulation\ngithub.com/cosmos/ibc-go/v8/modules/apps/27-interchain-accounts/types\ngithub.com/cosmos/ibc-go/v8/modules/apps/29-fee\ngithub.com/cosmos/ibc-go/v8/modules/apps/29-fee/client/cli\ngithub.com/cosmos/ibc-go/v8/modules/apps/29-fee/keeper\ngithub.com/cosmos/ibc-go/v8/modules/apps/29-fee/types\ngithub.com/cosmos/ibc-go/v8/modules/apps/transfer\ngithub.com/cosmos/ibc-go/v8/modules/apps/transfer/client/cli\ngithub.com/cosmos/ibc-go/v8/modules/apps/transfer/keeper\ngithub.com/cosmos/ibc-go/v8/modules/apps/transfer/simulation\ngithub.com/cosmos/ibc-go/v8/modules/apps/transfer/types\ngithub.com/cosmos/ibc-go/v8/modules/core\ngithub.com/cosmos/ibc-go/v8/modules/core/02-client\ngithub.com/cosmos/ibc-go/v8/modules/core/02-client/client/cli\ngithub.com/cosmos/ibc-go/v8/modules/core/02-client/client/utils\ngithub.com/cosmos/ibc-go/v8/modules/core/02-client/keeper\ngithub.com/cosmos/ibc-go/v8/modules/core/02-client/migrations/v7\ngithub.com/cosmos/ibc-go/v8/modules/core/02-client/simulation\ngithub.com/cosmos/ibc-go/v8/modules/core/02-client/types\ngithub.com/cosmos/ibc-go/v8/modules/core/03-connection\ngithub.com/cosmos/ibc-go/v8/modules/core/03-connection/client/cli\ngithub.com/cosmos/ibc-go/v8/modules/core/03-connection/client/utils\ngithub.com/cosmos/ibc-go/v8/modules/core/03-connection/keeper\ngithub.com/cosmos/ibc-go/v8/modules/core/03-connection/migrations/v7\ngithub.com/cosmos/ibc-go/v8/modules/core/03-connection/simulation\ngithub.com/cosmos/ibc-go/v8/modules/core/03-connection/types\ngithub.com/cosmos/ibc-go/v8/modules/core/04-channel\ngithub.com/cosmos/ibc-go/v8/modules/core/04-channel/client/cli\ngithub.com/cosmos/ibc-go/v8/modules/core/04-channel/client/utils\ngithub.com/cosmos/ibc-go/v8/modules/core/04-channel/keeper\ngithub.com/cosmos/ibc-go/v8/modules/core/04-channel/simulation\ngithub.com/cosmos/ibc-go/v8/modules/core/04-channel/types\ngithub.com/cosmos/ibc-go/v8/modules/core/05-port/keeper\ngithub.com/cosmos/ibc-go/v8/modules/core/05-port/types\ngithub.com/cosmos/ibc-go/v8/modules/core/23-commitment/types\ngithub.com/cosmos/ibc-go/v8/modules/core/24-host\ngithub.com/cosmos/ibc-go/v8/modules/core/ante\ngithub.com/cosmos/ibc-go/v8/modules/core/client\ngithub.com/cosmos/ibc-go/v8/modules/core/client/cli\ngithub.com/cosmos/ibc-go/v8/modules/core/errors\ngithub.com/cosmos/ibc-go/v8/modules/core/exported\ngithub.com/cosmos/ibc-go/v8/modules/core/keeper\ngithub.com/cosmos/ibc-go/v8/modules/core/simulation\ngithub.com/cosmos/ibc-go/v8/modules/core/types\ngithub.com/cosmos/ibc-go/v8/modules/light-clients/06-solomachine\ngithub.com/cosmos/ibc-go/v8/modules/light-clients/07-tendermint\ngithub.com/cosmos/ibc-go/v8/modules/light-clients/09-localhost\n# github.com/cosmos/ics23/go v0.11.0\n## explicit; go 1.21\ngithub.com/cosmos/ics23/go\n# github.com/cosmos/ledger-cosmos-go v0.13.3\n## explicit; go 1.18\ngithub.com/cosmos/ledger-cosmos-go\n# github.com/cosmos/rosetta v0.50.3-1\n## explicit; go 1.21\ngithub.com/cosmos/rosetta\ngithub.com/cosmos/rosetta/cmd\ngithub.com/cosmos/rosetta/lib/errors\ngithub.com/cosmos/rosetta/lib/internal/service\ngithub.com/cosmos/rosetta/lib/server\ngithub.com/cosmos/rosetta/lib/types\n# github.com/cosmos/rosetta-sdk-go v0.10.0\n## explicit; go 1.18\ngithub.com/cosmos/rosetta-sdk-go/asserter\ngithub.com/cosmos/rosetta-sdk-go/errors\ngithub.com/cosmos/rosetta-sdk-go/server\n# github.com/creachadair/atomicfile v0.3.1\n## explicit; go 1.19\ngithub.com/creachadair/atomicfile\n# github.com/creachadair/tomledit v0.0.24\n## explicit; go 1.18\ngithub.com/creachadair/tomledit\ngithub.com/creachadair/tomledit/parser\ngithub.com/creachadair/tomledit/scanner\ngithub.com/creachadair/tomledit/transform\n# github.com/crypto-org-chain/cronos/memiavl v0.0.4 => ./memiavl\n## explicit; go 1.22\ngithub.com/crypto-org-chain/cronos/memiavl\n# github.com/crypto-org-chain/cronos/store v0.0.4 => ./store\n## explicit; go 1.22.7\ngithub.com/crypto-org-chain/cronos/store\ngithub.com/crypto-org-chain/cronos/store/cachemulti\ngithub.com/crypto-org-chain/cronos/store/config\ngithub.com/crypto-org-chain/cronos/store/memiavlstore\ngithub.com/crypto-org-chain/cronos/store/rootmulti\n# github.com/crypto-org-chain/cronos/versiondb v0.0.0-00010101000000-000000000000 => ./versiondb\n## explicit; go 1.22.7\ngithub.com/crypto-org-chain/cronos/versiondb\ngithub.com/crypto-org-chain/cronos/versiondb/client\ngithub.com/crypto-org-chain/cronos/versiondb/extsort\ngithub.com/crypto-org-chain/cronos/versiondb/tsrocksdb\n# github.com/crypto-org-chain/go-block-stm v0.0.0-20240919080136-6c49aef68716\n## explicit; go 1.21\ngithub.com/crypto-org-chain/go-block-stm\n# github.com/danieljoos/wincred v1.2.0\n## explicit; go 1.18\ngithub.com/danieljoos/wincred\n# github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc\n## explicit\ngithub.com/davecgh/go-spew/spew\n# github.com/deckarep/golang-set/v2 v2.1.0\n## explicit; go 1.18\ngithub.com/deckarep/golang-set/v2\n# github.com/decred/dcrd/dcrec/secp256k1/v4 v4.3.0\n## explicit; go 1.17\ngithub.com/decred/dcrd/dcrec/secp256k1/v4\ngithub.com/decred/dcrd/dcrec/secp256k1/v4/ecdsa\n# github.com/desertbit/timer v0.0.0-20180107155436-c41aec40b27f\n## explicit\ngithub.com/desertbit/timer\n# github.com/dgraph-io/badger/v4 v4.3.0\n## explicit; go 1.19\ngithub.com/dgraph-io/badger/v4\ngithub.com/dgraph-io/badger/v4/fb\ngithub.com/dgraph-io/badger/v4/options\ngithub.com/dgraph-io/badger/v4/pb\ngithub.com/dgraph-io/badger/v4/skl\ngithub.com/dgraph-io/badger/v4/table\ngithub.com/dgraph-io/badger/v4/trie\ngithub.com/dgraph-io/badger/v4/y\n# github.com/dgraph-io/ristretto v0.1.2-0.20240116140435-c67e07994f91\n## explicit; go 1.19\ngithub.com/dgraph-io/ristretto\ngithub.com/dgraph-io/ristretto/z\ngithub.com/dgraph-io/ristretto/z/simd\n# github.com/dlclark/regexp2 v1.7.0\n## explicit; go 1.13\ngithub.com/dlclark/regexp2\ngithub.com/dlclark/regexp2/syntax\n# github.com/dop251/goja v0.0.0-20230122112309-96b1610dd4f7\n## explicit; go 1.16\ngithub.com/dop251/goja\ngithub.com/dop251/goja/ast\ngithub.com/dop251/goja/file\ngithub.com/dop251/goja/ftoa\ngithub.com/dop251/goja/ftoa/internal/fast\ngithub.com/dop251/goja/parser\ngithub.com/dop251/goja/token\ngithub.com/dop251/goja/unistring\n# github.com/dustin/go-humanize v1.0.1\n## explicit; go 1.16\ngithub.com/dustin/go-humanize\n# github.com/dvsekhvalnov/jose2go v1.6.0\n## explicit; go 1.15\ngithub.com/dvsekhvalnov/jose2go\ngithub.com/dvsekhvalnov/jose2go/aes\ngithub.com/dvsekhvalnov/jose2go/arrays\ngithub.com/dvsekhvalnov/jose2go/base64url\ngithub.com/dvsekhvalnov/jose2go/compact\ngithub.com/dvsekhvalnov/jose2go/kdf\ngithub.com/dvsekhvalnov/jose2go/keys/ecc\ngithub.com/dvsekhvalnov/jose2go/padding\n# github.com/edsrzf/mmap-go v1.1.0\n## explicit; go 1.17\ngithub.com/edsrzf/mmap-go\n# github.com/emicklei/dot v1.6.1\n## explicit; go 1.13\ngithub.com/emicklei/dot\n# github.com/ethereum/go-ethereum v1.10.26 => github.com/crypto-org-chain/go-ethereum v1.10.20-0.20240926023215-d2275b4afb9a\n## explicit; go 1.19\ngithub.com/ethereum/go-ethereum\ngithub.com/ethereum/go-ethereum/accounts\ngithub.com/ethereum/go-ethereum/accounts/abi\ngithub.com/ethereum/go-ethereum/accounts/abi/bind\ngithub.com/ethereum/go-ethereum/accounts/external\ngithub.com/ethereum/go-ethereum/accounts/keystore\ngithub.com/ethereum/go-ethereum/accounts/scwallet\ngithub.com/ethereum/go-ethereum/common\ngithub.com/ethereum/go-ethereum/common/bitutil\ngithub.com/ethereum/go-ethereum/common/hexutil\ngithub.com/ethereum/go-ethereum/common/lru\ngithub.com/ethereum/go-ethereum/common/math\ngithub.com/ethereum/go-ethereum/common/mclock\ngithub.com/ethereum/go-ethereum/common/prque\ngithub.com/ethereum/go-ethereum/consensus\ngithub.com/ethereum/go-ethereum/consensus/ethash\ngithub.com/ethereum/go-ethereum/consensus/misc\ngithub.com/ethereum/go-ethereum/core\ngithub.com/ethereum/go-ethereum/core/bloombits\ngithub.com/ethereum/go-ethereum/core/rawdb\ngithub.com/ethereum/go-ethereum/core/state\ngithub.com/ethereum/go-ethereum/core/state/snapshot\ngithub.com/ethereum/go-ethereum/core/types\ngithub.com/ethereum/go-ethereum/core/vm\ngithub.com/ethereum/go-ethereum/crypto\ngithub.com/ethereum/go-ethereum/crypto/blake2b\ngithub.com/ethereum/go-ethereum/crypto/bls12381\ngithub.com/ethereum/go-ethereum/crypto/bn256\ngithub.com/ethereum/go-ethereum/crypto/bn256/cloudflare\ngithub.com/ethereum/go-ethereum/crypto/bn256/google\ngithub.com/ethereum/go-ethereum/crypto/ecies\ngithub.com/ethereum/go-ethereum/crypto/secp256k1\ngithub.com/ethereum/go-ethereum/crypto/secp256k1/libsecp256k1/include\ngithub.com/ethereum/go-ethereum/crypto/secp256k1/libsecp256k1/src\ngithub.com/ethereum/go-ethereum/crypto/secp256k1/libsecp256k1/src/modules/recovery\ngithub.com/ethereum/go-ethereum/eth/filters\ngithub.com/ethereum/go-ethereum/eth/tracers\ngithub.com/ethereum/go-ethereum/eth/tracers/js\ngithub.com/ethereum/go-ethereum/eth/tracers/js/internal/tracers\ngithub.com/ethereum/go-ethereum/eth/tracers/logger\ngithub.com/ethereum/go-ethereum/eth/tracers/native\ngithub.com/ethereum/go-ethereum/ethclient\ngithub.com/ethereum/go-ethereum/ethdb\ngithub.com/ethereum/go-ethereum/ethdb/leveldb\ngithub.com/ethereum/go-ethereum/ethdb/memorydb\ngithub.com/ethereum/go-ethereum/ethdb/pebble\ngithub.com/ethereum/go-ethereum/event\ngithub.com/ethereum/go-ethereum/internal/ethapi\ngithub.com/ethereum/go-ethereum/internal/syncx\ngithub.com/ethereum/go-ethereum/internal/version\ngithub.com/ethereum/go-ethereum/log\ngithub.com/ethereum/go-ethereum/metrics\ngithub.com/ethereum/go-ethereum/metrics/exp\ngithub.com/ethereum/go-ethereum/metrics/prometheus\ngithub.com/ethereum/go-ethereum/p2p\ngithub.com/ethereum/go-ethereum/p2p/discover\ngithub.com/ethereum/go-ethereum/p2p/discover/v4wire\ngithub.com/ethereum/go-ethereum/p2p/discover/v5wire\ngithub.com/ethereum/go-ethereum/p2p/enode\ngithub.com/ethereum/go-ethereum/p2p/enr\ngithub.com/ethereum/go-ethereum/p2p/nat\ngithub.com/ethereum/go-ethereum/p2p/netutil\ngithub.com/ethereum/go-ethereum/p2p/rlpx\ngithub.com/ethereum/go-ethereum/params\ngithub.com/ethereum/go-ethereum/rlp\ngithub.com/ethereum/go-ethereum/rlp/internal/rlpstruct\ngithub.com/ethereum/go-ethereum/rpc\ngithub.com/ethereum/go-ethereum/signer/core/apitypes\ngithub.com/ethereum/go-ethereum/trie\n# github.com/evmos/ethermint v0.0.0-00010101000000-000000000000 => github.com/crypto-org-chain/ethermint v0.6.1-0.20241108020006-836617d21619\n## explicit; go 1.22.7\ngithub.com/evmos/ethermint/app\ngithub.com/evmos/ethermint/app/ante\ngithub.com/evmos/ethermint/client\ngithub.com/evmos/ethermint/client/docs\ngithub.com/evmos/ethermint/client/keys\ngithub.com/evmos/ethermint/cmd/config\ngithub.com/evmos/ethermint/crypto/codec\ngithub.com/evmos/ethermint/crypto/ethsecp256k1\ngithub.com/evmos/ethermint/crypto/hd\ngithub.com/evmos/ethermint/encoding\ngithub.com/evmos/ethermint/encoding/codec\ngithub.com/evmos/ethermint/ethereum/eip712\ngithub.com/evmos/ethermint/indexer\ngithub.com/evmos/ethermint/rpc\ngithub.com/evmos/ethermint/rpc/backend\ngithub.com/evmos/ethermint/rpc/namespaces/ethereum/debug\ngithub.com/evmos/ethermint/rpc/namespaces/ethereum/eth\ngithub.com/evmos/ethermint/rpc/namespaces/ethereum/eth/filters\ngithub.com/evmos/ethermint/rpc/namespaces/ethereum/miner\ngithub.com/evmos/ethermint/rpc/namespaces/ethereum/net\ngithub.com/evmos/ethermint/rpc/namespaces/ethereum/personal\ngithub.com/evmos/ethermint/rpc/namespaces/ethereum/txpool\ngithub.com/evmos/ethermint/rpc/namespaces/ethereum/web3\ngithub.com/evmos/ethermint/rpc/stream\ngithub.com/evmos/ethermint/rpc/types\ngithub.com/evmos/ethermint/server\ngithub.com/evmos/ethermint/server/config\ngithub.com/evmos/ethermint/server/flags\ngithub.com/evmos/ethermint/tests\ngithub.com/evmos/ethermint/testutil/config\ngithub.com/evmos/ethermint/testutil/network\ngithub.com/evmos/ethermint/types\ngithub.com/evmos/ethermint/version\ngithub.com/evmos/ethermint/x/evm\ngithub.com/evmos/ethermint/x/evm/client/cli\ngithub.com/evmos/ethermint/x/evm/keeper\ngithub.com/evmos/ethermint/x/evm/migrations/v0/types\ngithub.com/evmos/ethermint/x/evm/migrations/v4\ngithub.com/evmos/ethermint/x/evm/migrations/v4/types\ngithub.com/evmos/ethermint/x/evm/migrations/v5\ngithub.com/evmos/ethermint/x/evm/migrations/v6\ngithub.com/evmos/ethermint/x/evm/simulation\ngithub.com/evmos/ethermint/x/evm/statedb\ngithub.com/evmos/ethermint/x/evm/types\ngithub.com/evmos/ethermint/x/feemarket\ngithub.com/evmos/ethermint/x/feemarket/client/cli\ngithub.com/evmos/ethermint/x/feemarket/keeper\ngithub.com/evmos/ethermint/x/feemarket/migrations/v4\ngithub.com/evmos/ethermint/x/feemarket/simulation\ngithub.com/evmos/ethermint/x/feemarket/types\n# github.com/fatih/color v1.16.0\n## explicit; go 1.17\ngithub.com/fatih/color\n# github.com/felixge/httpsnoop v1.0.4\n## explicit; go 1.13\ngithub.com/felixge/httpsnoop\n# github.com/fsnotify/fsnotify v1.7.0\n## explicit; go 1.17\ngithub.com/fsnotify/fsnotify\n# github.com/gballet/go-libpcsclite v0.0.0-20190607065134-2772fd86a8ff\n## explicit\ngithub.com/gballet/go-libpcsclite\n# github.com/getsentry/sentry-go v0.27.0\n## explicit; go 1.18\ngithub.com/getsentry/sentry-go\ngithub.com/getsentry/sentry-go/internal/debug\ngithub.com/getsentry/sentry-go/internal/otel/baggage\ngithub.com/getsentry/sentry-go/internal/otel/baggage/internal/baggage\ngithub.com/getsentry/sentry-go/internal/ratelimit\ngithub.com/getsentry/sentry-go/internal/traceparser\n# github.com/go-kit/kit v0.13.0\n## explicit; go 1.17\ngithub.com/go-kit/kit/metrics\ngithub.com/go-kit/kit/metrics/discard\ngithub.com/go-kit/kit/metrics/internal/lv\ngithub.com/go-kit/kit/metrics/prometheus\n# github.com/go-kit/log v0.2.1\n## explicit; go 1.17\ngithub.com/go-kit/log\ngithub.com/go-kit/log/level\ngithub.com/go-kit/log/term\n# github.com/go-logfmt/logfmt v0.6.0\n## explicit; go 1.17\ngithub.com/go-logfmt/logfmt\n# github.com/go-logr/logr v1.4.1\n## explicit; go 1.18\ngithub.com/go-logr/logr\ngithub.com/go-logr/logr/funcr\n# github.com/go-logr/stdr v1.2.2\n## explicit; go 1.16\ngithub.com/go-logr/stdr\n# github.com/go-ole/go-ole v1.2.6\n## explicit; go 1.12\ngithub.com/go-ole/go-ole\ngithub.com/go-ole/go-ole/oleutil\n# github.com/go-sourcemap/sourcemap v2.1.3+incompatible\n## explicit\ngithub.com/go-sourcemap/sourcemap\ngithub.com/go-sourcemap/sourcemap/internal/base64vlq\n# github.com/go-stack/stack v1.8.1\n## explicit; go 1.17\ngithub.com/go-stack/stack\n# github.com/godbus/dbus v0.0.0-20190726142602-4481cbc300e2\n## explicit; go 1.12\ngithub.com/godbus/dbus\n# github.com/gofrs/flock v0.8.1\n## explicit\ngithub.com/gofrs/flock\n# github.com/gogo/googleapis v1.4.1\n## explicit; go 1.12\ngithub.com/gogo/googleapis/google/api\n# github.com/gogo/protobuf v1.3.2\n## explicit; go 1.15\ngithub.com/gogo/protobuf/gogoproto\ngithub.com/gogo/protobuf/proto\ngithub.com/gogo/protobuf/protoc-gen-gogo/descriptor\ngithub.com/gogo/protobuf/sortkeys\ngithub.com/gogo/protobuf/types\n# github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da\n## explicit\ngithub.com/golang/groupcache/lru\n# github.com/golang/mock v1.6.0\n## explicit; go 1.11\ngithub.com/golang/mock/gomock\n# github.com/golang/protobuf v1.5.4\n## explicit; go 1.17\ngithub.com/golang/protobuf/descriptor\ngithub.com/golang/protobuf/jsonpb\ngithub.com/golang/protobuf/proto\ngithub.com/golang/protobuf/protoc-gen-go/descriptor\ngithub.com/golang/protobuf/ptypes/any\ngithub.com/golang/protobuf/ptypes/duration\ngithub.com/golang/protobuf/ptypes/empty\ngithub.com/golang/protobuf/ptypes/timestamp\ngithub.com/golang/protobuf/ptypes/wrappers\n# github.com/golang/snappy v0.0.5-0.20220116011046-fa5810519dcb\n## explicit\ngithub.com/golang/snappy\n# github.com/google/btree v1.1.3\n## explicit; go 1.18\ngithub.com/google/btree\n# github.com/google/flatbuffers v1.12.1\n## explicit\ngithub.com/google/flatbuffers/go\n# github.com/google/go-cmp v0.6.0\n## explicit; go 1.13\ngithub.com/google/go-cmp/cmp\ngithub.com/google/go-cmp/cmp/cmpopts\ngithub.com/google/go-cmp/cmp/internal/diff\ngithub.com/google/go-cmp/cmp/internal/flags\ngithub.com/google/go-cmp/cmp/internal/function\ngithub.com/google/go-cmp/cmp/internal/value\n# github.com/google/orderedcode v0.0.1\n## explicit\ngithub.com/google/orderedcode\n# github.com/google/s2a-go v0.1.7\n## explicit; go 1.19\ngithub.com/google/s2a-go\ngithub.com/google/s2a-go/fallback\ngithub.com/google/s2a-go/internal/authinfo\ngithub.com/google/s2a-go/internal/handshaker\ngithub.com/google/s2a-go/internal/handshaker/service\ngithub.com/google/s2a-go/internal/proto/common_go_proto\ngithub.com/google/s2a-go/internal/proto/s2a_context_go_proto\ngithub.com/google/s2a-go/internal/proto/s2a_go_proto\ngithub.com/google/s2a-go/internal/proto/v2/common_go_proto\ngithub.com/google/s2a-go/internal/proto/v2/s2a_context_go_proto\ngithub.com/google/s2a-go/internal/proto/v2/s2a_go_proto\ngithub.com/google/s2a-go/internal/record\ngithub.com/google/s2a-go/internal/record/internal/aeadcrypter\ngithub.com/google/s2a-go/internal/record/internal/halfconn\ngithub.com/google/s2a-go/internal/tokenmanager\ngithub.com/google/s2a-go/internal/v2\ngithub.com/google/s2a-go/internal/v2/certverifier\ngithub.com/google/s2a-go/internal/v2/remotesigner\ngithub.com/google/s2a-go/internal/v2/tlsconfigstore\ngithub.com/google/s2a-go/retry\ngithub.com/google/s2a-go/stream\n# github.com/google/uuid v1.6.0\n## explicit\ngithub.com/google/uuid\n# github.com/googleapis/enterprise-certificate-proxy v0.3.2\n## explicit; go 1.19\ngithub.com/googleapis/enterprise-certificate-proxy/client\ngithub.com/googleapis/enterprise-certificate-proxy/client/util\n# github.com/googleapis/gax-go/v2 v2.12.5\n## explicit; go 1.20\ngithub.com/googleapis/gax-go/v2\ngithub.com/googleapis/gax-go/v2/apierror\ngithub.com/googleapis/gax-go/v2/apierror/internal/proto\ngithub.com/googleapis/gax-go/v2/callctx\ngithub.com/googleapis/gax-go/v2/internal\n# github.com/gorilla/handlers v1.5.2\n## explicit; go 1.20\ngithub.com/gorilla/handlers\n# github.com/gorilla/mux v1.8.1\n## explicit; go 1.20\ngithub.com/gorilla/mux\n# github.com/gorilla/websocket v1.5.3\n## explicit; go 1.12\ngithub.com/gorilla/websocket\n# github.com/grpc-ecosystem/go-grpc-middleware v1.4.0\n## explicit; go 1.14\ngithub.com/grpc-ecosystem/go-grpc-middleware\ngithub.com/grpc-ecosystem/go-grpc-middleware/recovery\n# github.com/grpc-ecosystem/grpc-gateway v1.16.0\n## explicit; go 1.14\ngithub.com/grpc-ecosystem/grpc-gateway/internal\ngithub.com/grpc-ecosystem/grpc-gateway/runtime\ngithub.com/grpc-ecosystem/grpc-gateway/utilities\n# github.com/gsterjov/go-libsecret v0.0.0-20161001094733-a6f4afe4910c\n## explicit\ngithub.com/gsterjov/go-libsecret\n# github.com/hashicorp/go-cleanhttp v0.5.2\n## explicit; go 1.13\ngithub.com/hashicorp/go-cleanhttp\n# github.com/hashicorp/go-getter v1.7.5\n## explicit; go 1.13\ngithub.com/hashicorp/go-getter\ngithub.com/hashicorp/go-getter/helper/url\n# github.com/hashicorp/go-hclog v1.5.0\n## explicit; go 1.13\ngithub.com/hashicorp/go-hclog\n# github.com/hashicorp/go-immutable-radix v1.3.1\n## explicit\ngithub.com/hashicorp/go-immutable-radix\n# github.com/hashicorp/go-metrics v0.5.3\n## explicit; go 1.12\ngithub.com/hashicorp/go-metrics\ngithub.com/hashicorp/go-metrics/datadog\ngithub.com/hashicorp/go-metrics/prometheus\n# github.com/hashicorp/go-plugin v1.6.0\n## explicit; go 1.17\ngithub.com/hashicorp/go-plugin\ngithub.com/hashicorp/go-plugin/internal/cmdrunner\ngithub.com/hashicorp/go-plugin/internal/grpcmux\ngithub.com/hashicorp/go-plugin/internal/plugin\ngithub.com/hashicorp/go-plugin/runner\n# github.com/hashicorp/go-safetemp v1.0.0\n## explicit\ngithub.com/hashicorp/go-safetemp\n# github.com/hashicorp/go-version v1.6.0\n## explicit\ngithub.com/hashicorp/go-version\n# github.com/hashicorp/golang-lru v1.0.2\n## explicit; go 1.12\ngithub.com/hashicorp/golang-lru\ngithub.com/hashicorp/golang-lru/simplelru\n# github.com/hashicorp/golang-lru/v2 v2.0.7\n## explicit; go 1.18\ngithub.com/hashicorp/golang-lru/v2\ngithub.com/hashicorp/golang-lru/v2/internal\ngithub.com/hashicorp/golang-lru/v2/simplelru\n# github.com/hashicorp/hcl v1.0.0\n## explicit\ngithub.com/hashicorp/hcl\ngithub.com/hashicorp/hcl/hcl/ast\ngithub.com/hashicorp/hcl/hcl/parser\ngithub.com/hashicorp/hcl/hcl/printer\ngithub.com/hashicorp/hcl/hcl/scanner\ngithub.com/hashicorp/hcl/hcl/strconv\ngithub.com/hashicorp/hcl/hcl/token\ngithub.com/hashicorp/hcl/json/parser\ngithub.com/hashicorp/hcl/json/scanner\ngithub.com/hashicorp/hcl/json/token\n# github.com/hashicorp/yamux v0.1.1\n## explicit; go 1.15\ngithub.com/hashicorp/yamux\n# github.com/hdevalence/ed25519consensus v0.2.0\n## explicit; go 1.19\ngithub.com/hdevalence/ed25519consensus\n# github.com/holiman/bloomfilter/v2 v2.0.3\n## explicit; go 1.15\ngithub.com/holiman/bloomfilter/v2\n# github.com/holiman/uint256 v1.2.2-0.20230321075855-87b91420868c\n## explicit; go 1.18\ngithub.com/holiman/uint256\n# github.com/huandu/skiplist v1.2.0\n## explicit; go 1.12\ngithub.com/huandu/skiplist\n# github.com/huin/goupnp v1.0.3\n## explicit; go 1.14\ngithub.com/huin/goupnp\ngithub.com/huin/goupnp/dcps/internetgateway1\ngithub.com/huin/goupnp/dcps/internetgateway2\ngithub.com/huin/goupnp/httpu\ngithub.com/huin/goupnp/scpd\ngithub.com/huin/goupnp/soap\ngithub.com/huin/goupnp/ssdp\n# github.com/iancoleman/strcase v0.3.0\n## explicit; go 1.16\ngithub.com/iancoleman/strcase\n# github.com/improbable-eng/grpc-web v0.15.0\n## explicit; go 1.16\ngithub.com/improbable-eng/grpc-web/go/grpcweb\n# github.com/inconshreveable/mousetrap v1.1.0\n## explicit; go 1.18\ngithub.com/inconshreveable/mousetrap\n# github.com/jackpal/go-nat-pmp v1.0.2\n## explicit\ngithub.com/jackpal/go-nat-pmp\n# github.com/jmespath/go-jmespath v0.4.0\n## explicit; go 1.14\ngithub.com/jmespath/go-jmespath\n# github.com/jmhodges/levigo v1.0.0\n## explicit\ngithub.com/jmhodges/levigo\n# github.com/klauspost/compress v1.17.9\n## explicit; go 1.20\ngithub.com/klauspost/compress\ngithub.com/klauspost/compress/fse\ngithub.com/klauspost/compress/huff0\ngithub.com/klauspost/compress/internal/cpuinfo\ngithub.com/klauspost/compress/internal/race\ngithub.com/klauspost/compress/internal/snapref\ngithub.com/klauspost/compress/s2\ngithub.com/klauspost/compress/snappy\ngithub.com/klauspost/compress/zstd\ngithub.com/klauspost/compress/zstd/internal/xxhash\n# github.com/kr/pretty v0.3.1\n## explicit; go 1.12\ngithub.com/kr/pretty\n# github.com/kr/text v0.2.0\n## explicit\ngithub.com/kr/text\n# github.com/ledgerwatch/erigon-lib v0.0.0-20230210071639-db0e7ed11263\n## explicit; go 1.18\ngithub.com/ledgerwatch/erigon-lib/mmap\n# github.com/lib/pq v1.10.9\n## explicit; go 1.13\ngithub.com/lib/pq\ngithub.com/lib/pq/oid\ngithub.com/lib/pq/scram\n# github.com/linxGnu/grocksdb v1.9.7\n## explicit; go 1.17\ngithub.com/linxGnu/grocksdb\n# github.com/magiconair/properties v1.8.7\n## explicit; go 1.19\ngithub.com/magiconair/properties\n# github.com/manifoldco/promptui v0.9.0\n## explicit; go 1.12\ngithub.com/manifoldco/promptui\ngithub.com/manifoldco/promptui/list\ngithub.com/manifoldco/promptui/screenbuf\n# github.com/mattn/go-colorable v0.1.13\n## explicit; go 1.15\ngithub.com/mattn/go-colorable\n# github.com/mattn/go-isatty v0.0.20\n## explicit; go 1.15\ngithub.com/mattn/go-isatty\n# github.com/mattn/go-runewidth v0.0.9\n## explicit; go 1.9\ngithub.com/mattn/go-runewidth\n# github.com/minio/highwayhash v1.0.3\n## explicit; go 1.15\ngithub.com/minio/highwayhash\n# github.com/mitchellh/go-homedir v1.1.0\n## explicit\ngithub.com/mitchellh/go-homedir\n# github.com/mitchellh/go-testing-interface v1.14.1\n## explicit; go 1.14\ngithub.com/mitchellh/go-testing-interface\n# github.com/mitchellh/mapstructure v1.5.0\n## explicit; go 1.14\ngithub.com/mitchellh/mapstructure\n# github.com/mtibben/percent v0.2.1\n## explicit; go 1.14\ngithub.com/mtibben/percent\n# github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822\n## explicit\ngithub.com/munnerz/goautoneg\n# github.com/oasisprotocol/curve25519-voi v0.0.0-20230904125328-1f23a7beb09a\n## explicit; go 1.17\ngithub.com/oasisprotocol/curve25519-voi/curve\ngithub.com/oasisprotocol/curve25519-voi/curve/scalar\ngithub.com/oasisprotocol/curve25519-voi/internal/disalloweq\ngithub.com/oasisprotocol/curve25519-voi/internal/field\ngithub.com/oasisprotocol/curve25519-voi/internal/lattice\ngithub.com/oasisprotocol/curve25519-voi/internal/scalar128\ngithub.com/oasisprotocol/curve25519-voi/internal/strobe\ngithub.com/oasisprotocol/curve25519-voi/internal/subtle\ngithub.com/oasisprotocol/curve25519-voi/internal/toolchain\ngithub.com/oasisprotocol/curve25519-voi/internal/zeroreader\ngithub.com/oasisprotocol/curve25519-voi/primitives/ed25519\ngithub.com/oasisprotocol/curve25519-voi/primitives/ed25519/extra/cache\ngithub.com/oasisprotocol/curve25519-voi/primitives/merlin\ngithub.com/oasisprotocol/curve25519-voi/primitives/sr25519\n# github.com/oklog/run v1.1.0\n## explicit; go 1.13\ngithub.com/oklog/run\n# github.com/olekukonko/tablewriter v0.0.5\n## explicit; go 1.12\ngithub.com/olekukonko/tablewriter\n# github.com/pelletier/go-toml/v2 v2.2.2\n## explicit; go 1.16\ngithub.com/pelletier/go-toml/v2\ngithub.com/pelletier/go-toml/v2/internal/characters\ngithub.com/pelletier/go-toml/v2/internal/danger\ngithub.com/pelletier/go-toml/v2/internal/tracker\ngithub.com/pelletier/go-toml/v2/unstable\n# github.com/petermattis/goid v0.0.0-20240813172612-4fcff4a6cae7\n## explicit; go 1.17\ngithub.com/petermattis/goid\n# github.com/pkg/errors v0.9.1\n## explicit\ngithub.com/pkg/errors\n# github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2\n## explicit\ngithub.com/pmezard/go-difflib/difflib\n# github.com/prometheus/client_golang v1.20.5\n## explicit; go 1.20\ngithub.com/prometheus/client_golang/internal/github.com/golang/gddo/httputil\ngithub.com/prometheus/client_golang/internal/github.com/golang/gddo/httputil/header\ngithub.com/prometheus/client_golang/prometheus\ngithub.com/prometheus/client_golang/prometheus/internal\ngithub.com/prometheus/client_golang/prometheus/promhttp\ngithub.com/prometheus/client_golang/prometheus/push\n# github.com/prometheus/client_model v0.6.1\n## explicit; go 1.19\ngithub.com/prometheus/client_model/go\n# github.com/prometheus/common v0.60.1\n## explicit; go 1.21\ngithub.com/prometheus/common/expfmt\ngithub.com/prometheus/common/model\n# github.com/prometheus/procfs v0.15.1\n## explicit; go 1.20\ngithub.com/prometheus/procfs\ngithub.com/prometheus/procfs/internal/fs\ngithub.com/prometheus/procfs/internal/util\n# github.com/rcrowley/go-metrics v0.0.0-20201227073835-cf1acfcdf475\n## explicit\ngithub.com/rcrowley/go-metrics\n# github.com/rogpeppe/go-internal v1.12.0\n## explicit; go 1.20\ngithub.com/rogpeppe/go-internal/fmtsort\n# github.com/rs/cors v1.11.1\n## explicit; go 1.13\ngithub.com/rs/cors\ngithub.com/rs/cors/internal\n# github.com/rs/zerolog v1.33.0\n## explicit; go 1.15\ngithub.com/rs/zerolog\ngithub.com/rs/zerolog/internal/cbor\ngithub.com/rs/zerolog/internal/json\ngithub.com/rs/zerolog/pkgerrors\n# github.com/sagikazarmark/locafero v0.4.0\n## explicit; go 1.20\ngithub.com/sagikazarmark/locafero\n# github.com/sagikazarmark/slog-shim v0.1.0\n## explicit; go 1.20\ngithub.com/sagikazarmark/slog-shim\n# github.com/sasha-s/go-deadlock v0.3.5\n## explicit\ngithub.com/sasha-s/go-deadlock\n# github.com/shirou/gopsutil v3.21.4-0.20210419000835-c7a38de76ee5+incompatible\n## explicit\ngithub.com/shirou/gopsutil/cpu\ngithub.com/shirou/gopsutil/internal/common\n# github.com/sourcegraph/conc v0.3.0\n## explicit; go 1.19\ngithub.com/sourcegraph/conc\ngithub.com/sourcegraph/conc/internal/multierror\ngithub.com/sourcegraph/conc/iter\ngithub.com/sourcegraph/conc/panics\n# github.com/spf13/afero v1.11.0\n## explicit; go 1.19\ngithub.com/spf13/afero\ngithub.com/spf13/afero/internal/common\ngithub.com/spf13/afero/mem\n# github.com/spf13/cast v1.6.0\n## explicit; go 1.19\ngithub.com/spf13/cast\n# github.com/spf13/cobra v1.8.1\n## explicit; go 1.15\ngithub.com/spf13/cobra\n# github.com/spf13/pflag v1.0.5\n## explicit; go 1.12\ngithub.com/spf13/pflag\n# github.com/spf13/viper v1.19.0\n## explicit; go 1.20\ngithub.com/spf13/viper\ngithub.com/spf13/viper/internal/encoding\ngithub.com/spf13/viper/internal/encoding/dotenv\ngithub.com/spf13/viper/internal/encoding/hcl\ngithub.com/spf13/viper/internal/encoding/ini\ngithub.com/spf13/viper/internal/encoding/javaproperties\ngithub.com/spf13/viper/internal/encoding/json\ngithub.com/spf13/viper/internal/encoding/toml\ngithub.com/spf13/viper/internal/encoding/yaml\ngithub.com/spf13/viper/internal/features\n# github.com/status-im/keycard-go v0.2.0\n## explicit; go 1.17\ngithub.com/status-im/keycard-go/derivationpath\n# github.com/stretchr/testify v1.9.0\n## explicit; go 1.17\ngithub.com/stretchr/testify/assert\ngithub.com/stretchr/testify/require\ngithub.com/stretchr/testify/suite\n# github.com/subosito/gotenv v1.6.0\n## explicit; go 1.18\ngithub.com/subosito/gotenv\n# github.com/syndtr/goleveldb v1.0.1-0.20220721030215-126854af5e6d => github.com/syndtr/goleveldb v1.0.1-0.20210819022825-2ae1ddf74ef7\n## explicit; go 1.14\ngithub.com/syndtr/goleveldb/leveldb\ngithub.com/syndtr/goleveldb/leveldb/cache\ngithub.com/syndtr/goleveldb/leveldb/comparer\ngithub.com/syndtr/goleveldb/leveldb/errors\ngithub.com/syndtr/goleveldb/leveldb/filter\ngithub.com/syndtr/goleveldb/leveldb/iterator\ngithub.com/syndtr/goleveldb/leveldb/journal\ngithub.com/syndtr/goleveldb/leveldb/memdb\ngithub.com/syndtr/goleveldb/leveldb/opt\ngithub.com/syndtr/goleveldb/leveldb/storage\ngithub.com/syndtr/goleveldb/leveldb/table\ngithub.com/syndtr/goleveldb/leveldb/util\n# github.com/tendermint/go-amino v0.16.0\n## explicit; go 1.12\ngithub.com/tendermint/go-amino\n# github.com/tidwall/btree v1.7.0 => github.com/crypto-org-chain/btree v0.0.0-20240406140148-2687063b042c\n## explicit; go 1.19\ngithub.com/tidwall/btree\n# github.com/tidwall/gjson v1.14.4\n## explicit; go 1.12\ngithub.com/tidwall/gjson\n# github.com/tidwall/match v1.1.1\n## explicit; go 1.15\ngithub.com/tidwall/match\n# github.com/tidwall/pretty v1.2.0\n## explicit; go 1.16\ngithub.com/tidwall/pretty\n# github.com/tidwall/sjson v1.2.5\n## explicit; go 1.14\ngithub.com/tidwall/sjson\n# github.com/tidwall/tinylru v1.1.0\n## explicit; go 1.14\ngithub.com/tidwall/tinylru\n# github.com/tidwall/wal v1.1.7\n## explicit; go 1.13\ngithub.com/tidwall/wal\n# github.com/tklauser/go-sysconf v0.3.10\n## explicit; go 1.13\ngithub.com/tklauser/go-sysconf\n# github.com/tklauser/numcpus v0.4.0\n## explicit; go 1.11\ngithub.com/tklauser/numcpus\n# github.com/tyler-smith/go-bip39 v1.1.0\n## explicit; go 1.14\ngithub.com/tyler-smith/go-bip39\ngithub.com/tyler-smith/go-bip39/wordlists\n# github.com/ulikunitz/xz v0.5.11\n## explicit; go 1.12\ngithub.com/ulikunitz/xz\ngithub.com/ulikunitz/xz/internal/hash\ngithub.com/ulikunitz/xz/internal/xlog\ngithub.com/ulikunitz/xz/lzma\n# github.com/zbiljic/go-filelock v0.0.0-20170914061330-1dbf7103ab7d\n## explicit\ngithub.com/zbiljic/go-filelock\n# github.com/zondax/hid v0.9.2\n## explicit\ngithub.com/zondax/hid\n# github.com/zondax/ledger-go v0.14.3\n## explicit; go 1.18\ngithub.com/zondax/ledger-go\n# go.etcd.io/bbolt v1.4.0-alpha.0.0.20240404170359-43604f3112c5\n## explicit; go 1.22\ngo.etcd.io/bbolt\ngo.etcd.io/bbolt/errors\ngo.etcd.io/bbolt/internal/common\n# go.opencensus.io v0.24.0\n## explicit; go 1.13\ngo.opencensus.io\ngo.opencensus.io/internal\ngo.opencensus.io/internal/tagencoding\ngo.opencensus.io/metric/metricdata\ngo.opencensus.io/metric/metricproducer\ngo.opencensus.io/plugin/ocgrpc\ngo.opencensus.io/plugin/ochttp\ngo.opencensus.io/plugin/ochttp/propagation/b3\ngo.opencensus.io/resource\ngo.opencensus.io/stats\ngo.opencensus.io/stats/internal\ngo.opencensus.io/stats/view\ngo.opencensus.io/tag\ngo.opencensus.io/trace\ngo.opencensus.io/trace/internal\ngo.opencensus.io/trace/propagation\ngo.opencensus.io/trace/tracestate\n# go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.49.0\n## explicit; go 1.20\ngo.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc\ngo.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc/internal\n# go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.49.0\n## explicit; go 1.20\ngo.opentelemetry.io/contrib/instrumentation/net/http/otelhttp\ngo.opentelemetry.io/contrib/instrumentation/net/http/otelhttp/internal/semconvutil\n# go.opentelemetry.io/otel v1.24.0\n## explicit; go 1.20\ngo.opentelemetry.io/otel\ngo.opentelemetry.io/otel/attribute\ngo.opentelemetry.io/otel/baggage\ngo.opentelemetry.io/otel/codes\ngo.opentelemetry.io/otel/internal\ngo.opentelemetry.io/otel/internal/attribute\ngo.opentelemetry.io/otel/internal/baggage\ngo.opentelemetry.io/otel/internal/global\ngo.opentelemetry.io/otel/propagation\ngo.opentelemetry.io/otel/semconv/v1.17.0\ngo.opentelemetry.io/otel/semconv/v1.20.0\n# go.opentelemetry.io/otel/metric v1.24.0\n## explicit; go 1.20\ngo.opentelemetry.io/otel/metric\ngo.opentelemetry.io/otel/metric/embedded\ngo.opentelemetry.io/otel/metric/noop\n# go.opentelemetry.io/otel/trace v1.24.0\n## explicit; go 1.20\ngo.opentelemetry.io/otel/trace\ngo.opentelemetry.io/otel/trace/embedded\n# go.uber.org/multierr v1.11.0\n## explicit; go 1.19\ngo.uber.org/multierr\n# golang.org/x/crypto v0.28.0\n## explicit; go 1.20\ngolang.org/x/crypto/argon2\ngolang.org/x/crypto/bcrypt\ngolang.org/x/crypto/blake2b\ngolang.org/x/crypto/blake2s\ngolang.org/x/crypto/blowfish\ngolang.org/x/crypto/chacha20\ngolang.org/x/crypto/chacha20poly1305\ngolang.org/x/crypto/cryptobyte\ngolang.org/x/crypto/cryptobyte/asn1\ngolang.org/x/crypto/curve25519\ngolang.org/x/crypto/hkdf\ngolang.org/x/crypto/internal/alias\ngolang.org/x/crypto/internal/poly1305\ngolang.org/x/crypto/nacl/box\ngolang.org/x/crypto/nacl/secretbox\ngolang.org/x/crypto/openpgp/armor\ngolang.org/x/crypto/openpgp/errors\ngolang.org/x/crypto/pbkdf2\ngolang.org/x/crypto/poly1305\ngolang.org/x/crypto/ripemd160\ngolang.org/x/crypto/salsa20/salsa\ngolang.org/x/crypto/scrypt\ngolang.org/x/crypto/sha3\n# golang.org/x/exp v0.0.0-20240613232115-7f521ea00fb8\n## explicit; go 1.20\ngolang.org/x/exp/constraints\ngolang.org/x/exp/maps\ngolang.org/x/exp/rand\ngolang.org/x/exp/slices\ngolang.org/x/exp/slog\ngolang.org/x/exp/slog/internal\ngolang.org/x/exp/slog/internal/buffer\n# golang.org/x/mod v0.18.0\n## explicit; go 1.18\ngolang.org/x/mod/semver\n# golang.org/x/net v0.30.0\n## explicit; go 1.18\ngolang.org/x/net/context\ngolang.org/x/net/http/httpguts\ngolang.org/x/net/http2\ngolang.org/x/net/http2/hpack\ngolang.org/x/net/idna\ngolang.org/x/net/internal/timeseries\ngolang.org/x/net/netutil\ngolang.org/x/net/trace\n# golang.org/x/oauth2 v0.23.0\n## explicit; go 1.18\ngolang.org/x/oauth2\ngolang.org/x/oauth2/authhandler\ngolang.org/x/oauth2/google\ngolang.org/x/oauth2/google/externalaccount\ngolang.org/x/oauth2/google/internal/externalaccountauthorizeduser\ngolang.org/x/oauth2/google/internal/impersonate\ngolang.org/x/oauth2/google/internal/stsexchange\ngolang.org/x/oauth2/internal\ngolang.org/x/oauth2/jws\ngolang.org/x/oauth2/jwt\n# golang.org/x/sync v0.8.0\n## explicit; go 1.18\ngolang.org/x/sync/errgroup\ngolang.org/x/sync/semaphore\n# golang.org/x/sys v0.26.0\n## explicit; go 1.18\ngolang.org/x/sys/cpu\ngolang.org/x/sys/execabs\ngolang.org/x/sys/plan9\ngolang.org/x/sys/unix\ngolang.org/x/sys/windows\ngolang.org/x/sys/windows/registry\n# golang.org/x/term v0.25.0\n## explicit; go 1.18\ngolang.org/x/term\n# golang.org/x/text v0.19.0\n## explicit; go 1.18\ngolang.org/x/text/cases\ngolang.org/x/text/collate\ngolang.org/x/text/encoding\ngolang.org/x/text/encoding/internal\ngolang.org/x/text/encoding/internal/identifier\ngolang.org/x/text/encoding/unicode\ngolang.org/x/text/internal\ngolang.org/x/text/internal/colltab\ngolang.org/x/text/internal/language\ngolang.org/x/text/internal/language/compact\ngolang.org/x/text/internal/tag\ngolang.org/x/text/internal/utf8internal\ngolang.org/x/text/language\ngolang.org/x/text/runes\ngolang.org/x/text/secure/bidirule\ngolang.org/x/text/transform\ngolang.org/x/text/unicode/bidi\ngolang.org/x/text/unicode/norm\ngolang.org/x/text/unicode/rangetable\n# golang.org/x/time v0.5.0\n## explicit; go 1.18\ngolang.org/x/time/rate\n# golang.org/x/tools v0.22.0\n## explicit; go 1.19\ngolang.org/x/tools/cmd/stringer\ngolang.org/x/tools/go/gcexportdata\ngolang.org/x/tools/go/internal/packagesdriver\ngolang.org/x/tools/go/packages\ngolang.org/x/tools/go/types/objectpath\ngolang.org/x/tools/internal/aliases\ngolang.org/x/tools/internal/event\ngolang.org/x/tools/internal/event/core\ngolang.org/x/tools/internal/event/keys\ngolang.org/x/tools/internal/event/label\ngolang.org/x/tools/internal/gcimporter\ngolang.org/x/tools/internal/gocommand\ngolang.org/x/tools/internal/packagesinternal\ngolang.org/x/tools/internal/pkgbits\ngolang.org/x/tools/internal/stdlib\ngolang.org/x/tools/internal/tokeninternal\ngolang.org/x/tools/internal/typesinternal\ngolang.org/x/tools/internal/versions\n# google.golang.org/api v0.186.0\n## explicit; go 1.20\ngoogle.golang.org/api/googleapi\ngoogle.golang.org/api/googleapi/transport\ngoogle.golang.org/api/iamcredentials/v1\ngoogle.golang.org/api/internal\ngoogle.golang.org/api/internal/cert\ngoogle.golang.org/api/internal/gensupport\ngoogle.golang.org/api/internal/impersonate\ngoogle.golang.org/api/internal/third_party/uritemplates\ngoogle.golang.org/api/iterator\ngoogle.golang.org/api/option\ngoogle.golang.org/api/option/internaloption\ngoogle.golang.org/api/storage/v1\ngoogle.golang.org/api/transport\ngoogle.golang.org/api/transport/grpc\ngoogle.golang.org/api/transport/http\ngoogle.golang.org/api/transport/http/internal/propagation\n# google.golang.org/genproto v0.0.0-20240701130421-f6361c86f094\n## explicit; go 1.20\ngoogle.golang.org/genproto/googleapis/type/date\ngoogle.golang.org/genproto/googleapis/type/expr\ngoogle.golang.org/genproto/protobuf/field_mask\n# google.golang.org/genproto/googleapis/api v0.0.0-20240814211410-ddb44dafa142\n## explicit; go 1.21\ngoogle.golang.org/genproto/googleapis/api\ngoogle.golang.org/genproto/googleapis/api/annotations\ngoogle.golang.org/genproto/googleapis/api/httpbody\n# google.golang.org/genproto/googleapis/rpc v0.0.0-20240814211410-ddb44dafa142\n## explicit; go 1.21\ngoogle.golang.org/genproto/googleapis/rpc/code\ngoogle.golang.org/genproto/googleapis/rpc/errdetails\ngoogle.golang.org/genproto/googleapis/rpc/status\n# google.golang.org/grpc v1.67.1\n## explicit; go 1.21\ngoogle.golang.org/grpc\ngoogle.golang.org/grpc/attributes\ngoogle.golang.org/grpc/backoff\ngoogle.golang.org/grpc/balancer\ngoogle.golang.org/grpc/balancer/base\ngoogle.golang.org/grpc/balancer/grpclb\ngoogle.golang.org/grpc/balancer/grpclb/grpc_lb_v1\ngoogle.golang.org/grpc/balancer/grpclb/state\ngoogle.golang.org/grpc/balancer/pickfirst\ngoogle.golang.org/grpc/balancer/roundrobin\ngoogle.golang.org/grpc/binarylog/grpc_binarylog_v1\ngoogle.golang.org/grpc/channelz\ngoogle.golang.org/grpc/codes\ngoogle.golang.org/grpc/connectivity\ngoogle.golang.org/grpc/credentials\ngoogle.golang.org/grpc/credentials/alts\ngoogle.golang.org/grpc/credentials/alts/internal\ngoogle.golang.org/grpc/credentials/alts/internal/authinfo\ngoogle.golang.org/grpc/credentials/alts/internal/conn\ngoogle.golang.org/grpc/credentials/alts/internal/handshaker\ngoogle.golang.org/grpc/credentials/alts/internal/handshaker/service\ngoogle.golang.org/grpc/credentials/alts/internal/proto/grpc_gcp\ngoogle.golang.org/grpc/credentials/google\ngoogle.golang.org/grpc/credentials/insecure\ngoogle.golang.org/grpc/credentials/oauth\ngoogle.golang.org/grpc/encoding\ngoogle.golang.org/grpc/encoding/proto\ngoogle.golang.org/grpc/experimental/stats\ngoogle.golang.org/grpc/grpclog\ngoogle.golang.org/grpc/grpclog/internal\ngoogle.golang.org/grpc/health\ngoogle.golang.org/grpc/health/grpc_health_v1\ngoogle.golang.org/grpc/internal\ngoogle.golang.org/grpc/internal/backoff\ngoogle.golang.org/grpc/internal/balancer/gracefulswitch\ngoogle.golang.org/grpc/internal/balancerload\ngoogle.golang.org/grpc/internal/binarylog\ngoogle.golang.org/grpc/internal/buffer\ngoogle.golang.org/grpc/internal/channelz\ngoogle.golang.org/grpc/internal/credentials\ngoogle.golang.org/grpc/internal/envconfig\ngoogle.golang.org/grpc/internal/googlecloud\ngoogle.golang.org/grpc/internal/grpclog\ngoogle.golang.org/grpc/internal/grpcsync\ngoogle.golang.org/grpc/internal/grpcutil\ngoogle.golang.org/grpc/internal/idle\ngoogle.golang.org/grpc/internal/metadata\ngoogle.golang.org/grpc/internal/pretty\ngoogle.golang.org/grpc/internal/resolver\ngoogle.golang.org/grpc/internal/resolver/dns\ngoogle.golang.org/grpc/internal/resolver/dns/internal\ngoogle.golang.org/grpc/internal/resolver/passthrough\ngoogle.golang.org/grpc/internal/resolver/unix\ngoogle.golang.org/grpc/internal/serviceconfig\ngoogle.golang.org/grpc/internal/stats\ngoogle.golang.org/grpc/internal/status\ngoogle.golang.org/grpc/internal/syscall\ngoogle.golang.org/grpc/internal/transport\ngoogle.golang.org/grpc/internal/transport/networktype\ngoogle.golang.org/grpc/internal/xds\ngoogle.golang.org/grpc/keepalive\ngoogle.golang.org/grpc/mem\ngoogle.golang.org/grpc/metadata\ngoogle.golang.org/grpc/peer\ngoogle.golang.org/grpc/reflection\ngoogle.golang.org/grpc/reflection/grpc_reflection_v1\ngoogle.golang.org/grpc/reflection/grpc_reflection_v1alpha\ngoogle.golang.org/grpc/reflection/internal\ngoogle.golang.org/grpc/resolver\ngoogle.golang.org/grpc/resolver/dns\ngoogle.golang.org/grpc/resolver/manual\ngoogle.golang.org/grpc/serviceconfig\ngoogle.golang.org/grpc/stats\ngoogle.golang.org/grpc/status\ngoogle.golang.org/grpc/tap\n# google.golang.org/protobuf v1.35.1\n## explicit; go 1.21\ngoogle.golang.org/protobuf/encoding/protodelim\ngoogle.golang.org/protobuf/encoding/protojson\ngoogle.golang.org/protobuf/encoding/prototext\ngoogle.golang.org/protobuf/encoding/protowire\ngoogle.golang.org/protobuf/internal/descfmt\ngoogle.golang.org/protobuf/internal/descopts\ngoogle.golang.org/protobuf/internal/detrand\ngoogle.golang.org/protobuf/internal/editiondefaults\ngoogle.golang.org/protobuf/internal/editionssupport\ngoogle.golang.org/protobuf/internal/encoding/defval\ngoogle.golang.org/protobuf/internal/encoding/json\ngoogle.golang.org/protobuf/internal/encoding/messageset\ngoogle.golang.org/protobuf/internal/encoding/tag\ngoogle.golang.org/protobuf/internal/encoding/text\ngoogle.golang.org/protobuf/internal/errors\ngoogle.golang.org/protobuf/internal/filedesc\ngoogle.golang.org/protobuf/internal/filetype\ngoogle.golang.org/protobuf/internal/flags\ngoogle.golang.org/protobuf/internal/genid\ngoogle.golang.org/protobuf/internal/impl\ngoogle.golang.org/protobuf/internal/msgfmt\ngoogle.golang.org/protobuf/internal/order\ngoogle.golang.org/protobuf/internal/pragma\ngoogle.golang.org/protobuf/internal/set\ngoogle.golang.org/protobuf/internal/strs\ngoogle.golang.org/protobuf/internal/version\ngoogle.golang.org/protobuf/proto\ngoogle.golang.org/protobuf/protoadapt\ngoogle.golang.org/protobuf/reflect/protodesc\ngoogle.golang.org/protobuf/reflect/protoreflect\ngoogle.golang.org/protobuf/reflect/protoregistry\ngoogle.golang.org/protobuf/runtime/protoiface\ngoogle.golang.org/protobuf/runtime/protoimpl\ngoogle.golang.org/protobuf/testing/protocmp\ngoogle.golang.org/protobuf/types/descriptorpb\ngoogle.golang.org/protobuf/types/dynamicpb\ngoogle.golang.org/protobuf/types/gofeaturespb\ngoogle.golang.org/protobuf/types/known/anypb\ngoogle.golang.org/protobuf/types/known/durationpb\ngoogle.golang.org/protobuf/types/known/emptypb\ngoogle.golang.org/protobuf/types/known/fieldmaskpb\ngoogle.golang.org/protobuf/types/known/timestamppb\ngoogle.golang.org/protobuf/types/known/wrapperspb\n# gopkg.in/ini.v1 v1.67.0\n## explicit\ngopkg.in/ini.v1\n# gopkg.in/natefinch/npipe.v2 v2.0.0-20160621034901-c1b8fa8bdcce\n## explicit\ngopkg.in/natefinch/npipe.v2\n# gopkg.in/yaml.v2 v2.4.0\n## explicit; go 1.15\ngopkg.in/yaml.v2\n# gopkg.in/yaml.v3 v3.0.1\n## explicit\ngopkg.in/yaml.v3\n# gotest.tools/v3 v3.5.1\n## explicit; go 1.17\ngotest.tools/v3/assert\ngotest.tools/v3/assert/cmp\ngotest.tools/v3/internal/assert\ngotest.tools/v3/internal/difflib\ngotest.tools/v3/internal/format\ngotest.tools/v3/internal/source\n# nhooyr.io/websocket v1.8.10\n## explicit; go 1.19\nnhooyr.io/websocket\nnhooyr.io/websocket/internal/bpool\nnhooyr.io/websocket/internal/errd\nnhooyr.io/websocket/internal/util\nnhooyr.io/websocket/internal/wsjs\nnhooyr.io/websocket/internal/xsync\n# pgregory.net/rapid v1.1.0\n## explicit; go 1.18\npgregory.net/rapid\n# sigs.k8s.io/yaml v1.4.0\n## explicit; go 1.12\nsigs.k8s.io/yaml\nsigs.k8s.io/yaml/goyaml.v2\n# cosmossdk.io/store => github.com/crypto-org-chain/cosmos-sdk/store v0.0.0-20241018012743-d78d66e74712\n# cosmossdk.io/x/tx => github.com/crypto-org-chain/cosmos-sdk/x/tx v0.0.0-20241018012743-d78d66e74712\n# github.com/cosmos/cosmos-sdk => github.com/crypto-org-chain/cosmos-sdk v0.50.6-0.20241101065553-a70c19a03a81\n# github.com/crypto-org-chain/cronos/memiavl => ./memiavl\n# github.com/crypto-org-chain/cronos/store => ./store\n# github.com/crypto-org-chain/cronos/versiondb => ./versiondb\n# github.com/99designs/keyring => github.com/cosmos/keyring v1.2.0\n# github.com/cometbft/cometbft => github.com/crypto-org-chain/cometbft v0.0.0-20241106091515-ce418f845d9a\n# github.com/dgrijalva/jwt-go => github.com/golang-jwt/jwt/v4 v4.4.2\n# github.com/ethereum/go-ethereum => github.com/crypto-org-chain/go-ethereum v1.10.20-0.20240926023215-d2275b4afb9a\n# github.com/evmos/ethermint => github.com/crypto-org-chain/ethermint v0.6.1-0.20241108020006-836617d21619\n# github.com/gin-gonic/gin => github.com/gin-gonic/gin v1.9.0\n# github.com/jhump/protoreflect => github.com/jhump/protoreflect v1.9.0\n# github.com/syndtr/goleveldb => github.com/syndtr/goleveldb v1.0.1-0.20210819022825-2ae1ddf74ef7\n# github.com/tidwall/btree => github.com/crypto-org-chain/btree v0.0.0-20240406140148-2687063b042c\n" [mod] [mod."cloud.google.com/go"] From 7845baf27e95fd1f90af3f7ffcf6b41dffdcf313 Mon Sep 17 00:00:00 2001 From: HuangYi Date: Tue, 12 Nov 2024 15:22:08 +0800 Subject: [PATCH 26/29] fix build --- versiondb/tsrocksdb/store.go | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/versiondb/tsrocksdb/store.go b/versiondb/tsrocksdb/store.go index 860df4323e..683011c537 100644 --- a/versiondb/tsrocksdb/store.go +++ b/versiondb/tsrocksdb/store.go @@ -304,8 +304,7 @@ func (s Store) loadWrongData(storeName string) ([]KVPairWithTS, error) { var pairs []KVPairWithTS for ; iter.Valid(); iter.Next() { - ts := iter.Timestamp() - if binary.LittleEndian.Uint64(ts) != 0 { + if binary.LittleEndian.Uint64(iter.Timestamp()) != 0 { // FIXME: https://github.com/crypto-org-chain/cronos/issues/1689 continue } From f8abc94506d74f8dbd680c09764a17462ccfa543 Mon Sep 17 00:00:00 2001 From: HuangYi Date: Tue, 12 Nov 2024 16:44:46 +0800 Subject: [PATCH 27/29] flush after fix --- versiondb/tsrocksdb/store.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/versiondb/tsrocksdb/store.go b/versiondb/tsrocksdb/store.go index 683011c537..1bb61b7097 100644 --- a/versiondb/tsrocksdb/store.go +++ b/versiondb/tsrocksdb/store.go @@ -242,7 +242,7 @@ func (s Store) FixData(storeNames []string, dryRun bool) error { } } - return nil + return s.Flush() } // fixDataStore iterate the wrong data at version 0, parse the timestamp from the key and write it again. From ccfc3f5b17fa70581b0a704ea0d32eb481ba8833 Mon Sep 17 00:00:00 2001 From: mmsqe Date: Tue, 12 Nov 2024 14:10:00 +0800 Subject: [PATCH 28/29] fix --- versiondb/tsrocksdb/store_test.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/versiondb/tsrocksdb/store_test.go b/versiondb/tsrocksdb/store_test.go index c88b0dbc06..26f69a8ad7 100644 --- a/versiondb/tsrocksdb/store_test.go +++ b/versiondb/tsrocksdb/store_test.go @@ -219,7 +219,7 @@ func TestSkipVersionZero(t *testing.T) { ) store.SetSkipVersionZero(false) - err = store.FixData([]string{storeKey}) + err = store.FixData([]string{storeKey}, false) require.NoError(t, err) bz, err = store.GetAtVersion(storeKey, key2, &i) From 277a4d7644d85057707204536ecbfe9e466f8242 Mon Sep 17 00:00:00 2001 From: HuangYi Date: Tue, 12 Nov 2024 21:36:06 +0800 Subject: [PATCH 29/29] revert --- versiondb/tsrocksdb/store.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/versiondb/tsrocksdb/store.go b/versiondb/tsrocksdb/store.go index 1bb61b7097..15436239a1 100644 --- a/versiondb/tsrocksdb/store.go +++ b/versiondb/tsrocksdb/store.go @@ -125,7 +125,7 @@ func (s Store) GetAtVersion(storeKey string, key []byte, version *int64) ([]byte // HasAtVersion implements VersionStore interface func (s Store) HasAtVersion(storeKey string, key []byte, version *int64) (bool, error) { slice, err := s.GetAtVersionSlice(storeKey, key, version) - if err != nil || slice == nil { + if err != nil { return false, err } defer slice.Free()