@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.
- package/LICENSE +9 -0
- package/README.md +175 -0
- package/build/main/SuperfluidContext.d.ts +31 -0
- package/build/main/SuperfluidContext.js +49 -0
- package/build/main/createSdkReduxParts.d.ts +23 -0
- package/build/main/createSdkReduxParts.js +30 -0
- package/build/main/index.d.ts +29 -0
- package/build/main/index.js +41 -0
- package/build/main/redux-slices/argTypes.d.ts +53 -0
- package/build/main/redux-slices/argTypes.js +3 -0
- package/build/main/redux-slices/rtk-query/cacheTags/CacheTagTypes.d.ts +15 -0
- package/build/main/redux-slices/rtk-query/cacheTags/CacheTagTypes.js +18 -0
- package/build/main/redux-slices/rtk-query/cacheTags/eventTags.d.ts +9 -0
- package/build/main/redux-slices/rtk-query/cacheTags/eventTags.js +12 -0
- package/build/main/redux-slices/rtk-query/cacheTags/indexTags.d.ts +36 -0
- package/build/main/redux-slices/rtk-query/cacheTags/indexTags.js +31 -0
- package/build/main/redux-slices/rtk-query/cacheTags/invalidateCacheTagsForEvents.d.ts +9 -0
- package/build/main/redux-slices/rtk-query/cacheTags/invalidateCacheTagsForEvents.js +148 -0
- package/build/main/redux-slices/rtk-query/cacheTags/monitorAddressForNextEventToInvalidateCache.d.ts +10 -0
- package/build/main/redux-slices/rtk-query/cacheTags/monitorAddressForNextEventToInvalidateCache.js +21 -0
- package/build/main/redux-slices/rtk-query/cacheTags/streamTags.d.ts +35 -0
- package/build/main/redux-slices/rtk-query/cacheTags/streamTags.js +30 -0
- package/build/main/redux-slices/rtk-query/cacheTags/tokenTags.d.ts +35 -0
- package/build/main/redux-slices/rtk-query/cacheTags/tokenTags.js +30 -0
- package/build/main/redux-slices/rtk-query/mutations/approveIndexSubscription.d.ts +19 -0
- package/build/main/redux-slices/rtk-query/mutations/approveIndexSubscription.js +45 -0
- package/build/main/redux-slices/rtk-query/mutations/claimFromIndexSubscription.d.ts +21 -0
- package/build/main/redux-slices/rtk-query/mutations/claimFromIndexSubscription.js +46 -0
- package/build/main/redux-slices/rtk-query/mutations/createFlow.d.ts +19 -0
- package/build/main/redux-slices/rtk-query/mutations/createFlow.js +50 -0
- package/build/main/redux-slices/rtk-query/mutations/createIndex.d.ts +17 -0
- package/build/main/redux-slices/rtk-query/mutations/createIndex.js +50 -0
- package/build/main/redux-slices/rtk-query/mutations/deleteFlow.d.ts +17 -0
- package/build/main/redux-slices/rtk-query/mutations/deleteFlow.js +48 -0
- package/build/main/redux-slices/rtk-query/mutations/deleteIndexSubscription.d.ts +21 -0
- package/build/main/redux-slices/rtk-query/mutations/deleteIndexSubscription.js +46 -0
- package/build/main/redux-slices/rtk-query/mutations/distributeToIndex.d.ts +19 -0
- package/build/main/redux-slices/rtk-query/mutations/distributeToIndex.js +48 -0
- package/build/main/redux-slices/rtk-query/mutations/downgradeFromSuperToken.d.ts +15 -0
- package/build/main/redux-slices/rtk-query/mutations/downgradeFromSuperToken.js +46 -0
- package/build/main/redux-slices/rtk-query/mutations/monitorForEventsToInvalidateCache.d.ts +16 -0
- package/build/main/redux-slices/rtk-query/mutations/monitorForEventsToInvalidateCache.js +40 -0
- package/build/main/redux-slices/rtk-query/mutations/revokeIndexSubscription.d.ts +19 -0
- package/build/main/redux-slices/rtk-query/mutations/revokeIndexSubscription.js +45 -0
- package/build/main/redux-slices/rtk-query/mutations/transferSuperToken.d.ts +17 -0
- package/build/main/redux-slices/rtk-query/mutations/transferSuperToken.js +47 -0
- package/build/main/redux-slices/rtk-query/mutations/updateFlow.d.ts +19 -0
- package/build/main/redux-slices/rtk-query/mutations/updateFlow.js +49 -0
- package/build/main/redux-slices/rtk-query/mutations/updateIndexSubscriptionUnits.d.ts +21 -0
- package/build/main/redux-slices/rtk-query/mutations/updateIndexSubscriptionUnits.js +46 -0
- package/build/main/redux-slices/rtk-query/mutations/upgradeToSuperToken.d.ts +16 -0
- package/build/main/redux-slices/rtk-query/mutations/upgradeToSuperToken.js +65 -0
- package/build/main/redux-slices/rtk-query/queries/getAllowanceForUpgradeToSuperToken.d.ts +17 -0
- package/build/main/redux-slices/rtk-query/queries/getAllowanceForUpgradeToSuperToken.js +43 -0
- package/build/main/redux-slices/rtk-query/queries/getIndex.d.ts +17 -0
- package/build/main/redux-slices/rtk-query/queries/getIndex.js +43 -0
- package/build/main/redux-slices/rtk-query/queries/getIndexSubscription.d.ts +17 -0
- package/build/main/redux-slices/rtk-query/queries/getIndexSubscription.js +44 -0
- package/build/main/redux-slices/rtk-query/queries/getRealtimeBalance.d.ts +22 -0
- package/build/main/redux-slices/rtk-query/queries/getRealtimeBalance.js +75 -0
- package/build/main/redux-slices/rtk-query/queries/listEvents.d.ts +15 -0
- package/build/main/redux-slices/rtk-query/queries/listEvents.js +59 -0
- package/build/main/redux-slices/rtk-query/queries/listIndexSubscriptions.d.ts +15 -0
- package/build/main/redux-slices/rtk-query/queries/listIndexSubscriptions.js +41 -0
- package/build/main/redux-slices/rtk-query/queries/listIndexes.d.ts +16 -0
- package/build/main/redux-slices/rtk-query/queries/listIndexes.js +42 -0
- package/build/main/redux-slices/rtk-query/queries/listStreams.d.ts +16 -0
- package/build/main/redux-slices/rtk-query/queries/listStreams.js +41 -0
- package/build/main/redux-slices/rtk-query/queries/listSuperTokens.d.ts +14 -0
- package/build/main/redux-slices/rtk-query/queries/listSuperTokens.js +39 -0
- package/build/main/redux-slices/rtk-query/queries/listUserInteractedSuperTokens.d.ts +15 -0
- package/build/main/redux-slices/rtk-query/queries/listUserInteractedSuperTokens.js +56 -0
- package/build/main/redux-slices/rtk-query/rtkQuerySlice.d.ts +3 -0
- package/build/main/redux-slices/rtk-query/rtkQuerySlice.js +53 -0
- package/build/main/redux-slices/rtk-query/rtkQuerySliceBaseQuery.d.ts +21 -0
- package/build/main/redux-slices/rtk-query/rtkQuerySliceBaseQuery.js +14 -0
- package/build/main/redux-slices/transactions/registerNewTransaction.d.ts +5 -0
- package/build/main/redux-slices/transactions/registerNewTransaction.js +33 -0
- package/build/main/redux-slices/transactions/trackTransaction.d.ts +12 -0
- package/build/main/redux-slices/transactions/trackTransaction.js +66 -0
- package/build/main/redux-slices/transactions/transactionSlice.d.ts +36 -0
- package/build/main/redux-slices/transactions/transactionSlice.js +19 -0
- package/build/main/utils.d.ts +25 -0
- package/build/main/utils.js +34 -0
- package/build/module/SuperfluidContext.d.ts +31 -0
- package/build/module/SuperfluidContext.js +46 -0
- package/build/module/createSdkReduxParts.d.ts +23 -0
- package/build/module/createSdkReduxParts.js +26 -0
- package/build/module/index.d.ts +29 -0
- package/build/module/index.js +29 -0
- package/build/module/redux-slices/argTypes.d.ts +53 -0
- package/build/module/redux-slices/argTypes.js +2 -0
- package/build/module/redux-slices/rtk-query/cacheTags/CacheTagTypes.d.ts +15 -0
- package/build/module/redux-slices/rtk-query/cacheTags/CacheTagTypes.js +14 -0
- package/build/module/redux-slices/rtk-query/cacheTags/eventTags.d.ts +9 -0
- package/build/module/redux-slices/rtk-query/cacheTags/eventTags.js +8 -0
- package/build/module/redux-slices/rtk-query/cacheTags/indexTags.d.ts +36 -0
- package/build/module/redux-slices/rtk-query/cacheTags/indexTags.js +26 -0
- package/build/module/redux-slices/rtk-query/cacheTags/invalidateCacheTagsForEvents.d.ts +9 -0
- package/build/module/redux-slices/rtk-query/cacheTags/invalidateCacheTagsForEvents.js +144 -0
- package/build/module/redux-slices/rtk-query/cacheTags/monitorAddressForNextEventToInvalidateCache.d.ts +10 -0
- package/build/module/redux-slices/rtk-query/cacheTags/monitorAddressForNextEventToInvalidateCache.js +17 -0
- package/build/module/redux-slices/rtk-query/cacheTags/streamTags.d.ts +35 -0
- package/build/module/redux-slices/rtk-query/cacheTags/streamTags.js +25 -0
- package/build/module/redux-slices/rtk-query/cacheTags/tokenTags.d.ts +35 -0
- package/build/module/redux-slices/rtk-query/cacheTags/tokenTags.js +25 -0
- package/build/module/redux-slices/rtk-query/mutations/approveIndexSubscription.d.ts +19 -0
- package/build/module/redux-slices/rtk-query/mutations/approveIndexSubscription.js +43 -0
- package/build/module/redux-slices/rtk-query/mutations/claimFromIndexSubscription.d.ts +21 -0
- package/build/module/redux-slices/rtk-query/mutations/claimFromIndexSubscription.js +44 -0
- package/build/module/redux-slices/rtk-query/mutations/createFlow.d.ts +19 -0
- package/build/module/redux-slices/rtk-query/mutations/createFlow.js +48 -0
- package/build/module/redux-slices/rtk-query/mutations/createIndex.d.ts +17 -0
- package/build/module/redux-slices/rtk-query/mutations/createIndex.js +48 -0
- package/build/module/redux-slices/rtk-query/mutations/deleteFlow.d.ts +17 -0
- package/build/module/redux-slices/rtk-query/mutations/deleteFlow.js +46 -0
- package/build/module/redux-slices/rtk-query/mutations/deleteIndexSubscription.d.ts +21 -0
- package/build/module/redux-slices/rtk-query/mutations/deleteIndexSubscription.js +44 -0
- package/build/module/redux-slices/rtk-query/mutations/distributeToIndex.d.ts +19 -0
- package/build/module/redux-slices/rtk-query/mutations/distributeToIndex.js +46 -0
- package/build/module/redux-slices/rtk-query/mutations/downgradeFromSuperToken.d.ts +15 -0
- package/build/module/redux-slices/rtk-query/mutations/downgradeFromSuperToken.js +44 -0
- package/build/module/redux-slices/rtk-query/mutations/monitorForEventsToInvalidateCache.d.ts +16 -0
- package/build/module/redux-slices/rtk-query/mutations/monitorForEventsToInvalidateCache.js +38 -0
- package/build/module/redux-slices/rtk-query/mutations/revokeIndexSubscription.d.ts +19 -0
- package/build/module/redux-slices/rtk-query/mutations/revokeIndexSubscription.js +43 -0
- package/build/module/redux-slices/rtk-query/mutations/transferSuperToken.d.ts +17 -0
- package/build/module/redux-slices/rtk-query/mutations/transferSuperToken.js +45 -0
- package/build/module/redux-slices/rtk-query/mutations/updateFlow.d.ts +19 -0
- package/build/module/redux-slices/rtk-query/mutations/updateFlow.js +47 -0
- package/build/module/redux-slices/rtk-query/mutations/updateIndexSubscriptionUnits.d.ts +21 -0
- package/build/module/redux-slices/rtk-query/mutations/updateIndexSubscriptionUnits.js +44 -0
- package/build/module/redux-slices/rtk-query/mutations/upgradeToSuperToken.d.ts +16 -0
- package/build/module/redux-slices/rtk-query/mutations/upgradeToSuperToken.js +63 -0
- package/build/module/redux-slices/rtk-query/queries/getAllowanceForUpgradeToSuperToken.d.ts +17 -0
- package/build/module/redux-slices/rtk-query/queries/getAllowanceForUpgradeToSuperToken.js +41 -0
- package/build/module/redux-slices/rtk-query/queries/getIndex.d.ts +17 -0
- package/build/module/redux-slices/rtk-query/queries/getIndex.js +41 -0
- package/build/module/redux-slices/rtk-query/queries/getIndexSubscription.d.ts +17 -0
- package/build/module/redux-slices/rtk-query/queries/getIndexSubscription.js +42 -0
- package/build/module/redux-slices/rtk-query/queries/getRealtimeBalance.d.ts +22 -0
- package/build/module/redux-slices/rtk-query/queries/getRealtimeBalance.js +73 -0
- package/build/module/redux-slices/rtk-query/queries/listEvents.d.ts +15 -0
- package/build/module/redux-slices/rtk-query/queries/listEvents.js +57 -0
- package/build/module/redux-slices/rtk-query/queries/listIndexSubscriptions.d.ts +15 -0
- package/build/module/redux-slices/rtk-query/queries/listIndexSubscriptions.js +39 -0
- package/build/module/redux-slices/rtk-query/queries/listIndexes.d.ts +16 -0
- package/build/module/redux-slices/rtk-query/queries/listIndexes.js +40 -0
- package/build/module/redux-slices/rtk-query/queries/listStreams.d.ts +16 -0
- package/build/module/redux-slices/rtk-query/queries/listStreams.js +39 -0
- package/build/module/redux-slices/rtk-query/queries/listSuperTokens.d.ts +14 -0
- package/build/module/redux-slices/rtk-query/queries/listSuperTokens.js +37 -0
- package/build/module/redux-slices/rtk-query/queries/listUserInteractedSuperTokens.d.ts +15 -0
- package/build/module/redux-slices/rtk-query/queries/listUserInteractedSuperTokens.js +54 -0
- package/build/module/redux-slices/rtk-query/rtkQuerySlice.d.ts +3 -0
- package/build/module/redux-slices/rtk-query/rtkQuerySlice.js +47 -0
- package/build/module/redux-slices/rtk-query/rtkQuerySliceBaseQuery.d.ts +21 -0
- package/build/module/redux-slices/rtk-query/rtkQuerySliceBaseQuery.js +10 -0
- package/build/module/redux-slices/transactions/registerNewTransaction.d.ts +5 -0
- package/build/module/redux-slices/transactions/registerNewTransaction.js +29 -0
- package/build/module/redux-slices/transactions/trackTransaction.d.ts +12 -0
- package/build/module/redux-slices/transactions/trackTransaction.js +62 -0
- package/build/module/redux-slices/transactions/transactionSlice.d.ts +36 -0
- package/build/module/redux-slices/transactions/transactionSlice.js +19 -0
- package/build/module/utils.d.ts +25 -0
- package/build/module/utils.js +29 -0
- 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
|
+
}
|