X-Git-Url: http://git.osdn.net/view?p=bytom%2Fvapor.git;a=blobdiff_plain;f=toolbar%2Fmergeutxo%2Fmerger_utxo.go;fp=toolbar%2Fmergeutxo%2Fmerger_utxo.go;h=d8ca307a199c0eeb516c2c1e9fac71e05fe3ecf6;hp=0000000000000000000000000000000000000000;hb=78fda61ff30886f193b88105d211136cac588fd6;hpb=c5dcab59bbdcbf29693a368d4e42522a55954c71 diff --git a/toolbar/mergeutxo/merger_utxo.go b/toolbar/mergeutxo/merger_utxo.go new file mode 100755 index 00000000..d8ca307a --- /dev/null +++ b/toolbar/mergeutxo/merger_utxo.go @@ -0,0 +1,41 @@ +package mergeutxo + +import ( + "github.com/vapor/consensus" + "github.com/vapor/protocol/bc" + "github.com/vapor/protocol/bc/types" + "github.com/vapor/toolbar/apinode" +) + +func MergeUTXO(hostPort, accountID, password, address string, amount uint64) ([]string, error) { + actions := []interface{}{} + + actions = append(actions, &apinode.ControlAddressAction{ + Address: address, + AssetAmount: &bc.AssetAmount{AssetId: consensus.BTMAssetID, Amount: amount}, + }) + + actions = append(actions, &apinode.SpendAccountAction{ + AccountID: accountID, + AssetAmount: &bc.AssetAmount{AssetId: consensus.BTMAssetID, Amount: amount}, + }) + + node := apinode.NewNode(hostPort) + + tpls, err := node.BuildChainTxs(actions) + if err != nil { + return []string{}, err + } + + tpls, err = node.SignTxs(tpls, password) + if err != nil { + return []string{}, err + } + + txs := []*types.Tx{} + for _, tpl := range tpls { + txs = append(txs, tpl.Transaction) + } + + return node.SubmitTxs(txs) +}