@keplr-ewallet/ewallet-sdk-cosmos
Version:
56 lines • 1.62 kB
JavaScript
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