@hot-labs/kit 1.6.0 → 1.6.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (72) hide show
  1. package/build/activity.d.ts +4 -0
  2. package/build/activity.js +20 -1
  3. package/build/activity.js.map +1 -1
  4. package/build/core/defuse.d.ts +61 -0
  5. package/build/core/defuse.js +47 -0
  6. package/build/core/defuse.js.map +1 -0
  7. package/build/core/exchange.d.ts +8 -4
  8. package/build/core/exchange.js +33 -7
  9. package/build/core/exchange.js.map +1 -1
  10. package/build/core/pendings.d.ts +37 -12
  11. package/build/core/pendings.js +70 -35
  12. package/build/core/pendings.js.map +1 -1
  13. package/build/ui/bridge/Bridge.js +11 -186
  14. package/build/ui/bridge/Bridge.js.map +1 -1
  15. package/build/ui/bridge/SelectSender.d.ts +2 -1
  16. package/build/ui/bridge/SelectSender.js +10 -2
  17. package/build/ui/bridge/SelectSender.js.map +1 -1
  18. package/build/ui/bridge/SelectToken.d.ts +2 -1
  19. package/build/ui/bridge/SelectToken.js +14 -6
  20. package/build/ui/bridge/SelectToken.js.map +1 -1
  21. package/build/ui/bridge/TokenAmountCard.d.ts +39 -0
  22. package/build/ui/bridge/TokenAmountCard.js +186 -0
  23. package/build/ui/bridge/TokenAmountCard.js.map +1 -0
  24. package/build/ui/icons/warning.js +1 -1
  25. package/build/ui/icons/warning.js.map +1 -1
  26. package/build/ui/profile/DepositFlow.d.ts +3 -0
  27. package/build/ui/profile/DepositFlow.js +128 -9
  28. package/build/ui/profile/DepositFlow.js.map +1 -1
  29. package/build/ui/profile/DepositQR.d.ts +11 -4
  30. package/build/ui/profile/DepositQR.js +82 -38
  31. package/build/ui/profile/DepositQR.js.map +1 -1
  32. package/build/ui/profile/Payment.js +3 -9
  33. package/build/ui/profile/Payment.js.map +1 -1
  34. package/build/ui/profile/Profile.d.ts +8 -3
  35. package/build/ui/profile/Profile.js +15 -9
  36. package/build/ui/profile/Profile.js.map +1 -1
  37. package/build/ui/router.d.ts +4 -2
  38. package/build/ui/router.js +4 -6
  39. package/build/ui/router.js.map +1 -1
  40. package/build/ui/styles.js +2 -1
  41. package/build/ui/styles.js.map +1 -1
  42. package/build/ui/toast/index.js +2 -0
  43. package/build/ui/toast/index.js.map +1 -1
  44. package/build/ui/uikit/animationts.d.ts +5 -0
  45. package/build/ui/uikit/animationts.js +19 -0
  46. package/build/ui/uikit/animationts.js.map +1 -0
  47. package/build/ui/uikit/badge.d.ts +5 -0
  48. package/build/ui/uikit/badge.js +19 -0
  49. package/build/ui/uikit/badge.js.map +1 -0
  50. package/build/ui/uikit/tabs.d.ts +2 -1
  51. package/build/ui/uikit/tabs.js +31 -17
  52. package/build/ui/uikit/tabs.js.map +1 -1
  53. package/package.json +1 -1
  54. package/src/activity.ts +22 -1
  55. package/src/core/defuse.ts +102 -0
  56. package/src/core/exchange.ts +38 -10
  57. package/src/core/pendings.ts +81 -38
  58. package/src/ui/bridge/Bridge.tsx +30 -312
  59. package/src/ui/bridge/SelectSender.tsx +24 -2
  60. package/src/ui/bridge/SelectToken.tsx +15 -6
  61. package/src/ui/bridge/TokenAmountCard.tsx +347 -0
  62. package/src/ui/icons/warning.tsx +1 -1
  63. package/src/ui/profile/DepositFlow.tsx +286 -10
  64. package/src/ui/profile/DepositQR.tsx +196 -76
  65. package/src/ui/profile/Payment.tsx +4 -27
  66. package/src/ui/profile/Profile.tsx +100 -91
  67. package/src/ui/router.tsx +5 -7
  68. package/src/ui/styles.ts +2 -1
  69. package/src/ui/toast/index.tsx +2 -0
  70. package/src/ui/uikit/animationts.ts +20 -0
  71. package/src/ui/uikit/badge.tsx +24 -0
  72. package/src/ui/uikit/tabs.tsx +38 -24
