Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
P
plugin
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
JIRA
JIRA
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
link33
plugin
Commits
28885ad0
Commit
28885ad0
authored
Mar 27, 2020
by
harrylee
Committed by
vipwzw
Apr 04, 2020
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
remove asset from accountmanager.proto
parent
ce2ba241
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
87 additions
and
149 deletions
+87
-149
account_test.go
plugin/dapp/accountmanager/executor/account_test.go
+5
-5
accountdb.go
plugin/dapp/accountmanager/executor/accountdb.go
+6
-6
accountmanager.proto
plugin/dapp/accountmanager/proto/accountmanager.proto
+7
-10
accountmanager.pb.go
plugin/dapp/accountmanager/types/accountmanager.pb.go
+69
-128
No files found.
plugin/dapp/accountmanager/executor/account_test.go
View file @
28885ad0
...
...
@@ -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"
,
A
mount
:
1e8
,
Asset
:
&
et
.
Asset
{
Execer
:
"coins"
,
Symbol
:
"bty"
}},
PrivKeyB
)
tx4
,
err
:=
CreateTransfer
(
&
et
.
Transfer
{
FromAccountID
:
"harrylee2015"
,
ToAccountID
:
"harrylee2020"
,
A
sset
:
&
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"
,
A
mount
:
1e8
,
Asset
:
&
et
.
Asset
{
Execer
:
"coins"
,
Symbol
:
"bty"
}},
PrivKeyD
)
tx7
,
_
:=
CreateTransfer
(
&
et
.
Transfer
{
FromAccountID
:
"harrylee2015"
,
ToAccountID
:
"harrylee2015"
,
A
sset
:
&
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
)
...
...
plugin/dapp/accountmanager/executor/accountdb.go
View file @
28885ad0
...
...
@@ -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
.
GetExec
er
(),
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
.
GetExec
er
(),
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
.
A
sset
.
A
mount
{
elog
.
Error
(
"Transfer, check balance"
,
"addr"
,
a
.
fromaddr
,
"avail"
,
fromAccount
.
Balance
,
"need"
,
payload
.
A
sset
.
A
mount
)
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
.
A
sset
.
A
mount
)
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
.
GetExec
er
(),
in
.
Asset
.
GetSymbol
(),
statedb
)
assetDB
,
err
:=
account
.
NewAccountDB
(
cfg
,
in
.
Asset
.
GetExec
(),
in
.
Asset
.
GetSymbol
(),
statedb
)
if
err
!=
nil
{
return
nil
,
err
}
...
...
plugin/dapp/accountmanager/proto/accountmanager.proto
View file @
28885ad0
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
A
sset
=
1
;
//资产类型
及转账金额
Asset
a
sset
=
1
;
// from账户
string
fromAccountID
=
2
;
// to账户
string
toAccountID
=
3
;
//转账金额
int64
amount
=
4
;
}
...
...
@@ -144,7 +141,7 @@ message QueryAccountByAddr {
message
QueryBalanceByID
{
string
accountID
=
1
;
a
sset
asset
=
2
;
A
sset
asset
=
2
;
}
message
balance
{
...
...
plugin/dapp/accountmanager/types/accountmanager.pb.go
View file @
28885ad0
...
...
@@ -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:"A
sset,omitempty"`
//资产类型
及转账金额
Asset
*
types
.
Asset
`protobuf:"bytes,1,opt,name=asset,proto3" json:"a
sset,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"`
ToAccountID
string
`protobuf:"bytes,3,opt,name=toAccountID,proto3" json:"toAccountID,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
{
1
1
}
return
fileDescriptor_aba6db06a1aaf83a
,
[]
int
{
1
0
}
}
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
{
1
2
}
return
fileDescriptor_aba6db06a1aaf83a
,
[]
int
{
1
1
}
}
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
{
1
3
}
return
fileDescriptor_aba6db06a1aaf83a
,
[]
int
{
1
2
}
}
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
{
1
4
}
return
fileDescriptor_aba6db06a1aaf83a
,
[]
int
{
1
3
}
}
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
{
1
5
}
return
fileDescriptor_aba6db06a1aaf83a
,
[]
int
{
1
4
}
}
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
{
1
6
}
return
fileDescriptor_aba6db06a1aaf83a
,
[]
int
{
1
5
}
}
func
(
m
*
QueryAccountByAddr
)
XXX_Unmarshal
(
b
[]
byte
)
error
{
...
...
@@ -1003,18 +947,18 @@ 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"`
XXX_NoUnkeyedLiteral
struct
{}
`json:"-"`
XXX_unrecognized
[]
byte
`json:"-"`
XXX_sizecache
int32
`json:"-"`
AccountID
string
`protobuf:"bytes,1,opt,name=accountID,proto3" json:"accountID,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:"-"`
}
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
{
1
7
}
return
fileDescriptor_aba6db06a1aaf83a
,
[]
int
{
1
6
}
}
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
{
1
8
}
return
fileDescriptor_aba6db06a1aaf83a
,
[]
int
{
1
7
}
}
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.
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment