@rainlanguage/ui-components 0.0.1-alpha.237 → 0.0.1-alpha.239

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 (176) hide show
  1. package/README.md +14 -6
  2. package/dist/__fixtures__/settings.yaml +18 -20
  3. package/dist/__mocks__/MockCodeMirrorEditor.svelte +17 -0
  4. package/dist/__mocks__/MockCodeMirrorEditor.svelte.d.ts +21 -0
  5. package/dist/__mocks__/MockComponent.js +1 -1
  6. package/dist/__mocks__/MockComponent.svelte +7 -3
  7. package/dist/__mocks__/MockComponent.svelte.d.ts +1 -0
  8. package/dist/__mocks__/mockWeb3Config.d.ts +1 -1
  9. package/dist/__mocks__/mockWeb3Config.js +10 -7
  10. package/dist/__mocks__/queries.js +9 -9
  11. package/dist/__mocks__/stores.d.ts +4 -4
  12. package/dist/__mocks__/stores.js +40 -40
  13. package/dist/app.css +3 -3
  14. package/dist/components/ButtonDarkMode.svelte +7 -1
  15. package/dist/components/ButtonScrub.svelte +22 -0
  16. package/dist/components/ButtonScrub.svelte.d.ts +25 -0
  17. package/dist/components/ButtonVaultLink.svelte +3 -2
  18. package/dist/components/ButtonVaultLink.svelte.d.ts +2 -2
  19. package/dist/components/CodeMirrorRainlang.svelte +19 -2
  20. package/dist/components/CodeMirrorRainlang.svelte.d.ts +2 -1
  21. package/dist/components/Hash.svelte +3 -2
  22. package/dist/components/{ListViewOrderbookFilters.svelte → ListViewRaindexFilters.svelte} +7 -7
  23. package/dist/components/{ListViewOrderbookFilters.svelte.d.ts → ListViewRaindexFilters.svelte.d.ts} +7 -7
  24. package/dist/components/LocalDbStatusBadge.svelte.d.ts +1 -1
  25. package/dist/components/LocalDbStatusCard.svelte +7 -4
  26. package/dist/components/LocalDbStatusCard.svelte.d.ts +2 -2
  27. package/dist/components/LocalDbStatusModal.svelte +16 -14
  28. package/dist/components/LocalDbStatusModal.svelte.d.ts +2 -2
  29. package/dist/components/OrderOrVaultHash.svelte +2 -2
  30. package/dist/components/OrderOrVaultHash.svelte.d.ts +2 -2
  31. package/dist/components/Sensitive.svelte +16 -0
  32. package/dist/components/Sensitive.svelte.d.ts +28 -0
  33. package/dist/components/TanstackAppTable.svelte +146 -87
  34. package/dist/components/TanstackAppTable.svelte.d.ts +1 -1
  35. package/dist/components/VaultBalanceChangeTypeFilter.svelte +1 -1
  36. package/dist/components/VaultBalanceChangeTypeFilter.svelte.d.ts +1 -1
  37. package/dist/components/VaultCard.svelte +1 -1
  38. package/dist/components/VaultCard.svelte.d.ts +1 -1
  39. package/dist/components/charts/OrderTradesChart.svelte +116 -97
  40. package/dist/components/charts/OrderTradesChart.svelte.d.ts +2 -2
  41. package/dist/components/charts/transformAndSortData.d.ts +1 -1
  42. package/dist/components/charts/transformAndSortData.js +19 -19
  43. package/dist/components/deployment/DeploymentSteps.svelte +5 -2
  44. package/dist/components/deployment/DeploymentSteps.svelte.d.ts +1 -1
  45. package/dist/components/deployment/DeploymentsSection.svelte.d.ts +1 -1
  46. package/dist/components/deployment/DepositInput.svelte +1 -1
  47. package/dist/components/deployment/DepositInput.svelte.d.ts +1 -1
  48. package/dist/components/deployment/FieldDefinitionInput.svelte +1 -1
  49. package/dist/components/deployment/FieldDefinitionInput.svelte.d.ts +1 -1
  50. package/dist/components/deployment/OrderPage.svelte.d.ts +1 -1
  51. package/dist/components/deployment/SelectToken.svelte.d.ts +1 -1
  52. package/dist/components/deployment/TokenIOInput.svelte +1 -1
  53. package/dist/components/deployment/TokenIOInput.svelte.d.ts +1 -1
  54. package/dist/components/deployment/TokenSelectionModal.svelte.d.ts +1 -1
  55. package/dist/components/detail/OrderDetail.svelte +12 -6
  56. package/dist/components/detail/OrderDetail.svelte.d.ts +2 -2
  57. package/dist/components/detail/TanstackOrderQuote.svelte +22 -0
  58. package/dist/components/detail/TanstackOrderQuote.svelte.d.ts +1 -1
  59. package/dist/components/detail/VaultDetail.svelte +12 -10
  60. package/dist/components/detail/VaultDetail.svelte.d.ts +2 -2
  61. package/dist/components/dropdown/{DropdownOrderbooksFilter.svelte → DropdownRaindexesFilter.svelte} +54 -54
  62. package/dist/components/dropdown/DropdownRaindexesFilter.svelte.d.ts +25 -0
  63. package/dist/components/dropdown/DropdownTokensFilter.svelte.d.ts +1 -1
  64. package/dist/components/icon/Refresh.svelte +2 -1
  65. package/dist/components/icon/Refresh.svelte.d.ts +1 -0
  66. package/dist/components/input/InputTokenAmount.svelte +16 -1
  67. package/dist/components/input/InputTokenAmount.svelte.d.ts +1 -1
  68. package/dist/components/tables/OrderTradesListTable.svelte +113 -98
  69. package/dist/components/tables/OrderTradesListTable.svelte.d.ts +1 -1
  70. package/dist/components/tables/OrderVaultsVolTable.svelte +1 -1
  71. package/dist/components/tables/OrderVaultsVolTable.svelte.d.ts +1 -1
  72. package/dist/components/tables/OrdersListTable.svelte +19 -17
  73. package/dist/components/tables/OrdersListTable.svelte.d.ts +1 -1
  74. package/dist/components/tables/VaultBalanceChangesTable.svelte +1 -1
  75. package/dist/components/tables/VaultBalanceChangesTable.svelte.d.ts +1 -1
  76. package/dist/components/tables/VaultsListTable.svelte +24 -21
  77. package/dist/components/tables/VaultsListTable.svelte.d.ts +2 -2
  78. package/dist/components/transactions/FixedBottomTransaction.svelte +1 -0
  79. package/dist/components/transactions/getStatusEmoji.d.ts +1 -1
  80. package/dist/components/transactions/getStatusEmoji.js +13 -13
  81. package/dist/consts.js +1 -1
  82. package/dist/errors/DeploymentStepsError.js +3 -3
  83. package/dist/errors/index.d.ts +1 -1
  84. package/dist/errors/index.js +1 -1
  85. package/dist/hooks/useLocalDb.d.ts +1 -1
  86. package/dist/hooks/useLocalDb.js +3 -3
  87. package/dist/hooks/useRaindexClient.d.ts +1 -1
  88. package/dist/hooks/useRaindexClient.js +4 -4
  89. package/dist/hooks/useRaindexOrderBuilder.d.ts +1 -1
  90. package/dist/hooks/useRaindexOrderBuilder.js +4 -4
  91. package/dist/index.d.ts +122 -114
  92. package/dist/index.js +115 -109
  93. package/dist/models/Transaction.d.ts +4 -4
  94. package/dist/models/Transaction.js +9 -9
  95. package/dist/providers/RaindexClientProvider.svelte +1 -1
  96. package/dist/providers/RaindexClientProvider.svelte.d.ts +1 -1
  97. package/dist/providers/RaindexOrderBuilderProvider.svelte +1 -1
  98. package/dist/providers/RaindexOrderBuilderProvider.svelte.d.ts +1 -1
  99. package/dist/providers/dotrainRegistry/DotrainRegistryProvider.svelte.d.ts +1 -1
  100. package/dist/providers/dotrainRegistry/context.d.ts +2 -2
  101. package/dist/providers/dotrainRegistry/context.js +13 -10
  102. package/dist/providers/dotrainRegistry/useDotrainRegistry.d.ts +1 -1
  103. package/dist/providers/dotrainRegistry/useDotrainRegistry.js +8 -8
  104. package/dist/providers/registry/RegistryManager.js +8 -7
  105. package/dist/providers/registry/context.d.ts +1 -1
  106. package/dist/providers/registry/context.js +9 -9
  107. package/dist/providers/registry/useRegistry.d.ts +1 -1
  108. package/dist/providers/registry/useRegistry.js +5 -5
  109. package/dist/providers/toasts/context.d.ts +2 -2
  110. package/dist/providers/toasts/context.js +4 -4
  111. package/dist/providers/toasts/useToasts.d.ts +1 -1
  112. package/dist/providers/toasts/useToasts.js +4 -4
  113. package/dist/providers/transactions/TransactionManager.d.ts +14 -15
  114. package/dist/providers/transactions/TransactionManager.js +107 -107
  115. package/dist/providers/transactions/context.d.ts +1 -1
  116. package/dist/providers/transactions/context.js +4 -4
  117. package/dist/providers/transactions/useTransactions.js +2 -2
  118. package/dist/providers/wallet/context.d.ts +1 -1
  119. package/dist/providers/wallet/context.js +11 -11
  120. package/dist/providers/wallet/useAccount.js +27 -27
  121. package/dist/queries/keys.js +10 -10
  122. package/dist/queries/queryClient.d.ts +1 -1
  123. package/dist/queries/queryClient.js +8 -8
  124. package/dist/services/awaitTransactionIndexing.d.ts +8 -8
  125. package/dist/services/awaitTransactionIndexing.js +10 -8
  126. package/dist/services/getExplorerLink.js +2 -2
  127. package/dist/services/handleShareChoices.d.ts +1 -1
  128. package/dist/services/handleShareChoices.js +4 -4
  129. package/dist/services/historicalOrderCharts.d.ts +2 -2
  130. package/dist/services/historicalOrderCharts.js +260 -201
  131. package/dist/services/index.d.ts +5 -3
  132. package/dist/services/index.js +3 -2
  133. package/dist/services/loadRegistryUrl.d.ts +1 -1
  134. package/dist/services/loadRegistryUrl.js +5 -5
  135. package/dist/services/pairTradesChartData.d.ts +2 -2
  136. package/dist/services/pairTradesChartData.js +28 -24
  137. package/dist/services/registry.d.ts +1 -1
  138. package/dist/services/registry.js +10 -10
  139. package/dist/services/time.d.ts +1 -1
  140. package/dist/services/time.js +35 -35
  141. package/dist/services/validateAmount.d.ts +30 -0
  142. package/dist/services/validateAmount.js +53 -0
  143. package/dist/storesGeneric/cachedWritableStore.d.ts +2 -2
  144. package/dist/storesGeneric/cachedWritableStore.js +3 -3
  145. package/dist/storesGeneric/scrub.d.ts +14 -0
  146. package/dist/storesGeneric/scrub.js +22 -0
  147. package/dist/test/matchers.d.ts +2 -2
  148. package/dist/test/matchers.js +2 -2
  149. package/dist/types/account.d.ts +2 -2
  150. package/dist/types/appStores.d.ts +3 -3
  151. package/dist/types/modal.d.ts +3 -3
  152. package/dist/types/order.d.ts +1 -1
  153. package/dist/types/toast.d.ts +2 -2
  154. package/dist/types/tokenBalance.d.ts +1 -1
  155. package/dist/types/transaction.d.ts +4 -4
  156. package/dist/utils/breadcrumbs.js +2 -2
  157. package/dist/utils/codeMirrorThemes.js +80 -74
  158. package/dist/utils/configHelpers.d.ts +1 -1
  159. package/dist/utils/configHelpers.js +6 -6
  160. package/dist/utils/constructHashLink.d.ts +3 -3
  161. package/dist/utils/constructHashLink.js +39 -37
  162. package/dist/utils/getNetworkName.js +5 -5
  163. package/dist/utils/hex.js +1 -1
  164. package/dist/utils/lightweightChartsThemes.d.ts +1 -1
  165. package/dist/utils/lightweightChartsThemes.js +11 -11
  166. package/dist/utils/localDbStatus.d.ts +26 -0
  167. package/dist/utils/localDbStatus.js +22 -0
  168. package/dist/utils/number.js +5 -3
  169. package/dist/utils/stripTrailingWhitespace.d.ts +16 -0
  170. package/dist/utils/stripTrailingWhitespace.js +22 -0
  171. package/dist/utils/tokens.d.ts +1 -1
  172. package/dist/utils/tokens.js +1 -1
  173. package/dist/utils/vaultBalanceChangeLabels.d.ts +1 -1
  174. package/dist/utils/vaultBalanceChangeLabels.js +11 -11
  175. package/package.json +89 -89
  176. package/dist/components/dropdown/DropdownOrderbooksFilter.svelte.d.ts +0 -25
