UNPKG

@cyberk/hyperion-sdk

Version:

Hyperion SDK from Cyberk

49 lines 2.04 kB
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