code.vegaprotocol.io/vega@v0.79.0/core/snapshot/tree/databases.go (about) 1 // Copyright (C) 2023 Gobalsky Labs Limited 2 // 3 // This program is free software: you can redistribute it and/or modify 4 // it under the terms of the GNU Affero General Public License as 5 // published by the Free Software Foundation, either version 3 of the 6 // License, or (at your option) any later version. 7 // 8 // This program is distributed in the hope that it will be useful, 9 // but WITHOUT ANY WARRANTY; without even the implied warranty of 10 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 11 // GNU Affero General Public License for more details. 12 // 13 // You should have received a copy of the GNU Affero General Public License 14 // along with this program. If not, see <http://www.gnu.org/licenses/>. 15 16 package tree 17 18 import ( 19 cometbftdb "github.com/cometbft/cometbft-db" 20 tmtypes "github.com/cometbft/cometbft/abci/types" 21 ) 22 23 type MetadataDatabase interface { 24 Save(int64, *tmtypes.Snapshot) error 25 Load(int64) (*tmtypes.Snapshot, error) 26 Close() error 27 Clear() error 28 IsEmpty() bool 29 FindVersionByBlockHeight(uint64) (int64, error) 30 Delete(int64) error 31 DeleteRange(fromVersion, toVersion int64) error 32 } 33 34 type SnapshotsDatabase interface { 35 cometbftdb.DB 36 Clear() error 37 }