@@ -1,12 +1,13 @@
1
- import { writable } from 'svelte/store';
2
- import { TransactionStore } from '../../models/Transaction';
3
- import { TransactionName, TransactionStatusMessage, TransactionStoreErrorMessage } from '../../types/transaction';
4
- import { getExplorerLink } from '../../services/getExplorerLink';
5
- import { RaindexClient, Float } from '@rainlanguage/orderbook';
1
+ import { writable } from "svelte/store";
2
+ import { TransactionStore } from "../../models/Transaction";
3
+ import { TransactionName, TransactionStatusMessage, TransactionStoreErrorMessage, } from "../../types/transaction";
4
+ import { getExplorerLink } from "../../services/getExplorerLink";
5
+ import { RaindexClient, Float, } from "@rainlanguage/raindex";
6
+ const ADD_ORDER_INDEXING_MAX_ATTEMPTS = 12;
7
+ const ADD_ORDER_INDEXING_INTERVAL_MS = 5_000;
6
8
  /**
7
9
  * Creates an indexing function that wraps SDK-based polling logic.
8
- * The SDK handles local-DB-first polling followed by subgraph fallback internally,
9
- * so we only need to call it once.
10
+ * The SDK handles the retry loop internally, so we only need to call it once.
10
11
  *
11
12
  * @param options Configuration for SDK-based indexing
12
13
  * @param options.call Function that calls the SDK method (e.g. getAddOrdersForTransaction)
@@ -20,17 +21,17 @@ export function createSdkIndexingFn(options) {
20
21
  try {
21
22
  const result = await options.call();
22
23
  if (result.error) {
23
- const errorMsg = result.error.readableMsg?.toLowerCase() ?? '';
24
- if (errorMsg.includes('timeout')) {
24
+ const errorMsg = result.error.readableMsg?.toLowerCase() ?? "";
25
+ if (errorMsg.includes("timeout")) {
25
26
  ctx.updateState({
26
27
  status: TransactionStatusMessage.ERROR,
27
- errorDetails: TransactionStoreErrorMessage.SUBGRAPH_TIMEOUT_ERROR
28
+ errorDetails: TransactionStoreErrorMessage.SUBGRAPH_TIMEOUT_ERROR,
28
29
  });
29
30
  }
30
31
  else {
31
32
  ctx.updateState({
32
33
  status: TransactionStatusMessage.ERROR,
33
- errorDetails: TransactionStoreErrorMessage.SUBGRAPH_FAILED
34
+ errorDetails: TransactionStoreErrorMessage.SUBGRAPH_FAILED,
34
35
  });
35
36
  }
36
37
  return ctx.onError();
@@ -47,14 +48,14 @@ export function createSdkIndexingFn(options) {
47
48
  // No valid data after polling
48
49
  ctx.updateState({
49
50
  status: TransactionStatusMessage.ERROR,
50
- errorDetails: TransactionStoreErrorMessage.SUBGRAPH_FAILED
51
+ errorDetails: TransactionStoreErrorMessage.SUBGRAPH_FAILED,
51
52
  });
52
53
  return ctx.onError();
53
54
  }
54
55
  catch {
55
56
  ctx.updateState({
56
57
  status: TransactionStatusMessage.ERROR,
57
- errorDetails: TransactionStoreErrorMessage.SUBGRAPH_FAILED
58
+ errorDetails: TransactionStoreErrorMessage.SUBGRAPH_FAILED,
58
59
  });
59
60
  return ctx.onError();
60
61
  }
@@ -87,7 +88,7 @@ export class TransactionManager {
87
88
  this.transactions = writable([]);
88
89
  }
89
90
  /**
90
- * Creates and initializes a new transaction for removing an order from the orderbook.
91
+ * Creates and initializes a new transaction for removing an order from the raindex.
91
92
  * @param args - Configuration for the remove order transaction.
92
93
  * @param args.txHash - Hash of the transaction to track.
93
94
  * @param args.chainId - Chain ID where the transaction is being executed.
@@ -104,19 +105,19 @@ export class TransactionManager {
104
105
  */
105
106
  async createRemoveOrderTransaction(args) {
106
107
  const name = TransactionName.REMOVAL;
107
- const errorMessage = 'Order removal failed.';
108
- const successMessage = 'Order removed successfully.';
109
- const { chainId, entity: { orderbook }, queryKey, txHash, raindexClient } = args;
110
- const explorerLink = await getExplorerLink(txHash, chainId, 'tx');
108
+ const errorMessage = "Order removal failed.";
109
+ const successMessage = "Order removed successfully.";
110
+ const { chainId, entity: { raindex }, queryKey, txHash, raindexClient, } = args;
111
+ const explorerLink = await getExplorerLink(txHash, chainId, "tx");
111
112
  const toastLinks = [
112
113
  {
113
114
  link: explorerLink,
114
- label: 'View on explorer'
115
- }
115
+ label: "View on explorer",
116
+ },
116
117
  ];
117
118
  const awaitIndexingFn = createSdkIndexingFn({
118
- call: () => raindexClient.getRemoveOrdersForTransaction(chainId, orderbook, txHash),
119
- isSuccess: (orders) => Array.isArray(orders) && orders.length > 0
119
+ call: () => raindexClient.getRemoveOrdersForTransaction(chainId, raindex, txHash),
120
+ isSuccess: (orders) => Array.isArray(orders) && orders.length > 0,
120
121
  });
121
122
  return this.createTransaction({
122
123
  ...args,
@@ -125,7 +126,7 @@ export class TransactionManager {
125
126
  successMessage,
126
127
  queryKey,
127
128
  toastLinks,
128
- awaitIndexingFn
129
+ awaitIndexingFn,
129
130
  });
130
131
  }
131
132
  /**
@@ -146,23 +147,23 @@ export class TransactionManager {
146
147
  */
147
148
  async createWithdrawTransaction(args) {
148
149
  const name = TransactionName.WITHDRAWAL;
149
- const errorMessage = 'Withdrawal failed.';
150
- const successMessage = 'Withdrawal successful.';
151
- const { chainId, entity: { orderbook }, queryKey, txHash, raindexClient } = args;
152
- const explorerLink = await getExplorerLink(txHash, chainId, 'tx');
150
+ const errorMessage = "Withdrawal failed.";
151
+ const successMessage = "Withdrawal successful.";
152
+ const { chainId, entity: { raindex }, queryKey, txHash, raindexClient, } = args;
153
+ const explorerLink = await getExplorerLink(txHash, chainId, "tx");
153
154
  const toastLinks = [
154
155
  {
155
- link: `/vaults/${chainId}-${orderbook}-${queryKey}`,
156
- label: 'View vault'
156
+ link: `/vaults/${chainId}-${raindex}-${queryKey}`,
157
+ label: "View vault",
157
158
  },
158
159
  {
159
160
  link: explorerLink,
160
- label: 'View on explorer'
161
- }
161
+ label: "View on explorer",
162
+ },
162
163
  ];
163
164
  const awaitIndexingFn = createSdkIndexingFn({
164
- call: () => raindexClient.getTransaction(chainId, orderbook, txHash),
165
- isSuccess: (tx) => !!tx
165
+ call: () => raindexClient.getTransaction(chainId, raindex, txHash),
166
+ isSuccess: (tx) => !!tx,
166
167
  });
167
168
  return this.createTransaction({
168
169
  ...args,
@@ -171,18 +172,18 @@ export class TransactionManager {
171
172
  successMessage,
172
173
  queryKey,
173
174
  toastLinks,
174
- awaitIndexingFn
175
+ awaitIndexingFn,
175
176
  });
176
177
  }
177
178
  /**
178
179
  * Creates a multicall withdrawal transaction.
179
180
  *
180
- * Precondition: all provided vaults must share the same Raindex orderbook.
181
+ * Precondition: all provided vaults must share the same raindex.
181
182
  * This is enforced upstream in handleVaultsWithdrawAll.ts:
182
- * if (vaults.some(v => v.orderbook !== vaults[0].orderbook)) { … }
183
+ * if (vaults.some(v => v.raindex !== vaults[0].raindex)) { … }
183
184
  *
184
185
  * @param args.chainId the target chain ID
185
- * @param args.vaults list of RaindexVault instances (must share an orderbook)
186
+ * @param args.vaults list of RaindexVault instances (must share a raindex)
186
187
  * @param args.txHash the transaction hash to wrap
187
188
  * @param args.queryKey cache key for invalidation
188
189
  * @param args.raindexClient Raindex API client * @example
@@ -196,29 +197,29 @@ export class TransactionManager {
196
197
  */
197
198
  async createVaultsWithdrawAllTransaction(args) {
198
199
  const name = TransactionName.WITHDRAWAL_MULTIPLE;
199
- const errorMessage = 'Withdrawal failed.';
200
- const successMessage = 'Withdrawal successful.';
200
+ const errorMessage = "Withdrawal failed.";
201
+ const successMessage = "Withdrawal successful.";
201
202
  const { chainId, vaults, txHash, queryKey, raindexClient } = args;
202
203
  if (vaults.length === 0) {
203
- throw new Error('At least one vault is required for withdrawal');
204
+ throw new Error("At least one vault is required for withdrawal");
204
205
  }
205
- // All vaults must share the same orderbook for multicall transactions
206
+ // All vaults must share the same raindex for multicall transactions
206
207
  // It should be validated before calling this method
207
- const orderbook = vaults[0].orderbook;
208
- const explorerLink = await getExplorerLink(txHash, chainId, 'tx');
208
+ const raindex = vaults[0].raindex;
209
+ const explorerLink = await getExplorerLink(txHash, chainId, "tx");
209
210
  const toastLinks = [
210
211
  {
211
- link: '/vaults/',
212
- label: 'View all vaults'
212
+ link: "/vaults/",
213
+ label: "View all vaults",
213
214
  },
214
215
  {
215
216
  link: explorerLink,
216
- label: 'View on explorer'
217
- }
217
+ label: "View on explorer",
218
+ },
218
219
  ];
219
220
  const awaitIndexingFn = createSdkIndexingFn({
220
- call: () => raindexClient.getTransaction(chainId, orderbook, txHash),
221
- isSuccess: (tx) => !!tx
221
+ call: () => raindexClient.getTransaction(chainId, raindex, txHash),
222
+ isSuccess: (tx) => !!tx,
222
223
  });
223
224
  return this.createTransaction({
224
225
  ...args,
@@ -227,7 +228,7 @@ export class TransactionManager {
227
228
  successMessage,
228
229
  toastLinks,
229
230
  queryKey,
230
- awaitIndexingFn
231
+ awaitIndexingFn,
231
232
  });
232
233
  }
233
234
  /**
@@ -249,24 +250,24 @@ export class TransactionManager {
249
250
  */
250
251
  async createApprovalTransaction(args) {
251
252
  const { entity, queryKey, chainId } = args;
252
- const tokenSymbol = entity?.token.symbol || 'token';
253
+ const tokenSymbol = entity?.token.symbol || "token";
253
254
  const name = `Approving ${tokenSymbol} spend`;
254
- const errorMessage = 'Approval failed.';
255
- const successMessage = 'Approval successful.';
256
- const explorerLink = await getExplorerLink(args.txHash, args.chainId, 'tx');
255
+ const errorMessage = "Approval failed.";
256
+ const successMessage = "Approval successful.";
257
+ const explorerLink = await getExplorerLink(args.txHash, args.chainId, "tx");
257
258
  let toastLinks = [
258
259
  {
259
260
  link: explorerLink,
260
- label: 'View on explorer'
261
- }
261
+ label: "View on explorer",
262
+ },
262
263
  ];
263
264
  if (entity) {
264
265
  toastLinks = [
265
266
  {
266
- link: `/vaults/${chainId}-${entity.orderbook}-${queryKey}`,
267
- label: 'View vault'
267
+ link: `/vaults/${chainId}-${entity.raindex}-${queryKey}`,
268
+ label: "View vault",
268
269
  },
269
- ...toastLinks
270
+ ...toastLinks,
270
271
  ];
271
272
  }
272
273
  return this.createTransaction({
@@ -274,7 +275,7 @@ export class TransactionManager {
274
275
  name,
275
276
  errorMessage,
276
277
  successMessage,
277
- toastLinks
278
+ toastLinks,
278
279
  });
279
280
  }
280
281
  /**
@@ -285,22 +286,22 @@ export class TransactionManager {
285
286
  * @param args.queryKey - Identifier used for query invalidation, typically the order hash.
286
287
  */
287
288
  async createMetaTransaction(args) {
288
- const name = 'Publishing metadata';
289
- const errorMessage = 'Metadata publication failed.';
290
- const successMessage = 'Metadata published.';
291
- const explorerLink = await getExplorerLink(args.txHash, args.chainId, 'tx');
289
+ const name = "Publishing metadata";
290
+ const errorMessage = "Metadata publication failed.";
291
+ const successMessage = "Metadata published.";
292
+ const explorerLink = await getExplorerLink(args.txHash, args.chainId, "tx");
292
293
  const toastLinks = [
293
294
  {
294
295
  link: explorerLink,
295
- label: 'View on explorer'
296
- }
296
+ label: "View on explorer",
297
+ },
297
298
  ];
298
299
  return this.createTransaction({
299
300
  ...args,
300
301
  name,
301
302
  errorMessage,
302
303
  successMessage,
303
- toastLinks
304
+ toastLinks,
304
305
  });
305
306
  }
306
307
  /**
@@ -324,23 +325,23 @@ export class TransactionManager {
324
325
  async createDepositTransaction(args) {
325
326
  const tokenSymbol = args.entity.token.symbol;
326
327
  const name = `Depositing ${args.amount.format().value} ${tokenSymbol}`;
327
- const errorMessage = 'Deposit failed.';
328
- const successMessage = 'Deposit successful.';
329
- const { chainId, entity: { orderbook }, txHash, queryKey, raindexClient } = args;
330
- const explorerLink = await getExplorerLink(txHash, chainId, 'tx');
328
+ const errorMessage = "Deposit failed.";
329
+ const successMessage = "Deposit successful.";
330
+ const { chainId, entity: { raindex }, txHash, queryKey, raindexClient, } = args;
331
+ const explorerLink = await getExplorerLink(txHash, chainId, "tx");
331
332
  const toastLinks = [
332
333
  {
333
- link: `/vaults/${chainId}-${orderbook}-${queryKey}`,
334
- label: 'View vault'
334
+ link: `/vaults/${chainId}-${raindex}-${queryKey}`,
335
+ label: "View vault",
335
336
  },
336
337
  {
337
338
  link: explorerLink,
338
- label: 'View on explorer'
339
- }
339
+ label: "View on explorer",
340
+ },
340
341
  ];
341
342
  const awaitIndexingFn = createSdkIndexingFn({
342
- call: () => raindexClient.getTransaction(chainId, orderbook, txHash),
343
- isSuccess: (tx) => !!tx
343
+ call: () => raindexClient.getTransaction(chainId, raindex, txHash),
344
+ isSuccess: (tx) => !!tx,
344
345
  });
345
346
  return this.createTransaction({
346
347
  ...args,
@@ -349,7 +350,7 @@ export class TransactionManager {
349
350
  successMessage,
350
351
  queryKey,
351
352
  toastLinks,
352
- awaitIndexingFn
353
+ awaitIndexingFn,
353
354
  });
354
355
  }
355
356
  /**
@@ -367,21 +368,20 @@ export class TransactionManager {
367
368
  * });
368
369
  */