@@ -2,13 +2,17 @@ import { BridgePending } from "./core/pendings";
2
2
  import { OmniWallet } from "./core/OmniWallet";
3
3
  import type { HotKit } from "./HotKit";
4
4
  import { HotBridgeWithdrawal } from "./HotBridgeWithdrawal";
5
+ import { IndexedDBStorage } from "./storage";
5
6
  export declare class Activity {
6
7
  private readonly kit;
7
8
  withdrawals: Record<number, HotBridgeWithdrawal[]>;
8
9
  bridgePending: BridgePending[];
10
+ storage: IndexedDBStorage;
9
11
  constructor(kit: HotKit);
10
12
  get activityList(): (BridgePending | HotBridgeWithdrawal)[];
13
+ sync(): void;
11
14
  addBridgePending(bridgePending: BridgePending): void;
15
+ fetchPendingPassiveDeposits(wallet: OmniWallet): Promise<void>;
12
16
  fetchPendingWithdrawalsByWallet(wallet: OmniWallet): Promise<void>;
13
17
  fetchPendingWithdrawalsByChain(chain: number, wallet: OmniWallet): Promise<void>;
14
18
  }
package/build/activity.js CHANGED
@@ -1,10 +1,14 @@
1
1
  import { action, computed, makeObservable, observable, runInAction } from "mobx";
2
2
  import { chains, WalletType } from "./core/chains";
3
+ import { BridgePending } from "./core/pendings";
3
4
  import { HotBridgeWithdrawal } from "./HotBridgeWithdrawal";
