-
Notifications
You must be signed in to change notification settings - Fork 55
/
util.ts
164 lines (159 loc) · 5.98 KB
/
util.ts
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
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
import { ObservableWallet } from '@cardano-sdk/wallet';
import { OutputBuilder, TxBuilder } from '@cardano-sdk/tx-construction';
import { RemoteApiProperties, RemoteApiPropertyType } from '../messaging';
import { WalletRepository } from '../walletManager';
export const observableWalletChannel = (walletName: string) => `${walletName}$`;
export const outputBuilderProperties: RemoteApiProperties<OutputBuilder> = {
address: {
getApiProperties: () => outputBuilderProperties,
propType: RemoteApiPropertyType.ApiFactory
},
asset: {
getApiProperties: () => outputBuilderProperties,
propType: RemoteApiPropertyType.ApiFactory
},
assets: {
getApiProperties: () => outputBuilderProperties,
propType: RemoteApiPropertyType.ApiFactory
},
build: RemoteApiPropertyType.MethodReturningPromise,
coin: {
getApiProperties: () => outputBuilderProperties,
propType: RemoteApiPropertyType.ApiFactory
},
datum: {
getApiProperties: () => outputBuilderProperties,
propType: RemoteApiPropertyType.ApiFactory
},
handle: {
getApiProperties: () => outputBuilderProperties,
propType: RemoteApiPropertyType.ApiFactory
},
inspect: RemoteApiPropertyType.MethodReturningPromise,
value: {
getApiProperties: () => outputBuilderProperties,
propType: RemoteApiPropertyType.ApiFactory
}
};
export const txBuilderProperties: RemoteApiProperties<Omit<TxBuilder, 'customize'>> = {
addOutput: {
getApiProperties: () => txBuilderProperties,
propType: RemoteApiPropertyType.ApiFactory
},
build: {
getApiProperties: () => ({
inspect: RemoteApiPropertyType.MethodReturningPromise,
sign: RemoteApiPropertyType.MethodReturningPromise
}),
propType: RemoteApiPropertyType.ApiFactory
},
buildOutput: {
getApiProperties: () => outputBuilderProperties,
propType: RemoteApiPropertyType.ApiFactory
},
delegateFirstStakeCredential: {
getApiProperties: () => txBuilderProperties,
propType: RemoteApiPropertyType.ApiFactory
},
delegatePortfolio: {
getApiProperties: () => txBuilderProperties,
propType: RemoteApiPropertyType.ApiFactory
},
extraSigners: {
getApiProperties: () => txBuilderProperties,
propType: RemoteApiPropertyType.ApiFactory
},
inspect: RemoteApiPropertyType.MethodReturningPromise,
metadata: {
getApiProperties: () => txBuilderProperties,
propType: RemoteApiPropertyType.ApiFactory
},
removeOutput: {
getApiProperties: () => txBuilderProperties,
propType: RemoteApiPropertyType.ApiFactory
},
setValidityInterval: {
getApiProperties: () => txBuilderProperties,
propType: RemoteApiPropertyType.ApiFactory
},
signingOptions: {
getApiProperties: () => txBuilderProperties,
propType: RemoteApiPropertyType.ApiFactory
}
};
export const observableWalletProperties: RemoteApiProperties<ObservableWallet> = {
addresses$: RemoteApiPropertyType.HotObservable,
assetInfo$: RemoteApiPropertyType.HotObservable,
balance: {
rewardAccounts: {
deposit$: RemoteApiPropertyType.HotObservable,
rewards$: RemoteApiPropertyType.HotObservable
},
utxo: {
available$: RemoteApiPropertyType.HotObservable,
total$: RemoteApiPropertyType.HotObservable,
unspendable$: RemoteApiPropertyType.HotObservable
}
},
createTxBuilder: {
getApiProperties: () => txBuilderProperties,
propType: RemoteApiPropertyType.ApiFactory
},
currentEpoch$: RemoteApiPropertyType.HotObservable,
delegation: {
distribution$: RemoteApiPropertyType.HotObservable,
portfolio$: RemoteApiPropertyType.HotObservable,
rewardAccounts$: RemoteApiPropertyType.HotObservable,
rewardsHistory$: RemoteApiPropertyType.HotObservable
},
discoverAddresses: RemoteApiPropertyType.MethodReturningPromise,
eraSummaries$: RemoteApiPropertyType.HotObservable,
fatalError$: RemoteApiPropertyType.HotObservable,
finalizeTx: RemoteApiPropertyType.MethodReturningPromise,
genesisParameters$: RemoteApiPropertyType.HotObservable,
getName: RemoteApiPropertyType.MethodReturningPromise,
governance: {
getPubDRepKey: RemoteApiPropertyType.MethodReturningPromise,
isRegisteredAsDRep$: RemoteApiPropertyType.HotObservable
},
handles$: RemoteApiPropertyType.HotObservable,
initializeTx: RemoteApiPropertyType.MethodReturningPromise,
protocolParameters$: RemoteApiPropertyType.HotObservable,
publicStakeKeys$: RemoteApiPropertyType.HotObservable,
signData: RemoteApiPropertyType.MethodReturningPromise,
submitTx: RemoteApiPropertyType.MethodReturningPromise,
syncStatus: {
isAnyRequestPending$: RemoteApiPropertyType.HotObservable,
isSettled$: RemoteApiPropertyType.HotObservable,
isUpToDate$: RemoteApiPropertyType.HotObservable
},
tip$: RemoteApiPropertyType.HotObservable,
transactions: {
history$: RemoteApiPropertyType.HotObservable,
outgoing: {
failed$: RemoteApiPropertyType.HotObservable,
inFlight$: RemoteApiPropertyType.HotObservable,
onChain$: RemoteApiPropertyType.HotObservable,
pending$: RemoteApiPropertyType.HotObservable,
signed$: RemoteApiPropertyType.HotObservable,
submitting$: RemoteApiPropertyType.HotObservable
},
rollback$: RemoteApiPropertyType.HotObservable
},
utxo: {
available$: RemoteApiPropertyType.HotObservable,
setUnspendable: RemoteApiPropertyType.MethodReturningPromise,
total$: RemoteApiPropertyType.HotObservable,
unspendable$: RemoteApiPropertyType.HotObservable
}
};
// eslint-disable-next-line @typescript-eslint/no-explicit-any
export const walletRepositoryProperties: RemoteApiProperties<WalletRepository<any, any>> = {
addAccount: RemoteApiPropertyType.MethodReturningPromise,
addWallet: RemoteApiPropertyType.MethodReturningPromise,
removeAccount: RemoteApiPropertyType.MethodReturningPromise,
removeWallet: RemoteApiPropertyType.MethodReturningPromise,
updateAccountMetadata: RemoteApiPropertyType.MethodReturningPromise,
updateWalletMetadata: RemoteApiPropertyType.MethodReturningPromise,
wallets$: RemoteApiPropertyType.HotObservable
};