@cyberk/hyperion-sdk
Version:
Hyperion SDK from Cyberk
49 lines • 2.04 kB
JavaScript
import { makeSignDoc } from "@cosmjs/amino";
import { toUtf8 } from "@titanlabjs/encoding";
import { MsgExecuteContract } from "@titanlabjs/titan-types/cosmwasm/wasm/v1/tx";
export async function getAccountDetails(address, lcdUrl) {
try {
const response = await fetch(`${lcdUrl}/cosmos/auth/v1beta1/accounts/${address}`);
const data = (await response.json());
const account = data.account;
if (!account)
throw new Error("Account not found");
const accountNumber = account.account_number ||
(account.base_account && account.base_account.account_number);
const sequence = account.sequence ||
(account.base_account && account.base_account.sequence);
if (accountNumber === undefined || sequence === undefined) {
throw new Error("Could not retrieve account number or sequence.");
}
return {
accountNumber: accountNumber.toString(),
sequence: sequence.toString(),
};
}
catch (error) {
console.error(`Failed to get account details for ${address}:`, error);
throw error;
}
}
export async function prepareContractExecuteSignDoc({ signerAddress, contractAddress, msg, funds = [], memo = "", lcdUrl, chainId, fee, }) {
const { accountNumber, sequence } = await getAccountDetails(signerAddress, lcdUrl);
const messages = [
// {
// type: "wasm/MsgExecuteContract",
// value: {
// sender: signerAddress,
// contract: contractAddress,
// msg: toUtf8(JSON.stringify(msg)),
// funds: funds,
// },
// },
MsgExecuteContract.toAminoMsg(MsgExecuteContract.fromPartial({
contract: contractAddress,
msg: toUtf8(JSON.stringify(msg)),
sender: signerAddress,
funds: funds,
})),
];
return makeSignDoc(messages, fee, chainId, memo, accountNumber, sequence);
}
//# sourceMappingURL=prepareContractExecuteSignDoc.js.map