@cyberk/hyperion-sdk
Version:
Hyperion SDK from Cyberk
53 lines • 2.25 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.getAccountDetails = getAccountDetails;
exports.prepareContractExecuteSignDoc = prepareContractExecuteSignDoc;
const amino_1 = require("@cosmjs/amino");
const encoding_1 = require("@titanlabjs/encoding");
const tx_1 = require("@titanlabjs/titan-types/cosmwasm/wasm/v1/tx");
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;
}
}
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,
// },
// },
tx_1.MsgExecuteContract.toAminoMsg(tx_1.MsgExecuteContract.fromPartial({
contract: contractAddress,
msg: (0, encoding_1.toUtf8)(JSON.stringify(msg)),
sender: signerAddress,
funds: funds,
})),
];
return (0, amino_1.makeSignDoc)(messages, fee, chainId, memo, accountNumber, sequence);
}
//# sourceMappingURL=prepareContractExecuteSignDoc.js.map