Strip unused parent blob fields before parse
This commit is contained in:
@@ -94,14 +94,27 @@ function sanitizeJsonString(payload: string): string {
|
||||
return result;
|
||||
}
|
||||
|
||||
function stripUnusedBlobFields(payload: string): string {
|
||||
return payload
|
||||
.replace(
|
||||
/"parent_block_header_blob":\s*"[\s\S]*?",\s*\n\s*"parent_coinbase_blob":\s*"/g,
|
||||
"\"parent_block_header_blob\":\"[omitted]\",\n \"parent_coinbase_blob\": \""
|
||||
)
|
||||
.replace(
|
||||
/"parent_coinbase_blob":\s*"[\s\S]*?",\s*\n\s*"seed_hash":/g,
|
||||
"\"parent_coinbase_blob\":\"[omitted]\",\n \"seed_hash\":"
|
||||
);
|
||||
}
|
||||
|
||||
export function parseRpcJson<T>(value: string | undefined): T | null {
|
||||
if (!value) {
|
||||
return null;
|
||||
}
|
||||
const stripped = stripUnusedBlobFields(value);
|
||||
try {
|
||||
return JSON.parse(value) as T;
|
||||
return JSON.parse(stripped) as T;
|
||||
} catch {
|
||||
return JSON.parse(sanitizeJsonString(value)) as T;
|
||||
return JSON.parse(sanitizeJsonString(stripped)) as T;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user