@cyberk/hyperion-sdk
Version:
Hyperion SDK from Cyberk
59 lines • 1.97 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.getQuoteQueryOptions = exports.getQuoteFn = exports.getQuoteQueryKey = exports.getQuoteQueryMsg = void 0;
const utils_1 = require("../utils");
const getQuoteQueryMsg = (options) => {
const { offerAmount, offerAsset, askAsset } = options;
return {
simulate_swap_operations: {
operations: [
{
hyperion: {
offer_asset_info: {
native_token: {
denom: offerAsset,
},
},
ask_asset_info: {
native_token: {
denom: askAsset,
},
},
},
},
],
offer_amount: offerAmount,
},
};
};
exports.getQuoteQueryMsg = getQuoteQueryMsg;
const getQuoteQueryKey = (options) => {
return [
"simulateSwapOperations",
options.routerContract,
options.offerAsset,
options.askAsset,
options.offerAmount,
];
};
exports.getQuoteQueryKey = getQuoteQueryKey;
const getQuoteFn = async (options) => {
const { client, routerContract } = options;
if (!client) {
throw new Error("Client is required");
}
if (!routerContract) {
throw new Error("Router contract address is required");
}
const result = await (0, utils_1.queryContractSmart)(client, routerContract, (0, exports.getQuoteQueryMsg)(options));
return result;
};
exports.getQuoteFn = getQuoteFn;
const getQuoteQueryOptions = (options) => {
return {
queryFn: async () => (0, exports.getQuoteFn)(options),
queryKey: (0, exports.getQuoteQueryKey)(options),
};
};
exports.getQuoteQueryOptions = getQuoteQueryOptions;
//# sourceMappingURL=getQuote.js.map