From: HAOYUatHZ Date: Mon, 17 Jun 2019 06:41:55 +0000 (+0800) Subject: ??? X-Git-Url: http://git.osdn.net/view?a=commitdiff_plain;h=59fe3c5167d96380bf9f433d910f629be1c3dd0e;p=bytom%2Fvapor.git ??? --- diff --git a/federation/warder.go b/federation/warder.go index 5603dc93..3ca9c6c2 100644 --- a/federation/warder.go +++ b/federation/warder.go @@ -172,16 +172,66 @@ func (w *warder) proposeDestTx(tx *orm.CrossTransaction) (interface{}, string, e } // TODO: -func (w *warder) buildSidechainTx(tx *orm.CrossTransaction) (*vaporTypes.Tx, string, error) { - sidechainTx := &vaporTypes.Tx{} +func (w *warder) buildSidechainTx(ormTx *orm.CrossTransaction) (*vaporTypes.Tx, string, error) { + // sidechainTx := &vaporTypes.Tx{} - if err := w.db.Where(tx).UpdateColumn(&orm.CrossTransaction{ - DestTxHash: sql.NullString{sidechainTx.ID.String(), true}, + // tx * btmTypes.TxData + + txData := &vaporTypes.TxData{Version: 1} + // signInsts := []*SigningInstruction{} + + // for?{ + + // txInput := btmTypes.NewSpendInput(nil, *utxoInfo.SourceID, *assetID, utxo.Amount, utxoInfo.SourcePos, cp) + // tx.Inputs = append(tx.Inputs, txInput) + + // signInst := &SigningInstruction{} + // if utxo.Address == nil || utxo.Address.Wallet == nil { + // return signInst, nil + // } + + // path := pathForAddress(utxo.Address.Wallet.Idx, utxo.Address.Idx, utxo.Address.Change) + // for _, p := range path { + // signInst.DerivationPath = append(signInst.DerivationPath, hex.EncodeToString(p)) + // } + + // xPubs, err := signersToXPubs(utxo.Address.Wallet.WalletSigners) + // if err != nil { + // return nil, errors.Wrap(err, "signersToXPubs") + // } + + // derivedXPubs := chainkd.DeriveXPubs(xPubs, path) + // derivedPKs := chainkd.XPubKeys(derivedXPubs) + // if len(derivedPKs) == 1 { + // signInst.DataWitness = derivedPKs[0] + // signInst.Pubkey = hex.EncodeToString(derivedPKs[0]) + // } else if len(derivedPKs) > 1 { + // if signInst.DataWitness, err = vmutil.P2SPMultiSigProgram(derivedPKs, int(utxo.Address.Wallet.M)); err != nil { + // return nil, err + // } + // } + // return signInst, nil + + // signInsts = append(signInsts, signInst) + // balance[utxo.Asset.Asset] += utxo.Amount + + // } + + // add the payment output && handle the fee + // if err := addOutput(txData, address, asset, amount, netParams); err != nil { + // return nil, nil, errors.Wrap(err, "add payment output") + // } + + tx := vaporTypes.NewTx(*txData) + // addInputWitness(tx, signInsts) + + if err := w.db.Where(ormTx).UpdateColumn(&orm.CrossTransaction{ + DestTxHash: sql.NullString{tx.ID.String(), true}, }).Error; err != nil { return nil, "", err } - return sidechainTx, sidechainTx.ID.String(), nil + return tx, tx.ID.String(), nil } // TODO: