Пример #1
0
        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");
            }
        }
Пример #2
0
        public Decimal GetBalance(String APIKEY, String PublicKey, Int32 Confirmations)
        {
            ATM.AtmClient atm = new ATM.AtmClient();

            return(atm.GetBalance(PublicKey, 1));
        }