From 8fb2cc951a12f61db07777c32331bbf0e759905f Mon Sep 17 00:00:00 2001 From: BennielAllan <2822046942@qq.com> Date: Tue, 27 May 2025 22:47:32 +0800 Subject: [PATCH] my chain code --- .../chaincode/mocks/chaincodestub.go | 2991 ----------------- .../chaincode/mocks/statequeryiterator.go | 235 -- .../chaincode/mocks/transaction.go | 166 - .../chaincode-go/chaincode/smartcontract.go | 194 -- .../chaincode/smartcontract_test.go | 184 - .../{assetTransfer.go => main.go} | 3 +- .../chaincode-go/smartcontract.go | 147 + token-sdk/go.work.sum | 556 +++ 8 files changed, 704 insertions(+), 3772 deletions(-) delete mode 100644 asset-transfer-basic/chaincode-go/chaincode/mocks/chaincodestub.go delete mode 100644 asset-transfer-basic/chaincode-go/chaincode/mocks/statequeryiterator.go delete mode 100644 asset-transfer-basic/chaincode-go/chaincode/mocks/transaction.go delete mode 100644 asset-transfer-basic/chaincode-go/chaincode/smartcontract.go delete mode 100644 asset-transfer-basic/chaincode-go/chaincode/smartcontract_test.go rename asset-transfer-basic/chaincode-go/{assetTransfer.go => main.go} (69%) create mode 100644 asset-transfer-basic/chaincode-go/smartcontract.go diff --git a/asset-transfer-basic/chaincode-go/chaincode/mocks/chaincodestub.go b/asset-transfer-basic/chaincode-go/chaincode/mocks/chaincodestub.go deleted file mode 100644 index 06248e33..00000000 --- a/asset-transfer-basic/chaincode-go/chaincode/mocks/chaincodestub.go +++ /dev/null @@ -1,2991 +0,0 @@ -// Code generated by counterfeiter. DO NOT EDIT. -package mocks - -import ( - "sync" - - "github.com/hyperledger/fabric-chaincode-go/v2/shim" - "github.com/hyperledger/fabric-protos-go-apiv2/peer" - "google.golang.org/protobuf/types/known/timestamppb" -) - -type ChaincodeStub struct { - CreateCompositeKeyStub func(string, []string) (string, error) - createCompositeKeyMutex sync.RWMutex - createCompositeKeyArgsForCall []struct { - arg1 string - arg2 []string - } - createCompositeKeyReturns struct { - result1 string - result2 error - } - createCompositeKeyReturnsOnCall map[int]struct { - result1 string - result2 error - } - DelPrivateDataStub func(string, string) error - delPrivateDataMutex sync.RWMutex - delPrivateDataArgsForCall []struct { - arg1 string - arg2 string - } - delPrivateDataReturns struct { - result1 error - } - delPrivateDataReturnsOnCall map[int]struct { - result1 error - } - DelStateStub func(string) error - delStateMutex sync.RWMutex - delStateArgsForCall []struct { - arg1 string - } - delStateReturns struct { - result1 error - } - delStateReturnsOnCall map[int]struct { - result1 error - } - GetArgsStub func() [][]byte - getArgsMutex sync.RWMutex - getArgsArgsForCall []struct { - } - getArgsReturns struct { - result1 [][]byte - } - getArgsReturnsOnCall map[int]struct { - result1 [][]byte - } - GetArgsSliceStub func() ([]byte, error) - getArgsSliceMutex sync.RWMutex - getArgsSliceArgsForCall []struct { - } - getArgsSliceReturns struct { - result1 []byte - result2 error - } - getArgsSliceReturnsOnCall map[int]struct { - result1 []byte - result2 error - } - GetBindingStub func() ([]byte, error) - getBindingMutex sync.RWMutex - getBindingArgsForCall []struct { - } - getBindingReturns struct { - result1 []byte - result2 error - } - getBindingReturnsOnCall map[int]struct { - result1 []byte - result2 error - } - GetChannelIDStub func() string - getChannelIDMutex sync.RWMutex - getChannelIDArgsForCall []struct { - } - getChannelIDReturns struct { - result1 string - } - getChannelIDReturnsOnCall map[int]struct { - result1 string - } - GetCreatorStub func() ([]byte, error) - getCreatorMutex sync.RWMutex - getCreatorArgsForCall []struct { - } - getCreatorReturns struct { - result1 []byte - result2 error - } - getCreatorReturnsOnCall map[int]struct { - result1 []byte - result2 error - } - GetDecorationsStub func() map[string][]byte - getDecorationsMutex sync.RWMutex - getDecorationsArgsForCall []struct { - } - getDecorationsReturns struct { - result1 map[string][]byte - } - getDecorationsReturnsOnCall map[int]struct { - result1 map[string][]byte - } - GetFunctionAndParametersStub func() (string, []string) - getFunctionAndParametersMutex sync.RWMutex - getFunctionAndParametersArgsForCall []struct { - } - getFunctionAndParametersReturns struct { - result1 string - result2 []string - } - getFunctionAndParametersReturnsOnCall map[int]struct { - result1 string - result2 []string - } - GetHistoryForKeyStub func(string) (shim.HistoryQueryIteratorInterface, error) - getHistoryForKeyMutex sync.RWMutex - getHistoryForKeyArgsForCall []struct { - arg1 string - } - getHistoryForKeyReturns struct { - result1 shim.HistoryQueryIteratorInterface - result2 error - } - getHistoryForKeyReturnsOnCall map[int]struct { - result1 shim.HistoryQueryIteratorInterface - result2 error - } - GetPrivateDataStub func(string, string) ([]byte, error) - getPrivateDataMutex sync.RWMutex - getPrivateDataArgsForCall []struct { - arg1 string - arg2 string - } - getPrivateDataReturns struct { - result1 []byte - result2 error - } - getPrivateDataReturnsOnCall map[int]struct { - result1 []byte - result2 error - } - GetPrivateDataByPartialCompositeKeyStub func(string, string, []string) (shim.StateQueryIteratorInterface, error) - getPrivateDataByPartialCompositeKeyMutex sync.RWMutex - getPrivateDataByPartialCompositeKeyArgsForCall []struct { - arg1 string - arg2 string - arg3 []string - } - getPrivateDataByPartialCompositeKeyReturns struct { - result1 shim.StateQueryIteratorInterface - result2 error - } - getPrivateDataByPartialCompositeKeyReturnsOnCall map[int]struct { - result1 shim.StateQueryIteratorInterface - result2 error - } - GetPrivateDataByRangeStub func(string, string, string) (shim.StateQueryIteratorInterface, error) - getPrivateDataByRangeMutex sync.RWMutex - getPrivateDataByRangeArgsForCall []struct { - arg1 string - arg2 string - arg3 string - } - getPrivateDataByRangeReturns struct { - result1 shim.StateQueryIteratorInterface - result2 error - } - getPrivateDataByRangeReturnsOnCall map[int]struct { - result1 shim.StateQueryIteratorInterface - result2 error - } - GetPrivateDataHashStub func(string, string) ([]byte, error) - getPrivateDataHashMutex sync.RWMutex - getPrivateDataHashArgsForCall []struct { - arg1 string - arg2 string - } - getPrivateDataHashReturns struct { - result1 []byte - result2 error - } - getPrivateDataHashReturnsOnCall map[int]struct { - result1 []byte - result2 error - } - GetPrivateDataQueryResultStub func(string, string) (shim.StateQueryIteratorInterface, error) - getPrivateDataQueryResultMutex sync.RWMutex - getPrivateDataQueryResultArgsForCall []struct { - arg1 string - arg2 string - } - getPrivateDataQueryResultReturns struct { - result1 shim.StateQueryIteratorInterface - result2 error - } - getPrivateDataQueryResultReturnsOnCall map[int]struct { - result1 shim.StateQueryIteratorInterface - result2 error - } - GetPrivateDataValidationParameterStub func(string, string) ([]byte, error) - getPrivateDataValidationParameterMutex sync.RWMutex - getPrivateDataValidationParameterArgsForCall []struct { - arg1 string - arg2 string - } - getPrivateDataValidationParameterReturns struct { - result1 []byte - result2 error - } - getPrivateDataValidationParameterReturnsOnCall map[int]struct { - result1 []byte - result2 error - } - GetQueryResultStub func(string) (shim.StateQueryIteratorInterface, error) - getQueryResultMutex sync.RWMutex - getQueryResultArgsForCall []struct { - arg1 string - } - getQueryResultReturns struct { - result1 shim.StateQueryIteratorInterface - result2 error - } - getQueryResultReturnsOnCall map[int]struct { - result1 shim.StateQueryIteratorInterface - result2 error - } - GetQueryResultWithPaginationStub func(string, int32, string) (shim.StateQueryIteratorInterface, *peer.QueryResponseMetadata, error) - getQueryResultWithPaginationMutex sync.RWMutex - getQueryResultWithPaginationArgsForCall []struct { - arg1 string - arg2 int32 - arg3 string - } - getQueryResultWithPaginationReturns struct { - result1 shim.StateQueryIteratorInterface - result2 *peer.QueryResponseMetadata - result3 error - } - getQueryResultWithPaginationReturnsOnCall map[int]struct { - result1 shim.StateQueryIteratorInterface - result2 *peer.QueryResponseMetadata - result3 error - } - GetSignedProposalStub func() (*peer.SignedProposal, error) - getSignedProposalMutex sync.RWMutex - getSignedProposalArgsForCall []struct { - } - getSignedProposalReturns struct { - result1 *peer.SignedProposal - result2 error - } - getSignedProposalReturnsOnCall map[int]struct { - result1 *peer.SignedProposal - result2 error - } - GetStateStub func(string) ([]byte, error) - getStateMutex sync.RWMutex - getStateArgsForCall []struct { - arg1 string - } - getStateReturns struct { - result1 []byte - result2 error - } - getStateReturnsOnCall map[int]struct { - result1 []byte - result2 error - } - GetStateByPartialCompositeKeyStub func(string, []string) (shim.StateQueryIteratorInterface, error) - getStateByPartialCompositeKeyMutex sync.RWMutex - getStateByPartialCompositeKeyArgsForCall []struct { - arg1 string - arg2 []string - } - getStateByPartialCompositeKeyReturns struct { - result1 shim.StateQueryIteratorInterface - result2 error - } - getStateByPartialCompositeKeyReturnsOnCall map[int]struct { - result1 shim.StateQueryIteratorInterface - result2 error - } - GetStateByPartialCompositeKeyWithPaginationStub func(string, []string, int32, string) (shim.StateQueryIteratorInterface, *peer.QueryResponseMetadata, error) - getStateByPartialCompositeKeyWithPaginationMutex sync.RWMutex - getStateByPartialCompositeKeyWithPaginationArgsForCall []struct { - arg1 string - arg2 []string - arg3 int32 - arg4 string - } - getStateByPartialCompositeKeyWithPaginationReturns struct { - result1 shim.StateQueryIteratorInterface - result2 *peer.QueryResponseMetadata - result3 error - } - getStateByPartialCompositeKeyWithPaginationReturnsOnCall map[int]struct { - result1 shim.StateQueryIteratorInterface - result2 *peer.QueryResponseMetadata - result3 error - } - GetStateByRangeStub func(string, string) (shim.StateQueryIteratorInterface, error) - getStateByRangeMutex sync.RWMutex - getStateByRangeArgsForCall []struct { - arg1 string - arg2 string - } - getStateByRangeReturns struct { - result1 shim.StateQueryIteratorInterface - result2 error - } - getStateByRangeReturnsOnCall map[int]struct { - result1 shim.StateQueryIteratorInterface - result2 error - } - GetStateByRangeWithPaginationStub func(string, string, int32, string) (shim.StateQueryIteratorInterface, *peer.QueryResponseMetadata, error) - getStateByRangeWithPaginationMutex sync.RWMutex - getStateByRangeWithPaginationArgsForCall []struct { - arg1 string - arg2 string - arg3 int32 - arg4 string - } - getStateByRangeWithPaginationReturns struct { - result1 shim.StateQueryIteratorInterface - result2 *peer.QueryResponseMetadata - result3 error - } - getStateByRangeWithPaginationReturnsOnCall map[int]struct { - result1 shim.StateQueryIteratorInterface - result2 *peer.QueryResponseMetadata - result3 error - } - GetStateValidationParameterStub func(string) ([]byte, error) - getStateValidationParameterMutex sync.RWMutex - getStateValidationParameterArgsForCall []struct { - arg1 string - } - getStateValidationParameterReturns struct { - result1 []byte - result2 error - } - getStateValidationParameterReturnsOnCall map[int]struct { - result1 []byte - result2 error - } - GetStringArgsStub func() []string - getStringArgsMutex sync.RWMutex - getStringArgsArgsForCall []struct { - } - getStringArgsReturns struct { - result1 []string - } - getStringArgsReturnsOnCall map[int]struct { - result1 []string - } - GetTransientStub func() (map[string][]byte, error) - getTransientMutex sync.RWMutex - getTransientArgsForCall []struct { - } - getTransientReturns struct { - result1 map[string][]byte - result2 error - } - getTransientReturnsOnCall map[int]struct { - result1 map[string][]byte - result2 error - } - GetTxIDStub func() string - getTxIDMutex sync.RWMutex - getTxIDArgsForCall []struct { - } - getTxIDReturns struct { - result1 string - } - getTxIDReturnsOnCall map[int]struct { - result1 string - } - GetTxTimestampStub func() (*timestamppb.Timestamp, error) - getTxTimestampMutex sync.RWMutex - getTxTimestampArgsForCall []struct { - } - getTxTimestampReturns struct { - result1 *timestamppb.Timestamp - result2 error - } - getTxTimestampReturnsOnCall map[int]struct { - result1 *timestamppb.Timestamp - result2 error - } - InvokeChaincodeStub func(string, [][]byte, string) *peer.Response - invokeChaincodeMutex sync.RWMutex - invokeChaincodeArgsForCall []struct { - arg1 string - arg2 [][]byte - arg3 string - } - invokeChaincodeReturns struct { - result1 *peer.Response - } - invokeChaincodeReturnsOnCall map[int]struct { - result1 *peer.Response - } - PurgePrivateDataStub func(string, string) error - purgePrivateDataMutex sync.RWMutex - purgePrivateDataArgsForCall []struct { - arg1 string - arg2 string - } - purgePrivateDataReturns struct { - result1 error - } - purgePrivateDataReturnsOnCall map[int]struct { - result1 error - } - PutPrivateDataStub func(string, string, []byte) error - putPrivateDataMutex sync.RWMutex - putPrivateDataArgsForCall []struct { - arg1 string - arg2 string - arg3 []byte - } - putPrivateDataReturns struct { - result1 error - } - putPrivateDataReturnsOnCall map[int]struct { - result1 error - } - PutStateStub func(string, []byte) error - putStateMutex sync.RWMutex - putStateArgsForCall []struct { - arg1 string - arg2 []byte - } - putStateReturns struct { - result1 error - } - putStateReturnsOnCall map[int]struct { - result1 error - } - SetEventStub func(string, []byte) error - setEventMutex sync.RWMutex - setEventArgsForCall []struct { - arg1 string - arg2 []byte - } - setEventReturns struct { - result1 error - } - setEventReturnsOnCall map[int]struct { - result1 error - } - SetPrivateDataValidationParameterStub func(string, string, []byte) error - setPrivateDataValidationParameterMutex sync.RWMutex - setPrivateDataValidationParameterArgsForCall []struct { - arg1 string - arg2 string - arg3 []byte - } - setPrivateDataValidationParameterReturns struct { - result1 error - } - setPrivateDataValidationParameterReturnsOnCall map[int]struct { - result1 error - } - SetStateValidationParameterStub func(string, []byte) error - setStateValidationParameterMutex sync.RWMutex - setStateValidationParameterArgsForCall []struct { - arg1 string - arg2 []byte - } - setStateValidationParameterReturns struct { - result1 error - } - setStateValidationParameterReturnsOnCall map[int]struct { - result1 error - } - SplitCompositeKeyStub func(string) (string, []string, error) - splitCompositeKeyMutex sync.RWMutex - splitCompositeKeyArgsForCall []struct { - arg1 string - } - splitCompositeKeyReturns struct { - result1 string - result2 []string - result3 error - } - splitCompositeKeyReturnsOnCall map[int]struct { - result1 string - result2 []string - result3 error - } - invocations map[string][][]interface{} - invocationsMutex sync.RWMutex -} - -func (fake *ChaincodeStub) CreateCompositeKey(arg1 string, arg2 []string) (string, error) { - var arg2Copy []string - if arg2 != nil { - arg2Copy = make([]string, len(arg2)) - copy(arg2Copy, arg2) - } - fake.createCompositeKeyMutex.Lock() - ret, specificReturn := fake.createCompositeKeyReturnsOnCall[len(fake.createCompositeKeyArgsForCall)] - fake.createCompositeKeyArgsForCall = append(fake.createCompositeKeyArgsForCall, struct { - arg1 string - arg2 []string - }{arg1, arg2Copy}) - stub := fake.CreateCompositeKeyStub - fakeReturns := fake.createCompositeKeyReturns - fake.recordInvocation("CreateCompositeKey", []interface{}{arg1, arg2Copy}) - fake.createCompositeKeyMutex.Unlock() - if stub != nil { - return stub(arg1, arg2) - } - if specificReturn { - return ret.result1, ret.result2 - } - return fakeReturns.result1, fakeReturns.result2 -} - -func (fake *ChaincodeStub) CreateCompositeKeyCallCount() int { - fake.createCompositeKeyMutex.RLock() - defer fake.createCompositeKeyMutex.RUnlock() - return len(fake.createCompositeKeyArgsForCall) -} - -func (fake *ChaincodeStub) CreateCompositeKeyCalls(stub func(string, []string) (string, error)) { - fake.createCompositeKeyMutex.Lock() - defer fake.createCompositeKeyMutex.Unlock() - fake.CreateCompositeKeyStub = stub -} - -func (fake *ChaincodeStub) CreateCompositeKeyArgsForCall(i int) (string, []string) { - fake.createCompositeKeyMutex.RLock() - defer fake.createCompositeKeyMutex.RUnlock() - argsForCall := fake.createCompositeKeyArgsForCall[i] - return argsForCall.arg1, argsForCall.arg2 -} - -func (fake *ChaincodeStub) CreateCompositeKeyReturns(result1 string, result2 error) { - fake.createCompositeKeyMutex.Lock() - defer fake.createCompositeKeyMutex.Unlock() - fake.CreateCompositeKeyStub = nil - fake.createCompositeKeyReturns = struct { - result1 string - result2 error - }{result1, result2} -} - -func (fake *ChaincodeStub) CreateCompositeKeyReturnsOnCall(i int, result1 string, result2 error) { - fake.createCompositeKeyMutex.Lock() - defer fake.createCompositeKeyMutex.Unlock() - fake.CreateCompositeKeyStub = nil - if fake.createCompositeKeyReturnsOnCall == nil { - fake.createCompositeKeyReturnsOnCall = make(map[int]struct { - result1 string - result2 error - }) - } - fake.createCompositeKeyReturnsOnCall[i] = struct { - result1 string - result2 error - }{result1, result2} -} - -func (fake *ChaincodeStub) DelPrivateData(arg1 string, arg2 string) error { - fake.delPrivateDataMutex.Lock() - ret, specificReturn := fake.delPrivateDataReturnsOnCall[len(fake.delPrivateDataArgsForCall)] - fake.delPrivateDataArgsForCall = append(fake.delPrivateDataArgsForCall, struct { - arg1 string - arg2 string - }{arg1, arg2}) - stub := fake.DelPrivateDataStub - fakeReturns := fake.delPrivateDataReturns - fake.recordInvocation("DelPrivateData", []interface{}{arg1, arg2}) - fake.delPrivateDataMutex.Unlock() - if stub != nil { - return stub(arg1, arg2) - } - if specificReturn { - return ret.result1 - } - return fakeReturns.result1 -} - -func (fake *ChaincodeStub) DelPrivateDataCallCount() int { - fake.delPrivateDataMutex.RLock() - defer fake.delPrivateDataMutex.RUnlock() - return len(fake.delPrivateDataArgsForCall) -} - -func (fake *ChaincodeStub) DelPrivateDataCalls(stub func(string, string) error) { - fake.delPrivateDataMutex.Lock() - defer fake.delPrivateDataMutex.Unlock() - fake.DelPrivateDataStub = stub -} - -func (fake *ChaincodeStub) DelPrivateDataArgsForCall(i int) (string, string) { - fake.delPrivateDataMutex.RLock() - defer fake.delPrivateDataMutex.RUnlock() - argsForCall := fake.delPrivateDataArgsForCall[i] - return argsForCall.arg1, argsForCall.arg2 -} - -func (fake *ChaincodeStub) DelPrivateDataReturns(result1 error) { - fake.delPrivateDataMutex.Lock() - defer fake.delPrivateDataMutex.Unlock() - fake.DelPrivateDataStub = nil - fake.delPrivateDataReturns = struct { - result1 error - }{result1} -} - -func (fake *ChaincodeStub) DelPrivateDataReturnsOnCall(i int, result1 error) { - fake.delPrivateDataMutex.Lock() - defer fake.delPrivateDataMutex.Unlock() - fake.DelPrivateDataStub = nil - if fake.delPrivateDataReturnsOnCall == nil { - fake.delPrivateDataReturnsOnCall = make(map[int]struct { - result1 error - }) - } - fake.delPrivateDataReturnsOnCall[i] = struct { - result1 error - }{result1} -} - -func (fake *ChaincodeStub) DelState(arg1 string) error { - fake.delStateMutex.Lock() - ret, specificReturn := fake.delStateReturnsOnCall[len(fake.delStateArgsForCall)] - fake.delStateArgsForCall = append(fake.delStateArgsForCall, struct { - arg1 string - }{arg1}) - stub := fake.DelStateStub - fakeReturns := fake.delStateReturns - fake.recordInvocation("DelState", []interface{}{arg1}) - fake.delStateMutex.Unlock() - if stub != nil { - return stub(arg1) - } - if specificReturn { - return ret.result1 - } - return fakeReturns.result1 -} - -func (fake *ChaincodeStub) DelStateCallCount() int { - fake.delStateMutex.RLock() - defer fake.delStateMutex.RUnlock() - return len(fake.delStateArgsForCall) -} - -func (fake *ChaincodeStub) DelStateCalls(stub func(string) error) { - fake.delStateMutex.Lock() - defer fake.delStateMutex.Unlock() - fake.DelStateStub = stub -} - -func (fake *ChaincodeStub) DelStateArgsForCall(i int) string { - fake.delStateMutex.RLock() - defer fake.delStateMutex.RUnlock() - argsForCall := fake.delStateArgsForCall[i] - return argsForCall.arg1 -} - -func (fake *ChaincodeStub) DelStateReturns(result1 error) { - fake.delStateMutex.Lock() - defer fake.delStateMutex.Unlock() - fake.DelStateStub = nil - fake.delStateReturns = struct { - result1 error - }{result1} -} - -func (fake *ChaincodeStub) DelStateReturnsOnCall(i int, result1 error) { - fake.delStateMutex.Lock() - defer fake.delStateMutex.Unlock() - fake.DelStateStub = nil - if fake.delStateReturnsOnCall == nil { - fake.delStateReturnsOnCall = make(map[int]struct { - result1 error - }) - } - fake.delStateReturnsOnCall[i] = struct { - result1 error - }{result1} -} - -func (fake *ChaincodeStub) GetArgs() [][]byte { - fake.getArgsMutex.Lock() - ret, specificReturn := fake.getArgsReturnsOnCall[len(fake.getArgsArgsForCall)] - fake.getArgsArgsForCall = append(fake.getArgsArgsForCall, struct { - }{}) - stub := fake.GetArgsStub - fakeReturns := fake.getArgsReturns - fake.recordInvocation("GetArgs", []interface{}{}) - fake.getArgsMutex.Unlock() - if stub != nil { - return stub() - } - if specificReturn { - return ret.result1 - } - return fakeReturns.result1 -} - -func (fake *ChaincodeStub) GetArgsCallCount() int { - fake.getArgsMutex.RLock() - defer fake.getArgsMutex.RUnlock() - return len(fake.getArgsArgsForCall) -} - -func (fake *ChaincodeStub) GetArgsCalls(stub func() [][]byte) { - fake.getArgsMutex.Lock() - defer fake.getArgsMutex.Unlock() - fake.GetArgsStub = stub -} - -func (fake *ChaincodeStub) GetArgsReturns(result1 [][]byte) { - fake.getArgsMutex.Lock() - defer fake.getArgsMutex.Unlock() - fake.GetArgsStub = nil - fake.getArgsReturns = struct { - result1 [][]byte - }{result1} -} - -func (fake *ChaincodeStub) GetArgsReturnsOnCall(i int, result1 [][]byte) { - fake.getArgsMutex.Lock() - defer fake.getArgsMutex.Unlock() - fake.GetArgsStub = nil - if fake.getArgsReturnsOnCall == nil { - fake.getArgsReturnsOnCall = make(map[int]struct { - result1 [][]byte - }) - } - fake.getArgsReturnsOnCall[i] = struct { - result1 [][]byte - }{result1} -} - -func (fake *ChaincodeStub) GetArgsSlice() ([]byte, error) { - fake.getArgsSliceMutex.Lock() - ret, specificReturn := fake.getArgsSliceReturnsOnCall[len(fake.getArgsSliceArgsForCall)] - fake.getArgsSliceArgsForCall = append(fake.getArgsSliceArgsForCall, struct { - }{}) - stub := fake.GetArgsSliceStub - fakeReturns := fake.getArgsSliceReturns - fake.recordInvocation("GetArgsSlice", []interface{}{}) - fake.getArgsSliceMutex.Unlock() - if stub != nil { - return stub() - } - if specificReturn { - return ret.result1, ret.result2 - } - return fakeReturns.result1, fakeReturns.result2 -} - -func (fake *ChaincodeStub) GetArgsSliceCallCount() int { - fake.getArgsSliceMutex.RLock() - defer fake.getArgsSliceMutex.RUnlock() - return len(fake.getArgsSliceArgsForCall) -} - -func (fake *ChaincodeStub) GetArgsSliceCalls(stub func() ([]byte, error)) { - fake.getArgsSliceMutex.Lock() - defer fake.getArgsSliceMutex.Unlock() - fake.GetArgsSliceStub = stub -} - -func (fake *ChaincodeStub) GetArgsSliceReturns(result1 []byte, result2 error) { - fake.getArgsSliceMutex.Lock() - defer fake.getArgsSliceMutex.Unlock() - fake.GetArgsSliceStub = nil - fake.getArgsSliceReturns = struct { - result1 []byte - result2 error - }{result1, result2} -} - -func (fake *ChaincodeStub) GetArgsSliceReturnsOnCall(i int, result1 []byte, result2 error) { - fake.getArgsSliceMutex.Lock() - defer fake.getArgsSliceMutex.Unlock() - fake.GetArgsSliceStub = nil - if fake.getArgsSliceReturnsOnCall == nil { - fake.getArgsSliceReturnsOnCall = make(map[int]struct { - result1 []byte - result2 error - }) - } - fake.getArgsSliceReturnsOnCall[i] = struct { - result1 []byte - result2 error - }{result1, result2} -} - -func (fake *ChaincodeStub) GetBinding() ([]byte, error) { - fake.getBindingMutex.Lock() - ret, specificReturn := fake.getBindingReturnsOnCall[len(fake.getBindingArgsForCall)] - fake.getBindingArgsForCall = append(fake.getBindingArgsForCall, struct { - }{}) - stub := fake.GetBindingStub - fakeReturns := fake.getBindingReturns - fake.recordInvocation("GetBinding", []interface{}{}) - fake.getBindingMutex.Unlock() - if stub != nil { - return stub() - } - if specificReturn { - return ret.result1, ret.result2 - } - return fakeReturns.result1, fakeReturns.result2 -} - -func (fake *ChaincodeStub) GetBindingCallCount() int { - fake.getBindingMutex.RLock() - defer fake.getBindingMutex.RUnlock() - return len(fake.getBindingArgsForCall) -} - -func (fake *ChaincodeStub) GetBindingCalls(stub func() ([]byte, error)) { - fake.getBindingMutex.Lock() - defer fake.getBindingMutex.Unlock() - fake.GetBindingStub = stub -} - -func (fake *ChaincodeStub) GetBindingReturns(result1 []byte, result2 error) { - fake.getBindingMutex.Lock() - defer fake.getBindingMutex.Unlock() - fake.GetBindingStub = nil - fake.getBindingReturns = struct { - result1 []byte - result2 error - }{result1, result2} -} - -func (fake *ChaincodeStub) GetBindingReturnsOnCall(i int, result1 []byte, result2 error) { - fake.getBindingMutex.Lock() - defer fake.getBindingMutex.Unlock() - fake.GetBindingStub = nil - if fake.getBindingReturnsOnCall == nil { - fake.getBindingReturnsOnCall = make(map[int]struct { - result1 []byte - result2 error - }) - } - fake.getBindingReturnsOnCall[i] = struct { - result1 []byte - result2 error - }{result1, result2} -} - -func (fake *ChaincodeStub) GetChannelID() string { - fake.getChannelIDMutex.Lock() - ret, specificReturn := fake.getChannelIDReturnsOnCall[len(fake.getChannelIDArgsForCall)] - fake.getChannelIDArgsForCall = append(fake.getChannelIDArgsForCall, struct { - }{}) - stub := fake.GetChannelIDStub - fakeReturns := fake.getChannelIDReturns - fake.recordInvocation("GetChannelID", []interface{}{}) - fake.getChannelIDMutex.Unlock() - if stub != nil { - return stub() - } - if specificReturn { - return ret.result1 - } - return fakeReturns.result1 -} - -func (fake *ChaincodeStub) GetChannelIDCallCount() int { - fake.getChannelIDMutex.RLock() - defer fake.getChannelIDMutex.RUnlock() - return len(fake.getChannelIDArgsForCall) -} - -func (fake *ChaincodeStub) GetChannelIDCalls(stub func() string) { - fake.getChannelIDMutex.Lock() - defer fake.getChannelIDMutex.Unlock() - fake.GetChannelIDStub = stub -} - -func (fake *ChaincodeStub) GetChannelIDReturns(result1 string) { - fake.getChannelIDMutex.Lock() - defer fake.getChannelIDMutex.Unlock() - fake.GetChannelIDStub = nil - fake.getChannelIDReturns = struct { - result1 string - }{result1} -} - -func (fake *ChaincodeStub) GetChannelIDReturnsOnCall(i int, result1 string) { - fake.getChannelIDMutex.Lock() - defer fake.getChannelIDMutex.Unlock() - fake.GetChannelIDStub = nil - if fake.getChannelIDReturnsOnCall == nil { - fake.getChannelIDReturnsOnCall = make(map[int]struct { - result1 string - }) - } - fake.getChannelIDReturnsOnCall[i] = struct { - result1 string - }{result1} -} - -func (fake *ChaincodeStub) GetCreator() ([]byte, error) { - fake.getCreatorMutex.Lock() - ret, specificReturn := fake.getCreatorReturnsOnCall[len(fake.getCreatorArgsForCall)] - fake.getCreatorArgsForCall = append(fake.getCreatorArgsForCall, struct { - }{}) - stub := fake.GetCreatorStub - fakeReturns := fake.getCreatorReturns - fake.recordInvocation("GetCreator", []interface{}{}) - fake.getCreatorMutex.Unlock() - if stub != nil { - return stub() - } - if specificReturn { - return ret.result1, ret.result2 - } - return fakeReturns.result1, fakeReturns.result2 -} - -func (fake *ChaincodeStub) GetCreatorCallCount() int { - fake.getCreatorMutex.RLock() - defer fake.getCreatorMutex.RUnlock() - return len(fake.getCreatorArgsForCall) -} - -func (fake *ChaincodeStub) GetCreatorCalls(stub func() ([]byte, error)) { - fake.getCreatorMutex.Lock() - defer fake.getCreatorMutex.Unlock() - fake.GetCreatorStub = stub -} - -func (fake *ChaincodeStub) GetCreatorReturns(result1 []byte, result2 error) { - fake.getCreatorMutex.Lock() - defer fake.getCreatorMutex.Unlock() - fake.GetCreatorStub = nil - fake.getCreatorReturns = struct { - result1 []byte - result2 error - }{result1, result2} -} - -func (fake *ChaincodeStub) GetCreatorReturnsOnCall(i int, result1 []byte, result2 error) { - fake.getCreatorMutex.Lock() - defer fake.getCreatorMutex.Unlock() - fake.GetCreatorStub = nil - if fake.getCreatorReturnsOnCall == nil { - fake.getCreatorReturnsOnCall = make(map[int]struct { - result1 []byte - result2 error - }) - } - fake.getCreatorReturnsOnCall[i] = struct { - result1 []byte - result2 error - }{result1, result2} -} - -func (fake *ChaincodeStub) GetDecorations() map[string][]byte { - fake.getDecorationsMutex.Lock() - ret, specificReturn := fake.getDecorationsReturnsOnCall[len(fake.getDecorationsArgsForCall)] - fake.getDecorationsArgsForCall = append(fake.getDecorationsArgsForCall, struct { - }{}) - stub := fake.GetDecorationsStub - fakeReturns := fake.getDecorationsReturns - fake.recordInvocation("GetDecorations", []interface{}{}) - fake.getDecorationsMutex.Unlock() - if stub != nil { - return stub() - } - if specificReturn { - return ret.result1 - } - return fakeReturns.result1 -} - -func (fake *ChaincodeStub) GetDecorationsCallCount() int { - fake.getDecorationsMutex.RLock() - defer fake.getDecorationsMutex.RUnlock() - return len(fake.getDecorationsArgsForCall) -} - -func (fake *ChaincodeStub) GetDecorationsCalls(stub func() map[string][]byte) { - fake.getDecorationsMutex.Lock() - defer fake.getDecorationsMutex.Unlock() - fake.GetDecorationsStub = stub -} - -func (fake *ChaincodeStub) GetDecorationsReturns(result1 map[string][]byte) { - fake.getDecorationsMutex.Lock() - defer fake.getDecorationsMutex.Unlock() - fake.GetDecorationsStub = nil - fake.getDecorationsReturns = struct { - result1 map[string][]byte - }{result1} -} - -func (fake *ChaincodeStub) GetDecorationsReturnsOnCall(i int, result1 map[string][]byte) { - fake.getDecorationsMutex.Lock() - defer fake.getDecorationsMutex.Unlock() - fake.GetDecorationsStub = nil - if fake.getDecorationsReturnsOnCall == nil { - fake.getDecorationsReturnsOnCall = make(map[int]struct { - result1 map[string][]byte - }) - } - fake.getDecorationsReturnsOnCall[i] = struct { - result1 map[string][]byte - }{result1} -} - -func (fake *ChaincodeStub) GetFunctionAndParameters() (string, []string) { - fake.getFunctionAndParametersMutex.Lock() - ret, specificReturn := fake.getFunctionAndParametersReturnsOnCall[len(fake.getFunctionAndParametersArgsForCall)] - fake.getFunctionAndParametersArgsForCall = append(fake.getFunctionAndParametersArgsForCall, struct { - }{}) - stub := fake.GetFunctionAndParametersStub - fakeReturns := fake.getFunctionAndParametersReturns - fake.recordInvocation("GetFunctionAndParameters", []interface{}{}) - fake.getFunctionAndParametersMutex.Unlock() - if stub != nil { - return stub() - } - if specificReturn { - return ret.result1, ret.result2 - } - return fakeReturns.result1, fakeReturns.result2 -} - -func (fake *ChaincodeStub) GetFunctionAndParametersCallCount() int { - fake.getFunctionAndParametersMutex.RLock() - defer fake.getFunctionAndParametersMutex.RUnlock() - return len(fake.getFunctionAndParametersArgsForCall) -} - -func (fake *ChaincodeStub) GetFunctionAndParametersCalls(stub func() (string, []string)) { - fake.getFunctionAndParametersMutex.Lock() - defer fake.getFunctionAndParametersMutex.Unlock() - fake.GetFunctionAndParametersStub = stub -} - -func (fake *ChaincodeStub) GetFunctionAndParametersReturns(result1 string, result2 []string) { - fake.getFunctionAndParametersMutex.Lock() - defer fake.getFunctionAndParametersMutex.Unlock() - fake.GetFunctionAndParametersStub = nil - fake.getFunctionAndParametersReturns = struct { - result1 string - result2 []string - }{result1, result2} -} - -func (fake *ChaincodeStub) GetFunctionAndParametersReturnsOnCall(i int, result1 string, result2 []string) { - fake.getFunctionAndParametersMutex.Lock() - defer fake.getFunctionAndParametersMutex.Unlock() - fake.GetFunctionAndParametersStub = nil - if fake.getFunctionAndParametersReturnsOnCall == nil { - fake.getFunctionAndParametersReturnsOnCall = make(map[int]struct { - result1 string - result2 []string - }) - } - fake.getFunctionAndParametersReturnsOnCall[i] = struct { - result1 string - result2 []string - }{result1, result2} -} - -func (fake *ChaincodeStub) GetHistoryForKey(arg1 string) (shim.HistoryQueryIteratorInterface, error) { - fake.getHistoryForKeyMutex.Lock() - ret, specificReturn := fake.getHistoryForKeyReturnsOnCall[len(fake.getHistoryForKeyArgsForCall)] - fake.getHistoryForKeyArgsForCall = append(fake.getHistoryForKeyArgsForCall, struct { - arg1 string - }{arg1}) - stub := fake.GetHistoryForKeyStub - fakeReturns := fake.getHistoryForKeyReturns - fake.recordInvocation("GetHistoryForKey", []interface{}{arg1}) - fake.getHistoryForKeyMutex.Unlock() - if stub != nil { - return stub(arg1) - } - if specificReturn { - return ret.result1, ret.result2 - } - return fakeReturns.result1, fakeReturns.result2 -} - -func (fake *ChaincodeStub) GetHistoryForKeyCallCount() int { - fake.getHistoryForKeyMutex.RLock() - defer fake.getHistoryForKeyMutex.RUnlock() - return len(fake.getHistoryForKeyArgsForCall) -} - -func (fake *ChaincodeStub) GetHistoryForKeyCalls(stub func(string) (shim.HistoryQueryIteratorInterface, error)) { - fake.getHistoryForKeyMutex.Lock() - defer fake.getHistoryForKeyMutex.Unlock() - fake.GetHistoryForKeyStub = stub -} - -func (fake *ChaincodeStub) GetHistoryForKeyArgsForCall(i int) string { - fake.getHistoryForKeyMutex.RLock() - defer fake.getHistoryForKeyMutex.RUnlock() - argsForCall := fake.getHistoryForKeyArgsForCall[i] - return argsForCall.arg1 -} - -func (fake *ChaincodeStub) GetHistoryForKeyReturns(result1 shim.HistoryQueryIteratorInterface, result2 error) { - fake.getHistoryForKeyMutex.Lock() - defer fake.getHistoryForKeyMutex.Unlock() - fake.GetHistoryForKeyStub = nil - fake.getHistoryForKeyReturns = struct { - result1 shim.HistoryQueryIteratorInterface - result2 error - }{result1, result2} -} - -func (fake *ChaincodeStub) GetHistoryForKeyReturnsOnCall(i int, result1 shim.HistoryQueryIteratorInterface, result2 error) { - fake.getHistoryForKeyMutex.Lock() - defer fake.getHistoryForKeyMutex.Unlock() - fake.GetHistoryForKeyStub = nil - if fake.getHistoryForKeyReturnsOnCall == nil { - fake.getHistoryForKeyReturnsOnCall = make(map[int]struct { - result1 shim.HistoryQueryIteratorInterface - result2 error - }) - } - fake.getHistoryForKeyReturnsOnCall[i] = struct { - result1 shim.HistoryQueryIteratorInterface - result2 error - }{result1, result2} -} - -func (fake *ChaincodeStub) GetPrivateData(arg1 string, arg2 string) ([]byte, error) { - fake.getPrivateDataMutex.Lock() - ret, specificReturn := fake.getPrivateDataReturnsOnCall[len(fake.getPrivateDataArgsForCall)] - fake.getPrivateDataArgsForCall = append(fake.getPrivateDataArgsForCall, struct { - arg1 string - arg2 string - }{arg1, arg2}) - stub := fake.GetPrivateDataStub - fakeReturns := fake.getPrivateDataReturns - fake.recordInvocation("GetPrivateData", []interface{}{arg1, arg2}) - fake.getPrivateDataMutex.Unlock() - if stub != nil { - return stub(arg1, arg2) - } - if specificReturn { - return ret.result1, ret.result2 - } - return fakeReturns.result1, fakeReturns.result2 -} - -func (fake *ChaincodeStub) GetPrivateDataCallCount() int { - fake.getPrivateDataMutex.RLock() - defer fake.getPrivateDataMutex.RUnlock() - return len(fake.getPrivateDataArgsForCall) -} - -func (fake *ChaincodeStub) GetPrivateDataCalls(stub func(string, string) ([]byte, error)) { - fake.getPrivateDataMutex.Lock() - defer fake.getPrivateDataMutex.Unlock() - fake.GetPrivateDataStub = stub -} - -func (fake *ChaincodeStub) GetPrivateDataArgsForCall(i int) (string, string) { - fake.getPrivateDataMutex.RLock() - defer fake.getPrivateDataMutex.RUnlock() - argsForCall := fake.getPrivateDataArgsForCall[i] - return argsForCall.arg1, argsForCall.arg2 -} - -func (fake *ChaincodeStub) GetPrivateDataReturns(result1 []byte, result2 error) { - fake.getPrivateDataMutex.Lock() - defer fake.getPrivateDataMutex.Unlock() - fake.GetPrivateDataStub = nil - fake.getPrivateDataReturns = struct { - result1 []byte - result2 error - }{result1, result2} -} - -func (fake *ChaincodeStub) GetPrivateDataReturnsOnCall(i int, result1 []byte, result2 error) { - fake.getPrivateDataMutex.Lock() - defer fake.getPrivateDataMutex.Unlock() - fake.GetPrivateDataStub = nil - if fake.getPrivateDataReturnsOnCall == nil { - fake.getPrivateDataReturnsOnCall = make(map[int]struct { - result1 []byte - result2 error - }) - } - fake.getPrivateDataReturnsOnCall[i] = struct { - result1 []byte - result2 error - }{result1, result2} -} - -func (fake *ChaincodeStub) GetPrivateDataByPartialCompositeKey(arg1 string, arg2 string, arg3 []string) (shim.StateQueryIteratorInterface, error) { - var arg3Copy []string - if arg3 != nil { - arg3Copy = make([]string, len(arg3)) - copy(arg3Copy, arg3) - } - fake.getPrivateDataByPartialCompositeKeyMutex.Lock() - ret, specificReturn := fake.getPrivateDataByPartialCompositeKeyReturnsOnCall[len(fake.getPrivateDataByPartialCompositeKeyArgsForCall)] - fake.getPrivateDataByPartialCompositeKeyArgsForCall = append(fake.getPrivateDataByPartialCompositeKeyArgsForCall, struct { - arg1 string - arg2 string - arg3 []string - }{arg1, arg2, arg3Copy}) - stub := fake.GetPrivateDataByPartialCompositeKeyStub - fakeReturns := fake.getPrivateDataByPartialCompositeKeyReturns - fake.recordInvocation("GetPrivateDataByPartialCompositeKey", []interface{}{arg1, arg2, arg3Copy}) - fake.getPrivateDataByPartialCompositeKeyMutex.Unlock() - if stub != nil { - return stub(arg1, arg2, arg3) - } - if specificReturn { - return ret.result1, ret.result2 - } - return fakeReturns.result1, fakeReturns.result2 -} - -func (fake *ChaincodeStub) GetPrivateDataByPartialCompositeKeyCallCount() int { - fake.getPrivateDataByPartialCompositeKeyMutex.RLock() - defer fake.getPrivateDataByPartialCompositeKeyMutex.RUnlock() - return len(fake.getPrivateDataByPartialCompositeKeyArgsForCall) -} - -func (fake *ChaincodeStub) GetPrivateDataByPartialCompositeKeyCalls(stub func(string, string, []string) (shim.StateQueryIteratorInterface, error)) { - fake.getPrivateDataByPartialCompositeKeyMutex.Lock() - defer fake.getPrivateDataByPartialCompositeKeyMutex.Unlock() - fake.GetPrivateDataByPartialCompositeKeyStub = stub -} - -func (fake *ChaincodeStub) GetPrivateDataByPartialCompositeKeyArgsForCall(i int) (string, string, []string) { - fake.getPrivateDataByPartialCompositeKeyMutex.RLock() - defer fake.getPrivateDataByPartialCompositeKeyMutex.RUnlock() - argsForCall := fake.getPrivateDataByPartialCompositeKeyArgsForCall[i] - return argsForCall.arg1, argsForCall.arg2, argsForCall.arg3 -} - -func (fake *ChaincodeStub) GetPrivateDataByPartialCompositeKeyReturns(result1 shim.StateQueryIteratorInterface, result2 error) { - fake.getPrivateDataByPartialCompositeKeyMutex.Lock() - defer fake.getPrivateDataByPartialCompositeKeyMutex.Unlock() - fake.GetPrivateDataByPartialCompositeKeyStub = nil - fake.getPrivateDataByPartialCompositeKeyReturns = struct { - result1 shim.StateQueryIteratorInterface - result2 error - }{result1, result2} -} - -func (fake *ChaincodeStub) GetPrivateDataByPartialCompositeKeyReturnsOnCall(i int, result1 shim.StateQueryIteratorInterface, result2 error) { - fake.getPrivateDataByPartialCompositeKeyMutex.Lock() - defer fake.getPrivateDataByPartialCompositeKeyMutex.Unlock() - fake.GetPrivateDataByPartialCompositeKeyStub = nil - if fake.getPrivateDataByPartialCompositeKeyReturnsOnCall == nil { - fake.getPrivateDataByPartialCompositeKeyReturnsOnCall = make(map[int]struct { - result1 shim.StateQueryIteratorInterface - result2 error - }) - } - fake.getPrivateDataByPartialCompositeKeyReturnsOnCall[i] = struct { - result1 shim.StateQueryIteratorInterface - result2 error - }{result1, result2} -} - -func (fake *ChaincodeStub) GetPrivateDataByRange(arg1 string, arg2 string, arg3 string) (shim.StateQueryIteratorInterface, error) { - fake.getPrivateDataByRangeMutex.Lock() - ret, specificReturn := fake.getPrivateDataByRangeReturnsOnCall[len(fake.getPrivateDataByRangeArgsForCall)] - fake.getPrivateDataByRangeArgsForCall = append(fake.getPrivateDataByRangeArgsForCall, struct { - arg1 string - arg2 string - arg3 string - }{arg1, arg2, arg3}) - stub := fake.GetPrivateDataByRangeStub - fakeReturns := fake.getPrivateDataByRangeReturns - fake.recordInvocation("GetPrivateDataByRange", []interface{}{arg1, arg2, arg3}) - fake.getPrivateDataByRangeMutex.Unlock() - if stub != nil { - return stub(arg1, arg2, arg3) - } - if specificReturn { - return ret.result1, ret.result2 - } - return fakeReturns.result1, fakeReturns.result2 -} - -func (fake *ChaincodeStub) GetPrivateDataByRangeCallCount() int { - fake.getPrivateDataByRangeMutex.RLock() - defer fake.getPrivateDataByRangeMutex.RUnlock() - return len(fake.getPrivateDataByRangeArgsForCall) -} - -func (fake *ChaincodeStub) GetPrivateDataByRangeCalls(stub func(string, string, string) (shim.StateQueryIteratorInterface, error)) { - fake.getPrivateDataByRangeMutex.Lock() - defer fake.getPrivateDataByRangeMutex.Unlock() - fake.GetPrivateDataByRangeStub = stub -} - -func (fake *ChaincodeStub) GetPrivateDataByRangeArgsForCall(i int) (string, string, string) { - fake.getPrivateDataByRangeMutex.RLock() - defer fake.getPrivateDataByRangeMutex.RUnlock() - argsForCall := fake.getPrivateDataByRangeArgsForCall[i] - return argsForCall.arg1, argsForCall.arg2, argsForCall.arg3 -} - -func (fake *ChaincodeStub) GetPrivateDataByRangeReturns(result1 shim.StateQueryIteratorInterface, result2 error) { - fake.getPrivateDataByRangeMutex.Lock() - defer fake.getPrivateDataByRangeMutex.Unlock() - fake.GetPrivateDataByRangeStub = nil - fake.getPrivateDataByRangeReturns = struct { - result1 shim.StateQueryIteratorInterface - result2 error - }{result1, result2} -} - -func (fake *ChaincodeStub) GetPrivateDataByRangeReturnsOnCall(i int, result1 shim.StateQueryIteratorInterface, result2 error) { - fake.getPrivateDataByRangeMutex.Lock() - defer fake.getPrivateDataByRangeMutex.Unlock() - fake.GetPrivateDataByRangeStub = nil - if fake.getPrivateDataByRangeReturnsOnCall == nil { - fake.getPrivateDataByRangeReturnsOnCall = make(map[int]struct { - result1 shim.StateQueryIteratorInterface - result2 error - }) - } - fake.getPrivateDataByRangeReturnsOnCall[i] = struct { - result1 shim.StateQueryIteratorInterface - result2 error - }{result1, result2} -} - -func (fake *ChaincodeStub) GetPrivateDataHash(arg1 string, arg2 string) ([]byte, error) { - fake.getPrivateDataHashMutex.Lock() - ret, specificReturn := fake.getPrivateDataHashReturnsOnCall[len(fake.getPrivateDataHashArgsForCall)] - fake.getPrivateDataHashArgsForCall = append(fake.getPrivateDataHashArgsForCall, struct { - arg1 string - arg2 string - }{arg1, arg2}) - stub := fake.GetPrivateDataHashStub - fakeReturns := fake.getPrivateDataHashReturns - fake.recordInvocation("GetPrivateDataHash", []interface{}{arg1, arg2}) - fake.getPrivateDataHashMutex.Unlock() - if stub != nil { - return stub(arg1, arg2) - } - if specificReturn { - return ret.result1, ret.result2 - } - return fakeReturns.result1, fakeReturns.result2 -} - -func (fake *ChaincodeStub) GetPrivateDataHashCallCount() int { - fake.getPrivateDataHashMutex.RLock() - defer fake.getPrivateDataHashMutex.RUnlock() - return len(fake.getPrivateDataHashArgsForCall) -} - -func (fake *ChaincodeStub) GetPrivateDataHashCalls(stub func(string, string) ([]byte, error)) { - fake.getPrivateDataHashMutex.Lock() - defer fake.getPrivateDataHashMutex.Unlock() - fake.GetPrivateDataHashStub = stub -} - -func (fake *ChaincodeStub) GetPrivateDataHashArgsForCall(i int) (string, string) { - fake.getPrivateDataHashMutex.RLock() - defer fake.getPrivateDataHashMutex.RUnlock() - argsForCall := fake.getPrivateDataHashArgsForCall[i] - return argsForCall.arg1, argsForCall.arg2 -} - -func (fake *ChaincodeStub) GetPrivateDataHashReturns(result1 []byte, result2 error) { - fake.getPrivateDataHashMutex.Lock() - defer fake.getPrivateDataHashMutex.Unlock() - fake.GetPrivateDataHashStub = nil - fake.getPrivateDataHashReturns = struct { - result1 []byte - result2 error - }{result1, result2} -} - -func (fake *ChaincodeStub) GetPrivateDataHashReturnsOnCall(i int, result1 []byte, result2 error) { - fake.getPrivateDataHashMutex.Lock() - defer fake.getPrivateDataHashMutex.Unlock() - fake.GetPrivateDataHashStub = nil - if fake.getPrivateDataHashReturnsOnCall == nil { - fake.getPrivateDataHashReturnsOnCall = make(map[int]struct { - result1 []byte - result2 error - }) - } - fake.getPrivateDataHashReturnsOnCall[i] = struct { - result1 []byte - result2 error - }{result1, result2} -} - -func (fake *ChaincodeStub) GetPrivateDataQueryResult(arg1 string, arg2 string) (shim.StateQueryIteratorInterface, error) { - fake.getPrivateDataQueryResultMutex.Lock() - ret, specificReturn := fake.getPrivateDataQueryResultReturnsOnCall[len(fake.getPrivateDataQueryResultArgsForCall)] - fake.getPrivateDataQueryResultArgsForCall = append(fake.getPrivateDataQueryResultArgsForCall, struct { - arg1 string - arg2 string - }{arg1, arg2}) - stub := fake.GetPrivateDataQueryResultStub - fakeReturns := fake.getPrivateDataQueryResultReturns - fake.recordInvocation("GetPrivateDataQueryResult", []interface{}{arg1, arg2}) - fake.getPrivateDataQueryResultMutex.Unlock() - if stub != nil { - return stub(arg1, arg2) - } - if specificReturn { - return ret.result1, ret.result2 - } - return fakeReturns.result1, fakeReturns.result2 -} - -func (fake *ChaincodeStub) GetPrivateDataQueryResultCallCount() int { - fake.getPrivateDataQueryResultMutex.RLock() - defer fake.getPrivateDataQueryResultMutex.RUnlock() - return len(fake.getPrivateDataQueryResultArgsForCall) -} - -func (fake *ChaincodeStub) GetPrivateDataQueryResultCalls(stub func(string, string) (shim.StateQueryIteratorInterface, error)) { - fake.getPrivateDataQueryResultMutex.Lock() - defer fake.getPrivateDataQueryResultMutex.Unlock() - fake.GetPrivateDataQueryResultStub = stub -} - -func (fake *ChaincodeStub) GetPrivateDataQueryResultArgsForCall(i int) (string, string) { - fake.getPrivateDataQueryResultMutex.RLock() - defer fake.getPrivateDataQueryResultMutex.RUnlock() - argsForCall := fake.getPrivateDataQueryResultArgsForCall[i] - return argsForCall.arg1, argsForCall.arg2 -} - -func (fake *ChaincodeStub) GetPrivateDataQueryResultReturns(result1 shim.StateQueryIteratorInterface, result2 error) { - fake.getPrivateDataQueryResultMutex.Lock() - defer fake.getPrivateDataQueryResultMutex.Unlock() - fake.GetPrivateDataQueryResultStub = nil - fake.getPrivateDataQueryResultReturns = struct { - result1 shim.StateQueryIteratorInterface - result2 error - }{result1, result2} -} - -func (fake *ChaincodeStub) GetPrivateDataQueryResultReturnsOnCall(i int, result1 shim.StateQueryIteratorInterface, result2 error) { - fake.getPrivateDataQueryResultMutex.Lock() - defer fake.getPrivateDataQueryResultMutex.Unlock() - fake.GetPrivateDataQueryResultStub = nil - if fake.getPrivateDataQueryResultReturnsOnCall == nil { - fake.getPrivateDataQueryResultReturnsOnCall = make(map[int]struct { - result1 shim.StateQueryIteratorInterface - result2 error - }) - } - fake.getPrivateDataQueryResultReturnsOnCall[i] = struct { - result1 shim.StateQueryIteratorInterface - result2 error - }{result1, result2} -} - -func (fake *ChaincodeStub) GetPrivateDataValidationParameter(arg1 string, arg2 string) ([]byte, error) { - fake.getPrivateDataValidationParameterMutex.Lock() - ret, specificReturn := fake.getPrivateDataValidationParameterReturnsOnCall[len(fake.getPrivateDataValidationParameterArgsForCall)] - fake.getPrivateDataValidationParameterArgsForCall = append(fake.getPrivateDataValidationParameterArgsForCall, struct { - arg1 string - arg2 string - }{arg1, arg2}) - stub := fake.GetPrivateDataValidationParameterStub - fakeReturns := fake.getPrivateDataValidationParameterReturns - fake.recordInvocation("GetPrivateDataValidationParameter", []interface{}{arg1, arg2}) - fake.getPrivateDataValidationParameterMutex.Unlock() - if stub != nil { - return stub(arg1, arg2) - } - if specificReturn { - return ret.result1, ret.result2 - } - return fakeReturns.result1, fakeReturns.result2 -} - -func (fake *ChaincodeStub) GetPrivateDataValidationParameterCallCount() int { - fake.getPrivateDataValidationParameterMutex.RLock() - defer fake.getPrivateDataValidationParameterMutex.RUnlock() - return len(fake.getPrivateDataValidationParameterArgsForCall) -} - -func (fake *ChaincodeStub) GetPrivateDataValidationParameterCalls(stub func(string, string) ([]byte, error)) { - fake.getPrivateDataValidationParameterMutex.Lock() - defer fake.getPrivateDataValidationParameterMutex.Unlock() - fake.GetPrivateDataValidationParameterStub = stub -} - -func (fake *ChaincodeStub) GetPrivateDataValidationParameterArgsForCall(i int) (string, string) { - fake.getPrivateDataValidationParameterMutex.RLock() - defer fake.getPrivateDataValidationParameterMutex.RUnlock() - argsForCall := fake.getPrivateDataValidationParameterArgsForCall[i] - return argsForCall.arg1, argsForCall.arg2 -} - -func (fake *ChaincodeStub) GetPrivateDataValidationParameterReturns(result1 []byte, result2 error) { - fake.getPrivateDataValidationParameterMutex.Lock() - defer fake.getPrivateDataValidationParameterMutex.Unlock() - fake.GetPrivateDataValidationParameterStub = nil - fake.getPrivateDataValidationParameterReturns = struct { - result1 []byte - result2 error - }{result1, result2} -} - -func (fake *ChaincodeStub) GetPrivateDataValidationParameterReturnsOnCall(i int, result1 []byte, result2 error) { - fake.getPrivateDataValidationParameterMutex.Lock() - defer fake.getPrivateDataValidationParameterMutex.Unlock() - fake.GetPrivateDataValidationParameterStub = nil - if fake.getPrivateDataValidationParameterReturnsOnCall == nil { - fake.getPrivateDataValidationParameterReturnsOnCall = make(map[int]struct { - result1 []byte - result2 error - }) - } - fake.getPrivateDataValidationParameterReturnsOnCall[i] = struct { - result1 []byte - result2 error - }{result1, result2} -} - -func (fake *ChaincodeStub) GetQueryResult(arg1 string) (shim.StateQueryIteratorInterface, error) { - fake.getQueryResultMutex.Lock() - ret, specificReturn := fake.getQueryResultReturnsOnCall[len(fake.getQueryResultArgsForCall)] - fake.getQueryResultArgsForCall = append(fake.getQueryResultArgsForCall, struct { - arg1 string - }{arg1}) - stub := fake.GetQueryResultStub - fakeReturns := fake.getQueryResultReturns - fake.recordInvocation("GetQueryResult", []interface{}{arg1}) - fake.getQueryResultMutex.Unlock() - if stub != nil { - return stub(arg1) - } - if specificReturn { - return ret.result1, ret.result2 - } - return fakeReturns.result1, fakeReturns.result2 -} - -func (fake *ChaincodeStub) GetQueryResultCallCount() int { - fake.getQueryResultMutex.RLock() - defer fake.getQueryResultMutex.RUnlock() - return len(fake.getQueryResultArgsForCall) -} - -func (fake *ChaincodeStub) GetQueryResultCalls(stub func(string) (shim.StateQueryIteratorInterface, error)) { - fake.getQueryResultMutex.Lock() - defer fake.getQueryResultMutex.Unlock() - fake.GetQueryResultStub = stub -} - -func (fake *ChaincodeStub) GetQueryResultArgsForCall(i int) string { - fake.getQueryResultMutex.RLock() - defer fake.getQueryResultMutex.RUnlock() - argsForCall := fake.getQueryResultArgsForCall[i] - return argsForCall.arg1 -} - -func (fake *ChaincodeStub) GetQueryResultReturns(result1 shim.StateQueryIteratorInterface, result2 error) { - fake.getQueryResultMutex.Lock() - defer fake.getQueryResultMutex.Unlock() - fake.GetQueryResultStub = nil - fake.getQueryResultReturns = struct { - result1 shim.StateQueryIteratorInterface - result2 error - }{result1, result2} -} - -func (fake *ChaincodeStub) GetQueryResultReturnsOnCall(i int, result1 shim.StateQueryIteratorInterface, result2 error) { - fake.getQueryResultMutex.Lock() - defer fake.getQueryResultMutex.Unlock() - fake.GetQueryResultStub = nil - if fake.getQueryResultReturnsOnCall == nil { - fake.getQueryResultReturnsOnCall = make(map[int]struct { - result1 shim.StateQueryIteratorInterface - result2 error - }) - } - fake.getQueryResultReturnsOnCall[i] = struct { - result1 shim.StateQueryIteratorInterface - result2 error - }{result1, result2} -} - -func (fake *ChaincodeStub) GetQueryResultWithPagination(arg1 string, arg2 int32, arg3 string) (shim.StateQueryIteratorInterface, *peer.QueryResponseMetadata, error) { - fake.getQueryResultWithPaginationMutex.Lock() - ret, specificReturn := fake.getQueryResultWithPaginationReturnsOnCall[len(fake.getQueryResultWithPaginationArgsForCall)] - fake.getQueryResultWithPaginationArgsForCall = append(fake.getQueryResultWithPaginationArgsForCall, struct { - arg1 string - arg2 int32 - arg3 string - }{arg1, arg2, arg3}) - stub := fake.GetQueryResultWithPaginationStub - fakeReturns := fake.getQueryResultWithPaginationReturns - fake.recordInvocation("GetQueryResultWithPagination", []interface{}{arg1, arg2, arg3}) - fake.getQueryResultWithPaginationMutex.Unlock() - if stub != nil { - return stub(arg1, arg2, arg3) - } - if specificReturn { - return ret.result1, ret.result2, ret.result3 - } - return fakeReturns.result1, fakeReturns.result2, fakeReturns.result3 -} - -func (fake *ChaincodeStub) GetQueryResultWithPaginationCallCount() int { - fake.getQueryResultWithPaginationMutex.RLock() - defer fake.getQueryResultWithPaginationMutex.RUnlock() - return len(fake.getQueryResultWithPaginationArgsForCall) -} - -func (fake *ChaincodeStub) GetQueryResultWithPaginationCalls(stub func(string, int32, string) (shim.StateQueryIteratorInterface, *peer.QueryResponseMetadata, error)) { - fake.getQueryResultWithPaginationMutex.Lock() - defer fake.getQueryResultWithPaginationMutex.Unlock() - fake.GetQueryResultWithPaginationStub = stub -} - -func (fake *ChaincodeStub) GetQueryResultWithPaginationArgsForCall(i int) (string, int32, string) { - fake.getQueryResultWithPaginationMutex.RLock() - defer fake.getQueryResultWithPaginationMutex.RUnlock() - argsForCall := fake.getQueryResultWithPaginationArgsForCall[i] - return argsForCall.arg1, argsForCall.arg2, argsForCall.arg3 -} - -func (fake *ChaincodeStub) GetQueryResultWithPaginationReturns(result1 shim.StateQueryIteratorInterface, result2 *peer.QueryResponseMetadata, result3 error) { - fake.getQueryResultWithPaginationMutex.Lock() - defer fake.getQueryResultWithPaginationMutex.Unlock() - fake.GetQueryResultWithPaginationStub = nil - fake.getQueryResultWithPaginationReturns = struct { - result1 shim.StateQueryIteratorInterface - result2 *peer.QueryResponseMetadata - result3 error - }{result1, result2, result3} -} - -func (fake *ChaincodeStub) GetQueryResultWithPaginationReturnsOnCall(i int, result1 shim.StateQueryIteratorInterface, result2 *peer.QueryResponseMetadata, result3 error) { - fake.getQueryResultWithPaginationMutex.Lock() - defer fake.getQueryResultWithPaginationMutex.Unlock() - fake.GetQueryResultWithPaginationStub = nil - if fake.getQueryResultWithPaginationReturnsOnCall == nil { - fake.getQueryResultWithPaginationReturnsOnCall = make(map[int]struct { - result1 shim.StateQueryIteratorInterface - result2 *peer.QueryResponseMetadata - result3 error - }) - } - fake.getQueryResultWithPaginationReturnsOnCall[i] = struct { - result1 shim.StateQueryIteratorInterface - result2 *peer.QueryResponseMetadata - result3 error - }{result1, result2, result3} -} - -func (fake *ChaincodeStub) GetSignedProposal() (*peer.SignedProposal, error) { - fake.getSignedProposalMutex.Lock() - ret, specificReturn := fake.getSignedProposalReturnsOnCall[len(fake.getSignedProposalArgsForCall)] - fake.getSignedProposalArgsForCall = append(fake.getSignedProposalArgsForCall, struct { - }{}) - stub := fake.GetSignedProposalStub - fakeReturns := fake.getSignedProposalReturns - fake.recordInvocation("GetSignedProposal", []interface{}{}) - fake.getSignedProposalMutex.Unlock() - if stub != nil { - return stub() - } - if specificReturn { - return ret.result1, ret.result2 - } - return fakeReturns.result1, fakeReturns.result2 -} - -func (fake *ChaincodeStub) GetSignedProposalCallCount() int { - fake.getSignedProposalMutex.RLock() - defer fake.getSignedProposalMutex.RUnlock() - return len(fake.getSignedProposalArgsForCall) -} - -func (fake *ChaincodeStub) GetSignedProposalCalls(stub func() (*peer.SignedProposal, error)) { - fake.getSignedProposalMutex.Lock() - defer fake.getSignedProposalMutex.Unlock() - fake.GetSignedProposalStub = stub -} - -func (fake *ChaincodeStub) GetSignedProposalReturns(result1 *peer.SignedProposal, result2 error) { - fake.getSignedProposalMutex.Lock() - defer fake.getSignedProposalMutex.Unlock() - fake.GetSignedProposalStub = nil - fake.getSignedProposalReturns = struct { - result1 *peer.SignedProposal - result2 error - }{result1, result2} -} - -func (fake *ChaincodeStub) GetSignedProposalReturnsOnCall(i int, result1 *peer.SignedProposal, result2 error) { - fake.getSignedProposalMutex.Lock() - defer fake.getSignedProposalMutex.Unlock() - fake.GetSignedProposalStub = nil - if fake.getSignedProposalReturnsOnCall == nil { - fake.getSignedProposalReturnsOnCall = make(map[int]struct { - result1 *peer.SignedProposal - result2 error - }) - } - fake.getSignedProposalReturnsOnCall[i] = struct { - result1 *peer.SignedProposal - result2 error - }{result1, result2} -} - -func (fake *ChaincodeStub) GetState(arg1 string) ([]byte, error) { - fake.getStateMutex.Lock() - ret, specificReturn := fake.getStateReturnsOnCall[len(fake.getStateArgsForCall)] - fake.getStateArgsForCall = append(fake.getStateArgsForCall, struct { - arg1 string - }{arg1}) - stub := fake.GetStateStub - fakeReturns := fake.getStateReturns - fake.recordInvocation("GetState", []interface{}{arg1}) - fake.getStateMutex.Unlock() - if stub != nil { - return stub(arg1) - } - if specificReturn { - return ret.result1, ret.result2 - } - return fakeReturns.result1, fakeReturns.result2 -} - -func (fake *ChaincodeStub) GetStateCallCount() int { - fake.getStateMutex.RLock() - defer fake.getStateMutex.RUnlock() - return len(fake.getStateArgsForCall) -} - -func (fake *ChaincodeStub) GetStateCalls(stub func(string) ([]byte, error)) { - fake.getStateMutex.Lock() - defer fake.getStateMutex.Unlock() - fake.GetStateStub = stub -} - -func (fake *ChaincodeStub) GetStateArgsForCall(i int) string { - fake.getStateMutex.RLock() - defer fake.getStateMutex.RUnlock() - argsForCall := fake.getStateArgsForCall[i] - return argsForCall.arg1 -} - -func (fake *ChaincodeStub) GetStateReturns(result1 []byte, result2 error) { - fake.getStateMutex.Lock() - defer fake.getStateMutex.Unlock() - fake.GetStateStub = nil - fake.getStateReturns = struct { - result1 []byte - result2 error - }{result1, result2} -} - -func (fake *ChaincodeStub) GetStateReturnsOnCall(i int, result1 []byte, result2 error) { - fake.getStateMutex.Lock() - defer fake.getStateMutex.Unlock() - fake.GetStateStub = nil - if fake.getStateReturnsOnCall == nil { - fake.getStateReturnsOnCall = make(map[int]struct { - result1 []byte - result2 error - }) - } - fake.getStateReturnsOnCall[i] = struct { - result1 []byte - result2 error - }{result1, result2} -} - -func (fake *ChaincodeStub) GetStateByPartialCompositeKey(arg1 string, arg2 []string) (shim.StateQueryIteratorInterface, error) { - var arg2Copy []string - if arg2 != nil { - arg2Copy = make([]string, len(arg2)) - copy(arg2Copy, arg2) - } - fake.getStateByPartialCompositeKeyMutex.Lock() - ret, specificReturn := fake.getStateByPartialCompositeKeyReturnsOnCall[len(fake.getStateByPartialCompositeKeyArgsForCall)] - fake.getStateByPartialCompositeKeyArgsForCall = append(fake.getStateByPartialCompositeKeyArgsForCall, struct { - arg1 string - arg2 []string - }{arg1, arg2Copy}) - stub := fake.GetStateByPartialCompositeKeyStub - fakeReturns := fake.getStateByPartialCompositeKeyReturns - fake.recordInvocation("GetStateByPartialCompositeKey", []interface{}{arg1, arg2Copy}) - fake.getStateByPartialCompositeKeyMutex.Unlock() - if stub != nil { - return stub(arg1, arg2) - } - if specificReturn { - return ret.result1, ret.result2 - } - return fakeReturns.result1, fakeReturns.result2 -} - -func (fake *ChaincodeStub) GetStateByPartialCompositeKeyCallCount() int { - fake.getStateByPartialCompositeKeyMutex.RLock() - defer fake.getStateByPartialCompositeKeyMutex.RUnlock() - return len(fake.getStateByPartialCompositeKeyArgsForCall) -} - -func (fake *ChaincodeStub) GetStateByPartialCompositeKeyCalls(stub func(string, []string) (shim.StateQueryIteratorInterface, error)) { - fake.getStateByPartialCompositeKeyMutex.Lock() - defer fake.getStateByPartialCompositeKeyMutex.Unlock() - fake.GetStateByPartialCompositeKeyStub = stub -} - -func (fake *ChaincodeStub) GetStateByPartialCompositeKeyArgsForCall(i int) (string, []string) { - fake.getStateByPartialCompositeKeyMutex.RLock() - defer fake.getStateByPartialCompositeKeyMutex.RUnlock() - argsForCall := fake.getStateByPartialCompositeKeyArgsForCall[i] - return argsForCall.arg1, argsForCall.arg2 -} - -func (fake *ChaincodeStub) GetStateByPartialCompositeKeyReturns(result1 shim.StateQueryIteratorInterface, result2 error) { - fake.getStateByPartialCompositeKeyMutex.Lock() - defer fake.getStateByPartialCompositeKeyMutex.Unlock() - fake.GetStateByPartialCompositeKeyStub = nil - fake.getStateByPartialCompositeKeyReturns = struct { - result1 shim.StateQueryIteratorInterface - result2 error - }{result1, result2} -} - -func (fake *ChaincodeStub) GetStateByPartialCompositeKeyReturnsOnCall(i int, result1 shim.StateQueryIteratorInterface, result2 error) { - fake.getStateByPartialCompositeKeyMutex.Lock() - defer fake.getStateByPartialCompositeKeyMutex.Unlock() - fake.GetStateByPartialCompositeKeyStub = nil - if fake.getStateByPartialCompositeKeyReturnsOnCall == nil { - fake.getStateByPartialCompositeKeyReturnsOnCall = make(map[int]struct { - result1 shim.StateQueryIteratorInterface - result2 error - }) - } - fake.getStateByPartialCompositeKeyReturnsOnCall[i] = struct { - result1 shim.StateQueryIteratorInterface - result2 error - }{result1, result2} -} - -func (fake *ChaincodeStub) GetStateByPartialCompositeKeyWithPagination(arg1 string, arg2 []string, arg3 int32, arg4 string) (shim.StateQueryIteratorInterface, *peer.QueryResponseMetadata, error) { - var arg2Copy []string - if arg2 != nil { - arg2Copy = make([]string, len(arg2)) - copy(arg2Copy, arg2) - } - fake.getStateByPartialCompositeKeyWithPaginationMutex.Lock() - ret, specificReturn := fake.getStateByPartialCompositeKeyWithPaginationReturnsOnCall[len(fake.getStateByPartialCompositeKeyWithPaginationArgsForCall)] - fake.getStateByPartialCompositeKeyWithPaginationArgsForCall = append(fake.getStateByPartialCompositeKeyWithPaginationArgsForCall, struct { - arg1 string - arg2 []string - arg3 int32 - arg4 string - }{arg1, arg2Copy, arg3, arg4}) - stub := fake.GetStateByPartialCompositeKeyWithPaginationStub - fakeReturns := fake.getStateByPartialCompositeKeyWithPaginationReturns - fake.recordInvocation("GetStateByPartialCompositeKeyWithPagination", []interface{}{arg1, arg2Copy, arg3, arg4}) - fake.getStateByPartialCompositeKeyWithPaginationMutex.Unlock() - if stub != nil { - return stub(arg1, arg2, arg3, arg4) - } - if specificReturn { - return ret.result1, ret.result2, ret.result3 - } - return fakeReturns.result1, fakeReturns.result2, fakeReturns.result3 -} - -func (fake *ChaincodeStub) GetStateByPartialCompositeKeyWithPaginationCallCount() int { - fake.getStateByPartialCompositeKeyWithPaginationMutex.RLock() - defer fake.getStateByPartialCompositeKeyWithPaginationMutex.RUnlock() - return len(fake.getStateByPartialCompositeKeyWithPaginationArgsForCall) -} - -func (fake *ChaincodeStub) GetStateByPartialCompositeKeyWithPaginationCalls(stub func(string, []string, int32, string) (shim.StateQueryIteratorInterface, *peer.QueryResponseMetadata, error)) { - fake.getStateByPartialCompositeKeyWithPaginationMutex.Lock() - defer fake.getStateByPartialCompositeKeyWithPaginationMutex.Unlock() - fake.GetStateByPartialCompositeKeyWithPaginationStub = stub -} - -func (fake *ChaincodeStub) GetStateByPartialCompositeKeyWithPaginationArgsForCall(i int) (string, []string, int32, string) { - fake.getStateByPartialCompositeKeyWithPaginationMutex.RLock() - defer fake.getStateByPartialCompositeKeyWithPaginationMutex.RUnlock() - argsForCall := fake.getStateByPartialCompositeKeyWithPaginationArgsForCall[i] - return argsForCall.arg1, argsForCall.arg2, argsForCall.arg3, argsForCall.arg4 -} - -func (fake *ChaincodeStub) GetStateByPartialCompositeKeyWithPaginationReturns(result1 shim.StateQueryIteratorInterface, result2 *peer.QueryResponseMetadata, result3 error) { - fake.getStateByPartialCompositeKeyWithPaginationMutex.Lock() - defer fake.getStateByPartialCompositeKeyWithPaginationMutex.Unlock() - fake.GetStateByPartialCompositeKeyWithPaginationStub = nil - fake.getStateByPartialCompositeKeyWithPaginationReturns = struct { - result1 shim.StateQueryIteratorInterface - result2 *peer.QueryResponseMetadata - result3 error - }{result1, result2, result3} -} - -func (fake *ChaincodeStub) GetStateByPartialCompositeKeyWithPaginationReturnsOnCall(i int, result1 shim.StateQueryIteratorInterface, result2 *peer.QueryResponseMetadata, result3 error) { - fake.getStateByPartialCompositeKeyWithPaginationMutex.Lock() - defer fake.getStateByPartialCompositeKeyWithPaginationMutex.Unlock() - fake.GetStateByPartialCompositeKeyWithPaginationStub = nil - if fake.getStateByPartialCompositeKeyWithPaginationReturnsOnCall == nil { - fake.getStateByPartialCompositeKeyWithPaginationReturnsOnCall = make(map[int]struct { - result1 shim.StateQueryIteratorInterface - result2 *peer.QueryResponseMetadata - result3 error - }) - } - fake.getStateByPartialCompositeKeyWithPaginationReturnsOnCall[i] = struct { - result1 shim.StateQueryIteratorInterface - result2 *peer.QueryResponseMetadata - result3 error - }{result1, result2, result3} -} - -func (fake *ChaincodeStub) GetStateByRange(arg1 string, arg2 string) (shim.StateQueryIteratorInterface, error) { - fake.getStateByRangeMutex.Lock() - ret, specificReturn := fake.getStateByRangeReturnsOnCall[len(fake.getStateByRangeArgsForCall)] - fake.getStateByRangeArgsForCall = append(fake.getStateByRangeArgsForCall, struct { - arg1 string - arg2 string - }{arg1, arg2}) - stub := fake.GetStateByRangeStub - fakeReturns := fake.getStateByRangeReturns - fake.recordInvocation("GetStateByRange", []interface{}{arg1, arg2}) - fake.getStateByRangeMutex.Unlock() - if stub != nil { - return stub(arg1, arg2) - } - if specificReturn { - return ret.result1, ret.result2 - } - return fakeReturns.result1, fakeReturns.result2 -} - -func (fake *ChaincodeStub) GetStateByRangeCallCount() int { - fake.getStateByRangeMutex.RLock() - defer fake.getStateByRangeMutex.RUnlock() - return len(fake.getStateByRangeArgsForCall) -} - -func (fake *ChaincodeStub) GetStateByRangeCalls(stub func(string, string) (shim.StateQueryIteratorInterface, error)) { - fake.getStateByRangeMutex.Lock() - defer fake.getStateByRangeMutex.Unlock() - fake.GetStateByRangeStub = stub -} - -func (fake *ChaincodeStub) GetStateByRangeArgsForCall(i int) (string, string) { - fake.getStateByRangeMutex.RLock() - defer fake.getStateByRangeMutex.RUnlock() - argsForCall := fake.getStateByRangeArgsForCall[i] - return argsForCall.arg1, argsForCall.arg2 -} - -func (fake *ChaincodeStub) GetStateByRangeReturns(result1 shim.StateQueryIteratorInterface, result2 error) { - fake.getStateByRangeMutex.Lock() - defer fake.getStateByRangeMutex.Unlock() - fake.GetStateByRangeStub = nil - fake.getStateByRangeReturns = struct { - result1 shim.StateQueryIteratorInterface - result2 error - }{result1, result2} -} - -func (fake *ChaincodeStub) GetStateByRangeReturnsOnCall(i int, result1 shim.StateQueryIteratorInterface, result2 error) { - fake.getStateByRangeMutex.Lock() - defer fake.getStateByRangeMutex.Unlock() - fake.GetStateByRangeStub = nil - if fake.getStateByRangeReturnsOnCall == nil { - fake.getStateByRangeReturnsOnCall = make(map[int]struct { - result1 shim.StateQueryIteratorInterface - result2 error - }) - } - fake.getStateByRangeReturnsOnCall[i] = struct { - result1 shim.StateQueryIteratorInterface - result2 error - }{result1, result2} -} - -func (fake *ChaincodeStub) GetStateByRangeWithPagination(arg1 string, arg2 string, arg3 int32, arg4 string) (shim.StateQueryIteratorInterface, *peer.QueryResponseMetadata, error) { - fake.getStateByRangeWithPaginationMutex.Lock() - ret, specificReturn := fake.getStateByRangeWithPaginationReturnsOnCall[len(fake.getStateByRangeWithPaginationArgsForCall)] - fake.getStateByRangeWithPaginationArgsForCall = append(fake.getStateByRangeWithPaginationArgsForCall, struct { - arg1 string - arg2 string - arg3 int32 - arg4 string - }{arg1, arg2, arg3, arg4}) - stub := fake.GetStateByRangeWithPaginationStub - fakeReturns := fake.getStateByRangeWithPaginationReturns - fake.recordInvocation("GetStateByRangeWithPagination", []interface{}{arg1, arg2, arg3, arg4}) - fake.getStateByRangeWithPaginationMutex.Unlock() - if stub != nil { - return stub(arg1, arg2, arg3, arg4) - } - if specificReturn { - return ret.result1, ret.result2, ret.result3 - } - return fakeReturns.result1, fakeReturns.result2, fakeReturns.result3 -} - -func (fake *ChaincodeStub) GetStateByRangeWithPaginationCallCount() int { - fake.getStateByRangeWithPaginationMutex.RLock() - defer fake.getStateByRangeWithPaginationMutex.RUnlock() - return len(fake.getStateByRangeWithPaginationArgsForCall) -} - -func (fake *ChaincodeStub) GetStateByRangeWithPaginationCalls(stub func(string, string, int32, string) (shim.StateQueryIteratorInterface, *peer.QueryResponseMetadata, error)) { - fake.getStateByRangeWithPaginationMutex.Lock() - defer fake.getStateByRangeWithPaginationMutex.Unlock() - fake.GetStateByRangeWithPaginationStub = stub -} - -func (fake *ChaincodeStub) GetStateByRangeWithPaginationArgsForCall(i int) (string, string, int32, string) { - fake.getStateByRangeWithPaginationMutex.RLock() - defer fake.getStateByRangeWithPaginationMutex.RUnlock() - argsForCall := fake.getStateByRangeWithPaginationArgsForCall[i] - return argsForCall.arg1, argsForCall.arg2, argsForCall.arg3, argsForCall.arg4 -} - -func (fake *ChaincodeStub) GetStateByRangeWithPaginationReturns(result1 shim.StateQueryIteratorInterface, result2 *peer.QueryResponseMetadata, result3 error) { - fake.getStateByRangeWithPaginationMutex.Lock() - defer fake.getStateByRangeWithPaginationMutex.Unlock() - fake.GetStateByRangeWithPaginationStub = nil - fake.getStateByRangeWithPaginationReturns = struct { - result1 shim.StateQueryIteratorInterface - result2 *peer.QueryResponseMetadata - result3 error - }{result1, result2, result3} -} - -func (fake *ChaincodeStub) GetStateByRangeWithPaginationReturnsOnCall(i int, result1 shim.StateQueryIteratorInterface, result2 *peer.QueryResponseMetadata, result3 error) { - fake.getStateByRangeWithPaginationMutex.Lock() - defer fake.getStateByRangeWithPaginationMutex.Unlock() - fake.GetStateByRangeWithPaginationStub = nil - if fake.getStateByRangeWithPaginationReturnsOnCall == nil { - fake.getStateByRangeWithPaginationReturnsOnCall = make(map[int]struct { - result1 shim.StateQueryIteratorInterface - result2 *peer.QueryResponseMetadata - result3 error - }) - } - fake.getStateByRangeWithPaginationReturnsOnCall[i] = struct { - result1 shim.StateQueryIteratorInterface - result2 *peer.QueryResponseMetadata - result3 error - }{result1, result2, result3} -} - -func (fake *ChaincodeStub) GetStateValidationParameter(arg1 string) ([]byte, error) { - fake.getStateValidationParameterMutex.Lock() - ret, specificReturn := fake.getStateValidationParameterReturnsOnCall[len(fake.getStateValidationParameterArgsForCall)] - fake.getStateValidationParameterArgsForCall = append(fake.getStateValidationParameterArgsForCall, struct { - arg1 string - }{arg1}) - stub := fake.GetStateValidationParameterStub - fakeReturns := fake.getStateValidationParameterReturns - fake.recordInvocation("GetStateValidationParameter", []interface{}{arg1}) - fake.getStateValidationParameterMutex.Unlock() - if stub != nil { - return stub(arg1) - } - if specificReturn { - return ret.result1, ret.result2 - } - return fakeReturns.result1, fakeReturns.result2 -} - -func (fake *ChaincodeStub) GetStateValidationParameterCallCount() int { - fake.getStateValidationParameterMutex.RLock() - defer fake.getStateValidationParameterMutex.RUnlock() - return len(fake.getStateValidationParameterArgsForCall) -} - -func (fake *ChaincodeStub) GetStateValidationParameterCalls(stub func(string) ([]byte, error)) { - fake.getStateValidationParameterMutex.Lock() - defer fake.getStateValidationParameterMutex.Unlock() - fake.GetStateValidationParameterStub = stub -} - -func (fake *ChaincodeStub) GetStateValidationParameterArgsForCall(i int) string { - fake.getStateValidationParameterMutex.RLock() - defer fake.getStateValidationParameterMutex.RUnlock() - argsForCall := fake.getStateValidationParameterArgsForCall[i] - return argsForCall.arg1 -} - -func (fake *ChaincodeStub) GetStateValidationParameterReturns(result1 []byte, result2 error) { - fake.getStateValidationParameterMutex.Lock() - defer fake.getStateValidationParameterMutex.Unlock() - fake.GetStateValidationParameterStub = nil - fake.getStateValidationParameterReturns = struct { - result1 []byte - result2 error - }{result1, result2} -} - -func (fake *ChaincodeStub) GetStateValidationParameterReturnsOnCall(i int, result1 []byte, result2 error) { - fake.getStateValidationParameterMutex.Lock() - defer fake.getStateValidationParameterMutex.Unlock() - fake.GetStateValidationParameterStub = nil - if fake.getStateValidationParameterReturnsOnCall == nil { - fake.getStateValidationParameterReturnsOnCall = make(map[int]struct { - result1 []byte - result2 error - }) - } - fake.getStateValidationParameterReturnsOnCall[i] = struct { - result1 []byte - result2 error - }{result1, result2} -} - -func (fake *ChaincodeStub) GetStringArgs() []string { - fake.getStringArgsMutex.Lock() - ret, specificReturn := fake.getStringArgsReturnsOnCall[len(fake.getStringArgsArgsForCall)] - fake.getStringArgsArgsForCall = append(fake.getStringArgsArgsForCall, struct { - }{}) - stub := fake.GetStringArgsStub - fakeReturns := fake.getStringArgsReturns - fake.recordInvocation("GetStringArgs", []interface{}{}) - fake.getStringArgsMutex.Unlock() - if stub != nil { - return stub() - } - if specificReturn { - return ret.result1 - } - return fakeReturns.result1 -} - -func (fake *ChaincodeStub) GetStringArgsCallCount() int { - fake.getStringArgsMutex.RLock() - defer fake.getStringArgsMutex.RUnlock() - return len(fake.getStringArgsArgsForCall) -} - -func (fake *ChaincodeStub) GetStringArgsCalls(stub func() []string) { - fake.getStringArgsMutex.Lock() - defer fake.getStringArgsMutex.Unlock() - fake.GetStringArgsStub = stub -} - -func (fake *ChaincodeStub) GetStringArgsReturns(result1 []string) { - fake.getStringArgsMutex.Lock() - defer fake.getStringArgsMutex.Unlock() - fake.GetStringArgsStub = nil - fake.getStringArgsReturns = struct { - result1 []string - }{result1} -} - -func (fake *ChaincodeStub) GetStringArgsReturnsOnCall(i int, result1 []string) { - fake.getStringArgsMutex.Lock() - defer fake.getStringArgsMutex.Unlock() - fake.GetStringArgsStub = nil - if fake.getStringArgsReturnsOnCall == nil { - fake.getStringArgsReturnsOnCall = make(map[int]struct { - result1 []string - }) - } - fake.getStringArgsReturnsOnCall[i] = struct { - result1 []string - }{result1} -} - -func (fake *ChaincodeStub) GetTransient() (map[string][]byte, error) { - fake.getTransientMutex.Lock() - ret, specificReturn := fake.getTransientReturnsOnCall[len(fake.getTransientArgsForCall)] - fake.getTransientArgsForCall = append(fake.getTransientArgsForCall, struct { - }{}) - stub := fake.GetTransientStub - fakeReturns := fake.getTransientReturns - fake.recordInvocation("GetTransient", []interface{}{}) - fake.getTransientMutex.Unlock() - if stub != nil { - return stub() - } - if specificReturn { - return ret.result1, ret.result2 - } - return fakeReturns.result1, fakeReturns.result2 -} - -func (fake *ChaincodeStub) GetTransientCallCount() int { - fake.getTransientMutex.RLock() - defer fake.getTransientMutex.RUnlock() - return len(fake.getTransientArgsForCall) -} - -func (fake *ChaincodeStub) GetTransientCalls(stub func() (map[string][]byte, error)) { - fake.getTransientMutex.Lock() - defer fake.getTransientMutex.Unlock() - fake.GetTransientStub = stub -} - -func (fake *ChaincodeStub) GetTransientReturns(result1 map[string][]byte, result2 error) { - fake.getTransientMutex.Lock() - defer fake.getTransientMutex.Unlock() - fake.GetTransientStub = nil - fake.getTransientReturns = struct { - result1 map[string][]byte - result2 error - }{result1, result2} -} - -func (fake *ChaincodeStub) GetTransientReturnsOnCall(i int, result1 map[string][]byte, result2 error) { - fake.getTransientMutex.Lock() - defer fake.getTransientMutex.Unlock() - fake.GetTransientStub = nil - if fake.getTransientReturnsOnCall == nil { - fake.getTransientReturnsOnCall = make(map[int]struct { - result1 map[string][]byte - result2 error - }) - } - fake.getTransientReturnsOnCall[i] = struct { - result1 map[string][]byte - result2 error - }{result1, result2} -} - -func (fake *ChaincodeStub) GetTxID() string { - fake.getTxIDMutex.Lock() - ret, specificReturn := fake.getTxIDReturnsOnCall[len(fake.getTxIDArgsForCall)] - fake.getTxIDArgsForCall = append(fake.getTxIDArgsForCall, struct { - }{}) - stub := fake.GetTxIDStub - fakeReturns := fake.getTxIDReturns - fake.recordInvocation("GetTxID", []interface{}{}) - fake.getTxIDMutex.Unlock() - if stub != nil { - return stub() - } - if specificReturn { - return ret.result1 - } - return fakeReturns.result1 -} - -func (fake *ChaincodeStub) GetTxIDCallCount() int { - fake.getTxIDMutex.RLock() - defer fake.getTxIDMutex.RUnlock() - return len(fake.getTxIDArgsForCall) -} - -func (fake *ChaincodeStub) GetTxIDCalls(stub func() string) { - fake.getTxIDMutex.Lock() - defer fake.getTxIDMutex.Unlock() - fake.GetTxIDStub = stub -} - -func (fake *ChaincodeStub) GetTxIDReturns(result1 string) { - fake.getTxIDMutex.Lock() - defer fake.getTxIDMutex.Unlock() - fake.GetTxIDStub = nil - fake.getTxIDReturns = struct { - result1 string - }{result1} -} - -func (fake *ChaincodeStub) GetTxIDReturnsOnCall(i int, result1 string) { - fake.getTxIDMutex.Lock() - defer fake.getTxIDMutex.Unlock() - fake.GetTxIDStub = nil - if fake.getTxIDReturnsOnCall == nil { - fake.getTxIDReturnsOnCall = make(map[int]struct { - result1 string - }) - } - fake.getTxIDReturnsOnCall[i] = struct { - result1 string - }{result1} -} - -func (fake *ChaincodeStub) GetTxTimestamp() (*timestamppb.Timestamp, error) { - fake.getTxTimestampMutex.Lock() - ret, specificReturn := fake.getTxTimestampReturnsOnCall[len(fake.getTxTimestampArgsForCall)] - fake.getTxTimestampArgsForCall = append(fake.getTxTimestampArgsForCall, struct { - }{}) - stub := fake.GetTxTimestampStub - fakeReturns := fake.getTxTimestampReturns - fake.recordInvocation("GetTxTimestamp", []interface{}{}) - fake.getTxTimestampMutex.Unlock() - if stub != nil { - return stub() - } - if specificReturn { - return ret.result1, ret.result2 - } - return fakeReturns.result1, fakeReturns.result2 -} - -func (fake *ChaincodeStub) GetTxTimestampCallCount() int { - fake.getTxTimestampMutex.RLock() - defer fake.getTxTimestampMutex.RUnlock() - return len(fake.getTxTimestampArgsForCall) -} - -func (fake *ChaincodeStub) GetTxTimestampCalls(stub func() (*timestamppb.Timestamp, error)) { - fake.getTxTimestampMutex.Lock() - defer fake.getTxTimestampMutex.Unlock() - fake.GetTxTimestampStub = stub -} - -func (fake *ChaincodeStub) GetTxTimestampReturns(result1 *timestamppb.Timestamp, result2 error) { - fake.getTxTimestampMutex.Lock() - defer fake.getTxTimestampMutex.Unlock() - fake.GetTxTimestampStub = nil - fake.getTxTimestampReturns = struct { - result1 *timestamppb.Timestamp - result2 error - }{result1, result2} -} - -func (fake *ChaincodeStub) GetTxTimestampReturnsOnCall(i int, result1 *timestamppb.Timestamp, result2 error) { - fake.getTxTimestampMutex.Lock() - defer fake.getTxTimestampMutex.Unlock() - fake.GetTxTimestampStub = nil - if fake.getTxTimestampReturnsOnCall == nil { - fake.getTxTimestampReturnsOnCall = make(map[int]struct { - result1 *timestamppb.Timestamp - result2 error - }) - } - fake.getTxTimestampReturnsOnCall[i] = struct { - result1 *timestamppb.Timestamp - result2 error - }{result1, result2} -} - -func (fake *ChaincodeStub) InvokeChaincode(arg1 string, arg2 [][]byte, arg3 string) *peer.Response { - var arg2Copy [][]byte - if arg2 != nil { - arg2Copy = make([][]byte, len(arg2)) - copy(arg2Copy, arg2) - } - fake.invokeChaincodeMutex.Lock() - ret, specificReturn := fake.invokeChaincodeReturnsOnCall[len(fake.invokeChaincodeArgsForCall)] - fake.invokeChaincodeArgsForCall = append(fake.invokeChaincodeArgsForCall, struct { - arg1 string - arg2 [][]byte - arg3 string - }{arg1, arg2Copy, arg3}) - stub := fake.InvokeChaincodeStub - fakeReturns := fake.invokeChaincodeReturns - fake.recordInvocation("InvokeChaincode", []interface{}{arg1, arg2Copy, arg3}) - fake.invokeChaincodeMutex.Unlock() - if stub != nil { - return stub(arg1, arg2, arg3) - } - if specificReturn { - return ret.result1 - } - return fakeReturns.result1 -} - -func (fake *ChaincodeStub) InvokeChaincodeCallCount() int { - fake.invokeChaincodeMutex.RLock() - defer fake.invokeChaincodeMutex.RUnlock() - return len(fake.invokeChaincodeArgsForCall) -} - -func (fake *ChaincodeStub) InvokeChaincodeCalls(stub func(string, [][]byte, string) *peer.Response) { - fake.invokeChaincodeMutex.Lock() - defer fake.invokeChaincodeMutex.Unlock() - fake.InvokeChaincodeStub = stub -} - -func (fake *ChaincodeStub) InvokeChaincodeArgsForCall(i int) (string, [][]byte, string) { - fake.invokeChaincodeMutex.RLock() - defer fake.invokeChaincodeMutex.RUnlock() - argsForCall := fake.invokeChaincodeArgsForCall[i] - return argsForCall.arg1, argsForCall.arg2, argsForCall.arg3 -} - -func (fake *ChaincodeStub) InvokeChaincodeReturns(result1 *peer.Response) { - fake.invokeChaincodeMutex.Lock() - defer fake.invokeChaincodeMutex.Unlock() - fake.InvokeChaincodeStub = nil - fake.invokeChaincodeReturns = struct { - result1 *peer.Response - }{result1} -} - -func (fake *ChaincodeStub) InvokeChaincodeReturnsOnCall(i int, result1 *peer.Response) { - fake.invokeChaincodeMutex.Lock() - defer fake.invokeChaincodeMutex.Unlock() - fake.InvokeChaincodeStub = nil - if fake.invokeChaincodeReturnsOnCall == nil { - fake.invokeChaincodeReturnsOnCall = make(map[int]struct { - result1 *peer.Response - }) - } - fake.invokeChaincodeReturnsOnCall[i] = struct { - result1 *peer.Response - }{result1} -} - -func (fake *ChaincodeStub) PurgePrivateData(arg1 string, arg2 string) error { - fake.purgePrivateDataMutex.Lock() - ret, specificReturn := fake.purgePrivateDataReturnsOnCall[len(fake.purgePrivateDataArgsForCall)] - fake.purgePrivateDataArgsForCall = append(fake.purgePrivateDataArgsForCall, struct { - arg1 string - arg2 string - }{arg1, arg2}) - stub := fake.PurgePrivateDataStub - fakeReturns := fake.purgePrivateDataReturns - fake.recordInvocation("PurgePrivateData", []interface{}{arg1, arg2}) - fake.purgePrivateDataMutex.Unlock() - if stub != nil { - return stub(arg1, arg2) - } - if specificReturn { - return ret.result1 - } - return fakeReturns.result1 -} - -func (fake *ChaincodeStub) PurgePrivateDataCallCount() int { - fake.purgePrivateDataMutex.RLock() - defer fake.purgePrivateDataMutex.RUnlock() - return len(fake.purgePrivateDataArgsForCall) -} - -func (fake *ChaincodeStub) PurgePrivateDataCalls(stub func(string, string) error) { - fake.purgePrivateDataMutex.Lock() - defer fake.purgePrivateDataMutex.Unlock() - fake.PurgePrivateDataStub = stub -} - -func (fake *ChaincodeStub) PurgePrivateDataArgsForCall(i int) (string, string) { - fake.purgePrivateDataMutex.RLock() - defer fake.purgePrivateDataMutex.RUnlock() - argsForCall := fake.purgePrivateDataArgsForCall[i] - return argsForCall.arg1, argsForCall.arg2 -} - -func (fake *ChaincodeStub) PurgePrivateDataReturns(result1 error) { - fake.purgePrivateDataMutex.Lock() - defer fake.purgePrivateDataMutex.Unlock() - fake.PurgePrivateDataStub = nil - fake.purgePrivateDataReturns = struct { - result1 error - }{result1} -} - -func (fake *ChaincodeStub) PurgePrivateDataReturnsOnCall(i int, result1 error) { - fake.purgePrivateDataMutex.Lock() - defer fake.purgePrivateDataMutex.Unlock() - fake.PurgePrivateDataStub = nil - if fake.purgePrivateDataReturnsOnCall == nil { - fake.purgePrivateDataReturnsOnCall = make(map[int]struct { - result1 error - }) - } - fake.purgePrivateDataReturnsOnCall[i] = struct { - result1 error - }{result1} -} - -func (fake *ChaincodeStub) PutPrivateData(arg1 string, arg2 string, arg3 []byte) error { - var arg3Copy []byte - if arg3 != nil { - arg3Copy = make([]byte, len(arg3)) - copy(arg3Copy, arg3) - } - fake.putPrivateDataMutex.Lock() - ret, specificReturn := fake.putPrivateDataReturnsOnCall[len(fake.putPrivateDataArgsForCall)] - fake.putPrivateDataArgsForCall = append(fake.putPrivateDataArgsForCall, struct { - arg1 string - arg2 string - arg3 []byte - }{arg1, arg2, arg3Copy}) - stub := fake.PutPrivateDataStub - fakeReturns := fake.putPrivateDataReturns - fake.recordInvocation("PutPrivateData", []interface{}{arg1, arg2, arg3Copy}) - fake.putPrivateDataMutex.Unlock() - if stub != nil { - return stub(arg1, arg2, arg3) - } - if specificReturn { - return ret.result1 - } - return fakeReturns.result1 -} - -func (fake *ChaincodeStub) PutPrivateDataCallCount() int { - fake.putPrivateDataMutex.RLock() - defer fake.putPrivateDataMutex.RUnlock() - return len(fake.putPrivateDataArgsForCall) -} - -func (fake *ChaincodeStub) PutPrivateDataCalls(stub func(string, string, []byte) error) { - fake.putPrivateDataMutex.Lock() - defer fake.putPrivateDataMutex.Unlock() - fake.PutPrivateDataStub = stub -} - -func (fake *ChaincodeStub) PutPrivateDataArgsForCall(i int) (string, string, []byte) { - fake.putPrivateDataMutex.RLock() - defer fake.putPrivateDataMutex.RUnlock() - argsForCall := fake.putPrivateDataArgsForCall[i] - return argsForCall.arg1, argsForCall.arg2, argsForCall.arg3 -} - -func (fake *ChaincodeStub) PutPrivateDataReturns(result1 error) { - fake.putPrivateDataMutex.Lock() - defer fake.putPrivateDataMutex.Unlock() - fake.PutPrivateDataStub = nil - fake.putPrivateDataReturns = struct { - result1 error - }{result1} -} - -func (fake *ChaincodeStub) PutPrivateDataReturnsOnCall(i int, result1 error) { - fake.putPrivateDataMutex.Lock() - defer fake.putPrivateDataMutex.Unlock() - fake.PutPrivateDataStub = nil - if fake.putPrivateDataReturnsOnCall == nil { - fake.putPrivateDataReturnsOnCall = make(map[int]struct { - result1 error - }) - } - fake.putPrivateDataReturnsOnCall[i] = struct { - result1 error - }{result1} -} - -func (fake *ChaincodeStub) PutState(arg1 string, arg2 []byte) error { - var arg2Copy []byte - if arg2 != nil { - arg2Copy = make([]byte, len(arg2)) - copy(arg2Copy, arg2) - } - fake.putStateMutex.Lock() - ret, specificReturn := fake.putStateReturnsOnCall[len(fake.putStateArgsForCall)] - fake.putStateArgsForCall = append(fake.putStateArgsForCall, struct { - arg1 string - arg2 []byte - }{arg1, arg2Copy}) - stub := fake.PutStateStub - fakeReturns := fake.putStateReturns - fake.recordInvocation("PutState", []interface{}{arg1, arg2Copy}) - fake.putStateMutex.Unlock() - if stub != nil { - return stub(arg1, arg2) - } - if specificReturn { - return ret.result1 - } - return fakeReturns.result1 -} - -func (fake *ChaincodeStub) PutStateCallCount() int { - fake.putStateMutex.RLock() - defer fake.putStateMutex.RUnlock() - return len(fake.putStateArgsForCall) -} - -func (fake *ChaincodeStub) PutStateCalls(stub func(string, []byte) error) { - fake.putStateMutex.Lock() - defer fake.putStateMutex.Unlock() - fake.PutStateStub = stub -} - -func (fake *ChaincodeStub) PutStateArgsForCall(i int) (string, []byte) { - fake.putStateMutex.RLock() - defer fake.putStateMutex.RUnlock() - argsForCall := fake.putStateArgsForCall[i] - return argsForCall.arg1, argsForCall.arg2 -} - -func (fake *ChaincodeStub) PutStateReturns(result1 error) { - fake.putStateMutex.Lock() - defer fake.putStateMutex.Unlock() - fake.PutStateStub = nil - fake.putStateReturns = struct { - result1 error - }{result1} -} - -func (fake *ChaincodeStub) PutStateReturnsOnCall(i int, result1 error) { - fake.putStateMutex.Lock() - defer fake.putStateMutex.Unlock() - fake.PutStateStub = nil - if fake.putStateReturnsOnCall == nil { - fake.putStateReturnsOnCall = make(map[int]struct { - result1 error - }) - } - fake.putStateReturnsOnCall[i] = struct { - result1 error - }{result1} -} - -func (fake *ChaincodeStub) SetEvent(arg1 string, arg2 []byte) error { - var arg2Copy []byte - if arg2 != nil { - arg2Copy = make([]byte, len(arg2)) - copy(arg2Copy, arg2) - } - fake.setEventMutex.Lock() - ret, specificReturn := fake.setEventReturnsOnCall[len(fake.setEventArgsForCall)] - fake.setEventArgsForCall = append(fake.setEventArgsForCall, struct { - arg1 string - arg2 []byte - }{arg1, arg2Copy}) - stub := fake.SetEventStub - fakeReturns := fake.setEventReturns - fake.recordInvocation("SetEvent", []interface{}{arg1, arg2Copy}) - fake.setEventMutex.Unlock() - if stub != nil { - return stub(arg1, arg2) - } - if specificReturn { - return ret.result1 - } - return fakeReturns.result1 -} - -func (fake *ChaincodeStub) SetEventCallCount() int { - fake.setEventMutex.RLock() - defer fake.setEventMutex.RUnlock() - return len(fake.setEventArgsForCall) -} - -func (fake *ChaincodeStub) SetEventCalls(stub func(string, []byte) error) { - fake.setEventMutex.Lock() - defer fake.setEventMutex.Unlock() - fake.SetEventStub = stub -} - -func (fake *ChaincodeStub) SetEventArgsForCall(i int) (string, []byte) { - fake.setEventMutex.RLock() - defer fake.setEventMutex.RUnlock() - argsForCall := fake.setEventArgsForCall[i] - return argsForCall.arg1, argsForCall.arg2 -} - -func (fake *ChaincodeStub) SetEventReturns(result1 error) { - fake.setEventMutex.Lock() - defer fake.setEventMutex.Unlock() - fake.SetEventStub = nil - fake.setEventReturns = struct { - result1 error - }{result1} -} - -func (fake *ChaincodeStub) SetEventReturnsOnCall(i int, result1 error) { - fake.setEventMutex.Lock() - defer fake.setEventMutex.Unlock() - fake.SetEventStub = nil - if fake.setEventReturnsOnCall == nil { - fake.setEventReturnsOnCall = make(map[int]struct { - result1 error - }) - } - fake.setEventReturnsOnCall[i] = struct { - result1 error - }{result1} -} - -func (fake *ChaincodeStub) SetPrivateDataValidationParameter(arg1 string, arg2 string, arg3 []byte) error { - var arg3Copy []byte - if arg3 != nil { - arg3Copy = make([]byte, len(arg3)) - copy(arg3Copy, arg3) - } - fake.setPrivateDataValidationParameterMutex.Lock() - ret, specificReturn := fake.setPrivateDataValidationParameterReturnsOnCall[len(fake.setPrivateDataValidationParameterArgsForCall)] - fake.setPrivateDataValidationParameterArgsForCall = append(fake.setPrivateDataValidationParameterArgsForCall, struct { - arg1 string - arg2 string - arg3 []byte - }{arg1, arg2, arg3Copy}) - stub := fake.SetPrivateDataValidationParameterStub - fakeReturns := fake.setPrivateDataValidationParameterReturns - fake.recordInvocation("SetPrivateDataValidationParameter", []interface{}{arg1, arg2, arg3Copy}) - fake.setPrivateDataValidationParameterMutex.Unlock() - if stub != nil { - return stub(arg1, arg2, arg3) - } - if specificReturn { - return ret.result1 - } - return fakeReturns.result1 -} - -func (fake *ChaincodeStub) SetPrivateDataValidationParameterCallCount() int { - fake.setPrivateDataValidationParameterMutex.RLock() - defer fake.setPrivateDataValidationParameterMutex.RUnlock() - return len(fake.setPrivateDataValidationParameterArgsForCall) -} - -func (fake *ChaincodeStub) SetPrivateDataValidationParameterCalls(stub func(string, string, []byte) error) { - fake.setPrivateDataValidationParameterMutex.Lock() - defer fake.setPrivateDataValidationParameterMutex.Unlock() - fake.SetPrivateDataValidationParameterStub = stub -} - -func (fake *ChaincodeStub) SetPrivateDataValidationParameterArgsForCall(i int) (string, string, []byte) { - fake.setPrivateDataValidationParameterMutex.RLock() - defer fake.setPrivateDataValidationParameterMutex.RUnlock() - argsForCall := fake.setPrivateDataValidationParameterArgsForCall[i] - return argsForCall.arg1, argsForCall.arg2, argsForCall.arg3 -} - -func (fake *ChaincodeStub) SetPrivateDataValidationParameterReturns(result1 error) { - fake.setPrivateDataValidationParameterMutex.Lock() - defer fake.setPrivateDataValidationParameterMutex.Unlock() - fake.SetPrivateDataValidationParameterStub = nil - fake.setPrivateDataValidationParameterReturns = struct { - result1 error - }{result1} -} - -func (fake *ChaincodeStub) SetPrivateDataValidationParameterReturnsOnCall(i int, result1 error) { - fake.setPrivateDataValidationParameterMutex.Lock() - defer fake.setPrivateDataValidationParameterMutex.Unlock() - fake.SetPrivateDataValidationParameterStub = nil - if fake.setPrivateDataValidationParameterReturnsOnCall == nil { - fake.setPrivateDataValidationParameterReturnsOnCall = make(map[int]struct { - result1 error - }) - } - fake.setPrivateDataValidationParameterReturnsOnCall[i] = struct { - result1 error - }{result1} -} - -func (fake *ChaincodeStub) SetStateValidationParameter(arg1 string, arg2 []byte) error { - var arg2Copy []byte - if arg2 != nil { - arg2Copy = make([]byte, len(arg2)) - copy(arg2Copy, arg2) - } - fake.setStateValidationParameterMutex.Lock() - ret, specificReturn := fake.setStateValidationParameterReturnsOnCall[len(fake.setStateValidationParameterArgsForCall)] - fake.setStateValidationParameterArgsForCall = append(fake.setStateValidationParameterArgsForCall, struct { - arg1 string - arg2 []byte - }{arg1, arg2Copy}) - stub := fake.SetStateValidationParameterStub - fakeReturns := fake.setStateValidationParameterReturns - fake.recordInvocation("SetStateValidationParameter", []interface{}{arg1, arg2Copy}) - fake.setStateValidationParameterMutex.Unlock() - if stub != nil { - return stub(arg1, arg2) - } - if specificReturn { - return ret.result1 - } - return fakeReturns.result1 -} - -func (fake *ChaincodeStub) SetStateValidationParameterCallCount() int { - fake.setStateValidationParameterMutex.RLock() - defer fake.setStateValidationParameterMutex.RUnlock() - return len(fake.setStateValidationParameterArgsForCall) -} - -func (fake *ChaincodeStub) SetStateValidationParameterCalls(stub func(string, []byte) error) { - fake.setStateValidationParameterMutex.Lock() - defer fake.setStateValidationParameterMutex.Unlock() - fake.SetStateValidationParameterStub = stub -} - -func (fake *ChaincodeStub) SetStateValidationParameterArgsForCall(i int) (string, []byte) { - fake.setStateValidationParameterMutex.RLock() - defer fake.setStateValidationParameterMutex.RUnlock() - argsForCall := fake.setStateValidationParameterArgsForCall[i] - return argsForCall.arg1, argsForCall.arg2 -} - -func (fake *ChaincodeStub) SetStateValidationParameterReturns(result1 error) { - fake.setStateValidationParameterMutex.Lock() - defer fake.setStateValidationParameterMutex.Unlock() - fake.SetStateValidationParameterStub = nil - fake.setStateValidationParameterReturns = struct { - result1 error - }{result1} -} - -func (fake *ChaincodeStub) SetStateValidationParameterReturnsOnCall(i int, result1 error) { - fake.setStateValidationParameterMutex.Lock() - defer fake.setStateValidationParameterMutex.Unlock() - fake.SetStateValidationParameterStub = nil - if fake.setStateValidationParameterReturnsOnCall == nil { - fake.setStateValidationParameterReturnsOnCall = make(map[int]struct { - result1 error - }) - } - fake.setStateValidationParameterReturnsOnCall[i] = struct { - result1 error - }{result1} -} - -func (fake *ChaincodeStub) SplitCompositeKey(arg1 string) (string, []string, error) { - fake.splitCompositeKeyMutex.Lock() - ret, specificReturn := fake.splitCompositeKeyReturnsOnCall[len(fake.splitCompositeKeyArgsForCall)] - fake.splitCompositeKeyArgsForCall = append(fake.splitCompositeKeyArgsForCall, struct { - arg1 string - }{arg1}) - stub := fake.SplitCompositeKeyStub - fakeReturns := fake.splitCompositeKeyReturns - fake.recordInvocation("SplitCompositeKey", []interface{}{arg1}) - fake.splitCompositeKeyMutex.Unlock() - if stub != nil { - return stub(arg1) - } - if specificReturn { - return ret.result1, ret.result2, ret.result3 - } - return fakeReturns.result1, fakeReturns.result2, fakeReturns.result3 -} - -func (fake *ChaincodeStub) SplitCompositeKeyCallCount() int { - fake.splitCompositeKeyMutex.RLock() - defer fake.splitCompositeKeyMutex.RUnlock() - return len(fake.splitCompositeKeyArgsForCall) -} - -func (fake *ChaincodeStub) SplitCompositeKeyCalls(stub func(string) (string, []string, error)) { - fake.splitCompositeKeyMutex.Lock() - defer fake.splitCompositeKeyMutex.Unlock() - fake.SplitCompositeKeyStub = stub -} - -func (fake *ChaincodeStub) SplitCompositeKeyArgsForCall(i int) string { - fake.splitCompositeKeyMutex.RLock() - defer fake.splitCompositeKeyMutex.RUnlock() - argsForCall := fake.splitCompositeKeyArgsForCall[i] - return argsForCall.arg1 -} - -func (fake *ChaincodeStub) SplitCompositeKeyReturns(result1 string, result2 []string, result3 error) { - fake.splitCompositeKeyMutex.Lock() - defer fake.splitCompositeKeyMutex.Unlock() - fake.SplitCompositeKeyStub = nil - fake.splitCompositeKeyReturns = struct { - result1 string - result2 []string - result3 error - }{result1, result2, result3} -} - -func (fake *ChaincodeStub) SplitCompositeKeyReturnsOnCall(i int, result1 string, result2 []string, result3 error) { - fake.splitCompositeKeyMutex.Lock() - defer fake.splitCompositeKeyMutex.Unlock() - fake.SplitCompositeKeyStub = nil - if fake.splitCompositeKeyReturnsOnCall == nil { - fake.splitCompositeKeyReturnsOnCall = make(map[int]struct { - result1 string - result2 []string - result3 error - }) - } - fake.splitCompositeKeyReturnsOnCall[i] = struct { - result1 string - result2 []string - result3 error - }{result1, result2, result3} -} - -func (fake *ChaincodeStub) Invocations() map[string][][]interface{} { - fake.invocationsMutex.RLock() - defer fake.invocationsMutex.RUnlock() - fake.createCompositeKeyMutex.RLock() - defer fake.createCompositeKeyMutex.RUnlock() - fake.delPrivateDataMutex.RLock() - defer fake.delPrivateDataMutex.RUnlock() - fake.delStateMutex.RLock() - defer fake.delStateMutex.RUnlock() - fake.getArgsMutex.RLock() - defer fake.getArgsMutex.RUnlock() - fake.getArgsSliceMutex.RLock() - defer fake.getArgsSliceMutex.RUnlock() - fake.getBindingMutex.RLock() - defer fake.getBindingMutex.RUnlock() - fake.getChannelIDMutex.RLock() - defer fake.getChannelIDMutex.RUnlock() - fake.getCreatorMutex.RLock() - defer fake.getCreatorMutex.RUnlock() - fake.getDecorationsMutex.RLock() - defer fake.getDecorationsMutex.RUnlock() - fake.getFunctionAndParametersMutex.RLock() - defer fake.getFunctionAndParametersMutex.RUnlock() - fake.getHistoryForKeyMutex.RLock() - defer fake.getHistoryForKeyMutex.RUnlock() - fake.getPrivateDataMutex.RLock() - defer fake.getPrivateDataMutex.RUnlock() - fake.getPrivateDataByPartialCompositeKeyMutex.RLock() - defer fake.getPrivateDataByPartialCompositeKeyMutex.RUnlock() - fake.getPrivateDataByRangeMutex.RLock() - defer fake.getPrivateDataByRangeMutex.RUnlock() - fake.getPrivateDataHashMutex.RLock() - defer fake.getPrivateDataHashMutex.RUnlock() - fake.getPrivateDataQueryResultMutex.RLock() - defer fake.getPrivateDataQueryResultMutex.RUnlock() - fake.getPrivateDataValidationParameterMutex.RLock() - defer fake.getPrivateDataValidationParameterMutex.RUnlock() - fake.getQueryResultMutex.RLock() - defer fake.getQueryResultMutex.RUnlock() - fake.getQueryResultWithPaginationMutex.RLock() - defer fake.getQueryResultWithPaginationMutex.RUnlock() - fake.getSignedProposalMutex.RLock() - defer fake.getSignedProposalMutex.RUnlock() - fake.getStateMutex.RLock() - defer fake.getStateMutex.RUnlock() - fake.getStateByPartialCompositeKeyMutex.RLock() - defer fake.getStateByPartialCompositeKeyMutex.RUnlock() - fake.getStateByPartialCompositeKeyWithPaginationMutex.RLock() - defer fake.getStateByPartialCompositeKeyWithPaginationMutex.RUnlock() - fake.getStateByRangeMutex.RLock() - defer fake.getStateByRangeMutex.RUnlock() - fake.getStateByRangeWithPaginationMutex.RLock() - defer fake.getStateByRangeWithPaginationMutex.RUnlock() - fake.getStateValidationParameterMutex.RLock() - defer fake.getStateValidationParameterMutex.RUnlock() - fake.getStringArgsMutex.RLock() - defer fake.getStringArgsMutex.RUnlock() - fake.getTransientMutex.RLock() - defer fake.getTransientMutex.RUnlock() - fake.getTxIDMutex.RLock() - defer fake.getTxIDMutex.RUnlock() - fake.getTxTimestampMutex.RLock() - defer fake.getTxTimestampMutex.RUnlock() - fake.invokeChaincodeMutex.RLock() - defer fake.invokeChaincodeMutex.RUnlock() - fake.purgePrivateDataMutex.RLock() - defer fake.purgePrivateDataMutex.RUnlock() - fake.putPrivateDataMutex.RLock() - defer fake.putPrivateDataMutex.RUnlock() - fake.putStateMutex.RLock() - defer fake.putStateMutex.RUnlock() - fake.setEventMutex.RLock() - defer fake.setEventMutex.RUnlock() - fake.setPrivateDataValidationParameterMutex.RLock() - defer fake.setPrivateDataValidationParameterMutex.RUnlock() - fake.setStateValidationParameterMutex.RLock() - defer fake.setStateValidationParameterMutex.RUnlock() - fake.splitCompositeKeyMutex.RLock() - defer fake.splitCompositeKeyMutex.RUnlock() - copiedInvocations := map[string][][]interface{}{} - for key, value := range fake.invocations { - copiedInvocations[key] = value - } - return copiedInvocations -} - -func (fake *ChaincodeStub) recordInvocation(key string, args []interface{}) { - fake.invocationsMutex.Lock() - defer fake.invocationsMutex.Unlock() - if fake.invocations == nil { - fake.invocations = map[string][][]interface{}{} - } - if fake.invocations[key] == nil { - fake.invocations[key] = [][]interface{}{} - } - fake.invocations[key] = append(fake.invocations[key], args) -} diff --git a/asset-transfer-basic/chaincode-go/chaincode/mocks/statequeryiterator.go b/asset-transfer-basic/chaincode-go/chaincode/mocks/statequeryiterator.go deleted file mode 100644 index 76cdcaa1..00000000 --- a/asset-transfer-basic/chaincode-go/chaincode/mocks/statequeryiterator.go +++ /dev/null @@ -1,235 +0,0 @@ -// Code generated by counterfeiter. DO NOT EDIT. -package mocks - -import ( - "sync" - - "github.com/hyperledger/fabric-protos-go-apiv2/ledger/queryresult" -) - -type StateQueryIterator struct { - CloseStub func() error - closeMutex sync.RWMutex - closeArgsForCall []struct { - } - closeReturns struct { - result1 error - } - closeReturnsOnCall map[int]struct { - result1 error - } - HasNextStub func() bool - hasNextMutex sync.RWMutex - hasNextArgsForCall []struct { - } - hasNextReturns struct { - result1 bool - } - hasNextReturnsOnCall map[int]struct { - result1 bool - } - NextStub func() (*queryresult.KV, error) - nextMutex sync.RWMutex - nextArgsForCall []struct { - } - nextReturns struct { - result1 *queryresult.KV - result2 error - } - nextReturnsOnCall map[int]struct { - result1 *queryresult.KV - result2 error - } - invocations map[string][][]interface{} - invocationsMutex sync.RWMutex -} - -func (fake *StateQueryIterator) Close() error { - fake.closeMutex.Lock() - ret, specificReturn := fake.closeReturnsOnCall[len(fake.closeArgsForCall)] - fake.closeArgsForCall = append(fake.closeArgsForCall, struct { - }{}) - stub := fake.CloseStub - fakeReturns := fake.closeReturns - fake.recordInvocation("Close", []interface{}{}) - fake.closeMutex.Unlock() - if stub != nil { - return stub() - } - if specificReturn { - return ret.result1 - } - return fakeReturns.result1 -} - -func (fake *StateQueryIterator) CloseCallCount() int { - fake.closeMutex.RLock() - defer fake.closeMutex.RUnlock() - return len(fake.closeArgsForCall) -} - -func (fake *StateQueryIterator) CloseCalls(stub func() error) { - fake.closeMutex.Lock() - defer fake.closeMutex.Unlock() - fake.CloseStub = stub -} - -func (fake *StateQueryIterator) CloseReturns(result1 error) { - fake.closeMutex.Lock() - defer fake.closeMutex.Unlock() - fake.CloseStub = nil - fake.closeReturns = struct { - result1 error - }{result1} -} - -func (fake *StateQueryIterator) CloseReturnsOnCall(i int, result1 error) { - fake.closeMutex.Lock() - defer fake.closeMutex.Unlock() - fake.CloseStub = nil - if fake.closeReturnsOnCall == nil { - fake.closeReturnsOnCall = make(map[int]struct { - result1 error - }) - } - fake.closeReturnsOnCall[i] = struct { - result1 error - }{result1} -} - -func (fake *StateQueryIterator) HasNext() bool { - fake.hasNextMutex.Lock() - ret, specificReturn := fake.hasNextReturnsOnCall[len(fake.hasNextArgsForCall)] - fake.hasNextArgsForCall = append(fake.hasNextArgsForCall, struct { - }{}) - stub := fake.HasNextStub - fakeReturns := fake.hasNextReturns - fake.recordInvocation("HasNext", []interface{}{}) - fake.hasNextMutex.Unlock() - if stub != nil { - return stub() - } - if specificReturn { - return ret.result1 - } - return fakeReturns.result1 -} - -func (fake *StateQueryIterator) HasNextCallCount() int { - fake.hasNextMutex.RLock() - defer fake.hasNextMutex.RUnlock() - return len(fake.hasNextArgsForCall) -} - -func (fake *StateQueryIterator) HasNextCalls(stub func() bool) { - fake.hasNextMutex.Lock() - defer fake.hasNextMutex.Unlock() - fake.HasNextStub = stub -} - -func (fake *StateQueryIterator) HasNextReturns(result1 bool) { - fake.hasNextMutex.Lock() - defer fake.hasNextMutex.Unlock() - fake.HasNextStub = nil - fake.hasNextReturns = struct { - result1 bool - }{result1} -} - -func (fake *StateQueryIterator) HasNextReturnsOnCall(i int, result1 bool) { - fake.hasNextMutex.Lock() - defer fake.hasNextMutex.Unlock() - fake.HasNextStub = nil - if fake.hasNextReturnsOnCall == nil { - fake.hasNextReturnsOnCall = make(map[int]struct { - result1 bool - }) - } - fake.hasNextReturnsOnCall[i] = struct { - result1 bool - }{result1} -} - -func (fake *StateQueryIterator) Next() (*queryresult.KV, error) { - fake.nextMutex.Lock() - ret, specificReturn := fake.nextReturnsOnCall[len(fake.nextArgsForCall)] - fake.nextArgsForCall = append(fake.nextArgsForCall, struct { - }{}) - stub := fake.NextStub - fakeReturns := fake.nextReturns - fake.recordInvocation("Next", []interface{}{}) - fake.nextMutex.Unlock() - if stub != nil { - return stub() - } - if specificReturn { - return ret.result1, ret.result2 - } - return fakeReturns.result1, fakeReturns.result2 -} - -func (fake *StateQueryIterator) NextCallCount() int { - fake.nextMutex.RLock() - defer fake.nextMutex.RUnlock() - return len(fake.nextArgsForCall) -} - -func (fake *StateQueryIterator) NextCalls(stub func() (*queryresult.KV, error)) { - fake.nextMutex.Lock() - defer fake.nextMutex.Unlock() - fake.NextStub = stub -} - -func (fake *StateQueryIterator) NextReturns(result1 *queryresult.KV, result2 error) { - fake.nextMutex.Lock() - defer fake.nextMutex.Unlock() - fake.NextStub = nil - fake.nextReturns = struct { - result1 *queryresult.KV - result2 error - }{result1, result2} -} - -func (fake *StateQueryIterator) NextReturnsOnCall(i int, result1 *queryresult.KV, result2 error) { - fake.nextMutex.Lock() - defer fake.nextMutex.Unlock() - fake.NextStub = nil - if fake.nextReturnsOnCall == nil { - fake.nextReturnsOnCall = make(map[int]struct { - result1 *queryresult.KV - result2 error - }) - } - fake.nextReturnsOnCall[i] = struct { - result1 *queryresult.KV - result2 error - }{result1, result2} -} - -func (fake *StateQueryIterator) Invocations() map[string][][]interface{} { - fake.invocationsMutex.RLock() - defer fake.invocationsMutex.RUnlock() - fake.closeMutex.RLock() - defer fake.closeMutex.RUnlock() - fake.hasNextMutex.RLock() - defer fake.hasNextMutex.RUnlock() - fake.nextMutex.RLock() - defer fake.nextMutex.RUnlock() - copiedInvocations := map[string][][]interface{}{} - for key, value := range fake.invocations { - copiedInvocations[key] = value - } - return copiedInvocations -} - -func (fake *StateQueryIterator) recordInvocation(key string, args []interface{}) { - fake.invocationsMutex.Lock() - defer fake.invocationsMutex.Unlock() - if fake.invocations == nil { - fake.invocations = map[string][][]interface{}{} - } - if fake.invocations[key] == nil { - fake.invocations[key] = [][]interface{}{} - } - fake.invocations[key] = append(fake.invocations[key], args) -} diff --git a/asset-transfer-basic/chaincode-go/chaincode/mocks/transaction.go b/asset-transfer-basic/chaincode-go/chaincode/mocks/transaction.go deleted file mode 100644 index 5e98d069..00000000 --- a/asset-transfer-basic/chaincode-go/chaincode/mocks/transaction.go +++ /dev/null @@ -1,166 +0,0 @@ -// Code generated by counterfeiter. DO NOT EDIT. -package mocks - -import ( - "sync" - - "github.com/hyperledger/fabric-chaincode-go/v2/pkg/cid" - "github.com/hyperledger/fabric-chaincode-go/v2/shim" -) - -type TransactionContext struct { - GetClientIdentityStub func() cid.ClientIdentity - getClientIdentityMutex sync.RWMutex - getClientIdentityArgsForCall []struct { - } - getClientIdentityReturns struct { - result1 cid.ClientIdentity - } - getClientIdentityReturnsOnCall map[int]struct { - result1 cid.ClientIdentity - } - GetStubStub func() shim.ChaincodeStubInterface - getStubMutex sync.RWMutex - getStubArgsForCall []struct { - } - getStubReturns struct { - result1 shim.ChaincodeStubInterface - } - getStubReturnsOnCall map[int]struct { - result1 shim.ChaincodeStubInterface - } - invocations map[string][][]interface{} - invocationsMutex sync.RWMutex -} - -func (fake *TransactionContext) GetClientIdentity() cid.ClientIdentity { - fake.getClientIdentityMutex.Lock() - ret, specificReturn := fake.getClientIdentityReturnsOnCall[len(fake.getClientIdentityArgsForCall)] - fake.getClientIdentityArgsForCall = append(fake.getClientIdentityArgsForCall, struct { - }{}) - stub := fake.GetClientIdentityStub - fakeReturns := fake.getClientIdentityReturns - fake.recordInvocation("GetClientIdentity", []interface{}{}) - fake.getClientIdentityMutex.Unlock() - if stub != nil { - return stub() - } - if specificReturn { - return ret.result1 - } - return fakeReturns.result1 -} - -func (fake *TransactionContext) GetClientIdentityCallCount() int { - fake.getClientIdentityMutex.RLock() - defer fake.getClientIdentityMutex.RUnlock() - return len(fake.getClientIdentityArgsForCall) -} - -func (fake *TransactionContext) GetClientIdentityCalls(stub func() cid.ClientIdentity) { - fake.getClientIdentityMutex.Lock() - defer fake.getClientIdentityMutex.Unlock() - fake.GetClientIdentityStub = stub -} - -func (fake *TransactionContext) GetClientIdentityReturns(result1 cid.ClientIdentity) { - fake.getClientIdentityMutex.Lock() - defer fake.getClientIdentityMutex.Unlock() - fake.GetClientIdentityStub = nil - fake.getClientIdentityReturns = struct { - result1 cid.ClientIdentity - }{result1} -} - -func (fake *TransactionContext) GetClientIdentityReturnsOnCall(i int, result1 cid.ClientIdentity) { - fake.getClientIdentityMutex.Lock() - defer fake.getClientIdentityMutex.Unlock() - fake.GetClientIdentityStub = nil - if fake.getClientIdentityReturnsOnCall == nil { - fake.getClientIdentityReturnsOnCall = make(map[int]struct { - result1 cid.ClientIdentity - }) - } - fake.getClientIdentityReturnsOnCall[i] = struct { - result1 cid.ClientIdentity - }{result1} -} - -func (fake *TransactionContext) GetStub() shim.ChaincodeStubInterface { - fake.getStubMutex.Lock() - ret, specificReturn := fake.getStubReturnsOnCall[len(fake.getStubArgsForCall)] - fake.getStubArgsForCall = append(fake.getStubArgsForCall, struct { - }{}) - stub := fake.GetStubStub - fakeReturns := fake.getStubReturns - fake.recordInvocation("GetStub", []interface{}{}) - fake.getStubMutex.Unlock() - if stub != nil { - return stub() - } - if specificReturn { - return ret.result1 - } - return fakeReturns.result1 -} - -func (fake *TransactionContext) GetStubCallCount() int { - fake.getStubMutex.RLock() - defer fake.getStubMutex.RUnlock() - return len(fake.getStubArgsForCall) -} - -func (fake *TransactionContext) GetStubCalls(stub func() shim.ChaincodeStubInterface) { - fake.getStubMutex.Lock() - defer fake.getStubMutex.Unlock() - fake.GetStubStub = stub -} - -func (fake *TransactionContext) GetStubReturns(result1 shim.ChaincodeStubInterface) { - fake.getStubMutex.Lock() - defer fake.getStubMutex.Unlock() - fake.GetStubStub = nil - fake.getStubReturns = struct { - result1 shim.ChaincodeStubInterface - }{result1} -} - -func (fake *TransactionContext) GetStubReturnsOnCall(i int, result1 shim.ChaincodeStubInterface) { - fake.getStubMutex.Lock() - defer fake.getStubMutex.Unlock() - fake.GetStubStub = nil - if fake.getStubReturnsOnCall == nil { - fake.getStubReturnsOnCall = make(map[int]struct { - result1 shim.ChaincodeStubInterface - }) - } - fake.getStubReturnsOnCall[i] = struct { - result1 shim.ChaincodeStubInterface - }{result1} -} - -func (fake *TransactionContext) Invocations() map[string][][]interface{} { - fake.invocationsMutex.RLock() - defer fake.invocationsMutex.RUnlock() - fake.getClientIdentityMutex.RLock() - defer fake.getClientIdentityMutex.RUnlock() - fake.getStubMutex.RLock() - defer fake.getStubMutex.RUnlock() - copiedInvocations := map[string][][]interface{}{} - for key, value := range fake.invocations { - copiedInvocations[key] = value - } - return copiedInvocations -} - -func (fake *TransactionContext) recordInvocation(key string, args []interface{}) { - fake.invocationsMutex.Lock() - defer fake.invocationsMutex.Unlock() - if fake.invocations == nil { - fake.invocations = map[string][][]interface{}{} - } - if fake.invocations[key] == nil { - fake.invocations[key] = [][]interface{}{} - } - fake.invocations[key] = append(fake.invocations[key], args) -} diff --git a/asset-transfer-basic/chaincode-go/chaincode/smartcontract.go b/asset-transfer-basic/chaincode-go/chaincode/smartcontract.go deleted file mode 100644 index 567067e0..00000000 --- a/asset-transfer-basic/chaincode-go/chaincode/smartcontract.go +++ /dev/null @@ -1,194 +0,0 @@ -package chaincode - -import ( - "encoding/json" - "fmt" - - "github.com/hyperledger/fabric-contract-api-go/v2/contractapi" -) - -// SmartContract provides functions for managing an Asset -type SmartContract struct { - contractapi.Contract -} - -// Asset describes basic details of what makes up a simple asset -// Insert struct field in alphabetic order => to achieve determinism across languages -// golang keeps the order when marshal to json but doesn't order automatically -type Asset struct { - AppraisedValue int `json:"AppraisedValue"` - Color string `json:"Color"` - ID string `json:"ID"` - Owner string `json:"Owner"` - Size int `json:"Size"` -} - -// InitLedger adds a base set of assets to the ledger -func (s *SmartContract) InitLedger(ctx contractapi.TransactionContextInterface) error { - assets := []Asset{ - {ID: "asset1", Color: "blue", Size: 5, Owner: "Tomoko", AppraisedValue: 300}, - {ID: "asset2", Color: "red", Size: 5, Owner: "Brad", AppraisedValue: 400}, - {ID: "asset3", Color: "green", Size: 10, Owner: "Jin Soo", AppraisedValue: 500}, - {ID: "asset4", Color: "yellow", Size: 10, Owner: "Max", AppraisedValue: 600}, - {ID: "asset5", Color: "black", Size: 15, Owner: "Adriana", AppraisedValue: 700}, - {ID: "asset6", Color: "white", Size: 15, Owner: "Michel", AppraisedValue: 800}, - } - - for _, asset := range assets { - assetJSON, err := json.Marshal(asset) - if err != nil { - return err - } - - err = ctx.GetStub().PutState(asset.ID, assetJSON) - if err != nil { - return fmt.Errorf("failed to put to world state. %v", err) - } - } - - return nil -} - -// CreateAsset issues a new asset to the world state with given details. -func (s *SmartContract) CreateAsset(ctx contractapi.TransactionContextInterface, id string, color string, size int, owner string, appraisedValue int) error { - exists, err := s.AssetExists(ctx, id) - if err != nil { - return err - } - if exists { - return fmt.Errorf("the asset %s already exists", id) - } - - asset := Asset{ - ID: id, - Color: color, - Size: size, - Owner: owner, - AppraisedValue: appraisedValue, - } - assetJSON, err := json.Marshal(asset) - if err != nil { - return err - } - - return ctx.GetStub().PutState(id, assetJSON) -} - -// ReadAsset returns the asset stored in the world state with given id. -func (s *SmartContract) ReadAsset(ctx contractapi.TransactionContextInterface, id string) (*Asset, error) { - assetJSON, err := ctx.GetStub().GetState(id) - if err != nil { - return nil, fmt.Errorf("failed to read from world state: %v", err) - } - if assetJSON == nil { - return nil, fmt.Errorf("the asset %s does not exist", id) - } - - var asset Asset - err = json.Unmarshal(assetJSON, &asset) - if err != nil { - return nil, err - } - - return &asset, nil -} - -// UpdateAsset updates an existing asset in the world state with provided parameters. -func (s *SmartContract) UpdateAsset(ctx contractapi.TransactionContextInterface, id string, color string, size int, owner string, appraisedValue int) error { - exists, err := s.AssetExists(ctx, id) - if err != nil { - return err - } - if !exists { - return fmt.Errorf("the asset %s does not exist", id) - } - - // overwriting original asset with new asset - asset := Asset{ - ID: id, - Color: color, - Size: size, - Owner: owner, - AppraisedValue: appraisedValue, - } - assetJSON, err := json.Marshal(asset) - if err != nil { - return err - } - - return ctx.GetStub().PutState(id, assetJSON) -} - -// DeleteAsset deletes an given asset from the world state. -func (s *SmartContract) DeleteAsset(ctx contractapi.TransactionContextInterface, id string) error { - exists, err := s.AssetExists(ctx, id) - if err != nil { - return err - } - if !exists { - return fmt.Errorf("the asset %s does not exist", id) - } - - return ctx.GetStub().DelState(id) -} - -// AssetExists returns true when asset with given ID exists in world state -func (s *SmartContract) AssetExists(ctx contractapi.TransactionContextInterface, id string) (bool, error) { - assetJSON, err := ctx.GetStub().GetState(id) - if err != nil { - return false, fmt.Errorf("failed to read from world state: %v", err) - } - - return assetJSON != nil, nil -} - -// TransferAsset updates the owner field of asset with given id in world state, and returns the old owner. -func (s *SmartContract) TransferAsset(ctx contractapi.TransactionContextInterface, id string, newOwner string) (string, error) { - asset, err := s.ReadAsset(ctx, id) - if err != nil { - return "", err - } - - oldOwner := asset.Owner - asset.Owner = newOwner - - assetJSON, err := json.Marshal(asset) - if err != nil { - return "", err - } - - err = ctx.GetStub().PutState(id, assetJSON) - if err != nil { - return "", err - } - - return oldOwner, nil -} - -// GetAllAssets returns all assets found in world state -func (s *SmartContract) GetAllAssets(ctx contractapi.TransactionContextInterface) ([]*Asset, error) { - // range query with empty string for startKey and endKey does an - // open-ended query of all assets in the chaincode namespace. - resultsIterator, err := ctx.GetStub().GetStateByRange("", "") - if err != nil { - return nil, err - } - defer resultsIterator.Close() - - var assets []*Asset - for resultsIterator.HasNext() { - queryResponse, err := resultsIterator.Next() - if err != nil { - return nil, err - } - - var asset Asset - err = json.Unmarshal(queryResponse.Value, &asset) - if err != nil { - return nil, err - } - assets = append(assets, &asset) - } - - return assets, nil -} diff --git a/asset-transfer-basic/chaincode-go/chaincode/smartcontract_test.go b/asset-transfer-basic/chaincode-go/chaincode/smartcontract_test.go deleted file mode 100644 index 801611f4..00000000 --- a/asset-transfer-basic/chaincode-go/chaincode/smartcontract_test.go +++ /dev/null @@ -1,184 +0,0 @@ -package chaincode_test - -import ( - "encoding/json" - "fmt" - "testing" - - "github.com/hyperledger/fabric-chaincode-go/v2/shim" - "github.com/hyperledger/fabric-contract-api-go/v2/contractapi" - "github.com/hyperledger/fabric-protos-go-apiv2/ledger/queryresult" - "github.com/hyperledger/fabric-samples/asset-transfer-basic/chaincode-go/chaincode" - "github.com/hyperledger/fabric-samples/asset-transfer-basic/chaincode-go/chaincode/mocks" - "github.com/stretchr/testify/require" -) - -//go:generate counterfeiter -o mocks/transaction.go -fake-name TransactionContext . transactionContext -type transactionContext interface { - contractapi.TransactionContextInterface -} - -//go:generate counterfeiter -o mocks/chaincodestub.go -fake-name ChaincodeStub . chaincodeStub -type chaincodeStub interface { - shim.ChaincodeStubInterface -} - -//go:generate counterfeiter -o mocks/statequeryiterator.go -fake-name StateQueryIterator . stateQueryIterator -type stateQueryIterator interface { - shim.StateQueryIteratorInterface -} - -func TestInitLedger(t *testing.T) { - chaincodeStub := &mocks.ChaincodeStub{} - transactionContext := &mocks.TransactionContext{} - transactionContext.GetStubReturns(chaincodeStub) - - assetTransfer := chaincode.SmartContract{} - err := assetTransfer.InitLedger(transactionContext) - require.NoError(t, err) - - chaincodeStub.PutStateReturns(fmt.Errorf("failed inserting key")) - err = assetTransfer.InitLedger(transactionContext) - require.EqualError(t, err, "failed to put to world state. failed inserting key") -} - -func TestCreateAsset(t *testing.T) { - chaincodeStub := &mocks.ChaincodeStub{} - transactionContext := &mocks.TransactionContext{} - transactionContext.GetStubReturns(chaincodeStub) - - assetTransfer := chaincode.SmartContract{} - err := assetTransfer.CreateAsset(transactionContext, "", "", 0, "", 0) - require.NoError(t, err) - - chaincodeStub.GetStateReturns([]byte{}, nil) - err = assetTransfer.CreateAsset(transactionContext, "asset1", "", 0, "", 0) - require.EqualError(t, err, "the asset asset1 already exists") - - chaincodeStub.GetStateReturns(nil, fmt.Errorf("unable to retrieve asset")) - err = assetTransfer.CreateAsset(transactionContext, "asset1", "", 0, "", 0) - require.EqualError(t, err, "failed to read from world state: unable to retrieve asset") -} - -func TestReadAsset(t *testing.T) { - chaincodeStub := &mocks.ChaincodeStub{} - transactionContext := &mocks.TransactionContext{} - transactionContext.GetStubReturns(chaincodeStub) - - expectedAsset := &chaincode.Asset{ID: "asset1"} - bytes, err := json.Marshal(expectedAsset) - require.NoError(t, err) - - chaincodeStub.GetStateReturns(bytes, nil) - assetTransfer := chaincode.SmartContract{} - asset, err := assetTransfer.ReadAsset(transactionContext, "") - require.NoError(t, err) - require.Equal(t, expectedAsset, asset) - - chaincodeStub.GetStateReturns(nil, fmt.Errorf("unable to retrieve asset")) - _, err = assetTransfer.ReadAsset(transactionContext, "") - require.EqualError(t, err, "failed to read from world state: unable to retrieve asset") - - chaincodeStub.GetStateReturns(nil, nil) - asset, err = assetTransfer.ReadAsset(transactionContext, "asset1") - require.EqualError(t, err, "the asset asset1 does not exist") - require.Nil(t, asset) -} - -func TestUpdateAsset(t *testing.T) { - chaincodeStub := &mocks.ChaincodeStub{} - transactionContext := &mocks.TransactionContext{} - transactionContext.GetStubReturns(chaincodeStub) - - expectedAsset := &chaincode.Asset{ID: "asset1"} - bytes, err := json.Marshal(expectedAsset) - require.NoError(t, err) - - chaincodeStub.GetStateReturns(bytes, nil) - assetTransfer := chaincode.SmartContract{} - err = assetTransfer.UpdateAsset(transactionContext, "", "", 0, "", 0) - require.NoError(t, err) - - chaincodeStub.GetStateReturns(nil, nil) - err = assetTransfer.UpdateAsset(transactionContext, "asset1", "", 0, "", 0) - require.EqualError(t, err, "the asset asset1 does not exist") - - chaincodeStub.GetStateReturns(nil, fmt.Errorf("unable to retrieve asset")) - err = assetTransfer.UpdateAsset(transactionContext, "asset1", "", 0, "", 0) - require.EqualError(t, err, "failed to read from world state: unable to retrieve asset") -} - -func TestDeleteAsset(t *testing.T) { - chaincodeStub := &mocks.ChaincodeStub{} - transactionContext := &mocks.TransactionContext{} - transactionContext.GetStubReturns(chaincodeStub) - - asset := &chaincode.Asset{ID: "asset1"} - bytes, err := json.Marshal(asset) - require.NoError(t, err) - - chaincodeStub.GetStateReturns(bytes, nil) - chaincodeStub.DelStateReturns(nil) - assetTransfer := chaincode.SmartContract{} - err = assetTransfer.DeleteAsset(transactionContext, "") - require.NoError(t, err) - - chaincodeStub.GetStateReturns(nil, nil) - err = assetTransfer.DeleteAsset(transactionContext, "asset1") - require.EqualError(t, err, "the asset asset1 does not exist") - - chaincodeStub.GetStateReturns(nil, fmt.Errorf("unable to retrieve asset")) - err = assetTransfer.DeleteAsset(transactionContext, "") - require.EqualError(t, err, "failed to read from world state: unable to retrieve asset") -} - -func TestTransferAsset(t *testing.T) { - chaincodeStub := &mocks.ChaincodeStub{} - transactionContext := &mocks.TransactionContext{} - transactionContext.GetStubReturns(chaincodeStub) - - asset := &chaincode.Asset{ID: "asset1"} - bytes, err := json.Marshal(asset) - require.NoError(t, err) - - chaincodeStub.GetStateReturns(bytes, nil) - assetTransfer := chaincode.SmartContract{} - _, err = assetTransfer.TransferAsset(transactionContext, "", "") - require.NoError(t, err) - - chaincodeStub.GetStateReturns(nil, fmt.Errorf("unable to retrieve asset")) - _, err = assetTransfer.TransferAsset(transactionContext, "", "") - require.EqualError(t, err, "failed to read from world state: unable to retrieve asset") -} - -func TestGetAllAssets(t *testing.T) { - asset := &chaincode.Asset{ID: "asset1"} - bytes, err := json.Marshal(asset) - require.NoError(t, err) - - iterator := &mocks.StateQueryIterator{} - iterator.HasNextReturnsOnCall(0, true) - iterator.HasNextReturnsOnCall(1, false) - iterator.NextReturns(&queryresult.KV{Value: bytes}, nil) - - chaincodeStub := &mocks.ChaincodeStub{} - transactionContext := &mocks.TransactionContext{} - transactionContext.GetStubReturns(chaincodeStub) - - chaincodeStub.GetStateByRangeReturns(iterator, nil) - assetTransfer := &chaincode.SmartContract{} - assets, err := assetTransfer.GetAllAssets(transactionContext) - require.NoError(t, err) - require.Equal(t, []*chaincode.Asset{asset}, assets) - - iterator.HasNextReturns(true) - iterator.NextReturns(nil, fmt.Errorf("failed retrieving next item")) - assets, err = assetTransfer.GetAllAssets(transactionContext) - require.EqualError(t, err, "failed retrieving next item") - require.Nil(t, assets) - - chaincodeStub.GetStateByRangeReturns(nil, fmt.Errorf("failed retrieving all assets")) - assets, err = assetTransfer.GetAllAssets(transactionContext) - require.EqualError(t, err, "failed retrieving all assets") - require.Nil(t, assets) -} diff --git a/asset-transfer-basic/chaincode-go/assetTransfer.go b/asset-transfer-basic/chaincode-go/main.go similarity index 69% rename from asset-transfer-basic/chaincode-go/assetTransfer.go rename to asset-transfer-basic/chaincode-go/main.go index f86fcac1..8c7472d4 100644 --- a/asset-transfer-basic/chaincode-go/assetTransfer.go +++ b/asset-transfer-basic/chaincode-go/main.go @@ -8,11 +8,10 @@ import ( "log" "github.com/hyperledger/fabric-contract-api-go/v2/contractapi" - "github.com/hyperledger/fabric-samples/asset-transfer-basic/chaincode-go/chaincode" ) func main() { - assetChaincode, err := contractapi.NewChaincode(&chaincode.SmartContract{}) + assetChaincode, err := contractapi.NewChaincode(&SmartContract{}) if err != nil { log.Panicf("Error creating asset-transfer-basic chaincode: %v", err) } diff --git a/asset-transfer-basic/chaincode-go/smartcontract.go b/asset-transfer-basic/chaincode-go/smartcontract.go new file mode 100644 index 00000000..510ab31b --- /dev/null +++ b/asset-transfer-basic/chaincode-go/smartcontract.go @@ -0,0 +1,147 @@ +package main + +import ( + "crypto/sha256" + "encoding/hex" + "encoding/json" + "errors" + "fmt" + "github.com/hyperledger/fabric-contract-api-go/v2/contractapi" +) + +type SmartContract struct { + contractapi.Contract +} + +type Transaction struct { + Id string `json:"id"` + SrcAccountId string `json:"srcAccountId"` + DestAccountId string `json:"destAccountId"` + Amount float64 `json:"amount"` + TypesOf string `json:"typesOf"` + Signature string `json:"signature"` + CreateTime int64 `json:"createTime"` +} + +type HonorCertificate struct { + Id string `json:"id"` + UserId string `json:"userId"` + Title string `json:"title"` + Description string `json:"description"` + Signature string `json:"signature"` + CreateTime int64 `json:"createTime"` +} + +func (s *SmartContract) GetTransaction(ctx contractapi.TransactionContextInterface, transactionId string) (*Transaction, error) { + transJSON, err := ctx.GetStub().GetState(transactionId) + if err != nil { + return nil, fmt.Errorf("failed to read from world state: %v", err) + } + if transJSON == nil { + return nil, fmt.Errorf("the transaction %s does not exist", transactionId) + } + + var transaction Transaction + err = json.Unmarshal(transJSON, &transaction) + if err != nil { + return nil, err + } + + return &transaction, nil +} + +func (s *SmartContract) UploadTransaction(ctx contractapi.TransactionContextInterface, + srcAccountId string, destAccountId string, amount float64, typesOf string, + signature string, createTime int64) (string, error) { + + // 生成交易元数据哈希作为ID + hash := sha256.New() + hash.Write([]byte(fmt.Sprintf("%s-%s-%f-%s-%d", srcAccountId, destAccountId, amount, typesOf, createTime))) + transactionId := hex.EncodeToString(hash.Sum(nil)) + + // 检查ID唯一性 + ret, err := ctx.GetStub().GetState(transactionId) + if err != nil { + return "", errors.New("get transaction failed") + } else if ret != nil { + return "", errors.New("transaction id already exists") + } + + transaction := Transaction{ + Id: transactionId, + SrcAccountId: srcAccountId, + DestAccountId: destAccountId, + Amount: amount, + TypesOf: typesOf, + Signature: signature, + CreateTime: createTime, + } + + transactionJSON, err := json.Marshal(transaction) + if err != nil { + return "", err + } + + err = ctx.GetStub().PutState(transaction.Id, transactionJSON) + if err != nil { + return "", fmt.Errorf("failed to put transaction to world state: %v", err) + } + + return transaction.Id, nil +} + +func (s *SmartContract) GetHonorCert(ctx contractapi.TransactionContextInterface, certId string) (*HonorCertificate, error) { + certJSON, err := ctx.GetStub().GetState(certId) + if err != nil { + return nil, fmt.Errorf("failed to read from world state: %v", err) + } + if certJSON == nil { + return nil, fmt.Errorf("the honor certificate %s does not exist", certId) + } + + var cert HonorCertificate + err = json.Unmarshal(certJSON, &cert) + if err != nil { + return nil, err + } + + return &cert, nil +} + +func (s *SmartContract) MintHonorCert(ctx contractapi.TransactionContextInterface, + userId, title, description, signature string, createTime int64) (string, error) { + + // 生成证书元数据哈希作为ID + hash := sha256.New() + hash.Write([]byte(fmt.Sprintf("%s-%s-%s-%d", userId, title, description, createTime))) + certId := hex.EncodeToString(hash.Sum(nil)) + + // 检查ID唯一性 + ret, err := ctx.GetStub().GetState(certId) + if err != nil { + return "", fmt.Errorf("failed to get certificate: %w", err) + } else if ret != nil { + return "", fmt.Errorf("certificate already exists") + } + + cert := HonorCertificate{ + Id: fmt.Sprintf("CERT%d", createTime), + UserId: userId, + Title: title, + Description: description, + Signature: signature, + CreateTime: createTime, + } + + certJSON, err := json.Marshal(cert) + if err != nil { + return "", err + } + + err = ctx.GetStub().PutState(cert.Id, certJSON) + if err != nil { + return "", fmt.Errorf("failed to put honor certificate to world state: %v", err) + } + + return cert.Id, nil +} diff --git a/token-sdk/go.work.sum b/token-sdk/go.work.sum index 5f5e37ce..49e1a854 100644 --- a/token-sdk/go.work.sum +++ b/token-sdk/go.work.sum @@ -1,285 +1,841 @@ +bitbucket.org/liamstask/goose v0.0.0-20150115234039-8488cc47d90c h1:bkb2NMGo3/Du52wvYj9Whth5KZfMV6d3O0Vbr3nz/UE= +cloud.google.com/go v0.105.0 h1:DNtEKRBAAzeS4KyIory52wWHuClNaXJ5x1F7xa4q+5Y= cloud.google.com/go v0.105.0/go.mod h1:PrLgOJNe5nfE9UMxKxgXj4mD3voiP+YQ6gdt6KMFOKM= +cloud.google.com/go/accessapproval v1.5.0 h1:/nTivgnV/n1CaAeo+ekGexTYUsKEU9jUVkoY5359+3Q= cloud.google.com/go/accessapproval v1.5.0/go.mod h1:HFy3tuiGvMdcd/u+Cu5b9NkO1pEICJ46IR82PoUdplw= +cloud.google.com/go/accesscontextmanager v1.4.0 h1:CFhNhU7pcD11cuDkQdrE6PQJgv0EXNKNv06jIzbLlCU= cloud.google.com/go/accesscontextmanager v1.4.0/go.mod h1:/Kjh7BBu/Gh83sv+K60vN9QE5NJcd80sU33vIe2IFPE= +cloud.google.com/go/aiplatform v1.27.0 h1:DBi3Jk9XjCJ4pkkLM4NqKgj3ozUL1wq4l+d3/jTGXAI= cloud.google.com/go/aiplatform v1.27.0/go.mod h1:Bvxqtl40l0WImSb04d0hXFU7gDOiq9jQmorivIiWcKg= +cloud.google.com/go/analytics v0.12.0 h1:NKw6PpQi6V1O+KsjuTd+bhip9d0REYu4NevC45vtGp8= cloud.google.com/go/analytics v0.12.0/go.mod h1:gkfj9h6XRf9+TS4bmuhPEShsh3hH8PAZzm/41OOhQd4= +cloud.google.com/go/apigateway v1.4.0 h1:IIoXKR7FKrEAQhMTz5hK2wiDz2WNFHS7eVr/L1lE/rM= cloud.google.com/go/apigateway v1.4.0/go.mod h1:pHVY9MKGaH9PQ3pJ4YLzoj6U5FUDeDFBllIz7WmzJoc= +cloud.google.com/go/apigeeconnect v1.4.0 h1:AONoTYJviyv1vS4IkvWzq69gEVdvHx35wKXc+e6wjZQ= cloud.google.com/go/apigeeconnect v1.4.0/go.mod h1:kV4NwOKqjvt2JYR0AoIWo2QGfoRtn/pkS3QlHp0Ni04= +cloud.google.com/go/appengine v1.5.0 h1:lmG+O5oaR9xNwaRBwE2XoMhwQHsHql5IoiGr1ptdDwU= cloud.google.com/go/appengine v1.5.0/go.mod h1:TfasSozdkFI0zeoxW3PTBLiNqRmzraodCWatWI9Dmak= +cloud.google.com/go/area120 v0.6.0 h1:TCMhwWEWhCn8d44/Zs7UCICTWje9j3HuV6nVGMjdpYw= cloud.google.com/go/area120 v0.6.0/go.mod h1:39yFJqWVgm0UZqWTOdqkLhjoC7uFfgXRC8g/ZegeAh0= +cloud.google.com/go/artifactregistry v1.9.0 h1:3d0LRAU1K6vfqCahhl9fx2oGHcq+s5gftdix4v8Ibrc= cloud.google.com/go/artifactregistry v1.9.0/go.mod h1:2K2RqvA2CYvAeARHRkLDhMDJ3OXy26h3XW+3/Jh2uYc= +cloud.google.com/go/asset v1.10.0 h1:aCrlaLGJWTODJX4G56ZYzJefITKEWNfbjjtHSzWpxW0= cloud.google.com/go/asset v1.10.0/go.mod h1:pLz7uokL80qKhzKr4xXGvBQXnzHn5evJAEAtZiIb0wY= +cloud.google.com/go/assuredworkloads v1.9.0 h1:hhIdCOowsT1GG5eMCIA0OwK6USRuYTou/1ZeNxCSRtA= cloud.google.com/go/assuredworkloads v1.9.0/go.mod h1:kFuI1P78bplYtT77Tb1hi0FMxM0vVpRC7VVoJC3ZoT0= +cloud.google.com/go/automl v1.8.0 h1:BMioyXSbg7d7xLibn47cs0elW6RT780IUWr42W8rp2Q= cloud.google.com/go/automl v1.8.0/go.mod h1:xWx7G/aPEe/NP+qzYXktoBSDfjO+vnKMGgsApGJJquM= +cloud.google.com/go/baremetalsolution v0.4.0 h1:g9KO6SkakcYPcc/XjAzeuUrEOXlYPnMpuiaywYaGrmQ= cloud.google.com/go/baremetalsolution v0.4.0/go.mod h1:BymplhAadOO/eBa7KewQ0Ppg4A4Wplbn+PsFKRLo0uI= +cloud.google.com/go/batch v0.4.0 h1:1jvEBY55OH4Sd2FxEXQfxGExFWov1A/IaRe+Z5Z71Fw= cloud.google.com/go/batch v0.4.0/go.mod h1:WZkHnP43R/QCGQsZ+0JyG4i79ranE2u8xvjq/9+STPE= +cloud.google.com/go/beyondcorp v0.3.0 h1:w+4kThysgl0JiKshi2MKDCg2NZgOyqOI0wq2eBZyrzA= cloud.google.com/go/beyondcorp v0.3.0/go.mod h1:E5U5lcrcXMsCuoDNyGrpyTm/hn7ne941Jz2vmksAxW8= +cloud.google.com/go/bigquery v1.44.0 h1:Wi4dITi+cf9VYp4VH2T9O41w0kCW0uQTELq2Z6tukN0= cloud.google.com/go/bigquery v1.44.0/go.mod h1:0Y33VqXTEsbamHJvJHdFmtqHvMIY28aK1+dFsvaChGc= +cloud.google.com/go/billing v1.7.0 h1:Xkii76HWELHwBtkQVZvqmSo9GTr0O+tIbRNnMcGdlg4= cloud.google.com/go/billing v1.7.0/go.mod h1:q457N3Hbj9lYwwRbnlD7vUpyjq6u5U1RAOArInEiD5Y= +cloud.google.com/go/binaryauthorization v1.4.0 h1:pL70vXWn9TitQYXBWTK2abHl2JHLwkFRjYw6VflRqEA= cloud.google.com/go/binaryauthorization v1.4.0/go.mod h1:tsSPQrBd77VLplV70GUhBf/Zm3FsKmgSqgm4UmiDItk= +cloud.google.com/go/certificatemanager v1.4.0 h1:tzbR4UHBbgsewMWUD93JHi8EBi/gHBoSAcY1/sThFGk= cloud.google.com/go/certificatemanager v1.4.0/go.mod h1:vowpercVFyqs8ABSmrdV+GiFf2H/ch3KyudYQEMM590= +cloud.google.com/go/channel v1.9.0 h1:pNuUlZx0Jb0Ts9P312bmNMuH5IiFWIR4RUtLb70Ke5s= cloud.google.com/go/channel v1.9.0/go.mod h1:jcu05W0my9Vx4mt3/rEHpfxc9eKi9XwsdDL8yBMbKUk= +cloud.google.com/go/cloudbuild v1.4.0 h1:TAAmCmAlOJ4uNBu6zwAjwhyl/7fLHHxIEazVhr3QBbQ= cloud.google.com/go/cloudbuild v1.4.0/go.mod h1:5Qwa40LHiOXmz3386FrjrYM93rM/hdRr7b53sySrTqA= +cloud.google.com/go/clouddms v1.4.0 h1:UhzHIlgFfMr6luVYVNydw/pl9/U5kgtjCMJHnSvoVws= cloud.google.com/go/clouddms v1.4.0/go.mod h1:Eh7sUGCC+aKry14O1NRljhjyrr0NFC0G2cjwX0cByRk= +cloud.google.com/go/cloudtasks v1.8.0 h1:faUiUgXjW8yVZ7XMnKHKm1WE4OldPBUWWfIRN/3z1dc= cloud.google.com/go/cloudtasks v1.8.0/go.mod h1:gQXUIwCSOI4yPVK7DgTVFiiP0ZW/eQkydWzwVMdHxrI= +cloud.google.com/go/compute v1.15.1 h1:7UGq3QknM33pw5xATlpzeoomNxsacIVvTqTTvbfajmE= cloud.google.com/go/compute v1.15.1/go.mod h1:bjjoF/NtFUrkD/urWfdHaKuOPDR5nWIs63rR+SXhcpA= +cloud.google.com/go/compute/metadata v0.2.3 h1:mg4jlk7mCAj6xXp9UJ4fjI9VUI5rubuGBW5aJ7UnBMY= cloud.google.com/go/compute/metadata v0.2.3/go.mod h1:VAV5nSsACxMJvgaAuX6Pk2AawlZn8kiOGuCv6gTkwuA= +cloud.google.com/go/contactcenterinsights v1.4.0 h1:tTQLI/ZvguUf9Hv+36BkG2+/PeC8Ol1q4pBW+tgCx0A= cloud.google.com/go/contactcenterinsights v1.4.0/go.mod h1:L2YzkGbPsv+vMQMCADxJoT9YiTTnSEd6fEvCeHTYVck= +cloud.google.com/go/container v1.7.0 h1:nbEK/59GyDRKKlo1SqpohY1TK8LmJ2XNcvS9Gyom2A0= cloud.google.com/go/container v1.7.0/go.mod h1:Dp5AHtmothHGX3DwwIHPgq45Y8KmNsgN3amoYfxVkLo= +cloud.google.com/go/containeranalysis v0.6.0 h1:2824iym832ljKdVpCBnpqm5K94YT/uHTVhNF+dRTXPI= cloud.google.com/go/containeranalysis v0.6.0/go.mod h1:HEJoiEIu+lEXM+k7+qLCci0h33lX3ZqoYFdmPcoO7s4= +cloud.google.com/go/datacatalog v1.8.0 h1:6kZ4RIOW/uT7QWC5SfPfq/G8sYzr/v+UOmOAxy4Z1TE= cloud.google.com/go/datacatalog v1.8.0/go.mod h1:KYuoVOv9BM8EYz/4eMFxrr4DUKhGIOXxZoKYF5wdISM= +cloud.google.com/go/dataflow v0.7.0 h1:CW3541Fm7KPTyZjJdnX6NtaGXYFn5XbFC5UcjgALKvU= cloud.google.com/go/dataflow v0.7.0/go.mod h1:PX526vb4ijFMesO1o202EaUmouZKBpjHsTlCtB4parQ= +cloud.google.com/go/dataform v0.5.0 h1:vLwowLF2ZB5J5gqiZCzv076lDI/Rd7zYQQFu5XO1PSg= cloud.google.com/go/dataform v0.5.0/go.mod h1:GFUYRe8IBa2hcomWplodVmUx/iTL0FrsauObOM3Ipr0= +cloud.google.com/go/datafusion v1.5.0 h1:j5m2hjWovTZDTQak4MJeXAR9yN7O+zMfULnjGw/OOLg= cloud.google.com/go/datafusion v1.5.0/go.mod h1:Kz+l1FGHB0J+4XF2fud96WMmRiq/wj8N9u007vyXZ2w= +cloud.google.com/go/datalabeling v0.6.0 h1:dp8jOF21n/7jwgo/uuA0RN8hvLcKO4q6s/yvwevs2ZM= cloud.google.com/go/datalabeling v0.6.0/go.mod h1:WqdISuk/+WIGeMkpw/1q7bK/tFEZxsrFJOJdY2bXvTQ= +cloud.google.com/go/dataplex v1.4.0 h1:cNxeA2DiWliQGi21kPRqnVeQ5xFhNoEjPRt1400Pm8Y= cloud.google.com/go/dataplex v1.4.0/go.mod h1:X51GfLXEMVJ6UN47ESVqvlsRplbLhcsAt0kZCCKsU0A= +cloud.google.com/go/dataproc v1.8.0 h1:gVOqNmElfa6n/ccG/QDlfurMWwrK3ezvy2b2eDoCmS0= cloud.google.com/go/dataproc v1.8.0/go.mod h1:5OW+zNAH0pMpw14JVrPONsxMQYMBqJuzORhIBfBn9uI= +cloud.google.com/go/dataqna v0.6.0 h1:gx9jr41ytcA3dXkbbd409euEaWtofCVXYBvJz3iYm18= cloud.google.com/go/dataqna v0.6.0/go.mod h1:1lqNpM7rqNLVgWBJyk5NF6Uen2PHym0jtVJonplVsDA= +cloud.google.com/go/datastore v1.10.0 h1:4siQRf4zTiAVt/oeH4GureGkApgb2vtPQAtOmhpqQwE= cloud.google.com/go/datastore v1.10.0/go.mod h1:PC5UzAmDEkAmkfaknstTYbNpgE49HAgW2J1gcgUfmdM= +cloud.google.com/go/datastream v1.5.0 h1:PgIgbhedBtYBU6POGXFMn2uSl9vpqubc3ewTNdcU8Mk= cloud.google.com/go/datastream v1.5.0/go.mod h1:6TZMMNPwjUqZHBKPQ1wwXpb0d5VDVPl2/XoS5yi88q4= +cloud.google.com/go/deploy v1.5.0 h1:kI6dxt8Ml0is/x7YZjLveTvR7YPzXAUD/8wQZ2nH5zA= cloud.google.com/go/deploy v1.5.0/go.mod h1:ffgdD0B89tToyW/U/D2eL0jN2+IEV/3EMuXHA0l4r+s= +cloud.google.com/go/dialogflow v1.19.0 h1:HYHVOkoxQ9bSfNIelSZYNAtUi4CeSrCnROyOsbOqPq8= cloud.google.com/go/dialogflow v1.19.0/go.mod h1:JVmlG1TwykZDtxtTXujec4tQ+D8SBFMoosgy+6Gn0s0= +cloud.google.com/go/dlp v1.7.0 h1:9I4BYeJSVKoSKgjr70fLdRDumqcUeVmHV4fd5f9LR6Y= cloud.google.com/go/dlp v1.7.0/go.mod h1:68ak9vCiMBjbasxeVD17hVPxDEck+ExiHavX8kiHG+Q= +cloud.google.com/go/documentai v1.10.0 h1:jfq09Fdjtnpnmt/MLyf6A3DM3ynb8B2na0K+vSXvpFM= cloud.google.com/go/documentai v1.10.0/go.mod h1:vod47hKQIPeCfN2QS/jULIvQTugbmdc0ZvxxfQY1bg4= +cloud.google.com/go/domains v0.7.0 h1:pu3JIgC1rswIqi5romW0JgNO6CTUydLYX8zyjiAvO1c= cloud.google.com/go/domains v0.7.0/go.mod h1:PtZeqS1xjnXuRPKE/88Iru/LdfoRyEHYA9nFQf4UKpg= +cloud.google.com/go/edgecontainer v0.2.0 h1:hd6J2n5dBBRuAqnNUEsKWrp6XNPKsaxwwIyzOPZTokk= cloud.google.com/go/edgecontainer v0.2.0/go.mod h1:RTmLijy+lGpQ7BXuTDa4C4ssxyXT34NIuHIgKuP4s5w= +cloud.google.com/go/errorreporting v0.3.0 h1:kj1XEWMu8P0qlLhm3FwcaFsUvXChV/OraZwA70trRR0= cloud.google.com/go/errorreporting v0.3.0/go.mod h1:xsP2yaAp+OAW4OIm60An2bbLpqIhKXdWR/tawvl7QzU= +cloud.google.com/go/essentialcontacts v1.4.0 h1:b6csrQXCHKQmfo9h3dG/pHyoEh+fQG1Yg78a53LAviY= cloud.google.com/go/essentialcontacts v1.4.0/go.mod h1:8tRldvHYsmnBCHdFpvU+GL75oWiBKl80BiqlFh9tp+8= +cloud.google.com/go/eventarc v1.8.0 h1:AgCqrmMMIcel5WWKkzz5EkCUKC3Rl5LNMMYsS+LvsI0= cloud.google.com/go/eventarc v1.8.0/go.mod h1:imbzxkyAU4ubfsaKYdQg04WS1NvncblHEup4kvF+4gw= +cloud.google.com/go/filestore v1.4.0 h1:yjKOpzvqtDmL5AXbKttLc8j0hL20kuC1qPdy5HPcxp0= cloud.google.com/go/filestore v1.4.0/go.mod h1:PaG5oDfo9r224f8OYXURtAsY+Fbyq/bLYoINEK8XQAI= +cloud.google.com/go/firestore v1.9.0 h1:IBlRyxgGySXu5VuW0RgGFlTtLukSnNkpDiEOMkQkmpA= cloud.google.com/go/firestore v1.9.0/go.mod h1:HMkjKHNTtRyZNiMzu7YAsLr9K3X2udY2AMwDaMEQiiE= +cloud.google.com/go/functions v1.9.0 h1:35tgv1fQOtvKqH/uxJMzX3w6usneJ0zXpsFr9KAVhNE= cloud.google.com/go/functions v1.9.0/go.mod h1:Y+Dz8yGguzO3PpIjhLTbnqV1CWmgQ5UwtlpzoyquQ08= +cloud.google.com/go/gaming v1.8.0 h1:97OAEQtDazAJD7yh/kvQdSCQuTKdR0O+qWAJBZJ4xiA= cloud.google.com/go/gaming v1.8.0/go.mod h1:xAqjS8b7jAVW0KFYeRUxngo9My3f33kFmua++Pi+ggM= +cloud.google.com/go/gkebackup v0.3.0 h1:4K+jiv4ocqt1niN8q5Imd8imRoXBHTrdnJVt/uFFxF4= cloud.google.com/go/gkebackup v0.3.0/go.mod h1:n/E671i1aOQvUxT541aTkCwExO/bTer2HDlj4TsBRAo= +cloud.google.com/go/gkeconnect v0.6.0 h1:zAcvDa04tTnGdu6TEZewaLN2tdMtUOJJ7fEceULjguA= cloud.google.com/go/gkeconnect v0.6.0/go.mod h1:Mln67KyU/sHJEBY8kFZ0xTeyPtzbq9StAVvEULYK16A= +cloud.google.com/go/gkehub v0.10.0 h1:JTcTaYQRGsVm+qkah7WzHb6e9sf1C0laYdRPn9aN+vg= cloud.google.com/go/gkehub v0.10.0/go.mod h1:UIPwxI0DsrpsVoWpLB0stwKCP+WFVG9+y977wO+hBH0= +cloud.google.com/go/gkemulticloud v0.4.0 h1:8F1NhJj8ucNj7lK51UZMtAjSWTgP1zO18XF6vkfiPPU= cloud.google.com/go/gkemulticloud v0.4.0/go.mod h1:E9gxVBnseLWCk24ch+P9+B2CoDFJZTyIgLKSalC7tuI= +cloud.google.com/go/gsuiteaddons v1.4.0 h1:TGT2oGmO5q3VH6SjcrlgPUWI0njhYv4kywLm6jag0to= cloud.google.com/go/gsuiteaddons v1.4.0/go.mod h1:rZK5I8hht7u7HxFQcFei0+AtfS9uSushomRlg+3ua1o= +cloud.google.com/go/iam v0.8.0 h1:E2osAkZzxI/+8pZcxVLcDtAQx/u+hZXVryUaYQ5O0Kk= cloud.google.com/go/iam v0.8.0/go.mod h1:lga0/y3iH6CX7sYqypWJ33hf7kkfXJag67naqGESjkE= +cloud.google.com/go/iap v1.5.0 h1:BGEXovwejOCt1zDk8hXq0bOhhRu9haXKWXXXp2B4wBM= cloud.google.com/go/iap v1.5.0/go.mod h1:UH/CGgKd4KyohZL5Pt0jSKE4m3FR51qg6FKQ/z/Ix9A= +cloud.google.com/go/ids v1.2.0 h1:LncHK4HHucb5Du310X8XH9/ICtMwZ2PCfK0ScjWiJoY= cloud.google.com/go/ids v1.2.0/go.mod h1:5WXvp4n25S0rA/mQWAg1YEEBBq6/s+7ml1RDCW1IrcY= +cloud.google.com/go/iot v1.4.0 h1:Y9+oZT9jD4GUZzORXTU45XsnQrhxmDT+TFbPil6pRVQ= cloud.google.com/go/iot v1.4.0/go.mod h1:dIDxPOn0UvNDUMD8Ger7FIaTuvMkj+aGk94RPP0iV+g= +cloud.google.com/go/kms v1.6.0 h1:OWRZzrPmOZUzurjI2FBGtgY2mB1WaJkqhw6oIwSj0Yg= cloud.google.com/go/kms v1.6.0/go.mod h1:Jjy850yySiasBUDi6KFUwUv2n1+o7QZFyuUJg6OgjA0= +cloud.google.com/go/language v1.8.0 h1:3Wa+IUMamL4JH3Zd3cDZUHpwyqplTACt6UZKRD2eCL4= cloud.google.com/go/language v1.8.0/go.mod h1:qYPVHf7SPoNNiCL2Dr0FfEFNil1qi3pQEyygwpgVKB8= +cloud.google.com/go/lifesciences v0.6.0 h1:tIqhivE2LMVYkX0BLgG7xL64oNpDaFFI7teunglt1tI= cloud.google.com/go/lifesciences v0.6.0/go.mod h1:ddj6tSX/7BOnhxCSd3ZcETvtNr8NZ6t/iPhY2Tyfu08= +cloud.google.com/go/logging v1.6.1 h1:ZBsZK+JG+oCDT+vaxwqF2egKNRjz8soXiS6Xv79benI= cloud.google.com/go/logging v1.6.1/go.mod h1:5ZO0mHHbvm8gEmeEUHrmDlTDSu5imF6MUP9OfilNXBw= +cloud.google.com/go/longrunning v0.3.0 h1:NjljC+FYPV3uh5/OwWT6pVU+doBqMg2x/rZlE+CamDs= cloud.google.com/go/longrunning v0.3.0/go.mod h1:qth9Y41RRSUE69rDcOn6DdK3HfQfsUI0YSmW3iIlLJc= +cloud.google.com/go/managedidentities v1.4.0 h1:3Kdajn6X25yWQFhFCErmKSYTSvkEd3chJROny//F1A0= cloud.google.com/go/managedidentities v1.4.0/go.mod h1:NWSBYbEMgqmbZsLIyKvxrYbtqOsxY1ZrGM+9RgDqInM= +cloud.google.com/go/maps v0.1.0 h1:kLReRbclTgJefw2fcCbdLPLhPj0U6UUWN10ldG8sdOU= cloud.google.com/go/maps v0.1.0/go.mod h1:BQM97WGyfw9FWEmQMpZ5T6cpovXXSd1cGmFma94eubI= +cloud.google.com/go/mediatranslation v0.6.0 h1:qAJzpxmEX+SeND10Y/4868L5wfZpo4Y3BIEnIieP4dk= cloud.google.com/go/mediatranslation v0.6.0/go.mod h1:hHdBCTYNigsBxshbznuIMFNe5QXEowAuNmmC7h8pu5w= +cloud.google.com/go/memcache v1.7.0 h1:yLxUzJkZVSH2kPaHut7k+7sbIBFpvSh1LW9qjM2JDjA= cloud.google.com/go/memcache v1.7.0/go.mod h1:ywMKfjWhNtkQTxrWxCkCFkoPjLHPW6A7WOTVI8xy3LY= +cloud.google.com/go/metastore v1.8.0 h1:3KcShzqWdqxrDEXIBWpYJpOOrgpDj+HlBi07Grot49Y= cloud.google.com/go/metastore v1.8.0/go.mod h1:zHiMc4ZUpBiM7twCIFQmJ9JMEkDSyZS9U12uf7wHqSI= +cloud.google.com/go/monitoring v1.8.0 h1:c9riaGSPQ4dUKWB+M1Fl0N+iLxstMbCktdEwYSPGDvA= cloud.google.com/go/monitoring v1.8.0/go.mod h1:E7PtoMJ1kQXWxPjB6mv2fhC5/15jInuulFdYYtlcvT4= +cloud.google.com/go/networkconnectivity v1.7.0 h1:BVdIKaI68bihnXGdCVL89Jsg9kq2kg+II30fjVqo62E= cloud.google.com/go/networkconnectivity v1.7.0/go.mod h1:RMuSbkdbPwNMQjB5HBWD5MpTBnNm39iAVpC3TmsExt8= +cloud.google.com/go/networkmanagement v1.5.0 h1:mDHA3CDW00imTvC5RW6aMGsD1bH+FtKwZm/52BxaiMg= cloud.google.com/go/networkmanagement v1.5.0/go.mod h1:ZnOeZ/evzUdUsnvRt792H0uYEnHQEMaz+REhhzJRcf4= +cloud.google.com/go/networksecurity v0.6.0 h1:qDEX/3sipg9dS5JYsAY+YvgTjPR63cozzAWop8oZS94= cloud.google.com/go/networksecurity v0.6.0/go.mod h1:Q5fjhTr9WMI5mbpRYEbiexTzROf7ZbDzvzCrNl14nyU= +cloud.google.com/go/notebooks v1.5.0 h1:AC8RPjNvel3ExgXjO1YOAz+teg9+j+89TNxa7pIZfww= cloud.google.com/go/notebooks v1.5.0/go.mod h1:q8mwhnP9aR8Hpfnrc5iN5IBhrXUy8S2vuYs+kBJ/gu0= +cloud.google.com/go/optimization v1.2.0 h1:7PxOq9VTT7TMib/6dMoWpMvWS2E4dJEvtYzjvBreaec= cloud.google.com/go/optimization v1.2.0/go.mod h1:Lr7SOHdRDENsh+WXVmQhQTrzdu9ybg0NecjHidBq6xs= +cloud.google.com/go/orchestration v1.4.0 h1:39d6tqvNjd/wsSub1Bn4cEmrYcet5Ur6xpaN+SxOxtY= cloud.google.com/go/orchestration v1.4.0/go.mod h1:6W5NLFWs2TlniBphAViZEVhrXRSMgUGDfW7vrWKvsBk= +cloud.google.com/go/orgpolicy v1.5.0 h1:erF5PHqDZb6FeFrUHiYj2JK2BMhsk8CyAg4V4amJ3rE= cloud.google.com/go/orgpolicy v1.5.0/go.mod h1:hZEc5q3wzwXJaKrsx5+Ewg0u1LxJ51nNFlext7Tanwc= +cloud.google.com/go/osconfig v1.10.0 h1:NO0RouqCOM7M2S85Eal6urMSSipWwHU8evzwS+siqUI= cloud.google.com/go/osconfig v1.10.0/go.mod h1:uMhCzqC5I8zfD9zDEAfvgVhDS8oIjySWh+l4WK6GnWw= +cloud.google.com/go/oslogin v1.7.0 h1:pKGDPfeZHDybtw48WsnVLjoIPMi9Kw62kUE5TXCLCN4= cloud.google.com/go/oslogin v1.7.0/go.mod h1:e04SN0xO1UNJ1M5GP0vzVBFicIe4O53FOfcixIqTyXo= +cloud.google.com/go/phishingprotection v0.6.0 h1:OrwHLSRSZyaiOt3tnY33dsKSedxbMzsXvqB21okItNQ= cloud.google.com/go/phishingprotection v0.6.0/go.mod h1:9Y3LBLgy0kDTcYET8ZH3bq/7qni15yVUoAxiFxnlSUA= +cloud.google.com/go/policytroubleshooter v1.4.0 h1:NQklJuOUoz1BPP+Epjw81COx7IISWslkZubz/1i0UN8= cloud.google.com/go/policytroubleshooter v1.4.0/go.mod h1:DZT4BcRw3QoO8ota9xw/LKtPa8lKeCByYeKTIf/vxdE= +cloud.google.com/go/privatecatalog v0.6.0 h1:Vz86uiHCtNGm1DeC32HeG2VXmOq5JRYA3VRPf8ZEcSg= cloud.google.com/go/privatecatalog v0.6.0/go.mod h1:i/fbkZR0hLN29eEWiiwue8Pb+GforiEIBnV9yrRUOKI= +cloud.google.com/go/pubsub v1.27.1 h1:q+J/Nfr6Qx4RQeu3rJcnN48SNC0qzlYzSeqkPq93VHs= cloud.google.com/go/pubsub v1.27.1/go.mod h1:hQN39ymbV9geqBnfQq6Xf63yNhUAhv9CZhzp5O6qsW0= +cloud.google.com/go/pubsublite v1.5.0 h1:iqrD8vp3giTb7hI1q4TQQGj77cj8zzgmMPsTZtLnprM= cloud.google.com/go/pubsublite v1.5.0/go.mod h1:xapqNQ1CuLfGi23Yda/9l4bBCKz/wC3KIJ5gKcxveZg= +cloud.google.com/go/recaptchaenterprise/v2 v2.5.0 h1:UqzFfb/WvhwXGDF1eQtdHLrmni+iByZXY4h3w9Kdyv8= cloud.google.com/go/recaptchaenterprise/v2 v2.5.0/go.mod h1:O8LzcHXN3rz0j+LBC91jrwI3R+1ZSZEWrfL7XHgNo9U= +cloud.google.com/go/recommendationengine v0.6.0 h1:6w+WxPf2LmUEqX0YyvfCoYb8aBYOcbIV25Vg6R0FLGw= cloud.google.com/go/recommendationengine v0.6.0/go.mod h1:08mq2umu9oIqc7tDy8sx+MNJdLG0fUi3vaSVbztHgJ4= +cloud.google.com/go/recommender v1.8.0 h1:9kMZQGeYfcOD/RtZfcNKGKtoex3DdoB4zRgYU/WaIwE= cloud.google.com/go/recommender v1.8.0/go.mod h1:PkjXrTT05BFKwxaUxQmtIlrtj0kph108r02ZZQ5FE70= +cloud.google.com/go/redis v1.10.0 h1:/zTwwBKIAD2DEWTrXZp8WD9yD/gntReF/HkPssVYd0U= cloud.google.com/go/redis v1.10.0/go.mod h1:ThJf3mMBQtW18JzGgh41/Wld6vnDDc/F/F35UolRZPM= +cloud.google.com/go/resourcemanager v1.4.0 h1:NDao6CHMwEZIaNsdWy+tuvHaavNeGP06o1tgrR0kLvU= cloud.google.com/go/resourcemanager v1.4.0/go.mod h1:MwxuzkumyTX7/a3n37gmsT3py7LIXwrShilPh3P1tR0= +cloud.google.com/go/resourcesettings v1.4.0 h1:eTzOwB13WrfF0kuzG2ZXCfB3TLunSHBur4s+HFU6uSM= cloud.google.com/go/resourcesettings v1.4.0/go.mod h1:ldiH9IJpcrlC3VSuCGvjR5of/ezRrOxFtpJoJo5SmXg= +cloud.google.com/go/retail v1.11.0 h1:N9fa//ecFUOEPsW/6mJHfcapPV0wBSwIUwpVZB7MQ3o= cloud.google.com/go/retail v1.11.0/go.mod h1:MBLk1NaWPmh6iVFSz9MeKG/Psyd7TAgm6y/9L2B4x9Y= +cloud.google.com/go/run v0.3.0 h1:AWPuzU7Xtaj3Jf+QarDWIs6AJ5hM1VFQ+F6Q+VZ6OT4= cloud.google.com/go/run v0.3.0/go.mod h1:TuyY1+taHxTjrD0ZFk2iAR+xyOXEA0ztb7U3UNA0zBo= +cloud.google.com/go/scheduler v1.7.0 h1:K/mxOewgHGeKuATUJNGylT75Mhtjmx1TOkKukATqMT8= cloud.google.com/go/scheduler v1.7.0/go.mod h1:jyCiBqWW956uBjjPMMuX09n3x37mtyPJegEWKxRsn44= +cloud.google.com/go/secretmanager v1.9.0 h1:xE6uXljAC1kCR8iadt9+/blg1fvSbmenlsDN4fT9gqw= cloud.google.com/go/secretmanager v1.9.0/go.mod h1:b71qH2l1yHmWQHt9LC80akm86mX8AL6X1MA01dW8ht4= +cloud.google.com/go/security v1.10.0 h1:KSKzzJMyUoMRQzcz7azIgqAUqxo7rmQ5rYvimMhikqg= cloud.google.com/go/security v1.10.0/go.mod h1:QtOMZByJVlibUT2h9afNDWRZ1G96gVywH8T5GUSb9IA= +cloud.google.com/go/securitycenter v1.16.0 h1:QTVtk/Reqnx2bVIZtJKm1+mpfmwRwymmNvlaFez7fQY= cloud.google.com/go/securitycenter v1.16.0/go.mod h1:Q9GMaLQFUD+5ZTabrbujNWLtSLZIZF7SAR0wWECrjdk= +cloud.google.com/go/servicecontrol v1.5.0 h1:ImIzbOu6y4jL6ob65I++QzvqgFaoAKgHOG+RU9/c4y8= cloud.google.com/go/servicecontrol v1.5.0/go.mod h1:qM0CnXHhyqKVuiZnGKrIurvVImCs8gmqWsDoqe9sU1s= +cloud.google.com/go/servicedirectory v1.7.0 h1:f7M8IMcVzO3T425AqlZbP3yLzeipsBHtRza8vVFYMhQ= cloud.google.com/go/servicedirectory v1.7.0/go.mod h1:5p/U5oyvgYGYejufvxhgwjL8UVXjkuw7q5XcG10wx1U= +cloud.google.com/go/servicemanagement v1.5.0 h1:TpkCO5M7dhKSy1bKUD9o/sSEW/U1Gtx7opA1fsiMx0c= cloud.google.com/go/servicemanagement v1.5.0/go.mod h1:XGaCRe57kfqu4+lRxaFEAuqmjzF0r+gWHjWqKqBvKFo= +cloud.google.com/go/serviceusage v1.4.0 h1:b0EwJxPJLpavSljMQh0RcdHsUrr5DQ+Nelt/3BAs5ro= cloud.google.com/go/serviceusage v1.4.0/go.mod h1:SB4yxXSaYVuUBYUml6qklyONXNLt83U0Rb+CXyhjEeU= +cloud.google.com/go/shell v1.4.0 h1:b1LFhFBgKsG252inyhtmsUUZwchqSz3WTvAIf3JFo4g= cloud.google.com/go/shell v1.4.0/go.mod h1:HDxPzZf3GkDdhExzD/gs8Grqk+dmYcEjGShZgYa9URw= +cloud.google.com/go/spanner v1.41.0 h1:NvdTpRwf7DTegbfFdPjAWyD7bOVu0VeMqcvR9aCQCAc= cloud.google.com/go/spanner v1.41.0/go.mod h1:MLYDBJR/dY4Wt7ZaMIQ7rXOTLjYrmxLE/5ve9vFfWos= +cloud.google.com/go/speech v1.9.0 h1:yK0ocnFH4Wsf0cMdUyndJQ/hPv02oTJOxzi6AgpBy4s= cloud.google.com/go/speech v1.9.0/go.mod h1:xQ0jTcmnRFFM2RfX/U+rk6FQNUF6DQlydUSyoooSpco= +cloud.google.com/go/storage v1.10.0 h1:STgFzyU5/8miMl0//zKh2aQeTyeaUH3WN9bSUiJ09bA= +cloud.google.com/go/storagetransfer v1.6.0 h1:fUe3OydbbvHcAYp07xY+2UpH4AermGbmnm7qdEj3tGE= cloud.google.com/go/storagetransfer v1.6.0/go.mod h1:y77xm4CQV/ZhFZH75PLEXY0ROiS7Gh6pSKrM8dJyg6I= +cloud.google.com/go/talent v1.4.0 h1:MrekAGxLqAeAol4Sc0allOVqUGO8j+Iim8NMvpiD7tM= cloud.google.com/go/talent v1.4.0/go.mod h1:ezFtAgVuRf8jRsvyE6EwmbTK5LKciD4KVnHuDEFmOOA= +cloud.google.com/go/texttospeech v1.5.0 h1:ccPiHgTewxgyAeCWgQWvZvrLmbfQSFABTMAfrSPLPyY= cloud.google.com/go/texttospeech v1.5.0/go.mod h1:oKPLhR4n4ZdQqWKURdwxMy0uiTS1xU161C8W57Wkea4= +cloud.google.com/go/tpu v1.4.0 h1:ztIdKoma1Xob2qm6QwNh4Xi9/e7N3IfvtwG5AcNsj1g= cloud.google.com/go/tpu v1.4.0/go.mod h1:mjZaX8p0VBgllCzF6wcU2ovUXN9TONFLd7iz227X2Xg= +cloud.google.com/go/trace v1.4.0 h1:qO9eLn2esajC9sxpqp1YKX37nXC3L4BfGnPS0Cx9dYo= cloud.google.com/go/trace v1.4.0/go.mod h1:UG0v8UBqzusp+z63o7FK74SdFE+AXpCLdFb1rshXG+Y= +cloud.google.com/go/translate v1.4.0 h1:AOYOH3MspzJ/bH1YXzB+xTE8fMpn3mwhLjugwGXvMPI= cloud.google.com/go/translate v1.4.0/go.mod h1:06Dn/ppvLD6WvA5Rhdp029IX2Mi3Mn7fpMRLPvXT5Wg= +cloud.google.com/go/video v1.9.0 h1:ttlvO4J5c1VGq6FkHqWPD/aH6PfdxujHt+muTJlW1Zk= cloud.google.com/go/video v1.9.0/go.mod h1:0RhNKFRF5v92f8dQt0yhaHrEuH95m068JYOvLZYnJSw= +cloud.google.com/go/videointelligence v1.9.0 h1:RPFgVVXbI2b5vnrciZjtsUgpNKVtHO/WIyXUhEfuMhA= cloud.google.com/go/videointelligence v1.9.0/go.mod h1:29lVRMPDYHikk3v8EdPSaL8Ku+eMzDljjuvRs105XoU= +cloud.google.com/go/vision/v2 v2.5.0 h1:TQHxRqvLMi19azwm3qYuDbEzZWmiKJNTpGbkNsfRCik= cloud.google.com/go/vision/v2 v2.5.0/go.mod h1:MmaezXOOE+IWa+cS7OhRRLK2cNv1ZL98zhqFFZaaH2E= +cloud.google.com/go/vmmigration v1.3.0 h1:A2Tl2ZmwMRpvEmhV2ibISY85fmQR+Y5w9a0PlRz5P3s= cloud.google.com/go/vmmigration v1.3.0/go.mod h1:oGJ6ZgGPQOFdjHuocGcLqX4lc98YQ7Ygq8YQwHh9A7g= +cloud.google.com/go/vmwareengine v0.1.0 h1:JMPZaOT/gIUxVlTqSl/QQ32Y2k+r0stNeM1NSqhVP9o= cloud.google.com/go/vmwareengine v0.1.0/go.mod h1:RsdNEf/8UDvKllXhMz5J40XxDrNJNN4sagiox+OI208= +cloud.google.com/go/vpcaccess v1.5.0 h1:woHXXtnW8b9gLFdWO9HLPalAddBQ9V4LT+1vjKwR3W8= cloud.google.com/go/vpcaccess v1.5.0/go.mod h1:drmg4HLk9NkZpGfCmZ3Tz0Bwnm2+DKqViEpeEpOq0m8= +cloud.google.com/go/webrisk v1.7.0 h1:ypSnpGlJnZSXbN9a13PDmAYvVekBLnGKxQ3Q9SMwnYY= cloud.google.com/go/webrisk v1.7.0/go.mod h1:mVMHgEYH0r337nmt1JyLthzMr6YxwN1aAIEc2fTcq7A= +cloud.google.com/go/websecurityscanner v1.4.0 h1:y7yIFg/h/mO+5Y5aCOtVAnpGUOgqCH5rXQ2Oc8Oq2+g= cloud.google.com/go/websecurityscanner v1.4.0/go.mod h1:ebit/Fp0a+FWu5j4JOmJEV8S8CzdTkAS77oDsiSqYWQ= +cloud.google.com/go/workflows v1.9.0 h1:7Chpin9p50NTU8Tb7qk+I11U/IwVXmDhEoSsdccvInE= cloud.google.com/go/workflows v1.9.0/go.mod h1:ZGkj1aFIOd9c8Gerkjjq7OW7I5+l6cSvT3ujaO/WwSA= +code.cloudfoundry.org/clock v1.0.0 h1:kFXWQM4bxYvdBw2X8BbBeXwQNgfoWv1vqAk2ZZyBN2o= +dmitri.shuralyov.com/app/changes v0.0.0-20180602232624-0a106ad413e3 h1:hJiie5Bf3QucGRa4ymsAUOxyhYwGEz1xrsVk0P8erlw= +dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9 h1:VpgP7xuJadIUuKccphEpTJnWhS2jkQyMt6Y7pJCD7fY= +dmitri.shuralyov.com/html/belt v0.0.0-20180602232347-f7d459c86be0 h1:SPOUaucgtVls75mg+X7CXigS71EnsfVUK/2CgVrwqgw= +dmitri.shuralyov.com/service/change v0.0.0-20181023043359-a85b471d5412 h1:GvWw74lx5noHocd+f6HBMXK6DuggBB1dhVkuGZbv7qM= +dmitri.shuralyov.com/state v0.0.0-20180228185332-28bcc343414c h1:ivON6cwHK1OH26MZyWDCnbTRZZf0IhNsENoNAKFS1g4= +git.apache.org/thrift.git v0.0.0-20180902110319-2566ecd5d999 h1:OR8VhtwhcAI3U48/rzBsVOuHi0zDPzYI1xASVcdSgR8= +github.com/AndreasBriese/bbloom v0.0.0-20190825152654-46b345b51c96 h1:cTp8I5+VIoKjsnZuH8vjyaysT/ses3EvZeaV/1UkF2M= github.com/AndreasBriese/bbloom v0.0.0-20190825152654-46b345b51c96/go.mod h1:bOvUY6CB00SOBii9/FifXqc0awNKxLFCL/+pkDPuyl8= +github.com/Azure/go-ansiterm v0.0.0-20210617225240-d185dfc1b5a1 h1:UQHMgLO+TxOElx5B5HZ4hJQsoJ/PvUvKRhJHDQXO8P8= github.com/Azure/go-ansiterm v0.0.0-20210617225240-d185dfc1b5a1/go.mod h1:xomTg63KZ2rFqZQzSB4Vz2SUXa1BpHTVz9L5PTmPC4E= +github.com/BurntSushi/xgb v0.0.0-20160522181843-27f122750802 h1:1BDTz0u9nC3//pOCMdNH+CiXJVYJh5UQNCOBG7jbELc= +github.com/DATA-DOG/go-txdb v0.1.3 h1:R4v6OuOcy2O147e2zHxU0B4NDtF+INb5R9q/CV7AEMg= +github.com/DataDog/datadog-go v3.2.0+incompatible h1:qSG2N4FghB1He/r2mFrWKCaL7dXCilEuNEeAn20fdD4= +github.com/DataDog/zstd v1.4.5 h1:EndNeuB0l9syBZhut0wns3gV1hL8zX8LIu6ZiVHWLIQ= github.com/DataDog/zstd v1.4.5/go.mod h1:1jcaCB/ufaK+sKp1NBhlGmpz41jOoPQ35bpF36t7BBo= +github.com/GeertJohan/go.incremental v1.0.0 h1:7AH+pY1XUgQE4Y1HcXYaMqAI0m9yrFqo/jt0CW30vsg= +github.com/GeertJohan/go.rice v1.0.0 h1:KkI6O9uMaQU3VEKaj01ulavtF7o1fWT7+pk/4voiMLQ= +github.com/Microsoft/go-winio v0.5.2 h1:a9IhgEQBCUEk6QCdml9CiJGhAws+YwffDHEMp1VMrpA= github.com/Microsoft/go-winio v0.5.2/go.mod h1:WpS1mjBmmwHBEWmogvA2mj8546UReBk4v8QkMxJ6pZY= +github.com/Microsoft/hcsshim v0.8.25 h1:fRMwXiwk3qDwc0P05eHnh+y2v07JdtsfQ1fuAc69m9g= github.com/Microsoft/hcsshim v0.8.25/go.mod h1:4zegtUJth7lAvFyc6cH2gGQ5B3OFQim01nnU2M8jKDg= +github.com/Nvveen/Gotty v0.0.0-20120604004816-cd527374f1e5 h1:TngWCqHvy9oXAN6lEVMRuU21PR1EtLVZJmdB18Gu3Rw= +github.com/PuerkitoBio/purell v1.1.1 h1:WEQqlqaGbrPkxLJWfBwQmfEAE1Z7ONdDLqrN38tNFfI= +github.com/PuerkitoBio/urlesc v0.0.0-20170810143723-de5bf2ad4578 h1:d+Bc7a5rLufV/sSk/8dngufqelfh6jnri85riMAaF/M= +github.com/RaveNoX/go-jsoncommentstrip v1.0.0 h1:t527LHHE3HmiHrq74QMpNPZpGCIJzTx+apLkMKt4HC0= +github.com/Shopify/toxiproxy v2.1.4+incompatible h1:TKdv8HiTLgE5wdJuEML90aBgNWsokNbMijUGhmcoBJc= +github.com/VictoriaMetrics/fastcache v1.9.0 h1:oMwsS6c8abz98B7ytAewQ7M1ZN/Im/iwKoE1euaFvhs= github.com/VictoriaMetrics/fastcache v1.9.0/go.mod h1:otoTS3xu+6IzF/qByjqzjp3rTuzM3Qf0ScU1UTj97iU= +github.com/afex/hystrix-go v0.0.0-20180502004556-fa1af6a1f4f5 h1:rFw4nCn9iMW+Vajsk51NtYIcwSTkXr+JGrMd36kTDJw= +github.com/akavel/rsrc v0.8.0 h1:zjWn7ukO9Kc5Q62DOJCcxGpXC18RawVtYAGdz2aLlfw= +github.com/alecthomas/kingpin/v2 v2.3.1 h1:ANLJcKmQm4nIaog7xdr/id6FM6zm5hHnfZrvtKPxqGg= github.com/alecthomas/kingpin/v2 v2.3.1/go.mod h1:oYL5vtsvEHZGHxU7DMp32Dvx+qL+ptGn6lWaot2vCNE= +github.com/alecthomas/template v0.0.0-20190718012654-fb15b899a751 h1:JYp7IbQjafoB+tBA3gMyHYHrpOtNuDiK/uB5uXxq5wM= +github.com/alecthomas/units v0.0.0-20211218093645-b94a6e3cc137 h1:s6gZFSlWYmbqAuRjVTiNNhvNRfY2Wxp9nhfyel4rklc= github.com/alecthomas/units v0.0.0-20211218093645-b94a6e3cc137/go.mod h1:OMCwj8VM1Kc9e19TLln2VL61YJF0x1XFtfdL4JdbSyE= +github.com/allegro/bigcache v1.2.1-0.20190218064605-e24eb225f156 h1:eMwmnE/GDgah4HI848JfFxHt+iPb26b4zyfspmqY0/8= +github.com/anmitsu/go-shlex v0.0.0-20161002113705-648efa622239 h1:kFOfPq6dUM1hTo4JG6LR5AXSUEsOjtdm0kw0FtQtMJA= +github.com/antihax/optional v1.0.0 h1:xK2lYat7ZLaVVcIuj82J8kIro4V6kDe0AUDFboUCwcg= +github.com/apache/thrift v0.13.0 h1:5hryIiq9gtn+MiLVn0wP37kb/uTeRZgN08WoCsAhIhI= +github.com/armon/circbuf v0.0.0-20150827004946-bbbad097214e h1:QEF07wC0T1rKkctt1RINW/+RMTVmiwxETico2l3gxJA= +github.com/armon/consul-api v0.0.0-20180202201655-eb2c6b5be1b6 h1:G1bPvciwNyF7IUmKXNt9Ak3m6u9DE1rF+RmtIkBpVdA= +github.com/armon/go-metrics v0.3.10 h1:FR+drcQStOe+32sYyJYyZ7FIdgoGGBnwLl+flodp8Uo= +github.com/armon/go-radix v1.0.0 h1:F4z6KzEeeQIMeLFa97iZU6vupzoecKdU5TX24SNppXI= +github.com/aryann/difflib v0.0.0-20170710044230-e206f873d14a h1:pv34s756C4pEXnjgPfGYgdhg/ZdajGhyOvzx8k+23nw= +github.com/aws/aws-lambda-go v1.13.3 h1:SuCy7H3NLyp+1Mrfp+m80jcbi9KYWAs9/BXwppwRDzY= +github.com/aws/aws-sdk-go v1.27.0 h1:0xphMHGMLBrPMfxR2AmVjZKcMEESEgWF8Kru94BNByk= +github.com/aws/aws-sdk-go-v2 v0.18.0 h1:qZ+woO4SamnH/eEbjM2IDLhRNwIwND/RQyVlBLp3Jqg= +github.com/badgerodon/peg v0.0.0-20130729175151-9e5f7f4d07ca h1:77KAMse6RWRpPfVnIZcAtJ/5ZK/oRCeY94ZjIWSbe0g= +github.com/bgentry/speakeasy v0.1.0 h1:ByYyxL9InA1OWqxJqqp2A5pYHUrCiAL6K3J+LKSsQkY= github.com/bits-and-blooms/bitset v1.2.1 h1:M+/hrU9xlMp7t4TyTDQW97d3tRPVuKFC6zBEK16QnXY= github.com/bits-and-blooms/bitset v1.2.1/go.mod h1:gIdJ4wp64HaoK2YrL1Q5/N7Y16edYb8uY+O0FJTyyDA= +github.com/blang/semver/v4 v4.0.0 h1:1PFHFE6yCCTv8C1TeyNNarDzntLi7wMI5i/pzqYIsAM= github.com/blang/semver/v4 v4.0.0/go.mod h1:IbckMUScFkM3pff0VJDNKRiT6TG/YpiHIM2yvyW5YoQ= +github.com/bluele/gcache v0.0.0-20190518031135-bc40bd653833 h1:yCfXxYaelOyqnia8F/Yng47qhmfC9nKTRIbYRrRueq4= github.com/bluele/gcache v0.0.0-20190518031135-bc40bd653833/go.mod h1:8c4/i2VlovMO2gBnHGQPN5EJw+H0lx1u/5p+cgsXtCk= +github.com/bmatcuk/doublestar v1.1.1 h1:YroD6BJCZBYx06yYFEWvUuKVWQn3vLLQAVmDmvTSaiQ= +github.com/boltdb/bolt v1.3.1 h1:JQmyP4ZBrce+ZQu0dY660FMfatumYDLun9hBCUVIkF4= +github.com/bradfitz/go-smtpd v0.0.0-20170404230938-deb6d6237625 h1:ckJgFhFWywOx+YLEMIJsTb+NV6NexWICk5+AMSuz3ss= +github.com/btcsuite/btcd v0.22.0-beta h1:LTDpDKUM5EeOFBPM8IXpinEcmZ6FWfNZbE3lfrfdnWo= github.com/btcsuite/btcd v0.22.0-beta/go.mod h1:9n5ntfhhHQBIhUvlhDvD3Qg6fRUj4jkN0VB8L8svzOA= +github.com/buger/jsonparser v0.0.0-20181115193947-bf1c66bbce23 h1:D21IyuvjDCshj1/qq+pCNd3VZOAEI9jy6Bi131YlXgI= +github.com/casbin/casbin/v2 v2.1.2 h1:bTwon/ECRx9dwBy2ewRVr5OiqjeXSGiTUY74sDPQi/g= github.com/cenkalti/backoff v2.2.1+incompatible h1:tNowT99t7UNflLxfYYSlKYsBpXdEet03Pg2g16Swow4= +github.com/census-instrumentation/opencensus-proto v0.4.1 h1:iKLQ0xPNFxR/2hzXZMrBo8f1j86j5WHzznCCQxV/b8g= github.com/census-instrumentation/opencensus-proto v0.4.1/go.mod h1:4T9NM4+4Vw91VeyqjLS6ao50K5bOcLKN6Q42XnYaRYw= +github.com/certifi/gocertifi v0.0.0-20180118203423-deb3ae2ef261 h1:6/yVvBsKeAw05IUj4AzvrxaCnDjN4nUqKjW9+w5wixg= +github.com/cheekybits/is v0.0.0-20150225183255-68e9c0620927 h1:SKI1/fuSdodxmNNyVBR8d7X/HuLnRpvvFO0AgyQk764= github.com/cheekybits/is v0.0.0-20150225183255-68e9c0620927/go.mod h1:h/aW8ynjgkuj+NQRlZcDbAbM1ORAbXjXX77sX7T289U= +github.com/cheggaaa/pb v1.0.29 h1:FckUN5ngEk2LpvuG0fw1GEFx6LtyY2pWI/Z2QgCnEYo= github.com/cheggaaa/pb v1.0.29/go.mod h1:W40334L7FMC5JKWldsTWbdGjLo0RxUKK73K+TuPxX30= +github.com/chromedp/cdproto v0.0.0-20230802225258-3cf4e6d46a89 h1:aPflPkRFkVwbW6dmcVqfgwp1i+UWGFH6VgR1Jim5Ygc= github.com/chromedp/cdproto v0.0.0-20230802225258-3cf4e6d46a89/go.mod h1:GKljq0VrfU4D5yc+2qA6OVr8pmO/MBbPEWqWQ/oqGEs= +github.com/chromedp/chromedp v0.9.2 h1:dKtNz4kApb06KuSXoTQIyUC2TrA0fhGDwNZf3bcgfKw= github.com/chromedp/chromedp v0.9.2/go.mod h1:LkSXJKONWTCHAfQasKFUZI+mxqS4tZqhmtGzzhLsnLs= +github.com/chromedp/sysutil v1.0.0 h1:+ZxhTpfpZlmchB58ih/LBHX52ky7w2VhQVKQMucy3Ic= github.com/chromedp/sysutil v1.0.0/go.mod h1:kgWmDdq8fTzXYcKIBqIYvRRTnYb9aNS9moAV0xufSww= +github.com/chzyer/logex v1.1.10 h1:Swpa1K6QvQznwJRcfTfQJmTE72DqScAa40E+fbHEXEE= +github.com/chzyer/readline v1.5.1 h1:upd/6fQk4src78LMRzh5vItIt361/o4uq553V8B5sGI= github.com/chzyer/readline v1.5.1/go.mod h1:Eh+b79XXUwfKfcPLepksvw2tcLE/Ct21YObkaSkeBlk= +github.com/chzyer/test v0.0.0-20180213035817-a1ea475d72b1 h1:q763qf9huN11kDQavWsoZXJNW3xEE4JJyHa5Q25/sd8= +github.com/cilium/ebpf v0.9.1 h1:64sn2K3UKw8NbP/blsixRpF3nXuyhz/VjRlRzvlBRu4= github.com/cilium/ebpf v0.9.1/go.mod h1:+OhNOIXx/Fnu1IE8bJz2dzOA+VSfyTfdNUVdlQnxUFY= +github.com/circonus-labs/circonus-gometrics v2.3.1+incompatible h1:C29Ae4G5GtYyYMm1aztcyj/J5ckgJm2zwdDajFbx1NY= +github.com/circonus-labs/circonusllhist v0.1.3 h1:TJH+oke8D16535+jHExHj4nQvzlZrj7ug5D7I/orNUA= +github.com/clbanning/x2j v0.0.0-20191024224557-825249438eec h1:EdRZT3IeKQmfCSrgo8SZ8V3MEnskuJP0wCYNpe+aiXo= +github.com/client9/misspell v0.3.4 h1:ta993UF76GwbvJcIo3Y68y/M3WxlpEHPWIGDkJYwzJI= +github.com/cloudflare/backoff v0.0.0-20161212185259-647f3cdfc87a h1:8d1CEOF1xldesKds5tRG3tExBsMOgWYownMHNCsev54= +github.com/cloudflare/cfssl v1.4.1 h1:vScfU2DrIUI9VPHBVeeAQ0q5A+9yshO1Gz+3QoUQiKw= +github.com/cloudflare/go-metrics v0.0.0-20151117154305-6a9aea36fb41 h1:/8sZyuGTAU2+fYv0Sz9lBcipqX0b7i4eUl8pSStk/4g= +github.com/cloudflare/redoctober v0.0.0-20171127175943-746a508df14c h1:p0Q1GvgWtVf46XpMMibupKiE7aQxPYUIb+/jLTTK2kM= +github.com/cncf/udpa/go v0.0.0-20220112060539-c52dc94e7fbe h1:QQ3GSy+MqSHxm/d8nCtnAiZdYFd45cYZPs8vOOIYKfk= github.com/cncf/udpa/go v0.0.0-20220112060539-c52dc94e7fbe/go.mod h1:6pvJx4me5XPnfI9Z40ddWsdw2W/uZgQLFXToKeRcDiI= +github.com/cncf/xds/go v0.0.0-20230105202645-06c439db220b h1:ACGZRIr7HsgBKHsueQ1yM4WaVaXh21ynwqsF8M8tXhA= github.com/cncf/xds/go v0.0.0-20230105202645-06c439db220b/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= +github.com/cockroachdb/apd v1.1.0 h1:3LFP3629v+1aKXU5Q37mxmRxX/pIu1nijXydLShEq5I= +github.com/cockroachdb/datadriven v0.0.0-20190809214429-80d97fb3cbaa h1:OaNxuTZr7kxeODyLWsRMC+OD03aFUH+mW6r2d+MWa5Y= +github.com/codahale/hdrhistogram v0.0.0-20161010025455-3a0bb77429bd h1:qMd81Ts1T2OTKmB4acZcyKaMtRnY5Y44NuXGX2GFJ1w= +github.com/containerd/containerd v1.5.18 h1:doHr6cNxfOLTotWmZs6aZF6LrfJFcjmYFcWlRmQgYPM= github.com/containerd/containerd v1.5.18/go.mod h1:7IN9MtIzTZH4WPEmD1gNH8bbTQXVX68yd3ZXxSHYCis= +github.com/containerd/continuity v0.0.0-20190426062206-aaeac12a7ffc h1:TP+534wVlf61smEIq1nwLLAjQVEK2EADoW3CX9AuT+8= +github.com/coreos/bbolt v1.3.3 h1:n6AiVyVRKQFNb6mJlwESEvvLoDyiTzXX7ORAUlkeBdY= +github.com/coreos/etcd v3.3.10+incompatible h1:jFneRYjIvLMLhDLCzuTuU4rSJUjRplcJQ7pD7MnhC04= +github.com/coreos/go-etcd v2.0.0+incompatible h1:bXhRBIXoTm9BYHS3gE0TtQuyNZyeEMux2sDi4oo5YOo= +github.com/cpuguy83/go-md2man v1.0.10 h1:BSKMNlYxDvnunlTymqtgONjNnaRV1sTpcovwwjF22jk= +github.com/cpuguy83/go-md2man/v2 v2.0.1 h1:r/myEWzV9lfsM1tFLgDyu0atFtJ1fXn261LKYj/3DxU= +github.com/crackcomm/go-gitignore v0.0.0-20170627025303-887ab5e44cc3 h1:HVTnpeuvF6Owjd5mniCL8DEXo7uYXdQEmOP4FJbV5tg= github.com/crackcomm/go-gitignore v0.0.0-20170627025303-887ab5e44cc3/go.mod h1:p1d6YEZWvFzEh4KLyvBcVSnrfNDDvK2zfK/4x2v/4pE= +github.com/creack/pty v1.1.9 h1:uDmaGzcdjhF4i/plgjmEsriH11Y0o7RKapEf/LDaM3w= +github.com/cskr/pubsub v1.0.2 h1:vlOzMhl6PFn60gRlTQQsIfVwaPB/B/8MziK8FhEPt/0= github.com/cskr/pubsub v1.0.2/go.mod h1:/8MzYXk/NJAz782G8RPkFzXTZVu63VotefPnR9TIRis= +github.com/cucumber/godog v0.8.0 h1:sJ0MaOGfNeJWD+DiBjL4VTwrUJrFdiq5sF5b4wPgS+o= +github.com/cznic/mathutil v0.0.0-20170313102836-1447ad269d64 h1:oad14P7M0/ZAPSMH1nl1vC8zdKVkA3kfHLO59z1l8Eg= +github.com/d4l3k/messagediff v1.2.1 h1:ZcAIMYsUg0EAp9X+tt8/enBE/Q8Yd5kzPynLyKptt9U= +github.com/daaku/go.zipexe v1.0.0 h1:VSOgZtH418pH9L16hC/JrgSNJbbAL26pj7lmD1+CGdY= +github.com/dennwc/graphql v0.0.0-20180603144102-12cfed44bc5d h1:QWlaiMNg63HE5qimJd4stjg9l1Ca4BKcgs+UNSWPJ+s= github.com/dgraph-io/badger v1.6.2 h1:mNw0qs90GVgGGWylh0umH5iag1j6n/PeJtNvL6KY/x8= github.com/dgraph-io/badger v1.6.2/go.mod h1:JW2yswe3V058sS0kZ2h/AXeDSqFjxnZcRrVH//y2UQE= +github.com/dgraph-io/badger/v2 v2.2007.4 h1:TRWBQg8UrlUhaFdco01nO2uXwzKS7zd+HVdwV/GHc4o= github.com/dgraph-io/badger/v2 v2.2007.4/go.mod h1:vSw/ax2qojzbN6eXHIx6KPKtCSHJN/Uz0X0VPruTIhk= +github.com/dgrijalva/jwt-go v3.2.0+incompatible h1:7qlOGliEKZXTDg6OTjfoBKDXWrumCAMpl/TFQ4/5kLM= +github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f h1:lO4WD4F/rVNCu3HqELle0jiPLLBs70cWOduZpkS1E78= github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f/go.mod h1:cuUVRXasLTGF7a8hSLbxyZXjz+1KgoB3wDUb6vlszIc= +github.com/dgryski/go-sip13 v0.0.0-20181026042036-e10d5fee7954 h1:RMLoZVzv4GliuWafOuPuQDKSm1SJph7uCRnnS61JAn4= +github.com/djherbis/atime v1.1.0 h1:rgwVbP/5by8BvvjBNrbh64Qz33idKT3pSnMSJsxhi0g= github.com/djherbis/atime v1.1.0/go.mod h1:28OF6Y8s3NQWwacXc5eZTsEsiMzp7LF8MbXE+XJPdBE= +github.com/dlclark/regexp2 v1.1.4 h1:1udHhhGkIMplSrLeMJpPN7BHz1Iq2wVBUcb+3fxzhQM= +github.com/docker/distribution v2.8.2+incompatible h1:T3de5rq0dB1j30rp0sA2rER+m322EBzniBPB6ZIzuh8= github.com/docker/distribution v2.8.2+incompatible/go.mod h1:J2gT2udsDAN96Uj4KfcMRqY0/ypR+oyYUYmja8H+y+w= +github.com/docker/docker v20.10.24+incompatible h1:Ugvxm7a8+Gz6vqQYQQ2W7GYq5EUPaAiuPgIfVyI3dYE= github.com/docker/docker v20.10.24+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= +github.com/docker/go-connections v0.4.0 h1:El9xVISelRB7BuFusrZozjnkIM5YnzCViNKohAFqRJQ= +github.com/dop251/goja v0.0.0-20190105122144-6d5bf35058fa h1:cA2OMt2CQ2yq2WhQw16mHv6ej9YY07H4pzfR/z/y+1Q= +github.com/edsrzf/mmap-go v1.0.0 h1:CEBF7HpRnUCSJgGUb5h1Gm7e3VkmVDrR8lvWVLtrOFw= +github.com/emirpasic/gods v1.12.0 h1:QAUIPSaCu4G+POclxeqb3F+WPpdKqFGlw36+yOzGlrg= github.com/emirpasic/gods v1.12.0/go.mod h1:YfzfFFoVP/catgzJb4IKIqXjX78Ha8FMSDh3ymbK86o= +github.com/envoyproxy/go-control-plane v0.10.3 h1:xdCVXxEe0Y3FQith+0cj2irwZudqGYvecuLB1HtdexY= github.com/envoyproxy/go-control-plane v0.10.3/go.mod h1:fJJn/j26vwOu972OllsvAgJJM//w9BV6Fxbg2LuVd34= +github.com/envoyproxy/protoc-gen-validate v0.9.1 h1:PS7VIOgmSVhWUEeZwTe7z7zouA22Cr590PzXKbZHOVY= github.com/envoyproxy/protoc-gen-validate v0.9.1/go.mod h1:OKNgG7TCp5pF4d6XftA0++PMirau2/yoOwVac3AbF2w= +github.com/felixge/httpsnoop v1.0.1 h1:lvB5Jl89CsZtGIWuTcDM1E/vkVs49/Ml7JJe07l8SPQ= github.com/felixge/httpsnoop v1.0.1/go.mod h1:m8KPJKqk1gH5J9DgRY2ASl2lWCfGKXixSwevea8zH2U= +github.com/flimzy/diff v0.1.6 h1:ufTsTKcDtlaczpJTo3u1NeYqzuP6oRpy1VwQUIrgmBY= +github.com/flimzy/kivik v1.8.1 h1:URl7e0OnfSvAu3ZHQ5BkvzRZlCmyYuDyWUCcPWIHlU0= +github.com/flimzy/testy v0.1.16 h1:nchF7XYCkfHJiZKMRhAVKQp8jzpXFPwJYnSrnFysqlI= +github.com/flynn/go-shlex v0.0.0-20150515145356-3f9db97f8568 h1:BHsljHzVlRcyQhjrss6TZTdY2VfCqZPbv5k3iBFa2ZQ= +github.com/fortytw2/leaktest v1.3.0 h1:u8491cBMTQ8ft8aeV+adlcytMZylmA5nnwwkRZjI8vw= +github.com/franela/goblin v0.0.0-20200105215937-c9ffbefa60db h1:gb2Z18BhTPJPpLQWj4T+rfKHYCHxRHCtRxhKKjRidVw= +github.com/franela/goreq v0.0.0-20171204163338-bcd34c9993f8 h1:a9ENSRDFBUPkJ5lCgVZh26+ZbGyoVJG7yb5SSzF5H54= +github.com/fsouza/go-dockerclient v1.7.3 h1:i6iMcktl688vsKUEExA6gU1UjPgIvmGtJeQ0mbuFqZo= github.com/fsouza/go-dockerclient v1.7.3/go.mod h1:8xfZB8o9SptLNJ13VoV5pMiRbZGWkU/Omu5VOu/KC9Y= github.com/getkin/kin-openapi v0.118.0/go.mod h1:l5e9PaFUo9fyLJCPGQeXI2ML8c3P8BHOEV2VaAVf/pc= +github.com/getsentry/raven-go v0.0.0-20180121060056-563b81fc02b7 h1:ELaJ1cjF2nEJeIlHXahGme22yG7TK+3jB6IGCq0Cdrc= +github.com/ghodss/yaml v1.0.0 h1:wQHKEahhL6wmXdzwWG11gIVCkOv05bNOh+Rxn0yngAk= +github.com/gliderlabs/ssh v0.1.1 h1:j3L6gSLQalDETeEg/Jg0mGY0/y/N6zI2xX1978P0Uqw= +github.com/go-chi/chi/v5 v5.0.10 h1:rLz5avzKpjqxrYwXNfmjkrYYXOyLJd37pz53UFHC6vk= github.com/go-chi/chi/v5 v5.0.10/go.mod h1:DslCQbL2OYiznFReuXYUmQ2hGd1aDpCnlMNITLSKoi8= +github.com/go-errors/errors v1.0.1 h1:LUHzmkK3GUKUrL/1gfBUxAHzcev3apQlezX/+O7ma6w= +github.com/go-gl/glfw v0.0.0-20190409004039-e6da0acd62b1 h1:QbL/5oDUmRBzO9/Z7Seo6zf912W/a6Sr4Eu0G/3Jho0= +github.com/go-gl/glfw/v3.3/glfw v0.0.0-20200222043503-6f7a984d4dc4 h1:WtGNWLvXpe6ZudgnXrq0barxBImvnnJoMEhXAzcbM0I= +github.com/go-jose/go-jose/v3 v3.0.1-0.20221117193127-916db76e8214 h1:w5li6eMV6NCHh1YVbKRM/gMCVtZ2w7mnwq78eNnHXQQ= github.com/go-jose/go-jose/v3 v3.0.1-0.20221117193127-916db76e8214/go.mod h1:RNkWWRld676jZEYoV3+XK8L2ZnNSvIsxFMht0mSX+u8= github.com/go-kit/log v0.2.1 h1:MRVx0/zhvdseW+Gza6N9rVzU/IVzaeE1SFI4raAhmBU= github.com/go-kit/log v0.2.1/go.mod h1:NwTd00d/i8cPZ3xOwwiv2PO5MOcx78fFErGNcVmBjv0= +github.com/go-kivik/couchdb v1.8.1 h1:2yjmysS48JYpyWTkx2E3c7ASZP8Kh0eABWnkKlV8bbw= +github.com/go-kivik/kivik v1.8.1 h1:GScP1mS5wP2km2awszvKzPEjC21lYjQGr3GY+4a/o2U= +github.com/go-kivik/kiviktest v1.1.2 h1:mn93FbOY459cGsYw4xp2t7myGb2YtfvOIivOtMlLaPA= +github.com/go-kivik/pouchdb v1.3.5 h1:PFnvbZJzfTeutcfcozHc649Y44tnvqdbuCTU/ZEZQ6Q= +github.com/go-ole/go-ole v1.2.6 h1:/Fpf6oFPoeFik9ty7siob0G6Ke8QvQEuVcuChpwXzpY= github.com/go-ole/go-ole v1.2.6/go.mod h1:pprOEPIfldk/42T2oK7lQ4v4JSDwmV0As9GaiUsvbm0= github.com/go-openapi/jsonpointer v0.19.5/go.mod h1:Pl9vOtqEWErmShwVjC8pYs9cog34VGT37dQOVbmoatg= +github.com/go-openapi/jsonreference v0.19.3 h1:5cxNfTy0UVC3X8JL5ymxzyoUZmo8iZb+jeTWn7tUa8o= github.com/go-openapi/jsonreference v0.19.3/go.mod h1:rjx6GuL8TTa9VaixXglHmQmIL98+wF9xc8zWvFonSJ8= +github.com/go-openapi/spec v0.19.4 h1:ixzUSnHTd6hCemgtAJgluaTSGYpLNpJY4mA2DIkdOAo= +github.com/go-sourcemap/sourcemap v2.1.2+incompatible h1:0b/xya7BKGhXuqFESKM4oIiRo9WOt2ebz7KxfreD6ug= +github.com/go-sql-driver/mysql v1.5.0 h1:ozyZYNQW3x3HtqT1jira07DN2PArx2v7/mN66gGcHOs= +github.com/go-yaml/yaml v2.1.0+incompatible h1:RYi2hDdss1u4YE7GwixGzWwVo47T8UQwnTLB6vQiq+o= +github.com/gobwas/httphead v0.1.0 h1:exrUm0f4YX0L7EBwZHuCF4GDp8aJfVeBrlLQrs6NqWU= github.com/gobwas/httphead v0.1.0/go.mod h1:O/RXo79gxV8G+RqlR/otEwx4Q36zl9rqC5u12GKvMCM= +github.com/gobwas/pool v0.2.1 h1:xfeeEhW7pwmX8nuLVlqbzVc7udMDrwetjEv+TZIz1og= github.com/gobwas/pool v0.2.1/go.mod h1:q8bcK0KcYlCgd9e7WYLm9LpyS+YeLd8JVDW6WezmKEw= +github.com/gobwas/ws v1.3.0 h1:sbeU3Y4Qzlb+MOzIe6mQGf7QR4Hkv6ZD0qhGkBFL2O0= github.com/gobwas/ws v1.3.0/go.mod h1:hRKAFb8wOxFROYNsT1bqfWnhX+b5MFeJM9r2ZSwg/KY= +github.com/gofiber/fiber/v2 v2.49.1 h1:0W2DRWevSirc8pJl4o8r8QejDR8TV6ZUCawHxwbIdOk= github.com/gofiber/fiber/v2 v2.49.1/go.mod h1:nPUeEBUeeYGgwbDm59Gp7vS8MDyScL6ezr/Np9A13WU= +github.com/gogo/googleapis v1.1.0 h1:kFkMAZBNAn4j7K0GiZr8cRYzejq68VbheufiV3YuyFI= +github.com/golang/lint v0.0.0-20180702182130-06c8688daad7 h1:2hRPrmiwPrp3fQX967rNJIhQPtiGXdlQWAxKbKw3VHA= +github.com/google/btree v1.0.0 h1:0udJVsspx3VBr5FwtLhQQtuAsVc79tTq0ocGIPAU6qo= +github.com/google/certificate-transparency-go v1.0.21 h1:Yf1aXowfZ2nuboBsg7iYGLmwsOARdV86pfH3g95wXmE= +github.com/google/go-github v17.0.0+incompatible h1:N0LgJ1j65A7kfXrZnUDaYCs/Sf4rEjNlfyDHW9dolSY= +github.com/google/gofuzz v1.0.0 h1:A8PeW59pxE9IoFRqBp37U+mSNaQoZ46F1f0f863XSXw= +github.com/google/martian v2.1.0+incompatible h1:/CP5g8u/VJHijgedC/Legn3BAbAaWPgecwXBIDzw5no= +github.com/google/martian/v3 v3.2.1 h1:d8MncMlErDFTwQGBK1xhv026j9kqhvw1Qv9IbWT1VLQ= +github.com/google/renameio v0.1.0 h1:GOZbcHa3HfsPKPlmyPyN2KEohoMXOhdMbHrvbpl2QaA= +github.com/google/subcommands v1.2.0 h1:vWQspBTo2nEqTUFita5/KeEWlUL8kQObDFbub/EN9oE= +github.com/google/tink/go v1.7.0 h1:6Eox8zONGebBFcCBqkVmt60LaWZa6xg1cl/DwAh/J1w= github.com/google/tink/go v1.7.0/go.mod h1:GAUOd+QE3pgj9q8VKIGTCP33c/B7eb4NhxLcgTJZStM= +github.com/googleapis/gax-go v2.0.0+incompatible h1:j0GKcs05QVmm7yesiZq2+9cxHkNK9YM6zKx4D2qucQU= +github.com/googleapis/gax-go/v2 v2.1.1 h1:dp3bWCh+PPO1zjRRiCSczJav13sBvG4UhNyVTa1KqdU= +github.com/gopherjs/jsbuiltin v0.0.0-20180426082241-50091555e127 h1:atBEgNR1C5+LFkl8ipQtLee9RStheS8YeCSkiYqBhOg= +github.com/gorilla/context v1.1.1 h1:AWwleXJkX/nhcU9bZSnZoi3h/qGYqQAGhq6zZe/aQW8= +github.com/gorilla/handlers v1.5.1 h1:9lRY6j8DEeeBT10CvO9hGW0gmky0BprnvDI5vfhUHH4= github.com/gorilla/handlers v1.5.1/go.mod h1:t8XrUpc4KVXb7HGyJ4/cEnwQiaxrX/hz1Zv/4g96P1Q= +github.com/gorilla/securecookie v1.1.1 h1:miw7JPhV+b/lAHSXz4qd/nN9jRiAFV5FwjeKyCS8BvQ= github.com/gorilla/securecookie v1.1.1/go.mod h1:ra0sb63/xPlUeL+yeDciTfxMRAA+MP+HVt/4epWDjd4= +github.com/gotestyourself/gotestyourself v2.2.0+incompatible h1:AQwinXlbQR2HvPjQZOmDhRqsv5mZf+Jb1RnSLxcqZcI= +github.com/gregjones/httpcache v0.0.0-20180305231024-9cad4c3443a7 h1:pdN6V1QBWetyv/0+wjACpqVH+eVULgEjkurDLq3goeM= +github.com/grpc-ecosystem/go-grpc-prometheus v1.2.0 h1:Ovs26xHkKqVztRpIrF/92BcuyuQ/YW4NSIpoGtfXNho= github.com/grpc-ecosystem/grpc-gateway v1.16.0 h1:gmcG1KaJ57LophUzW0Hy8NmPhnMZb4M0+kPpLofRdBo= +github.com/hashicorp/consul/api v1.12.0 h1:k3y1FYv6nuKyNTqj6w9gXOx5r5CfLj/k/euUeBXj1OY= +github.com/hashicorp/consul/sdk v0.8.0 h1:OJtKBtEjboEZvG6AOUdh4Z1Zbyu0WcxQ0qatRrZHTVU= +github.com/hashicorp/go-cleanhttp v0.5.2 h1:035FKYIWjmULyFRBKPs8TBQoi0x6d9G4xc9neXJWAZQ= +github.com/hashicorp/go-hclog v1.0.0 h1:bkKf0BeBXcSYa7f5Fyi9gMuQ8gNsxeiNpZjR6VxNZeo= +github.com/hashicorp/go-immutable-radix v1.3.1 h1:DKHmCUm2hRBK510BaiZlwvpD40f8bJFeZnpfm2KLowc= +github.com/hashicorp/go-msgpack v0.5.3 h1:zKjpN5BK/P5lMYrLmBHdBULWbJ0XpYR+7NGzqkZzoD4= +github.com/hashicorp/go-retryablehttp v0.5.3 h1:QlWt0KvWT0lq8MFppF9tsJGF+ynG7ztc2KIPhzRGk7s= +github.com/hashicorp/go-rootcerts v1.0.2 h1:jzhAVGtqPKbwpyCPELlgNWhE1znq+qwJtW5Oi2viEzc= +github.com/hashicorp/go-sockaddr v1.0.0 h1:GeH6tui99pF4NJgfnhp+L6+FfobzVW3Ah46sLo0ICXs= +github.com/hashicorp/go-syslog v1.0.0 h1:KaodqZuhUoZereWVIYmpUgZysurB1kBLX2j0MwMrUAE= +github.com/hashicorp/go.net v0.0.1 h1:sNCoNyDEvN1xa+X0baata4RdcpKwcMS6DH+xwfqPgjw= +github.com/hashicorp/golang-lru/arc/v2 v2.0.5 h1:l2zaLDubNhW4XO3LnliVj0GXO3+/CGNJAg1dcN2Fpfw= github.com/hashicorp/golang-lru/arc/v2 v2.0.5/go.mod h1:ny6zBSQZi2JxIeYcv7kt2sH2PXJtirBN7RDhRpxPkxU= +github.com/hashicorp/golang-lru/v2 v2.0.5 h1:wW7h1TG88eUIJ2i69gaE3uNVtEPIagzhGvHgwfx2Vm4= github.com/hashicorp/golang-lru/v2 v2.0.5/go.mod h1:QeFd9opnmA6QUJc5vARoKUSoFhyfM2/ZepoAG6RGpeM= +github.com/hashicorp/logutils v1.0.0 h1:dLEQVugN8vlakKOUE3ihGLTZJRB4j+M2cdTm/ORI65Y= +github.com/hashicorp/mdns v1.0.4 h1:sY0CMhFmjIPDMlTB+HfymFHCaYLhgifZ0QhjaYKD/UQ= +github.com/hashicorp/memberlist v0.3.0 h1:8+567mCcFDnS5ADl7lrpxPMWiFCElyUEeW0gtj34fMA= +github.com/hashicorp/serf v0.9.6 h1:uuEX1kLR6aoda1TBttmJQKDLZE1Ob7KN0NPdE7EtCDc= +github.com/hpcloud/tail v1.0.0 h1:nfCOvKYfkgYP8hkirhJocXT2+zOD8yUNjXaWfTlyFKI= +github.com/hudl/fargo v1.3.0 h1:0U6+BtN6LhaYuTnIJq4Wyq5cpn6O2kWrxAtcqBmYY6w= +github.com/hyperledger/aries-framework-go/component/log v0.0.0-20230417184158-344a7f82c4c2 h1:fKaNw6yi5PIXRDmEiOPNIErS6Mv92m03JcAE7wxj/Bk= github.com/hyperledger/aries-framework-go/component/log v0.0.0-20230417184158-344a7f82c4c2/go.mod h1:CvYs4l8X2NrrF93weLOu5RTOIJeVdoZITtjEflyuTyM= +github.com/hyperledger/aries-framework-go/component/storageutil v0.0.0-20230427134832-0c9969493bd3 h1:JGYA9l5zTlvsvfnXT9hYPpCokAjmVKX0/r7njba7OX4= github.com/hyperledger/aries-framework-go/component/storageutil v0.0.0-20230427134832-0c9969493bd3/go.mod h1:aSG2dWjYVzu2PVBtOqsYghaChA5+UUXnBbL+MfVceYQ= +github.com/hyperledger/aries-framework-go/spi v0.0.0-20230417184158-344a7f82c4c2 h1:eV/O1jO0fgt/TLudlU0yxPrwakatTHmG88Ie8pUQtss= github.com/hyperledger/aries-framework-go/spi v0.0.0-20230417184158-344a7f82c4c2/go.mod h1:oryUyWb23l/a3tAP9KW+GBbfcfqp9tZD4y5hSkFrkqI= +github.com/hyperledger/fabric-contract-api-go v1.1.1 h1:gDhOC18gjgElNZ85kFWsbCQq95hyUP/21n++m0Sv6B0= +github.com/hyperledger/fabric-samples/chaincode/marbles02/go v0.0.0-20210428060230-9db8164f049b h1:O1YzStaeIPhl1rZ4diAwqQgxDsIxFwwwDHquogmvxEo= +github.com/hyperledger/fabric-sdk-go v1.0.0 h1:NRu0iNbHV6u4nd9jgYghAdA1Ll4g0Sri4hwMEGiTbyg= +github.com/hyperledger/ursa-wrapper-go v0.3.1 h1:Do+QrVNniY77YK2jTIcyWqj9rm/Yb5SScN0bqCjiibA= github.com/hyperledger/ursa-wrapper-go v0.3.1/go.mod h1:nPSAuMasIzSVciQo22PedBk4Opph6bJ6ia3ms7BH/mk= +github.com/iancoleman/strcase v0.2.0 h1:05I4QRnGpI0m37iZQRuskXh+w77mr6Z41lwQzuHLwW0= +github.com/ianlancetaylor/demangle v0.0.0-20230524184225-eabc099b10ab h1:BA4a7pe6ZTd9F8kXETBoijjFJ/ntaa//1wiH9BZu4zU= github.com/ianlancetaylor/demangle v0.0.0-20230524184225-eabc099b10ab/go.mod h1:gx7rwoVhcfuVKG5uya9Hs3Sxj7EIvldVofAWIUtGouw= +github.com/ijc/Gotty v0.0.0-20170406111628-a8b993ba6abd h1:anPrsicrIi2ColgWTVPk+TrN42hJIWlfPHSBP9S0ZkM= +github.com/imdario/mergo v0.3.7 h1:Y+UAYTZ7gDEuOfhxKWy+dvb5dRQ6rJjFSdX2HZY1/gI= +github.com/influxdata/influxdb1-client v0.0.0-20191209144304-8bf82d3c094d h1:/WZQPMZNsjZ7IlCpsLGdQBINg5bxKQ1K1sh6awxLtkA= github.com/invopop/yaml v0.1.0/go.mod h1:2XuRLgs/ouIrW3XNzuNj7J3Nvu/Dig5MXvbCEdiBN3Q= +github.com/ipfs/bbloom v0.0.4 h1:Gi+8EGJ2y5qiD5FbsbpX/TMNcJw8gSqr7eyjHa4Fhvs= github.com/ipfs/bbloom v0.0.4/go.mod h1:cS9YprKXpoZ9lT0n/Mw/a6/aFV6DTjTLYHeA+gyqMG0= +github.com/ipfs/go-bitfield v1.1.0 h1:fh7FIo8bSwaJEh6DdTWbCeZ1eqOaOkKFI74SCnsWbGA= github.com/ipfs/go-bitfield v1.1.0/go.mod h1:paqf1wjq/D2BBmzfTVFlJQ9IlFOZpg422HL0HqsGWHU= +github.com/ipfs/go-block-format v0.1.2 h1:GAjkfhVx1f4YTODS6Esrj1wt2HhrtwTnhEr+DyPUaJo= github.com/ipfs/go-block-format v0.1.2/go.mod h1:mACVcrxarQKstUU3Yf/RdwbC4DzPV6++rO2a3d+a/KE= +github.com/ipfs/go-cidutil v0.1.0 h1:RW5hO7Vcf16dplUU60Hs0AKDkQAVPVplr7lk97CFL+Q= github.com/ipfs/go-cidutil v0.1.0/go.mod h1:e7OEVBMIv9JaOxt9zaGEmAoSlXW9jdFZ5lP/0PwcfpA= +github.com/ipfs/go-ds-badger v0.3.0 h1:xREL3V0EH9S219kFFueOYJJTcjgNSZ2HY1iSvN7U1Ro= github.com/ipfs/go-ds-badger v0.3.0/go.mod h1:1ke6mXNqeV8K3y5Ak2bAA0osoTfmxUdupVCGm4QUIek= +github.com/ipfs/go-ds-leveldb v0.5.0 h1:s++MEBbD3ZKc9/8/njrn4flZLnCuY9I79v94gBUNumo= github.com/ipfs/go-ds-leveldb v0.5.0/go.mod h1:d3XG9RUDzQ6V4SHi8+Xgj9j1XuEk1z82lquxrVbml/Q= +github.com/ipfs/go-ipfs-blockstore v1.3.0 h1:m2EXaWgwTzAfsmt5UdJ7Is6l4gJcaM/A12XwJyvYvMM= github.com/ipfs/go-ipfs-blockstore v1.3.0/go.mod h1:KgtZyc9fq+P2xJUiCAzbRdhhqJHvsw8u2Dlqy2MyRTE= +github.com/ipfs/go-ipfs-blocksutil v0.0.1 h1:Eh/H4pc1hsvhzsQoMEP3Bke/aW5P5rVM1IWFJMcGIPQ= github.com/ipfs/go-ipfs-blocksutil v0.0.1/go.mod h1:Yq4M86uIOmxmGPUHv/uI7uKqZNtLb449gwKqXjIsnRk= +github.com/ipfs/go-ipfs-chunker v0.0.5 h1:ojCf7HV/m+uS2vhUGWcogIIxiO5ubl5O57Q7NapWLY8= github.com/ipfs/go-ipfs-chunker v0.0.5/go.mod h1:jhgdF8vxRHycr00k13FM8Y0E+6BoalYeobXmUyTreP8= +github.com/ipfs/go-ipfs-delay v0.0.1 h1:r/UXYyRcddO6thwOnhiznIAiSvxMECGgtv35Xs1IeRQ= github.com/ipfs/go-ipfs-delay v0.0.1/go.mod h1:8SP1YXK1M1kXuc4KJZINY3TQQ03J2rwBG9QfXmbRPrw= +github.com/ipfs/go-ipfs-ds-help v1.1.0 h1:yLE2w9RAsl31LtfMt91tRZcrx+e61O5mDxFRR994w4Q= github.com/ipfs/go-ipfs-ds-help v1.1.0/go.mod h1:YR5+6EaebOhfcqVCyqemItCLthrpVNot+rsOU/5IatU= +github.com/ipfs/go-ipfs-pq v0.0.3 h1:YpoHVJB+jzK15mr/xsWC574tyDLkezVrDNeaalQBsTE= github.com/ipfs/go-ipfs-pq v0.0.3/go.mod h1:btNw5hsHBpRcSSgZtiNm/SLj5gYIZ18AKtv3kERkRb4= +github.com/ipfs/go-ipfs-redirects-file v0.1.1 h1:Io++k0Vf/wK+tfnhEh63Yte1oQK5VGT2hIEYpD0Rzx8= github.com/ipfs/go-ipfs-redirects-file v0.1.1/go.mod h1:tAwRjCV0RjLTjH8DR/AU7VYvfQECg+lpUy2Mdzv7gyk= +github.com/ipfs/go-ipld-cbor v0.0.6 h1:pYuWHyvSpIsOOLw4Jy7NbBkCyzLDcl64Bf/LZW7eBQ0= github.com/ipfs/go-ipld-cbor v0.0.6/go.mod h1:ssdxxaLJPXH7OjF5V4NSjBbcfh+evoR4ukuru0oPXMA= +github.com/ipfs/go-ipld-format v0.4.0 h1:yqJSaJftjmjc9jEOFYlpkwOLVKv68OD27jFLlSghBlQ= github.com/ipfs/go-ipld-format v0.4.0/go.mod h1:co/SdBE8h99968X0hViiw1MNlh6fvxxnHpvVLnH7jSM= +github.com/ipfs/go-ipld-legacy v0.1.1 h1:BvD8PEuqwBHLTKqlGFTHSwrwFOMkVESEvwIYwR2cdcc= github.com/ipfs/go-ipld-legacy v0.1.1/go.mod h1:8AyKFCjgRPsQFf15ZQgDB8Din4DML/fOmKZkkFkrIEg= +github.com/ipfs/go-ipns v0.3.0 h1:ai791nTgVo+zTuq2bLvEGmWP1M0A6kGTXUsgv/Yq67A= github.com/ipfs/go-ipns v0.3.0/go.mod h1:3cLT2rbvgPZGkHJoPO1YMJeh6LtkxopCkKFcio/wE24= +github.com/ipfs/go-metrics-interface v0.0.1 h1:j+cpbjYvu4R8zbleSs36gvB7jR+wsL2fGD6n0jO4kdg= github.com/ipfs/go-metrics-interface v0.0.1/go.mod h1:6s6euYU4zowdslK0GKHmqaIZ3j/b/tL7HTWtJ4VPgWY= +github.com/ipfs/go-peertaskqueue v0.8.1 h1:YhxAs1+wxb5jk7RvS0LHdyiILpNmRIRnZVztekOF0pg= github.com/ipfs/go-peertaskqueue v0.8.1/go.mod h1:Oxxd3eaK279FxeydSPPVGHzbwVeHjatZ2GA8XD+KbPU= +github.com/ipfs/go-unixfs v0.4.5 h1:wj8JhxvV1G6CD7swACwSKYa+NgtdWC1RUit+gFnymDU= github.com/ipfs/go-unixfs v0.4.5/go.mod h1:BIznJNvt/gEx/ooRMI4Us9K8+qeGO7vx1ohnbk8gjFg= +github.com/ipfs/go-unixfsnode v1.6.0 h1:JOSA02yaLylRNi2rlB4ldPr5VcZhcnaIVj5zNLcOjDo= github.com/ipfs/go-unixfsnode v1.6.0/go.mod h1:PVfoyZkX1B34qzT3vJO4nsLUpRCyhnMuHBznRcXirlk= +github.com/ipld/go-car/v2 v2.9.1-0.20230325062757-fff0e4397a3d h1:22g+x1tgWSXK34i25qjs+afr7basaneEkHaglBshd2g= github.com/ipld/go-car/v2 v2.9.1-0.20230325062757-fff0e4397a3d/go.mod h1:SH2pi/NgfGBsV/CGBAQPxMfghIgwzbh5lQ2N+6dNRI8= +github.com/ipld/go-codec-dagpb v1.6.0 h1:9nYazfyu9B1p3NAgfVdpRco3Fs2nFC72DqVsMj6rOcc= github.com/ipld/go-codec-dagpb v1.6.0/go.mod h1:ANzFhfP2uMJxRBr8CE+WQWs5UsNa0pYtmKZ+agnUw9s= +github.com/ipld/go-ipld-prime/storage/bsadapter v0.0.0-20230102063945-1a409dc236dd h1:gMlw/MhNr2Wtp5RwGdsW23cs+yCuj9k2ON7i9MiJlRo= github.com/ipld/go-ipld-prime/storage/bsadapter v0.0.0-20230102063945-1a409dc236dd/go.mod h1:wZ8hH8UxeryOs4kJEJaiui/s00hDSbE37OKsL47g+Sw= +github.com/iris-contrib/go.uuid v2.0.0+incompatible h1:XZubAYg61/JwnJNbZilGjf3b3pB80+OQg2qf6c8BfWE= github.com/iris-contrib/go.uuid v2.0.0+incompatible/go.mod h1:iz2lgM/1UnEf1kP0L/+fafWORmlnuysV2EMP8MW+qe0= +github.com/jackc/fake v0.0.0-20150926172116-812a484cc733 h1:vr3AYkKovP8uR8AvSGGUK1IDqRa5lAAvEkZG1LKaCRc= +github.com/jackc/pgx v3.3.0+incompatible h1:Wa90/+qsITBAPkAZjiByeIGHFcj3Ztu+VzrrIpHjL90= +github.com/jbenet/go-cienv v0.1.0 h1:Vc/s0QbQtoxX8MwwSLWWh+xNNZvM3Lw7NsTcHrvvhMc= +github.com/jbenet/go-context v0.0.0-20150711004518-d14ea06fba99 h1:BQSFePA1RWJOlocH6Fxy8MmwDt+yVQYULKfN0RoTN8A= github.com/jbenet/go-context v0.0.0-20150711004518-d14ea06fba99/go.mod h1:1lJo3i6rXxKeerYnT8Nvf0QmHCRC1n8sfWVwXF2Frvo= +github.com/jellevandenhooff/dkim v0.0.0-20150330215556-f50fe3d243e1 h1:ujPKutqRlJtcfWk6toYVYagwra7HQHbXOaS171b4Tg8= +github.com/jessevdk/go-flags v1.4.0 h1:4IU2WS7AumrZ/40jfhf4QVDMsQwqA7VEHozFRrGARJA= +github.com/jmespath/go-jmespath v0.0.0-20180206201540-c2b33e8439af h1:pmfjZENx5imkbgOkpRUYLnmbU7UEFbjtDA2hxJ1ichM= +github.com/jmhodges/clock v0.0.0-20160418191101-880ee4c33548 h1:dYTbLf4m0a5u0KLmPfB6mgxbcV7588bOCx79hxa5Sr4= +github.com/jmoiron/sqlx v0.0.0-20180124204410-05cef0741ade h1:ryslCsfLTV4Cm/9NXqCJirlbYodWqFiTH454IaSn/fY= +github.com/jonboulle/clockwork v0.1.0 h1:VKV+ZcuP6l3yW9doeqz6ziZGgcynBVQO+obU0+0hcPo= +github.com/jpillora/backoff v1.0.0 h1:uvFg412JmmHBHw7iwprIxkPMI+sGQ4kzOWsMeHnm2EA= github.com/jpillora/backoff v1.0.0/go.mod h1:J/6gKK9jxlEcS3zixgDgUAsiuZ7yrSoa/FX5e0EB2j4= +github.com/jstemmer/go-junit-report v0.9.1 h1:6QPYqodiu3GuPL+7mfx+NwDdp2eTkp9IfEUpgAwUN0o= +github.com/juju/gnuflag v0.0.0-20171113085948-2ce1bb71843d h1:c93kUJDtVAXFEhsCh5jSxyOJmFHuzcihnslQiX8Urwo= +github.com/julienschmidt/httprouter v1.3.0 h1:U0609e9tgbseu3rBINet9P48AI/D3oJs4dN7jwJOQ1U= github.com/julienschmidt/httprouter v1.3.0/go.mod h1:JR6WtHb+2LUe8TCKY3cZOxFyyO8IZAc4RVcycCCAKdM= +github.com/karrick/godirwalk v1.10.12 h1:BqUm+LuJcXjGv1d2mj3gBiQyrQ57a0rYoAmhvJQ7RDU= +github.com/kataras/jwt v0.1.10 h1:GBXOF9RVInDPhCFBiDumRG9Tt27l7ugLeLo8HL5SeKQ= github.com/kataras/jwt v0.1.10/go.mod h1:xkimAtDhU/aGlQqjwvgtg+VyuPwMiyZHaY8LJRh0mYo= +github.com/kataras/neffos v0.0.22 h1:3M4lHrUl//2OKmS9t9z3AKIZqwha6ABeA6WoF03HEv8= github.com/kataras/neffos v0.0.22/go.mod h1:IIJZcUDvwBxJGlDj942dqQgyznVKYDti91f8Ez+RRxE= +github.com/kevinburke/ssh_config v0.0.0-20190725054713-01f96b0aa0cd h1:Coekwdh0v2wtGp9Gmz1Ze3eVRAWJMLokvN3QjdzCHLY= github.com/kevinburke/ssh_config v0.0.0-20190725054713-01f96b0aa0cd/go.mod h1:CT57kijsi8u/K/BOFA39wgDQJ9CxiF4nAY/ojJ6r6mM= +github.com/kisielk/errcheck v1.5.0 h1:e8esj/e4R+SAOwFwN+n3zr0nYeCyeweozKfO23MvHzY= +github.com/kisielk/gotool v1.0.0 h1:AV2c/EiW3KqPNT9ZKl07ehoAGi4C5/01Cfbblndcapg= +github.com/kisielk/sqlstruct v0.0.0-20150923205031-648daed35d49 h1:o/c0aWEP/m6n61xlYW2QP4t9424qlJOsxugn5Zds2Rg= +github.com/kisom/goutils v1.1.0 h1:z4HEOgAnFq+e1+O4QdVsyDPatJDu5Ei/7w7DRbYjsIA= +github.com/konsorten/go-windows-terminal-sequences v1.0.2 h1:DB17ag19krx9CFsz4o3enTrPXyIXCl+2iCXH/aMAp9s= +github.com/kr/fs v0.1.0 h1:Jskdu9ieNAYnjxsi0LbQp1ulIKZV1LAFgK1tWhpZgl8= +github.com/kr/logfmt v0.0.0-20140226030751-b84e30acd515 h1:T+h1c/A9Gawja4Y9mFVWj2vyii2bbUNDw3kt9VxK2EY= +github.com/kr/pty v1.1.5 h1:hyz3dwM5QLc1Rfoz4FuWJQG5BN7tc6K1MndAUnGpQr4= +github.com/kylelemons/go-gypsy v0.0.0-20160905020020-08cad365cd28 h1:mkl3tvPHIuPaWsLtmHTybJeoVEW7cbePK73Ir8VtruA= +github.com/lib/pq v1.1.1 h1:sJZmqHoEaY7f+NPP8pgLB/WxulyR3fewgCM2qaSlBb4= +github.com/libp2p/go-libp2p-routing-helpers v0.4.0 h1:b7y4aixQ7AwbqYfcOQ6wTw8DQvuRZeTAA0Od3YYN5yc= github.com/libp2p/go-libp2p-routing-helpers v0.4.0/go.mod h1:dYEAgkVhqho3/YKxfOEGdFMIcWfAFNlZX8iAIihYA2E= +github.com/libp2p/go-libp2p-xor v0.1.0 h1:hhQwT4uGrBcuAkUGXADuPltalOdpf9aag9kaYNT2tLA= github.com/libp2p/go-libp2p-xor v0.1.0/go.mod h1:LSTM5yRnjGZbWNTA/hRwq2gGFrvRIbQJscoIL/u6InY= +github.com/libp2p/go-openssl v0.1.0 h1:LBkKEcUv6vtZIQLVTegAil8jbNpJErQ9AnT+bWV+Ooo= github.com/libp2p/go-openssl v0.1.0/go.mod h1:OiOxwPpL3n4xlenjx2h7AwSGaFSC/KZvf6gNdOBQMtc= +github.com/libp2p/zeroconf/v2 v2.2.0 h1:Cup06Jv6u81HLhIj1KasuNM/RHHrJ8T7wOTS4+Tv53Q= github.com/libp2p/zeroconf/v2 v2.2.0/go.mod h1:fuJqLnUwZTshS3U/bMRJ3+ow/v9oid1n0DmyYyNO1Xs= +github.com/lightstep/lightstep-tracer-common/golang/gogo v0.0.0-20190605223551-bc2310a04743 h1:143Bb8f8DuGWck/xpNUOckBVYfFbBTnLevfRZ1aVVqo= +github.com/lightstep/lightstep-tracer-go v0.18.1 h1:vi1F1IQ8N7hNWytK9DpJsUfQhGuNSc19z330K6vl4zk= +github.com/linkeddata/gojsonld v0.0.0-20170418210642-4f5db6791326 h1:YP3lfXXYiQV5MKeUqVnxRP5uuMQTLPx+PGYm1UBoU98= +github.com/lufia/plan9stats v0.0.0-20211012122336-39d0f177ccd0 h1:6E+4a0GO5zZEnZ81pIr0yLvtUWk2if982qA3F3QD6H4= github.com/lufia/plan9stats v0.0.0-20211012122336-39d0f177ccd0/go.mod h1:zJYVVT2jmtg6P3p1VtQj7WsuWi/y4VnjVBn7F8KPB3I= +github.com/lunixbochs/vtclean v1.0.0 h1:xu2sLAri4lGiovBDQKxl5mrXyESr3gUr5m5SM5+LVb8= +github.com/lyft/protoc-gen-star v0.5.3 h1:zSGLzsUew8RT+ZKPHc3jnf8XLaVyHzTcAFBzHtCNR20= +github.com/lyft/protoc-gen-validate v0.0.13 h1:KNt/RhmQTOLr7Aj8PsJ7mTronaFyx80mRTT9qF261dA= +github.com/matryer/try v0.0.0-20161228173917-9ac251b645a2 h1:JAEbJn3j/FrhdWA9jW8B5ajsLIjeuEHLi8xE4fk997o= github.com/matryer/try v0.0.0-20161228173917-9ac251b645a2/go.mod h1:0KeJpeMD6o+O4hW7qJOT7vyQPKrWmj26uf5wMc/IiIs= +github.com/mattn/go-pointer v0.0.1 h1:n+XhsuGeVO6MEAp7xyEukFINEa+Quek5psIR/ylA6o0= github.com/mattn/go-pointer v0.0.1/go.mod h1:2zXcozF6qYGgmsG+SeTZz3oAbFLdD3OWqnUbNvJZAlc= +github.com/mattn/go-runewidth v0.0.15 h1:UNAjwbU9l54TA3KzvqLGxwWjHmMgBUVhBiTjelZgg3U= github.com/mattn/go-runewidth v0.0.15/go.mod h1:Jdepj2loyihRzMpdS35Xk/zdY8IAYHsh153qUoGf23w= +github.com/mattn/go-sqlite3 v1.10.0 h1:jbhqpg7tQe4SupckyijYiy0mJJ/pRyHvXf7JdWK860o= +github.com/maxbrunsfeld/counterfeiter/v6 v6.3.0 h1:8E6DrFvII6QR4eJ3PkFvV+lc03P+2qwqTPLm1ax7694= +github.com/mediocregopher/radix/v3 v3.8.1 h1:rOkHflVuulFKlwsLY01/M2cM2tWCjDoETcMqKbAWu1M= github.com/mediocregopher/radix/v3 v3.8.1/go.mod h1:8FL3F6UQRXHXIBSPUs5h0RybMF8i4n7wVopoX3x7Bv8= +github.com/minio/blake2b-simd v0.0.0-20160723061019-3f5f724cb5b1 h1:lYpkrQH5ajf0OXOcUbGjvZxxijuBwbbmlSxLiuofa+g= +github.com/minio/highwayhash v1.0.2 h1:Aak5U0nElisjDCfPSG79Tgzkn2gl66NxOMspRrKnA/g= github.com/minio/highwayhash v1.0.2/go.mod h1:BQskDq+xkJ12lmlUUi7U0M5Swg3EWR+dLTk+kldvVxY= +github.com/miracl/conflate v1.2.1 h1:QlB+Hjh8vnPIjimCK2VKEvtLVxVGIVxNQ4K95JRpi90= github.com/miracl/conflate v1.2.1/go.mod h1:F85f+vrE7SwfRoL31EpLZFa1sub0SDxzcwxDBxFvy7k= +github.com/mitchellh/cli v1.1.0 h1:tEElEatulEHDeedTxwckzyYMA5c86fbmNIUL1hBIiTg= +github.com/mitchellh/go-homedir v1.1.0 h1:lukF9ziXFxDFPkA1vsr5zpc1XuPDn/wFntq5mG+4E0Y= +github.com/mitchellh/go-testing-interface v1.0.0 h1:fzU/JVNcaqHQEcVFAKeR41fkiLdIPrefOvVG1VZ96U0= +github.com/mitchellh/gox v0.4.0 h1:lfGJxY7ToLJQjHHwi0EX6uYBdK78egf954SQl13PQJc= +github.com/mitchellh/iochan v1.0.0 h1:C+X3KsSTLFVBr/tK1eYN/vs4rJcvsiLU338UhYPJWeY= +github.com/mmcloughlin/profile v0.1.1 h1:jhDmAqPyebOsVDOCICJoINoLb/AnLBaUw58nFzxWS2w= +github.com/moby/sys/mount v0.2.0 h1:WhCW5B355jtxndN5ovugJlMFJawbUODuW8fSnEH6SSM= github.com/moby/sys/mount v0.2.0/go.mod h1:aAivFE2LB3W4bACsUXChRHQ0qKWsetY4Y9V7sxOougM= +github.com/moby/sys/mountinfo v0.6.2 h1:BzJjoreD5BMFNmD9Rus6gdd1pLuecOFPt8wC+Vygl78= github.com/moby/sys/mountinfo v0.6.2/go.mod h1:IJb6JQeOklcdMU9F5xQ8ZALD+CUr5VlGpwtX+VE0rpI= +github.com/moby/term v0.0.0-20210619224110-3f7ff695adc6 h1:dcztxKSvZ4Id8iPpHERQBbIJfabdt4wUm5qy3wOL2Zc= github.com/moby/term v0.0.0-20210619224110-3f7ff695adc6/go.mod h1:E2VnQOmVuvZB6UYnnDB0qG5Nq/1tD9acaOpo6xmt0Kw= +github.com/morikuni/aec v1.0.0 h1:nP9CBfwrvYnBRgY6qfDQkygYDmYwOilePFkwzv4dU8A= github.com/morikuni/aec v1.0.0/go.mod h1:BbKIizmSmc5MMPqRYbxO4ZU0S0+P200+tUnFx7PXmsc= +github.com/mreiferson/go-httpclient v0.0.0-20160630210159-31f0106b4474 h1:oKIteTqeSpenyTrOVj5zkiyCaflLa8B+CD0324otT+o= +github.com/mwitkow/go-conntrack v0.0.0-20190716064945-2f068394615f h1:KUppIJq7/+SVif2QVs3tOP0zanoHgBEVAwHxUSIzRqU= github.com/mwitkow/go-conntrack v0.0.0-20190716064945-2f068394615f/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U= +github.com/nats-io/jwt v0.3.2 h1:+RB5hMpXUUA2dfxuhBTEkMOrYmM+gKIZYS1KjSostMI= +github.com/nats-io/jwt/v2 v2.5.0 h1:WQQ40AAlqqfx+f6ku+i0pOVm+ASirD4fUh+oQsiE9Ak= github.com/nats-io/jwt/v2 v2.5.0/go.mod h1:24BeQtRwxRV8ruvC4CojXlx/WQ/VjuwlYiH+vu/+ibI= +github.com/nats-io/nats-server/v2 v2.1.2 h1:i2Ly0B+1+rzNZHHWtD4ZwKi+OU5l+uQo1iDHZ2PmiIc= +github.com/nats-io/nats.go v1.28.0 h1:Th4G6zdsz2d0OqXdfzKLClo6bOfoI/b1kInhRtFIy5c= github.com/nats-io/nats.go v1.28.0/go.mod h1:XpbWUlOElGwTYbMR7imivs7jJj9GtK7ypv321Wp6pjc= +github.com/nats-io/nkeys v0.4.4 h1:xvBJ8d69TznjcQl9t6//Q5xXuVhyYiSos6RPtvQNTwA= github.com/nats-io/nkeys v0.4.4/go.mod h1:XUkxdLPTufzlihbamfzQ7mw/VGx6ObUs+0bN5sNvt64= +github.com/nats-io/nuid v1.0.1 h1:5iA8DT8V7q8WK2EScv2padNa/rTESc1KdnPw4TC2paw= +github.com/neelance/astrewrite v0.0.0-20160511093645-99348263ae86 h1:D6paGObi5Wud7xg83MaEFyjxQB1W5bz5d0IFppr+ymk= +github.com/neelance/sourcemap v0.0.0-20151028013722-8c68805598ab h1:eFXv9Nu1lGbrNbj619aWwZfVF5HBrm9Plte8aNptuTI= +github.com/nkovacs/streamquote v0.0.0-20170412213628-49af9bddb229 h1:E2B8qYyeSgv5MXpmzZXRNp8IAQ4vjxIjhpAf5hv/tAg= +github.com/oapi-codegen/testutil v1.0.0 h1:1GI2IiMMLh2vDHr1OkNacaYU/VaApKdcmfgl4aeXAa8= github.com/oapi-codegen/testutil v1.0.0/go.mod h1:ttCaYbHvJtHuiyeBF0tPIX+4uhEPTeizXKx28okijLw= +github.com/oklog/oklog v0.3.2 h1:wVfs8F+in6nTBMkA7CbRw+zZMIB7nNM825cM1wuzoTk= +github.com/oklog/run v1.0.0 h1:Ru7dDtJNOyC66gQ5dQmaCa0qIsAUFY3sFpK1Xk8igrw= +github.com/oklog/ulid v1.3.1 h1:EGfNDEx6MqHz8B3uNV6QAib1UR2Lm97sHi3ocA6ESJ4= +github.com/olekukonko/tablewriter v0.0.0-20170122224234-a0225b3f23b5 h1:58+kh9C6jJVXYjt8IE48G2eWl6BjwU5Gj0gqY84fy78= +github.com/op/go-logging v0.0.0-20160315200505-970db520ece7 h1:lDH9UUVJtmYCjyT0CI4q8xvlXPxeZ0gYCVvWbmPlp88= +github.com/opencontainers/go-digest v1.0.0 h1:apOUWs51W5PlhuyGyz9FCeeBIOUDA/6nW8Oi/yOhh5U= github.com/opencontainers/go-digest v1.0.0/go.mod h1:0JzlMkj0TRzQZfJkVvzbP0HBR3IKzErnv2BNG4W4MAM= +github.com/opencontainers/image-spec v1.0.2 h1:9yCKha/T5XdGtO0q9Q9a6T5NUCsTn/DrBg0D7ufOcFM= github.com/opencontainers/image-spec v1.0.2/go.mod h1:BtxoFyWECRxE4U/7sNtV5W15zMzWCbyJoFRP3s7yZA0= +github.com/opencontainers/runc v1.1.5 h1:L44KXEpKmfWDcS02aeGm8QNTFXTo2D+8MYGDIJ/GDEs= github.com/opencontainers/runc v1.1.5/go.mod h1:1J5XiS+vdZ3wCyZybsuxXZWGrgSr8fFJHLXuG2PsnNg= +github.com/opencontainers/selinux v1.0.0 h1:AYFJmdZd1xjz5UIb8YpDHthdwAzlM5FVY6PzoNMgAMk= +github.com/opentracing-contrib/go-observer v0.0.0-20170622124052-a52f23424492 h1:lM6RxxfUMrYL/f8bWEUqdXrANWtrL7Nndbm9iFN0DlU= +github.com/opentracing/basictracer-go v1.0.0 h1:YyUAhaEfjoWXclZVJ9sGoNct7j4TVk7lZWlQw5UXuoo= +github.com/openzipkin-contrib/zipkin-go-opentracing v0.4.5 h1:ZCnq+JUrvXcDVhX/xRolRBZifmabN1HcS1wrPSvxhrU= +github.com/openzipkin/zipkin-go v0.2.2 h1:nY8Hti+WKaP0cRsSeQ026wU03QsM762XBeCXBb9NAWI= +github.com/ory/dockertest v3.3.4+incompatible h1:VrpM6Gqg7CrPm3bL4Wm1skO+zFWLbh7/Xb5kGEbJRh8= +github.com/pact-foundation/pact-go v1.0.4 h1:OYkFijGHoZAYbOIb1LWXrwKQbMMRUv1oQ89blD2Mh2Q= +github.com/pascaldekloe/goe v0.1.0 h1:cBOtyMzM9HTpWjXfbbunk26uA6nG3a8n06Wieeh0MwY= +github.com/pborman/uuid v1.2.0 h1:J7Q5mO4ysT1dv8hyrUGHb9+ooztCXu1D8MY8DZYsu3g= +github.com/performancecopilot/speed v3.0.0+incompatible h1:2WnRzIquHa5QxaJKShDkLM+sc0JPuwhXzK8OYOyt3Vg= github.com/perimeterx/marshmallow v1.1.4/go.mod h1:dsXbUu8CRzfYP5a87xpp0xq9S3u0Vchtcl8we9tYaXw= +github.com/petar/GoLLRB v0.0.0-20210522233825-ae3b015fd3e9 h1:1/WtZae0yGtPq+TI6+Tv1WTxkukpXeMlviSxvL7SRgk= github.com/petar/GoLLRB v0.0.0-20210522233825-ae3b015fd3e9/go.mod h1:x3N5drFsm2uilKKuuYo6LdyD8vZAW55sH/9w+pbo1sw= +github.com/peterh/liner v0.0.0-20170317030525-88609521dc4b h1:8uaXtUkxiy+T/zdLWuxa/PG4so0TPZDZfafFNNSaptE= +github.com/philhofer/fwd v1.1.2 h1:bnDivRJ1EWPjUIRXV5KfORO897HTbpFAQddBdE8t7Gw= github.com/philhofer/fwd v1.1.2/go.mod h1:qkPdfjR2SIEbspLqpe1tO4n5yICnr2DY7mqEx2tUTP0= +github.com/pkg/diff v0.0.0-20210226163009-20ebb0f2a09e h1:aoZm08cpOy4WuID//EZDgcC4zIxODThtZNPirFr42+A= +github.com/pkg/profile v1.2.1 h1:F++O52m40owAmADcojzM+9gyjmMOY/T4oYJkgFDH8RE= +github.com/pkg/sftp v1.10.1 h1:VasscCm72135zRysgrJDKsntdmPN+OuU3+nnHYA9wyc= +github.com/posener/complete v1.2.3 h1:NP0eAhjcjImqslEwo/1hq7gpajME0fTLTezBKDqfXqo= +github.com/power-devops/perfstat v0.0.0-20210106213030-5aafc221ea8c h1:ncq/mPwQF4JjgDlrVEn3C11VoGHZN7m8qihwgMEtzYw= github.com/power-devops/perfstat v0.0.0-20210106213030-5aafc221ea8c/go.mod h1:OmDBASR4679mdNQnz2pUhc2G8CO2JrUAVFDRBDP/hJE= +github.com/prometheus/tsdb v0.7.1 h1:YZcsG11NqnK4czYLrWd9mpEuAJIHVQLwdrleYfszMAA= +github.com/quic-go/qtls-go1-18 v0.2.0 h1:5ViXqBZ90wpUcZS0ge79rf029yx0dYB0McyPJwqqj7U= github.com/quic-go/qtls-go1-18 v0.2.0/go.mod h1:moGulGHK7o6O8lSPSZNoOwcLvJKJ85vVNc7oJFD65bc= +github.com/quic-go/qtls-go1-19 v0.2.1 h1:aJcKNMkH5ASEJB9FXNeZCyTEIHU1J7MmHyz1Q1TSG1A= github.com/quic-go/qtls-go1-19 v0.2.1/go.mod h1:ySOI96ew8lnoKPtSqx2BlI5wCpUVPT05RMAlajtnyOI= +github.com/redis/go-redis/v9 v9.1.0 h1:137FnGdk+EQdCbye1FW+qOEcY5S+SpY9T0NiuqvtfMY= github.com/redis/go-redis/v9 v9.1.0/go.mod h1:urWj3He21Dj5k4TK1y59xH8Uj6ATueP8AH1cY3lZl4c= +github.com/rivo/uniseg v0.2.0 h1:S1pD9weZBuJdFmowNwbpi7BJ8TNftyUImj/0WQi72jY= github.com/rivo/uniseg v0.2.0/go.mod h1:J6wj4VEh+S6ZtnVlnTBMWIodfgj8LQOQFoIToxlJtxc= +github.com/rogpeppe/fastuuid v1.2.0 h1:Ppwyp6VYCF1nvBTXL3trRso7mXMlRrw9ooo375wvi2s= github.com/russross/blackfriday v1.5.2 h1:HyvC0ARfnZBqnXwABFeSZHpKvJHJJfPz81GNueLj0oo= +github.com/ryanuber/columnize v0.0.0-20160712163229-9b3edd62028f h1:UFr9zpz4xgTnIE5yIMtWAMngCdZ9p/+q6lTbgelo80M= +github.com/sagikazarmark/crypt v0.4.0 h1:Rqcx6Sf/bWQUmmfGQhcFx3wQQEfb2UZWhAKvGRairm0= +github.com/samber/lo v1.36.0 h1:4LaOxH1mHnbDGhTVE0i1z8v/lWaQW8AIfOD3HU4mSaw= github.com/samber/lo v1.36.0/go.mod h1:HLeWcJRRyLKp3+/XBJvOrerCQn9mhdKMHyd7IRlgeQ8= +github.com/samuel/go-zookeeper v0.0.0-20190923202752-2cc03de413da h1:p3Vo3i64TCLY7gIfzeQaUJ+kppEO5WQG3cL8iE8tGHU= +github.com/satori/go.uuid v1.2.0 h1:0uYX9dsZ2yD7q2RtLRtPSdGDWzjeM3TbMJP9utgA0ww= +github.com/sclevine/spec v1.4.0 h1:z/Q9idDcay5m5irkZ28M7PtQM4aOISzOpj4bUPkDee8= +github.com/sean-/seed v0.0.0-20170313163322-e2103e2c3529 h1:nn5Wsu0esKSJiIVhscUtVbo7ada43DJhG55ua/hjS5I= +github.com/shirou/gopsutil/v3 v3.23.8 h1:xnATPiybo6GgdRoC4YoGnxXZFRc3dqQTGi73oLvvBrE= github.com/shirou/gopsutil/v3 v3.23.8/go.mod h1:7hmCaBn+2ZwaZOr6jmPBZDfawwMGuo1id3C6aM8EDqQ= +github.com/shoenig/go-m1cpu v0.1.6 h1:nxdKQNcEB6vzgA2E2bvzKIYRuNj7XNJ4S/aRSwKzFtM= github.com/shoenig/go-m1cpu v0.1.6/go.mod h1:1JJMcUBvfNwpq05QDQVAnx3gUHr9IYF7GNg9SUEw2VQ= +github.com/shopspring/decimal v0.0.0-20180709203117-cd690d0c9e24 h1:pntxY8Ary0t43dCZ5dqY4YTJCObLY1kIXl0uzMv+7DE= +github.com/shurcooL/component v0.0.0-20170202220835-f88ec8f54cc4 h1:Fth6mevc5rX7glNLpbAMJnqKlfIkcTjZCSHEeqvKbcI= +github.com/shurcooL/events v0.0.0-20181021180414-410e4ca65f48 h1:vabduItPAIz9px5iryD5peyx7O3Ya8TBThapgXim98o= +github.com/shurcooL/github_flavored_markdown v0.0.0-20181002035957-2122de532470 h1:qb9IthCFBmROJ6YBS31BEMeSYjOscSiG+EO+JVNTz64= +github.com/shurcooL/go v0.0.0-20180423040247-9e1955d9fb6e h1:MZM7FHLqUHYI0Y/mQAt3d2aYa0SiNms/hFqC9qJYolM= +github.com/shurcooL/go-goon v0.0.0-20170922171312-37c2f522c041 h1:llrF3Fs4018ePo4+G/HV/uQUqEI1HMDjCeOf2V6puPc= +github.com/shurcooL/gofontwoff v0.0.0-20180329035133-29b52fc0a18d h1:Yoy/IzG4lULT6qZg62sVC+qyBL8DQkmD2zv6i7OImrc= +github.com/shurcooL/gopherjslib v0.0.0-20160914041154-feb6d3990c2c h1:UOk+nlt1BJtTcH15CT7iNO7YVWTfTv/DNwEAQHLIaDQ= +github.com/shurcooL/highlight_diff v0.0.0-20170515013008-09bb4053de1b h1:vYEG87HxbU6dXj5npkeulCS96Dtz5xg3jcfCgpcvbIw= +github.com/shurcooL/highlight_go v0.0.0-20181028180052-98c3abbbae20 h1:7pDq9pAMCQgRohFmd25X8hIH8VxmT3TaDm+r9LHxgBk= +github.com/shurcooL/home v0.0.0-20181020052607-80b7ffcb30f9 h1:MPblCbqA5+z6XARjScMfz1TqtJC7TuTRj0U9VqIBs6k= +github.com/shurcooL/htmlg v0.0.0-20170918183704-d01228ac9e50 h1:crYRwvwjdVh1biHzzciFHe8DrZcYrVcZFlJtykhRctg= +github.com/shurcooL/httperror v0.0.0-20170206035902-86b7830d14cc h1:eHRtZoIi6n9Wo1uR+RU44C247msLWwyA89hVKwRLkMk= +github.com/shurcooL/httpfs v0.0.0-20171119174359-809beceb2371 h1:SWV2fHctRpRrp49VXJ6UZja7gU9QLHwRpIPBN89SKEo= +github.com/shurcooL/httpgzip v0.0.0-20180522190206-b1c53ac65af9 h1:fxoFD0in0/CBzXoyNhMTjvBZYW6ilSnTw7N7y/8vkmM= +github.com/shurcooL/issues v0.0.0-20181008053335-6292fdc1e191 h1:T4wuULTrzCKMFlg3HmKHgXAF8oStFb/+lOIupLV2v+o= +github.com/shurcooL/issuesapp v0.0.0-20180602232740-048589ce2241 h1:Y+TeIabU8sJD10Qwd/zMty2/LEaT9GNDaA6nyZf+jgo= +github.com/shurcooL/notifications v0.0.0-20181007000457-627ab5aea122 h1:TQVQrsyNaimGwF7bIhzoVC9QkKm4KsWd8cECGzFx8gI= +github.com/shurcooL/octicon v0.0.0-20181028054416-fa4f57f9efb2 h1:bu666BQci+y4S0tVRVjsHUeRon6vUXmsGBwdowgMrg4= +github.com/shurcooL/reactions v0.0.0-20181006231557-f2e0b4ca5b82 h1:LneqU9PHDsg/AkPDU3AkqMxnMYL+imaqkpflHu73us8= +github.com/shurcooL/sanitized_anchor_name v1.0.0 h1:PdmoCO6wvbs+7yrJyMORt4/BmY5IYyJwS/kOiWx8mHo= +github.com/shurcooL/users v0.0.0-20180125191416-49c67e49c537 h1:YGaxtkYjb8mnTvtufv2LKLwCQu2/C7qFB7UtrOlTWOY= +github.com/shurcooL/webdavfs v0.0.0-20170829043945-18c3829fa133 h1:JtcyT0rk/9PKOdnKQzuDR+FSjh7SGtJwpgVpfZBRKlQ= +github.com/smartystreets/go-aws-auth v0.0.0-20180515143844-0c1422d1fdb9 h1:hp2CYQUINdZMHdvTdXtPOY2ainKl4IoMcpAXEf2xj3Q= +github.com/soheilhy/cmux v0.1.4 h1:0HKaf1o97UwFjHH9o5XsHUOF+tqmdA7KEzXLpiyaw0E= +github.com/sony/gobreaker v0.4.1 h1:oMnRNZXX5j85zso6xCPRNPtmAycat+WcoKbklScLDgQ= +github.com/sourcegraph/annotate v0.0.0-20160123013949-f4cad6c6324d h1:yKm7XZV6j9Ev6lojP2XaIshpT4ymkqhMeSghO5Ps00E= +github.com/sourcegraph/syntaxhighlight v0.0.0-20170531221838-bd320f5d308e h1:qpG93cPwA5f7s/ZPBJnGOYQNK/vKsaDaseuKT5Asee8= +github.com/spacemonkeygo/spacelog v0.0.0-20180420211403-2296661a0572 h1:RC6RW7j+1+HkWaX/Yh71Ee5ZHaHYt7ZP4sQgUrm6cDU= github.com/spacemonkeygo/spacelog v0.0.0-20180420211403-2296661a0572/go.mod h1:w0SWMsp6j9O/dk4/ZpIhL+3CkG8ofA2vuv7k+ltqUMc= +github.com/spkg/bom v0.0.0-20160624110644-59b7046e48ad h1:fiWzISvDn0Csy5H0iwgAuJGQTUpVfEMJJd4nRFXogbc= +github.com/src-d/gcfg v1.4.0 h1:xXbNR5AlLSA315x2UO+fTSSAXCDf+Ar38/6oyGbDKQ4= github.com/src-d/gcfg v1.4.0/go.mod h1:p/UMsR43ujA89BJY9duynAwIpvqEujIH/jFlfL7jWoI= +github.com/streadway/amqp v0.0.0-20190827072141-edfb9018d271 h1:WhxRHzgeVGETMlmVfqhRn8RIeeNoPr2Czh33I4Zdccw= +github.com/streadway/handy v0.0.0-20190108123426-d5acb3125c2a h1:AhmOdSHeswKHBjhsLs/7+1voOxT+LLrSk/Nxvk35fug= +github.com/stretchr/objx v0.5.2 h1:xuMeJ0Sdp5ZMRXx/aWO6RZxdr3beISkG5/G/aIRr3pY= github.com/stretchr/objx v0.5.2/go.mod h1:FRsXN1f5AsAjCGJKqEizvkpNtU+EGNCLh3NxZ/8L+MA= +github.com/tarm/serial v0.0.0-20180830185346-98f6abe2eb07 h1:UyzmZLoiDWMRywV4DUYb9Fbt8uiOSooupjTq10vpvnU= +github.com/teserakt-io/golang-ed25519 v0.0.0-20210104091850-3888c087a4c8 h1:RBkacARv7qY5laaXGlF4wFB/tk5rnthhPb8oIBGoagY= github.com/teserakt-io/golang-ed25519 v0.0.0-20210104091850-3888c087a4c8/go.mod h1:9PdLyPiZIiW3UopXyRnPYyjUXSpiQNHRLu8fOsR3o8M= +github.com/thedevsaddam/gojsonq v2.3.0+incompatible h1:i2lFTvGY4LvoZ2VUzedsFlRiyaWcJm3Uh6cQ9+HyQA8= github.com/thedevsaddam/gojsonq v2.3.0+incompatible/go.mod h1:RBcQaITThgJAAYKH7FNp2onYodRz8URfsuEGpAch0NA= +github.com/tidwall/pretty v1.0.0 h1:HsD+QiTn7sK6flMKIvNmpqz1qrpP3Ps6jOKIKMooyg4= +github.com/tinylib/msgp v1.1.8 h1:FCXC1xanKO4I8plpHGH2P7koL/RzZs12l/+r7vakfm0= github.com/tinylib/msgp v1.1.8/go.mod h1:qkpG+2ldGg4xRFmx+jfTvZPxfGFhi64BcnL9vkCm/Tw= +github.com/tklauser/go-sysconf v0.3.12 h1:0QaGUFOdQaIVdPgfITYzaTegZvdCjmYO52cSFAEVmqU= github.com/tklauser/go-sysconf v0.3.12/go.mod h1:Ho14jnntGE1fpdOqQEEaiKRpvIavV0hSfmBq8nJbHYI= +github.com/tklauser/numcpus v0.6.1 h1:ng9scYS7az0Bk4OZLvrNXNSAO2Pxr1XXRAPyjhIx+Fk= github.com/tklauser/numcpus v0.6.1/go.mod h1:1XfjsgE2zo8GVw7POkMbHENHzVg3GzmoZ9fESEdAacY= +github.com/tmc/grpc-websocket-proxy v0.0.0-20200427203606-3cfed13b9966 h1:j6JEOq5QWFker+d7mFQYOhjTZonQ7YkLTHm56dbn+yM= +github.com/tv42/httpunix v0.0.0-20150427012821-b75d8614f926 h1:G3dpKMzFDjgEh2q1Z7zUUtKa8ViPtH+ocF0bE0g00O8= +github.com/ucarion/urlpath v0.0.0-20200424170820-7ccc79b76bbb h1:Ywfo8sUltxogBpFuMOFRrrSifO788kAFxmvVw31PtQQ= github.com/ucarion/urlpath v0.0.0-20200424170820-7ccc79b76bbb/go.mod h1:ikPs9bRWicNw3S7XpJ8sK/smGwU9WcSVU3dy9qahYBM= github.com/ugorji/go v1.2.7 h1:qYhyWUUd6WbiM+C6JZAUkIJt/1WrjzNHY9+KCIjVqTo= github.com/ugorji/go v1.2.7/go.mod h1:nF9osbDWLy6bDVv/Rtoh6QgnvNDpmCalQV5urGCCS6M= github.com/ugorji/go/codec v1.2.7/go.mod h1:WGN1fab3R1fzQlVQTkfxVtIBhWDRqOviHU95kRgeqEY= github.com/ugorji/go/codec v1.2.9 h1:rmenucSohSTiyL09Y+l2OCk+FrMxGMzho2+tjr5ticU= +github.com/urfave/cli v1.22.10 h1:p8Fspmz3iTctJstry1PYS3HVdllxnEzTEsgIgtxTrCk= +github.com/valyala/fasthttp v1.49.0 h1:9FdvCpmxB74LH4dPb7IJ1cOSsluR07XG3I1txXWwJpE= github.com/valyala/fasthttp v1.49.0/go.mod h1:k2zXd82h/7UZc3VOdJ2WaUqt1uZ/XpXAfE9i+HBC3lA= +github.com/valyala/tcplisten v1.0.0 h1:rBHj/Xf+E1tRGZyWIWwJDiRY0zc1Js+CV5DqwacVSA8= github.com/valyala/tcplisten v1.0.0/go.mod h1:T0xQ8SeCZGxckz9qRXTfG43PvQ/mcWh7FwZEA7Ioqkc= +github.com/viant/assertly v0.4.8 h1:5x1GzBaRteIwTr5RAGFVG14uNeRFxVNbXPWrK2qAgpc= +github.com/viant/toolbox v0.24.0 h1:6TteTDQ68CjgcCe8wH3D3ZhUQQOJXMTbj/D9rkk2a1k= +github.com/warpfork/go-testmark v0.11.0 h1:J6LnV8KpceDvo7spaNU4+DauH2n1x+6RaO2rJrmpQ9U= github.com/warpfork/go-testmark v0.11.0/go.mod h1:jhEf8FVxd+F17juRubpmut64NEG6I2rgkUhlcqqXwE0= +github.com/weppos/publicsuffix-go v0.5.0 h1:rutRtjBJViU/YjcI5d80t4JAVvDltS6bciJg2K1HrLU= +github.com/whyrusleeping/base32 v0.0.0-20170828182744-c30ac30633cc h1:BCPnHtcboadS0DvysUuJXZ4lWVv5Bh5i7+tbIyi+ck4= github.com/whyrusleeping/base32 v0.0.0-20170828182744-c30ac30633cc/go.mod h1:r45hJU7yEoA81k6MWNhpMj/kms0n14dkzkxYHoB96UM= +github.com/whyrusleeping/cbor v0.0.0-20171005072247-63513f603b11 h1:5HZfQkwe0mIfyDmc1Em5GqlNRzcdtlv4HTNmdpt7XH0= github.com/whyrusleeping/cbor v0.0.0-20171005072247-63513f603b11/go.mod h1:Wlo/SzPmxVp6vXpGt/zaXhHH0fn4IxgqZc82aKg6bpQ= +github.com/whyrusleeping/cbor-gen v0.0.0-20230126041949-52956bd4c9aa h1:EyA027ZAkuaCLoxVX4r1TZMPy1d31fM6hbfQ4OU4I5o= github.com/whyrusleeping/cbor-gen v0.0.0-20230126041949-52956bd4c9aa/go.mod h1:fgkXqYy7bV2cFeIEOkVTZS/WjXARfBqSH6Q2qHL33hQ= +github.com/whyrusleeping/chunker v0.0.0-20181014151217-fe64bd25879f h1:jQa4QT2UP9WYv2nzyawpKMOCl+Z/jW7djv2/J50lj9E= github.com/whyrusleeping/chunker v0.0.0-20181014151217-fe64bd25879f/go.mod h1:p9UJB6dDgdPgMJZs7UjUOdulKyRr9fqkS+6JKAInPy8= +github.com/willf/bitset v1.1.10 h1:NotGKqX0KwQ72NUzqrjZq5ipPNDQex9lo3WpaS8L2sc= +github.com/xanzy/ssh-agent v0.2.1 h1:TCbipTQL2JiiCprBWx9frJ2eJlCYT00NmctrHxVAr70= github.com/xanzy/ssh-agent v0.2.1/go.mod h1:mLlQY/MoOhWBj+gOGMQkOeiEvkx+8pJSI+0Bx9h2kr4= +github.com/xdg/scram v0.0.0-20180814205039-7eeb5667e42c h1:u40Z8hqBAAQyv+vATcGgV0YCnDjqSL7/q/JyPhhJSPk= +github.com/xdg/stringprep v1.0.0 h1:d9X0esnoa3dFsV0FG35rAT0RIhYFlPq7MiP+DW89La0= +github.com/xhit/go-str2duration v1.2.0 h1:BcV5u025cITWxEQKGWr1URRzrcXtu7uk8+luz3Yuhwc= github.com/xhit/go-str2duration v1.2.0/go.mod h1:3cPSlfZlUHVlneIVfePFWcJZsuwf+P1v2SRTV4cUmp4= +github.com/xordataexchange/crypt v0.0.3-0.20170626215501-b2862e3d0a77 h1:ESFSdwYZvkeru3RtdrYueztKhOBCSAAzS4Gf+k0tEow= +github.com/yuin/goldmark v1.4.13 h1:fVcFKWvrslecOb/tg+Cc05dkeYx540o0FuFt3nUVDoE= github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY= +github.com/yusufpapurcu/wmi v1.2.3 h1:E1ctvB7uKFMOJw3fdOW32DwGE9I7t++CRUEMKvFoFiw= github.com/yusufpapurcu/wmi v1.2.3/go.mod h1:SBZ9tNy3G9/m5Oi98Zks0QjeHVDvuK0qfxQmPyzfmi0= +github.com/ziutek/mymysql v1.5.4 h1:GB0qdRGsTwQSBVYuVShFBKaXSnSnYYC2d9knnE1LHFs= +github.com/zmap/rc2 v0.0.0-20131011165748-24b9757f5521 h1:kKCF7VX/wTmdg2ZjEaqlq99Bjsoiz7vH6sFniF/vI4M= +github.com/zmap/zcertificate v0.0.0-20180516150559-0e3d58b1bac4 h1:17HHAgFKlLcZsDOjBOUrd5hDihb1ggf+1a5dTbkgkIY= +github.com/zmap/zcrypto v0.0.0-20190729165852-9051775e6a2e h1:mvOa4+/DXStR4ZXOks/UsjeFdn5O5JpLUtzqk9U8xXw= +github.com/zmap/zlint v0.0.0-20190806154020-fd021b4cfbeb h1:vxqkjztXSaPVDc8FQCdHTaejm2x747f6yPbnu1h2xkg= +go.etcd.io/bbolt v1.3.7 h1:j+zJOnnEjF/kyHlDDgGnVL/AIqIJPq8UoB2GSNfkUfQ= go.etcd.io/bbolt v1.3.7/go.mod h1:N9Mkw9X8x5fupy0IKsmuqVtoGDyxsaDlbk4Rd05IAQw= +go.etcd.io/etcd/api/v3 v3.5.1 h1:v28cktvBq+7vGyJXF8G+rWJmj+1XUmMtqcLnH8hDocM= +go.etcd.io/etcd/client/pkg/v3 v3.5.1 h1:XIQcHCFSG53bJETYeRJtIxdLv2EWRGxcfzR8lSnTH4E= +go.etcd.io/etcd/client/v2 v2.305.1 h1:vtxYCKWA9x31w0WJj7DdqsHFNjhkigdAnziDtkZb/l4= +go.etcd.io/etcd/pkg/v3 v3.5.1 h1:nYifzmtBQ2l91wUQM6aZGGwR/pvpQQyscmS4azm184Q= go.etcd.io/etcd/pkg/v3 v3.5.1/go.mod h1:Qb9MvSx6rlo+Es8pOvkCQjGf7L8GA+NxrkRcyZ7eGXo= +go.etcd.io/etcd/raft/v3 v3.5.1 h1:nthXrxmATKB9OZ9C64sk3QZaJ1WZ8tmlI0VwzpJSZwg= go.etcd.io/etcd/raft/v3 v3.5.1/go.mod h1:WIlKzH/rjc54LDZ8SOa7GObrrdX3z96MkP1WDfODBeA= +go.etcd.io/etcd/server/v3 v3.5.1 h1:u8risUH348DmLy2XD3krH/S3GWk2ljuCrs8V3hd4584= go.etcd.io/etcd/server/v3 v3.5.1/go.mod h1:yBKYw++NWu6ciuWoKuL7UXgGKDP7ICBCuVQrIcYbPdw= +go.mongodb.org/mongo-driver v1.0.4 h1:bHxbjH6iwh1uInchXadI6hQR107KEbgYsMzoblDONmQ= +go.uber.org/tools v0.0.0-20190618225709-2cfd321de3ee h1:0mgffUl7nfd+FpvXMVz4IDEaUSmT1ysygQC7qYo7sG4= +go4.org v0.0.0-20180809161055-417644f6feb5 h1:+hE86LblG4AyDgwMCLTE6FOlM9+qjHSYS+rKqxUVdsM= +golang.org/x/build v0.0.0-20190111050920-041ab4dc3f9d h1:E2M5QgjZ/Jg+ObCQAudsXxuTsLj7Nl5RV/lZcQZmKSo= +golang.org/x/image v0.0.0-20190802002840-cff245a6509b h1:+qEpEAPhDZ1o0x3tHzZTQDArnOixOzGD9HUJfcg0mb4= +golang.org/x/lint v0.0.0-20210508222113-6edffad5e616 h1:VLliZ0d+/avPrXXH+OakdXhpJuEoBZuwh1m2j7U6Iug= +golang.org/x/mobile v0.0.0-20190719004257-d2bd2a29d028 h1:4+4C/Iv2U4fMZBiMCc98MG1In4gJY5YRhtpDNeDeHWs= golang.org/x/net v0.14.0/go.mod h1:PpSgVXXLK0OxS0F31C1/tv6XNguvCrnXIDrFMspZIUI= +golang.org/x/oauth2 v0.5.0 h1:HuArIo48skDwlrvM3sEdHXElYslAMsf3KwRkkW4MC4s= golang.org/x/oauth2 v0.5.0/go.mod h1:9/XBHVqLaWO3/BRHs5jbpYCnOZVjj5V0ndyaAM7KB4I= +golang.org/x/perf v0.0.0-20180704124530-6e6d33e29852 h1:xYq6+9AtI+xP3M4r0N1hCkHrInHDBohhquRgx9Kk6gI= golang.org/x/sys v0.11.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/tools v0.12.0/go.mod h1:Sc0INKfu04TlqNoRA1hgpFZbhYXHPr4V5DzpSBTPqQM= +golang.org/x/xerrors v0.0.0-20220907171357-04be3eba64a2 h1:H2TDz8ibqkAF6YGhCdN3jS9O0/s90v0rJh3X/OLHEUk= golang.org/x/xerrors v0.0.0-20220907171357-04be3eba64a2/go.mod h1:K8+ghG5WaK9qNqU5K3HdILfMLy1f3aNYFI/wnl100a8= +google.golang.org/api v0.63.0 h1:n2bqqK895ygnBpdPDYetfy23K7fJ22wsrZKCyfuRkkA= +google.golang.org/appengine v1.6.7 h1:FZR1q0exgwxzPzp/aF+VccGrSfxfPpkBqjIIEq3ru6c= +google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.1.0 h1:M1YKkFIboKNieVO5DLUEVzQfGwJD30Nv2jfUgzb5UcE= +gopkg.in/airbrake/gobrake.v2 v2.0.9 h1:7z2uVWwn7oVeeugY1DtlPAy5H+KYgB1KeKTnqjNatLo= +gopkg.in/alecthomas/kingpin.v2 v2.2.6 h1:jMFz6MfLP0/4fUyZle81rXUoxOBFi19VUFKVDOQfozc= +gopkg.in/cheggaaa/pb.v1 v1.0.28 h1:n1tBJnnK2r7g9OW2btFH91V92STTUevLXYFb8gy9EMk= +gopkg.in/errgo.v2 v2.1.0 h1:0vLT13EuvQ0hNvakwLuFZ/jYrLp5F3kcWHXdRggjCE8= +gopkg.in/fsnotify.v1 v1.4.7 h1:xOHLXZwVvI9hhs+cLKq5+I5onOuwQLhQwiu63xxlHs4= +gopkg.in/gcfg.v1 v1.2.3 h1:m8OOJ4ccYHnx2f4gQwpno8nAX5OGOh7RLaaz0pj3Ogs= +gopkg.in/gemnasium/logrus-airbrake-hook.v2 v2.1.2 h1:OAj3g0cR6Dx/R07QgQe8wkA9RNjB2u4i700xBkIT4e0= +gopkg.in/inf.v0 v0.9.1 h1:73M5CoZyi3ZLMOyDlQh031Cx6N9NDJ2Vvfl76EDAgDc= +gopkg.in/olivere/elastic.v5 v5.0.81 h1:21Vu9RMT2qXVLqXINtiOhwVPYz/87+Omsxh/Re+gK4k= +gopkg.in/resty.v1 v1.12.0 h1:CuXP0Pjfw9rOuY6EP+UvtNvt5DSqHpIxILZKT/quCZI= +gopkg.in/src-d/go-billy.v4 v4.3.2 h1:0SQA1pRztfTFx2miS8sA97XvooFeNOmvUenF4o0EcVg= gopkg.in/src-d/go-billy.v4 v4.3.2/go.mod h1:nDjArDMp+XMs1aFAESLRjfGSgfvoYN0hDfzEk0GjC98= +gopkg.in/src-d/go-git.v4 v4.13.1 h1:SRtFyV8Kxc0UP7aCHcijOMQGPxHSmMOPrzulQWolkYE= gopkg.in/src-d/go-git.v4 v4.13.1/go.mod h1:nx5NYcxdKxq5fpltdHnPa2Exj4Sx0EclMWZQbYDu2z8= +gopkg.in/warnings.v0 v0.1.2 h1:wFXVbFY8DY5/xOe1ECiWdKCzZlxgshcYVNkBHstARME= +gotest.tools v2.2.0+incompatible h1:VsBPFP1AI068pPrMxtb/S8Zkgf9xEmTLJjfM+P5UIEo= +grpc.go4.org v0.0.0-20170609214715-11d0a25b4919 h1:tmXTu+dfa+d9Evp8NpJdgOy6+rt8/x4yG7qPBrtNfLY= +honnef.co/go/tools v0.0.1-2020.1.4 h1:UoveltGrhghAA7ePc+e+QYDHXrBps2PqFZiHkGR/xK8= +nhooyr.io/websocket v1.8.7 h1:usjR2uOr/zjjkVMy0lW+PPohFok7PCow5sDjLgX4P4g= nhooyr.io/websocket v1.8.7/go.mod h1:B70DZP8IakI65RVQ51MsWP/8jndNma26DVA/nFSCgW0= +rsc.io/binaryregexp v0.2.0 h1:HfqmD5MEmC0zvwBuF187nq9mdnXjXsSivRiXN7SmRkE= +rsc.io/pdf v0.1.1 h1:k1MczvYDUvJBe93bYd7wrZLLUEcLZAuF824/I4e5Xr4= +rsc.io/quote/v3 v3.1.0 h1:9JKUTTIUgS6kzR9mK1YuGKv6Nl+DijDNIc0ghT58FaY= +rsc.io/sampler v1.3.0 h1:7uVkIFmeBqHfdjD+gZwtXXI+RODJ2Wc4O7MPEh/QiW4= +sigs.k8s.io/yaml v1.1.0 h1:4A07+ZFc2wgJwo8YNlQpr1rVlgUDlxXHhPJciaPY5gs= +sourcegraph.com/sourcegraph/appdash v0.0.0-20190731080439-ebfcffb1b5c0 h1:ucqkfpjg9WzSUubAO62csmucvxl4/JeW3F4I4909XkM= +sourcegraph.com/sourcegraph/go-diff v0.5.0 h1:eTiIR0CoWjGzJcnQ3OkhIl/b9GJovq4lSAVRt0ZFEG8= +sourcegraph.com/sqs/pbtypes v0.0.0-20180604144634-d3ebe8f20ae4 h1:JPJh2pk3+X4lXAkZIk2RuE/7/FoK9maXw+TNPJhVS/c=