UNPKG

@cyberk/hyperion-sdk

Version:

Hyperion SDK from Cyberk

53 lines 2.25 kB
"use strict"; 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