mirror of
https://github.com/haveno-dex/haveno-ts.git
synced 2025-05-24 09:21:11 -04:00
observe deposit txs before recording context after offer taken
This commit is contained in:
parent
6bd9f29063
commit
2f581d87b2
3 changed files with 15 additions and 11 deletions
6
dist/HavenoClient.js
vendored
6
dist/HavenoClient.js
vendored
|
@ -1037,8 +1037,10 @@ class HavenoClient {
|
||||||
.setPaymentAccountId(paymentAccountId);
|
.setPaymentAccountId(paymentAccountId);
|
||||||
if (amount)
|
if (amount)
|
||||||
request.setAmount(amount.toString());
|
request.setAmount(amount.toString());
|
||||||
HavenoUtils_1.default.log(0, "Taking offer with taker amount: " + amount);
|
const resp = await this._tradesClient.takeOffer(request, { password: this._password });
|
||||||
return (await this._tradesClient.takeOffer(request, { password: this._password })).getTrade();
|
if (resp.getTrade())
|
||||||
|
return resp.getTrade();
|
||||||
|
throw new HavenoError_1.default(resp.getFailureReason()?.getDescription(), resp.getFailureReason()?.getAvailabilityResult());
|
||||||
}
|
}
|
||||||
catch (e) {
|
catch (e) {
|
||||||
throw new HavenoError_1.default(e.message, e.code);
|
throw new HavenoError_1.default(e.message, e.code);
|
||||||
|
|
2
dist/HavenoClient.js.map
vendored
2
dist/HavenoClient.js.map
vendored
File diff suppressed because one or more lines are too long
|
@ -2715,16 +2715,11 @@ async function takeOffer(ctxP: Partial<TradeContext>): Promise<TradeInfo> {
|
||||||
|
|
||||||
// record context after offer taken, once
|
// record context after offer taken, once
|
||||||
if (ctx.getBuyer().balancesAfterTake === undefined) {
|
if (ctx.getBuyer().balancesAfterTake === undefined) {
|
||||||
ctx.tradeAmount = BigInt(trade.getAmount()); // re-assign trade amount which could be adjusted
|
|
||||||
ctx.arbitrator.trade = await ctx.arbitrator.havenod!.getTrade(ctx.offerId!);
|
|
||||||
ctx.maker.trade = await ctx.maker.havenod!.getTrade(ctx.offerId!);
|
|
||||||
ctx.taker.trade = await ctx.taker.havenod!.getTrade(ctx.offerId!);
|
|
||||||
ctx.maker.balancesAfterTake = await ctx.maker.havenod!.getBalances();
|
|
||||||
ctx.taker.balancesAfterTake = await ctx.taker.havenod!.getBalances();
|
|
||||||
ctx.maker.depositTx = await monerod.getTx(ctx.arbitrator.trade!.getMakerDepositTxId());
|
|
||||||
ctx.taker.depositTx = await monerod.getTx(ctx.arbitrator.trade!.getTakerDepositTxId());
|
|
||||||
|
|
||||||
// wait to observe deposit txs
|
// wait to observe deposit txs
|
||||||
|
ctx.arbitrator.trade = await ctx.arbitrator.havenod!.getTrade(ctx.offerId!);
|
||||||
|
ctx.maker.depositTx = await monerod.getTx(ctx.arbitrator.trade!.getMakerDepositTxId());
|
||||||
|
ctx.taker.depositTx = await monerod.getTx(ctx.arbitrator.trade!.getTakerDepositTxId());
|
||||||
if (!ctx.maker.depositTx || !ctx.taker.depositTx) {
|
if (!ctx.maker.depositTx || !ctx.taker.depositTx) {
|
||||||
if (!ctx.maker.depositTx) HavenoUtils.log(0, "Maker deposit tx not found with id " + ctx.arbitrator.trade!.getMakerDepositTxId() + ", waiting...");
|
if (!ctx.maker.depositTx) HavenoUtils.log(0, "Maker deposit tx not found with id " + ctx.arbitrator.trade!.getMakerDepositTxId() + ", waiting...");
|
||||||
if (!ctx.taker.depositTx) HavenoUtils.log(0, "Taker deposit tx not found with id " + ctx.arbitrator.trade!.getTakerDepositTxId() + ", waiting...");
|
if (!ctx.taker.depositTx) HavenoUtils.log(0, "Taker deposit tx not found with id " + ctx.arbitrator.trade!.getTakerDepositTxId() + ", waiting...");
|
||||||
|
@ -2734,6 +2729,13 @@ async function takeOffer(ctxP: Partial<TradeContext>): Promise<TradeInfo> {
|
||||||
if (!ctx.maker.depositTx) throw new Error("Maker deposit tx not found with id " + ctx.arbitrator.trade!.getMakerDepositTxId());
|
if (!ctx.maker.depositTx) throw new Error("Maker deposit tx not found with id " + ctx.arbitrator.trade!.getMakerDepositTxId());
|
||||||
if (!ctx.taker.depositTx) throw new Error("Taker deposit tx not found with id " + ctx.arbitrator.trade!.getTakerDepositTxId());
|
if (!ctx.taker.depositTx) throw new Error("Taker deposit tx not found with id " + ctx.arbitrator.trade!.getTakerDepositTxId());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// record context
|
||||||
|
ctx.tradeAmount = BigInt(trade.getAmount()); // re-assign trade amount which could be adjusted
|
||||||
|
ctx.maker.trade = await ctx.maker.havenod!.getTrade(ctx.offerId!);
|
||||||
|
ctx.taker.trade = await ctx.taker.havenod!.getTrade(ctx.offerId!);
|
||||||
|
ctx.maker.balancesAfterTake = await ctx.maker.havenod!.getBalances();
|
||||||
|
ctx.taker.balancesAfterTake = await ctx.taker.havenod!.getBalances();
|
||||||
ctx.maker.depositTxFee = BigInt(ctx.maker.depositTx!.getFee());
|
ctx.maker.depositTxFee = BigInt(ctx.maker.depositTx!.getFee());
|
||||||
ctx.taker.depositTxFee = BigInt(ctx.taker.depositTx!.getFee());
|
ctx.taker.depositTxFee = BigInt(ctx.taker.depositTx!.getFee());
|
||||||
ctx.maker.tradeFee = BigInt(trade.getOffer()!.getMakerFee());
|
ctx.maker.tradeFee = BigInt(trade.getOffer()!.getMakerFee());
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue