@0xsquid/deposit-widget 0.0.2-beta.0 → 0.1.0

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 (117) hide show
  1. package/dist/types/DepositWidget.d.ts +0 -1
  2. package/dist/types/components/ViewTransition.d.ts +0 -1
  3. package/dist/types/components/shared/buttons/button.d.ts +0 -1
  4. package/dist/types/components/shared/icons/types.d.ts +0 -1
  5. package/dist/types/components/shared/icons/user-round.d.ts +0 -1
  6. package/dist/types/components/shared/navigation/base-navbar.d.ts +0 -1
  7. package/dist/types/components/shared/navigation/sub-navbar.d.ts +0 -1
  8. package/dist/types/components/token-badge-icon.d.ts +0 -1
  9. package/dist/types/components/token-list-item.d.ts +0 -1
  10. package/dist/types/components/view-container.d.ts +0 -1
  11. package/dist/types/constants.d.ts +0 -1
  12. package/dist/types/hooks/ui/useMainCTAButtonState.d.ts +0 -1
  13. package/dist/types/hooks/use-auto-select-token.d.ts +0 -1
  14. package/dist/types/hooks/use-deposit-route.d.ts +0 -1
  15. package/dist/types/hooks/use-token-selection.d.ts +0 -1
  16. package/dist/types/hooks/use-transaction-history.d.ts +0 -1
  17. package/dist/types/index.d.ts +0 -1
  18. package/dist/types/services/assets-service.d.ts +0 -1
  19. package/dist/types/services/wallet-history/format.d.ts +0 -1
  20. package/dist/types/services/wallet-history/format.test.d.ts +0 -1
  21. package/dist/types/services/wallet-history/get-main-explorer-url.d.ts +0 -1
  22. package/dist/types/services/wallet-history/get-wallet-history.d.ts +0 -1
  23. package/dist/types/services/wallet-history/types.d.ts +0 -1
  24. package/dist/types/services/wallet-history/validation.d.ts +0 -1
  25. package/dist/types/store/use-deposit-store.d.ts +0 -1
  26. package/dist/types/store/use-input-mode.d.ts +0 -1
  27. package/dist/types/store/useRouter.d.ts +0 -1
  28. package/dist/types/types.d.ts +0 -1
  29. package/dist/types/utils/format-date.d.ts +0 -1
  30. package/dist/types/utils/format-date.test.d.ts +0 -1
  31. package/dist/types/utils/transaction.d.ts +0 -1
  32. package/dist/types/views/connect-wallet/connect-wallet-view.d.ts +0 -1
  33. package/dist/types/views/connect-wallet/wallet-list-item.d.ts +0 -1
  34. package/dist/types/views/main/amount-input.d.ts +0 -1
  35. package/dist/types/views/main/connect-prompt.d.ts +0 -1
  36. package/dist/types/views/main/deposit-amount-input.d.ts +0 -1
  37. package/dist/types/views/main/deposit-form.d.ts +0 -1
  38. package/dist/types/views/main/main-cta-button.d.ts +0 -1
  39. package/dist/types/views/main/main-view.d.ts +0 -1
  40. package/dist/types/views/main/navbar/actions.d.ts +0 -1
  41. package/dist/types/views/main/navbar/icon.d.ts +0 -1
  42. package/dist/types/views/main/navbar/navbar.d.ts +0 -1
  43. package/dist/types/views/main/navbar/title.d.ts +0 -1
  44. package/dist/types/views/main/recipient/account.d.ts +0 -1
  45. package/dist/types/views/main/recipient/recipient.d.ts +0 -1
  46. package/dist/types/views/main/token-selector.d.ts +0 -1
  47. package/dist/types/views/qr-code.d.ts +0 -1
  48. package/dist/types/views/render-view.d.ts +0 -1
  49. package/dist/types/views/select-chain/chain-type-meta.d.ts +0 -1
  50. package/dist/types/views/select-chain/select-chain-view.d.ts +0 -1
  51. package/dist/types/views/select-token.d.ts +0 -1
  52. package/dist/types/views/transaction-history/activity-list-item.d.ts +0 -1
  53. package/dist/types/views/transaction-history/transaction-history-view.d.ts +0 -1
  54. package/dist/types/views/transaction-progress/helpers.d.ts +0 -1
  55. package/dist/types/views/transaction-progress/transaction-progress-view.d.ts +0 -1
  56. package/dist/types/views/transaction-progress/use-transaction-progress.d.ts +0 -1
  57. package/package.json +7 -7
  58. package/src/DepositWidget.tsx +158 -0
  59. package/src/compiled-tailwind.css +6100 -0
  60. package/src/components/ViewTransition.tsx +81 -0
  61. package/src/components/shared/buttons/button.tsx +17 -0
  62. package/src/components/shared/icons/types.ts +3 -0
  63. package/src/components/shared/icons/user-round.tsx +21 -0
  64. package/src/components/shared/navigation/base-navbar.tsx +15 -0
  65. package/src/components/shared/navigation/sub-navbar.tsx +46 -0
  66. package/src/components/token-badge-icon.tsx +31 -0
  67. package/src/components/token-list-item.tsx +84 -0
  68. package/src/components/view-container.tsx +16 -0
  69. package/src/constants.ts +1 -0
  70. package/src/css.d.ts +4 -0
  71. package/src/fonts/DMSans-Variable.woff2 +0 -0
  72. package/src/hooks/ui/useMainCTAButtonState.ts +143 -0
  73. package/src/hooks/use-auto-select-token.ts +65 -0
  74. package/src/hooks/use-deposit-route.ts +58 -0
  75. package/src/hooks/use-token-selection.ts +17 -0
  76. package/src/hooks/use-transaction-history.ts +198 -0
  77. package/src/index.ts +3 -0
  78. package/src/services/assets-service.ts +21 -0
  79. package/src/services/wallet-history/format.test.ts +63 -0
  80. package/src/services/wallet-history/format.ts +128 -0
  81. package/src/services/wallet-history/get-main-explorer-url.ts +74 -0
  82. package/src/services/wallet-history/get-wallet-history.ts +24 -0
  83. package/src/services/wallet-history/types.ts +66 -0
  84. package/src/services/wallet-history/validation.ts +60 -0
  85. package/src/store/use-deposit-store.ts +20 -0
  86. package/src/store/use-input-mode.ts +10 -0
  87. package/src/store/useRouter.ts +49 -0
  88. package/src/tailwind.css +16 -0
  89. package/src/types.ts +39 -0
  90. package/src/utils/format-date.test.ts +32 -0
  91. package/src/utils/format-date.ts +25 -0
  92. package/src/utils/transaction.ts +39 -0
  93. package/src/views/connect-wallet/connect-wallet-view.tsx +147 -0
  94. package/src/views/connect-wallet/wallet-list-item.tsx +69 -0
  95. package/src/views/main/amount-input.tsx +272 -0
  96. package/src/views/main/connect-prompt.tsx +47 -0
  97. package/src/views/main/deposit-amount-input.tsx +42 -0
  98. package/src/views/main/deposit-form.tsx +13 -0
  99. package/src/views/main/main-cta-button.tsx +14 -0
  100. package/src/views/main/main-view.tsx +24 -0
  101. package/src/views/main/navbar/actions.tsx +25 -0
  102. package/src/views/main/navbar/icon.tsx +11 -0
  103. package/src/views/main/navbar/navbar.tsx +16 -0
  104. package/src/views/main/navbar/title.tsx +64 -0
  105. package/src/views/main/recipient/account.tsx +81 -0
  106. package/src/views/main/recipient/recipient.tsx +64 -0
  107. package/src/views/main/token-selector.tsx +77 -0
  108. package/src/views/qr-code.tsx +14 -0
  109. package/src/views/render-view.tsx +28 -0
  110. package/src/views/select-chain/chain-type-meta.ts +37 -0
  111. package/src/views/select-chain/select-chain-view.tsx +97 -0
  112. package/src/views/select-token.tsx +227 -0
  113. package/src/views/transaction-history/activity-list-item.tsx +87 -0
  114. package/src/views/transaction-history/transaction-history-view.tsx +58 -0
  115. package/src/views/transaction-progress/helpers.tsx +93 -0
  116. package/src/views/transaction-progress/transaction-progress-view.tsx +217 -0
  117. package/src/views/transaction-progress/use-transaction-progress.ts +112 -0
@@ -0,0 +1,112 @@
1
+ import { useMemo } from "react";
2
+ import {
3
+ getBridgeType,
4
+ simplifyRouteAction,
5
+ TransactionErrorType,
6
+ TransactionStatus,
7
+ useEstimate,
8
+ useSwap,
9
+ useSwapTransactionStatus,
10
+ useTransactionStore,
11
+ } from "@0xsquid/react-hooks";
12
+ import { useDepositRoute } from "../../hooks/use-deposit-route";
13
+ import { getMainExplorerUrl } from "../../services/wallet-history/get-main-explorer-url";
14
+ import { useDepositStore } from "../../store/use-deposit-store";
15
+
16
+ export enum DepositStatus {
17
+ CONFIRMING,
18
+ PROCESSING,
19
+ COMPLETED,
20
+ PARTIAL_SUCCESS,
21
+ REJECTED,
22
+ FAILED,
23
+ }
24
+
25
+ export function useTransactionProgress() {
26
+ const currentTransaction = useTransactionStore(
27
+ (state) => state.currentTransaction,
28
+ );
29
+
30
+ const { routeData } = useDepositRoute();
31
+ const { fromChain } = useSwap();
32
+ const { estimatedRouteDuration } = useEstimate(routeData);
33
+ const config = useDepositStore((s) => s.config);
34
+
35
+ const { latestStatus, transactionStatusQuery } = useSwapTransactionStatus({
36
+ transaction: {
37
+ fromAddress: currentTransaction?.fromAddress ?? "",
38
+ fromChain: currentTransaction?.fromChain?.chainId ?? "",
39
+ toChain: currentTransaction?.toChain?.chainId ?? "",
40
+ transactionId: currentTransaction?.transactionId ?? "",
41
+ status: currentTransaction?.status ?? TransactionStatus.PENDING,
42
+ bridgeType: getBridgeType(routeData?.estimate.actions),
43
+ actions: routeData?.estimate.actions,
44
+ transactionIdForStatus: currentTransaction?.transactionIdForStatus,
45
+ quoteId: currentTransaction?.quoteId,
46
+ depositTxVerificationSignature:
47
+ currentTransaction?.depositTxVerificationSignature,
48
+ },
49
+ });
50
+
51
+ const status = useMemo<DepositStatus>(() => {
52
+ if (currentTransaction === undefined) {
53
+ return DepositStatus.CONFIRMING;
54
+ }
55
+
56
+ if (
57
+ currentTransaction.error?.type === TransactionErrorType.REJECTED_BY_USER
58
+ ) {
59
+ return DepositStatus.REJECTED;
60
+ }
61
+
62
+ if (currentTransaction.sourceStatus === "error") {
63
+ return DepositStatus.FAILED;
64
+ }
65
+
66
+ if (latestStatus === TransactionStatus.SUCCESS) {
67
+ return DepositStatus.COMPLETED;
68
+ }
69
+
70
+ if (
71
+ latestStatus === TransactionStatus.PARTIAL_SUCCESS ||
72
+ latestStatus === TransactionStatus.REFUNDED
73
+ ) {
74
+ return DepositStatus.PARTIAL_SUCCESS;
75
+ }
76
+
77
+ if (latestStatus === TransactionStatus.ERROR) {
78
+ return DepositStatus.FAILED;
79
+ }
80
+
81
+ if (
82
+ latestStatus === TransactionStatus.ONGOING ||
83
+ latestStatus === TransactionStatus.INITIAL_LOADING ||
84
+ latestStatus === TransactionStatus.PENDING
85
+ ) {
86
+ return DepositStatus.PROCESSING;
87
+ }
88
+
89
+ return DepositStatus.CONFIRMING;
90
+ }, [currentTransaction, latestStatus]);
91
+
92
+ const explorerLink = getMainExplorerUrl({
93
+ routeType: currentTransaction?.routeType,
94
+ transactionId: currentTransaction?.transactionId,
95
+ sourceTxExplorerUrl: currentTransaction?.sourceTxExplorerUrl,
96
+ statusResponse: transactionStatusQuery.data,
97
+ actions: routeData?.estimate.actions?.map(simplifyRouteAction),
98
+ sourceChain: fromChain,
99
+ });
100
+
101
+ return {
102
+ status,
103
+ explorerLink,
104
+ estimatedTime: estimatedRouteDuration
105
+ ? `~${estimatedRouteDuration.format()}`
106
+ : undefined,
107
+ recipient: {
108
+ name: config?.integrator.name ?? "Recipient",
109
+ address: config?.destinationAddress ?? "",
110
+ },
111
+ };
112
+ }