UNPKG

@keplr-ewallet/ewallet-sdk-cosmos

Version:
56 lines 1.62 kB
import { TxBody, AuthInfo, } from "@keplr-wallet/proto-types/cosmos/tx/v1beta1/tx"; import { sortObjectByKey } from "../utils/json"; export function extractAuthInfoFromSignDoc(signDoc) { const authInfoBytes = signDoc.authInfoBytes; if (!authInfoBytes) { return null; } try { const authInfo = AuthInfo.decode(authInfoBytes); return authInfo; } catch { return null; } } export function extractTxBodyFromSignDoc(signDoc) { const bodyBytes = signDoc.bodyBytes; if (!bodyBytes) { return null; } try { const txBody = TxBody.decode(bodyBytes); return txBody; } catch (error) { console.warn("Failed to decode TxBody:", error); return null; } } export function signDocToJson(signDoc) { const authInfo = extractAuthInfoFromSignDoc(signDoc); const txBody = extractTxBodyFromSignDoc(signDoc); if (!authInfo) { throw new Error("authInfo is null"); } if (!txBody) { throw new Error("txBody is null"); } return sortObjectByKey({ txBody: { ...TxBody.toJSON(txBody), ...{ messages: txBody.messages.map((msg) => { return { typeUrl: msg.typeUrl, value: Buffer.from(msg.value).toString("base64"), }; }), }, }, authInfo: AuthInfo.toJSON(authInfo), chainId: signDoc.chainId, accountNumber: signDoc.accountNumber.toString(), }); } //# sourceMappingURL=sign_doc.js.map