Commit 3d238249 authored by QM's avatar QM Committed by 33cn

add setWithdrawStatics

parent cfcea967
......@@ -25,7 +25,7 @@ func ShowStaticsFlags(cmd *cobra.Command) {
cmd.Flags().StringP("symbol", "s", "", "token symbol(optional)")
cmd.Flags().Int32P("from", "f", 0, "source chain, 0=ethereum, and 1=chain33")
_ = cmd.MarkFlagRequired("from")
cmd.Flags().Int32P("operation", "o", 0, "operation type, 1=burn, 2=lock, 3=withdraw")
cmd.Flags().StringP("operation", "o", "b", "operation type, b=burn, l=lock, w=withdraw")
_ = cmd.MarkFlagRequired("operation")
cmd.Flags().Int32P("status", "u", 0, "show with specified status, default to show all, 1=pending, 2=successful, 3=failed")
cmd.Flags().Int32P("count", "n", 0, "count to show, default to show all")
......@@ -37,7 +37,7 @@ func ShowStatics(cmd *cobra.Command, args []string) {
rpcLaddr, _ := cmd.Flags().GetString("rpc_laddr")
symbol, _ := cmd.Flags().GetString("symbol")
from, _ := cmd.Flags().GetInt32("from")
operation, _ := cmd.Flags().GetInt32("operation")
operation, _ := cmd.Flags().GetString("operation")
status, _ := cmd.Flags().GetInt32("status")
count, _ := cmd.Flags().GetInt32("count")
index, _ := cmd.Flags().GetInt32("index")
......@@ -47,8 +47,8 @@ func ShowStatics(cmd *cobra.Command, args []string) {
return
}
if operation != 2 && 1 != operation && operation != 3 {
fmt.Println("Pls set correct operation type, 1=burn, 2=lock, 3=withdraw")
if operation != "b" && "l" != operation && operation != "w" {
fmt.Println("Pls set correct operation type, b=burn, l=lock, w=withdraw")
return
}
......@@ -57,10 +57,19 @@ func ShowStatics(cmd *cobra.Command, args []string) {
return
}
var operationInt int32
if operation == "b" {
operationInt = 1
} else if operation == "l" {
operationInt = 2
} else if operation == "w" {
operationInt = 3
}
para := &ebTypes.TokenStaticsRequest{
Symbol: symbol,
From: from,
Operation: operation,
Operation: operationInt,
Status: status,
TxIndex: int64(index),
Count: count,
......
......@@ -151,7 +151,7 @@ message Chain33ToEthereumStatics {
string ethTxstatus = 1;
string chain33Txhash = 2;
string EthereumTxhash = 3;
int32 burnLock = 4;
int32 burnLockWithdraw = 4;
//该笔lock或者burn交易的chain33发起人
string chain33Sender = 5;
string ethereumReceiver = 6;
......
......@@ -579,6 +579,11 @@ func (ethRelayer *Relayer4Ethereum) handleLogWithdraw(chain33Msg *events.Chain33
if nil != err {
relayerLog.Error("handleLogWithdraw", "Failed to setWithdraw due to:", err.Error())
}
err = ethRelayer.setWithdrawStatics(withdrawTx, chain33Msg)
if nil != err {
relayerLog.Error("handleLogWithdraw", "Failed to setWithdrawStatics due to:", err.Error())
}
}()
relayerLog.Info("handleLogWithdraw", "Received chain33Msg", chain33Msg, "tx hash string", common.Bytes2Hex(chain33Msg.TxHash))
......@@ -653,7 +658,8 @@ func (ethRelayer *Relayer4Ethereum) handleLogWithdraw(chain33Msg *events.Chain33
}
//校验余额是否充足
if ok, err := ethRelayer.checkBalanceEnough(toAddr, amount2transfer, balanceOfData); !ok {
err = ethRelayer.checkBalanceEnough(toAddr, amount2transfer, balanceOfData)
if err != nil {
relayerLog.Error("handleLogWithdraw", "Failed to checkBalanceEnough:", err.Error())
err = errors.New("ErrBalanceNotEnough")
return
......@@ -687,40 +693,10 @@ func (ethRelayer *Relayer4Ethereum) handleLogWithdraw(chain33Msg *events.Chain33
withdrawTx.StatusDescription = ethtxs.WDPending.String()
withdrawTx.TxHashOnEthereum = signedTx.Hash().String()
txIndex := atomic.AddInt64(&ethRelayer.totalTxRelayFromChain33, 1)
operationType := chain33Msg.ClaimType.String()
statics := &ebTypes.Chain33ToEthereumStatics{
EthTxstatus: ebTypes.Tx_Status_Pending,
Chain33Txhash: common.Bytes2Hex(chain33Msg.TxHash),
EthereumTxhash: withdrawTx.TxHashOnEthereum,
BurnLock: int32(chain33Msg.ClaimType),
Chain33Sender: chain33Msg.Chain33Sender.String(),
EthereumReceiver: chain33Msg.EthereumReceiver.String(),
Symbol: chain33Msg.Symbol,
Amount: chain33Msg.Amount.String(),
Nonce: chain33Msg.Nonce,
TxIndex: txIndex,
OperationType: operationType,
}
data := chain33Types.Encode(statics)
if err = ethRelayer.setLastestStatics(int32(chain33Msg.ClaimType), txIndex, data); nil != err {
relayerLog.Error("handleLogLockBurn", "Failed to RelayLockToChain33 due to:", err.Error())
return
}
relayerLog.Info("RelayOracleClaimToEthereum::successful",
"txIndex", txIndex,
"Chain33Txhash", statics.Chain33Txhash,
"EthereumTxhash", statics.EthereumTxhash,
"type", operationType,
"Symbol", chain33Msg.Symbol,
"Amount", chain33Msg.Amount,
"EthereumReceiver", statics.EthereumReceiver,
"Chain33Sender", statics.Chain33Sender)
return
}
func (ethRelayer *Relayer4Ethereum) checkBalanceEnough(addr common.Address, amount *big.Int, inputdata []byte) (bool, error) {
func (ethRelayer *Relayer4Ethereum) checkBalanceEnough(addr common.Address, amount *big.Int, inputdata []byte) error {
//检测地址余额
var balance *big.Int
var err error
......@@ -730,7 +706,7 @@ func (ethRelayer *Relayer4Ethereum) checkBalanceEnough(addr common.Address, amou
//retry
balance, err = ethRelayer.clientSpec.BalanceAt(context.Background(), addr, nil)
if err != nil {
return false, err
return err
}
}
} else {
......@@ -742,24 +718,22 @@ func (ethRelayer *Relayer4Ethereum) checkBalanceEnough(addr common.Address, amou
//retry
result, err = ethRelayer.clientSpec.CallContract(context.Background(), msg, nil)
if err != nil {
return false, err
return err
}
}
var ok bool
balance, ok = big.NewInt(1).SetString(common.Bytes2Hex(result), 16)
if !ok {
return false, errors.New(fmt.Sprintf("token balance err:%v", common.Bytes2Hex(result)))
return errors.New(fmt.Sprintf("token balance err:%v", common.Bytes2Hex(result)))
}
}
//与要发动的金额大小进行比较
if balance.Cmp(amount) > 0 {
return true, nil
return nil
}
relayerLog.Error("Insufficient balance", "balance", balance, "amount", amount)
return false, errors.New("Insufficient balance")
return errors.New("Insufficient balance")
}
func (ethRelayer *Relayer4Ethereum) signTx(tx *types.Transaction, key *ecdsa.PrivateKey) (*types.Transaction, error) {
......@@ -880,7 +854,7 @@ func (ethRelayer *Relayer4Ethereum) handleLogLockBurn(chain33Msg *events.Chain33
EthTxstatus: ebTypes.Tx_Status_Pending,
Chain33Txhash: common.Bytes2Hex(chain33Msg.TxHash),
EthereumTxhash: txhash,
BurnLock: int32(chain33Msg.ClaimType),
BurnLockWithdraw: int32(chain33Msg.ClaimType),
Chain33Sender: chain33Msg.Chain33Sender.String(),
EthereumReceiver: chain33Msg.EthereumReceiver.String(),
Symbol: chain33Msg.Symbol,
......
......@@ -4,7 +4,9 @@ import (
"encoding/json"
"errors"
"fmt"
"github.com/33cn/plugin/plugin/dapp/cross2eth/ebrelayer/relayer/ethereum/ethtxs"
"math/big"
"sync/atomic"
"github.com/ethereum/go-ethereum/common"
......@@ -460,6 +462,32 @@ func (ethRelayer *Relayer4Ethereum) setWithdraw(withdrawTx *ebTypes.WithdrawTx)
return ethRelayer.db.Set(listKey, listData)
}
func (ethRelayer *Relayer4Ethereum) setWithdrawStatics(withdrawTx *ebTypes.WithdrawTx, chain33Msg *events.Chain33Msg) error {
txIndex := atomic.AddInt64(&ethRelayer.totalTxRelayFromChain33, 1)
operationType := chain33Msg.ClaimType.String()
statics := &ebTypes.Chain33ToEthereumStatics{
EthTxstatus: ebTypes.Tx_Status_Pending,
Chain33Txhash: common.Bytes2Hex(chain33Msg.TxHash),
EthereumTxhash: withdrawTx.TxHashOnEthereum,
BurnLockWithdraw: int32(chain33Msg.ClaimType),
Chain33Sender: chain33Msg.Chain33Sender.String(),
EthereumReceiver: chain33Msg.EthereumReceiver.String(),
Symbol: chain33Msg.Symbol,
Amount: chain33Msg.Amount.String(),
Nonce: chain33Msg.Nonce,
TxIndex: txIndex,
OperationType: operationType,
}
if withdrawTx.Status == int32(ethtxs.WDError) {
statics.EthTxstatus = ebTypes.Tx_Status_Failed
}
relayerLog.Info("setWithdrawStatics::successful", "txIndex", txIndex, "Chain33Txhash", statics.Chain33Txhash, "EthereumTxhash", statics.EthereumTxhash, "type", operationType,
"Symbol", chain33Msg.Symbol, "Amount", chain33Msg.Amount, "EthereumReceiver", statics.EthereumReceiver, "Chain33Sender", statics.Chain33Sender)
data := chain33Types.Encode(statics)
return ethRelayer.setLastestStatics(int32(chain33Msg.ClaimType), txIndex, data)
}
func (ethRelayer *Relayer4Ethereum) getWithdrawsWithinSameDay(withdrawTx *ebTypes.WithdrawTx) (*big.Int, error) {
chain33Sender := withdrawTx.Chain33Sender
symbol := withdrawTx.Symbol
......
// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
// protoc-gen-go v1.23.0
// protoc v3.9.1
// source: config.proto
package types
import (
reflect "reflect"
sync "sync"
fmt "fmt"
proto "github.com/golang/protobuf/proto"
protoreflect "google.golang.org/protobuf/reflect/protoreflect"
protoimpl "google.golang.org/protobuf/runtime/protoimpl"
math "math"
)
const (
// Verify that this generated code is sufficiently up-to-date.
_ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
// Verify that runtime/protoimpl is sufficiently up-to-date.
_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
)
// Reference imports to suppress errors if they are not otherwise used.
var _ = proto.Marshal
var _ = fmt.Errorf
var _ = math.Inf
// This is a compile-time assertion that a sufficiently up-to-date version
// of the legacy proto package is being used.
const _ = proto.ProtoPackageIsVersion4
// This is a compile-time assertion to ensure that this generated file
// is compatible with the proto package it is being compiled against.
// A compilation error at this line likely means your copy of the
// proto package needs to be updated.
const _ = proto.ProtoPackageIsVersion3 // please upgrade the proto package
type SyncTxConfig struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Chain33Host string `protobuf:"bytes,1,opt,name=chain33host,proto3" json:"chain33host,omitempty"`
PushHost string `protobuf:"bytes,2,opt,name=pushHost,proto3" json:"pushHost,omitempty"`
PushName string `protobuf:"bytes,3,opt,name=pushName,proto3" json:"pushName,omitempty"`
PushBind string `protobuf:"bytes,4,opt,name=pushBind,proto3" json:"pushBind,omitempty"`
MaturityDegree int32 `protobuf:"varint,5,opt,name=maturityDegree,proto3" json:"maturityDegree,omitempty"`
Dbdriver string `protobuf:"bytes,6,opt,name=dbdriver,proto3" json:"dbdriver,omitempty"` //数据库类型
DbPath string `protobuf:"bytes,7,opt,name=dbPath,proto3" json:"dbPath,omitempty"` //数据库存储目录
DbCache int32 `protobuf:"varint,8,opt,name=dbCache,proto3" json:"dbCache,omitempty"` //数据库缓存大小
FetchHeightPeriodMs int64 `protobuf:"varint,9,opt,name=fetchHeightPeriodMs,proto3" json:"fetchHeightPeriodMs,omitempty"`
StartSyncHeight int64 `protobuf:"varint,10,opt,name=startSyncHeight,proto3" json:"startSyncHeight,omitempty"`
StartSyncSequence int64 `protobuf:"varint,11,opt,name=startSyncSequence,proto3" json:"startSyncSequence,omitempty"`
StartSyncHash string `protobuf:"bytes,12,opt,name=startSyncHash,proto3" json:"startSyncHash,omitempty"`
Chain33Host string `protobuf:"bytes,1,opt,name=chain33host,proto3" json:"chain33host,omitempty"`
PushHost string `protobuf:"bytes,2,opt,name=pushHost,proto3" json:"pushHost,omitempty"`
PushName string `protobuf:"bytes,3,opt,name=pushName,proto3" json:"pushName,omitempty"`
PushBind string `protobuf:"bytes,4,opt,name=pushBind,proto3" json:"pushBind,omitempty"`
MaturityDegree int32 `protobuf:"varint,5,opt,name=maturityDegree,proto3" json:"maturityDegree,omitempty"`
Dbdriver string `protobuf:"bytes,6,opt,name=dbdriver,proto3" json:"dbdriver,omitempty"`
DbPath string `protobuf:"bytes,7,opt,name=dbPath,proto3" json:"dbPath,omitempty"`
DbCache int32 `protobuf:"varint,8,opt,name=dbCache,proto3" json:"dbCache,omitempty"`
FetchHeightPeriodMs int64 `protobuf:"varint,9,opt,name=fetchHeightPeriodMs,proto3" json:"fetchHeightPeriodMs,omitempty"`
StartSyncHeight int64 `protobuf:"varint,10,opt,name=startSyncHeight,proto3" json:"startSyncHeight,omitempty"`
StartSyncSequence int64 `protobuf:"varint,11,opt,name=startSyncSequence,proto3" json:"startSyncSequence,omitempty"`
StartSyncHash string `protobuf:"bytes,12,opt,name=startSyncHash,proto3" json:"startSyncHash,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
}
func (m *SyncTxConfig) Reset() { *m = SyncTxConfig{} }
func (m *SyncTxConfig) String() string { return proto.CompactTextString(m) }
func (*SyncTxConfig) ProtoMessage() {}
func (*SyncTxConfig) Descriptor() ([]byte, []int) {
return fileDescriptor_3eaf2c85e69e9ea4, []int{0}
}
func (x *SyncTxConfig) Reset() {
*x = SyncTxConfig{}
if protoimpl.UnsafeEnabled {
mi := &file_config_proto_msgTypes[0]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
func (m *SyncTxConfig) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_SyncTxConfig.Unmarshal(m, b)
}
func (x *SyncTxConfig) String() string {
return protoimpl.X.MessageStringOf(x)
func (m *SyncTxConfig) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_SyncTxConfig.Marshal(b, m, deterministic)
}
func (*SyncTxConfig) ProtoMessage() {}
func (x *SyncTxConfig) ProtoReflect() protoreflect.Message {
mi := &file_config_proto_msgTypes[0]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
func (m *SyncTxConfig) XXX_Merge(src proto.Message) {
xxx_messageInfo_SyncTxConfig.Merge(m, src)
}
// Deprecated: Use SyncTxConfig.ProtoReflect.Descriptor instead.
func (*SyncTxConfig) Descriptor() ([]byte, []int) {
return file_config_proto_rawDescGZIP(), []int{0}
func (m *SyncTxConfig) XXX_Size() int {
return xxx_messageInfo_SyncTxConfig.Size(m)
}
func (m *SyncTxConfig) XXX_DiscardUnknown() {
xxx_messageInfo_SyncTxConfig.DiscardUnknown(m)
}
func (x *SyncTxConfig) GetChain33Host() string {
if x != nil {
return x.Chain33Host
var xxx_messageInfo_SyncTxConfig proto.InternalMessageInfo
func (m *SyncTxConfig) GetChain33Host() string {
if m != nil {
return m.Chain33Host
}
return ""
}
func (x *SyncTxConfig) GetPushHost() string {
if x != nil {
return x.PushHost
func (m *SyncTxConfig) GetPushHost() string {
if m != nil {
return m.PushHost
}
return ""
}
func (x *SyncTxConfig) GetPushName() string {
if x != nil {
return x.PushName
func (m *SyncTxConfig) GetPushName() string {
if m != nil {
return m.PushName
}
return ""
}
func (x *SyncTxConfig) GetPushBind() string {
if x != nil {
return x.PushBind
func (m *SyncTxConfig) GetPushBind() string {
if m != nil {
return m.PushBind
}
return ""
}
func (x *SyncTxConfig) GetMaturityDegree() int32 {
if x != nil {
return x.MaturityDegree
func (m *SyncTxConfig) GetMaturityDegree() int32 {
if m != nil {
return m.MaturityDegree
}
return 0
}
func (x *SyncTxConfig) GetDbdriver() string {
if x != nil {
return x.Dbdriver
func (m *SyncTxConfig) GetDbdriver() string {
if m != nil {
return m.Dbdriver
}
return ""
}
func (x *SyncTxConfig) GetDbPath() string {
if x != nil {
return x.DbPath
func (m *SyncTxConfig) GetDbPath() string {
if m != nil {
return m.DbPath
}
return ""
}
func (x *SyncTxConfig) GetDbCache() int32 {
if x != nil {
return x.DbCache
func (m *SyncTxConfig) GetDbCache() int32 {
if m != nil {
return m.DbCache
}
return 0
}
func (x *SyncTxConfig) GetFetchHeightPeriodMs() int64 {
if x != nil {
return x.FetchHeightPeriodMs
func (m *SyncTxConfig) GetFetchHeightPeriodMs() int64 {
if m != nil {
return m.FetchHeightPeriodMs
}
return 0
}
func (x *SyncTxConfig) GetStartSyncHeight() int64 {
if x != nil {
return x.StartSyncHeight
func (m *SyncTxConfig) GetStartSyncHeight() int64 {
if m != nil {
return m.StartSyncHeight
}
return 0
}
func (x *SyncTxConfig) GetStartSyncSequence() int64 {
if x != nil {
return x.StartSyncSequence
func (m *SyncTxConfig) GetStartSyncSequence() int64 {
if m != nil {
return m.StartSyncSequence
}
return 0
}
func (x *SyncTxConfig) GetStartSyncHash() string {
if x != nil {
return x.StartSyncHash
func (m *SyncTxConfig) GetStartSyncHash() string {
if m != nil {
return m.StartSyncHash
}
return ""
}
type Log struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Loglevel string `protobuf:"bytes,1,opt,name=loglevel,proto3" json:"loglevel,omitempty"`
LogConsoleLevel string `protobuf:"bytes,2,opt,name=logConsoleLevel,proto3" json:"logConsoleLevel,omitempty"`
LogFile string `protobuf:"bytes,3,opt,name=logFile,proto3" json:"logFile,omitempty"`
MaxFileSize uint32 `protobuf:"varint,4,opt,name=maxFileSize,proto3" json:"maxFileSize,omitempty"`
MaxBackups uint32 `protobuf:"varint,5,opt,name=maxBackups,proto3" json:"maxBackups,omitempty"`
MaxAge uint32 `protobuf:"varint,6,opt,name=maxAge,proto3" json:"maxAge,omitempty"`
LocalTime bool `protobuf:"varint,7,opt,name=localTime,proto3" json:"localTime,omitempty"`
Compress bool `protobuf:"varint,8,opt,name=compress,proto3" json:"compress,omitempty"`
CallerFile bool `protobuf:"varint,9,opt,name=callerFile,proto3" json:"callerFile,omitempty"`
CallerFunction bool `protobuf:"varint,10,opt,name=callerFunction,proto3" json:"callerFunction,omitempty"`
Loglevel string `protobuf:"bytes,1,opt,name=loglevel,proto3" json:"loglevel,omitempty"`
LogConsoleLevel string `protobuf:"bytes,2,opt,name=logConsoleLevel,proto3" json:"logConsoleLevel,omitempty"`
LogFile string `protobuf:"bytes,3,opt,name=logFile,proto3" json:"logFile,omitempty"`
MaxFileSize uint32 `protobuf:"varint,4,opt,name=maxFileSize,proto3" json:"maxFileSize,omitempty"`
MaxBackups uint32 `protobuf:"varint,5,opt,name=maxBackups,proto3" json:"maxBackups,omitempty"`
MaxAge uint32 `protobuf:"varint,6,opt,name=maxAge,proto3" json:"maxAge,omitempty"`
LocalTime bool `protobuf:"varint,7,opt,name=localTime,proto3" json:"localTime,omitempty"`
Compress bool `protobuf:"varint,8,opt,name=compress,proto3" json:"compress,omitempty"`
CallerFile bool `protobuf:"varint,9,opt,name=callerFile,proto3" json:"callerFile,omitempty"`
CallerFunction bool `protobuf:"varint,10,opt,name=callerFunction,proto3" json:"callerFunction,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
}
func (m *Log) Reset() { *m = Log{} }
func (m *Log) String() string { return proto.CompactTextString(m) }
func (*Log) ProtoMessage() {}
func (*Log) Descriptor() ([]byte, []int) {
return fileDescriptor_3eaf2c85e69e9ea4, []int{1}
}
func (x *Log) Reset() {
*x = Log{}
if protoimpl.UnsafeEnabled {
mi := &file_config_proto_msgTypes[1]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
func (m *Log) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_Log.Unmarshal(m, b)
}
func (x *Log) String() string {
return protoimpl.X.MessageStringOf(x)
func (m *Log) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_Log.Marshal(b, m, deterministic)
}
func (*Log) ProtoMessage() {}
func (x *Log) ProtoReflect() protoreflect.Message {
mi := &file_config_proto_msgTypes[1]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
func (m *Log) XXX_Merge(src proto.Message) {
xxx_messageInfo_Log.Merge(m, src)
}
// Deprecated: Use Log.ProtoReflect.Descriptor instead.
func (*Log) Descriptor() ([]byte, []int) {
return file_config_proto_rawDescGZIP(), []int{1}
func (m *Log) XXX_Size() int {
return xxx_messageInfo_Log.Size(m)
}
func (m *Log) XXX_DiscardUnknown() {
xxx_messageInfo_Log.DiscardUnknown(m)
}
func (x *Log) GetLoglevel() string {
if x != nil {
return x.Loglevel
var xxx_messageInfo_Log proto.InternalMessageInfo
func (m *Log) GetLoglevel() string {
if m != nil {
return m.Loglevel
}
return ""
}
func (x *Log) GetLogConsoleLevel() string {
if x != nil {
return x.LogConsoleLevel
func (m *Log) GetLogConsoleLevel() string {
if m != nil {
return m.LogConsoleLevel
}
return ""
}
func (x *Log) GetLogFile() string {
if x != nil {
return x.LogFile
func (m *Log) GetLogFile() string {
if m != nil {
return m.LogFile
}
return ""
}
func (x *Log) GetMaxFileSize() uint32 {
if x != nil {
return x.MaxFileSize
func (m *Log) GetMaxFileSize() uint32 {
if m != nil {
return m.MaxFileSize
}
return 0
}
func (x *Log) GetMaxBackups() uint32 {
if x != nil {
return x.MaxBackups
func (m *Log) GetMaxBackups() uint32 {
if m != nil {
return m.MaxBackups
}
return 0
}
func (x *Log) GetMaxAge() uint32 {
if x != nil {
return x.MaxAge
func (m *Log) GetMaxAge() uint32 {
if m != nil {
return m.MaxAge
}
return 0
}
func (x *Log) GetLocalTime() bool {
if x != nil {
return x.LocalTime
func (m *Log) GetLocalTime() bool {
if m != nil {
return m.LocalTime
}
return false
}
func (x *Log) GetCompress() bool {
if x != nil {
return x.Compress
func (m *Log) GetCompress() bool {
if m != nil {
return m.Compress
}
return false
}
func (x *Log) GetCallerFile() bool {
if x != nil {
return x.CallerFile
func (m *Log) GetCallerFile() bool {
if m != nil {
return m.CallerFile
}
return false
}
func (x *Log) GetCallerFunction() bool {
if x != nil {
return x.CallerFunction
func (m *Log) GetCallerFunction() bool {
if m != nil {
return m.CallerFunction
}
return false
}
type RelayerConfig struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Title string `protobuf:"bytes,1,opt,name=title,proto3" json:"title,omitempty"`
SyncTxConfig *SyncTxConfig `protobuf:"bytes,2,opt,name=syncTxConfig,proto3" json:"syncTxConfig,omitempty"`
Log *Log `protobuf:"bytes,3,opt,name=log,proto3" json:"log,omitempty"`
JrpcBindAddr string `protobuf:"bytes,4,opt,name=jrpcBindAddr,proto3" json:"jrpcBindAddr,omitempty"` // Jrpc服务地址
JrpcBindAddr string `protobuf:"bytes,4,opt,name=jrpcBindAddr,proto3" json:"jrpcBindAddr,omitempty"`
EthProvider string `protobuf:"bytes,5,opt,name=ethProvider,proto3" json:"ethProvider,omitempty"`
BridgeRegistry string `protobuf:"bytes,6,opt,name=bridgeRegistry,proto3" json:"bridgeRegistry,omitempty"`
Deploy *Deploy `protobuf:"bytes,7,opt,name=deploy,proto3" json:"deploy,omitempty"`
......@@ -300,253 +274,237 @@ type RelayerConfig struct {
ChainName string `protobuf:"bytes,13,opt,name=chainName,proto3" json:"chainName,omitempty"`
ChainID4Chain33 int32 `protobuf:"varint,14,opt,name=chainID4Chain33,proto3" json:"chainID4Chain33,omitempty"`
ProcessWithDraw bool `protobuf:"varint,15,opt,name=processWithDraw,proto3" json:"processWithDraw,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
}
func (x *RelayerConfig) Reset() {
*x = RelayerConfig{}
if protoimpl.UnsafeEnabled {
mi := &file_config_proto_msgTypes[2]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
func (m *RelayerConfig) Reset() { *m = RelayerConfig{} }
func (m *RelayerConfig) String() string { return proto.CompactTextString(m) }
func (*RelayerConfig) ProtoMessage() {}
func (*RelayerConfig) Descriptor() ([]byte, []int) {
return fileDescriptor_3eaf2c85e69e9ea4, []int{2}
}
func (x *RelayerConfig) String() string {
return protoimpl.X.MessageStringOf(x)
func (m *RelayerConfig) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_RelayerConfig.Unmarshal(m, b)
}
func (*RelayerConfig) ProtoMessage() {}
func (x *RelayerConfig) ProtoReflect() protoreflect.Message {
mi := &file_config_proto_msgTypes[2]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
func (m *RelayerConfig) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_RelayerConfig.Marshal(b, m, deterministic)
}
// Deprecated: Use RelayerConfig.ProtoReflect.Descriptor instead.
func (*RelayerConfig) Descriptor() ([]byte, []int) {
return file_config_proto_rawDescGZIP(), []int{2}
func (m *RelayerConfig) XXX_Merge(src proto.Message) {
xxx_messageInfo_RelayerConfig.Merge(m, src)
}
func (m *RelayerConfig) XXX_Size() int {
return xxx_messageInfo_RelayerConfig.Size(m)
}
func (m *RelayerConfig) XXX_DiscardUnknown() {
xxx_messageInfo_RelayerConfig.DiscardUnknown(m)
}
func (x *RelayerConfig) GetTitle() string {
if x != nil {
return x.Title
var xxx_messageInfo_RelayerConfig proto.InternalMessageInfo
func (m *RelayerConfig) GetTitle() string {
if m != nil {
return m.Title
}
return ""
}
func (x *RelayerConfig) GetSyncTxConfig() *SyncTxConfig {
if x != nil {
return x.SyncTxConfig
func (m *RelayerConfig) GetSyncTxConfig() *SyncTxConfig {
if m != nil {
return m.SyncTxConfig
}
return nil
}
func (x *RelayerConfig) GetLog() *Log {
if x != nil {
return x.Log
func (m *RelayerConfig) GetLog() *Log {
if m != nil {
return m.Log
}
return nil
}
func (x *RelayerConfig) GetJrpcBindAddr() string {
if x != nil {
return x.JrpcBindAddr
func (m *RelayerConfig) GetJrpcBindAddr() string {
if m != nil {
return m.JrpcBindAddr
}
return ""
}
func (x *RelayerConfig) GetEthProvider() string {
if x != nil {
return x.EthProvider
func (m *RelayerConfig) GetEthProvider() string {
if m != nil {
return m.EthProvider
}
return ""
}
func (x *RelayerConfig) GetBridgeRegistry() string {
if x != nil {
return x.BridgeRegistry
func (m *RelayerConfig) GetBridgeRegistry() string {
if m != nil {
return m.BridgeRegistry
}
return ""
}
func (x *RelayerConfig) GetDeploy() *Deploy {
if x != nil {
return x.Deploy
func (m *RelayerConfig) GetDeploy() *Deploy {
if m != nil {
return m.Deploy
}
return nil
}
func (x *RelayerConfig) GetDeploy4Chain33() *Deploy {
if x != nil {
return x.Deploy4Chain33
func (m *RelayerConfig) GetDeploy4Chain33() *Deploy {
if m != nil {
return m.Deploy4Chain33
}
return nil
}
func (x *RelayerConfig) GetEthMaturityDegree() int32 {
if x != nil {
return x.EthMaturityDegree
func (m *RelayerConfig) GetEthMaturityDegree() int32 {
if m != nil {
return m.EthMaturityDegree
}
return 0
}
func (x *RelayerConfig) GetEthBlockFetchPeriod() int32 {
if x != nil {
return x.EthBlockFetchPeriod
func (m *RelayerConfig) GetEthBlockFetchPeriod() int32 {
if m != nil {
return m.EthBlockFetchPeriod
}
return 0
}
func (x *RelayerConfig) GetEthProviderCli() string {
if x != nil {
return x.EthProviderCli
func (m *RelayerConfig) GetEthProviderCli() string {
if m != nil {
return m.EthProviderCli
}
return ""
}
func (x *RelayerConfig) GetBridgeRegistryOnChain33() string {
if x != nil {
return x.BridgeRegistryOnChain33
func (m *RelayerConfig) GetBridgeRegistryOnChain33() string {
if m != nil {
return m.BridgeRegistryOnChain33
}
return ""
}
func (x *RelayerConfig) GetChainName() string {
if x != nil {
return x.ChainName
func (m *RelayerConfig) GetChainName() string {
if m != nil {
return m.ChainName
}
return ""
}
func (x *RelayerConfig) GetChainID4Chain33() int32 {
if x != nil {
return x.ChainID4Chain33
func (m *RelayerConfig) GetChainID4Chain33() int32 {
if m != nil {
return m.ChainID4Chain33
}
return 0
}
func (x *RelayerConfig) GetProcessWithDraw() bool {
if x != nil {
return x.ProcessWithDraw
func (m *RelayerConfig) GetProcessWithDraw() bool {
if m != nil {
return m.ProcessWithDraw
}
return false
}
type SyncTxReceiptConfig struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Chain33Host string `protobuf:"bytes,1,opt,name=chain33host,proto3" json:"chain33host,omitempty"`
PushHost string `protobuf:"bytes,2,opt,name=pushHost,proto3" json:"pushHost,omitempty"`
PushName string `protobuf:"bytes,3,opt,name=pushName,proto3" json:"pushName,omitempty"`
PushBind string `protobuf:"bytes,4,opt,name=pushBind,proto3" json:"pushBind,omitempty"`
StartSyncHeight int64 `protobuf:"varint,5,opt,name=startSyncHeight,proto3" json:"startSyncHeight,omitempty"`
StartSyncSequence int64 `protobuf:"varint,6,opt,name=startSyncSequence,proto3" json:"startSyncSequence,omitempty"`
StartSyncHash string `protobuf:"bytes,7,opt,name=startSyncHash,proto3" json:"startSyncHash,omitempty"`
Contracts []string `protobuf:"bytes,8,rep,name=contracts,proto3" json:"contracts,omitempty"`
Chain33Host string `protobuf:"bytes,1,opt,name=chain33host,proto3" json:"chain33host,omitempty"`
PushHost string `protobuf:"bytes,2,opt,name=pushHost,proto3" json:"pushHost,omitempty"`
PushName string `protobuf:"bytes,3,opt,name=pushName,proto3" json:"pushName,omitempty"`
PushBind string `protobuf:"bytes,4,opt,name=pushBind,proto3" json:"pushBind,omitempty"`
StartSyncHeight int64 `protobuf:"varint,5,opt,name=startSyncHeight,proto3" json:"startSyncHeight,omitempty"`
StartSyncSequence int64 `protobuf:"varint,6,opt,name=startSyncSequence,proto3" json:"startSyncSequence,omitempty"`
StartSyncHash string `protobuf:"bytes,7,opt,name=startSyncHash,proto3" json:"startSyncHash,omitempty"`
Contracts []string `protobuf:"bytes,8,rep,name=contracts,proto3" json:"contracts,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
}
func (m *SyncTxReceiptConfig) Reset() { *m = SyncTxReceiptConfig{} }
func (m *SyncTxReceiptConfig) String() string { return proto.CompactTextString(m) }
func (*SyncTxReceiptConfig) ProtoMessage() {}
func (*SyncTxReceiptConfig) Descriptor() ([]byte, []int) {
return fileDescriptor_3eaf2c85e69e9ea4, []int{3}
}
func (x *SyncTxReceiptConfig) Reset() {
*x = SyncTxReceiptConfig{}
if protoimpl.UnsafeEnabled {
mi := &file_config_proto_msgTypes[3]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
func (m *SyncTxReceiptConfig) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_SyncTxReceiptConfig.Unmarshal(m, b)
}
func (x *SyncTxReceiptConfig) String() string {
return protoimpl.X.MessageStringOf(x)
func (m *SyncTxReceiptConfig) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_SyncTxReceiptConfig.Marshal(b, m, deterministic)
}
func (*SyncTxReceiptConfig) ProtoMessage() {}
func (x *SyncTxReceiptConfig) ProtoReflect() protoreflect.Message {
mi := &file_config_proto_msgTypes[3]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
func (m *SyncTxReceiptConfig) XXX_Merge(src proto.Message) {
xxx_messageInfo_SyncTxReceiptConfig.Merge(m, src)
}
// Deprecated: Use SyncTxReceiptConfig.ProtoReflect.Descriptor instead.
func (*SyncTxReceiptConfig) Descriptor() ([]byte, []int) {
return file_config_proto_rawDescGZIP(), []int{3}
func (m *SyncTxReceiptConfig) XXX_Size() int {
return xxx_messageInfo_SyncTxReceiptConfig.Size(m)
}
func (m *SyncTxReceiptConfig) XXX_DiscardUnknown() {
xxx_messageInfo_SyncTxReceiptConfig.DiscardUnknown(m)
}
func (x *SyncTxReceiptConfig) GetChain33Host() string {
if x != nil {
return x.Chain33Host
var xxx_messageInfo_SyncTxReceiptConfig proto.InternalMessageInfo
func (m *SyncTxReceiptConfig) GetChain33Host() string {
if m != nil {
return m.Chain33Host
}
return ""
}
func (x *SyncTxReceiptConfig) GetPushHost() string {
if x != nil {
return x.PushHost
func (m *SyncTxReceiptConfig) GetPushHost() string {
if m != nil {
return m.PushHost
}
return ""
}
func (x *SyncTxReceiptConfig) GetPushName() string {
if x != nil {
return x.PushName
func (m *SyncTxReceiptConfig) GetPushName() string {
if m != nil {
return m.PushName
}
return ""
}
func (x *SyncTxReceiptConfig) GetPushBind() string {
if x != nil {
return x.PushBind
func (m *SyncTxReceiptConfig) GetPushBind() string {
if m != nil {
return m.PushBind
}
return ""
}
func (x *SyncTxReceiptConfig) GetStartSyncHeight() int64 {
if x != nil {
return x.StartSyncHeight
func (m *SyncTxReceiptConfig) GetStartSyncHeight() int64 {
if m != nil {
return m.StartSyncHeight
}
return 0
}
func (x *SyncTxReceiptConfig) GetStartSyncSequence() int64 {
if x != nil {
return x.StartSyncSequence
func (m *SyncTxReceiptConfig) GetStartSyncSequence() int64 {
if m != nil {
return m.StartSyncSequence
}
return 0
}
func (x *SyncTxReceiptConfig) GetStartSyncHash() string {
if x != nil {
return x.StartSyncHash
func (m *SyncTxReceiptConfig) GetStartSyncHash() string {
if m != nil {
return m.StartSyncHash
}
return ""
}
func (x *SyncTxReceiptConfig) GetContracts() []string {
if x != nil {
return x.Contracts
func (m *SyncTxReceiptConfig) GetContracts() []string {
if m != nil {
return m.Contracts
}
return nil
}
type Deploy struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
//操作管理员地址
OperatorAddr string `protobuf:"bytes,1,opt,name=operatorAddr,proto3" json:"operatorAddr,omitempty"`
//合约部署人员私钥,用于部署合约时签名使用
......@@ -554,308 +512,125 @@ type Deploy struct {
//验证人地址
ValidatorsAddr []string `protobuf:"bytes,3,rep,name=validatorsAddr,proto3" json:"validatorsAddr,omitempty"`
//验证人权重
InitPowers []int64 `protobuf:"varint,4,rep,packed,name=initPowers,proto3" json:"initPowers,omitempty"`
InitPowers []int64 `protobuf:"varint,4,rep,packed,name=initPowers,proto3" json:"initPowers,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
}
func (x *Deploy) Reset() {
*x = Deploy{}
if protoimpl.UnsafeEnabled {
mi := &file_config_proto_msgTypes[4]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
func (m *Deploy) Reset() { *m = Deploy{} }
func (m *Deploy) String() string { return proto.CompactTextString(m) }
func (*Deploy) ProtoMessage() {}
func (*Deploy) Descriptor() ([]byte, []int) {
return fileDescriptor_3eaf2c85e69e9ea4, []int{4}
}
func (x *Deploy) String() string {
return protoimpl.X.MessageStringOf(x)
func (m *Deploy) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_Deploy.Unmarshal(m, b)
}
func (*Deploy) ProtoMessage() {}
func (x *Deploy) ProtoReflect() protoreflect.Message {
mi := &file_config_proto_msgTypes[4]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
func (m *Deploy) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_Deploy.Marshal(b, m, deterministic)
}
// Deprecated: Use Deploy.ProtoReflect.Descriptor instead.
func (*Deploy) Descriptor() ([]byte, []int) {
return file_config_proto_rawDescGZIP(), []int{4}
func (m *Deploy) XXX_Merge(src proto.Message) {
xxx_messageInfo_Deploy.Merge(m, src)
}
func (m *Deploy) XXX_Size() int {
return xxx_messageInfo_Deploy.Size(m)
}
func (m *Deploy) XXX_DiscardUnknown() {
xxx_messageInfo_Deploy.DiscardUnknown(m)
}
func (x *Deploy) GetOperatorAddr() string {
if x != nil {
return x.OperatorAddr
var xxx_messageInfo_Deploy proto.InternalMessageInfo
func (m *Deploy) GetOperatorAddr() string {
if m != nil {
return m.OperatorAddr
}
return ""
}
func (x *Deploy) GetDeployerPrivateKey() string {
if x != nil {
return x.DeployerPrivateKey
func (m *Deploy) GetDeployerPrivateKey() string {
if m != nil {
return m.DeployerPrivateKey
}
return ""
}
func (x *Deploy) GetValidatorsAddr() []string {
if x != nil {
return x.ValidatorsAddr
func (m *Deploy) GetValidatorsAddr() []string {
if m != nil {
return m.ValidatorsAddr
}
return nil
}
func (x *Deploy) GetInitPowers() []int64 {
if x != nil {
return x.InitPowers
func (m *Deploy) GetInitPowers() []int64 {
if m != nil {
return m.InitPowers
}
return nil
}
var File_config_proto protoreflect.FileDescriptor
var file_config_proto_rawDesc = []byte{
0x0a, 0x0c, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x05,
0x74, 0x79, 0x70, 0x65, 0x73, 0x22, 0xaa, 0x03, 0x0a, 0x0c, 0x53, 0x79, 0x6e, 0x63, 0x54, 0x78,
0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x33,
0x33, 0x68, 0x6f, 0x73, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x68, 0x61,
0x69, 0x6e, 0x33, 0x33, 0x68, 0x6f, 0x73, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x75, 0x73, 0x68,
0x48, 0x6f, 0x73, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x75, 0x73, 0x68,
0x48, 0x6f, 0x73, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x75, 0x73, 0x68, 0x4e, 0x61, 0x6d, 0x65,
0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x75, 0x73, 0x68, 0x4e, 0x61, 0x6d, 0x65,
0x12, 0x1a, 0x0a, 0x08, 0x70, 0x75, 0x73, 0x68, 0x42, 0x69, 0x6e, 0x64, 0x18, 0x04, 0x20, 0x01,
0x28, 0x09, 0x52, 0x08, 0x70, 0x75, 0x73, 0x68, 0x42, 0x69, 0x6e, 0x64, 0x12, 0x26, 0x0a, 0x0e,
0x6d, 0x61, 0x74, 0x75, 0x72, 0x69, 0x74, 0x79, 0x44, 0x65, 0x67, 0x72, 0x65, 0x65, 0x18, 0x05,
0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x6d, 0x61, 0x74, 0x75, 0x72, 0x69, 0x74, 0x79, 0x44, 0x65,
0x67, 0x72, 0x65, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x64, 0x62, 0x64, 0x72, 0x69, 0x76, 0x65, 0x72,
0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x64, 0x62, 0x64, 0x72, 0x69, 0x76, 0x65, 0x72,
0x12, 0x16, 0x0a, 0x06, 0x64, 0x62, 0x50, 0x61, 0x74, 0x68, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09,
0x52, 0x06, 0x64, 0x62, 0x50, 0x61, 0x74, 0x68, 0x12, 0x18, 0x0a, 0x07, 0x64, 0x62, 0x43, 0x61,
0x63, 0x68, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x64, 0x62, 0x43, 0x61, 0x63,
0x68, 0x65, 0x12, 0x30, 0x0a, 0x13, 0x66, 0x65, 0x74, 0x63, 0x68, 0x48, 0x65, 0x69, 0x67, 0x68,
0x74, 0x50, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x4d, 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x03, 0x52,
0x13, 0x66, 0x65, 0x74, 0x63, 0x68, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x50, 0x65, 0x72, 0x69,
0x6f, 0x64, 0x4d, 0x73, 0x12, 0x28, 0x0a, 0x0f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x53, 0x79, 0x6e,
0x63, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0f, 0x73,
0x74, 0x61, 0x72, 0x74, 0x53, 0x79, 0x6e, 0x63, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x2c,
0x0a, 0x11, 0x73, 0x74, 0x61, 0x72, 0x74, 0x53, 0x79, 0x6e, 0x63, 0x53, 0x65, 0x71, 0x75, 0x65,
0x6e, 0x63, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x03, 0x52, 0x11, 0x73, 0x74, 0x61, 0x72, 0x74,
0x53, 0x79, 0x6e, 0x63, 0x53, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x12, 0x24, 0x0a, 0x0d,
0x73, 0x74, 0x61, 0x72, 0x74, 0x53, 0x79, 0x6e, 0x63, 0x48, 0x61, 0x73, 0x68, 0x18, 0x0c, 0x20,
0x01, 0x28, 0x09, 0x52, 0x0d, 0x73, 0x74, 0x61, 0x72, 0x74, 0x53, 0x79, 0x6e, 0x63, 0x48, 0x61,
0x73, 0x68, 0x22, 0xc1, 0x02, 0x0a, 0x03, 0x4c, 0x6f, 0x67, 0x12, 0x1a, 0x0a, 0x08, 0x6c, 0x6f,
0x67, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6c, 0x6f,
0x67, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x28, 0x0a, 0x0f, 0x6c, 0x6f, 0x67, 0x43, 0x6f, 0x6e,
0x73, 0x6f, 0x6c, 0x65, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52,
0x0f, 0x6c, 0x6f, 0x67, 0x43, 0x6f, 0x6e, 0x73, 0x6f, 0x6c, 0x65, 0x4c, 0x65, 0x76, 0x65, 0x6c,
0x12, 0x18, 0x0a, 0x07, 0x6c, 0x6f, 0x67, 0x46, 0x69, 0x6c, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28,
0x09, 0x52, 0x07, 0x6c, 0x6f, 0x67, 0x46, 0x69, 0x6c, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x6d, 0x61,
0x78, 0x46, 0x69, 0x6c, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52,
0x0b, 0x6d, 0x61, 0x78, 0x46, 0x69, 0x6c, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x1e, 0x0a, 0x0a,
0x6d, 0x61, 0x78, 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d,
0x52, 0x0a, 0x6d, 0x61, 0x78, 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x73, 0x12, 0x16, 0x0a, 0x06,
0x6d, 0x61, 0x78, 0x41, 0x67, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x6d, 0x61,
0x78, 0x41, 0x67, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x54, 0x69, 0x6d,
0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x54, 0x69,
0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x18, 0x08,
0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x12, 0x1e,
0x0a, 0x0a, 0x63, 0x61, 0x6c, 0x6c, 0x65, 0x72, 0x46, 0x69, 0x6c, 0x65, 0x18, 0x09, 0x20, 0x01,
0x28, 0x08, 0x52, 0x0a, 0x63, 0x61, 0x6c, 0x6c, 0x65, 0x72, 0x46, 0x69, 0x6c, 0x65, 0x12, 0x26,
0x0a, 0x0e, 0x63, 0x61, 0x6c, 0x6c, 0x65, 0x72, 0x46, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e,
0x18, 0x0a, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0e, 0x63, 0x61, 0x6c, 0x6c, 0x65, 0x72, 0x46, 0x75,
0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0xfc, 0x04, 0x0a, 0x0d, 0x52, 0x65, 0x6c, 0x61, 0x79,
0x65, 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x69, 0x74, 0x6c,
0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x12, 0x37,
0x0a, 0x0c, 0x73, 0x79, 0x6e, 0x63, 0x54, 0x78, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x02,
0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x53, 0x79, 0x6e,
0x63, 0x54, 0x78, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x0c, 0x73, 0x79, 0x6e, 0x63, 0x54,
0x78, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x1c, 0x0a, 0x03, 0x6c, 0x6f, 0x67, 0x18, 0x03,
0x20, 0x01, 0x28, 0x0b, 0x32, 0x0a, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x4c, 0x6f, 0x67,
0x52, 0x03, 0x6c, 0x6f, 0x67, 0x12, 0x22, 0x0a, 0x0c, 0x6a, 0x72, 0x70, 0x63, 0x42, 0x69, 0x6e,
0x64, 0x41, 0x64, 0x64, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x6a, 0x72, 0x70,
0x63, 0x42, 0x69, 0x6e, 0x64, 0x41, 0x64, 0x64, 0x72, 0x12, 0x20, 0x0a, 0x0b, 0x65, 0x74, 0x68,
0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b,
0x65, 0x74, 0x68, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x12, 0x26, 0x0a, 0x0e, 0x62,
0x72, 0x69, 0x64, 0x67, 0x65, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x18, 0x06, 0x20,
0x01, 0x28, 0x09, 0x52, 0x0e, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x52, 0x65, 0x67, 0x69, 0x73,
0x74, 0x72, 0x79, 0x12, 0x25, 0x0a, 0x06, 0x64, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x18, 0x07, 0x20,
0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x44, 0x65, 0x70, 0x6c,
0x6f, 0x79, 0x52, 0x06, 0x64, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x12, 0x35, 0x0a, 0x0e, 0x64, 0x65,
0x70, 0x6c, 0x6f, 0x79, 0x34, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x33, 0x33, 0x18, 0x08, 0x20, 0x01,
0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x44, 0x65, 0x70, 0x6c, 0x6f,
0x79, 0x52, 0x0e, 0x64, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x34, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x33,
0x33, 0x12, 0x2c, 0x0a, 0x11, 0x65, 0x74, 0x68, 0x4d, 0x61, 0x74, 0x75, 0x72, 0x69, 0x74, 0x79,
0x44, 0x65, 0x67, 0x72, 0x65, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x11, 0x65, 0x74,
0x68, 0x4d, 0x61, 0x74, 0x75, 0x72, 0x69, 0x74, 0x79, 0x44, 0x65, 0x67, 0x72, 0x65, 0x65, 0x12,
0x30, 0x0a, 0x13, 0x65, 0x74, 0x68, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x46, 0x65, 0x74, 0x63, 0x68,
0x50, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x13, 0x65, 0x74,
0x68, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x46, 0x65, 0x74, 0x63, 0x68, 0x50, 0x65, 0x72, 0x69, 0x6f,
0x64, 0x12, 0x26, 0x0a, 0x0e, 0x65, 0x74, 0x68, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72,
0x43, 0x6c, 0x69, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x65, 0x74, 0x68, 0x50, 0x72,
0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x43, 0x6c, 0x69, 0x12, 0x38, 0x0a, 0x17, 0x62, 0x72, 0x69,
0x64, 0x67, 0x65, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x4f, 0x6e, 0x43, 0x68, 0x61,
0x69, 0x6e, 0x33, 0x33, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x17, 0x62, 0x72, 0x69, 0x64,
0x67, 0x65, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x4f, 0x6e, 0x43, 0x68, 0x61, 0x69,
0x6e, 0x33, 0x33, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x4e, 0x61, 0x6d, 0x65,
0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x4e, 0x61, 0x6d,
0x65, 0x12, 0x28, 0x0a, 0x0f, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x49, 0x44, 0x34, 0x43, 0x68, 0x61,
0x69, 0x6e, 0x33, 0x33, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0f, 0x63, 0x68, 0x61, 0x69,
0x6e, 0x49, 0x44, 0x34, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x33, 0x33, 0x12, 0x28, 0x0a, 0x0f, 0x70,
0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x57, 0x69, 0x74, 0x68, 0x44, 0x72, 0x61, 0x77, 0x18, 0x0f,
0x20, 0x01, 0x28, 0x08, 0x52, 0x0f, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x57, 0x69, 0x74,
0x68, 0x44, 0x72, 0x61, 0x77, 0x22, 0xa7, 0x02, 0x0a, 0x13, 0x53, 0x79, 0x6e, 0x63, 0x54, 0x78,
0x52, 0x65, 0x63, 0x65, 0x69, 0x70, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x20, 0x0a,
0x0b, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x33, 0x33, 0x68, 0x6f, 0x73, 0x74, 0x18, 0x01, 0x20, 0x01,
0x28, 0x09, 0x52, 0x0b, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x33, 0x33, 0x68, 0x6f, 0x73, 0x74, 0x12,
0x1a, 0x0a, 0x08, 0x70, 0x75, 0x73, 0x68, 0x48, 0x6f, 0x73, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28,
0x09, 0x52, 0x08, 0x70, 0x75, 0x73, 0x68, 0x48, 0x6f, 0x73, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x70,
0x75, 0x73, 0x68, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70,
0x75, 0x73, 0x68, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x75, 0x73, 0x68, 0x42,
0x69, 0x6e, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x75, 0x73, 0x68, 0x42,
0x69, 0x6e, 0x64, 0x12, 0x28, 0x0a, 0x0f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x53, 0x79, 0x6e, 0x63,
0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0f, 0x73, 0x74,
0x61, 0x72, 0x74, 0x53, 0x79, 0x6e, 0x63, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x2c, 0x0a,
0x11, 0x73, 0x74, 0x61, 0x72, 0x74, 0x53, 0x79, 0x6e, 0x63, 0x53, 0x65, 0x71, 0x75, 0x65, 0x6e,
0x63, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x11, 0x73, 0x74, 0x61, 0x72, 0x74, 0x53,
0x79, 0x6e, 0x63, 0x53, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x73,
0x74, 0x61, 0x72, 0x74, 0x53, 0x79, 0x6e, 0x63, 0x48, 0x61, 0x73, 0x68, 0x18, 0x07, 0x20, 0x01,
0x28, 0x09, 0x52, 0x0d, 0x73, 0x74, 0x61, 0x72, 0x74, 0x53, 0x79, 0x6e, 0x63, 0x48, 0x61, 0x73,
0x68, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x73, 0x18, 0x08,
0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x73, 0x22,
0xa4, 0x01, 0x0a, 0x06, 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x12, 0x22, 0x0a, 0x0c, 0x6f, 0x70,
0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x41, 0x64, 0x64, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09,
0x52, 0x0c, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x41, 0x64, 0x64, 0x72, 0x12, 0x2e,
0x0a, 0x12, 0x64, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x65, 0x72, 0x50, 0x72, 0x69, 0x76, 0x61, 0x74,
0x65, 0x4b, 0x65, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x12, 0x64, 0x65, 0x70, 0x6c,
0x6f, 0x79, 0x65, 0x72, 0x50, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x4b, 0x65, 0x79, 0x12, 0x26,
0x0a, 0x0e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x73, 0x41, 0x64, 0x64, 0x72,
0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f,
0x72, 0x73, 0x41, 0x64, 0x64, 0x72, 0x12, 0x1e, 0x0a, 0x0a, 0x69, 0x6e, 0x69, 0x74, 0x50, 0x6f,
0x77, 0x65, 0x72, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x03, 0x52, 0x0a, 0x69, 0x6e, 0x69, 0x74,
0x50, 0x6f, 0x77, 0x65, 0x72, 0x73, 0x42, 0x0a, 0x5a, 0x08, 0x2e, 0x2e, 0x2f, 0x74, 0x79, 0x70,
0x65, 0x73, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
}
var (
file_config_proto_rawDescOnce sync.Once
file_config_proto_rawDescData = file_config_proto_rawDesc
)
func file_config_proto_rawDescGZIP() []byte {
file_config_proto_rawDescOnce.Do(func() {
file_config_proto_rawDescData = protoimpl.X.CompressGZIP(file_config_proto_rawDescData)
})
return file_config_proto_rawDescData
}
var file_config_proto_msgTypes = make([]protoimpl.MessageInfo, 5)
var file_config_proto_goTypes = []interface{}{
(*SyncTxConfig)(nil), // 0: types.SyncTxConfig
(*Log)(nil), // 1: types.Log
(*RelayerConfig)(nil), // 2: types.RelayerConfig
(*SyncTxReceiptConfig)(nil), // 3: types.SyncTxReceiptConfig
(*Deploy)(nil), // 4: types.Deploy
}
var file_config_proto_depIdxs = []int32{
0, // 0: types.RelayerConfig.syncTxConfig:type_name -> types.SyncTxConfig
1, // 1: types.RelayerConfig.log:type_name -> types.Log
4, // 2: types.RelayerConfig.deploy:type_name -> types.Deploy
4, // 3: types.RelayerConfig.deploy4chain33:type_name -> types.Deploy
4, // [4:4] is the sub-list for method output_type
4, // [4:4] is the sub-list for method input_type
4, // [4:4] is the sub-list for extension type_name
4, // [4:4] is the sub-list for extension extendee
0, // [0:4] is the sub-list for field type_name
}
func init() { file_config_proto_init() }
func file_config_proto_init() {
if File_config_proto != nil {
return
}
if !protoimpl.UnsafeEnabled {
file_config_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*SyncTxConfig); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_config_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*Log); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_config_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*RelayerConfig); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_config_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*SyncTxReceiptConfig); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_config_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*Deploy); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
}
type x struct{}
out := protoimpl.TypeBuilder{
File: protoimpl.DescBuilder{
GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
RawDescriptor: file_config_proto_rawDesc,
NumEnums: 0,
NumMessages: 5,
NumExtensions: 0,
NumServices: 0,
},
GoTypes: file_config_proto_goTypes,
DependencyIndexes: file_config_proto_depIdxs,
MessageInfos: file_config_proto_msgTypes,
}.Build()
File_config_proto = out.File
file_config_proto_rawDesc = nil
file_config_proto_goTypes = nil
file_config_proto_depIdxs = nil
func init() {
proto.RegisterType((*SyncTxConfig)(nil), "types.SyncTxConfig")
proto.RegisterType((*Log)(nil), "types.Log")
proto.RegisterType((*RelayerConfig)(nil), "types.RelayerConfig")
proto.RegisterType((*SyncTxReceiptConfig)(nil), "types.SyncTxReceiptConfig")
proto.RegisterType((*Deploy)(nil), "types.Deploy")
}
func init() { proto.RegisterFile("config.proto", fileDescriptor_3eaf2c85e69e9ea4) }
var fileDescriptor_3eaf2c85e69e9ea4 = []byte{
// 788 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xc4, 0x55, 0x51, 0x6b, 0x33, 0x45,
0x14, 0x25, 0xdd, 0x26, 0x4d, 0x26, 0x49, 0x3f, 0x9c, 0x8a, 0x2e, 0xf2, 0x21, 0x21, 0xa8, 0xe4,
0x41, 0xa2, 0xb4, 0x9f, 0xe8, 0x6b, 0x93, 0x50, 0x2a, 0xb6, 0x1a, 0xa6, 0x05, 0xc1, 0xb7, 0xc9,
0xec, 0xed, 0xee, 0xd8, 0xc9, 0xce, 0x3a, 0x33, 0x49, 0x13, 0x7f, 0x8f, 0x20, 0xf8, 0x2f, 0xfc,
0x5f, 0x3e, 0xc8, 0xdc, 0xdd, 0x4d, 0x36, 0xdb, 0x08, 0xfa, 0xe4, 0xdb, 0xde, 0x73, 0x2e, 0x37,
0x73, 0xcf, 0xbd, 0xe7, 0x86, 0xf4, 0x84, 0x4e, 0x9f, 0x64, 0x3c, 0xce, 0x8c, 0x76, 0x9a, 0x36,
0xdd, 0x36, 0x03, 0x3b, 0xfc, 0x23, 0x20, 0xbd, 0x87, 0x6d, 0x2a, 0x1e, 0x37, 0x53, 0x64, 0xe9,
0x80, 0x74, 0x45, 0xc2, 0x65, 0x7a, 0x75, 0x95, 0x68, 0xeb, 0xc2, 0xc6, 0xa0, 0x31, 0xea, 0xb0,
0x2a, 0x44, 0x3f, 0x22, 0xed, 0x6c, 0x65, 0x93, 0x5b, 0x4f, 0x9f, 0x20, 0xbd, 0x8b, 0x4b, 0xee,
0x7b, 0xbe, 0x84, 0x30, 0xd8, 0x73, 0x3e, 0x2e, 0xb9, 0x89, 0x4c, 0xa3, 0xf0, 0x74, 0xcf, 0xf9,
0x98, 0x7e, 0x46, 0xce, 0x97, 0xdc, 0xad, 0x8c, 0x74, 0xdb, 0x19, 0xc4, 0x06, 0x20, 0x6c, 0x0e,
0x1a, 0xa3, 0x26, 0xab, 0xa1, 0xbe, 0x46, 0xb4, 0x88, 0x8c, 0x5c, 0x83, 0x09, 0x5b, 0x79, 0x8d,
0x32, 0xa6, 0x1f, 0x90, 0x56, 0xb4, 0x98, 0x73, 0x97, 0x84, 0x67, 0xc8, 0x14, 0x11, 0x0d, 0xc9,
0x59, 0xb4, 0x98, 0x72, 0x91, 0x40, 0xd8, 0xc6, 0xa2, 0x65, 0x48, 0xbf, 0x24, 0x17, 0x4f, 0xe0,
0x44, 0x72, 0x0b, 0x32, 0x4e, 0xdc, 0x1c, 0x8c, 0xd4, 0xd1, 0xbd, 0x0d, 0x3b, 0x83, 0xc6, 0x28,
0x60, 0xc7, 0x28, 0x3a, 0x22, 0x6f, 0xac, 0xe3, 0xc6, 0x79, 0xc9, 0x72, 0x2a, 0x24, 0x98, 0x5d,
0x87, 0xe9, 0xe7, 0xe4, 0xbd, 0x1d, 0xf4, 0x00, 0xbf, 0xac, 0x20, 0x15, 0x10, 0x76, 0x31, 0xf7,
0x35, 0x41, 0x3f, 0x21, 0xfd, 0x7d, 0x01, 0x6e, 0x93, 0xb0, 0x87, 0x2d, 0x1c, 0x82, 0xc3, 0x3f,
0x4f, 0x48, 0x70, 0xa7, 0x63, 0xaf, 0x82, 0xd2, 0xb1, 0x82, 0x35, 0xa8, 0x62, 0x40, 0xbb, 0xd8,
0xbf, 0x50, 0xe9, 0x78, 0xaa, 0x53, 0xab, 0x15, 0xdc, 0x61, 0x4a, 0x3e, 0xa4, 0x3a, 0xec, 0x75,
0x51, 0x3a, 0xbe, 0x91, 0xaa, 0x1c, 0x55, 0x19, 0xfa, 0x1d, 0x58, 0xf2, 0x8d, 0xff, 0x7c, 0x90,
0xbf, 0x02, 0x0e, 0xab, 0xcf, 0xaa, 0x10, 0xfd, 0x98, 0x90, 0x25, 0xdf, 0x4c, 0xb8, 0x78, 0x5e,
0x65, 0x16, 0x67, 0xd5, 0x67, 0x15, 0xc4, 0xcf, 0x62, 0xc9, 0x37, 0xd7, 0x31, 0xe0, 0x94, 0xfa,
0xac, 0x88, 0xe8, 0x5b, 0xd2, 0x51, 0x5a, 0x70, 0xf5, 0x28, 0x97, 0x80, 0x63, 0x6a, 0xb3, 0x3d,
0xe0, 0xfb, 0x12, 0x7a, 0x99, 0x19, 0xb0, 0x16, 0x47, 0xd5, 0x66, 0xbb, 0xd8, 0xff, 0xa2, 0xe0,
0x4a, 0x81, 0xc1, 0x07, 0x77, 0x90, 0xad, 0x20, 0x7e, 0x83, 0x8a, 0x68, 0x95, 0x0a, 0x27, 0x75,
0x8a, 0x83, 0x69, 0xb3, 0x1a, 0x3a, 0xfc, 0xeb, 0x94, 0xf4, 0x19, 0x28, 0xbe, 0x05, 0x53, 0x6c,
0xfc, 0xfb, 0xa4, 0xe9, 0xa4, 0x53, 0x50, 0x48, 0x99, 0x07, 0xf4, 0x6b, 0xd2, 0xb3, 0x15, 0x5f,
0xa0, 0x88, 0xdd, 0xcb, 0x8b, 0x31, 0xda, 0x66, 0x5c, 0xb5, 0x0c, 0x3b, 0x48, 0xa4, 0x6f, 0x49,
0xa0, 0x74, 0x8c, 0x92, 0x76, 0x2f, 0x49, 0x91, 0x7f, 0xa7, 0x63, 0xe6, 0x61, 0x3a, 0x24, 0xbd,
0x9f, 0x4d, 0x26, 0xfc, 0xd2, 0x5f, 0x47, 0x91, 0x29, 0x8c, 0x70, 0x80, 0x79, 0xf9, 0xc1, 0x25,
0x73, 0xa3, 0xd7, 0x32, 0x02, 0x83, 0xea, 0x76, 0x58, 0x15, 0xf2, 0xcd, 0x2e, 0x8c, 0x8c, 0x62,
0x60, 0x10, 0x4b, 0xeb, 0xcc, 0xb6, 0x30, 0x43, 0x0d, 0xa5, 0x9f, 0x92, 0x56, 0x04, 0x99, 0xd2,
0x5b, 0xd4, 0xba, 0x7b, 0xd9, 0x2f, 0x9e, 0x33, 0x43, 0x90, 0x15, 0x24, 0xfd, 0x8a, 0x9c, 0xe7,
0x5f, 0xef, 0x0a, 0x9f, 0xa3, 0xfa, 0xaf, 0xd2, 0x6b, 0x49, 0x7e, 0xc5, 0xc1, 0x25, 0xf7, 0x87,
0xbe, 0xed, 0xa0, 0xc5, 0x5e, 0x13, 0xde, 0x6c, 0xe0, 0x92, 0x89, 0xd2, 0xe2, 0xf9, 0xc6, 0x3b,
0x2b, 0xf7, 0x14, 0x4e, 0xa9, 0xc9, 0x8e, 0x51, 0xbe, 0xcb, 0x4a, 0xd3, 0x53, 0x25, 0xd1, 0x3f,
0x1d, 0x56, 0x43, 0xe9, 0x37, 0xe4, 0xc3, 0xc3, 0xbe, 0x7f, 0x48, 0xa7, 0x45, 0x1f, 0xb9, 0x8d,
0xfe, 0x89, 0xf6, 0xeb, 0x88, 0xcd, 0xe0, 0xbd, 0xea, 0x63, 0xee, 0x1e, 0xf0, 0x56, 0xc2, 0xe0,
0xdb, 0xd9, 0xbb, 0xb2, 0xde, 0x39, 0xbe, 0xb6, 0x0e, 0xfb, 0xcc, 0xcc, 0x68, 0x01, 0xd6, 0xfe,
0x28, 0x5d, 0x32, 0x33, 0xfc, 0x25, 0x7c, 0x83, 0xdb, 0x57, 0x87, 0x87, 0xbf, 0x9f, 0x90, 0x8b,
0x7c, 0x79, 0x18, 0x08, 0x90, 0x99, 0xfb, 0x5f, 0xcf, 0xee, 0x91, 0x73, 0xd6, 0xfc, 0x0f, 0xe7,
0xac, 0xf5, 0xaf, 0xcf, 0xd9, 0xd9, 0x91, 0x73, 0x86, 0xea, 0xeb, 0xd4, 0x19, 0x2e, 0x9c, 0xf7,
0x7b, 0x80, 0xea, 0x97, 0xc0, 0xf0, 0xb7, 0x06, 0x69, 0xe5, 0x8b, 0xe7, 0x4d, 0xa3, 0x33, 0x30,
0xdc, 0x69, 0x83, 0xa6, 0xc9, 0xd5, 0x39, 0xc0, 0xe8, 0x98, 0xd0, 0x7c, 0x3d, 0xc1, 0xcc, 0x8d,
0x5c, 0x73, 0x07, 0xdf, 0xc1, 0xb6, 0x10, 0xea, 0x08, 0xe3, 0x97, 0x6b, 0xcd, 0x95, 0x8c, 0x7c,
0x01, 0x8b, 0x55, 0x03, 0x7c, 0x41, 0x0d, 0xf5, 0x77, 0x47, 0xa6, 0xd2, 0xcd, 0xf5, 0x0b, 0x18,
0x1b, 0x9e, 0x0e, 0x82, 0x51, 0xc0, 0x2a, 0xc8, 0x84, 0xfc, 0xd4, 0x1e, 0x8f, 0xbf, 0x40, 0x9f,
0x2c, 0x5a, 0xf8, 0xd7, 0x7a, 0xf5, 0x77, 0x00, 0x00, 0x00, 0xff, 0xff, 0xba, 0x7c, 0xb3, 0xf7,
0x6a, 0x07, 0x00, 0x00,
}
This source diff could not be displayed because it is too large. You can view the blob instead.
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment