@superfluid-finance/sdk-redux 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 (167) hide show
  1. package/LICENSE +9 -0
  2. package/README.md +175 -0
  3. package/build/main/SuperfluidContext.d.ts +31 -0
  4. package/build/main/SuperfluidContext.js +49 -0
  5. package/build/main/createSdkReduxParts.d.ts +23 -0
  6. package/build/main/createSdkReduxParts.js +30 -0
  7. package/build/main/index.d.ts +29 -0
  8. package/build/main/index.js +41 -0
  9. package/build/main/redux-slices/argTypes.d.ts +53 -0
  10. package/build/main/redux-slices/argTypes.js +3 -0
  11. package/build/main/redux-slices/rtk-query/cacheTags/CacheTagTypes.d.ts +15 -0
  12. package/build/main/redux-slices/rtk-query/cacheTags/CacheTagTypes.js +18 -0
  13. package/build/main/redux-slices/rtk-query/cacheTags/eventTags.d.ts +9 -0
  14. package/build/main/redux-slices/rtk-query/cacheTags/eventTags.js +12 -0
  15. package/build/main/redux-slices/rtk-query/cacheTags/indexTags.d.ts +36 -0
  16. package/build/main/redux-slices/rtk-query/cacheTags/indexTags.js +31 -0
  17. package/build/main/redux-slices/rtk-query/cacheTags/invalidateCacheTagsForEvents.d.ts +9 -0
  18. package/build/main/redux-slices/rtk-query/cacheTags/invalidateCacheTagsForEvents.js +148 -0
  19. package/build/main/redux-slices/rtk-query/cacheTags/monitorAddressForNextEventToInvalidateCache.d.ts +10 -0
  20. package/build/main/redux-slices/rtk-query/cacheTags/monitorAddressForNextEventToInvalidateCache.js +21 -0
  21. package/build/main/redux-slices/rtk-query/cacheTags/streamTags.d.ts +35 -0
  22. package/build/main/redux-slices/rtk-query/cacheTags/streamTags.js +30 -0
  23. package/build/main/redux-slices/rtk-query/cacheTags/tokenTags.d.ts +35 -0
  24. package/build/main/redux-slices/rtk-query/cacheTags/tokenTags.js +30 -0
  25. package/build/main/redux-slices/rtk-query/mutations/approveIndexSubscription.d.ts +19 -0
  26. package/build/main/redux-slices/rtk-query/mutations/approveIndexSubscription.js +45 -0
  27. package/build/main/redux-slices/rtk-query/mutations/claimFromIndexSubscription.d.ts +21 -0
  28. package/build/main/redux-slices/rtk-query/mutations/claimFromIndexSubscription.js +46 -0
  29. package/build/main/redux-slices/rtk-query/mutations/createFlow.d.ts +19 -0
  30. package/build/main/redux-slices/rtk-query/mutations/createFlow.js +50 -0
  31. package/build/main/redux-slices/rtk-query/mutations/createIndex.d.ts +17 -0
  32. package/build/main/redux-slices/rtk-query/mutations/createIndex.js +50 -0
  33. package/build/main/redux-slices/rtk-query/mutations/deleteFlow.d.ts +17 -0
  34. package/build/main/redux-slices/rtk-query/mutations/deleteFlow.js +48 -0
  35. package/build/main/redux-slices/rtk-query/mutations/deleteIndexSubscription.d.ts +21 -0
  36. package/build/main/redux-slices/rtk-query/mutations/deleteIndexSubscription.js +46 -0
  37. package/build/main/redux-slices/rtk-query/mutations/distributeToIndex.d.ts +19 -0
  38. package/build/main/redux-slices/rtk-query/mutations/distributeToIndex.js +48 -0
  39. package/build/main/redux-slices/rtk-query/mutations/downgradeFromSuperToken.d.ts +15 -0
  40. package/build/main/redux-slices/rtk-query/mutations/downgradeFromSuperToken.js +46 -0
  41. package/build/main/redux-slices/rtk-query/mutations/monitorForEventsToInvalidateCache.d.ts +16 -0
  42. package/build/main/redux-slices/rtk-query/mutations/monitorForEventsToInvalidateCache.js +40 -0
  43. package/build/main/redux-slices/rtk-query/mutations/revokeIndexSubscription.d.ts +19 -0
  44. package/build/main/redux-slices/rtk-query/mutations/revokeIndexSubscription.js +45 -0
  45. package/build/main/redux-slices/rtk-query/mutations/transferSuperToken.d.ts +17 -0
  46. package/build/main/redux-slices/rtk-query/mutations/transferSuperToken.js +47 -0
  47. package/build/main/redux-slices/rtk-query/mutations/updateFlow.d.ts +19 -0
  48. package/build/main/redux-slices/rtk-query/mutations/updateFlow.js +49 -0
  49. package/build/main/redux-slices/rtk-query/mutations/updateIndexSubscriptionUnits.d.ts +21 -0
  50. package/build/main/redux-slices/rtk-query/mutations/updateIndexSubscriptionUnits.js +46 -0
  51. package/build/main/redux-slices/rtk-query/mutations/upgradeToSuperToken.d.ts +16 -0
  52. package/build/main/redux-slices/rtk-query/mutations/upgradeToSuperToken.js +65 -0
  53. package/build/main/redux-slices/rtk-query/queries/getAllowanceForUpgradeToSuperToken.d.ts +17 -0
  54. package/build/main/redux-slices/rtk-query/queries/getAllowanceForUpgradeToSuperToken.js +43 -0
  55. package/build/main/redux-slices/rtk-query/queries/getIndex.d.ts +17 -0
  56. package/build/main/redux-slices/rtk-query/queries/getIndex.js +43 -0
  57. package/build/main/redux-slices/rtk-query/queries/getIndexSubscription.d.ts +17 -0
  58. package/build/main/redux-slices/rtk-query/queries/getIndexSubscription.js +44 -0
  59. package/build/main/redux-slices/rtk-query/queries/getRealtimeBalance.d.ts +22 -0
  60. package/build/main/redux-slices/rtk-query/queries/getRealtimeBalance.js +75 -0
  61. package/build/main/redux-slices/rtk-query/queries/listEvents.d.ts +15 -0
  62. package/build/main/redux-slices/rtk-query/queries/listEvents.js +59 -0
  63. package/build/main/redux-slices/rtk-query/queries/listIndexSubscriptions.d.ts +15 -0
  64. package/build/main/redux-slices/rtk-query/queries/listIndexSubscriptions.js +41 -0
  65. package/build/main/redux-slices/rtk-query/queries/listIndexes.d.ts +16 -0
  66. package/build/main/redux-slices/rtk-query/queries/listIndexes.js +42 -0
  67. package/build/main/redux-slices/rtk-query/queries/listStreams.d.ts +16 -0
  68. package/build/main/redux-slices/rtk-query/queries/listStreams.js +41 -0
  69. package/build/main/redux-slices/rtk-query/queries/listSuperTokens.d.ts +14 -0
  70. package/build/main/redux-slices/rtk-query/queries/listSuperTokens.js +39 -0
  71. package/build/main/redux-slices/rtk-query/queries/listUserInteractedSuperTokens.d.ts +15 -0
  72. package/build/main/redux-slices/rtk-query/queries/listUserInteractedSuperTokens.js +56 -0
  73. package/build/main/redux-slices/rtk-query/rtkQuerySlice.d.ts +3 -0
  74. package/build/main/redux-slices/rtk-query/rtkQuerySlice.js +53 -0
  75. package/build/main/redux-slices/rtk-query/rtkQuerySliceBaseQuery.d.ts +21 -0
  76. package/build/main/redux-slices/rtk-query/rtkQuerySliceBaseQuery.js +14 -0
  77. package/build/main/redux-slices/transactions/registerNewTransaction.d.ts +5 -0
  78. package/build/main/redux-slices/transactions/registerNewTransaction.js +33 -0
  79. package/build/main/redux-slices/transactions/trackTransaction.d.ts +12 -0
  80. package/build/main/redux-slices/transactions/trackTransaction.js +66 -0
  81. package/build/main/redux-slices/transactions/transactionSlice.d.ts +36 -0
  82. package/build/main/redux-slices/transactions/transactionSlice.js +19 -0
  83. package/build/main/utils.d.ts +25 -0
  84. package/build/main/utils.js +34 -0
  85. package/build/module/SuperfluidContext.d.ts +31 -0
  86. package/build/module/SuperfluidContext.js +46 -0
  87. package/build/module/createSdkReduxParts.d.ts +23 -0
  88. package/build/module/createSdkReduxParts.js +26 -0
  89. package/build/module/index.d.ts +29 -0
  90. package/build/module/index.js +29 -0
  91. package/build/module/redux-slices/argTypes.d.ts +53 -0
  92. package/build/module/redux-slices/argTypes.js +2 -0
  93. package/build/module/redux-slices/rtk-query/cacheTags/CacheTagTypes.d.ts +15 -0
  94. package/build/module/redux-slices/rtk-query/cacheTags/CacheTagTypes.js +14 -0
  95. package/build/module/redux-slices/rtk-query/cacheTags/eventTags.d.ts +9 -0
  96. package/build/module/redux-slices/rtk-query/cacheTags/eventTags.js +8 -0
  97. package/build/module/redux-slices/rtk-query/cacheTags/indexTags.d.ts +36 -0
  98. package/build/module/redux-slices/rtk-query/cacheTags/indexTags.js +26 -0
  99. package/build/module/redux-slices/rtk-query/cacheTags/invalidateCacheTagsForEvents.d.ts +9 -0
  100. package/build/module/redux-slices/rtk-query/cacheTags/invalidateCacheTagsForEvents.js +144 -0
  101. package/build/module/redux-slices/rtk-query/cacheTags/monitorAddressForNextEventToInvalidateCache.d.ts +10 -0
  102. package/build/module/redux-slices/rtk-query/cacheTags/monitorAddressForNextEventToInvalidateCache.js +17 -0
  103. package/build/module/redux-slices/rtk-query/cacheTags/streamTags.d.ts +35 -0
  104. package/build/module/redux-slices/rtk-query/cacheTags/streamTags.js +25 -0
  105. package/build/module/redux-slices/rtk-query/cacheTags/tokenTags.d.ts +35 -0
  106. package/build/module/redux-slices/rtk-query/cacheTags/tokenTags.js +25 -0
  107. package/build/module/redux-slices/rtk-query/mutations/approveIndexSubscription.d.ts +19 -0
  108. package/build/module/redux-slices/rtk-query/mutations/approveIndexSubscription.js +43 -0
  109. package/build/module/redux-slices/rtk-query/mutations/claimFromIndexSubscription.d.ts +21 -0
  110. package/build/module/redux-slices/rtk-query/mutations/claimFromIndexSubscription.js +44 -0
  111. package/build/module/redux-slices/rtk-query/mutations/createFlow.d.ts +19 -0
  112. package/build/module/redux-slices/rtk-query/mutations/createFlow.js +48 -0
  113. package/build/module/redux-slices/rtk-query/mutations/createIndex.d.ts +17 -0
  114. package/build/module/redux-slices/rtk-query/mutations/createIndex.js +48 -0
  115. package/build/module/redux-slices/rtk-query/mutations/deleteFlow.d.ts +17 -0
  116. package/build/module/redux-slices/rtk-query/mutations/deleteFlow.js +46 -0
  117. package/build/module/redux-slices/rtk-query/mutations/deleteIndexSubscription.d.ts +21 -0
  118. package/build/module/redux-slices/rtk-query/mutations/deleteIndexSubscription.js +44 -0
  119. package/build/module/redux-slices/rtk-query/mutations/distributeToIndex.d.ts +19 -0
  120. package/build/module/redux-slices/rtk-query/mutations/distributeToIndex.js +46 -0
  121. package/build/module/redux-slices/rtk-query/mutations/downgradeFromSuperToken.d.ts +15 -0
  122. package/build/module/redux-slices/rtk-query/mutations/downgradeFromSuperToken.js +44 -0
  123. package/build/module/redux-slices/rtk-query/mutations/monitorForEventsToInvalidateCache.d.ts +16 -0
  124. package/build/module/redux-slices/rtk-query/mutations/monitorForEventsToInvalidateCache.js +38 -0
  125. package/build/module/redux-slices/rtk-query/mutations/revokeIndexSubscription.d.ts +19 -0
  126. package/build/module/redux-slices/rtk-query/mutations/revokeIndexSubscription.js +43 -0
  127. package/build/module/redux-slices/rtk-query/mutations/transferSuperToken.d.ts +17 -0
  128. package/build/module/redux-slices/rtk-query/mutations/transferSuperToken.js +45 -0
  129. package/build/module/redux-slices/rtk-query/mutations/updateFlow.d.ts +19 -0
  130. package/build/module/redux-slices/rtk-query/mutations/updateFlow.js +47 -0
  131. package/build/module/redux-slices/rtk-query/mutations/updateIndexSubscriptionUnits.d.ts +21 -0
  132. package/build/module/redux-slices/rtk-query/mutations/updateIndexSubscriptionUnits.js +44 -0
  133. package/build/module/redux-slices/rtk-query/mutations/upgradeToSuperToken.d.ts +16 -0
  134. package/build/module/redux-slices/rtk-query/mutations/upgradeToSuperToken.js +63 -0
  135. package/build/module/redux-slices/rtk-query/queries/getAllowanceForUpgradeToSuperToken.d.ts +17 -0
  136. package/build/module/redux-slices/rtk-query/queries/getAllowanceForUpgradeToSuperToken.js +41 -0
  137. package/build/module/redux-slices/rtk-query/queries/getIndex.d.ts +17 -0
  138. package/build/module/redux-slices/rtk-query/queries/getIndex.js +41 -0
  139. package/build/module/redux-slices/rtk-query/queries/getIndexSubscription.d.ts +17 -0
  140. package/build/module/redux-slices/rtk-query/queries/getIndexSubscription.js +42 -0
  141. package/build/module/redux-slices/rtk-query/queries/getRealtimeBalance.d.ts +22 -0
  142. package/build/module/redux-slices/rtk-query/queries/getRealtimeBalance.js +73 -0
  143. package/build/module/redux-slices/rtk-query/queries/listEvents.d.ts +15 -0
  144. package/build/module/redux-slices/rtk-query/queries/listEvents.js +57 -0
  145. package/build/module/redux-slices/rtk-query/queries/listIndexSubscriptions.d.ts +15 -0
  146. package/build/module/redux-slices/rtk-query/queries/listIndexSubscriptions.js +39 -0
  147. package/build/module/redux-slices/rtk-query/queries/listIndexes.d.ts +16 -0
  148. package/build/module/redux-slices/rtk-query/queries/listIndexes.js +40 -0
  149. package/build/module/redux-slices/rtk-query/queries/listStreams.d.ts +16 -0
  150. package/build/module/redux-slices/rtk-query/queries/listStreams.js +39 -0
  151. package/build/module/redux-slices/rtk-query/queries/listSuperTokens.d.ts +14 -0
  152. package/build/module/redux-slices/rtk-query/queries/listSuperTokens.js +37 -0
  153. package/build/module/redux-slices/rtk-query/queries/listUserInteractedSuperTokens.d.ts +15 -0
  154. package/build/module/redux-slices/rtk-query/queries/listUserInteractedSuperTokens.js +54 -0
  155. package/build/module/redux-slices/rtk-query/rtkQuerySlice.d.ts +3 -0
  156. package/build/module/redux-slices/rtk-query/rtkQuerySlice.js +47 -0
  157. package/build/module/redux-slices/rtk-query/rtkQuerySliceBaseQuery.d.ts +21 -0
  158. package/build/module/redux-slices/rtk-query/rtkQuerySliceBaseQuery.js +10 -0
  159. package/build/module/redux-slices/transactions/registerNewTransaction.d.ts +5 -0
  160. package/build/module/redux-slices/transactions/registerNewTransaction.js +29 -0
  161. package/build/module/redux-slices/transactions/trackTransaction.d.ts +12 -0
  162. package/build/module/redux-slices/transactions/trackTransaction.js +62 -0
  163. package/build/module/redux-slices/transactions/transactionSlice.d.ts +36 -0
  164. package/build/module/redux-slices/transactions/transactionSlice.js +19 -0
  165. package/build/module/utils.d.ts +25 -0
  166. package/build/module/utils.js +29 -0
  167. package/package.json +87 -0
@@ -0,0 +1,62 @@
1
+ // Having a single "track" action makes it easy to use transaction tracking logic.
2
+ import { createAsyncThunk } from '@reduxjs/toolkit';
3
+ import { ethers } from 'ethers';
4
+ import { preinitializedSuperfluidContext } from '../../SuperfluidContext';
5
+ import { MillisecondTimes } from '../../utils';
6
+ import { rtkQuerySlice } from '../rtk-query/rtkQuerySlice';
7
+ import { transactionSlice, transactionSlicePrefix } from './transactionSlice';
8
+ /**
9
+ *
10
+ * @param provider
11
+ * @param transactionHash
12
+ */
13
+ export const waitForOneConfirmation = (provider, transactionHash) => provider.waitForTransaction(transactionHash, 1, MillisecondTimes.TenMinutes);
14
+ /**
15
+ *
16
+ */
17
+ export const trackTransaction = createAsyncThunk(`${transactionSlicePrefix}/trackTransaction`, async (arg, { dispatch }) => {
18
+ dispatch(transactionSlice.actions.upsertTransaction({
19
+ chainId: arg.chainId,
20
+ hash: arg.hash,
21
+ status: 'Pending',
22
+ }));
23
+ const framework = await preinitializedSuperfluidContext.getFramework(arg.chainId);
24
+ waitForOneConfirmation(framework.settings.provider, arg.hash)
25
+ .then((_transactionReceipt) => {
26
+ // When Ethers successfully returns then we assume the transaction was mined as per documentation: https://docs.ethers.io/v5/api/providers/provider/#Provider-waitForTransaction
27
+ dispatch(transactionSlice.actions.upsertTransaction({
28
+ chainId: arg.chainId,
29
+ hash: arg.hash,
30
+ status: 'Succeeded',
31
+ }));
32
+ monitorForLateErrors(framework.settings.provider, arg, dispatch);
33
+ })
34
+ .catch((ethersError) => {
35
+ notifyOfError(ethersError, arg, dispatch);
36
+ });
37
+ });
38
+ // i.e. monitor for re-orgs...
39
+ const monitorForLateErrors = (provider, { chainId, hash }, dispatch) => {
40
+ provider
41
+ .waitForTransaction(hash, 5, MillisecondTimes.TenMinutes)
42
+ // When there's no error then that means a re-org didn't happen.
43
+ .catch((ethersError) => {
44
+ if (ethersError.code != ethers.errors.TIMEOUT) {
45
+ // Completely reset API cache.
46
+ dispatch(rtkQuerySlice.util.resetApiState());
47
+ notifyOfError(ethersError, { chainId, hash: hash }, dispatch);
48
+ }
49
+ });
50
+ };
51
+ const notifyOfError = (ethersError, { chainId, hash }, dispatch) => {
52
+ dispatch(transactionSlice.actions.upsertTransaction({
53
+ chainId: chainId,
54
+ hash: hash,
55
+ status: ethersError.code === ethers.errors.TIMEOUT
56
+ ? 'Unknown'
57
+ : 'Failed',
58
+ ethersErrorCode: ethersError.code,
59
+ ethersErrorMessage: ethersError.message,
60
+ }));
61
+ };
62
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhY2tUcmFuc2FjdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9yZWR1eC1zbGljZXMvdHJhbnNhY3Rpb25zL3RyYWNrVHJhbnNhY3Rpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsa0ZBQWtGO0FBQ2xGLE9BQU8sRUFBQyxnQkFBZ0IsRUFBVyxNQUFNLGtCQUFrQixDQUFDO0FBQzVELE9BQU8sRUFBQyxNQUFNLEVBQUMsTUFBTSxRQUFRLENBQUM7QUFFOUIsT0FBTyxFQUFDLCtCQUErQixFQUFDLE1BQU0seUJBQXlCLENBQUM7QUFDeEUsT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0sYUFBYSxDQUFDO0FBRTdDLE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSw0QkFBNEIsQ0FBQztBQUV6RCxPQUFPLEVBQUMsZ0JBQWdCLEVBQUUsc0JBQXNCLEVBQUMsTUFBTSxvQkFBb0IsQ0FBQztBQVc1RTs7OztHQUlHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sc0JBQXNCLEdBQUcsQ0FDbEMsUUFBbUMsRUFDbkMsZUFBdUIsRUFDcUIsRUFBRSxDQUM5QyxRQUFRLENBQUMsa0JBQWtCLENBQ3ZCLGVBQWUsRUFDZixDQUFDLEVBQ0QsZ0JBQWdCLENBQUMsVUFBVSxDQUM5QixDQUFDO0FBRU47O0dBRUc7QUFDSCxNQUFNLENBQUMsTUFBTSxnQkFBZ0IsR0FBRyxnQkFBZ0IsQ0FDNUMsR0FBRyxzQkFBc0IsbUJBQW1CLEVBQzVDLEtBQUssRUFBRSxHQUFHLEVBQUUsRUFBQyxRQUFRLEVBQUMsRUFBRSxFQUFFO0lBQ3RCLFFBQVEsQ0FDSixnQkFBZ0IsQ0FBQyxPQUFPLENBQUMsaUJBQWlCLENBQUM7UUFDdkMsT0FBTyxFQUFFLEdBQUcsQ0FBQyxPQUFPO1FBQ3BCLElBQUksRUFBRSxHQUFHLENBQUMsSUFBSTtRQUNkLE1BQU0sRUFBRSxTQUFTO0tBQ3BCLENBQUMsQ0FDTCxDQUFDO0lBRUYsTUFBTSxTQUFTLEdBQUcsTUFBTSwrQkFBK0IsQ0FBQyxZQUFZLENBQ2hFLEdBQUcsQ0FBQyxPQUFPLENBQ2QsQ0FBQztJQUVGLHNCQUFzQixDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsUUFBUSxFQUFFLEdBQUcsQ0FBQyxJQUFJLENBQUM7U0FDeEQsSUFBSSxDQUNELENBQUMsbUJBQXdELEVBQUUsRUFBRTtRQUN6RCxnTEFBZ0w7UUFFaEwsUUFBUSxDQUNKLGdCQUFnQixDQUFDLE9BQU8sQ0FBQyxpQkFBaUIsQ0FBQztZQUN2QyxPQUFPLEVBQUUsR0FBRyxDQUFDLE9BQU87WUFDcEIsSUFBSSxFQUFFLEdBQUcsQ0FBQyxJQUFJO1lBQ2QsTUFBTSxFQUFFLFdBQVc7U0FDdEIsQ0FBQyxDQUNMLENBQUM7UUFFRixvQkFBb0IsQ0FDaEIsU0FBUyxDQUFDLFFBQVEsQ0FBQyxRQUFRLEVBQzNCLEdBQUcsRUFDSCxRQUFRLENBQ1gsQ0FBQztJQUNOLENBQUMsQ0FDSjtTQUNBLEtBQUssQ0FBQyxDQUFDLFdBQXdCLEVBQUUsRUFBRTtRQUNoQyxhQUFhLENBQUMsV0FBVyxFQUFFLEdBQUcsRUFBRSxRQUFRLENBQUMsQ0FBQztJQUM5QyxDQUFDLENBQUMsQ0FBQztBQUNYLENBQUMsQ0FDSixDQUFDO0FBRUYsOEJBQThCO0FBQzlCLE1BQU0sb0JBQW9CLEdBQUcsQ0FDekIsUUFBbUMsRUFDbkMsRUFBQyxPQUFPLEVBQUUsSUFBSSxFQUFrQixFQUNoQyxRQUFrQixFQUNwQixFQUFFO0lBQ0EsUUFBUTtTQUNILGtCQUFrQixDQUFDLElBQUksRUFBRSxDQUFDLEVBQUUsZ0JBQWdCLENBQUMsVUFBVSxDQUFDO1FBQ3pELGdFQUFnRTtTQUMvRCxLQUFLLENBQUMsQ0FBQyxXQUF3QixFQUFFLEVBQUU7UUFDaEMsSUFBSSxXQUFXLENBQUMsSUFBSSxJQUFJLE1BQU0sQ0FBQyxNQUFNLENBQUMsT0FBTyxFQUFFO1lBQzNDLDhCQUE4QjtZQUM5QixRQUFRLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQyxDQUFDO1lBQzdDLGFBQWEsQ0FBQyxXQUFXLEVBQUUsRUFBQyxPQUFPLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBQyxFQUFFLFFBQVEsQ0FBQyxDQUFDO1NBQy9EO0lBQ0wsQ0FBQyxDQUFDLENBQUM7QUFDWCxDQUFDLENBQUM7QUFFRixNQUFNLGFBQWEsR0FBRyxDQUNsQixXQUF3QixFQUN4QixFQUFDLE9BQU8sRUFBRSxJQUFJLEVBQWtCLEVBQ2hDLFFBQWtCLEVBQ3BCLEVBQUU7SUFDQSxRQUFRLENBQ0osZ0JBQWdCLENBQUMsT0FBTyxDQUFDLGlCQUFpQixDQUFDO1FBQ3ZDLE9BQU8sRUFBRSxPQUFPO1FBQ2hCLElBQUksRUFBRSxJQUFJO1FBQ1YsTUFBTSxFQUNGLFdBQVcsQ0FBQyxJQUFJLEtBQUssTUFBTSxDQUFDLE1BQU0sQ0FBQyxPQUFPO1lBQ3RDLENBQUMsQ0FBQyxTQUFTO1lBQ1gsQ0FBQyxDQUFDLFFBQVE7UUFDbEIsZUFBZSxFQUFFLFdBQVcsQ0FBQyxJQUFJO1FBQ2pDLGtCQUFrQixFQUFFLFdBQVcsQ0FBQyxPQUFPO0tBQzFDLENBQUMsQ0FDTCxDQUFDO0FBQ04sQ0FBQyxDQUFDIn0=
@@ -0,0 +1,36 @@
1
+ import { ethers } from 'ethers';
2
+ export declare type TransactionStatus = 'Pending' | 'Succeeded' | 'Failed' | 'Unknown';
3
+ export interface TrackedTransaction {
4
+ chainId: number;
5
+ hash: string;
6
+ status: TransactionStatus;
7
+ ethersErrorCode?: ethers.errors;
8
+ ethersErrorMessage?: string;
9
+ }
10
+ export declare const transactionsAdapter: import("@reduxjs/toolkit").EntityAdapter<TrackedTransaction>;
11
+ export declare const transactionSelectors: import("@reduxjs/toolkit").EntitySelectors<TrackedTransaction, import("@reduxjs/toolkit").EntityState<TrackedTransaction>>;
12
+ export declare const transactionSlicePrefix: "sfTransactions";
13
+ export declare const transactionSlice: {
14
+ name: "sfTransactions";
15
+ reducer: import("redux").Reducer<import("@reduxjs/toolkit").EntityState<TrackedTransaction>, import("redux").AnyAction>;
16
+ actions: import("@reduxjs/toolkit").CaseReducerActions<{
17
+ upsertTransaction: {
18
+ <S extends import("@reduxjs/toolkit").EntityState<TrackedTransaction>>(state: import("@reduxjs/toolkit/dist/tsHelpers").IsAny<S, import("@reduxjs/toolkit").EntityState<TrackedTransaction>, S>, entity: TrackedTransaction): S;
19
+ <S_1 extends import("@reduxjs/toolkit").EntityState<TrackedTransaction>>(state: import("@reduxjs/toolkit/dist/tsHelpers").IsAny<S_1, import("@reduxjs/toolkit").EntityState<TrackedTransaction>, S_1>, entity: {
20
+ payload: TrackedTransaction;
21
+ type: string;
22
+ }): S_1;
23
+ };
24
+ }>;
25
+ caseReducers: {
26
+ upsertTransaction: {
27
+ <S extends import("@reduxjs/toolkit").EntityState<TrackedTransaction>>(state: import("@reduxjs/toolkit/dist/tsHelpers").IsAny<S, import("@reduxjs/toolkit").EntityState<TrackedTransaction>, S>, entity: TrackedTransaction): S;
28
+ <S_1 extends import("@reduxjs/toolkit").EntityState<TrackedTransaction>>(state: import("@reduxjs/toolkit/dist/tsHelpers").IsAny<S_1, import("@reduxjs/toolkit").EntityState<TrackedTransaction>, S_1>, entity: {
29
+ payload: TrackedTransaction;
30
+ type: string;
31
+ }): S_1;
32
+ };
33
+ };
34
+ reducerPath: "sfTransactions";
35
+ };
36
+ export declare type SuperfluidTransactionReduxSlice = typeof transactionSlice;
@@ -0,0 +1,19 @@
1
+ import { createEntityAdapter, createSlice } from '@reduxjs/toolkit';
2
+ const getTransactionId = (transaction) => `${transaction.chainId}_${transaction.hash}`;
3
+ export const transactionsAdapter = createEntityAdapter({
4
+ selectId: (transaction) => getTransactionId(transaction),
5
+ sortComparer: (a, b) => getTransactionId(a).localeCompare(getTransactionId(b)),
6
+ });
7
+ export const transactionSelectors = transactionsAdapter.getSelectors();
8
+ export const transactionSlicePrefix = 'sfTransactions';
9
+ export const transactionSlice = {
10
+ reducerPath: transactionSlicePrefix,
11
+ ...createSlice({
12
+ name: transactionSlicePrefix,
13
+ initialState: transactionsAdapter.getInitialState(),
14
+ reducers: {
15
+ upsertTransaction: transactionsAdapter.upsertOne,
16
+ },
17
+ }),
18
+ };
19
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb25TbGljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9yZWR1eC1zbGljZXMvdHJhbnNhY3Rpb25zL3RyYW5zYWN0aW9uU2xpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLG1CQUFtQixFQUFFLFdBQVcsRUFBQyxNQUFNLGtCQUFrQixDQUFDO0FBY2xFLE1BQU0sZ0JBQWdCLEdBQUcsQ0FBQyxXQUErQixFQUFFLEVBQUUsQ0FDekQsR0FBRyxXQUFXLENBQUMsT0FBTyxJQUFJLFdBQVcsQ0FBQyxJQUFJLEVBQUUsQ0FBQztBQUVqRCxNQUFNLENBQUMsTUFBTSxtQkFBbUIsR0FBRyxtQkFBbUIsQ0FBcUI7SUFDdkUsUUFBUSxFQUFFLENBQUMsV0FBVyxFQUFFLEVBQUUsQ0FBQyxnQkFBZ0IsQ0FBQyxXQUFXLENBQUM7SUFDeEQsWUFBWSxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQ25CLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsQ0FBQztDQUM3RCxDQUFDLENBQUM7QUFFSCxNQUFNLENBQUMsTUFBTSxvQkFBb0IsR0FBRyxtQkFBbUIsQ0FBQyxZQUFZLEVBQUUsQ0FBQztBQUV2RSxNQUFNLENBQUMsTUFBTSxzQkFBc0IsR0FBRyxnQkFBeUIsQ0FBQztBQUVoRSxNQUFNLENBQUMsTUFBTSxnQkFBZ0IsR0FBRztJQUM1QixXQUFXLEVBQUUsc0JBQXNCO0lBQ25DLEdBQUcsV0FBVyxDQUFDO1FBQ1gsSUFBSSxFQUFFLHNCQUFzQjtRQUM1QixZQUFZLEVBQUUsbUJBQW1CLENBQUMsZUFBZSxFQUFFO1FBQ25ELFFBQVEsRUFBRTtZQUNOLGlCQUFpQixFQUFFLG1CQUFtQixDQUFDLFNBQVM7U0FDbkQ7S0FDSixDQUFDO0NBQ0wsQ0FBQyJ9
@@ -0,0 +1,25 @@
1
+ /**
2
+ * Helper function to make sure an object instance does not have any fields extra or missing and is in fact the correct type.
3
+ * The problem stems from the fact that `return obj as T` and `return <T>obj` are not safe type casts.
4
+ * @private
5
+ */
6
+ export declare const typeGuard: <T>(obj: T) => T;
7
+ /**
8
+ * A helper function that returns the inputted elements when condition is true or an empty array otherwise.
9
+ * The reasoning for such a helper is to conditionally add items to an array in a nice syntax.
10
+ * @private
11
+ */
12
+ export declare function insertIf<T>(condition: boolean | unknown, ...elements: T[]): T[];
13
+ /**
14
+ *
15
+ * @private
16
+ */
17
+ export declare enum MillisecondTimes {
18
+ OneSecond = 1000,
19
+ FiveSeconds = 5000,
20
+ TwentySeconds = 20000,
21
+ OneMinute = 60000,
22
+ TenMinutes = 600000,
23
+ ThreeMinutes = 180000,
24
+ FiveMinutes = 300000
25
+ }
@@ -0,0 +1,29 @@
1
+ /**
2
+ * Helper function to make sure an object instance does not have any fields extra or missing and is in fact the correct type.
3
+ * The problem stems from the fact that `return obj as T` and `return <T>obj` are not safe type casts.
4
+ * @private
5
+ */
6
+ export const typeGuard = (obj) => obj;
7
+ /**
8
+ * A helper function that returns the inputted elements when condition is true or an empty array otherwise.
9
+ * The reasoning for such a helper is to conditionally add items to an array in a nice syntax.
10
+ * @private
11
+ */
12
+ export function insertIf(condition, ...elements) {
13
+ return condition ? elements : [];
14
+ }
15
+ /**
16
+ *
17
+ * @private
18
+ */
19
+ export var MillisecondTimes;
20
+ (function (MillisecondTimes) {
21
+ MillisecondTimes[MillisecondTimes["OneSecond"] = 1000] = "OneSecond";
22
+ MillisecondTimes[MillisecondTimes["FiveSeconds"] = 5000] = "FiveSeconds";
23
+ MillisecondTimes[MillisecondTimes["TwentySeconds"] = 20000] = "TwentySeconds";
24
+ MillisecondTimes[MillisecondTimes["OneMinute"] = 60000] = "OneMinute";
25
+ MillisecondTimes[MillisecondTimes["TenMinutes"] = 600000] = "TenMinutes";
26
+ MillisecondTimes[MillisecondTimes["ThreeMinutes"] = 180000] = "ThreeMinutes";
27
+ MillisecondTimes[MillisecondTimes["FiveMinutes"] = 300000] = "FiveMinutes";
28
+ })(MillisecondTimes || (MillisecondTimes = {}));
29
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7R0FJRztBQUNILE1BQU0sQ0FBQyxNQUFNLFNBQVMsR0FBRyxDQUFJLEdBQU0sRUFBRSxFQUFFLENBQUMsR0FBRyxDQUFDO0FBRTVDOzs7O0dBSUc7QUFDSCxNQUFNLFVBQVUsUUFBUSxDQUNwQixTQUE0QixFQUM1QixHQUFHLFFBQWE7SUFFaEIsT0FBTyxTQUFTLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO0FBQ3JDLENBQUM7QUFFRDs7O0dBR0c7QUFDSCxNQUFNLENBQU4sSUFBWSxnQkFRWDtBQVJELFdBQVksZ0JBQWdCO0lBQ3hCLG9FQUFnQixDQUFBO0lBQ2hCLHdFQUFrQixDQUFBO0lBQ2xCLDZFQUFxQixDQUFBO0lBQ3JCLHFFQUFpQixDQUFBO0lBQ2pCLHdFQUFtQixDQUFBO0lBQ25CLDRFQUFxQixDQUFBO0lBQ3JCLDBFQUFvQixDQUFBO0FBQ3hCLENBQUMsRUFSVyxnQkFBZ0IsS0FBaEIsZ0JBQWdCLFFBUTNCIn0=
package/package.json ADDED
@@ -0,0 +1,87 @@
1
+ {
2
+ "name": "@superfluid-finance/sdk-redux",
3
+ "version": "0.1.0",
4
+ "description": "SDK Redux for streamlined front-end application development with Superfluid Protocol",
5
+ "homepage": "https://docs.superfluid.finance/",
6
+ "repository": {
7
+ "type": "git",
8
+ "url": "https://github.com/superfluid-finance/protocol-monorepo.git#dev"
9
+ },
10
+ "license": "MIT",
11
+ "main": "build/main/index.js",
12
+ "typings": "build/main/index.d.ts",
13
+ "module": "build/module/index.js",
14
+ "keywords": [],
15
+ "scripts": {
16
+ "pre-commit": "run-s lint:*",
17
+ "build": "run-p build:*",
18
+ "build:main": "tsc -p tsconfig.json",
19
+ "build:module": "tsc -p tsconfig.module.json",
20
+ "lint": "run-s lint:*",
21
+ "lint:prettier": "prettier \"src/**/*.ts\" --write",
22
+ "lint:eslint": "eslint src --ext .ts --fix",
23
+ "test": "echo 'TODO: Tests'",
24
+ "test:lint": "eslint src --ext .ts",
25
+ "test:prettier": "prettier \"src/**/*.ts\" --list-different",
26
+ "watch:build": "tsc -p tsconfig.json -w",
27
+ "doc": "run-s doc:html && open-cli build/docs/index.html",
28
+ "doc:html": "typedoc src/ --out build/docs",
29
+ "doc:json": "typedoc src/ --json build/docs/typedoc.json",
30
+ "doc:publish": "gh-pages -m \"[ci skip] Updates\" -d build/docs",
31
+ "reset-hard": "git clean -dfx && git reset --hard && yarn",
32
+ "prepare-release": "run-s reset-hard test cov:check doc:html version doc:publish"
33
+ },
34
+ "engines": {
35
+ "node": ">=10"
36
+ },
37
+ "dependencies": {
38
+ "@superfluid-finance/sdk-core": "^0.1.0",
39
+ "@reduxjs/toolkit": "^1.6.1",
40
+ "ethers": "^5.4.5",
41
+ "graphql-request": "^3.5.0",
42
+ "lodash": "^4.17.21"
43
+ },
44
+ "devDependencies": {
45
+ "@istanbuljs/nyc-config-typescript": "^1.0.1",
46
+ "@typescript-eslint/eslint-plugin": "^4.0.1",
47
+ "@typescript-eslint/parser": "^4.0.1",
48
+ "codecov": "^3.5.0",
49
+ "cspell": "^4.1.0",
50
+ "cz-conventional-changelog": "^3.3.0",
51
+ "eslint": "^7.8.0",
52
+ "eslint-config-prettier": "^6.11.0",
53
+ "eslint-plugin-eslint-comments": "^3.2.0",
54
+ "eslint-plugin-import": "^2.22.0",
55
+ "gh-pages": "^3.1.0",
56
+ "npm-run-all": "^4.1.5",
57
+ "nyc": "^15.1.0",
58
+ "open-cli": "^6.0.1",
59
+ "prettier": "^2.1.1",
60
+ "ts-node": "^9.0.0",
61
+ "typedoc": "^0.22.10",
62
+ "typescript": "^4.3.5"
63
+ },
64
+ "files": [
65
+ "build/main",
66
+ "build/module",
67
+ "build/docs",
68
+ "!**/*.json",
69
+ "CHANGELOG.md",
70
+ "LICENSE",
71
+ "README.md"
72
+ ],
73
+ "config": {
74
+ "commitizen": {
75
+ "path": "cz-conventional-changelog"
76
+ }
77
+ },
78
+ "prettier": {
79
+ "singleQuote": true
80
+ },
81
+ "bugs": {
82
+ "url": "https://github.com/superfluid-finance/protocol-monorepo/issues"
83
+ },
84
+ "directories": {
85
+ "test": "test"
86
+ }
87
+ }