Skip to content

Commit bebd3b1

Browse files
committed
match only terminal Binance withdrawals
1 parent bc583e9 commit bebd3b1

File tree

2 files changed

+26
-2
lines changed

2 files changed

+26
-2
lines changed

src/rebalancer/adapters/binance.ts

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -70,6 +70,18 @@ export function isFailedBinanceWithdrawal(status?: number): boolean {
7070
}
7171
}
7272

73+
export function isTerminalBinanceWithdrawal(status?: number): boolean {
74+
switch (status) {
75+
case BINANCE_WITHDRAWAL_STATUS.CANCELLED:
76+
case BINANCE_WITHDRAWAL_STATUS.REJECTED:
77+
case BINANCE_WITHDRAWAL_STATUS.FAILURE:
78+
case BINANCE_WITHDRAWAL_STATUS.COMPLETED:
79+
return true;
80+
default:
81+
return false;
82+
}
83+
}
84+
7385
export class BinanceStablecoinSwapAdapter extends BaseAdapter {
7486
private binanceApiClient: Binance;
7587

@@ -1014,7 +1026,8 @@ export class BinanceStablecoinSwapAdapter extends BaseAdapter {
10141026
(withdrawal) =>
10151027
withdrawal.coin === token &&
10161028
withdrawal.network === BINANCE_NETWORKS[chain] &&
1017-
withdrawal.recipient === this.baseSignerAddress.toNative()
1029+
withdrawal.recipient === this.baseSignerAddress.toNative() &&
1030+
isTerminalBinanceWithdrawal(withdrawal.status)
10181031
);
10191032
}
10201033

test/BinanceAdapter.withdrawals.ts

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import { expect } from "./utils";
2-
import { isFailedBinanceWithdrawal } from "../src/rebalancer/adapters/binance";
2+
import { isFailedBinanceWithdrawal, isTerminalBinanceWithdrawal } from "../src/rebalancer/adapters/binance";
33

44
describe("Binance adapter withdrawal state", function () {
55
it("treats terminal Binance withdrawal failures as failed", function () {
@@ -15,4 +15,15 @@ describe("Binance adapter withdrawal state", function () {
1515
expect(isFailedBinanceWithdrawal(6)).to.equal(false);
1616
expect(isFailedBinanceWithdrawal(undefined)).to.equal(false);
1717
});
18+
19+
it("only treats terminal Binance withdrawals as terminal", function () {
20+
expect(isTerminalBinanceWithdrawal(1)).to.equal(true);
21+
expect(isTerminalBinanceWithdrawal(3)).to.equal(true);
22+
expect(isTerminalBinanceWithdrawal(5)).to.equal(true);
23+
expect(isTerminalBinanceWithdrawal(6)).to.equal(true);
24+
expect(isTerminalBinanceWithdrawal(0)).to.equal(false);
25+
expect(isTerminalBinanceWithdrawal(2)).to.equal(false);
26+
expect(isTerminalBinanceWithdrawal(4)).to.equal(false);
27+
expect(isTerminalBinanceWithdrawal(undefined)).to.equal(false);
28+
});
1829
});

0 commit comments

Comments
 (0)