369
370
  async createAddOrderTransaction(args) {
370
- const { queryKey, txHash, chainId, orderbook, raindexClient } = args;
371
- const name = 'Deploying order';
372
- const errorMessage = 'Deployment failed.';
373
- const successMessage = 'Order deployed successfully.';
374
- const explorerLink = await getExplorerLink(txHash, chainId, 'tx');
371
+ const { queryKey, txHash, chainId, raindex, raindexClient } = args;
372
+ const name = "Deploying order";
373
+ const errorMessage = "Deployment failed.";
374
+ const successMessage = "Order deployed successfully.";
375
+ const explorerLink = await getExplorerLink(txHash, chainId, "tx");
375
376
  const toastLinks = [
376
377
  {
377
378
  link: explorerLink,
378
- label: 'View on explorer'
379
- }
379
+ label: "View on explorer",
380
+ },
380
381
  ];
381
- // SDK-based indexing - the SDK's getAddOrdersForTransaction handles
382
- // local-DB-first polling followed by subgraph fallback internally
382
+ // SDK-based indexing - getAddOrdersForTransaction handles the retry loop.
383
383
  const awaitIndexingFn = createSdkIndexingFn({
384
- call: () => raindexClient.getAddOrdersForTransaction(chainId, orderbook, txHash),
384
+ call: () => raindexClient.getAddOrdersForTransaction(chainId, raindex, txHash, ADD_ORDER_INDEXING_MAX_ATTEMPTS, ADD_ORDER_INDEXING_INTERVAL_MS),
385
385
  isSuccess: (orders) => Array.isArray(orders) && orders.length > 0,
386
386
  buildLinks: (orders) => {
387
387
  if (!Array.isArray(orders) || orders.length === 0)
@@ -391,11 +391,11 @@ export class TransactionManager {
391
391
  return [];
392
392
  return [
393
393
  {
394
- link: `/orders/${chainId}-${orderbook}-${firstOrder.orderHash}`,
395
- label: 'View order'
396
- }
394
+ link: `/orders/${chainId}-${raindex}-${firstOrder.orderHash}`,
395
+ label: "View order",
396
+ },
397
397
  ];
398
- }
398
+ },
399
399
  });
400
400
  return this.createTransaction({
401
401
  ...args,
@@ -404,7 +404,7 @@ export class TransactionManager {
404
404
  successMessage,
405
405
  queryKey,
406
406
  toastLinks,
407
- awaitIndexingFn
407
+ awaitIndexingFn,
408
408
  });
409
409
  }
410
410
  /**
@@ -426,19 +426,19 @@ export class TransactionManager {
426
426
  */
427
427
  async createTakeOrderTransaction(args) {
428
428
  const name = TransactionName.TAKE_ORDER;
429
- const errorMessage = 'Take order failed.';
430
- const successMessage = 'Order taken successfully.';
431
- const { chainId, entity: { orderbook }, queryKey, txHash, raindexClient } = args;
432
- const explorerLink = await getExplorerLink(txHash, chainId, 'tx');
429
+ const errorMessage = "Take order failed.";
430
+ const successMessage = "Order taken successfully.";
431
+ const { chainId, entity: { raindex }, queryKey, txHash, raindexClient, } = args;
432
+ const explorerLink = await getExplorerLink(txHash, chainId, "tx");
433
433
  const toastLinks = [
434
434
  {
435
435
  link: explorerLink,
436
- label: 'View on explorer'
437
- }
436
+ label: "View on explorer",
437
+ },
438
438
  ];
439
439
  const awaitIndexingFn = createSdkIndexingFn({
440
- call: () => raindexClient.getTransaction(chainId, orderbook, txHash),
441
- isSuccess: (tx) => !!tx
440
+ call: () => raindexClient.getTransaction(chainId, raindex, txHash),
441
+ isSuccess: (tx) => !!tx,
442
442
  });
443
443
  return this.createTransaction({
444
444
  ...args,
@@ -447,7 +447,7 @@ export class TransactionManager {
447
447
  successMessage,
448
448
  queryKey,
449
449
  toastLinks,
450
- awaitIndexingFn
450
+ awaitIndexingFn,
451
451
  });
452
452
  }
453
453
  /**
@@ -465,7 +465,7 @@ export class TransactionManager {
465
465
  async createTransaction(args) {
466
466
  const createTransactionArgs = {
467
467
  ...args,
468
- config: this.wagmiConfig
468
+ config: this.wagmiConfig,
469
469
  };
470
470
  const onSuccess = () => {
471
471
  if (args.queryKey) {
@@ -475,15 +475,15 @@ export class TransactionManager {
475
475
  const onError = () => {
476
476
  this.addToast({
477
477
  message: args.errorMessage,
478
- type: 'error',
479
- color: 'red',
480
- links: args.toastLinks
478
+ type: "error",
479
+ color: "red",
480
+ links: args.toastLinks,
481
481
  });
482
482
  };
483
483
  const transactionInstance = new TransactionStore(createTransactionArgs, onSuccess, onError);
484
484
  this.transactions.update((currentTransactions) => [
485
485
  ...currentTransactions,
486
- transactionInstance
486
+ transactionInstance,
487
487
  ]);
488
488
  await transactionInstance.execute();
489
489
  return transactionInstance;
@@ -1,4 +1,4 @@
1
- import { TransactionManager } from './TransactionManager';
1
+ import { TransactionManager } from "./TransactionManager";
2
2
  /**
3
3
  * The context key used to store and retrieve the TransactionManager instance
4
4
  */
