public string SendBitcoins(String APIKEY, String FromCardId, String FromCardPublicAddress, String encryptedPrivateKey, String DestinationCardId, Decimal BitcoinAmount, Decimal FiatAmount, String Currency) { // using (DC.Data.DiamondCircle_dbEntities db = new DC.Data.DiamondCircle_dbEntities()) // { // } // For the FromCardId, Obtain the password. String Password = "******"; // Check that the FromCardPublicAddress = what is in the cards table for this cardID String DBCardPublicAddress = FromCardPublicAddress; Boolean AutoTopUp = true; // For the DesintationCardId, obtain the DestinationAddress from the Cards Table String DestinationAddress = "1QJQMFhgyoiLLUZXpr913T2TaEaX7pNFaF"; if (DBCardPublicAddress == DestinationAddress) { Card.CardClient card = new Card.CardClient(); ATM.AtmClient atm = new ATM.AtmClient(); Decimal CardBalance = atm.GetBalance(FromCardPublicAddress, 1); Decimal MinersFee = 0.0001M; if (CardBalance >= (BitcoinAmount + MinersFee)) { String result = atm.SendBitcoins(encryptedPrivateKey, Password, DestinationAddress, BitcoinAmount); return(result); } else { if (AutoTopUp) { // Purchase more coins to cover the difference Exchange.ExchangeClient ExchangeClient = new Exchange.ExchangeClient(); Exchange.Margin margin = ExchangeClient.GetMargin(Currency, 0); Decimal PurchaseBitcoinsAmount = FiatAmount * margin.Buy; // PurchaseFiatAmount = PurchaseBitcoinsAmount; PurchaseBitcoins(APIKEY, FromCardId, DestinationAddress, FiatAmount, Currency); // Empty the wallet String result = atm.SendBitcoins(encryptedPrivateKey, Password, DestinationAddress, CardBalance); return(""); } else { return("Refer to DD/CC Issuer"); } } } else { return("Invalid Card - Public Address does not match entry in Database. Card may have been tampered with"); } }
public Decimal GetBalance(String APIKEY, String PublicKey, Int32 Confirmations) { ATM.AtmClient atm = new ATM.AtmClient(); return(atm.GetBalance(PublicKey, 1)); }