@orca-so/whirlpools-sdk
Version:
Typescript SDK to interact with Orca's Whirlpool program.
45 lines • 2.02 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.twoHopSwapIx = twoHopSwapIx;
const spl_token_1 = require("@solana/spl-token");
const tiny_invariant_1 = __importDefault(require("tiny-invariant"));
function twoHopSwapIx(program, params) {
const { amount, otherAmountThreshold, amountSpecifiedIsInput, aToBOne, aToBTwo, sqrtPriceLimitOne, sqrtPriceLimitTwo, whirlpoolOne, whirlpoolTwo, tokenAuthority, tokenOwnerAccountOneA, tokenVaultOneA, tokenOwnerAccountOneB, tokenVaultOneB, tokenOwnerAccountTwoA, tokenVaultTwoA, tokenOwnerAccountTwoB, tokenVaultTwoB, tickArrayOne0, tickArrayOne1, tickArrayOne2, tickArrayTwo0, tickArrayTwo1, tickArrayTwo2, oracleOne, oracleTwo, } = params;
const ix = program.instruction.twoHopSwap(amount, otherAmountThreshold, amountSpecifiedIsInput, aToBOne, aToBTwo, sqrtPriceLimitOne, sqrtPriceLimitTwo, {
accounts: {
tokenProgram: spl_token_1.TOKEN_PROGRAM_ID,
tokenAuthority,
whirlpoolOne,
whirlpoolTwo,
tokenOwnerAccountOneA,
tokenVaultOneA,
tokenOwnerAccountOneB,
tokenVaultOneB,
tokenOwnerAccountTwoA,
tokenVaultTwoA,
tokenOwnerAccountTwoB,
tokenVaultTwoB,
tickArrayOne0,
tickArrayOne1,
tickArrayOne2,
tickArrayTwo0,
tickArrayTwo1,
tickArrayTwo2,
oracleOne,
oracleTwo,
},
});
(0, tiny_invariant_1.default)(ix.keys[18].pubkey.equals(oracleOne));
ix.keys[18].isWritable = true;
(0, tiny_invariant_1.default)(ix.keys[19].pubkey.equals(oracleTwo));
ix.keys[19].isWritable = true;
return {
instructions: [ix],
cleanupInstructions: [],
signers: [],
};
}
//# sourceMappingURL=two-hop-swap-ix.js.map