From 16626976229c40c2507936b263b9781e36c4996b Mon Sep 17 00:00:00 2001 From: Jeesun Kim Date: Fri, 14 Jun 2024 17:03:55 -0700 Subject: [PATCH] updates --- .../submit/components/ErrorResponse.tsx | 37 ++++++--- src/app/(sidebar)/transaction/submit/page.tsx | 76 ++++++------------- src/store/createStore.ts | 12 --- 3 files changed, 51 insertions(+), 74 deletions(-) diff --git a/src/app/(sidebar)/transaction/submit/components/ErrorResponse.tsx b/src/app/(sidebar)/transaction/submit/components/ErrorResponse.tsx index f21ea931..0c5c3af0 100644 --- a/src/app/(sidebar)/transaction/submit/components/ErrorResponse.tsx +++ b/src/app/(sidebar)/transaction/submit/components/ErrorResponse.tsx @@ -29,26 +29,42 @@ export const ErrorResponse = ({ error }: ErrorProps) => {
Destination account:
-
{error.accountId}
+ +
+
{error.accountId}
+
Operation index:
- {error.operationIndex} + +
+
{error.operationIndex}
+
); - } else if (error?.response) { - const { result_codes, result_xdr } = error.response.data?.extras || {}; + } else if ( + error?.response && + error.response.data?.extras?.result_codes && + error.response.data?.extras.result_xdr + ) { + const { result_codes, result_xdr } = error.response.data.extras; message = error.message; extras = ( -
-
extras.result_codes:
+
extras.result_codes:
+ + +
{JSON.stringify(result_codes)}
-
+
+
Result XDR:
-
{result_xdr}
+ +
+
{result_xdr}
+
); @@ -61,7 +77,10 @@ export const ErrorResponse = ({ error }: ErrorProps) => {
original error:
-
{JSON.stringify(error, null, 2)}
+ +
+
{JSON.stringify(error, null, 2)}
+
); diff --git a/src/app/(sidebar)/transaction/submit/page.tsx b/src/app/(sidebar)/transaction/submit/page.tsx index 4d509144..ae595c1e 100644 --- a/src/app/(sidebar)/transaction/submit/page.tsx +++ b/src/app/(sidebar)/transaction/submit/page.tsx @@ -14,29 +14,24 @@ import { TransactionResponse, useSubmitTx } from "@/query/useSubmitTx"; import { Box } from "@/components/layout/Box"; import { PrettyJson } from "@/components/PrettyJson"; -import { Tabs } from "@/components/Tabs"; import { XdrPicker } from "@/components/FormElements/XdrPicker"; import { ValidationResponseCard } from "@/components/ValidationResponseCard"; import { ErrorResponse } from "./components/ErrorResponse"; export default function SubmitTransaction() { - const { network, transaction } = useStore(); - const { updateXdrBlob, submit } = transaction; + const { network, xdr } = useStore(); + const { blob, updateXdrBlob } = xdr; - const { xdrBlob } = submit; - - const isXdrInit = useIsXdrInit(); - - const [activeTab, setActiveTab] = useState("json"); const [txErr, setTxErr] = useState(null); const [txResponse, setTxResponse] = useState( null, ); + const isXdrInit = useIsXdrInit(); const submitTx = useSubmitTx(); const onSubmit = () => { - const transaction = TransactionBuilder.fromXDR(xdrBlob, network.passphrase); + const transaction = TransactionBuilder.fromXDR(blob, network.passphrase); const server = new Horizon.Server(network.horizonUrl, { appName: "Laboratory", @@ -51,15 +46,15 @@ export default function SubmitTransaction() { ); }; - const xdrDecodeJson = () => { + const getXdrJson = () => { const xdrType = "TransactionEnvelope"; - if (!(isXdrInit && xdrBlob)) { + if (!(isXdrInit && blob)) { return null; } try { - const xdrJson = StellarXdr.decode(xdrType, xdrBlob); + const xdrJson = StellarXdr.decode(xdrType, blob); return { jsonString: xdrJson, @@ -68,13 +63,12 @@ export default function SubmitTransaction() { } catch (e) { return { jsonString: "", - error: `Unable to decode input as TransactionEnvelope`, + error: `Unable to decode input as ${xdrType}`, }; } }; - const xdrJsonDecoded = xdrDecodeJson(); - const isXdrData = Boolean(xdrJsonDecoded?.jsonString); + const xdrJson = getXdrJson(); return ( @@ -84,12 +78,12 @@ export default function SubmitTransaction() { -
+ { updateXdrBlob(e.target.value); }} @@ -99,7 +93,7 @@ export default function SubmitTransaction() {
+
<> {submitTx.status === "success" && txResponse ? ( @@ -174,20 +158,6 @@ export default function SubmitTransaction() {
} - // @TODO: the current lab doesn't support displaying stellar.expert - // To confirm with Charles - // note={<>} - // footerLeftEl={ - // - // } /> ) : null} diff --git a/src/store/createStore.ts b/src/store/createStore.ts index f19c1ce0..d34e0b4f 100644 --- a/src/store/createStore.ts +++ b/src/store/createStore.ts @@ -95,9 +95,6 @@ export interface Store { bipPath: string; hardWalletSigs: xdr.DecoratedSignature[] | []; }; - submit: { - xdrBlob: string; - }; // [Transaction] Build Transaction actions updateBuildActiveTab: (tabId: string) => void; updateBuildParams: (params: TransactionBuildParamsObj) => void; @@ -124,8 +121,6 @@ export interface Store { updateHardWalletSigs: (signer: xdr.DecoratedSignature[]) => void; resetSign: () => void; resetSignHardWalletSigs: () => void; - // [Transaction] Submit Transaction actions - updateXdrBlob: (blob: string) => void; }; // XDR @@ -180,9 +175,6 @@ const initTransactionState = { bipPath: "44'/148'/0'", hardWalletSigs: [], }, - submit: { - xdrBlob: "", - }, }; const initAccountState = { @@ -367,10 +359,6 @@ export const createStore = (options: CreateStoreOptions) => state.transaction.sign.hardWalletSigs = initTransactionState.sign.hardWalletSigs; }), - updateXdrBlob: (blob: string) => - set((state) => { - state.transaction.submit.xdrBlob = blob; - }), }, xdr: { ...initXdrState,