Compare commits
3 Commits
v0.0.1
...
feat/trust
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
0ec1d3b87d | ||
|
|
065a3ce47a | ||
|
|
fb182adef4 |
@@ -7,7 +7,7 @@ import (
|
|||||||
"github.com/ThreeDotsLabs/watermill/message"
|
"github.com/ThreeDotsLabs/watermill/message"
|
||||||
"github.com/apache/pulsar-client-go/pulsar"
|
"github.com/apache/pulsar-client-go/pulsar"
|
||||||
|
|
||||||
"go.yandata.net/iod/iod/go-trustlog/api/logger"
|
"go.yandata.net/wangsiyuan/go-trustlog/api/logger"
|
||||||
)
|
)
|
||||||
|
|
||||||
const (
|
const (
|
||||||
|
|||||||
@@ -210,3 +210,4 @@ func TestNewPublisher_InvalidURL(t *testing.T) {
|
|||||||
require.Error(t, err)
|
require.Error(t, err)
|
||||||
assert.Contains(t, err.Error(), "cannot connect")
|
assert.Contains(t, err.Error(), "cannot connect")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -11,7 +11,7 @@ import (
|
|||||||
"github.com/ThreeDotsLabs/watermill/message"
|
"github.com/ThreeDotsLabs/watermill/message"
|
||||||
"github.com/apache/pulsar-client-go/pulsar"
|
"github.com/apache/pulsar-client-go/pulsar"
|
||||||
|
|
||||||
"go.yandata.net/iod/iod/go-trustlog/api/logger"
|
"go.yandata.net/wangsiyuan/go-trustlog/api/logger"
|
||||||
)
|
)
|
||||||
|
|
||||||
const (
|
const (
|
||||||
|
|||||||
@@ -214,3 +214,4 @@ func TestPublisher_Close_MultipleTimes(t *testing.T) {
|
|||||||
err = pub.Close()
|
err = pub.Close()
|
||||||
require.NoError(t, err)
|
require.NoError(t, err)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -193,3 +193,4 @@ func TestPublisher_Publish_SendError(t *testing.T) {
|
|||||||
// May succeed or fail depending on implementation
|
// May succeed or fail depending on implementation
|
||||||
_ = err
|
_ = err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -257,3 +257,4 @@ func TestNewSubscriber_InvalidURL(t *testing.T) {
|
|||||||
require.Error(t, err)
|
require.Error(t, err)
|
||||||
assert.Contains(t, err.Error(), "cannot connect")
|
assert.Contains(t, err.Error(), "cannot connect")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -227,3 +227,4 @@ func TestTCPPublisherSubscriber_Nack(t *testing.T) {
|
|||||||
|
|
||||||
wg.Wait()
|
wg.Wait()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -164,3 +164,4 @@ func TestEncodeDecodeRoundTrip(t *testing.T) {
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -244,3 +244,4 @@ func TestTCPPublisher_Close_Multiple(t *testing.T) {
|
|||||||
err = publisher.Close()
|
err = publisher.Close()
|
||||||
require.NoError(t, err)
|
require.NoError(t, err)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
package grpc
|
package grpc
|
||||||
|
|
||||||
//go:generate protoc --go_out=./pb --go-grpc_out=./pb --go_opt=module=go.yandata.net/iod/iod/go-trustlog/api/grpc/pb --go-grpc_opt=module=go.yandata.net/iod/iod/go-trustlog/api/grpc/pb --proto_path=. ./common.proto ./operation.proto ./record.proto
|
//go:generate protoc --go_out=./pb --go-grpc_out=./pb --go_opt=module=go.yandata.net/wangsiyuan/go-trustlog/api/grpc/pb --go-grpc_opt=module=go.yandata.net/wangsiyuan/go-trustlog/api/grpc/pb --proto_path=. ./common.proto ./operation.proto ./record.proto
|
||||||
// 注意:common.proto 必须首先列出,因为 operation.proto 和 record.proto 都依赖它
|
// 注意:common.proto 必须首先列出,因为 operation.proto 和 record.proto 都依赖它
|
||||||
// 生成的代码将包含 common.pb.go,其中定义了 Proof 类型
|
// 生成的代码将包含 common.pb.go,其中定义了 Proof 类型
|
||||||
|
|||||||
@@ -14,7 +14,7 @@ message OperationData {
|
|||||||
string op_id = 1; // 操作唯一标识符
|
string op_id = 1; // 操作唯一标识符
|
||||||
google.protobuf.Timestamp timestamp = 2;// 操作时间戳
|
google.protobuf.Timestamp timestamp = 2;// 操作时间戳
|
||||||
string op_source = 3; // 操作来源系统
|
string op_source = 3; // 操作来源系统
|
||||||
string op_type = 4; // 操作类型
|
int32 op_code = 4; // 操作代码(int32)
|
||||||
string do_prefix = 5; // 数据前缀标识符
|
string do_prefix = 5; // 数据前缀标识符
|
||||||
string do_repository = 6; // 数据仓库标识符
|
string do_repository = 6; // 数据仓库标识符
|
||||||
string doid = 7; // 数据对象唯一标识
|
string doid = 7; // 数据对象唯一标识
|
||||||
@@ -29,7 +29,7 @@ message OperationData {
|
|||||||
message ValidationReq {
|
message ValidationReq {
|
||||||
google.protobuf.Timestamp time = 1; // 操作时间戳(ISO8601格式)
|
google.protobuf.Timestamp time = 1; // 操作时间戳(ISO8601格式)
|
||||||
string op_id = 2; // 操作唯一标识符
|
string op_id = 2; // 操作唯一标识符
|
||||||
string op_type = 3; // 操作类型
|
int32 op_code = 3; // 操作代码(int32)
|
||||||
string do_repository = 4; // 数据仓库标识
|
string do_repository = 4; // 数据仓库标识
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -51,7 +51,7 @@ message ListOperationReq {
|
|||||||
// 可选条件
|
// 可选条件
|
||||||
google.protobuf.Timestamp timestamp = 3;// 操作时间戳
|
google.protobuf.Timestamp timestamp = 3;// 操作时间戳
|
||||||
string op_source = 4; // 操作来源
|
string op_source = 4; // 操作来源
|
||||||
string op_type = 5; // 操作类型
|
int32 op_code = 5; // 操作代码(int32)
|
||||||
string do_prefix = 6; // 数据前缀
|
string do_prefix = 6; // 数据前缀
|
||||||
string do_repository = 7; // 数据仓库
|
string do_repository = 7; // 数据仓库
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -7,12 +7,13 @@
|
|||||||
package pb
|
package pb
|
||||||
|
|
||||||
import (
|
import (
|
||||||
protoreflect "google.golang.org/protobuf/reflect/protoreflect"
|
|
||||||
protoimpl "google.golang.org/protobuf/runtime/protoimpl"
|
|
||||||
timestamppb "google.golang.org/protobuf/types/known/timestamppb"
|
|
||||||
reflect "reflect"
|
reflect "reflect"
|
||||||
sync "sync"
|
sync "sync"
|
||||||
unsafe "unsafe"
|
unsafe "unsafe"
|
||||||
|
|
||||||
|
protoreflect "google.golang.org/protobuf/reflect/protoreflect"
|
||||||
|
protoimpl "google.golang.org/protobuf/runtime/protoimpl"
|
||||||
|
timestamppb "google.golang.org/protobuf/types/known/timestamppb"
|
||||||
)
|
)
|
||||||
|
|
||||||
const (
|
const (
|
||||||
@@ -29,7 +30,7 @@ type OperationData struct {
|
|||||||
OpId string `protobuf:"bytes,1,opt,name=op_id,json=opId,proto3" json:"op_id,omitempty"` // 操作唯一标识符
|
OpId string `protobuf:"bytes,1,opt,name=op_id,json=opId,proto3" json:"op_id,omitempty"` // 操作唯一标识符
|
||||||
Timestamp *timestamppb.Timestamp `protobuf:"bytes,2,opt,name=timestamp,proto3" json:"timestamp,omitempty"` // 操作时间戳
|
Timestamp *timestamppb.Timestamp `protobuf:"bytes,2,opt,name=timestamp,proto3" json:"timestamp,omitempty"` // 操作时间戳
|
||||||
OpSource string `protobuf:"bytes,3,opt,name=op_source,json=opSource,proto3" json:"op_source,omitempty"` // 操作来源系统
|
OpSource string `protobuf:"bytes,3,opt,name=op_source,json=opSource,proto3" json:"op_source,omitempty"` // 操作来源系统
|
||||||
OpType string `protobuf:"bytes,4,opt,name=op_type,json=opType,proto3" json:"op_type,omitempty"` // 操作类型
|
OpCode int32 `protobuf:"varint,4,opt,name=op_code,json=opCode,proto3" json:"op_code,omitempty"` // 操作代码(int32)
|
||||||
DoPrefix string `protobuf:"bytes,5,opt,name=do_prefix,json=doPrefix,proto3" json:"do_prefix,omitempty"` // 数据前缀标识符
|
DoPrefix string `protobuf:"bytes,5,opt,name=do_prefix,json=doPrefix,proto3" json:"do_prefix,omitempty"` // 数据前缀标识符
|
||||||
DoRepository string `protobuf:"bytes,6,opt,name=do_repository,json=doRepository,proto3" json:"do_repository,omitempty"` // 数据仓库标识符
|
DoRepository string `protobuf:"bytes,6,opt,name=do_repository,json=doRepository,proto3" json:"do_repository,omitempty"` // 数据仓库标识符
|
||||||
Doid string `protobuf:"bytes,7,opt,name=doid,proto3" json:"doid,omitempty"` // 数据对象唯一标识
|
Doid string `protobuf:"bytes,7,opt,name=doid,proto3" json:"doid,omitempty"` // 数据对象唯一标识
|
||||||
@@ -92,11 +93,11 @@ func (x *OperationData) GetOpSource() string {
|
|||||||
return ""
|
return ""
|
||||||
}
|
}
|
||||||
|
|
||||||
func (x *OperationData) GetOpType() string {
|
func (x *OperationData) GetOpCode() int32 {
|
||||||
if x != nil {
|
if x != nil {
|
||||||
return x.OpType
|
return x.OpCode
|
||||||
}
|
}
|
||||||
return ""
|
return 0
|
||||||
}
|
}
|
||||||
|
|
||||||
func (x *OperationData) GetDoPrefix() string {
|
func (x *OperationData) GetDoPrefix() string {
|
||||||
@@ -153,7 +154,7 @@ type ValidationReq struct {
|
|||||||
state protoimpl.MessageState `protogen:"open.v1"`
|
state protoimpl.MessageState `protogen:"open.v1"`
|
||||||
Time *timestamppb.Timestamp `protobuf:"bytes,1,opt,name=time,proto3" json:"time,omitempty"` // 操作时间戳(ISO8601格式)
|
Time *timestamppb.Timestamp `protobuf:"bytes,1,opt,name=time,proto3" json:"time,omitempty"` // 操作时间戳(ISO8601格式)
|
||||||
OpId string `protobuf:"bytes,2,opt,name=op_id,json=opId,proto3" json:"op_id,omitempty"` // 操作唯一标识符
|
OpId string `protobuf:"bytes,2,opt,name=op_id,json=opId,proto3" json:"op_id,omitempty"` // 操作唯一标识符
|
||||||
OpType string `protobuf:"bytes,3,opt,name=op_type,json=opType,proto3" json:"op_type,omitempty"` // 操作类型
|
OpCode int32 `protobuf:"varint,3,opt,name=op_code,json=opCode,proto3" json:"op_code,omitempty"` // 操作代码(int32)
|
||||||
DoRepository string `protobuf:"bytes,4,opt,name=do_repository,json=doRepository,proto3" json:"do_repository,omitempty"` // 数据仓库标识
|
DoRepository string `protobuf:"bytes,4,opt,name=do_repository,json=doRepository,proto3" json:"do_repository,omitempty"` // 数据仓库标识
|
||||||
unknownFields protoimpl.UnknownFields
|
unknownFields protoimpl.UnknownFields
|
||||||
sizeCache protoimpl.SizeCache
|
sizeCache protoimpl.SizeCache
|
||||||
@@ -203,11 +204,11 @@ func (x *ValidationReq) GetOpId() string {
|
|||||||
return ""
|
return ""
|
||||||
}
|
}
|
||||||
|
|
||||||
func (x *ValidationReq) GetOpType() string {
|
func (x *ValidationReq) GetOpCode() int32 {
|
||||||
if x != nil {
|
if x != nil {
|
||||||
return x.OpType
|
return x.OpCode
|
||||||
}
|
}
|
||||||
return ""
|
return 0
|
||||||
}
|
}
|
||||||
|
|
||||||
func (x *ValidationReq) GetDoRepository() string {
|
func (x *ValidationReq) GetDoRepository() string {
|
||||||
@@ -302,7 +303,7 @@ type ListOperationReq struct {
|
|||||||
// 可选条件
|
// 可选条件
|
||||||
Timestamp *timestamppb.Timestamp `protobuf:"bytes,3,opt,name=timestamp,proto3" json:"timestamp,omitempty"` // 操作时间戳
|
Timestamp *timestamppb.Timestamp `protobuf:"bytes,3,opt,name=timestamp,proto3" json:"timestamp,omitempty"` // 操作时间戳
|
||||||
OpSource string `protobuf:"bytes,4,opt,name=op_source,json=opSource,proto3" json:"op_source,omitempty"` // 操作来源
|
OpSource string `protobuf:"bytes,4,opt,name=op_source,json=opSource,proto3" json:"op_source,omitempty"` // 操作来源
|
||||||
OpType string `protobuf:"bytes,5,opt,name=op_type,json=opType,proto3" json:"op_type,omitempty"` // 操作类型
|
OpCode int32 `protobuf:"varint,5,opt,name=op_code,json=opCode,proto3" json:"op_code,omitempty"` // 操作代码(int32)
|
||||||
DoPrefix string `protobuf:"bytes,6,opt,name=do_prefix,json=doPrefix,proto3" json:"do_prefix,omitempty"` // 数据前缀
|
DoPrefix string `protobuf:"bytes,6,opt,name=do_prefix,json=doPrefix,proto3" json:"do_prefix,omitempty"` // 数据前缀
|
||||||
DoRepository string `protobuf:"bytes,7,opt,name=do_repository,json=doRepository,proto3" json:"do_repository,omitempty"` // 数据仓库
|
DoRepository string `protobuf:"bytes,7,opt,name=do_repository,json=doRepository,proto3" json:"do_repository,omitempty"` // 数据仓库
|
||||||
unknownFields protoimpl.UnknownFields
|
unknownFields protoimpl.UnknownFields
|
||||||
@@ -367,11 +368,11 @@ func (x *ListOperationReq) GetOpSource() string {
|
|||||||
return ""
|
return ""
|
||||||
}
|
}
|
||||||
|
|
||||||
func (x *ListOperationReq) GetOpType() string {
|
func (x *ListOperationReq) GetOpCode() int32 {
|
||||||
if x != nil {
|
if x != nil {
|
||||||
return x.OpType
|
return x.OpCode
|
||||||
}
|
}
|
||||||
return ""
|
return 0
|
||||||
}
|
}
|
||||||
|
|
||||||
func (x *ListOperationReq) GetDoPrefix() string {
|
func (x *ListOperationReq) GetDoPrefix() string {
|
||||||
|
|||||||
@@ -6,9 +6,9 @@ import (
|
|||||||
|
|
||||||
"github.com/ThreeDotsLabs/watermill/message"
|
"github.com/ThreeDotsLabs/watermill/message"
|
||||||
|
|
||||||
"go.yandata.net/iod/iod/go-trustlog/api/adapter"
|
"go.yandata.net/wangsiyuan/go-trustlog/api/adapter"
|
||||||
"go.yandata.net/iod/iod/go-trustlog/api/logger"
|
"go.yandata.net/wangsiyuan/go-trustlog/api/logger"
|
||||||
"go.yandata.net/iod/iod/go-trustlog/api/model"
|
"go.yandata.net/wangsiyuan/go-trustlog/api/model"
|
||||||
)
|
)
|
||||||
|
|
||||||
type Client struct {
|
type Client struct {
|
||||||
@@ -43,7 +43,7 @@ func (c *Client) OperationPublish(operation *model.Operation) error {
|
|||||||
|
|
||||||
c.logger.Debug("publishing operation",
|
c.logger.Debug("publishing operation",
|
||||||
"opID", operation.OpID,
|
"opID", operation.OpID,
|
||||||
"opType", operation.OpType,
|
"opType", operation.OpCode,
|
||||||
"doPrefix", operation.DoPrefix,
|
"doPrefix", operation.DoPrefix,
|
||||||
)
|
)
|
||||||
|
|
||||||
@@ -58,7 +58,7 @@ func (c *Client) OperationPublish(operation *model.Operation) error {
|
|||||||
|
|
||||||
c.logger.Info("operation published successfully",
|
c.logger.Info("operation published successfully",
|
||||||
"opID", operation.OpID,
|
"opID", operation.OpID,
|
||||||
"opType", operation.OpType,
|
"opType", operation.OpCode,
|
||||||
)
|
)
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -12,10 +12,10 @@ import (
|
|||||||
"github.com/stretchr/testify/mock"
|
"github.com/stretchr/testify/mock"
|
||||||
"github.com/stretchr/testify/require"
|
"github.com/stretchr/testify/require"
|
||||||
|
|
||||||
"go.yandata.net/iod/iod/go-trustlog/api/adapter"
|
"go.yandata.net/wangsiyuan/go-trustlog/api/adapter"
|
||||||
"go.yandata.net/iod/iod/go-trustlog/api/highclient"
|
"go.yandata.net/wangsiyuan/go-trustlog/api/highclient"
|
||||||
"go.yandata.net/iod/iod/go-trustlog/api/logger"
|
"go.yandata.net/wangsiyuan/go-trustlog/api/logger"
|
||||||
"go.yandata.net/iod/iod/go-trustlog/api/model"
|
"go.yandata.net/wangsiyuan/go-trustlog/api/model"
|
||||||
)
|
)
|
||||||
|
|
||||||
// MockPublisher 模拟 message.Publisher.
|
// MockPublisher 模拟 message.Publisher.
|
||||||
@@ -507,7 +507,7 @@ func createTestOperationWithID(t testing.TB, id string) *model.Operation {
|
|||||||
}
|
}
|
||||||
operation, err := model.NewFullOperation(
|
operation, err := model.NewFullOperation(
|
||||||
model.OpSourceDOIP,
|
model.OpSourceDOIP,
|
||||||
string(model.OpTypeRetrieve),
|
model.OpCodeResolution,
|
||||||
"test-prefix",
|
"test-prefix",
|
||||||
"test-repo",
|
"test-repo",
|
||||||
"test-prefix/test-repo/test-object",
|
"test-prefix/test-repo/test-object",
|
||||||
@@ -534,3 +534,5 @@ func createTestRecord(t testing.TB) *model.Record {
|
|||||||
require.NoError(t, err)
|
require.NoError(t, err)
|
||||||
return record
|
return record
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -9,7 +9,7 @@ import (
|
|||||||
"github.com/stretchr/testify/assert"
|
"github.com/stretchr/testify/assert"
|
||||||
"github.com/stretchr/testify/require"
|
"github.com/stretchr/testify/require"
|
||||||
|
|
||||||
"go.yandata.net/iod/iod/go-trustlog/api/logger"
|
"go.yandata.net/wangsiyuan/go-trustlog/api/logger"
|
||||||
)
|
)
|
||||||
|
|
||||||
func TestNewLogger(t *testing.T) {
|
func TestNewLogger(t *testing.T) {
|
||||||
@@ -253,3 +253,4 @@ func TestGlobalLogger_ConcurrentAccess(t *testing.T) {
|
|||||||
result := logger.GetGlobalLogger()
|
result := logger.GetGlobalLogger()
|
||||||
require.NotNil(t, result)
|
require.NotNil(t, result)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -7,7 +7,7 @@ import (
|
|||||||
_ "github.com/crpt/go-crpt/ed25519" // 注册 Ed25519
|
_ "github.com/crpt/go-crpt/ed25519" // 注册 Ed25519
|
||||||
_ "github.com/crpt/go-crpt/sm2" // 注册 SM2
|
_ "github.com/crpt/go-crpt/sm2" // 注册 SM2
|
||||||
|
|
||||||
"go.yandata.net/iod/iod/go-trustlog/api/logger"
|
"go.yandata.net/wangsiyuan/go-trustlog/api/logger"
|
||||||
)
|
)
|
||||||
|
|
||||||
// ConfigSigner 基于配置的通用签名器
|
// ConfigSigner 基于配置的通用签名器
|
||||||
|
|||||||
@@ -7,7 +7,7 @@ import (
|
|||||||
"github.com/stretchr/testify/assert"
|
"github.com/stretchr/testify/assert"
|
||||||
"github.com/stretchr/testify/require"
|
"github.com/stretchr/testify/require"
|
||||||
|
|
||||||
"go.yandata.net/iod/iod/go-trustlog/api/model"
|
"go.yandata.net/wangsiyuan/go-trustlog/api/model"
|
||||||
)
|
)
|
||||||
|
|
||||||
func TestNewConfigSigner_SM2(t *testing.T) {
|
func TestNewConfigSigner_SM2(t *testing.T) {
|
||||||
@@ -156,3 +156,4 @@ func TestConfigSigner_CompatibleWithSM2Signer(t *testing.T) {
|
|||||||
require.NoError(t, err)
|
require.NoError(t, err)
|
||||||
assert.True(t, ok2, "ConfigSigner should verify SM2Signer's signature")
|
assert.True(t, ok2, "ConfigSigner should verify SM2Signer's signature")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -6,7 +6,7 @@ import (
|
|||||||
|
|
||||||
"google.golang.org/protobuf/types/known/timestamppb"
|
"google.golang.org/protobuf/types/known/timestamppb"
|
||||||
|
|
||||||
"go.yandata.net/iod/iod/go-trustlog/api/grpc/pb"
|
"go.yandata.net/wangsiyuan/go-trustlog/api/grpc/pb"
|
||||||
)
|
)
|
||||||
|
|
||||||
// FromProtobuf 将protobuf的OperationData转换为model.Operation.
|
// FromProtobuf 将protobuf的OperationData转换为model.Operation.
|
||||||
@@ -26,7 +26,7 @@ func FromProtobuf(pbOp *pb.OperationData) (*Operation, error) {
|
|||||||
OpID: pbOp.GetOpId(),
|
OpID: pbOp.GetOpId(),
|
||||||
Timestamp: timestamp,
|
Timestamp: timestamp,
|
||||||
OpSource: Source(pbOp.GetOpSource()),
|
OpSource: Source(pbOp.GetOpSource()),
|
||||||
OpType: pbOp.GetOpType(),
|
OpCode: OpCode(pbOp.GetOpCode()),
|
||||||
DoPrefix: pbOp.GetDoPrefix(),
|
DoPrefix: pbOp.GetDoPrefix(),
|
||||||
DoRepository: pbOp.GetDoRepository(),
|
DoRepository: pbOp.GetDoRepository(),
|
||||||
Doid: pbOp.GetDoid(),
|
Doid: pbOp.GetDoid(),
|
||||||
@@ -59,7 +59,7 @@ func ToProtobuf(op *Operation) (*pb.OperationData, error) {
|
|||||||
OpId: op.OpID,
|
OpId: op.OpID,
|
||||||
Timestamp: timestamp,
|
Timestamp: timestamp,
|
||||||
OpSource: string(op.OpSource),
|
OpSource: string(op.OpSource),
|
||||||
OpType: op.OpType,
|
OpCode: int32(op.OpCode),
|
||||||
DoPrefix: op.DoPrefix,
|
DoPrefix: op.DoPrefix,
|
||||||
DoRepository: op.DoRepository,
|
DoRepository: op.DoRepository,
|
||||||
Doid: op.Doid,
|
Doid: op.Doid,
|
||||||
|
|||||||
@@ -8,8 +8,8 @@ import (
|
|||||||
"github.com/stretchr/testify/require"
|
"github.com/stretchr/testify/require"
|
||||||
"google.golang.org/protobuf/types/known/timestamppb"
|
"google.golang.org/protobuf/types/known/timestamppb"
|
||||||
|
|
||||||
"go.yandata.net/iod/iod/go-trustlog/api/grpc/pb"
|
"go.yandata.net/wangsiyuan/go-trustlog/api/grpc/pb"
|
||||||
"go.yandata.net/iod/iod/go-trustlog/api/model"
|
"go.yandata.net/wangsiyuan/go-trustlog/api/model"
|
||||||
)
|
)
|
||||||
|
|
||||||
func TestFromProtobuf_Nil(t *testing.T) {
|
func TestFromProtobuf_Nil(t *testing.T) {
|
||||||
@@ -39,7 +39,7 @@ func TestFromProtobuf_Basic(t *testing.T) {
|
|||||||
OpId: "op-123",
|
OpId: "op-123",
|
||||||
Timestamp: timestamppb.New(now),
|
Timestamp: timestamppb.New(now),
|
||||||
OpSource: "IRP",
|
OpSource: "IRP",
|
||||||
OpType: "OC_CREATE_HANDLE",
|
OpCode: 100, // CREATE_ID
|
||||||
DoPrefix: "test",
|
DoPrefix: "test",
|
||||||
DoRepository: "repo",
|
DoRepository: "repo",
|
||||||
Doid: "test/repo/123",
|
Doid: "test/repo/123",
|
||||||
@@ -54,7 +54,7 @@ func TestFromProtobuf_Basic(t *testing.T) {
|
|||||||
assert.Equal(t, "op-123", result.OpID)
|
assert.Equal(t, "op-123", result.OpID)
|
||||||
assert.Equal(t, now.Unix(), result.Timestamp.Unix())
|
assert.Equal(t, now.Unix(), result.Timestamp.Unix())
|
||||||
assert.Equal(t, model.Source("IRP"), result.OpSource)
|
assert.Equal(t, model.Source("IRP"), result.OpSource)
|
||||||
assert.Equal(t, "OC_CREATE_HANDLE", result.OpType)
|
assert.Equal(t, model.OpCode(100), result.OpCode)
|
||||||
assert.Equal(t, "test", result.DoPrefix)
|
assert.Equal(t, "test", result.DoPrefix)
|
||||||
assert.Equal(t, "repo", result.DoRepository)
|
assert.Equal(t, "repo", result.DoRepository)
|
||||||
assert.Equal(t, "test/repo/123", result.Doid)
|
assert.Equal(t, "test/repo/123", result.Doid)
|
||||||
@@ -70,7 +70,7 @@ func TestFromProtobuf_WithHashes(t *testing.T) {
|
|||||||
OpId: "op-123",
|
OpId: "op-123",
|
||||||
Timestamp: timestamppb.New(now),
|
Timestamp: timestamppb.New(now),
|
||||||
OpSource: "DOIP",
|
OpSource: "DOIP",
|
||||||
OpType: "Create",
|
OpCode: 100, // CREATE_ID
|
||||||
DoPrefix: "test",
|
DoPrefix: "test",
|
||||||
DoRepository: "repo",
|
DoRepository: "repo",
|
||||||
Doid: "test/repo/123",
|
Doid: "test/repo/123",
|
||||||
@@ -98,7 +98,7 @@ func TestFromProtobuf_EmptyHashes(t *testing.T) {
|
|||||||
OpId: "op-123",
|
OpId: "op-123",
|
||||||
Timestamp: timestamppb.New(now),
|
Timestamp: timestamppb.New(now),
|
||||||
OpSource: "DOIP",
|
OpSource: "DOIP",
|
||||||
OpType: "Create",
|
OpCode: int32(model.OpCodeCreateID),
|
||||||
DoPrefix: "test",
|
DoPrefix: "test",
|
||||||
DoRepository: "repo",
|
DoRepository: "repo",
|
||||||
Doid: "test/repo/123",
|
Doid: "test/repo/123",
|
||||||
@@ -133,7 +133,7 @@ func TestToProtobuf_Basic(t *testing.T) {
|
|||||||
OpID: "op-123",
|
OpID: "op-123",
|
||||||
Timestamp: now,
|
Timestamp: now,
|
||||||
OpSource: model.OpSourceIRP,
|
OpSource: model.OpSourceIRP,
|
||||||
OpType: string(model.OpTypeOCCreateHandle),
|
OpCode: model.OpCodeCreateID,
|
||||||
DoPrefix: "test",
|
DoPrefix: "test",
|
||||||
DoRepository: "repo",
|
DoRepository: "repo",
|
||||||
Doid: "test/repo/123",
|
Doid: "test/repo/123",
|
||||||
@@ -148,7 +148,7 @@ func TestToProtobuf_Basic(t *testing.T) {
|
|||||||
assert.Equal(t, "op-123", result.GetOpId())
|
assert.Equal(t, "op-123", result.GetOpId())
|
||||||
assert.Equal(t, now.Unix(), result.GetTimestamp().AsTime().Unix())
|
assert.Equal(t, now.Unix(), result.GetTimestamp().AsTime().Unix())
|
||||||
assert.Equal(t, "IRP", result.GetOpSource())
|
assert.Equal(t, "IRP", result.GetOpSource())
|
||||||
assert.Equal(t, "OC_CREATE_HANDLE", result.GetOpType())
|
assert.Equal(t, int32(100), result.GetOpCode())
|
||||||
assert.Equal(t, "test", result.GetDoPrefix())
|
assert.Equal(t, "test", result.GetDoPrefix())
|
||||||
assert.Equal(t, "repo", result.GetDoRepository())
|
assert.Equal(t, "repo", result.GetDoRepository())
|
||||||
assert.Equal(t, "test/repo/123", result.GetDoid())
|
assert.Equal(t, "test/repo/123", result.GetDoid())
|
||||||
@@ -166,7 +166,7 @@ func TestToProtobuf_WithHashes(t *testing.T) {
|
|||||||
OpID: "op-123",
|
OpID: "op-123",
|
||||||
Timestamp: now,
|
Timestamp: now,
|
||||||
OpSource: model.OpSourceDOIP,
|
OpSource: model.OpSourceDOIP,
|
||||||
OpType: string(model.OpTypeCreate),
|
OpCode: model.OpCodeCreateID,
|
||||||
DoPrefix: "test",
|
DoPrefix: "test",
|
||||||
DoRepository: "repo",
|
DoRepository: "repo",
|
||||||
Doid: "test/repo/123",
|
Doid: "test/repo/123",
|
||||||
@@ -192,7 +192,7 @@ func TestToProtobuf_WithoutHashes(t *testing.T) {
|
|||||||
OpID: "op-123",
|
OpID: "op-123",
|
||||||
Timestamp: now,
|
Timestamp: now,
|
||||||
OpSource: model.OpSourceDOIP,
|
OpSource: model.OpSourceDOIP,
|
||||||
OpType: string(model.OpTypeCreate),
|
OpCode: model.OpCodeCreateID,
|
||||||
DoPrefix: "test",
|
DoPrefix: "test",
|
||||||
DoRepository: "repo",
|
DoRepository: "repo",
|
||||||
Doid: "test/repo/123",
|
Doid: "test/repo/123",
|
||||||
@@ -274,7 +274,7 @@ func TestFromProtobufValidationResult_WithData(t *testing.T) {
|
|||||||
OpId: "op-123",
|
OpId: "op-123",
|
||||||
Timestamp: timestamppb.New(now),
|
Timestamp: timestamppb.New(now),
|
||||||
OpSource: "IRP",
|
OpSource: "IRP",
|
||||||
OpType: "OC_CREATE_HANDLE",
|
OpCode: int32(model.OpCodeCreateID),
|
||||||
DoPrefix: "test",
|
DoPrefix: "test",
|
||||||
DoRepository: "repo",
|
DoRepository: "repo",
|
||||||
Doid: "test/repo/123",
|
Doid: "test/repo/123",
|
||||||
@@ -511,7 +511,7 @@ func TestRoundTrip_Operation(t *testing.T) {
|
|||||||
OpID: "op-123",
|
OpID: "op-123",
|
||||||
Timestamp: now,
|
Timestamp: now,
|
||||||
OpSource: model.OpSourceIRP,
|
OpSource: model.OpSourceIRP,
|
||||||
OpType: string(model.OpTypeOCCreateHandle),
|
OpCode: model.OpCodeCreateID,
|
||||||
DoPrefix: "test",
|
DoPrefix: "test",
|
||||||
DoRepository: "repo",
|
DoRepository: "repo",
|
||||||
Doid: "test/repo/123",
|
Doid: "test/repo/123",
|
||||||
@@ -532,7 +532,7 @@ func TestRoundTrip_Operation(t *testing.T) {
|
|||||||
// Verify round trip
|
// Verify round trip
|
||||||
assert.Equal(t, original.OpID, result.OpID)
|
assert.Equal(t, original.OpID, result.OpID)
|
||||||
assert.Equal(t, original.OpSource, result.OpSource)
|
assert.Equal(t, original.OpSource, result.OpSource)
|
||||||
assert.Equal(t, original.OpType, result.OpType)
|
assert.Equal(t, original.OpCode, result.OpCode)
|
||||||
assert.Equal(t, original.DoPrefix, result.DoPrefix)
|
assert.Equal(t, original.DoPrefix, result.DoPrefix)
|
||||||
assert.Equal(t, original.DoRepository, result.DoRepository)
|
assert.Equal(t, original.DoRepository, result.DoRepository)
|
||||||
assert.Equal(t, original.Doid, result.Doid)
|
assert.Equal(t, original.Doid, result.Doid)
|
||||||
@@ -573,3 +573,4 @@ func TestRoundTrip_Record(t *testing.T) {
|
|||||||
assert.Equal(t, original.Extra, result.Extra)
|
assert.Equal(t, original.Extra, result.Extra)
|
||||||
assert.Equal(t, original.RCType, result.RCType)
|
assert.Equal(t, original.RCType, result.RCType)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -11,7 +11,7 @@ import (
|
|||||||
_ "github.com/crpt/go-crpt/ed25519" // Import Ed25519
|
_ "github.com/crpt/go-crpt/ed25519" // Import Ed25519
|
||||||
_ "github.com/crpt/go-crpt/sm2" // Import SM2
|
_ "github.com/crpt/go-crpt/sm2" // Import SM2
|
||||||
|
|
||||||
"go.yandata.net/iod/iod/go-trustlog/api/logger"
|
"go.yandata.net/wangsiyuan/go-trustlog/api/logger"
|
||||||
)
|
)
|
||||||
|
|
||||||
// SignatureAlgorithm 定义支持的签名算法类型.
|
// SignatureAlgorithm 定义支持的签名算法类型.
|
||||||
|
|||||||
@@ -6,7 +6,7 @@ import (
|
|||||||
"github.com/stretchr/testify/assert"
|
"github.com/stretchr/testify/assert"
|
||||||
"github.com/stretchr/testify/require"
|
"github.com/stretchr/testify/require"
|
||||||
|
|
||||||
"go.yandata.net/iod/iod/go-trustlog/api/model"
|
"go.yandata.net/wangsiyuan/go-trustlog/api/model"
|
||||||
)
|
)
|
||||||
|
|
||||||
func TestCryptoConfig_Validate(t *testing.T) {
|
func TestCryptoConfig_Validate(t *testing.T) {
|
||||||
@@ -249,3 +249,4 @@ func TestSignWithConfig_And_VerifyWithConfig(t *testing.T) {
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -5,8 +5,8 @@ import (
|
|||||||
"errors"
|
"errors"
|
||||||
"fmt"
|
"fmt"
|
||||||
|
|
||||||
"go.yandata.net/iod/iod/go-trustlog/api/logger"
|
"go.yandata.net/wangsiyuan/go-trustlog/api/logger"
|
||||||
"go.yandata.net/iod/iod/go-trustlog/internal/helpers"
|
"go.yandata.net/wangsiyuan/go-trustlog/internal/helpers"
|
||||||
)
|
)
|
||||||
|
|
||||||
// Envelope 包装序列化后的数据,包含元信息和报文体。
|
// Envelope 包装序列化后的数据,包含元信息和报文体。
|
||||||
|
|||||||
@@ -7,7 +7,7 @@ import (
|
|||||||
"github.com/stretchr/testify/assert"
|
"github.com/stretchr/testify/assert"
|
||||||
"github.com/stretchr/testify/require"
|
"github.com/stretchr/testify/require"
|
||||||
|
|
||||||
"go.yandata.net/iod/iod/go-trustlog/api/model"
|
"go.yandata.net/wangsiyuan/go-trustlog/api/model"
|
||||||
)
|
)
|
||||||
|
|
||||||
// TestSignVerifyDataConsistency 详细测试加签和验签的数据一致性.
|
// TestSignVerifyDataConsistency 详细测试加签和验签的数据一致性.
|
||||||
@@ -93,7 +93,7 @@ func TestEnvelopeBodyTampering(t *testing.T) {
|
|||||||
OpID: "op-test-002",
|
OpID: "op-test-002",
|
||||||
Timestamp: time.Now(),
|
Timestamp: time.Now(),
|
||||||
OpSource: model.OpSourceIRP,
|
OpSource: model.OpSourceIRP,
|
||||||
OpType: string(model.OpTypeOCCreateHandle),
|
OpCode: model.OpCodeCreateID,
|
||||||
DoPrefix: "test",
|
DoPrefix: "test",
|
||||||
DoRepository: "repo",
|
DoRepository: "repo",
|
||||||
Doid: "test/repo/456",
|
Doid: "test/repo/456",
|
||||||
@@ -168,7 +168,7 @@ func TestEnvelopeSignatureTampering(t *testing.T) {
|
|||||||
OpID: "op-test-003",
|
OpID: "op-test-003",
|
||||||
Timestamp: time.Now(),
|
Timestamp: time.Now(),
|
||||||
OpSource: model.OpSourceIRP,
|
OpSource: model.OpSourceIRP,
|
||||||
OpType: string(model.OpTypeOCCreateHandle),
|
OpCode: model.OpCodeCreateID,
|
||||||
DoPrefix: "test",
|
DoPrefix: "test",
|
||||||
DoRepository: "repo",
|
DoRepository: "repo",
|
||||||
Doid: "test/repo/789",
|
Doid: "test/repo/789",
|
||||||
@@ -213,3 +213,4 @@ func TestEnvelopeSignatureTampering(t *testing.T) {
|
|||||||
|
|
||||||
t.Logf("测试完成:修改signature后验签正确失败")
|
t.Logf("测试完成:修改signature后验签正确失败")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -7,7 +7,7 @@ import (
|
|||||||
"github.com/stretchr/testify/assert"
|
"github.com/stretchr/testify/assert"
|
||||||
"github.com/stretchr/testify/require"
|
"github.com/stretchr/testify/require"
|
||||||
|
|
||||||
"go.yandata.net/iod/iod/go-trustlog/api/model"
|
"go.yandata.net/wangsiyuan/go-trustlog/api/model"
|
||||||
)
|
)
|
||||||
|
|
||||||
// TestSignVerifyConsistency 测试加签和验签的一致性
|
// TestSignVerifyConsistency 测试加签和验签的一致性
|
||||||
@@ -35,7 +35,7 @@ func TestSignVerifyConsistency(t *testing.T) {
|
|||||||
OpID: "op-test-001",
|
OpID: "op-test-001",
|
||||||
Timestamp: time.Now(),
|
Timestamp: time.Now(),
|
||||||
OpSource: model.OpSourceIRP,
|
OpSource: model.OpSourceIRP,
|
||||||
OpType: string(model.OpTypeOCCreateHandle),
|
OpCode: model.OpCodeCreateID,
|
||||||
DoPrefix: "test",
|
DoPrefix: "test",
|
||||||
DoRepository: "repo",
|
DoRepository: "repo",
|
||||||
Doid: "test/repo/123",
|
Doid: "test/repo/123",
|
||||||
@@ -124,3 +124,4 @@ func TestSignVerifyDirectData(t *testing.T) {
|
|||||||
assert.Contains(t, err.Error(), "signature verification failed")
|
assert.Contains(t, err.Error(), "signature verification failed")
|
||||||
assert.False(t, valid)
|
assert.False(t, valid)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -7,7 +7,7 @@ import (
|
|||||||
"github.com/stretchr/testify/assert"
|
"github.com/stretchr/testify/assert"
|
||||||
"github.com/stretchr/testify/require"
|
"github.com/stretchr/testify/require"
|
||||||
|
|
||||||
"go.yandata.net/iod/iod/go-trustlog/api/model"
|
"go.yandata.net/wangsiyuan/go-trustlog/api/model"
|
||||||
)
|
)
|
||||||
|
|
||||||
func TestNewEnvelopeConfig(t *testing.T) {
|
func TestNewEnvelopeConfig(t *testing.T) {
|
||||||
@@ -196,7 +196,7 @@ func TestMarshalTrustlog_Basic(t *testing.T) {
|
|||||||
OpID: "op-123",
|
OpID: "op-123",
|
||||||
Timestamp: time.Now(),
|
Timestamp: time.Now(),
|
||||||
OpSource: model.OpSourceIRP,
|
OpSource: model.OpSourceIRP,
|
||||||
OpType: string(model.OpTypeOCCreateHandle),
|
OpCode: model.OpCodeCreateID,
|
||||||
DoPrefix: "test",
|
DoPrefix: "test",
|
||||||
DoRepository: "repo",
|
DoRepository: "repo",
|
||||||
Doid: "test/repo/123",
|
Doid: "test/repo/123",
|
||||||
@@ -229,7 +229,7 @@ func TestMarshalOperation(t *testing.T) {
|
|||||||
OpID: "op-123",
|
OpID: "op-123",
|
||||||
Timestamp: time.Now(),
|
Timestamp: time.Now(),
|
||||||
OpSource: model.OpSourceIRP,
|
OpSource: model.OpSourceIRP,
|
||||||
OpType: string(model.OpTypeOCCreateHandle),
|
OpCode: model.OpCodeCreateID,
|
||||||
DoPrefix: "test",
|
DoPrefix: "test",
|
||||||
DoRepository: "repo",
|
DoRepository: "repo",
|
||||||
Doid: "test/repo/123",
|
Doid: "test/repo/123",
|
||||||
@@ -253,7 +253,7 @@ func TestUnmarshalOperation(t *testing.T) {
|
|||||||
OpID: "op-123",
|
OpID: "op-123",
|
||||||
Timestamp: time.Now(),
|
Timestamp: time.Now(),
|
||||||
OpSource: model.OpSourceIRP,
|
OpSource: model.OpSourceIRP,
|
||||||
OpType: string(model.OpTypeOCCreateHandle),
|
OpCode: model.OpCodeCreateID,
|
||||||
DoPrefix: "test",
|
DoPrefix: "test",
|
||||||
DoRepository: "repo",
|
DoRepository: "repo",
|
||||||
Doid: "test/repo/123",
|
Doid: "test/repo/123",
|
||||||
@@ -421,3 +421,4 @@ func TestVerifyEnvelope_NilSigner(t *testing.T) {
|
|||||||
assert.Nil(t, verifiedEnv)
|
assert.Nil(t, verifiedEnv)
|
||||||
assert.Contains(t, err.Error(), "signer is required")
|
assert.Contains(t, err.Error(), "signer is required")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -10,7 +10,7 @@ import (
|
|||||||
"github.com/stretchr/testify/assert"
|
"github.com/stretchr/testify/assert"
|
||||||
"github.com/stretchr/testify/require"
|
"github.com/stretchr/testify/require"
|
||||||
|
|
||||||
"go.yandata.net/iod/iod/go-trustlog/api/model"
|
"go.yandata.net/wangsiyuan/go-trustlog/api/model"
|
||||||
)
|
)
|
||||||
|
|
||||||
func TestGetHashTool(t *testing.T) {
|
func TestGetHashTool(t *testing.T) {
|
||||||
@@ -543,3 +543,4 @@ func (m *mockHashData) Hash() string {
|
|||||||
func (m *mockHashData) Type() model.HashType {
|
func (m *mockHashData) Type() model.HashType {
|
||||||
return m.hashType
|
return m.hashType
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -7,8 +7,8 @@ import (
|
|||||||
"strings"
|
"strings"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
"go.yandata.net/iod/iod/go-trustlog/api/logger"
|
"go.yandata.net/wangsiyuan/go-trustlog/api/logger"
|
||||||
"go.yandata.net/iod/iod/go-trustlog/internal/helpers"
|
"go.yandata.net/wangsiyuan/go-trustlog/internal/helpers"
|
||||||
)
|
)
|
||||||
|
|
||||||
//
|
//
|
||||||
@@ -24,98 +24,108 @@ const (
|
|||||||
)
|
)
|
||||||
|
|
||||||
//
|
//
|
||||||
// ===== 操作类型枚举 =====
|
// ===== 操作代码枚举 (OpCode) =====
|
||||||
//
|
//
|
||||||
|
|
||||||
// Type 表示操作的具体类型。
|
// OpCode 表示操作的具体代码(int32类型)
|
||||||
type Type string
|
type OpCode int32
|
||||||
|
|
||||||
// DOIP 操作类型枚举。
|
// 标准 Handle System 操作代码
|
||||||
const (
|
const (
|
||||||
OpTypeHello Type = "Hello"
|
OpCodeReserved OpCode = 0 // Reserved
|
||||||
OpTypeRetrieve Type = "Retrieve"
|
OpCodeResolution OpCode = 1 // Identifier query
|
||||||
OpTypeCreate Type = "Create"
|
OpCodeGetSiteInfo OpCode = 2 // Get HS_SITE element
|
||||||
OpTypeDelete Type = "Delete"
|
|
||||||
OpTypeUpdate Type = "Update"
|
OpCodeCreateID OpCode = 100 // Create new identifier
|
||||||
OpTypeSearch Type = "Search"
|
OpCodeDeleteID OpCode = 101 // Delete existing identifier
|
||||||
OpTypeListOperations Type = "ListOperations"
|
OpCodeAddElement OpCode = 102 // Add element(s)
|
||||||
|
OpCodeRemoveElement OpCode = 103 // Remove element(s)
|
||||||
|
OpCodeModifyElement OpCode = 104 // Modify element(s)
|
||||||
|
OpCodeListIDs OpCode = 105 // List identifiers
|
||||||
|
OpCodeListDerivedPrefixes OpCode = 106 // List derived prefixes
|
||||||
|
|
||||||
|
OpCodeChallengeResponse OpCode = 200 // Response to challenge
|
||||||
|
OpCodeVerifyResponse OpCode = 201 // Verify challenge response
|
||||||
|
|
||||||
|
OpCodeHomePrefix OpCode = 300 // Home prefix
|
||||||
|
OpCodeUnhomePrefix OpCode = 301 // Unhome prefix
|
||||||
|
OpCodeListHomedPrefixes OpCode = 302 // List homed prefixes
|
||||||
|
|
||||||
|
OpCodeSessionSetup OpCode = 400 // Session setup request
|
||||||
|
OpCodeSessionTerminate OpCode = 401 // Session termination request
|
||||||
|
|
||||||
|
// Yandata 扩展操作代码
|
||||||
|
OpCodeQueryIDs OpCode = 500 // Query DOIDs
|
||||||
|
OpCodeRenameID OpCode = 501 // Rename DOID
|
||||||
|
OpCodeResolveAltID OpCode = 502 // Resolve by alternative ID
|
||||||
|
OpCodeRegisterAltID OpCode = 503 // Register alternative ID
|
||||||
)
|
)
|
||||||
|
|
||||||
// IRP 操作类型枚举。
|
// OpCodeName 返回操作代码的名称
|
||||||
const (
|
func (c OpCode) String() string {
|
||||||
OpTypeOCReserved Type = "OC_RESERVED"
|
switch c {
|
||||||
OpTypeOCResolution Type = "OC_RESOLUTION"
|
case OpCodeReserved:
|
||||||
OpTypeOCGetSiteInfo Type = "OC_GET_SITEINFO"
|
return "RESERVED"
|
||||||
OpTypeOCCreateHandle Type = "OC_CREATE_HANDLE"
|
case OpCodeResolution:
|
||||||
OpTypeOCDeleteHandle Type = "OC_DELETE_HANDLE"
|
return "RESOLUTION"
|
||||||
OpTypeOCAddValue Type = "OC_ADD_VALUE"
|
case OpCodeGetSiteInfo:
|
||||||
OpTypeOCRemoveValue Type = "OC_REMOVE_VALUE"
|
return "GET_SITEINFO"
|
||||||
OpTypeOCModifyValue Type = "OC_MODIFY_VALUE"
|
case OpCodeCreateID:
|
||||||
OpTypeOCListHandle Type = "OC_LIST_HANDLE"
|
return "CREATE_ID"
|
||||||
OpTypeOCListNA Type = "OC_LIST_NA"
|
case OpCodeDeleteID:
|
||||||
OpTypeOCResolutionDOID Type = "OC_RESOLUTION_DOID"
|
return "DELETE_ID"
|
||||||
OpTypeOCCreateDOID Type = "OC_CREATE_DOID"
|
case OpCodeAddElement:
|
||||||
OpTypeOCDeleteDOID Type = "OC_DELETE_DOID"
|
return "ADD_ELEMENT"
|
||||||
OpTypeOCUpdateDOID Type = "OC_UPDATE_DOID"
|
case OpCodeRemoveElement:
|
||||||
OpTypeOCBatchCreateDOID Type = "OC_BATCH_CREATE_DOID"
|
return "REMOVE_ELEMENT"
|
||||||
OpTypeOCResolutionDOIDRecursive Type = "OC_RESOLUTION_DOID_RECURSIVE"
|
case OpCodeModifyElement:
|
||||||
OpTypeOCGetUsers Type = "OC_GET_USERS"
|
return "MODIFY_ELEMENT"
|
||||||
OpTypeOCGetRepos Type = "OC_GET_REPOS"
|
case OpCodeListIDs:
|
||||||
OpTypeOCVerifyIRS Type = "OC_VERIFY_IRS"
|
return "LIST_IDS"
|
||||||
OpTypeOCResolveGRS Type = "OC_RESOLVE_GRS"
|
case OpCodeListDerivedPrefixes:
|
||||||
OpTypeOCCreateOrgGRS Type = "OC_CREATE_ORG_GRS"
|
return "LIST_DERIVED_PREFIXES"
|
||||||
OpTypeOCUpdateOrgGRS Type = "OC_UPDATE_ORG_GRS"
|
case OpCodeChallengeResponse:
|
||||||
OpTypeOCDeleteOrgGRS Type = "OC_DELETE_ORG_GRS"
|
return "CHALLENGE_RESPONSE"
|
||||||
OpTypeOCSyncOrgIRSParent Type = "OC_SYNC_ORG_IRS_PARENT"
|
case OpCodeVerifyResponse:
|
||||||
OpTypeOCUpdateOrgIRSParent Type = "OC_UPDATE_ORG_IRS_PARENT"
|
return "VERIFY_RESPONSE"
|
||||||
OpTypeOCDeleteOrgIRSParent Type = "OC_DELETE_ORG_IRS_PARENT"
|
case OpCodeHomePrefix:
|
||||||
OpTypeOCChallengeResponse Type = "OC_CHALLENGE_RESPONSE"
|
return "HOME_PREFIX"
|
||||||
OpTypeOCVerifyChallenge Type = "OC_VERIFY_CHALLENGE"
|
case OpCodeUnhomePrefix:
|
||||||
OpTypeOCSessionSetup Type = "OC_SESSION_SETUP"
|
return "UNHOME_PREFIX"
|
||||||
OpTypeOCSessionTerminate Type = "OC_SESSION_TERMINATE"
|
case OpCodeListHomedPrefixes:
|
||||||
OpTypeOCSessionExchangeKey Type = "OC_SESSION_EXCHANGEKEY"
|
return "LIST_HOMED_PREFIXES"
|
||||||
OpTypeOCVerifyRouter Type = "OC_VERIFY_ROUTER"
|
case OpCodeSessionSetup:
|
||||||
OpTypeOCQueryRouter Type = "OC_QUERY_ROUTER"
|
return "SESSION_SETUP"
|
||||||
)
|
case OpCodeSessionTerminate:
|
||||||
|
return "SESSION_TERMINATE"
|
||||||
//
|
case OpCodeQueryIDs:
|
||||||
// ===== 操作类型检索工具 =====
|
return "QUERY_IDS"
|
||||||
//
|
case OpCodeRenameID:
|
||||||
|
return "RENAME_ID"
|
||||||
// allOpTypes 存储不同来源的操作类型列表,用于快速查找和验证。
|
case OpCodeResolveAltID:
|
||||||
//
|
return "RESOLVE_ALT_ID"
|
||||||
//nolint:gochecknoglobals // 全局常量映射用于操作类型查找
|
case OpCodeRegisterAltID:
|
||||||
var allOpTypes = map[Source][]Type{
|
return "REGISTER_ALT_ID"
|
||||||
OpSourceDOIP: {
|
default:
|
||||||
OpTypeHello, OpTypeRetrieve, OpTypeCreate,
|
return fmt.Sprintf("UNKNOWN(%d)", c)
|
||||||
OpTypeDelete, OpTypeUpdate, OpTypeSearch,
|
}
|
||||||
OpTypeListOperations,
|
|
||||||
},
|
|
||||||
OpSourceIRP: {
|
|
||||||
OpTypeOCReserved, OpTypeOCResolution, OpTypeOCGetSiteInfo,
|
|
||||||
OpTypeOCCreateHandle, OpTypeOCDeleteHandle, OpTypeOCAddValue,
|
|
||||||
OpTypeOCRemoveValue, OpTypeOCModifyValue, OpTypeOCListHandle,
|
|
||||||
OpTypeOCListNA, OpTypeOCResolutionDOID, OpTypeOCCreateDOID,
|
|
||||||
OpTypeOCDeleteDOID, OpTypeOCUpdateDOID, OpTypeOCBatchCreateDOID,
|
|
||||||
OpTypeOCResolutionDOIDRecursive, OpTypeOCGetUsers, OpTypeOCGetRepos,
|
|
||||||
OpTypeOCVerifyIRS, OpTypeOCResolveGRS, OpTypeOCCreateOrgGRS,
|
|
||||||
OpTypeOCUpdateOrgGRS, OpTypeOCDeleteOrgGRS, OpTypeOCSyncOrgIRSParent,
|
|
||||||
OpTypeOCUpdateOrgIRSParent, OpTypeOCDeleteOrgIRSParent,
|
|
||||||
OpTypeOCChallengeResponse, OpTypeOCVerifyChallenge,
|
|
||||||
OpTypeOCSessionSetup, OpTypeOCSessionTerminate,
|
|
||||||
OpTypeOCSessionExchangeKey, OpTypeOCVerifyRouter, OpTypeOCQueryRouter,
|
|
||||||
},
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// GetOpTypesBySource 返回指定来源的可用操作类型列表。
|
// IsValid 检查操作代码是否有效
|
||||||
func GetOpTypesBySource(source Source) []Type {
|
func (c OpCode) IsValid() bool {
|
||||||
return allOpTypes[source]
|
validCodes := []OpCode{
|
||||||
|
OpCodeReserved, OpCodeResolution, OpCodeGetSiteInfo,
|
||||||
|
OpCodeCreateID, OpCodeDeleteID, OpCodeAddElement,
|
||||||
|
OpCodeRemoveElement, OpCodeModifyElement, OpCodeListIDs,
|
||||||
|
OpCodeListDerivedPrefixes,
|
||||||
|
OpCodeChallengeResponse, OpCodeVerifyResponse,
|
||||||
|
OpCodeHomePrefix, OpCodeUnhomePrefix, OpCodeListHomedPrefixes,
|
||||||
|
OpCodeSessionSetup, OpCodeSessionTerminate,
|
||||||
|
OpCodeQueryIDs, OpCodeRenameID, OpCodeResolveAltID, OpCodeRegisterAltID,
|
||||||
}
|
}
|
||||||
|
|
||||||
// IsValidOpType 判断指定操作类型在给定来源下是否合法。
|
for _, valid := range validCodes {
|
||||||
func IsValidOpType(source Source, opType string) bool {
|
if c == valid {
|
||||||
for _, t := range GetOpTypesBySource(source) {
|
|
||||||
if string(t) == opType {
|
|
||||||
return true
|
return true
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -132,7 +142,7 @@ type Operation struct {
|
|||||||
OpID string `json:"opId" validate:"max=32"`
|
OpID string `json:"opId" validate:"max=32"`
|
||||||
Timestamp time.Time `json:"timestamp" validate:"required"`
|
Timestamp time.Time `json:"timestamp" validate:"required"`
|
||||||
OpSource Source `json:"opSource" validate:"required,oneof=IRP DOIP"`
|
OpSource Source `json:"opSource" validate:"required,oneof=IRP DOIP"`
|
||||||
OpType string `json:"opType" validate:"required"`
|
OpCode OpCode `json:"opCode" validate:"required"`
|
||||||
DoPrefix string `json:"doPrefix" validate:"required,max=512"`
|
DoPrefix string `json:"doPrefix" validate:"required,max=512"`
|
||||||
DoRepository string `json:"doRepository" validate:"required,max=512"`
|
DoRepository string `json:"doRepository" validate:"required,max=512"`
|
||||||
Doid string `json:"doid" validate:"required,max=512"`
|
Doid string `json:"doid" validate:"required,max=512"`
|
||||||
@@ -157,7 +167,7 @@ type Operation struct {
|
|||||||
// 自动完成哈希计算和字段校验,确保创建的 Operation 是完整且有效的。
|
// 自动完成哈希计算和字段校验,确保创建的 Operation 是完整且有效的。
|
||||||
func NewFullOperation(
|
func NewFullOperation(
|
||||||
opSource Source,
|
opSource Source,
|
||||||
opType string,
|
opCode OpCode,
|
||||||
doPrefix, doRepository, doid string,
|
doPrefix, doRepository, doid string,
|
||||||
producerID string,
|
producerID string,
|
||||||
opActor string,
|
opActor string,
|
||||||
@@ -167,7 +177,7 @@ func NewFullOperation(
|
|||||||
log := logger.GetGlobalLogger()
|
log := logger.GetGlobalLogger()
|
||||||
log.Debug("Creating new full operation",
|
log.Debug("Creating new full operation",
|
||||||
"opSource", opSource,
|
"opSource", opSource,
|
||||||
"opType", opType,
|
"opCode", opCode,
|
||||||
"doPrefix", doPrefix,
|
"doPrefix", doPrefix,
|
||||||
"doRepository", doRepository,
|
"doRepository", doRepository,
|
||||||
"doid", doid,
|
"doid", doid,
|
||||||
@@ -177,7 +187,7 @@ func NewFullOperation(
|
|||||||
op := &Operation{
|
op := &Operation{
|
||||||
Timestamp: timestamp,
|
Timestamp: timestamp,
|
||||||
OpSource: opSource,
|
OpSource: opSource,
|
||||||
OpType: opType,
|
OpCode: opCode,
|
||||||
DoPrefix: doPrefix,
|
DoPrefix: doPrefix,
|
||||||
DoRepository: doRepository,
|
DoRepository: doRepository,
|
||||||
Doid: doid,
|
Doid: doid,
|
||||||
@@ -289,7 +299,7 @@ type operationData struct {
|
|||||||
OpID *string `cbor:"opId"`
|
OpID *string `cbor:"opId"`
|
||||||
Timestamp *time.Time `cbor:"timestamp"`
|
Timestamp *time.Time `cbor:"timestamp"`
|
||||||
OpSource *Source `cbor:"opSource"`
|
OpSource *Source `cbor:"opSource"`
|
||||||
OpType *string `cbor:"opType"`
|
OpCode *OpCode `cbor:"opCode"`
|
||||||
DoPrefix *string `cbor:"doPrefix"`
|
DoPrefix *string `cbor:"doPrefix"`
|
||||||
DoRepository *string `cbor:"doRepository"`
|
DoRepository *string `cbor:"doRepository"`
|
||||||
Doid *string `cbor:"doid"`
|
Doid *string `cbor:"doid"`
|
||||||
@@ -305,7 +315,7 @@ func (o *Operation) toOperationData() *operationData {
|
|||||||
OpID: &o.OpID,
|
OpID: &o.OpID,
|
||||||
Timestamp: &o.Timestamp,
|
Timestamp: &o.Timestamp,
|
||||||
OpSource: &o.OpSource,
|
OpSource: &o.OpSource,
|
||||||
OpType: &o.OpType,
|
OpCode: &o.OpCode,
|
||||||
DoPrefix: &o.DoPrefix,
|
DoPrefix: &o.DoPrefix,
|
||||||
DoRepository: &o.DoRepository,
|
DoRepository: &o.DoRepository,
|
||||||
Doid: &o.Doid,
|
Doid: &o.Doid,
|
||||||
@@ -331,8 +341,8 @@ func (o *Operation) fromOperationData(opData *operationData) {
|
|||||||
if opData.OpSource != nil {
|
if opData.OpSource != nil {
|
||||||
o.OpSource = *opData.OpSource
|
o.OpSource = *opData.OpSource
|
||||||
}
|
}
|
||||||
if opData.OpType != nil {
|
if opData.OpCode != nil {
|
||||||
o.OpType = *opData.OpType
|
o.OpCode = *opData.OpCode
|
||||||
}
|
}
|
||||||
if opData.DoPrefix != nil {
|
if opData.DoPrefix != nil {
|
||||||
o.DoPrefix = *opData.DoPrefix
|
o.DoPrefix = *opData.DoPrefix
|
||||||
@@ -541,7 +551,7 @@ func (o *Operation) CheckAndInit() error {
|
|||||||
log := logger.GetGlobalLogger()
|
log := logger.GetGlobalLogger()
|
||||||
log.Debug("Checking and initializing operation",
|
log.Debug("Checking and initializing operation",
|
||||||
"opSource", o.OpSource,
|
"opSource", o.OpSource,
|
||||||
"opType", o.OpType,
|
"opCode", o.OpCode,
|
||||||
"doid", o.Doid,
|
"doid", o.Doid,
|
||||||
)
|
)
|
||||||
if o.OpID == "" {
|
if o.OpID == "" {
|
||||||
|
|||||||
@@ -9,7 +9,7 @@ import (
|
|||||||
"github.com/stretchr/testify/assert"
|
"github.com/stretchr/testify/assert"
|
||||||
"github.com/stretchr/testify/require"
|
"github.com/stretchr/testify/require"
|
||||||
|
|
||||||
"go.yandata.net/iod/iod/go-trustlog/api/model"
|
"go.yandata.net/wangsiyuan/go-trustlog/api/model"
|
||||||
)
|
)
|
||||||
|
|
||||||
func TestOperation_Key(t *testing.T) {
|
func TestOperation_Key(t *testing.T) {
|
||||||
@@ -34,7 +34,7 @@ func TestOperation_CheckAndInit(t *testing.T) {
|
|||||||
op: &model.Operation{
|
op: &model.Operation{
|
||||||
Timestamp: time.Now(),
|
Timestamp: time.Now(),
|
||||||
OpSource: model.OpSourceIRP,
|
OpSource: model.OpSourceIRP,
|
||||||
OpType: string(model.OpTypeOCCreateHandle),
|
OpCode: model.OpCodeCreateID,
|
||||||
DoPrefix: "test",
|
DoPrefix: "test",
|
||||||
DoRepository: "repo",
|
DoRepository: "repo",
|
||||||
Doid: "test/repo/123",
|
Doid: "test/repo/123",
|
||||||
@@ -48,7 +48,7 @@ func TestOperation_CheckAndInit(t *testing.T) {
|
|||||||
OpID: "", // Will be auto-generated
|
OpID: "", // Will be auto-generated
|
||||||
Timestamp: time.Now(),
|
Timestamp: time.Now(),
|
||||||
OpSource: model.OpSourceIRP,
|
OpSource: model.OpSourceIRP,
|
||||||
OpType: string(model.OpTypeOCCreateHandle),
|
OpCode: model.OpCodeCreateID,
|
||||||
DoPrefix: "test",
|
DoPrefix: "test",
|
||||||
DoRepository: "repo",
|
DoRepository: "repo",
|
||||||
Doid: "test/repo/123",
|
Doid: "test/repo/123",
|
||||||
@@ -62,7 +62,7 @@ func TestOperation_CheckAndInit(t *testing.T) {
|
|||||||
OpID: "op-123",
|
OpID: "op-123",
|
||||||
Timestamp: time.Now(),
|
Timestamp: time.Now(),
|
||||||
OpSource: model.OpSourceIRP,
|
OpSource: model.OpSourceIRP,
|
||||||
OpType: string(model.OpTypeOCCreateHandle),
|
OpCode: model.OpCodeCreateID,
|
||||||
DoPrefix: "test",
|
DoPrefix: "test",
|
||||||
DoRepository: "repo",
|
DoRepository: "repo",
|
||||||
Doid: "test/repo/123",
|
Doid: "test/repo/123",
|
||||||
@@ -77,7 +77,7 @@ func TestOperation_CheckAndInit(t *testing.T) {
|
|||||||
OpID: "op-123",
|
OpID: "op-123",
|
||||||
Timestamp: time.Now(),
|
Timestamp: time.Now(),
|
||||||
OpSource: model.OpSourceIRP,
|
OpSource: model.OpSourceIRP,
|
||||||
OpType: string(model.OpTypeOCCreateHandle),
|
OpCode: model.OpCodeCreateID,
|
||||||
DoPrefix: "test",
|
DoPrefix: "test",
|
||||||
DoRepository: "repo",
|
DoRepository: "repo",
|
||||||
Doid: "invalid/123", // Doesn't start with "test/repo"
|
Doid: "invalid/123", // Doesn't start with "test/repo"
|
||||||
@@ -222,7 +222,7 @@ func TestOperation_MarshalUnmarshalBinary(t *testing.T) {
|
|||||||
OpID: "op-123",
|
OpID: "op-123",
|
||||||
Timestamp: time.Now(),
|
Timestamp: time.Now(),
|
||||||
OpSource: model.OpSourceIRP,
|
OpSource: model.OpSourceIRP,
|
||||||
OpType: string(model.OpTypeOCCreateHandle),
|
OpCode: model.OpCodeCreateID,
|
||||||
DoPrefix: "test",
|
DoPrefix: "test",
|
||||||
DoRepository: "repo",
|
DoRepository: "repo",
|
||||||
Doid: "test/repo/123",
|
Doid: "test/repo/123",
|
||||||
@@ -243,7 +243,7 @@ func TestOperation_MarshalUnmarshalBinary(t *testing.T) {
|
|||||||
// Verify
|
// Verify
|
||||||
assert.Equal(t, original.OpID, result.OpID)
|
assert.Equal(t, original.OpID, result.OpID)
|
||||||
assert.Equal(t, original.OpSource, result.OpSource)
|
assert.Equal(t, original.OpSource, result.OpSource)
|
||||||
assert.Equal(t, original.OpType, result.OpType)
|
assert.Equal(t, original.OpCode, result.OpCode)
|
||||||
assert.Equal(t, original.DoPrefix, result.DoPrefix)
|
assert.Equal(t, original.DoPrefix, result.DoPrefix)
|
||||||
assert.Equal(t, original.DoRepository, result.DoRepository)
|
assert.Equal(t, original.DoRepository, result.DoRepository)
|
||||||
assert.Equal(t, original.Doid, result.Doid)
|
assert.Equal(t, original.Doid, result.Doid)
|
||||||
@@ -260,7 +260,7 @@ func TestOperation_MarshalBinary_Empty(t *testing.T) {
|
|||||||
op := &model.Operation{
|
op := &model.Operation{
|
||||||
Timestamp: time.Now(),
|
Timestamp: time.Now(),
|
||||||
OpSource: model.OpSourceIRP,
|
OpSource: model.OpSourceIRP,
|
||||||
OpType: string(model.OpTypeOCCreateHandle),
|
OpCode: model.OpCodeCreateID,
|
||||||
DoPrefix: "test",
|
DoPrefix: "test",
|
||||||
DoRepository: "repo",
|
DoRepository: "repo",
|
||||||
Doid: "test/repo/123",
|
Doid: "test/repo/123",
|
||||||
@@ -297,7 +297,7 @@ func TestOperation_DoHash(t *testing.T) {
|
|||||||
OpID: "op-123",
|
OpID: "op-123",
|
||||||
Timestamp: time.Now(),
|
Timestamp: time.Now(),
|
||||||
OpSource: model.OpSourceIRP,
|
OpSource: model.OpSourceIRP,
|
||||||
OpType: string(model.OpTypeOCCreateHandle),
|
OpCode: model.OpCodeCreateID,
|
||||||
DoPrefix: "test",
|
DoPrefix: "test",
|
||||||
DoRepository: "repo",
|
DoRepository: "repo",
|
||||||
Doid: "test/repo/123",
|
Doid: "test/repo/123",
|
||||||
@@ -324,7 +324,7 @@ func TestOperationHashData(t *testing.T) {
|
|||||||
OpID: "op-123",
|
OpID: "op-123",
|
||||||
Timestamp: time.Now(),
|
Timestamp: time.Now(),
|
||||||
OpSource: model.OpSourceIRP,
|
OpSource: model.OpSourceIRP,
|
||||||
OpType: string(model.OpTypeOCCreateHandle),
|
OpCode: model.OpCodeCreateID,
|
||||||
DoPrefix: "test",
|
DoPrefix: "test",
|
||||||
DoRepository: "repo",
|
DoRepository: "repo",
|
||||||
Doid: "test/repo/123",
|
Doid: "test/repo/123",
|
||||||
@@ -362,7 +362,7 @@ func TestOperation_MarshalTrustlog_EmptyProducerID(t *testing.T) {
|
|||||||
OpID: "op-123",
|
OpID: "op-123",
|
||||||
Timestamp: time.Now(),
|
Timestamp: time.Now(),
|
||||||
OpSource: model.OpSourceIRP,
|
OpSource: model.OpSourceIRP,
|
||||||
OpType: string(model.OpTypeOCCreateHandle),
|
OpCode: model.OpCodeCreateID,
|
||||||
DoPrefix: "test",
|
DoPrefix: "test",
|
||||||
DoRepository: "repo",
|
DoRepository: "repo",
|
||||||
Doid: "test/repo/123",
|
Doid: "test/repo/123",
|
||||||
@@ -388,7 +388,7 @@ func TestOperation_MarshalTrustlog_NilSigner(t *testing.T) {
|
|||||||
OpID: "op-123",
|
OpID: "op-123",
|
||||||
Timestamp: time.Now(),
|
Timestamp: time.Now(),
|
||||||
OpSource: model.OpSourceIRP,
|
OpSource: model.OpSourceIRP,
|
||||||
OpType: string(model.OpTypeOCCreateHandle),
|
OpCode: model.OpCodeCreateID,
|
||||||
DoPrefix: "test",
|
DoPrefix: "test",
|
||||||
DoRepository: "repo",
|
DoRepository: "repo",
|
||||||
Doid: "test/repo/123",
|
Doid: "test/repo/123",
|
||||||
@@ -405,104 +405,13 @@ func TestOperation_MarshalTrustlog_NilSigner(t *testing.T) {
|
|||||||
assert.Contains(t, err.Error(), "signer is required")
|
assert.Contains(t, err.Error(), "signer is required")
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestGetOpTypesBySource(t *testing.T) {
|
|
||||||
t.Parallel()
|
|
||||||
|
|
||||||
tests := []struct {
|
|
||||||
name string
|
|
||||||
source model.Source
|
|
||||||
wantTypes []model.Type
|
|
||||||
}{
|
|
||||||
{
|
|
||||||
name: "IRP操作类型",
|
|
||||||
source: model.OpSourceIRP,
|
|
||||||
wantTypes: []model.Type{
|
|
||||||
model.OpTypeOCCreateHandle,
|
|
||||||
model.OpTypeOCDeleteHandle,
|
|
||||||
model.OpTypeOCAddValue,
|
|
||||||
},
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name: "DOIP操作类型",
|
|
||||||
source: model.OpSourceDOIP,
|
|
||||||
wantTypes: []model.Type{
|
|
||||||
model.OpTypeHello,
|
|
||||||
model.OpTypeCreate,
|
|
||||||
model.OpTypeDelete,
|
|
||||||
},
|
|
||||||
},
|
|
||||||
}
|
|
||||||
|
|
||||||
for _, tt := range tests {
|
|
||||||
t.Run(tt.name, func(t *testing.T) {
|
|
||||||
t.Parallel()
|
|
||||||
opTypes := model.GetOpTypesBySource(tt.source)
|
|
||||||
assert.NotNil(t, opTypes)
|
|
||||||
// Verify expected types are included
|
|
||||||
for _, expectedType := range tt.wantTypes {
|
|
||||||
assert.Contains(t, opTypes, expectedType)
|
|
||||||
}
|
|
||||||
})
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
func TestIsValidOpType(t *testing.T) {
|
|
||||||
t.Parallel()
|
|
||||||
|
|
||||||
tests := []struct {
|
|
||||||
name string
|
|
||||||
source model.Source
|
|
||||||
opType string
|
|
||||||
expected bool
|
|
||||||
}{
|
|
||||||
{
|
|
||||||
name: "IRP有效操作类型",
|
|
||||||
source: model.OpSourceIRP,
|
|
||||||
opType: string(model.OpTypeOCCreateHandle),
|
|
||||||
expected: true,
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name: "IRP无效操作类型",
|
|
||||||
source: model.OpSourceIRP,
|
|
||||||
opType: string(model.OpTypeHello),
|
|
||||||
expected: false,
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name: "DOIP有效操作类型",
|
|
||||||
source: model.OpSourceDOIP,
|
|
||||||
opType: string(model.OpTypeHello),
|
|
||||||
expected: true,
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name: "DOIP无效操作类型",
|
|
||||||
source: model.OpSourceDOIP,
|
|
||||||
opType: string(model.OpTypeOCCreateHandle),
|
|
||||||
expected: false,
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name: "未知来源和类型",
|
|
||||||
source: model.Source("unknown"),
|
|
||||||
opType: "unknown",
|
|
||||||
expected: false,
|
|
||||||
},
|
|
||||||
}
|
|
||||||
|
|
||||||
for _, tt := range tests {
|
|
||||||
t.Run(tt.name, func(t *testing.T) {
|
|
||||||
t.Parallel()
|
|
||||||
result := model.IsValidOpType(tt.source, tt.opType)
|
|
||||||
assert.Equal(t, tt.expected, result)
|
|
||||||
})
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
func TestNewFullOperation(t *testing.T) {
|
func TestNewFullOperation(t *testing.T) {
|
||||||
t.Parallel()
|
t.Parallel()
|
||||||
|
|
||||||
tests := []struct {
|
tests := []struct {
|
||||||
name string
|
name string
|
||||||
opSource model.Source
|
opSource model.Source
|
||||||
opType string
|
opCode model.OpCode
|
||||||
doPrefix string
|
doPrefix string
|
||||||
doRepository string
|
doRepository string
|
||||||
doid string
|
doid string
|
||||||
@@ -516,7 +425,7 @@ func TestNewFullOperation(t *testing.T) {
|
|||||||
{
|
{
|
||||||
name: "成功创建完整操作",
|
name: "成功创建完整操作",
|
||||||
opSource: model.OpSourceIRP,
|
opSource: model.OpSourceIRP,
|
||||||
opType: string(model.OpTypeOCCreateHandle),
|
opCode: model.OpCodeCreateID,
|
||||||
doPrefix: "test",
|
doPrefix: "test",
|
||||||
doRepository: "repo",
|
doRepository: "repo",
|
||||||
doid: "test/repo/123",
|
doid: "test/repo/123",
|
||||||
@@ -530,7 +439,7 @@ func TestNewFullOperation(t *testing.T) {
|
|||||||
{
|
{
|
||||||
name: "空请求体和响应体",
|
name: "空请求体和响应体",
|
||||||
opSource: model.OpSourceIRP,
|
opSource: model.OpSourceIRP,
|
||||||
opType: string(model.OpTypeOCCreateHandle),
|
opCode: model.OpCodeCreateID,
|
||||||
doPrefix: "test",
|
doPrefix: "test",
|
||||||
doRepository: "repo",
|
doRepository: "repo",
|
||||||
doid: "test/repo/123",
|
doid: "test/repo/123",
|
||||||
@@ -544,7 +453,7 @@ func TestNewFullOperation(t *testing.T) {
|
|||||||
{
|
{
|
||||||
name: "字符串类型的请求体",
|
name: "字符串类型的请求体",
|
||||||
opSource: model.OpSourceIRP,
|
opSource: model.OpSourceIRP,
|
||||||
opType: string(model.OpTypeOCCreateHandle),
|
opCode: model.OpCodeCreateID,
|
||||||
doPrefix: "test",
|
doPrefix: "test",
|
||||||
doRepository: "repo",
|
doRepository: "repo",
|
||||||
doid: "test/repo/123",
|
doid: "test/repo/123",
|
||||||
@@ -562,7 +471,7 @@ func TestNewFullOperation(t *testing.T) {
|
|||||||
t.Parallel()
|
t.Parallel()
|
||||||
op, err := model.NewFullOperation(
|
op, err := model.NewFullOperation(
|
||||||
tt.opSource,
|
tt.opSource,
|
||||||
tt.opType,
|
tt.opCode,
|
||||||
tt.doPrefix,
|
tt.doPrefix,
|
||||||
tt.doRepository,
|
tt.doRepository,
|
||||||
tt.doid,
|
tt.doid,
|
||||||
@@ -580,7 +489,7 @@ func TestNewFullOperation(t *testing.T) {
|
|||||||
require.NoError(t, err)
|
require.NoError(t, err)
|
||||||
require.NotNil(t, op)
|
require.NotNil(t, op)
|
||||||
assert.Equal(t, tt.opSource, op.OpSource)
|
assert.Equal(t, tt.opSource, op.OpSource)
|
||||||
assert.Equal(t, tt.opType, op.OpType)
|
assert.Equal(t, tt.opCode, op.OpCode)
|
||||||
assert.Equal(t, tt.doPrefix, op.DoPrefix)
|
assert.Equal(t, tt.doPrefix, op.DoPrefix)
|
||||||
assert.Equal(t, tt.doRepository, op.DoRepository)
|
assert.Equal(t, tt.doRepository, op.DoRepository)
|
||||||
assert.Equal(t, tt.doid, op.Doid)
|
assert.Equal(t, tt.doid, op.Doid)
|
||||||
@@ -591,3 +500,4 @@ func TestNewFullOperation(t *testing.T) {
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -7,7 +7,7 @@ import (
|
|||||||
"github.com/stretchr/testify/assert"
|
"github.com/stretchr/testify/assert"
|
||||||
"github.com/stretchr/testify/require"
|
"github.com/stretchr/testify/require"
|
||||||
|
|
||||||
"go.yandata.net/iod/iod/go-trustlog/api/model"
|
"go.yandata.net/wangsiyuan/go-trustlog/api/model"
|
||||||
)
|
)
|
||||||
|
|
||||||
// TestOperation_TimestampNanosecondPrecision 验证 Operation 的时间戳在 CBOR 序列化/反序列化后能保留纳秒精度
|
// TestOperation_TimestampNanosecondPrecision 验证 Operation 的时间戳在 CBOR 序列化/反序列化后能保留纳秒精度
|
||||||
@@ -21,7 +21,7 @@ func TestOperation_TimestampNanosecondPrecision(t *testing.T) {
|
|||||||
OpID: "op-nanosecond-test",
|
OpID: "op-nanosecond-test",
|
||||||
Timestamp: timestamp,
|
Timestamp: timestamp,
|
||||||
OpSource: model.OpSourceIRP,
|
OpSource: model.OpSourceIRP,
|
||||||
OpType: string(model.OpTypeOCCreateHandle),
|
OpCode: model.OpCodeCreateID,
|
||||||
DoPrefix: "test",
|
DoPrefix: "test",
|
||||||
DoRepository: "repo",
|
DoRepository: "repo",
|
||||||
Doid: "test/repo/123",
|
Doid: "test/repo/123",
|
||||||
@@ -54,3 +54,4 @@ func TestOperation_TimestampNanosecondPrecision(t *testing.T) {
|
|||||||
assert.Equal(t, original.Timestamp.Nanosecond(), result.Timestamp.Nanosecond(),
|
assert.Equal(t, original.Timestamp.Nanosecond(), result.Timestamp.Nanosecond(),
|
||||||
"纳秒部分应该相等")
|
"纳秒部分应该相等")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
package model
|
package model
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"go.yandata.net/iod/iod/go-trustlog/api/grpc/pb"
|
"go.yandata.net/wangsiyuan/go-trustlog/api/grpc/pb"
|
||||||
)
|
)
|
||||||
|
|
||||||
// MerkleTreeProofItem 表示Merkle树证明项.
|
// MerkleTreeProofItem 表示Merkle树证明项.
|
||||||
|
|||||||
@@ -6,8 +6,8 @@ import (
|
|||||||
"github.com/stretchr/testify/assert"
|
"github.com/stretchr/testify/assert"
|
||||||
"github.com/stretchr/testify/require"
|
"github.com/stretchr/testify/require"
|
||||||
|
|
||||||
"go.yandata.net/iod/iod/go-trustlog/api/grpc/pb"
|
"go.yandata.net/wangsiyuan/go-trustlog/api/grpc/pb"
|
||||||
"go.yandata.net/iod/iod/go-trustlog/api/model"
|
"go.yandata.net/wangsiyuan/go-trustlog/api/model"
|
||||||
)
|
)
|
||||||
|
|
||||||
func TestProofFromProtobuf_Nil(t *testing.T) {
|
func TestProofFromProtobuf_Nil(t *testing.T) {
|
||||||
@@ -347,3 +347,4 @@ func TestProofRoundTrip(t *testing.T) {
|
|||||||
assert.Equal(t, original.GetColItems()[0].GetHash(), pbProof.GetColItems()[0].GetHash())
|
assert.Equal(t, original.GetColItems()[0].GetHash(), pbProof.GetColItems()[0].GetHash())
|
||||||
assert.Equal(t, original.GetColItems()[0].GetLeft(), pbProof.GetColItems()[0].GetLeft())
|
assert.Equal(t, original.GetColItems()[0].GetLeft(), pbProof.GetColItems()[0].GetLeft())
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -6,8 +6,8 @@ import (
|
|||||||
"fmt"
|
"fmt"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
"go.yandata.net/iod/iod/go-trustlog/api/logger"
|
"go.yandata.net/wangsiyuan/go-trustlog/api/logger"
|
||||||
"go.yandata.net/iod/iod/go-trustlog/internal/helpers"
|
"go.yandata.net/wangsiyuan/go-trustlog/internal/helpers"
|
||||||
)
|
)
|
||||||
|
|
||||||
// Record 表示一条记录。
|
// Record 表示一条记录。
|
||||||
|
|||||||
@@ -8,7 +8,7 @@ import (
|
|||||||
"github.com/stretchr/testify/assert"
|
"github.com/stretchr/testify/assert"
|
||||||
"github.com/stretchr/testify/require"
|
"github.com/stretchr/testify/require"
|
||||||
|
|
||||||
"go.yandata.net/iod/iod/go-trustlog/api/model"
|
"go.yandata.net/wangsiyuan/go-trustlog/api/model"
|
||||||
)
|
)
|
||||||
|
|
||||||
func TestRecord_Key(t *testing.T) {
|
func TestRecord_Key(t *testing.T) {
|
||||||
@@ -319,3 +319,4 @@ func TestRecord_ChainedMethods(t *testing.T) {
|
|||||||
assert.Equal(t, []byte("extra"), rec.Extra)
|
assert.Equal(t, []byte("extra"), rec.Extra)
|
||||||
assert.Equal(t, "log", rec.RCType)
|
assert.Equal(t, "log", rec.RCType)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -7,7 +7,7 @@ import (
|
|||||||
"github.com/stretchr/testify/assert"
|
"github.com/stretchr/testify/assert"
|
||||||
"github.com/stretchr/testify/require"
|
"github.com/stretchr/testify/require"
|
||||||
|
|
||||||
"go.yandata.net/iod/iod/go-trustlog/api/model"
|
"go.yandata.net/wangsiyuan/go-trustlog/api/model"
|
||||||
)
|
)
|
||||||
|
|
||||||
// TestRecord_TimestampNanosecondPrecision 验证 Record 的时间戳在 CBOR 序列化/反序列化后能保留纳秒精度
|
// TestRecord_TimestampNanosecondPrecision 验证 Record 的时间戳在 CBOR 序列化/反序列化后能保留纳秒精度
|
||||||
@@ -52,3 +52,4 @@ func TestRecord_TimestampNanosecondPrecision(t *testing.T) {
|
|||||||
assert.Equal(t, original.Timestamp.Nanosecond(), result.Timestamp.Nanosecond(),
|
assert.Equal(t, original.Timestamp.Nanosecond(), result.Timestamp.Nanosecond(),
|
||||||
"纳秒部分应该相等")
|
"纳秒部分应该相等")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -8,7 +8,7 @@ import (
|
|||||||
"github.com/crpt/go-crpt"
|
"github.com/crpt/go-crpt"
|
||||||
_ "github.com/crpt/go-crpt/sm2" // Import SM2 to register it
|
_ "github.com/crpt/go-crpt/sm2" // Import SM2 to register it
|
||||||
|
|
||||||
"go.yandata.net/iod/iod/go-trustlog/api/logger"
|
"go.yandata.net/wangsiyuan/go-trustlog/api/logger"
|
||||||
)
|
)
|
||||||
|
|
||||||
var (
|
var (
|
||||||
|
|||||||
@@ -6,7 +6,7 @@ import (
|
|||||||
"github.com/stretchr/testify/assert"
|
"github.com/stretchr/testify/assert"
|
||||||
"github.com/stretchr/testify/require"
|
"github.com/stretchr/testify/require"
|
||||||
|
|
||||||
"go.yandata.net/iod/iod/go-trustlog/api/model"
|
"go.yandata.net/wangsiyuan/go-trustlog/api/model"
|
||||||
)
|
)
|
||||||
|
|
||||||
func TestComputeSignature_EmptyPrivateKey(t *testing.T) {
|
func TestComputeSignature_EmptyPrivateKey(t *testing.T) {
|
||||||
@@ -251,3 +251,4 @@ func TestSM2SignAndVerify_WrongSignature(t *testing.T) {
|
|||||||
require.Error(t, err) // Should fail verification
|
require.Error(t, err) // Should fail verification
|
||||||
assert.False(t, valid)
|
assert.False(t, valid)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ package model
|
|||||||
import (
|
import (
|
||||||
"bytes"
|
"bytes"
|
||||||
|
|
||||||
"go.yandata.net/iod/iod/go-trustlog/api/logger"
|
"go.yandata.net/wangsiyuan/go-trustlog/api/logger"
|
||||||
)
|
)
|
||||||
|
|
||||||
// Signer 签名器接口,用于抽象不同的签名算法实现。
|
// Signer 签名器接口,用于抽象不同的签名算法实现。
|
||||||
|
|||||||
@@ -6,7 +6,7 @@ import (
|
|||||||
"github.com/stretchr/testify/assert"
|
"github.com/stretchr/testify/assert"
|
||||||
"github.com/stretchr/testify/require"
|
"github.com/stretchr/testify/require"
|
||||||
|
|
||||||
"go.yandata.net/iod/iod/go-trustlog/api/model"
|
"go.yandata.net/wangsiyuan/go-trustlog/api/model"
|
||||||
)
|
)
|
||||||
|
|
||||||
func TestNewSM2Signer(t *testing.T) {
|
func TestNewSM2Signer(t *testing.T) {
|
||||||
@@ -133,3 +133,4 @@ func TestNopSigner_Verify_DifferentLengths(t *testing.T) {
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -7,7 +7,7 @@ import (
|
|||||||
"github.com/stretchr/testify/assert"
|
"github.com/stretchr/testify/assert"
|
||||||
"github.com/stretchr/testify/require"
|
"github.com/stretchr/testify/require"
|
||||||
|
|
||||||
"go.yandata.net/iod/iod/go-trustlog/api/model"
|
"go.yandata.net/wangsiyuan/go-trustlog/api/model"
|
||||||
)
|
)
|
||||||
|
|
||||||
// TestSM2HashConsistency 验证SM2加签和验签的一致性
|
// TestSM2HashConsistency 验证SM2加签和验签的一致性
|
||||||
@@ -63,3 +63,4 @@ func TestSM2HashConsistency(t *testing.T) {
|
|||||||
t.Logf("✓ 加签和验签必须使用相同的数据类型(都是原始数据,或都是hash值)")
|
t.Logf("✓ 加签和验签必须使用相同的数据类型(都是原始数据,或都是hash值)")
|
||||||
t.Logf("✓ 当前实现(加签和验签都使用原始数据)是正确的")
|
t.Logf("✓ 当前实现(加签和验签都使用原始数据)是正确的")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -7,7 +7,7 @@ import (
|
|||||||
"github.com/stretchr/testify/assert"
|
"github.com/stretchr/testify/assert"
|
||||||
"github.com/stretchr/testify/require"
|
"github.com/stretchr/testify/require"
|
||||||
|
|
||||||
"go.yandata.net/iod/iod/go-trustlog/api/model"
|
"go.yandata.net/wangsiyuan/go-trustlog/api/model"
|
||||||
)
|
)
|
||||||
|
|
||||||
// TestSM2RequiresHash 测试SM2是否要求预先hash数据
|
// TestSM2RequiresHash 测试SM2是否要求预先hash数据
|
||||||
@@ -80,3 +80,4 @@ func TestSM2RequiresHash(t *testing.T) {
|
|||||||
t.Logf("✗ SM2确实需要hash值,当前实现可能有问题")
|
t.Logf("✗ SM2确实需要hash值,当前实现可能有问题")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -5,7 +5,7 @@ import (
|
|||||||
|
|
||||||
"github.com/stretchr/testify/assert"
|
"github.com/stretchr/testify/assert"
|
||||||
|
|
||||||
"go.yandata.net/iod/iod/go-trustlog/api/model"
|
"go.yandata.net/wangsiyuan/go-trustlog/api/model"
|
||||||
)
|
)
|
||||||
|
|
||||||
func TestValidationResult_IsProcessing(t *testing.T) {
|
func TestValidationResult_IsProcessing(t *testing.T) {
|
||||||
@@ -236,3 +236,4 @@ func TestRecordValidationResult_IsFailed(t *testing.T) {
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -7,9 +7,9 @@ import (
|
|||||||
|
|
||||||
"github.com/ThreeDotsLabs/watermill/message"
|
"github.com/ThreeDotsLabs/watermill/message"
|
||||||
|
|
||||||
"go.yandata.net/iod/iod/go-trustlog/api/adapter"
|
"go.yandata.net/wangsiyuan/go-trustlog/api/adapter"
|
||||||
"go.yandata.net/iod/iod/go-trustlog/api/logger"
|
"go.yandata.net/wangsiyuan/go-trustlog/api/logger"
|
||||||
"go.yandata.net/iod/iod/go-trustlog/api/model"
|
"go.yandata.net/wangsiyuan/go-trustlog/api/model"
|
||||||
)
|
)
|
||||||
|
|
||||||
// operationPublisherAdapter 适配器,将 PersistenceClient 的 publishToTrustlog 方法适配为 OperationPublisher 接口
|
// operationPublisherAdapter 适配器,将 PersistenceClient 的 publishToTrustlog 方法适配为 OperationPublisher 接口
|
||||||
@@ -152,7 +152,7 @@ func (c *PersistenceClient) OperationPublish(ctx context.Context, operation *mod
|
|||||||
|
|
||||||
c.logger.DebugContext(ctx, "publishing operation with persistence",
|
c.logger.DebugContext(ctx, "publishing operation with persistence",
|
||||||
"opID", operation.OpID,
|
"opID", operation.OpID,
|
||||||
"opType", operation.OpType,
|
"opCode", operation.OpCode,
|
||||||
"strategy", c.manager.config.Strategy.String(),
|
"strategy", c.manager.config.Strategy.String(),
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|||||||
@@ -13,10 +13,10 @@ import (
|
|||||||
_ "github.com/lib/pq"
|
_ "github.com/lib/pq"
|
||||||
"github.com/stretchr/testify/require"
|
"github.com/stretchr/testify/require"
|
||||||
|
|
||||||
"go.yandata.net/iod/iod/go-trustlog/api/adapter"
|
"go.yandata.net/wangsiyuan/go-trustlog/api/adapter"
|
||||||
"go.yandata.net/iod/iod/go-trustlog/api/logger"
|
"go.yandata.net/wangsiyuan/go-trustlog/api/logger"
|
||||||
"go.yandata.net/iod/iod/go-trustlog/api/model"
|
"go.yandata.net/wangsiyuan/go-trustlog/api/model"
|
||||||
"go.yandata.net/iod/iod/go-trustlog/api/persistence"
|
"go.yandata.net/wangsiyuan/go-trustlog/api/persistence"
|
||||||
)
|
)
|
||||||
|
|
||||||
// TestClusterSafety_MultipleCursorWorkers 测试多个 Cursor Worker 并发安全
|
// TestClusterSafety_MultipleCursorWorkers 测试多个 Cursor Worker 并发安全
|
||||||
@@ -71,12 +71,12 @@ func TestClusterSafety_MultipleCursorWorkers(t *testing.T) {
|
|||||||
INSERT INTO operation (
|
INSERT INTO operation (
|
||||||
op_id, op_actor, doid, producer_id,
|
op_id, op_actor, doid, producer_id,
|
||||||
request_body_hash, response_body_hash, op_hash, sign,
|
request_body_hash, response_body_hash, op_hash, sign,
|
||||||
op_source, op_type, do_prefix, do_repository,
|
op_source, op_code, do_prefix, do_repository,
|
||||||
trustlog_status, timestamp, created_at
|
trustlog_status, timestamp, created_at
|
||||||
) VALUES ($1, $2, $3, $4, $5, $6, $7, $8, $9, $10, $11, $12, $13, $14, NOW())
|
) VALUES ($1, $2, $3, $4, $5, $6, $7, $8, $9, $10, $11, $12, $13, $14, NOW())
|
||||||
`, opID, "cluster-tester", fmt.Sprintf("cluster/test/%d", i), "cluster-producer",
|
`, opID, "cluster-tester", fmt.Sprintf("cluster/test/%d", i), "cluster-producer",
|
||||||
"req-hash", "resp-hash", "op-hash", "signature",
|
"req-hash", "resp-hash", "op-hash", "signature",
|
||||||
"DOIP", "CREATE", "cluster-test", "cluster-repo", "NOT_TRUSTLOGGED", time.Now())
|
"DOIP", 100, "cluster-test", "cluster-repo", "NOT_TRUSTLOGGED", time.Now())
|
||||||
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatalf("Failed to create test data: %v", err)
|
t.Fatalf("Failed to create test data: %v", err)
|
||||||
@@ -275,11 +275,11 @@ func TestClusterSafety_ConcurrentStatusUpdate(t *testing.T) {
|
|||||||
_, err = db.Exec(`
|
_, err = db.Exec(`
|
||||||
INSERT INTO operation (
|
INSERT INTO operation (
|
||||||
op_id, op_actor, doid, producer_id,
|
op_id, op_actor, doid, producer_id,
|
||||||
op_source, op_type, do_prefix, do_repository,
|
op_source, op_code, do_prefix, do_repository,
|
||||||
trustlog_status, created_at
|
trustlog_status, created_at
|
||||||
) VALUES ($1, $2, $3, $4, $5, $6, $7, $8, $9, NOW())
|
) VALUES ($1, $2, $3, $4, $5, $6, $7, $8, $9, NOW())
|
||||||
`, "concurrent-test", "tester", "test/concurrent", "producer",
|
`, "concurrent-test", "tester", "test/concurrent", "producer",
|
||||||
"DOIP", "CREATE", "test", "repo", "NOT_TRUSTLOGGED")
|
"DOIP", 100, "test", "repo", "NOT_TRUSTLOGGED")
|
||||||
require.NoError(t, err)
|
require.NoError(t, err)
|
||||||
|
|
||||||
// 并发更新状态(模拟多个 worker 同时处理同一条记录)
|
// 并发更新状态(模拟多个 worker 同时处理同一条记录)
|
||||||
@@ -334,3 +334,5 @@ func TestClusterSafety_ConcurrentStatusUpdate(t *testing.T) {
|
|||||||
|
|
||||||
t.Log("✅ CAS mechanism working correctly - Only one update succeeded")
|
t.Log("✅ CAS mechanism working correctly - Only one update succeeded")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -52,3 +52,5 @@ func TestDBConfig_CustomValues(t *testing.T) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -192,3 +192,5 @@ func TestSQLiteDDLUsesTEXT(t *testing.T) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -11,10 +11,10 @@ import (
|
|||||||
_ "github.com/lib/pq"
|
_ "github.com/lib/pq"
|
||||||
"github.com/stretchr/testify/require"
|
"github.com/stretchr/testify/require"
|
||||||
|
|
||||||
"go.yandata.net/iod/iod/go-trustlog/api/adapter"
|
"go.yandata.net/wangsiyuan/go-trustlog/api/adapter"
|
||||||
"go.yandata.net/iod/iod/go-trustlog/api/logger"
|
"go.yandata.net/wangsiyuan/go-trustlog/api/logger"
|
||||||
"go.yandata.net/iod/iod/go-trustlog/api/model"
|
"go.yandata.net/wangsiyuan/go-trustlog/api/model"
|
||||||
"go.yandata.net/iod/iod/go-trustlog/api/persistence"
|
"go.yandata.net/wangsiyuan/go-trustlog/api/persistence"
|
||||||
)
|
)
|
||||||
|
|
||||||
// TestCursorInitialization 验证 cursor 初始化逻辑
|
// TestCursorInitialization 验证 cursor 初始化逻辑
|
||||||
@@ -154,12 +154,12 @@ func TestCursorInitialization(t *testing.T) {
|
|||||||
INSERT INTO operation (
|
INSERT INTO operation (
|
||||||
op_id, op_actor, doid, producer_id,
|
op_id, op_actor, doid, producer_id,
|
||||||
request_body_hash, response_body_hash, op_hash, sign,
|
request_body_hash, response_body_hash, op_hash, sign,
|
||||||
op_source, op_type, do_prefix, do_repository,
|
op_source, op_code, do_prefix, do_repository,
|
||||||
trustlog_status, created_at
|
trustlog_status, created_at
|
||||||
) VALUES ($1, $2, $3, $4, $5, $6, $7, $8, $9, $10, $11, $12, $13, $14)
|
) VALUES ($1, $2, $3, $4, $5, $6, $7, $8, $9, $10, $11, $12, $13, $14)
|
||||||
`, opID, "tester", fmt.Sprintf("test/%d", i), "producer",
|
`, opID, "tester", fmt.Sprintf("test/%d", i), "producer",
|
||||||
"req-hash", "resp-hash", "op-hash", "signature",
|
"req-hash", "resp-hash", "op-hash", "signature",
|
||||||
"DOIP", "CREATE", "test", "repo", "NOT_TRUSTLOGGED", createdAt)
|
"DOIP", 100, "test", "repo", "NOT_TRUSTLOGGED", createdAt)
|
||||||
require.NoError(t, err)
|
require.NoError(t, err)
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -286,3 +286,5 @@ func TestCursorInitialization(t *testing.T) {
|
|||||||
t.Log("✅ Cursor initialization verification PASSED")
|
t.Log("✅ Cursor initialization verification PASSED")
|
||||||
t.Log(strings.Repeat("=", 60))
|
t.Log(strings.Repeat("=", 60))
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -6,8 +6,8 @@ import (
|
|||||||
"fmt"
|
"fmt"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
"go.yandata.net/iod/iod/go-trustlog/api/logger"
|
"go.yandata.net/wangsiyuan/go-trustlog/api/logger"
|
||||||
"go.yandata.net/iod/iod/go-trustlog/api/model"
|
"go.yandata.net/wangsiyuan/go-trustlog/api/model"
|
||||||
)
|
)
|
||||||
|
|
||||||
// OperationRecord 操作记录(包含数据库扩展字段)
|
// OperationRecord 操作记录(包含数据库扩展字段)
|
||||||
@@ -21,7 +21,7 @@ type OperationRecord struct {
|
|||||||
OpHash string
|
OpHash string
|
||||||
Sign string
|
Sign string
|
||||||
OpSource string
|
OpSource string
|
||||||
OpType string
|
OpCode int32
|
||||||
DOPrefix string
|
DOPrefix string
|
||||||
DORepository string
|
DORepository string
|
||||||
ClientIP *string
|
ClientIP *string
|
||||||
@@ -40,7 +40,7 @@ func (r *OperationRecord) ToModel() *model.Operation {
|
|||||||
RequestBodyHash: &r.RequestBodyHash,
|
RequestBodyHash: &r.RequestBodyHash,
|
||||||
ResponseBodyHash: &r.ResponseBodyHash,
|
ResponseBodyHash: &r.ResponseBodyHash,
|
||||||
OpSource: model.Source(r.OpSource),
|
OpSource: model.Source(r.OpSource),
|
||||||
OpType: r.OpType,
|
OpCode: model.OpCode(r.OpCode),
|
||||||
DoPrefix: r.DOPrefix,
|
DoPrefix: r.DOPrefix,
|
||||||
DoRepository: r.DORepository,
|
DoRepository: r.DORepository,
|
||||||
ClientIP: r.ClientIP,
|
ClientIP: r.ClientIP,
|
||||||
@@ -339,7 +339,7 @@ func (w *CursorWorker) findNewOperationsWithLock(ctx context.Context, tx *sql.Tx
|
|||||||
query := `
|
query := `
|
||||||
SELECT op_id, op_actor, doid, producer_id,
|
SELECT op_id, op_actor, doid, producer_id,
|
||||||
request_body_hash, response_body_hash, op_hash, sign,
|
request_body_hash, response_body_hash, op_hash, sign,
|
||||||
op_source, op_type, do_prefix, do_repository,
|
op_source, op_code, do_prefix, do_repository,
|
||||||
client_ip, server_ip, trustlog_status, created_at
|
client_ip, server_ip, trustlog_status, created_at
|
||||||
FROM operation
|
FROM operation
|
||||||
WHERE trustlog_status = $1
|
WHERE trustlog_status = $1
|
||||||
@@ -365,7 +365,7 @@ func (w *CursorWorker) findNewOperationsWithLock(ctx context.Context, tx *sql.Tx
|
|||||||
err := rows.Scan(
|
err := rows.Scan(
|
||||||
&op.OpID, &op.OpActor, &op.DOID, &op.ProducerID,
|
&op.OpID, &op.OpActor, &op.DOID, &op.ProducerID,
|
||||||
&op.RequestBodyHash, &op.ResponseBodyHash, &op.OpHash, &op.Sign,
|
&op.RequestBodyHash, &op.ResponseBodyHash, &op.OpHash, &op.Sign,
|
||||||
&op.OpSource, &op.OpType, &op.DOPrefix, &op.DORepository,
|
&op.OpSource, &op.OpCode, &op.DOPrefix, &op.DORepository,
|
||||||
&clientIP, &serverIP, &op.TrustlogStatus, &createdAt,
|
&clientIP, &serverIP, &op.TrustlogStatus, &createdAt,
|
||||||
)
|
)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
@@ -404,7 +404,7 @@ func (w *CursorWorker) findNewOperations(ctx context.Context, cursor string) ([]
|
|||||||
rows, err := db.QueryContext(ctx, `
|
rows, err := db.QueryContext(ctx, `
|
||||||
SELECT op_id, op_actor, doid, producer_id,
|
SELECT op_id, op_actor, doid, producer_id,
|
||||||
request_body_hash, response_body_hash, op_hash, sign,
|
request_body_hash, response_body_hash, op_hash, sign,
|
||||||
op_source, op_type, do_prefix, do_repository,
|
op_source, op_code, do_prefix, do_repository,
|
||||||
client_ip, server_ip, trustlog_status, created_at
|
client_ip, server_ip, trustlog_status, created_at
|
||||||
FROM operation
|
FROM operation
|
||||||
WHERE trustlog_status = $1
|
WHERE trustlog_status = $1
|
||||||
@@ -426,7 +426,7 @@ func (w *CursorWorker) findNewOperations(ctx context.Context, cursor string) ([]
|
|||||||
err := rows.Scan(
|
err := rows.Scan(
|
||||||
&op.OpID, &op.OpActor, &op.DOID, &op.ProducerID,
|
&op.OpID, &op.OpActor, &op.DOID, &op.ProducerID,
|
||||||
&op.RequestBodyHash, &op.ResponseBodyHash, &op.OpHash, &op.Sign,
|
&op.RequestBodyHash, &op.ResponseBodyHash, &op.OpHash, &op.Sign,
|
||||||
&op.OpSource, &op.OpType, &op.DOPrefix, &op.DORepository,
|
&op.OpSource, &op.OpCode, &op.DOPrefix, &op.DORepository,
|
||||||
&clientIP, &serverIP, &op.TrustlogStatus, &createdAt,
|
&clientIP, &serverIP, &op.TrustlogStatus, &createdAt,
|
||||||
)
|
)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
|||||||
@@ -13,10 +13,10 @@ import (
|
|||||||
_ "github.com/lib/pq"
|
_ "github.com/lib/pq"
|
||||||
"github.com/stretchr/testify/require"
|
"github.com/stretchr/testify/require"
|
||||||
|
|
||||||
"go.yandata.net/iod/iod/go-trustlog/api/adapter"
|
"go.yandata.net/wangsiyuan/go-trustlog/api/adapter"
|
||||||
"go.yandata.net/iod/iod/go-trustlog/api/logger"
|
"go.yandata.net/wangsiyuan/go-trustlog/api/logger"
|
||||||
"go.yandata.net/iod/iod/go-trustlog/api/model"
|
"go.yandata.net/wangsiyuan/go-trustlog/api/model"
|
||||||
"go.yandata.net/iod/iod/go-trustlog/api/persistence"
|
"go.yandata.net/wangsiyuan/go-trustlog/api/persistence"
|
||||||
)
|
)
|
||||||
|
|
||||||
// 端到端集成测试配置
|
// 端到端集成测试配置
|
||||||
@@ -204,12 +204,12 @@ func TestE2E_DBAndTrustlog_FullWorkflow(t *testing.T) {
|
|||||||
// 注意:PersistenceClient 主要用于写入,查询需要直接使用 repository
|
// 注意:PersistenceClient 主要用于写入,查询需要直接使用 repository
|
||||||
var retrievedOp model.Operation
|
var retrievedOp model.Operation
|
||||||
err = db.QueryRowContext(ctx, `
|
err = db.QueryRowContext(ctx, `
|
||||||
SELECT op_id, op_source, op_type, do_prefix
|
SELECT op_id, op_source, op_code, do_prefix
|
||||||
FROM operation WHERE op_id = $1
|
FROM operation WHERE op_id = $1
|
||||||
`, operations[0].OpID).Scan(
|
`, operations[0].OpID).Scan(
|
||||||
&retrievedOp.OpID,
|
&retrievedOp.OpID,
|
||||||
&retrievedOp.OpSource,
|
&retrievedOp.OpSource,
|
||||||
&retrievedOp.OpType,
|
&retrievedOp.OpCode,
|
||||||
&retrievedOp.DoPrefix,
|
&retrievedOp.DoPrefix,
|
||||||
)
|
)
|
||||||
require.NoError(t, err)
|
require.NoError(t, err)
|
||||||
@@ -726,7 +726,7 @@ func createE2ETestOperations(count int) []*model.Operation {
|
|||||||
OpID: fmt.Sprintf("e2e-op-%d-%d", timestamp, i),
|
OpID: fmt.Sprintf("e2e-op-%d-%d", timestamp, i),
|
||||||
Timestamp: time.Now(),
|
Timestamp: time.Now(),
|
||||||
OpSource: model.OpSourceDOIP,
|
OpSource: model.OpSourceDOIP,
|
||||||
OpType: string(model.OpTypeCreate),
|
OpCode: model.OpCodeCreateID,
|
||||||
DoPrefix: "e2e-test",
|
DoPrefix: "e2e-test",
|
||||||
DoRepository: "e2e-repo",
|
DoRepository: "e2e-repo",
|
||||||
Doid: fmt.Sprintf("e2e/test/%d", i),
|
Doid: fmt.Sprintf("e2e/test/%d", i),
|
||||||
|
|||||||
@@ -7,10 +7,10 @@ import (
|
|||||||
|
|
||||||
"github.com/go-logr/logr"
|
"github.com/go-logr/logr"
|
||||||
|
|
||||||
"go.yandata.net/iod/iod/go-trustlog/api/adapter"
|
"go.yandata.net/wangsiyuan/go-trustlog/api/adapter"
|
||||||
"go.yandata.net/iod/iod/go-trustlog/api/logger"
|
"go.yandata.net/wangsiyuan/go-trustlog/api/logger"
|
||||||
"go.yandata.net/iod/iod/go-trustlog/api/model"
|
"go.yandata.net/wangsiyuan/go-trustlog/api/model"
|
||||||
"go.yandata.net/iod/iod/go-trustlog/api/persistence"
|
"go.yandata.net/wangsiyuan/go-trustlog/api/persistence"
|
||||||
)
|
)
|
||||||
|
|
||||||
// Example_dbOnly 演示仅落库策略
|
// Example_dbOnly 演示仅落库策略
|
||||||
@@ -44,7 +44,7 @@ func Example_dbOnly() {
|
|||||||
EnvelopeConfig: envelopeConfig,
|
EnvelopeConfig: envelopeConfig,
|
||||||
DBConfig: persistence.DefaultDBConfig(
|
DBConfig: persistence.DefaultDBConfig(
|
||||||
"postgres",
|
"postgres",
|
||||||
"postgres://user:pass@localhost:5432/trustlog?sslmode=disable",
|
"postgres://postgres:postgres@localhost:5432/trustlog?sslmode=disable",
|
||||||
),
|
),
|
||||||
PersistenceConfig: persistence.DefaultPersistenceConfig(persistence.StrategyDBOnly),
|
PersistenceConfig: persistence.DefaultPersistenceConfig(persistence.StrategyDBOnly),
|
||||||
EnableRetryWorker: false, // 仅落库不需要重试
|
EnableRetryWorker: false, // 仅落库不需要重试
|
||||||
@@ -57,7 +57,7 @@ func Example_dbOnly() {
|
|||||||
// 5. 构造 Operation(包含 IP 信息)
|
// 5. 构造 Operation(包含 IP 信息)
|
||||||
op, err := model.NewFullOperation(
|
op, err := model.NewFullOperation(
|
||||||
model.OpSourceDOIP,
|
model.OpSourceDOIP,
|
||||||
string(model.OpTypeCreate),
|
model.OpCodeCreateID,
|
||||||
"10.1000",
|
"10.1000",
|
||||||
"my-repo",
|
"my-repo",
|
||||||
"10.1000/my-repo/doc001",
|
"10.1000/my-repo/doc001",
|
||||||
@@ -120,7 +120,7 @@ func Example_dbAndTrustlog() {
|
|||||||
EnvelopeConfig: envelopeConfig,
|
EnvelopeConfig: envelopeConfig,
|
||||||
DBConfig: persistence.DefaultDBConfig(
|
DBConfig: persistence.DefaultDBConfig(
|
||||||
"postgres",
|
"postgres",
|
||||||
"postgres://user:pass@localhost:5432/trustlog?sslmode=disable",
|
"postgres://postgres:postgres@localhost:5432/trustlog?sslmode=disable",
|
||||||
),
|
),
|
||||||
PersistenceConfig: persistence.PersistenceConfig{
|
PersistenceConfig: persistence.PersistenceConfig{
|
||||||
Strategy: persistence.StrategyDBAndTrustlog,
|
Strategy: persistence.StrategyDBAndTrustlog,
|
||||||
@@ -139,7 +139,7 @@ func Example_dbAndTrustlog() {
|
|||||||
// 5. 构造 Operation
|
// 5. 构造 Operation
|
||||||
op, err := model.NewFullOperation(
|
op, err := model.NewFullOperation(
|
||||||
model.OpSourceDOIP,
|
model.OpSourceDOIP,
|
||||||
string(model.OpTypeCreate),
|
model.OpCodeCreateID,
|
||||||
"10.1000",
|
"10.1000",
|
||||||
"my-repo",
|
"my-repo",
|
||||||
"10.1000/my-repo/doc002",
|
"10.1000/my-repo/doc002",
|
||||||
@@ -199,7 +199,7 @@ func Example_trustlogOnly() {
|
|||||||
EnvelopeConfig: envelopeConfig,
|
EnvelopeConfig: envelopeConfig,
|
||||||
DBConfig: persistence.DefaultDBConfig(
|
DBConfig: persistence.DefaultDBConfig(
|
||||||
"postgres",
|
"postgres",
|
||||||
"postgres://user:pass@localhost:5432/trustlog?sslmode=disable",
|
"postgres://postgres:postgres@localhost:5432/trustlog?sslmode=disable",
|
||||||
),
|
),
|
||||||
PersistenceConfig: persistence.DefaultPersistenceConfig(persistence.StrategyTrustlogOnly),
|
PersistenceConfig: persistence.DefaultPersistenceConfig(persistence.StrategyTrustlogOnly),
|
||||||
EnableRetryWorker: false, // 仅存证不需要重试工作器
|
EnableRetryWorker: false, // 仅存证不需要重试工作器
|
||||||
@@ -212,7 +212,7 @@ func Example_trustlogOnly() {
|
|||||||
// 5. 构造 Operation
|
// 5. 构造 Operation
|
||||||
op, err := model.NewFullOperation(
|
op, err := model.NewFullOperation(
|
||||||
model.OpSourceDOIP,
|
model.OpSourceDOIP,
|
||||||
string(model.OpTypeCreate),
|
model.OpCodeCreateID,
|
||||||
"10.1000",
|
"10.1000",
|
||||||
"my-repo",
|
"my-repo",
|
||||||
"10.1000/my-repo/doc003",
|
"10.1000/my-repo/doc003",
|
||||||
@@ -278,7 +278,7 @@ func Example_mysqlDatabase() {
|
|||||||
// 5. 构造并发布 Operation
|
// 5. 构造并发布 Operation
|
||||||
op, err := model.NewFullOperation(
|
op, err := model.NewFullOperation(
|
||||||
model.OpSourceDOIP,
|
model.OpSourceDOIP,
|
||||||
string(model.OpTypeCreate),
|
model.OpCodeCreateID,
|
||||||
"10.1000",
|
"10.1000",
|
||||||
"my-repo",
|
"my-repo",
|
||||||
"10.1000/my-repo/doc004",
|
"10.1000/my-repo/doc004",
|
||||||
@@ -349,7 +349,7 @@ func Example_sqliteDatabase() {
|
|||||||
// 5. 构造并发布 Operation
|
// 5. 构造并发布 Operation
|
||||||
op, err := model.NewFullOperation(
|
op, err := model.NewFullOperation(
|
||||||
model.OpSourceDOIP,
|
model.OpSourceDOIP,
|
||||||
string(model.OpTypeCreate),
|
model.OpCodeCreateID,
|
||||||
"10.1000",
|
"10.1000",
|
||||||
"my-repo",
|
"my-repo",
|
||||||
"10.1000/my-repo/doc005",
|
"10.1000/my-repo/doc005",
|
||||||
@@ -376,3 +376,6 @@ func Example_sqliteDatabase() {
|
|||||||
fmt.Printf("Operation saved to SQLite: %s\n", op.OpID)
|
fmt.Printf("Operation saved to SQLite: %s\n", op.OpID)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -8,7 +8,7 @@ import (
|
|||||||
|
|
||||||
_ "github.com/mattn/go-sqlite3"
|
_ "github.com/mattn/go-sqlite3"
|
||||||
|
|
||||||
"go.yandata.net/iod/iod/go-trustlog/api/logger"
|
"go.yandata.net/wangsiyuan/go-trustlog/api/logger"
|
||||||
)
|
)
|
||||||
|
|
||||||
func TestPersistenceManager_DBOnly(t *testing.T) {
|
func TestPersistenceManager_DBOnly(t *testing.T) {
|
||||||
@@ -365,3 +365,5 @@ func TestGetDialectDDL_UnknownDriver(t *testing.T) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -141,11 +141,11 @@ func TestMinimalNullableIPFields(t *testing.T) {
|
|||||||
// 测试1: 插入 NULL IP
|
// 测试1: 插入 NULL IP
|
||||||
_, err = db.ExecContext(ctx, `
|
_, err = db.ExecContext(ctx, `
|
||||||
INSERT INTO operation (
|
INSERT INTO operation (
|
||||||
op_id, doid, producer_id, op_source, op_type,
|
op_id, doid, producer_id, op_source, op_code,
|
||||||
do_prefix, do_repository, trustlog_status, timestamp,
|
do_prefix, do_repository, trustlog_status, timestamp,
|
||||||
client_ip, server_ip
|
client_ip, server_ip
|
||||||
) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
|
) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
|
||||||
`, "test-001", "10.1000/repo/obj", "producer-001", "DOIP", "Create",
|
`, "test-001", "10.1000/repo/obj", "producer-001", "DOIP", 100,
|
||||||
"10.1000", "repo", "NOT_TRUSTLOGGED", time.Now(), nil, nil)
|
"10.1000", "repo", "NOT_TRUSTLOGGED", time.Now(), nil, nil)
|
||||||
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
@@ -173,11 +173,11 @@ func TestMinimalNullableIPFields(t *testing.T) {
|
|||||||
// 测试2: 插入非 NULL IP
|
// 测试2: 插入非 NULL IP
|
||||||
_, err = db.ExecContext(ctx, `
|
_, err = db.ExecContext(ctx, `
|
||||||
INSERT INTO operation (
|
INSERT INTO operation (
|
||||||
op_id, doid, producer_id, op_source, op_type,
|
op_id, doid, producer_id, op_source, op_code,
|
||||||
do_prefix, do_repository, trustlog_status, timestamp,
|
do_prefix, do_repository, trustlog_status, timestamp,
|
||||||
client_ip, server_ip
|
client_ip, server_ip
|
||||||
) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
|
) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
|
||||||
`, "test-002", "10.1000/repo/obj2", "producer-001", "DOIP", "Create",
|
`, "test-002", "10.1000/repo/obj2", "producer-001", "DOIP", 100,
|
||||||
"10.1000", "repo", "NOT_TRUSTLOGGED", time.Now(),
|
"10.1000", "repo", "NOT_TRUSTLOGGED", time.Now(),
|
||||||
"192.168.1.100", "10.0.0.50")
|
"192.168.1.100", "10.0.0.50")
|
||||||
|
|
||||||
@@ -316,10 +316,10 @@ func TestMinimalOperationStatusFlow(t *testing.T) {
|
|||||||
// 插入未存证记录
|
// 插入未存证记录
|
||||||
_, err = db.ExecContext(ctx, `
|
_, err = db.ExecContext(ctx, `
|
||||||
INSERT INTO operation (
|
INSERT INTO operation (
|
||||||
op_id, doid, producer_id, op_source, op_type,
|
op_id, doid, producer_id, op_source, op_code,
|
||||||
do_prefix, do_repository, trustlog_status, timestamp
|
do_prefix, do_repository, trustlog_status, timestamp
|
||||||
) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)
|
) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)
|
||||||
`, "test-001", "10.1000/repo/obj", "producer-001", "DOIP", "Create",
|
`, "test-001", "10.1000/repo/obj", "producer-001", "DOIP", 100,
|
||||||
"10.1000", "repo", "NOT_TRUSTLOGGED", time.Now())
|
"10.1000", "repo", "NOT_TRUSTLOGGED", time.Now())
|
||||||
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
@@ -367,3 +367,5 @@ func TestMinimalOperationStatusFlow(t *testing.T) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -9,7 +9,7 @@ import (
|
|||||||
|
|
||||||
_ "github.com/lib/pq"
|
_ "github.com/lib/pq"
|
||||||
|
|
||||||
"go.yandata.net/iod/iod/go-trustlog/api/logger"
|
"go.yandata.net/wangsiyuan/go-trustlog/api/logger"
|
||||||
)
|
)
|
||||||
|
|
||||||
const (
|
const (
|
||||||
@@ -400,3 +400,5 @@ func TestPostgreSQL_PersistenceManager(t *testing.T) {
|
|||||||
t.Logf("✅ PostgreSQL PersistenceManager test passed")
|
t.Logf("✅ PostgreSQL PersistenceManager test passed")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -11,9 +11,9 @@ import (
|
|||||||
"github.com/stretchr/testify/assert"
|
"github.com/stretchr/testify/assert"
|
||||||
"github.com/stretchr/testify/require"
|
"github.com/stretchr/testify/require"
|
||||||
|
|
||||||
"go.yandata.net/iod/iod/go-trustlog/api/logger"
|
"go.yandata.net/wangsiyuan/go-trustlog/api/logger"
|
||||||
"go.yandata.net/iod/iod/go-trustlog/api/model"
|
"go.yandata.net/wangsiyuan/go-trustlog/api/model"
|
||||||
"go.yandata.net/iod/iod/go-trustlog/api/persistence"
|
"go.yandata.net/wangsiyuan/go-trustlog/api/persistence"
|
||||||
)
|
)
|
||||||
|
|
||||||
// TestPG_Query_Integration 测试 PostgreSQL 查询功能集成
|
// TestPG_Query_Integration 测试 PostgreSQL 查询功能集成
|
||||||
@@ -69,7 +69,7 @@ func TestPG_Query_Integration(t *testing.T) {
|
|||||||
testOps := []struct {
|
testOps := []struct {
|
||||||
opID string
|
opID string
|
||||||
opSource string
|
opSource string
|
||||||
opType string
|
opCode int32
|
||||||
prefix string
|
prefix string
|
||||||
doid string
|
doid string
|
||||||
repo string
|
repo string
|
||||||
@@ -80,23 +80,23 @@ func TestPG_Query_Integration(t *testing.T) {
|
|||||||
status persistence.TrustlogStatus
|
status persistence.TrustlogStatus
|
||||||
time time.Time
|
time time.Time
|
||||||
}{
|
}{
|
||||||
{"pg-query-test-001", "DOIP", "Create", "10.10000", "10.10000/test-repo/test-001", "test-repo", "user-1", "producer-1", strPtr("192.168.1.10"), strPtr("10.0.0.1"), persistence.StatusNotTrustlogged, baseTime},
|
{"pg-query-test-001", "DOIP", 100, "10.10000", "10.10000/test-repo/test-001", "test-repo", "user-1", "producer-1", strPtr("192.168.1.10"), strPtr("10.0.0.1"), persistence.StatusNotTrustlogged, baseTime},
|
||||||
{"pg-query-test-002", "DOIP", "Create", "10.10000", "10.10000/test-repo/test-002", "test-repo", "user-1", "producer-1", strPtr("192.168.1.10"), strPtr("10.0.0.1"), persistence.StatusTrustlogged, baseTime.Add(10 * time.Minute)},
|
{"pg-query-test-002", "DOIP", 100, "10.10000", "10.10000/test-repo/test-002", "test-repo", "user-1", "producer-1", strPtr("192.168.1.10"), strPtr("10.0.0.1"), persistence.StatusTrustlogged, baseTime.Add(10 * time.Minute)},
|
||||||
{"pg-query-test-003", "DOIP", "Update", "10.10000", "10.10000/test-repo/test-003", "test-repo", "user-2", "producer-1", strPtr("192.168.1.20"), strPtr("10.0.0.1"), persistence.StatusNotTrustlogged, baseTime.Add(20 * time.Minute)},
|
{"pg-query-test-003", "DOIP", 104, "10.10000", "10.10000/test-repo/test-003", "test-repo", "user-2", "producer-1", strPtr("192.168.1.20"), strPtr("10.0.0.1"), persistence.StatusNotTrustlogged, baseTime.Add(20 * time.Minute)},
|
||||||
{"pg-query-test-004", "DOIP", "Update", "10.10000", "10.10000/test-repo/test-004", "test-repo", "user-2", "producer-2", strPtr("192.168.1.20"), strPtr("10.0.0.2"), persistence.StatusTrustlogged, baseTime.Add(30 * time.Minute)},
|
{"pg-query-test-004", "DOIP", 104, "10.10000", "10.10000/test-repo/test-004", "test-repo", "user-2", "producer-2", strPtr("192.168.1.20"), strPtr("10.0.0.2"), persistence.StatusTrustlogged, baseTime.Add(30 * time.Minute)},
|
||||||
{"pg-query-test-005", "DOIP", "Delete", "10.10000", "10.10000/test-repo/test-005", "test-repo", "user-3", "producer-2", nil, nil, persistence.StatusNotTrustlogged, baseTime.Add(40 * time.Minute)},
|
{"pg-query-test-005", "DOIP", 101, "10.10000", "10.10000/test-repo/test-005", "test-repo", "user-3", "producer-2", nil, nil, persistence.StatusNotTrustlogged, baseTime.Add(40 * time.Minute)},
|
||||||
{"pg-query-test-006", "IRP", "OC_CREATE_HANDLE", "20.1000", "20.1000/test-repo/test-001", "test-repo", "user-1", "producer-3", strPtr("192.168.2.10"), strPtr("10.0.1.1"), persistence.StatusTrustlogged, baseTime.Add(50 * time.Minute)},
|
{"pg-query-test-006", "IRP", 100, "20.1000", "20.1000/test-repo/test-001", "test-repo", "user-1", "producer-3", strPtr("192.168.2.10"), strPtr("10.0.1.1"), persistence.StatusTrustlogged, baseTime.Add(50 * time.Minute)},
|
||||||
{"pg-query-test-007", "IRP", "OC_DELETE_HANDLE", "20.1000", "20.1000/test-repo/test-002", "test-repo", "user-2", "producer-3", strPtr("192.168.2.20"), strPtr("10.0.1.1"), persistence.StatusNotTrustlogged, baseTime.Add(60 * time.Minute)},
|
{"pg-query-test-007", "IRP", 101, "20.1000", "20.1000/test-repo/test-002", "test-repo", "user-2", "producer-3", strPtr("192.168.2.20"), strPtr("10.0.1.1"), persistence.StatusNotTrustlogged, baseTime.Add(60 * time.Minute)},
|
||||||
{"pg-query-test-008", "IRP", "OC_LOOKUP_HANDLE", "20.1000", "20.1000/test-repo/test-003", "test-repo", "user-3", "producer-4", nil, strPtr("10.0.1.2"), persistence.StatusTrustlogged, baseTime.Add(70 * time.Minute)},
|
{"pg-query-test-008", "IRP", 1, "20.1000", "20.1000/test-repo/test-003", "test-repo", "user-3", "producer-4", nil, strPtr("10.0.1.2"), persistence.StatusTrustlogged, baseTime.Add(70 * time.Minute)},
|
||||||
{"pg-query-test-009", "DOIP", "Retrieve", "10.20000", "10.20000/test-repo/test-001", "test-repo", "user-1", "producer-1", strPtr("192.168.1.30"), nil, persistence.StatusNotTrustlogged, baseTime.Add(80 * time.Minute)},
|
{"pg-query-test-009", "DOIP", 1, "10.20000", "10.20000/test-repo/test-001", "test-repo", "user-1", "producer-1", strPtr("192.168.1.30"), nil, persistence.StatusNotTrustlogged, baseTime.Add(80 * time.Minute)},
|
||||||
{"pg-query-test-010", "DOIP", "Retrieve", "10.20000", "10.20000/test-repo/test-002", "test-repo", "user-2", "producer-2", strPtr("192.168.1.40"), strPtr("10.0.0.3"), persistence.StatusTrustlogged, baseTime.Add(90 * time.Minute)},
|
{"pg-query-test-010", "DOIP", 1, "10.20000", "10.20000/test-repo/test-002", "test-repo", "user-2", "producer-2", strPtr("192.168.1.40"), strPtr("10.0.0.3"), persistence.StatusTrustlogged, baseTime.Add(90 * time.Minute)},
|
||||||
}
|
}
|
||||||
|
|
||||||
// 插入测试数据
|
// 插入测试数据
|
||||||
for _, testOp := range testOps {
|
for _, testOp := range testOps {
|
||||||
op, err := model.NewFullOperation(
|
op, err := model.NewFullOperation(
|
||||||
model.Source(testOp.opSource),
|
model.Source(testOp.opSource),
|
||||||
testOp.opType,
|
model.OpCode(testOp.opCode),
|
||||||
testOp.prefix, // doPrefix
|
testOp.prefix, // doPrefix
|
||||||
testOp.repo, // doRepository
|
testOp.repo, // doRepository
|
||||||
testOp.doid, // doid
|
testOp.doid, // doid
|
||||||
@@ -151,11 +151,11 @@ func TestPG_Query_Integration(t *testing.T) {
|
|||||||
t.Logf("✅ DOIP records: %d", result.Total)
|
t.Logf("✅ DOIP records: %d", result.Total)
|
||||||
})
|
})
|
||||||
|
|
||||||
// 测试3: 按 OpType 筛选
|
// 测试3: 按 OpCode 筛选
|
||||||
t.Run("Filter by OpType", func(t *testing.T) {
|
t.Run("Filter by OpCode", func(t *testing.T) {
|
||||||
opType := "Create"
|
opCode := int32(100)
|
||||||
req := &persistence.OperationQueryRequest{
|
req := &persistence.OperationQueryRequest{
|
||||||
OpType: &opType,
|
OpCode: &opCode,
|
||||||
PageSize: 50,
|
PageSize: 50,
|
||||||
PageNumber: 1,
|
PageNumber: 1,
|
||||||
}
|
}
|
||||||
@@ -165,7 +165,7 @@ func TestPG_Query_Integration(t *testing.T) {
|
|||||||
assert.GreaterOrEqual(t, result.Total, int64(2)) // 2条Create记录
|
assert.GreaterOrEqual(t, result.Total, int64(2)) // 2条Create记录
|
||||||
|
|
||||||
for _, op := range result.Operations {
|
for _, op := range result.Operations {
|
||||||
assert.Equal(t, "Create", op.OpType)
|
assert.Equal(t, model.OpCodeCreateID, op.OpCode)
|
||||||
}
|
}
|
||||||
t.Logf("✅ Create records: %d", result.Total)
|
t.Logf("✅ Create records: %d", result.Total)
|
||||||
})
|
})
|
||||||
@@ -442,11 +442,11 @@ func TestPG_Query_Integration(t *testing.T) {
|
|||||||
// 测试16: 复杂组合查询(多条件)
|
// 测试16: 复杂组合查询(多条件)
|
||||||
t.Run("Complex combined query", func(t *testing.T) {
|
t.Run("Complex combined query", func(t *testing.T) {
|
||||||
opSource := "DOIP"
|
opSource := "DOIP"
|
||||||
opType := "Update"
|
opCode := int32(104) // ModifyElement
|
||||||
status := persistence.StatusTrustlogged
|
status := persistence.StatusTrustlogged
|
||||||
req := &persistence.OperationQueryRequest{
|
req := &persistence.OperationQueryRequest{
|
||||||
OpSource: &opSource,
|
OpSource: &opSource,
|
||||||
OpType: &opType,
|
OpCode: &opCode,
|
||||||
TrustlogStatus: &status,
|
TrustlogStatus: &status,
|
||||||
PageSize: 50,
|
PageSize: 50,
|
||||||
PageNumber: 1,
|
PageNumber: 1,
|
||||||
@@ -460,7 +460,7 @@ func TestPG_Query_Integration(t *testing.T) {
|
|||||||
|
|
||||||
for i, op := range result.Operations {
|
for i, op := range result.Operations {
|
||||||
assert.Equal(t, "DOIP", string(op.OpSource))
|
assert.Equal(t, "DOIP", string(op.OpSource))
|
||||||
assert.Equal(t, "Update", op.OpType)
|
assert.Equal(t, model.OpCodeModifyElement, op.OpCode) // 104
|
||||||
assert.Equal(t, persistence.StatusTrustlogged, result.Statuses[i])
|
assert.Equal(t, persistence.StatusTrustlogged, result.Statuses[i])
|
||||||
}
|
}
|
||||||
t.Logf("✅ Complex query records: %d", result.Total)
|
t.Logf("✅ Complex query records: %d", result.Total)
|
||||||
@@ -534,7 +534,7 @@ func TestPG_PersistenceClient_Query_Integration(t *testing.T) {
|
|||||||
for i := 0; i < 5; i++ {
|
for i := 0; i < 5; i++ {
|
||||||
op, err := model.NewFullOperation(
|
op, err := model.NewFullOperation(
|
||||||
model.OpSourceDOIP,
|
model.OpSourceDOIP,
|
||||||
string(model.OpTypeCreate),
|
model.OpCodeCreateID,
|
||||||
"10.10000", // doPrefix
|
"10.10000", // doPrefix
|
||||||
"client-repo", // doRepository
|
"client-repo", // doRepository
|
||||||
fmt.Sprintf("10.10000/client-repo/test-%d", i), // doid
|
fmt.Sprintf("10.10000/client-repo/test-%d", i), // doid
|
||||||
@@ -613,3 +613,5 @@ func TestPG_PersistenceClient_Query_Integration(t *testing.T) {
|
|||||||
func strPtr(s string) *string {
|
func strPtr(s string) *string {
|
||||||
return &s
|
return &s
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -10,8 +10,8 @@ import (
|
|||||||
"github.com/ThreeDotsLabs/watermill/message"
|
"github.com/ThreeDotsLabs/watermill/message"
|
||||||
_ "github.com/lib/pq"
|
_ "github.com/lib/pq"
|
||||||
|
|
||||||
"go.yandata.net/iod/iod/go-trustlog/api/adapter"
|
"go.yandata.net/wangsiyuan/go-trustlog/api/adapter"
|
||||||
"go.yandata.net/iod/iod/go-trustlog/api/logger"
|
"go.yandata.net/wangsiyuan/go-trustlog/api/logger"
|
||||||
)
|
)
|
||||||
|
|
||||||
const (
|
const (
|
||||||
@@ -358,3 +358,5 @@ func TestPulsar_DifferentTopics(t *testing.T) {
|
|||||||
|
|
||||||
t.Logf("✅ Pulsar different topics test passed")
|
t.Logf("✅ Pulsar different topics test passed")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -9,8 +9,8 @@ import (
|
|||||||
"github.com/stretchr/testify/assert"
|
"github.com/stretchr/testify/assert"
|
||||||
"github.com/stretchr/testify/require"
|
"github.com/stretchr/testify/require"
|
||||||
|
|
||||||
"go.yandata.net/iod/iod/go-trustlog/api/logger"
|
"go.yandata.net/wangsiyuan/go-trustlog/api/logger"
|
||||||
"go.yandata.net/iod/iod/go-trustlog/api/model"
|
"go.yandata.net/wangsiyuan/go-trustlog/api/model"
|
||||||
)
|
)
|
||||||
|
|
||||||
func TestOperationRepository_Query(t *testing.T) {
|
func TestOperationRepository_Query(t *testing.T) {
|
||||||
@@ -26,20 +26,20 @@ func TestOperationRepository_Query(t *testing.T) {
|
|||||||
testOps := []struct {
|
testOps := []struct {
|
||||||
opID string
|
opID string
|
||||||
opSource string
|
opSource string
|
||||||
opType string
|
opCode int32
|
||||||
status TrustlogStatus
|
status TrustlogStatus
|
||||||
time time.Time
|
time time.Time
|
||||||
}{
|
}{
|
||||||
{"op-001", "DOIP", "Create", StatusNotTrustlogged, now.Add(-3 * time.Hour)},
|
{"op-001", "DOIP", 100, StatusNotTrustlogged, now.Add(-3 * time.Hour)},
|
||||||
{"op-002", "DOIP", "Update", StatusTrustlogged, now.Add(-2 * time.Hour)},
|
{"op-002", "DOIP", 104, StatusTrustlogged, now.Add(-2 * time.Hour)},
|
||||||
{"op-003", "IRP", "Create", StatusNotTrustlogged, now.Add(-1 * time.Hour)},
|
{"op-003", "IRP", 100, StatusNotTrustlogged, now.Add(-1 * time.Hour)},
|
||||||
{"op-004", "IRP", "Delete", StatusTrustlogged, now},
|
{"op-004", "IRP", 101, StatusTrustlogged, now},
|
||||||
}
|
}
|
||||||
|
|
||||||
for _, testOp := range testOps {
|
for _, testOp := range testOps {
|
||||||
op := createTestOperation(t, testOp.opID)
|
op := createTestOperation(t, testOp.opID)
|
||||||
op.OpSource = model.Source(testOp.opSource)
|
op.OpSource = model.Source(testOp.opSource)
|
||||||
op.OpType = testOp.opType
|
op.OpCode = model.OpCode(testOp.opCode)
|
||||||
op.Timestamp = testOp.time
|
op.Timestamp = testOp.time
|
||||||
|
|
||||||
err := repo.Save(ctx, op, testOp.status)
|
err := repo.Save(ctx, op, testOp.status)
|
||||||
@@ -78,10 +78,10 @@ func TestOperationRepository_Query(t *testing.T) {
|
|||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
t.Run("Query by OpType", func(t *testing.T) {
|
t.Run("Query by OpCode", func(t *testing.T) {
|
||||||
opType := "Create"
|
opCode := int32(100)
|
||||||
req := &OperationQueryRequest{
|
req := &OperationQueryRequest{
|
||||||
OpType: &opType,
|
OpCode: &opCode,
|
||||||
PageSize: 10,
|
PageSize: 10,
|
||||||
PageNumber: 1,
|
PageNumber: 1,
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -6,8 +6,8 @@ import (
|
|||||||
"fmt"
|
"fmt"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
"go.yandata.net/iod/iod/go-trustlog/api/logger"
|
"go.yandata.net/wangsiyuan/go-trustlog/api/logger"
|
||||||
"go.yandata.net/iod/iod/go-trustlog/api/model"
|
"go.yandata.net/wangsiyuan/go-trustlog/api/model"
|
||||||
)
|
)
|
||||||
|
|
||||||
// OperationQueryRequest 操作记录查询请求
|
// OperationQueryRequest 操作记录查询请求
|
||||||
@@ -16,8 +16,8 @@ type OperationQueryRequest struct {
|
|||||||
OpID *string
|
OpID *string
|
||||||
// OpSource 操作来源(精确匹配)
|
// OpSource 操作来源(精确匹配)
|
||||||
OpSource *string
|
OpSource *string
|
||||||
// OpType 操作类型(精确匹配)
|
// OpCode 操作代码(精确匹配,int32)
|
||||||
OpType *string
|
OpCode *int32
|
||||||
// Doid 数字对象标识符(支持 LIKE 模糊查询)
|
// Doid 数字对象标识符(支持 LIKE 模糊查询)
|
||||||
Doid *string
|
Doid *string
|
||||||
// ProducerID 生产者ID(精确匹配)
|
// ProducerID 生产者ID(精确匹配)
|
||||||
@@ -197,7 +197,7 @@ func (r *operationRepository) SaveTx(ctx context.Context, tx *sql.Tx, op *model.
|
|||||||
INSERT INTO operation (
|
INSERT INTO operation (
|
||||||
op_id, op_actor, doid, producer_id,
|
op_id, op_actor, doid, producer_id,
|
||||||
request_body_hash, response_body_hash,
|
request_body_hash, response_body_hash,
|
||||||
op_source, op_type, do_prefix, do_repository,
|
op_source, op_code, do_prefix, do_repository,
|
||||||
client_ip, server_ip, trustlog_status, timestamp
|
client_ip, server_ip, trustlog_status, timestamp
|
||||||
) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
|
) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
|
||||||
`)
|
`)
|
||||||
@@ -224,7 +224,7 @@ func (r *operationRepository) SaveTx(ctx context.Context, tx *sql.Tx, op *model.
|
|||||||
reqHash,
|
reqHash,
|
||||||
respHash,
|
respHash,
|
||||||
string(op.OpSource),
|
string(op.OpSource),
|
||||||
string(op.OpType),
|
int32(op.OpCode),
|
||||||
op.DoPrefix,
|
op.DoPrefix,
|
||||||
op.DoRepository,
|
op.DoRepository,
|
||||||
clientIP,
|
clientIP,
|
||||||
@@ -290,7 +290,7 @@ func (r *operationRepository) FindByID(ctx context.Context, opID string) (*model
|
|||||||
SELECT
|
SELECT
|
||||||
op_id, op_actor, doid, producer_id,
|
op_id, op_actor, doid, producer_id,
|
||||||
request_body_hash, response_body_hash,
|
request_body_hash, response_body_hash,
|
||||||
op_source, op_type, do_prefix, do_repository,
|
op_source, op_code, do_prefix, do_repository,
|
||||||
client_ip, server_ip, trustlog_status, timestamp
|
client_ip, server_ip, trustlog_status, timestamp
|
||||||
FROM operation
|
FROM operation
|
||||||
WHERE op_id = ?
|
WHERE op_id = ?
|
||||||
@@ -308,7 +308,7 @@ func (r *operationRepository) FindByID(ctx context.Context, opID string) (*model
|
|||||||
&reqHash,
|
&reqHash,
|
||||||
&respHash,
|
&respHash,
|
||||||
&op.OpSource,
|
&op.OpSource,
|
||||||
&op.OpType,
|
&op.OpCode,
|
||||||
&op.DoPrefix,
|
&op.DoPrefix,
|
||||||
&op.DoRepository,
|
&op.DoRepository,
|
||||||
&clientIP,
|
&clientIP,
|
||||||
@@ -353,7 +353,7 @@ func (r *operationRepository) FindUntrustloggedWithLock(ctx context.Context, tx
|
|||||||
SELECT
|
SELECT
|
||||||
op_id, op_actor, doid, producer_id,
|
op_id, op_actor, doid, producer_id,
|
||||||
request_body_hash, response_body_hash,
|
request_body_hash, response_body_hash,
|
||||||
op_source, op_type, do_prefix, do_repository,
|
op_source, op_code, do_prefix, do_repository,
|
||||||
client_ip, server_ip, timestamp
|
client_ip, server_ip, timestamp
|
||||||
FROM operation
|
FROM operation
|
||||||
WHERE trustlog_status = ?
|
WHERE trustlog_status = ?
|
||||||
@@ -392,7 +392,7 @@ func (r *operationRepository) FindUntrustloggedWithLock(ctx context.Context, tx
|
|||||||
&reqHash,
|
&reqHash,
|
||||||
&respHash,
|
&respHash,
|
||||||
&op.OpSource,
|
&op.OpSource,
|
||||||
&op.OpType,
|
&op.OpCode,
|
||||||
&op.DoPrefix,
|
&op.DoPrefix,
|
||||||
&op.DoRepository,
|
&op.DoRepository,
|
||||||
&clientIP,
|
&clientIP,
|
||||||
@@ -488,7 +488,7 @@ func (r *operationRepository) FindUntrustlogged(ctx context.Context, limit int)
|
|||||||
SELECT
|
SELECT
|
||||||
op_id, op_actor, doid, producer_id,
|
op_id, op_actor, doid, producer_id,
|
||||||
request_body_hash, response_body_hash,
|
request_body_hash, response_body_hash,
|
||||||
op_source, op_type, do_prefix, do_repository,
|
op_source, op_code, do_prefix, do_repository,
|
||||||
client_ip, server_ip, timestamp
|
client_ip, server_ip, timestamp
|
||||||
FROM operation
|
FROM operation
|
||||||
WHERE trustlog_status = ?
|
WHERE trustlog_status = ?
|
||||||
@@ -518,7 +518,7 @@ func (r *operationRepository) FindUntrustlogged(ctx context.Context, limit int)
|
|||||||
&reqHash,
|
&reqHash,
|
||||||
&respHash,
|
&respHash,
|
||||||
&op.OpSource,
|
&op.OpSource,
|
||||||
&op.OpType,
|
&op.OpCode,
|
||||||
&op.DoPrefix,
|
&op.DoPrefix,
|
||||||
&op.DoRepository,
|
&op.DoRepository,
|
||||||
&clientIP,
|
&clientIP,
|
||||||
@@ -607,9 +607,9 @@ func (r *operationRepository) Query(ctx context.Context, req *OperationQueryRequ
|
|||||||
args = append(args, *req.OpSource)
|
args = append(args, *req.OpSource)
|
||||||
argIndex++
|
argIndex++
|
||||||
}
|
}
|
||||||
if req.OpType != nil && *req.OpType != "" {
|
if req.OpCode != nil {
|
||||||
conditions = append(conditions, fmt.Sprintf("op_type = $%d", argIndex))
|
conditions = append(conditions, fmt.Sprintf("op_code = $%d", argIndex))
|
||||||
args = append(args, *req.OpType)
|
args = append(args, *req.OpCode)
|
||||||
argIndex++
|
argIndex++
|
||||||
}
|
}
|
||||||
if req.Doid != nil && *req.Doid != "" {
|
if req.Doid != nil && *req.Doid != "" {
|
||||||
@@ -683,7 +683,7 @@ func (r *operationRepository) Query(ctx context.Context, req *OperationQueryRequ
|
|||||||
SELECT
|
SELECT
|
||||||
op_id, op_actor, doid, producer_id,
|
op_id, op_actor, doid, producer_id,
|
||||||
request_body_hash, response_body_hash,
|
request_body_hash, response_body_hash,
|
||||||
op_source, op_type, do_prefix, do_repository,
|
op_source, op_code, do_prefix, do_repository,
|
||||||
client_ip, server_ip, trustlog_status, timestamp, created_at
|
client_ip, server_ip, trustlog_status, timestamp, created_at
|
||||||
FROM operation
|
FROM operation
|
||||||
%s
|
%s
|
||||||
@@ -713,7 +713,7 @@ func (r *operationRepository) Query(ctx context.Context, req *OperationQueryRequ
|
|||||||
err := rows.Scan(
|
err := rows.Scan(
|
||||||
&op.OpID, &op.OpActor, &op.Doid, &op.ProducerID,
|
&op.OpID, &op.OpActor, &op.Doid, &op.ProducerID,
|
||||||
&reqHash, &respHash,
|
&reqHash, &respHash,
|
||||||
&op.OpSource, &op.OpType, &op.DoPrefix, &op.DoRepository,
|
&op.OpSource, &op.OpCode, &op.DoPrefix, &op.DoRepository,
|
||||||
&clientIP, &serverIP, &statusStr, &op.Timestamp, &createdAt,
|
&clientIP, &serverIP, &statusStr, &op.Timestamp, &createdAt,
|
||||||
)
|
)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
@@ -779,9 +779,9 @@ func (r *operationRepository) Count(ctx context.Context, req *OperationQueryRequ
|
|||||||
args = append(args, *req.OpSource)
|
args = append(args, *req.OpSource)
|
||||||
argIndex++
|
argIndex++
|
||||||
}
|
}
|
||||||
if req.OpType != nil && *req.OpType != "" {
|
if req.OpCode != nil {
|
||||||
conditions = append(conditions, fmt.Sprintf("op_type = $%d", argIndex))
|
conditions = append(conditions, fmt.Sprintf("op_code = $%d", argIndex))
|
||||||
args = append(args, *req.OpType)
|
args = append(args, *req.OpCode)
|
||||||
argIndex++
|
argIndex++
|
||||||
}
|
}
|
||||||
if req.Doid != nil && *req.Doid != "" {
|
if req.Doid != nil && *req.Doid != "" {
|
||||||
|
|||||||
@@ -8,8 +8,8 @@ import (
|
|||||||
|
|
||||||
_ "github.com/mattn/go-sqlite3"
|
_ "github.com/mattn/go-sqlite3"
|
||||||
|
|
||||||
"go.yandata.net/iod/iod/go-trustlog/api/logger"
|
"go.yandata.net/wangsiyuan/go-trustlog/api/logger"
|
||||||
"go.yandata.net/iod/iod/go-trustlog/api/model"
|
"go.yandata.net/wangsiyuan/go-trustlog/api/model"
|
||||||
)
|
)
|
||||||
|
|
||||||
// setupTestDB 创建测试用的 SQLite 内存数据库
|
// setupTestDB 创建测试用的 SQLite 内存数据库
|
||||||
@@ -44,7 +44,7 @@ func setupTestDB(t *testing.T) *sql.DB {
|
|||||||
func createTestOperation(t *testing.T, opID string) *model.Operation {
|
func createTestOperation(t *testing.T, opID string) *model.Operation {
|
||||||
op, err := model.NewFullOperation(
|
op, err := model.NewFullOperation(
|
||||||
model.OpSourceDOIP,
|
model.OpSourceDOIP,
|
||||||
string(model.OpTypeCreate),
|
model.OpCodeCreateID,
|
||||||
"10.1000",
|
"10.1000",
|
||||||
"test-repo",
|
"test-repo",
|
||||||
"10.1000/test-repo/"+opID,
|
"10.1000/test-repo/"+opID,
|
||||||
@@ -389,3 +389,5 @@ func TestRetryRepository_DeleteRetry(t *testing.T) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -7,8 +7,8 @@ import (
|
|||||||
|
|
||||||
"github.com/ThreeDotsLabs/watermill/message"
|
"github.com/ThreeDotsLabs/watermill/message"
|
||||||
|
|
||||||
"go.yandata.net/iod/iod/go-trustlog/api/logger"
|
"go.yandata.net/wangsiyuan/go-trustlog/api/logger"
|
||||||
"go.yandata.net/iod/iod/go-trustlog/api/model"
|
"go.yandata.net/wangsiyuan/go-trustlog/api/model"
|
||||||
)
|
)
|
||||||
|
|
||||||
// RetryWorkerConfig 重试工作器配置
|
// RetryWorkerConfig 重试工作器配置
|
||||||
|
|||||||
@@ -95,3 +95,5 @@ func TestRetryWorker_CalculateNextRetry(t *testing.T) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -35,7 +35,7 @@ CREATE TABLE IF NOT EXISTS operation (
|
|||||||
response_body_hash VARCHAR(128),
|
response_body_hash VARCHAR(128),
|
||||||
sign VARCHAR(512),
|
sign VARCHAR(512),
|
||||||
op_source VARCHAR(10),
|
op_source VARCHAR(10),
|
||||||
op_type VARCHAR(30),
|
op_code INTEGER,
|
||||||
do_prefix VARCHAR(128),
|
do_prefix VARCHAR(128),
|
||||||
do_repository VARCHAR(64),
|
do_repository VARCHAR(64),
|
||||||
client_ip VARCHAR(32),
|
client_ip VARCHAR(32),
|
||||||
@@ -106,7 +106,7 @@ CREATE TABLE IF NOT EXISTS operation (
|
|||||||
response_body_hash VARCHAR(128),
|
response_body_hash VARCHAR(128),
|
||||||
sign VARCHAR(512),
|
sign VARCHAR(512),
|
||||||
op_source VARCHAR(10),
|
op_source VARCHAR(10),
|
||||||
op_type VARCHAR(30),
|
op_code INTEGER,
|
||||||
do_prefix VARCHAR(128),
|
do_prefix VARCHAR(128),
|
||||||
do_repository VARCHAR(64),
|
do_repository VARCHAR(64),
|
||||||
client_ip VARCHAR(32),
|
client_ip VARCHAR(32),
|
||||||
@@ -164,7 +164,7 @@ CREATE TABLE IF NOT EXISTS operation (
|
|||||||
response_body_hash VARCHAR(128),
|
response_body_hash VARCHAR(128),
|
||||||
sign VARCHAR(512),
|
sign VARCHAR(512),
|
||||||
op_source VARCHAR(10),
|
op_source VARCHAR(10),
|
||||||
op_type VARCHAR(30),
|
op_code INT,
|
||||||
do_prefix VARCHAR(128),
|
do_prefix VARCHAR(128),
|
||||||
do_repository VARCHAR(64),
|
do_repository VARCHAR(64),
|
||||||
client_ip VARCHAR(32),
|
client_ip VARCHAR(32),
|
||||||
@@ -219,7 +219,7 @@ CREATE TABLE IF NOT EXISTS operation (
|
|||||||
response_body_hash TEXT,
|
response_body_hash TEXT,
|
||||||
sign TEXT,
|
sign TEXT,
|
||||||
op_source TEXT,
|
op_source TEXT,
|
||||||
op_type TEXT,
|
op_code INTEGER,
|
||||||
do_prefix TEXT,
|
do_prefix TEXT,
|
||||||
do_repository TEXT,
|
do_repository TEXT,
|
||||||
client_ip TEXT,
|
client_ip TEXT,
|
||||||
|
|||||||
@@ -134,7 +134,7 @@ func TestOperationTableDDL(t *testing.T) {
|
|||||||
"response_body_hash",
|
"response_body_hash",
|
||||||
"sign",
|
"sign",
|
||||||
"op_source",
|
"op_source",
|
||||||
"op_type",
|
"op_code",
|
||||||
"do_prefix",
|
"do_prefix",
|
||||||
"do_repository",
|
"do_repository",
|
||||||
"client_ip",
|
"client_ip",
|
||||||
@@ -181,3 +181,5 @@ func TestRetryTableDDL(t *testing.T) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -14,7 +14,7 @@ CREATE TABLE IF NOT EXISTS operation (
|
|||||||
response_body_hash VARCHAR(128),
|
response_body_hash VARCHAR(128),
|
||||||
sign VARCHAR(512),
|
sign VARCHAR(512),
|
||||||
op_source VARCHAR(10),
|
op_source VARCHAR(10),
|
||||||
op_type VARCHAR(30),
|
op_code INT COMMENT '操作代码(int32)',
|
||||||
do_prefix VARCHAR(128),
|
do_prefix VARCHAR(128),
|
||||||
do_repository VARCHAR(64),
|
do_repository VARCHAR(64),
|
||||||
client_ip VARCHAR(32) COMMENT '客户端IP(可空,仅落库,不存证)',
|
client_ip VARCHAR(32) COMMENT '客户端IP(可空,仅落库,不存证)',
|
||||||
|
|||||||
@@ -15,7 +15,7 @@ CREATE TABLE IF NOT EXISTS operation (
|
|||||||
op_hash VARCHAR(128), -- 操作哈希
|
op_hash VARCHAR(128), -- 操作哈希
|
||||||
sign VARCHAR(512),
|
sign VARCHAR(512),
|
||||||
op_source VARCHAR(10),
|
op_source VARCHAR(10),
|
||||||
op_type VARCHAR(30),
|
op_code INTEGER, -- 操作代码(int32)
|
||||||
do_prefix VARCHAR(128),
|
do_prefix VARCHAR(128),
|
||||||
do_repository VARCHAR(64),
|
do_repository VARCHAR(64),
|
||||||
client_ip VARCHAR(32), -- 客户端IP(可空,仅落库)
|
client_ip VARCHAR(32), -- 客户端IP(可空,仅落库)
|
||||||
|
|||||||
@@ -14,7 +14,7 @@ CREATE TABLE IF NOT EXISTS operation (
|
|||||||
response_body_hash TEXT,
|
response_body_hash TEXT,
|
||||||
sign TEXT,
|
sign TEXT,
|
||||||
op_source TEXT,
|
op_source TEXT,
|
||||||
op_type TEXT,
|
op_code INTEGER, -- 操作代码(int32)
|
||||||
do_prefix TEXT,
|
do_prefix TEXT,
|
||||||
do_repository TEXT,
|
do_repository TEXT,
|
||||||
client_ip TEXT, -- 客户端IP(可空,仅落库,不存证)
|
client_ip TEXT, -- 客户端IP(可空,仅落库,不存证)
|
||||||
|
|||||||
@@ -9,7 +9,7 @@
|
|||||||
INSERT INTO operation (
|
INSERT INTO operation (
|
||||||
op_id, op_actor, doid, producer_id,
|
op_id, op_actor, doid, producer_id,
|
||||||
request_body_hash, response_body_hash,
|
request_body_hash, response_body_hash,
|
||||||
op_source, op_type, do_prefix, do_repository,
|
op_source, op_code, do_prefix, do_repository,
|
||||||
client_ip, server_ip, trustlog_status, timestamp
|
client_ip, server_ip, trustlog_status, timestamp
|
||||||
) VALUES (
|
) VALUES (
|
||||||
'test-op-001',
|
'test-op-001',
|
||||||
@@ -32,7 +32,7 @@ INSERT INTO operation (
|
|||||||
INSERT INTO operation (
|
INSERT INTO operation (
|
||||||
op_id, op_actor, doid, producer_id,
|
op_id, op_actor, doid, producer_id,
|
||||||
request_body_hash, response_body_hash,
|
request_body_hash, response_body_hash,
|
||||||
op_source, op_type, do_prefix, do_repository,
|
op_source, op_code, do_prefix, do_repository,
|
||||||
client_ip, server_ip, trustlog_status, timestamp
|
client_ip, server_ip, trustlog_status, timestamp
|
||||||
) VALUES (
|
) VALUES (
|
||||||
'test-op-002',
|
'test-op-002',
|
||||||
@@ -55,7 +55,7 @@ INSERT INTO operation (
|
|||||||
INSERT INTO operation (
|
INSERT INTO operation (
|
||||||
op_id, op_actor, doid, producer_id,
|
op_id, op_actor, doid, producer_id,
|
||||||
request_body_hash, response_body_hash,
|
request_body_hash, response_body_hash,
|
||||||
op_source, op_type, do_prefix, do_repository,
|
op_source, op_code, do_prefix, do_repository,
|
||||||
client_ip, server_ip, trustlog_status, timestamp
|
client_ip, server_ip, trustlog_status, timestamp
|
||||||
) VALUES (
|
) VALUES (
|
||||||
'test-op-003',
|
'test-op-003',
|
||||||
@@ -111,7 +111,7 @@ INSERT INTO trustlog_retry (
|
|||||||
-- 查询所有操作记录
|
-- 查询所有操作记录
|
||||||
SELECT
|
SELECT
|
||||||
op_id,
|
op_id,
|
||||||
op_type,
|
op_code,
|
||||||
client_ip,
|
client_ip,
|
||||||
server_ip,
|
server_ip,
|
||||||
trustlog_status,
|
trustlog_status,
|
||||||
|
|||||||
@@ -10,7 +10,7 @@ import (
|
|||||||
|
|
||||||
_ "github.com/mattn/go-sqlite3"
|
_ "github.com/mattn/go-sqlite3"
|
||||||
|
|
||||||
"go.yandata.net/iod/iod/go-trustlog/api/persistence"
|
"go.yandata.net/wangsiyuan/go-trustlog/api/persistence"
|
||||||
)
|
)
|
||||||
|
|
||||||
// Standalone tests - 独立测试,不依赖复杂模块
|
// Standalone tests - 独立测试,不依赖复杂模块
|
||||||
@@ -153,11 +153,11 @@ func TestStandaloneIPFields(t *testing.T) {
|
|||||||
// 测试 NULL IP
|
// 测试 NULL IP
|
||||||
_, err = db.ExecContext(ctx, `
|
_, err = db.ExecContext(ctx, `
|
||||||
INSERT INTO operation (
|
INSERT INTO operation (
|
||||||
op_id, doid, producer_id, op_source, op_type,
|
op_id, doid, producer_id, op_source, op_code,
|
||||||
do_prefix, do_repository, trustlog_status, timestamp,
|
do_prefix, do_repository, trustlog_status, timestamp,
|
||||||
client_ip, server_ip
|
client_ip, server_ip
|
||||||
) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
|
) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
|
||||||
`, "test-001", "10.1000/repo/obj", "producer-001", "DOIP", "Create",
|
`, "test-001", "10.1000/repo/obj", "producer-001", "DOIP", 100,
|
||||||
"10.1000", "repo", "NOT_TRUSTLOGGED", time.Now(), nil, nil)
|
"10.1000", "repo", "NOT_TRUSTLOGGED", time.Now(), nil, nil)
|
||||||
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
@@ -184,11 +184,11 @@ func TestStandaloneIPFields(t *testing.T) {
|
|||||||
// 测试非 NULL IP
|
// 测试非 NULL IP
|
||||||
_, err = db.ExecContext(ctx, `
|
_, err = db.ExecContext(ctx, `
|
||||||
INSERT INTO operation (
|
INSERT INTO operation (
|
||||||
op_id, doid, producer_id, op_source, op_type,
|
op_id, doid, producer_id, op_source, op_code,
|
||||||
do_prefix, do_repository, trustlog_status, timestamp,
|
do_prefix, do_repository, trustlog_status, timestamp,
|
||||||
client_ip, server_ip
|
client_ip, server_ip
|
||||||
) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
|
) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
|
||||||
`, "test-002", "10.1000/repo/obj2", "producer-001", "DOIP", "Create",
|
`, "test-002", "10.1000/repo/obj2", "producer-001", "DOIP", 100,
|
||||||
"10.1000", "repo", "NOT_TRUSTLOGGED", time.Now(),
|
"10.1000", "repo", "NOT_TRUSTLOGGED", time.Now(),
|
||||||
"192.168.1.100", "10.0.0.50")
|
"192.168.1.100", "10.0.0.50")
|
||||||
|
|
||||||
@@ -230,10 +230,10 @@ func TestStandaloneStatusFlow(t *testing.T) {
|
|||||||
// 插入未存证记录
|
// 插入未存证记录
|
||||||
_, err = db.ExecContext(ctx, `
|
_, err = db.ExecContext(ctx, `
|
||||||
INSERT INTO operation (
|
INSERT INTO operation (
|
||||||
op_id, doid, producer_id, op_source, op_type,
|
op_id, doid, producer_id, op_source, op_code,
|
||||||
do_prefix, do_repository, trustlog_status, timestamp
|
do_prefix, do_repository, trustlog_status, timestamp
|
||||||
) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)
|
) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)
|
||||||
`, "test-001", "10.1000/repo/obj", "producer-001", "DOIP", "Create",
|
`, "test-001", "10.1000/repo/obj", "producer-001", "DOIP", 100,
|
||||||
"10.1000", "repo", "NOT_TRUSTLOGGED", time.Now())
|
"10.1000", "repo", "NOT_TRUSTLOGGED", time.Now())
|
||||||
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
@@ -307,3 +307,5 @@ func TestStandaloneCursorInit(t *testing.T) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -5,8 +5,8 @@ import (
|
|||||||
"database/sql"
|
"database/sql"
|
||||||
"fmt"
|
"fmt"
|
||||||
|
|
||||||
"go.yandata.net/iod/iod/go-trustlog/api/logger"
|
"go.yandata.net/wangsiyuan/go-trustlog/api/logger"
|
||||||
"go.yandata.net/iod/iod/go-trustlog/api/model"
|
"go.yandata.net/wangsiyuan/go-trustlog/api/model"
|
||||||
)
|
)
|
||||||
|
|
||||||
// PersistenceStrategy 存证策略枚举
|
// PersistenceStrategy 存证策略枚举
|
||||||
|
|||||||
@@ -84,3 +84,5 @@ func TestPersistenceConfig_CustomValues(t *testing.T) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -325,10 +325,10 @@ func TestNullableFields(t *testing.T) {
|
|||||||
ctx := context.Background()
|
ctx := context.Background()
|
||||||
_, err = db.ExecContext(ctx, `
|
_, err = db.ExecContext(ctx, `
|
||||||
INSERT INTO operation (
|
INSERT INTO operation (
|
||||||
op_id, doid, producer_id, op_source, op_type,
|
op_id, doid, producer_id, op_source, op_code,
|
||||||
do_prefix, do_repository, trustlog_status, timestamp
|
do_prefix, do_repository, trustlog_status, timestamp
|
||||||
) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)
|
) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)
|
||||||
`, "test-001", "10.1000/repo/obj", "producer-001", "DOIP", "Create",
|
`, "test-001", "10.1000/repo/obj", "producer-001", "DOIP", 100,
|
||||||
"10.1000", "repo", "NOT_TRUSTLOGGED", time.Now())
|
"10.1000", "repo", "NOT_TRUSTLOGGED", time.Now())
|
||||||
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
@@ -360,3 +360,5 @@ func assertEqual(t *testing.T, got, want interface{}) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -10,10 +10,10 @@ import (
|
|||||||
"google.golang.org/grpc"
|
"google.golang.org/grpc"
|
||||||
"google.golang.org/protobuf/types/known/timestamppb"
|
"google.golang.org/protobuf/types/known/timestamppb"
|
||||||
|
|
||||||
"go.yandata.net/iod/iod/go-trustlog/api/grpc/pb"
|
"go.yandata.net/wangsiyuan/go-trustlog/api/grpc/pb"
|
||||||
"go.yandata.net/iod/iod/go-trustlog/api/logger"
|
"go.yandata.net/wangsiyuan/go-trustlog/api/logger"
|
||||||
"go.yandata.net/iod/iod/go-trustlog/api/model"
|
"go.yandata.net/wangsiyuan/go-trustlog/api/model"
|
||||||
"go.yandata.net/iod/iod/go-trustlog/internal/grpcclient"
|
"go.yandata.net/wangsiyuan/go-trustlog/internal/grpcclient"
|
||||||
)
|
)
|
||||||
|
|
||||||
const (
|
const (
|
||||||
@@ -76,7 +76,7 @@ type ListOperationsRequest struct {
|
|||||||
// 可选过滤条件
|
// 可选过滤条件
|
||||||
Timestamp *time.Time // 操作时间戳
|
Timestamp *time.Time // 操作时间戳
|
||||||
OpSource model.Source // 操作来源
|
OpSource model.Source // 操作来源
|
||||||
OpType string // 操作类型
|
OpCode model.OpCode // 操作代码(int32)
|
||||||
DoPrefix string // 数据前缀
|
DoPrefix string // 数据前缀
|
||||||
DoRepository string // 数据仓库
|
DoRepository string // 数据仓库
|
||||||
}
|
}
|
||||||
@@ -99,7 +99,7 @@ func (c *Client) ListOperations(ctx context.Context, req ListOperationsRequest)
|
|||||||
pbReq := &pb.ListOperationReq{
|
pbReq := &pb.ListOperationReq{
|
||||||
PageSize: req.PageSize,
|
PageSize: req.PageSize,
|
||||||
OpSource: string(req.OpSource),
|
OpSource: string(req.OpSource),
|
||||||
OpType: req.OpType,
|
OpCode: int32(req.OpCode),
|
||||||
DoPrefix: req.DoPrefix,
|
DoPrefix: req.DoPrefix,
|
||||||
DoRepository: req.DoRepository,
|
DoRepository: req.DoRepository,
|
||||||
}
|
}
|
||||||
@@ -139,7 +139,7 @@ func (c *Client) ListOperations(ctx context.Context, req ListOperationsRequest)
|
|||||||
type ValidationRequest struct {
|
type ValidationRequest struct {
|
||||||
Time time.Time // 操作时间戳
|
Time time.Time // 操作时间戳
|
||||||
OpID string // 操作唯一标识符
|
OpID string // 操作唯一标识符
|
||||||
OpType string // 操作类型
|
OpCode model.OpCode // 操作代码(int32)
|
||||||
DoRepository string // 数据仓库标识
|
DoRepository string // 数据仓库标识
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -159,7 +159,7 @@ func (c *Client) ValidateOperation(ctx context.Context, req ValidationRequest) (
|
|||||||
pbReq := &pb.ValidationReq{
|
pbReq := &pb.ValidationReq{
|
||||||
Time: timestamppb.New(req.Time),
|
Time: timestamppb.New(req.Time),
|
||||||
OpId: req.OpID,
|
OpId: req.OpID,
|
||||||
OpType: req.OpType,
|
OpCode: int32(req.OpCode),
|
||||||
DoRepository: req.DoRepository,
|
DoRepository: req.DoRepository,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -9,10 +9,10 @@ import (
|
|||||||
"github.com/stretchr/testify/require"
|
"github.com/stretchr/testify/require"
|
||||||
"google.golang.org/protobuf/types/known/timestamppb"
|
"google.golang.org/protobuf/types/known/timestamppb"
|
||||||
|
|
||||||
"go.yandata.net/iod/iod/go-trustlog/api/grpc/pb"
|
"go.yandata.net/wangsiyuan/go-trustlog/api/grpc/pb"
|
||||||
"go.yandata.net/iod/iod/go-trustlog/api/logger"
|
"go.yandata.net/wangsiyuan/go-trustlog/api/logger"
|
||||||
"go.yandata.net/iod/iod/go-trustlog/api/model"
|
"go.yandata.net/wangsiyuan/go-trustlog/api/model"
|
||||||
"go.yandata.net/iod/iod/go-trustlog/api/queryclient"
|
"go.yandata.net/wangsiyuan/go-trustlog/api/queryclient"
|
||||||
)
|
)
|
||||||
|
|
||||||
// TestNewClient_ErrorCases 测试客户端创建的错误情况
|
// TestNewClient_ErrorCases 测试客户端创建的错误情况
|
||||||
@@ -59,14 +59,14 @@ func TestListOperations_ErrorHandling(t *testing.T) {
|
|||||||
req := queryclient.ListOperationsRequest{
|
req := queryclient.ListOperationsRequest{
|
||||||
PageSize: 10,
|
PageSize: 10,
|
||||||
OpSource: "api",
|
OpSource: "api",
|
||||||
OpType: "create",
|
OpCode: model.OpCodeCreateID,
|
||||||
DoPrefix: "test",
|
DoPrefix: "test",
|
||||||
DoRepository: "repo",
|
DoRepository: "repo",
|
||||||
}
|
}
|
||||||
|
|
||||||
assert.Equal(t, uint64(10), req.PageSize)
|
assert.Equal(t, uint64(10), req.PageSize)
|
||||||
assert.Equal(t, model.Source("api"), req.OpSource)
|
assert.Equal(t, model.Source("api"), req.OpSource)
|
||||||
assert.Equal(t, "create", req.OpType)
|
assert.Equal(t, model.OpCodeCreateID, req.OpCode)
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -74,12 +74,12 @@ func TestListOperations_ErrorHandling(t *testing.T) {
|
|||||||
func TestValidationRequest_Construction(t *testing.T) {
|
func TestValidationRequest_Construction(t *testing.T) {
|
||||||
req := queryclient.ValidationRequest{
|
req := queryclient.ValidationRequest{
|
||||||
OpID: "test-op",
|
OpID: "test-op",
|
||||||
OpType: "create",
|
OpCode: model.OpCodeCreateID,
|
||||||
DoRepository: "test-repo",
|
DoRepository: "test-repo",
|
||||||
}
|
}
|
||||||
|
|
||||||
assert.Equal(t, "test-op", req.OpID)
|
assert.Equal(t, "test-op", req.OpID)
|
||||||
assert.Equal(t, "create", req.OpType)
|
assert.Equal(t, model.OpCodeCreateID, req.OpCode)
|
||||||
assert.Equal(t, "test-repo", req.DoRepository)
|
assert.Equal(t, "test-repo", req.DoRepository)
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -259,7 +259,7 @@ func TestResponseConversion(t *testing.T) {
|
|||||||
pbOp := &pb.OperationData{
|
pbOp := &pb.OperationData{
|
||||||
OpId: "test",
|
OpId: "test",
|
||||||
OpSource: "api",
|
OpSource: "api",
|
||||||
OpType: "create",
|
OpCode: int32(model.OpCodeCreateID),
|
||||||
// Timestamp: nil - 这应该导致转换失败
|
// Timestamp: nil - 这应该导致转换失败
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -272,7 +272,7 @@ func TestResponseConversion(t *testing.T) {
|
|||||||
pbOp := &pb.OperationData{
|
pbOp := &pb.OperationData{
|
||||||
OpId: "test",
|
OpId: "test",
|
||||||
OpSource: "api",
|
OpSource: "api",
|
||||||
OpType: "create",
|
OpCode: int32(model.OpCodeCreateID),
|
||||||
Timestamp: timestamppb.Now(),
|
Timestamp: timestamppb.Now(),
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -395,3 +395,8 @@ func TestListRecordsResponse_Structure(t *testing.T) {
|
|||||||
assert.Len(t, resp.Data, 0)
|
assert.Len(t, resp.Data, 0)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -12,10 +12,10 @@ import (
|
|||||||
"google.golang.org/grpc/test/bufconn"
|
"google.golang.org/grpc/test/bufconn"
|
||||||
"google.golang.org/protobuf/types/known/timestamppb"
|
"google.golang.org/protobuf/types/known/timestamppb"
|
||||||
|
|
||||||
"go.yandata.net/iod/iod/go-trustlog/api/grpc/pb"
|
"go.yandata.net/wangsiyuan/go-trustlog/api/grpc/pb"
|
||||||
"go.yandata.net/iod/iod/go-trustlog/api/logger"
|
"go.yandata.net/wangsiyuan/go-trustlog/api/logger"
|
||||||
"go.yandata.net/iod/iod/go-trustlog/api/model"
|
"go.yandata.net/wangsiyuan/go-trustlog/api/model"
|
||||||
"go.yandata.net/iod/iod/go-trustlog/api/queryclient"
|
"go.yandata.net/wangsiyuan/go-trustlog/api/queryclient"
|
||||||
)
|
)
|
||||||
|
|
||||||
const bufSize = 1024 * 1024
|
const bufSize = 1024 * 1024
|
||||||
@@ -39,7 +39,7 @@ func (s *mockOperationServer) ListOperations(
|
|||||||
OpId: "op-1",
|
OpId: "op-1",
|
||||||
Timestamp: timestamppb.Now(),
|
Timestamp: timestamppb.Now(),
|
||||||
OpSource: "test",
|
OpSource: "test",
|
||||||
OpType: "create",
|
OpCode: int32(model.OpCodeCreateID),
|
||||||
DoPrefix: "test",
|
DoPrefix: "test",
|
||||||
DoRepository: "repo",
|
DoRepository: "repo",
|
||||||
Doid: "test/repo/123",
|
Doid: "test/repo/123",
|
||||||
@@ -50,7 +50,7 @@ func (s *mockOperationServer) ListOperations(
|
|||||||
OpId: "op-2",
|
OpId: "op-2",
|
||||||
Timestamp: timestamppb.Now(),
|
Timestamp: timestamppb.Now(),
|
||||||
OpSource: "test",
|
OpSource: "test",
|
||||||
OpType: "update",
|
OpCode: int32(model.OpCodeCreateID),
|
||||||
DoPrefix: "test",
|
DoPrefix: "test",
|
||||||
DoRepository: "repo",
|
DoRepository: "repo",
|
||||||
Doid: "test/repo/456",
|
Doid: "test/repo/456",
|
||||||
@@ -81,7 +81,7 @@ func (s *mockOperationServer) ValidateOperation(
|
|||||||
OpId: req.GetOpId(),
|
OpId: req.GetOpId(),
|
||||||
Timestamp: req.GetTime(),
|
Timestamp: req.GetTime(),
|
||||||
OpSource: "test",
|
OpSource: "test",
|
||||||
OpType: req.GetOpType(),
|
OpCode: req.GetOpCode(),
|
||||||
DoPrefix: "test",
|
DoPrefix: "test",
|
||||||
DoRepository: req.GetDoRepository(),
|
DoRepository: req.GetDoRepository(),
|
||||||
Doid: "test/repo/123",
|
Doid: "test/repo/123",
|
||||||
@@ -312,14 +312,14 @@ func TestListOperationsRequest(t *testing.T) {
|
|||||||
PreTime: now,
|
PreTime: now,
|
||||||
Timestamp: &now,
|
Timestamp: &now,
|
||||||
OpSource: model.Source("test"),
|
OpSource: model.Source("test"),
|
||||||
OpType: "create",
|
OpCode: model.OpCodeCreateID,
|
||||||
}
|
}
|
||||||
|
|
||||||
assert.Equal(t, uint64(10), req.PageSize)
|
assert.Equal(t, uint64(10), req.PageSize)
|
||||||
assert.Equal(t, now, req.PreTime)
|
assert.Equal(t, now, req.PreTime)
|
||||||
assert.NotNil(t, req.Timestamp)
|
assert.NotNil(t, req.Timestamp)
|
||||||
assert.Equal(t, "test", string(req.OpSource))
|
assert.Equal(t, "test", string(req.OpSource))
|
||||||
assert.Equal(t, "create", string(req.OpType))
|
assert.Equal(t, model.OpCodeCreateID, req.OpCode)
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestValidationRequest(t *testing.T) {
|
func TestValidationRequest(t *testing.T) {
|
||||||
@@ -328,13 +328,13 @@ func TestValidationRequest(t *testing.T) {
|
|||||||
req := queryclient.ValidationRequest{
|
req := queryclient.ValidationRequest{
|
||||||
Time: now,
|
Time: now,
|
||||||
OpID: "op-123",
|
OpID: "op-123",
|
||||||
OpType: "create",
|
OpCode: model.OpCodeCreateID,
|
||||||
DoRepository: "repo",
|
DoRepository: "repo",
|
||||||
}
|
}
|
||||||
|
|
||||||
assert.Equal(t, now, req.Time)
|
assert.Equal(t, now, req.Time)
|
||||||
assert.Equal(t, "op-123", req.OpID)
|
assert.Equal(t, "op-123", req.OpID)
|
||||||
assert.Equal(t, "create", req.OpType)
|
assert.Equal(t, model.OpCodeCreateID, req.OpCode)
|
||||||
assert.Equal(t, "repo", req.DoRepository)
|
assert.Equal(t, "repo", req.DoRepository)
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -420,7 +420,7 @@ func TestIntegration_ValidateOperation(t *testing.T) { //nolint:dupl // 测试
|
|||||||
resultChan, err := client.ValidateOperation(ctx, queryclient.ValidationRequest{
|
resultChan, err := client.ValidateOperation(ctx, queryclient.ValidationRequest{
|
||||||
Time: time.Now(),
|
Time: time.Now(),
|
||||||
OpID: "op-test",
|
OpID: "op-test",
|
||||||
OpType: "create",
|
OpCode: model.OpCodeCreateID,
|
||||||
DoRepository: "repo",
|
DoRepository: "repo",
|
||||||
})
|
})
|
||||||
|
|
||||||
@@ -462,7 +462,7 @@ func TestIntegration_ValidateOperationSync(t *testing.T) {
|
|||||||
queryclient.ValidationRequest{
|
queryclient.ValidationRequest{
|
||||||
Time: time.Now(),
|
Time: time.Now(),
|
||||||
OpID: "op-test",
|
OpID: "op-test",
|
||||||
OpType: "create",
|
OpCode: model.OpCodeCreateID,
|
||||||
DoRepository: "repo",
|
DoRepository: "repo",
|
||||||
},
|
},
|
||||||
func(r *model.ValidationResult) {
|
func(r *model.ValidationResult) {
|
||||||
@@ -625,3 +625,8 @@ func TestClient_Close(t *testing.T) {
|
|||||||
err = client.Close()
|
err = client.Close()
|
||||||
require.NoError(t, err)
|
require.NoError(t, err)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
1906
coverage_all
Normal file
1906
coverage_all
Normal file
File diff suppressed because it is too large
Load Diff
1382
coverage_api
Normal file
1382
coverage_api
Normal file
File diff suppressed because it is too large
Load Diff
1906
coverage_complete
Normal file
1906
coverage_complete
Normal file
File diff suppressed because it is too large
Load Diff
1906
coverage_final
Normal file
1906
coverage_final
Normal file
File diff suppressed because it is too large
Load Diff
554
coverage_model
Normal file
554
coverage_model
Normal file
@@ -0,0 +1,554 @@
|
|||||||
|
mode: set
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/config_signer.go:25.97,26.19 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/config_signer.go:26.19,28.3 1 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/config_signer.go:30.2,50.20 5 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/config_signer.go:55.76,60.2 2 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/config_signer.go:63.58,64.28 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/config_signer.go:64.28,66.3 1 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/config_signer.go:68.2,75.37 3 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/config_signer.go:76.20,79.17 2 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/config_signer.go:79.17,84.4 2 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/config_signer.go:85.3,88.24 2 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/config_signer.go:90.10,93.23 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/config_signer.go:93.23,95.18 2 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/config_signer.go:95.18,97.5 1 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/config_signer.go:99.4,100.18 2 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/config_signer.go:100.18,106.5 2 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/config_signer.go:107.4,107.23 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/config_signer.go:110.3,111.17 2 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/config_signer.go:111.17,117.4 2 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/config_signer.go:119.3,124.24 2 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/config_signer.go:129.69,130.27 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/config_signer.go:130.27,132.3 1 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/config_signer.go:134.2,142.37 3 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/config_signer.go:143.20,146.17 2 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/config_signer.go:146.17,149.19 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/config_signer.go:149.19,153.5 2 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/config_signer.go:155.4,156.21 2 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/config_signer.go:158.3,159.19 2 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/config_signer.go:161.10,164.22 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/config_signer.go:164.22,166.18 2 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/config_signer.go:166.18,168.5 1 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/config_signer.go:170.4,171.18 2 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/config_signer.go:171.18,177.5 2 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/config_signer.go:178.4,178.21 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/config_signer.go:181.3,182.17 2 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/config_signer.go:182.17,188.4 2 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/config_signer.go:190.3,190.9 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/config_signer.go:190.9,194.4 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/config_signer.go:194.9,198.4 1 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/config_signer.go:200.3,200.17 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/config_signer.go:205.58,207.2 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/converter.go:13.63,14.17 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/converter.go:14.17,16.3 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/converter.go:19.2,19.32 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/converter.go:19.32,21.3 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/converter.go:22.2,39.57 3 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/converter.go:39.57,41.3 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/converter.go:42.2,42.60 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/converter.go:42.60,44.3 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/converter.go:46.2,46.23 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/converter.go:50.59,51.15 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/converter.go:51.15,53.3 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/converter.go:56.2,72.31 3 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/converter.go:72.31,74.3 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/converter.go:75.2,75.32 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/converter.go:75.32,77.3 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/converter.go:79.2,79.18 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/converter.go:83.93,84.18 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/converter.go:84.18,86.3 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/converter.go:88.2,96.28 2 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/converter.go:96.28,98.17 2 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/converter.go:98.17,100.4 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/converter.go:101.3,101.19 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/converter.go:104.2,104.20 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/converter.go:108.64,109.18 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/converter.go:109.18,111.3 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/converter.go:114.2,124.33 2 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/converter.go:124.33,126.3 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/converter.go:128.2,128.20 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/converter.go:132.60,133.16 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/converter.go:133.16,135.3 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/converter.go:138.2,150.19 3 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/converter.go:163.54,165.2 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/converter.go:168.53,170.2 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/converter.go:173.50,175.2 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/converter.go:178.111,179.18 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/converter.go:179.18,181.3 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/converter.go:183.2,191.30 2 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/converter.go:191.30,193.17 2 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/converter.go:193.17,195.4 1 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/converter.go:196.3,196.20 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/converter.go:199.2,199.20 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/crypto_config.go:48.13,52.2 2 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/crypto_config.go:55.56,56.19 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/crypto_config.go:56.19,58.3 1 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/crypto_config.go:61.2,61.42 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/crypto_config.go:61.42,63.3 1 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/crypto_config.go:65.2,72.12 5 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/crypto_config.go:76.44,80.25 3 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/crypto_config.go:80.25,82.3 1 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/crypto_config.go:83.2,83.21 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/crypto_config.go:87.41,89.30 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/crypto_config.go:90.38,90.38 0 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/crypto_config.go:92.10,93.77 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/crypto_config.go:96.2,96.12 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/crypto_config.go:100.63,101.11 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/crypto_config.go:102.20,103.23 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/crypto_config.go:104.24,105.27 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/crypto_config.go:106.10,107.61 1 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/crypto_config.go:119.62,120.19 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/crypto_config.go:120.19,122.3 1 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/crypto_config.go:124.2,130.16 4 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/crypto_config.go:130.16,132.3 1 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/crypto_config.go:134.2,135.16 2 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/crypto_config.go:135.16,141.3 2 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/crypto_config.go:143.2,151.8 2 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/crypto_config.go:155.70,156.17 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/crypto_config.go:156.17,158.3 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/crypto_config.go:160.2,167.16 4 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/crypto_config.go:167.16,173.3 2 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/crypto_config.go:175.2,179.23 2 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/crypto_config.go:183.65,192.16 4 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/crypto_config.go:192.16,198.3 2 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/crypto_config.go:200.2,200.8 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/crypto_config.go:200.8,204.3 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/crypto_config.go:204.8,208.3 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/crypto_config.go:210.2,210.16 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/crypto_config.go:214.56,215.23 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/crypto_config.go:215.23,217.3 1 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/crypto_config.go:218.2,218.32 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/crypto_config.go:222.55,223.22 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/crypto_config.go:223.22,225.3 1 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/crypto_config.go:226.2,226.31 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/crypto_config.go:230.90,232.16 2 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/crypto_config.go:232.16,234.3 1 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/crypto_config.go:236.2,236.48 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/crypto_config.go:240.88,242.16 2 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/crypto_config.go:242.16,244.3 1 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/crypto_config.go:246.2,246.47 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/crypto_config.go:250.30,252.2 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/crypto_config.go:255.87,256.19 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/crypto_config.go:256.19,258.3 1 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/crypto_config.go:260.2,267.16 4 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/crypto_config.go:267.16,269.3 1 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/crypto_config.go:271.2,272.16 2 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/crypto_config.go:272.16,274.3 1 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/crypto_config.go:276.2,280.23 2 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/crypto_config.go:284.97,285.19 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/crypto_config.go:285.19,287.3 1 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/crypto_config.go:289.2,296.16 4 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/crypto_config.go:296.16,298.3 1 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/crypto_config.go:300.2,301.16 2 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/crypto_config.go:301.16,303.3 1 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/crypto_config.go:305.2,309.16 2 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/envelope.go:31.54,39.2 3 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/envelope.go:43.72,52.2 3 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/envelope.go:55.50,63.2 3 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/envelope.go:68.56,72.2 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/envelope.go:80.53,83.16 3 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/envelope.go:83.16,86.3 2 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/envelope.go:88.2,94.64 4 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/envelope.go:94.64,100.3 2 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/envelope.go:102.2,105.57 2 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/envelope.go:105.57,111.3 2 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/envelope.go:113.2,116.52 2 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/envelope.go:116.52,122.3 2 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/envelope.go:124.2,129.20 3 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/envelope.go:135.56,140.20 3 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/envelope.go:140.20,143.3 2 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/envelope.go:145.2,150.16 5 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/envelope.go:150.16,155.3 2 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/envelope.go:156.2,163.16 4 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/envelope.go:163.16,168.3 2 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/envelope.go:169.2,176.16 4 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/envelope.go:176.16,181.3 2 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/envelope.go:182.2,189.16 4 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/envelope.go:189.16,202.3 2 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/envelope.go:206.2,215.8 2 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/envelope.go:224.63,225.20 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/envelope.go:225.20,227.3 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/envelope.go:229.2,233.16 4 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/envelope.go:233.16,235.3 1 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/envelope.go:237.2,237.24 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/envelope.go:243.70,244.20 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/envelope.go:244.20,246.3 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/envelope.go:248.2,252.16 4 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/envelope.go:252.16,254.3 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/envelope.go:257.2,258.16 2 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/envelope.go:258.16,260.3 1 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/envelope.go:263.2,264.16 2 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/envelope.go:264.16,266.3 1 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/envelope.go:269.2,270.16 2 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/envelope.go:270.16,274.3 1 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/envelope.go:278.2,278.32 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/envelope.go:287.73,292.14 3 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/envelope.go:292.14,295.3 2 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/envelope.go:297.2,298.22 2 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/envelope.go:298.22,301.3 2 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/envelope.go:302.2,309.16 4 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/envelope.go:309.16,315.3 2 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/envelope.go:316.2,322.26 2 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/envelope.go:322.26,325.3 2 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/envelope.go:326.2,331.16 3 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/envelope.go:331.16,337.3 2 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/envelope.go:338.2,354.29 4 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/envelope.go:359.55,365.14 3 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/envelope.go:365.14,368.3 2 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/envelope.go:370.2,371.16 2 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/envelope.go:371.16,376.3 2 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/envelope.go:377.2,386.70 3 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/envelope.go:386.70,392.3 2 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/envelope.go:393.2,396.12 2 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/envelope.go:404.77,406.2 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/envelope.go:409.58,411.53 2 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/envelope.go:411.53,413.3 1 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/envelope.go:414.2,414.17 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/envelope.go:422.75,424.2 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/envelope.go:427.52,429.57 2 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/envelope.go:429.57,431.3 1 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/envelope.go:432.2,432.21 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/envelope.go:442.76,443.26 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/envelope.go:443.26,445.3 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/envelope.go:447.2,448.53 2 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/envelope.go:454.84,459.26 3 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/envelope.go:459.26,462.3 2 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/envelope.go:464.2,465.16 2 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/envelope.go:465.16,470.3 2 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/envelope.go:471.2,482.16 4 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/envelope.go:482.16,488.3 2 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/envelope.go:490.2,490.12 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/envelope.go:490.12,495.3 2 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/envelope.go:497.2,500.17 2 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/hash.go:69.47,71.48 2 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/hash.go:71.48,74.3 2 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/hash.go:75.2,80.48 4 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/hash.go:80.48,82.3 1 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/hash.go:84.2,86.13 3 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/hash.go:90.47,92.2 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/hash.go:95.42,96.20 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/hash.go:97.11,98.19 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/hash.go:99.12,100.20 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/hash.go:101.14,102.28 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/hash.go:103.14,104.25 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/hash.go:105.14,106.28 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/hash.go:107.14,108.25 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/hash.go:109.17,110.32 1 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/hash.go:111.17,112.32 1 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/hash.go:115.18,116.27 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/hash.go:117.14,118.22 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/hash.go:119.15,121.16 2 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/hash.go:122.15,124.16 2 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/hash.go:125.11,126.19 1 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/hash.go:127.17,128.25 1 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/hash.go:129.15,130.23 1 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/hash.go:131.15,132.23 1 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/hash.go:133.15,134.23 1 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/hash.go:135.15,136.23 1 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/hash.go:138.10,139.25 1 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/hash.go:144.87,146.44 2 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/hash.go:146.44,148.3 1 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/hash.go:149.2,149.49 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/hash.go:153.60,154.49 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/hash.go:154.49,157.3 2 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/hash.go:161.59,162.49 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/hash.go:162.49,165.3 2 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/hash.go:169.62,171.46 2 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/hash.go:171.46,173.3 1 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/hash.go:174.2,174.29 1 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/hash.go:178.81,180.16 2 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/hash.go:180.16,182.3 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/hash.go:183.2,185.49 2 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/hash.go:185.49,188.3 2 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/hash.go:192.65,193.49 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/hash.go:193.49,196.3 2 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/hash.go:200.32,211.33 4 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/hash.go:211.33,215.3 3 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/hash.go:219.40,222.2 2 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/hash.go:225.50,228.2 2 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/hash.go:231.73,233.16 2 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/hash.go:233.16,235.3 1 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/hash.go:236.2,236.57 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/hash.go:240.102,242.16 2 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/hash.go:242.16,244.3 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/hash.go:245.2,245.57 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/hash.go:249.43,251.2 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/hash.go:265.42,267.2 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/operation.go:65.33,66.11 1 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/operation.go:67.22,68.20 1 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/operation.go:69.24,70.22 1 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/operation.go:71.25,72.24 1 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/operation.go:73.22,74.21 1 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/operation.go:75.22,76.21 1 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/operation.go:77.24,78.23 1 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/operation.go:79.27,80.26 1 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/operation.go:81.27,82.26 1 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/operation.go:83.21,84.20 1 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/operation.go:85.33,86.33 1 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/operation.go:87.31,88.30 1 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/operation.go:89.28,90.27 1 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/operation.go:91.24,92.23 1 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/operation.go:93.26,94.25 1 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/operation.go:95.31,96.31 1 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/operation.go:97.26,98.25 1 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/operation.go:99.30,100.29 1 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/operation.go:101.22,102.21 1 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/operation.go:103.22,104.21 1 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/operation.go:105.26,106.26 1 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/operation.go:107.27,108.27 1 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/operation.go:109.10,110.39 1 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/operation.go:115.32,127.35 2 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/operation.go:127.35,128.17 1 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/operation.go:128.17,130.4 1 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/operation.go:132.2,132.14 1 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/operation.go:176.23,199.60 5 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/operation.go:199.60,204.3 2 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/operation.go:205.2,206.62 2 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/operation.go:206.62,211.3 2 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/operation.go:212.2,213.42 2 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/operation.go:213.42,218.3 2 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/operation.go:220.2,223.16 2 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/operation.go:230.34,232.2 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/operation.go:240.41,242.2 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/operation.go:244.42,246.2 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/operation.go:248.44,250.2 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/operation.go:254.65,261.16 5 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/operation.go:261.16,267.3 2 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/operation.go:269.2,274.16 3 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/operation.go:274.16,280.3 2 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/operation.go:282.2,289.8 2 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/operation.go:313.54,327.2 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/operation.go:330.62,331.19 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/operation.go:331.19,333.3 1 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/operation.go:335.2,335.24 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/operation.go:335.24,337.3 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/operation.go:338.2,338.29 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/operation.go:338.29,340.3 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/operation.go:341.2,341.28 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/operation.go:341.28,343.3 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/operation.go:344.2,344.26 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/operation.go:344.26,346.3 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/operation.go:347.2,347.28 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/operation.go:347.28,349.3 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/operation.go:350.2,350.32 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/operation.go:350.32,352.3 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/operation.go:353.2,353.24 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/operation.go:353.24,355.3 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/operation.go:356.2,356.30 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/operation.go:356.30,358.3 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/operation.go:359.2,359.27 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/operation.go:359.27,361.3 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/operation.go:362.2,362.35 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/operation.go:362.35,365.3 2 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/operation.go:366.2,366.36 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/operation.go:366.36,369.3 2 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/operation.go:375.53,380.21 3 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/operation.go:380.21,385.3 2 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/operation.go:387.2,393.16 4 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/operation.go:393.16,399.3 2 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/operation.go:401.2,407.20 3 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/operation.go:411.44,413.2 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/operation.go:417.56,422.20 3 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/operation.go:422.20,425.3 2 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/operation.go:427.2,430.56 3 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/operation.go:430.56,435.3 2 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/operation.go:437.2,444.12 4 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/operation.go:454.82,460.17 3 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/operation.go:460.17,464.3 3 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/operation.go:466.2,469.26 3 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/operation.go:470.14,471.14 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/operation.go:471.14,475.4 3 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/operation.go:476.3,479.4 2 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/operation.go:480.14,481.18 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/operation.go:481.18,485.4 3 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/operation.go:486.3,489.4 2 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/operation.go:490.10,494.51 2 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/operation.go:497.2,501.16 3 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/operation.go:501.16,506.3 2 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/operation.go:508.2,512.12 3 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/operation.go:517.65,519.2 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/operation.go:523.66,525.2 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/operation.go:532.61,535.2 2 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/operation.go:538.62,541.2 2 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/operation.go:550.42,557.18 3 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/operation.go:557.18,562.3 2 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/operation.go:564.2,564.21 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/operation.go:564.21,567.3 2 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/operation.go:569.2,570.48 2 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/operation.go:570.48,576.3 2 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/operation.go:578.2,579.57 2 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/operation.go:579.57,585.3 2 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/operation.go:587.2,590.12 2 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/proof.go:25.50,26.20 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/proof.go:26.20,28.3 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/proof.go:30.2,36.62 2 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/proof.go:36.62,38.35 2 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/proof.go:38.35,44.4 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/proof.go:48.2,48.62 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/proof.go:48.62,50.35 2 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/proof.go:50.35,56.4 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/proof.go:60.2,60.71 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/proof.go:60.71,62.38 2 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/proof.go:62.38,68.4 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/proof.go:72.2,72.71 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/proof.go:72.71,74.38 2 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/proof.go:74.38,80.4 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/proof.go:83.2,83.14 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/proof.go:87.46,88.18 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/proof.go:88.18,90.3 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/proof.go:92.2,98.29 2 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/proof.go:98.29,100.39 2 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/proof.go:100.39,106.4 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/proof.go:110.2,110.29 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/proof.go:110.29,112.39 2 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/proof.go:112.39,118.4 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/proof.go:122.2,122.32 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/proof.go:122.32,124.42 2 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/proof.go:124.42,130.4 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/proof.go:134.2,134.32 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/proof.go:134.32,136.42 2 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/proof.go:136.42,142.4 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/proof.go:145.2,145.16 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/record.go:39.20,58.46 5 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/record.go:58.46,63.3 2 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/record.go:65.2,68.20 2 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/record.go:75.31,77.2 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/record.go:85.38,87.2 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/record.go:89.39,91.2 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/record.go:93.41,95.2 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/record.go:99.62,106.16 5 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/record.go:106.16,112.3 2 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/record.go:114.2,119.16 3 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/record.go:119.16,125.3 2 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/record.go:127.2,134.8 2 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/record.go:154.45,164.2 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/record.go:167.54,168.20 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/record.go:168.20,170.3 1 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/record.go:172.2,172.23 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/record.go:172.23,174.3 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/record.go:175.2,175.29 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/record.go:175.29,177.3 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/record.go:178.2,178.31 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/record.go:178.31,180.3 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/record.go:181.2,181.30 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/record.go:181.30,183.3 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/record.go:184.2,184.29 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/record.go:184.29,186.3 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/record.go:187.2,187.26 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/record.go:187.26,189.3 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/record.go:190.2,190.27 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/record.go:190.27,192.3 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/record.go:198.50,203.21 3 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/record.go:203.21,208.3 2 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/record.go:210.2,216.16 4 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/record.go:216.16,222.3 2 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/record.go:224.2,230.20 3 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/record.go:235.53,240.20 3 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/record.go:240.20,243.3 2 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/record.go:245.2,248.57 3 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/record.go:248.57,253.3 2 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/record.go:255.2,262.12 4 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/record.go:266.39,268.2 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/record.go:271.41,273.2 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/record.go:281.39,287.16 3 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/record.go:287.16,292.3 2 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/record.go:294.2,294.26 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/record.go:294.26,299.3 2 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/record.go:301.2,302.57 2 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/record.go:302.57,308.3 2 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/record.go:310.2,313.12 2 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/record.go:321.56,324.2 2 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/record.go:327.61,330.2 2 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/record.go:333.56,336.2 2 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/record.go:339.50,342.2 2 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/record.go:345.52,348.2 2 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/signature.go:28.67,35.29 3 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/signature.go:35.29,38.3 2 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/signature.go:40.2,40.20 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/signature.go:40.20,43.3 2 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/signature.go:46.2,48.16 3 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/signature.go:48.16,54.3 2 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/signature.go:56.2,56.23 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/signature.go:56.23,59.3 2 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/signature.go:62.2,64.16 3 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/signature.go:64.16,70.3 2 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/signature.go:72.2,76.23 2 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/signature.go:89.74,97.28 3 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/signature.go:97.28,100.3 2 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/signature.go:102.2,102.20 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/signature.go:102.20,105.3 2 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/signature.go:107.2,107.25 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/signature.go:107.25,110.3 2 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/signature.go:113.2,115.16 3 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/signature.go:115.16,121.3 2 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/signature.go:124.2,126.16 3 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/signature.go:126.16,133.3 2 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/signature.go:134.2,134.9 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/signature.go:134.9,143.3 2 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/signature.go:144.2,147.18 2 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/signature.go:155.48,159.16 4 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/signature.go:159.16,162.3 2 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/signature.go:164.2,164.17 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/signature.go:164.17,167.3 2 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/signature.go:169.2,173.8 2 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/signature.go:184.65,187.17 3 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/signature.go:187.17,190.3 2 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/signature.go:192.2,196.17 3 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/signature.go:201.62,206.19 3 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/signature.go:206.19,209.3 2 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/signature.go:211.2,212.16 2 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/signature.go:212.16,218.3 2 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/signature.go:219.2,220.17 2 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/signature.go:225.62,228.16 3 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/signature.go:228.16,231.3 2 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/signature.go:233.2,237.17 3 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/signature.go:243.60,248.19 3 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/signature.go:248.19,251.3 2 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/signature.go:253.2,254.16 2 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/signature.go:254.16,260.3 2 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/signature.go:262.2,263.23 2 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/signature.go:268.63,273.23 3 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/signature.go:273.23,276.3 2 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/signature.go:278.2,279.16 2 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/signature.go:279.16,285.3 2 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/signature.go:286.2,290.23 2 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/signature.go:296.63,302.23 3 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/signature.go:302.23,305.3 2 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/signature.go:308.2,309.16 2 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/signature.go:309.16,315.3 2 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/signature.go:316.2,320.23 2 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/signature.go:326.68,332.22 3 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/signature.go:332.22,335.3 2 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/signature.go:337.2,338.16 2 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/signature.go:338.16,344.3 2 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/signature.go:345.2,345.8 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/signature.go:345.8,349.3 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/signature.go:349.8,354.3 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/signature.go:355.2,355.16 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/signature.go:361.68,368.22 3 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/signature.go:368.22,371.3 2 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/signature.go:374.2,375.16 2 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/signature.go:375.16,381.3 2 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/signature.go:382.2,382.8 1 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/signature.go:382.8,386.3 1 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/signature.go:386.8,391.3 1 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/signature.go:392.2,392.16 1 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/signer.go:52.60,62.2 3 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/signer.go:65.55,72.16 4 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/signer.go:72.16,78.3 2 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/signer.go:79.2,83.23 2 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/signer.go:89.66,97.16 4 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/signer.go:97.16,104.3 2 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/signer.go:105.2,105.11 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/signer.go:105.11,109.3 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/signer.go:109.8,114.3 1 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/signer.go:115.2,115.19 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/signer.go:124.32,128.2 3 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/signer.go:131.55,140.2 5 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/signer.go:143.66,150.11 4 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/signer.go:150.11,154.3 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/signer.go:154.8,159.3 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/signer.go:160.2,160.19 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/validation.go:20.48,22.2 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/validation.go:25.47,27.2 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/model/validation.go:30.44,32.2 1 1
|
||||||
525
coverage_persistence
Normal file
525
coverage_persistence
Normal file
@@ -0,0 +1,525 @@
|
|||||||
|
mode: set
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/client.go:20.93,22.2 1 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/client.go:58.108,59.26 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/client.go:59.26,61.3 1 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/client.go:64.2,65.16 2 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/client.go:65.16,70.3 2 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/client.go:73.2,76.76 2 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/client.go:76.76,79.3 2 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/client.go:81.2,95.93 4 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/client.go:95.93,97.39 2 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/client.go:97.39,99.4 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/client.go:99.9,101.4 1 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/client.go:104.3,107.56 3 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/client.go:107.56,110.4 2 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/client.go:112.3,115.4 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/client.go:119.2,119.92 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/client.go:119.92,121.38 2 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/client.go:121.38,123.4 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/client.go:123.9,125.4 1 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/client.go:127.3,133.4 3 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/client.go:136.2,142.20 2 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/client.go:147.101,148.22 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/client.go:148.22,151.3 2 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/client.go:153.2,161.18 3 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/client.go:162.22,164.41 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/client.go:166.29,168.48 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/client.go:170.28,172.47 1 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/client.go:174.10,175.75 1 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/client.go:180.98,186.64 2 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/client.go:186.64,192.3 2 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/client.go:194.2,197.12 2 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/client.go:201.105,207.64 2 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/client.go:207.64,213.3 2 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/client.go:216.2,216.60 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/client.go:216.60,223.3 2 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/client.go:226.2,226.106 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/client.go:226.106,232.3 1 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/client.go:235.2,240.12 3 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/client.go:244.104,250.60 2 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/client.go:250.60,256.3 2 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/client.go:258.2,261.12 2 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/client.go:265.102,274.16 4 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/client.go:274.16,280.3 2 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/client.go:282.2,293.87 4 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/client.go:293.87,300.3 2 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/client.go:302.2,306.12 2 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/client.go:310.92,311.19 1 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/client.go:311.19,314.3 2 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/client.go:316.2,325.16 4 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/client.go:325.16,331.3 2 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/client.go:333.2,334.84 2 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/client.go:334.84,340.3 2 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/client.go:342.2,346.12 2 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/client.go:350.56,352.2 1 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/client.go:355.62,357.2 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/client.go:360.43,365.27 3 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/client.go:365.27,366.50 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/client.go:366.50,370.4 1 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/client.go:374.2,374.26 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/client.go:374.26,376.3 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/client.go:379.2,379.42 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/client.go:379.42,384.3 2 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/client.go:387.2,387.24 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/client.go:387.24,388.45 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/client.go:388.45,393.4 2 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/client.go:396.2,397.12 2 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/client.go:401.125,402.22 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/client.go:402.22,404.3 1 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/client.go:406.2,407.17 2 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/client.go:407.17,409.3 1 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/client.go:411.2,411.29 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/client.go:415.109,416.22 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/client.go:416.22,418.3 1 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/client.go:420.2,421.17 2 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/client.go:421.17,423.3 1 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/client.go:425.2,425.29 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/client.go:429.122,430.22 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/client.go:430.22,432.3 1 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/client.go:434.2,435.17 2 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/client.go:435.17,437.3 1 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/client.go:439.2,439.33 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/config.go:26.55,35.2 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/config.go:38.46,40.16 2 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/config.go:40.16,42.3 1 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/config.go:45.2,51.34 5 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/config.go:51.34,54.3 2 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/config.go:56.2,56.16 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/cursor_worker.go:34.54,49.2 1 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/cursor_worker.go:66.53,74.2 1 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/cursor_worker.go:87.92,88.30 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/cursor_worker.go:88.30,90.3 1 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/cursor_worker.go:91.2,91.27 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/cursor_worker.go:91.27,93.3 1 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/cursor_worker.go:94.2,94.28 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/cursor_worker.go:94.28,96.3 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/cursor_worker.go:97.2,97.33 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/cursor_worker.go:97.33,99.3 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/cursor_worker.go:103.2,108.3 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/cursor_worker.go:112.57,113.23 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/cursor_worker.go:113.23,116.3 2 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/cursor_worker.go:118.2,125.42 2 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/cursor_worker.go:125.42,127.3 1 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/cursor_worker.go:130.2,132.12 2 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/cursor_worker.go:136.56,140.2 3 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/cursor_worker.go:143.49,147.6 3 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/cursor_worker.go:147.6,148.10 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/cursor_worker.go:149.19,151.10 2 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/cursor_worker.go:152.19,153.15 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/cursor_worker.go:159.50,166.16 3 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/cursor_worker.go:166.16,171.3 2 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/cursor_worker.go:173.2,182.16 3 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/cursor_worker.go:182.16,187.3 2 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/cursor_worker.go:188.2,191.16 3 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/cursor_worker.go:191.16,196.3 2 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/cursor_worker.go:198.2,198.26 1 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/cursor_worker.go:198.26,202.3 3 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/cursor_worker.go:204.2,211.32 3 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/cursor_worker.go:211.32,212.42 1 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/cursor_worker.go:212.42,214.4 1 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/cursor_worker.go:217.3,217.20 1 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/cursor_worker.go:217.20,218.38 1 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/cursor_worker.go:218.38,224.5 2 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/cursor_worker.go:227.4,230.18 2 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/cursor_worker.go:230.18,235.5 2 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/cursor_worker.go:236.4,236.23 1 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/cursor_worker.go:241.2,241.36 1 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/cursor_worker.go:241.36,246.3 2 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/cursor_worker.go:248.2,251.3 1 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/cursor_worker.go:255.62,266.40 5 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/cursor_worker.go:266.40,270.3 1 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/cursor_worker.go:272.2,273.24 2 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/cursor_worker.go:273.24,280.3 2 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/cursor_worker.go:280.8,286.3 2 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/cursor_worker.go:288.2,289.16 2 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/cursor_worker.go:289.16,291.3 1 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/cursor_worker.go:293.2,298.12 2 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/cursor_worker.go:302.71,306.16 3 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/cursor_worker.go:306.16,308.3 1 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/cursor_worker.go:311.2,311.18 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/cursor_worker.go:311.18,313.3 1 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/cursor_worker.go:315.2,315.20 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/cursor_worker.go:319.78,323.16 3 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/cursor_worker.go:323.16,325.3 1 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/cursor_worker.go:327.2,332.12 2 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/cursor_worker.go:336.136,353.16 3 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/cursor_worker.go:353.16,355.3 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/cursor_worker.go:356.2,360.18 4 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/cursor_worker.go:360.18,371.17 5 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/cursor_worker.go:371.17,373.4 1 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/cursor_worker.go:376.3,376.21 1 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/cursor_worker.go:376.21,378.4 1 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/cursor_worker.go:379.3,379.21 1 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/cursor_worker.go:379.21,381.4 1 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/cursor_worker.go:382.3,385.33 3 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/cursor_worker.go:388.2,388.31 1 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/cursor_worker.go:392.41,393.14 1 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/cursor_worker.go:393.14,395.3 1 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/cursor_worker.go:396.2,396.11 1 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/cursor_worker.go:400.106,415.16 3 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/cursor_worker.go:415.16,417.3 1 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/cursor_worker.go:418.2,421.18 3 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/cursor_worker.go:421.18,432.17 5 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/cursor_worker.go:432.17,434.4 1 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/cursor_worker.go:437.3,437.21 1 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/cursor_worker.go:437.21,439.4 1 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/cursor_worker.go:440.3,440.21 1 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/cursor_worker.go:440.21,442.4 1 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/cursor_worker.go:443.3,445.38 2 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/cursor_worker.go:448.2,448.24 1 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/cursor_worker.go:453.104,460.16 3 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/cursor_worker.go:460.16,469.100 4 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/cursor_worker.go:469.100,474.4 1 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/cursor_worker.go:476.3,476.15 1 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/cursor_worker.go:480.2,482.16 3 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/cursor_worker.go:482.16,488.3 2 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/cursor_worker.go:490.2,490.14 1 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/cursor_worker.go:490.14,496.3 2 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/cursor_worker.go:498.2,504.13 3 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/cursor_worker.go:508.83,515.67 3 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/cursor_worker.go:515.67,516.18 1 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/cursor_worker.go:516.18,521.4 1 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/cursor_worker.go:523.3,524.17 2 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/cursor_worker.go:524.17,526.83 1 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/cursor_worker.go:526.83,531.5 1 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/cursor_worker.go:531.10,535.5 1 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/cursor_worker.go:538.4,539.10 2 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/cursor_worker.go:542.3,543.41 2 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/cursor_worker.go:543.41,545.4 1 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/cursor_worker.go:549.2,556.87 4 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/cursor_worker.go:556.87,561.3 1 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/cursor_worker.go:564.2,564.60 1 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/cursor_worker.go:568.84,570.22 2 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/cursor_worker.go:570.22,572.3 1 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/cursor_worker.go:575.2,578.56 2 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/cursor_worker.go:578.56,580.3 1 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/cursor_worker.go:582.2,582.12 1 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/cursor_worker.go:586.109,589.2 2 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:143.42,144.15 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:144.15,146.3 1 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:148.2,150.70 3 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:150.70,152.3 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:153.2,153.18 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:157.68,158.30 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:158.30,162.35 3 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:162.35,163.23 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:163.23,166.5 2 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:166.10,168.5 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:170.3,170.16 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:173.2,173.14 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:177.80,184.2 2 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:187.72,189.2 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:191.107,193.2 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:195.121,206.31 3 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:206.31,208.3 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:209.2,209.32 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:209.32,211.3 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:212.2,212.24 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:212.24,214.3 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:215.2,215.24 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:215.24,217.3 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:219.2,237.15 3 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:237.15,239.3 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:239.8,241.3 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:243.2,243.16 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:243.16,249.3 2 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:251.2,255.12 2 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:258.107,260.2 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:262.121,266.15 3 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:266.15,268.3 1 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:268.8,270.3 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:272.2,272.16 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:272.16,279.3 2 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:281.2,285.12 2 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:288.116,320.26 6 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:320.26,322.3 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:323.2,323.16 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:323.16,329.3 2 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:331.2,331.19 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:331.19,333.3 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:334.2,334.20 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:334.20,336.3 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:337.2,337.20 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:337.20,339.3 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:340.2,340.20 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:340.20,342.3 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:344.2,344.44 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:349.139,367.15 4 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:367.15,369.3 1 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:369.8,371.3 1 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:373.2,373.16 1 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:373.16,378.3 2 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:379.2,383.18 4 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:383.18,402.17 4 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:402.17,406.12 2 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:409.3,409.20 1 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:409.20,411.4 1 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:412.3,412.21 1 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:412.21,414.4 1 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:415.3,415.21 1 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:415.21,417.4 1 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:418.3,418.21 1 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:418.21,420.4 1 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:422.3,423.33 2 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:426.2,426.35 1 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:426.35,431.3 2 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:433.2,433.31 1 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:438.153,448.15 4 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:448.15,450.3 1 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:450.8,452.3 1 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:454.2,454.16 1 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:454.16,462.3 2 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:464.2,465.16 2 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:465.16,467.3 1 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:470.2,470.23 1 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:470.23,476.3 2 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:478.2,483.18 2 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:486.109,500.16 3 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:500.16,505.3 2 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:506.2,509.18 3 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:509.18,528.17 4 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:528.17,533.4 2 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:535.3,535.20 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:535.20,537.4 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:538.3,538.21 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:538.21,540.4 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:541.3,541.21 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:541.21,543.4 1 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:544.3,544.21 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:544.21,546.4 1 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:548.3,548.39 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:551.2,551.35 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:551.35,553.3 1 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:555.2,555.24 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:559.117,560.16 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:560.16,562.3 1 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:565.2,566.19 2 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:566.19,568.3 1 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:569.2,569.21 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:569.21,571.3 1 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:573.2,574.21 2 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:574.21,576.3 1 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:578.2,579.19 2 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:579.19,581.3 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:583.2,583.17 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:584.42,584.42 0 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:586.10,587.25 1 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:590.2,591.19 2 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:591.19,593.3 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:596.2,600.40 4 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:600.40,604.3 3 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:605.2,605.48 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:605.48,609.3 3 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:610.2,610.23 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:610.23,614.3 3 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:615.2,615.40 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:615.40,619.3 3 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:620.2,620.52 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:620.52,624.3 3 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:625.2,625.46 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:625.46,629.3 3 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:630.2,630.48 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:630.48,634.3 3 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:635.2,635.56 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:635.56,639.3 3 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:640.2,640.31 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:640.31,644.3 3 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:645.2,645.48 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:645.48,649.3 3 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:650.2,650.48 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:650.48,654.3 3 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:655.2,655.25 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:655.25,659.3 3 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:660.2,660.23 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:660.23,664.3 3 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:666.2,667.25 2 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:667.25,669.40 2 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:669.40,671.4 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:675.2,676.16 2 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:676.16,678.3 1 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:681.2,697.16 5 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:697.16,702.3 2 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:703.2,708.18 4 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:708.18,719.17 5 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:719.17,721.4 1 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:724.3,724.20 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:724.20,726.4 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:727.3,727.21 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:727.21,729.4 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:730.3,730.21 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:730.21,732.4 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:733.3,733.21 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:733.21,735.4 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:737.3,738.64 2 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:741.2,741.35 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:741.35,743.3 1 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:746.2,747.29 2 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:747.29,749.3 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:751.2,758.8 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:762.101,763.16 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:763.16,765.3 1 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:768.2,772.40 4 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:772.40,776.3 3 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:777.2,777.48 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:777.48,781.3 3 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:782.2,782.23 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:782.23,786.3 3 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:787.2,787.40 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:787.40,791.3 3 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:792.2,792.52 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:792.52,796.3 3 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:797.2,797.46 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:797.46,801.3 3 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:802.2,802.48 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:802.48,806.3 3 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:807.2,807.56 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:807.56,811.3 3 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:812.2,812.31 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:812.31,816.3 3 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:817.2,817.48 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:817.48,821.3 3 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:822.2,822.48 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:822.48,826.3 3 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:827.2,827.25 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:827.25,831.3 3 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:832.2,832.23 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:832.23,836.3 3 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:838.2,839.25 2 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:839.25,841.40 2 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:841.40,843.4 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:846.2,852.16 4 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:852.16,857.3 2 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:859.2,859.19 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:870.74,877.2 2 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:880.69,882.2 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:885.93,890.26 4 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:890.26,895.3 2 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:896.2,896.16 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:896.16,902.3 2 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:904.2,904.25 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:908.106,910.2 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:913.120,925.15 4 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:925.15,927.3 1 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:927.8,929.3 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:931.2,931.16 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:931.16,937.3 2 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:939.2,943.12 2 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:947.105,961.16 4 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:961.16,967.3 2 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:969.2,973.12 2 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:984.72,991.2 2 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:994.68,996.2 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:998.116,1000.2 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:1002.130,1009.15 3 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:1009.15,1011.3 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:1011.8,1013.3 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:1015.2,1015.16 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:1015.16,1021.3 2 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:1023.2,1027.12 2 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:1030.122,1051.16 3 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:1051.16,1057.3 2 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:1059.2,1063.12 2 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:1066.101,1082.16 3 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:1082.16,1088.3 2 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:1090.2,1094.12 2 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:1097.101,1115.16 3 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:1115.16,1120.3 2 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:1121.2,1124.18 3 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:1124.18,1138.17 4 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:1138.17,1143.4 2 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:1145.3,1145.22 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:1145.22,1147.4 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:1148.3,1148.22 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:1148.22,1150.4 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:1152.3,1152.36 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:1155.2,1155.35 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:1155.35,1157.3 1 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:1159.2,1159.21 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:1162.79,1166.16 3 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:1166.16,1172.3 2 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:1174.2,1177.12 2 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/retry_worker.go:29.51,37.2 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/retry_worker.go:55.16,64.2 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/retry_worker.go:67.50,78.6 5 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/retry_worker.go:78.6,79.10 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/retry_worker.go:80.21,82.10 2 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/retry_worker.go:83.21,85.10 2 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/retry_worker.go:86.19,87.25 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/retry_worker.go:93.30,98.2 4 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/retry_worker.go:102.59,110.16 5 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/retry_worker.go:110.16,115.3 2 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/retry_worker.go:117.2,117.23 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/retry_worker.go:117.23,120.3 2 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/retry_worker.go:122.2,128.33 2 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/retry_worker.go:128.33,130.3 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/retry_worker.go:139.3,146.49 2 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/retry_worker.go:146.49,152.86 2 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/retry_worker.go:152.86,157.4 1 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/retry_worker.go:158.3,158.9 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/retry_worker.go:162.2,163.16 2 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/retry_worker.go:163.16,171.3 4 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/retry_worker.go:174.2,174.33 1 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/retry_worker.go:174.33,178.65 2 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/retry_worker.go:178.65,183.4 1 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/retry_worker.go:184.3,184.9 1 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/retry_worker.go:190.2,190.54 1 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/retry_worker.go:190.54,198.3 4 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/retry_worker.go:201.2,201.81 1 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/retry_worker.go:201.81,207.3 2 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/retry_worker.go:210.2,210.64 1 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/retry_worker.go:210.64,216.3 2 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/retry_worker.go:218.2,221.3 1 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/retry_worker.go:226.90,229.24 1 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/retry_worker.go:229.24,231.3 1 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/retry_worker.go:235.2,238.12 2 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/retry_worker.go:242.68,244.34 2 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/retry_worker.go:244.34,246.3 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/retry_worker.go:247.2,247.47 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/schema.go:83.71,84.20 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/schema.go:85.18,86.78 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/schema.go:87.15,88.69 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/schema.go:89.27,90.72 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/schema.go:91.10,93.63 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/schema.go:98.30,123.2 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/schema.go:125.36,135.2 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/schema.go:137.35,153.2 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/schema.go:156.27,180.2 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/schema.go:182.33,191.2 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/schema.go:193.32,208.2 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/schema.go:211.28,236.2 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/schema.go:238.34,248.2 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/schema.go:250.33,266.2 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/strategy.go:25.46,26.11 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/strategy.go:27.22,28.19 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/strategy.go:29.29,30.27 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/strategy.go:31.28,32.25 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/strategy.go:33.10,34.19 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/strategy.go:51.79,58.2 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/strategy.go:81.23,90.2 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/strategy.go:93.87,99.16 3 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/strategy.go:99.16,101.3 1 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/strategy.go:104.2,104.56 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/strategy.go:104.56,106.3 1 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/strategy.go:109.2,109.60 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/strategy.go:109.60,111.3 1 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/strategy.go:114.2,114.59 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/strategy.go:114.59,116.3 1 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/strategy.go:118.2,119.12 2 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/strategy.go:123.92,124.27 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/strategy.go:125.22,126.31 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/strategy.go:127.29,128.38 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/strategy.go:129.28,131.13 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/strategy.go:132.10,133.75 1 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/strategy.go:138.89,144.66 2 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/strategy.go:144.66,146.3 1 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/strategy.go:148.2,151.12 2 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/strategy.go:159.96,166.69 2 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/strategy.go:166.69,168.3 1 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/strategy.go:170.2,175.12 2 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/strategy.go:179.69,181.2 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/strategy.go:184.63,186.2 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/strategy.go:189.61,191.2 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/strategy.go:194.46,196.2 1 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/strategy.go:199.44,202.2 2 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/strategy.go:205.73,207.2 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/strategy.go:210.64,212.2 1 0
|
||||||
525
coverage_persistence_complete
Normal file
525
coverage_persistence_complete
Normal file
@@ -0,0 +1,525 @@
|
|||||||
|
mode: set
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/client.go:20.93,22.2 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/client.go:58.108,59.26 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/client.go:59.26,61.3 1 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/client.go:64.2,65.16 2 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/client.go:65.16,70.3 2 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/client.go:73.2,76.76 2 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/client.go:76.76,79.3 2 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/client.go:81.2,95.93 4 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/client.go:95.93,97.39 2 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/client.go:97.39,99.4 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/client.go:99.9,101.4 1 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/client.go:104.3,107.56 3 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/client.go:107.56,110.4 2 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/client.go:112.3,115.4 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/client.go:119.2,119.92 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/client.go:119.92,121.38 2 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/client.go:121.38,123.4 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/client.go:123.9,125.4 1 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/client.go:127.3,133.4 3 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/client.go:136.2,142.20 2 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/client.go:147.101,148.22 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/client.go:148.22,151.3 2 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/client.go:153.2,161.18 3 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/client.go:162.22,164.41 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/client.go:166.29,168.48 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/client.go:170.28,172.47 1 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/client.go:174.10,175.75 1 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/client.go:180.98,186.64 2 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/client.go:186.64,192.3 2 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/client.go:194.2,197.12 2 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/client.go:201.105,207.64 2 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/client.go:207.64,213.3 2 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/client.go:216.2,216.60 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/client.go:216.60,223.3 2 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/client.go:226.2,226.106 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/client.go:226.106,232.3 1 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/client.go:235.2,240.12 3 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/client.go:244.104,250.60 2 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/client.go:250.60,256.3 2 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/client.go:258.2,261.12 2 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/client.go:265.102,274.16 4 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/client.go:274.16,280.3 2 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/client.go:282.2,293.87 4 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/client.go:293.87,300.3 2 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/client.go:302.2,306.12 2 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/client.go:310.92,311.19 1 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/client.go:311.19,314.3 2 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/client.go:316.2,325.16 4 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/client.go:325.16,331.3 2 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/client.go:333.2,334.84 2 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/client.go:334.84,340.3 2 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/client.go:342.2,346.12 2 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/client.go:350.56,352.2 1 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/client.go:355.62,357.2 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/client.go:360.43,365.27 3 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/client.go:365.27,366.50 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/client.go:366.50,370.4 1 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/client.go:374.2,374.26 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/client.go:374.26,376.3 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/client.go:379.2,379.42 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/client.go:379.42,384.3 2 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/client.go:387.2,387.24 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/client.go:387.24,388.45 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/client.go:388.45,393.4 2 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/client.go:396.2,397.12 2 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/client.go:401.125,402.22 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/client.go:402.22,404.3 1 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/client.go:406.2,407.17 2 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/client.go:407.17,409.3 1 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/client.go:411.2,411.29 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/client.go:415.109,416.22 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/client.go:416.22,418.3 1 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/client.go:420.2,421.17 2 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/client.go:421.17,423.3 1 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/client.go:425.2,425.29 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/client.go:429.122,430.22 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/client.go:430.22,432.3 1 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/client.go:434.2,435.17 2 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/client.go:435.17,437.3 1 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/client.go:439.2,439.33 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/config.go:26.55,35.2 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/config.go:38.46,40.16 2 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/config.go:40.16,42.3 1 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/config.go:45.2,51.34 5 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/config.go:51.34,54.3 2 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/config.go:56.2,56.16 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/cursor_worker.go:34.54,49.2 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/cursor_worker.go:66.53,74.2 1 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/cursor_worker.go:87.92,88.30 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/cursor_worker.go:88.30,90.3 1 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/cursor_worker.go:91.2,91.27 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/cursor_worker.go:91.27,93.3 1 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/cursor_worker.go:94.2,94.28 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/cursor_worker.go:94.28,96.3 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/cursor_worker.go:97.2,97.33 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/cursor_worker.go:97.33,99.3 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/cursor_worker.go:103.2,108.3 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/cursor_worker.go:112.57,113.23 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/cursor_worker.go:113.23,116.3 2 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/cursor_worker.go:118.2,125.42 2 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/cursor_worker.go:125.42,127.3 1 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/cursor_worker.go:130.2,132.12 2 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/cursor_worker.go:136.56,140.2 3 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/cursor_worker.go:143.49,147.6 3 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/cursor_worker.go:147.6,148.10 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/cursor_worker.go:149.19,151.10 2 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/cursor_worker.go:152.19,153.15 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/cursor_worker.go:159.50,166.16 3 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/cursor_worker.go:166.16,171.3 2 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/cursor_worker.go:173.2,182.16 3 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/cursor_worker.go:182.16,187.3 2 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/cursor_worker.go:188.2,191.16 3 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/cursor_worker.go:191.16,196.3 2 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/cursor_worker.go:198.2,198.26 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/cursor_worker.go:198.26,202.3 3 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/cursor_worker.go:204.2,211.32 3 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/cursor_worker.go:211.32,212.42 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/cursor_worker.go:212.42,214.4 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/cursor_worker.go:217.3,217.20 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/cursor_worker.go:217.20,218.38 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/cursor_worker.go:218.38,224.5 2 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/cursor_worker.go:227.4,230.18 2 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/cursor_worker.go:230.18,235.5 2 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/cursor_worker.go:236.4,236.23 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/cursor_worker.go:241.2,241.36 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/cursor_worker.go:241.36,246.3 2 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/cursor_worker.go:248.2,251.3 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/cursor_worker.go:255.62,266.40 5 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/cursor_worker.go:266.40,270.3 1 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/cursor_worker.go:272.2,273.24 2 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/cursor_worker.go:273.24,280.3 2 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/cursor_worker.go:280.8,286.3 2 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/cursor_worker.go:288.2,289.16 2 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/cursor_worker.go:289.16,291.3 1 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/cursor_worker.go:293.2,298.12 2 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/cursor_worker.go:302.71,306.16 3 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/cursor_worker.go:306.16,308.3 1 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/cursor_worker.go:311.2,311.18 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/cursor_worker.go:311.18,313.3 1 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/cursor_worker.go:315.2,315.20 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/cursor_worker.go:319.78,323.16 3 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/cursor_worker.go:323.16,325.3 1 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/cursor_worker.go:327.2,332.12 2 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/cursor_worker.go:336.136,353.16 3 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/cursor_worker.go:353.16,355.3 1 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/cursor_worker.go:356.2,360.18 4 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/cursor_worker.go:360.18,371.17 5 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/cursor_worker.go:371.17,373.4 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/cursor_worker.go:376.3,376.21 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/cursor_worker.go:376.21,378.4 1 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/cursor_worker.go:379.3,379.21 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/cursor_worker.go:379.21,381.4 1 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/cursor_worker.go:382.3,385.33 3 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/cursor_worker.go:388.2,388.31 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/cursor_worker.go:392.41,393.14 1 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/cursor_worker.go:393.14,395.3 1 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/cursor_worker.go:396.2,396.11 1 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/cursor_worker.go:400.106,415.16 3 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/cursor_worker.go:415.16,417.3 1 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/cursor_worker.go:418.2,421.18 3 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/cursor_worker.go:421.18,432.17 5 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/cursor_worker.go:432.17,434.4 1 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/cursor_worker.go:437.3,437.21 1 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/cursor_worker.go:437.21,439.4 1 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/cursor_worker.go:440.3,440.21 1 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/cursor_worker.go:440.21,442.4 1 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/cursor_worker.go:443.3,445.38 2 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/cursor_worker.go:448.2,448.24 1 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/cursor_worker.go:453.104,460.16 3 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/cursor_worker.go:460.16,469.100 4 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/cursor_worker.go:469.100,474.4 1 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/cursor_worker.go:476.3,476.15 1 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/cursor_worker.go:480.2,482.16 3 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/cursor_worker.go:482.16,488.3 2 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/cursor_worker.go:490.2,490.14 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/cursor_worker.go:490.14,496.3 2 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/cursor_worker.go:498.2,504.13 3 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/cursor_worker.go:508.83,515.67 3 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/cursor_worker.go:515.67,516.18 1 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/cursor_worker.go:516.18,521.4 1 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/cursor_worker.go:523.3,524.17 2 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/cursor_worker.go:524.17,526.83 1 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/cursor_worker.go:526.83,531.5 1 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/cursor_worker.go:531.10,535.5 1 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/cursor_worker.go:538.4,539.10 2 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/cursor_worker.go:542.3,543.41 2 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/cursor_worker.go:543.41,545.4 1 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/cursor_worker.go:549.2,556.87 4 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/cursor_worker.go:556.87,561.3 1 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/cursor_worker.go:564.2,564.60 1 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/cursor_worker.go:568.84,570.22 2 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/cursor_worker.go:570.22,572.3 1 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/cursor_worker.go:575.2,578.56 2 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/cursor_worker.go:578.56,580.3 1 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/cursor_worker.go:582.2,582.12 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/cursor_worker.go:586.109,589.2 2 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:143.42,144.15 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:144.15,146.3 1 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:148.2,150.70 3 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:150.70,152.3 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:153.2,153.18 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:157.68,158.30 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:158.30,162.35 3 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:162.35,163.23 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:163.23,166.5 2 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:166.10,168.5 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:170.3,170.16 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:173.2,173.14 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:177.80,184.2 2 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:187.72,189.2 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:191.107,193.2 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:195.121,206.31 3 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:206.31,208.3 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:209.2,209.32 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:209.32,211.3 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:212.2,212.24 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:212.24,214.3 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:215.2,215.24 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:215.24,217.3 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:219.2,237.15 3 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:237.15,239.3 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:239.8,241.3 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:243.2,243.16 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:243.16,249.3 2 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:251.2,255.12 2 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:258.107,260.2 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:262.121,266.15 3 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:266.15,268.3 1 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:268.8,270.3 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:272.2,272.16 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:272.16,279.3 2 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:281.2,285.12 2 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:288.116,320.26 6 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:320.26,322.3 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:323.2,323.16 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:323.16,329.3 2 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:331.2,331.19 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:331.19,333.3 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:334.2,334.20 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:334.20,336.3 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:337.2,337.20 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:337.20,339.3 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:340.2,340.20 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:340.20,342.3 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:344.2,344.44 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:349.139,367.15 4 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:367.15,369.3 1 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:369.8,371.3 1 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:373.2,373.16 1 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:373.16,378.3 2 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:379.2,383.18 4 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:383.18,402.17 4 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:402.17,406.12 2 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:409.3,409.20 1 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:409.20,411.4 1 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:412.3,412.21 1 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:412.21,414.4 1 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:415.3,415.21 1 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:415.21,417.4 1 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:418.3,418.21 1 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:418.21,420.4 1 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:422.3,423.33 2 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:426.2,426.35 1 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:426.35,431.3 2 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:433.2,433.31 1 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:438.153,448.15 4 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:448.15,450.3 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:450.8,452.3 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:454.2,454.16 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:454.16,462.3 2 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:464.2,465.16 2 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:465.16,467.3 1 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:470.2,470.23 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:470.23,476.3 2 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:478.2,483.18 2 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:486.109,500.16 3 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:500.16,505.3 2 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:506.2,509.18 3 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:509.18,528.17 4 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:528.17,533.4 2 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:535.3,535.20 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:535.20,537.4 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:538.3,538.21 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:538.21,540.4 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:541.3,541.21 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:541.21,543.4 1 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:544.3,544.21 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:544.21,546.4 1 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:548.3,548.39 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:551.2,551.35 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:551.35,553.3 1 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:555.2,555.24 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:559.117,560.16 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:560.16,562.3 1 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:565.2,566.19 2 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:566.19,568.3 1 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:569.2,569.21 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:569.21,571.3 1 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:573.2,574.21 2 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:574.21,576.3 1 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:578.2,579.19 2 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:579.19,581.3 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:583.2,583.17 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:584.42,584.42 0 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:586.10,587.25 1 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:590.2,591.19 2 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:591.19,593.3 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:596.2,600.40 4 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:600.40,604.3 3 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:605.2,605.48 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:605.48,609.3 3 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:610.2,610.23 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:610.23,614.3 3 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:615.2,615.40 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:615.40,619.3 3 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:620.2,620.52 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:620.52,624.3 3 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:625.2,625.46 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:625.46,629.3 3 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:630.2,630.48 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:630.48,634.3 3 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:635.2,635.56 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:635.56,639.3 3 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:640.2,640.31 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:640.31,644.3 3 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:645.2,645.48 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:645.48,649.3 3 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:650.2,650.48 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:650.48,654.3 3 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:655.2,655.25 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:655.25,659.3 3 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:660.2,660.23 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:660.23,664.3 3 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:666.2,667.25 2 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:667.25,669.40 2 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:669.40,671.4 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:675.2,676.16 2 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:676.16,678.3 1 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:681.2,697.16 5 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:697.16,702.3 2 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:703.2,708.18 4 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:708.18,719.17 5 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:719.17,721.4 1 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:724.3,724.20 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:724.20,726.4 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:727.3,727.21 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:727.21,729.4 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:730.3,730.21 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:730.21,732.4 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:733.3,733.21 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:733.21,735.4 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:737.3,738.64 2 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:741.2,741.35 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:741.35,743.3 1 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:746.2,747.29 2 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:747.29,749.3 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:751.2,758.8 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:762.101,763.16 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:763.16,765.3 1 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:768.2,772.40 4 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:772.40,776.3 3 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:777.2,777.48 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:777.48,781.3 3 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:782.2,782.23 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:782.23,786.3 3 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:787.2,787.40 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:787.40,791.3 3 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:792.2,792.52 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:792.52,796.3 3 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:797.2,797.46 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:797.46,801.3 3 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:802.2,802.48 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:802.48,806.3 3 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:807.2,807.56 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:807.56,811.3 3 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:812.2,812.31 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:812.31,816.3 3 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:817.2,817.48 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:817.48,821.3 3 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:822.2,822.48 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:822.48,826.3 3 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:827.2,827.25 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:827.25,831.3 3 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:832.2,832.23 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:832.23,836.3 3 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:838.2,839.25 2 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:839.25,841.40 2 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:841.40,843.4 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:846.2,852.16 4 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:852.16,857.3 2 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:859.2,859.19 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:870.74,877.2 2 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:880.69,882.2 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:885.93,890.26 4 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:890.26,895.3 2 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:896.2,896.16 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:896.16,902.3 2 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:904.2,904.25 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:908.106,910.2 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:913.120,925.15 4 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:925.15,927.3 1 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:927.8,929.3 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:931.2,931.16 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:931.16,937.3 2 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:939.2,943.12 2 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:947.105,961.16 4 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:961.16,967.3 2 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:969.2,973.12 2 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:984.72,991.2 2 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:994.68,996.2 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:998.116,1000.2 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:1002.130,1009.15 3 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:1009.15,1011.3 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:1011.8,1013.3 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:1015.2,1015.16 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:1015.16,1021.3 2 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:1023.2,1027.12 2 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:1030.122,1051.16 3 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:1051.16,1057.3 2 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:1059.2,1063.12 2 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:1066.101,1082.16 3 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:1082.16,1088.3 2 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:1090.2,1094.12 2 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:1097.101,1115.16 3 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:1115.16,1120.3 2 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:1121.2,1124.18 3 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:1124.18,1138.17 4 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:1138.17,1143.4 2 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:1145.3,1145.22 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:1145.22,1147.4 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:1148.3,1148.22 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:1148.22,1150.4 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:1152.3,1152.36 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:1155.2,1155.35 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:1155.35,1157.3 1 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:1159.2,1159.21 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:1162.79,1166.16 3 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:1166.16,1172.3 2 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:1174.2,1177.12 2 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/retry_worker.go:29.51,37.2 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/retry_worker.go:55.16,64.2 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/retry_worker.go:67.50,78.6 5 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/retry_worker.go:78.6,79.10 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/retry_worker.go:80.21,82.10 2 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/retry_worker.go:83.21,85.10 2 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/retry_worker.go:86.19,87.25 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/retry_worker.go:93.30,98.2 4 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/retry_worker.go:102.59,110.16 5 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/retry_worker.go:110.16,115.3 2 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/retry_worker.go:117.2,117.23 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/retry_worker.go:117.23,120.3 2 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/retry_worker.go:122.2,128.33 2 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/retry_worker.go:128.33,130.3 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/retry_worker.go:139.3,146.49 2 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/retry_worker.go:146.49,152.86 2 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/retry_worker.go:152.86,157.4 1 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/retry_worker.go:158.3,158.9 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/retry_worker.go:162.2,163.16 2 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/retry_worker.go:163.16,171.3 4 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/retry_worker.go:174.2,174.33 1 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/retry_worker.go:174.33,178.65 2 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/retry_worker.go:178.65,183.4 1 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/retry_worker.go:184.3,184.9 1 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/retry_worker.go:190.2,190.54 1 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/retry_worker.go:190.54,198.3 4 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/retry_worker.go:201.2,201.81 1 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/retry_worker.go:201.81,207.3 2 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/retry_worker.go:210.2,210.64 1 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/retry_worker.go:210.64,216.3 2 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/retry_worker.go:218.2,221.3 1 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/retry_worker.go:226.90,229.24 1 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/retry_worker.go:229.24,231.3 1 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/retry_worker.go:235.2,238.12 2 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/retry_worker.go:242.68,244.34 2 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/retry_worker.go:244.34,246.3 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/retry_worker.go:247.2,247.47 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/schema.go:83.71,84.20 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/schema.go:85.18,86.78 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/schema.go:87.15,88.69 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/schema.go:89.27,90.72 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/schema.go:91.10,93.63 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/schema.go:98.30,123.2 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/schema.go:125.36,135.2 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/schema.go:137.35,153.2 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/schema.go:156.27,180.2 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/schema.go:182.33,191.2 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/schema.go:193.32,208.2 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/schema.go:211.28,236.2 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/schema.go:238.34,248.2 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/schema.go:250.33,266.2 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/strategy.go:25.46,26.11 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/strategy.go:27.22,28.19 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/strategy.go:29.29,30.27 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/strategy.go:31.28,32.25 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/strategy.go:33.10,34.19 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/strategy.go:51.79,58.2 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/strategy.go:81.23,90.2 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/strategy.go:93.87,99.16 3 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/strategy.go:99.16,101.3 1 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/strategy.go:104.2,104.56 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/strategy.go:104.56,106.3 1 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/strategy.go:109.2,109.60 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/strategy.go:109.60,111.3 1 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/strategy.go:114.2,114.59 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/strategy.go:114.59,116.3 1 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/strategy.go:118.2,119.12 2 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/strategy.go:123.92,124.27 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/strategy.go:125.22,126.31 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/strategy.go:127.29,128.38 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/strategy.go:129.28,131.13 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/strategy.go:132.10,133.75 1 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/strategy.go:138.89,144.66 2 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/strategy.go:144.66,146.3 1 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/strategy.go:148.2,151.12 2 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/strategy.go:159.96,166.69 2 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/strategy.go:166.69,168.3 1 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/strategy.go:170.2,175.12 2 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/strategy.go:179.69,181.2 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/strategy.go:184.63,186.2 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/strategy.go:189.61,191.2 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/strategy.go:194.46,196.2 1 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/strategy.go:199.44,202.2 2 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/strategy.go:205.73,207.2 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/strategy.go:210.64,212.2 1 1
|
||||||
525
coverage_persistence_full
Normal file
525
coverage_persistence_full
Normal file
@@ -0,0 +1,525 @@
|
|||||||
|
mode: set
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/client.go:20.93,22.2 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/client.go:58.108,59.26 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/client.go:59.26,61.3 1 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/client.go:64.2,65.16 2 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/client.go:65.16,70.3 2 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/client.go:73.2,76.76 2 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/client.go:76.76,79.3 2 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/client.go:81.2,95.93 4 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/client.go:95.93,97.39 2 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/client.go:97.39,99.4 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/client.go:99.9,101.4 1 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/client.go:104.3,107.56 3 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/client.go:107.56,110.4 2 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/client.go:112.3,115.4 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/client.go:119.2,119.92 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/client.go:119.92,121.38 2 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/client.go:121.38,123.4 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/client.go:123.9,125.4 1 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/client.go:127.3,133.4 3 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/client.go:136.2,142.20 2 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/client.go:147.101,148.22 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/client.go:148.22,151.3 2 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/client.go:153.2,161.18 3 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/client.go:162.22,164.41 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/client.go:166.29,168.48 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/client.go:170.28,172.47 1 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/client.go:174.10,175.75 1 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/client.go:180.98,186.64 2 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/client.go:186.64,192.3 2 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/client.go:194.2,197.12 2 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/client.go:201.105,207.64 2 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/client.go:207.64,213.3 2 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/client.go:216.2,216.60 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/client.go:216.60,223.3 2 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/client.go:226.2,226.106 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/client.go:226.106,232.3 1 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/client.go:235.2,240.12 3 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/client.go:244.104,250.60 2 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/client.go:250.60,256.3 2 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/client.go:258.2,261.12 2 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/client.go:265.102,274.16 4 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/client.go:274.16,280.3 2 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/client.go:282.2,293.87 4 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/client.go:293.87,300.3 2 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/client.go:302.2,306.12 2 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/client.go:310.92,311.19 1 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/client.go:311.19,314.3 2 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/client.go:316.2,325.16 4 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/client.go:325.16,331.3 2 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/client.go:333.2,334.84 2 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/client.go:334.84,340.3 2 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/client.go:342.2,346.12 2 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/client.go:350.56,352.2 1 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/client.go:355.62,357.2 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/client.go:360.43,365.27 3 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/client.go:365.27,366.50 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/client.go:366.50,370.4 1 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/client.go:374.2,374.26 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/client.go:374.26,376.3 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/client.go:379.2,379.42 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/client.go:379.42,384.3 2 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/client.go:387.2,387.24 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/client.go:387.24,388.45 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/client.go:388.45,393.4 2 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/client.go:396.2,397.12 2 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/client.go:401.125,402.22 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/client.go:402.22,404.3 1 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/client.go:406.2,407.17 2 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/client.go:407.17,409.3 1 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/client.go:411.2,411.29 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/client.go:415.109,416.22 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/client.go:416.22,418.3 1 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/client.go:420.2,421.17 2 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/client.go:421.17,423.3 1 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/client.go:425.2,425.29 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/client.go:429.122,430.22 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/client.go:430.22,432.3 1 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/client.go:434.2,435.17 2 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/client.go:435.17,437.3 1 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/client.go:439.2,439.33 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/config.go:26.55,35.2 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/config.go:38.46,40.16 2 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/config.go:40.16,42.3 1 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/config.go:45.2,51.34 5 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/config.go:51.34,54.3 2 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/config.go:56.2,56.16 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/cursor_worker.go:34.54,49.2 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/cursor_worker.go:66.53,74.2 1 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/cursor_worker.go:87.92,88.30 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/cursor_worker.go:88.30,90.3 1 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/cursor_worker.go:91.2,91.27 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/cursor_worker.go:91.27,93.3 1 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/cursor_worker.go:94.2,94.28 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/cursor_worker.go:94.28,96.3 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/cursor_worker.go:97.2,97.33 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/cursor_worker.go:97.33,99.3 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/cursor_worker.go:103.2,108.3 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/cursor_worker.go:112.57,113.23 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/cursor_worker.go:113.23,116.3 2 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/cursor_worker.go:118.2,125.42 2 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/cursor_worker.go:125.42,127.3 1 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/cursor_worker.go:130.2,132.12 2 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/cursor_worker.go:136.56,140.2 3 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/cursor_worker.go:143.49,147.6 3 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/cursor_worker.go:147.6,148.10 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/cursor_worker.go:149.19,151.10 2 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/cursor_worker.go:152.19,153.15 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/cursor_worker.go:159.50,166.16 3 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/cursor_worker.go:166.16,171.3 2 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/cursor_worker.go:173.2,182.16 3 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/cursor_worker.go:182.16,187.3 2 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/cursor_worker.go:188.2,191.16 3 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/cursor_worker.go:191.16,196.3 2 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/cursor_worker.go:198.2,198.26 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/cursor_worker.go:198.26,202.3 3 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/cursor_worker.go:204.2,211.32 3 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/cursor_worker.go:211.32,212.42 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/cursor_worker.go:212.42,214.4 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/cursor_worker.go:217.3,217.20 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/cursor_worker.go:217.20,218.38 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/cursor_worker.go:218.38,224.5 2 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/cursor_worker.go:227.4,230.18 2 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/cursor_worker.go:230.18,235.5 2 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/cursor_worker.go:236.4,236.23 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/cursor_worker.go:241.2,241.36 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/cursor_worker.go:241.36,246.3 2 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/cursor_worker.go:248.2,251.3 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/cursor_worker.go:255.62,266.40 5 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/cursor_worker.go:266.40,270.3 1 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/cursor_worker.go:272.2,273.24 2 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/cursor_worker.go:273.24,280.3 2 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/cursor_worker.go:280.8,286.3 2 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/cursor_worker.go:288.2,289.16 2 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/cursor_worker.go:289.16,291.3 1 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/cursor_worker.go:293.2,298.12 2 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/cursor_worker.go:302.71,306.16 3 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/cursor_worker.go:306.16,308.3 1 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/cursor_worker.go:311.2,311.18 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/cursor_worker.go:311.18,313.3 1 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/cursor_worker.go:315.2,315.20 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/cursor_worker.go:319.78,323.16 3 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/cursor_worker.go:323.16,325.3 1 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/cursor_worker.go:327.2,332.12 2 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/cursor_worker.go:336.136,353.16 3 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/cursor_worker.go:353.16,355.3 1 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/cursor_worker.go:356.2,360.18 4 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/cursor_worker.go:360.18,371.17 5 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/cursor_worker.go:371.17,373.4 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/cursor_worker.go:376.3,376.21 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/cursor_worker.go:376.21,378.4 1 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/cursor_worker.go:379.3,379.21 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/cursor_worker.go:379.21,381.4 1 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/cursor_worker.go:382.3,385.33 3 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/cursor_worker.go:388.2,388.31 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/cursor_worker.go:392.41,393.14 1 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/cursor_worker.go:393.14,395.3 1 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/cursor_worker.go:396.2,396.11 1 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/cursor_worker.go:400.106,415.16 3 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/cursor_worker.go:415.16,417.3 1 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/cursor_worker.go:418.2,421.18 3 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/cursor_worker.go:421.18,432.17 5 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/cursor_worker.go:432.17,434.4 1 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/cursor_worker.go:437.3,437.21 1 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/cursor_worker.go:437.21,439.4 1 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/cursor_worker.go:440.3,440.21 1 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/cursor_worker.go:440.21,442.4 1 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/cursor_worker.go:443.3,445.38 2 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/cursor_worker.go:448.2,448.24 1 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/cursor_worker.go:453.104,460.16 3 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/cursor_worker.go:460.16,469.100 4 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/cursor_worker.go:469.100,474.4 1 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/cursor_worker.go:476.3,476.15 1 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/cursor_worker.go:480.2,482.16 3 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/cursor_worker.go:482.16,488.3 2 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/cursor_worker.go:490.2,490.14 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/cursor_worker.go:490.14,496.3 2 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/cursor_worker.go:498.2,504.13 3 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/cursor_worker.go:508.83,515.67 3 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/cursor_worker.go:515.67,516.18 1 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/cursor_worker.go:516.18,521.4 1 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/cursor_worker.go:523.3,524.17 2 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/cursor_worker.go:524.17,526.83 1 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/cursor_worker.go:526.83,531.5 1 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/cursor_worker.go:531.10,535.5 1 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/cursor_worker.go:538.4,539.10 2 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/cursor_worker.go:542.3,543.41 2 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/cursor_worker.go:543.41,545.4 1 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/cursor_worker.go:549.2,556.87 4 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/cursor_worker.go:556.87,561.3 1 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/cursor_worker.go:564.2,564.60 1 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/cursor_worker.go:568.84,570.22 2 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/cursor_worker.go:570.22,572.3 1 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/cursor_worker.go:575.2,578.56 2 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/cursor_worker.go:578.56,580.3 1 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/cursor_worker.go:582.2,582.12 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/cursor_worker.go:586.109,589.2 2 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:143.42,144.15 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:144.15,146.3 1 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:148.2,150.70 3 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:150.70,152.3 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:153.2,153.18 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:157.68,158.30 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:158.30,162.35 3 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:162.35,163.23 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:163.23,166.5 2 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:166.10,168.5 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:170.3,170.16 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:173.2,173.14 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:177.80,184.2 2 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:187.72,189.2 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:191.107,193.2 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:195.121,206.31 3 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:206.31,208.3 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:209.2,209.32 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:209.32,211.3 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:212.2,212.24 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:212.24,214.3 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:215.2,215.24 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:215.24,217.3 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:219.2,237.15 3 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:237.15,239.3 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:239.8,241.3 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:243.2,243.16 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:243.16,249.3 2 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:251.2,255.12 2 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:258.107,260.2 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:262.121,266.15 3 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:266.15,268.3 1 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:268.8,270.3 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:272.2,272.16 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:272.16,279.3 2 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:281.2,285.12 2 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:288.116,320.26 6 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:320.26,322.3 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:323.2,323.16 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:323.16,329.3 2 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:331.2,331.19 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:331.19,333.3 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:334.2,334.20 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:334.20,336.3 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:337.2,337.20 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:337.20,339.3 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:340.2,340.20 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:340.20,342.3 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:344.2,344.44 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:349.139,367.15 4 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:367.15,369.3 1 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:369.8,371.3 1 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:373.2,373.16 1 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:373.16,378.3 2 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:379.2,383.18 4 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:383.18,402.17 4 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:402.17,406.12 2 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:409.3,409.20 1 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:409.20,411.4 1 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:412.3,412.21 1 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:412.21,414.4 1 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:415.3,415.21 1 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:415.21,417.4 1 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:418.3,418.21 1 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:418.21,420.4 1 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:422.3,423.33 2 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:426.2,426.35 1 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:426.35,431.3 2 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:433.2,433.31 1 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:438.153,448.15 4 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:448.15,450.3 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:450.8,452.3 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:454.2,454.16 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:454.16,462.3 2 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:464.2,465.16 2 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:465.16,467.3 1 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:470.2,470.23 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:470.23,476.3 2 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:478.2,483.18 2 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:486.109,500.16 3 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:500.16,505.3 2 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:506.2,509.18 3 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:509.18,528.17 4 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:528.17,533.4 2 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:535.3,535.20 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:535.20,537.4 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:538.3,538.21 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:538.21,540.4 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:541.3,541.21 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:541.21,543.4 1 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:544.3,544.21 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:544.21,546.4 1 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:548.3,548.39 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:551.2,551.35 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:551.35,553.3 1 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:555.2,555.24 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:559.117,560.16 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:560.16,562.3 1 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:565.2,566.19 2 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:566.19,568.3 1 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:569.2,569.21 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:569.21,571.3 1 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:573.2,574.21 2 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:574.21,576.3 1 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:578.2,579.19 2 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:579.19,581.3 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:583.2,583.17 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:584.42,584.42 0 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:586.10,587.25 1 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:590.2,591.19 2 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:591.19,593.3 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:596.2,600.40 4 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:600.40,604.3 3 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:605.2,605.48 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:605.48,609.3 3 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:610.2,610.23 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:610.23,614.3 3 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:615.2,615.40 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:615.40,619.3 3 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:620.2,620.52 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:620.52,624.3 3 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:625.2,625.46 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:625.46,629.3 3 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:630.2,630.48 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:630.48,634.3 3 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:635.2,635.56 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:635.56,639.3 3 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:640.2,640.31 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:640.31,644.3 3 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:645.2,645.48 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:645.48,649.3 3 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:650.2,650.48 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:650.48,654.3 3 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:655.2,655.25 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:655.25,659.3 3 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:660.2,660.23 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:660.23,664.3 3 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:666.2,667.25 2 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:667.25,669.40 2 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:669.40,671.4 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:675.2,676.16 2 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:676.16,678.3 1 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:681.2,697.16 5 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:697.16,702.3 2 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:703.2,708.18 4 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:708.18,719.17 5 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:719.17,721.4 1 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:724.3,724.20 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:724.20,726.4 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:727.3,727.21 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:727.21,729.4 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:730.3,730.21 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:730.21,732.4 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:733.3,733.21 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:733.21,735.4 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:737.3,738.64 2 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:741.2,741.35 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:741.35,743.3 1 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:746.2,747.29 2 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:747.29,749.3 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:751.2,758.8 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:762.101,763.16 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:763.16,765.3 1 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:768.2,772.40 4 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:772.40,776.3 3 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:777.2,777.48 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:777.48,781.3 3 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:782.2,782.23 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:782.23,786.3 3 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:787.2,787.40 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:787.40,791.3 3 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:792.2,792.52 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:792.52,796.3 3 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:797.2,797.46 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:797.46,801.3 3 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:802.2,802.48 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:802.48,806.3 3 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:807.2,807.56 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:807.56,811.3 3 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:812.2,812.31 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:812.31,816.3 3 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:817.2,817.48 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:817.48,821.3 3 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:822.2,822.48 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:822.48,826.3 3 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:827.2,827.25 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:827.25,831.3 3 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:832.2,832.23 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:832.23,836.3 3 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:838.2,839.25 2 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:839.25,841.40 2 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:841.40,843.4 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:846.2,852.16 4 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:852.16,857.3 2 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:859.2,859.19 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:870.74,877.2 2 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:880.69,882.2 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:885.93,890.26 4 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:890.26,895.3 2 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:896.2,896.16 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:896.16,902.3 2 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:904.2,904.25 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:908.106,910.2 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:913.120,925.15 4 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:925.15,927.3 1 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:927.8,929.3 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:931.2,931.16 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:931.16,937.3 2 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:939.2,943.12 2 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:947.105,961.16 4 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:961.16,967.3 2 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:969.2,973.12 2 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:984.72,991.2 2 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:994.68,996.2 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:998.116,1000.2 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:1002.130,1009.15 3 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:1009.15,1011.3 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:1011.8,1013.3 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:1015.2,1015.16 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:1015.16,1021.3 2 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:1023.2,1027.12 2 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:1030.122,1051.16 3 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:1051.16,1057.3 2 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:1059.2,1063.12 2 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:1066.101,1082.16 3 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:1082.16,1088.3 2 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:1090.2,1094.12 2 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:1097.101,1115.16 3 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:1115.16,1120.3 2 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:1121.2,1124.18 3 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:1124.18,1138.17 4 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:1138.17,1143.4 2 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:1145.3,1145.22 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:1145.22,1147.4 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:1148.3,1148.22 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:1148.22,1150.4 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:1152.3,1152.36 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:1155.2,1155.35 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:1155.35,1157.3 1 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:1159.2,1159.21 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:1162.79,1166.16 3 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:1166.16,1172.3 2 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/repository.go:1174.2,1177.12 2 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/retry_worker.go:29.51,37.2 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/retry_worker.go:55.16,64.2 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/retry_worker.go:67.50,78.6 5 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/retry_worker.go:78.6,79.10 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/retry_worker.go:80.21,82.10 2 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/retry_worker.go:83.21,85.10 2 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/retry_worker.go:86.19,87.25 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/retry_worker.go:93.30,98.2 4 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/retry_worker.go:102.59,110.16 5 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/retry_worker.go:110.16,115.3 2 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/retry_worker.go:117.2,117.23 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/retry_worker.go:117.23,120.3 2 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/retry_worker.go:122.2,128.33 2 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/retry_worker.go:128.33,130.3 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/retry_worker.go:139.3,146.49 2 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/retry_worker.go:146.49,152.86 2 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/retry_worker.go:152.86,157.4 1 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/retry_worker.go:158.3,158.9 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/retry_worker.go:162.2,163.16 2 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/retry_worker.go:163.16,171.3 4 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/retry_worker.go:174.2,174.33 1 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/retry_worker.go:174.33,178.65 2 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/retry_worker.go:178.65,183.4 1 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/retry_worker.go:184.3,184.9 1 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/retry_worker.go:190.2,190.54 1 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/retry_worker.go:190.54,198.3 4 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/retry_worker.go:201.2,201.81 1 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/retry_worker.go:201.81,207.3 2 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/retry_worker.go:210.2,210.64 1 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/retry_worker.go:210.64,216.3 2 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/retry_worker.go:218.2,221.3 1 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/retry_worker.go:226.90,229.24 1 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/retry_worker.go:229.24,231.3 1 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/retry_worker.go:235.2,238.12 2 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/retry_worker.go:242.68,244.34 2 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/retry_worker.go:244.34,246.3 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/retry_worker.go:247.2,247.47 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/schema.go:83.71,84.20 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/schema.go:85.18,86.78 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/schema.go:87.15,88.69 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/schema.go:89.27,90.72 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/schema.go:91.10,93.63 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/schema.go:98.30,123.2 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/schema.go:125.36,135.2 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/schema.go:137.35,153.2 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/schema.go:156.27,180.2 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/schema.go:182.33,191.2 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/schema.go:193.32,208.2 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/schema.go:211.28,236.2 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/schema.go:238.34,248.2 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/schema.go:250.33,266.2 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/strategy.go:25.46,26.11 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/strategy.go:27.22,28.19 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/strategy.go:29.29,30.27 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/strategy.go:31.28,32.25 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/strategy.go:33.10,34.19 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/strategy.go:51.79,58.2 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/strategy.go:81.23,90.2 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/strategy.go:93.87,99.16 3 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/strategy.go:99.16,101.3 1 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/strategy.go:104.2,104.56 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/strategy.go:104.56,106.3 1 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/strategy.go:109.2,109.60 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/strategy.go:109.60,111.3 1 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/strategy.go:114.2,114.59 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/strategy.go:114.59,116.3 1 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/strategy.go:118.2,119.12 2 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/strategy.go:123.92,124.27 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/strategy.go:125.22,126.31 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/strategy.go:127.29,128.38 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/strategy.go:129.28,131.13 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/strategy.go:132.10,133.75 1 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/strategy.go:138.89,144.66 2 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/strategy.go:144.66,146.3 1 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/strategy.go:148.2,151.12 2 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/strategy.go:159.96,166.69 2 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/strategy.go:166.69,168.3 1 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/strategy.go:170.2,175.12 2 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/strategy.go:179.69,181.2 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/strategy.go:184.63,186.2 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/strategy.go:189.61,191.2 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/strategy.go:194.46,196.2 1 0
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/strategy.go:199.44,202.2 2 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/strategy.go:205.73,207.2 1 1
|
||||||
|
go.yandata.net/iod/iod/go-trustlog/api/persistence/strategy.go:210.64,212.2 1 1
|
||||||
1906
coverage_short
Normal file
1906
coverage_short
Normal file
File diff suppressed because it is too large
Load Diff
2
go.mod
2
go.mod
@@ -1,4 +1,4 @@
|
|||||||
module go.yandata.net/iod/iod/go-trustlog
|
module go.yandata.net/wangsiyuan/go-trustlog
|
||||||
|
|
||||||
go 1.25
|
go 1.25
|
||||||
|
|
||||||
|
|||||||
@@ -6,7 +6,7 @@ import (
|
|||||||
"github.com/stretchr/testify/assert"
|
"github.com/stretchr/testify/assert"
|
||||||
"github.com/stretchr/testify/require"
|
"github.com/stretchr/testify/require"
|
||||||
|
|
||||||
"go.yandata.net/iod/iod/go-trustlog/internal/grpcclient"
|
"go.yandata.net/wangsiyuan/go-trustlog/internal/grpcclient"
|
||||||
)
|
)
|
||||||
|
|
||||||
func TestConfig_GetAddrs(t *testing.T) {
|
func TestConfig_GetAddrs(t *testing.T) {
|
||||||
|
|||||||
@@ -8,7 +8,7 @@ import (
|
|||||||
"google.golang.org/grpc"
|
"google.golang.org/grpc"
|
||||||
"google.golang.org/grpc/credentials/insecure"
|
"google.golang.org/grpc/credentials/insecure"
|
||||||
|
|
||||||
"go.yandata.net/iod/iod/go-trustlog/internal/grpcclient"
|
"go.yandata.net/wangsiyuan/go-trustlog/internal/grpcclient"
|
||||||
)
|
)
|
||||||
|
|
||||||
// mockClient 用于测试的模拟客户端.
|
// mockClient 用于测试的模拟客户端.
|
||||||
|
|||||||
@@ -6,7 +6,7 @@ import (
|
|||||||
"github.com/stretchr/testify/assert"
|
"github.com/stretchr/testify/assert"
|
||||||
"github.com/stretchr/testify/require"
|
"github.com/stretchr/testify/require"
|
||||||
|
|
||||||
"go.yandata.net/iod/iod/go-trustlog/internal/helpers"
|
"go.yandata.net/wangsiyuan/go-trustlog/internal/helpers"
|
||||||
)
|
)
|
||||||
|
|
||||||
func TestMarshalCanonical(t *testing.T) {
|
func TestMarshalCanonical(t *testing.T) {
|
||||||
|
|||||||
@@ -7,7 +7,7 @@ import (
|
|||||||
"github.com/stretchr/testify/assert"
|
"github.com/stretchr/testify/assert"
|
||||||
"github.com/stretchr/testify/require"
|
"github.com/stretchr/testify/require"
|
||||||
|
|
||||||
"go.yandata.net/iod/iod/go-trustlog/internal/helpers"
|
"go.yandata.net/wangsiyuan/go-trustlog/internal/helpers"
|
||||||
)
|
)
|
||||||
|
|
||||||
func TestCBORTimePrecision(t *testing.T) {
|
func TestCBORTimePrecision(t *testing.T) {
|
||||||
|
|||||||
@@ -7,7 +7,7 @@ import (
|
|||||||
"github.com/stretchr/testify/assert"
|
"github.com/stretchr/testify/assert"
|
||||||
"github.com/stretchr/testify/require"
|
"github.com/stretchr/testify/require"
|
||||||
|
|
||||||
"go.yandata.net/iod/iod/go-trustlog/internal/helpers"
|
"go.yandata.net/wangsiyuan/go-trustlog/internal/helpers"
|
||||||
)
|
)
|
||||||
|
|
||||||
func TestNewTLVReader(t *testing.T) {
|
func TestNewTLVReader(t *testing.T) {
|
||||||
|
|||||||
@@ -8,7 +8,7 @@ import (
|
|||||||
"github.com/stretchr/testify/assert"
|
"github.com/stretchr/testify/assert"
|
||||||
"github.com/stretchr/testify/require"
|
"github.com/stretchr/testify/require"
|
||||||
|
|
||||||
"go.yandata.net/iod/iod/go-trustlog/internal/helpers"
|
"go.yandata.net/wangsiyuan/go-trustlog/internal/helpers"
|
||||||
)
|
)
|
||||||
|
|
||||||
func TestNewUUIDv7(t *testing.T) {
|
func TestNewUUIDv7(t *testing.T) {
|
||||||
|
|||||||
@@ -7,7 +7,7 @@ import (
|
|||||||
"github.com/stretchr/testify/assert"
|
"github.com/stretchr/testify/assert"
|
||||||
"github.com/stretchr/testify/require"
|
"github.com/stretchr/testify/require"
|
||||||
|
|
||||||
"go.yandata.net/iod/iod/go-trustlog/internal/helpers"
|
"go.yandata.net/wangsiyuan/go-trustlog/internal/helpers"
|
||||||
)
|
)
|
||||||
|
|
||||||
func TestGetValidator(t *testing.T) {
|
func TestGetValidator(t *testing.T) {
|
||||||
|
|||||||
@@ -6,8 +6,8 @@ import (
|
|||||||
|
|
||||||
"github.com/stretchr/testify/assert"
|
"github.com/stretchr/testify/assert"
|
||||||
|
|
||||||
apilogger "go.yandata.net/iod/iod/go-trustlog/api/logger"
|
apilogger "go.yandata.net/wangsiyuan/go-trustlog/api/logger"
|
||||||
"go.yandata.net/iod/iod/go-trustlog/internal/logger"
|
"go.yandata.net/wangsiyuan/go-trustlog/internal/logger"
|
||||||
)
|
)
|
||||||
|
|
||||||
func TestNewWatermillLoggerAdapter(t *testing.T) {
|
func TestNewWatermillLoggerAdapter(t *testing.T) {
|
||||||
|
|||||||
@@ -1,144 +0,0 @@
|
|||||||
// 检查和修复 cursor 表的脚本
|
|
||||||
package main
|
|
||||||
|
|
||||||
import (
|
|
||||||
"context"
|
|
||||||
"database/sql"
|
|
||||||
"fmt"
|
|
||||||
"log"
|
|
||||||
"strings"
|
|
||||||
"time"
|
|
||||||
|
|
||||||
_ "github.com/lib/pq"
|
|
||||||
)
|
|
||||||
|
|
||||||
const (
|
|
||||||
pgHost = "localhost"
|
|
||||||
pgPort = 5432
|
|
||||||
pgUser = "postgres"
|
|
||||||
pgPassword = "postgres"
|
|
||||||
pgDatabase = "trustlog"
|
|
||||||
)
|
|
||||||
|
|
||||||
func main() {
|
|
||||||
fmt.Println("🔍 Cursor Table Check Tool")
|
|
||||||
fmt.Println(strings.Repeat("=", 60))
|
|
||||||
|
|
||||||
// 连接数据库
|
|
||||||
dsn := fmt.Sprintf("host=%s port=%d user=%s password=%s dbname=%s sslmode=disable",
|
|
||||||
pgHost, pgPort, pgUser, pgPassword, pgDatabase)
|
|
||||||
|
|
||||||
db, err := sql.Open("postgres", dsn)
|
|
||||||
if err != nil {
|
|
||||||
log.Fatalf("Failed to connect: %v", err)
|
|
||||||
}
|
|
||||||
defer db.Close()
|
|
||||||
|
|
||||||
if err := db.Ping(); err != nil {
|
|
||||||
log.Fatalf("Failed to ping: %v", err)
|
|
||||||
}
|
|
||||||
|
|
||||||
fmt.Println("✅ Connected to PostgreSQL")
|
|
||||||
fmt.Println()
|
|
||||||
|
|
||||||
ctx := context.Background()
|
|
||||||
|
|
||||||
// 1. 检查 cursor 表数据
|
|
||||||
fmt.Println("📊 Current Cursor Table:")
|
|
||||||
rows, err := db.QueryContext(ctx, "SELECT cursor_key, cursor_value, last_updated_at FROM trustlog_cursor ORDER BY last_updated_at DESC")
|
|
||||||
if err != nil {
|
|
||||||
log.Printf("Failed to query cursor table: %v", err)
|
|
||||||
} else {
|
|
||||||
defer rows.Close()
|
|
||||||
|
|
||||||
count := 0
|
|
||||||
for rows.Next() {
|
|
||||||
var key, value string
|
|
||||||
var updatedAt time.Time
|
|
||||||
rows.Scan(&key, &value, &updatedAt)
|
|
||||||
fmt.Printf(" Key: %s\n", key)
|
|
||||||
fmt.Printf(" Value: %s\n", value)
|
|
||||||
fmt.Printf(" Updated: %v\n", updatedAt)
|
|
||||||
fmt.Println()
|
|
||||||
count++
|
|
||||||
}
|
|
||||||
|
|
||||||
if count == 0 {
|
|
||||||
fmt.Println(" ❌ No cursor records found!")
|
|
||||||
fmt.Println()
|
|
||||||
fmt.Println(" 问题原因:")
|
|
||||||
fmt.Println(" - Cursor Worker 可能没有启动")
|
|
||||||
fmt.Println(" - 或者初始化失败")
|
|
||||||
fmt.Println()
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// 2. 检查 operation 表状态
|
|
||||||
fmt.Println("📊 Operation Table Status:")
|
|
||||||
|
|
||||||
var totalCount int
|
|
||||||
db.QueryRowContext(ctx, "SELECT COUNT(*) FROM operation").Scan(&totalCount)
|
|
||||||
fmt.Printf(" Total operations: %d\n", totalCount)
|
|
||||||
|
|
||||||
var trustloggedCount int
|
|
||||||
db.QueryRowContext(ctx, "SELECT COUNT(*) FROM operation WHERE trustlog_status = 'TRUSTLOGGED'").Scan(&trustloggedCount)
|
|
||||||
fmt.Printf(" Trustlogged: %d\n", trustloggedCount)
|
|
||||||
|
|
||||||
var notTrustloggedCount int
|
|
||||||
db.QueryRowContext(ctx, "SELECT COUNT(*) FROM operation WHERE trustlog_status = 'NOT_TRUSTLOGGED'").Scan(¬TrustloggedCount)
|
|
||||||
fmt.Printf(" Not trustlogged: %d\n", notTrustloggedCount)
|
|
||||||
|
|
||||||
// 查询最早的记录
|
|
||||||
var earliestTime sql.NullTime
|
|
||||||
db.QueryRowContext(ctx, "SELECT MIN(created_at) FROM operation WHERE trustlog_status = 'NOT_TRUSTLOGGED'").Scan(&earliestTime)
|
|
||||||
if earliestTime.Valid {
|
|
||||||
fmt.Printf(" Earliest NOT_TRUSTLOGGED record: %v\n", earliestTime.Time)
|
|
||||||
}
|
|
||||||
|
|
||||||
fmt.Println()
|
|
||||||
|
|
||||||
// 3. 检查 cursor 和记录的时间关系
|
|
||||||
if notTrustloggedCount > 0 {
|
|
||||||
fmt.Println("⚠️ Problem Detected:")
|
|
||||||
fmt.Printf(" 有 %d 条记录未存证\n", notTrustloggedCount)
|
|
||||||
|
|
||||||
var cursorValue sql.NullString
|
|
||||||
db.QueryRowContext(ctx, "SELECT cursor_value FROM trustlog_cursor WHERE cursor_key = 'operation_scan'").Scan(&cursorValue)
|
|
||||||
|
|
||||||
if !cursorValue.Valid {
|
|
||||||
fmt.Println(" Cursor 表为空!")
|
|
||||||
fmt.Println()
|
|
||||||
fmt.Println(" 可能的原因:")
|
|
||||||
fmt.Println(" 1. Cursor Worker 从未启动")
|
|
||||||
fmt.Println(" 2. PersistenceClient 没有启用 Cursor Worker")
|
|
||||||
fmt.Println()
|
|
||||||
fmt.Println(" 解决方案:")
|
|
||||||
fmt.Println(" 1. 确保 PersistenceClient 配置了 EnableCursorWorker: true")
|
|
||||||
fmt.Println(" 2. 手动初始化 cursor:")
|
|
||||||
fmt.Println(" go run scripts/init_cursor.go")
|
|
||||||
} else {
|
|
||||||
cursorTime, _ := time.Parse(time.RFC3339Nano, cursorValue.String)
|
|
||||||
fmt.Printf(" Cursor 时间: %v\n", cursorTime)
|
|
||||||
|
|
||||||
if earliestTime.Valid && earliestTime.Time.Before(cursorTime) {
|
|
||||||
fmt.Println()
|
|
||||||
fmt.Println(" ❌ 问题:Cursor 时间晚于最早的未存证记录!")
|
|
||||||
fmt.Println(" 这些记录不会被处理。")
|
|
||||||
fmt.Println()
|
|
||||||
fmt.Println(" 解决方案:")
|
|
||||||
fmt.Println(" 1. 重置 cursor 到更早的时间:")
|
|
||||||
fmt.Printf(" UPDATE trustlog_cursor SET cursor_value = '%s' WHERE cursor_key = 'operation_scan';\n",
|
|
||||||
earliestTime.Time.Add(-1*time.Second).Format(time.RFC3339Nano))
|
|
||||||
fmt.Println()
|
|
||||||
fmt.Println(" 2. 或者使用脚本重置:")
|
|
||||||
fmt.Println(" go run scripts/reset_cursor.go")
|
|
||||||
}
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
fmt.Println("✅ All operations are trustlogged!")
|
|
||||||
}
|
|
||||||
|
|
||||||
fmt.Println()
|
|
||||||
fmt.Println(strings.Repeat("=", 60))
|
|
||||||
}
|
|
||||||
|
|
||||||
@@ -1,44 +0,0 @@
|
|||||||
package main
|
|
||||||
|
|
||||||
import (
|
|
||||||
"database/sql"
|
|
||||||
"fmt"
|
|
||||||
"log"
|
|
||||||
|
|
||||||
_ "github.com/lib/pq"
|
|
||||||
)
|
|
||||||
|
|
||||||
func main() {
|
|
||||||
dsn := "host=localhost port=5432 user=postgres password=postgres dbname=trustlog sslmode=disable"
|
|
||||||
|
|
||||||
db, err := sql.Open("postgres", dsn)
|
|
||||||
if err != nil {
|
|
||||||
log.Fatalf("Failed to connect: %v", err)
|
|
||||||
}
|
|
||||||
defer db.Close()
|
|
||||||
|
|
||||||
if err := db.Ping(); err != nil {
|
|
||||||
log.Fatalf("Failed to ping: %v", err)
|
|
||||||
}
|
|
||||||
|
|
||||||
fmt.Println("🧹 Cleaning test data...")
|
|
||||||
|
|
||||||
// 清理所有测试数据
|
|
||||||
_, err = db.Exec("DELETE FROM trustlog_retry")
|
|
||||||
if err != nil {
|
|
||||||
log.Printf("Warning: Failed to clean retry table: %v", err)
|
|
||||||
}
|
|
||||||
|
|
||||||
_, err = db.Exec("DELETE FROM operation")
|
|
||||||
if err != nil {
|
|
||||||
log.Printf("Warning: Failed to clean operation table: %v", err)
|
|
||||||
}
|
|
||||||
|
|
||||||
_, err = db.Exec("DELETE FROM trustlog_cursor")
|
|
||||||
if err != nil {
|
|
||||||
log.Printf("Warning: Failed to clean cursor table: %v", err)
|
|
||||||
}
|
|
||||||
|
|
||||||
fmt.Println("✅ All test data cleaned!")
|
|
||||||
}
|
|
||||||
|
|
||||||
@@ -1,112 +0,0 @@
|
|||||||
// 初始化或重置 cursor 的脚本
|
|
||||||
package main
|
|
||||||
|
|
||||||
import (
|
|
||||||
"context"
|
|
||||||
"database/sql"
|
|
||||||
"fmt"
|
|
||||||
"log"
|
|
||||||
"strings"
|
|
||||||
"time"
|
|
||||||
|
|
||||||
_ "github.com/lib/pq"
|
|
||||||
)
|
|
||||||
|
|
||||||
const (
|
|
||||||
pgHost = "localhost"
|
|
||||||
pgPort = 5432
|
|
||||||
pgUser = "postgres"
|
|
||||||
pgPassword = "postgres"
|
|
||||||
pgDatabase = "trustlog"
|
|
||||||
)
|
|
||||||
|
|
||||||
func main() {
|
|
||||||
fmt.Println("🔧 Cursor Initialization Tool")
|
|
||||||
fmt.Println(strings.Repeat("=", 60))
|
|
||||||
|
|
||||||
// 连接数据库
|
|
||||||
dsn := fmt.Sprintf("host=%s port=%d user=%s password=%s dbname=%s sslmode=disable",
|
|
||||||
pgHost, pgPort, pgUser, pgPassword, pgDatabase)
|
|
||||||
|
|
||||||
db, err := sql.Open("postgres", dsn)
|
|
||||||
if err != nil {
|
|
||||||
log.Fatalf("Failed to connect: %v", err)
|
|
||||||
}
|
|
||||||
defer db.Close()
|
|
||||||
|
|
||||||
if err := db.Ping(); err != nil {
|
|
||||||
log.Fatalf("Failed to ping: %v", err)
|
|
||||||
}
|
|
||||||
|
|
||||||
fmt.Println("✅ Connected to PostgreSQL")
|
|
||||||
fmt.Println()
|
|
||||||
|
|
||||||
ctx := context.Background()
|
|
||||||
|
|
||||||
// 查询最早的 NOT_TRUSTLOGGED 记录
|
|
||||||
var earliestTime sql.NullTime
|
|
||||||
err = db.QueryRowContext(ctx,
|
|
||||||
"SELECT MIN(created_at) FROM operation WHERE trustlog_status = 'NOT_TRUSTLOGGED'",
|
|
||||||
).Scan(&earliestTime)
|
|
||||||
|
|
||||||
if err != nil {
|
|
||||||
log.Fatalf("Failed to query earliest record: %v", err)
|
|
||||||
}
|
|
||||||
|
|
||||||
var cursorValue string
|
|
||||||
if earliestTime.Valid {
|
|
||||||
// 设置为最早记录之前 1 秒
|
|
||||||
cursorValue = earliestTime.Time.Add(-1 * time.Second).Format(time.RFC3339Nano)
|
|
||||||
fmt.Printf("📊 Earliest NOT_TRUSTLOGGED record: %v\n", earliestTime.Time)
|
|
||||||
fmt.Printf("📍 Setting cursor to: %s\n", cursorValue)
|
|
||||||
} else {
|
|
||||||
// 如果没有未存证记录,使用一个很早的时间
|
|
||||||
cursorValue = time.Date(2020, 1, 1, 0, 0, 0, 0, time.UTC).Format(time.RFC3339Nano)
|
|
||||||
fmt.Println("📊 No NOT_TRUSTLOGGED records found")
|
|
||||||
fmt.Printf("📍 Setting cursor to default: %s\n", cursorValue)
|
|
||||||
}
|
|
||||||
|
|
||||||
fmt.Println()
|
|
||||||
|
|
||||||
// 插入或更新 cursor
|
|
||||||
_, err = db.ExecContext(ctx, `
|
|
||||||
INSERT INTO trustlog_cursor (cursor_key, cursor_value, last_updated_at)
|
|
||||||
VALUES ($1, $2, $3)
|
|
||||||
ON CONFLICT (cursor_key)
|
|
||||||
DO UPDATE SET cursor_value = EXCLUDED.cursor_value, last_updated_at = EXCLUDED.last_updated_at
|
|
||||||
`, "operation_scan", cursorValue, time.Now())
|
|
||||||
|
|
||||||
if err != nil {
|
|
||||||
log.Fatalf("Failed to init cursor: %v", err)
|
|
||||||
}
|
|
||||||
|
|
||||||
fmt.Println("✅ Cursor initialized successfully!")
|
|
||||||
fmt.Println()
|
|
||||||
|
|
||||||
// 验证
|
|
||||||
var savedValue string
|
|
||||||
var updatedAt time.Time
|
|
||||||
err = db.QueryRowContext(ctx,
|
|
||||||
"SELECT cursor_value, last_updated_at FROM trustlog_cursor WHERE cursor_key = 'operation_scan'",
|
|
||||||
).Scan(&savedValue, &updatedAt)
|
|
||||||
|
|
||||||
if err != nil {
|
|
||||||
log.Fatalf("Failed to verify cursor: %v", err)
|
|
||||||
}
|
|
||||||
|
|
||||||
fmt.Println("📊 Cursor Status:")
|
|
||||||
fmt.Printf(" Key: operation_scan\n")
|
|
||||||
fmt.Printf(" Value: %s\n", savedValue)
|
|
||||||
fmt.Printf(" Updated: %v\n", updatedAt)
|
|
||||||
fmt.Println()
|
|
||||||
|
|
||||||
// 统计
|
|
||||||
var notTrustloggedCount int
|
|
||||||
db.QueryRowContext(ctx, "SELECT COUNT(*) FROM operation WHERE trustlog_status = 'NOT_TRUSTLOGGED'").Scan(¬TrustloggedCount)
|
|
||||||
|
|
||||||
fmt.Printf("📝 Records to process: %d\n", notTrustloggedCount)
|
|
||||||
fmt.Println()
|
|
||||||
fmt.Println("✅ Cursor Worker 现在会处理这些记录")
|
|
||||||
fmt.Println(strings.Repeat("=", 60))
|
|
||||||
}
|
|
||||||
|
|
||||||
@@ -1,128 +0,0 @@
|
|||||||
package main
|
|
||||||
|
|
||||||
import (
|
|
||||||
"database/sql"
|
|
||||||
"fmt"
|
|
||||||
"log"
|
|
||||||
|
|
||||||
_ "github.com/lib/pq"
|
|
||||||
)
|
|
||||||
|
|
||||||
func main() {
|
|
||||||
dsn := "host=localhost port=5432 user=postgres password=postgres dbname=trustlog sslmode=disable"
|
|
||||||
|
|
||||||
db, err := sql.Open("postgres", dsn)
|
|
||||||
if err != nil {
|
|
||||||
log.Fatalf("Failed to connect: %v", err)
|
|
||||||
}
|
|
||||||
defer db.Close()
|
|
||||||
|
|
||||||
if err := db.Ping(); err != nil {
|
|
||||||
log.Fatalf("Failed to ping: %v", err)
|
|
||||||
}
|
|
||||||
|
|
||||||
fmt.Println("🔄 Migrating PostgreSQL schema...")
|
|
||||||
|
|
||||||
// 删除旧表
|
|
||||||
fmt.Println(" Dropping old tables...")
|
|
||||||
_, err = db.Exec("DROP TABLE IF EXISTS trustlog_retry")
|
|
||||||
if err != nil {
|
|
||||||
log.Printf("Warning: Failed to drop retry table: %v", err)
|
|
||||||
}
|
|
||||||
|
|
||||||
_, err = db.Exec("DROP TABLE IF EXISTS operation")
|
|
||||||
if err != nil {
|
|
||||||
log.Printf("Warning: Failed to drop operation table: %v", err)
|
|
||||||
}
|
|
||||||
|
|
||||||
_, err = db.Exec("DROP TABLE IF EXISTS trustlog_cursor")
|
|
||||||
if err != nil {
|
|
||||||
log.Printf("Warning: Failed to drop cursor table: %v", err)
|
|
||||||
}
|
|
||||||
|
|
||||||
// 重新创建表
|
|
||||||
fmt.Println(" Creating new tables...")
|
|
||||||
|
|
||||||
_, err = db.Exec(`
|
|
||||||
CREATE TABLE IF NOT EXISTS operation (
|
|
||||||
op_id VARCHAR(32) NOT NULL PRIMARY KEY,
|
|
||||||
op_actor VARCHAR(64),
|
|
||||||
doid VARCHAR(512),
|
|
||||||
producer_id VARCHAR(32),
|
|
||||||
request_body_hash VARCHAR(128),
|
|
||||||
response_body_hash VARCHAR(128),
|
|
||||||
op_hash VARCHAR(128),
|
|
||||||
sign VARCHAR(512),
|
|
||||||
op_source VARCHAR(10),
|
|
||||||
op_type VARCHAR(30),
|
|
||||||
do_prefix VARCHAR(128),
|
|
||||||
do_repository VARCHAR(64),
|
|
||||||
client_ip VARCHAR(32),
|
|
||||||
server_ip VARCHAR(32),
|
|
||||||
trustlog_status VARCHAR(32),
|
|
||||||
timestamp TIMESTAMP,
|
|
||||||
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
|
||||||
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
|
|
||||||
)`)
|
|
||||||
if err != nil {
|
|
||||||
log.Fatalf("Failed to create operation table: %v", err)
|
|
||||||
}
|
|
||||||
|
|
||||||
_, err = db.Exec(`
|
|
||||||
CREATE INDEX IF NOT EXISTS idx_operation_timestamp ON operation(timestamp)`)
|
|
||||||
if err != nil {
|
|
||||||
log.Printf("Warning: Failed to create timestamp index: %v", err)
|
|
||||||
}
|
|
||||||
|
|
||||||
_, err = db.Exec(`
|
|
||||||
CREATE INDEX IF NOT EXISTS idx_operation_trustlog_status ON operation(trustlog_status)`)
|
|
||||||
if err != nil {
|
|
||||||
log.Printf("Warning: Failed to create status index: %v", err)
|
|
||||||
}
|
|
||||||
|
|
||||||
_, err = db.Exec(`
|
|
||||||
CREATE INDEX IF NOT EXISTS idx_operation_created_at ON operation(created_at)`)
|
|
||||||
if err != nil {
|
|
||||||
log.Printf("Warning: Failed to create created_at index: %v", err)
|
|
||||||
}
|
|
||||||
|
|
||||||
_, err = db.Exec(`
|
|
||||||
CREATE TABLE IF NOT EXISTS trustlog_cursor (
|
|
||||||
cursor_key VARCHAR(64) NOT NULL PRIMARY KEY,
|
|
||||||
cursor_value TEXT NOT NULL,
|
|
||||||
last_updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
|
|
||||||
)`)
|
|
||||||
if err != nil {
|
|
||||||
log.Fatalf("Failed to create cursor table: %v", err)
|
|
||||||
}
|
|
||||||
|
|
||||||
_, err = db.Exec(`
|
|
||||||
CREATE TABLE IF NOT EXISTS trustlog_retry (
|
|
||||||
op_id VARCHAR(32) NOT NULL PRIMARY KEY,
|
|
||||||
retry_count INTEGER DEFAULT 0,
|
|
||||||
retry_status VARCHAR(32) DEFAULT 'PENDING',
|
|
||||||
last_retry_at TIMESTAMP,
|
|
||||||
next_retry_at TIMESTAMP,
|
|
||||||
error_message TEXT,
|
|
||||||
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
|
||||||
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
|
|
||||||
)`)
|
|
||||||
if err != nil {
|
|
||||||
log.Fatalf("Failed to create retry table: %v", err)
|
|
||||||
}
|
|
||||||
|
|
||||||
_, err = db.Exec(`
|
|
||||||
CREATE INDEX IF NOT EXISTS idx_retry_next_retry_at ON trustlog_retry(next_retry_at)`)
|
|
||||||
if err != nil {
|
|
||||||
log.Printf("Warning: Failed to create retry time index: %v", err)
|
|
||||||
}
|
|
||||||
|
|
||||||
_, err = db.Exec(`
|
|
||||||
CREATE INDEX IF NOT EXISTS idx_retry_retry_status ON trustlog_retry(retry_status)`)
|
|
||||||
if err != nil {
|
|
||||||
log.Printf("Warning: Failed to create retry status index: %v", err)
|
|
||||||
}
|
|
||||||
|
|
||||||
fmt.Println("✅ Schema migration completed!")
|
|
||||||
}
|
|
||||||
|
|
||||||
85
scripts/reset_db.go
Normal file
85
scripts/reset_db.go
Normal file
@@ -0,0 +1,85 @@
|
|||||||
|
package main
|
||||||
|
|
||||||
|
import (
|
||||||
|
"database/sql"
|
||||||
|
"fmt"
|
||||||
|
"log"
|
||||||
|
"os"
|
||||||
|
|
||||||
|
_ "github.com/lib/pq"
|
||||||
|
)
|
||||||
|
|
||||||
|
func main() {
|
||||||
|
// PostgreSQL连接信息
|
||||||
|
connStr := "host=localhost port=5432 user=postgres password=postgres dbname=trustlog sslmode=disable"
|
||||||
|
|
||||||
|
db, err := sql.Open("postgres", connStr)
|
||||||
|
if err != nil {
|
||||||
|
log.Fatalf("❌ Failed to connect to database: %v", err)
|
||||||
|
}
|
||||||
|
defer db.Close()
|
||||||
|
|
||||||
|
// 测试连接
|
||||||
|
if err := db.Ping(); err != nil {
|
||||||
|
log.Fatalf("❌ Failed to ping database: %v", err)
|
||||||
|
}
|
||||||
|
|
||||||
|
fmt.Println("✅ Connected to PostgreSQL database: trustlog")
|
||||||
|
|
||||||
|
// 删除旧表
|
||||||
|
fmt.Println("\n📋 Dropping old tables...")
|
||||||
|
dropSQL := []string{
|
||||||
|
"DROP TABLE IF EXISTS operation CASCADE",
|
||||||
|
"DROP TABLE IF EXISTS trustlog_cursor CASCADE",
|
||||||
|
"DROP TABLE IF EXISTS trustlog_retry CASCADE",
|
||||||
|
}
|
||||||
|
|
||||||
|
for _, sql := range dropSQL {
|
||||||
|
if _, err := db.Exec(sql); err != nil {
|
||||||
|
log.Printf("⚠️ Warning dropping table: %v", err)
|
||||||
|
} else {
|
||||||
|
fmt.Println("✅", sql)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// 读取并执行新的DDL
|
||||||
|
fmt.Println("\n📋 Creating new tables with op_code...")
|
||||||
|
ddlFile := "api/persistence/sql/postgresql.sql"
|
||||||
|
ddlContent, err := os.ReadFile(ddlFile)
|
||||||
|
if err != nil {
|
||||||
|
log.Fatalf("❌ Failed to read DDL file: %v", err)
|
||||||
|
}
|
||||||
|
|
||||||
|
if _, err := db.Exec(string(ddlContent)); err != nil {
|
||||||
|
log.Fatalf("❌ Failed to execute DDL: %v", err)
|
||||||
|
}
|
||||||
|
|
||||||
|
fmt.Println("✅ Tables created successfully")
|
||||||
|
|
||||||
|
// 验证表结构
|
||||||
|
fmt.Println("\n📋 Verifying table structure...")
|
||||||
|
|
||||||
|
var count int
|
||||||
|
query := `SELECT COUNT(*) FROM information_schema.tables WHERE table_schema = 'public' AND table_name IN ('operation', 'trustlog_cursor', 'trustlog_retry')`
|
||||||
|
if err := db.QueryRow(query).Scan(&count); err != nil {
|
||||||
|
log.Fatalf("❌ Failed to verify tables: %v", err)
|
||||||
|
}
|
||||||
|
|
||||||
|
if count != 3 {
|
||||||
|
log.Fatalf("❌ Expected 3 tables, found %d", count)
|
||||||
|
}
|
||||||
|
|
||||||
|
fmt.Printf("✅ All %d tables verified\n", count)
|
||||||
|
|
||||||
|
// 验证op_code列
|
||||||
|
var dataType string
|
||||||
|
colQuery := `SELECT data_type FROM information_schema.columns WHERE table_name = 'operation' AND column_name = 'op_code'`
|
||||||
|
if err := db.QueryRow(colQuery).Scan(&dataType); err != nil {
|
||||||
|
log.Fatalf("❌ Failed to verify op_code column: %v", err)
|
||||||
|
}
|
||||||
|
|
||||||
|
fmt.Printf("✅ op_code column type: %s\n", dataType)
|
||||||
|
|
||||||
|
fmt.Println("\n🎉 Database reset completed successfully!")
|
||||||
|
}
|
||||||
|
|
||||||
@@ -1,103 +0,0 @@
|
|||||||
// 验证 Pulsar 消息的简单脚本
|
|
||||||
// 使用方法: go run scripts/verify_pulsar_messages.go
|
|
||||||
|
|
||||||
package main
|
|
||||||
|
|
||||||
import (
|
|
||||||
"context"
|
|
||||||
"fmt"
|
|
||||||
"log"
|
|
||||||
"time"
|
|
||||||
|
|
||||||
"github.com/apache/pulsar-client-go/pulsar"
|
|
||||||
)
|
|
||||||
|
|
||||||
const (
|
|
||||||
pulsarURL = "pulsar://localhost:6650"
|
|
||||||
topic = "persistent://public/default/operation"
|
|
||||||
timeout = 10 * time.Second
|
|
||||||
)
|
|
||||||
|
|
||||||
func main() {
|
|
||||||
fmt.Println("🔍 Pulsar Message Verification Tool")
|
|
||||||
fmt.Println("=====================================")
|
|
||||||
fmt.Printf("Pulsar URL: %s\n", pulsarURL)
|
|
||||||
fmt.Printf("Topic: %s\n", topic)
|
|
||||||
fmt.Println()
|
|
||||||
|
|
||||||
// 创建 Pulsar 客户端
|
|
||||||
client, err := pulsar.NewClient(pulsar.ClientOptions{
|
|
||||||
URL: pulsarURL,
|
|
||||||
})
|
|
||||||
if err != nil {
|
|
||||||
log.Fatalf("❌ Failed to create Pulsar client: %v", err)
|
|
||||||
}
|
|
||||||
defer client.Close()
|
|
||||||
fmt.Println("✅ Connected to Pulsar")
|
|
||||||
|
|
||||||
// 创建消费者(使用唯一的 subscription)
|
|
||||||
subName := fmt.Sprintf("verify-sub-%d", time.Now().Unix())
|
|
||||||
consumer, err := client.Subscribe(pulsar.ConsumerOptions{
|
|
||||||
Topic: topic,
|
|
||||||
SubscriptionName: subName,
|
|
||||||
Type: pulsar.Shared,
|
|
||||||
// 从最早的未确认消息开始读取
|
|
||||||
SubscriptionInitialPosition: pulsar.SubscriptionPositionEarliest,
|
|
||||||
})
|
|
||||||
if err != nil {
|
|
||||||
log.Fatalf("❌ Failed to create consumer: %v", err)
|
|
||||||
}
|
|
||||||
defer consumer.Close()
|
|
||||||
fmt.Printf("✅ Consumer created: %s\n\n", subName)
|
|
||||||
|
|
||||||
// 接收消息
|
|
||||||
fmt.Println("📩 Listening for messages (timeout: 10s)...")
|
|
||||||
fmt.Println("----------------------------------------")
|
|
||||||
|
|
||||||
ctx, cancel := context.WithTimeout(context.Background(), timeout)
|
|
||||||
defer cancel()
|
|
||||||
|
|
||||||
messageCount := 0
|
|
||||||
for {
|
|
||||||
msg, err := consumer.Receive(ctx)
|
|
||||||
if err != nil {
|
|
||||||
if ctx.Err() == context.DeadlineExceeded {
|
|
||||||
break
|
|
||||||
}
|
|
||||||
log.Printf("⚠️ Error receiving message: %v", err)
|
|
||||||
continue
|
|
||||||
}
|
|
||||||
|
|
||||||
messageCount++
|
|
||||||
fmt.Printf("\n📨 Message #%d:\n", messageCount)
|
|
||||||
fmt.Printf(" Key: %s\n", msg.Key())
|
|
||||||
fmt.Printf(" Payload Size: %d bytes\n", len(msg.Payload()))
|
|
||||||
fmt.Printf(" Publish Time: %v\n", msg.PublishTime())
|
|
||||||
fmt.Printf(" Topic: %s\n", msg.Topic())
|
|
||||||
fmt.Printf(" Message ID: %v\n", msg.ID())
|
|
||||||
|
|
||||||
// 确认消息
|
|
||||||
consumer.Ack(msg)
|
|
||||||
|
|
||||||
// 最多显示 10 条消息
|
|
||||||
if messageCount >= 10 {
|
|
||||||
fmt.Println("\n⚠️ Reached 10 messages limit, stopping...")
|
|
||||||
break
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
fmt.Println("\n========================================")
|
|
||||||
if messageCount == 0 {
|
|
||||||
fmt.Println("❌ No messages found in Pulsar")
|
|
||||||
fmt.Println("\nPossible reasons:")
|
|
||||||
fmt.Println(" 1. No operations have been published yet")
|
|
||||||
fmt.Println(" 2. All messages have been consumed by other consumers")
|
|
||||||
fmt.Println(" 3. Wrong topic name")
|
|
||||||
fmt.Println("\nTo test, run the E2E test:")
|
|
||||||
fmt.Println(" go test ./api/persistence -v -run TestE2E_DBAndTrustlog_WithPulsarConsumer")
|
|
||||||
} else {
|
|
||||||
fmt.Printf("✅ Found %d messages in Pulsar\n", messageCount)
|
|
||||||
}
|
|
||||||
fmt.Println("========================================")
|
|
||||||
}
|
|
||||||
|
|
||||||
Reference in New Issue
Block a user