+ // create entry for VetoInput
+ vetoInput := bc.NewVetoInput(&prevoutID, uint64(i))
+ vetoInput.WitnessArguments = inp.Arguments
+ vetoVoteID := addEntry(vetoInput)
+ // setup mux
+ muxSources[i] = &bc.ValueSource{
+ Ref: &vetoVoteID,
+ Value: &inp.AssetAmount,
+ }
+ vetoInputs = append(vetoInputs, vetoInput)
+
+ case *CrossChainInput:
+ prog := &bc.Program{VmVersion: inp.VMVersion, Code: inp.ControlProgram}
+ src := &bc.ValueSource{
+ Ref: &inp.SourceID,
+ Value: &inp.AssetAmount,
+ Position: inp.SourcePosition,
+ }
+
+ prevout := bc.NewIntraChainOutput(src, prog, 0) // ordinal doesn't matter
+ mainchainOutputID := addEntry(prevout)
+
+ assetDefHash := bc.NewHash(sha3.Sum256(inp.AssetDefinition))
+ assetDef := &bc.AssetDefinition{
+ Data: &assetDefHash,
+ IssuanceProgram: &bc.Program{
+ VmVersion: inp.IssuanceVMVersion,
+ Code: inp.IssuanceProgram,
+ },
+ }