public async Task <IActionResult> GenerateUnconfirmedScript([FromBody] MultisigModel model) { if (!ModelState.IsValid) { return(BadRequest(ModelState.Values.SelectMany(v => v.Errors).FirstOrDefault().ErrorMessage)); } var trx = await _transactionRepository.GetByHash(model.Hash); if (trx == null) { return(BadRequest($"Unable to load transaction '{model.Hash}'.")); } var merchant = await _merchantRepository.GetByUser(trx.UserId); if (string.IsNullOrWhiteSpace(merchant.XPubKey)) { return(BadRequest("You can not continue to create a transaction because the seller's xPub key is incorrect.")); } try { var founds = MAD.Deposit(trx.Amount); Tuple <string, string> script = null; script = _bitcoinService.CreateTransactionElectrum( model.XPubKey, merchant.XPubKey, founds.Item1, founds.Item2); if (script != null) { trx.XPubKey = model.XPubKey; trx.UnconfirmedDepositTx = script.Item1; trx.RedeemScript = script.Item2; trx.Status = StatusTransaction.UnconfirmedDeposit; trx.Email = model.Email; await _transactionRepository.Update(trx); } return(Json(new { unconfirmedScript = script?.Item1 })); } catch (Exception e) { _logger.LogError(e, e.Message); return(this.BadRequest("Something bad happened while transaction was created.")); } }
public async Task <ActionResult> Create([Bind(Include = "MAD_ID,MAD_LIEU_ENLEV,MAD_ADRES_ENLEV,MAD_DATE,MAD_OBS")] MAD mAD) { try { if (ModelState.IsValid) { db.MADs.Add(mAD); await db.SaveChangesAsync(); return(RedirectToAction("Index")); } } catch (RetryLimitExceededException /* dex */) { ModelState.AddModelError(" ", "Unable to save changes. Try again, and if the problem persists see your system administrator"); } return(View(mAD)); }
public async Task <IActionResult> DeployContract([FromBody] ContractModel model) { var trx = await _transactionRepository.GetByHash(model.Hash); var userMerchant = await _merchantRepository.GetByUser(trx.UserId); var user = await _userManager.FindByIdAsync(trx.UserId); if (trx == null) { throw new ApplicationException($"Unable to load transaction '{model.Hash}'."); } var contract = new Tuple <string, string>(null, null); if (await CompareBalance(trx)) { var foundsWithdraw = MAD.Withdraw(trx.Amount); var foundsDeposit = MAD.Deposit(trx.Amount); var balance = await this._ethereumService.GetBalance(trx.Address); contract = await _ethereumService.DeployContract(trx.EtherId, userMerchant.EthereumAddress, trx.XPubKey, foundsWithdraw.Item1, foundsWithdraw.Item2, foundsDeposit.Item1, balance, trx.Address, trx.PassPhrase); trx.ContractAddress = contract.Item1; trx.Status = StatusTransaction.Deployed; var message = "Buyer has deploy contract on blockchain."; await _transactionRepository.Update(trx); await _logRepository.Add(trx.Id, message); await _emailSender.SendEmailTransactionAsync(user.Email, message); } return(Json(new { Abi = contract.Item2, ContractAddress = contract.Item1 })); }
/// <summary> /// Init electrum transaction. /// </summary> /// <param name="trx">Transaction data model.</param> /// <param name="model">Transaction view model.</param> private async Task InitializationElectrum(Transaction trx, TransactionViewModel model) { if (trx.Status == StatusTransaction.FullDeposit && _bitcoinService.CheckInTransaction(trx.TrxDepositId, trx.RedeemScript)) { var userMerchant = await _merchantRepository.GetByUser(trx.UserId); var founds = MAD.Withdraw(trx.Amount); var script = _bitcoinService.CreateOutTransactionElectrum( trx.RedeemScript, trx.XPubKey, userMerchant.XPubKey, founds.Item1, founds.Item2); if (script != null) { trx.UnconfirmedWithdrawTx = script; trx.Status = StatusTransaction.UnconfirmedWithdraw; model.UnconfirmedWithdrawTx = script; await _transactionRepository.Update(trx); } } }
/// <summary> /// methode permettant d'ajouter une MAD à la BDD /// </summary> /// <param name="rezMad"></param> public void AddMad(MAD rezMad) { madDao.AddMad(rezMad); }
public bool crediter(MAD montant) { this.solde = this.solde.ajouter(montant); return(true); }
/// <summary> /// methode permettant d'ajouter une MAD à la BDD /// </summary> /// <param name="rezMad"></param> public void AddMad(MAD rezMad) { db.MADs.Add(rezMad); db.SaveChanges(); }