Commit 28885ad0 authored by harrylee's avatar harrylee Committed by vipwzw

remove asset from accountmanager.proto

parent ce2ba241
......@@ -125,7 +125,7 @@ func TestAccountManager(t *testing.T) {
tx3, err := CreateRegister(&et.Register{AccountID: "harrylee2020"}, PrivKeyC)
Exec_Block(t, stateDB, kvdb, env, tx3)
//转账
tx4, err := CreateTransfer(&et.Transfer{FromAccountID: "harrylee2015", ToAccountID: "harrylee2020", Amount: 1e8, Asset: &et.Asset{Execer: "coins", Symbol: "bty"}}, PrivKeyB)
tx4, err := CreateTransfer(&et.Transfer{FromAccountID: "harrylee2015", ToAccountID: "harrylee2020", Asset: &types.Asset{Exec: "coins", Symbol: "bty", Amount: 1e8}}, PrivKeyB)
assert.Equal(t, err, nil)
err = Exec_Block(t, stateDB, kvdb, env, tx4)
assert.Equal(t, err, nil)
......@@ -147,11 +147,11 @@ func TestAccountManager(t *testing.T) {
tx6, err = CreateApply(&et.Apply{Op: et.EnforceReset, AccountID: "harrylee2015"}, PrivKeyD)
assert.Equal(t, err, nil)
err = Exec_Block(t, stateDB, kvdb, env, tx6)
tx7, _ := CreateTransfer(&et.Transfer{FromAccountID: "harrylee2015", ToAccountID: "harrylee2015", Amount: 1e8, Asset: &et.Asset{Execer: "coins", Symbol: "bty"}}, PrivKeyD)
tx7, _ := CreateTransfer(&et.Transfer{FromAccountID: "harrylee2015", ToAccountID: "harrylee2015", Asset: &types.Asset{Exec: "coins", Symbol: "bty", Amount: 1e8}}, PrivKeyD)
err = Exec_Block(t, stateDB, kvdb, env, tx7)
assert.Equal(t, err, nil)
balance, err := Exec_QueryBalanceByID(&et.QueryBalanceByID{AccountID: "harrylee2015", Asset: &et.Asset{Symbol: "bty", Execer: "coins"}}, stateDB, kvdb)
balance, err := Exec_QueryBalanceByID(&et.QueryBalanceByID{AccountID: "harrylee2015", Asset: &types.Asset{Symbol: "bty", Exec: "coins"}}, stateDB, kvdb)
assert.Equal(t, err, nil)
assert.Equal(t, balance.Balance, 199*types.Coin)
......@@ -166,7 +166,7 @@ func TestAccountManager(t *testing.T) {
accounts, err := Exec_QueryAccountsByStatus(et.Frozen, stateDB, kvdb)
assert.Equal(t, err, nil)
assert.Equal(t, accounts.Accounts[0].Status, et.Frozen)
balance, err = Exec_QueryBalanceByID(&et.QueryBalanceByID{Asset: &et.Asset{Execer: "coins", Symbol: "bty"}, AccountID: "harrylee2015"}, stateDB, kvdb)
balance, err = Exec_QueryBalanceByID(&et.QueryBalanceByID{Asset: &types.Asset{Exec: "coins", Symbol: "bty"}, AccountID: "harrylee2015"}, stateDB, kvdb)
assert.Equal(t, err, nil)
assert.Equal(t, balance.Frozen, 199*types.Coin)
......@@ -180,7 +180,7 @@ func TestAccountManager(t *testing.T) {
//根据状态查询
accounts, err = Exec_QueryAccountsByStatus(et.Frozen, stateDB, kvdb)
assert.NotEqual(t, err, nil)
balance, err = Exec_QueryBalanceByID(&et.QueryBalanceByID{Asset: &et.Asset{Execer: "coins", Symbol: "bty"}, AccountID: "harrylee2015"}, stateDB, kvdb)
balance, err = Exec_QueryBalanceByID(&et.QueryBalanceByID{Asset: &types.Asset{Exec: "coins", Symbol: "bty"}, AccountID: "harrylee2015"}, stateDB, kvdb)
assert.Equal(t, err, nil)
assert.Equal(t, balance.Balance, 199*types.Coin)
......
......@@ -131,7 +131,7 @@ func (a *Action) Transfer(payload *et.Transfer) (*types.Receipt, error) {
}
//如果prevAddr地址不为空,先查看余额,将该地址下面得资产划转到新得公钥地址下
if account1.PrevAddr != "" {
assetDB, err := account.NewAccountDB(cfg, payload.Asset.GetExecer(), payload.Asset.GetSymbol(), a.statedb)
assetDB, err := account.NewAccountDB(cfg, payload.Asset.GetExec(), payload.Asset.GetSymbol(), a.statedb)
if err != nil {
return nil, err
}
......@@ -166,16 +166,16 @@ func (a *Action) Transfer(payload *et.Transfer) (*types.Receipt, error) {
return nil, et.ErrAccountIDNotPermiss
}
assetDB, err := account.NewAccountDB(cfg, payload.Asset.GetExecer(), payload.Asset.GetSymbol(), a.statedb)
assetDB, err := account.NewAccountDB(cfg, payload.Asset.GetExec(), payload.Asset.GetSymbol(), a.statedb)
if err != nil {
return nil, err
}
fromAccount := assetDB.LoadExecAccount(a.fromaddr, a.execaddr)
if fromAccount.Balance < payload.Amount {
elog.Error("Transfer, check balance", "addr", a.fromaddr, "avail", fromAccount.Balance, "need", payload.Amount)
if fromAccount.Balance < payload.Asset.Amount {
elog.Error("Transfer, check balance", "addr", a.fromaddr, "avail", fromAccount.Balance, "need", payload.Asset.Amount)
return nil, et.ErrAssetBalance
}
receipt, err := assetDB.ExecTransfer(account1.Addr, account2.Addr, a.execaddr, payload.Amount)
receipt, err := assetDB.ExecTransfer(account1.Addr, account2.Addr, a.execaddr, payload.Asset.Amount)
if err != nil {
return nil, err
}
......@@ -472,7 +472,7 @@ func queryBalanceByID(statedb, localdb dbm.KV, cfg *types.Chain33Config, execNam
if err != nil {
return nil, err
}
assetDB, err := account.NewAccountDB(cfg, in.Asset.GetExecer(), in.Asset.GetSymbol(), statedb)
assetDB, err := account.NewAccountDB(cfg, in.Asset.GetExec(), in.Asset.GetSymbol(), statedb)
if err != nil {
return nil, err
}
......
syntax = "proto3";
import "transaction.proto";
package types;
message Accountmanager {
......@@ -41,22 +44,16 @@ message Apply {
int32 op = 2;
}
//资产类型
message asset {
string execer = 1;
string symbol = 2;
}
//合约内部账户之间转账
message Transfer {
//资产类型
asset Asset = 1;
//资产类型 及转账金额
Asset asset = 1;
// from账户
string fromAccountID = 2;
// to账户
string toAccountID = 3;
//转账金额
int64 amount = 4;
}
......@@ -144,7 +141,7 @@ message QueryAccountByAddr {
message QueryBalanceByID {
string accountID = 1;
asset asset = 2;
Asset asset = 2;
}
message balance {
......
......@@ -8,6 +8,7 @@ import (
fmt "fmt"
math "math"
types "github.com/33cn/chain33/types"
proto "github.com/golang/protobuf/proto"
grpc "google.golang.org/grpc"
)
......@@ -324,64 +325,14 @@ func (m *Apply) GetOp() int32 {
return 0
}
//资产类型
type Asset struct {
Execer string `protobuf:"bytes,1,opt,name=execer,proto3" json:"execer,omitempty"`
Symbol string `protobuf:"bytes,2,opt,name=symbol,proto3" json:"symbol,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
}
func (m *Asset) Reset() { *m = Asset{} }
func (m *Asset) String() string { return proto.CompactTextString(m) }
func (*Asset) ProtoMessage() {}
func (*Asset) Descriptor() ([]byte, []int) {
return fileDescriptor_aba6db06a1aaf83a, []int{5}
}
func (m *Asset) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_Asset.Unmarshal(m, b)
}
func (m *Asset) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_Asset.Marshal(b, m, deterministic)
}
func (m *Asset) XXX_Merge(src proto.Message) {
xxx_messageInfo_Asset.Merge(m, src)
}
func (m *Asset) XXX_Size() int {
return xxx_messageInfo_Asset.Size(m)
}
func (m *Asset) XXX_DiscardUnknown() {
xxx_messageInfo_Asset.DiscardUnknown(m)
}
var xxx_messageInfo_Asset proto.InternalMessageInfo
func (m *Asset) GetExecer() string {
if m != nil {
return m.Execer
}
return ""
}
func (m *Asset) GetSymbol() string {
if m != nil {
return m.Symbol
}
return ""
}
//合约内部账户之间转账
type Transfer struct {
//资产类型
Asset *Asset `protobuf:"bytes,1,opt,name=Asset,proto3" json:"Asset,omitempty"`
//资产类型 及转账金额
Asset *types.Asset `protobuf:"bytes,1,opt,name=asset,proto3" json:"asset,omitempty"`
// from账户
FromAccountID string `protobuf:"bytes,2,opt,name=fromAccountID,proto3" json:"fromAccountID,omitempty"`
// to账户
ToAccountID string `protobuf:"bytes,3,opt,name=toAccountID,proto3" json:"toAccountID,omitempty"`
//转账金额
Amount int64 `protobuf:"varint,4,opt,name=amount,proto3" json:"amount,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
......@@ -391,7 +342,7 @@ func (m *Transfer) Reset() { *m = Transfer{} }
func (m *Transfer) String() string { return proto.CompactTextString(m) }
func (*Transfer) ProtoMessage() {}
func (*Transfer) Descriptor() ([]byte, []int) {
return fileDescriptor_aba6db06a1aaf83a, []int{6}
return fileDescriptor_aba6db06a1aaf83a, []int{5}
}
func (m *Transfer) XXX_Unmarshal(b []byte) error {
......@@ -412,7 +363,7 @@ func (m *Transfer) XXX_DiscardUnknown() {
var xxx_messageInfo_Transfer proto.InternalMessageInfo
func (m *Transfer) GetAsset() *Asset {
func (m *Transfer) GetAsset() *types.Asset {
if m != nil {
return m.Asset
}
......@@ -433,13 +384,6 @@ func (m *Transfer) GetToAccountID() string {
return ""
}
func (m *Transfer) GetAmount() int64 {
if m != nil {
return m.Amount
}
return 0
}
//管理员监管操作
type Supervise struct {
//账户名单
......@@ -457,7 +401,7 @@ func (m *Supervise) Reset() { *m = Supervise{} }
func (m *Supervise) String() string { return proto.CompactTextString(m) }
func (*Supervise) ProtoMessage() {}
func (*Supervise) Descriptor() ([]byte, []int) {
return fileDescriptor_aba6db06a1aaf83a, []int{7}
return fileDescriptor_aba6db06a1aaf83a, []int{6}
}
func (m *Supervise) XXX_Unmarshal(b []byte) error {
......@@ -527,7 +471,7 @@ func (m *Account) Reset() { *m = Account{} }
func (m *Account) String() string { return proto.CompactTextString(m) }
func (*Account) ProtoMessage() {}
func (*Account) Descriptor() ([]byte, []int) {
return fileDescriptor_aba6db06a1aaf83a, []int{8}
return fileDescriptor_aba6db06a1aaf83a, []int{7}
}
func (m *Account) XXX_Unmarshal(b []byte) error {
......@@ -622,7 +566,7 @@ func (m *AccountReceipt) Reset() { *m = AccountReceipt{} }
func (m *AccountReceipt) String() string { return proto.CompactTextString(m) }
func (*AccountReceipt) ProtoMessage() {}
func (*AccountReceipt) Descriptor() ([]byte, []int) {
return fileDescriptor_aba6db06a1aaf83a, []int{9}
return fileDescriptor_aba6db06a1aaf83a, []int{8}
}
func (m *AccountReceipt) XXX_Unmarshal(b []byte) error {
......@@ -662,7 +606,7 @@ func (m *ReplyAccountList) Reset() { *m = ReplyAccountList{} }
func (m *ReplyAccountList) String() string { return proto.CompactTextString(m) }
func (*ReplyAccountList) ProtoMessage() {}
func (*ReplyAccountList) Descriptor() ([]byte, []int) {
return fileDescriptor_aba6db06a1aaf83a, []int{10}
return fileDescriptor_aba6db06a1aaf83a, []int{9}
}
func (m *ReplyAccountList) XXX_Unmarshal(b []byte) error {
......@@ -710,7 +654,7 @@ func (m *TransferReceipt) Reset() { *m = TransferReceipt{} }
func (m *TransferReceipt) String() string { return proto.CompactTextString(m) }
func (*TransferReceipt) ProtoMessage() {}
func (*TransferReceipt) Descriptor() ([]byte, []int) {
return fileDescriptor_aba6db06a1aaf83a, []int{11}
return fileDescriptor_aba6db06a1aaf83a, []int{10}
}
func (m *TransferReceipt) XXX_Unmarshal(b []byte) error {
......@@ -766,7 +710,7 @@ func (m *SuperviseReceipt) Reset() { *m = SuperviseReceipt{} }
func (m *SuperviseReceipt) String() string { return proto.CompactTextString(m) }
func (*SuperviseReceipt) ProtoMessage() {}
func (*SuperviseReceipt) Descriptor() ([]byte, []int) {
return fileDescriptor_aba6db06a1aaf83a, []int{12}
return fileDescriptor_aba6db06a1aaf83a, []int{11}
}
func (m *SuperviseReceipt) XXX_Unmarshal(b []byte) error {
......@@ -824,7 +768,7 @@ func (m *QueryExpiredAccounts) Reset() { *m = QueryExpiredAccounts{} }
func (m *QueryExpiredAccounts) String() string { return proto.CompactTextString(m) }
func (*QueryExpiredAccounts) ProtoMessage() {}
func (*QueryExpiredAccounts) Descriptor() ([]byte, []int) {
return fileDescriptor_aba6db06a1aaf83a, []int{13}
return fileDescriptor_aba6db06a1aaf83a, []int{12}
}
func (m *QueryExpiredAccounts) XXX_Unmarshal(b []byte) error {
......@@ -882,7 +826,7 @@ func (m *QueryAccountsByStatus) Reset() { *m = QueryAccountsByStatus{} }
func (m *QueryAccountsByStatus) String() string { return proto.CompactTextString(m) }
func (*QueryAccountsByStatus) ProtoMessage() {}
func (*QueryAccountsByStatus) Descriptor() ([]byte, []int) {
return fileDescriptor_aba6db06a1aaf83a, []int{14}
return fileDescriptor_aba6db06a1aaf83a, []int{13}
}
func (m *QueryAccountsByStatus) XXX_Unmarshal(b []byte) error {
......@@ -935,7 +879,7 @@ func (m *QueryAccountByID) Reset() { *m = QueryAccountByID{} }
func (m *QueryAccountByID) String() string { return proto.CompactTextString(m) }
func (*QueryAccountByID) ProtoMessage() {}
func (*QueryAccountByID) Descriptor() ([]byte, []int) {
return fileDescriptor_aba6db06a1aaf83a, []int{15}
return fileDescriptor_aba6db06a1aaf83a, []int{14}
}
func (m *QueryAccountByID) XXX_Unmarshal(b []byte) error {
......@@ -974,7 +918,7 @@ func (m *QueryAccountByAddr) Reset() { *m = QueryAccountByAddr{} }
func (m *QueryAccountByAddr) String() string { return proto.CompactTextString(m) }
func (*QueryAccountByAddr) ProtoMessage() {}
func (*QueryAccountByAddr) Descriptor() ([]byte, []int) {
return fileDescriptor_aba6db06a1aaf83a, []int{16}
return fileDescriptor_aba6db06a1aaf83a, []int{15}
}
func (m *QueryAccountByAddr) XXX_Unmarshal(b []byte) error {
......@@ -1004,7 +948,7 @@ func (m *QueryAccountByAddr) GetAddr() string {
type QueryBalanceByID struct {
AccountID string `protobuf:"bytes,1,opt,name=accountID,proto3" json:"accountID,omitempty"`
Asset *Asset `protobuf:"bytes,2,opt,name=asset,proto3" json:"asset,omitempty"`
Asset *types.Asset `protobuf:"bytes,2,opt,name=asset,proto3" json:"asset,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
......@@ -1014,7 +958,7 @@ func (m *QueryBalanceByID) Reset() { *m = QueryBalanceByID{} }
func (m *QueryBalanceByID) String() string { return proto.CompactTextString(m) }
func (*QueryBalanceByID) ProtoMessage() {}
func (*QueryBalanceByID) Descriptor() ([]byte, []int) {
return fileDescriptor_aba6db06a1aaf83a, []int{17}
return fileDescriptor_aba6db06a1aaf83a, []int{16}
}
func (m *QueryBalanceByID) XXX_Unmarshal(b []byte) error {
......@@ -1042,7 +986,7 @@ func (m *QueryBalanceByID) GetAccountID() string {
return ""
}
func (m *QueryBalanceByID) GetAsset() *Asset {
func (m *QueryBalanceByID) GetAsset() *types.Asset {
if m != nil {
return m.Asset
}
......@@ -1061,7 +1005,7 @@ func (m *Balance) Reset() { *m = Balance{} }
func (m *Balance) String() string { return proto.CompactTextString(m) }
func (*Balance) ProtoMessage() {}
func (*Balance) Descriptor() ([]byte, []int) {
return fileDescriptor_aba6db06a1aaf83a, []int{18}
return fileDescriptor_aba6db06a1aaf83a, []int{17}
}
func (m *Balance) XXX_Unmarshal(b []byte) error {
......@@ -1102,7 +1046,6 @@ func init() {
proto.RegisterType((*Register)(nil), "types.Register")
proto.RegisterType((*ResetKey)(nil), "types.ResetKey")
proto.RegisterType((*Apply)(nil), "types.Apply")
proto.RegisterType((*Asset)(nil), "types.asset")
proto.RegisterType((*Transfer)(nil), "types.Transfer")
proto.RegisterType((*Supervise)(nil), "types.Supervise")
proto.RegisterType((*Account)(nil), "types.account")
......@@ -1123,53 +1066,51 @@ func init() {
}
var fileDescriptor_aba6db06a1aaf83a = []byte{
// 731 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x94, 0x55, 0x4d, 0x6b, 0xdb, 0x4c,
0x10, 0x8e, 0xac, 0xc8, 0xb6, 0x26, 0xef, 0xeb, 0x98, 0xc5, 0x0d, 0xa2, 0x94, 0x62, 0x96, 0x1c,
0x4c, 0x69, 0x43, 0x48, 0x29, 0x85, 0xb6, 0x17, 0x9b, 0xb4, 0x24, 0xb4, 0x97, 0x6c, 0x7c, 0x2e,
0x28, 0xf2, 0x24, 0x88, 0xca, 0x96, 0x58, 0xad, 0x4d, 0xd4, 0x3f, 0xd0, 0x5b, 0x4f, 0xfd, 0xaf,
0xbd, 0x96, 0x9d, 0x5d, 0x7d, 0x39, 0x69, 0x43, 0x4e, 0xda, 0x79, 0xe6, 0xd9, 0xf9, 0xde, 0x11,
0x8c, 0xc2, 0x28, 0x4a, 0xd7, 0x2b, 0xb5, 0x0c, 0x57, 0xe1, 0x0d, 0xca, 0xa3, 0x4c, 0xa6, 0x2a,
0x65, 0x9e, 0x2a, 0x32, 0xcc, 0xf9, 0x10, 0x06, 0xd3, 0x96, 0x9a, 0xff, 0xea, 0xc0, 0xa8, 0x0d,
0x4d, 0x23, 0x15, 0xa7, 0x2b, 0xf6, 0x0a, 0xfa, 0x12, 0x6f, 0xe2, 0x5c, 0xa1, 0x0c, 0x9c, 0xb1,
0x33, 0xd9, 0x3b, 0xd9, 0x3f, 0x22, 0x23, 0x47, 0xc2, 0xc2, 0x67, 0x3b, 0xa2, 0xa2, 0x18, 0x7a,
0x8e, 0xea, 0x33, 0x16, 0x41, 0x67, 0x8b, 0x6e, 0x60, 0x43, 0x37, 0x67, 0x4d, 0x57, 0x32, 0x5c,
0xe5, 0xd7, 0x28, 0x03, 0xb7, 0x45, 0x9f, 0x5b, 0x58, 0xd3, 0x4b, 0x0a, 0x3b, 0x06, 0x3f, 0x5f,
0x67, 0x28, 0x37, 0x71, 0x8e, 0xc1, 0x2e, 0xf1, 0x87, 0x96, 0x7f, 0x59, 0xe2, 0x67, 0x3b, 0xa2,
0x26, 0xb1, 0x43, 0xf0, 0xc2, 0x2c, 0x4b, 0x8a, 0xc0, 0x23, 0xf6, 0x7f, 0x96, 0x3d, 0xd5, 0xd8,
0xd9, 0x8e, 0x30, 0x4a, 0x36, 0x80, 0x8e, 0x2a, 0x82, 0xee, 0xd8, 0x99, 0x78, 0xa2, 0xa3, 0x8a,
0x59, 0x0f, 0xbc, 0x4d, 0x98, 0xac, 0x91, 0x4f, 0xa0, 0x5f, 0xa6, 0xc9, 0x9e, 0x81, 0x6f, 0x6b,
0x7a, 0x7e, 0x4a, 0xa5, 0xf0, 0x45, 0x0d, 0xf0, 0x0f, 0x9a, 0x69, 0xb3, 0xfa, 0x27, 0x93, 0x31,
0xd8, 0x0d, 0x17, 0x0b, 0x49, 0xe5, 0xf1, 0x05, 0x9d, 0xf9, 0x1b, 0xf0, 0x28, 0xa4, 0x07, 0xae,
0x0e, 0xa0, 0x93, 0x66, 0x74, 0xd1, 0x13, 0x9d, 0x34, 0xe3, 0x6f, 0xc1, 0x0b, 0xf3, 0x1c, 0x15,
0x3b, 0x80, 0x2e, 0xde, 0x62, 0x64, 0x7b, 0xe4, 0x0b, 0x2b, 0x69, 0x3c, 0x2f, 0x96, 0x57, 0x69,
0x62, 0xbd, 0x59, 0x89, 0xff, 0x74, 0xa0, 0x5f, 0x56, 0x98, 0x71, 0xf0, 0xa6, 0xda, 0x8a, 0xed,
0x6f, 0x59, 0x23, 0xb2, 0x2c, 0x8c, 0x8a, 0x1d, 0xc2, 0xff, 0xd7, 0x32, 0x5d, 0x4e, 0xab, 0xd8,
0x8c, 0xbd, 0x36, 0xc8, 0xc6, 0xb0, 0xa7, 0xd2, 0x9a, 0xe3, 0x12, 0xa7, 0x09, 0xe9, 0x80, 0xc2,
0xa5, 0x3e, 0x53, 0xfb, 0x5c, 0x61, 0x25, 0x7e, 0x01, 0x7e, 0xd5, 0x41, 0xf6, 0x1c, 0xa0, 0xca,
0x39, 0x0f, 0x9c, 0xb1, 0x3b, 0xf1, 0x45, 0x03, 0xd9, 0x2e, 0x03, 0x1b, 0x81, 0x97, 0xe0, 0x06,
0x13, 0x72, 0xe8, 0x09, 0x23, 0xf0, 0xdf, 0x0e, 0xf4, 0xec, 0xa5, 0xc7, 0x77, 0x84, 0x3d, 0x85,
0x7e, 0x26, 0x71, 0x33, 0xd5, 0xb8, 0xc9, 0xa3, 0x92, 0xa9, 0xaa, 0x2a, 0x54, 0xeb, 0x9c, 0x92,
0xf0, 0x84, 0x95, 0xea, 0x38, 0xbc, 0x46, 0x1c, 0x3a, 0x9b, 0x48, 0x62, 0xa8, 0x70, 0x1e, 0x2f,
0x91, 0x86, 0xcc, 0x15, 0x0d, 0x44, 0xeb, 0xf1, 0x36, 0x8b, 0xa5, 0xd1, 0xf7, 0x8c, 0xbe, 0x46,
0x74, 0x24, 0x49, 0x1a, 0x7d, 0x23, 0x6d, 0x9f, 0xb4, 0x95, 0xac, 0x3d, 0xc6, 0xab, 0x05, 0xde,
0x06, 0x3e, 0x29, 0x8c, 0xc0, 0xdf, 0x55, 0xcf, 0x5b, 0x60, 0x84, 0x71, 0xa6, 0xd8, 0xa4, 0x2a,
0x85, 0x6d, 0xf2, 0xa0, 0x6c, 0xb2, 0xe5, 0x95, 0x6a, 0xfe, 0x15, 0x86, 0x02, 0xb3, 0xa4, 0xb0,
0x06, 0xbe, 0xc4, 0xb9, 0x62, 0x2f, 0xa0, 0x6f, 0xd5, 0xa6, 0x1b, 0x77, 0xaf, 0x57, 0x7a, 0x9d,
0x4d, 0x26, 0xe3, 0x65, 0x28, 0x8b, 0x72, 0x05, 0xf8, 0xa2, 0x81, 0xf0, 0x1f, 0x0e, 0xec, 0x97,
0x93, 0x57, 0x46, 0x77, 0x0c, 0x7b, 0x9f, 0xea, 0x39, 0xfa, 0x4b, 0x84, 0x4d, 0x0a, 0x7b, 0x09,
0xfe, 0xbc, 0x9c, 0x2a, 0xbb, 0x67, 0xb6, 0xf9, 0x35, 0xa1, 0xae, 0x92, 0xdb, 0xac, 0xd2, 0x02,
0x86, 0xd5, 0xc8, 0x95, 0x91, 0x3c, 0x26, 0xd3, 0x7b, 0xa6, 0xf0, 0x1e, 0x2f, 0x1b, 0x18, 0x5d,
0xac, 0x51, 0x16, 0x1f, 0xa9, 0xa1, 0x8b, 0xe9, 0xfd, 0x75, 0x72, 0xb6, 0xeb, 0xa4, 0x9f, 0x92,
0x99, 0x81, 0x05, 0x35, 0xbe, 0x43, 0x36, 0x9b, 0x90, 0x9e, 0xe9, 0x45, 0x2c, 0x91, 0xd6, 0xb4,
0x9d, 0xfc, 0x1a, 0xe0, 0x4b, 0x78, 0x42, 0x7e, 0x4b, 0x87, 0xb3, 0xe2, 0xd2, 0x0c, 0x69, 0x3d,
0xbc, 0x4e, 0x6b, 0x78, 0xdb, 0x01, 0xb9, 0x77, 0x02, 0x6a, 0xb9, 0xf3, 0xb6, 0xdd, 0x1d, 0xc3,
0xb0, 0xe9, 0x6e, 0x56, 0x9c, 0x9f, 0x3e, 0xb0, 0x30, 0x27, 0xc0, 0xda, 0x37, 0xe8, 0x69, 0x95,
0x4f, 0xd1, 0x69, 0x2c, 0xc7, 0xb9, 0xb5, 0x3d, 0x0b, 0x93, 0x70, 0x15, 0xe1, 0xc3, 0xb6, 0xf5,
0x46, 0xa3, 0xed, 0x65, 0x47, 0x63, 0x6b, 0xa3, 0xd1, 0x87, 0xbf, 0x87, 0xde, 0x95, 0x31, 0xc8,
0x82, 0xea, 0x48, 0xa6, 0x5c, 0x51, 0x69, 0x0e, 0xa0, 0x7b, 0x2d, 0xd3, 0xef, 0xb8, 0xb2, 0x0d,
0xb0, 0xd2, 0xc9, 0x10, 0x06, 0xed, 0xff, 0xeb, 0x55, 0x97, 0x7e, 0xb0, 0xaf, 0xff, 0x04, 0x00,
0x00, 0xff, 0xff, 0x84, 0x94, 0xab, 0xf2, 0x78, 0x07, 0x00, 0x00,
// 699 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x94, 0x55, 0x5d, 0x6f, 0xd3, 0x30,
0x14, 0x5d, 0x92, 0xa5, 0x6d, 0xee, 0xa0, 0x2b, 0x56, 0x99, 0xa2, 0x09, 0xa1, 0xca, 0xda, 0x43,
0x85, 0x60, 0x9a, 0x86, 0x78, 0x01, 0x5e, 0x5a, 0x0d, 0xb4, 0x09, 0x5e, 0xe6, 0xf5, 0x19, 0xc9,
0x4b, 0xee, 0xa6, 0x88, 0x34, 0x89, 0x1c, 0xb7, 0x5a, 0xf8, 0x03, 0xfc, 0x01, 0xfe, 0x2b, 0xaf,
0x28, 0xb6, 0xf3, 0xd5, 0x6d, 0x54, 0x7b, 0x8b, 0xcf, 0x3d, 0xbe, 0xf7, 0xf8, 0xde, 0x63, 0x07,
0xc6, 0x3c, 0x08, 0xd2, 0x55, 0x22, 0x97, 0x3c, 0xe1, 0xb7, 0x28, 0x8e, 0x33, 0x91, 0xca, 0x94,
0xb8, 0xb2, 0xc8, 0x30, 0x3f, 0x7c, 0x21, 0x05, 0x4f, 0x72, 0x1e, 0xc8, 0x28, 0x4d, 0x74, 0x84,
0x8e, 0x60, 0x38, 0xeb, 0xec, 0xa0, 0x7f, 0x6c, 0x18, 0x77, 0xa1, 0x99, 0xda, 0x40, 0xde, 0xc1,
0x40, 0xe0, 0x6d, 0x94, 0x4b, 0x14, 0xbe, 0x35, 0xb1, 0xa6, 0x7b, 0xa7, 0xfb, 0xc7, 0x2a, 0xef,
0x31, 0x33, 0xf0, 0xf9, 0x0e, 0xab, 0x29, 0x9a, 0x9e, 0xa3, 0xfc, 0x86, 0x85, 0x6f, 0x6f, 0xd0,
0x35, 0xac, 0xe9, 0xfa, 0xbb, 0xa4, 0x2b, 0x75, 0x37, 0x28, 0x7c, 0xa7, 0x43, 0x5f, 0x18, 0xb8,
0xa4, 0x57, 0x14, 0x72, 0x02, 0x5e, 0xbe, 0xca, 0x50, 0xac, 0xa3, 0x1c, 0xfd, 0x5d, 0xc5, 0x1f,
0x19, 0xfe, 0x55, 0x85, 0x9f, 0xef, 0xb0, 0x86, 0x44, 0x8e, 0xc0, 0xe5, 0x59, 0x16, 0x17, 0xbe,
0xab, 0xd8, 0xcf, 0x0c, 0x7b, 0x56, 0x62, 0xe7, 0x3b, 0x4c, 0x07, 0xc9, 0x10, 0x6c, 0x59, 0xf8,
0xbd, 0x89, 0x35, 0x75, 0x99, 0x2d, 0x8b, 0x79, 0x1f, 0xdc, 0x35, 0x8f, 0x57, 0x48, 0xa7, 0x30,
0xa8, 0x8e, 0x49, 0x5e, 0x81, 0x67, 0xda, 0x7c, 0x71, 0xa6, 0x5a, 0xe1, 0xb1, 0x06, 0xa0, 0x9f,
0x4b, 0xa6, 0x39, 0xd5, 0x7f, 0x99, 0x84, 0xc0, 0x2e, 0x0f, 0x43, 0xa1, 0xda, 0xe3, 0x31, 0xf5,
0x4d, 0x3f, 0x80, 0xab, 0x24, 0x6d, 0xd9, 0x3a, 0x04, 0x3b, 0xcd, 0xd4, 0x46, 0x97, 0xd9, 0x69,
0x46, 0xd7, 0x30, 0xa8, 0xfa, 0x44, 0x28, 0xb8, 0x3c, 0xcf, 0x51, 0x9a, 0x29, 0xd5, 0x27, 0x2d,
0x31, 0xa6, 0x43, 0xe4, 0x08, 0x9e, 0xdf, 0x88, 0x74, 0x39, 0xab, 0x2b, 0x68, 0x0d, 0x5d, 0x90,
0x4c, 0x60, 0x4f, 0xa6, 0x0d, 0xc7, 0x51, 0x9c, 0x36, 0x44, 0x2f, 0xc1, 0xab, 0xfb, 0x4d, 0x5e,
0x03, 0xd4, 0x0a, 0x73, 0xdf, 0x9a, 0x38, 0x53, 0x8f, 0xb5, 0x90, 0x4d, 0xd1, 0x64, 0x0c, 0x6e,
0x8c, 0x6b, 0x8c, 0x55, 0x62, 0x97, 0xe9, 0x05, 0xfd, 0x6b, 0x41, 0xdf, 0x6c, 0x7a, 0x7a, 0xff,
0xc8, 0x21, 0x0c, 0x32, 0x81, 0xeb, 0x59, 0x89, 0x6b, 0xbd, 0xf5, 0x9a, 0x1c, 0x40, 0x2f, 0x97,
0x5c, 0xae, 0x72, 0xe5, 0x18, 0x97, 0x99, 0x55, 0xa3, 0xc3, 0x6d, 0xe9, 0x28, 0x4f, 0x13, 0x08,
0xe4, 0x12, 0x17, 0xd1, 0x12, 0x95, 0x25, 0x1c, 0xd6, 0x42, 0xca, 0x38, 0xde, 0x65, 0x91, 0xd0,
0xf1, 0xbe, 0x8e, 0x37, 0x48, 0xa9, 0x24, 0x4e, 0x83, 0x9f, 0x2a, 0x3a, 0x50, 0xd1, 0x7a, 0x5d,
0x56, 0x8c, 0x92, 0x10, 0xef, 0x7c, 0x4f, 0x05, 0xf4, 0x82, 0x7e, 0xac, 0x2f, 0x23, 0xc3, 0x00,
0xa3, 0x4c, 0x92, 0x69, 0xdd, 0x0a, 0x33, 0xcc, 0xa1, 0x19, 0xa6, 0x41, 0x59, 0x15, 0xa6, 0x3f,
0x60, 0xc4, 0x30, 0x8b, 0x0b, 0x93, 0xe0, 0x7b, 0x94, 0x4b, 0xf2, 0x06, 0x06, 0x26, 0xac, 0xa7,
0x71, 0x7f, 0x7b, 0x1d, 0x2f, 0x4f, 0x93, 0x89, 0x68, 0xc9, 0x45, 0x51, 0x5d, 0x58, 0x8f, 0xb5,
0x10, 0xfa, 0xdb, 0x82, 0xfd, 0xca, 0x61, 0x95, 0xba, 0x13, 0xd8, 0xfb, 0xda, 0xf8, 0xe5, 0x11,
0x85, 0x6d, 0x0a, 0x79, 0x0b, 0xde, 0xa2, 0x72, 0x8f, 0x79, 0x15, 0x36, 0xf9, 0x0d, 0xa1, 0xe9,
0x92, 0xd3, 0xee, 0x52, 0x08, 0xa3, 0xda, 0x72, 0x95, 0x92, 0xa7, 0x9c, 0xf4, 0x01, 0x17, 0x3e,
0x50, 0x65, 0x0d, 0xe3, 0xcb, 0x15, 0x8a, 0xe2, 0x8b, 0x1a, 0x68, 0x38, 0x7b, 0xb8, 0x4f, 0xd6,
0x66, 0x9f, 0xca, 0x2b, 0xa3, 0x3d, 0x10, 0xaa, 0xc1, 0xdb, 0x2a, 0x67, 0x1b, 0x2a, 0x3d, 0x1d,
0x46, 0x02, 0xd5, 0xa3, 0x6a, 0x9c, 0xdf, 0x00, 0x74, 0x09, 0x2f, 0x55, 0xdd, 0xaa, 0xe0, 0xbc,
0xb8, 0xd2, 0x26, 0x6d, 0xcc, 0x6b, 0x75, 0xcc, 0xdb, 0x15, 0xe4, 0xdc, 0x13, 0xd4, 0x29, 0xe7,
0x6e, 0x96, 0x3b, 0x81, 0x51, 0xbb, 0xdc, 0xbc, 0xb8, 0x38, 0xdb, 0xf2, 0xbc, 0x4d, 0x81, 0x74,
0x77, 0xa8, 0xab, 0x55, 0x5d, 0x45, 0xab, 0xf5, 0x94, 0x2d, 0x4c, 0xee, 0x39, 0x8f, 0x79, 0x12,
0xe0, 0xf6, 0xdc, 0xcd, 0xcb, 0x65, 0x3f, 0xfa, 0x72, 0xd1, 0x4f, 0xd0, 0xbf, 0xd6, 0x09, 0x89,
0x5f, 0x7f, 0xaa, 0x54, 0x0e, 0xab, 0x23, 0x07, 0xd0, 0xbb, 0x11, 0xe9, 0x2f, 0x4c, 0xcc, 0x00,
0xcc, 0xea, 0x74, 0x04, 0xc3, 0xee, 0x0f, 0xf2, 0xba, 0xa7, 0xfe, 0x83, 0xef, 0xff, 0x05, 0x00,
0x00, 0xff, 0xff, 0x84, 0xc3, 0xe9, 0x87, 0x39, 0x07, 0x00, 0x00,
}
// Reference imports to suppress errors if they are not otherwise used.
......
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