-
Notifications
You must be signed in to change notification settings - Fork 261
Expand file tree
/
Copy pathflowEndpoints.ts
More file actions
88 lines (78 loc) · 3.68 KB
/
flowEndpoints.ts
File metadata and controls
88 lines (78 loc) · 3.68 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
import {getFramework} from '../../../../sdkReduxConfig';
import {type TransactionInfo} from '../../../argTypes';
import {registerNewTransactionAndReturnQueryFnResult} from '../../../transactionTrackerSlice/registerNewTransaction';
import {type RpcEndpointBuilder} from '../rpcEndpointBuilder';
import {type FlowCreateMutation, type FlowDeleteMutation, type FlowUpdateMutation} from './flowArgs';
export const createFlowEndpoints = (builder: RpcEndpointBuilder) => ({
flowCreate: builder.mutation<TransactionInfo, FlowCreateMutation>({
queryFn: async (arg, queryApi) => {
const framework = await getFramework(arg.chainId);
const superToken = await framework.loadSuperToken(arg.superTokenAddress);
const senderAddress = arg.senderAddress ? arg.senderAddress : await arg.signer.getAddress();
const transactionResponse = await superToken
.createFlow({
sender: senderAddress,
receiver: arg.receiverAddress,
flowRate: arg.flowRateWei,
userData: arg.userDataBytes,
overrides: arg.overrides,
})
.exec(arg.signer);
return await registerNewTransactionAndReturnQueryFnResult({
transactionResponse,
chainId: arg.chainId,
signerAddress: senderAddress,
dispatch: queryApi.dispatch,
title: 'Create Stream',
extraData: arg.transactionExtraData,
});
},
}),
flowUpdate: builder.mutation<TransactionInfo, FlowUpdateMutation>({
queryFn: async (arg, queryApi) => {
const framework = await getFramework(arg.chainId);
const superToken = await framework.loadSuperToken(arg.superTokenAddress);
const senderAddress = arg.senderAddress ? arg.senderAddress : await arg.signer.getAddress();
const transactionResponse = await superToken
.updateFlow({
sender: senderAddress,
receiver: arg.receiverAddress,
flowRate: arg.flowRateWei,
userData: arg.userDataBytes,
overrides: arg.overrides,
})
.exec(arg.signer);
return await registerNewTransactionAndReturnQueryFnResult({
transactionResponse,
chainId: arg.chainId,
signerAddress: senderAddress,
dispatch: queryApi.dispatch,
title: 'Update Stream',
extraData: arg.transactionExtraData,
});
},
}),
flowDelete: builder.mutation<TransactionInfo, FlowDeleteMutation>({
queryFn: async (arg, queryApi) => {
const framework = await getFramework(arg.chainId);
const superToken = await framework.loadSuperToken(arg.superTokenAddress);
const senderAddress = arg.senderAddress ? arg.senderAddress : await arg.signer.getAddress();
const transactionResponse = await superToken
.deleteFlow({
sender: senderAddress,
receiver: arg.receiverAddress,
userData: arg.userDataBytes,
overrides: arg.overrides,
})
.exec(arg.signer);
return await registerNewTransactionAndReturnQueryFnResult({
transactionResponse,
chainId: arg.chainId,
signerAddress: senderAddress,
dispatch: queryApi.dispatch,
title: 'Close Stream',
extraData: arg.transactionExtraData,
});
},
}),
});