Commit 7f73d32d authored by mdj33's avatar mdj33 Committed by vipwzw

correct relay plugin lint error

parent 0ac1f080
...@@ -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 (
BlockStamp struct { blockStamp struct {
Height int32 Height int32
Hash chainhash.Hash Hash chainhash.Hash
} }
BlockMeta struct { blockMeta struct {
BlockStamp blockStamp
Time time.Time Time time.Time
} }
ClientConnected struct{} clientConnected struct{}
BlockConnected BlockMeta blockConnected blockMeta
BlockDisconnected BlockMeta blockDisconnected blockMeta
) )
type Params struct { type params struct {
*chaincfg.Params *chaincfg.Params
RPCClientPort string RPCClientPort string
RPCServerPort string RPCServerPort string
} }
var MainNetParams = Params{ var mainNetParams = params{
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 *BlockStamp currentBlock chan *blockStamp
quit chan struct{} quit chan struct{}
wg sync.WaitGroup wg sync.WaitGroup
started bool started bool
quitMtx sync.Mutex quitMtx sync.Mutex
} }
func NewBtcd(config *rpcclient.ConnConfig, reconnectAttempts int) (BtcClient, error) { func newBtcd(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: MainNetParams.Params, chainParams: mainNetParams.Params,
reconnectAttempts: reconnectAttempts, reconnectAttempts: reconnectAttempts,
enqueueNotification: make(chan interface{}), enqueueNotification: make(chan interface{}),
dequeueNotification: make(chan interface{}), dequeueNotification: make(chan interface{}),
currentBlock: make(chan *BlockStamp), currentBlock: make(chan *blockStamp),
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() (*BlockStamp, error) { func (b *btcdClient) BlockStamp() (*blockStamp, 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 <- ClientConnected{}: case b.enqueueNotification <- clientConnected{}:
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 <- BlockConnected{ case b.enqueueNotification <- blockConnected{
BlockStamp: BlockStamp{ blockStamp: blockStamp{
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 <- BlockDisconnected{ case b.enqueueNotification <- blockDisconnected{
BlockStamp: BlockStamp{ blockStamp: blockStamp{
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 := &BlockStamp{Hash: *hash, Height: height} bs := &blockStamp{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.(BlockConnected); ok { if n, ok := next.(blockConnected); ok {
bs = &BlockStamp{ bs = &blockStamp{
Height: n.Height, Height: n.Height,
Hash: n.Hash, Hash: n.Hash,
} }
......
...@@ -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, _ = NewBtcd(connCfg, reconnectAttempts) s.btc, _ = newBtcd(connCfg, reconnectAttempts)
} }
func (s *suiteBctd) TestGetBlockHeader() { func (s *suiteBctd) TestGetBlockHeader() {
......
...@@ -22,7 +22,7 @@ type btcWeb struct { ...@@ -22,7 +22,7 @@ type btcWeb struct {
httpClient *fasthttp.Client httpClient *fasthttp.Client
} }
func NewBtcWeb() (BtcClient, error) { func newBtcWeb() (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) (*Block, error) { func (b *btcWeb) getBlock(height uint64) (*block, 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.requestUrl(url) data, err := b.requestURL(url)
if err != nil { if err != nil {
return nil, err return nil, err
} }
var blocks = Blocks{} var blocks = blocks{}
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.requestUrl(url) data, err := b.requestURL(url)
if err != nil { if err != nil {
return nil, 0, err return nil, 0, err
} }
var blocks = LatestBlock{} var blocks = latestBlock{}
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.requestUrl(url) data, err := b.requestURL(url)
if err != nil { if err != nil {
return nil, err return nil, err
} }
var tx = TransactionResult{} var tx = transactionResult{}
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) requestUrl(url string) ([]byte, error) { func (b *btcWeb) requestURL(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
......
...@@ -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, _ = NewBtcWeb() s.btc, _ = newBtcWeb()
} }
func (s *suiteWeb) TestGetBlockHeader() { func (s *suiteWeb) TestGetBlockHeader() {
......
...@@ -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.AutoReconnect(ctx) c.autoReconnect(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) AutoReconnect(ctx context.Context) { func (c *Client33) autoReconnect(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()
} }
...@@ -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 {
Id string ID 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 {
Id string ID 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 {
......
...@@ -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}
} }
......
...@@ -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 := NewRelayDB("relayd", dir, 256) db := newRelayDB("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 = NewBtcd(config.Btcd.BitConnConfig(), config.Btcd.ReconnectAttempts) btc, err = newBtcd(config.Btcd.BitConnConfig(), config.Btcd.ReconnectAttempts)
} else { } else {
btc, err = NewBtcWeb() btc, err = newBtcWeb()
} }
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)
......
...@@ -14,7 +14,7 @@ var ( ...@@ -14,7 +14,7 @@ var (
privateKey = []byte("privateKey-relayd") privateKey = []byte("privateKey-relayd")
) )
type LatestBlock struct { type latestBlock 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 Header struct { type header 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 *Block) BtcHeader() *ty.BtcHeader { func (b *block) 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 Block struct { type block struct {
// Header // header
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 []TransactionDetails `json:"tx"` Tx []transactionDetails `json:"tx"`
} }
type TransactionDetails struct { type transactionDetails 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 []TxInput `json:"inputs"` Inputs []txInput `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 []TxOut `json:"out"` Outs []txOut `json:"out"`
} }
type TxInput struct { type txInput 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 TxOut struct { type txOut 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 Blocks struct { type blocks struct {
Blocks []Block `json:"blocks"` Blocks []block `json:"blocks"`
} }
type TransactionResult struct { type transactionResult struct {
Ver uint `json:"ver"` Ver uint `json:"ver"`
Inputs []Inputs `json:"inputs"` Inputs []inputs `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 []TxOut `json:"out"` Out []txOut `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 Inputs struct { type inputs struct {
Sequence uint `json:"sequence"` Sequence uint `json:"sequence"`
Witness string `json:"witness"` Witness string `json:"witness"`
PrevOut TxOut `json:"prev_out"` PrevOut txOut `json:"prev_out"`
Script string `json:"script"` Script string `json:"script"`
} }
func (t *TransactionResult) BtcTransaction() *ty.BtcTransaction { func (t *transactionResult) 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
......
...@@ -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 RelayOrder2Show var show relayOrder2Show
show.OrderId = order.Id show.OrderID = 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")
orderId, _ := cmd.Flags().GetString("order_id") orderID, _ := cmd.Flags().GetString("order_id")
txHash, _ := cmd.Flags().GetString("tx_hash") txHash, _ := cmd.Flags().GetString("tx_hash")
params := &ty.RelayConfirmTx{ params := &ty.RelayConfirmTx{
OrderId: orderId, OrderId: orderID,
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",
......
...@@ -4,8 +4,8 @@ ...@@ -4,8 +4,8 @@
package commands package commands
type RelayOrder2Show struct { type relayOrder2Show struct {
OrderId string `json:"orderid"` OrderID 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"`
......
...@@ -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(OrderIds [][]byte) (types.Message, error) { func (r *relay) getRelayOrderReply(OrderIDs [][]byte) (types.Message, error) {
OrderIdGot := make(map[string]bool) orderIDGot := make(map[string]bool)
var reply ty.ReplyRelayOrders var reply ty.ReplyRelayOrders
for _, OrderId := range OrderIds { for _, orderID := range OrderIDs {
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(OrderId []byte) (*ty.RelayOrder, error) { func (r *relay) getSellOrderFromDb(OrderID []byte) (*ty.RelayOrder, error) {
value, err := r.GetStateDB().Get(OrderId) value, err := r.GetStateDB().Get(OrderID)
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(OrderId []byte, ty int32) []*types.KeyValue { func (r *relay) getOrderKv(OrderID []byte, ty int32) []*types.KeyValue {
order, _ := r.getSellOrderFromDb(OrderId) order, _ := r.getSellOrderFromDb(OrderID)
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(OrderId []byte, ty int32) []*types.KeyValue { func (r *relay) getDeleteOrderKv(OrderID []byte, ty int32) []*types.KeyValue {
order, _ := r.getSellOrderFromDb(OrderId) order, _ := r.getSellOrderFromDb(OrderID)
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
......
...@@ -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
orderId string orderID 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.orderId)) order, _ := s.relay.getSellOrderFromDb([]byte(s.orderID))
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.orderId)) order, _ := s.relay.getSellOrderFromDb([]byte(s.orderID))
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.orderId = log.OrderId s.orderID = 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.orderId, OrderId: s.orderID,
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.orderId, OrderId: s.orderID,
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_merkleproof := []string{"e9a66845e05d5abc0ad04ec80f774a7e585c6e8db975962d069a522137b80c1d", strMerkleproof := []string{"e9a66845e05d5abc0ad04ec80f774a7e585c6e8db975962d069a522137b80c1d",
"ccdafb73d8dcd0173d5d5c3c9a0770d0b3953db889dab99ef05b1907518cb815"} "ccdafb73d8dcd0173d5d5c3c9a0770d0b3953db889dab99ef05b1907518cb815"}
proofs := make([][]byte, len(str_merkleproof)) proofs := make([][]byte, len(strMerkleproof))
for i, kk := range str_merkleproof { for i, kk := range strMerkleproof {
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.orderId, OrderId: s.orderID,
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.orderId)) OrderIds = append(OrderIds, []byte(s.orderID))
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.orderId)) OrderIds = append(OrderIds, []byte(s.orderID))
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.orderId)) OrderIds = append(OrderIds, []byte(s.orderID))
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.orderId)) OrderIds = append(OrderIds, []byte(s.orderID))
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{}
......
...@@ -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
} }
......
...@@ -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_enc := types.Encode(head) headEnc := types.Encode(head)
s.kvdb.On("Get", mock.Anything).Return(head_enc, nil).Once() s.kvdb.On("Get", mock.Anything).Return(headEnc, 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_merkleproof := []string{"e9a66845e05d5abc0ad04ec80f774a7e585c6e8db975962d069a522137b80c1d", strMerkleproof := []string{"e9a66845e05d5abc0ad04ec80f774a7e585c6e8db975962d069a522137b80c1d",
"ccdafb73d8dcd0173d5d5c3c9a0770d0b3953db889dab99ef05b1907518cb815"} "ccdafb73d8dcd0173d5d5c3c9a0770d0b3953db889dab99ef05b1907518cb815"}
proofs := make([][]byte, len(str_merkleproof)) proofs := make([][]byte, len(strMerkleproof))
for i, kk := range str_merkleproof { for i, kk := range strMerkleproof {
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)
} }
......
...@@ -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(orderId []byte) (*ty.RelayOrder, error) { func (action *relayDB) getOrderByID(orderID []byte) (*ty.RelayOrder, error) {
value, err := action.db.Get(orderId) value, err := action.db.Get(orderID)
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) {
orderId := []byte(revoke.OrderId) orderID := []byte(revoke.OrderId)
order, err := action.getOrderByID(orderId) order, err := action.getOrderByID(orderID)
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) {
orderId := []byte(accept.OrderId) orderID := []byte(accept.OrderId)
order, err := action.getOrderByID(orderId) order, err := action.getOrderByID(orderID)
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) {
orderIdByte := []byte(revoke.OrderId) orderIDByte := []byte(revoke.OrderId)
order, err := action.getOrderByID(orderIdByte) order, err := action.getOrderByID(orderIDByte)
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) {
orderId := []byte(confirm.OrderId) orderID := []byte(confirm.OrderId)
order, err := action.getOrderByID(orderId) order, err := action.getOrderByID(orderID)
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 orderId, if same orderId, means to modify the txHash //report Error if coinTxHash has been used and not same orderID, 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) {
orderId := []byte(verify.OrderId) orderID := []byte(verify.OrderId)
order, err := action.getOrderByID(orderId) order, err := action.getOrderByID(orderID)
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) {
orderId := []byte(verify.OrderId) orderID := []byte(verify.OrderId)
order, err := action.getOrderByID(orderId) order, err := action.getOrderByID(orderID)
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
} }
This diff is collapsed.
...@@ -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 CreateRawRelayOrderTx(parm *ty.RelayCreate) ([]byte, error) { func createRawRelayOrderTx(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 CreateRawRelayAcceptTx(parm *ty.RelayAccept) ([]byte, error) { func createRawRelayAcceptTx(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 CreateRawRelayRevokeTx(parm *ty.RelayRevoke) ([]byte, error) { func createRawRelayRevokeTx(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 CreateRawRelayConfirmTx(parm *ty.RelayConfirmTx) ([]byte, error) { func createRawRelayConfirmTx(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 CreateRawRelayVerifyBTCTx(parm *ty.RelayVerifyCli) ([]byte, error) { func createRawRelayVerifyBTCTx(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 CreateRawRelaySaveBTCHeadTx(parm *ty.BtcHeader) ([]byte, error) { func createRawRelaySaveBTCHeadTx(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 *Jrpc) CreateRawRelayOrderTx(in *ty.RelayCreate, result *interface{}) error { func (c *jrpc) CreateRawRelayOrderTx(in *ty.RelayCreate, result *interface{}) error {
reply, err := CreateRawRelayOrderTx(in) reply, err := createRawRelayOrderTx(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 *Jrpc) CreateRawRelayAcceptTx(in *ty.RelayAccept, result *interface{}) error { func (c *jrpc) CreateRawRelayAcceptTx(in *ty.RelayAccept, result *interface{}) error {
reply, err := CreateRawRelayAcceptTx(in) reply, err := createRawRelayAcceptTx(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 *Jrpc) CreateRawRelayRevokeTx(in *ty.RelayRevoke, result *interface{}) error { func (c *jrpc) CreateRawRelayRevokeTx(in *ty.RelayRevoke, result *interface{}) error {
reply, err := CreateRawRelayRevokeTx(in) reply, err := createRawRelayRevokeTx(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 *Jrpc) CreateRawRelayConfirmTx(in *ty.RelayConfirmTx, result *interface{}) error { func (c *jrpc) CreateRawRelayConfirmTx(in *ty.RelayConfirmTx, result *interface{}) error {
reply, err := CreateRawRelayConfirmTx(in) reply, err := createRawRelayConfirmTx(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 *Jrpc) CreateRawRelayVerifyBTCTx(in *ty.RelayVerifyCli, result *interface{}) error { func (c *jrpc) CreateRawRelayVerifyBTCTx(in *ty.RelayVerifyCli, result *interface{}) error {
reply, err := CreateRawRelayVerifyBTCTx(in) reply, err := createRawRelayVerifyBTCTx(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 *Jrpc) CreateRawRelaySaveBTCHeadTx(in *ty.BtcHeader, result *interface{}) error { func (c *jrpc) CreateRawRelaySaveBTCHeadTx(in *ty.BtcHeader, result *interface{}) error {
reply, err := CreateRawRelaySaveBTCHeadTx(in) reply, err := createRawRelaySaveBTCHeadTx(in)
if err != nil { if err != nil {
return err return err
} }
......
...@@ -16,6 +16,6 @@ func newTestChannelClient() *channelClient { ...@@ -16,6 +16,6 @@ func newTestChannelClient() *channelClient {
} }
} }
func newTestJrpcClient() *Jrpc { func newTestJrpcClient() *jrpc {
return &Jrpc{cli: newTestChannelClient()} return &jrpc{cli: newTestChannelClient()}
} }
...@@ -8,11 +8,11 @@ import ( ...@@ -8,11 +8,11 @@ import (
"github.com/33cn/chain33/rpc/types" "github.com/33cn/chain33/rpc/types"
) )
type Jrpc struct { type jrpc struct {
cli *channelClient cli *channelClient
} }
type Grpc struct { type grpc 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 := &Grpc{channelClient: cli} grpc := &grpc{channelClient: cli}
cli.Init(name, s, &Jrpc{cli: cli}, grpc) cli.Init(name, s, &jrpc{cli: cli}, grpc)
} }
...@@ -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")
) )
...@@ -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
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment