public static TransactionOutput Create(Fixed8 value, string address)
 {
     if (address == null) throw new ArgumentNullException(nameof(address));
     bool p2sh;
     UInt160 hash = Wallet.ToScriptHash(address, out p2sh);
     using (ScriptBuilder sb = new ScriptBuilder())
     {
         if (p2sh)
         {
             sb.Add(ScriptOp.OP_HASH160);
             sb.Push(hash.ToArray());
             sb.Add(ScriptOp.OP_EQUAL);
         }
         else
         {
             sb.Add(ScriptOp.OP_DUP);
             sb.Add(ScriptOp.OP_HASH160);
             sb.Push(hash.ToArray());
             sb.Add(ScriptOp.OP_EQUALVERIFY);
             sb.Add(ScriptOp.OP_CHECKSIG);
         }
         return new TransactionOutput
         {
             Value = value,
             Script = sb.ToArray()
         };
     }
 }