// Copyright 2025 Sonic Operations Ltd
// This file is part of the Sonic Client
//
// Sonic is free software: you can redistribute it and/or modify
// it under the terms of the GNU Lesser General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// Sonic is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU Lesser General Public License for more details.
//
// You should have received a copy of the GNU Lesser General Public License
// along with Sonic. If not, see <http://www.gnu.org/licenses/>.

// Code generated by MockGen. DO NOT EDIT.
// Source: provider.go
//
// Generated by this command:
//
//	mockgen -source=provider.go -package=light_client -destination=provider_mock.go
//

// Package light_client is a generated GoMock package.
package light_client

import (
	reflect "reflect"

	carmen "github.com/0xsoniclabs/carmen/go/carmen"
	scc "github.com/0xsoniclabs/sonic/scc"
	cert "github.com/0xsoniclabs/sonic/scc/cert"
	idx "github.com/Fantom-foundation/lachesis-base/inter/idx"
	common "github.com/ethereum/go-ethereum/common"
	gomock "go.uber.org/mock/gomock"
)

// Mockprovider is a mock of provider interface.
type Mockprovider struct {
	ctrl     *gomock.Controller
	recorder *MockproviderMockRecorder
	isgomock struct{}
}

// MockproviderMockRecorder is the mock recorder for Mockprovider.
type MockproviderMockRecorder struct {
	mock *Mockprovider
}

// NewMockprovider creates a new mock instance.
func NewMockprovider(ctrl *gomock.Controller) *Mockprovider {
	mock := &Mockprovider{ctrl: ctrl}
	mock.recorder = &MockproviderMockRecorder{mock}
	return mock
}

// EXPECT returns an object that allows the caller to indicate expected use.
func (m *Mockprovider) EXPECT() *MockproviderMockRecorder {
	return m.recorder
}

// close mocks base method.
func (m *Mockprovider) close() {
	m.ctrl.T.Helper()
	m.ctrl.Call(m, "close")
}

// close indicates an expected call of close.
func (mr *MockproviderMockRecorder) close() *gomock.Call {
	mr.mock.ctrl.T.Helper()
	return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "close", reflect.TypeOf((*Mockprovider)(nil).close))
}

// getAccountProof mocks base method.
func (m *Mockprovider) getAccountProof(address common.Address, height idx.Block) (carmen.WitnessProof, error) {
	m.ctrl.T.Helper()
	ret := m.ctrl.Call(m, "getAccountProof", address, height)
	ret0, _ := ret[0].(carmen.WitnessProof)
	ret1, _ := ret[1].(error)
	return ret0, ret1
}

// getAccountProof indicates an expected call of getAccountProof.
func (mr *MockproviderMockRecorder) getAccountProof(address, height any) *gomock.Call {
	mr.mock.ctrl.T.Helper()
	return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "getAccountProof", reflect.TypeOf((*Mockprovider)(nil).getAccountProof), address, height)
}

// getBlockCertificates mocks base method.
func (m *Mockprovider) getBlockCertificates(first idx.Block, maxResults uint64) ([]cert.BlockCertificate, error) {
	m.ctrl.T.Helper()
	ret := m.ctrl.Call(m, "getBlockCertificates", first, maxResults)
	ret0, _ := ret[0].([]cert.BlockCertificate)
	ret1, _ := ret[1].(error)
	return ret0, ret1
}

// getBlockCertificates indicates an expected call of getBlockCertificates.
func (mr *MockproviderMockRecorder) getBlockCertificates(first, maxResults any) *gomock.Call {
	mr.mock.ctrl.T.Helper()
	return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "getBlockCertificates", reflect.TypeOf((*Mockprovider)(nil).getBlockCertificates), first, maxResults)
}

// getCommitteeCertificates mocks base method.
func (m *Mockprovider) getCommitteeCertificates(first scc.Period, maxResults uint64) ([]cert.CommitteeCertificate, error) {
	m.ctrl.T.Helper()
	ret := m.ctrl.Call(m, "getCommitteeCertificates", first, maxResults)
	ret0, _ := ret[0].([]cert.CommitteeCertificate)
	ret1, _ := ret[1].(error)
	return ret0, ret1
}

// getCommitteeCertificates indicates an expected call of getCommitteeCertificates.
func (mr *MockproviderMockRecorder) getCommitteeCertificates(first, maxResults any) *gomock.Call {
	mr.mock.ctrl.T.Helper()
	return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "getCommitteeCertificates", reflect.TypeOf((*Mockprovider)(nil).getCommitteeCertificates), first, maxResults)
}
