package test
import (
- "crypto/rand"
"encoding/json"
"fmt"
"time"
return err
}
-func (g *TxGenerator) createAsset(accountAlias string, assetAlias string) (*asset.Asset, error) {
- acc, err := g.AccountManager.FindByAlias(accountAlias)
- if err != nil {
- return nil, err
- }
- return g.Assets.Define(acc.XPubs, len(acc.XPubs), nil, 0, assetAlias, nil)
-}
-
func (g *TxGenerator) mockUtxo(accountAlias, assetAlias string, amount uint64) (*account.UTXO, error) {
ctrlProg, err := g.createControlProgram(accountAlias, false)
if err != nil {
return g.AddTxInput(txInput, signInst)
}
-// AddIssuanceInput add a issue input
-func (g *TxGenerator) AddIssuanceInput(assetAlias string, amount uint64) error {
- asset, err := g.Assets.FindByAlias(assetAlias)
- if err != nil {
- return err
- }
-
- var nonce [8]byte
- _, err = rand.Read(nonce[:])
- if err != nil {
- return err
- }
- issuanceInput := types.NewIssuanceInput(nonce[:], amount, asset.IssuanceProgram, nil, asset.RawDefinitionByte)
- signInstruction := &txbuilder.SigningInstruction{}
- path := signers.GetBip0032Path(asset.Signer, signers.AssetKeySpace)
- signInstruction.AddRawWitnessKeys(asset.Signer.XPubs, path, asset.Signer.Quorum)
- g.Builder.RestrictMinTime(time.Now())
- return g.Builder.AddInput(issuanceInput, signInstruction)
-}
-
// AddTxOutput add a tx output
func (g *TxGenerator) AddTxOutput(accountAlias, assetAlias string, amount uint64) error {
assetAmount, err := g.assetAmount(assetAlias, uint64(amount))