@@ -1,9 +1,9 @@
1
- import { getContext, setContext } from 'svelte';
2
- import { TransactionManager } from './TransactionManager';
1
+ import { getContext, setContext } from "svelte";
2
+ import { TransactionManager } from "./TransactionManager";
3
3
  /**
4
4
  * The context key used to store and retrieve the TransactionManager instance
5
5
  */
6
- export const TRANSACTION_MANAGER_CONTEXT_KEY = 'rain:ui-components:transactionManager';
6
+ export const TRANSACTION_MANAGER_CONTEXT_KEY = "rain:ui-components:transactionManager";
7
7
  /**
8
8
  * Sets the TransactionManager instance in Svelte's context
9
9
  *
@@ -22,7 +22,7 @@ export function setTransactionManagerContext(manager) {
22
22
  export function getTransactionManagerContext() {
23
23
  const manager = getContext(TRANSACTION_MANAGER_CONTEXT_KEY);
24
24
  if (!manager) {
25
- throw new Error('TransactionManager not found. Did you forget to setTransactionManagerContext?');
25
+ throw new Error("TransactionManager not found. Did you forget to setTransactionManagerContext?");
26
26
  }
27
27
  return manager;
28
28
  }
@@ -1,4 +1,4 @@
1
- import { getTransactionManagerContext } from './context';
1
+ import { getTransactionManagerContext } from "./context";
2
2
  /**
3
3
  * Hook for accessing the transaction manager in the application.
4
4
  * Provides access to the transactions store for monitoring transaction states.
@@ -13,6 +13,6 @@ export function useTransactions() {
13
13
  const transactions = manager.getTransactions();
14
14
  return {
15
15
  manager,
16
- transactions
16
+ transactions,
17
17
  };
18
18
  }
@@ -1,4 +1,4 @@
1
- import type { Account } from '../../types/account';
1
+ import type { Account } from "../../types/account";
2
2
  export declare const ACCOUNT_KEY = "account_key";
3
3
  /**
4
4
  * Retrieves the account store directly from Svelte's context
@@ -1,13 +1,13 @@
1
- import { getContext, setContext } from 'svelte';
2
- import { readable } from 'svelte/store';
3
- export const ACCOUNT_KEY = 'account_key';
1
+ import { getContext, setContext } from "svelte";
2
+ import { readable } from "svelte/store";
3
+ export const ACCOUNT_KEY = "account_key";
4
4
  /**
5
5
  * Retrieves the account store directly from Svelte's context
6
6
  */
7
7
  export const getAccountContext = () => {
8
8
  const account = getContext(ACCOUNT_KEY);
9
9
  if (!account) {
10
- throw new Error('No account was found in Svelte context. Did you forget to wrap your component with WalletProvider?');
10
+ throw new Error("No account was found in Svelte context. Did you forget to wrap your component with WalletProvider?");
11
11
  }
12
12
  return account;
13
13
  };
@@ -19,17 +19,17 @@ export const setAccountContext = (account) => {
19
19
  };
20
20
  if (import.meta.vitest) {
21
21
  const { describe, it, expect, vi, beforeEach } = import.meta.vitest;
22
- vi.mock('svelte', async (importOriginal) => ({
22
+ vi.mock("svelte", async (importOriginal) => ({
23
23
  ...(await importOriginal()),
24
- getContext: vi.fn()
24
+ getContext: vi.fn(),
25
25
  }));
26
- describe('getAccountContext', () => {
26
+ describe("getAccountContext", () => {
27
27
  const mockGetContext = vi.mocked(getContext);
28
28
  beforeEach(() => {
29
29
  mockGetContext.mockReset();
30
30
  });
31
- it('should return the account from context when it exists', () => {
32
- const mockAccount = readable('0x456');
31
+ it("should return the account from context when it exists", () => {
32
+ const mockAccount = readable("0x456");
33
33
  mockGetContext.mockImplementation((key) => {
34
34
  if (key === ACCOUNT_KEY)
35
35
  return mockAccount;
@@ -39,9 +39,9 @@ if (import.meta.vitest) {
39
39
  expect(mockGetContext).toHaveBeenCalledWith(ACCOUNT_KEY);
40
40
  expect(result).toEqual(mockAccount);
41
41
  });
42
- it('should throw an error when account is not in context', () => {
42
+ it("should throw an error when account is not in context", () => {
43
43
  mockGetContext.mockReturnValue(undefined);
44
- expect(() => getAccountContext()).toThrow('No account was found in Svelte context. Did you forget to wrap your component with WalletProvider?');
44
+ expect(() => getAccountContext()).toThrow("No account was found in Svelte context. Did you forget to wrap your component with WalletProvider?");
45
45
  });
46
46
  });
47
47
  }