Explorer: Show simulation error if no logs are returned (#28416)
This commit is contained in:
parent
d42e5725fe
commit
d884f08723
|
@ -34,17 +34,17 @@ export function SimulatorCard({ message }: { message: VersionedMessage }) {
|
||||||
<div className="card-header">
|
<div className="card-header">
|
||||||
<h3 className="card-header-title">Transaction Simulation</h3>
|
<h3 className="card-header-title">Transaction Simulation</h3>
|
||||||
<button className="btn btn-sm d-flex btn-white" onClick={simulate}>
|
<button className="btn btn-sm d-flex btn-white" onClick={simulate}>
|
||||||
Simulate
|
{simulationError ? "Retry" : "Simulate"}
|
||||||
</button>
|
</button>
|
||||||
</div>
|
</div>
|
||||||
{simulationError ? (
|
<div className="card-body">
|
||||||
<div className="card-body">
|
{simulationError ? (
|
||||||
Failed to run simulation:
|
<>
|
||||||
<span className="text-warning ms-2">{simulationError}</span>
|
Simulation Failure:
|
||||||
</div>
|
<span className="text-warning ms-2">{simulationError}</span>
|
||||||
) : (
|
</>
|
||||||
<div className="card-body text-muted">
|
) : (
|
||||||
<ul>
|
<ul className="text-muted">
|
||||||
<li>
|
<li>
|
||||||
Simulation is free and will run this transaction against the
|
Simulation is free and will run this transaction against the
|
||||||
latest confirmed ledger state.
|
latest confirmed ledger state.
|
||||||
|
@ -54,8 +54,8 @@ export function SimulatorCard({ message }: { message: VersionedMessage }) {
|
||||||
be disabled.
|
be disabled.
|
||||||
</li>
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
)}
|
||||||
)}
|
</div>
|
||||||
</div>
|
</div>
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
@ -103,12 +103,21 @@ function useSimulator(message: VersionedMessage) {
|
||||||
new VersionedTransaction(message),
|
new VersionedTransaction(message),
|
||||||
{ replaceRecentBlockhash: true }
|
{ replaceRecentBlockhash: true }
|
||||||
);
|
);
|
||||||
|
|
||||||
if (resp.value.logs === null) {
|
if (resp.value.logs === null) {
|
||||||
throw new Error("Expected to receive logs from simulation");
|
throw new Error("Expected to receive logs from simulation");
|
||||||
}
|
}
|
||||||
|
|
||||||
// Prettify logs
|
if (
|
||||||
setLogs(parseProgramLogs(resp.value.logs, resp.value.err, cluster));
|
resp.value.logs.length === 0 &&
|
||||||
|
typeof resp.value.err === "string"
|
||||||
|
) {
|
||||||
|
setLogs(null);
|
||||||
|
setError(resp.value.err);
|
||||||
|
} else {
|
||||||
|
// Prettify logs
|
||||||
|
setLogs(parseProgramLogs(resp.value.logs, resp.value.err, cluster));
|
||||||
|
}
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
console.error(err);
|
console.error(err);
|
||||||
setLogs(null);
|
setLogs(null);
|
||||||
|
|
Loading…
Reference in New Issue