0.7.28 - final
This commit is contained in:
@@ -168,7 +168,50 @@
|
||||
Diagnose local pipeline
|
||||
</button>
|
||||
<button id="demoPipeline2ValidateLocalPipelineButton" type="button" class="btn btn-outline-success">
|
||||
Validate 0.7.27
|
||||
Validate
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="accordion-item border-0 shadow-sm mb-3">
|
||||
<h2 class="accordion-header" id="demoPipeline2DiscriminatorDiagnosticsHeading">
|
||||
<button class="accordion-button collapsed" type="button" data-bs-toggle="collapse" data-bs-target="#demoPipeline2DiscriminatorDiagnosticsCollapse" aria-expanded="false" aria-controls="demoPipeline2DiscriminatorDiagnosticsCollapse">
|
||||
Instruction discriminators
|
||||
</button>
|
||||
</h2>
|
||||
<div id="demoPipeline2DiscriminatorDiagnosticsCollapse" class="accordion-collapse collapse" aria-labelledby="demoPipeline2DiscriminatorDiagnosticsHeading" data-bs-parent="#demoPipeline2LeftAccordion">
|
||||
<div class="accordion-body">
|
||||
<p class="small text-body-secondary mb-3">
|
||||
Groupe les instructions d’un programme par discriminator décodé, nombre de comptes, stack height et statut decoded/non-decoded.
|
||||
</p>
|
||||
|
||||
<div class="mb-3">
|
||||
<label for="demoPipeline2DiscriminatorProgramIdInput" class="form-label">Program id</label>
|
||||
<input
|
||||
id="demoPipeline2DiscriminatorProgramIdInput"
|
||||
type="text"
|
||||
class="form-control font-monospace"
|
||||
value="LBUZKhRxPF3XUpBCjp4YzTKgLccjZhTSDM9YuVaPwxo"
|
||||
/>
|
||||
</div>
|
||||
|
||||
<div class="mb-3">
|
||||
<label for="demoPipeline2DiscriminatorLimitInput" class="form-label">Instruction row limit</label>
|
||||
<input
|
||||
id="demoPipeline2DiscriminatorLimitInput"
|
||||
type="number"
|
||||
min="1"
|
||||
step="1"
|
||||
class="form-control"
|
||||
value="200"
|
||||
/>
|
||||
</div>
|
||||
|
||||
<div class="d-flex gap-2">
|
||||
<button id="demoPipeline2LoadDiscriminatorSummariesButton" type="button" class="btn btn-outline-warning">
|
||||
Load discriminator summaries
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
@@ -290,6 +333,25 @@
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="accordion-item border-0 shadow-sm mb-3">
|
||||
<h2 class="accordion-header" id="demoPipeline2DiscriminatorSummaryHeading">
|
||||
<button class="accordion-button collapsed" type="button" data-bs-toggle="collapse" data-bs-target="#demoPipeline2DiscriminatorSummaryCollapse" aria-expanded="false" aria-controls="demoPipeline2DiscriminatorSummaryCollapse">
|
||||
Instruction discriminator summaries
|
||||
</button>
|
||||
</h2>
|
||||
<div id="demoPipeline2DiscriminatorSummaryCollapse" class="accordion-collapse collapse" aria-labelledby="demoPipeline2DiscriminatorSummaryHeading" data-bs-parent="#demoPipeline2ContentAccordion">
|
||||
<div class="accordion-body">
|
||||
<textarea
|
||||
id="demoPipeline2DiscriminatorSummariesTextarea"
|
||||
class="form-control font-monospace"
|
||||
rows="18"
|
||||
readonly
|
||||
spellcheck="false"
|
||||
></textarea>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="accordion-item border-0 shadow-sm mb-3">
|
||||
<h2 class="accordion-header" id="demoPipeline2ProtocolCandidateSummaryHeading">
|
||||
|
||||
@@ -0,0 +1,10 @@
|
||||
// This file was generated by [ts-rs](https://github.com/Aleph-Alpha/ts-rs). Do not edit this file manually.
|
||||
|
||||
/**
|
||||
* Response payload for program instruction discriminator summaries.
|
||||
*/
|
||||
export type DemoPipeline2ProgramInstructionDiscriminatorSummaryPayload = {
|
||||
/**
|
||||
* Pretty JSON summary rows.
|
||||
*/
|
||||
summariesJson: string, };
|
||||
@@ -0,0 +1,14 @@
|
||||
// This file was generated by [ts-rs](https://github.com/Aleph-Alpha/ts-rs). Do not edit this file manually.
|
||||
|
||||
/**
|
||||
* Request payload for program instruction discriminator summaries.
|
||||
*/
|
||||
export type DemoPipeline2ProgramInstructionDiscriminatorSummaryRequest = {
|
||||
/**
|
||||
* Program id to inspect.
|
||||
*/
|
||||
programId: string,
|
||||
/**
|
||||
* Maximum number of instruction rows to inspect before grouping.
|
||||
*/
|
||||
limit: number, };
|
||||
@@ -15,6 +15,8 @@ import type { DemoPipeline2PairCandlesRequest } from "./bindings/DemoPipeline2Pa
|
||||
import type { DemoPipeline2PairCandlesPayload } from "./bindings/DemoPipeline2PairCandlesPayload.ts";
|
||||
import type { DemoPipeline2LocalDiagnosticsPayload } from "./bindings/DemoPipeline2LocalDiagnosticsPayload.ts";
|
||||
import type { DemoPipeline2LocalValidationPayload } from "./bindings/DemoPipeline2LocalValidationPayload.ts";
|
||||
import type { DemoPipeline2ProgramInstructionDiscriminatorSummaryRequest } from "./bindings/DemoPipeline2ProgramInstructionDiscriminatorSummaryRequest.ts";
|
||||
import type { DemoPipeline2ProgramInstructionDiscriminatorSummaryPayload } from "./bindings/DemoPipeline2ProgramInstructionDiscriminatorSummaryPayload.ts";
|
||||
import { DemoPipeline2ProtocolCandidateSummaryRequest } from './bindings/DemoPipeline2ProtocolCandidateSummaryRequest.ts';
|
||||
import { DemoPipeline2ProtocolCandidateSummaryPayload } from './bindings/DemoPipeline2ProtocolCandidateSummaryPayload.ts';
|
||||
|
||||
@@ -356,6 +358,10 @@ document.addEventListener("DOMContentLoaded", async () => {
|
||||
const diagnoseLocalPipelineButton = document.querySelector<HTMLButtonElement>("#demoPipeline2DiagnoseLocalPipelineButton");
|
||||
const validateLocalPipelineButton = document.querySelector<HTMLButtonElement>("#demoPipeline2ValidateLocalPipelineButton");
|
||||
|
||||
const discriminatorProgramIdInput = document.querySelector<HTMLInputElement>("#demoPipeline2DiscriminatorProgramIdInput");
|
||||
const discriminatorLimitInput = document.querySelector<HTMLInputElement>("#demoPipeline2DiscriminatorLimitInput");
|
||||
const loadDiscriminatorSummariesButton = document.querySelector<HTMLButtonElement>("#demoPipeline2LoadDiscriminatorSummariesButton");
|
||||
|
||||
const protocolCandidateLimitInput = document.querySelector<HTMLInputElement>("#demoPipeline2ProtocolCandidateLimitInput");
|
||||
const refreshProtocolCandidatesButton = document.querySelector<HTMLButtonElement>("#demoPipeline2RefreshProtocolCandidatesButton");
|
||||
|
||||
@@ -371,6 +377,8 @@ document.addEventListener("DOMContentLoaded", async () => {
|
||||
const localDiagnosticsTextarea = document.querySelector<HTMLTextAreaElement>("#demoPipeline2LocalDiagnosticsTextarea");
|
||||
const localValidationTextarea = document.querySelector<HTMLTextAreaElement>("#demoPipeline2LocalValidationTextarea");
|
||||
|
||||
const discriminatorSummariesTextarea = document.querySelector<HTMLTextAreaElement>("#demoPipeline2DiscriminatorSummariesTextarea");
|
||||
|
||||
const protocolCandidateSummariesTextarea = document.querySelector<HTMLTextAreaElement>("#demoPipeline2ProtocolCandidateSummariesTextarea");
|
||||
|
||||
const clearLogButton = document.querySelector<HTMLButtonElement>("#demoPipeline2ClearLogButton");
|
||||
@@ -395,6 +403,9 @@ document.addEventListener("DOMContentLoaded", async () => {
|
||||
!replayLocalPipelineButton ||
|
||||
!diagnoseLocalPipelineButton ||
|
||||
!validateLocalPipelineButton ||
|
||||
!discriminatorProgramIdInput ||
|
||||
!discriminatorLimitInput ||
|
||||
!loadDiscriminatorSummariesButton ||
|
||||
!protocolCandidateLimitInput ||
|
||||
!refreshProtocolCandidatesButton ||
|
||||
!pairSelect ||
|
||||
@@ -405,6 +416,7 @@ document.addEventListener("DOMContentLoaded", async () => {
|
||||
!backfillSummaryTextarea ||
|
||||
!localDiagnosticsTextarea ||
|
||||
!localValidationTextarea ||
|
||||
!discriminatorSummariesTextarea ||
|
||||
!protocolCandidateSummariesTextarea ||
|
||||
!chartElement ||
|
||||
!chartMeta ||
|
||||
@@ -635,7 +647,7 @@ document.addEventListener("DOMContentLoaded", async () => {
|
||||
});
|
||||
|
||||
validateLocalPipelineButton.addEventListener("click", async () => {
|
||||
appendLogLine(logTextarea, "[ui] validating local pipeline with 0.7.27 profile");
|
||||
appendLogLine(logTextarea, "[ui] validating local pipeline with 0.7.28 profile");
|
||||
|
||||
try {
|
||||
const payload = await invoke<DemoPipeline2LocalValidationPayload>(
|
||||
@@ -693,6 +705,52 @@ document.addEventListener("DOMContentLoaded", async () => {
|
||||
}
|
||||
});
|
||||
|
||||
loadDiscriminatorSummariesButton.addEventListener("click", async () => {
|
||||
const programId = discriminatorProgramIdInput.value.trim();
|
||||
if (programId === "") {
|
||||
appendLogLine(logTextarea, "[ui] discriminator program id is required");
|
||||
return;
|
||||
}
|
||||
|
||||
const limit = readPositiveIntegerInput(
|
||||
discriminatorLimitInput,
|
||||
logTextarea,
|
||||
"discriminatorSummaryLimit",
|
||||
);
|
||||
if (limit === undefined) {
|
||||
return;
|
||||
}
|
||||
|
||||
appendLogLine(
|
||||
logTextarea,
|
||||
`[ui] loading instruction discriminator summaries for program '${programId}' with limit '${limit.toString()}'`,
|
||||
);
|
||||
|
||||
const request: DemoPipeline2ProgramInstructionDiscriminatorSummaryRequest = {
|
||||
programId,
|
||||
limit,
|
||||
};
|
||||
|
||||
try {
|
||||
const payload = await invoke<DemoPipeline2ProgramInstructionDiscriminatorSummaryPayload>(
|
||||
"demo_pipeline2_get_program_instruction_discriminator_summaries",
|
||||
{ request },
|
||||
);
|
||||
|
||||
discriminatorSummariesTextarea.value = payload.summariesJson;
|
||||
|
||||
appendLogLine(
|
||||
logTextarea,
|
||||
"[ui] instruction discriminator summaries loaded",
|
||||
);
|
||||
} catch (error) {
|
||||
appendLogLine(
|
||||
logTextarea,
|
||||
`[ui] instruction discriminator summary error: ${String(error)}`,
|
||||
);
|
||||
}
|
||||
});
|
||||
|
||||
loadCandlesButton.addEventListener("click", async () => {
|
||||
const pairIdText = pairSelect.value.trim();
|
||||
if (pairIdText === "") {
|
||||
|
||||
Reference in New Issue
Block a user