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
7f73d32d
Commit
7f73d32d
authored
Nov 23, 2018
by
mdj33
Committed by
vipwzw
Nov 26, 2018
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
correct relay plugin lint error
parent
0ac1f080
Expand all
Show whitespace changes
Inline
Side-by-side
Showing
22 changed files
with
285 additions
and
324 deletions
+285
-324
btcd.go
plugin/dapp/relay/cmd/relayd/relayd/btcd.go
+22
-21
btcd_test.go
plugin/dapp/relay/cmd/relayd/relayd/btcd_test.go
+1
-1
btcweb.go
plugin/dapp/relay/cmd/relayd/relayd/btcweb.go
+9
-9
btcweb_test.go
plugin/dapp/relay/cmd/relayd/relayd/btcweb_test.go
+1
-1
chain33.go
plugin/dapp/relay/cmd/relayd/relayd/chain33.go
+7
-2
config.go
plugin/dapp/relay/cmd/relayd/relayd/config.go
+8
-2
db.go
plugin/dapp/relay/cmd/relayd/relayd/db.go
+2
-1
relayd.go
plugin/dapp/relay/cmd/relayd/relayd/relayd.go
+7
-3
type.go
plugin/dapp/relay/cmd/relayd/relayd/type.go
+19
-19
relay.go
plugin/dapp/relay/commands/relay.go
+16
-4
types.go
plugin/dapp/relay/commands/types.go
+2
-2
relay.go
plugin/dapp/relay/executor/relay.go
+26
-24
relay_test.go
plugin/dapp/relay/executor/relay_test.go
+24
-24
relaybtc.go
plugin/dapp/relay/executor/relaybtc.go
+17
-17
relaybtc_test.go
plugin/dapp/relay/executor/relaybtc_test.go
+26
-26
relaydb.go
plugin/dapp/relay/executor/relaydb.go
+26
-26
relaydb_test.go
plugin/dapp/relay/executor/relaydb_test.go
+0
-0
rpc.go
plugin/dapp/relay/rpc/rpc.go
+18
-18
rpc_test.go
plugin/dapp/relay/rpc/rpc_test.go
+2
-2
types.go
plugin/dapp/relay/rpc/types.go
+5
-4
errors.go
plugin/dapp/relay/types/errors.go
+18
-1
relay.go
plugin/dapp/relay/types/relay.go
+29
-117
No files found.
plugin/dapp/relay/cmd/relayd/relayd/btcd.go
View file @
7f73d32d
...
@@ -18,6 +18,7 @@ import (
...
@@ -18,6 +18,7 @@ import (
"github.com/btcsuite/btcd/rpcclient"
"github.com/btcsuite/btcd/rpcclient"
)
)
// BtcClient interface
type
BtcClient
interface
{
type
BtcClient
interface
{
Start
()
error
Start
()
error
Stop
()
error
Stop
()
error
...
@@ -29,28 +30,28 @@ type BtcClient interface {
...
@@ -29,28 +30,28 @@ type BtcClient interface {
}
}
type
(
type
(
B
lockStamp
struct
{
b
lockStamp
struct
{
Height
int32
Height
int32
Hash
chainhash
.
Hash
Hash
chainhash
.
Hash
}
}
B
lockMeta
struct
{
b
lockMeta
struct
{
B
lockStamp
b
lockStamp
Time
time
.
Time
Time
time
.
Time
}
}
C
lientConnected
struct
{}
c
lientConnected
struct
{}
BlockConnected
B
lockMeta
blockConnected
b
lockMeta
BlockDisconnected
B
lockMeta
blockDisconnected
b
lockMeta
)
)
type
P
arams
struct
{
type
p
arams
struct
{
*
chaincfg
.
Params
*
chaincfg
.
Params
RPCClientPort
string
RPCClientPort
string
RPCServerPort
string
RPCServerPort
string
}
}
var
MainNetParams
=
P
arams
{
var
mainNetParams
=
p
arams
{
Params
:
&
chaincfg
.
MainNetParams
,
Params
:
&
chaincfg
.
MainNetParams
,
RPCClientPort
:
"8334"
,
RPCClientPort
:
"8334"
,
RPCServerPort
:
"8332"
,
RPCServerPort
:
"8332"
,
...
@@ -63,24 +64,24 @@ type btcdClient struct {
...
@@ -63,24 +64,24 @@ type btcdClient struct {
reconnectAttempts
int
reconnectAttempts
int
enqueueNotification
chan
interface
{}
enqueueNotification
chan
interface
{}
dequeueNotification
chan
interface
{}
dequeueNotification
chan
interface
{}
currentBlock
chan
*
B
lockStamp
currentBlock
chan
*
b
lockStamp
quit
chan
struct
{}
quit
chan
struct
{}
wg
sync
.
WaitGroup
wg
sync
.
WaitGroup
started
bool
started
bool
quitMtx
sync
.
Mutex
quitMtx
sync
.
Mutex
}
}
func
N
ewBtcd
(
config
*
rpcclient
.
ConnConfig
,
reconnectAttempts
int
)
(
BtcClient
,
error
)
{
func
n
ewBtcd
(
config
*
rpcclient
.
ConnConfig
,
reconnectAttempts
int
)
(
BtcClient
,
error
)
{
if
reconnectAttempts
<
0
{
if
reconnectAttempts
<
0
{
return
nil
,
errors
.
New
(
"ReconnectAttempts must be positive"
)
return
nil
,
errors
.
New
(
"ReconnectAttempts must be positive"
)
}
}
client
:=
&
btcdClient
{
client
:=
&
btcdClient
{
connConfig
:
config
,
connConfig
:
config
,
chainParams
:
M
ainNetParams
.
Params
,
chainParams
:
m
ainNetParams
.
Params
,
reconnectAttempts
:
reconnectAttempts
,
reconnectAttempts
:
reconnectAttempts
,
enqueueNotification
:
make
(
chan
interface
{}),
enqueueNotification
:
make
(
chan
interface
{}),
dequeueNotification
:
make
(
chan
interface
{}),
dequeueNotification
:
make
(
chan
interface
{}),
currentBlock
:
make
(
chan
*
B
lockStamp
),
currentBlock
:
make
(
chan
*
b
lockStamp
),
quit
:
make
(
chan
struct
{}),
quit
:
make
(
chan
struct
{}),
}
}
ntfnCallbacks
:=
&
rpcclient
.
NotificationHandlers
{
ntfnCallbacks
:=
&
rpcclient
.
NotificationHandlers
{
...
@@ -147,7 +148,7 @@ func (b *btcdClient) Notifications() <-chan interface{} {
...
@@ -147,7 +148,7 @@ func (b *btcdClient) Notifications() <-chan interface{} {
return
b
.
dequeueNotification
return
b
.
dequeueNotification
}
}
func
(
b
*
btcdClient
)
BlockStamp
()
(
*
B
lockStamp
,
error
)
{
func
(
b
*
btcdClient
)
BlockStamp
()
(
*
b
lockStamp
,
error
)
{
select
{
select
{
case
bs
:=
<-
b
.
currentBlock
:
case
bs
:=
<-
b
.
currentBlock
:
return
bs
,
nil
return
bs
,
nil
...
@@ -158,15 +159,15 @@ func (b *btcdClient) BlockStamp() (*BlockStamp, error) {
...
@@ -158,15 +159,15 @@ func (b *btcdClient) BlockStamp() (*BlockStamp, error) {
func
(
b
*
btcdClient
)
onClientConnect
()
{
func
(
b
*
btcdClient
)
onClientConnect
()
{
select
{
select
{
case
b
.
enqueueNotification
<-
C
lientConnected
{}
:
case
b
.
enqueueNotification
<-
c
lientConnected
{}
:
case
<-
b
.
quit
:
case
<-
b
.
quit
:
}
}
}
}
func
(
b
*
btcdClient
)
onBlockConnected
(
hash
*
chainhash
.
Hash
,
height
int32
,
time
time
.
Time
)
{
func
(
b
*
btcdClient
)
onBlockConnected
(
hash
*
chainhash
.
Hash
,
height
int32
,
time
time
.
Time
)
{
select
{
select
{
case
b
.
enqueueNotification
<-
B
lockConnected
{
case
b
.
enqueueNotification
<-
b
lockConnected
{
BlockStamp
:
B
lockStamp
{
blockStamp
:
b
lockStamp
{
Hash
:
*
hash
,
Hash
:
*
hash
,
Height
:
height
,
Height
:
height
,
},
},
...
@@ -178,8 +179,8 @@ func (b *btcdClient) onBlockConnected(hash *chainhash.Hash, height int32, time t
...
@@ -178,8 +179,8 @@ func (b *btcdClient) onBlockConnected(hash *chainhash.Hash, height int32, time t
func
(
b
*
btcdClient
)
onBlockDisconnected
(
hash
*
chainhash
.
Hash
,
height
int32
,
time
time
.
Time
)
{
func
(
b
*
btcdClient
)
onBlockDisconnected
(
hash
*
chainhash
.
Hash
,
height
int32
,
time
time
.
Time
)
{
select
{
select
{
case
b
.
enqueueNotification
<-
B
lockDisconnected
{
case
b
.
enqueueNotification
<-
b
lockDisconnected
{
BlockStamp
:
B
lockStamp
{
blockStamp
:
b
lockStamp
{
Hash
:
*
hash
,
Hash
:
*
hash
,
Height
:
height
,
Height
:
height
,
},
},
...
@@ -197,7 +198,7 @@ func (b *btcdClient) handler() {
...
@@ -197,7 +198,7 @@ func (b *btcdClient) handler() {
return
return
}
}
bs
:=
&
B
lockStamp
{
Hash
:
*
hash
,
Height
:
height
}
bs
:=
&
b
lockStamp
{
Hash
:
*
hash
,
Height
:
height
}
var
notifications
[]
interface
{}
var
notifications
[]
interface
{}
enqueue
:=
b
.
enqueueNotification
enqueue
:=
b
.
enqueueNotification
var
dequeue
chan
interface
{}
var
dequeue
chan
interface
{}
...
@@ -225,8 +226,8 @@ out:
...
@@ -225,8 +226,8 @@ out:
pingChan
=
time
.
After
(
time
.
Minute
)
pingChan
=
time
.
After
(
time
.
Minute
)
case
dequeue
<-
next
:
case
dequeue
<-
next
:
if
n
,
ok
:=
next
.
(
B
lockConnected
);
ok
{
if
n
,
ok
:=
next
.
(
b
lockConnected
);
ok
{
bs
=
&
B
lockStamp
{
bs
=
&
b
lockStamp
{
Height
:
n
.
Height
,
Height
:
n
.
Height
,
Hash
:
n
.
Hash
,
Hash
:
n
.
Hash
,
}
}
...
...
plugin/dapp/relay/cmd/relayd/relayd/btcd_test.go
View file @
7f73d32d
...
@@ -36,7 +36,7 @@ func (s *suiteBctd) SetupSuite() {
...
@@ -36,7 +36,7 @@ func (s *suiteBctd) SetupSuite() {
HTTPPostMode
:
true
,
HTTPPostMode
:
true
,
Certificates
:
certs
,
Certificates
:
certs
,
}
}
s
.
btc
,
_
=
N
ewBtcd
(
connCfg
,
reconnectAttempts
)
s
.
btc
,
_
=
n
ewBtcd
(
connCfg
,
reconnectAttempts
)
}
}
func
(
s
*
suiteBctd
)
TestGetBlockHeader
()
{
func
(
s
*
suiteBctd
)
TestGetBlockHeader
()
{
...
...
plugin/dapp/relay/cmd/relayd/relayd/btcweb.go
View file @
7f73d32d
...
@@ -22,7 +22,7 @@ type btcWeb struct {
...
@@ -22,7 +22,7 @@ type btcWeb struct {
httpClient
*
fasthttp
.
Client
httpClient
*
fasthttp
.
Client
}
}
func
N
ewBtcWeb
()
(
BtcClient
,
error
)
{
func
n
ewBtcWeb
()
(
BtcClient
,
error
)
{
b
:=
&
btcWeb
{
b
:=
&
btcWeb
{
urlRoot
:
"https://blockchain.info"
,
urlRoot
:
"https://blockchain.info"
,
httpClient
:
&
fasthttp
.
Client
{
TLSConfig
:
&
tls
.
Config
{
InsecureSkipVerify
:
true
}},
httpClient
:
&
fasthttp
.
Client
{
TLSConfig
:
&
tls
.
Config
{
InsecureSkipVerify
:
true
}},
...
@@ -46,16 +46,16 @@ func (b *btcWeb) GetBlockHeader(height uint64) (*ty.BtcHeader, error) {
...
@@ -46,16 +46,16 @@ func (b *btcWeb) GetBlockHeader(height uint64) (*ty.BtcHeader, error) {
return
block
.
BtcHeader
(),
nil
return
block
.
BtcHeader
(),
nil
}
}
func
(
b
*
btcWeb
)
getBlock
(
height
uint64
)
(
*
B
lock
,
error
)
{
func
(
b
*
btcWeb
)
getBlock
(
height
uint64
)
(
*
b
lock
,
error
)
{
if
height
<
0
{
if
height
<
0
{
return
nil
,
errors
.
New
(
"height < 0"
)
return
nil
,
errors
.
New
(
"height < 0"
)
}
}
url
:=
fmt
.
Sprintf
(
"%s/block-height/%d?format=json"
,
b
.
urlRoot
,
height
)
url
:=
fmt
.
Sprintf
(
"%s/block-height/%d?format=json"
,
b
.
urlRoot
,
height
)
data
,
err
:=
b
.
requestU
rl
(
url
)
data
,
err
:=
b
.
requestU
RL
(
url
)
if
err
!=
nil
{
if
err
!=
nil
{
return
nil
,
err
return
nil
,
err
}
}
var
blocks
=
B
locks
{}
var
blocks
=
b
locks
{}
err
=
json
.
Unmarshal
(
data
,
&
blocks
)
err
=
json
.
Unmarshal
(
data
,
&
blocks
)
if
err
!=
nil
{
if
err
!=
nil
{
return
nil
,
err
return
nil
,
err
...
@@ -66,11 +66,11 @@ func (b *btcWeb) getBlock(height uint64) (*Block, error) {
...
@@ -66,11 +66,11 @@ func (b *btcWeb) getBlock(height uint64) (*Block, error) {
func
(
b
*
btcWeb
)
GetLatestBlock
()
(
*
chainhash
.
Hash
,
uint64
,
error
)
{
func
(
b
*
btcWeb
)
GetLatestBlock
()
(
*
chainhash
.
Hash
,
uint64
,
error
)
{
url
:=
b
.
urlRoot
+
"/latestblock"
url
:=
b
.
urlRoot
+
"/latestblock"
data
,
err
:=
b
.
requestU
rl
(
url
)
data
,
err
:=
b
.
requestU
RL
(
url
)
if
err
!=
nil
{
if
err
!=
nil
{
return
nil
,
0
,
err
return
nil
,
0
,
err
}
}
var
blocks
=
L
atestBlock
{}
var
blocks
=
l
atestBlock
{}
err
=
json
.
Unmarshal
(
data
,
&
blocks
)
err
=
json
.
Unmarshal
(
data
,
&
blocks
)
if
err
!=
nil
{
if
err
!=
nil
{
return
nil
,
0
,
err
return
nil
,
0
,
err
...
@@ -94,11 +94,11 @@ func (b *btcWeb) Ping() {
...
@@ -94,11 +94,11 @@ func (b *btcWeb) Ping() {
func
(
b
*
btcWeb
)
GetTransaction
(
hash
string
)
(
*
ty
.
BtcTransaction
,
error
)
{
func
(
b
*
btcWeb
)
GetTransaction
(
hash
string
)
(
*
ty
.
BtcTransaction
,
error
)
{
url
:=
b
.
urlRoot
+
"/rawtx/"
+
hash
url
:=
b
.
urlRoot
+
"/rawtx/"
+
hash
data
,
err
:=
b
.
requestU
rl
(
url
)
data
,
err
:=
b
.
requestU
RL
(
url
)
if
err
!=
nil
{
if
err
!=
nil
{
return
nil
,
err
return
nil
,
err
}
}
var
tx
=
T
ransactionResult
{}
var
tx
=
t
ransactionResult
{}
err
=
json
.
Unmarshal
(
data
,
&
tx
)
err
=
json
.
Unmarshal
(
data
,
&
tx
)
if
err
!=
nil
{
if
err
!=
nil
{
return
nil
,
err
return
nil
,
err
...
@@ -135,7 +135,7 @@ func (b *btcWeb) GetSPV(height uint64, txHash string) (*ty.BtcSpv, error) {
...
@@ -135,7 +135,7 @@ func (b *btcWeb) GetSPV(height uint64, txHash string) (*ty.BtcSpv, error) {
return
spv
,
nil
return
spv
,
nil
}
}
func
(
b
*
btcWeb
)
requestU
rl
(
url
string
)
([]
byte
,
error
)
{
func
(
b
*
btcWeb
)
requestU
RL
(
url
string
)
([]
byte
,
error
)
{
status
,
body
,
err
:=
b
.
httpClient
.
Get
(
nil
,
url
)
status
,
body
,
err
:=
b
.
httpClient
.
Get
(
nil
,
url
)
if
err
!=
nil
{
if
err
!=
nil
{
return
nil
,
err
return
nil
,
err
...
...
plugin/dapp/relay/cmd/relayd/relayd/btcweb_test.go
View file @
7f73d32d
...
@@ -22,7 +22,7 @@ func TestRunSuiteWeb(t *testing.T) {
...
@@ -22,7 +22,7 @@ func TestRunSuiteWeb(t *testing.T) {
}
}
func
(
s
*
suiteWeb
)
SetupSuite
()
{
func
(
s
*
suiteWeb
)
SetupSuite
()
{
s
.
btc
,
_
=
N
ewBtcWeb
()
s
.
btc
,
_
=
n
ewBtcWeb
()
}
}
func
(
s
*
suiteWeb
)
TestGetBlockHeader
()
{
func
(
s
*
suiteWeb
)
TestGetBlockHeader
()
{
...
...
plugin/dapp/relay/cmd/relayd/relayd/chain33.go
View file @
7f73d32d
...
@@ -16,6 +16,7 @@ import (
...
@@ -16,6 +16,7 @@ import (
"google.golang.org/grpc"
"google.golang.org/grpc"
)
)
// Client33 to connect with chain33
type
Client33
struct
{
type
Client33
struct
{
config
*
Chain33
config
*
Chain33
isSyncing
bool
isSyncing
bool
...
@@ -25,6 +26,7 @@ type Client33 struct {
...
@@ -25,6 +26,7 @@ type Client33 struct {
closer
io
.
Closer
closer
io
.
Closer
}
}
// NewClient33 new client instance
func
NewClient33
(
cfg
*
Chain33
)
*
Client33
{
func
NewClient33
(
cfg
*
Chain33
)
*
Client33
{
conn
,
err
:=
grpc
.
Dial
(
cfg
.
Host
,
grpc
.
WithInsecure
())
conn
,
err
:=
grpc
.
Dial
(
cfg
.
Host
,
grpc
.
WithInsecure
())
if
err
!=
nil
{
if
err
!=
nil
{
...
@@ -53,7 +55,7 @@ out:
...
@@ -53,7 +55,7 @@ out:
err
:=
c
.
ping
(
ctx
)
err
:=
c
.
ping
(
ctx
)
if
err
!=
nil
{
if
err
!=
nil
{
log
.
Error
(
"heartbeat"
,
"heartbeat chain33 error: "
,
err
.
Error
(),
"reconnectAttempts: "
,
reconnectAttempts
)
log
.
Error
(
"heartbeat"
,
"heartbeat chain33 error: "
,
err
.
Error
(),
"reconnectAttempts: "
,
reconnectAttempts
)
c
.
A
utoReconnect
(
ctx
)
c
.
a
utoReconnect
(
ctx
)
reconnectAttempts
--
reconnectAttempts
--
}
else
{
}
else
{
reconnectAttempts
=
c
.
config
.
ReconnectAttempts
reconnectAttempts
=
c
.
config
.
ReconnectAttempts
...
@@ -66,6 +68,7 @@ out:
...
@@ -66,6 +68,7 @@ out:
}
}
}
}
// Start begin heartbeat to chain33
func
(
c
*
Client33
)
Start
(
ctx
context
.
Context
)
{
func
(
c
*
Client33
)
Start
(
ctx
context
.
Context
)
{
go
c
.
heartbeat
(
ctx
)
go
c
.
heartbeat
(
ctx
)
}
}
...
@@ -93,7 +96,7 @@ func (c *Client33) ping(ctx context.Context) error {
...
@@ -93,7 +96,7 @@ func (c *Client33) ping(ctx context.Context) error {
return
nil
return
nil
}
}
func
(
c
*
Client33
)
A
utoReconnect
(
ctx
context
.
Context
)
{
func
(
c
*
Client33
)
a
utoReconnect
(
ctx
context
.
Context
)
{
if
c
.
isClosed
&&
!
c
.
config
.
DisableAutoReconnect
{
if
c
.
isClosed
&&
!
c
.
config
.
DisableAutoReconnect
{
c
.
closer
.
Close
()
c
.
closer
.
Close
()
conn
,
err
:=
grpc
.
Dial
(
c
.
config
.
Host
,
grpc
.
WithInsecure
())
conn
,
err
:=
grpc
.
Dial
(
c
.
config
.
Host
,
grpc
.
WithInsecure
())
...
@@ -109,6 +112,7 @@ func (c *Client33) AutoReconnect(ctx context.Context) {
...
@@ -109,6 +112,7 @@ func (c *Client33) AutoReconnect(ctx context.Context) {
}
}
}
}
// SendTransaction send tx to chain33
func
(
c
*
Client33
)
SendTransaction
(
ctx
context
.
Context
,
in
*
types
.
Transaction
)
(
*
types
.
Reply
,
error
)
{
func
(
c
*
Client33
)
SendTransaction
(
ctx
context
.
Context
,
in
*
types
.
Transaction
)
(
*
types
.
Reply
,
error
)
{
if
c
.
isSyncing
{
if
c
.
isSyncing
{
return
nil
,
errors
.
New
(
"node is syncing"
)
return
nil
,
errors
.
New
(
"node is syncing"
)
...
@@ -116,6 +120,7 @@ func (c *Client33) SendTransaction(ctx context.Context, in *types.Transaction) (
...
@@ -116,6 +120,7 @@ func (c *Client33) SendTransaction(ctx context.Context, in *types.Transaction) (
return
c
.
Chain33Client
.
SendTransaction
(
ctx
,
in
)
return
c
.
Chain33Client
.
SendTransaction
(
ctx
,
in
)
}
}
// Close chain33 close
func
(
c
*
Client33
)
Close
()
error
{
func
(
c
*
Client33
)
Close
()
error
{
return
c
.
closer
.
Close
()
return
c
.
closer
.
Close
()
}
}
plugin/dapp/relay/cmd/relayd/relayd/config.go
View file @
7f73d32d
...
@@ -13,6 +13,7 @@ import (
...
@@ -13,6 +13,7 @@ import (
"github.com/btcsuite/btcd/rpcclient"
"github.com/btcsuite/btcd/rpcclient"
)
)
// Config relayd toml config
type
Config
struct
{
type
Config
struct
{
Title
string
Title
string
Watch
bool
Watch
bool
...
@@ -28,8 +29,9 @@ type Config struct {
...
@@ -28,8 +29,9 @@ type Config struct {
Auth
Auth
Auth
Auth
}
}
// Btcd adapt to btcd
type
Btcd
struct
{
type
Btcd
struct
{
I
d
string
I
D
string
Host
string
Host
string
Endpoint
string
Endpoint
string
User
string
User
string
...
@@ -46,12 +48,14 @@ type Btcd struct {
...
@@ -46,12 +48,14 @@ type Btcd struct {
ReconnectAttempts
int
ReconnectAttempts
int
}
}
// Auth auth key struct
type
Auth
struct
{
type
Auth
struct
{
PrivateKey
string
`json:"privateKey"`
PrivateKey
string
`json:"privateKey"`
PublicKey
string
`json:"publicKey"`
PublicKey
string
`json:"publicKey"`
Address
string
`json:"address"`
Address
string
`json:"address"`
}
}
// BitConnConfig btc connect config
func
(
b
*
Btcd
)
BitConnConfig
()
*
rpcclient
.
ConnConfig
{
func
(
b
*
Btcd
)
BitConnConfig
()
*
rpcclient
.
ConnConfig
{
conn
:=
&
rpcclient
.
ConnConfig
{}
conn
:=
&
rpcclient
.
ConnConfig
{}
conn
.
Host
=
b
.
Host
conn
.
Host
=
b
.
Host
...
@@ -74,8 +78,9 @@ func (b *Btcd) BitConnConfig() *rpcclient.ConnConfig {
...
@@ -74,8 +78,9 @@ func (b *Btcd) BitConnConfig() *rpcclient.ConnConfig {
return
conn
return
conn
}
}
// Chain33 define adapt to chain33 relay exec
type
Chain33
struct
{
type
Chain33
struct
{
I
d
string
I
D
string
Host
string
Host
string
User
string
User
string
Pass
string
Pass
string
...
@@ -83,6 +88,7 @@ type Chain33 struct {
...
@@ -83,6 +88,7 @@ type Chain33 struct {
ReconnectAttempts
int
ReconnectAttempts
int
}
}
// NewConfig create a new config
func
NewConfig
(
path
string
)
*
Config
{
func
NewConfig
(
path
string
)
*
Config
{
var
cfg
Config
var
cfg
Config
if
_
,
err
:=
toml
.
DecodeFile
(
path
,
&
cfg
);
err
!=
nil
{
if
_
,
err
:=
toml
.
DecodeFile
(
path
,
&
cfg
);
err
!=
nil
{
...
...
plugin/dapp/relay/cmd/relayd/relayd/db.go
View file @
7f73d32d
...
@@ -26,7 +26,8 @@ type relaydDB struct {
...
@@ -26,7 +26,8 @@ type relaydDB struct {
db
db
.
DB
db
db
.
DB
}
}
func
NewRelayDB
(
name
string
,
dir
string
,
cache
int32
)
*
relaydDB
{
func
newRelayDB
(
name
string
,
dir
string
,
cache
int32
)
*
relaydDB
{
d
:=
db
.
NewDB
(
name
,
"goleveldb"
,
dir
,
cache
)
d
:=
db
.
NewDB
(
name
,
"goleveldb"
,
dir
,
cache
)
return
&
relaydDB
{
d
}
return
&
relaydDB
{
d
}
}
}
...
...
plugin/dapp/relay/cmd/relayd/relayd/relayd.go
View file @
7f73d32d
...
@@ -22,6 +22,7 @@ import (
...
@@ -22,6 +22,7 @@ import (
"github.com/btcsuite/btcd/chaincfg/chainhash"
"github.com/btcsuite/btcd/chaincfg/chainhash"
)
)
// Relayd define
type
Relayd
struct
{
type
Relayd
struct
{
config
*
Config
config
*
Config
db
*
relaydDB
db
*
relaydDB
...
@@ -40,13 +41,14 @@ type Relayd struct {
...
@@ -40,13 +41,14 @@ type Relayd struct {
isResetBtcHeight
bool
isResetBtcHeight
bool
}
}
// NewRelayd create relayd instance
func
NewRelayd
(
config
*
Config
)
*
Relayd
{
func
NewRelayd
(
config
*
Config
)
*
Relayd
{
ctx
,
cancel
:=
context
.
WithCancel
(
context
.
Background
())
ctx
,
cancel
:=
context
.
WithCancel
(
context
.
Background
())
dir
,
err
:=
os
.
Getwd
()
dir
,
err
:=
os
.
Getwd
()
if
err
!=
nil
{
if
err
!=
nil
{
panic
(
err
)
panic
(
err
)
}
}
db
:=
N
ewRelayDB
(
"relayd"
,
dir
,
256
)
db
:=
n
ewRelayDB
(
"relayd"
,
dir
,
256
)
var
firstHeight
int
var
firstHeight
int
var
isResetBtcHeight
bool
var
isResetBtcHeight
bool
...
@@ -84,9 +86,9 @@ func NewRelayd(config *Config) *Relayd {
...
@@ -84,9 +86,9 @@ func NewRelayd(config *Config) *Relayd {
client33
:=
NewClient33
(
&
config
.
Chain33
)
client33
:=
NewClient33
(
&
config
.
Chain33
)
var
btc
BtcClient
var
btc
BtcClient
if
config
.
BtcdOrWeb
==
0
{
if
config
.
BtcdOrWeb
==
0
{
btc
,
err
=
N
ewBtcd
(
config
.
Btcd
.
BitConnConfig
(),
config
.
Btcd
.
ReconnectAttempts
)
btc
,
err
=
n
ewBtcd
(
config
.
Btcd
.
BitConnConfig
(),
config
.
Btcd
.
ReconnectAttempts
)
}
else
{
}
else
{
btc
,
err
=
N
ewBtcWeb
()
btc
,
err
=
n
ewBtcWeb
()
}
}
if
err
!=
nil
{
if
err
!=
nil
{
panic
(
err
)
panic
(
err
)
...
@@ -140,11 +142,13 @@ func NewRelayd(config *Config) *Relayd {
...
@@ -140,11 +142,13 @@ func NewRelayd(config *Config) *Relayd {
}
}
}
}
// Close relayd close
func
(
r
*
Relayd
)
Close
()
{
func
(
r
*
Relayd
)
Close
()
{
r
.
client33
.
Close
()
r
.
client33
.
Close
()
r
.
cancel
()
r
.
cancel
()
}
}
// Start relayd start up
func
(
r
*
Relayd
)
Start
()
{
func
(
r
*
Relayd
)
Start
()
{
r
.
btcClient
.
Start
()
r
.
btcClient
.
Start
()
r
.
client33
.
Start
(
r
.
ctx
)
r
.
client33
.
Start
(
r
.
ctx
)
...
...
plugin/dapp/relay/cmd/relayd/relayd/type.go
View file @
7f73d32d
...
@@ -14,7 +14,7 @@ var (
...
@@ -14,7 +14,7 @@ var (
privateKey
=
[]
byte
(
"privateKey-relayd"
)
privateKey
=
[]
byte
(
"privateKey-relayd"
)
)
)
type
L
atestBlock
struct
{
type
l
atestBlock
struct
{
Hash
string
`json:"hash"`
Hash
string
`json:"hash"`
Time
int64
`json:"time"`
Time
int64
`json:"time"`
BlockIndex
uint64
`json:"block_index"`
BlockIndex
uint64
`json:"block_index"`
...
@@ -22,7 +22,7 @@ type LatestBlock struct {
...
@@ -22,7 +22,7 @@ type LatestBlock struct {
TxIndexes
[]
uint64
`json:"txIndexes"`
TxIndexes
[]
uint64
`json:"txIndexes"`
}
}
type
H
eader
struct
{
type
h
eader
struct
{
Hash
string
`json:"hash"`
Hash
string
`json:"hash"`
Ver
uint64
`json:"ver"`
Ver
uint64
`json:"ver"`
PrevBlock
string
`json:"prev_block"`
PrevBlock
string
`json:"prev_block"`
...
@@ -40,7 +40,7 @@ type Header struct {
...
@@ -40,7 +40,7 @@ type Header struct {
RelayedBy
string
`json:"relayed_by"`
RelayedBy
string
`json:"relayed_by"`
}
}
func
(
b
*
B
lock
)
BtcHeader
()
*
ty
.
BtcHeader
{
func
(
b
*
b
lock
)
BtcHeader
()
*
ty
.
BtcHeader
{
return
&
ty
.
BtcHeader
{
return
&
ty
.
BtcHeader
{
Hash
:
b
.
Hash
,
Hash
:
b
.
Hash
,
Height
:
b
.
Height
,
Height
:
b
.
Height
,
...
@@ -53,8 +53,8 @@ func (b *Block) BtcHeader() *ty.BtcHeader {
...
@@ -53,8 +53,8 @@ func (b *Block) BtcHeader() *ty.BtcHeader {
}
}
}
}
type
B
lock
struct
{
type
b
lock
struct
{
//
H
eader
//
h
eader
Hash
string
`json:"hash"`
Hash
string
`json:"hash"`
Ver
uint64
`json:"ver"`
Ver
uint64
`json:"ver"`
PrevBlock
string
`json:"prev_block"`
PrevBlock
string
`json:"prev_block"`
...
@@ -70,14 +70,14 @@ type Block struct {
...
@@ -70,14 +70,14 @@ type Block struct {
Height
uint64
`json:"height"`
Height
uint64
`json:"height"`
ReceivedTime
int64
`json:"received_time"`
ReceivedTime
int64
`json:"received_time"`
RelayedBy
string
`json:"relayed_by"`
RelayedBy
string
`json:"relayed_by"`
Tx
[]
T
ransactionDetails
`json:"tx"`
Tx
[]
t
ransactionDetails
`json:"tx"`
}
}
type
T
ransactionDetails
struct
{
type
t
ransactionDetails
struct
{
LockTime
int64
`json:"lock_time"`
LockTime
int64
`json:"lock_time"`
Ver
uint64
`json:"ver"`
Ver
uint64
`json:"ver"`
Size
uint64
`json:"size"`
Size
uint64
`json:"size"`
Inputs
[]
T
xInput
`json:"inputs"`
Inputs
[]
t
xInput
`json:"inputs"`
Weight
int64
`json:"weight"`
Weight
int64
`json:"weight"`
Time
int64
`json:"time"`
Time
int64
`json:"time"`
TxIndex
uint64
`json:"tx_index"`
TxIndex
uint64
`json:"tx_index"`
...
@@ -85,16 +85,16 @@ type TransactionDetails struct {
...
@@ -85,16 +85,16 @@ type TransactionDetails struct {
Hash
string
`json:"hash"`
Hash
string
`json:"hash"`
VoutSz
uint64
`json:"vout_sz"`
VoutSz
uint64
`json:"vout_sz"`
RelayedBy
string
`json:"relayed_by"`
RelayedBy
string
`json:"relayed_by"`
Outs
[]
T
xOut
`json:"out"`
Outs
[]
t
xOut
`json:"out"`
}
}
type
T
xInput
struct
{
type
t
xInput
struct
{
Sequence
int64
`json:"sequence"`
Sequence
int64
`json:"sequence"`
Witness
string
`json:"witness"`
Witness
string
`json:"witness"`
Script
string
`json:"script"`
Script
string
`json:"script"`
}
}
type
T
xOut
struct
{
type
t
xOut
struct
{
Spent
bool
`json:"spent"`
Spent
bool
`json:"spent"`
TxIndex
uint64
`json:"tx_index"`
TxIndex
uint64
`json:"tx_index"`
Type
int
`json:"type"`
Type
int
`json:"type"`
...
@@ -104,17 +104,17 @@ type TxOut struct {
...
@@ -104,17 +104,17 @@ type TxOut struct {
Script
string
`json:"script"`
Script
string
`json:"script"`
}
}
type
B
locks
struct
{
type
b
locks
struct
{
Blocks
[]
B
lock
`json:"blocks"`
Blocks
[]
b
lock
`json:"blocks"`
}
}
type
T
ransactionResult
struct
{
type
t
ransactionResult
struct
{
Ver
uint
`json:"ver"`
Ver
uint
`json:"ver"`
Inputs
[]
I
nputs
`json:"inputs"`
Inputs
[]
i
nputs
`json:"inputs"`
Weight
int64
`json:"weight"`
Weight
int64
`json:"weight"`
BlockHeight
uint64
`json:"block_height"`
BlockHeight
uint64
`json:"block_height"`
RelayedBy
string
`json:"relayed_by"`
RelayedBy
string
`json:"relayed_by"`
Out
[]
T
xOut
`json:"out"`
Out
[]
t
xOut
`json:"out"`
LockTime
int64
`json:"lock_time"`
LockTime
int64
`json:"lock_time"`
Size
uint64
`json:"size"`
Size
uint64
`json:"size"`
DoubleSpend
bool
`json:"double_spend"`
DoubleSpend
bool
`json:"double_spend"`
...
@@ -125,14 +125,14 @@ type TransactionResult struct {
...
@@ -125,14 +125,14 @@ type TransactionResult struct {
VoutSz
uint64
`json:"vout_sz"`
VoutSz
uint64
`json:"vout_sz"`
}
}
type
I
nputs
struct
{
type
i
nputs
struct
{
Sequence
uint
`json:"sequence"`
Sequence
uint
`json:"sequence"`
Witness
string
`json:"witness"`
Witness
string
`json:"witness"`
PrevOut
T
xOut
`json:"prev_out"`
PrevOut
t
xOut
`json:"prev_out"`
Script
string
`json:"script"`
Script
string
`json:"script"`
}
}
func
(
t
*
T
ransactionResult
)
BtcTransaction
()
*
ty
.
BtcTransaction
{
func
(
t
*
t
ransactionResult
)
BtcTransaction
()
*
ty
.
BtcTransaction
{
btcTx
:=
&
ty
.
BtcTransaction
{}
btcTx
:=
&
ty
.
BtcTransaction
{}
btcTx
.
Hash
=
t
.
Hash
btcTx
.
Hash
=
t
.
Hash
btcTx
.
Time
=
t
.
Time
btcTx
.
Time
=
t
.
Time
...
...
plugin/dapp/relay/commands/relay.go
View file @
7f73d32d
...
@@ -17,6 +17,7 @@ import (
...
@@ -17,6 +17,7 @@ import (
"github.com/spf13/cobra"
"github.com/spf13/cobra"
)
)
// RelayCmd relay exec cmd register
func
RelayCmd
()
*
cobra
.
Command
{
func
RelayCmd
()
*
cobra
.
Command
{
cmd
:=
&
cobra
.
Command
{
cmd
:=
&
cobra
.
Command
{
Use
:
"relay"
,
Use
:
"relay"
,
...
@@ -41,6 +42,7 @@ func RelayCmd() *cobra.Command {
...
@@ -41,6 +42,7 @@ func RelayCmd() *cobra.Command {
return
cmd
return
cmd
}
}
// ShowBTCHeadHeightListCmd show btc head height list cmd
func
ShowBTCHeadHeightListCmd
()
*
cobra
.
Command
{
func
ShowBTCHeadHeightListCmd
()
*
cobra
.
Command
{
cmd
:=
&
cobra
.
Command
{
cmd
:=
&
cobra
.
Command
{
Use
:
"btc_height_list"
,
Use
:
"btc_height_list"
,
...
@@ -94,6 +96,7 @@ func showBtcHeadHeightList(cmd *cobra.Command, args []string) {
...
@@ -94,6 +96,7 @@ func showBtcHeadHeightList(cmd *cobra.Command, args []string) {
parseRelayBtcHeadHeightList
(
res
)
parseRelayBtcHeadHeightList
(
res
)
}
}
// ShowBTCHeadCurHeightCmd show BTC head current height in chain33
func
ShowBTCHeadCurHeightCmd
()
*
cobra
.
Command
{
func
ShowBTCHeadCurHeightCmd
()
*
cobra
.
Command
{
cmd
:=
&
cobra
.
Command
{
cmd
:=
&
cobra
.
Command
{
Use
:
"btc_cur_height"
,
Use
:
"btc_cur_height"
,
...
@@ -137,6 +140,7 @@ func showBtcHeadCurHeight(cmd *cobra.Command, args []string) {
...
@@ -137,6 +140,7 @@ func showBtcHeadCurHeight(cmd *cobra.Command, args []string) {
parseRelayBtcCurHeight
(
res
)
parseRelayBtcCurHeight
(
res
)
}
}
// ShowOnesCreateRelayOrdersCmd show ones created orders
func
ShowOnesCreateRelayOrdersCmd
()
*
cobra
.
Command
{
func
ShowOnesCreateRelayOrdersCmd
()
*
cobra
.
Command
{
cmd
:=
&
cobra
.
Command
{
cmd
:=
&
cobra
.
Command
{
Use
:
"creator_orders"
,
Use
:
"creator_orders"
,
...
@@ -187,6 +191,7 @@ func showOnesRelayOrders(cmd *cobra.Command, args []string) {
...
@@ -187,6 +191,7 @@ func showOnesRelayOrders(cmd *cobra.Command, args []string) {
parseRelayOrders
(
res
)
parseRelayOrders
(
res
)
}
}
// ShowOnesAcceptRelayOrdersCmd show ones accepted orders
func
ShowOnesAcceptRelayOrdersCmd
()
*
cobra
.
Command
{
func
ShowOnesAcceptRelayOrdersCmd
()
*
cobra
.
Command
{
cmd
:=
&
cobra
.
Command
{
cmd
:=
&
cobra
.
Command
{
Use
:
"acceptor_orders"
,
Use
:
"acceptor_orders"
,
...
@@ -236,6 +241,7 @@ func showRelayAcceptOrders(cmd *cobra.Command, args []string) {
...
@@ -236,6 +241,7 @@ func showRelayAcceptOrders(cmd *cobra.Command, args []string) {
parseRelayOrders
(
res
)
parseRelayOrders
(
res
)
}
}
// ShowOnesStatusOrdersCmd show ones order's status
func
ShowOnesStatusOrdersCmd
()
*
cobra
.
Command
{
func
ShowOnesStatusOrdersCmd
()
*
cobra
.
Command
{
cmd
:=
&
cobra
.
Command
{
cmd
:=
&
cobra
.
Command
{
Use
:
"status"
,
Use
:
"status"
,
...
@@ -292,8 +298,8 @@ func showCoinRelayOrders(cmd *cobra.Command, args []string) {
...
@@ -292,8 +298,8 @@ func showCoinRelayOrders(cmd *cobra.Command, args []string) {
func
parseRelayOrders
(
res
ty
.
ReplyRelayOrders
)
{
func
parseRelayOrders
(
res
ty
.
ReplyRelayOrders
)
{
for
_
,
order
:=
range
res
.
Relayorders
{
for
_
,
order
:=
range
res
.
Relayorders
{
var
show
R
elayOrder2Show
var
show
r
elayOrder2Show
show
.
OrderI
d
=
order
.
Id
show
.
OrderI
D
=
order
.
Id
show
.
Status
=
order
.
Status
.
String
()
show
.
Status
=
order
.
Status
.
String
()
show
.
Creator
=
order
.
CreaterAddr
show
.
Creator
=
order
.
CreaterAddr
show
.
CoinOperation
=
ty
.
RelayOrderOperation
[
order
.
CoinOperation
]
show
.
CoinOperation
=
ty
.
RelayOrderOperation
[
order
.
CoinOperation
]
...
@@ -334,6 +340,7 @@ func parseRelayBtcCurHeight(res ty.ReplayRelayQryBTCHeadHeight) {
...
@@ -334,6 +340,7 @@ func parseRelayBtcCurHeight(res ty.ReplayRelayQryBTCHeadHeight) {
fmt
.
Println
(
string
(
data
))
fmt
.
Println
(
string
(
data
))
}
}
// CreateRawRelayOrderTxCmd create relay order, buy or sell
func
CreateRawRelayOrderTxCmd
()
*
cobra
.
Command
{
func
CreateRawRelayOrderTxCmd
()
*
cobra
.
Command
{
cmd
:=
&
cobra
.
Command
{
cmd
:=
&
cobra
.
Command
{
Use
:
"create"
,
Use
:
"create"
,
...
@@ -395,6 +402,7 @@ func relayOrder(cmd *cobra.Command, args []string) {
...
@@ -395,6 +402,7 @@ func relayOrder(cmd *cobra.Command, args []string) {
ctx
.
RunWithoutMarshal
()
ctx
.
RunWithoutMarshal
()
}
}
// CreateRawRelayAcceptTxCmd accept order
func
CreateRawRelayAcceptTxCmd
()
*
cobra
.
Command
{
func
CreateRawRelayAcceptTxCmd
()
*
cobra
.
Command
{
cmd
:=
&
cobra
.
Command
{
cmd
:=
&
cobra
.
Command
{
Use
:
"accept"
,
Use
:
"accept"
,
...
@@ -437,6 +445,7 @@ func relayAccept(cmd *cobra.Command, args []string) {
...
@@ -437,6 +445,7 @@ func relayAccept(cmd *cobra.Command, args []string) {
ctx
.
RunWithoutMarshal
()
ctx
.
RunWithoutMarshal
()
}
}
// CreateRawRevokeTxCmd revoke order
func
CreateRawRevokeTxCmd
()
*
cobra
.
Command
{
func
CreateRawRevokeTxCmd
()
*
cobra
.
Command
{
cmd
:=
&
cobra
.
Command
{
cmd
:=
&
cobra
.
Command
{
Use
:
"revoke"
,
Use
:
"revoke"
,
...
@@ -476,6 +485,7 @@ func relayRevoke(cmd *cobra.Command, args []string) {
...
@@ -476,6 +485,7 @@ func relayRevoke(cmd *cobra.Command, args []string) {
ctx
.
RunWithoutMarshal
()
ctx
.
RunWithoutMarshal
()
}
}
// CreateRawRelayConfirmTxCmd confirm tx
func
CreateRawRelayConfirmTxCmd
()
*
cobra
.
Command
{
func
CreateRawRelayConfirmTxCmd
()
*
cobra
.
Command
{
cmd
:=
&
cobra
.
Command
{
cmd
:=
&
cobra
.
Command
{
Use
:
"confirm"
,
Use
:
"confirm"
,
...
@@ -498,11 +508,11 @@ func addConfirmFlags(cmd *cobra.Command) {
...
@@ -498,11 +508,11 @@ func addConfirmFlags(cmd *cobra.Command) {
func
relayConfirm
(
cmd
*
cobra
.
Command
,
args
[]
string
)
{
func
relayConfirm
(
cmd
*
cobra
.
Command
,
args
[]
string
)
{
rpcLaddr
,
_
:=
cmd
.
Flags
()
.
GetString
(
"rpc_laddr"
)
rpcLaddr
,
_
:=
cmd
.
Flags
()
.
GetString
(
"rpc_laddr"
)
orderI
d
,
_
:=
cmd
.
Flags
()
.
GetString
(
"order_id"
)
orderI
D
,
_
:=
cmd
.
Flags
()
.
GetString
(
"order_id"
)
txHash
,
_
:=
cmd
.
Flags
()
.
GetString
(
"tx_hash"
)
txHash
,
_
:=
cmd
.
Flags
()
.
GetString
(
"tx_hash"
)
params
:=
&
ty
.
RelayConfirmTx
{
params
:=
&
ty
.
RelayConfirmTx
{
OrderId
:
orderI
d
,
OrderId
:
orderI
D
,
TxHash
:
txHash
,
TxHash
:
txHash
,
}
}
var
res
string
var
res
string
...
@@ -510,6 +520,7 @@ func relayConfirm(cmd *cobra.Command, args []string) {
...
@@ -510,6 +520,7 @@ func relayConfirm(cmd *cobra.Command, args []string) {
ctx
.
RunWithoutMarshal
()
ctx
.
RunWithoutMarshal
()
}
}
// CreateRawRelayBtcHeaderCmd save btc header from cli
func
CreateRawRelayBtcHeaderCmd
()
*
cobra
.
Command
{
func
CreateRawRelayBtcHeaderCmd
()
*
cobra
.
Command
{
cmd
:=
&
cobra
.
Command
{
cmd
:=
&
cobra
.
Command
{
Use
:
"save_header"
,
Use
:
"save_header"
,
...
@@ -559,6 +570,7 @@ func relaySaveBtcHead(cmd *cobra.Command, args []string) {
...
@@ -559,6 +570,7 @@ func relaySaveBtcHead(cmd *cobra.Command, args []string) {
ctx
.
RunWithoutMarshal
()
ctx
.
RunWithoutMarshal
()
}
}
// CreateRawRelayVerifyBTCTxCmd verify btc tx from cli
func
CreateRawRelayVerifyBTCTxCmd
()
*
cobra
.
Command
{
func
CreateRawRelayVerifyBTCTxCmd
()
*
cobra
.
Command
{
cmd
:=
&
cobra
.
Command
{
cmd
:=
&
cobra
.
Command
{
Use
:
"verify"
,
Use
:
"verify"
,
...
...
plugin/dapp/relay/commands/types.go
View file @
7f73d32d
...
@@ -4,8 +4,8 @@
...
@@ -4,8 +4,8 @@
package
commands
package
commands
type
R
elayOrder2Show
struct
{
type
r
elayOrder2Show
struct
{
OrderI
d
string
`json:"orderid"`
OrderI
D
string
`json:"orderid"`
Status
string
`json:"status"`
Status
string
`json:"status"`
Creator
string
`json:"address"`
Creator
string
`json:"address"`
Amount
string
`json:"amount"`
Amount
string
`json:"amount"`
...
...
plugin/dapp/relay/executor/relay.go
View file @
7f73d32d
...
@@ -22,10 +22,12 @@ func init() {
...
@@ -22,10 +22,12 @@ func init() {
ety
.
InitFuncList
(
types
.
ListMethod
(
&
relay
{}))
ety
.
InitFuncList
(
types
.
ListMethod
(
&
relay
{}))
}
}
// Init relay register driver
func
Init
(
name
string
,
sub
[]
byte
)
{
func
Init
(
name
string
,
sub
[]
byte
)
{
drivers
.
Register
(
GetName
(),
newRelay
,
types
.
GetDappFork
(
driverName
,
"Enable"
))
//TODO: ForkV18Relay
drivers
.
Register
(
GetName
(),
newRelay
,
types
.
GetDappFork
(
driverName
,
"Enable"
))
//TODO: ForkV18Relay
}
}
// GetName relay get driver name
func
GetName
()
string
{
func
GetName
()
string
{
return
newRelay
()
.
GetName
()
return
newRelay
()
.
GetName
()
}
}
...
@@ -45,7 +47,7 @@ func (r *relay) GetDriverName() string {
...
@@ -45,7 +47,7 @@ func (r *relay) GetDriverName() string {
return
driverName
return
driverName
}
}
func
(
c
*
relay
)
GetPayloadValue
()
types
.
Message
{
func
(
r
*
relay
)
GetPayloadValue
()
types
.
Message
{
return
&
ty
.
RelayAction
{}
return
&
ty
.
RelayAction
{}
}
}
...
@@ -119,16 +121,16 @@ func (r *relay) GetSellOrder(prefixs [][]byte) (types.Message, error) {
...
@@ -119,16 +121,16 @@ func (r *relay) GetSellOrder(prefixs [][]byte) (types.Message, error) {
}
}
func
(
r
*
relay
)
getRelayOrderReply
(
OrderI
d
s
[][]
byte
)
(
types
.
Message
,
error
)
{
func
(
r
*
relay
)
getRelayOrderReply
(
OrderI
D
s
[][]
byte
)
(
types
.
Message
,
error
)
{
OrderId
Got
:=
make
(
map
[
string
]
bool
)
orderID
Got
:=
make
(
map
[
string
]
bool
)
var
reply
ty
.
ReplyRelayOrders
var
reply
ty
.
ReplyRelayOrders
for
_
,
OrderId
:=
range
OrderId
s
{
for
_
,
orderID
:=
range
OrderID
s
{
if
!
OrderIdGot
[
string
(
OrderId
)]
{
if
!
orderIDGot
[
string
(
orderID
)]
{
if
order
,
err
:=
r
.
getSellOrderFromDb
(
OrderId
);
err
==
nil
{
if
order
,
err
:=
r
.
getSellOrderFromDb
(
orderID
);
err
==
nil
{
reply
.
Relayorders
=
insertOrderDescending
(
order
,
reply
.
Relayorders
)
reply
.
Relayorders
=
insertOrderDescending
(
order
,
reply
.
Relayorders
)
}
}
OrderIdGot
[
string
(
OrderId
)]
=
true
orderIDGot
[
string
(
orderID
)]
=
true
}
}
}
}
return
&
reply
,
nil
return
&
reply
,
nil
...
@@ -157,8 +159,8 @@ func insertOrderDescending(toBeInserted *ty.RelayOrder, orders []*ty.RelayOrder)
...
@@ -157,8 +159,8 @@ func insertOrderDescending(toBeInserted *ty.RelayOrder, orders []*ty.RelayOrder)
return
orders
return
orders
}
}
func
(
r
*
relay
)
getSellOrderFromDb
(
OrderI
d
[]
byte
)
(
*
ty
.
RelayOrder
,
error
)
{
func
(
r
*
relay
)
getSellOrderFromDb
(
OrderI
D
[]
byte
)
(
*
ty
.
RelayOrder
,
error
)
{
value
,
err
:=
r
.
GetStateDB
()
.
Get
(
OrderI
d
)
value
,
err
:=
r
.
GetStateDB
()
.
Get
(
OrderI
D
)
if
err
!=
nil
{
if
err
!=
nil
{
return
nil
,
err
return
nil
,
err
}
}
...
@@ -177,8 +179,8 @@ func (r *relay) getBTCHeaderFromDb(hash []byte) (*ty.BtcHeader, error) {
...
@@ -177,8 +179,8 @@ func (r *relay) getBTCHeaderFromDb(hash []byte) (*ty.BtcHeader, error) {
return
&
header
,
nil
return
&
header
,
nil
}
}
func
(
r
*
relay
)
getOrderKv
(
OrderI
d
[]
byte
,
ty
int32
)
[]
*
types
.
KeyValue
{
func
(
r
*
relay
)
getOrderKv
(
OrderI
D
[]
byte
,
ty
int32
)
[]
*
types
.
KeyValue
{
order
,
_
:=
r
.
getSellOrderFromDb
(
OrderI
d
)
order
,
_
:=
r
.
getSellOrderFromDb
(
OrderI
D
)
var
kv
[]
*
types
.
KeyValue
var
kv
[]
*
types
.
KeyValue
kv
=
deleteCreateOrderKeyValue
(
kv
,
order
,
int32
(
order
.
PreStatus
))
kv
=
deleteCreateOrderKeyValue
(
kv
,
order
,
int32
(
order
.
PreStatus
))
...
@@ -187,8 +189,8 @@ func (r *relay) getOrderKv(OrderId []byte, ty int32) []*types.KeyValue {
...
@@ -187,8 +189,8 @@ func (r *relay) getOrderKv(OrderId []byte, ty int32) []*types.KeyValue {
return
kv
return
kv
}
}
func
(
r
*
relay
)
getDeleteOrderKv
(
OrderI
d
[]
byte
,
ty
int32
)
[]
*
types
.
KeyValue
{
func
(
r
*
relay
)
getDeleteOrderKv
(
OrderI
D
[]
byte
,
ty
int32
)
[]
*
types
.
KeyValue
{
order
,
_
:=
r
.
getSellOrderFromDb
(
OrderI
d
)
order
,
_
:=
r
.
getSellOrderFromDb
(
OrderI
D
)
var
kv
[]
*
types
.
KeyValue
var
kv
[]
*
types
.
KeyValue
kv
=
deleteCreateOrderKeyValue
(
kv
,
order
,
int32
(
order
.
Status
))
kv
=
deleteCreateOrderKeyValue
(
kv
,
order
,
int32
(
order
.
Status
))
kv
=
getCreateOrderKeyValue
(
kv
,
order
,
int32
(
order
.
PreStatus
))
kv
=
getCreateOrderKeyValue
(
kv
,
order
,
int32
(
order
.
PreStatus
))
...
@@ -197,23 +199,23 @@ func (r *relay) getDeleteOrderKv(OrderId []byte, ty int32) []*types.KeyValue {
...
@@ -197,23 +199,23 @@ func (r *relay) getDeleteOrderKv(OrderId []byte, ty int32) []*types.KeyValue {
}
}
func
getCreateOrderKeyValue
(
kv
[]
*
types
.
KeyValue
,
order
*
ty
.
RelayOrder
,
status
int32
)
[]
*
types
.
KeyValue
{
func
getCreateOrderKeyValue
(
kv
[]
*
types
.
KeyValue
,
order
*
ty
.
RelayOrder
,
status
int32
)
[]
*
types
.
KeyValue
{
OrderId
:=
[]
byte
(
order
.
Id
)
orderID
:=
[]
byte
(
order
.
Id
)
key
:=
calcOrderKeyStatus
(
order
,
status
)
key
:=
calcOrderKeyStatus
(
order
,
status
)
kv
=
append
(
kv
,
&
types
.
KeyValue
{
Key
:
key
,
Value
:
OrderId
})
kv
=
append
(
kv
,
&
types
.
KeyValue
{
Key
:
key
,
Value
:
orderID
})
key
=
calcOrderKeyCoin
(
order
,
status
)
key
=
calcOrderKeyCoin
(
order
,
status
)
kv
=
append
(
kv
,
&
types
.
KeyValue
{
Key
:
key
,
Value
:
OrderId
})
kv
=
append
(
kv
,
&
types
.
KeyValue
{
Key
:
key
,
Value
:
orderID
})
key
=
calcOrderKeyAddrStatus
(
order
,
status
)
key
=
calcOrderKeyAddrStatus
(
order
,
status
)
kv
=
append
(
kv
,
&
types
.
KeyValue
{
Key
:
key
,
Value
:
OrderId
})
kv
=
append
(
kv
,
&
types
.
KeyValue
{
Key
:
key
,
Value
:
orderID
})
key
=
calcOrderKeyAddrCoin
(
order
,
status
)
key
=
calcOrderKeyAddrCoin
(
order
,
status
)
kv
=
append
(
kv
,
&
types
.
KeyValue
{
Key
:
key
,
Value
:
OrderId
})
kv
=
append
(
kv
,
&
types
.
KeyValue
{
Key
:
key
,
Value
:
orderID
})
key
=
calcAcceptKeyAddr
(
order
,
status
)
key
=
calcAcceptKeyAddr
(
order
,
status
)
if
key
!=
nil
{
if
key
!=
nil
{
kv
=
append
(
kv
,
&
types
.
KeyValue
{
Key
:
key
,
Value
:
OrderId
})
kv
=
append
(
kv
,
&
types
.
KeyValue
{
Key
:
key
,
Value
:
orderID
})
}
}
return
kv
return
kv
...
@@ -223,20 +225,20 @@ func getCreateOrderKeyValue(kv []*types.KeyValue, order *ty.RelayOrder, status i
...
@@ -223,20 +225,20 @@ func getCreateOrderKeyValue(kv []*types.KeyValue, order *ty.RelayOrder, status i
func
deleteCreateOrderKeyValue
(
kv
[]
*
types
.
KeyValue
,
order
*
ty
.
RelayOrder
,
status
int32
)
[]
*
types
.
KeyValue
{
func
deleteCreateOrderKeyValue
(
kv
[]
*
types
.
KeyValue
,
order
*
ty
.
RelayOrder
,
status
int32
)
[]
*
types
.
KeyValue
{
key
:=
calcOrderKeyStatus
(
order
,
status
)
key
:=
calcOrderKeyStatus
(
order
,
status
)
kv
=
append
(
kv
,
&
types
.
KeyValue
{
key
,
nil
})
kv
=
append
(
kv
,
&
types
.
KeyValue
{
Key
:
key
,
Value
:
nil
})
key
=
calcOrderKeyCoin
(
order
,
status
)
key
=
calcOrderKeyCoin
(
order
,
status
)
kv
=
append
(
kv
,
&
types
.
KeyValue
{
key
,
nil
})
kv
=
append
(
kv
,
&
types
.
KeyValue
{
Key
:
key
,
Value
:
nil
})
key
=
calcOrderKeyAddrStatus
(
order
,
status
)
key
=
calcOrderKeyAddrStatus
(
order
,
status
)
kv
=
append
(
kv
,
&
types
.
KeyValue
{
key
,
nil
})
kv
=
append
(
kv
,
&
types
.
KeyValue
{
Key
:
key
,
Value
:
nil
})
key
=
calcOrderKeyAddrCoin
(
order
,
status
)
key
=
calcOrderKeyAddrCoin
(
order
,
status
)
kv
=
append
(
kv
,
&
types
.
KeyValue
{
key
,
nil
})
kv
=
append
(
kv
,
&
types
.
KeyValue
{
Key
:
key
,
Value
:
nil
})
key
=
calcAcceptKeyAddr
(
order
,
status
)
key
=
calcAcceptKeyAddr
(
order
,
status
)
if
key
!=
nil
{
if
key
!=
nil
{
kv
=
append
(
kv
,
&
types
.
KeyValue
{
key
,
nil
})
kv
=
append
(
kv
,
&
types
.
KeyValue
{
Key
:
key
,
Value
:
nil
})
}
}
return
kv
return
kv
...
...
plugin/dapp/relay/executor/relay_test.go
View file @
7f73d32d
...
@@ -30,7 +30,7 @@ type suiteRelay struct {
...
@@ -30,7 +30,7 @@ type suiteRelay struct {
kvdb
*
mocks
.
KVDB
kvdb
*
mocks
.
KVDB
relay
*
relay
relay
*
relay
addrRelay
string
addrRelay
string
orderI
d
string
orderI
D
string
//relayDb *relayDB
//relayDb *relayDB
}
}
...
@@ -92,7 +92,7 @@ func (s *suiteRelay) testExecLocal(tx *types.Transaction, receipt *types.Receipt
...
@@ -92,7 +92,7 @@ func (s *suiteRelay) testExecLocal(tx *types.Transaction, receipt *types.Receipt
set
,
err
:=
s
.
relay
.
ExecLocal
(
tx
,
rData
,
0
)
set
,
err
:=
s
.
relay
.
ExecLocal
(
tx
,
rData
,
0
)
s
.
Nil
(
err
)
s
.
Nil
(
err
)
order
,
_
:=
s
.
relay
.
getSellOrderFromDb
([]
byte
(
s
.
orderI
d
))
order
,
_
:=
s
.
relay
.
getSellOrderFromDb
([]
byte
(
s
.
orderI
D
))
var
kv
[]
*
types
.
KeyValue
var
kv
[]
*
types
.
KeyValue
kv
=
deleteCreateOrderKeyValue
(
kv
,
order
,
int32
(
order
.
PreStatus
))
kv
=
deleteCreateOrderKeyValue
(
kv
,
order
,
int32
(
order
.
PreStatus
))
kv
=
getCreateOrderKeyValue
(
kv
,
order
,
int32
(
order
.
Status
))
kv
=
getCreateOrderKeyValue
(
kv
,
order
,
int32
(
order
.
Status
))
...
@@ -109,7 +109,7 @@ func (s *suiteRelay) testExecDelLocal(tx *types.Transaction, receipt *types.Rece
...
@@ -109,7 +109,7 @@ func (s *suiteRelay) testExecDelLocal(tx *types.Transaction, receipt *types.Rece
set
,
err
:=
s
.
relay
.
ExecDelLocal
(
tx
,
rData
,
0
)
set
,
err
:=
s
.
relay
.
ExecDelLocal
(
tx
,
rData
,
0
)
s
.
Nil
(
err
)
s
.
Nil
(
err
)
order
,
_
:=
s
.
relay
.
getSellOrderFromDb
([]
byte
(
s
.
orderI
d
))
order
,
_
:=
s
.
relay
.
getSellOrderFromDb
([]
byte
(
s
.
orderI
D
))
var
kv
[]
*
types
.
KeyValue
var
kv
[]
*
types
.
KeyValue
kv
=
deleteCreateOrderKeyValue
(
kv
,
order
,
int32
(
order
.
Status
))
kv
=
deleteCreateOrderKeyValue
(
kv
,
order
,
int32
(
order
.
Status
))
kv
=
getCreateOrderKeyValue
(
kv
,
order
,
int32
(
order
.
PreStatus
))
kv
=
getCreateOrderKeyValue
(
kv
,
order
,
int32
(
order
.
PreStatus
))
...
@@ -129,7 +129,7 @@ func (s *suiteRelay) TestExec_1() {
...
@@ -129,7 +129,7 @@ func (s *suiteRelay) TestExec_1() {
sell
:=
&
ty
.
RelayAction
{
sell
:=
&
ty
.
RelayAction
{
Ty
:
ty
.
RelayActionCreate
,
Ty
:
ty
.
RelayActionCreate
,
Value
:
&
ty
.
RelayAction_Create
{
order
},
Value
:
&
ty
.
RelayAction_Create
{
Create
:
order
},
}
}
tx
:=
&
types
.
Transaction
{}
tx
:=
&
types
.
Transaction
{}
...
@@ -140,7 +140,7 @@ func (s *suiteRelay) TestExec_1() {
...
@@ -140,7 +140,7 @@ func (s *suiteRelay) TestExec_1() {
tx
.
Sign
(
types
.
SECP256K1
,
privFrom
)
tx
.
Sign
(
types
.
SECP256K1
,
privFrom
)
s
.
relay
.
SetEnv
(
10
,
1000
,
1
)
s
.
relay
.
SetEnv
(
10
,
1000
,
1
)
heightBytes
:=
types
.
Encode
(
&
types
.
Int64
{
int64
(
10
)})
heightBytes
:=
types
.
Encode
(
&
types
.
Int64
{
Data
:
int64
(
10
)})
s
.
kvdb
.
On
(
"Get"
,
mock
.
Anything
)
.
Return
(
heightBytes
,
nil
)
.
Once
()
s
.
kvdb
.
On
(
"Get"
,
mock
.
Anything
)
.
Return
(
heightBytes
,
nil
)
.
Once
()
receipt
,
err
:=
s
.
relay
.
Exec
(
tx
,
0
)
receipt
,
err
:=
s
.
relay
.
Exec
(
tx
,
0
)
...
@@ -156,7 +156,7 @@ func (s *suiteRelay) TestExec_1() {
...
@@ -156,7 +156,7 @@ func (s *suiteRelay) TestExec_1() {
s
.
Equal
(
"200.0000"
,
log
.
TxAmount
)
s
.
Equal
(
"200.0000"
,
log
.
TxAmount
)
s
.
Equal
(
uint64
(
10
),
log
.
CoinHeight
)
s
.
Equal
(
uint64
(
10
),
log
.
CoinHeight
)
s
.
orderI
d
=
log
.
OrderId
s
.
orderI
D
=
log
.
OrderId
//s.testExecLocal(tx, receipt)
//s.testExecLocal(tx, receipt)
//s.testExecDelLocal(tx, receipt)
//s.testExecDelLocal(tx, receipt)
...
@@ -166,13 +166,13 @@ func (s *suiteRelay) TestExec_1() {
...
@@ -166,13 +166,13 @@ func (s *suiteRelay) TestExec_1() {
//accept
//accept
func
(
s
*
suiteRelay
)
TestExec_2
()
{
func
(
s
*
suiteRelay
)
TestExec_2
()
{
order
:=
&
ty
.
RelayAccept
{
order
:=
&
ty
.
RelayAccept
{
OrderId
:
s
.
orderI
d
,
OrderId
:
s
.
orderI
D
,
CoinAddr
:
addrBtc
,
CoinAddr
:
addrBtc
,
}
}
sell
:=
&
ty
.
RelayAction
{
sell
:=
&
ty
.
RelayAction
{
Ty
:
ty
.
RelayActionAccept
,
Ty
:
ty
.
RelayActionAccept
,
Value
:
&
ty
.
RelayAction_Accept
{
order
},
Value
:
&
ty
.
RelayAction_Accept
{
Accept
:
order
},
}
}
tx
:=
&
types
.
Transaction
{}
tx
:=
&
types
.
Transaction
{}
...
@@ -181,7 +181,7 @@ func (s *suiteRelay) TestExec_2() {
...
@@ -181,7 +181,7 @@ func (s *suiteRelay) TestExec_2() {
tx
.
Sign
(
types
.
SECP256K1
,
privTo
)
tx
.
Sign
(
types
.
SECP256K1
,
privTo
)
s
.
relay
.
SetEnv
(
20
,
2000
,
1
)
s
.
relay
.
SetEnv
(
20
,
2000
,
1
)
heightBytes
:=
types
.
Encode
(
&
types
.
Int64
{
int64
(
20
)})
heightBytes
:=
types
.
Encode
(
&
types
.
Int64
{
Data
:
int64
(
20
)})
s
.
kvdb
.
On
(
"Get"
,
mock
.
Anything
)
.
Return
(
heightBytes
,
nil
)
.
Once
()
s
.
kvdb
.
On
(
"Get"
,
mock
.
Anything
)
.
Return
(
heightBytes
,
nil
)
.
Once
()
receipt
,
err
:=
s
.
relay
.
Exec
(
tx
,
0
)
receipt
,
err
:=
s
.
relay
.
Exec
(
tx
,
0
)
s
.
Nil
(
err
)
s
.
Nil
(
err
)
...
@@ -203,12 +203,12 @@ func (s *suiteRelay) TestExec_2() {
...
@@ -203,12 +203,12 @@ func (s *suiteRelay) TestExec_2() {
func
(
s
*
suiteRelay
)
TestExec_3
()
{
func
(
s
*
suiteRelay
)
TestExec_3
()
{
order
:=
&
ty
.
RelayConfirmTx
{
order
:=
&
ty
.
RelayConfirmTx
{
OrderId
:
s
.
orderI
d
,
OrderId
:
s
.
orderI
D
,
TxHash
:
"6359f0868171b1d194cbee1af2f16ea598ae8fad666d9b012c8ed2b79a236ec4"
,
TxHash
:
"6359f0868171b1d194cbee1af2f16ea598ae8fad666d9b012c8ed2b79a236ec4"
,
}
}
sell
:=
&
ty
.
RelayAction
{
sell
:=
&
ty
.
RelayAction
{
Ty
:
ty
.
RelayActionConfirmTx
,
Ty
:
ty
.
RelayActionConfirmTx
,
Value
:
&
ty
.
RelayAction_ConfirmTx
{
order
},
Value
:
&
ty
.
RelayAction_ConfirmTx
{
ConfirmTx
:
order
},
}
}
tx
:=
&
types
.
Transaction
{}
tx
:=
&
types
.
Transaction
{}
...
@@ -217,7 +217,7 @@ func (s *suiteRelay) TestExec_3() {
...
@@ -217,7 +217,7 @@ func (s *suiteRelay) TestExec_3() {
tx
.
Sign
(
types
.
SECP256K1
,
privFrom
)
tx
.
Sign
(
types
.
SECP256K1
,
privFrom
)
s
.
relay
.
SetEnv
(
30
,
3000
,
1
)
s
.
relay
.
SetEnv
(
30
,
3000
,
1
)
heightBytes
:=
types
.
Encode
(
&
types
.
Int64
{
int64
(
30
)})
heightBytes
:=
types
.
Encode
(
&
types
.
Int64
{
Data
:
int64
(
30
)})
s
.
kvdb
.
On
(
"Get"
,
mock
.
Anything
)
.
Return
(
heightBytes
,
nil
)
.
Once
()
s
.
kvdb
.
On
(
"Get"
,
mock
.
Anything
)
.
Return
(
heightBytes
,
nil
)
.
Once
()
receipt
,
err
:=
s
.
relay
.
Exec
(
tx
,
0
)
receipt
,
err
:=
s
.
relay
.
Exec
(
tx
,
0
)
s
.
Nil
(
err
)
s
.
Nil
(
err
)
...
@@ -248,11 +248,11 @@ func (s *suiteRelay) TestExec_4() {
...
@@ -248,11 +248,11 @@ func (s *suiteRelay) TestExec_4() {
BlockHeight
:
1000
,
BlockHeight
:
1000
,
Hash
:
"6359f0868171b1d194cbee1af2f16ea598ae8fad666d9b012c8ed2b79a236ec4"
,
Hash
:
"6359f0868171b1d194cbee1af2f16ea598ae8fad666d9b012c8ed2b79a236ec4"
,
}
}
str
_m
erkleproof
:=
[]
string
{
"e9a66845e05d5abc0ad04ec80f774a7e585c6e8db975962d069a522137b80c1d"
,
str
M
erkleproof
:=
[]
string
{
"e9a66845e05d5abc0ad04ec80f774a7e585c6e8db975962d069a522137b80c1d"
,
"ccdafb73d8dcd0173d5d5c3c9a0770d0b3953db889dab99ef05b1907518cb815"
}
"ccdafb73d8dcd0173d5d5c3c9a0770d0b3953db889dab99ef05b1907518cb815"
}
proofs
:=
make
([][]
byte
,
len
(
str
_m
erkleproof
))
proofs
:=
make
([][]
byte
,
len
(
str
M
erkleproof
))
for
i
,
kk
:=
range
str
_m
erkleproof
{
for
i
,
kk
:=
range
str
M
erkleproof
{
proofs
[
i
],
_
=
btcHashStrRevers
(
kk
)
proofs
[
i
],
_
=
btcHashStrRevers
(
kk
)
}
}
...
@@ -264,7 +264,7 @@ func (s *suiteRelay) TestExec_4() {
...
@@ -264,7 +264,7 @@ func (s *suiteRelay) TestExec_4() {
Hash
:
"6359f0868171b1d194cbee1af2f16ea598ae8fad666d9b012c8ed2b79a236ec4"
,
Hash
:
"6359f0868171b1d194cbee1af2f16ea598ae8fad666d9b012c8ed2b79a236ec4"
,
}
}
heightBytes
:=
types
.
Encode
(
&
types
.
Int64
{
int64
(
1006
)})
heightBytes
:=
types
.
Encode
(
&
types
.
Int64
{
Data
:
int64
(
1006
)})
s
.
kvdb
.
On
(
"Get"
,
mock
.
Anything
)
.
Return
(
heightBytes
,
nil
)
.
Once
()
s
.
kvdb
.
On
(
"Get"
,
mock
.
Anything
)
.
Return
(
heightBytes
,
nil
)
.
Once
()
var
head
=
&
ty
.
BtcHeader
{
var
head
=
&
ty
.
BtcHeader
{
Version
:
1
,
Version
:
1
,
...
@@ -274,13 +274,13 @@ func (s *suiteRelay) TestExec_4() {
...
@@ -274,13 +274,13 @@ func (s *suiteRelay) TestExec_4() {
s
.
kvdb
.
On
(
"Get"
,
mock
.
Anything
)
.
Return
(
headEnc
,
nil
)
.
Once
()
s
.
kvdb
.
On
(
"Get"
,
mock
.
Anything
)
.
Return
(
headEnc
,
nil
)
.
Once
()
order
:=
&
ty
.
RelayVerify
{
order
:=
&
ty
.
RelayVerify
{
OrderId
:
s
.
orderI
d
,
OrderId
:
s
.
orderI
D
,
Tx
:
transaction
,
Tx
:
transaction
,
Spv
:
spv
,
Spv
:
spv
,
}
}
sell
:=
&
ty
.
RelayAction
{
sell
:=
&
ty
.
RelayAction
{
Ty
:
ty
.
RelayActionVerifyTx
,
Ty
:
ty
.
RelayActionVerifyTx
,
Value
:
&
ty
.
RelayAction_Verify
{
order
},
Value
:
&
ty
.
RelayAction_Verify
{
Verify
:
order
},
}
}
tx
:=
&
types
.
Transaction
{}
tx
:=
&
types
.
Transaction
{}
tx
.
To
=
s
.
addrRelay
tx
.
To
=
s
.
addrRelay
...
@@ -314,7 +314,7 @@ func (s *suiteRelay) TestExec_9_QryStatus1() {
...
@@ -314,7 +314,7 @@ func (s *suiteRelay) TestExec_9_QryStatus1() {
}
}
var
OrderIds
[][]
byte
var
OrderIds
[][]
byte
OrderIds
=
append
(
OrderIds
,
[]
byte
(
s
.
orderI
d
))
OrderIds
=
append
(
OrderIds
,
[]
byte
(
s
.
orderI
D
))
s
.
kvdb
.
On
(
"List"
,
mock
.
Anything
,
mock
.
Anything
,
mock
.
Anything
,
mock
.
Anything
)
.
Return
(
OrderIds
,
nil
)
.
Once
()
s
.
kvdb
.
On
(
"List"
,
mock
.
Anything
,
mock
.
Anything
,
mock
.
Anything
,
mock
.
Anything
)
.
Return
(
OrderIds
,
nil
)
.
Once
()
msg
,
err
:=
s
.
relay
.
Query_GetRelayOrderByStatus
(
addrCoins
)
msg
,
err
:=
s
.
relay
.
Query_GetRelayOrderByStatus
(
addrCoins
)
s
.
Nil
(
err
)
s
.
Nil
(
err
)
...
@@ -331,7 +331,7 @@ func (s *suiteRelay) TestExec_9_QryStatus2() {
...
@@ -331,7 +331,7 @@ func (s *suiteRelay) TestExec_9_QryStatus2() {
}
}
var
OrderIds
[][]
byte
var
OrderIds
[][]
byte
OrderIds
=
append
(
OrderIds
,
[]
byte
(
s
.
orderI
d
))
OrderIds
=
append
(
OrderIds
,
[]
byte
(
s
.
orderI
D
))
s
.
kvdb
.
On
(
"List"
,
mock
.
Anything
,
mock
.
Anything
,
mock
.
Anything
,
mock
.
Anything
)
.
Return
(
OrderIds
,
nil
)
.
Once
()
s
.
kvdb
.
On
(
"List"
,
mock
.
Anything
,
mock
.
Anything
,
mock
.
Anything
,
mock
.
Anything
)
.
Return
(
OrderIds
,
nil
)
.
Once
()
msg
,
err
:=
s
.
relay
.
Query_GetSellRelayOrder
(
addrCoins
)
msg
,
err
:=
s
.
relay
.
Query_GetSellRelayOrder
(
addrCoins
)
s
.
Nil
(
err
)
s
.
Nil
(
err
)
...
@@ -346,7 +346,7 @@ func (s *suiteRelay) TestExec_9_QryStatus3() {
...
@@ -346,7 +346,7 @@ func (s *suiteRelay) TestExec_9_QryStatus3() {
}
}
var
OrderIds
[][]
byte
var
OrderIds
[][]
byte
OrderIds
=
append
(
OrderIds
,
[]
byte
(
s
.
orderI
d
))
OrderIds
=
append
(
OrderIds
,
[]
byte
(
s
.
orderI
D
))
s
.
kvdb
.
On
(
"List"
,
mock
.
Anything
,
mock
.
Anything
,
mock
.
Anything
,
mock
.
Anything
)
.
Return
(
OrderIds
,
nil
)
.
Once
()
s
.
kvdb
.
On
(
"List"
,
mock
.
Anything
,
mock
.
Anything
,
mock
.
Anything
,
mock
.
Anything
)
.
Return
(
OrderIds
,
nil
)
.
Once
()
msg
,
err
:=
s
.
relay
.
Query_GetBuyRelayOrder
(
addrCoins
)
msg
,
err
:=
s
.
relay
.
Query_GetBuyRelayOrder
(
addrCoins
)
s
.
Nil
(
err
)
s
.
Nil
(
err
)
...
@@ -361,7 +361,7 @@ func (s *suiteRelay) TestExec_9_QryStatus4() {
...
@@ -361,7 +361,7 @@ func (s *suiteRelay) TestExec_9_QryStatus4() {
}
}
var
OrderIds
[][]
byte
var
OrderIds
[][]
byte
OrderIds
=
append
(
OrderIds
,
[]
byte
(
s
.
orderI
d
))
OrderIds
=
append
(
OrderIds
,
[]
byte
(
s
.
orderI
D
))
s
.
kvdb
.
On
(
"List"
,
mock
.
Anything
,
mock
.
Anything
,
mock
.
Anything
,
mock
.
Anything
)
.
Return
(
OrderIds
,
nil
)
.
Once
()
s
.
kvdb
.
On
(
"List"
,
mock
.
Anything
,
mock
.
Anything
,
mock
.
Anything
,
mock
.
Anything
)
.
Return
(
OrderIds
,
nil
)
.
Once
()
msg
,
err
:=
s
.
relay
.
Query_GetBTCHeaderList
(
addrCoins
)
msg
,
err
:=
s
.
relay
.
Query_GetBTCHeaderList
(
addrCoins
)
s
.
Nil
(
err
)
s
.
Nil
(
err
)
...
@@ -374,7 +374,7 @@ func (s *suiteRelay) TestExec_9_QryStatus5() {
...
@@ -374,7 +374,7 @@ func (s *suiteRelay) TestExec_9_QryStatus5() {
BaseHeight
:
10
,
BaseHeight
:
10
,
}
}
heightBytes
:=
types
.
Encode
(
&
types
.
Int64
{
int64
(
10
)})
heightBytes
:=
types
.
Encode
(
&
types
.
Int64
{
Data
:
int64
(
10
)})
s
.
kvdb
.
On
(
"Get"
,
mock
.
Anything
)
.
Return
(
heightBytes
,
nil
)
.
Twice
()
s
.
kvdb
.
On
(
"Get"
,
mock
.
Anything
)
.
Return
(
heightBytes
,
nil
)
.
Twice
()
msg
,
err
:=
s
.
relay
.
Query_GetBTCHeaderCurHeight
(
addrCoins
)
msg
,
err
:=
s
.
relay
.
Query_GetBTCHeaderCurHeight
(
addrCoins
)
s
.
Nil
(
err
)
s
.
Nil
(
err
)
...
@@ -505,7 +505,7 @@ func (s *suiteBtcHeader) TestSaveBtcHead_1() {
...
@@ -505,7 +505,7 @@ func (s *suiteBtcHeader) TestSaveBtcHead_1() {
sell
:=
&
ty
.
RelayAction
{
sell
:=
&
ty
.
RelayAction
{
Ty
:
ty
.
RelayActionRcvBTCHeaders
,
Ty
:
ty
.
RelayActionRcvBTCHeaders
,
Value
:
&
ty
.
RelayAction_BtcHeaders
{
headers
},
Value
:
&
ty
.
RelayAction_BtcHeaders
{
BtcHeaders
:
headers
},
}
}
tx
:=
&
types
.
Transaction
{}
tx
:=
&
types
.
Transaction
{}
...
...
plugin/dapp/relay/executor/relaybtc.go
View file @
7f73d32d
...
@@ -88,19 +88,19 @@ func (b *btcStore) saveBlockHead(head *ty.BtcHeader) ([]*types.KeyValue, error)
...
@@ -88,19 +88,19 @@ func (b *btcStore) saveBlockHead(head *ty.BtcHeader) ([]*types.KeyValue, error)
relaylog
.
Error
(
"saveBlockHead"
,
"height"
,
head
.
Height
,
"hash"
,
head
.
Hash
)
relaylog
.
Error
(
"saveBlockHead"
,
"height"
,
head
.
Height
,
"hash"
,
head
.
Hash
)
return
nil
,
err
return
nil
,
err
}
else
{
}
// hash:header
// hash:header
key
=
calcBtcHeaderKeyHash
(
head
.
Hash
)
key
=
calcBtcHeaderKeyHash
(
head
.
Hash
)
kv
=
append
(
kv
,
&
types
.
KeyValue
{
key
,
val
})
kv
=
append
(
kv
,
&
types
.
KeyValue
{
Key
:
key
,
Value
:
val
})
// height:header
// height:header
key
=
calcBtcHeaderKeyHeight
(
int64
(
head
.
Height
))
key
=
calcBtcHeaderKeyHeight
(
int64
(
head
.
Height
))
kv
=
append
(
kv
,
&
types
.
KeyValue
{
key
,
val
})
kv
=
append
(
kv
,
&
types
.
KeyValue
{
Key
:
key
,
Value
:
val
})
}
// prefix-height:height
// prefix-height:height
key
=
calcBtcHeaderKeyHeightList
(
int64
(
head
.
Height
))
key
=
calcBtcHeaderKeyHeightList
(
int64
(
head
.
Height
))
heightBytes
:=
types
.
Encode
(
&
types
.
Int64
{
int64
(
head
.
Height
)})
heightBytes
:=
types
.
Encode
(
&
types
.
Int64
{
Data
:
int64
(
head
.
Height
)})
kv
=
append
(
kv
,
&
types
.
KeyValue
{
key
,
heightBytes
})
kv
=
append
(
kv
,
&
types
.
KeyValue
{
Key
:
key
,
Value
:
heightBytes
})
return
kv
,
nil
return
kv
,
nil
}
}
...
@@ -108,13 +108,13 @@ func (b *btcStore) saveBlockHead(head *ty.BtcHeader) ([]*types.KeyValue, error)
...
@@ -108,13 +108,13 @@ func (b *btcStore) saveBlockHead(head *ty.BtcHeader) ([]*types.KeyValue, error)
func
(
b
*
btcStore
)
saveBlockLastHead
(
head
*
ty
.
ReceiptRelayRcvBTCHeaders
)
([]
*
types
.
KeyValue
,
error
)
{
func
(
b
*
btcStore
)
saveBlockLastHead
(
head
*
ty
.
ReceiptRelayRcvBTCHeaders
)
([]
*
types
.
KeyValue
,
error
)
{
var
kv
[]
*
types
.
KeyValue
var
kv
[]
*
types
.
KeyValue
heightBytes
:=
types
.
Encode
(
&
types
.
Int64
{
int64
(
head
.
NewHeight
)})
heightBytes
:=
types
.
Encode
(
&
types
.
Int64
{
Data
:
int64
(
head
.
NewHeight
)})
key
:=
relayBTCHeaderLastHeight
key
:=
relayBTCHeaderLastHeight
kv
=
append
(
kv
,
&
types
.
KeyValue
{
key
,
heightBytes
})
kv
=
append
(
kv
,
&
types
.
KeyValue
{
Key
:
key
,
Value
:
heightBytes
})
heightBytes
=
types
.
Encode
(
&
types
.
Int64
{
int64
(
head
.
NewBaseHeight
)})
heightBytes
=
types
.
Encode
(
&
types
.
Int64
{
Data
:
int64
(
head
.
NewBaseHeight
)})
key
=
relayBTCHeaderBaseHeight
key
=
relayBTCHeaderBaseHeight
kv
=
append
(
kv
,
&
types
.
KeyValue
{
key
,
heightBytes
})
kv
=
append
(
kv
,
&
types
.
KeyValue
{
Key
:
key
,
Value
:
heightBytes
})
return
kv
,
nil
return
kv
,
nil
}
}
...
@@ -123,14 +123,14 @@ func (b *btcStore) delBlockHead(head *ty.BtcHeader) ([]*types.KeyValue, error) {
...
@@ -123,14 +123,14 @@ func (b *btcStore) delBlockHead(head *ty.BtcHeader) ([]*types.KeyValue, error) {
var
kv
[]
*
types
.
KeyValue
var
kv
[]
*
types
.
KeyValue
key
:=
calcBtcHeaderKeyHash
(
head
.
Hash
)
key
:=
calcBtcHeaderKeyHash
(
head
.
Hash
)
kv
=
append
(
kv
,
&
types
.
KeyValue
{
key
,
nil
})
kv
=
append
(
kv
,
&
types
.
KeyValue
{
Key
:
key
,
Value
:
nil
})
// height:header
// height:header
key
=
calcBtcHeaderKeyHeight
(
int64
(
head
.
Height
))
key
=
calcBtcHeaderKeyHeight
(
int64
(
head
.
Height
))
kv
=
append
(
kv
,
&
types
.
KeyValue
{
key
,
nil
})
kv
=
append
(
kv
,
&
types
.
KeyValue
{
Key
:
key
,
Value
:
nil
})
// prefix-height:height
// prefix-height:height
key
=
calcBtcHeaderKeyHeightList
(
int64
(
head
.
Height
))
key
=
calcBtcHeaderKeyHeightList
(
int64
(
head
.
Height
))
kv
=
append
(
kv
,
&
types
.
KeyValue
{
key
,
nil
})
kv
=
append
(
kv
,
&
types
.
KeyValue
{
Key
:
key
,
Value
:
nil
})
return
kv
,
nil
return
kv
,
nil
}
}
...
@@ -139,13 +139,13 @@ func (b *btcStore) delBlockLastHead(head *ty.ReceiptRelayRcvBTCHeaders) ([]*type
...
@@ -139,13 +139,13 @@ func (b *btcStore) delBlockLastHead(head *ty.ReceiptRelayRcvBTCHeaders) ([]*type
var
kv
[]
*
types
.
KeyValue
var
kv
[]
*
types
.
KeyValue
var
key
[]
byte
var
key
[]
byte
heightBytes
:=
types
.
Encode
(
&
types
.
Int64
{
int64
(
head
.
LastHeight
)})
heightBytes
:=
types
.
Encode
(
&
types
.
Int64
{
Data
:
int64
(
head
.
LastHeight
)})
key
=
relayBTCHeaderLastHeight
key
=
relayBTCHeaderLastHeight
kv
=
append
(
kv
,
&
types
.
KeyValue
{
key
,
heightBytes
})
kv
=
append
(
kv
,
&
types
.
KeyValue
{
Key
:
key
,
Value
:
heightBytes
})
heightBytes
=
types
.
Encode
(
&
types
.
Int64
{
int64
(
head
.
LastBaseHeight
)})
heightBytes
=
types
.
Encode
(
&
types
.
Int64
{
Data
:
int64
(
head
.
LastBaseHeight
)})
key
=
relayBTCHeaderBaseHeight
key
=
relayBTCHeaderBaseHeight
kv
=
append
(
kv
,
&
types
.
KeyValue
{
key
,
heightBytes
})
kv
=
append
(
kv
,
&
types
.
KeyValue
{
Key
:
key
,
Value
:
heightBytes
})
return
kv
,
nil
return
kv
,
nil
}
}
...
...
plugin/dapp/relay/executor/relaybtc_test.go
View file @
7f73d32d
...
@@ -34,14 +34,14 @@ func (s *suiteBtcStore) SetupSuite() {
...
@@ -34,14 +34,14 @@ func (s *suiteBtcStore) SetupSuite() {
}
}
func
(
s
*
suiteBtcStore
)
TestGetBtcHeadHeightFromDb
()
{
func
(
s
*
suiteBtcStore
)
TestGetBtcHeadHeightFromDb
()
{
heightBytes
:=
types
.
Encode
(
&
types
.
Int64
{
int64
(
10
)})
heightBytes
:=
types
.
Encode
(
&
types
.
Int64
{
Data
:
int64
(
10
)})
s
.
kvdb
.
On
(
"Get"
,
mock
.
Anything
)
.
Return
(
heightBytes
,
nil
)
.
Once
()
s
.
kvdb
.
On
(
"Get"
,
mock
.
Anything
)
.
Return
(
heightBytes
,
nil
)
.
Once
()
val
,
_
:=
s
.
btc
.
getBtcHeadHeightFromDb
([]
byte
(
"key"
))
val
,
_
:=
s
.
btc
.
getBtcHeadHeightFromDb
([]
byte
(
"key"
))
s
.
Assert
()
.
Equal
(
val
,
int64
(
10
))
s
.
Assert
()
.
Equal
(
val
,
int64
(
10
))
}
}
func
(
s
*
suiteBtcStore
)
TestGetLastBtcHeadHeight
()
{
func
(
s
*
suiteBtcStore
)
TestGetLastBtcHeadHeight
()
{
heightBytes
:=
types
.
Encode
(
&
types
.
Int64
{
int64
(
10
)})
heightBytes
:=
types
.
Encode
(
&
types
.
Int64
{
Data
:
int64
(
10
)})
s
.
kvdb
.
On
(
"Get"
,
mock
.
Anything
)
.
Return
(
heightBytes
,
nil
)
.
Once
()
s
.
kvdb
.
On
(
"Get"
,
mock
.
Anything
)
.
Return
(
heightBytes
,
nil
)
.
Once
()
val
,
_
:=
s
.
btc
.
getLastBtcHeadHeight
()
val
,
_
:=
s
.
btc
.
getLastBtcHeadHeight
()
s
.
Assert
()
.
Equal
(
val
,
int64
(
10
))
s
.
Assert
()
.
Equal
(
val
,
int64
(
10
))
...
@@ -58,7 +58,7 @@ func (s *suiteBtcStore) TestGetBtcHeadByHeight() {
...
@@ -58,7 +58,7 @@ func (s *suiteBtcStore) TestGetBtcHeadByHeight() {
}
}
func
(
s
*
suiteBtcStore
)
TestGetLastBtcHead
()
{
func
(
s
*
suiteBtcStore
)
TestGetLastBtcHead
()
{
heightBytes
:=
types
.
Encode
(
&
types
.
Int64
{
int64
(
10
)})
heightBytes
:=
types
.
Encode
(
&
types
.
Int64
{
Data
:
int64
(
10
)})
head
:=
&
ty
.
BtcHeader
{}
head
:=
&
ty
.
BtcHeader
{}
header
:=
types
.
Encode
(
head
)
header
:=
types
.
Encode
(
head
)
...
@@ -82,12 +82,12 @@ func (s *suiteBtcStore) TestSaveBlockHead() {
...
@@ -82,12 +82,12 @@ func (s *suiteBtcStore) TestSaveBlockHead() {
}
}
val
,
_
:=
proto
.
Marshal
(
head
)
val
,
_
:=
proto
.
Marshal
(
head
)
key
:=
calcBtcHeaderKeyHash
(
head
.
Hash
)
key
:=
calcBtcHeaderKeyHash
(
head
.
Hash
)
kv
=
append
(
kv
,
&
types
.
KeyValue
{
key
,
val
})
kv
=
append
(
kv
,
&
types
.
KeyValue
{
Key
:
key
,
Value
:
val
})
key
=
calcBtcHeaderKeyHeight
(
int64
(
head
.
Height
))
key
=
calcBtcHeaderKeyHeight
(
int64
(
head
.
Height
))
kv
=
append
(
kv
,
&
types
.
KeyValue
{
key
,
val
})
kv
=
append
(
kv
,
&
types
.
KeyValue
{
Key
:
key
,
Value
:
val
})
key
=
calcBtcHeaderKeyHeightList
(
int64
(
head
.
Height
))
key
=
calcBtcHeaderKeyHeightList
(
int64
(
head
.
Height
))
heightBytes
:=
types
.
Encode
(
&
types
.
Int64
{
int64
(
head
.
Height
)})
heightBytes
:=
types
.
Encode
(
&
types
.
Int64
{
Data
:
int64
(
head
.
Height
)})
kv
=
append
(
kv
,
&
types
.
KeyValue
{
key
,
heightBytes
})
kv
=
append
(
kv
,
&
types
.
KeyValue
{
Key
:
key
,
Value
:
heightBytes
})
res
,
err
:=
s
.
btc
.
saveBlockHead
(
head
)
res
,
err
:=
s
.
btc
.
saveBlockHead
(
head
)
s
.
Nil
(
err
)
s
.
Nil
(
err
)
...
@@ -104,13 +104,13 @@ func (s *suiteBtcStore) TestSaveBlockLastHead() {
...
@@ -104,13 +104,13 @@ func (s *suiteBtcStore) TestSaveBlockLastHead() {
NewBaseHeight
:
150
,
NewBaseHeight
:
150
,
}
}
heightBytes
:=
types
.
Encode
(
&
types
.
Int64
{
int64
(
lastHead
.
NewHeight
)})
heightBytes
:=
types
.
Encode
(
&
types
.
Int64
{
Data
:
int64
(
lastHead
.
NewHeight
)})
key
:=
relayBTCHeaderLastHeight
key
:=
relayBTCHeaderLastHeight
kv
=
append
(
kv
,
&
types
.
KeyValue
{
key
,
heightBytes
})
kv
=
append
(
kv
,
&
types
.
KeyValue
{
Key
:
key
,
Value
:
heightBytes
})
heightBytes
=
types
.
Encode
(
&
types
.
Int64
{
int64
(
lastHead
.
NewBaseHeight
)})
heightBytes
=
types
.
Encode
(
&
types
.
Int64
{
Data
:
int64
(
lastHead
.
NewBaseHeight
)})
key
=
relayBTCHeaderBaseHeight
key
=
relayBTCHeaderBaseHeight
kv
=
append
(
kv
,
&
types
.
KeyValue
{
key
,
heightBytes
})
kv
=
append
(
kv
,
&
types
.
KeyValue
{
Key
:
key
,
Value
:
heightBytes
})
res
,
err
:=
s
.
btc
.
saveBlockLastHead
(
lastHead
)
res
,
err
:=
s
.
btc
.
saveBlockLastHead
(
lastHead
)
s
.
Nil
(
err
)
s
.
Nil
(
err
)
...
@@ -131,14 +131,14 @@ func (s *suiteBtcStore) TestDelBlockHead() {
...
@@ -131,14 +131,14 @@ func (s *suiteBtcStore) TestDelBlockHead() {
}
}
key
:=
calcBtcHeaderKeyHash
(
head
.
Hash
)
key
:=
calcBtcHeaderKeyHash
(
head
.
Hash
)
kv
=
append
(
kv
,
&
types
.
KeyValue
{
key
,
nil
})
kv
=
append
(
kv
,
&
types
.
KeyValue
{
Key
:
key
,
Value
:
nil
})
// height:header
// height:header
key
=
calcBtcHeaderKeyHeight
(
int64
(
head
.
Height
))
key
=
calcBtcHeaderKeyHeight
(
int64
(
head
.
Height
))
kv
=
append
(
kv
,
&
types
.
KeyValue
{
key
,
nil
})
kv
=
append
(
kv
,
&
types
.
KeyValue
{
Key
:
key
,
Value
:
nil
})
// prefix-height:height
// prefix-height:height
key
=
calcBtcHeaderKeyHeightList
(
int64
(
head
.
Height
))
key
=
calcBtcHeaderKeyHeightList
(
int64
(
head
.
Height
))
kv
=
append
(
kv
,
&
types
.
KeyValue
{
key
,
nil
})
kv
=
append
(
kv
,
&
types
.
KeyValue
{
Key
:
key
,
Value
:
nil
})
res
,
err
:=
s
.
btc
.
delBlockHead
(
head
)
res
,
err
:=
s
.
btc
.
delBlockHead
(
head
)
s
.
Nil
(
err
)
s
.
Nil
(
err
)
...
@@ -155,13 +155,13 @@ func (s *suiteBtcStore) TestDelBlockLastHead() {
...
@@ -155,13 +155,13 @@ func (s *suiteBtcStore) TestDelBlockLastHead() {
NewBaseHeight
:
150
,
NewBaseHeight
:
150
,
}
}
heightBytes
:=
types
.
Encode
(
&
types
.
Int64
{
int64
(
lastHead
.
LastHeight
)})
heightBytes
:=
types
.
Encode
(
&
types
.
Int64
{
Data
:
int64
(
lastHead
.
LastHeight
)})
key
:=
relayBTCHeaderLastHeight
key
:=
relayBTCHeaderLastHeight
kv
=
append
(
kv
,
&
types
.
KeyValue
{
key
,
heightBytes
})
kv
=
append
(
kv
,
&
types
.
KeyValue
{
Key
:
key
,
Value
:
heightBytes
})
heightBytes
=
types
.
Encode
(
&
types
.
Int64
{
int64
(
lastHead
.
LastBaseHeight
)})
heightBytes
=
types
.
Encode
(
&
types
.
Int64
{
Data
:
int64
(
lastHead
.
LastBaseHeight
)})
key
=
relayBTCHeaderBaseHeight
key
=
relayBTCHeaderBaseHeight
kv
=
append
(
kv
,
&
types
.
KeyValue
{
key
,
heightBytes
})
kv
=
append
(
kv
,
&
types
.
KeyValue
{
Key
:
key
,
Value
:
heightBytes
})
res
,
err
:=
s
.
btc
.
delBlockLastHead
(
lastHead
)
res
,
err
:=
s
.
btc
.
delBlockLastHead
(
lastHead
)
s
.
Nil
(
err
)
s
.
Nil
(
err
)
...
@@ -173,7 +173,7 @@ func (s *suiteBtcStore) TestGetBtcCurHeight() {
...
@@ -173,7 +173,7 @@ func (s *suiteBtcStore) TestGetBtcCurHeight() {
rep
,
err
:=
s
.
btc
.
getBtcCurHeight
(
nil
)
rep
,
err
:=
s
.
btc
.
getBtcCurHeight
(
nil
)
s
.
Nil
(
err
)
s
.
Nil
(
err
)
s
.
Equal
(
rep
,
&
ty
.
ReplayRelayQryBTCHeadHeight
{
-
1
,
-
1
})
s
.
Equal
(
rep
,
&
ty
.
ReplayRelayQryBTCHeadHeight
{
CurHeight
:
-
1
,
BaseHeight
:
-
1
})
}
}
func
(
s
*
suiteBtcStore
)
TestGetMerkleRootFromHeader
()
{
func
(
s
*
suiteBtcStore
)
TestGetMerkleRootFromHeader
()
{
...
@@ -188,8 +188,8 @@ func (s *suiteBtcStore) TestGetMerkleRootFromHeader() {
...
@@ -188,8 +188,8 @@ func (s *suiteBtcStore) TestGetMerkleRootFromHeader() {
Height
:
2
,
Height
:
2
,
}
}
head
_e
nc
:=
types
.
Encode
(
head
)
head
E
nc
:=
types
.
Encode
(
head
)
s
.
kvdb
.
On
(
"Get"
,
mock
.
Anything
)
.
Return
(
head
_e
nc
,
nil
)
.
Once
()
s
.
kvdb
.
On
(
"Get"
,
mock
.
Anything
)
.
Return
(
head
E
nc
,
nil
)
.
Once
()
res
,
err
:=
s
.
btc
.
getMerkleRootFromHeader
(
head
.
Hash
)
res
,
err
:=
s
.
btc
.
getMerkleRootFromHeader
(
head
.
Hash
)
s
.
Nil
(
err
)
s
.
Nil
(
err
)
s
.
Equal
(
head
.
MerkleRoot
,
res
)
s
.
Equal
(
head
.
MerkleRoot
,
res
)
...
@@ -221,11 +221,11 @@ func (s *suiteBtcStore) TestVerifyBtcTx() {
...
@@ -221,11 +221,11 @@ func (s *suiteBtcStore) TestVerifyBtcTx() {
// "6359f0868171b1d194cbee1af2f16ea598ae8fad666d9b012c8ed2b79a236ec4",
// "6359f0868171b1d194cbee1af2f16ea598ae8fad666d9b012c8ed2b79a236ec4",
// "e9a66845e05d5abc0ad04ec80f774a7e585c6e8db975962d069a522137b80c1d"}
// "e9a66845e05d5abc0ad04ec80f774a7e585c6e8db975962d069a522137b80c1d"}
//the 3rd tx's branch
//the 3rd tx's branch
str
_m
erkleproof
:=
[]
string
{
"e9a66845e05d5abc0ad04ec80f774a7e585c6e8db975962d069a522137b80c1d"
,
str
M
erkleproof
:=
[]
string
{
"e9a66845e05d5abc0ad04ec80f774a7e585c6e8db975962d069a522137b80c1d"
,
"ccdafb73d8dcd0173d5d5c3c9a0770d0b3953db889dab99ef05b1907518cb815"
}
"ccdafb73d8dcd0173d5d5c3c9a0770d0b3953db889dab99ef05b1907518cb815"
}
proofs
:=
make
([][]
byte
,
len
(
str
_m
erkleproof
))
proofs
:=
make
([][]
byte
,
len
(
str
M
erkleproof
))
for
i
,
kk
:=
range
str
_m
erkleproof
{
for
i
,
kk
:=
range
str
M
erkleproof
{
proofs
[
i
],
_
=
btcHashStrRevers
(
kk
)
proofs
[
i
],
_
=
btcHashStrRevers
(
kk
)
}
}
...
@@ -241,7 +241,7 @@ func (s *suiteBtcStore) TestVerifyBtcTx() {
...
@@ -241,7 +241,7 @@ func (s *suiteBtcStore) TestVerifyBtcTx() {
Spv
:
spv
,
Spv
:
spv
,
}
}
heightBytes
:=
types
.
Encode
(
&
types
.
Int64
{
int64
(
1006
)})
heightBytes
:=
types
.
Encode
(
&
types
.
Int64
{
Data
:
int64
(
1006
)})
s
.
kvdb
.
On
(
"Get"
,
mock
.
Anything
)
.
Return
(
heightBytes
,
nil
)
.
Once
()
s
.
kvdb
.
On
(
"Get"
,
mock
.
Anything
)
.
Return
(
heightBytes
,
nil
)
.
Once
()
var
head
=
&
ty
.
BtcHeader
{
var
head
=
&
ty
.
BtcHeader
{
Version
:
1
,
Version
:
1
,
...
@@ -290,7 +290,7 @@ func (s *suiteBtcStore) TestGetHeadHeightList() {
...
@@ -290,7 +290,7 @@ func (s *suiteBtcStore) TestGetHeadHeightList() {
heightArry
:=
make
([][]
byte
,
10
)
heightArry
:=
make
([][]
byte
,
10
)
for
i
:=
0
;
i
<
10
;
i
++
{
for
i
:=
0
;
i
<
10
;
i
++
{
height
:=
int64
(
1000
+
i
)
height
:=
int64
(
1000
+
i
)
heightBytes
:=
types
.
Encode
(
&
types
.
Int64
{
height
})
heightBytes
:=
types
.
Encode
(
&
types
.
Int64
{
Data
:
height
})
heightArry
[
i
]
=
heightBytes
heightArry
[
i
]
=
heightBytes
replay
.
Heights
=
append
(
replay
.
Heights
,
height
)
replay
.
Heights
=
append
(
replay
.
Heights
,
height
)
}
}
...
...
plugin/dapp/relay/executor/relaydb.go
View file @
7f73d32d
...
@@ -43,11 +43,11 @@ func (r *relayLog) save(db dbm.KV) []*types.KeyValue {
...
@@ -43,11 +43,11 @@ func (r *relayLog) save(db dbm.KV) []*types.KeyValue {
func
(
r
*
relayLog
)
getKVSet
()
(
kvSet
[]
*
types
.
KeyValue
)
{
func
(
r
*
relayLog
)
getKVSet
()
(
kvSet
[]
*
types
.
KeyValue
)
{
value
:=
types
.
Encode
(
&
r
.
RelayOrder
)
value
:=
types
.
Encode
(
&
r
.
RelayOrder
)
key
:=
[]
byte
(
r
.
Id
)
key
:=
[]
byte
(
r
.
Id
)
kvSet
=
append
(
kvSet
,
&
types
.
KeyValue
{
key
,
value
})
kvSet
=
append
(
kvSet
,
&
types
.
KeyValue
{
Key
:
key
,
Value
:
value
})
if
r
.
CoinTxHash
!=
""
{
if
r
.
CoinTxHash
!=
""
{
key
=
[]
byte
(
calcCoinHash
(
r
.
CoinTxHash
))
key
=
[]
byte
(
calcCoinHash
(
r
.
CoinTxHash
))
kvSet
=
append
(
kvSet
,
&
types
.
KeyValue
{
key
,
value
})
kvSet
=
append
(
kvSet
,
&
types
.
KeyValue
{
Key
:
key
,
Value
:
value
})
}
}
return
kvSet
return
kvSet
...
@@ -100,8 +100,8 @@ func newRelayDB(r *relay, tx *types.Transaction) *relayDB {
...
@@ -100,8 +100,8 @@ func newRelayDB(r *relay, tx *types.Transaction) *relayDB {
fromAddr
,
r
.
GetBlockTime
(),
r
.
GetHeight
(),
dapp
.
ExecAddress
(
r
.
GetName
()),
btc
}
fromAddr
,
r
.
GetBlockTime
(),
r
.
GetHeight
(),
dapp
.
ExecAddress
(
r
.
GetName
()),
btc
}
}
}
func
(
action
*
relayDB
)
getOrderByID
(
orderI
d
[]
byte
)
(
*
ty
.
RelayOrder
,
error
)
{
func
(
action
*
relayDB
)
getOrderByID
(
orderI
D
[]
byte
)
(
*
ty
.
RelayOrder
,
error
)
{
value
,
err
:=
action
.
db
.
Get
(
orderI
d
)
value
,
err
:=
action
.
db
.
Get
(
orderI
D
)
if
err
!=
nil
{
if
err
!=
nil
{
return
nil
,
err
return
nil
,
err
}
}
...
@@ -179,7 +179,7 @@ func (action *relayDB) create(order *ty.RelayCreate) (*types.Receipt, error) {
...
@@ -179,7 +179,7 @@ func (action *relayDB) create(order *ty.RelayCreate) (*types.Receipt, error) {
logs
=
append
(
logs
,
relayLog
.
receiptLog
(
ty
.
TyLogRelayCreate
))
logs
=
append
(
logs
,
relayLog
.
receiptLog
(
ty
.
TyLogRelayCreate
))
kv
=
append
(
kv
,
sellOrderKV
...
)
kv
=
append
(
kv
,
sellOrderKV
...
)
return
&
types
.
Receipt
{
types
.
ExecOk
,
kv
,
logs
},
nil
return
&
types
.
Receipt
{
Ty
:
types
.
ExecOk
,
KV
:
kv
,
Logs
:
logs
},
nil
}
}
func
(
action
*
relayDB
)
checkRevokeOrder
(
order
*
ty
.
RelayOrder
)
error
{
func
(
action
*
relayDB
)
checkRevokeOrder
(
order
*
ty
.
RelayOrder
)
error
{
...
@@ -216,8 +216,8 @@ func (action *relayDB) checkRevokeOrder(order *ty.RelayOrder) error {
...
@@ -216,8 +216,8 @@ func (action *relayDB) checkRevokeOrder(order *ty.RelayOrder) error {
}
}
func
(
action
*
relayDB
)
revokeCreate
(
revoke
*
ty
.
RelayRevoke
)
(
*
types
.
Receipt
,
error
)
{
func
(
action
*
relayDB
)
revokeCreate
(
revoke
*
ty
.
RelayRevoke
)
(
*
types
.
Receipt
,
error
)
{
orderI
d
:=
[]
byte
(
revoke
.
OrderId
)
orderI
D
:=
[]
byte
(
revoke
.
OrderId
)
order
,
err
:=
action
.
getOrderByID
(
orderI
d
)
order
,
err
:=
action
.
getOrderByID
(
orderI
D
)
if
err
!=
nil
{
if
err
!=
nil
{
return
nil
,
ty
.
ErrRelayOrderNotExist
return
nil
,
ty
.
ErrRelayOrderNotExist
}
}
...
@@ -290,12 +290,12 @@ func (action *relayDB) revokeCreate(revoke *ty.RelayRevoke) (*types.Receipt, err
...
@@ -290,12 +290,12 @@ func (action *relayDB) revokeCreate(revoke *ty.RelayRevoke) (*types.Receipt, err
}
}
logs
=
append
(
logs
,
relayLog
.
receiptLog
(
ty
.
TyLogRelayRevokeCreate
))
logs
=
append
(
logs
,
relayLog
.
receiptLog
(
ty
.
TyLogRelayRevokeCreate
))
kv
=
append
(
kv
,
orderKV
...
)
kv
=
append
(
kv
,
orderKV
...
)
return
&
types
.
Receipt
{
types
.
ExecOk
,
kv
,
logs
},
nil
return
&
types
.
Receipt
{
Ty
:
types
.
ExecOk
,
KV
:
kv
,
Logs
:
logs
},
nil
}
}
func
(
action
*
relayDB
)
accept
(
accept
*
ty
.
RelayAccept
)
(
*
types
.
Receipt
,
error
)
{
func
(
action
*
relayDB
)
accept
(
accept
*
ty
.
RelayAccept
)
(
*
types
.
Receipt
,
error
)
{
orderI
d
:=
[]
byte
(
accept
.
OrderId
)
orderI
D
:=
[]
byte
(
accept
.
OrderId
)
order
,
err
:=
action
.
getOrderByID
(
orderI
d
)
order
,
err
:=
action
.
getOrderByID
(
orderI
D
)
if
err
!=
nil
{
if
err
!=
nil
{
return
nil
,
ty
.
ErrRelayOrderNotExist
return
nil
,
ty
.
ErrRelayOrderNotExist
}
}
...
@@ -355,7 +355,7 @@ func (action *relayDB) accept(accept *ty.RelayAccept) (*types.Receipt, error) {
...
@@ -355,7 +355,7 @@ func (action *relayDB) accept(accept *ty.RelayAccept) (*types.Receipt, error) {
logs
=
append
(
logs
,
relayLog
.
receiptLog
(
ty
.
TyLogRelayAccept
))
logs
=
append
(
logs
,
relayLog
.
receiptLog
(
ty
.
TyLogRelayAccept
))
kv
=
append
(
kv
,
sellOrderKV
...
)
kv
=
append
(
kv
,
sellOrderKV
...
)
return
&
types
.
Receipt
{
types
.
ExecOk
,
kv
,
logs
},
nil
return
&
types
.
Receipt
{
Ty
:
types
.
ExecOk
,
KV
:
kv
,
Logs
:
logs
},
nil
}
}
...
@@ -368,8 +368,8 @@ func (action *relayDB) relayRevoke(revoke *ty.RelayRevoke) (*types.Receipt, erro
...
@@ -368,8 +368,8 @@ func (action *relayDB) relayRevoke(revoke *ty.RelayRevoke) (*types.Receipt, erro
}
}
func
(
action
*
relayDB
)
revokeAccept
(
revoke
*
ty
.
RelayRevoke
)
(
*
types
.
Receipt
,
error
)
{
func
(
action
*
relayDB
)
revokeAccept
(
revoke
*
ty
.
RelayRevoke
)
(
*
types
.
Receipt
,
error
)
{
orderI
d
Byte
:=
[]
byte
(
revoke
.
OrderId
)
orderI
D
Byte
:=
[]
byte
(
revoke
.
OrderId
)
order
,
err
:=
action
.
getOrderByID
(
orderI
d
Byte
)
order
,
err
:=
action
.
getOrderByID
(
orderI
D
Byte
)
if
err
!=
nil
{
if
err
!=
nil
{
return
nil
,
ty
.
ErrRelayOrderNotExist
return
nil
,
ty
.
ErrRelayOrderNotExist
}
}
...
@@ -429,12 +429,12 @@ func (action *relayDB) revokeAccept(revoke *ty.RelayRevoke) (*types.Receipt, err
...
@@ -429,12 +429,12 @@ func (action *relayDB) revokeAccept(revoke *ty.RelayRevoke) (*types.Receipt, err
logs
=
append
(
logs
,
relayLog
.
receiptLog
(
ty
.
TyLogRelayRevokeAccept
))
logs
=
append
(
logs
,
relayLog
.
receiptLog
(
ty
.
TyLogRelayRevokeAccept
))
kv
=
append
(
kv
,
sellOrderKV
...
)
kv
=
append
(
kv
,
sellOrderKV
...
)
return
&
types
.
Receipt
{
types
.
ExecOk
,
kv
,
logs
},
nil
return
&
types
.
Receipt
{
Ty
:
types
.
ExecOk
,
KV
:
kv
,
Logs
:
logs
},
nil
}
}
func
(
action
*
relayDB
)
confirmTx
(
confirm
*
ty
.
RelayConfirmTx
)
(
*
types
.
Receipt
,
error
)
{
func
(
action
*
relayDB
)
confirmTx
(
confirm
*
ty
.
RelayConfirmTx
)
(
*
types
.
Receipt
,
error
)
{
orderI
d
:=
[]
byte
(
confirm
.
OrderId
)
orderI
D
:=
[]
byte
(
confirm
.
OrderId
)
order
,
err
:=
action
.
getOrderByID
(
orderI
d
)
order
,
err
:=
action
.
getOrderByID
(
orderI
D
)
if
err
!=
nil
{
if
err
!=
nil
{
return
nil
,
ty
.
ErrRelayOrderNotExist
return
nil
,
ty
.
ErrRelayOrderNotExist
}
}
...
@@ -449,7 +449,7 @@ func (action *relayDB) confirmTx(confirm *ty.RelayConfirmTx) (*types.Receipt, er
...
@@ -449,7 +449,7 @@ func (action *relayDB) confirmTx(confirm *ty.RelayConfirmTx) (*types.Receipt, er
return
nil
,
ty
.
ErrRelayOrderRevoked
return
nil
,
ty
.
ErrRelayOrderRevoked
}
}
//report Error if coinTxHash has been used and not same orderI
d, if same orderId
, means to modify the txHash
//report Error if coinTxHash has been used and not same orderI
D, if same orderID
, means to modify the txHash
coinTxOrder
,
_
:=
action
.
getOrderByCoinHash
([]
byte
(
calcCoinHash
(
confirm
.
TxHash
)))
coinTxOrder
,
_
:=
action
.
getOrderByCoinHash
([]
byte
(
calcCoinHash
(
confirm
.
TxHash
)))
if
coinTxOrder
!=
nil
{
if
coinTxOrder
!=
nil
{
if
coinTxOrder
.
Id
!=
confirm
.
OrderId
{
if
coinTxOrder
.
Id
!=
confirm
.
OrderId
{
...
@@ -487,14 +487,14 @@ func (action *relayDB) confirmTx(confirm *ty.RelayConfirmTx) (*types.Receipt, er
...
@@ -487,14 +487,14 @@ func (action *relayDB) confirmTx(confirm *ty.RelayConfirmTx) (*types.Receipt, er
logs
=
append
(
logs
,
relayLog
.
receiptLog
(
ty
.
TyLogRelayConfirmTx
))
logs
=
append
(
logs
,
relayLog
.
receiptLog
(
ty
.
TyLogRelayConfirmTx
))
kv
=
append
(
kv
,
sellOrderKV
...
)
kv
=
append
(
kv
,
sellOrderKV
...
)
receipt
:=
&
types
.
Receipt
{
types
.
ExecOk
,
kv
,
logs
}
receipt
:=
&
types
.
Receipt
{
Ty
:
types
.
ExecOk
,
KV
:
kv
,
Logs
:
logs
}
return
receipt
,
nil
return
receipt
,
nil
}
}
func
(
action
*
relayDB
)
verifyTx
(
verify
*
ty
.
RelayVerify
)
(
*
types
.
Receipt
,
error
)
{
func
(
action
*
relayDB
)
verifyTx
(
verify
*
ty
.
RelayVerify
)
(
*
types
.
Receipt
,
error
)
{
orderI
d
:=
[]
byte
(
verify
.
OrderId
)
orderI
D
:=
[]
byte
(
verify
.
OrderId
)
order
,
err
:=
action
.
getOrderByID
(
orderI
d
)
order
,
err
:=
action
.
getOrderByID
(
orderI
D
)
if
err
!=
nil
{
if
err
!=
nil
{
return
nil
,
ty
.
ErrRelayOrderNotExist
return
nil
,
ty
.
ErrRelayOrderNotExist
}
}
...
@@ -562,13 +562,13 @@ func (action *relayDB) verifyTx(verify *ty.RelayVerify) (*types.Receipt, error)
...
@@ -562,13 +562,13 @@ func (action *relayDB) verifyTx(verify *ty.RelayVerify) (*types.Receipt, error)
kv
=
append
(
kv
,
receipt
.
KV
...
)
kv
=
append
(
kv
,
receipt
.
KV
...
)
kv
=
append
(
kv
,
receiptTransfer
.
KV
...
)
kv
=
append
(
kv
,
receiptTransfer
.
KV
...
)
kv
=
append
(
kv
,
orderKV
...
)
kv
=
append
(
kv
,
orderKV
...
)
return
&
types
.
Receipt
{
types
.
ExecOk
,
kv
,
logs
},
nil
return
&
types
.
Receipt
{
Ty
:
types
.
ExecOk
,
KV
:
kv
,
Logs
:
logs
},
nil
}
}
func
(
action
*
relayDB
)
verifyCmdTx
(
verify
*
ty
.
RelayVerifyCli
)
(
*
types
.
Receipt
,
error
)
{
func
(
action
*
relayDB
)
verifyCmdTx
(
verify
*
ty
.
RelayVerifyCli
)
(
*
types
.
Receipt
,
error
)
{
orderI
d
:=
[]
byte
(
verify
.
OrderId
)
orderI
D
:=
[]
byte
(
verify
.
OrderId
)
order
,
err
:=
action
.
getOrderByID
(
orderI
d
)
order
,
err
:=
action
.
getOrderByID
(
orderI
D
)
if
err
!=
nil
{
if
err
!=
nil
{
return
nil
,
ty
.
ErrRelayOrderNotExist
return
nil
,
ty
.
ErrRelayOrderNotExist
}
}
...
@@ -637,7 +637,7 @@ func (action *relayDB) verifyCmdTx(verify *ty.RelayVerifyCli) (*types.Receipt, e
...
@@ -637,7 +637,7 @@ func (action *relayDB) verifyCmdTx(verify *ty.RelayVerifyCli) (*types.Receipt, e
kv
=
append
(
kv
,
receipt
.
KV
...
)
kv
=
append
(
kv
,
receipt
.
KV
...
)
kv
=
append
(
kv
,
receiptTransfer
.
KV
...
)
kv
=
append
(
kv
,
receiptTransfer
.
KV
...
)
kv
=
append
(
kv
,
orderKV
...
)
kv
=
append
(
kv
,
orderKV
...
)
return
&
types
.
Receipt
{
types
.
ExecOk
,
kv
,
logs
},
nil
return
&
types
.
Receipt
{
Ty
:
types
.
ExecOk
,
KV
:
kv
,
Logs
:
logs
},
nil
}
}
...
@@ -648,7 +648,7 @@ func saveBtcLastHead(db dbm.KV, head *ty.RelayLastRcvBtcHeader) (set []*types.Ke
...
@@ -648,7 +648,7 @@ func saveBtcLastHead(db dbm.KV, head *ty.RelayLastRcvBtcHeader) (set []*types.Ke
value
:=
types
.
Encode
(
head
)
value
:=
types
.
Encode
(
head
)
key
:=
[]
byte
(
btcLastHead
)
key
:=
[]
byte
(
btcLastHead
)
set
=
append
(
set
,
&
types
.
KeyValue
{
key
,
value
})
set
=
append
(
set
,
&
types
.
KeyValue
{
Key
:
key
,
Value
:
value
})
for
i
:=
0
;
i
<
len
(
set
);
i
++
{
for
i
:=
0
;
i
<
len
(
set
);
i
++
{
db
.
Set
(
set
[
i
]
.
GetKey
(),
set
[
i
]
.
Value
)
db
.
Set
(
set
[
i
]
.
GetKey
(),
set
[
i
]
.
Value
)
...
@@ -714,5 +714,5 @@ func (action *relayDB) saveBtcHeader(headers *ty.BtcHeaders, localDb dbm.KVDB) (
...
@@ -714,5 +714,5 @@ func (action *relayDB) saveBtcHeader(headers *ty.BtcHeaders, localDb dbm.KVDB) (
log
.
Log
=
types
.
Encode
(
receipt
)
log
.
Log
=
types
.
Encode
(
receipt
)
logs
=
append
(
logs
,
log
)
logs
=
append
(
logs
,
log
)
kv
=
saveBtcLastHead
(
action
.
db
,
preHead
)
kv
=
saveBtcLastHead
(
action
.
db
,
preHead
)
return
&
types
.
Receipt
{
types
.
ExecOk
,
kv
,
logs
},
nil
return
&
types
.
Receipt
{
Ty
:
types
.
ExecOk
,
KV
:
kv
,
Logs
:
logs
},
nil
}
}
plugin/dapp/relay/executor/relaydb_test.go
View file @
7f73d32d
This diff is collapsed.
Click to expand it.
plugin/dapp/relay/rpc/rpc.go
View file @
7f73d32d
...
@@ -11,7 +11,7 @@ import (
...
@@ -11,7 +11,7 @@ import (
ty
"github.com/33cn/plugin/plugin/dapp/relay/types"
ty
"github.com/33cn/plugin/plugin/dapp/relay/types"
)
)
func
C
reateRawRelayOrderTx
(
parm
*
ty
.
RelayCreate
)
([]
byte
,
error
)
{
func
c
reateRawRelayOrderTx
(
parm
*
ty
.
RelayCreate
)
([]
byte
,
error
)
{
if
parm
==
nil
{
if
parm
==
nil
{
return
nil
,
types
.
ErrInvalidParam
return
nil
,
types
.
ErrInvalidParam
}
}
...
@@ -19,21 +19,21 @@ func CreateRawRelayOrderTx(parm *ty.RelayCreate) ([]byte, error) {
...
@@ -19,21 +19,21 @@ func CreateRawRelayOrderTx(parm *ty.RelayCreate) ([]byte, error) {
return
types
.
CallCreateTx
(
types
.
ExecName
(
ty
.
RelayX
),
"Create"
,
&
v
)
return
types
.
CallCreateTx
(
types
.
ExecName
(
ty
.
RelayX
),
"Create"
,
&
v
)
}
}
func
C
reateRawRelayAcceptTx
(
parm
*
ty
.
RelayAccept
)
([]
byte
,
error
)
{
func
c
reateRawRelayAcceptTx
(
parm
*
ty
.
RelayAccept
)
([]
byte
,
error
)
{
if
parm
==
nil
{
if
parm
==
nil
{
return
nil
,
types
.
ErrInvalidParam
return
nil
,
types
.
ErrInvalidParam
}
}
return
types
.
CallCreateTx
(
types
.
ExecName
(
ty
.
RelayX
),
"Accept"
,
parm
)
return
types
.
CallCreateTx
(
types
.
ExecName
(
ty
.
RelayX
),
"Accept"
,
parm
)
}
}
func
C
reateRawRelayRevokeTx
(
parm
*
ty
.
RelayRevoke
)
([]
byte
,
error
)
{
func
c
reateRawRelayRevokeTx
(
parm
*
ty
.
RelayRevoke
)
([]
byte
,
error
)
{
if
parm
==
nil
{
if
parm
==
nil
{
return
nil
,
types
.
ErrInvalidParam
return
nil
,
types
.
ErrInvalidParam
}
}
return
types
.
CallCreateTx
(
types
.
ExecName
(
ty
.
RelayX
),
"Revoke"
,
parm
)
return
types
.
CallCreateTx
(
types
.
ExecName
(
ty
.
RelayX
),
"Revoke"
,
parm
)
}
}
func
C
reateRawRelayConfirmTx
(
parm
*
ty
.
RelayConfirmTx
)
([]
byte
,
error
)
{
func
c
reateRawRelayConfirmTx
(
parm
*
ty
.
RelayConfirmTx
)
([]
byte
,
error
)
{
if
parm
==
nil
{
if
parm
==
nil
{
return
nil
,
types
.
ErrInvalidParam
return
nil
,
types
.
ErrInvalidParam
}
}
...
@@ -41,7 +41,7 @@ func CreateRawRelayConfirmTx(parm *ty.RelayConfirmTx) ([]byte, error) {
...
@@ -41,7 +41,7 @@ func CreateRawRelayConfirmTx(parm *ty.RelayConfirmTx) ([]byte, error) {
return
types
.
CallCreateTx
(
types
.
ExecName
(
ty
.
RelayX
),
"ConfirmTx"
,
parm
)
return
types
.
CallCreateTx
(
types
.
ExecName
(
ty
.
RelayX
),
"ConfirmTx"
,
parm
)
}
}
func
C
reateRawRelayVerifyBTCTx
(
parm
*
ty
.
RelayVerifyCli
)
([]
byte
,
error
)
{
func
c
reateRawRelayVerifyBTCTx
(
parm
*
ty
.
RelayVerifyCli
)
([]
byte
,
error
)
{
if
parm
==
nil
{
if
parm
==
nil
{
return
nil
,
types
.
ErrInvalidParam
return
nil
,
types
.
ErrInvalidParam
}
}
...
@@ -49,7 +49,7 @@ func CreateRawRelayVerifyBTCTx(parm *ty.RelayVerifyCli) ([]byte, error) {
...
@@ -49,7 +49,7 @@ func CreateRawRelayVerifyBTCTx(parm *ty.RelayVerifyCli) ([]byte, error) {
return
types
.
CallCreateTx
(
types
.
ExecName
(
ty
.
RelayX
),
"VerifyCli"
,
&
v
)
return
types
.
CallCreateTx
(
types
.
ExecName
(
ty
.
RelayX
),
"VerifyCli"
,
&
v
)
}
}
func
C
reateRawRelaySaveBTCHeadTx
(
parm
*
ty
.
BtcHeader
)
([]
byte
,
error
)
{
func
c
reateRawRelaySaveBTCHeadTx
(
parm
*
ty
.
BtcHeader
)
([]
byte
,
error
)
{
if
parm
==
nil
{
if
parm
==
nil
{
return
nil
,
types
.
ErrInvalidParam
return
nil
,
types
.
ErrInvalidParam
}
}
...
@@ -66,8 +66,8 @@ func CreateRawRelaySaveBTCHeadTx(parm *ty.BtcHeader) ([]byte, error) {
...
@@ -66,8 +66,8 @@ func CreateRawRelaySaveBTCHeadTx(parm *ty.BtcHeader) ([]byte, error) {
return
types
.
CallCreateTx
(
types
.
ExecName
(
ty
.
RelayX
),
"BtcHeaders"
,
v
)
return
types
.
CallCreateTx
(
types
.
ExecName
(
ty
.
RelayX
),
"BtcHeaders"
,
v
)
}
}
func
(
c
*
J
rpc
)
CreateRawRelayOrderTx
(
in
*
ty
.
RelayCreate
,
result
*
interface
{})
error
{
func
(
c
*
j
rpc
)
CreateRawRelayOrderTx
(
in
*
ty
.
RelayCreate
,
result
*
interface
{})
error
{
reply
,
err
:=
C
reateRawRelayOrderTx
(
in
)
reply
,
err
:=
c
reateRawRelayOrderTx
(
in
)
if
err
!=
nil
{
if
err
!=
nil
{
return
err
return
err
}
}
...
@@ -75,8 +75,8 @@ func (c *Jrpc) CreateRawRelayOrderTx(in *ty.RelayCreate, result *interface{}) er
...
@@ -75,8 +75,8 @@ func (c *Jrpc) CreateRawRelayOrderTx(in *ty.RelayCreate, result *interface{}) er
return
nil
return
nil
}
}
func
(
c
*
J
rpc
)
CreateRawRelayAcceptTx
(
in
*
ty
.
RelayAccept
,
result
*
interface
{})
error
{
func
(
c
*
j
rpc
)
CreateRawRelayAcceptTx
(
in
*
ty
.
RelayAccept
,
result
*
interface
{})
error
{
reply
,
err
:=
C
reateRawRelayAcceptTx
(
in
)
reply
,
err
:=
c
reateRawRelayAcceptTx
(
in
)
if
err
!=
nil
{
if
err
!=
nil
{
return
err
return
err
}
}
...
@@ -85,8 +85,8 @@ func (c *Jrpc) CreateRawRelayAcceptTx(in *ty.RelayAccept, result *interface{}) e
...
@@ -85,8 +85,8 @@ func (c *Jrpc) CreateRawRelayAcceptTx(in *ty.RelayAccept, result *interface{}) e
return
nil
return
nil
}
}
func
(
c
*
J
rpc
)
CreateRawRelayRevokeTx
(
in
*
ty
.
RelayRevoke
,
result
*
interface
{})
error
{
func
(
c
*
j
rpc
)
CreateRawRelayRevokeTx
(
in
*
ty
.
RelayRevoke
,
result
*
interface
{})
error
{
reply
,
err
:=
C
reateRawRelayRevokeTx
(
in
)
reply
,
err
:=
c
reateRawRelayRevokeTx
(
in
)
if
err
!=
nil
{
if
err
!=
nil
{
return
err
return
err
}
}
...
@@ -95,8 +95,8 @@ func (c *Jrpc) CreateRawRelayRevokeTx(in *ty.RelayRevoke, result *interface{}) e
...
@@ -95,8 +95,8 @@ func (c *Jrpc) CreateRawRelayRevokeTx(in *ty.RelayRevoke, result *interface{}) e
return
nil
return
nil
}
}
func
(
c
*
J
rpc
)
CreateRawRelayConfirmTx
(
in
*
ty
.
RelayConfirmTx
,
result
*
interface
{})
error
{
func
(
c
*
j
rpc
)
CreateRawRelayConfirmTx
(
in
*
ty
.
RelayConfirmTx
,
result
*
interface
{})
error
{
reply
,
err
:=
C
reateRawRelayConfirmTx
(
in
)
reply
,
err
:=
c
reateRawRelayConfirmTx
(
in
)
if
err
!=
nil
{
if
err
!=
nil
{
return
err
return
err
}
}
...
@@ -105,8 +105,8 @@ func (c *Jrpc) CreateRawRelayConfirmTx(in *ty.RelayConfirmTx, result *interface{
...
@@ -105,8 +105,8 @@ func (c *Jrpc) CreateRawRelayConfirmTx(in *ty.RelayConfirmTx, result *interface{
return
nil
return
nil
}
}
func
(
c
*
J
rpc
)
CreateRawRelayVerifyBTCTx
(
in
*
ty
.
RelayVerifyCli
,
result
*
interface
{})
error
{
func
(
c
*
j
rpc
)
CreateRawRelayVerifyBTCTx
(
in
*
ty
.
RelayVerifyCli
,
result
*
interface
{})
error
{
reply
,
err
:=
C
reateRawRelayVerifyBTCTx
(
in
)
reply
,
err
:=
c
reateRawRelayVerifyBTCTx
(
in
)
if
err
!=
nil
{
if
err
!=
nil
{
return
err
return
err
}
}
...
@@ -114,8 +114,8 @@ func (c *Jrpc) CreateRawRelayVerifyBTCTx(in *ty.RelayVerifyCli, result *interfac
...
@@ -114,8 +114,8 @@ func (c *Jrpc) CreateRawRelayVerifyBTCTx(in *ty.RelayVerifyCli, result *interfac
return
nil
return
nil
}
}
func
(
c
*
J
rpc
)
CreateRawRelaySaveBTCHeadTx
(
in
*
ty
.
BtcHeader
,
result
*
interface
{})
error
{
func
(
c
*
j
rpc
)
CreateRawRelaySaveBTCHeadTx
(
in
*
ty
.
BtcHeader
,
result
*
interface
{})
error
{
reply
,
err
:=
C
reateRawRelaySaveBTCHeadTx
(
in
)
reply
,
err
:=
c
reateRawRelaySaveBTCHeadTx
(
in
)
if
err
!=
nil
{
if
err
!=
nil
{
return
err
return
err
}
}
...
...
plugin/dapp/relay/rpc/rpc_test.go
View file @
7f73d32d
...
@@ -16,6 +16,6 @@ func newTestChannelClient() *channelClient {
...
@@ -16,6 +16,6 @@ func newTestChannelClient() *channelClient {
}
}
}
}
func
newTestJrpcClient
()
*
J
rpc
{
func
newTestJrpcClient
()
*
j
rpc
{
return
&
J
rpc
{
cli
:
newTestChannelClient
()}
return
&
j
rpc
{
cli
:
newTestChannelClient
()}
}
}
plugin/dapp/relay/rpc/types.go
View file @
7f73d32d
...
@@ -8,11 +8,11 @@ import (
...
@@ -8,11 +8,11 @@ import (
"github.com/33cn/chain33/rpc/types"
"github.com/33cn/chain33/rpc/types"
)
)
type
J
rpc
struct
{
type
j
rpc
struct
{
cli
*
channelClient
cli
*
channelClient
}
}
type
G
rpc
struct
{
type
g
rpc
struct
{
*
channelClient
*
channelClient
}
}
...
@@ -20,8 +20,9 @@ type channelClient struct {
...
@@ -20,8 +20,9 @@ type channelClient struct {
types
.
ChannelClient
types
.
ChannelClient
}
}
// Init relay rpc register
func
Init
(
name
string
,
s
types
.
RPCServer
)
{
func
Init
(
name
string
,
s
types
.
RPCServer
)
{
cli
:=
&
channelClient
{}
cli
:=
&
channelClient
{}
grpc
:=
&
G
rpc
{
channelClient
:
cli
}
grpc
:=
&
g
rpc
{
channelClient
:
cli
}
cli
.
Init
(
name
,
s
,
&
J
rpc
{
cli
:
cli
},
grpc
)
cli
.
Init
(
name
,
s
,
&
j
rpc
{
cli
:
cli
},
grpc
)
}
}
plugin/dapp/relay/types/errors.go
View file @
7f73d32d
...
@@ -7,23 +7,40 @@ package types
...
@@ -7,23 +7,40 @@ package types
import
"errors"
import
"errors"
var
(
var
(
ErrRelayBalanceNotEnough
=
errors
.
New
(
"ErrRelaySellBalanceNotEnough"
)
// ErrRelayOrderNotExist relay order not exist
ErrRelayOrderNotExist
=
errors
.
New
(
"ErrRelayOrderNotExist"
)
ErrRelayOrderNotExist
=
errors
.
New
(
"ErrRelayOrderNotExist"
)
// ErrRelayOrderOnSell relay order on sell status
ErrRelayOrderOnSell
=
errors
.
New
(
"ErrRelayOrderOnSell"
)
ErrRelayOrderOnSell
=
errors
.
New
(
"ErrRelayOrderOnSell"
)
// ErrRelayOrderStatusErr relay order status err
ErrRelayOrderStatusErr
=
errors
.
New
(
"ErrRelayOrderStatusErr"
)
ErrRelayOrderStatusErr
=
errors
.
New
(
"ErrRelayOrderStatusErr"
)
// ErrRelayOrderParamErr relay order parameter err
ErrRelayOrderParamErr
=
errors
.
New
(
"ErrRelayOrderParamErr"
)
ErrRelayOrderParamErr
=
errors
.
New
(
"ErrRelayOrderParamErr"
)
// ErrRelayOrderSoldout order has been sold
ErrRelayOrderSoldout
=
errors
.
New
(
"ErrRelayOrderSoldout"
)
ErrRelayOrderSoldout
=
errors
.
New
(
"ErrRelayOrderSoldout"
)
// ErrRelayOrderRevoked order revoked
ErrRelayOrderRevoked
=
errors
.
New
(
"ErrRelayOrderRevoked"
)
ErrRelayOrderRevoked
=
errors
.
New
(
"ErrRelayOrderRevoked"
)
// ErrRelayOrderConfirming order is confirming, not time out
ErrRelayOrderConfirming
=
errors
.
New
(
"ErrRelayOrderConfirming"
)
ErrRelayOrderConfirming
=
errors
.
New
(
"ErrRelayOrderConfirming"
)
// ErrRelayOrderFinished order has finished
ErrRelayOrderFinished
=
errors
.
New
(
"ErrRelayOrderFinished"
)
ErrRelayOrderFinished
=
errors
.
New
(
"ErrRelayOrderFinished"
)
// ErrRelayReturnAddr relay order return addr error
ErrRelayReturnAddr
=
errors
.
New
(
"ErrRelayReturnAddr"
)
ErrRelayReturnAddr
=
errors
.
New
(
"ErrRelayReturnAddr"
)
// ErrRelayVerify order is verifying
ErrRelayVerify
=
errors
.
New
(
"ErrRelayVerify"
)
ErrRelayVerify
=
errors
.
New
(
"ErrRelayVerify"
)
// ErrRelayVerifyAddrNotFound order verify addr not found
ErrRelayVerifyAddrNotFound
=
errors
.
New
(
"ErrRelayVerifyAddrNotFound"
)
ErrRelayVerifyAddrNotFound
=
errors
.
New
(
"ErrRelayVerifyAddrNotFound"
)
// ErrRelayWaitBlocksErr order wait block not enough
ErrRelayWaitBlocksErr
=
errors
.
New
(
"ErrRelayWaitBlocks"
)
ErrRelayWaitBlocksErr
=
errors
.
New
(
"ErrRelayWaitBlocks"
)
// ErrRelayCoinTxHashUsed order confirm tx has been used
ErrRelayCoinTxHashUsed
=
errors
.
New
(
"ErrRelayCoinTxHashUsed"
)
ErrRelayCoinTxHashUsed
=
errors
.
New
(
"ErrRelayCoinTxHashUsed"
)
// ErrRelayBtcTxTimeErr btc tx time not reasonable
ErrRelayBtcTxTimeErr
=
errors
.
New
(
"ErrRelayBtcTxTimeErr"
)
ErrRelayBtcTxTimeErr
=
errors
.
New
(
"ErrRelayBtcTxTimeErr"
)
// ErrRelayBtcHeadSequenceErr btc header sequence not continuous
ErrRelayBtcHeadSequenceErr
=
errors
.
New
(
"ErrRelayBtcHeadSequenceErr"
)
ErrRelayBtcHeadSequenceErr
=
errors
.
New
(
"ErrRelayBtcHeadSequenceErr"
)
// ErrRelayBtcHeadHashErr btc header hash not correct
ErrRelayBtcHeadHashErr
=
errors
.
New
(
"ErrRelayBtcHeadHashErr"
)
ErrRelayBtcHeadHashErr
=
errors
.
New
(
"ErrRelayBtcHeadHashErr"
)
// ErrRelayBtcHeadBitsErr rcv btc header bit not correct
ErrRelayBtcHeadBitsErr
=
errors
.
New
(
"ErrRelayBtcHeadBitsErr"
)
ErrRelayBtcHeadBitsErr
=
errors
.
New
(
"ErrRelayBtcHeadBitsErr"
)
// ErrRelayBtcHeadNewBitsErr calc btc header new bits error
ErrRelayBtcHeadNewBitsErr
=
errors
.
New
(
"ErrRelayBtcHeadNewBitsErr"
)
ErrRelayBtcHeadNewBitsErr
=
errors
.
New
(
"ErrRelayBtcHeadNewBitsErr"
)
)
)
plugin/dapp/relay/types/relay.go
View file @
7f73d32d
...
@@ -12,6 +12,7 @@ import (
...
@@ -12,6 +12,7 @@ import (
"github.com/33cn/chain33/types"
"github.com/33cn/chain33/types"
)
)
// RelayX name for executor
var
RelayX
=
"relay"
var
RelayX
=
"relay"
//var tlog = log.New("module", name)
//var tlog = log.New("module", name)
...
@@ -28,22 +29,29 @@ const (
...
@@ -28,22 +29,29 @@ const (
// relay
// relay
const
(
const
(
// RelayRevokeCreate revoke created order
RelayRevokeCreate
=
iota
RelayRevokeCreate
=
iota
// RelayRevokeAccept revoke accept order
RelayRevokeAccept
RelayRevokeAccept
)
)
const
(
const
(
// RelayOrderBuy define relay buy order
RelayOrderBuy
=
iota
RelayOrderBuy
=
iota
// RelayOrderSell define relay sell order
RelayOrderSell
RelayOrderSell
)
)
// RelayOrderOperation buy or sell operation
var
RelayOrderOperation
=
map
[
uint32
]
string
{
var
RelayOrderOperation
=
map
[
uint32
]
string
{
RelayOrderBuy
:
"buy"
,
RelayOrderBuy
:
"buy"
,
RelayOrderSell
:
"sell"
,
RelayOrderSell
:
"sell"
,
}
}
const
(
const
(
// RelayUnlock revoke order
RelayUnlock
=
iota
RelayUnlock
=
iota
// RelayCancel order owner cancel order
RelayCancel
RelayCancel
)
)
...
@@ -53,25 +61,30 @@ func init() {
...
@@ -53,25 +61,30 @@ func init() {
types
.
RegisterDappFork
(
RelayX
,
"Enable"
,
570000
)
types
.
RegisterDappFork
(
RelayX
,
"Enable"
,
570000
)
}
}
// NewType new relay type
func
NewType
()
*
RelayType
{
func
NewType
()
*
RelayType
{
c
:=
&
RelayType
{}
c
:=
&
RelayType
{}
c
.
SetChild
(
c
)
c
.
SetChild
(
c
)
return
c
return
c
}
}
func
(
at
*
RelayType
)
GetPayload
()
types
.
Message
{
// GetPayload return relay action msg
func
(
r
*
RelayType
)
GetPayload
()
types
.
Message
{
return
&
RelayAction
{}
return
&
RelayAction
{}
}
}
// RelayType relay exec type
type
RelayType
struct
{
type
RelayType
struct
{
types
.
ExecTypeBase
types
.
ExecTypeBase
}
}
func
(
b
*
RelayType
)
GetName
()
string
{
// GetName return relay name
func
(
r
*
RelayType
)
GetName
()
string
{
return
RelayX
return
RelayX
}
}
func
(
t
*
RelayType
)
GetLogMap
()
map
[
int64
]
*
types
.
LogInfo
{
// GetLogMap return receipt log map function
func
(
r
*
RelayType
)
GetLogMap
()
map
[
int64
]
*
types
.
LogInfo
{
return
map
[
int64
]
*
types
.
LogInfo
{
return
map
[
int64
]
*
types
.
LogInfo
{
TyLogRelayCreate
:
{
reflect
.
TypeOf
(
ReceiptRelayLog
{}),
"LogRelayCreate"
},
TyLogRelayCreate
:
{
reflect
.
TypeOf
(
ReceiptRelayLog
{}),
"LogRelayCreate"
},
TyLogRelayRevokeCreate
:
{
reflect
.
TypeOf
(
ReceiptRelayLog
{}),
"LogRelayRevokeCreate"
},
TyLogRelayRevokeCreate
:
{
reflect
.
TypeOf
(
ReceiptRelayLog
{}),
"LogRelayRevokeCreate"
},
...
@@ -84,16 +97,24 @@ func (t *RelayType) GetLogMap() map[int64]*types.LogInfo {
...
@@ -84,16 +97,24 @@ func (t *RelayType) GetLogMap() map[int64]*types.LogInfo {
}
}
const
(
const
(
// RelayActionCreate relay create order action
RelayActionCreate
=
iota
RelayActionCreate
=
iota
// RelayActionAccept accept order action
RelayActionAccept
RelayActionAccept
// RelayActionRevoke revoke order action
RelayActionRevoke
RelayActionRevoke
// RelayActionConfirmTx confirm tx action
RelayActionConfirmTx
RelayActionConfirmTx
// RelayActionVerifyTx relayd send this tx to verify btc tx
RelayActionVerifyTx
RelayActionVerifyTx
// RelayActionVerifyCmdTx verify tx by cli action
RelayActionVerifyCmdTx
RelayActionVerifyCmdTx
// RelayActionRcvBTCHeaders relay rcv BTC headers by this
RelayActionRcvBTCHeaders
RelayActionRcvBTCHeaders
)
)
func
(
t
*
RelayType
)
GetTypeMap
()
map
[
string
]
int32
{
// GetTypeMap get relay action type map
func
(
r
*
RelayType
)
GetTypeMap
()
map
[
string
]
int32
{
return
map
[
string
]
int32
{
return
map
[
string
]
int32
{
"Create"
:
RelayActionCreate
,
"Create"
:
RelayActionCreate
,
"Accept"
:
RelayActionAccept
,
"Accept"
:
RelayActionAccept
,
...
@@ -105,6 +126,7 @@ func (t *RelayType) GetTypeMap() map[string]int32 {
...
@@ -105,6 +126,7 @@ func (t *RelayType) GetTypeMap() map[string]int32 {
}
}
}
}
// ActionName return action name
func
(
r
RelayType
)
ActionName
(
tx
*
types
.
Transaction
)
string
{
func
(
r
RelayType
)
ActionName
(
tx
*
types
.
Transaction
)
string
{
var
relay
RelayAction
var
relay
RelayAction
err
:=
types
.
Decode
(
tx
.
Payload
,
&
relay
)
err
:=
types
.
Decode
(
tx
.
Payload
,
&
relay
)
...
@@ -132,6 +154,7 @@ func (r RelayType) ActionName(tx *types.Transaction) string {
...
@@ -132,6 +154,7 @@ func (r RelayType) ActionName(tx *types.Transaction) string {
return
"unknown"
return
"unknown"
}
}
// Amount return relay create bty amount
func
(
r
*
RelayType
)
Amount
(
tx
*
types
.
Transaction
)
(
int64
,
error
)
{
func
(
r
*
RelayType
)
Amount
(
tx
*
types
.
Transaction
)
(
int64
,
error
)
{
data
,
err
:=
r
.
DecodePayload
(
tx
)
data
,
err
:=
r
.
DecodePayload
(
tx
)
if
err
!=
nil
{
if
err
!=
nil
{
...
@@ -144,120 +167,9 @@ func (r *RelayType) Amount(tx *types.Transaction) (int64, error) {
...
@@ -144,120 +167,9 @@ func (r *RelayType) Amount(tx *types.Transaction) (int64, error) {
return
0
,
nil
return
0
,
nil
}
}
// TODO 暂时不修改实现, 先完成结构的重构
// CreateTx relay create tx TODO 暂时不修改实现, 先完成结构的重构
func
(
r
*
RelayType
)
CreateTx
(
action
string
,
message
json
.
RawMessage
)
(
*
types
.
Transaction
,
error
)
{
func
(
r
*
RelayType
)
CreateTx
(
action
string
,
message
json
.
RawMessage
)
(
*
types
.
Transaction
,
error
)
{
var
tx
*
types
.
Transaction
var
tx
*
types
.
Transaction
return
tx
,
nil
return
tx
,
nil
}
}
type
RelayCreateLog
struct
{
}
func
(
l
RelayCreateLog
)
Name
()
string
{
return
"LogRelayCreate"
}
func
(
l
RelayCreateLog
)
Decode
(
msg
[]
byte
)
(
interface
{},
error
)
{
var
logTmp
ReceiptRelayLog
err
:=
types
.
Decode
(
msg
,
&
logTmp
)
if
err
!=
nil
{
return
nil
,
err
}
return
logTmp
,
err
}
type
RelayRevokeCreateLog
struct
{
}
func
(
l
RelayRevokeCreateLog
)
Name
()
string
{
return
"LogRelayRevokeCreate"
}
func
(
l
RelayRevokeCreateLog
)
Decode
(
msg
[]
byte
)
(
interface
{},
error
)
{
var
logTmp
ReceiptRelayLog
err
:=
types
.
Decode
(
msg
,
&
logTmp
)
if
err
!=
nil
{
return
nil
,
err
}
return
logTmp
,
err
}
type
RelayAcceptLog
struct
{
}
func
(
l
RelayAcceptLog
)
Name
()
string
{
return
"LogRelayAccept"
}
func
(
l
RelayAcceptLog
)
Decode
(
msg
[]
byte
)
(
interface
{},
error
)
{
var
logTmp
ReceiptRelayLog
err
:=
types
.
Decode
(
msg
,
&
logTmp
)
if
err
!=
nil
{
return
nil
,
err
}
return
logTmp
,
err
}
type
RelayRevokeAcceptLog
struct
{
}
func
(
l
RelayRevokeAcceptLog
)
Name
()
string
{
return
"LogRelayRevokeAccept"
}
func
(
l
RelayRevokeAcceptLog
)
Decode
(
msg
[]
byte
)
(
interface
{},
error
)
{
var
logTmp
ReceiptRelayLog
err
:=
types
.
Decode
(
msg
,
&
logTmp
)
if
err
!=
nil
{
return
nil
,
err
}
return
logTmp
,
err
}
type
RelayConfirmTxLog
struct
{
}
func
(
l
RelayConfirmTxLog
)
Name
()
string
{
return
"LogRelayConfirmTx"
}
func
(
l
RelayConfirmTxLog
)
Decode
(
msg
[]
byte
)
(
interface
{},
error
)
{
var
logTmp
ReceiptRelayLog
err
:=
types
.
Decode
(
msg
,
&
logTmp
)
if
err
!=
nil
{
return
nil
,
err
}
return
logTmp
,
err
}
type
RelayFinishTxLog
struct
{
}
func
(
l
RelayFinishTxLog
)
Name
()
string
{
return
"LogRelayFinishTx"
}
func
(
l
RelayFinishTxLog
)
Decode
(
msg
[]
byte
)
(
interface
{},
error
)
{
var
logTmp
ReceiptRelayLog
err
:=
types
.
Decode
(
msg
,
&
logTmp
)
if
err
!=
nil
{
return
nil
,
err
}
return
logTmp
,
err
}
type
RelayRcvBTCHeadLog
struct
{
}
func
(
l
RelayRcvBTCHeadLog
)
Name
()
string
{
return
"LogRelayRcvBTCHead"
}
func
(
l
RelayRcvBTCHeadLog
)
Decode
(
msg
[]
byte
)
(
interface
{},
error
)
{
var
logTmp
ReceiptRelayRcvBTCHeaders
err
:=
types
.
Decode
(
msg
,
&
logTmp
)
if
err
!=
nil
{
return
nil
,
err
}
return
logTmp
,
err
}
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