({
transactionData,
onCompleted,
onError
}: {
transactionData: AnyTransactionRequestFragment;
onCompleted: (hash: string) => void;
onError: (error: ApolloClientError) => void;
})
| 119 | }; |
| 120 | |
| 121 | const handleTransactionLifecycle = async ({ |
| 122 | transactionData, |
| 123 | onCompleted, |
| 124 | onError |
| 125 | }: { |
| 126 | transactionData: AnyTransactionRequestFragment; |
| 127 | onCompleted: (hash: string) => void; |
| 128 | onError: (error: ApolloClientError) => void; |
| 129 | }) => { |
| 130 | try { |
| 131 | if (typeof transactionData === "function") { |
| 132 | return onError({ |
| 133 | message: ERRORS.SomethingWentWrong, |
| 134 | name: ERROR_NAMES.UnknownError |
| 135 | }); |
| 136 | } |
| 137 | switch (transactionData.__typename) { |
| 138 | case "SponsoredTransactionRequest": |
| 139 | return await handleSponsoredTransaction( |
| 140 | transactionData, |
| 141 | onCompleted, |
| 142 | onError |
| 143 | ); |
| 144 | case "SelfFundedTransactionRequest": |
| 145 | return await handleSelfFundedTransaction( |
| 146 | transactionData, |
| 147 | onCompleted, |
| 148 | onError |
| 149 | ); |
| 150 | case "TransactionWillFail": |
| 151 | if ("reason" in transactionData) { |
| 152 | return onError({ |
| 153 | message: transactionData.reason, |
| 154 | name: transactionData.__typename |
| 155 | }); |
| 156 | } |
| 157 | return onError({ |
| 158 | message: ERRORS.SomethingWentWrong, |
| 159 | name: ERROR_NAMES.UnknownError |
| 160 | }); |
| 161 | default: |
| 162 | onError({ |
| 163 | message: ERRORS.SomethingWentWrong, |
| 164 | name: ERROR_NAMES.UnknownError |
| 165 | }); |
| 166 | return; |
| 167 | } |
| 168 | } catch (error) { |
| 169 | return onError(error as ApolloClientError); |
| 170 | } |
| 171 | }; |
| 172 | |
| 173 | return handleTransactionLifecycle; |
| 174 | }; |
no test coverage detected