OSDN Git Service

rename (#465)
[bytom/vapor.git] / toolbar / mergeutxo / merger_utxo.go
1 package mergeutxo
2
3 import (
4         "github.com/bytom/vapor/consensus"
5         "github.com/bytom/vapor/protocol/bc"
6         "github.com/bytom/vapor/protocol/bc/types"
7         "github.com/bytom/vapor/toolbar/apinode"
8 )
9
10 func MergeUTXO(hostPort, accountID, password, address string, amount uint64) ([]string, error) {
11         actions := []interface{}{}
12
13         actions = append(actions, &apinode.ControlAddressAction{
14                 Address:     address,
15                 AssetAmount: &bc.AssetAmount{AssetId: consensus.BTMAssetID, Amount: amount},
16         })
17
18         actions = append(actions, &apinode.SpendAccountAction{
19                 AccountID:   accountID,
20                 AssetAmount: &bc.AssetAmount{AssetId: consensus.BTMAssetID, Amount: amount},
21         })
22
23         node := apinode.NewNode(hostPort)
24
25         tpls, err := node.BuildChainTxs(actions)
26         if err != nil {
27                 return []string{}, err
28         }
29
30         tpls, err = node.SignTxs(tpls, password)
31         if err != nil {
32                 return []string{}, err
33         }
34
35         txs := []*types.Tx{}
36         for _, tpl := range tpls {
37                 txs = append(txs, tpl.Transaction)
38         }
39
40         return node.SubmitTxs(txs)
41 }