@archwayhq/arch3-core
Version:
Core library to interact with Archway Network
58 lines • 2.4 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.setupTxExtension = void 0;
const proto_signing_1 = require("@cosmjs/proto-signing");
const queryclient_1 = require("@cosmjs/stargate/build/queryclient");
const signing_1 = require("cosmjs-types/cosmos/tx/signing/v1beta1/signing");
const service_1 = require("cosmjs-types/cosmos/tx/v1beta1/service");
const tx_1 = require("cosmjs-types/cosmos/tx/v1beta1/tx");
/**
* Creates a tx extension for the given {@link QueryClient}.
*
* @param base - The base query client to use for RPC queries.
* @returns A {@link TxExtension}.
*/
function setupTxExtension(base) {
const rpc = (0, queryclient_1.createProtobufRpcClient)(base);
const queryService = new service_1.ServiceClientImpl(rpc);
return {
tx: {
getTx: async (txId) => {
const request = {
hash: txId,
};
const response = await queryService.GetTx(request);
return response;
},
simulate: async (messages, memo, signer, sequence, granter, payer) => {
const tx = tx_1.Tx.fromPartial({
authInfo: tx_1.AuthInfo.fromPartial({
fee: tx_1.Fee.fromPartial({
granter,
payer,
}),
signerInfos: [
{
publicKey: (0, proto_signing_1.encodePubkey)(signer),
sequence: BigInt(sequence),
modeInfo: { single: { mode: signing_1.SignMode.SIGN_MODE_UNSPECIFIED } },
},
],
}),
body: tx_1.TxBody.fromPartial({
messages: Array.from(messages),
memo: memo,
}),
signatures: [new Uint8Array()],
});
const request = service_1.SimulateRequest.fromPartial({
txBytes: tx_1.Tx.encode(tx).finish(),
});
const response = await queryService.Simulate(request);
return response;
},
},
};
}
exports.setupTxExtension = setupTxExtension;
//# sourceMappingURL=queries.js.map