Display raw instruction data as hex in explorer (#12512)

This commit is contained in:
Justin Starry 2020-09-27 15:18:22 +08:00 committed by GitHub
parent 965f653471
commit f0e02d2588
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 9 additions and 11 deletions

View File

@ -1,18 +1,18 @@
import React from "react";
import bs58 from "bs58";
import { TransactionInstruction } from "@solana/web3.js";
import { Copyable } from "components/common/Copyable";
import { Address } from "components/common/Address";
function displayData(data: string) {
if (data.length > 50) {
return `${data.substring(0, 49)}`;
function wrap(input: string, length: number): string {
var result = [];
while (input.length) {
result.push(input.substr(0, length));
input = input.substr(length);
}
return data;
return result.join("\n");
}
export function RawDetails({ ix }: { ix: TransactionInstruction }) {
const data = bs58.encode(ix.data);
const data = wrap(ix.data.toString("hex"), 50);
return (
<>
<tr>
@ -40,11 +40,9 @@ export function RawDetails({ ix }: { ix: TransactionInstruction }) {
))}
<tr>
<td>Instruction Data (Base58)</td>
<td>Instruction Data (Hex)</td>
<td className="text-lg-right">
<Copyable text={data} right>
<code>{displayData(data)}</code>
</Copyable>
<pre className="d-inline-block text-left mb-0">{data}</pre>
</td>
</tr>
</>