5
+ import { IndexedDBStorage } from "./storage";
6
+ import { defuseApi } from "./core/defuse";
4
7
  export class Activity {
5
8
  kit;
6
9
  withdrawals = {};
7
10
  bridgePending = [];
11
+ storage = new IndexedDBStorage();
8
12
  constructor(kit) {
9
13
  this.kit = kit;
10
14
  makeObservable(this, {
@@ -14,13 +18,28 @@ export class Activity {
14
18
  addBridgePending: action,
15
19
  });
16
20
  kit.onConnect(({ wallet }) => this.fetchPendingWithdrawalsByWallet(wallet));
21
+ this.storage
22
+ .get(`activity:bridgePendings`)
23
+ .then(async (data) => {
24
+ if (!data)
25
+ return;
26
+ const pendings = JSON.parse(data);
27
+ this.bridgePending = pendings.map((t) => BridgePending.deserialize(t, this.kit));
28
+ })
29
+ .catch(() => { });
17
30
  }
18
31
  get activityList() {
19
32
  return [...this.bridgePending, ...Object.values(this.withdrawals).flat()];
20
33
  }
34
+ sync() {
35
+ this.storage.set(`activity:bridgePendings`, JSON.stringify(this.bridgePending.map((t) => t.serialize())));
36
+ }
21
37
  addBridgePending(bridgePending) {
22
38
  this.bridgePending.push(bridgePending);
23
- // this.kit.storage.set(`activity:bridgePendings`, JSON.stringify(this.bridgePending.map((t) => t.serialize())));
39
+ this.sync();
40
+ }
41
+ async fetchPendingPassiveDeposits(wallet) {
42
+ defuseApi.getRecentDeposits(wallet.address, "defuse:mainnet");
24
43
  }
25
44
  async fetchPendingWithdrawalsByWallet(wallet) {
26
45
  if (wallet.type === WalletType.NEAR)
@@ -1 +1 @@
1
- {"version":3,"file":"activity.js","sourceRoot":"","sources":["../src/activity.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,cAAc,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,MAAM,CAAC;AAEjF,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAKnD,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAE5D,MAAM,OAAO,QAAQ;IAIU;IAH7B,WAAW,GAA0C,EAAE,CAAC;IACxD,aAAa,GAAoB,EAAE,CAAC;IAEpC,YAA6B,GAAW;QAAX,QAAG,GAAH,GAAG,CAAQ;QACtC,cAAc,CAAC,IAAI,EAAE;YACnB,WAAW,EAAE,UAAU;YACvB,aAAa,EAAE,UAAU;YACzB,YAAY,EAAE,QAAQ;YACtB,gBAAgB,EAAE,MAAM;SACzB,CAAC,CAAC;QAEH,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,+BAA+B,CAAC,MAAM,CAAC,CAAC,CAAC;IAC9E,CAAC;IAED,IAAI,YAAY;QACd,OAAO,CAAC,GAAG,IAAI,CAAC,aAAa,EAAE,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;IAC5E,CAAC;IAED,gBAAgB,CAAC,aAA4B;QAC3C,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QACvC,iHAAiH;IACnH,CAAC;IAED,KAAK,CAAC,+BAA+B,CAAC,MAAkB;QACtD,IAAI,MAAM,CAAC,IAAI,KAAK,UAAU,CAAC,IAAI;YAAE,OAAO;QAC5C,IAAI,MAAM,CAAC,IAAI,KAAK,UAAU,CAAC,QAAQ;YAAE,OAAO;QAChD,MAAM,KAAK,GAAG,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,8BAA8B,CAAC,CAAC,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC,CAAC;QAC1G,MAAM,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IAC3B,CAAC;IAED,KAAK,CAAC,8BAA8B,CAAC,KAAa,EAAE,MAAkB;QACpE,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,+BAA+B,CAAC,KAAK,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;QACvG,WAAW,CAAC,GAAG,EAAE,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,mBAAmB,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IACvI,CAAC;CACF"}
1
+ {"version":3,"file":"activity.js","sourceRoot":"","sources":["../src/activity.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,61 @@
1
+ export interface DefuseAsset {
2
+ defuse_asset_identifier: string;
3
+ near_token_id: string;
4
+ decimals: number;
5
+ asset_name: string;
6
+ min_deposit_amount: string;
7
+ min_withdrawal_amount: string;
8
+ withdrawal_fee: string;
9
+ intents_token_id: string;
10
+ }
11
+ export interface RecentDeposit {
12
+ tx_hash: string;
13
+ chain: string;
14
+ defuse_asset_identifier: string;
15
+ decimals: number;
16
+ amount: bigint;
17
+ account_id: string;
18
+ address: string;
19
+ status: "COMPLETED" | "PENDING" | "FAILED";
20
+ }
21
+ export interface WithdrawEstimate {
22
+ tokenAddress: string;
23
+ userAddress: string;
24
+ withdrawalFee: bigint;
25
+ withdrawalFeeDecimals: number;
26
+ token: {
27
+ defuse_asset_identifier: string;
28
+ near_token_id: string;
29
+ decimals: number;
30
+ asset_name: string;
31
+ min_deposit_amount: number;
32
+ };
33
+ }
34
+ export interface WithdrawStatus {
35
+ status: "COMPLETED" | "PENDING" | "FAILED";
36
+ data: {
37
+ tx_hash: string;
38
+ transfer_tx_hash: string;
39
+ chain: string;
40
+ defuse_asset_identifier: string;
41
+ decimals: number;
42
+ amount: bigint;
43
+ account_id: string;
44
+ address: string;
45
+ };
46
+ }
47
+ export declare class DefuseApi {
48
+ request(method: string, params: Record<string, any>): Promise<any>;
49
+ private _cachedSupportedTokens;
50
+ getSupportedTokens(chains?: string[]): Promise<DefuseAsset[]>;
51
+ getDepositAddress(accountId: string, chain: string, memo?: boolean): Promise<{
52
+ chain: string;
53
+ address: string;
54
+ memo?: string;
55
+ }>;
56
+ getRecentDeposits(accountId: string, chain: string): Promise<RecentDeposit[]>;
57
+ notifyDeposit(txHash: string, depositAddress: string): Promise<void>;
58
+ withdrawEstimate(chain: string, token: string, address: string): Promise<WithdrawEstimate>;
59
+ getWithdrawalStatus(txHash: string): Promise<WithdrawStatus>;
60
+ }
61
+ export declare const defuseApi: DefuseApi;
@@ -0,0 +1,47 @@
1
+ export class DefuseApi {
2
+ async request(method, params) {
3
+ const response = await fetch(`https://bridge.chaindefuser.com/rpc?method=${method}`, {
4
+ method: "POST",
5
+ headers: { "Content-Type": "application/json" },
6
+ body: JSON.stringify({
7
+ id: "dontcare",
8
+ jsonrpc: "2.0",
9
+ method: method,
10
+ params: [params],
11
+ }),
12
+ });
13
+ const { result } = await response.json();
14
+ return result;
15
+ }
16
+ _cachedSupportedTokens = null;
17
+ async getSupportedTokens(chains) {
18
+ if (this._cachedSupportedTokens)
19
+ return this._cachedSupportedTokens;
20
+ const { tokens } = await this.request("supported_tokens", { chains });
21
+ this._cachedSupportedTokens = tokens;
22
+ return tokens;
23
+ }
24
+ async getDepositAddress(accountId, chain, memo = false) {
25
+ if (chain === "stellar:mainnet")
26
+ memo = true; // Stellar mainnet requires memo
27
+ return await this.request("deposit_address", {
28
+ deposit_mode: memo ? "MEMO" : undefined,
29
+ account_id: accountId,
30
+ chain,
31
+ });
32
+ }
33
+ async getRecentDeposits(accountId, chain) {
34
+ return await this.request("recent_deposits", { account_id: accountId, chain });
35
+ }
36
+ async notifyDeposit(txHash, depositAddress) {
37
+ await this.request("notify_deposit", { tx_hash: txHash, deposit_address: depositAddress });
38
+ }
39
+ async withdrawEstimate(chain, token, address) {
40
+ return await this.request("withdraw_estimate", { chain, token, address });
41
+ }
42
+ async getWithdrawalStatus(txHash) {
43
+ return await this.request("withdrawal_status", { withdrawal_hash: txHash });
44
+ }
45
+ }
46
+ export const defuseApi = new DefuseApi();
47
+ //# sourceMappingURL=defuse.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"defuse.js","sourceRoot":"","sources":["../../src/core/defuse.ts"],"names":[],"mappings":"AAkDA,MAAM,OAAO,SAAS;IACpB,KAAK,CAAC,OAAO,CAAC,MAAc,EAAE,MAA2B;QACvD,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,8CAA8C,MAAM,EAAE,EAAE;YACnF,MAAM,EAAE,MAAM;YACd,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE;YAC/C,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;gBACnB,EAAE,EAAE,UAAU;gBACd,OAAO,EAAE,KAAK;gBACd,MAAM,EAAE,MAAM;gBACd,MAAM,EAAE,CAAC,MAAM,CAAC;aACjB,CAAC;SACH,CAAC,CAAC;QAEH,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;QACzC,OAAO,MAAM,CAAC;IAChB,CAAC;IAEO,sBAAsB,GAAyB,IAAI,CAAC;IAC5D,KAAK,CAAC,kBAAkB,CAAC,MAAiB;QACxC,IAAI,IAAI,CAAC,sBAAsB;YAAE,OAAO,IAAI,CAAC,sBAAsB,CAAC;QACpE,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,kBAAkB,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;QACtE,IAAI,CAAC,sBAAsB,GAAG,MAAM,CAAC;QACrC,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,KAAK,CAAC,iBAAiB,CAAC,SAAiB,EAAE,KAAa,EAAE,OAAgB,KAAK;QAC7E,IAAI,KAAK,KAAK,iBAAiB;YAAE,IAAI,GAAG,IAAI,CAAC,CAAC,gCAAgC;QAC9E,OAAO,MAAM,IAAI,CAAC,OAAO,CAAC,iBAAiB,EAAE;YAC3C,YAAY,EAAE,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS;YACvC,UAAU,EAAE,SAAS;YACrB,KAAK;SACN,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,iBAAiB,CAAC,SAAiB,EAAE,KAAa;QACtD,OAAO,MAAM,IAAI,CAAC,OAAO,CAAC,iBAAiB,EAAE,EAAE,UAAU,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,CAAC;IACjF,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,MAAc,EAAE,cAAsB;QACxD,MAAM,IAAI,CAAC,OAAO,CAAC,gBAAgB,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,eAAe,EAAE,cAAc,EAAE,CAAC,CAAC;IAC7F,CAAC;IAED,KAAK,CAAC,gBAAgB,CAAC,KAAa,EAAE,KAAa,EAAE,OAAe;QAClE,OAAO,MAAM,IAAI,CAAC,OAAO,CAAC,mBAAmB,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC;IAC5E,CAAC;IAED,KAAK,CAAC,mBAAmB,CAAC,MAAc;QACtC,OAAO,MAAM,IAAI,CAAC,OAAO,CAAC,mBAAmB,EAAE,EAAE,eAAe,EAAE,MAAM,EAAE,CAAC,CAAC;IAC9E,CAAC;CACF;AAED,MAAM,CAAC,MAAM,SAAS,GAAG,IAAI,SAAS,EAAE,CAAC"}
@@ -19,11 +19,9 @@ export type BridgeReview = {
19
19
  slippage: number;
20
20
  fee: ReviewFee | null;
21
21
  qoute: QuoteResponse["quote"] | "withdraw" | "deposit";
22
- status: "pending" | "success" | "failed";
23
- statusMessage: string | null;
22
+ recipient?: OmniWallet | Recipient;
24
23
  sender?: OmniWallet | "qr";
25
24
  refund?: OmniWallet;
26
- recipient?: OmniWallet | Recipient;
27
25
  logger?: ILogger;
28
26
  from: Token;
29
27
  to: Token;
@@ -41,9 +39,15 @@ export interface BridgeRequest {
41
39
  }
42
40
  export declare class Exchange {
43
41
  readonly kit?: HotKit | undefined;
44
- constructor(kit?: HotKit | undefined);
45
42
  readonly bridge: import("@hot-labs/omni-sdk").HotBridge;
43
+ constructor(kit?: HotKit | undefined);
46
44
  getToken(chain: number, address: string): Promise<string | null>;
45
+ getDepositQoute(token: Token, recipient: Recipient): Promise<{
46
+ depositAddress?: string;
47
+ memo?: string;
48
+ minAmount: number;
49
+ execute: (sender: OmniWallet, amount: bigint) => Promise<void>;
50
+ }>;
47
51
  deposit(args: {
48
52
  sender: OmniWallet;
49
53
  token: Token;
@@ -9,6 +9,7 @@ import { formatter } from "./utils";
9
9
  import { tokens } from "./tokens";
10
10
  import StellarWallet from "../stellar/wallet";
11
11
  import NearWallet from "../near/wallet";
12
+ import { defuseApi } from "./defuse";
12
13
  export class UnsupportedDexError extends Error {
13
14
  constructor(message) {
14
15
  super(message);
@@ -21,10 +22,10 @@ export class ReadableDexError extends Error {
21
22
  }
22
23
  export class Exchange {
23
24
  kit;
25
+ bridge = createHotBridge();
24
26
  constructor(kit) {
25
27
  this.kit = kit;
26
28
  }
27
- bridge = createHotBridge();
28
29
  async getToken(chain, address) {
29
30
  if (chain === Network.Omni || chain === Network.HotCraft)
30
31
  return address;
@@ -42,6 +43,37 @@ export class Exchange {
42
43
  });
43
44
  return token?.omniAddress || null;
44
45
  }
46
+ async getDepositQoute(token, recipient) {
47
+ if (token.chain === Network.Gonka) {
48
+ return {
49
+ minAmount: 0,
50
+ execute: async (sender, amount) => {
51
+ await this.deposit({ sender, token, amount, recipient, logger: undefined });
52
+ },
53
+ };
54
+ }
55
+ const assets = await defuseApi.getSupportedTokens();
56
+ const defuseAsset = assets.find((a) => a.intents_token_id === token.omniAddress);
57
+ if (!defuseAsset)
58
+ throw new Error("Token not supported to passive deposit");
59
+ const [chainType, chainId] = defuseAsset.defuse_asset_identifier.split(":");
60
+ const config = await defuseApi.getDepositAddress(recipient.omniAddress, `${chainType}:${chainId}`);
61
+ return {
62
+ memo: config.memo,
63
+ depositAddress: config.address,
64
+ minAmount: Number(defuseAsset.min_deposit_amount),
65
+ execute: async (sender, amount) => {
66
+ if (this.isDirectDeposit(token, tokens.get(token.omniAddress))) {
67
+ await this.deposit({ sender, token, amount, recipient, logger: undefined });
68
+ return;
69
+ }
70
+ if (amount < BigInt(defuseAsset.min_deposit_amount))
71
+ throw new Error("Amount is too low");
72
+ const hash = await sender.transfer({ amount: amount, token: token, receiver: config.address, comment: config.memo });
73
+ await OneClickService.submitDepositTx({ txHash: hash, depositAddress: config.address });
74
+ },
75
+ };
76
+ }
45
77
  async deposit(args) {
46
78
  let { sender, token, amount, recipient, logger } = args;
47
79
  logger?.log("Sending deposit transaction");
@@ -181,8 +213,6 @@ export class Exchange {
181
213
  amountIn: amount,
182
214
  amountOut: amount,
183
215
  slippage: slippage,
184
- statusMessage: null,
185
- status: "pending",
186
216
  qoute: "deposit",
187
217
  logger,
188
218
  fee,
@@ -202,8 +232,6 @@ export class Exchange {
202
232
  minAmountOut: amount - fee,
203
233
  slippage: slippage,
204
234
  recipient: recipient,
205
- statusMessage: null,
206
- status: "pending",
207
235
  qoute: "withdraw",
208
236
  refund: refund,
209
237
  logger,
@@ -278,9 +306,7 @@ export class Exchange {
278
306
  amountOut: BigInt(qoute.quote.amountOut),
279
307
  slippage: request.slippage,
280
308
  recipient: request.recipient,
281
- statusMessage: null,
282
309
  qoute: qoute.quote,
283
- status: "pending",
284
310
  refund: refund,
285
311
  sender: sender,
286
312
  fee: fee,
@@ -1 +1 @@
1
- {"version":3,"file":"exchange.js","sourceRoot":"","sources":["../../src/core/exchange.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"exchange.js","sourceRoot":"","sources":["../../src/core/exchange.ts"],"names":[],"mappings":"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"}
@@ -1,32 +1,57 @@
1
1
  import { GetExecutionStatusResponse } from "@defuse-protocol/one-click-sdk-typescript";
2
+ import type { ToastController } from "../ui/toast";
2
3
  import type { HotKit } from "../HotKit";
3
4
  import { OmniWallet } from "../core/OmniWallet";
4
5
  import { BridgeReview } from "../core/exchange";
5
6
  import { Token } from "./token";
6
7
  export declare abstract class ActivityController {
7
- status: "pending" | "success" | "failed";
8
8
  id: string;
9
- title: string | null;
10
- subtitle: string | null;
11
- preview: Token | string | null;
9
+ title: string;
10
+ subtitle: string;
11
+ status: "pending" | "success" | "failed";
12
+ preview: Token | string;
12
13
  actionLoading: boolean;
13
- actionText: string | null;
14
+ actionText: string;
15
+ toast?: ToastController;
14
16
  action(): Promise<void>;
17
+ update({ title, subtitle, status }: {
18
+ title?: string;
19
+ subtitle?: string;
20
+ status?: "pending" | "success" | "failed";
21
+ }): void;
15
22
  constructor();
16
23
  }
17
24
  export declare class BridgePending extends ActivityController {
18
- readonly review: BridgeReview;
25
+ readonly review: BridgeReview & {
26
+ status?: "pending" | "success" | "failed";
27
+ statusMessage?: string | null;
28
+ };
19
29
  readonly kit?: HotKit | undefined;
20
30
  readonly processingTask: Promise<BridgeReview>;
21
- private toast?;
22
- constructor(review: BridgeReview, kit?: HotKit | undefined);
23
- serialize(): {};
31
+ constructor(review: BridgeReview & {
32
+ status?: "pending" | "success" | "failed";
33
+ statusMessage?: string | null;
34
+ }, kit?: HotKit | undefined);
35
+ static deserialize(data: any, kit?: HotKit): BridgePending;
36
+ serialize(): {
37
+ status: "success" | "failed" | "pending";
38
+ statusMessage: string;
39
+ amountIn: string;
40
+ amountOut: string;
41
+ minAmountOut: string;
42
+ slippage: number;
43
+ qoute: import("@defuse-protocol/one-click-sdk-typescript").Quote | "withdraw" | "deposit";
44
+ from: string;
45
+ to: string;
46
+ };
24
47
  getTitle(): string;
25
- updateStatus(status: "pending" | "success" | "failed", statusMessage: string | null): void;
26
48
  processing(): Promise<BridgeReview>;
27
49
  _processing(): Promise<BridgeReview>;
28
- waitBalance(to: Token, wallet: OmniWallet, beforeBalance: bigint, review: BridgeReview): Promise<BridgeReview>;
50
+ waitBalance(to: Token, wallet: OmniWallet, beforeBalance: bigint): Promise<BridgeReview>;
29
51
  getMessage(status: GetExecutionStatusResponse.status): string | null;
30
52
  checkStatus(): Promise<void>;
31
- waitStatus(interval?: number): Promise<BridgeReview>;
53
+ waitStatus(interval?: number): Promise<BridgeReview & {
54
+ status?: "pending" | "success" | "failed";
55
+ statusMessage?: string | null;
56
+ }>;
32
57
  }
@@ -1,19 +1,36 @@
1
- import { makeObservable, observable, runInAction } from "mobx";
1
+ import { action, makeObservable, observable } from "mobx";
2
2
  import { GetExecutionStatusResponse, OneClickService } from "@defuse-protocol/one-click-sdk-typescript";
3
3
  import { v4 as uuidv4 } from "uuid";
4
4
  import { wait } from "../hot-wallet/iframe";
5
5
  import { OmniWallet } from "../core/OmniWallet";
6
+ import { tokens } from "./tokens";
6
7
  export class ActivityController {
7
- status = "pending";
8
8
  id = uuidv4();
9
- title = null;
10
- subtitle = null;
11
- preview = null;
9
+ title = "";
10
+ subtitle = "";
11
+ status = "pending";
12
+ preview = "";
12
13
  actionLoading = false;
13
- actionText = null;
14
+ actionText = "";
15
+ toast;
14
16
  action() {
15
17
  throw new Error("Not implemented");
16
18
  }
19
+ update({ title, subtitle, status }) {
20
+ this.title = title || this.title;
21
+ this.subtitle = subtitle || this.subtitle;
22
+ this.status = status || this.status;
23
+ if (this.status === "pending") {
24
+ this.toast?.update({ progressText: this.subtitle || undefined });
25
+ return;
26
+ }
27
+ this.toast?.update({
28
+ message: this.title,
29
+ progressText: this.subtitle,
30
+ type: this.status,
31
+ duration: 3000,
32
+ });
33
+ }
17
34
  constructor() {
18
35
  makeObservable(this, {
19
36
  status: observable,
@@ -22,6 +39,7 @@ export class ActivityController {
22
39
  actionLoading: observable,
23
40
  preview: observable,
24
41
  title: observable,
42
+ update: action,
25
43
  });
26
44
  }
27
45
  }
@@ -29,18 +47,45 @@ export class BridgePending extends ActivityController {
29
47
  review;
30
48
  kit;
31
49
  processingTask;
32
- toast;
33
50
  constructor(review, kit) {
34
51
  super();
35
52
  this.review = review;
36
53
  this.kit = kit;
37
54
  this.processingTask = this._processing();
38
55
  this.title = this.getTitle();
39
- this.toast = this.kit?.toast.pending(this.title);
56
+ this.subtitle = this.review.statusMessage || "Swap processing";
57
+ this.status = this.review.status || "pending";
40
58
  this.preview = this.review.to;
59
+ if (this.status === "pending") {
60
+ this.toast = this.kit?.toast.pending(this.title);
61
+ }
62
+ }
63
+ static deserialize(data, kit) {
64
+ return new BridgePending({
65
+ amountIn: BigInt(data.amountIn),
66
+ amountOut: BigInt(data.amountOut),
67
+ minAmountOut: BigInt(data.minAmountOut),
68
+ from: tokens.list.find((t) => t.id === data.from),
69
+ to: tokens.list.find((t) => t.id === data.to),
70
+ statusMessage: data.statusMessage,
71
+ slippage: data.slippage,
72
+ status: data.status,
73
+ qoute: data.qoute,
74
+ fee: null,
75
+ }, kit);
41
76
  }
42
77
  serialize() {
43
- return {};
78
+ return {
79
+ status: this.status,
80
+ statusMessage: this.subtitle,
81
+ amountIn: String(this.review.amountIn),
82
+ amountOut: String(this.review.amountOut),
83
+ minAmountOut: String(this.review.minAmountOut),
84
+ slippage: this.review.slippage,
85
+ qoute: this.review.qoute,
86
+ from: this.review.from.id,
87
+ to: this.review.to.id,
88
+ };
44
89
  }
45
90
  getTitle() {
46
91
  const from = `${this.review.from.readable(this.review.amountIn)} ${this.review.from.symbol}`;
@@ -51,18 +96,7 @@ export class BridgePending extends ActivityController {
51
96
  if (this.review.to.isOmni)
52
97
  return `Deposit ${to}`;
53
98
  }
54
- const fromChain = this.review.from.chainName.toLowerCase();
55
- const toChain = this.review.to.chainName.toLowerCase();
56
- return `${from} (${fromChain}) → ${to} (${toChain})`;
57
- }
58
- updateStatus(status, statusMessage) {
59
- runInAction(() => {
60
- this.status = status;
61
- this.subtitle = statusMessage;
62
- this.toast?.update({ type: status, progressText: statusMessage || "Processing..." });
63
- this.review.statusMessage = "Swap successful";
64
- this.review.status = "success";
65
- });
99
+ return `${from} ${to}`;
66
100
  }
67
101
  processing() {
68
102
  return this.processingTask;
@@ -76,22 +110,20 @@ export class BridgePending extends ActivityController {
76
110
  if (!beforeBalance)
77
111
  return await this.waitStatus();
78
112
  return await Promise.race([
79
- this.waitBalance(this.review.to, this.review.recipient, beforeBalance, this.review), //
113
+ this.waitBalance(this.review.to, this.review.recipient, beforeBalance), //
80
114
  this.waitStatus(),
81
115
  ]);
82
116
  }
83
- async waitBalance(to, wallet, beforeBalance, review) {
117
+ async waitBalance(to, wallet, beforeBalance) {
84
118
  const afterBalance = await wallet.fetchBalance(to.chain, to.address).catch(() => beforeBalance);
85
119
  if (afterBalance > beforeBalance) {
86
- return runInAction(() => {
87
- this.review.amountOut = afterBalance - beforeBalance;
88
- this.updateStatus("success", "Swap successful");
89
- this.toast?.update({ duration: 2000 });
90
- return this.review;
91
- });
120
+ this.review.amountOut = afterBalance - beforeBalance;
121
+ this.update({ status: "success", subtitle: "Swap successful" });
122
+ this.kit?.activity.sync();
123
+ return this.review;
92
124
  }
93
125
  await wait(2000);
94
- return await this.waitBalance(to, wallet, beforeBalance, review);
126
+ return await this.waitBalance(to, wallet, beforeBalance);
95
127
  }
96
128
  getMessage(status) {
97
129
  if (status === GetExecutionStatusResponse.status.PENDING_DEPOSIT)
@@ -114,6 +146,11 @@ export class BridgePending extends ActivityController {
114
146
  if (this.review.qoute === "deposit" || this.review.qoute === "withdraw")
115
147
  return;
116
148
  const status = await OneClickService.getExecutionStatus(this.review.qoute.depositAddress, this.review.qoute.depositMemo);
149
+ if (Date.now() - +new Date(status.updatedAt) > 30_000 * 60) {
150
+ this.update({ status: "failed", subtitle: "Transaction timed out" });
151
+ this.kit?.activity.sync();
152
+ return;
153
+ }
117
154
  const message = this.getMessage(status.status);
118
155
  let state = "pending";
119
156
  if (status.status === GetExecutionStatusResponse.status.SUCCESS)
@@ -122,11 +159,9 @@ export class BridgePending extends ActivityController {
122
159
  state = "failed";
123
160
  if (status.status === GetExecutionStatusResponse.status.REFUNDED)
124
161
  state = "failed";
125
- runInAction(() => {
126
- if (status.swapDetails.amountOut)
127
- this.review.amountOut = BigInt(status.swapDetails.amountOut);
128
- this.updateStatus(state, message);
129
- });
162
+ if (status.swapDetails.amountOut)
163
+ this.review.amountOut = BigInt(status.swapDetails.amountOut);
164
+ this.update({ subtitle: message || undefined });
130
165
  }
131
166
  async waitStatus(interval = 3000) {
132
167
  while (this.status === "pending") {